mirror of
https://github.com/nix-community/hpe-ltfs.git
synced 2025-12-23 05:55:13 +00:00
tar -zxvf HPE_StoreOpen_Software_3.4.2_Source_Z7550-02501.tar.gz
This commit is contained in:
82
BUILDING.linux
Normal file
82
BUILDING.linux
Normal file
@@ -0,0 +1,82 @@
|
||||
=======================================================================
|
||||
HPE StoreOpen Software (HPE-SOS) - Version 3.4.2
|
||||
=======================================================================
|
||||
|
||||
Files in this download contain Licensed Materials, property of HPE,
|
||||
(C) Copyright 2015-2018 Hewlett Packard Enterprise Development LP
|
||||
|
||||
Files in this download also contain Licensed Materials, property of IBM,
|
||||
(C) Copyright IBM Corp. 2010, 2014
|
||||
|
||||
See the Licensing agreement (COPYING.LIB) when LTFS is downloaded.
|
||||
|
||||
The LTFS software application is an open-source tape file system
|
||||
implemented on dual partition tape drives.
|
||||
|
||||
Further details on HPE's LTFS implementation can be found at
|
||||
www.hpe.com/storage/storeopen
|
||||
|
||||
=======================================================================
|
||||
Building HPE-SOS from source code
|
||||
=======================================================================
|
||||
|
||||
1. Unpack the archive source file to a suitable location, for example
|
||||
/usr/local/src/ :
|
||||
|
||||
$ gunzip HPE-SOS_SOURCE.tar.gz
|
||||
$ tar xf HPE-SOS_SOURCE.tar
|
||||
|
||||
2. Required Software packages - HPE StoreOpen Software 3.4.2 requires the
|
||||
following software packages on Linux. Make sure that these packages
|
||||
are installed on the target computer.
|
||||
|
||||
1. libicu 50.1.2
|
||||
2. libicu-devel 50.1.2
|
||||
3. fuse 2.8.5 or higher (kernel and shared library modules)
|
||||
4. fuse-libs 2.8.5 or higher
|
||||
5. libxml2-2.7.6
|
||||
6. e2fsprogs 1.41
|
||||
|
||||
For example:
|
||||
$ rpm -q icu libicu-devel fuse fuse-libs fuse-devel
|
||||
|
||||
icu-50.1.2
|
||||
libicu-devel-50.1.2
|
||||
fuse-2.8.5-1
|
||||
fuse-libs-2.8.5-1
|
||||
fuse-devel-2.8.5-1
|
||||
|
||||
If any of the packages are not installed, then you must add them
|
||||
from the installation DVD or other repository.
|
||||
|
||||
Note that further packages may need to be installed, depending on your
|
||||
current system configuration. These may include uuid (part of the
|
||||
e2fsprogs package) and libxml2.
|
||||
|
||||
3. Run the configure script
|
||||
$ cd hpe-sos_3.4.2
|
||||
$ ./configure
|
||||
|
||||
This will check for various dependencies; you must correct any problems
|
||||
before you can proceed.
|
||||
|
||||
4. Build the package
|
||||
$ make
|
||||
|
||||
5. Copy the compiled files to the correct locations
|
||||
$ make install
|
||||
|
||||
The executables (ltfs, mkltfs, ltfsck) are placed in /usr/local/bin/
|
||||
The supporting dynamic files are placed under /usr/local/lib/
|
||||
|
||||
6. On some systems it may be necessary to tell the linker/loader how to
|
||||
locate the required dynamic library files. There are several ways
|
||||
of doing this:
|
||||
a) Add /usr/local/lib/ to the environment variable LD_LIBRARY_PATH
|
||||
or
|
||||
b) (As root) Add /usr/local/lib/ to the file /etc/ld.so.conf, and
|
||||
then execute ldconfig
|
||||
Refer to the man pages for ld.so and ldconfig for further details.
|
||||
|
||||
7. That's it! Refer to the README file for details of how to use LTFS.
|
||||
|
||||
65
BUILDING.macosx
Normal file
65
BUILDING.macosx
Normal file
@@ -0,0 +1,65 @@
|
||||
=======================================================================
|
||||
HPE StoreOpen Software (HPE-SOS) - Version 3.4.2
|
||||
=======================================================================
|
||||
|
||||
Files in this download contain Licensed Materials, property of HPE,
|
||||
(C) Copyright 2015, 2016 Hewlett Packard Enterprise Development LP
|
||||
|
||||
Files in this download also contain Licensed Materials, property of IBM,
|
||||
(C) Copyright IBM Corp. 2010, 2014
|
||||
|
||||
See the Licensing agreement (COPYING.LIB) when LTFS is downloaded.
|
||||
|
||||
The LTFS software application is an open-source tape file system
|
||||
implemented on dual partition tape drives.
|
||||
|
||||
Further details on HPE's LTFS implementation can be found at
|
||||
www.hpe.com/storage/storeopen
|
||||
|
||||
|
||||
=======================================================================
|
||||
Building HPE-SOS from source code (Mac OS X)
|
||||
=======================================================================
|
||||
|
||||
1. Unpack the archive source file to a suitable location:
|
||||
|
||||
$ gunzip HPE-SOS_SOURCE.tar.gz
|
||||
$ tar xf HPE-SOS_SOURCE.tar
|
||||
|
||||
2. Ensure that the following packages have been installed:
|
||||
Apple Developer Tools
|
||||
OSXFUSE (Refer to HPE Data Agile BURA Compatibility Matrix
|
||||
at www.hpe.com/storage/BURACompatibility
|
||||
for OSXFUSE version information)
|
||||
ICU 50.1.2
|
||||
|
||||
3. Run the LTFS build script:
|
||||
|
||||
$ cd hpe-sos_3.4.2
|
||||
$ ./build_osx_package.sh
|
||||
|
||||
If no errors are reported then the build was successful.
|
||||
|
||||
Do not use the configure script or Makefile; these are intended for
|
||||
use on Linux platforms. The supplied build_osx_package.sh script
|
||||
performs the steps needed to build on the Mac OS X platform.
|
||||
|
||||
4. The build process produces an installable package in the directory
|
||||
hpe-sos_3.4.2/distribution/
|
||||
|
||||
Open that directory in Finder and select the HPEStoreOpenSoftware.pkg
|
||||
|
||||
The installation files will be copied to the directory
|
||||
/Library/Frameworks/LTFS.framework/Versions/Current/
|
||||
and symbolic links for the executables (mkltfs, ltfs, ltfsck, unltfs)
|
||||
are created in /usr/local/bin/
|
||||
|
||||
5. That's it! Refer to the README file for details of how to use LTFS.
|
||||
|
||||
6. To uninstall LTFS, you need to delete the symbolic links in
|
||||
/usr/local/bin/ for the executables (mkltfs, ltfs, ltfsck, unltfs)
|
||||
and then delete the directory /Library/Frameworks/LTFS.framework
|
||||
|
||||
Execute the command:
|
||||
pkgutil --forget com.hpe.ltfs
|
||||
to cause the Package Manager subsystem to remove references to LTFS.
|
||||
510
COPYING.LIB
Normal file
510
COPYING.LIB
Normal file
@@ -0,0 +1,510 @@
|
||||
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
Version 2.1, February 1999
|
||||
|
||||
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
|
||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
[This is the first released version of the Lesser GPL. It also counts
|
||||
as the successor of the GNU Library Public License, version 2, hence
|
||||
the version number 2.1.]
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
Licenses are intended to guarantee your freedom to share and change
|
||||
free software--to make sure the software is free for all its users.
|
||||
|
||||
This license, the Lesser General Public License, applies to some
|
||||
specially designated software packages--typically libraries--of the
|
||||
Free Software Foundation and other authors who decide to use it. You
|
||||
can use it too, but we suggest you first think carefully about whether
|
||||
this license or the ordinary General Public License is the better
|
||||
strategy to use in any particular case, based on the explanations
|
||||
below.
|
||||
|
||||
When we speak of free software, we are referring to freedom of use,
|
||||
not price. Our General Public Licenses are designed to make sure that
|
||||
you have the freedom to distribute copies of free software (and charge
|
||||
for this service if you wish); that you receive source code or can get
|
||||
it if you want it; that you can change the software and use pieces of
|
||||
it in new free programs; and that you are informed that you can do
|
||||
these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
distributors to deny you these rights or to ask you to surrender these
|
||||
rights. These restrictions translate to certain responsibilities for
|
||||
you if you distribute copies of the library or if you modify it.
|
||||
|
||||
For example, if you distribute copies of the library, whether gratis
|
||||
or for a fee, you must give the recipients all the rights that we gave
|
||||
you. You must make sure that they, too, receive or can get the source
|
||||
code. If you link other code with the library, you must provide
|
||||
complete object files to the recipients, so that they can relink them
|
||||
with the library after making changes to the library and recompiling
|
||||
it. And you must show them these terms so they know their rights.
|
||||
|
||||
We protect your rights with a two-step method: (1) we copyright the
|
||||
library, and (2) we offer you this license, which gives you legal
|
||||
permission to copy, distribute and/or modify the library.
|
||||
|
||||
To protect each distributor, we want to make it very clear that
|
||||
there is no warranty for the free library. Also, if the library is
|
||||
modified by someone else and passed on, the recipients should know
|
||||
that what they have is not the original version, so that the original
|
||||
author's reputation will not be affected by problems that might be
|
||||
introduced by others.
|
||||
^L
|
||||
Finally, software patents pose a constant threat to the existence of
|
||||
any free program. We wish to make sure that a company cannot
|
||||
effectively restrict the users of a free program by obtaining a
|
||||
restrictive license from a patent holder. Therefore, we insist that
|
||||
any patent license obtained for a version of the library must be
|
||||
consistent with the full freedom of use specified in this license.
|
||||
|
||||
Most GNU software, including some libraries, is covered by the
|
||||
ordinary GNU General Public License. This license, the GNU Lesser
|
||||
General Public License, applies to certain designated libraries, and
|
||||
is quite different from the ordinary General Public License. We use
|
||||
this license for certain libraries in order to permit linking those
|
||||
libraries into non-free programs.
|
||||
|
||||
When a program is linked with a library, whether statically or using
|
||||
a shared library, the combination of the two is legally speaking a
|
||||
combined work, a derivative of the original library. The ordinary
|
||||
General Public License therefore permits such linking only if the
|
||||
entire combination fits its criteria of freedom. The Lesser General
|
||||
Public License permits more lax criteria for linking other code with
|
||||
the library.
|
||||
|
||||
We call this license the "Lesser" General Public License because it
|
||||
does Less to protect the user's freedom than the ordinary General
|
||||
Public License. It also provides other free software developers Less
|
||||
of an advantage over competing non-free programs. These disadvantages
|
||||
are the reason we use the ordinary General Public License for many
|
||||
libraries. However, the Lesser license provides advantages in certain
|
||||
special circumstances.
|
||||
|
||||
For example, on rare occasions, there may be a special need to
|
||||
encourage the widest possible use of a certain library, so that it
|
||||
becomes a de-facto standard. To achieve this, non-free programs must
|
||||
be allowed to use the library. A more frequent case is that a free
|
||||
library does the same job as widely used non-free libraries. In this
|
||||
case, there is little to gain by limiting the free library to free
|
||||
software only, so we use the Lesser General Public License.
|
||||
|
||||
In other cases, permission to use a particular library in non-free
|
||||
programs enables a greater number of people to use a large body of
|
||||
free software. For example, permission to use the GNU C Library in
|
||||
non-free programs enables many more people to use the whole GNU
|
||||
operating system, as well as its variant, the GNU/Linux operating
|
||||
system.
|
||||
|
||||
Although the Lesser General Public License is Less protective of the
|
||||
users' freedom, it does ensure that the user of a program that is
|
||||
linked with the Library has the freedom and the wherewithal to run
|
||||
that program using a modified version of the Library.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow. Pay close attention to the difference between a
|
||||
"work based on the library" and a "work that uses the library". The
|
||||
former contains code derived from the library, whereas the latter must
|
||||
be combined with the library in order to run.
|
||||
^L
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License Agreement applies to any software library or other
|
||||
program which contains a notice placed by the copyright holder or
|
||||
other authorized party saying it may be distributed under the terms of
|
||||
this Lesser General Public License (also called "this License").
|
||||
Each licensee is addressed as "you".
|
||||
|
||||
A "library" means a collection of software functions and/or data
|
||||
prepared so as to be conveniently linked with application programs
|
||||
(which use some of those functions and data) to form executables.
|
||||
|
||||
The "Library", below, refers to any such software library or work
|
||||
which has been distributed under these terms. A "work based on the
|
||||
Library" means either the Library or any derivative work under
|
||||
copyright law: that is to say, a work containing the Library or a
|
||||
portion of it, either verbatim or with modifications and/or translated
|
||||
straightforwardly into another language. (Hereinafter, translation is
|
||||
included without limitation in the term "modification".)
|
||||
|
||||
"Source code" for a work means the preferred form of the work for
|
||||
making modifications to it. For a library, complete source code means
|
||||
all the source code for all modules it contains, plus any associated
|
||||
interface definition files, plus the scripts used to control
|
||||
compilation and installation of the library.
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running a program using the Library is not restricted, and output from
|
||||
such a program is covered only if its contents constitute a work based
|
||||
on the Library (independent of the use of the Library in a tool for
|
||||
writing it). Whether that is true depends on what the Library does
|
||||
and what the program that uses the Library does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Library's
|
||||
complete source code as you receive it, in any medium, provided that
|
||||
you conspicuously and appropriately publish on each copy an
|
||||
appropriate copyright notice and disclaimer of warranty; keep intact
|
||||
all the notices that refer to this License and to the absence of any
|
||||
warranty; and distribute a copy of this License along with the
|
||||
Library.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy,
|
||||
and you may at your option offer warranty protection in exchange for a
|
||||
fee.
|
||||
|
||||
2. You may modify your copy or copies of the Library or any portion
|
||||
of it, thus forming a work based on the Library, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) The modified work must itself be a software library.
|
||||
|
||||
b) You must cause the files modified to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
c) You must cause the whole of the work to be licensed at no
|
||||
charge to all third parties under the terms of this License.
|
||||
|
||||
d) If a facility in the modified Library refers to a function or a
|
||||
table of data to be supplied by an application program that uses
|
||||
the facility, other than as an argument passed when the facility
|
||||
is invoked, then you must make a good faith effort to ensure that,
|
||||
in the event an application does not supply such function or
|
||||
table, the facility still operates, and performs whatever part of
|
||||
its purpose remains meaningful.
|
||||
|
||||
(For example, a function in a library to compute square roots has
|
||||
a purpose that is entirely well-defined independent of the
|
||||
application. Therefore, Subsection 2d requires that any
|
||||
application-supplied function or table used by this function must
|
||||
be optional: if the application does not supply it, the square
|
||||
root function must still compute square roots.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Library,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Library, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote
|
||||
it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Library.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Library
|
||||
with the Library (or with a work based on the Library) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may opt to apply the terms of the ordinary GNU General Public
|
||||
License instead of this License to a given copy of the Library. To do
|
||||
this, you must alter all the notices that refer to this License, so
|
||||
that they refer to the ordinary GNU General Public License, version 2,
|
||||
instead of to this License. (If a newer version than version 2 of the
|
||||
ordinary GNU General Public License has appeared, then you can specify
|
||||
that version instead if you wish.) Do not make any other change in
|
||||
these notices.
|
||||
^L
|
||||
Once this change is made in a given copy, it is irreversible for
|
||||
that copy, so the ordinary GNU General Public License applies to all
|
||||
subsequent copies and derivative works made from that copy.
|
||||
|
||||
This option is useful when you wish to copy part of the code of
|
||||
the Library into a program that is not a library.
|
||||
|
||||
4. You may copy and distribute the Library (or a portion or
|
||||
derivative of it, under Section 2) in object code or executable form
|
||||
under the terms of Sections 1 and 2 above provided that you accompany
|
||||
it with the complete corresponding machine-readable source code, which
|
||||
must be distributed under the terms of Sections 1 and 2 above on a
|
||||
medium customarily used for software interchange.
|
||||
|
||||
If distribution of object code is made by offering access to copy
|
||||
from a designated place, then offering equivalent access to copy the
|
||||
source code from the same place satisfies the requirement to
|
||||
distribute the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
5. A program that contains no derivative of any portion of the
|
||||
Library, but is designed to work with the Library by being compiled or
|
||||
linked with it, is called a "work that uses the Library". Such a
|
||||
work, in isolation, is not a derivative work of the Library, and
|
||||
therefore falls outside the scope of this License.
|
||||
|
||||
However, linking a "work that uses the Library" with the Library
|
||||
creates an executable that is a derivative of the Library (because it
|
||||
contains portions of the Library), rather than a "work that uses the
|
||||
library". The executable is therefore covered by this License.
|
||||
Section 6 states terms for distribution of such executables.
|
||||
|
||||
When a "work that uses the Library" uses material from a header file
|
||||
that is part of the Library, the object code for the work may be a
|
||||
derivative work of the Library even though the source code is not.
|
||||
Whether this is true is especially significant if the work can be
|
||||
linked without the Library, or if the work is itself a library. The
|
||||
threshold for this to be true is not precisely defined by law.
|
||||
|
||||
If such an object file uses only numerical parameters, data
|
||||
structure layouts and accessors, and small macros and small inline
|
||||
functions (ten lines or less in length), then the use of the object
|
||||
file is unrestricted, regardless of whether it is legally a derivative
|
||||
work. (Executables containing this object code plus portions of the
|
||||
Library will still fall under Section 6.)
|
||||
|
||||
Otherwise, if the work is a derivative of the Library, you may
|
||||
distribute the object code for the work under the terms of Section 6.
|
||||
Any executables containing that work also fall under Section 6,
|
||||
whether or not they are linked directly with the Library itself.
|
||||
^L
|
||||
6. As an exception to the Sections above, you may also combine or
|
||||
link a "work that uses the Library" with the Library to produce a
|
||||
work containing portions of the Library, and distribute that work
|
||||
under terms of your choice, provided that the terms permit
|
||||
modification of the work for the customer's own use and reverse
|
||||
engineering for debugging such modifications.
|
||||
|
||||
You must give prominent notice with each copy of the work that the
|
||||
Library is used in it and that the Library and its use are covered by
|
||||
this License. You must supply a copy of this License. If the work
|
||||
during execution displays copyright notices, you must include the
|
||||
copyright notice for the Library among them, as well as a reference
|
||||
directing the user to the copy of this License. Also, you must do one
|
||||
of these things:
|
||||
|
||||
a) Accompany the work with the complete corresponding
|
||||
machine-readable source code for the Library including whatever
|
||||
changes were used in the work (which must be distributed under
|
||||
Sections 1 and 2 above); and, if the work is an executable linked
|
||||
with the Library, with the complete machine-readable "work that
|
||||
uses the Library", as object code and/or source code, so that the
|
||||
user can modify the Library and then relink to produce a modified
|
||||
executable containing the modified Library. (It is understood
|
||||
that the user who changes the contents of definitions files in the
|
||||
Library will not necessarily be able to recompile the application
|
||||
to use the modified definitions.)
|
||||
|
||||
b) Use a suitable shared library mechanism for linking with the
|
||||
Library. A suitable mechanism is one that (1) uses at run time a
|
||||
copy of the library already present on the user's computer system,
|
||||
rather than copying library functions into the executable, and (2)
|
||||
will operate properly with a modified version of the library, if
|
||||
the user installs one, as long as the modified version is
|
||||
interface-compatible with the version that the work was made with.
|
||||
|
||||
c) Accompany the work with a written offer, valid for at least
|
||||
three years, to give the same user the materials specified in
|
||||
Subsection 6a, above, for a charge no more than the cost of
|
||||
performing this distribution.
|
||||
|
||||
d) If distribution of the work is made by offering access to copy
|
||||
from a designated place, offer equivalent access to copy the above
|
||||
specified materials from the same place.
|
||||
|
||||
e) Verify that the user has already received a copy of these
|
||||
materials or that you have already sent this user a copy.
|
||||
|
||||
For an executable, the required form of the "work that uses the
|
||||
Library" must include any data and utility programs needed for
|
||||
reproducing the executable from it. However, as a special exception,
|
||||
the materials to be distributed need not include anything that is
|
||||
normally distributed (in either source or binary form) with the major
|
||||
components (compiler, kernel, and so on) of the operating system on
|
||||
which the executable runs, unless that component itself accompanies
|
||||
the executable.
|
||||
|
||||
It may happen that this requirement contradicts the license
|
||||
restrictions of other proprietary libraries that do not normally
|
||||
accompany the operating system. Such a contradiction means you cannot
|
||||
use both them and the Library together in an executable that you
|
||||
distribute.
|
||||
^L
|
||||
7. You may place library facilities that are a work based on the
|
||||
Library side-by-side in a single library together with other library
|
||||
facilities not covered by this License, and distribute such a combined
|
||||
library, provided that the separate distribution of the work based on
|
||||
the Library and of the other library facilities is otherwise
|
||||
permitted, and provided that you do these two things:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work
|
||||
based on the Library, uncombined with any other library
|
||||
facilities. This must be distributed under the terms of the
|
||||
Sections above.
|
||||
|
||||
b) Give prominent notice with the combined library of the fact
|
||||
that part of it is a work based on the Library, and explaining
|
||||
where to find the accompanying uncombined form of the same work.
|
||||
|
||||
8. You may not copy, modify, sublicense, link with, or distribute
|
||||
the Library except as expressly provided under this License. Any
|
||||
attempt otherwise to copy, modify, sublicense, link with, or
|
||||
distribute the Library is void, and will automatically terminate your
|
||||
rights under this License. However, parties who have received copies,
|
||||
or rights, from you under this License will not have their licenses
|
||||
terminated so long as such parties remain in full compliance.
|
||||
|
||||
9. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Library or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Library (or any work based on the
|
||||
Library), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Library or works based on it.
|
||||
|
||||
10. Each time you redistribute the Library (or any work based on the
|
||||
Library), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute, link with or modify the Library
|
||||
subject to these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties with
|
||||
this License.
|
||||
^L
|
||||
11. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Library at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Library by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Library.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply, and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
12. If the distribution and/or use of the Library is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Library under this License
|
||||
may add an explicit geographical distribution limitation excluding those
|
||||
countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
13. The Free Software Foundation may publish revised and/or new
|
||||
versions of the Lesser General Public License from time to time.
|
||||
Such new versions will be similar in spirit to the present version,
|
||||
but may differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Library
|
||||
specifies a version number of this License which applies to it and
|
||||
"any later version", you have the option of following the terms and
|
||||
conditions either of that version or of any later version published by
|
||||
the Free Software Foundation. If the Library does not specify a
|
||||
license version number, you may choose any version ever published by
|
||||
the Free Software Foundation.
|
||||
^L
|
||||
14. If you wish to incorporate parts of the Library into other free
|
||||
programs whose distribution conditions are incompatible with these,
|
||||
write to the author to ask for permission. For software which is
|
||||
copyrighted by the Free Software Foundation, write to the Free
|
||||
Software Foundation; we sometimes make exceptions for this. Our
|
||||
decision will be guided by the two goals of preserving the free status
|
||||
of all derivatives of our free software and of promoting the sharing
|
||||
and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
|
||||
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
|
||||
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
|
||||
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
|
||||
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
|
||||
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
|
||||
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
|
||||
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
|
||||
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
|
||||
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
|
||||
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
|
||||
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
|
||||
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
|
||||
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
|
||||
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
||||
DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
^L
|
||||
How to Apply These Terms to Your New Libraries
|
||||
|
||||
If you develop a new library, and you want it to be of the greatest
|
||||
possible use to the public, we recommend making it free software that
|
||||
everyone can redistribute and change. You can do so by permitting
|
||||
redistribution under these terms (or, alternatively, under the terms
|
||||
of the ordinary General Public License).
|
||||
|
||||
To apply these terms, attach the following notices to the library.
|
||||
It is safest to attach them to the start of each source file to most
|
||||
effectively convey the exclusion of warranty; and each file should
|
||||
have at least the "copyright" line and a pointer to where the full
|
||||
notice is found.
|
||||
|
||||
|
||||
<one line to give the library's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or
|
||||
your school, if any, to sign a "copyright disclaimer" for the library,
|
||||
if necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the
|
||||
library `Frob' (a library for tweaking knobs) written by James
|
||||
Random Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1990
|
||||
Ty Coon, President of Vice
|
||||
|
||||
That's all there is to it!
|
||||
|
||||
|
||||
573
README
Normal file
573
README
Normal file
@@ -0,0 +1,573 @@
|
||||
=======================================================================
|
||||
HPE StoreOpen Software (HPE-SOS) - Version 3.4.2
|
||||
=======================================================================
|
||||
|
||||
Files in this download contain Licensed Materials, property of HPE,
|
||||
(C) Copyright 2015-2018 Hewlett Packard Enterprise Development LP
|
||||
|
||||
Files in this download also contain Licensed Materials, property of IBM,
|
||||
(C) Copyright IBM Corp. 2010, 2014
|
||||
|
||||
The HPE LTFS software application is an open-source tape file system
|
||||
implemented on dual partition tape drives.
|
||||
|
||||
This file is part of the HPE Linear Tape File System package. HPE LTFS is
|
||||
free software; you can redistribute it and/or modify it under the terms
|
||||
of the GNU Lesser General Public License as published by the Free Software
|
||||
Foundation, version 2.1 of the License.
|
||||
|
||||
HPE LTFS is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||
License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
or download the license from <http://www.gnu.org/licenses/>.
|
||||
|
||||
See the Licensing agreement (COPYING.LIB) when LTFS is downloaded.
|
||||
|
||||
Further details on HPE's LTFS implementation can be found at
|
||||
www.hpe.com/storage/storeopen
|
||||
|
||||
|
||||
=======================================================================
|
||||
HPE-SOS usage
|
||||
=======================================================================
|
||||
|
||||
1. Build and/or install the HPE-SOS application
|
||||
|
||||
Installation instuctions are in INSTALLING.linux / INSTALLING.macosx
|
||||
Information on how to build from source are in BUILDING.linux /
|
||||
BUILDING.macosx / Building.windows
|
||||
|
||||
2. Ensure that /usr/local/bin/ is in your command search path
|
||||
|
||||
For example:
|
||||
$ export PATH="$PATH:/usr/local/bin"
|
||||
|
||||
3. Format the tape cartridge in LTFS format
|
||||
|
||||
For Linux:
|
||||
$ mkltfs -d /dev/st0
|
||||
|
||||
For Mac OS X:
|
||||
$ mkltfs -d 0
|
||||
|
||||
Usage: mkltfs <options>
|
||||
|
||||
Available options are:
|
||||
-d, --device=<name> Tape device (required)
|
||||
-f, --force Force to format medium
|
||||
-s, --tape-serial=<id> Tape serial number (6 alphanumeric ASCII characters)
|
||||
-n, --volume-name=<name> Tape volume name (LTFS VOLUME by default)
|
||||
-r, --rules=<rules> Rules for choosing files to write to the
|
||||
index partition.
|
||||
The syntax of the rule argument is:
|
||||
size=1M
|
||||
size=1M/name=pattern
|
||||
size=1M/name=pattern1:pattern2:pattern3
|
||||
A file is written to the index partition if it is
|
||||
no larger than the given size AND matches at least
|
||||
one of the name patterns (if specified). The size
|
||||
argument accepts K, M, and G suffixes. Name
|
||||
patterns might contain the special characters
|
||||
'?' (match any single character) and '*' (match
|
||||
zero or more characters).
|
||||
--no-override Disallow mount-time data placement policy changes
|
||||
-w, --wipe Restore the LTFS medium to an unpartitioned medium
|
||||
(format to a legacy scratch medium)
|
||||
-q, --quiet Suppress progress information and general messages
|
||||
-t, --trace Enable function call tracing
|
||||
--syslogtrace Enable diagnostic output to stderr and syslog
|
||||
-V, --version Version information
|
||||
-h, --help This help
|
||||
-p, --advanced-help Full help, including advanced options
|
||||
-g, --interactive Interactive mode
|
||||
-i, --config=<file> Use the specified configuration file
|
||||
(default: /usr/local/etc/ltfs.conf)
|
||||
-e, --backend=<name> Use the specified tape device backend
|
||||
(default: ltotape)
|
||||
-b, --blocksize=<num> Set the LTFS record size (default: 524288)
|
||||
-c, --no-compression Disable compression on the volume
|
||||
-k, --keep-capacity Keep the tape medium's total capacity proportion
|
||||
-x, --fulltrace Enable full function call tracing (slow)
|
||||
--long-wipe Unformat the medium and erase any data on the tape
|
||||
by overwriting with special data pattern.
|
||||
This operation takes over 3 hours. Once you start,
|
||||
you cannot interrupt it.
|
||||
|
||||
LTFS17085I Plugin: Loading "ltotape" driver
|
||||
LTOTAPE backend options:
|
||||
-o log_directory=<dir> log snapshot directory (default=/var/log)
|
||||
-o nosizelimit remove 512kB limit (NOT RECOMMENDED)
|
||||
|
||||
Usage example:
|
||||
mkltfs --device=/dev/nst0 --rules="size=100K"
|
||||
mkltfs --device=/dev/nst0 --rules="size=1M/name=*.jpg"
|
||||
mkltfs --device=/dev/nst0 --rules="size=1M/name=*.jpg:*.png"
|
||||
|
||||
4. Mount the formatted tape cartridge
|
||||
$ mkdir /mnt/lto5
|
||||
$ ltfs /mnt/lto5
|
||||
|
||||
ltfs options:
|
||||
|
||||
usage: ltfs mountpoint [options]
|
||||
|
||||
general options:
|
||||
-o opt,[opt...] mount options
|
||||
-h --help print help
|
||||
-V --version print version
|
||||
|
||||
FUSE options:
|
||||
-d -o debug enable debug output (implies -f)
|
||||
-f foreground operation
|
||||
-s disable multi-threaded operation
|
||||
|
||||
-o allow_other allow access to other users
|
||||
-o allow_root allow access to root
|
||||
-o nonempty allow mounts over non-empty file/dir
|
||||
-o default_permissions enable permission checking by kernel
|
||||
-o fsname=NAME set filesystem name
|
||||
-o subtype=NAME set filesystem type
|
||||
-o large_read issue large read requests (2.4 only)
|
||||
-o max_read=N set maximum size of read requests
|
||||
|
||||
-o hard_remove immediate removal (don't hide files)
|
||||
-o use_ino let filesystem set inode numbers
|
||||
-o readdir_ino try to fill in d_ino in readdir
|
||||
-o direct_io use direct I/O
|
||||
-o kernel_cache cache files in kernel
|
||||
-o [no]auto_cache enable caching based on modification times (off)
|
||||
-o umask=M set file permissions (octal)
|
||||
-o uid=N set file owner
|
||||
-o gid=N set file group
|
||||
-o entry_timeout=T cache timeout for names (1.0s)
|
||||
-o negative_timeout=T cache timeout for deleted names (0.0s)
|
||||
-o attr_timeout=T cache timeout for attributes (1.0s)
|
||||
-o ac_attr_timeout=T auto cache timeout for attributes (attr_timeout)
|
||||
-o intr allow requests to be interrupted
|
||||
-o intr_signal=NUM signal to send on interrupt (10)
|
||||
-o modules=M1[:M2...] names of modules to push onto filesystem stack
|
||||
|
||||
-o max_write=N set maximum size of write requests
|
||||
-o max_readahead=N set maximum readahead
|
||||
-o async_read perform reads asynchronously (default)
|
||||
-o sync_read perform reads synchronously
|
||||
-o atomic_o_trunc enable atomic open+truncate support
|
||||
-o big_writes enable larger than 4kB writes
|
||||
-o no_remote_lock disable remote file locking
|
||||
|
||||
Module options:
|
||||
|
||||
[subdir]
|
||||
-o subdir=DIR prepend this directory to all paths (mandatory)
|
||||
-o [no]rellinks transform absolute symlinks to relative
|
||||
|
||||
[iconv]
|
||||
-o from_code=CHARSET original encoding of file names (default: UTF-8)
|
||||
-o to_code=CHARSET new encoding of the file names (default: UTF-8)
|
||||
|
||||
LTFS options:
|
||||
-o config_file=<file> Configuration file
|
||||
(default: /usr/local/etc/ltfs.conf)
|
||||
-o work_directory=<dir> LTFS work directory (default: /tmp/ltfs)
|
||||
-o atime Update index if only access times have changed
|
||||
-o noatime Do not update index if only access times have
|
||||
changed (default)
|
||||
-o tape_backend=<name> tape backend to use (default: ltotape)
|
||||
-o iosched_backend=<name> I/O scheduler implementation to use
|
||||
(default: unified, use "none" to disable)
|
||||
-o umask=<mode> Override default permission mask
|
||||
(3 octal digits, default: 000)
|
||||
-o fmask=<mode> Override file permission mask
|
||||
(3 octal digits, default: 000)
|
||||
-o dmask=<mode> Override directory permission mask
|
||||
(3 octal digits, default: 000)
|
||||
-o min_pool_size=<num> Minimum write cache pool size. Cache objects
|
||||
are 1 MB each (default: 25)
|
||||
-o max_pool_size=<num> Maximum write cache pool size. Cache objects
|
||||
are 1 MB each (default: 50)
|
||||
-o rules=<rules> Rules for choosing files to write to the
|
||||
index partition.
|
||||
The syntax of the rule argument is:
|
||||
size=1M
|
||||
size=1M/name=pattern
|
||||
size=1M/name=pattern1:pattern2:pattern3
|
||||
A file is written to the index partition if
|
||||
it is no larger than the given size AND
|
||||
matches at least one of the name patterns (if
|
||||
specified). The size argument accepts K, M,
|
||||
and G suffixes. Name patterns might contain
|
||||
the special characters '?' (match any single
|
||||
character) and '*' (match zero or more
|
||||
characters).
|
||||
-o quiet Disable informational messages (same as
|
||||
verbose=1)
|
||||
-o trace Enable diagnostic output (same as verbose=3)
|
||||
-o syslogtrace Enable diagnostic output to stderr and syslog
|
||||
(same as verbose=303)
|
||||
-o fulltrace Enable full call tracing (same as verbose=4)
|
||||
-o verbose=<num> Override output verbosity directly (default:2)
|
||||
-o eject Eject the cartridge after unmount
|
||||
-o noeject Do not eject the cartridge after unmount
|
||||
(default)
|
||||
-o sync_type=<type> Specify sync type (default: time@5)
|
||||
<type> should be specified as follows:
|
||||
time@min: LTFS attempts to write an index
|
||||
every 'min' minutes. min should be a
|
||||
decimal value from 1 to 10. A value of
|
||||
0 is equivalent to
|
||||
"-o sync_type=unmount"
|
||||
(default: min=5)
|
||||
close: LTFS attempts to write an index
|
||||
when each file is closed. This is not
|
||||
recommended for normal use.
|
||||
unmount: LTFS attempts to write an index
|
||||
only when the medium is unmounted
|
||||
-o force_mount_no_eod Skip EOD existence check when mounting
|
||||
(read-only mount)
|
||||
Only use for a CM corrupted medium
|
||||
-o rollback_mount=<gen> Attempt to mount on previous index generation
|
||||
(read-only mount)
|
||||
-o release_device Clear device reservation (should be specified
|
||||
with -o devname
|
||||
-o capture_index Capture latest index to the work directory at
|
||||
unmount
|
||||
-a Advanced help, including standard FUSE options
|
||||
|
||||
453e LTFS17085I Plugin: Loading "ltotape" driver
|
||||
LTOTAPE backend options:
|
||||
-o devname=<dev> tape device (default=/dev/nst0)
|
||||
-o log_directory=<dir> log snapshot directory (default=/var/log)
|
||||
-o nosizelimit remove 512kB limit (NOT RECOMMENDED)
|
||||
|
||||
5. Write files to the LTFS volume
|
||||
For example:
|
||||
$ cp -RL /home/user1 /mnt/lto5/
|
||||
|
||||
6. Unmount the tape cartridge
|
||||
This flushes the data buffer of the file system to the tape cartridge,
|
||||
and prepares for eject.
|
||||
|
||||
$ umount /mnt/lto5
|
||||
OR
|
||||
$ fusermount -u /mnt/lto5 (Linux only)
|
||||
|
||||
7. If at some time in the future user wishes to remove the LTFS format from
|
||||
the cartridge so that it can be reused for a different purpose, use
|
||||
the unltfs utility. Note that this will IRRETRIEVABLY DESTROY all
|
||||
contents of the cartridge, so use it only when you are sure that you
|
||||
wish to erase the LTFS volume.
|
||||
|
||||
$ unltfs -d /dev/st0
|
||||
|
||||
unltfs options:
|
||||
|
||||
Usage: unltfs <options>
|
||||
|
||||
-d, --device=<name> specifies the tape drive to use
|
||||
-y, --justdoit omits normal verification steps, reformats without
|
||||
further prompting
|
||||
-e --eject eject tape after operation completes successfully
|
||||
-q, --quiet suppresses all progress output
|
||||
-t, --trace displays detailed progress
|
||||
-h, --help shows this help
|
||||
-i, --config=<file> overrides the default config file
|
||||
-b, --backend specifies a different tape backend subsystem
|
||||
-x, --fulltrace displays debug information (verbose)
|
||||
|
||||
8. If the cartridge becomes inconsistent due to power failure, improper
|
||||
unmount, or other exceptional conditions then the ltfsck utility can
|
||||
be used to repair it / make it consistent again.
|
||||
|
||||
$ ltfsck /dev/st0
|
||||
|
||||
ltfsck options
|
||||
|
||||
Usage: ltfsck [options] filesys
|
||||
|
||||
filesys Device file for the tape drive
|
||||
|
||||
Available options are:
|
||||
-g, --generation=<generation> Specify the generation to roll back
|
||||
-r, --rollback Roll back to the point specified by -g
|
||||
-n, --no-rollback Do not roll back. Verify the point specified
|
||||
by -g (default)
|
||||
-f, --full-recovery Recover extra data blocks into directory
|
||||
_ltfs_lostandfound
|
||||
-z, --deep-recovery Recover a cartridge with missing EOD
|
||||
Some blocks might be erased, but recover to
|
||||
final unmount point with an index version of
|
||||
at least 2.0.0 or earlier. This option must
|
||||
be used for a cartridge that cannot be
|
||||
recovered by a normal repair)
|
||||
-l, --list-rollback-points List rollback points
|
||||
-m, --full-index-info Display full index information (works only
|
||||
with the -l option)
|
||||
-v, --traverse=<strategy> Set traverse mode for listing roll back
|
||||
points. Strategy should be forward or
|
||||
backward. (default: backward)
|
||||
-j, --erase-history Erase history at rollback
|
||||
-k, --keep-history Keep history at rollback (default)
|
||||
-q, --quiet Suppress informational messages
|
||||
-t, --trace Enable diagnostic output
|
||||
--syslogtrace Enable diagnostic output to stderr and syslog
|
||||
-V, --version Version information
|
||||
-h, --help This help
|
||||
-p, --advanced-help Full help, including advanced options
|
||||
-i, --config=<file> Use the specified configuration file
|
||||
(default: /usr/local/etc/ltfs.conf)
|
||||
-e, --backend=<name> Override the default tape device backend
|
||||
-x, --fulltrace Enable full function call tracing (slow)
|
||||
--capture-index Capture index information to the current
|
||||
directory (-g is effective for this option)
|
||||
--salvage-rollback-points List the rollback points of a cartridge that
|
||||
has no EOD
|
||||
|
||||
LTFS17085I Plugin: Loading "ltotape" driver
|
||||
LTOTAPE backend options:
|
||||
-o log_directory=<dir> log snapshot directory (default=/var/log)
|
||||
-o nosizelimit remove 512kB limit (NOT RECOMMENDED)
|
||||
|
||||
Usage example:
|
||||
ltfsck /dev/nst0
|
||||
ltfsck --generation --rollback /dev/nst0
|
||||
ltfsck --deep-recovery --full-recovery /dev/nst0
|
||||
|
||||
Changes from version v3.4.1 to 3.4.2:
|
||||
=====================================
|
||||
|
||||
- Corrected issue switching in/out of append-only mode with LTO7/LTO8 drives
|
||||
- Corrected issue with ltfscopy and md5sum verification
|
||||
|
||||
Changes from version v3.4.0 to 3.4.1:
|
||||
=====================================
|
||||
|
||||
- Corrected issue affecting sending of library drive tickets to CVTL
|
||||
- Corrected issue with truncation of barcodes
|
||||
|
||||
Changes from version v3.3.0 to 3.4.0:
|
||||
=====================================
|
||||
|
||||
- Support append-only mode option flag for LTO7 & LTO8 drives
|
||||
- Defect fixes
|
||||
|
||||
Changes from version v3.2.0 to 3.3.0:
|
||||
=====================================
|
||||
|
||||
- Support for HPE LTO8 tape drives
|
||||
- Support for SNIA 2.4 Percent Encoding
|
||||
- Support for SNIA 2.4 Vol Avisory Locking
|
||||
- Support for SNIA 2.4 Open for Write
|
||||
- Defect fixes
|
||||
|
||||
Changes from version v3.1.0 to 3.2.0:
|
||||
=====================================
|
||||
|
||||
- Support for Volume Advisory Locking
|
||||
- Support for volume UUID
|
||||
- Support for Windows Server 2016
|
||||
- Support for macOS Sierra
|
||||
- Support for capturing index by default (Windows and Mac Only)
|
||||
- LTFSCOPY default behavior changed to prompt before overwriting files
|
||||
- LTFSCOPY will preserve modification time with new option '-t'
|
||||
- Added support for HPE Archive Manager tape identification and mounting the same as read only
|
||||
- Defect fixes
|
||||
|
||||
Changes from version v3.0.0 to 3.1.0:
|
||||
=====================================
|
||||
|
||||
- Hewlett Packard Enterprise Branding
|
||||
|
||||
Changes from version v2.3.0 to 3.0.0:
|
||||
=====================================
|
||||
|
||||
- Support for HP LTO-7 Ultrium SAS standalone tape drives
|
||||
- LTFS Configurator displays messages indicating the progress of the mount operation
|
||||
- LTFS Configurator supports custom names for tape drives
|
||||
- CartridgeBrowser utility supports search based on file attribute values
|
||||
|
||||
Changes from version v2.2.1 to 2.3.0:
|
||||
=====================================
|
||||
|
||||
- Added multidrive support for windows
|
||||
- Added support for icons and label to indicate the status of the cartridge in windows
|
||||
- Added support for search option within Cartridge Browser
|
||||
- Added new utility "LTFS Smart copy" for efficient data transfer from cartridge and content data verification for files on the cartridge.
|
||||
- Implemented ability to list rollback points of a cartridge without EOD marker (--salvage-rollback-points)
|
||||
- Installation in Linux (RHEL)is now using RPM package.
|
||||
- LTFS is built with ICU version 50.1.2
|
||||
- Added support for RHEL 7.0
|
||||
- Added support for MacOSX 10.10
|
||||
- Removed support for SLES
|
||||
- Defect fixes
|
||||
|
||||
Changes from version v2.2.0 to 2.2.1:
|
||||
=====================================
|
||||
|
||||
- Added 'interactive mode' for mkltfs utility.
|
||||
- The default 'mkltfs' behavior modified to avoid user confirmation.
|
||||
- The '--quite' option in 'mkltfs' and 'unltfs' utilities now does not imply '--force'
|
||||
|
||||
Changes from version v2.1.1 to 2.2.0:
|
||||
=====================================
|
||||
|
||||
- Added support for LTFS Spec Version 2.2.0
|
||||
- Added support for MAM Barcode attribute
|
||||
- Added support for ICU version 4.8.1.1
|
||||
- Added support for RHEL 6.5 and RHEL 5.10
|
||||
- Added support for Windows 2012 R2 and Windows 8.1
|
||||
- Removed support for MacOSX 10.6
|
||||
- Defects fixed in Windows and Mac GUI
|
||||
- Defects fixed in Windows and Mac Installer
|
||||
- Defects fixed in LTFS core application
|
||||
|
||||
Changes from version v2.1.0 to 2.1.1:
|
||||
======================================
|
||||
|
||||
- Error fixes in windows installer to support upgrade
|
||||
- Fix to accept the index rules correctly when supplied using the LTFSConfigurator
|
||||
- Fix in ltfsck when run with --deep-recovery option
|
||||
- Fix to mount full tapes as read-only
|
||||
- Fix to clear the EWSTATE flag when a full tape is rolled back with --erase-history option
|
||||
- Fixed memory leaks
|
||||
|
||||
|
||||
Changes from version v2.0.0 to 2.1.0:
|
||||
======================================
|
||||
|
||||
- Enhanced LTFS driver for small file support(Improve file creation/listing time
|
||||
when a directory has many small files)
|
||||
- Improved Wizards and Configuration tool for Windows GUI
|
||||
- Cartridge utilities can be run directly from LTFSconfigurator
|
||||
- Default volume name is LTFS_VOLUME
|
||||
- Enhanced support for LTO CM attributes
|
||||
- Added support LTFS format specifications 2.1.0
|
||||
- Added support for symbolic link for Linux and Mac
|
||||
- Added support for rollback mount/read-only mount
|
||||
- Added support to save the current index as a xml file on unmount or when 'ltfsck' is run.
|
||||
- Application can run in background now in Mac.
|
||||
- Rollback of index is now possible only by specifying the generation number of the index,
|
||||
rollback using timespec of the index is disabled.
|
||||
- Implemented signal handlers to handle kill/interrupt signals and unmount the volume even when
|
||||
the mount is being done.
|
||||
- Tape can be unformatted by specifying -w option to mkltfs
|
||||
|
||||
|
||||
Changes from version v1.2.2 to v2.0.0:
|
||||
======================================
|
||||
|
||||
- Added support for LTO6 tape drives
|
||||
- Set the Application Format Version MAM attribute when formatting a volume
|
||||
- Added support for four new virtual extended attributes (VEA's):
|
||||
ltfs.softwareProduct, ltfs.softwareVendor, ltfs.softwareVersion,
|
||||
ltfs.softwareFormatSpec
|
||||
- Improved the handling of a cartridge that was not unmounted properly
|
||||
- Improved the process for storing a file on the index partition when the
|
||||
data placement policy is specified
|
||||
- Modified to update the change time of a file or directory when the VEA
|
||||
ltfs.modifyTime is written
|
||||
- Fixed the problem that ltfs.mediaStorageAlert VEA is cleared when another
|
||||
VEA is read
|
||||
- Fixed a problem in ltfsck when trying to list rollback points and a corrupt
|
||||
index is encountered
|
||||
- Added a check for a write-protected cartridge in mkltfs
|
||||
|
||||
|
||||
Changes from version v1.2.0 to v1.2.2:
|
||||
======================================
|
||||
|
||||
- Added the unltfs utility
|
||||
- Added "-o nosizelimit" option to ltfs
|
||||
- Improved message reporting for advisory conditions that previously were
|
||||
being reported as error conditions
|
||||
- Installer on Mac OS X now tries to create the logfile directory if it
|
||||
doesn't already exist
|
||||
- Mac OS X package now includes an application to simplify the management
|
||||
of an LTFS volume
|
||||
|
||||
|
||||
Changes from version v1.1.0 to v1.2.0:
|
||||
======================================
|
||||
|
||||
- Conforms with new LTFS Format Specification 2.0.0
|
||||
- Backward compatibility with Version 1.0 formated tapes, and built-in
|
||||
automatic migration mechanism to Version 2.0.0 format
|
||||
- Improved the parsing and handling of the index information
|
||||
- Supports standardized virtual extended attribute (VEA) names.
|
||||
VEA names used in previous release of LTFS become obsolete and
|
||||
no longer available.
|
||||
- See Important Note below
|
||||
- Enhanced the ability to recover the tapes in inconsistent state,
|
||||
which was caused by unexpected power outage.
|
||||
- Added a new function to flush the in-memory user data to the tape medium
|
||||
at pre-defined timing; either sync at file close or sync periodically.
|
||||
The default behaviour is now to sync the index every five minutes.
|
||||
- Changed the command line syntax of ltfs and mkltfs command for
|
||||
specifying the data placement rules
|
||||
- Check for incompatible media and report problems in a helpful way
|
||||
- Various minor corrections and updates
|
||||
|
||||
|
||||
Important Note:
|
||||
===============
|
||||
|
||||
Earlier versions of the HPE LTFS application supported the original 1.0 LTFS
|
||||
format specification; version v1.2.0 and later supports the updated 2.0.0 LTFS
|
||||
format specification. LTFS volumes created with application v1.2.0 will not
|
||||
be readable in older versions of the LTFS application, as shown in the
|
||||
following table:
|
||||
|
||||
Cartridge written by Cartridge written by Cartridge written by
|
||||
LTFS application v1.1.0 or earlier v1.2.0 or later v2.1.0 or later
|
||||
-------------------- ---------------------- ---------------------- -----------------------
|
||||
v1.1.0 or earlier Read/Write ok Cannot be mounted N/A
|
||||
|
||||
v1.2.0 or later Readable ok; will Read/Write ok N/A
|
||||
automatically be
|
||||
converted to new
|
||||
format if written
|
||||
|
||||
v2.1.0 or later Readable ok; will Readable ok; will Read/Write ok
|
||||
automatically be automatically be
|
||||
converted to new converted to new
|
||||
format if written format if written
|
||||
|
||||
HPE recommends that all instances of HPE LTFS should be updated to latest version
|
||||
to avoid these compatibility issues.
|
||||
|
||||
If for some reason it is important to maintain cartridges readable by
|
||||
previous versions of the HPE LTFS application, care should be taken to avoid
|
||||
writing to those cartridges with the new version of the application. This
|
||||
may be accomplished by mounting the volume as read-only, or by using the
|
||||
cartridge write-protect tab to prevent cartridge updates. However this
|
||||
should be regarded as a temporary measure until all the application instances
|
||||
can be updated to latest version.
|
||||
|
||||
Limitations:
|
||||
============
|
||||
|
||||
1. When the tape cartridge is almost full, further write operations will
|
||||
be prevented. The free space on the tape (e.g. from the df command)
|
||||
will indicate that there is still some capacity available, but that
|
||||
is reserved for updating the index when the tape is unmounted.
|
||||
|
||||
2. Future mounts of a cartridge that is almost full (has passed the
|
||||
point at which "early warning" is reported) will mount as Read Only,
|
||||
to prevent further modifications which may not fit on tape. This
|
||||
status is cleared when a cartridge is reformatted (using mkltfs) or
|
||||
when the volume is rolled back erasing history (using ltfsck).
|
||||
|
||||
3. (Mac OS X) LTFS does not support moving a folder within LTFS.
|
||||
Any attempt to move a folder in such a manner will result in an
|
||||
"operation not permitted" error, and the operation will be ignored.
|
||||
The user can still move a file within LTFS, and the user can also move
|
||||
a folder from LTFS to non-LTFS file system or vice versa.
|
||||
|
||||
4. (Mac OS X) Mac OS X's Spotlight will not display the files
|
||||
on LTFS as a result of search.
|
||||
|
||||
|
||||
42
ltfs/Makefile.am
Executable file
42
ltfs/Makefile.am
Executable file
@@ -0,0 +1,42 @@
|
||||
#
|
||||
# %Z% %I% %W% %G% %U%
|
||||
#
|
||||
# ZZ_Copyright_BEGIN
|
||||
#
|
||||
#
|
||||
# Licensed Materials - Property of IBM
|
||||
#
|
||||
# IBM Linear Tape File System Single Drive Edition Version 2.2.0.2 for Linux and Mac OS X
|
||||
#
|
||||
# Copyright IBM Corp. 2010, 2014
|
||||
#
|
||||
# This file is part of the IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X
|
||||
# (formally known as IBM Linear Tape File System)
|
||||
#
|
||||
# The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is free software;
|
||||
# you can redistribute it and/or modify it under the terms of the GNU Lesser
|
||||
# General Public License as published by the Free Software Foundation,
|
||||
# version 2.1 of the License.
|
||||
#
|
||||
# The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is distributed in the
|
||||
# hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the GNU Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this library; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
# or download the license from <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
#
|
||||
# ZZ_Copyright_END
|
||||
#
|
||||
###############################################################################
|
||||
#
|
||||
# Copyright (C) 2012 OSR Open Systems Resources, Inc.
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
nobase_pkginclude_HEADERS = config.h
|
||||
|
||||
SUBDIRS = messages src conf init.d
|
||||
828
ltfs/Makefile.in
Normal file
828
ltfs/Makefile.in
Normal file
@@ -0,0 +1,828 @@
|
||||
# Makefile.in generated by automake 1.11.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
|
||||
# Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
#
|
||||
# %Z% %I% %W% %G% %U%
|
||||
#
|
||||
# ZZ_Copyright_BEGIN
|
||||
#
|
||||
#
|
||||
# Licensed Materials - Property of IBM
|
||||
#
|
||||
# IBM Linear Tape File System Single Drive Edition Version 2.2.0.2 for Linux and Mac OS X
|
||||
#
|
||||
# Copyright IBM Corp. 2010, 2014
|
||||
#
|
||||
# This file is part of the IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X
|
||||
# (formally known as IBM Linear Tape File System)
|
||||
#
|
||||
# The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is free software;
|
||||
# you can redistribute it and/or modify it under the terms of the GNU Lesser
|
||||
# General Public License as published by the Free Software Foundation,
|
||||
# version 2.1 of the License.
|
||||
#
|
||||
# The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is distributed in the
|
||||
# hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the GNU Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this library; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
# or download the license from <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
#
|
||||
# ZZ_Copyright_END
|
||||
#
|
||||
###############################################################################
|
||||
#
|
||||
# Copyright (C) 2012 OSR Open Systems Resources, Inc.
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkglibexecdir = $(libexecdir)/@PACKAGE@
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
target_triplet = @target@
|
||||
subdir = .
|
||||
DIST_COMMON = $(am__configure_deps) $(nobase_pkginclude_HEADERS) \
|
||||
$(srcdir)/Makefile.am $(srcdir)/Makefile.in \
|
||||
$(srcdir)/config.h.in $(top_srcdir)/configure \
|
||||
build-aux/compile build-aux/config.guess build-aux/config.sub \
|
||||
build-aux/depcomp build-aux/install-sh build-aux/ltmain.sh \
|
||||
build-aux/missing
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
|
||||
configure.lineno config.status.lineno
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
|
||||
html-recursive info-recursive install-data-recursive \
|
||||
install-dvi-recursive install-exec-recursive \
|
||||
install-html-recursive install-info-recursive \
|
||||
install-pdf-recursive install-ps-recursive install-recursive \
|
||||
installcheck-recursive installdirs-recursive pdf-recursive \
|
||||
ps-recursive uninstall-recursive
|
||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
||||
am__vpath_adj = case $$p in \
|
||||
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
*) f=$$p;; \
|
||||
esac;
|
||||
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
|
||||
am__install_max = 40
|
||||
am__nobase_strip_setup = \
|
||||
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
|
||||
am__nobase_strip = \
|
||||
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
|
||||
am__nobase_list = $(am__nobase_strip_setup); \
|
||||
for p in $$list; do echo "$$p $$p"; done | \
|
||||
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
|
||||
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
|
||||
if (++n[$$2] == $(am__install_max)) \
|
||||
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
|
||||
END { for (dir in files) print dir, files[dir] }'
|
||||
am__base_list = \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
|
||||
am__installdirs = "$(DESTDIR)$(pkgincludedir)"
|
||||
HEADERS = $(nobase_pkginclude_HEADERS)
|
||||
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
|
||||
distclean-recursive maintainer-clean-recursive
|
||||
AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
|
||||
$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
|
||||
distdir dist dist-all distcheck
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DIST_SUBDIRS = $(SUBDIRS)
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
distdir = $(PACKAGE)-$(VERSION)
|
||||
top_distdir = $(distdir)
|
||||
am__remove_distdir = \
|
||||
{ test ! -d "$(distdir)" \
|
||||
|| { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
|
||||
&& rm -fr "$(distdir)"; }; }
|
||||
am__relativize = \
|
||||
dir0=`pwd`; \
|
||||
sed_first='s,^\([^/]*\)/.*$$,\1,'; \
|
||||
sed_rest='s,^[^/]*/*,,'; \
|
||||
sed_last='s,^.*/\([^/]*\)$$,\1,'; \
|
||||
sed_butlast='s,/*[^/]*$$,,'; \
|
||||
while test -n "$$dir1"; do \
|
||||
first=`echo "$$dir1" | sed -e "$$sed_first"`; \
|
||||
if test "$$first" != "."; then \
|
||||
if test "$$first" = ".."; then \
|
||||
dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
|
||||
dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
|
||||
else \
|
||||
first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
|
||||
if test "$$first2" = "$$first"; then \
|
||||
dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
|
||||
else \
|
||||
dir2="../$$dir2"; \
|
||||
fi; \
|
||||
dir0="$$dir0"/"$$first"; \
|
||||
fi; \
|
||||
fi; \
|
||||
dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
|
||||
done; \
|
||||
reldir="$$dir2"
|
||||
DIST_ARCHIVES = $(distdir).tar.gz
|
||||
GZIP_ENV = --best
|
||||
distuninstallcheck_listfiles = find . -type f -print
|
||||
distcleancheck_listfiles = find . -type f -print
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMTAR = @AMTAR@
|
||||
AM_CFLAGS = @AM_CFLAGS@
|
||||
AM_CPPFLAGS = @AM_CPPFLAGS@
|
||||
AM_LDFLAGS = @AM_LDFLAGS@
|
||||
AR = @AR@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CRC_OPTIMIZE = @CRC_OPTIMIZE@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFAULT_DRIVER = @DEFAULT_DRIVER@
|
||||
DEFAULT_IOSCHED = @DEFAULT_IOSCHED@
|
||||
DEFAULT_KMI = @DEFAULT_KMI@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DSYMUTIL = @DSYMUTIL@
|
||||
DUMPBIN = @DUMPBIN@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
FGREP = @FGREP@
|
||||
FUSE_MODULE_CFLAGS = @FUSE_MODULE_CFLAGS@
|
||||
FUSE_MODULE_LIBS = @FUSE_MODULE_LIBS@
|
||||
GENRB = @GENRB@
|
||||
GREP = @GREP@
|
||||
ICU_MODULE_CFLAGS = @ICU_MODULE_CFLAGS@
|
||||
ICU_MODULE_LIBS = @ICU_MODULE_LIBS@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LIBXML2_MODULE_CFLAGS = @LIBXML2_MODULE_CFLAGS@
|
||||
LIBXML2_MODULE_LIBS = @LIBXML2_MODULE_LIBS@
|
||||
LIPO = @LIPO@
|
||||
LN_S = @LN_S@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
NM = @NM@
|
||||
NMEDIT = @NMEDIT@
|
||||
OBJDUMP = @OBJDUMP@
|
||||
OBJEXT = @OBJEXT@
|
||||
OTOOL = @OTOOL@
|
||||
OTOOL64 = @OTOOL64@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PKGDATA = @PKGDATA@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
RANLIB = @RANLIB@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
STRIP = @STRIP@
|
||||
UUID_MODULE_CFLAGS = @UUID_MODULE_CFLAGS@
|
||||
UUID_MODULE_LIBS = @UUID_MODULE_LIBS@
|
||||
VERSION = @VERSION@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
build = @build@
|
||||
build_alias = @build_alias@
|
||||
build_cpu = @build_cpu@
|
||||
build_os = @build_os@
|
||||
build_vendor = @build_vendor@
|
||||
builddir = @builddir@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host = @host@
|
||||
host_alias = @host_alias@
|
||||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
htmldir = @htmldir@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
localedir = @localedir@
|
||||
localstatedir = @localstatedir@
|
||||
lt_ECHO = @lt_ECHO@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
oldincludedir = @oldincludedir@
|
||||
pdfdir = @pdfdir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target = @target@
|
||||
target_alias = @target_alias@
|
||||
target_cpu = @target_cpu@
|
||||
target_os = @target_os@
|
||||
target_vendor = @target_vendor@
|
||||
top_build_prefix = @top_build_prefix@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
nobase_pkginclude_HEADERS = config.h
|
||||
SUBDIRS = messages src conf init.d
|
||||
all: config.h
|
||||
$(MAKE) $(AM_MAKEFLAGS) all-recursive
|
||||
|
||||
.SUFFIXES:
|
||||
am--refresh:
|
||||
@:
|
||||
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \
|
||||
$(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \
|
||||
&& exit 0; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
echo ' $(SHELL) ./config.status'; \
|
||||
$(SHELL) ./config.status;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
$(SHELL) ./config.status --recheck
|
||||
|
||||
$(top_srcdir)/configure: $(am__configure_deps)
|
||||
$(am__cd) $(srcdir) && $(AUTOCONF)
|
||||
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||
$(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
|
||||
$(am__aclocal_m4_deps):
|
||||
|
||||
config.h: stamp-h1
|
||||
@if test ! -f $@; then \
|
||||
rm -f stamp-h1; \
|
||||
$(MAKE) $(AM_MAKEFLAGS) stamp-h1; \
|
||||
else :; fi
|
||||
|
||||
stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
|
||||
@rm -f stamp-h1
|
||||
cd $(top_builddir) && $(SHELL) ./config.status config.h
|
||||
$(srcdir)/config.h.in: $(am__configure_deps)
|
||||
($(am__cd) $(top_srcdir) && $(AUTOHEADER))
|
||||
rm -f stamp-h1
|
||||
touch $@
|
||||
|
||||
distclean-hdr:
|
||||
-rm -f config.h stamp-h1
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
|
||||
distclean-libtool:
|
||||
-rm -f libtool config.lt
|
||||
install-nobase_pkgincludeHEADERS: $(nobase_pkginclude_HEADERS)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(pkgincludedir)" || $(MKDIR_P) "$(DESTDIR)$(pkgincludedir)"
|
||||
@list='$(nobase_pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \
|
||||
$(am__nobase_list) | while read dir files; do \
|
||||
xfiles=; for file in $$files; do \
|
||||
if test -f "$$file"; then xfiles="$$xfiles $$file"; \
|
||||
else xfiles="$$xfiles $(srcdir)/$$file"; fi; done; \
|
||||
test -z "$$xfiles" || { \
|
||||
test "x$$dir" = x. || { \
|
||||
echo "$(MKDIR_P) '$(DESTDIR)$(pkgincludedir)/$$dir'"; \
|
||||
$(MKDIR_P) "$(DESTDIR)$(pkgincludedir)/$$dir"; }; \
|
||||
echo " $(INSTALL_HEADER) $$xfiles '$(DESTDIR)$(pkgincludedir)/$$dir'"; \
|
||||
$(INSTALL_HEADER) $$xfiles "$(DESTDIR)$(pkgincludedir)/$$dir" || exit $$?; }; \
|
||||
done
|
||||
|
||||
uninstall-nobase_pkgincludeHEADERS:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(nobase_pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \
|
||||
$(am__nobase_strip_setup); files=`$(am__nobase_strip)`; \
|
||||
test -n "$$files" || exit 0; \
|
||||
echo " ( cd '$(DESTDIR)$(pkgincludedir)' && rm -f" $$files ")"; \
|
||||
cd "$(DESTDIR)$(pkgincludedir)" && rm -f $$files
|
||||
|
||||
# This directory's subdirectories are mostly independent; you can cd
|
||||
# into them and run `make' without going through this Makefile.
|
||||
# To change the values of `make' variables: instead of editing Makefiles,
|
||||
# (1) if the variable is set in `config.status', edit `config.status'
|
||||
# (which will cause the Makefiles to be regenerated when you run `make');
|
||||
# (2) otherwise, pass the desired values on the `make' command line.
|
||||
$(RECURSIVE_TARGETS):
|
||||
@fail= failcom='exit 1'; \
|
||||
for f in x $$MAKEFLAGS; do \
|
||||
case $$f in \
|
||||
*=* | --[!k]*);; \
|
||||
*k*) failcom='fail=yes';; \
|
||||
esac; \
|
||||
done; \
|
||||
dot_seen=no; \
|
||||
target=`echo $@ | sed s/-recursive//`; \
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
echo "Making $$target in $$subdir"; \
|
||||
if test "$$subdir" = "."; then \
|
||||
dot_seen=yes; \
|
||||
local_target="$$target-am"; \
|
||||
else \
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| eval $$failcom; \
|
||||
done; \
|
||||
if test "$$dot_seen" = "no"; then \
|
||||
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
|
||||
fi; test -z "$$fail"
|
||||
|
||||
$(RECURSIVE_CLEAN_TARGETS):
|
||||
@fail= failcom='exit 1'; \
|
||||
for f in x $$MAKEFLAGS; do \
|
||||
case $$f in \
|
||||
*=* | --[!k]*);; \
|
||||
*k*) failcom='fail=yes';; \
|
||||
esac; \
|
||||
done; \
|
||||
dot_seen=no; \
|
||||
case "$@" in \
|
||||
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
|
||||
*) list='$(SUBDIRS)' ;; \
|
||||
esac; \
|
||||
rev=''; for subdir in $$list; do \
|
||||
if test "$$subdir" = "."; then :; else \
|
||||
rev="$$subdir $$rev"; \
|
||||
fi; \
|
||||
done; \
|
||||
rev="$$rev ."; \
|
||||
target=`echo $@ | sed s/-recursive//`; \
|
||||
for subdir in $$rev; do \
|
||||
echo "Making $$target in $$subdir"; \
|
||||
if test "$$subdir" = "."; then \
|
||||
local_target="$$target-am"; \
|
||||
else \
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| eval $$failcom; \
|
||||
done && test -z "$$fail"
|
||||
tags-recursive:
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
|
||||
done
|
||||
ctags-recursive:
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
|
||||
done
|
||||
|
||||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
mkid -fID $$unique
|
||||
tags: TAGS
|
||||
|
||||
TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
set x; \
|
||||
here=`pwd`; \
|
||||
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
|
||||
include_option=--etags-include; \
|
||||
empty_fix=.; \
|
||||
else \
|
||||
include_option=--include; \
|
||||
empty_fix=; \
|
||||
fi; \
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
test ! -f $$subdir/TAGS || \
|
||||
set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
|
||||
fi; \
|
||||
done; \
|
||||
list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
shift; \
|
||||
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
if test $$# -gt 0; then \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
"$$@" $$unique; \
|
||||
else \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$unique; \
|
||||
fi; \
|
||||
fi
|
||||
ctags: CTAGS
|
||||
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$unique
|
||||
|
||||
GTAGS:
|
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& $(am__cd) $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) "$$here"
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
$(am__remove_distdir)
|
||||
test -d "$(distdir)" || mkdir "$(distdir)"
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
dist_files=`for file in $$list; do echo $$file; done | \
|
||||
sed -e "s|^$$srcdirstrip/||;t" \
|
||||
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||
case $$dist_files in \
|
||||
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||
sort -u` ;; \
|
||||
esac; \
|
||||
for file in $$dist_files; do \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d "$(distdir)/$$file"; then \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
||||
else \
|
||||
test -f "$(distdir)/$$file" \
|
||||
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
test -d "$(distdir)/$$subdir" \
|
||||
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
|
||||
$(am__relativize); \
|
||||
new_distdir=$$reldir; \
|
||||
dir1=$$subdir; dir2="$(top_distdir)"; \
|
||||
$(am__relativize); \
|
||||
new_top_distdir=$$reldir; \
|
||||
echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
|
||||
echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
|
||||
($(am__cd) $$subdir && \
|
||||
$(MAKE) $(AM_MAKEFLAGS) \
|
||||
top_distdir="$$new_top_distdir" \
|
||||
distdir="$$new_distdir" \
|
||||
am__remove_distdir=: \
|
||||
am__skip_length_check=: \
|
||||
am__skip_mode_fix=: \
|
||||
distdir) \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
-test -n "$(am__skip_mode_fix)" \
|
||||
|| find "$(distdir)" -type d ! -perm -755 \
|
||||
-exec chmod u+rwx,go+rx {} \; -o \
|
||||
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
|
||||
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
|
||||
! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
|
||||
|| chmod -R a+r "$(distdir)"
|
||||
dist-gzip: distdir
|
||||
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-bzip2: distdir
|
||||
tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-lzma: distdir
|
||||
tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-xz: distdir
|
||||
tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-tarZ: distdir
|
||||
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-shar: distdir
|
||||
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-zip: distdir
|
||||
-rm -f $(distdir).zip
|
||||
zip -rq $(distdir).zip $(distdir)
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist dist-all: distdir
|
||||
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||
$(am__remove_distdir)
|
||||
|
||||
# This target untars the dist file and tries a VPATH configuration. Then
|
||||
# it guarantees that the distribution is self-contained by making another
|
||||
# tarfile.
|
||||
distcheck: dist
|
||||
case '$(DIST_ARCHIVES)' in \
|
||||
*.tar.gz*) \
|
||||
GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
|
||||
*.tar.bz2*) \
|
||||
bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
|
||||
*.tar.lzma*) \
|
||||
lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
|
||||
*.tar.xz*) \
|
||||
xz -dc $(distdir).tar.xz | $(am__untar) ;;\
|
||||
*.tar.Z*) \
|
||||
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
|
||||
*.shar.gz*) \
|
||||
GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
|
||||
*.zip*) \
|
||||
unzip $(distdir).zip ;;\
|
||||
esac
|
||||
chmod -R a-w $(distdir); chmod u+w $(distdir)
|
||||
mkdir $(distdir)/_build
|
||||
mkdir $(distdir)/_inst
|
||||
chmod a-w $(distdir)
|
||||
test -d $(distdir)/_build || exit 0; \
|
||||
dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
|
||||
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
|
||||
&& am__cwd=`pwd` \
|
||||
&& $(am__cd) $(distdir)/_build \
|
||||
&& ../configure --srcdir=.. --prefix="$$dc_install_base" \
|
||||
$(DISTCHECK_CONFIGURE_FLAGS) \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) check \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) install \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) uninstall \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
|
||||
distuninstallcheck \
|
||||
&& chmod -R a-w "$$dc_install_base" \
|
||||
&& ({ \
|
||||
(cd ../.. && umask 077 && mkdir "$$dc_destdir") \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
|
||||
distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
|
||||
} || { rm -rf "$$dc_destdir"; exit 1; }) \
|
||||
&& rm -rf "$$dc_destdir" \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) dist \
|
||||
&& rm -rf $(DIST_ARCHIVES) \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
|
||||
&& cd "$$am__cwd" \
|
||||
|| exit 1
|
||||
$(am__remove_distdir)
|
||||
@(echo "$(distdir) archives ready for distribution: "; \
|
||||
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
|
||||
sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
|
||||
distuninstallcheck:
|
||||
@$(am__cd) '$(distuninstallcheck_dir)' \
|
||||
&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
|
||||
|| { echo "ERROR: files left after uninstall:" ; \
|
||||
if test -n "$(DESTDIR)"; then \
|
||||
echo " (check DESTDIR support)"; \
|
||||
fi ; \
|
||||
$(distuninstallcheck_listfiles) ; \
|
||||
exit 1; } >&2
|
||||
distcleancheck: distclean
|
||||
@if test '$(srcdir)' = . ; then \
|
||||
echo "ERROR: distcleancheck can only run from a VPATH build" ; \
|
||||
exit 1 ; \
|
||||
fi
|
||||
@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
|
||||
|| { echo "ERROR: files left in build directory after distclean:" ; \
|
||||
$(distcleancheck_listfiles) ; \
|
||||
exit 1; } >&2
|
||||
check-am: all-am
|
||||
check: check-recursive
|
||||
all-am: Makefile $(HEADERS) config.h
|
||||
installdirs: installdirs-recursive
|
||||
installdirs-am:
|
||||
for dir in "$(DESTDIR)$(pkgincludedir)"; do \
|
||||
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
|
||||
done
|
||||
install: install-recursive
|
||||
install-exec: install-exec-recursive
|
||||
install-data: install-data-recursive
|
||||
uninstall: uninstall-recursive
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
|
||||
installcheck: installcheck-recursive
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
clean: clean-recursive
|
||||
|
||||
clean-am: clean-generic clean-libtool mostlyclean-am
|
||||
|
||||
distclean: distclean-recursive
|
||||
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-generic distclean-hdr \
|
||||
distclean-libtool distclean-tags
|
||||
|
||||
dvi: dvi-recursive
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-recursive
|
||||
|
||||
html-am:
|
||||
|
||||
info: info-recursive
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am: install-nobase_pkgincludeHEADERS
|
||||
|
||||
install-dvi: install-dvi-recursive
|
||||
|
||||
install-dvi-am:
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-html: install-html-recursive
|
||||
|
||||
install-html-am:
|
||||
|
||||
install-info: install-info-recursive
|
||||
|
||||
install-info-am:
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-recursive
|
||||
|
||||
install-pdf-am:
|
||||
|
||||
install-ps: install-ps-recursive
|
||||
|
||||
install-ps-am:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-recursive
|
||||
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
||||
-rm -rf $(top_srcdir)/autom4te.cache
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-recursive
|
||||
|
||||
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
|
||||
|
||||
pdf: pdf-recursive
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-recursive
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-nobase_pkgincludeHEADERS
|
||||
|
||||
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \
|
||||
ctags-recursive install-am install-strip tags-recursive
|
||||
|
||||
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
|
||||
all all-am am--refresh check check-am clean clean-generic \
|
||||
clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \
|
||||
dist-gzip dist-lzma dist-shar dist-tarZ dist-xz dist-zip \
|
||||
distcheck distclean distclean-generic distclean-hdr \
|
||||
distclean-libtool distclean-tags distcleancheck distdir \
|
||||
distuninstallcheck dvi dvi-am html html-am info info-am \
|
||||
install install-am install-data install-data-am install-dvi \
|
||||
install-dvi-am install-exec install-exec-am install-html \
|
||||
install-html-am install-info install-info-am install-man \
|
||||
install-nobase_pkgincludeHEADERS install-pdf install-pdf-am \
|
||||
install-ps install-ps-am install-strip installcheck \
|
||||
installcheck-am installdirs installdirs-am maintainer-clean \
|
||||
maintainer-clean-generic mostlyclean mostlyclean-generic \
|
||||
mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
|
||||
uninstall uninstall-am uninstall-nobase_pkgincludeHEADERS
|
||||
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
||||
9056
ltfs/aclocal.m4
vendored
Normal file
9056
ltfs/aclocal.m4
vendored
Normal file
File diff suppressed because it is too large
Load Diff
192
ltfs/assemble-framework.sh
Executable file
192
ltfs/assemble-framework.sh
Executable file
@@ -0,0 +1,192 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# %Z% %I% %W% %G% %U%
|
||||
#
|
||||
# ZZ_Copyright_BEGIN
|
||||
#
|
||||
#
|
||||
# Licensed Materials - Property of IBM
|
||||
#
|
||||
# IBM Linear Tape File System Single Drive Edition Version 2.2.0.2 for Linux and Mac OS X
|
||||
#
|
||||
# Copyright IBM Corp. 2010, 2014
|
||||
#
|
||||
# This file is part of the IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X
|
||||
# (formally known as IBM Linear Tape File System)
|
||||
#
|
||||
# The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is free software;
|
||||
# you can redistribute it and/or modify it under the terms of the GNU Lesser
|
||||
# General Public License as published by the Free Software Foundation,
|
||||
# version 2.1 of the License.
|
||||
#
|
||||
# The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is distributed in the
|
||||
# hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the GNU Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this library; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
# or download the license from <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
#
|
||||
# ZZ_Copyright_END
|
||||
#
|
||||
#############################################################################
|
||||
#
|
||||
# FILE NAME: assemble-framework.sh
|
||||
#
|
||||
# DESCRIPTION: Automates assembly of OS X framework
|
||||
# skeleton for LTFS.
|
||||
#
|
||||
# AUTHOR: Michael A. Richmond
|
||||
# IBM Almaden Research Center
|
||||
# mar@almaden.ibm.com
|
||||
#
|
||||
#############################################################################
|
||||
|
||||
BASEDIR=`pwd`
|
||||
|
||||
DIRNAME=`dirname $0`
|
||||
|
||||
PROJECT_NAME=LTFS
|
||||
PROJECT_VERSION=3.4.2
|
||||
|
||||
FRAMEWORK_NAME=${PROJECT_NAME}.framework
|
||||
|
||||
OUTPUT_DIR=distribution
|
||||
|
||||
BUNDLE_IDENTIFIER=com.hpe.ltfs
|
||||
BUNDLE_REGION=English
|
||||
BUNDLE_EXECUTABLE=ltfs
|
||||
|
||||
##########################################################################
|
||||
##########################################################################
|
||||
|
||||
# Create folders for framework in current directory
|
||||
create_framework_structure()
|
||||
{
|
||||
umask 00
|
||||
mkdir Versions
|
||||
mkdir Versions/${PROJECT_VERSION}
|
||||
|
||||
ln -s ${PROJECT_VERSION} Versions/Current
|
||||
|
||||
mkdir Versions/${PROJECT_VERSION}/Headers
|
||||
ln -s Versions/Current/Headers Headers
|
||||
|
||||
mkdir Versions/Current/Resources
|
||||
ln -s Versions/Current/Resources Resources
|
||||
|
||||
# Prefix for project install...
|
||||
mkdir Versions/Current/usr
|
||||
|
||||
mkdir Versions/Current/usr/lib
|
||||
ln -s Versions/Current/usr/lib Libraries
|
||||
}
|
||||
|
||||
|
||||
create_infoplist()
|
||||
{
|
||||
packageName=$1
|
||||
packageVersion=$2
|
||||
bundleName=$3
|
||||
bundleIdentifier=$4
|
||||
bundleDevelopmentRegion=$5
|
||||
bundleExecutable=$6
|
||||
|
||||
cat > Resources/Info.plist <<EOF
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>${bundleDevelopmentRegion}</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>${bundleExecutable}</string>
|
||||
<key>CFBundleGetInfoString</key>
|
||||
<string>${packageName} ${packageVersion}</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>${bundleIdentifier}</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>${bundleName}</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>FMWK</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>${packageVersion}</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>${packageVersion}</string>
|
||||
</dict>
|
||||
</plist>
|
||||
EOF
|
||||
}
|
||||
|
||||
|
||||
print_usage()
|
||||
{
|
||||
echo "usage: "`basename $0`" [clean|distclean]"
|
||||
echo ""
|
||||
echo " This script assembles the skeleton for an OS X framework."
|
||||
echo ""
|
||||
echo " The 'clean' option cleans up any previously built"
|
||||
echo " framework."
|
||||
echo ""
|
||||
}
|
||||
|
||||
|
||||
##########################################################################
|
||||
##########################################################################
|
||||
|
||||
if [ $# -ne 0 ]; then
|
||||
case ${1} in
|
||||
clean)
|
||||
cd ${BASEDIR}
|
||||
\rm -rf ${OUTPUT_DIR}
|
||||
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
print_usage
|
||||
cd ${BASEDIR}
|
||||
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
|
||||
##
|
||||
## create working directory...
|
||||
##
|
||||
cd ${BASEDIR}
|
||||
mkdir ${OUTPUT_DIR}
|
||||
|
||||
|
||||
##
|
||||
## create framework structure...
|
||||
##
|
||||
cd ${BASEDIR}/${OUTPUT_DIR}
|
||||
mkdir ${FRAMEWORK_NAME}
|
||||
cd ${FRAMEWORK_NAME}
|
||||
|
||||
create_framework_structure
|
||||
|
||||
|
||||
##
|
||||
## Create Info.plist...
|
||||
##
|
||||
cd ${BASEDIR}/${OUTPUT_DIR}/${FRAMEWORK_NAME}
|
||||
create_infoplist "${PROJECT_NAME}" "${PROJECT_VERSION}" "${PROJECT_NAME}" "${BUNDLE_IDENTIFIER}" "${BUNDLE_REGION}" "${BUNDLE_EXECUTABLE}"
|
||||
|
||||
|
||||
##
|
||||
## Set permissions...
|
||||
##
|
||||
cd ${BASEDIR}/${OUTPUT_DIR}/${FRAMEWORK_NAME}
|
||||
find . -type d |xargs chmod a+rx
|
||||
|
||||
cd ${BASEDIR}
|
||||
143
ltfs/build-aux/compile
Normal file
143
ltfs/build-aux/compile
Normal file
@@ -0,0 +1,143 @@
|
||||
#! /bin/sh
|
||||
# Wrapper for compilers which do not understand `-c -o'.
|
||||
|
||||
scriptversion=2009-10-06.20; # UTC
|
||||
|
||||
# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009 Free Software
|
||||
# Foundation, Inc.
|
||||
# Written by Tom Tromey <tromey@cygnus.com>.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
# configuration script generated by Autoconf, you may include it under
|
||||
# the same distribution terms that you use for the rest of that program.
|
||||
|
||||
# This file is maintained in Automake, please report
|
||||
# bugs to <bug-automake@gnu.org> or send patches to
|
||||
# <automake-patches@gnu.org>.
|
||||
|
||||
case $1 in
|
||||
'')
|
||||
echo "$0: No command. Try \`$0 --help' for more information." 1>&2
|
||||
exit 1;
|
||||
;;
|
||||
-h | --h*)
|
||||
cat <<\EOF
|
||||
Usage: compile [--help] [--version] PROGRAM [ARGS]
|
||||
|
||||
Wrapper for compilers which do not understand `-c -o'.
|
||||
Remove `-o dest.o' from ARGS, run PROGRAM with the remaining
|
||||
arguments, and rename the output as expected.
|
||||
|
||||
If you are trying to build a whole package this is not the
|
||||
right script to run: please start by reading the file `INSTALL'.
|
||||
|
||||
Report bugs to <bug-automake@gnu.org>.
|
||||
EOF
|
||||
exit $?
|
||||
;;
|
||||
-v | --v*)
|
||||
echo "compile $scriptversion"
|
||||
exit $?
|
||||
;;
|
||||
esac
|
||||
|
||||
ofile=
|
||||
cfile=
|
||||
eat=
|
||||
|
||||
for arg
|
||||
do
|
||||
if test -n "$eat"; then
|
||||
eat=
|
||||
else
|
||||
case $1 in
|
||||
-o)
|
||||
# configure might choose to run compile as `compile cc -o foo foo.c'.
|
||||
# So we strip `-o arg' only if arg is an object.
|
||||
eat=1
|
||||
case $2 in
|
||||
*.o | *.obj)
|
||||
ofile=$2
|
||||
;;
|
||||
*)
|
||||
set x "$@" -o "$2"
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*.c)
|
||||
cfile=$1
|
||||
set x "$@" "$1"
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
set x "$@" "$1"
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
shift
|
||||
done
|
||||
|
||||
if test -z "$ofile" || test -z "$cfile"; then
|
||||
# If no `-o' option was seen then we might have been invoked from a
|
||||
# pattern rule where we don't need one. That is ok -- this is a
|
||||
# normal compilation that the losing compiler can handle. If no
|
||||
# `.c' file was seen then we are probably linking. That is also
|
||||
# ok.
|
||||
exec "$@"
|
||||
fi
|
||||
|
||||
# Name of file we expect compiler to create.
|
||||
cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
|
||||
|
||||
# Create the lock directory.
|
||||
# Note: use `[/\\:.-]' here to ensure that we don't use the same name
|
||||
# that we are using for the .o file. Also, base the name on the expected
|
||||
# object file name, since that is what matters with a parallel build.
|
||||
lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
|
||||
while true; do
|
||||
if mkdir "$lockdir" >/dev/null 2>&1; then
|
||||
break
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
# FIXME: race condition here if user kills between mkdir and trap.
|
||||
trap "rmdir '$lockdir'; exit 1" 1 2 15
|
||||
|
||||
# Run the compile.
|
||||
"$@"
|
||||
ret=$?
|
||||
|
||||
if test -f "$cofile"; then
|
||||
test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
|
||||
elif test -f "${cofile}bj"; then
|
||||
test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
|
||||
fi
|
||||
|
||||
rmdir "$lockdir"
|
||||
exit $ret
|
||||
|
||||
# Local Variables:
|
||||
# mode: shell-script
|
||||
# sh-indentation: 2
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-time-zone: "UTC"
|
||||
# time-stamp-end: "; # UTC"
|
||||
# End:
|
||||
1501
ltfs/build-aux/config.guess
vendored
Executable file
1501
ltfs/build-aux/config.guess
vendored
Executable file
File diff suppressed because it is too large
Load Diff
1705
ltfs/build-aux/config.sub
vendored
Executable file
1705
ltfs/build-aux/config.sub
vendored
Executable file
File diff suppressed because it is too large
Load Diff
630
ltfs/build-aux/depcomp
Executable file
630
ltfs/build-aux/depcomp
Executable file
@@ -0,0 +1,630 @@
|
||||
#! /bin/sh
|
||||
# depcomp - compile a program generating dependencies as side-effects
|
||||
|
||||
scriptversion=2009-04-28.21; # UTC
|
||||
|
||||
# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free
|
||||
# Software Foundation, Inc.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
# configuration script generated by Autoconf, you may include it under
|
||||
# the same distribution terms that you use for the rest of that program.
|
||||
|
||||
# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
|
||||
|
||||
case $1 in
|
||||
'')
|
||||
echo "$0: No command. Try \`$0 --help' for more information." 1>&2
|
||||
exit 1;
|
||||
;;
|
||||
-h | --h*)
|
||||
cat <<\EOF
|
||||
Usage: depcomp [--help] [--version] PROGRAM [ARGS]
|
||||
|
||||
Run PROGRAMS ARGS to compile a file, generating dependencies
|
||||
as side-effects.
|
||||
|
||||
Environment variables:
|
||||
depmode Dependency tracking mode.
|
||||
source Source file read by `PROGRAMS ARGS'.
|
||||
object Object file output by `PROGRAMS ARGS'.
|
||||
DEPDIR directory where to store dependencies.
|
||||
depfile Dependency file to output.
|
||||
tmpdepfile Temporary file to use when outputing dependencies.
|
||||
libtool Whether libtool is used (yes/no).
|
||||
|
||||
Report bugs to <bug-automake@gnu.org>.
|
||||
EOF
|
||||
exit $?
|
||||
;;
|
||||
-v | --v*)
|
||||
echo "depcomp $scriptversion"
|
||||
exit $?
|
||||
;;
|
||||
esac
|
||||
|
||||
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
|
||||
echo "depcomp: Variables source, object and depmode must be set" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
|
||||
depfile=${depfile-`echo "$object" |
|
||||
sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
|
||||
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
|
||||
|
||||
rm -f "$tmpdepfile"
|
||||
|
||||
# Some modes work just like other modes, but use different flags. We
|
||||
# parameterize here, but still list the modes in the big case below,
|
||||
# to make depend.m4 easier to write. Note that we *cannot* use a case
|
||||
# here, because this file can only contain one case statement.
|
||||
if test "$depmode" = hp; then
|
||||
# HP compiler uses -M and no extra arg.
|
||||
gccflag=-M
|
||||
depmode=gcc
|
||||
fi
|
||||
|
||||
if test "$depmode" = dashXmstdout; then
|
||||
# This is just like dashmstdout with a different argument.
|
||||
dashmflag=-xM
|
||||
depmode=dashmstdout
|
||||
fi
|
||||
|
||||
cygpath_u="cygpath -u -f -"
|
||||
if test "$depmode" = msvcmsys; then
|
||||
# This is just like msvisualcpp but w/o cygpath translation.
|
||||
# Just convert the backslash-escaped backslashes to single forward
|
||||
# slashes to satisfy depend.m4
|
||||
cygpath_u="sed s,\\\\\\\\,/,g"
|
||||
depmode=msvisualcpp
|
||||
fi
|
||||
|
||||
case "$depmode" in
|
||||
gcc3)
|
||||
## gcc 3 implements dependency tracking that does exactly what
|
||||
## we want. Yay! Note: for some reason libtool 1.4 doesn't like
|
||||
## it if -MD -MP comes after the -MF stuff. Hmm.
|
||||
## Unfortunately, FreeBSD c89 acceptance of flags depends upon
|
||||
## the command line argument order; so add the flags where they
|
||||
## appear in depend2.am. Note that the slowdown incurred here
|
||||
## affects only configure: in makefiles, %FASTDEP% shortcuts this.
|
||||
for arg
|
||||
do
|
||||
case $arg in
|
||||
-c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
|
||||
*) set fnord "$@" "$arg" ;;
|
||||
esac
|
||||
shift # fnord
|
||||
shift # $arg
|
||||
done
|
||||
"$@"
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
mv "$tmpdepfile" "$depfile"
|
||||
;;
|
||||
|
||||
gcc)
|
||||
## There are various ways to get dependency output from gcc. Here's
|
||||
## why we pick this rather obscure method:
|
||||
## - Don't want to use -MD because we'd like the dependencies to end
|
||||
## up in a subdir. Having to rename by hand is ugly.
|
||||
## (We might end up doing this anyway to support other compilers.)
|
||||
## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
|
||||
## -MM, not -M (despite what the docs say).
|
||||
## - Using -M directly means running the compiler twice (even worse
|
||||
## than renaming).
|
||||
if test -z "$gccflag"; then
|
||||
gccflag=-MD,
|
||||
fi
|
||||
"$@" -Wp,"$gccflag$tmpdepfile"
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
rm -f "$depfile"
|
||||
echo "$object : \\" > "$depfile"
|
||||
alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
|
||||
## The second -e expression handles DOS-style file names with drive letters.
|
||||
sed -e 's/^[^:]*: / /' \
|
||||
-e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
|
||||
## This next piece of magic avoids the `deleted header file' problem.
|
||||
## The problem is that when a header file which appears in a .P file
|
||||
## is deleted, the dependency causes make to die (because there is
|
||||
## typically no way to rebuild the header). We avoid this by adding
|
||||
## dummy dependencies for each header file. Too bad gcc doesn't do
|
||||
## this for us directly.
|
||||
tr ' ' '
|
||||
' < "$tmpdepfile" |
|
||||
## Some versions of gcc put a space before the `:'. On the theory
|
||||
## that the space means something, we add a space to the output as
|
||||
## well.
|
||||
## Some versions of the HPUX 10.20 sed can't process this invocation
|
||||
## correctly. Breaking it into two sed invocations is a workaround.
|
||||
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
hp)
|
||||
# This case exists only to let depend.m4 do its work. It works by
|
||||
# looking at the text of this script. This case will never be run,
|
||||
# since it is checked for above.
|
||||
exit 1
|
||||
;;
|
||||
|
||||
sgi)
|
||||
if test "$libtool" = yes; then
|
||||
"$@" "-Wp,-MDupdate,$tmpdepfile"
|
||||
else
|
||||
"$@" -MDupdate "$tmpdepfile"
|
||||
fi
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
rm -f "$depfile"
|
||||
|
||||
if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
|
||||
echo "$object : \\" > "$depfile"
|
||||
|
||||
# Clip off the initial element (the dependent). Don't try to be
|
||||
# clever and replace this with sed code, as IRIX sed won't handle
|
||||
# lines with more than a fixed number of characters (4096 in
|
||||
# IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
|
||||
# the IRIX cc adds comments like `#:fec' to the end of the
|
||||
# dependency line.
|
||||
tr ' ' '
|
||||
' < "$tmpdepfile" \
|
||||
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
|
||||
tr '
|
||||
' ' ' >> "$depfile"
|
||||
echo >> "$depfile"
|
||||
|
||||
# The second pass generates a dummy entry for each header file.
|
||||
tr ' ' '
|
||||
' < "$tmpdepfile" \
|
||||
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
|
||||
>> "$depfile"
|
||||
else
|
||||
# The sourcefile does not contain any dependencies, so just
|
||||
# store a dummy comment line, to avoid errors with the Makefile
|
||||
# "include basename.Plo" scheme.
|
||||
echo "#dummy" > "$depfile"
|
||||
fi
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
aix)
|
||||
# The C for AIX Compiler uses -M and outputs the dependencies
|
||||
# in a .u file. In older versions, this file always lives in the
|
||||
# current directory. Also, the AIX compiler puts `$object:' at the
|
||||
# start of each line; $object doesn't have directory information.
|
||||
# Version 6 uses the directory in both cases.
|
||||
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
|
||||
test "x$dir" = "x$object" && dir=
|
||||
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
|
||||
if test "$libtool" = yes; then
|
||||
tmpdepfile1=$dir$base.u
|
||||
tmpdepfile2=$base.u
|
||||
tmpdepfile3=$dir.libs/$base.u
|
||||
"$@" -Wc,-M
|
||||
else
|
||||
tmpdepfile1=$dir$base.u
|
||||
tmpdepfile2=$dir$base.u
|
||||
tmpdepfile3=$dir$base.u
|
||||
"$@" -M
|
||||
fi
|
||||
stat=$?
|
||||
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
|
||||
exit $stat
|
||||
fi
|
||||
|
||||
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
|
||||
do
|
||||
test -f "$tmpdepfile" && break
|
||||
done
|
||||
if test -f "$tmpdepfile"; then
|
||||
# Each line is of the form `foo.o: dependent.h'.
|
||||
# Do two passes, one to just change these to
|
||||
# `$object: dependent.h' and one to simply `dependent.h:'.
|
||||
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
|
||||
# That's a tab and a space in the [].
|
||||
sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
|
||||
else
|
||||
# The sourcefile does not contain any dependencies, so just
|
||||
# store a dummy comment line, to avoid errors with the Makefile
|
||||
# "include basename.Plo" scheme.
|
||||
echo "#dummy" > "$depfile"
|
||||
fi
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
icc)
|
||||
# Intel's C compiler understands `-MD -MF file'. However on
|
||||
# icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
|
||||
# ICC 7.0 will fill foo.d with something like
|
||||
# foo.o: sub/foo.c
|
||||
# foo.o: sub/foo.h
|
||||
# which is wrong. We want:
|
||||
# sub/foo.o: sub/foo.c
|
||||
# sub/foo.o: sub/foo.h
|
||||
# sub/foo.c:
|
||||
# sub/foo.h:
|
||||
# ICC 7.1 will output
|
||||
# foo.o: sub/foo.c sub/foo.h
|
||||
# and will wrap long lines using \ :
|
||||
# foo.o: sub/foo.c ... \
|
||||
# sub/foo.h ... \
|
||||
# ...
|
||||
|
||||
"$@" -MD -MF "$tmpdepfile"
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
rm -f "$depfile"
|
||||
# Each line is of the form `foo.o: dependent.h',
|
||||
# or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
|
||||
# Do two passes, one to just change these to
|
||||
# `$object: dependent.h' and one to simply `dependent.h:'.
|
||||
sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
|
||||
# Some versions of the HPUX 10.20 sed can't process this invocation
|
||||
# correctly. Breaking it into two sed invocations is a workaround.
|
||||
sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
|
||||
sed -e 's/$/ :/' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
hp2)
|
||||
# The "hp" stanza above does not work with aCC (C++) and HP's ia64
|
||||
# compilers, which have integrated preprocessors. The correct option
|
||||
# to use with these is +Maked; it writes dependencies to a file named
|
||||
# 'foo.d', which lands next to the object file, wherever that
|
||||
# happens to be.
|
||||
# Much of this is similar to the tru64 case; see comments there.
|
||||
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
|
||||
test "x$dir" = "x$object" && dir=
|
||||
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
|
||||
if test "$libtool" = yes; then
|
||||
tmpdepfile1=$dir$base.d
|
||||
tmpdepfile2=$dir.libs/$base.d
|
||||
"$@" -Wc,+Maked
|
||||
else
|
||||
tmpdepfile1=$dir$base.d
|
||||
tmpdepfile2=$dir$base.d
|
||||
"$@" +Maked
|
||||
fi
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile1" "$tmpdepfile2"
|
||||
exit $stat
|
||||
fi
|
||||
|
||||
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
|
||||
do
|
||||
test -f "$tmpdepfile" && break
|
||||
done
|
||||
if test -f "$tmpdepfile"; then
|
||||
sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
|
||||
# Add `dependent.h:' lines.
|
||||
sed -ne '2,${
|
||||
s/^ *//
|
||||
s/ \\*$//
|
||||
s/$/:/
|
||||
p
|
||||
}' "$tmpdepfile" >> "$depfile"
|
||||
else
|
||||
echo "#dummy" > "$depfile"
|
||||
fi
|
||||
rm -f "$tmpdepfile" "$tmpdepfile2"
|
||||
;;
|
||||
|
||||
tru64)
|
||||
# The Tru64 compiler uses -MD to generate dependencies as a side
|
||||
# effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
|
||||
# At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
|
||||
# dependencies in `foo.d' instead, so we check for that too.
|
||||
# Subdirectories are respected.
|
||||
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
|
||||
test "x$dir" = "x$object" && dir=
|
||||
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
|
||||
|
||||
if test "$libtool" = yes; then
|
||||
# With Tru64 cc, shared objects can also be used to make a
|
||||
# static library. This mechanism is used in libtool 1.4 series to
|
||||
# handle both shared and static libraries in a single compilation.
|
||||
# With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
|
||||
#
|
||||
# With libtool 1.5 this exception was removed, and libtool now
|
||||
# generates 2 separate objects for the 2 libraries. These two
|
||||
# compilations output dependencies in $dir.libs/$base.o.d and
|
||||
# in $dir$base.o.d. We have to check for both files, because
|
||||
# one of the two compilations can be disabled. We should prefer
|
||||
# $dir$base.o.d over $dir.libs/$base.o.d because the latter is
|
||||
# automatically cleaned when .libs/ is deleted, while ignoring
|
||||
# the former would cause a distcleancheck panic.
|
||||
tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4
|
||||
tmpdepfile2=$dir$base.o.d # libtool 1.5
|
||||
tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5
|
||||
tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504
|
||||
"$@" -Wc,-MD
|
||||
else
|
||||
tmpdepfile1=$dir$base.o.d
|
||||
tmpdepfile2=$dir$base.d
|
||||
tmpdepfile3=$dir$base.d
|
||||
tmpdepfile4=$dir$base.d
|
||||
"$@" -MD
|
||||
fi
|
||||
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
|
||||
exit $stat
|
||||
fi
|
||||
|
||||
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
|
||||
do
|
||||
test -f "$tmpdepfile" && break
|
||||
done
|
||||
if test -f "$tmpdepfile"; then
|
||||
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
|
||||
# That's a tab and a space in the [].
|
||||
sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
|
||||
else
|
||||
echo "#dummy" > "$depfile"
|
||||
fi
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
#nosideeffect)
|
||||
# This comment above is used by automake to tell side-effect
|
||||
# dependency tracking mechanisms from slower ones.
|
||||
|
||||
dashmstdout)
|
||||
# Important note: in order to support this mode, a compiler *must*
|
||||
# always write the preprocessed file to stdout, regardless of -o.
|
||||
"$@" || exit $?
|
||||
|
||||
# Remove the call to Libtool.
|
||||
if test "$libtool" = yes; then
|
||||
while test "X$1" != 'X--mode=compile'; do
|
||||
shift
|
||||
done
|
||||
shift
|
||||
fi
|
||||
|
||||
# Remove `-o $object'.
|
||||
IFS=" "
|
||||
for arg
|
||||
do
|
||||
case $arg in
|
||||
-o)
|
||||
shift
|
||||
;;
|
||||
$object)
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
set fnord "$@" "$arg"
|
||||
shift # fnord
|
||||
shift # $arg
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
test -z "$dashmflag" && dashmflag=-M
|
||||
# Require at least two characters before searching for `:'
|
||||
# in the target name. This is to cope with DOS-style filenames:
|
||||
# a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
|
||||
"$@" $dashmflag |
|
||||
sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"
|
||||
rm -f "$depfile"
|
||||
cat < "$tmpdepfile" > "$depfile"
|
||||
tr ' ' '
|
||||
' < "$tmpdepfile" | \
|
||||
## Some versions of the HPUX 10.20 sed can't process this invocation
|
||||
## correctly. Breaking it into two sed invocations is a workaround.
|
||||
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
dashXmstdout)
|
||||
# This case only exists to satisfy depend.m4. It is never actually
|
||||
# run, as this mode is specially recognized in the preamble.
|
||||
exit 1
|
||||
;;
|
||||
|
||||
makedepend)
|
||||
"$@" || exit $?
|
||||
# Remove any Libtool call
|
||||
if test "$libtool" = yes; then
|
||||
while test "X$1" != 'X--mode=compile'; do
|
||||
shift
|
||||
done
|
||||
shift
|
||||
fi
|
||||
# X makedepend
|
||||
shift
|
||||
cleared=no eat=no
|
||||
for arg
|
||||
do
|
||||
case $cleared in
|
||||
no)
|
||||
set ""; shift
|
||||
cleared=yes ;;
|
||||
esac
|
||||
if test $eat = yes; then
|
||||
eat=no
|
||||
continue
|
||||
fi
|
||||
case "$arg" in
|
||||
-D*|-I*)
|
||||
set fnord "$@" "$arg"; shift ;;
|
||||
# Strip any option that makedepend may not understand. Remove
|
||||
# the object too, otherwise makedepend will parse it as a source file.
|
||||
-arch)
|
||||
eat=yes ;;
|
||||
-*|$object)
|
||||
;;
|
||||
*)
|
||||
set fnord "$@" "$arg"; shift ;;
|
||||
esac
|
||||
done
|
||||
obj_suffix=`echo "$object" | sed 's/^.*\././'`
|
||||
touch "$tmpdepfile"
|
||||
${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
|
||||
rm -f "$depfile"
|
||||
cat < "$tmpdepfile" > "$depfile"
|
||||
sed '1,2d' "$tmpdepfile" | tr ' ' '
|
||||
' | \
|
||||
## Some versions of the HPUX 10.20 sed can't process this invocation
|
||||
## correctly. Breaking it into two sed invocations is a workaround.
|
||||
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
|
||||
rm -f "$tmpdepfile" "$tmpdepfile".bak
|
||||
;;
|
||||
|
||||
cpp)
|
||||
# Important note: in order to support this mode, a compiler *must*
|
||||
# always write the preprocessed file to stdout.
|
||||
"$@" || exit $?
|
||||
|
||||
# Remove the call to Libtool.
|
||||
if test "$libtool" = yes; then
|
||||
while test "X$1" != 'X--mode=compile'; do
|
||||
shift
|
||||
done
|
||||
shift
|
||||
fi
|
||||
|
||||
# Remove `-o $object'.
|
||||
IFS=" "
|
||||
for arg
|
||||
do
|
||||
case $arg in
|
||||
-o)
|
||||
shift
|
||||
;;
|
||||
$object)
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
set fnord "$@" "$arg"
|
||||
shift # fnord
|
||||
shift # $arg
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
"$@" -E |
|
||||
sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
|
||||
-e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
|
||||
sed '$ s: \\$::' > "$tmpdepfile"
|
||||
rm -f "$depfile"
|
||||
echo "$object : \\" > "$depfile"
|
||||
cat < "$tmpdepfile" >> "$depfile"
|
||||
sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
msvisualcpp)
|
||||
# Important note: in order to support this mode, a compiler *must*
|
||||
# always write the preprocessed file to stdout.
|
||||
"$@" || exit $?
|
||||
|
||||
# Remove the call to Libtool.
|
||||
if test "$libtool" = yes; then
|
||||
while test "X$1" != 'X--mode=compile'; do
|
||||
shift
|
||||
done
|
||||
shift
|
||||
fi
|
||||
|
||||
IFS=" "
|
||||
for arg
|
||||
do
|
||||
case "$arg" in
|
||||
-o)
|
||||
shift
|
||||
;;
|
||||
$object)
|
||||
shift
|
||||
;;
|
||||
"-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
|
||||
set fnord "$@"
|
||||
shift
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
set fnord "$@" "$arg"
|
||||
shift
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
done
|
||||
"$@" -E 2>/dev/null |
|
||||
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
|
||||
rm -f "$depfile"
|
||||
echo "$object : \\" > "$depfile"
|
||||
sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
|
||||
echo " " >> "$depfile"
|
||||
sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
msvcmsys)
|
||||
# This case exists only to let depend.m4 do its work. It works by
|
||||
# looking at the text of this script. This case will never be run,
|
||||
# since it is checked for above.
|
||||
exit 1
|
||||
;;
|
||||
|
||||
none)
|
||||
exec "$@"
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Unknown depmode $depmode" 1>&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
|
||||
# Local Variables:
|
||||
# mode: shell-script
|
||||
# sh-indentation: 2
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-time-zone: "UTC"
|
||||
# time-stamp-end: "; # UTC"
|
||||
# End:
|
||||
520
ltfs/build-aux/install-sh
Executable file
520
ltfs/build-aux/install-sh
Executable file
@@ -0,0 +1,520 @@
|
||||
#!/bin/sh
|
||||
# install - install a program, script, or datafile
|
||||
|
||||
scriptversion=2009-04-28.21; # UTC
|
||||
|
||||
# This originates from X11R5 (mit/util/scripts/install.sh), which was
|
||||
# later released in X11R6 (xc/config/util/install.sh) with the
|
||||
# following copyright and license.
|
||||
#
|
||||
# Copyright (C) 1994 X Consortium
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
# of this software and associated documentation files (the "Software"), to
|
||||
# deal in the Software without restriction, including without limitation the
|
||||
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
# sell copies of the Software, and to permit persons to whom the Software is
|
||||
# furnished to do so, subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be included in
|
||||
# all copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
|
||||
# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
# Except as contained in this notice, the name of the X Consortium shall not
|
||||
# be used in advertising or otherwise to promote the sale, use or other deal-
|
||||
# ings in this Software without prior written authorization from the X Consor-
|
||||
# tium.
|
||||
#
|
||||
#
|
||||
# FSF changes to this file are in the public domain.
|
||||
#
|
||||
# Calling this script install-sh is preferred over install.sh, to prevent
|
||||
# `make' implicit rules from creating a file called install from it
|
||||
# when there is no Makefile.
|
||||
#
|
||||
# This script is compatible with the BSD install script, but was written
|
||||
# from scratch.
|
||||
|
||||
nl='
|
||||
'
|
||||
IFS=" "" $nl"
|
||||
|
||||
# set DOITPROG to echo to test this script
|
||||
|
||||
# Don't use :- since 4.3BSD and earlier shells don't like it.
|
||||
doit=${DOITPROG-}
|
||||
if test -z "$doit"; then
|
||||
doit_exec=exec
|
||||
else
|
||||
doit_exec=$doit
|
||||
fi
|
||||
|
||||
# Put in absolute file names if you don't have them in your path;
|
||||
# or use environment vars.
|
||||
|
||||
chgrpprog=${CHGRPPROG-chgrp}
|
||||
chmodprog=${CHMODPROG-chmod}
|
||||
chownprog=${CHOWNPROG-chown}
|
||||
cmpprog=${CMPPROG-cmp}
|
||||
cpprog=${CPPROG-cp}
|
||||
mkdirprog=${MKDIRPROG-mkdir}
|
||||
mvprog=${MVPROG-mv}
|
||||
rmprog=${RMPROG-rm}
|
||||
stripprog=${STRIPPROG-strip}
|
||||
|
||||
posix_glob='?'
|
||||
initialize_posix_glob='
|
||||
test "$posix_glob" != "?" || {
|
||||
if (set -f) 2>/dev/null; then
|
||||
posix_glob=
|
||||
else
|
||||
posix_glob=:
|
||||
fi
|
||||
}
|
||||
'
|
||||
|
||||
posix_mkdir=
|
||||
|
||||
# Desired mode of installed file.
|
||||
mode=0755
|
||||
|
||||
chgrpcmd=
|
||||
chmodcmd=$chmodprog
|
||||
chowncmd=
|
||||
mvcmd=$mvprog
|
||||
rmcmd="$rmprog -f"
|
||||
stripcmd=
|
||||
|
||||
src=
|
||||
dst=
|
||||
dir_arg=
|
||||
dst_arg=
|
||||
|
||||
copy_on_change=false
|
||||
no_target_directory=
|
||||
|
||||
usage="\
|
||||
Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
|
||||
or: $0 [OPTION]... SRCFILES... DIRECTORY
|
||||
or: $0 [OPTION]... -t DIRECTORY SRCFILES...
|
||||
or: $0 [OPTION]... -d DIRECTORIES...
|
||||
|
||||
In the 1st form, copy SRCFILE to DSTFILE.
|
||||
In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
|
||||
In the 4th, create DIRECTORIES.
|
||||
|
||||
Options:
|
||||
--help display this help and exit.
|
||||
--version display version info and exit.
|
||||
|
||||
-c (ignored)
|
||||
-C install only if different (preserve the last data modification time)
|
||||
-d create directories instead of installing files.
|
||||
-g GROUP $chgrpprog installed files to GROUP.
|
||||
-m MODE $chmodprog installed files to MODE.
|
||||
-o USER $chownprog installed files to USER.
|
||||
-s $stripprog installed files.
|
||||
-t DIRECTORY install into DIRECTORY.
|
||||
-T report an error if DSTFILE is a directory.
|
||||
|
||||
Environment variables override the default commands:
|
||||
CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
|
||||
RMPROG STRIPPROG
|
||||
"
|
||||
|
||||
while test $# -ne 0; do
|
||||
case $1 in
|
||||
-c) ;;
|
||||
|
||||
-C) copy_on_change=true;;
|
||||
|
||||
-d) dir_arg=true;;
|
||||
|
||||
-g) chgrpcmd="$chgrpprog $2"
|
||||
shift;;
|
||||
|
||||
--help) echo "$usage"; exit $?;;
|
||||
|
||||
-m) mode=$2
|
||||
case $mode in
|
||||
*' '* | *' '* | *'
|
||||
'* | *'*'* | *'?'* | *'['*)
|
||||
echo "$0: invalid mode: $mode" >&2
|
||||
exit 1;;
|
||||
esac
|
||||
shift;;
|
||||
|
||||
-o) chowncmd="$chownprog $2"
|
||||
shift;;
|
||||
|
||||
-s) stripcmd=$stripprog;;
|
||||
|
||||
-t) dst_arg=$2
|
||||
shift;;
|
||||
|
||||
-T) no_target_directory=true;;
|
||||
|
||||
--version) echo "$0 $scriptversion"; exit $?;;
|
||||
|
||||
--) shift
|
||||
break;;
|
||||
|
||||
-*) echo "$0: invalid option: $1" >&2
|
||||
exit 1;;
|
||||
|
||||
*) break;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
|
||||
# When -d is used, all remaining arguments are directories to create.
|
||||
# When -t is used, the destination is already specified.
|
||||
# Otherwise, the last argument is the destination. Remove it from $@.
|
||||
for arg
|
||||
do
|
||||
if test -n "$dst_arg"; then
|
||||
# $@ is not empty: it contains at least $arg.
|
||||
set fnord "$@" "$dst_arg"
|
||||
shift # fnord
|
||||
fi
|
||||
shift # arg
|
||||
dst_arg=$arg
|
||||
done
|
||||
fi
|
||||
|
||||
if test $# -eq 0; then
|
||||
if test -z "$dir_arg"; then
|
||||
echo "$0: no input file specified." >&2
|
||||
exit 1
|
||||
fi
|
||||
# It's OK to call `install-sh -d' without argument.
|
||||
# This can happen when creating conditional directories.
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if test -z "$dir_arg"; then
|
||||
trap '(exit $?); exit' 1 2 13 15
|
||||
|
||||
# Set umask so as not to create temps with too-generous modes.
|
||||
# However, 'strip' requires both read and write access to temps.
|
||||
case $mode in
|
||||
# Optimize common cases.
|
||||
*644) cp_umask=133;;
|
||||
*755) cp_umask=22;;
|
||||
|
||||
*[0-7])
|
||||
if test -z "$stripcmd"; then
|
||||
u_plus_rw=
|
||||
else
|
||||
u_plus_rw='% 200'
|
||||
fi
|
||||
cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
|
||||
*)
|
||||
if test -z "$stripcmd"; then
|
||||
u_plus_rw=
|
||||
else
|
||||
u_plus_rw=,u+rw
|
||||
fi
|
||||
cp_umask=$mode$u_plus_rw;;
|
||||
esac
|
||||
fi
|
||||
|
||||
for src
|
||||
do
|
||||
# Protect names starting with `-'.
|
||||
case $src in
|
||||
-*) src=./$src;;
|
||||
esac
|
||||
|
||||
if test -n "$dir_arg"; then
|
||||
dst=$src
|
||||
dstdir=$dst
|
||||
test -d "$dstdir"
|
||||
dstdir_status=$?
|
||||
else
|
||||
|
||||
# Waiting for this to be detected by the "$cpprog $src $dsttmp" command
|
||||
# might cause directories to be created, which would be especially bad
|
||||
# if $src (and thus $dsttmp) contains '*'.
|
||||
if test ! -f "$src" && test ! -d "$src"; then
|
||||
echo "$0: $src does not exist." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if test -z "$dst_arg"; then
|
||||
echo "$0: no destination specified." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
dst=$dst_arg
|
||||
# Protect names starting with `-'.
|
||||
case $dst in
|
||||
-*) dst=./$dst;;
|
||||
esac
|
||||
|
||||
# If destination is a directory, append the input filename; won't work
|
||||
# if double slashes aren't ignored.
|
||||
if test -d "$dst"; then
|
||||
if test -n "$no_target_directory"; then
|
||||
echo "$0: $dst_arg: Is a directory" >&2
|
||||
exit 1
|
||||
fi
|
||||
dstdir=$dst
|
||||
dst=$dstdir/`basename "$src"`
|
||||
dstdir_status=0
|
||||
else
|
||||
# Prefer dirname, but fall back on a substitute if dirname fails.
|
||||
dstdir=`
|
||||
(dirname "$dst") 2>/dev/null ||
|
||||
expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
|
||||
X"$dst" : 'X\(//\)[^/]' \| \
|
||||
X"$dst" : 'X\(//\)$' \| \
|
||||
X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
|
||||
echo X"$dst" |
|
||||
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
|
||||
s//\1/
|
||||
q
|
||||
}
|
||||
/^X\(\/\/\)[^/].*/{
|
||||
s//\1/
|
||||
q
|
||||
}
|
||||
/^X\(\/\/\)$/{
|
||||
s//\1/
|
||||
q
|
||||
}
|
||||
/^X\(\/\).*/{
|
||||
s//\1/
|
||||
q
|
||||
}
|
||||
s/.*/./; q'
|
||||
`
|
||||
|
||||
test -d "$dstdir"
|
||||
dstdir_status=$?
|
||||
fi
|
||||
fi
|
||||
|
||||
obsolete_mkdir_used=false
|
||||
|
||||
if test $dstdir_status != 0; then
|
||||
case $posix_mkdir in
|
||||
'')
|
||||
# Create intermediate dirs using mode 755 as modified by the umask.
|
||||
# This is like FreeBSD 'install' as of 1997-10-28.
|
||||
umask=`umask`
|
||||
case $stripcmd.$umask in
|
||||
# Optimize common cases.
|
||||
*[2367][2367]) mkdir_umask=$umask;;
|
||||
.*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
|
||||
|
||||
*[0-7])
|
||||
mkdir_umask=`expr $umask + 22 \
|
||||
- $umask % 100 % 40 + $umask % 20 \
|
||||
- $umask % 10 % 4 + $umask % 2
|
||||
`;;
|
||||
*) mkdir_umask=$umask,go-w;;
|
||||
esac
|
||||
|
||||
# With -d, create the new directory with the user-specified mode.
|
||||
# Otherwise, rely on $mkdir_umask.
|
||||
if test -n "$dir_arg"; then
|
||||
mkdir_mode=-m$mode
|
||||
else
|
||||
mkdir_mode=
|
||||
fi
|
||||
|
||||
posix_mkdir=false
|
||||
case $umask in
|
||||
*[123567][0-7][0-7])
|
||||
# POSIX mkdir -p sets u+wx bits regardless of umask, which
|
||||
# is incompatible with FreeBSD 'install' when (umask & 300) != 0.
|
||||
;;
|
||||
*)
|
||||
tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
|
||||
trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
|
||||
|
||||
if (umask $mkdir_umask &&
|
||||
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
|
||||
then
|
||||
if test -z "$dir_arg" || {
|
||||
# Check for POSIX incompatibilities with -m.
|
||||
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
|
||||
# other-writeable bit of parent directory when it shouldn't.
|
||||
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
|
||||
ls_ld_tmpdir=`ls -ld "$tmpdir"`
|
||||
case $ls_ld_tmpdir in
|
||||
d????-?r-*) different_mode=700;;
|
||||
d????-?--*) different_mode=755;;
|
||||
*) false;;
|
||||
esac &&
|
||||
$mkdirprog -m$different_mode -p -- "$tmpdir" && {
|
||||
ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
|
||||
test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
|
||||
}
|
||||
}
|
||||
then posix_mkdir=:
|
||||
fi
|
||||
rmdir "$tmpdir/d" "$tmpdir"
|
||||
else
|
||||
# Remove any dirs left behind by ancient mkdir implementations.
|
||||
rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
|
||||
fi
|
||||
trap '' 0;;
|
||||
esac;;
|
||||
esac
|
||||
|
||||
if
|
||||
$posix_mkdir && (
|
||||
umask $mkdir_umask &&
|
||||
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
|
||||
)
|
||||
then :
|
||||
else
|
||||
|
||||
# The umask is ridiculous, or mkdir does not conform to POSIX,
|
||||
# or it failed possibly due to a race condition. Create the
|
||||
# directory the slow way, step by step, checking for races as we go.
|
||||
|
||||
case $dstdir in
|
||||
/*) prefix='/';;
|
||||
-*) prefix='./';;
|
||||
*) prefix='';;
|
||||
esac
|
||||
|
||||
eval "$initialize_posix_glob"
|
||||
|
||||
oIFS=$IFS
|
||||
IFS=/
|
||||
$posix_glob set -f
|
||||
set fnord $dstdir
|
||||
shift
|
||||
$posix_glob set +f
|
||||
IFS=$oIFS
|
||||
|
||||
prefixes=
|
||||
|
||||
for d
|
||||
do
|
||||
test -z "$d" && continue
|
||||
|
||||
prefix=$prefix$d
|
||||
if test -d "$prefix"; then
|
||||
prefixes=
|
||||
else
|
||||
if $posix_mkdir; then
|
||||
(umask=$mkdir_umask &&
|
||||
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
|
||||
# Don't fail if two instances are running concurrently.
|
||||
test -d "$prefix" || exit 1
|
||||
else
|
||||
case $prefix in
|
||||
*\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
|
||||
*) qprefix=$prefix;;
|
||||
esac
|
||||
prefixes="$prefixes '$qprefix'"
|
||||
fi
|
||||
fi
|
||||
prefix=$prefix/
|
||||
done
|
||||
|
||||
if test -n "$prefixes"; then
|
||||
# Don't fail if two instances are running concurrently.
|
||||
(umask $mkdir_umask &&
|
||||
eval "\$doit_exec \$mkdirprog $prefixes") ||
|
||||
test -d "$dstdir" || exit 1
|
||||
obsolete_mkdir_used=true
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if test -n "$dir_arg"; then
|
||||
{ test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
|
||||
{ test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
|
||||
{ test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
|
||||
test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
|
||||
else
|
||||
|
||||
# Make a couple of temp file names in the proper directory.
|
||||
dsttmp=$dstdir/_inst.$$_
|
||||
rmtmp=$dstdir/_rm.$$_
|
||||
|
||||
# Trap to clean up those temp files at exit.
|
||||
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
|
||||
|
||||
# Copy the file name to the temp name.
|
||||
(umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
|
||||
|
||||
# and set any options; do chmod last to preserve setuid bits.
|
||||
#
|
||||
# If any of these fail, we abort the whole thing. If we want to
|
||||
# ignore errors from any of these, just make sure not to ignore
|
||||
# errors from the above "$doit $cpprog $src $dsttmp" command.
|
||||
#
|
||||
{ test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
|
||||
{ test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
|
||||
{ test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
|
||||
{ test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
|
||||
|
||||
# If -C, don't bother to copy if it wouldn't change the file.
|
||||
if $copy_on_change &&
|
||||
old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
|
||||
new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
|
||||
|
||||
eval "$initialize_posix_glob" &&
|
||||
$posix_glob set -f &&
|
||||
set X $old && old=:$2:$4:$5:$6 &&
|
||||
set X $new && new=:$2:$4:$5:$6 &&
|
||||
$posix_glob set +f &&
|
||||
|
||||
test "$old" = "$new" &&
|
||||
$cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
|
||||
then
|
||||
rm -f "$dsttmp"
|
||||
else
|
||||
# Rename the file to the real destination.
|
||||
$doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
|
||||
|
||||
# The rename failed, perhaps because mv can't rename something else
|
||||
# to itself, or perhaps because mv is so ancient that it does not
|
||||
# support -f.
|
||||
{
|
||||
# Now remove or move aside any old file at destination location.
|
||||
# We try this two ways since rm can't unlink itself on some
|
||||
# systems and the destination file might be busy for other
|
||||
# reasons. In this case, the final cleanup might fail but the new
|
||||
# file should still install successfully.
|
||||
{
|
||||
test ! -f "$dst" ||
|
||||
$doit $rmcmd -f "$dst" 2>/dev/null ||
|
||||
{ $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
|
||||
{ $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
|
||||
} ||
|
||||
{ echo "$0: cannot unlink or rename $dst" >&2
|
||||
(exit 1); exit 1
|
||||
}
|
||||
} &&
|
||||
|
||||
# Now rename the file to the real destination.
|
||||
$doit $mvcmd "$dsttmp" "$dst"
|
||||
}
|
||||
fi || exit 1
|
||||
|
||||
trap '' 0
|
||||
fi
|
||||
done
|
||||
|
||||
# Local variables:
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-time-zone: "UTC"
|
||||
# time-stamp-end: "; # UTC"
|
||||
# End:
|
||||
8406
ltfs/build-aux/ltmain.sh
Executable file
8406
ltfs/build-aux/ltmain.sh
Executable file
File diff suppressed because it is too large
Load Diff
376
ltfs/build-aux/missing
Executable file
376
ltfs/build-aux/missing
Executable file
@@ -0,0 +1,376 @@
|
||||
#! /bin/sh
|
||||
# Common stub for a few missing GNU programs while installing.
|
||||
|
||||
scriptversion=2009-04-28.21; # UTC
|
||||
|
||||
# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006,
|
||||
# 2008, 2009 Free Software Foundation, Inc.
|
||||
# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
# configuration script generated by Autoconf, you may include it under
|
||||
# the same distribution terms that you use for the rest of that program.
|
||||
|
||||
if test $# -eq 0; then
|
||||
echo 1>&2 "Try \`$0 --help' for more information"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
run=:
|
||||
sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
|
||||
sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
|
||||
|
||||
# In the cases where this matters, `missing' is being run in the
|
||||
# srcdir already.
|
||||
if test -f configure.ac; then
|
||||
configure_ac=configure.ac
|
||||
else
|
||||
configure_ac=configure.in
|
||||
fi
|
||||
|
||||
msg="missing on your system"
|
||||
|
||||
case $1 in
|
||||
--run)
|
||||
# Try to run requested program, and just exit if it succeeds.
|
||||
run=
|
||||
shift
|
||||
"$@" && exit 0
|
||||
# Exit code 63 means version mismatch. This often happens
|
||||
# when the user try to use an ancient version of a tool on
|
||||
# a file that requires a minimum version. In this case we
|
||||
# we should proceed has if the program had been absent, or
|
||||
# if --run hadn't been passed.
|
||||
if test $? = 63; then
|
||||
run=:
|
||||
msg="probably too old"
|
||||
fi
|
||||
;;
|
||||
|
||||
-h|--h|--he|--hel|--help)
|
||||
echo "\
|
||||
$0 [OPTION]... PROGRAM [ARGUMENT]...
|
||||
|
||||
Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
|
||||
error status if there is no known handling for PROGRAM.
|
||||
|
||||
Options:
|
||||
-h, --help display this help and exit
|
||||
-v, --version output version information and exit
|
||||
--run try to run the given command, and emulate it if it fails
|
||||
|
||||
Supported PROGRAM values:
|
||||
aclocal touch file \`aclocal.m4'
|
||||
autoconf touch file \`configure'
|
||||
autoheader touch file \`config.h.in'
|
||||
autom4te touch the output file, or create a stub one
|
||||
automake touch all \`Makefile.in' files
|
||||
bison create \`y.tab.[ch]', if possible, from existing .[ch]
|
||||
flex create \`lex.yy.c', if possible, from existing .c
|
||||
help2man touch the output file
|
||||
lex create \`lex.yy.c', if possible, from existing .c
|
||||
makeinfo touch the output file
|
||||
tar try tar, gnutar, gtar, then tar without non-portable flags
|
||||
yacc create \`y.tab.[ch]', if possible, from existing .[ch]
|
||||
|
||||
Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and
|
||||
\`g' are ignored when checking the name.
|
||||
|
||||
Send bug reports to <bug-automake@gnu.org>."
|
||||
exit $?
|
||||
;;
|
||||
|
||||
-v|--v|--ve|--ver|--vers|--versi|--versio|--version)
|
||||
echo "missing $scriptversion (GNU Automake)"
|
||||
exit $?
|
||||
;;
|
||||
|
||||
-*)
|
||||
echo 1>&2 "$0: Unknown \`$1' option"
|
||||
echo 1>&2 "Try \`$0 --help' for more information"
|
||||
exit 1
|
||||
;;
|
||||
|
||||
esac
|
||||
|
||||
# normalize program name to check for.
|
||||
program=`echo "$1" | sed '
|
||||
s/^gnu-//; t
|
||||
s/^gnu//; t
|
||||
s/^g//; t'`
|
||||
|
||||
# Now exit if we have it, but it failed. Also exit now if we
|
||||
# don't have it and --version was passed (most likely to detect
|
||||
# the program). This is about non-GNU programs, so use $1 not
|
||||
# $program.
|
||||
case $1 in
|
||||
lex*|yacc*)
|
||||
# Not GNU programs, they don't have --version.
|
||||
;;
|
||||
|
||||
tar*)
|
||||
if test -n "$run"; then
|
||||
echo 1>&2 "ERROR: \`tar' requires --run"
|
||||
exit 1
|
||||
elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
|
||||
*)
|
||||
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
|
||||
# We have it, but it failed.
|
||||
exit 1
|
||||
elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
|
||||
# Could not run --version or --help. This is probably someone
|
||||
# running `$TOOL --version' or `$TOOL --help' to check whether
|
||||
# $TOOL exists and not knowing $TOOL uses missing.
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
# If it does not exist, or fails to run (possibly an outdated version),
|
||||
# try to emulate it.
|
||||
case $program in
|
||||
aclocal*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified \`acinclude.m4' or \`${configure_ac}'. You might want
|
||||
to install the \`Automake' and \`Perl' packages. Grab them from
|
||||
any GNU archive site."
|
||||
touch aclocal.m4
|
||||
;;
|
||||
|
||||
autoconf*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified \`${configure_ac}'. You might want to install the
|
||||
\`Autoconf' and \`GNU m4' packages. Grab them from any GNU
|
||||
archive site."
|
||||
touch configure
|
||||
;;
|
||||
|
||||
autoheader*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified \`acconfig.h' or \`${configure_ac}'. You might want
|
||||
to install the \`Autoconf' and \`GNU m4' packages. Grab them
|
||||
from any GNU archive site."
|
||||
files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
|
||||
test -z "$files" && files="config.h"
|
||||
touch_files=
|
||||
for f in $files; do
|
||||
case $f in
|
||||
*:*) touch_files="$touch_files "`echo "$f" |
|
||||
sed -e 's/^[^:]*://' -e 's/:.*//'`;;
|
||||
*) touch_files="$touch_files $f.in";;
|
||||
esac
|
||||
done
|
||||
touch $touch_files
|
||||
;;
|
||||
|
||||
automake*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
|
||||
You might want to install the \`Automake' and \`Perl' packages.
|
||||
Grab them from any GNU archive site."
|
||||
find . -type f -name Makefile.am -print |
|
||||
sed 's/\.am$/.in/' |
|
||||
while read f; do touch "$f"; done
|
||||
;;
|
||||
|
||||
autom4te*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is needed, but is $msg.
|
||||
You might have modified some files without having the
|
||||
proper tools for further handling them.
|
||||
You can get \`$1' as part of \`Autoconf' from any GNU
|
||||
archive site."
|
||||
|
||||
file=`echo "$*" | sed -n "$sed_output"`
|
||||
test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
|
||||
if test -f "$file"; then
|
||||
touch $file
|
||||
else
|
||||
test -z "$file" || exec >$file
|
||||
echo "#! /bin/sh"
|
||||
echo "# Created by GNU Automake missing as a replacement of"
|
||||
echo "# $ $@"
|
||||
echo "exit 0"
|
||||
chmod +x $file
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
|
||||
bison*|yacc*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' $msg. You should only need it if
|
||||
you modified a \`.y' file. You may need the \`Bison' package
|
||||
in order for those modifications to take effect. You can get
|
||||
\`Bison' from any GNU archive site."
|
||||
rm -f y.tab.c y.tab.h
|
||||
if test $# -ne 1; then
|
||||
eval LASTARG="\${$#}"
|
||||
case $LASTARG in
|
||||
*.y)
|
||||
SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
|
||||
if test -f "$SRCFILE"; then
|
||||
cp "$SRCFILE" y.tab.c
|
||||
fi
|
||||
SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
|
||||
if test -f "$SRCFILE"; then
|
||||
cp "$SRCFILE" y.tab.h
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
if test ! -f y.tab.h; then
|
||||
echo >y.tab.h
|
||||
fi
|
||||
if test ! -f y.tab.c; then
|
||||
echo 'main() { return 0; }' >y.tab.c
|
||||
fi
|
||||
;;
|
||||
|
||||
lex*|flex*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified a \`.l' file. You may need the \`Flex' package
|
||||
in order for those modifications to take effect. You can get
|
||||
\`Flex' from any GNU archive site."
|
||||
rm -f lex.yy.c
|
||||
if test $# -ne 1; then
|
||||
eval LASTARG="\${$#}"
|
||||
case $LASTARG in
|
||||
*.l)
|
||||
SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
|
||||
if test -f "$SRCFILE"; then
|
||||
cp "$SRCFILE" lex.yy.c
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
if test ! -f lex.yy.c; then
|
||||
echo 'main() { return 0; }' >lex.yy.c
|
||||
fi
|
||||
;;
|
||||
|
||||
help2man*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified a dependency of a manual page. You may need the
|
||||
\`Help2man' package in order for those modifications to take
|
||||
effect. You can get \`Help2man' from any GNU archive site."
|
||||
|
||||
file=`echo "$*" | sed -n "$sed_output"`
|
||||
test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
|
||||
if test -f "$file"; then
|
||||
touch $file
|
||||
else
|
||||
test -z "$file" || exec >$file
|
||||
echo ".ab help2man is required to generate this page"
|
||||
exit $?
|
||||
fi
|
||||
;;
|
||||
|
||||
makeinfo*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified a \`.texi' or \`.texinfo' file, or any other file
|
||||
indirectly affecting the aspect of the manual. The spurious
|
||||
call might also be the consequence of using a buggy \`make' (AIX,
|
||||
DU, IRIX). You might want to install the \`Texinfo' package or
|
||||
the \`GNU make' package. Grab either from any GNU archive site."
|
||||
# The file to touch is that specified with -o ...
|
||||
file=`echo "$*" | sed -n "$sed_output"`
|
||||
test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
|
||||
if test -z "$file"; then
|
||||
# ... or it is the one specified with @setfilename ...
|
||||
infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
|
||||
file=`sed -n '
|
||||
/^@setfilename/{
|
||||
s/.* \([^ ]*\) *$/\1/
|
||||
p
|
||||
q
|
||||
}' $infile`
|
||||
# ... or it is derived from the source name (dir/f.texi becomes f.info)
|
||||
test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
|
||||
fi
|
||||
# If the file does not exist, the user really needs makeinfo;
|
||||
# let's fail without touching anything.
|
||||
test -f $file || exit 1
|
||||
touch $file
|
||||
;;
|
||||
|
||||
tar*)
|
||||
shift
|
||||
|
||||
# We have already tried tar in the generic part.
|
||||
# Look for gnutar/gtar before invocation to avoid ugly error
|
||||
# messages.
|
||||
if (gnutar --version > /dev/null 2>&1); then
|
||||
gnutar "$@" && exit 0
|
||||
fi
|
||||
if (gtar --version > /dev/null 2>&1); then
|
||||
gtar "$@" && exit 0
|
||||
fi
|
||||
firstarg="$1"
|
||||
if shift; then
|
||||
case $firstarg in
|
||||
*o*)
|
||||
firstarg=`echo "$firstarg" | sed s/o//`
|
||||
tar "$firstarg" "$@" && exit 0
|
||||
;;
|
||||
esac
|
||||
case $firstarg in
|
||||
*h*)
|
||||
firstarg=`echo "$firstarg" | sed s/h//`
|
||||
tar "$firstarg" "$@" && exit 0
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
echo 1>&2 "\
|
||||
WARNING: I can't seem to be able to run \`tar' with the given arguments.
|
||||
You may want to install GNU tar or Free paxutils, or check the
|
||||
command line arguments."
|
||||
exit 1
|
||||
;;
|
||||
|
||||
*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is needed, and is $msg.
|
||||
You might have modified some files without having the
|
||||
proper tools for further handling them. Check the \`README' file,
|
||||
it often tells you about the needed prerequisites for installing
|
||||
this package. You may also peek at any GNU archive site, in case
|
||||
some other package would contain this missing \`$1' program."
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
|
||||
# Local variables:
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-time-zone: "UTC"
|
||||
# time-stamp-end: "; # UTC"
|
||||
# End:
|
||||
132
ltfs/build_package_linux.sh
Executable file
132
ltfs/build_package_linux.sh
Executable file
@@ -0,0 +1,132 @@
|
||||
#! /bin/bash
|
||||
#############################################################################
|
||||
#
|
||||
# FILE NAME: build_package_linux.sh
|
||||
#
|
||||
# DESCRIPTION: Automates build of LTFS for linux.
|
||||
#
|
||||
# AUTHOR: Murali
|
||||
#
|
||||
#############################################################################
|
||||
#
|
||||
# (C) Copyright 2015, 2016 Hewlett Packard Enterprise Development LP
|
||||
#
|
||||
#############################################################################
|
||||
|
||||
LTFS_CODE_DIRECTORY=""
|
||||
LTFS_NAME=""
|
||||
LTFS_VERSION=""
|
||||
LTFS_SOURCE_NAME=""
|
||||
LTFS_RELEASE=""
|
||||
LTFS_SPEC_NAME="ltfs.spec"
|
||||
|
||||
#RPM directories
|
||||
RPM_SOURCES_DIR=""
|
||||
RPM_SPECS_DIR=""
|
||||
RPM_SRPMS_DIR=""
|
||||
RPM_RPMS_DIR=""
|
||||
RPM_ARCH_NAME=""
|
||||
|
||||
function initialize_global_variables() {
|
||||
|
||||
# Check whether rpm installed or not
|
||||
temp=`rpm -q rpm`
|
||||
if [ $? -ne 0 ] ; then
|
||||
RET_VAL=$?
|
||||
echo -e "RPM not installed !!"
|
||||
exit $EXIT_VALUE
|
||||
fi
|
||||
|
||||
if [[ "$temp" =~ "not installed" ]]; then
|
||||
echo "RPM Not Found";
|
||||
else
|
||||
echo "Initializing the RPM global variables...";
|
||||
RPM_SOURCES_DIR=`rpm -E %{_sourcedir}`
|
||||
RPM_SPECS_DIR=`rpm -E %{_specdir}`
|
||||
RPM_SRPMS_DIR=`rpm -E %{_srcrpmdir}`
|
||||
RPM_RPMS_DIR=`rpm -E %{_rpmdir}`
|
||||
RPM_ARCH_NAME=`uname -m`
|
||||
LTFS_CODE_DIRECTORY=`pwd`
|
||||
LTFS_NAME=`grep Name: $LTFS_SPEC_NAME | awk '{print $2}'`
|
||||
LTFS_VERSION=`grep Version: $LTFS_SPEC_NAME | awk '{print $2}'`
|
||||
LTFS_SOURCE_NAME=`grep Source0: $LTFS_SPEC_NAME | awk '{print $2}'`
|
||||
LTFS_RELEASE=`grep Release: $LTFS_SPEC_NAME | awk '{print $2}'`
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
function build_ltfs() {
|
||||
echo "Building ltfs..."
|
||||
cd ../
|
||||
temp_dir=`pwd`
|
||||
if [ -d "$temp_dir/$LTFS_NAME-$LTFS_VERSION" ]; then
|
||||
rm -rf $temp_dir/$LTFS_NAME-$LTFS_VERSION
|
||||
fi
|
||||
if [ -d "$temp_dir/$LTFS_SOURCE_NAME" ]; then
|
||||
rm -rf $temp_dir/$LTFS_SOURCE_NAME
|
||||
fi
|
||||
cp -rf $LTFS_CODE_DIRECTORY $LTFS_NAME-$LTFS_VERSION
|
||||
tar -zcvf $LTFS_SOURCE_NAME $LTFS_NAME-$LTFS_VERSION
|
||||
mkdir -p $RPM_SOURCES_DIR
|
||||
cp -f $LTFS_SOURCE_NAME $RPM_SOURCES_DIR
|
||||
|
||||
cd $LTFS_CODE_DIRECTORY
|
||||
rpmbuild -ba $LTFS_SPEC_NAME
|
||||
if [ $? -ne 0 ] ; then
|
||||
RET_VAL=$?
|
||||
echo -e "RPM build failed !!"
|
||||
exit $EXIT_VALUE
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
function copy_ltfs_build() {
|
||||
echo "Copying the ltfs binary rpm..."
|
||||
if [ -d "$LTFS_CODE_DIRECTORY/build" ]; then
|
||||
rm -rf $LTFS_CODE_DIRECTORY/build
|
||||
fi
|
||||
|
||||
mkdir -p $LTFS_CODE_DIRECTORY/build
|
||||
|
||||
cp $RPM_RPMS_DIR/$RPM_ARCH_NAME/$LTFS_NAME-$LTFS_VERSION-$LTFS_RELEASE.$RPM_ARCH_NAME.rpm $LTFS_CODE_DIRECTORY/build
|
||||
cp $RPM_SRPMS_DIR/$LTFS_NAME-$LTFS_VERSION-$LTFS_RELEASE.src.rpm $LTFS_CODE_DIRECTORY/build
|
||||
|
||||
}
|
||||
|
||||
function packaging_binaries() {
|
||||
echo "Producing binary tarball"
|
||||
cd $LTFS_CODE_DIRECTORY/build
|
||||
mkdir binary_package
|
||||
cd binary_package
|
||||
cp ../../doc/COPYING.LIB .
|
||||
cp ../../doc/INSTALLING.linux .
|
||||
cp ../../doc/README .
|
||||
cp ../$LTFS_NAME-$LTFS_VERSION-$LTFS_RELEASE.$RPM_ARCH_NAME.rpm .
|
||||
tar -cvzf $LTFS_NAME-$LTFS_VERSION-BINARIES-RHEL.$RPM_ARCH_NAME.tar.gz COPYING.LIB INSTALLING.linux README $LTFS_NAME-$LTFS_VERSION-$LTFS_RELEASE.$RPM_ARCH_NAME.rpm
|
||||
|
||||
}
|
||||
|
||||
function packaging_source() {
|
||||
echo "Producing source tarball"
|
||||
cd $LTFS_CODE_DIRECTORY/build
|
||||
mkdir source_package
|
||||
cd source_package
|
||||
svn export https://csvnsdc-pro.sdc.hpecorp.net:18490/svn/swd-hpltfs/trunk/ltfs ltfs
|
||||
cp ../../doc/COPYING.LIB .
|
||||
cp ../../doc/BUILDING.linux .
|
||||
cp ../../doc/BUILDING.macosx .
|
||||
cp ../../doc/README .
|
||||
tar -cvzf $LTFS_NAME-$LTFS_VERSION-SOURCE.tar.gz COPYING.LIB BUILDING.linux BUILDING.macosx README ltfs
|
||||
}
|
||||
|
||||
|
||||
function Main() {
|
||||
initialize_global_variables
|
||||
build_ltfs
|
||||
copy_ltfs_build
|
||||
packaging_binaries
|
||||
packaging_source
|
||||
}
|
||||
|
||||
Main $@
|
||||
|
||||
394
ltfs/build_package_osx.sh
Executable file
394
ltfs/build_package_osx.sh
Executable file
@@ -0,0 +1,394 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# %Z% %I% %W% %G% %U%
|
||||
#
|
||||
# ZZ_Copyright_BEGIN
|
||||
#
|
||||
#
|
||||
# Licensed Materials - Property of IBM
|
||||
#
|
||||
# IBM Linear Tape File System Single Drive Edition Version 2.2.0.2 for Linux and Mac OS X
|
||||
#
|
||||
# Copyright IBM Corp. 2010, 2014
|
||||
#
|
||||
# This file is part of the IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X
|
||||
# (formally known as IBM Linear Tape File System)
|
||||
#
|
||||
# The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is free software;
|
||||
# you can redistribute it and/or modify it under the terms of the GNU Lesser
|
||||
# General Public License as published by the Free Software Foundation,
|
||||
# version 2.1 of the License.
|
||||
#
|
||||
# The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is distributed in the
|
||||
# hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the GNU Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this library; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
# or download the license from <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
#
|
||||
# ZZ_Copyright_END
|
||||
#
|
||||
#############################################################################
|
||||
#
|
||||
# FILE NAME: build_package_osx.sh
|
||||
#
|
||||
# DESCRIPTION: Automates build of LTFS for OS X.
|
||||
#
|
||||
# AUTHOR: Michael A. Richmond
|
||||
# IBM Almaden Research Center
|
||||
# mar@almaden.ibm.com
|
||||
#
|
||||
#############################################################################
|
||||
#
|
||||
# (C) Copyright 201 - 2017 Hewlett Packard Enterprise Development LP
|
||||
#
|
||||
# Changes to support building for HPE environment
|
||||
# - ltotape backend; clean ltfs.conf; add unltfs utility
|
||||
#
|
||||
#############################################################################
|
||||
|
||||
#DEBUG_FLAGS="-DDEBUG -DTRACE"
|
||||
#DEBUG_FLAGS="-DDEBUG"
|
||||
DEBUG_FLAGS=""
|
||||
|
||||
ICU4C_FRAMEWORK_DIR=/Library/Frameworks/ICU.framework
|
||||
MACFUSE_FRAME_WORK_DIR=/Library/Frameworks/MacFUSE.framework
|
||||
OSXFUSE_FRAME_WORK_DIR=/Library/Frameworks/OSXFUSE.framework
|
||||
FUSE="NONE";
|
||||
|
||||
#
|
||||
# LTFS version
|
||||
#
|
||||
LTFS_FRAMEWORK=LTFS.framework
|
||||
LTFS_FRAMEWORK_EXECUTABLE=LTFS
|
||||
LTFS_VERSION=3.4.2
|
||||
|
||||
OUTPUT_DIR_NAME=distribution
|
||||
|
||||
BASEDIR=`pwd`
|
||||
|
||||
#
|
||||
# Final install path
|
||||
#
|
||||
LTFS_INSTALL_PREFIX=/Library/Frameworks/${LTFS_FRAMEWORK}/Versions/Current/usr
|
||||
LTFS_CONF_PREFIX=/Library/Frameworks/${LTFS_FRAMEWORK}/Versions/Current/etc
|
||||
LTFS_FRAMEWORK_DIR=${BASEDIR}/${OUTPUT_DIR_NAME}/${LTFS_FRAMEWORK}
|
||||
LTFS_BUILD_OUTPUT_DIR=${LTFS_FRAMEWORK_DIR}/Versions/Current/usr
|
||||
LTFS_SRC_DIR=${BASEDIR}/src
|
||||
LTFS_CONF_DIR=${BASEDIR}/conf
|
||||
TARBALL_VERSION=`echo ${LTFS_VERSION} | tr '.' '_'`
|
||||
LTFS_TARBALL=ltfs-iokit-bin-v${TARBALL_VERSION}.tar.gz
|
||||
|
||||
if [ "x${GNUMAKE}" = "x" ]; then
|
||||
GNUMAKE=/usr/bin/gnumake
|
||||
fi
|
||||
|
||||
###############################################################################
|
||||
###############################################################################
|
||||
|
||||
check_prereqs()
|
||||
{
|
||||
# ICU4C
|
||||
if [ ! -e ${ICU4C_FRAMEWORK_DIR} ]; then
|
||||
echo "error: prerequiste 'ICU' is not installed in '${ICU4C_FRAMEWORK_DIR}'."
|
||||
exit 1
|
||||
else
|
||||
for i in `ls -l ${ICU4C_FRAMEWORK_DIR}/Versions | grep Current`; do
|
||||
VERSION=$i
|
||||
done
|
||||
echo "info: prerequiste 'ICU ${VERSION}' is installed in '${ICU4C_FRAMEWORK_DIR}'."
|
||||
fi
|
||||
|
||||
# MacFUSE
|
||||
if [ -e ${MACFUSE_FRAME_WORK_DIR} ] &&
|
||||
[ -e /usr/local/include/fuse.h ] &&
|
||||
[ -e /usr/local/lib/libfuse.dylib ] &&
|
||||
[ -e /usr/local/lib/libfuse_ino64.dylib ]; then
|
||||
echo "info: prerequiste 'MacFUSE' is installed."
|
||||
FUSE="MACFUSE"
|
||||
fi
|
||||
|
||||
# OSXFUSE
|
||||
if [ -e ${OSXFUSE_FRAME_WORK_DIR} ] &&
|
||||
[ -e /usr/local/include/osxfuse/fuse.h ] &&
|
||||
[ -e /usr/local/lib/libosxfuse.dylib ] &&
|
||||
[ -e /usr/local/lib/libosxfuse_i64.dylib ]; then
|
||||
echo "info: prerequiste 'OSXFUSE $i' is installed."
|
||||
FUSE="OSXFUSE"
|
||||
fi
|
||||
|
||||
if [ "x$FUSE" = "xNONE" ]; then
|
||||
echo "error: prerequiste 'MacFUSE or OSXFUSE' is not installed in '/Library/Frameworks/'."
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
PWD=`pwd`
|
||||
|
||||
if [ $# -ne 0 ]; then
|
||||
if [ "${1}" == "clean" ]; then
|
||||
echo "Cleaning up the ltfs build folder in"
|
||||
echo "${OUTPUT_DIR_NAME}"
|
||||
|
||||
cd ${BASEDIR}
|
||||
/bin/rm -rf ${OUTPUT_DIR_NAME}
|
||||
|
||||
##
|
||||
## Added for HPE-SOS
|
||||
##
|
||||
cd ${BASEDIR}/conf
|
||||
${GNUMAKE} -f Makefile.osx clean-local
|
||||
|
||||
cd ${BASEDIR}/messages
|
||||
${GNUMAKE} -f Makefile.osx clean-local
|
||||
|
||||
cd ${LTFS_SRC_DIR}
|
||||
${GNUMAKE} -f Makefile.osx clean
|
||||
|
||||
exit 0
|
||||
else
|
||||
echo "usage: build_osx_package.sh [clean]"
|
||||
echo ""
|
||||
echo " This script builds the LTFS system from source and produces"
|
||||
echo " a tar.gz file in the directory '${OUTPUT_DIR_NAME}'."
|
||||
echo ""
|
||||
echo " The 'clean' option cleans up the source and object trees."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
##
|
||||
## create working directory...
|
||||
##
|
||||
cd ${BASEDIR}
|
||||
if [ -e ${OUTPUT_DIR_NAME} ]; then
|
||||
echo "error: Output directory '${OUTPUT_DIR_NAME}' already exists."
|
||||
echo " Please use '"`basename $0`" clean' to remove previous build output."
|
||||
echo ""
|
||||
exit 1
|
||||
fi
|
||||
|
||||
mkdir ${OUTPUT_DIR_NAME}
|
||||
|
||||
echo ""
|
||||
echo "Checking pre-requisites..."
|
||||
check_prereqs
|
||||
|
||||
|
||||
#
|
||||
# Create framework skeleton
|
||||
#
|
||||
echo ""
|
||||
echo "Creating framework skeleton..."
|
||||
cd ${BASEDIR}
|
||||
./assemble-framework.sh
|
||||
if [ $? != "0" ]; then
|
||||
echo "Encountered problem assembling framework skeleton."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
#
|
||||
# Create unix directory tree in framework
|
||||
#
|
||||
echo ""
|
||||
echo "Creating output folders in '${OUTPUT_DIR_NAME}..."
|
||||
cd ${LTFS_BUILD_OUTPUT_DIR}
|
||||
mkdir -p bin
|
||||
mkdir -p lib/ltfs
|
||||
mkdir -p share/ltfs
|
||||
|
||||
|
||||
#
|
||||
# Compile code
|
||||
#
|
||||
echo ""
|
||||
echo "Building message library..."
|
||||
|
||||
cd ${BASEDIR}/messages
|
||||
${GNUMAKE} -f Makefile.osx clean-local && \
|
||||
${GNUMAKE} -f Makefile.osx
|
||||
if [ $? != "0" ]; then
|
||||
echo "Encountered problem building message library."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "Building binaries..."
|
||||
|
||||
cd ${LTFS_SRC_DIR}
|
||||
|
||||
${GNUMAKE} -f Makefile.osx clean && \
|
||||
|
||||
if [ "x${FUSE}" = "MACFUSE" ]; then
|
||||
${GNUMAKE} -f Makefile.osx CONFDIR="${LTFS_CONF_PREFIX}" FUSE=MACFUSE PREFIX="${LTFS_INSTALL_PREFIX}" DEBUG="${DEBUG_FLAGS}"
|
||||
else
|
||||
${GNUMAKE} -f Makefile.osx CONFDIR="${LTFS_CONF_PREFIX}" FUSE=OSXFUSE PREFIX="${LTFS_INSTALL_PREFIX}" DEBUG="${DEBUG_FLAGS}"
|
||||
fi
|
||||
|
||||
if [ $? != "0" ]; then
|
||||
echo "Encountered problem during build."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
#
|
||||
# Copy binaries to output folder
|
||||
#
|
||||
echo ""
|
||||
echo "Copying binaries to output folders..."
|
||||
|
||||
cd ${LTFS_SRC_DIR}
|
||||
|
||||
BIN_FILES="ltfs mkltfs ltfsck unltfs"
|
||||
for f in ${BIN_FILES}
|
||||
do
|
||||
echo "Copying ${f} to ${BASEDIR}/${OUTPUT_DIR_NAME}${LTFS_INSTALL_PREFIX}/bin/"
|
||||
cp ${LTFS_SRC_DIR}/${f} ${LTFS_BUILD_OUTPUT_DIR}/bin
|
||||
if [ $? != "0" ]; then
|
||||
echo "Encountered problem copying files."
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
cp ${LTFS_SRC_DIR}/libltfs.${LTFS_VERSION}.dylib ${LTFS_BUILD_OUTPUT_DIR}/lib
|
||||
if [ $? != "0" ]; then
|
||||
echo "Encountered problem copying files."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cp -R ${LTFS_SRC_DIR}/libiosched-unified.${LTFS_VERSION}.dylib ${LTFS_BUILD_OUTPUT_DIR}/lib/ltfs
|
||||
if [ $? != "0" ]; then
|
||||
echo "Encountered problem copying files."
|
||||
exit 1
|
||||
fi
|
||||
cp -R ${LTFS_SRC_DIR}/libiosched-fcfs.${LTFS_VERSION}.dylib ${LTFS_BUILD_OUTPUT_DIR}/lib/ltfs
|
||||
if [ $? != "0" ]; then
|
||||
echo "Encountered problem copying files."
|
||||
exit 1
|
||||
fi
|
||||
cp -R ${LTFS_SRC_DIR}/libkmi-flatfile.${LTFS_VERSION}.dylib ${LTFS_BUILD_OUTPUT_DIR}/lib/ltfs
|
||||
if [ $? != "0" ]; then
|
||||
echo "Encountered problem copying files."
|
||||
exit 1
|
||||
fi
|
||||
cp -R ${LTFS_SRC_DIR}/libkmi-simple.${LTFS_VERSION}.dylib ${LTFS_BUILD_OUTPUT_DIR}/lib/ltfs
|
||||
if [ $? != "0" ]; then
|
||||
echo "Encountered problem copying files."
|
||||
exit 1
|
||||
fi
|
||||
#cp -R ${LTFS_SRC_DIR}/libdriver-iokit.${LTFS_VERSION}.dylib ${LTFS_BUILD_OUTPUT_DIR}/lib/ltfs
|
||||
#if [ $? != "0" ]; then
|
||||
# echo "Encountered problem copying files."
|
||||
# exit 1
|
||||
#fi
|
||||
#cp -R ${LTFS_SRC_DIR}/libdriver-file.${LTFS_VERSION}.dylib ${LTFS_BUILD_OUTPUT_DIR}/lib/ltfs
|
||||
#if [ $? != "0" ]; then
|
||||
# echo "Encountered problem copying files."
|
||||
# exit 1
|
||||
#fi
|
||||
#cp -R ${LTFS_SRC_DIR}/libdriver-itdtimg.${LTFS_VERSION}.dylib ${LTFS_BUILD_OUTPUT_DIR}/lib/ltfs
|
||||
#if [ $? != "0" ]; then
|
||||
# echo "Encountered problem copying files."
|
||||
# exit 1
|
||||
#fi
|
||||
cp -R ${LTFS_SRC_DIR}/libdriver-ltotape.${LTFS_VERSION}.dylib ${LTFS_BUILD_OUTPUT_DIR}/lib/ltfs
|
||||
if [ $? != "0" ]; then
|
||||
echo "Encountered problem copying files."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
|
||||
umask 00
|
||||
cd ${LTFS_BUILD_OUTPUT_DIR}/lib
|
||||
ln -fs libltfs.${LTFS_VERSION}.dylib libltfs.dylib
|
||||
|
||||
cd ${LTFS_BUILD_OUTPUT_DIR}/lib/ltfs
|
||||
ln -fs libdriver-iokit.${LTFS_VERSION}.dylib libdriver-iokit.dylib
|
||||
ln -fs libdriver-file.${LTFS_VERSION}.dylib libdriver-file.dylib
|
||||
ln -fs libdriver-ltotape.${LTFS_VERSION}.dylib libdriver-ltotape.dylib
|
||||
#ln -fs libdriver-itdtimg.${LTFS_VERSION}.dylib libdriver-itdtimg.dylib
|
||||
|
||||
cd ${LTFS_BUILD_OUTPUT_DIR}/lib/ltfs
|
||||
ln -fs libiosched-unified.${LTFS_VERSION}.dylib libiosched-unified.dylib
|
||||
ln -fs libiosched-fcfs.${LTFS_VERSION}.dylib libiosched-fcfs.dylib
|
||||
ln -fs libkmi-flatfile.${LTFS_VERSION}.dylib libkmi-flatfile.dylib
|
||||
ln -fs libkmi-simple.${LTFS_VERSION}.dylib libkmi-simple.dylib
|
||||
|
||||
|
||||
# Set up framework executatble
|
||||
cd ${LTFS_FRAMEWORK_DIR}
|
||||
ln -fs Versions/Current/usr/lib/libltfs.${LTFS_VERSION}.dylib ${LTFS_FRAMEWORK_EXECUTABLE}
|
||||
|
||||
|
||||
#
|
||||
# Copy over documentation
|
||||
#
|
||||
echo ""
|
||||
echo "Copying documentation..."
|
||||
cd ${LTFS_BUILD_OUTPUT_DIR}/share/ltfs
|
||||
mkdir doc
|
||||
cp -R ${BASEDIR}/doc/[A-z]* ./doc/
|
||||
|
||||
|
||||
#
|
||||
# Copy over header files
|
||||
#
|
||||
echo ""
|
||||
echo "Copying header files..."
|
||||
cd ${LTFS_BUILD_OUTPUT_DIR}
|
||||
mkdir -p include/ltfs/arch
|
||||
HEADER_FILES="ltfsprintf.h"
|
||||
for f in ${HEADER_FILES}
|
||||
do
|
||||
cp ${BASEDIR}/src/${f} ${LTFS_BUILD_OUTPUT_DIR}/include/ltfs/${f}
|
||||
done
|
||||
HEADER_FILES="ltfs.h ltfs_types.h queue.h tape_ops.h plugin.h config_file.h ltfs_error.h"
|
||||
for f in ${HEADER_FILES}
|
||||
do
|
||||
cp ${BASEDIR}/src/libltfs/${f} ${LTFS_BUILD_OUTPUT_DIR}/INCLUDE/LTFS/${f}
|
||||
done
|
||||
cd ${LTFS_FRAMEWORK_DIR}/Versions/Current/Headers
|
||||
ln -s ../usr/include/ltfs ltfs
|
||||
|
||||
#
|
||||
# Create and copy over configuration file
|
||||
#
|
||||
echo ""
|
||||
echo "Copying configuration file..."
|
||||
cd ${LTFS_CONF_DIR}
|
||||
${GNUMAKE} -f Makefile.osx clean-local && \
|
||||
${GNUMAKE} LIBDIR=${LTFS_INSTALL_PREFIX}/lib DEFAULT_DRIVER=ltotape DEFAULT_IOSCHED=unified DEFAULT_KMI=none CONFDIR="${LTFS_CONF_PREFIX}" -f Makefile.osx
|
||||
mkdir -p ${LTFS_FRAMEWORK_DIR}/Versions/Current/etc
|
||||
cp ${LTFS_CONF_DIR}/ltfs.conf ${LTFS_FRAMEWORK_DIR}/Versions/Current/etc/ltfs.conf
|
||||
cp ${LTFS_CONF_DIR}/ltfs.conf.local ${LTFS_FRAMEWORK_DIR}/Versions/Current/etc/ltfs.conf.local
|
||||
|
||||
##
|
||||
## Set permissions...
|
||||
##
|
||||
echo ""
|
||||
echo "Setting permissions..."
|
||||
cd ${LTFS_BUILD_OUTPUT_DIR}
|
||||
find bin -type f | xargs chmod a+rx
|
||||
find lib -type f | xargs chmod a+rx
|
||||
find lib -type d | xargs chmod a+rx
|
||||
find share -type d | xargs chmod a+rx
|
||||
find share -type f | xargs chmod a+r
|
||||
find include -type d | xargs chmod a+rx
|
||||
find include -type f | xargs chmod a+r
|
||||
|
||||
|
||||
##
|
||||
## Building OS X .pkg install package
|
||||
##
|
||||
cd ${BASEDIR}/${OUTPUT_DIR_NAME}
|
||||
PACKAGE_MAKER=/Applications/Utilities/PackageMaker.app/Contents/MacOS/PackageMaker
|
||||
${PACKAGE_MAKER} -d ${BASEDIR}/osx_installer/LTFS.pmdoc -v -i com.hpe.ltfs -o ${BASEDIR}/${OUTPUT_DIR_NAME}/HPEStoreOpenSoftware.pkg
|
||||
|
||||
cd ${BASEDIR}
|
||||
echo "Build complete"
|
||||
22
ltfs/conf/Makefile.am
Normal file
22
ltfs/conf/Makefile.am
Normal file
@@ -0,0 +1,22 @@
|
||||
dist_sysconf_DATA = ltfs.conf
|
||||
|
||||
ltfs.conf: ltfs.conf.linux
|
||||
rm -f ltfs.conf
|
||||
sed -e "s!__LIBDIR__!@libdir@!" ltfs.conf.linux >ltfs.conf
|
||||
mv ltfs.conf ltfs.conf.tmp
|
||||
sed -e "s!__DEFAULT_DRIVER__!$(DEFAULT_DRIVER)!" ltfs.conf.tmp >ltfs.conf
|
||||
mv ltfs.conf ltfs.conf.tmp
|
||||
sed -e "s!__DEFAULT_IOSCHED__!$(DEFAULT_IOSCHED)!" ltfs.conf.tmp >ltfs.conf
|
||||
mv ltfs.conf ltfs.conf.tmp
|
||||
sed -e "s!__DEFAULT_KMI__!$(DEFAULT_KMI)!" ltfs.conf.tmp >ltfs.conf
|
||||
mv ltfs.conf ltfs.conf.tmp
|
||||
sed -e "s!__CONFDIR__!@sysconfdir@!" ltfs.conf.tmp >ltfs.conf
|
||||
rm ltfs.conf.tmp
|
||||
|
||||
install-data-local:
|
||||
if [ ! -f "$(sysconfdir)/ltfs.conf.local" ]; then \
|
||||
cp ltfs.conf.local "$(sysconfdir)/ltfs.conf.local"; \
|
||||
fi
|
||||
|
||||
clean-local:
|
||||
rm -f ltfs.conf
|
||||
441
ltfs/conf/Makefile.in
Normal file
441
ltfs/conf/Makefile.in
Normal file
@@ -0,0 +1,441 @@
|
||||
# Makefile.in generated by automake 1.11.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
|
||||
# Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkglibexecdir = $(libexecdir)/@PACKAGE@
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
target_triplet = @target@
|
||||
subdir = conf
|
||||
DIST_COMMON = $(dist_sysconf_DATA) $(srcdir)/Makefile.am \
|
||||
$(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
||||
am__vpath_adj = case $$p in \
|
||||
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
*) f=$$p;; \
|
||||
esac;
|
||||
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
|
||||
am__install_max = 40
|
||||
am__nobase_strip_setup = \
|
||||
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
|
||||
am__nobase_strip = \
|
||||
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
|
||||
am__nobase_list = $(am__nobase_strip_setup); \
|
||||
for p in $$list; do echo "$$p $$p"; done | \
|
||||
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
|
||||
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
|
||||
if (++n[$$2] == $(am__install_max)) \
|
||||
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
|
||||
END { for (dir in files) print dir, files[dir] }'
|
||||
am__base_list = \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
|
||||
am__installdirs = "$(DESTDIR)$(sysconfdir)"
|
||||
DATA = $(dist_sysconf_DATA)
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMTAR = @AMTAR@
|
||||
AM_CFLAGS = @AM_CFLAGS@
|
||||
AM_CPPFLAGS = @AM_CPPFLAGS@
|
||||
AM_LDFLAGS = @AM_LDFLAGS@
|
||||
AR = @AR@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CRC_OPTIMIZE = @CRC_OPTIMIZE@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFAULT_DRIVER = @DEFAULT_DRIVER@
|
||||
DEFAULT_IOSCHED = @DEFAULT_IOSCHED@
|
||||
DEFAULT_KMI = @DEFAULT_KMI@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DSYMUTIL = @DSYMUTIL@
|
||||
DUMPBIN = @DUMPBIN@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
FGREP = @FGREP@
|
||||
FUSE_MODULE_CFLAGS = @FUSE_MODULE_CFLAGS@
|
||||
FUSE_MODULE_LIBS = @FUSE_MODULE_LIBS@
|
||||
GENRB = @GENRB@
|
||||
GREP = @GREP@
|
||||
ICU_MODULE_CFLAGS = @ICU_MODULE_CFLAGS@
|
||||
ICU_MODULE_LIBS = @ICU_MODULE_LIBS@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LIBXML2_MODULE_CFLAGS = @LIBXML2_MODULE_CFLAGS@
|
||||
LIBXML2_MODULE_LIBS = @LIBXML2_MODULE_LIBS@
|
||||
LIPO = @LIPO@
|
||||
LN_S = @LN_S@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
NM = @NM@
|
||||
NMEDIT = @NMEDIT@
|
||||
OBJDUMP = @OBJDUMP@
|
||||
OBJEXT = @OBJEXT@
|
||||
OTOOL = @OTOOL@
|
||||
OTOOL64 = @OTOOL64@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PKGDATA = @PKGDATA@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
RANLIB = @RANLIB@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
STRIP = @STRIP@
|
||||
UUID_MODULE_CFLAGS = @UUID_MODULE_CFLAGS@
|
||||
UUID_MODULE_LIBS = @UUID_MODULE_LIBS@
|
||||
VERSION = @VERSION@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
build = @build@
|
||||
build_alias = @build_alias@
|
||||
build_cpu = @build_cpu@
|
||||
build_os = @build_os@
|
||||
build_vendor = @build_vendor@
|
||||
builddir = @builddir@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host = @host@
|
||||
host_alias = @host_alias@
|
||||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
htmldir = @htmldir@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
localedir = @localedir@
|
||||
localstatedir = @localstatedir@
|
||||
lt_ECHO = @lt_ECHO@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
oldincludedir = @oldincludedir@
|
||||
pdfdir = @pdfdir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target = @target@
|
||||
target_alias = @target_alias@
|
||||
target_cpu = @target_cpu@
|
||||
target_os = @target_os@
|
||||
target_vendor = @target_vendor@
|
||||
top_build_prefix = @top_build_prefix@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
dist_sysconf_DATA = ltfs.conf
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
|
||||
&& { if test -f $@; then exit 0; else break; fi; }; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign conf/Makefile'; \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign conf/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
$(top_srcdir)/configure: $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(am__aclocal_m4_deps):
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
install-dist_sysconfDATA: $(dist_sysconf_DATA)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(sysconfdir)" || $(MKDIR_P) "$(DESTDIR)$(sysconfdir)"
|
||||
@list='$(dist_sysconf_DATA)'; test -n "$(sysconfdir)" || list=; \
|
||||
for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
echo "$$d$$p"; \
|
||||
done | $(am__base_list) | \
|
||||
while read files; do \
|
||||
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(sysconfdir)'"; \
|
||||
$(INSTALL_DATA) $$files "$(DESTDIR)$(sysconfdir)" || exit $$?; \
|
||||
done
|
||||
|
||||
uninstall-dist_sysconfDATA:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(dist_sysconf_DATA)'; test -n "$(sysconfdir)" || list=; \
|
||||
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
|
||||
test -n "$$files" || exit 0; \
|
||||
echo " ( cd '$(DESTDIR)$(sysconfdir)' && rm -f" $$files ")"; \
|
||||
cd "$(DESTDIR)$(sysconfdir)" && rm -f $$files
|
||||
tags: TAGS
|
||||
TAGS:
|
||||
|
||||
ctags: CTAGS
|
||||
CTAGS:
|
||||
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
dist_files=`for file in $$list; do echo $$file; done | \
|
||||
sed -e "s|^$$srcdirstrip/||;t" \
|
||||
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||
case $$dist_files in \
|
||||
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||
sort -u` ;; \
|
||||
esac; \
|
||||
for file in $$dist_files; do \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d "$(distdir)/$$file"; then \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
||||
else \
|
||||
test -f "$(distdir)/$$file" \
|
||||
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
check-am: all-am
|
||||
check: check-am
|
||||
all-am: Makefile $(DATA)
|
||||
installdirs:
|
||||
for dir in "$(DESTDIR)$(sysconfdir)"; do \
|
||||
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
|
||||
done
|
||||
install: install-am
|
||||
install-exec: install-exec-am
|
||||
install-data: install-data-am
|
||||
uninstall: uninstall-am
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
|
||||
installcheck: installcheck-am
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
clean: clean-am
|
||||
|
||||
clean-am: clean-generic clean-libtool clean-local mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-generic
|
||||
|
||||
dvi: dvi-am
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
html-am:
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am: install-data-local
|
||||
|
||||
install-dvi: install-dvi-am
|
||||
|
||||
install-dvi-am:
|
||||
|
||||
install-exec-am: install-dist_sysconfDATA
|
||||
|
||||
install-html: install-html-am
|
||||
|
||||
install-html-am:
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-info-am:
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-am
|
||||
|
||||
install-pdf-am:
|
||||
|
||||
install-ps: install-ps-am
|
||||
|
||||
install-ps-am:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-am
|
||||
|
||||
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
|
||||
|
||||
pdf: pdf-am
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-am
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-dist_sysconfDATA
|
||||
|
||||
.MAKE: install-am install-strip
|
||||
|
||||
.PHONY: all all-am check check-am clean clean-generic clean-libtool \
|
||||
clean-local distclean distclean-generic distclean-libtool \
|
||||
distdir dvi dvi-am html html-am info info-am install \
|
||||
install-am install-data install-data-am install-data-local \
|
||||
install-dist_sysconfDATA install-dvi install-dvi-am \
|
||||
install-exec install-exec-am install-html install-html-am \
|
||||
install-info install-info-am install-man install-pdf \
|
||||
install-pdf-am install-ps install-ps-am install-strip \
|
||||
installcheck installcheck-am installdirs maintainer-clean \
|
||||
maintainer-clean-generic mostlyclean mostlyclean-generic \
|
||||
mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
|
||||
uninstall-dist_sysconfDATA
|
||||
|
||||
|
||||
ltfs.conf: ltfs.conf.linux
|
||||
rm -f ltfs.conf
|
||||
sed -e "s!__LIBDIR__!@libdir@!" ltfs.conf.linux >ltfs.conf
|
||||
mv ltfs.conf ltfs.conf.tmp
|
||||
sed -e "s!__DEFAULT_DRIVER__!$(DEFAULT_DRIVER)!" ltfs.conf.tmp >ltfs.conf
|
||||
mv ltfs.conf ltfs.conf.tmp
|
||||
sed -e "s!__DEFAULT_IOSCHED__!$(DEFAULT_IOSCHED)!" ltfs.conf.tmp >ltfs.conf
|
||||
mv ltfs.conf ltfs.conf.tmp
|
||||
sed -e "s!__DEFAULT_KMI__!$(DEFAULT_KMI)!" ltfs.conf.tmp >ltfs.conf
|
||||
mv ltfs.conf ltfs.conf.tmp
|
||||
sed -e "s!__CONFDIR__!@sysconfdir@!" ltfs.conf.tmp >ltfs.conf
|
||||
rm ltfs.conf.tmp
|
||||
|
||||
install-data-local:
|
||||
if [ ! -f "$(sysconfdir)/ltfs.conf.local" ]; then \
|
||||
cp ltfs.conf.local "$(sysconfdir)/ltfs.conf.local"; \
|
||||
fi
|
||||
|
||||
clean-local:
|
||||
rm -f ltfs.conf
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
||||
15
ltfs/conf/Makefile.osx
Normal file
15
ltfs/conf/Makefile.osx
Normal file
@@ -0,0 +1,15 @@
|
||||
ltfs.conf: ltfs.conf.osx
|
||||
rm -f ltfs.conf
|
||||
sed -e "s!__LIBDIR__!$(LIBDIR)!" ltfs.conf.osx >ltfs.conf
|
||||
mv ltfs.conf ltfs.conf.tmp
|
||||
sed -e "s!__DEFAULT_DRIVER__!$(DEFAULT_DRIVER)!" ltfs.conf.tmp >ltfs.conf
|
||||
mv ltfs.conf ltfs.conf.tmp
|
||||
sed -e "s!__DEFAULT_IOSCHED__!$(DEFAULT_IOSCHED)!" ltfs.conf.tmp >ltfs.conf
|
||||
mv ltfs.conf ltfs.conf.tmp
|
||||
sed -e "s!__DEFAULT_KMI__!$(DEFAULT_KMI)!" ltfs.conf.tmp >ltfs.conf
|
||||
mv ltfs.conf ltfs.conf.tmp
|
||||
sed -e "s!__CONFDIR__!$(CONFDIR)!" ltfs.conf.tmp >ltfs.conf
|
||||
rm ltfs.conf.tmp
|
||||
|
||||
clean-local:
|
||||
rm -f ltfs.conf
|
||||
42
ltfs/conf/ltfs.conf.linux
Normal file
42
ltfs/conf/ltfs.conf.linux
Normal file
@@ -0,0 +1,42 @@
|
||||
# Automatically generated LTFS configuration file for Linux.
|
||||
# Edit this file to add or remove tape driver plugins and I/O
|
||||
# schedulers or to change default settings.
|
||||
#
|
||||
# To make configuration changes that will persist across software
|
||||
# updates, edit ltfs.conf.local instead of this file.
|
||||
|
||||
# Tape device plugins
|
||||
# Syntax: plugin driver PLUGIN-NAME PLUGIN-PATH
|
||||
# The PLUGIN-PATH may contain spaces.
|
||||
plugin driver ltotape __LIBDIR__/ltfs/libdriver-ltotape.so
|
||||
# plugin driver ibmtape __LIBDIR__/ltfs/libdriver-ibmtape.so
|
||||
# plugin driver file __LIBDIR__/ltfs/libdriver-file.so
|
||||
# plugin driver itdtimg __LIBDIR__/ltfs/libdriver-itdtimg.so
|
||||
|
||||
# I/O scheduler plugins
|
||||
# Syntax: plugin iosched PLUGIN-NAME PLUGIN-PATH
|
||||
# The PLUGIN-PATH may contain spaces.
|
||||
plugin iosched unified __LIBDIR__/ltfs/libiosched-unified.so
|
||||
plugin iosched fcfs __LIBDIR__/ltfs/libiosched-fcfs.so
|
||||
|
||||
# Key Manager Interface plugins
|
||||
# Syntax: plugin kmi PLUGIN-NAME PLUGIN-PATH
|
||||
# The PLUGIN-PATH may contain spaces.
|
||||
plugin kmi flatfile __LIBDIR__/ltfs/libkmi-flatfile.so
|
||||
plugin kmi simple __LIBDIR__/ltfs/libkmi-simple.so
|
||||
|
||||
# Default plugins
|
||||
# Syntax: default PLUGIN-TYPE PLUGIN-NAME
|
||||
# The PLUGIN-NAME must be one of those defined using a "driver", "iosched" or "kmi" line.
|
||||
# For a PLUGIN-TYPE of iosched, the special "none" name may be used to indicate that
|
||||
# no I/O scheduler should be used by default.
|
||||
default driver __DEFAULT_DRIVER__
|
||||
default iosched __DEFAULT_IOSCHED__
|
||||
default kmi __DEFAULT_KMI__
|
||||
|
||||
# Default mount options
|
||||
# Syntax: option MODE MOUNT-OPTION
|
||||
|
||||
# Include the local settings file. That file is not overwritten when a newer
|
||||
# version of LTFS is installed.
|
||||
include __CONFDIR__/ltfs.conf.local
|
||||
21
ltfs/conf/ltfs.conf.local
Normal file
21
ltfs/conf/ltfs.conf.local
Normal file
@@ -0,0 +1,21 @@
|
||||
#
|
||||
# This file is the local configuration file for LTFS
|
||||
#
|
||||
# The default LTFS configuration file includes this file.
|
||||
# Any directives that are placed here will be kept across software updates.
|
||||
#
|
||||
# Lines that begin with "##" show default settings.
|
||||
# Lines that begin with "###" show example settings.
|
||||
|
||||
################################################################################
|
||||
# Configuration example of sync timing
|
||||
|
||||
# Sync the index of a mounted cartridge every 5 minutes. The sync interval for
|
||||
# this sync type is configured in minutes.
|
||||
##option single-drive sync_type=time@5
|
||||
|
||||
# Sync the index of a cartridge when the cartridge is unmounted
|
||||
###option single-drive sync_type=unmount
|
||||
|
||||
# Sync the index of a cartridge when a file in the cartridge is closed
|
||||
###option single-drive sync_type=close
|
||||
40
ltfs/conf/ltfs.conf.osx
Normal file
40
ltfs/conf/ltfs.conf.osx
Normal file
@@ -0,0 +1,40 @@
|
||||
# Automatically generated LTFS configuration file for Mac OS X.
|
||||
# Edit this file to add or remove tape driver plugins and I/O
|
||||
# schedulers or to change default settings.
|
||||
|
||||
# Tape device plugins
|
||||
# Syntax: plugin driver PLUGIN-NAME PLUGIN-PATH
|
||||
# The PLUGIN-PATH may contain spaces.
|
||||
plugin driver ltotape __LIBDIR__/ltfs/libdriver-ltotape.dylib
|
||||
# plugin driver iokit __LIBDIR__/ltfs/libdriver-iokit.dylib
|
||||
# plugin driver file __LIBDIR__/ltfs/libdriver-file.dylib
|
||||
# plugin driver itdtimg __LIBDIR__/ltfs/libdriver-itdtimg.dylib
|
||||
|
||||
# I/O scheduler plugins
|
||||
# Syntax: plugin iosched PLUGIN-NAME PLUGIN-PATH
|
||||
# The PLUGIN-PATH may contain spaces.
|
||||
plugin iosched unified __LIBDIR__/ltfs/libiosched-unified.dylib
|
||||
plugin iosched fcfs __LIBDIR__/ltfs/libiosched-fcfs.dylib
|
||||
|
||||
# Key Manager Interface plugins
|
||||
# Syntax: plugin kmi PLUGIN-NAME PLUGIN-PATH
|
||||
# The PLUGIN-PATH may contain spaces.
|
||||
plugin kmi flatfile __LIBDIR__/ltfs/libkmi-flatfile.dylib
|
||||
plugin kmi simple __LIBDIR__/ltfs/libkmi-simple.dylib
|
||||
|
||||
# Default plugins
|
||||
# Syntax: default PLUGIN-TYPE PLUGIN-NAME
|
||||
# The PLUGIN-NAME must be one of those defined using a "driver" or "iosched" line.
|
||||
# For a PLUGIN-TYPE of iosched, the special "none" name may be used to indicate that
|
||||
# no I/O scheduler should be used by default.
|
||||
default driver __DEFAULT_DRIVER__
|
||||
default iosched __DEFAULT_IOSCHED__
|
||||
default kmi __DEFAULT_KMI__
|
||||
|
||||
# Default mount options
|
||||
# Syntax: option MODE MOUNT-OPTION
|
||||
option single-drive -s
|
||||
|
||||
# Include the local settings file. That file is not overwritten when a newer
|
||||
# version of LTFS is installed.
|
||||
include __CONFDIR__/ltfs.conf.local
|
||||
40
ltfs/conf/ltfs.conf.windows
Normal file
40
ltfs/conf/ltfs.conf.windows
Normal file
@@ -0,0 +1,40 @@
|
||||
# Automatically generated LTFS configuration file for Windows.
|
||||
# Edit this file to add or remove tape driver plugins and I/O
|
||||
# schedulers or to change default settings.
|
||||
#
|
||||
# To make configuration changes that will persist across software
|
||||
# updates, edit ltfs.conf.local instead of this file.
|
||||
|
||||
# Tape device plugins
|
||||
# Syntax: plugin driver PLUGIN-NAME PLUGIN-PATH
|
||||
# The PLUGIN-PATH may contain spaces.
|
||||
plugin driver ltotape_win HPE_Rep_Charlibdriver-ltotape-win.dll
|
||||
|
||||
# I/O scheduler plugins
|
||||
# Syntax: plugin iosched PLUGIN-NAME PLUGIN-PATH
|
||||
# The PLUGIN-PATH may contain spaces.
|
||||
plugin iosched unified HPE_Rep_Charlibiosched-unified.dll
|
||||
plugin iosched fcfs HPE_Rep_Charlibiosched-fcfs.dll
|
||||
|
||||
# Key Manager Interface plugins
|
||||
# Syntax: plugin kmi PLUGIN-NAME PLUGIN-PATH
|
||||
# The PLUGIN-PATH may contain spaces.
|
||||
# plugin kmi flatfile SYSTEM_FOLDERltfs\libkmi-flatfile.dll
|
||||
# plugin kmi simple SYSTEM_FOLDERltfs\libkmi-simple.dll
|
||||
|
||||
# Default plugins
|
||||
# Syntax: default PLUGIN-TYPE PLUGIN-NAME
|
||||
# The PLUGIN-NAME must be one of those defined using a "driver", "iosched" or "kmi" line.
|
||||
# For a PLUGIN-TYPE of iosched, the special "none" name may be used to indicate that
|
||||
# no I/O scheduler should be used by default.
|
||||
default driver ltotape_win
|
||||
default iosched unified
|
||||
default kmi none
|
||||
|
||||
# Default mount options
|
||||
# Syntax: option MODE MOUNT-OPTION
|
||||
# option single-drive scsi_append_only_mode=off
|
||||
|
||||
# Include the local settings file. That file is not overwritten when a newer
|
||||
# version of LTFS is installed.
|
||||
# include SYSTEM_FOLDERltfs\ltfs.conf.local
|
||||
223
ltfs/config.h.in
Normal file
223
ltfs/config.h.in
Normal file
@@ -0,0 +1,223 @@
|
||||
/* config.h.in. Generated from configure.ac by autoheader. */
|
||||
|
||||
/* Define to 1 if you have the `bzero' function. */
|
||||
#undef HAVE_BZERO
|
||||
|
||||
/* Define to 1 if you have the <dlfcn.h> header file. */
|
||||
#undef HAVE_DLFCN_H
|
||||
|
||||
/* Define to 1 if you have the <fcntl.h> header file. */
|
||||
#undef HAVE_FCNTL_H
|
||||
|
||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#undef HAVE_INTTYPES_H
|
||||
|
||||
/* Define to 1 if you have the <limits.h> header file. */
|
||||
#undef HAVE_LIMITS_H
|
||||
|
||||
/* Define to 1 if your system has a GNU libc compatible `malloc' function, and
|
||||
to 0 otherwise. */
|
||||
#undef HAVE_MALLOC
|
||||
|
||||
/* Define to 1 if you have the `memchr' function. */
|
||||
#undef HAVE_MEMCHR
|
||||
|
||||
/* Define to 1 if you have the <memory.h> header file. */
|
||||
#undef HAVE_MEMORY_H
|
||||
|
||||
/* Define to 1 if you have the `memset' function. */
|
||||
#undef HAVE_MEMSET
|
||||
|
||||
/* Define to 1 if you have the `mkdir' function. */
|
||||
#undef HAVE_MKDIR
|
||||
|
||||
/* Define to 1 if you have the `rmdir' function. */
|
||||
#undef HAVE_RMDIR
|
||||
|
||||
/* Define to 1 if stdbool.h conforms to C99. */
|
||||
#undef HAVE_STDBOOL_H
|
||||
|
||||
/* Define to 1 if you have the <stddef.h> header file. */
|
||||
#undef HAVE_STDDEF_H
|
||||
|
||||
/* Define to 1 if you have the <stdint.h> header file. */
|
||||
#undef HAVE_STDINT_H
|
||||
|
||||
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
#undef HAVE_STDLIB_H
|
||||
|
||||
/* Define to 1 if you have the `strcasecmp' function. */
|
||||
#undef HAVE_STRCASECMP
|
||||
|
||||
/* Define to 1 if you have the `strdup' function. */
|
||||
#undef HAVE_STRDUP
|
||||
|
||||
/* Define to 1 if you have the `strerror' function. */
|
||||
#undef HAVE_STRERROR
|
||||
|
||||
/* Define to 1 if you have the <strings.h> header file. */
|
||||
#undef HAVE_STRINGS_H
|
||||
|
||||
/* Define to 1 if you have the <string.h> header file. */
|
||||
#undef HAVE_STRING_H
|
||||
|
||||
/* Define to 1 if you have the `strndup' function. */
|
||||
#undef HAVE_STRNDUP
|
||||
|
||||
/* Define to 1 if you have the `strrchr' function. */
|
||||
#undef HAVE_STRRCHR
|
||||
|
||||
/* Define to 1 if you have the `strstr' function. */
|
||||
#undef HAVE_STRSTR
|
||||
|
||||
/* Define to 1 if `st_blksize' is member of `struct stat'. */
|
||||
#undef HAVE_STRUCT_STAT_ST_BLKSIZE
|
||||
|
||||
/* Define to 1 if `st_blocks' is member of `struct stat'. */
|
||||
#undef HAVE_STRUCT_STAT_ST_BLOCKS
|
||||
|
||||
/* Define to 1 if `st_rdev' is member of `struct stat'. */
|
||||
#undef HAVE_STRUCT_STAT_ST_RDEV
|
||||
|
||||
/* Define to 1 if your `struct stat' has `st_blocks'. Deprecated, use
|
||||
`HAVE_STRUCT_STAT_ST_BLOCKS' instead. */
|
||||
#undef HAVE_ST_BLOCKS
|
||||
|
||||
/* Define to 1 if you have the <sys/ioctl.h> header file. */
|
||||
#undef HAVE_SYS_IOCTL_H
|
||||
|
||||
/* Define to 1 if you have the <sys/mount.h> header file. */
|
||||
#undef HAVE_SYS_MOUNT_H
|
||||
|
||||
/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||
#undef HAVE_SYS_STAT_H
|
||||
|
||||
/* Define to 1 if you have the <sys/time.h> header file. */
|
||||
#undef HAVE_SYS_TIME_H
|
||||
|
||||
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||
#undef HAVE_SYS_TYPES_H
|
||||
|
||||
/* Define to 1 if you have the <termios.h> header file. */
|
||||
#undef HAVE_TERMIOS_H
|
||||
|
||||
/* Define to 1 if you have the <unistd.h> header file. */
|
||||
#undef HAVE_UNISTD_H
|
||||
|
||||
/* Define to 1 if the system has the type `_Bool'. */
|
||||
#undef HAVE__BOOL
|
||||
|
||||
/* Define to the sub-directory in which libtool stores uninstalled libraries.
|
||||
*/
|
||||
#undef LT_OBJDIR
|
||||
|
||||
/* Name of package */
|
||||
#undef PACKAGE
|
||||
|
||||
/* Define to the address where bug reports for this package should be sent. */
|
||||
#undef PACKAGE_BUGREPORT
|
||||
|
||||
/* Define to the full name of this package. */
|
||||
#undef PACKAGE_NAME
|
||||
|
||||
/* Define to the full name and version of this package. */
|
||||
#undef PACKAGE_STRING
|
||||
|
||||
/* Define to the one symbol short name of this package. */
|
||||
#undef PACKAGE_TARNAME
|
||||
|
||||
/* Define to the version of this package. */
|
||||
#undef PACKAGE_VERSION
|
||||
|
||||
/* The size of `time_t', as computed by sizeof. */
|
||||
#undef SIZEOF_TIME_T
|
||||
|
||||
/* Define to 1 if you have the ANSI C header files. */
|
||||
#undef STDC_HEADERS
|
||||
|
||||
/* Enable extensions on AIX 3, Interix. */
|
||||
#ifndef _ALL_SOURCE
|
||||
# undef _ALL_SOURCE
|
||||
#endif
|
||||
/* Enable GNU extensions on systems that have them. */
|
||||
#ifndef _GNU_SOURCE
|
||||
# undef _GNU_SOURCE
|
||||
#endif
|
||||
/* Enable threading extensions on Solaris. */
|
||||
#ifndef _POSIX_PTHREAD_SEMANTICS
|
||||
# undef _POSIX_PTHREAD_SEMANTICS
|
||||
#endif
|
||||
/* Enable extensions on HP NonStop. */
|
||||
#ifndef _TANDEM_SOURCE
|
||||
# undef _TANDEM_SOURCE
|
||||
#endif
|
||||
/* Enable general extensions on Solaris. */
|
||||
#ifndef __EXTENSIONS__
|
||||
# undef __EXTENSIONS__
|
||||
#endif
|
||||
|
||||
|
||||
/* Version number of package */
|
||||
#undef VERSION
|
||||
|
||||
/* Define to 1 if on MINIX. */
|
||||
#undef _MINIX
|
||||
|
||||
/* Define to 2 if the system does not provide POSIX.1 features except with
|
||||
this defined. */
|
||||
#undef _POSIX_1_SOURCE
|
||||
|
||||
/* Define to 1 if you need to in order for `stat' and other things to work. */
|
||||
#undef _POSIX_SOURCE
|
||||
|
||||
/* Define for Solaris 2.5.1 so the uint32_t typedef from <sys/synch.h>,
|
||||
<pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the
|
||||
#define below would cause a syntax error. */
|
||||
#undef _UINT32_T
|
||||
|
||||
/* Define for Solaris 2.5.1 so the uint64_t typedef from <sys/synch.h>,
|
||||
<pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the
|
||||
#define below would cause a syntax error. */
|
||||
#undef _UINT64_T
|
||||
|
||||
/* Define for Solaris 2.5.1 so the uint8_t typedef from <sys/synch.h>,
|
||||
<pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the
|
||||
#define below would cause a syntax error. */
|
||||
#undef _UINT8_T
|
||||
|
||||
/* Define to `__inline__' or `__inline' if that's what the C compiler
|
||||
calls it, or to nothing if 'inline' is not supported under any name. */
|
||||
#ifndef __cplusplus
|
||||
#undef inline
|
||||
#endif
|
||||
|
||||
/* Define to rpl_malloc if the replacement function should be used. */
|
||||
#undef malloc
|
||||
|
||||
/* Define to `int' if <sys/types.h> does not define. */
|
||||
#undef mode_t
|
||||
|
||||
/* Define to `long int' if <sys/types.h> does not define. */
|
||||
#undef off_t
|
||||
|
||||
/* Define to `unsigned int' if <sys/types.h> does not define. */
|
||||
#undef size_t
|
||||
|
||||
/* Define to `int' if <sys/types.h> does not define. */
|
||||
#undef ssize_t
|
||||
|
||||
/* Define to the type of an unsigned integer type of width exactly 16 bits if
|
||||
such a type exists and the standard includes do not define it. */
|
||||
#undef uint16_t
|
||||
|
||||
/* Define to the type of an unsigned integer type of width exactly 32 bits if
|
||||
such a type exists and the standard includes do not define it. */
|
||||
#undef uint32_t
|
||||
|
||||
/* Define to the type of an unsigned integer type of width exactly 64 bits if
|
||||
such a type exists and the standard includes do not define it. */
|
||||
#undef uint64_t
|
||||
|
||||
/* Define to the type of an unsigned integer type of width exactly 8 bits if
|
||||
such a type exists and the standard includes do not define it. */
|
||||
#undef uint8_t
|
||||
17159
ltfs/configure
vendored
Executable file
17159
ltfs/configure
vendored
Executable file
File diff suppressed because it is too large
Load Diff
295
ltfs/configure.ac
Normal file
295
ltfs/configure.ac
Normal file
@@ -0,0 +1,295 @@
|
||||
;;
|
||||
;; %Z% %I% %W% %G% %U%
|
||||
;;
|
||||
;; ZZ_Copyright_BEGIN
|
||||
;;
|
||||
;;
|
||||
;; Licensed Materials - Property of IBM
|
||||
;;
|
||||
;; IBM Linear Tape File System Single Drive Edition Version 2.2.0.2 for Linux and Mac OS X
|
||||
;;
|
||||
;; Copyright IBM Corp. 2010, 2014
|
||||
;;
|
||||
;; This file is part of the IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X
|
||||
;; (formally known as IBM Linear Tape File System)
|
||||
;;
|
||||
;; The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is free software;
|
||||
;; you can redistribute it and/or modify it under the terms of the GNU Lesser
|
||||
;; General Public License as published by the Free Software Foundation,
|
||||
;; version 2.1 of the License.
|
||||
;;
|
||||
;; The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is distributed in the
|
||||
;; hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
|
||||
;; implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
;; See the GNU Lesser General Public License for more details.
|
||||
;;
|
||||
;; You should have received a copy of the GNU Lesser General Public
|
||||
;; License along with this library; if not, write to the Free Software
|
||||
;; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
;; or download the license from <http://www.gnu.org/licenses/>.
|
||||
;;
|
||||
;;
|
||||
;; ZZ_Copyright_END
|
||||
;;
|
||||
;; (C) Copyright 2015 - 2017 Hewlett Packard Enterprise Development LP
|
||||
;; 05/26/10 Added support for HPE Tape Backend
|
||||
;; 06/14/10 Changed version to HPE nomenclature
|
||||
;;
|
||||
dnl
|
||||
dnl LTFS configure.ac.
|
||||
dnl
|
||||
AC_INIT([LTFS],[3.4.2],[Hewlett Packard Enterprise Development LP])
|
||||
AC_CONFIG_SRCDIR([src/main.c])
|
||||
AC_CONFIG_AUX_DIR([build-aux])
|
||||
AC_CANONICAL_HOST
|
||||
AC_CANONICAL_BUILD
|
||||
AC_CANONICAL_TARGET
|
||||
AM_INIT_AUTOMAKE([-Wall -Werror foreign])
|
||||
AC_PROG_CC
|
||||
AC_USE_SYSTEM_EXTENSIONS
|
||||
AC_PROG_CC_C99
|
||||
AC_PROG_LIBTOOL
|
||||
|
||||
dnl
|
||||
dnl Check for debug
|
||||
dnl
|
||||
AC_MSG_CHECKING([whether to compile in debug mode])
|
||||
AC_ARG_ENABLE([debug],
|
||||
[AS_HELP_STRING([--enable-debug],[compile with extra debugging output])],
|
||||
[use_debug=$enableval],
|
||||
[use_debug=no]
|
||||
)
|
||||
AC_MSG_RESULT([$use_debug])
|
||||
|
||||
dnl
|
||||
dnl Check for max speed
|
||||
dnl
|
||||
AC_MSG_CHECKING([whether to enable optimizations])
|
||||
AC_ARG_ENABLE([fast],
|
||||
[AS_HELP_STRING([--enable-fast],[compile with optimization enabled])],
|
||||
[use_fast=$enableval],
|
||||
[use_fast=no]
|
||||
)
|
||||
AC_MSG_RESULT([$use_fast])
|
||||
|
||||
|
||||
dnl
|
||||
dnl Check for livelink enable
|
||||
dnl
|
||||
AC_MSG_CHECKING([whether to enable livelink mode support [default=yes] ])
|
||||
AC_ARG_ENABLE([livelink],
|
||||
[AS_HELP_STRING([--enable-livelink],[compile with livelink mode support [default=yes]])],
|
||||
[livelink=$enableval],
|
||||
[livelink=yes]
|
||||
)
|
||||
AC_MSG_RESULT([$livelink])
|
||||
|
||||
|
||||
if test "x${use_fast}" != "xno"
|
||||
then
|
||||
if test "x${use_debug}" != "xno"
|
||||
then
|
||||
AC_MSG_ERROR([Cannot specify --enable-fast and --enable-debug at the same time.])
|
||||
fi
|
||||
fi
|
||||
|
||||
dnl
|
||||
dnl Check for special environment variables
|
||||
dnl
|
||||
if test -z "$DEFAULT_DRIVER"
|
||||
then
|
||||
DEFAULT_DRIVER=ltotape
|
||||
fi
|
||||
if test -z "$DEFAULT_IOSCHED" ; then
|
||||
DEFAULT_IOSCHED=unified
|
||||
fi
|
||||
if test -z "$DEFAULT_KMI" ; then
|
||||
DEFAULT_KMI=none
|
||||
fi
|
||||
AC_ARG_VAR([DEFAULT_DRIVER], [default tape device plugin, e.g. ltotape])
|
||||
AC_ARG_VAR([DEFAULT_IOSCHED], [default I/O scheduler plugin, e.g. unified])
|
||||
AC_ARG_VAR([DEFAULT_KMI], [default key manager interface plugin, e.g. none])
|
||||
|
||||
dnl
|
||||
dnl Check for pkg-config
|
||||
dnl
|
||||
if test -z "$PKG_CONFIG"
|
||||
then
|
||||
AC_PATH_PROG(PKG_CONFIG, pkg-config, [no])
|
||||
fi
|
||||
if test "x${PKG_CONFIG}" = "xno"
|
||||
then
|
||||
AC_MSG_ERROR([pkg-config was not found])
|
||||
fi
|
||||
|
||||
dnl
|
||||
dnl Check for genrb
|
||||
dnl
|
||||
AC_PATH_PROG(GENRB, genrb, no)
|
||||
if test "x${GENRB}" = "xno"
|
||||
then
|
||||
AC_MSG_ERROR([genrb was not found])
|
||||
fi
|
||||
|
||||
dnl
|
||||
dnl Check for pkgdata
|
||||
dnl
|
||||
AC_PATH_PROG(PKGDATA, pkgdata, no)
|
||||
if test "x${PKGDATA}" = "xno"
|
||||
then
|
||||
AC_MSG_ERROR([pkgdata was not found])
|
||||
fi
|
||||
|
||||
dnl
|
||||
dnl Check for FUSE, libuuid, and libxml2
|
||||
dnl
|
||||
PKG_CHECK_MODULES([FUSE_MODULE], [fuse >= 2.6.0])
|
||||
PKG_CHECK_MODULES([UUID_MODULE], [uuid >= 1.36])
|
||||
PKG_CHECK_MODULES([LIBXML2_MODULE], [libxml-2.0 >= 2.6.16])
|
||||
|
||||
dnl
|
||||
dnl Check for ICU
|
||||
dnl
|
||||
ICU_MODULE_CFLAGS="`icu-config --cppflags 2> /dev/null`";
|
||||
ICU_MODULE_LIBS="`icu-config --ldflags 2> /dev/null`";
|
||||
if test -z "$ICU_MODULE_LIBS"
|
||||
then
|
||||
PKG_CHECK_MODULES([ICU_MODULE], [icu >= 0.21])
|
||||
fi
|
||||
|
||||
dnl
|
||||
dnl Check for SNMP
|
||||
dnl
|
||||
dnl SNMP_MODULE_CFLAGS="`net-snmp-config --cflags`";
|
||||
dnl SNMP_MODULE_LIBS="`net-snmp-config --agent-libs` `net-snmp-config --libs`";
|
||||
dnl if test -z "$SNMP_MODULE_LIBS"
|
||||
dnl then
|
||||
dnl PKG_CHECK_MODULES([SNMP_MODULE], [net-snmp >= 5.3])
|
||||
dnl fi
|
||||
|
||||
dnl
|
||||
dnl Check for headers, types, structures, compiler characteristics
|
||||
dnl
|
||||
AC_CHECK_HEADERS([fcntl.h limits.h stddef.h stdint.h stdlib.h string.h sys/ioctl.h sys/mount.h sys/time.h termios.h unistd.h])
|
||||
AC_HEADER_STDBOOL
|
||||
AC_TYPE_MODE_T
|
||||
AC_TYPE_OFF_T
|
||||
AC_TYPE_SIZE_T
|
||||
AC_TYPE_SSIZE_T
|
||||
AC_TYPE_UINT8_T
|
||||
AC_TYPE_UINT16_T
|
||||
AC_TYPE_UINT32_T
|
||||
AC_TYPE_UINT64_T
|
||||
AC_CHECK_SIZEOF([time_t])
|
||||
AC_STRUCT_ST_BLOCKS
|
||||
AC_CHECK_MEMBERS([struct stat.st_blksize])
|
||||
AC_CHECK_MEMBERS([struct stat.st_rdev])
|
||||
AC_C_INLINE
|
||||
|
||||
dnl
|
||||
dnl Check for library functions
|
||||
dnl
|
||||
AC_FUNC_MALLOC
|
||||
#AC_FUNC_MKTIME
|
||||
AC_FUNC_STRNLEN
|
||||
AC_CHECK_FUNCS([bzero memchr memset mkdir rmdir strcasecmp strdup strerror strndup strrchr strstr])
|
||||
|
||||
dnl
|
||||
dnl Update flags
|
||||
dnl Sets CFLAGS to force optimization and debugging options, which isn't quite kosher
|
||||
dnl
|
||||
dnl AM_CPPFLAGS="-D_GNU_SOURCE -I\$(top_srcdir)/src -DLTFS_CONFIG_FILE='\"${sysconfdir}/ltfs.conf\"' -DLTFS_BASE_DIR='\"${prefix}\"'"
|
||||
dnl AM_CFLAGS="-Wall -Wsign-compare ${FUSE_MODULE_CFLAGS} ${UUID_MODULE_CFLAGS} ${LIBXML2_MODULE_CFLAGS} ${ICU_MODULE_CFLAGS} ${SNMP_MODULE_CFLAGS}"
|
||||
AM_CPPFLAGS="-D_GNU_SOURCE -DHPE_BUILD -I\$(top_srcdir)/src -DLTFS_CONFIG_FILE='\"${sysconfdir}/ltfs.conf\"'"
|
||||
AM_CFLAGS="-Wall -Wsign-compare ${FUSE_MODULE_CFLAGS} ${UUID_MODULE_CFLAGS} ${LIBXML2_MODULE_CFLAGS} ${ICU_MODULE_CFLAGS}"
|
||||
|
||||
if test "x$use_fast" = "xyes"
|
||||
then
|
||||
OPT_FLAGS="-O2 -g -fno-strict-aliasing"
|
||||
else
|
||||
OPT_FLAGS="-O0 -ggdb"
|
||||
AM_CFLAGS="${AM_CFLAGS} -fkeep-inline-functions -rdynamic"
|
||||
if test "x$use_debug" = "xyes"
|
||||
then
|
||||
AM_CPPFLAGS="${AM_CPPFLAGS} -DDEBUG -DTRACE"
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "x$livelink" = "xno"
|
||||
then
|
||||
AM_CPPFLAGS="${AM_CPPFLAGS} -DPOSIXLINK_ONLY"
|
||||
fi
|
||||
|
||||
dnl
|
||||
dnl Specify CPU specific optimizer options for CRC calculation
|
||||
dnl
|
||||
AC_MSG_CHECKING([SSE4.2])
|
||||
CRC_OPTIMIZE="-O2"
|
||||
|
||||
if test "x$GCC" = 'xyes'
|
||||
then
|
||||
GCC_VERSION=`$CC -dumpversion`
|
||||
GCC_VERSION_MAJOR=$(echo $GCC_VERSION | cut -d'.' -f1)
|
||||
GCC_VERSION_MINOR=$(echo $GCC_VERSION | cut -d'.' -f2)
|
||||
SSE42=no
|
||||
|
||||
if test ${GCC_VERSION_MAJOR} -ge 4 -a ${GCC_VERSION_MINOR} -ge 3
|
||||
then
|
||||
SSE42=yes
|
||||
fi
|
||||
|
||||
if test "x${SSE42}" = "xyes"
|
||||
then
|
||||
case x"$target_cpu" in
|
||||
xx86_64)
|
||||
AC_MSG_RESULT([yes, x86_64])
|
||||
CRC_OPTIMIZE="-msse4.2 -O2 -D__SSE42__"
|
||||
;;
|
||||
xi*86)
|
||||
AC_MSG_RESULT([yes, x86])
|
||||
CRC_OPTIMIZE="-msse4.2 -O2 -D__SSE42__"
|
||||
;;
|
||||
*)
|
||||
AC_MSG_RESULT([no, unsupported cpu])
|
||||
;;
|
||||
esac
|
||||
else
|
||||
AC_MSG_RESULT([no, gcc version])
|
||||
fi
|
||||
else
|
||||
AC_MSG_RESULT([no, non-gcc])
|
||||
fi
|
||||
|
||||
dnl
|
||||
dnl Configure standard options
|
||||
dnl
|
||||
dnl AM_LDFLAGS="${AM_LDFLAGS} ${FUSE_MODULE_LIBS} ${UUID_MODULE_LIBS} ${LIBXML2_MODULE_LIBS} ${ICU_MODULE_LIBS} ${SNMP_MODULE_LIBS}"
|
||||
AM_LDFLAGS="${AM_LDFLAGS} ${FUSE_MODULE_LIBS} ${UUID_MODULE_LIBS} ${LIBXML2_MODULE_LIBS} ${ICU_MODULE_LIBS}"
|
||||
CFLAGS="${CFLAGS} ${OPT_FLAGS}"
|
||||
|
||||
dnl
|
||||
dnl Define options
|
||||
dnl
|
||||
AC_SUBST(CFLAGS)
|
||||
AC_SUBST(CRC_OPTIMIZE)
|
||||
AC_SUBST(AM_CPPFLAGS)
|
||||
AC_SUBST(AM_CFLAGS)
|
||||
AC_SUBST(AM_LDFLAGS)
|
||||
|
||||
dnl
|
||||
dnl Output files
|
||||
dnl
|
||||
AC_CONFIG_HEADERS([config.h])
|
||||
AC_CONFIG_FILES([
|
||||
Makefile
|
||||
messages/Makefile
|
||||
conf/Makefile
|
||||
init.d/Makefile
|
||||
src/Makefile
|
||||
src/libltfs/Makefile
|
||||
src/tape_drivers/linux/ltotape/Makefile
|
||||
src/iosched/Makefile
|
||||
src/kmi/Makefile
|
||||
src/utils/Makefile
|
||||
])
|
||||
AC_OUTPUT
|
||||
296
ltfs/configure.ac_Windows
Normal file
296
ltfs/configure.ac_Windows
Normal file
@@ -0,0 +1,296 @@
|
||||
;;
|
||||
;; %Z% %I% %W% %G% %U%
|
||||
;;
|
||||
;; ZZ_Copyright_BEGIN
|
||||
;;
|
||||
;;
|
||||
;; Licensed Materials - Property of IBM
|
||||
;;
|
||||
;; IBM Linear Tape File System Single Drive Edition Version 2.2.0.2 for Linux and Mac OS X
|
||||
;;
|
||||
;; Copyright IBM Corp. 2010, 2014
|
||||
;;
|
||||
;; This file is part of the IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X
|
||||
;; (formally known as IBM Linear Tape File System)
|
||||
;;
|
||||
;; The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is free software;
|
||||
;; you can redistribute it and/or modify it under the terms of the GNU Lesser
|
||||
;; General Public License as published by the Free Software Foundation,
|
||||
;; version 2.1 of the License.
|
||||
;;
|
||||
;; The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is distributed in the
|
||||
;; hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
|
||||
;; implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
;; See the GNU Lesser General Public License for more details.
|
||||
;;
|
||||
;; You should have received a copy of the GNU Lesser General Public
|
||||
;; License along with this library; if not, write to the Free Software
|
||||
;; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
;; or download the license from <http://www.gnu.org/licenses/>.
|
||||
;;
|
||||
;;
|
||||
;; ZZ_Copyright_END
|
||||
;;
|
||||
;; (C) Copyright 2015 - 2017 Hewlett Packard Enterprise Development LP
|
||||
;; 05/26/10 Added support for HPE Tape Backend
|
||||
;; 06/14/10 Changed version to HPE nomenclature
|
||||
;;
|
||||
dnl
|
||||
dnl LTFS configure.ac.
|
||||
dnl
|
||||
AC_INIT([LTFS],[3.4.2],[Hewlett Packard Enterprise Development LP])
|
||||
AC_CONFIG_SRCDIR([src/main.c])
|
||||
AC_CONFIG_AUX_DIR([build-aux])
|
||||
AC_CANONICAL_HOST
|
||||
AC_CANONICAL_BUILD
|
||||
AC_CANONICAL_TARGET
|
||||
AM_INIT_AUTOMAKE([-Wall -Werror foreign])
|
||||
AC_PROG_CC
|
||||
AC_USE_SYSTEM_EXTENSIONS
|
||||
AC_PROG_CC_C99
|
||||
AC_PROG_LIBTOOL
|
||||
LT_PROG_RC
|
||||
|
||||
dnl
|
||||
dnl Check for debug
|
||||
dnl
|
||||
AC_MSG_CHECKING([whether to compile in debug mode])
|
||||
AC_ARG_ENABLE([debug],
|
||||
[AS_HELP_STRING([--enable-debug],[compile with extra debugging output])],
|
||||
[use_debug=$enableval],
|
||||
[use_debug=no]
|
||||
)
|
||||
AC_MSG_RESULT([$use_debug])
|
||||
|
||||
dnl
|
||||
dnl Check for max speed
|
||||
dnl
|
||||
AC_MSG_CHECKING([whether to enable optimizations])
|
||||
AC_ARG_ENABLE([fast],
|
||||
[AS_HELP_STRING([--enable-fast],[compile with optimization enabled])],
|
||||
[use_fast=$enableval],
|
||||
[use_fast=no]
|
||||
)
|
||||
AC_MSG_RESULT([$use_fast])
|
||||
|
||||
|
||||
dnl
|
||||
dnl Check for livelink enable
|
||||
dnl
|
||||
AC_MSG_CHECKING([whether to enable livelink mode support [default=yes] ])
|
||||
AC_ARG_ENABLE([livelink],
|
||||
[AS_HELP_STRING([--enable-livelink],[compile with livelink mode support [default=yes]])],
|
||||
[livelink=$enableval],
|
||||
[livelink=yes]
|
||||
)
|
||||
AC_MSG_RESULT([$livelink])
|
||||
|
||||
|
||||
if test "x${use_fast}" != "xno"
|
||||
then
|
||||
if test "x${use_debug}" != "xno"
|
||||
then
|
||||
AC_MSG_ERROR([Cannot specify --enable-fast and --enable-debug at the same time.])
|
||||
fi
|
||||
fi
|
||||
|
||||
dnl
|
||||
dnl Check for special environment variables
|
||||
dnl
|
||||
if test -z "$DEFAULT_DRIVER"
|
||||
then
|
||||
DEFAULT_DRIVER=ltotape
|
||||
fi
|
||||
if test -z "$DEFAULT_IOSCHED" ; then
|
||||
DEFAULT_IOSCHED=unified
|
||||
fi
|
||||
if test -z "$DEFAULT_KMI" ; then
|
||||
DEFAULT_KMI=none
|
||||
fi
|
||||
AC_ARG_VAR([DEFAULT_DRIVER], [default tape device plugin, e.g. ltotape])
|
||||
AC_ARG_VAR([DEFAULT_IOSCHED], [default I/O scheduler plugin, e.g. unified])
|
||||
AC_ARG_VAR([DEFAULT_KMI], [default key manager interface plugin, e.g. none])
|
||||
|
||||
dnl
|
||||
dnl Check for pkg-config
|
||||
dnl
|
||||
if test -z "$PKG_CONFIG"
|
||||
then
|
||||
AC_PATH_PROG(PKG_CONFIG, pkg-config, [no])
|
||||
fi
|
||||
if test "x${PKG_CONFIG}" = "xno"
|
||||
then
|
||||
AC_MSG_ERROR([pkg-config was not found])
|
||||
fi
|
||||
|
||||
dnl
|
||||
dnl Check for genrb
|
||||
dnl
|
||||
AC_PATH_PROG(GENRB, genrb, no)
|
||||
if test "x${GENRB}" = "xno"
|
||||
then
|
||||
AC_MSG_ERROR([genrb was not found])
|
||||
fi
|
||||
|
||||
dnl
|
||||
dnl Check for pkgdata
|
||||
dnl
|
||||
AC_PATH_PROG(PKGDATA, pkgdata, no)
|
||||
if test "x${PKGDATA}" = "xno"
|
||||
then
|
||||
AC_MSG_ERROR([pkgdata was not found])
|
||||
fi
|
||||
|
||||
dnl
|
||||
dnl Check for FUSE, libuuid, and libxml2
|
||||
dnl
|
||||
PKG_CHECK_MODULES([FUSE_MODULE], [fuse >= 2.6.0])
|
||||
PKG_CHECK_MODULES([UUID_MODULE], [uuid >= 1.36])
|
||||
PKG_CHECK_MODULES([LIBXML2_MODULE], [libxml-2.0 >= 2.6.16])
|
||||
|
||||
dnl
|
||||
dnl Check for ICU
|
||||
dnl
|
||||
ICU_MODULE_CFLAGS="`icu-config --cppflags 2> /dev/null`";
|
||||
ICU_MODULE_LIBS="`icu-config --ldflags 2> /dev/null`";
|
||||
if test -z "$ICU_MODULE_LIBS"
|
||||
then
|
||||
PKG_CHECK_MODULES([ICU_MODULE], [icu >= 0.21])
|
||||
fi
|
||||
|
||||
dnl
|
||||
dnl Check for SNMP
|
||||
dnl
|
||||
dnl SNMP_MODULE_CFLAGS="`net-snmp-config --cflags`";
|
||||
dnl SNMP_MODULE_LIBS="`net-snmp-config --agent-libs` `net-snmp-config --libs`";
|
||||
dnl if test -z "$SNMP_MODULE_LIBS"
|
||||
dnl then
|
||||
dnl PKG_CHECK_MODULES([SNMP_MODULE], [net-snmp >= 5.3])
|
||||
dnl fi
|
||||
|
||||
dnl
|
||||
dnl Check for headers, types, structures, compiler characteristics
|
||||
dnl
|
||||
AC_CHECK_HEADERS([fcntl.h limits.h stddef.h stdint.h stdlib.h string.h sys/ioctl.h sys/mount.h sys/time.h termios.h unistd.h])
|
||||
AC_HEADER_STDBOOL
|
||||
AC_TYPE_MODE_T
|
||||
AC_TYPE_OFF_T
|
||||
AC_TYPE_SIZE_T
|
||||
AC_TYPE_SSIZE_T
|
||||
AC_TYPE_UINT8_T
|
||||
AC_TYPE_UINT16_T
|
||||
AC_TYPE_UINT32_T
|
||||
AC_TYPE_UINT64_T
|
||||
AC_CHECK_SIZEOF([time_t])
|
||||
AC_STRUCT_ST_BLOCKS
|
||||
AC_CHECK_MEMBERS([struct stat.st_blksize])
|
||||
AC_CHECK_MEMBERS([struct stat.st_rdev])
|
||||
AC_C_INLINE
|
||||
|
||||
dnl
|
||||
dnl Check for library functions
|
||||
dnl
|
||||
AC_FUNC_MALLOC
|
||||
#AC_FUNC_MKTIME
|
||||
AC_FUNC_STRNLEN
|
||||
AC_CHECK_FUNCS([bzero memchr memset mkdir rmdir strcasecmp strdup strerror strndup strrchr strstr])
|
||||
|
||||
dnl
|
||||
dnl Update flags
|
||||
dnl Sets CFLAGS to force optimization and debugging options, which isn't quite kosher
|
||||
dnl
|
||||
dnl AM_CPPFLAGS="-D_GNU_SOURCE -I\$(top_srcdir)/src -DLTFS_CONFIG_FILE='\"${sysconfdir}/ltfs.conf\"' -DLTFS_BASE_DIR='\"${prefix}\"'"
|
||||
dnl AM_CFLAGS="-Wall -Wsign-compare ${FUSE_MODULE_CFLAGS} ${UUID_MODULE_CFLAGS} ${LIBXML2_MODULE_CFLAGS} ${ICU_MODULE_CFLAGS} ${SNMP_MODULE_CFLAGS}"
|
||||
AM_CPPFLAGS="-D_GNU_SOURCE -DHPE_BUILD -I\$(top_srcdir)/src -DLTFS_CONFIG_FILE='\"${sysconfdir}/ltfs.conf\"'"
|
||||
AM_CFLAGS="-Wall -Wsign-compare ${FUSE_MODULE_CFLAGS} ${UUID_MODULE_CFLAGS} ${LIBXML2_MODULE_CFLAGS} ${ICU_MODULE_CFLAGS}"
|
||||
|
||||
if test "x$use_fast" = "xyes"
|
||||
then
|
||||
OPT_FLAGS="-O2 -g -fno-strict-aliasing"
|
||||
else
|
||||
OPT_FLAGS="-O0 -ggdb"
|
||||
AM_CFLAGS="${AM_CFLAGS} -fkeep-inline-functions"
|
||||
if test "x$use_debug" = "xyes"
|
||||
then
|
||||
AM_CPPFLAGS="${AM_CPPFLAGS} -DDEBUG -DTRACE"
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "x$livelink" = "xno"
|
||||
then
|
||||
AM_CPPFLAGS="${AM_CPPFLAGS} -DPOSIXLINK_ONLY"
|
||||
fi
|
||||
|
||||
dnl
|
||||
dnl Specify CPU specific optimizer options for CRC calculation
|
||||
dnl
|
||||
AC_MSG_CHECKING([SSE4.2])
|
||||
CRC_OPTIMIZE="-O2"
|
||||
|
||||
if test "x$GCC" = 'xyes'
|
||||
then
|
||||
GCC_VERSION=`$CC -dumpversion`
|
||||
GCC_VERSION_MAJOR=$(echo $GCC_VERSION | cut -d'.' -f1)
|
||||
GCC_VERSION_MINOR=$(echo $GCC_VERSION | cut -d'.' -f2)
|
||||
SSE42=no
|
||||
|
||||
if test ${GCC_VERSION_MAJOR} -ge 4 -a ${GCC_VERSION_MINOR} -ge 3
|
||||
then
|
||||
SSE42=yes
|
||||
fi
|
||||
|
||||
if test "x${SSE42}" = "xyes"
|
||||
then
|
||||
case x"$target_cpu" in
|
||||
xx86_64)
|
||||
AC_MSG_RESULT([yes, x86_64])
|
||||
CRC_OPTIMIZE="-msse4.2 -O2 -D__SSE42__"
|
||||
;;
|
||||
xi*86)
|
||||
AC_MSG_RESULT([yes, x86])
|
||||
CRC_OPTIMIZE="-msse4.2 -O2 -D__SSE42__"
|
||||
;;
|
||||
*)
|
||||
AC_MSG_RESULT([no, unsupported cpu])
|
||||
;;
|
||||
esac
|
||||
else
|
||||
AC_MSG_RESULT([no, gcc version])
|
||||
fi
|
||||
else
|
||||
AC_MSG_RESULT([no, non-gcc])
|
||||
fi
|
||||
|
||||
dnl
|
||||
dnl Configure standard options
|
||||
dnl
|
||||
dnl AM_LDFLAGS="${AM_LDFLAGS} ${FUSE_MODULE_LIBS} ${UUID_MODULE_LIBS} ${LIBXML2_MODULE_LIBS} ${ICU_MODULE_LIBS} ${SNMP_MODULE_LIBS}"
|
||||
AM_LDFLAGS="${AM_LDFLAGS} ${FUSE_MODULE_LIBS} ${UUID_MODULE_LIBS} ${LIBXML2_MODULE_LIBS} ${ICU_MODULE_LIBS}"
|
||||
CFLAGS="${CFLAGS} ${OPT_FLAGS}"
|
||||
|
||||
dnl
|
||||
dnl Define options
|
||||
dnl
|
||||
AC_SUBST(CFLAGS)
|
||||
AC_SUBST(CRC_OPTIMIZE)
|
||||
AC_SUBST(AM_CPPFLAGS)
|
||||
AC_SUBST(AM_CFLAGS)
|
||||
AC_SUBST(AM_LDFLAGS)
|
||||
|
||||
dnl
|
||||
dnl Output files
|
||||
dnl
|
||||
AC_CONFIG_HEADERS([config.h])
|
||||
AC_CONFIG_FILES([
|
||||
Makefile
|
||||
messages/Makefile
|
||||
conf/Makefile
|
||||
init.d/Makefile
|
||||
src/libltfs/Makefile
|
||||
src/tape_drivers/windows/ltotape/Makefile
|
||||
src/iosched/Makefile
|
||||
src/kmi/Makefile
|
||||
src/utils/Makefile
|
||||
src/Makefile
|
||||
])
|
||||
AC_OUTPUT
|
||||
82
ltfs/doc/BUILDING.linux
Normal file
82
ltfs/doc/BUILDING.linux
Normal file
@@ -0,0 +1,82 @@
|
||||
=======================================================================
|
||||
HPE StoreOpen Software (HPE-SOS) - Version 3.4.2
|
||||
=======================================================================
|
||||
|
||||
Files in this download contain Licensed Materials, property of HPE,
|
||||
(C) Copyright 2015-2018 Hewlett Packard Enterprise Development LP
|
||||
|
||||
Files in this download also contain Licensed Materials, property of IBM,
|
||||
(C) Copyright IBM Corp. 2010, 2014
|
||||
|
||||
See the Licensing agreement (COPYING.LIB) when LTFS is downloaded.
|
||||
|
||||
The LTFS software application is an open-source tape file system
|
||||
implemented on dual partition tape drives.
|
||||
|
||||
Further details on HPE's LTFS implementation can be found at
|
||||
www.hpe.com/storage/storeopen
|
||||
|
||||
=======================================================================
|
||||
Building HPE-SOS from source code
|
||||
=======================================================================
|
||||
|
||||
1. Unpack the archive source file to a suitable location, for example
|
||||
/usr/local/src/ :
|
||||
|
||||
$ gunzip HPE-SOS_SOURCE.tar.gz
|
||||
$ tar xf HPE-SOS_SOURCE.tar
|
||||
|
||||
2. Required Software packages - HPE StoreOpen Software 3.4.2 requires the
|
||||
following software packages on Linux. Make sure that these packages
|
||||
are installed on the target computer.
|
||||
|
||||
1. libicu 50.1.2
|
||||
2. libicu-devel 50.1.2
|
||||
3. fuse 2.8.5 or higher (kernel and shared library modules)
|
||||
4. fuse-libs 2.8.5 or higher
|
||||
5. libxml2-2.7.6
|
||||
6. e2fsprogs 1.41
|
||||
|
||||
For example:
|
||||
$ rpm -q icu libicu-devel fuse fuse-libs fuse-devel
|
||||
|
||||
icu-50.1.2
|
||||
libicu-devel-50.1.2
|
||||
fuse-2.8.5-1
|
||||
fuse-libs-2.8.5-1
|
||||
fuse-devel-2.8.5-1
|
||||
|
||||
If any of the packages are not installed, then you must add them
|
||||
from the installation DVD or other repository.
|
||||
|
||||
Note that further packages may need to be installed, depending on your
|
||||
current system configuration. These may include uuid (part of the
|
||||
e2fsprogs package) and libxml2.
|
||||
|
||||
3. Run the configure script
|
||||
$ cd hpe-sos_3.4.2
|
||||
$ ./configure
|
||||
|
||||
This will check for various dependencies; you must correct any problems
|
||||
before you can proceed.
|
||||
|
||||
4. Build the package
|
||||
$ make
|
||||
|
||||
5. Copy the compiled files to the correct locations
|
||||
$ make install
|
||||
|
||||
The executables (ltfs, mkltfs, ltfsck) are placed in /usr/local/bin/
|
||||
The supporting dynamic files are placed under /usr/local/lib/
|
||||
|
||||
6. On some systems it may be necessary to tell the linker/loader how to
|
||||
locate the required dynamic library files. There are several ways
|
||||
of doing this:
|
||||
a) Add /usr/local/lib/ to the environment variable LD_LIBRARY_PATH
|
||||
or
|
||||
b) (As root) Add /usr/local/lib/ to the file /etc/ld.so.conf, and
|
||||
then execute ldconfig
|
||||
Refer to the man pages for ld.so and ldconfig for further details.
|
||||
|
||||
7. That's it! Refer to the README file for details of how to use LTFS.
|
||||
|
||||
65
ltfs/doc/BUILDING.macosx
Normal file
65
ltfs/doc/BUILDING.macosx
Normal file
@@ -0,0 +1,65 @@
|
||||
=======================================================================
|
||||
HPE StoreOpen Software (HPE-SOS) - Version 3.4.2
|
||||
=======================================================================
|
||||
|
||||
Files in this download contain Licensed Materials, property of HPE,
|
||||
(C) Copyright 2015, 2016 Hewlett Packard Enterprise Development LP
|
||||
|
||||
Files in this download also contain Licensed Materials, property of IBM,
|
||||
(C) Copyright IBM Corp. 2010, 2014
|
||||
|
||||
See the Licensing agreement (COPYING.LIB) when LTFS is downloaded.
|
||||
|
||||
The LTFS software application is an open-source tape file system
|
||||
implemented on dual partition tape drives.
|
||||
|
||||
Further details on HPE's LTFS implementation can be found at
|
||||
www.hpe.com/storage/storeopen
|
||||
|
||||
|
||||
=======================================================================
|
||||
Building HPE-SOS from source code (Mac OS X)
|
||||
=======================================================================
|
||||
|
||||
1. Unpack the archive source file to a suitable location:
|
||||
|
||||
$ gunzip HPE-SOS_SOURCE.tar.gz
|
||||
$ tar xf HPE-SOS_SOURCE.tar
|
||||
|
||||
2. Ensure that the following packages have been installed:
|
||||
Apple Developer Tools
|
||||
OSXFUSE (Refer to HPE Data Agile BURA Compatibility Matrix
|
||||
at www.hpe.com/storage/BURACompatibility
|
||||
for OSXFUSE version information)
|
||||
ICU 50.1.2
|
||||
|
||||
3. Run the LTFS build script:
|
||||
|
||||
$ cd hpe-sos_3.4.2
|
||||
$ ./build_osx_package.sh
|
||||
|
||||
If no errors are reported then the build was successful.
|
||||
|
||||
Do not use the configure script or Makefile; these are intended for
|
||||
use on Linux platforms. The supplied build_osx_package.sh script
|
||||
performs the steps needed to build on the Mac OS X platform.
|
||||
|
||||
4. The build process produces an installable package in the directory
|
||||
hpe-sos_3.4.2/distribution/
|
||||
|
||||
Open that directory in Finder and select the HPEStoreOpenSoftware.pkg
|
||||
|
||||
The installation files will be copied to the directory
|
||||
/Library/Frameworks/LTFS.framework/Versions/Current/
|
||||
and symbolic links for the executables (mkltfs, ltfs, ltfsck, unltfs)
|
||||
are created in /usr/local/bin/
|
||||
|
||||
5. That's it! Refer to the README file for details of how to use LTFS.
|
||||
|
||||
6. To uninstall LTFS, you need to delete the symbolic links in
|
||||
/usr/local/bin/ for the executables (mkltfs, ltfs, ltfsck, unltfs)
|
||||
and then delete the directory /Library/Frameworks/LTFS.framework
|
||||
|
||||
Execute the command:
|
||||
pkgutil --forget com.hpe.ltfs
|
||||
to cause the Package Manager subsystem to remove references to LTFS.
|
||||
210
ltfs/doc/BUILDING.windows
Normal file
210
ltfs/doc/BUILDING.windows
Normal file
@@ -0,0 +1,210 @@
|
||||
=======================================================================
|
||||
HPE StoreOpen Software (HPE-SOS) - Version 3.4.2
|
||||
=======================================================================
|
||||
|
||||
Files in this download contain Licensed Materials, property of HPE,
|
||||
(C) Copyright 2015-2018 Hewlett Packard Enterprise Development LP
|
||||
|
||||
Files in this download also contain Licensed Materials, property of OSR,
|
||||
Copyright (C) 2012 OSR Open Systems Resources, Inc.
|
||||
|
||||
Files in this download also contain Licensed Materials, property of IBM,
|
||||
(C) Copyright IBM Corp. 2010, 2014
|
||||
|
||||
See the Licensing agreement (COPYING.LIB) when LTFS is downloaded.
|
||||
|
||||
The LTFS software application is an open-source tape file system
|
||||
implemented on dual partition tape drives.
|
||||
|
||||
Further details on HPE's LTFS implementation can be found at
|
||||
www.hpe.com/storage/storeopen/
|
||||
|
||||
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!====================!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
! IMPORTANT NOTE !
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!====================!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
To build LTFS on a Windows platform, there are a number of steps
|
||||
which must be followed carefully to set up the required build
|
||||
environment. The result is the complex build procedure set out below.
|
||||
HPE cannot support customers who choose to attempt to build
|
||||
their own version of LTFS for Windows.
|
||||
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!====================!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
! IMPORTANT NOTE !
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!====================!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
|
||||
|
||||
=======================================================================
|
||||
Building HPE-SOS from source code (Windows)
|
||||
=======================================================================
|
||||
|
||||
1. Creating an LTFS Build Machine
|
||||
----------------------------------
|
||||
|
||||
The following installation instructions are meant to be used with Windows 7 SP1
|
||||
x64. While other versions of the O/S should also be sufficient for building the
|
||||
code, it is critical that an x64 release of the O/S is used as the MinGW tools
|
||||
do not support building x64 binaries from x86 hosts. However, x86 binaries can
|
||||
be built on x64 hosts, thus an x64 version of the O/S can be used to build both
|
||||
x86 and x64 binaries.
|
||||
|
||||
The build machine must have a copy of Microsoft Visual Studio 2010 Ultimate
|
||||
installed.
|
||||
|
||||
The build procedure relies on three separate MinGW packages:
|
||||
MinGW, MinGW64 Win64 Tools, and MinGW64 Win32 Tools.
|
||||
These may be found here:
|
||||
http://www.mingw.org
|
||||
http://mingw-w64.sourceforge.net
|
||||
|
||||
MinGW is installed to provide a shell environment for use in building the code,
|
||||
while the other packages are used as the actual build tool chains for x64 and
|
||||
x86.
|
||||
|
||||
To install the MinGW packages:
|
||||
a) Install MinGW to its default location, C:\MinGW. Be sure to install
|
||||
all features of MinGW, including the MSYS environment.
|
||||
|
||||
b) Download the MinGW64 Win64 Tools and extract them to C:\MinGW\MinGW64
|
||||
|
||||
c) Download the MinGW64 Win32 Tools and extract them to C:\MinGW\MinGW64-32
|
||||
|
||||
d) Copy the provided MinGW overlay directory (located at
|
||||
dependencies\mingw) over the directory C:\MinGW to place necessary
|
||||
build files not provided by MinGW.
|
||||
|
||||
The LTFS for Windows source code has no binary dependencies on the FUSE package.
|
||||
However, the include files provided with FUSE must be available for proper
|
||||
compilation. Extract the following files from fuse-2.8.7.tar.gz (located in
|
||||
dependencies\fuse directory) to C:\MinGW\inc.external:
|
||||
Fuse.h Fuse_common.h Fuse_compat.h Fuse_opt.h
|
||||
|
||||
It is necessary to install the ICU library in order to support the existing
|
||||
Linux build procedure in MinGW. Note that the ICU library files are also
|
||||
required to be present at runtime. There are 64-bit and 32-bit versions of ICU
|
||||
and they must be installed individually into the MinGW64 and MinGW64-32
|
||||
environments. In addition, there is a common include directory that is to be
|
||||
shared amongst both environments. ICU for Windows can be found here:
|
||||
http://site.icu-project.org/download/48
|
||||
|
||||
64-bit icu Installation:
|
||||
a) Extract contents of bin64 subdirectory of icu4c-50_1_2-Win64-msvc10.zip
|
||||
to C:\MinGW\MinGW64\bin
|
||||
|
||||
b) Copy C:\MinGW\MinGW64\bin\icuuc50.dll to
|
||||
C:\MinGW\MinGW64\x86_64-w64-mingw32\lib\libicuuc.dll
|
||||
|
||||
32-bit icu Installation:
|
||||
a) Extract contents of bin subdirectory of icu4c-50_1_2-Win32-msvc10.zip to
|
||||
C:\MinGW\MinGW64-32\bin
|
||||
|
||||
b) Copy C:\MinGW\MinGW64-32\bin\icuuc50.dll to
|
||||
C:\MinGW\MinGW64-32\i686-w64-mingw32\lib\libicuuc.dll
|
||||
|
||||
Extract include subdirectory of either icu4c-50_1_2-Win32-msvc10.zip or
|
||||
icu4c-50_1_2-Win64-msvc10.zip to C:\MinGW\inc.external. Note that the include
|
||||
directory of both ZIP files should be identical.
|
||||
|
||||
It is necessary to install the LibXML library in order to support the existing
|
||||
Linux build procedure in MinGW. Note that the LibXML library files are also
|
||||
required to be present at runtime. LibXML source can be found here:
|
||||
http://xmlsoft.org/.
|
||||
|
||||
a) Copy 64-bit libxml2.dll to C:\MinGW\MinGW64\x86_64-w64-mingw32\lib\libxml2.dll
|
||||
|
||||
b) Copy 32-bit libxml2.dll to C:\MinGW\MinGW64-32\i686-w64-mingw32\lib\libxml2.dll
|
||||
|
||||
c) Extract include subdirectory of libxml2-2.7.8.tar.gz to C:\MinGW\inc.external
|
||||
|
||||
d) Copy C:\MinGW\include\iconv.h to C:\MinGW\inc.external
|
||||
|
||||
It is necessary to install pkg-config in order to support the existing Linux
|
||||
build procedure in MinGW. There are 64-bit and 32-bit versions of pkg-config
|
||||
and they must be installed individually into the MinGW64 and MinGW64-32
|
||||
environments. Pkg-config for Windows can be found here:
|
||||
http://www.gtk.org/download/index.php
|
||||
|
||||
64-bit pkg-config Installation:
|
||||
a) Extract pkg-config_0.23-2_win64.zip to C:\MinGW\MinGW64
|
||||
|
||||
b) Extract glib_2.26.1-1_win64.zip to C:\MinGW\MinGW64
|
||||
|
||||
c) Extract gettext-runtime_0.17-3_win64.zip to C:\MinGW\MinGW64
|
||||
|
||||
32-bit pkg-config Installation:
|
||||
a) Extract pkg-config_0.23-3_win32.zip to C:\MinGW\MinGW64-32
|
||||
|
||||
b) Extract glib_2.26.1-1_win32.zip to C:\MinGW\MinGW64-32
|
||||
|
||||
c) Copy C:\MinGW\bin\libintl-8.dll to C:\MinGW\MinGW64-32\bin\intl.dll
|
||||
|
||||
It is necessary to install the pthreads library in order to support the existing
|
||||
Linux build procedure in MinGW. Note that the pthreads library files are also
|
||||
required to be present at runtime. There are 64-bit and 32-bit versions of
|
||||
pthreads and they must be installed individually into the MinGW64 and MinGW64-32
|
||||
environments. Be sure to delete any existing pthreads library files from the
|
||||
MinGW64 and/or MinGW64-32 directories before extracting the required files to
|
||||
avoid linking to an incorrect version of the pthreads library. When properly
|
||||
linked, the resulting binaries have a dependency on pthreadGC2-w64.dll or
|
||||
pthreadGC2-w32.dll. Pthreads for Windows can be found here:
|
||||
http://sourceforge.net/projects/mingw-w64/files/External%20binary%20packages%20(Win64%20hosted)/pthreads/
|
||||
|
||||
a) Extract pthreads-w64.zip to C:\MinGW\MinGW64
|
||||
|
||||
b) Extract pthreads-w32.zip to C:\MinGW\MinGW64-32
|
||||
|
||||
It is necessary to install the UMFSDK library in order to support the LTFS
|
||||
for Windows build procedure in MinGW. Note that the UMFSDK library files are
|
||||
also required to be present at runtime. The UMFSDK components are located in
|
||||
dependencies\umfsdk\
|
||||
|
||||
a) Copy 64-bit FUSE4Win.dll to
|
||||
C:\MinGW\MinGW64\x86_64-w64-mingw32\lib\libFUSE4Win.dll
|
||||
|
||||
b) Copy 32-bit FUSE4Win.dll to
|
||||
C:\MinGW\MinGW64-32\i686-w64-mingw32\lib\libFUSE4Win.dll
|
||||
|
||||
c) Copy FUSE4Win_nonstd.h to C:\UMFSDK\Inc\
|
||||
|
||||
2. Building LTFS Binaries (64-bit)
|
||||
----------------------------------
|
||||
|
||||
The following steps are performed from within a MinGW Shell environment.
|
||||
They assume that the latest LTFS source tree is located in C:\LTFS and that
|
||||
the Microsoft Visual Studio software has been installed in C:\MVS10
|
||||
|
||||
a. Change path to prioritize x64 build utilities:
|
||||
export PATH=/C/MinGW/MinGW64/bin:/C/MVS10/VC/bin/amd64:$PATH
|
||||
|
||||
b. cd to /C/LTFS and execute the following command:
|
||||
./configure --host=x86_64-w64-mingw32 --build=x86_64-w64-mingw32 \
|
||||
CFLAGS="-Dmingw_PLATFORM=1 -DHPE_mingw_BUILD=1 \
|
||||
-I/C/MinGW/inc.external -I/C/UMFSDK/inc"
|
||||
|
||||
c. Build the source code by executing make.
|
||||
If you get a libtool error during this step, run autoreconf and rebuild.
|
||||
|
||||
d. Resulting executable binary files are located in the .libs subdirectory of
|
||||
each directory containing a Makefile. Do not use the binaries generated
|
||||
outside of these directories as they are simply intermediate files.
|
||||
|
||||
3. Building LTFS Binaries (32-bit)
|
||||
----------------------------------
|
||||
|
||||
a. Change path to prioritize x86 build utilities:
|
||||
export PATH=/C/MinGW/MinGW64-32/bin:/C/MVS10/VC/bin:/C/MVS10/Common7/IDE:$PATH
|
||||
|
||||
b. cd to /C/LTFS and execute the following command:
|
||||
./configure --host= i686-w64-mingw32 --build= i686-w64-mingw32 \
|
||||
CFLAGS="-Dmingw_PLATFORM=1 -DHPE_mingw_BUILD=1 -I/C/MinGW/inc.external \
|
||||
-I/C/UMFSDK/inc -D __MINGW_USE_VC2005_COMPAT=1"
|
||||
|
||||
c. Build the source code by executing make.
|
||||
If you get a libtool error during this step, run autoreconf and rebuild.
|
||||
|
||||
d. Resulting executable binary files are located in the .libs subdirectory of
|
||||
each directory containing a Makefile. Do not use the binaries generated
|
||||
outside of these directories as they are simply intermediate files.
|
||||
|
||||
129
ltfs/doc/CODING_STYLE
Normal file
129
ltfs/doc/CODING_STYLE
Normal file
@@ -0,0 +1,129 @@
|
||||
|
||||
Naming conventions
|
||||
------------------
|
||||
|
||||
- We don't use capital letters, except on defines and enumerators
|
||||
(see below).
|
||||
|
||||
- Public APIs are always prefixed by the name of that module:
|
||||
ltfs.c: ltfs_statfs(), ltfs_open(), ltfs_close(), ltfs_read()
|
||||
fs.c: fs_resolve_dentry(), fs_set_name(), fs_set_creation_time()
|
||||
|
||||
|
||||
Spaces, tabs and commas
|
||||
-----------------------
|
||||
|
||||
When indenting the code, always use TABs with 4 spaces. Do not
|
||||
replace TABs by spaces.
|
||||
|
||||
When writing arguments to a function or defining enums, also use
|
||||
the following comma conventions:
|
||||
|
||||
call_function(arg1, arg2, arg3);
|
||||
|
||||
call_another_function(
|
||||
very_long_argument1,
|
||||
very_long_argument2,
|
||||
very_long_argument3
|
||||
);
|
||||
|
||||
enum very_cool_enumerator {
|
||||
VERY_COOL_1,
|
||||
VERY_COOL_2,
|
||||
VERY_COOL_3,
|
||||
};
|
||||
|
||||
|
||||
Macros and defines
|
||||
------------------
|
||||
|
||||
When defining wrappers around functions using macros do that
|
||||
using lowercase characters. Defines always go in uppercase.
|
||||
|
||||
#define wrapper_around_some_function(x,y) \
|
||||
...
|
||||
|
||||
#define LTFS_MAX_VALUE 2112
|
||||
|
||||
|
||||
Functions
|
||||
---------
|
||||
|
||||
Return type, function name and its parameters should go all
|
||||
in a single line, except if the parameters are too long.
|
||||
|
||||
void ltfs_function(void *params)
|
||||
{
|
||||
}
|
||||
|
||||
void ltfs_function_with_many_parameters(void *params1,
|
||||
void *params2, void *params3)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
Conditional tests
|
||||
-----------------
|
||||
|
||||
if (condition) {
|
||||
line 1;
|
||||
line 2;
|
||||
} else
|
||||
line 3;
|
||||
|
||||
if (another condition)
|
||||
do this;
|
||||
else
|
||||
do that;
|
||||
|
||||
if (yet another condition) {
|
||||
/*
|
||||
* It's ok to open brackets when adding comments,
|
||||
* just to make it clear where the scope ends.
|
||||
* That can improve readability when comments
|
||||
* span across multiple lines.
|
||||
*/
|
||||
do something else;
|
||||
}
|
||||
|
||||
|
||||
Loops
|
||||
-----
|
||||
|
||||
for (x=start; x<end; ++x) {
|
||||
body
|
||||
}
|
||||
|
||||
|
||||
Comments
|
||||
--------
|
||||
|
||||
Please do not use C++ style comments (//), except when
|
||||
temporarily commenting out a line of code. If too many
|
||||
lines are being commented out consider using #if 0 instead
|
||||
or, preferably, just remove that code completely.
|
||||
|
||||
For comments, always use the C style (/* comments */),
|
||||
even if that's just a single line.
|
||||
|
||||
For documenting functions, please use the Doxygen-friendly
|
||||
format below:
|
||||
|
||||
/**
|
||||
* General comments about the function go here.
|
||||
* @param var1 Describe what var1 does.
|
||||
* @param var2 Describe what var2 does.
|
||||
* @return Describe what's expected to be returned both on
|
||||
* success and on error situation. Also, note that we
|
||||
* tabulate with one extra space when the comments span
|
||||
* multiple lines.
|
||||
*/
|
||||
int function(void *var1, void *var2)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
Maximum line length
|
||||
-------------------
|
||||
|
||||
Lines must not exceed 100 characters.
|
||||
510
ltfs/doc/COPYING.LIB
Normal file
510
ltfs/doc/COPYING.LIB
Normal file
@@ -0,0 +1,510 @@
|
||||
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
Version 2.1, February 1999
|
||||
|
||||
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
|
||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
[This is the first released version of the Lesser GPL. It also counts
|
||||
as the successor of the GNU Library Public License, version 2, hence
|
||||
the version number 2.1.]
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
Licenses are intended to guarantee your freedom to share and change
|
||||
free software--to make sure the software is free for all its users.
|
||||
|
||||
This license, the Lesser General Public License, applies to some
|
||||
specially designated software packages--typically libraries--of the
|
||||
Free Software Foundation and other authors who decide to use it. You
|
||||
can use it too, but we suggest you first think carefully about whether
|
||||
this license or the ordinary General Public License is the better
|
||||
strategy to use in any particular case, based on the explanations
|
||||
below.
|
||||
|
||||
When we speak of free software, we are referring to freedom of use,
|
||||
not price. Our General Public Licenses are designed to make sure that
|
||||
you have the freedom to distribute copies of free software (and charge
|
||||
for this service if you wish); that you receive source code or can get
|
||||
it if you want it; that you can change the software and use pieces of
|
||||
it in new free programs; and that you are informed that you can do
|
||||
these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
distributors to deny you these rights or to ask you to surrender these
|
||||
rights. These restrictions translate to certain responsibilities for
|
||||
you if you distribute copies of the library or if you modify it.
|
||||
|
||||
For example, if you distribute copies of the library, whether gratis
|
||||
or for a fee, you must give the recipients all the rights that we gave
|
||||
you. You must make sure that they, too, receive or can get the source
|
||||
code. If you link other code with the library, you must provide
|
||||
complete object files to the recipients, so that they can relink them
|
||||
with the library after making changes to the library and recompiling
|
||||
it. And you must show them these terms so they know their rights.
|
||||
|
||||
We protect your rights with a two-step method: (1) we copyright the
|
||||
library, and (2) we offer you this license, which gives you legal
|
||||
permission to copy, distribute and/or modify the library.
|
||||
|
||||
To protect each distributor, we want to make it very clear that
|
||||
there is no warranty for the free library. Also, if the library is
|
||||
modified by someone else and passed on, the recipients should know
|
||||
that what they have is not the original version, so that the original
|
||||
author's reputation will not be affected by problems that might be
|
||||
introduced by others.
|
||||
^L
|
||||
Finally, software patents pose a constant threat to the existence of
|
||||
any free program. We wish to make sure that a company cannot
|
||||
effectively restrict the users of a free program by obtaining a
|
||||
restrictive license from a patent holder. Therefore, we insist that
|
||||
any patent license obtained for a version of the library must be
|
||||
consistent with the full freedom of use specified in this license.
|
||||
|
||||
Most GNU software, including some libraries, is covered by the
|
||||
ordinary GNU General Public License. This license, the GNU Lesser
|
||||
General Public License, applies to certain designated libraries, and
|
||||
is quite different from the ordinary General Public License. We use
|
||||
this license for certain libraries in order to permit linking those
|
||||
libraries into non-free programs.
|
||||
|
||||
When a program is linked with a library, whether statically or using
|
||||
a shared library, the combination of the two is legally speaking a
|
||||
combined work, a derivative of the original library. The ordinary
|
||||
General Public License therefore permits such linking only if the
|
||||
entire combination fits its criteria of freedom. The Lesser General
|
||||
Public License permits more lax criteria for linking other code with
|
||||
the library.
|
||||
|
||||
We call this license the "Lesser" General Public License because it
|
||||
does Less to protect the user's freedom than the ordinary General
|
||||
Public License. It also provides other free software developers Less
|
||||
of an advantage over competing non-free programs. These disadvantages
|
||||
are the reason we use the ordinary General Public License for many
|
||||
libraries. However, the Lesser license provides advantages in certain
|
||||
special circumstances.
|
||||
|
||||
For example, on rare occasions, there may be a special need to
|
||||
encourage the widest possible use of a certain library, so that it
|
||||
becomes a de-facto standard. To achieve this, non-free programs must
|
||||
be allowed to use the library. A more frequent case is that a free
|
||||
library does the same job as widely used non-free libraries. In this
|
||||
case, there is little to gain by limiting the free library to free
|
||||
software only, so we use the Lesser General Public License.
|
||||
|
||||
In other cases, permission to use a particular library in non-free
|
||||
programs enables a greater number of people to use a large body of
|
||||
free software. For example, permission to use the GNU C Library in
|
||||
non-free programs enables many more people to use the whole GNU
|
||||
operating system, as well as its variant, the GNU/Linux operating
|
||||
system.
|
||||
|
||||
Although the Lesser General Public License is Less protective of the
|
||||
users' freedom, it does ensure that the user of a program that is
|
||||
linked with the Library has the freedom and the wherewithal to run
|
||||
that program using a modified version of the Library.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow. Pay close attention to the difference between a
|
||||
"work based on the library" and a "work that uses the library". The
|
||||
former contains code derived from the library, whereas the latter must
|
||||
be combined with the library in order to run.
|
||||
^L
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License Agreement applies to any software library or other
|
||||
program which contains a notice placed by the copyright holder or
|
||||
other authorized party saying it may be distributed under the terms of
|
||||
this Lesser General Public License (also called "this License").
|
||||
Each licensee is addressed as "you".
|
||||
|
||||
A "library" means a collection of software functions and/or data
|
||||
prepared so as to be conveniently linked with application programs
|
||||
(which use some of those functions and data) to form executables.
|
||||
|
||||
The "Library", below, refers to any such software library or work
|
||||
which has been distributed under these terms. A "work based on the
|
||||
Library" means either the Library or any derivative work under
|
||||
copyright law: that is to say, a work containing the Library or a
|
||||
portion of it, either verbatim or with modifications and/or translated
|
||||
straightforwardly into another language. (Hereinafter, translation is
|
||||
included without limitation in the term "modification".)
|
||||
|
||||
"Source code" for a work means the preferred form of the work for
|
||||
making modifications to it. For a library, complete source code means
|
||||
all the source code for all modules it contains, plus any associated
|
||||
interface definition files, plus the scripts used to control
|
||||
compilation and installation of the library.
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running a program using the Library is not restricted, and output from
|
||||
such a program is covered only if its contents constitute a work based
|
||||
on the Library (independent of the use of the Library in a tool for
|
||||
writing it). Whether that is true depends on what the Library does
|
||||
and what the program that uses the Library does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Library's
|
||||
complete source code as you receive it, in any medium, provided that
|
||||
you conspicuously and appropriately publish on each copy an
|
||||
appropriate copyright notice and disclaimer of warranty; keep intact
|
||||
all the notices that refer to this License and to the absence of any
|
||||
warranty; and distribute a copy of this License along with the
|
||||
Library.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy,
|
||||
and you may at your option offer warranty protection in exchange for a
|
||||
fee.
|
||||
|
||||
2. You may modify your copy or copies of the Library or any portion
|
||||
of it, thus forming a work based on the Library, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) The modified work must itself be a software library.
|
||||
|
||||
b) You must cause the files modified to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
c) You must cause the whole of the work to be licensed at no
|
||||
charge to all third parties under the terms of this License.
|
||||
|
||||
d) If a facility in the modified Library refers to a function or a
|
||||
table of data to be supplied by an application program that uses
|
||||
the facility, other than as an argument passed when the facility
|
||||
is invoked, then you must make a good faith effort to ensure that,
|
||||
in the event an application does not supply such function or
|
||||
table, the facility still operates, and performs whatever part of
|
||||
its purpose remains meaningful.
|
||||
|
||||
(For example, a function in a library to compute square roots has
|
||||
a purpose that is entirely well-defined independent of the
|
||||
application. Therefore, Subsection 2d requires that any
|
||||
application-supplied function or table used by this function must
|
||||
be optional: if the application does not supply it, the square
|
||||
root function must still compute square roots.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Library,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Library, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote
|
||||
it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Library.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Library
|
||||
with the Library (or with a work based on the Library) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may opt to apply the terms of the ordinary GNU General Public
|
||||
License instead of this License to a given copy of the Library. To do
|
||||
this, you must alter all the notices that refer to this License, so
|
||||
that they refer to the ordinary GNU General Public License, version 2,
|
||||
instead of to this License. (If a newer version than version 2 of the
|
||||
ordinary GNU General Public License has appeared, then you can specify
|
||||
that version instead if you wish.) Do not make any other change in
|
||||
these notices.
|
||||
^L
|
||||
Once this change is made in a given copy, it is irreversible for
|
||||
that copy, so the ordinary GNU General Public License applies to all
|
||||
subsequent copies and derivative works made from that copy.
|
||||
|
||||
This option is useful when you wish to copy part of the code of
|
||||
the Library into a program that is not a library.
|
||||
|
||||
4. You may copy and distribute the Library (or a portion or
|
||||
derivative of it, under Section 2) in object code or executable form
|
||||
under the terms of Sections 1 and 2 above provided that you accompany
|
||||
it with the complete corresponding machine-readable source code, which
|
||||
must be distributed under the terms of Sections 1 and 2 above on a
|
||||
medium customarily used for software interchange.
|
||||
|
||||
If distribution of object code is made by offering access to copy
|
||||
from a designated place, then offering equivalent access to copy the
|
||||
source code from the same place satisfies the requirement to
|
||||
distribute the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
5. A program that contains no derivative of any portion of the
|
||||
Library, but is designed to work with the Library by being compiled or
|
||||
linked with it, is called a "work that uses the Library". Such a
|
||||
work, in isolation, is not a derivative work of the Library, and
|
||||
therefore falls outside the scope of this License.
|
||||
|
||||
However, linking a "work that uses the Library" with the Library
|
||||
creates an executable that is a derivative of the Library (because it
|
||||
contains portions of the Library), rather than a "work that uses the
|
||||
library". The executable is therefore covered by this License.
|
||||
Section 6 states terms for distribution of such executables.
|
||||
|
||||
When a "work that uses the Library" uses material from a header file
|
||||
that is part of the Library, the object code for the work may be a
|
||||
derivative work of the Library even though the source code is not.
|
||||
Whether this is true is especially significant if the work can be
|
||||
linked without the Library, or if the work is itself a library. The
|
||||
threshold for this to be true is not precisely defined by law.
|
||||
|
||||
If such an object file uses only numerical parameters, data
|
||||
structure layouts and accessors, and small macros and small inline
|
||||
functions (ten lines or less in length), then the use of the object
|
||||
file is unrestricted, regardless of whether it is legally a derivative
|
||||
work. (Executables containing this object code plus portions of the
|
||||
Library will still fall under Section 6.)
|
||||
|
||||
Otherwise, if the work is a derivative of the Library, you may
|
||||
distribute the object code for the work under the terms of Section 6.
|
||||
Any executables containing that work also fall under Section 6,
|
||||
whether or not they are linked directly with the Library itself.
|
||||
^L
|
||||
6. As an exception to the Sections above, you may also combine or
|
||||
link a "work that uses the Library" with the Library to produce a
|
||||
work containing portions of the Library, and distribute that work
|
||||
under terms of your choice, provided that the terms permit
|
||||
modification of the work for the customer's own use and reverse
|
||||
engineering for debugging such modifications.
|
||||
|
||||
You must give prominent notice with each copy of the work that the
|
||||
Library is used in it and that the Library and its use are covered by
|
||||
this License. You must supply a copy of this License. If the work
|
||||
during execution displays copyright notices, you must include the
|
||||
copyright notice for the Library among them, as well as a reference
|
||||
directing the user to the copy of this License. Also, you must do one
|
||||
of these things:
|
||||
|
||||
a) Accompany the work with the complete corresponding
|
||||
machine-readable source code for the Library including whatever
|
||||
changes were used in the work (which must be distributed under
|
||||
Sections 1 and 2 above); and, if the work is an executable linked
|
||||
with the Library, with the complete machine-readable "work that
|
||||
uses the Library", as object code and/or source code, so that the
|
||||
user can modify the Library and then relink to produce a modified
|
||||
executable containing the modified Library. (It is understood
|
||||
that the user who changes the contents of definitions files in the
|
||||
Library will not necessarily be able to recompile the application
|
||||
to use the modified definitions.)
|
||||
|
||||
b) Use a suitable shared library mechanism for linking with the
|
||||
Library. A suitable mechanism is one that (1) uses at run time a
|
||||
copy of the library already present on the user's computer system,
|
||||
rather than copying library functions into the executable, and (2)
|
||||
will operate properly with a modified version of the library, if
|
||||
the user installs one, as long as the modified version is
|
||||
interface-compatible with the version that the work was made with.
|
||||
|
||||
c) Accompany the work with a written offer, valid for at least
|
||||
three years, to give the same user the materials specified in
|
||||
Subsection 6a, above, for a charge no more than the cost of
|
||||
performing this distribution.
|
||||
|
||||
d) If distribution of the work is made by offering access to copy
|
||||
from a designated place, offer equivalent access to copy the above
|
||||
specified materials from the same place.
|
||||
|
||||
e) Verify that the user has already received a copy of these
|
||||
materials or that you have already sent this user a copy.
|
||||
|
||||
For an executable, the required form of the "work that uses the
|
||||
Library" must include any data and utility programs needed for
|
||||
reproducing the executable from it. However, as a special exception,
|
||||
the materials to be distributed need not include anything that is
|
||||
normally distributed (in either source or binary form) with the major
|
||||
components (compiler, kernel, and so on) of the operating system on
|
||||
which the executable runs, unless that component itself accompanies
|
||||
the executable.
|
||||
|
||||
It may happen that this requirement contradicts the license
|
||||
restrictions of other proprietary libraries that do not normally
|
||||
accompany the operating system. Such a contradiction means you cannot
|
||||
use both them and the Library together in an executable that you
|
||||
distribute.
|
||||
^L
|
||||
7. You may place library facilities that are a work based on the
|
||||
Library side-by-side in a single library together with other library
|
||||
facilities not covered by this License, and distribute such a combined
|
||||
library, provided that the separate distribution of the work based on
|
||||
the Library and of the other library facilities is otherwise
|
||||
permitted, and provided that you do these two things:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work
|
||||
based on the Library, uncombined with any other library
|
||||
facilities. This must be distributed under the terms of the
|
||||
Sections above.
|
||||
|
||||
b) Give prominent notice with the combined library of the fact
|
||||
that part of it is a work based on the Library, and explaining
|
||||
where to find the accompanying uncombined form of the same work.
|
||||
|
||||
8. You may not copy, modify, sublicense, link with, or distribute
|
||||
the Library except as expressly provided under this License. Any
|
||||
attempt otherwise to copy, modify, sublicense, link with, or
|
||||
distribute the Library is void, and will automatically terminate your
|
||||
rights under this License. However, parties who have received copies,
|
||||
or rights, from you under this License will not have their licenses
|
||||
terminated so long as such parties remain in full compliance.
|
||||
|
||||
9. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Library or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Library (or any work based on the
|
||||
Library), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Library or works based on it.
|
||||
|
||||
10. Each time you redistribute the Library (or any work based on the
|
||||
Library), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute, link with or modify the Library
|
||||
subject to these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties with
|
||||
this License.
|
||||
^L
|
||||
11. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Library at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Library by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Library.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply, and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
12. If the distribution and/or use of the Library is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Library under this License
|
||||
may add an explicit geographical distribution limitation excluding those
|
||||
countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
13. The Free Software Foundation may publish revised and/or new
|
||||
versions of the Lesser General Public License from time to time.
|
||||
Such new versions will be similar in spirit to the present version,
|
||||
but may differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Library
|
||||
specifies a version number of this License which applies to it and
|
||||
"any later version", you have the option of following the terms and
|
||||
conditions either of that version or of any later version published by
|
||||
the Free Software Foundation. If the Library does not specify a
|
||||
license version number, you may choose any version ever published by
|
||||
the Free Software Foundation.
|
||||
^L
|
||||
14. If you wish to incorporate parts of the Library into other free
|
||||
programs whose distribution conditions are incompatible with these,
|
||||
write to the author to ask for permission. For software which is
|
||||
copyrighted by the Free Software Foundation, write to the Free
|
||||
Software Foundation; we sometimes make exceptions for this. Our
|
||||
decision will be guided by the two goals of preserving the free status
|
||||
of all derivatives of our free software and of promoting the sharing
|
||||
and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
|
||||
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
|
||||
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
|
||||
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
|
||||
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
|
||||
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
|
||||
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
|
||||
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
|
||||
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
|
||||
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
|
||||
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
|
||||
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
|
||||
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
|
||||
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
|
||||
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
||||
DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
^L
|
||||
How to Apply These Terms to Your New Libraries
|
||||
|
||||
If you develop a new library, and you want it to be of the greatest
|
||||
possible use to the public, we recommend making it free software that
|
||||
everyone can redistribute and change. You can do so by permitting
|
||||
redistribution under these terms (or, alternatively, under the terms
|
||||
of the ordinary General Public License).
|
||||
|
||||
To apply these terms, attach the following notices to the library.
|
||||
It is safest to attach them to the start of each source file to most
|
||||
effectively convey the exclusion of warranty; and each file should
|
||||
have at least the "copyright" line and a pointer to where the full
|
||||
notice is found.
|
||||
|
||||
|
||||
<one line to give the library's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or
|
||||
your school, if any, to sign a "copyright disclaimer" for the library,
|
||||
if necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the
|
||||
library `Frob' (a library for tweaking knobs) written by James
|
||||
Random Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1990
|
||||
Ty Coon, President of Vice
|
||||
|
||||
That's all there is to it!
|
||||
|
||||
|
||||
88
ltfs/doc/INSTALLING.linux
Normal file
88
ltfs/doc/INSTALLING.linux
Normal file
@@ -0,0 +1,88 @@
|
||||
=======================================================================
|
||||
HPE StoreOpen Software (HPE-SOS) - Version 3.4.2
|
||||
=======================================================================
|
||||
|
||||
Files in this download contain Licensed Materials, property of HPE,
|
||||
(C) Copyright 2015, 2016 Hewlett Packard Enterprise Development LP
|
||||
|
||||
Files in this download also contain Licensed Materials, property of IBM,
|
||||
(C) Copyright IBM Corp. 2010, 2014
|
||||
|
||||
See the Licensing agreement (COPYING.LIB) when LTFS is downloaded.
|
||||
|
||||
The LTFS software application is an open-source tape file system
|
||||
implemented on dual partition tape drives.
|
||||
|
||||
Further details on HPE's LTFS implementation can be found at
|
||||
www.hpe.com/storage/storeopen
|
||||
|
||||
|
||||
=======================================================================
|
||||
Installing on Linux systems
|
||||
=======================================================================
|
||||
1. The below mentioned dependencies are required by HPE SOS to run
|
||||
on supported Linux systems. These dependencies can be either
|
||||
installed from their RPM packages or can be installed by compiling
|
||||
the source. The dependency packages are not supplied with HPE SOS;
|
||||
users will need to download from their respective web sites and
|
||||
install them.
|
||||
|
||||
a. FUSE 2.8.5 or higher (http://fuse.sourceforge.net/)
|
||||
b. ICU v50.1.2 (http://site.icu-project.org/download)
|
||||
c. libxml2 v2.7 or higher
|
||||
d. e2fsprogs 1.41 or higher
|
||||
|
||||
2. Before starting to install and use HPE-SOS, you must ensure that the
|
||||
FUSE kernel module is present and loaded.
|
||||
|
||||
To check, execute the following command:
|
||||
lsmod | grep fuse
|
||||
|
||||
If the module is not currently loaded, you can load it as follows:
|
||||
modprobe fuse
|
||||
|
||||
If the module is not present on your system, you must first obtain
|
||||
and install it. Details of how to do this are beyond the scope of
|
||||
this document; refer to http://fuse.sourceforge.net/ for further
|
||||
information.
|
||||
|
||||
3. Determine whether you want to use pre-compiled binaries or build
|
||||
your own version of the LTFS application.
|
||||
|
||||
To build your own, download and unpack the file HPELTFS_SOURCE.tar.gz
|
||||
then follow the instructions in ltfs/doc/BUILDING.linux
|
||||
|
||||
4. Download the file for your operating system platform:
|
||||
|
||||
(RHEL 6.x (x86 and x64) and RHEL 7.x (x64))
|
||||
HPE-SOS_3.4.2_RHEL_x86_PKG.tar.gz (for x86 32-bit installations)
|
||||
HPE-SOS_3.4.2_RHEL_x64_PKG.tar.gz (for x64 64-bit installations)
|
||||
|
||||
5. Unzip the package to extract the binaries for supported architectures:
|
||||
For example:
|
||||
tar -zxvf HPE-SOS_3.4.2_RHEL_x64_PKG.tar.gz
|
||||
|
||||
This will unpack the following files in the current directory:
|
||||
a. hpe-sos-3.4.2-71.x86_64.rpm
|
||||
b. INSTALLING.linux
|
||||
c. COPYING.LIB
|
||||
d. README
|
||||
|
||||
6. Install the hpe-sos-3.4.2-71.x86_64.rpm
|
||||
For example:
|
||||
rpm -ivh hpe-sos-3.4.2-71.x86_64.rpm
|
||||
|
||||
NOTE: If the dependencies are not yet installed, you can still install
|
||||
HPE SOS using the command
|
||||
rpm -ivh hpe-sos-3.4.2-71.x86_64.rpm --nodeps
|
||||
|
||||
The executables (ltfs, mkltfs, ltfsck, unltfs, ltfscopy) are placed in
|
||||
/usr/local/bin/, a number of dynamic libraries in /usr/local/lib64/,
|
||||
and also in a new subdirectory /usr/local/lib64/ltfs/
|
||||
|
||||
7. That's it! Refer to the README file for details of how
|
||||
to use LTFS.
|
||||
|
||||
8. If at a later date you want to uninstall LTFS from your system, run
|
||||
the command
|
||||
rpm -e hpe-sos
|
||||
65
ltfs/doc/INSTALLING.macosx
Normal file
65
ltfs/doc/INSTALLING.macosx
Normal file
@@ -0,0 +1,65 @@
|
||||
=======================================================================
|
||||
HPE StoreOpen Software (HPE-SOS) - Version 3.4.2
|
||||
=======================================================================
|
||||
|
||||
Files in this download contain Licensed Materials, property of HPE,
|
||||
(C) Copyright 2015-2018 Hewlett Packard Enterprise Development LP
|
||||
|
||||
Files in this download also contain Licensed Materials, property of IBM,
|
||||
(C) Copyright IBM Corp. 2010, 2014
|
||||
|
||||
See the Licensing agreement (COPYING.LIB) when LTFS is downloaded.
|
||||
|
||||
The LTFS software application is an open-source tape file system
|
||||
implemented on dual partition tape drives.
|
||||
|
||||
Further details on HPE's LTFS implementation can be found at
|
||||
www.hpe.com/storage/storeopen
|
||||
|
||||
|
||||
=======================================================================
|
||||
Installing on Mac OS X systems
|
||||
=======================================================================
|
||||
|
||||
1. Before starting to install and use LTFS, you must ensure that the
|
||||
OSXFUSE module is present and loaded.
|
||||
Refer to HPE Data Agile BURA Compatibility Matrix
|
||||
www.hpe.com/storage/BURACompatibility for OSXFUSE version information
|
||||
|
||||
If the module is not present on your system, you must first
|
||||
install it from the included package or from another source.
|
||||
|
||||
2. Determine whether you want to use the pre-compiled package or build
|
||||
your own version of the LTFS application.
|
||||
|
||||
To build your own, download and unpack the file HPELTFS_SOURCE.tar.gz
|
||||
then follow the instructions in ltfs/doc/BUILDING.macosx
|
||||
|
||||
3. To use pre-compiled binaries, download the file:
|
||||
HPEStoreOpenSoftware.dmg
|
||||
|
||||
4. Install the ICU package first by double-clicking on the file
|
||||
ICUFramework.pkg and following the instructions.
|
||||
|
||||
5. Now install the LTFS package by double-clicking on the file
|
||||
HPE StoreOpen Software.pkg and following the instructions.
|
||||
|
||||
7. LTFS is now installed on your system and is ready to use.
|
||||
The README file contains details of how to use LTFS on the command
|
||||
line in a terminal window. The installation package also places an
|
||||
"HPE StoreOpen Software" console application in your Applications
|
||||
folder which can be used to simplify the tasks of preparing, formatting
|
||||
and mounting an LTFS volume.
|
||||
|
||||
8. If at a later date you want to uninstall LTFS from your system,
|
||||
delete /usr/local/bin/*ltfs* and then delete the tree under
|
||||
/Library/Frameworks/LTFS.framework
|
||||
|
||||
The console application can be uninstalled by dragging it to the Trash.
|
||||
|
||||
Execute the command:
|
||||
pkgutil --forget com.hpe.ltfs
|
||||
to cause the Package Manager subsystem to remove references to LTFS.
|
||||
|
||||
To also delete the ICU package, delete the tree under
|
||||
/Library/Frameworks/ICU.framework
|
||||
699
ltfs/doc/NOTICES.txt
Normal file
699
ltfs/doc/NOTICES.txt
Normal file
@@ -0,0 +1,699 @@
|
||||
NOTICES AND INFORMATION
|
||||
|
||||
IBM Linear Tape File System SDE for Linux Version 2.2
|
||||
|
||||
The IBM license agreement and any applicable information on the web
|
||||
download page for IBM products refers Licensee to this file for details
|
||||
concerning notices applicable to code included in the products listed
|
||||
above ("the Program").
|
||||
|
||||
Notwithstanding the terms and conditions of any other agreement Licensee
|
||||
may have with IBM or any of its related or affiliated entities
|
||||
(collectively "IBM"), the third party code identified below is subject
|
||||
to the terms and conditions of the IBM license agreement for the Program
|
||||
and not the license terms that may be contained in the notices below.
|
||||
The notices are provided for informational purposes.
|
||||
|
||||
Please note: This Notices file may identify information that is not used
|
||||
by, or that was not shipped with, the Program as Licensee installed it.
|
||||
|
||||
IMPORTANT: IBM does not represent or warrant that the information in this
|
||||
NOTICES file is accurate. Third party websites are independent of IBM and
|
||||
IBM does not represent or warrant that the information on any third party
|
||||
website referenced in this NOTICES file is accurate. IBM disclaims any
|
||||
and all liability for errors and omissions or for any damages accruing
|
||||
from the use of this NOTICES file or its contents, including without
|
||||
limitation URLs or references to any third party websites.
|
||||
|
||||
|
||||
@@@@@@@@@@@@
|
||||
==========================================================================
|
||||
queue.h version 8.5 from FreeBSD: The Program includes queue.h version
|
||||
8.5 software from FreeBSD. IBM obtained the queue.h version 8.5
|
||||
software under the terms and conditions of the following license:
|
||||
|
||||
***************************************************************************
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1991, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)queue.h 8.5 (Berkeley) 8/20/94
|
||||
* $FreeBSD$
|
||||
*/
|
||||
|
||||
=========================================================================
|
||||
END OF queue.h version 8.5 NOTICES AND INFORMATION
|
||||
=========================================================================
|
||||
|
||||
|
||||
@@@@@@@@@@@@
|
||||
============================================================================
|
||||
uthash.h from uthash version 1.9.3: The Program includes uthash.h from
|
||||
uthash version 1.9.3 software. IBM obtained the uthash.h from uthash version
|
||||
1.9.3 software under the terms and conditions of the following license:
|
||||
|
||||
****************************************************************************
|
||||
|
||||
/*
|
||||
Copyright (c) 2003-2010, Troy D. Hanson http://uthash.sourceforge.net
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
|
||||
IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
||||
TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
|
||||
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
|
||||
OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
=================================================================
|
||||
END OF uthash.h from uthash version 1.9.3 NOTICES AND INFORMATION
|
||||
=================================================================
|
||||
|
||||
|
||||
@@@@@@@@@@@@
|
||||
===========================================================================
|
||||
|
||||
ICU4C version 4.8: The Program includes ICU4C version 4.8 software.
|
||||
IBM obtained the ICU4C version 4.8 software under the terms and
|
||||
conditions of the following licenses:
|
||||
|
||||
****************************************************************************
|
||||
|
||||
ICU License - ICU 1.8.1 and later
|
||||
COPYRIGHT AND PERMISSION NOTICE
|
||||
Copyright (c) 1995-2011 International Business Machines Corporation and others
|
||||
All rights reserved.
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, and/or sell copies of the
|
||||
Software, and to permit persons to whom the Software is furnished to do so,
|
||||
provided that the above copyright notice(s) and this permission notice appear
|
||||
in all copies of the Software and that both the above copyright notice(s) and
|
||||
this permission notice appear in supporting documentation.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS.
|
||||
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE
|
||||
LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY
|
||||
DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
|
||||
CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name of a copyright holder shall not be
|
||||
used in advertising or otherwise to promote the sale, use or other dealings in
|
||||
this Software without prior written authorization of the copyright holder.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE
|
||||
|
||||
Unicode Data Files include all data files under the directories
|
||||
http://www.unicode.org/Public/, http://www.unicode.org/reports/, and
|
||||
http://www.unicode.org/cldr/data/. Unicode Data Files do not include PDF
|
||||
online code charts under the directory http://www.unicode.org/Public/.
|
||||
Software includes any source code published in the Unicode Standard or under
|
||||
the directories http://www.unicode.org/Public/,
|
||||
http://www.unicode.org/reports/, and http://www.unicode.org/cldr/data/.
|
||||
|
||||
NOTICE TO USER: Carefully read the following legal agreement. BY
|
||||
DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S DATA FILES
|
||||
("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"), YOU UNEQUIVOCALLY ACCEPT, AND
|
||||
AGREE TO BE BOUND BY, ALL OF THE TERMS AND CONDITIONS OF THIS AGREEMENT. IF
|
||||
YOU DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE THE DATA
|
||||
FILES OR SOFTWARE.
|
||||
|
||||
COPYRIGHT AND PERMISSION NOTICE
|
||||
|
||||
Copyright © 1991-2011 Unicode, Inc. All rights reserved. Distributed under
|
||||
the Terms of Use in http://www.unicode.org/copyright.html.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a
|
||||
copy of the Unicode data files and any associated documentation (the "Data
|
||||
Files") or Unicode software and any associated documentation (the "Software")
|
||||
to deal in the Data Files or Software without restriction, including without
|
||||
limitation the rights to use, copy, modify, merge, publish, distribute, and/or
|
||||
sell copies of the Data Files or Software, and to permit persons to whom the
|
||||
Data Files or Software are furnished to do so, provided that (a) the above
|
||||
copyright notice(s) and this permission notice appear with all copies of the
|
||||
Data Files or Software, (b) both the above copyright notice(s) and this
|
||||
permission notice appear in associated documentation, and (c) there is clear
|
||||
notice in each modified Data File or in the Software as well as in the
|
||||
documentation associated with the Data File(s) or Software that the data or
|
||||
software has been modified.
|
||||
|
||||
THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
|
||||
KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD
|
||||
PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN
|
||||
THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL
|
||||
DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
|
||||
PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
|
||||
ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE
|
||||
DATA FILES OR SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name of a copyright holder shall
|
||||
not be used in advertising or otherwise to promote the sale, use or other
|
||||
dealings in these Data Files or Software without prior written authorization
|
||||
of the copyright holder.
|
||||
|
||||
=========================================================================
|
||||
END OF ICU4C version 4.8 NOTICES AND INFORMATION
|
||||
=========================================================================
|
||||
|
||||
|
||||
@@@@@@@@@@@@@@@@@@@@@@@
|
||||
==============================================================================
|
||||
InstallAnywhere 2010 SP1: The Program includes InstallAnywhere 2010 SP1
|
||||
software. IBM obtained portions of the InstallAnywhere 2010 SP1 software
|
||||
under the terms and conditions of the following licenses:
|
||||
|
||||
*************************************************************************
|
||||
|
||||
Apache Software License 1.1
|
||||
|
||||
The Program includes some or all of the following that IBM obtained under
|
||||
the Apache License Version 1.1:.
|
||||
|
||||
· Regexp V1.2
|
||||
|
||||
/*
|
||||
* The Apache Software License, Version 1.1
|
||||
*
|
||||
* Copyright © 2000 The Apache Software Foundation. All rights
|
||||
* reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3. The end-user documentation included with the redistribution,
|
||||
* if any, must include the following acknowledgment:
|
||||
* This product includes software developed by the
|
||||
* Apache Software Foundation (http://www.apache.org/).
|
||||
* Alternately, this acknowledgment may appear in the software itself,
|
||||
* if and wherever such third-party acknowledgments normally appear.
|
||||
*
|
||||
* 4. The names Apache and Apache Software Foundation must
|
||||
* not be used to endorse or promote products derived from this
|
||||
* software without prior written permission. For written
|
||||
* permission, please contact apache@apache.org.
|
||||
*
|
||||
* 5. Products derived from this software may not be called Apache,
|
||||
* nor may Apache appear in their name, without prior written
|
||||
* permission of the Apache Software Foundation.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED ``AS IS AND ANY EXPRESSED OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
|
||||
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
|
||||
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
|
||||
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
* ====================================================================
|
||||
*
|
||||
* This software consists of voluntary contributions made by many
|
||||
* individuals on behalf of the Apache Software Foundation. For more
|
||||
* information on the Apache Software Foundation, please see
|
||||
* <http://www.apache.org/>.
|
||||
*
|
||||
* Portions of this software are based upon public domain software
|
||||
* originally written at the National Center for Supercomputing Applications,
|
||||
* University of Illinois, Urbana-Champaign.
|
||||
*/
|
||||
|
||||
*************************************************************************
|
||||
END OF Apache Software License 1.1 NOTICES AND INFORMATION
|
||||
*************************************************************************
|
||||
|
||||
Apache License 2.0
|
||||
|
||||
The Program includes some or all of the following that IBM obtained under
|
||||
the Apache License Version 2.0:
|
||||
|
||||
· Commons Codec 1.3
|
||||
· ANT 1.6.2
|
||||
|
||||
/*
|
||||
* Apache License
|
||||
* Version 2.0, January 2004
|
||||
* http://www.apache.org/licenses/
|
||||
*
|
||||
* TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
*
|
||||
* 1. Definitions.
|
||||
*
|
||||
* "License" shall mean the terms and conditions for use, reproduction,
|
||||
* and distribution as defined by Sections 1 through 9 of this document.
|
||||
*
|
||||
* "Licensor" shall mean the copyright owner or entity authorized by
|
||||
* the copyright owner that is granting the License.
|
||||
*
|
||||
* "Legal Entity" shall mean the union of the acting entity and all
|
||||
* other entities that control, are controlled by, or are under common
|
||||
* control with that entity. For the purposes of this definition,
|
||||
* "control" means (i) the power, direct or indirect, to cause the
|
||||
* direction or management of such entity, whether by contract or
|
||||
* otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
* outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
*
|
||||
* "You" (or "Your") shall mean an individual or Legal Entity
|
||||
* exercising permissions granted by this License.
|
||||
*
|
||||
* "Source" form shall mean the preferred form for making modifications,
|
||||
* including but not limited to software source code, documentation
|
||||
* source, and configuration files.
|
||||
*
|
||||
* "Object" form shall mean any form resulting from mechanical
|
||||
* transformation or translation of a Source form, including but
|
||||
* not limited to compiled object code, generated documentation,
|
||||
* and conversions to other media types.
|
||||
*
|
||||
* "Work" shall mean the work of authorship, whether in Source or
|
||||
* Object form, made available under the License, as indicated by a
|
||||
* copyright notice that is included in or attached to the work
|
||||
* (an example is provided in the Appendix below).
|
||||
*
|
||||
* "Derivative Works" shall mean any work, whether in Source or Object
|
||||
* form, that is based on (or derived from) the Work and for which the
|
||||
* editorial revisions, annotations, elaborations, or other
|
||||
* modifications represent, as a whole, an original work of authorship. For the
|
||||
* purposes of this License, Derivative Works shall not include works that remain
|
||||
* separable from, or merely link (or bind by name) to the interfaces
|
||||
* of, the Work and Derivative Works thereof.
|
||||
*
|
||||
* "Contribution" shall mean any work of authorship, including
|
||||
* the original version of the Work and any modifications or additions
|
||||
* to that Work or Derivative Works thereof, that is intentionally
|
||||
* submitted to Licensor for inclusion in the Work by the copyright
|
||||
* owner or by an individual or Legal Entity authorized to submit on behalf of
|
||||
* the copyright owner. For the purposes of this definition, "submitted"
|
||||
* means any form of electronic, verbal, or written communication sent
|
||||
* to the Licensor or its representatives, including but not limited to
|
||||
* communication on electronic mailing lists, source code control
|
||||
* systems,and issue tracking systems that are managed by, or on
|
||||
* behalf of, the Licensor for the purpose of discussing and improving
|
||||
* the Work, but excluding communication that is conspicuously marked
|
||||
* or otherwise designated in writing by the copyright owner as
|
||||
* "Not a Contribution."
|
||||
*
|
||||
* "Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
* on behalf of whom a Contribution has been received by Licensor and
|
||||
* subsequently incorporated within the Work.
|
||||
*
|
||||
* 2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
* this License, each Contributor hereby grants to You a perpetual,
|
||||
* worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
* copyright license to reproduce, prepare Derivative Works of,
|
||||
* publicly display, publicly perform, sublicense, and distribute the
|
||||
* Work and such Derivative Works in Source or Object form.
|
||||
*
|
||||
* 3. Grant of Patent License. Subject to the terms and conditions of
|
||||
* this License, each Contributor hereby grants to You a perpetual,
|
||||
* worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
* (except as stated in this section) patent license to make, have made,
|
||||
* use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
* where such license applies only to those patent claims licensable
|
||||
* by such Contributor that are necessarily infringed by their
|
||||
* Contribution(s) alone or by combination of their Contribution(s)
|
||||
* with the Work to which such Contribution(s) was submitted. If You
|
||||
* institute patent litigation against any entity (including a
|
||||
* cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
* or a Contribution incorporated within the Work constitutes direct
|
||||
* or contributory patent infringement, then any patent licenses
|
||||
* granted to You under this License for that Work shall terminate
|
||||
* as of the date such litigation is filed.
|
||||
*
|
||||
* 4. Redistribution. You may reproduce and distribute copies of the
|
||||
* Work or Derivative Works thereof in any medium, with or without
|
||||
* modifications, and in Source or Object form, provided that You
|
||||
* meet the following conditions:
|
||||
*
|
||||
* (a) You must give any other recipients of the Work or
|
||||
* Derivative Works a copy of this License; and
|
||||
*
|
||||
* (b) You must cause any modified files to carry prominent notices
|
||||
* stating that You changed the files; and
|
||||
*
|
||||
* (c) You must retain, in the Source form of any Derivative Works
|
||||
* that You distribute, all copyright, patent, trademark, and
|
||||
* attribution notices from the Source form of the Work,
|
||||
* excluding those notices that do not pertain to any part of
|
||||
* the Derivative Works; and
|
||||
*
|
||||
* (d) If the Work includes a "NOTICE" text file as part of its
|
||||
* distribution, then any Derivative Works that You distribute must
|
||||
* include a readable copy of the attribution notices contained
|
||||
* within such NOTICE file, excluding those notices that do not
|
||||
* pertain to any part of the Derivative Works, in at least one
|
||||
* of the following places: within a NOTICE text file distributed
|
||||
* as part of the Derivative Works; within the Source form or
|
||||
* documentation, if provided along with the Derivative Works; or,
|
||||
* within a display generated by the Derivative Works, if and
|
||||
* wherever such third-party notices normally appear. The contents
|
||||
* of the NOTICE file are for informational purposes only and
|
||||
* do not modify the License. You may add Your own attribution
|
||||
* notices within Derivative Works that You distribute, alongside
|
||||
* or as an addendum to the NOTICE text from the Work, provided
|
||||
* that such additional attribution notices cannot be construed
|
||||
* as modifying the License.
|
||||
*
|
||||
* You may add Your own copyright statement to Your modifications and
|
||||
* may provide additional or different license terms and conditions
|
||||
* for use, reproduction, or distribution of Your modifications, or
|
||||
* for any such Derivative Works as a whole, provided Your use,
|
||||
* reproduction, and distribution of the Work otherwise complies with
|
||||
* the conditions stated in this License.
|
||||
*
|
||||
* 5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
* any Contribution intentionally submitted for inclusion in the Work
|
||||
* by You to the Licensor shall be under the terms and conditions of
|
||||
* this License, without any additional terms or conditions.
|
||||
* Notwithstanding the above, nothing herein shall supersede or modify
|
||||
* the terms of any separate license agreement you may have executed
|
||||
* with Licensor regarding such Contributions.
|
||||
*
|
||||
* 6. Trademarks. This License does not grant permission to use the trade
|
||||
* names, trademarks, service marks, or product names of the Licensor,
|
||||
* except as required for reasonable and customary use in describing the
|
||||
* origin of the Work and reproducing the content of the NOTICE file.
|
||||
*
|
||||
* 7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
* agreed to in writing, Licensor provides the Work (and each
|
||||
* Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
* implied, including, without limitation, any warranties or conditions
|
||||
* of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
* PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
* appropriateness of using or redistributing the Work and assume any
|
||||
* risks associated with Your exercise of permissions under this
|
||||
* License.
|
||||
*
|
||||
* 8. Limitation of Liability. In no event and under no legal theory,
|
||||
* whether in tort (including negligence), contract, or otherwise,
|
||||
* unless required by applicable law (such as deliberate and grossly
|
||||
* negligent acts) or agreed to in writing, shall any Contributor be
|
||||
* liable to You for damages, including any direct, indirect, special,
|
||||
* incidental, or consequential damages of any character arising as a
|
||||
* result of this License or out of the use or inability to use the
|
||||
* Work (including but not limited to damages for loss of goodwill,
|
||||
* work stoppage, computer failure or malfunction, or any and all
|
||||
* other commercial damages or losses), even if such Contributor
|
||||
* has been advised of the possibility of such damages.
|
||||
*
|
||||
* 9. Accepting Warranty or Additional Liability. While redistributing
|
||||
* the Work or Derivative Works thereof, You may choose to offer,
|
||||
* and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
* or other liability obligations and/or rights consistent with this
|
||||
* License. However, in accepting such obligations, You may act only
|
||||
* on Your own behalf and on Your sole responsibility, not on behalf
|
||||
* of any other Contributor, and only if You agree to indemnify,
|
||||
* defend, and hold each Contributor harmless for any liability
|
||||
* incurred by, or claims asserted against, such Contributor by reason
|
||||
* of your accepting any such warranty or additional liability.
|
||||
*
|
||||
* END OF TERMS AND CONDITIONS
|
||||
*
|
||||
* APPENDIX: How to apply the Apache License to your work.
|
||||
*
|
||||
* To apply the Apache License to your work, attach the following
|
||||
* boilerplate notice, with the fields enclosed by brackets "[ ]"
|
||||
* replaced with your own identifying information. (Don't include
|
||||
* the brackets!) The text should be enclosed in the appropriate
|
||||
* comment syntax for the file format. We also recommend that a
|
||||
* file or class name and description of purpose be included on the
|
||||
* same "printed page" as the copyright notice for easier
|
||||
* identification within third-party archives.
|
||||
*
|
||||
* Copyright [yyyy] [name of copyright owner]
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
*************************************************************************
|
||||
END OF Apache License 2.0 NOTICES AND INFORMATION
|
||||
*************************************************************************
|
||||
|
||||
BROWSERLAUNCHER CODE.
|
||||
|
||||
The Program includes the following BrowserLauncher software:
|
||||
|
||||
· BrowserLauncher V1.4b1
|
||||
|
||||
IBM® is required to provide you, as the recipient of such software, with a
|
||||
copy of the following license from BrowserLauncher:
|
||||
|
||||
This code is Copyright 1999-2001 by Eric Albert (ejalbert@cs.stanford.edu)
|
||||
and may be redistributed or modified in any form without restrictions as
|
||||
long as the portion of this comment from this paragraph through the end of
|
||||
the comment is not removed. The author requests that he be notified of any
|
||||
application, applet, or other binary that makes use of this code, but that's
|
||||
more out of curiosity than anything and is not required. This software
|
||||
includes no warranty. The author is not repsonsible for any loss of data or
|
||||
functionality or any adverse or unexpected effects of using this software.
|
||||
|
||||
Credits:
|
||||
Steven Spencer, JavaWorld magazine
|
||||
(http://www.javaworld.com/javaworld/javatips/jw-javatip66.html)
|
||||
Thanks also to Ron B. Yeh, Eric Shapiro, Ben Engber, Paul Teitlebaum,
|
||||
Andrea Cantatore, Larry Barowski, Trevor Bedzek, Frank Miedrich,
|
||||
and Ron Rabakukk
|
||||
|
||||
@author Eric Albert (ejalbert@cs.stanford.edu)
|
||||
@version 1.4b1 (Released June 20, 2001)
|
||||
|
||||
*************************************************************************
|
||||
END OF BROWSERLAUNCHER NOTICES AND INFORMATION
|
||||
*************************************************************************
|
||||
|
||||
PNGIMAGE PRODUCER CODE. The Program includes the following PNGImage
|
||||
Producer software:
|
||||
|
||||
· PNGImage Producer V0.88
|
||||
|
||||
IBM obtained the right to use the software under the following license
|
||||
from PNGImage Producer:
|
||||
|
||||
// Copyright (c) 1997, Jason Marshall. All Rights Reserved
|
||||
//
|
||||
// The author makes no representations or warranties regarding the suitability,
|
||||
// reliability or stability of this code. This code is provided AS IS. The
|
||||
// author shall not be liable for any damages suffered as a result of using,
|
||||
// modifying or redistributing this software or any derivitives thereof.
|
||||
// Permission to use, reproduce, modify and/or (re)distribute this software is
|
||||
// hereby granted.
|
||||
|
||||
*************************************************************************
|
||||
END OF PNGIMAGE PRODUCER NOTICES AND INFORMATION
|
||||
*************************************************************************
|
||||
|
||||
HSQL CODE. The Program includes the following HSQL Development Group
|
||||
software:
|
||||
|
||||
· HSQLDB V1.7.1
|
||||
|
||||
IBM obtained the right to use the software under the following license
|
||||
from the HSQL Development Group:
|
||||
|
||||
/* Copyright (c) 2001-2002, The HSQL Development Group
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
* list of conditions and the following disclaimer.
|
||||
*
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* Neither the name of the HSQL Development Group nor the names of its
|
||||
* contributors may be used to endorse or promote products derived from this
|
||||
* software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL HSQL DEVELOPMENT GROUP, HSQLDB.ORG,
|
||||
* OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
*************************************************************************
|
||||
END OF HSQL NOTICES AND INFORMATION
|
||||
*************************************************************************
|
||||
|
||||
ICU License - ICU 1.8.1 and later
|
||||
|
||||
COPYRIGHT AND PERMISSION NOTICE
|
||||
|
||||
Copyright (c) 1995-2010 International Business Machines Corporation
|
||||
and others
|
||||
|
||||
All rights reserved.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, and/or sell copies of the
|
||||
Software, and to permit persons to whom the Software is furnished to do so,
|
||||
provided that the above copyright notice(s) and this permission notice appear
|
||||
in all copies of the Software and that both the above copyright notice(s) and
|
||||
this permission notice appear in supporting documentation.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS.
|
||||
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE
|
||||
LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR
|
||||
ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
|
||||
IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name of a copyright holder shall not
|
||||
be used in advertising or otherwise to promote the sale, use or other dealings
|
||||
in this Software without prior written authorization of the copyright holder.
|
||||
|
||||
The source code for ICU is available on the Web from: http://www.icu-project.org/
|
||||
|
||||
|
||||
UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE
|
||||
|
||||
Unicode Data Files include all data files under the directories
|
||||
http://www.unicode.org/Public/, http://www.unicode.org/reports/, and
|
||||
http://www.unicode.org/cldr/data/ . Unicode Software includes any source
|
||||
code published in the Unicode Standard or under the directories
|
||||
http://www.unicode.org/Public/, http://www.unicode.org/reports/, and
|
||||
http://www.unicode.org/cldr/data/.
|
||||
|
||||
NOTICE TO USER: Carefully read the following legal agreement. BY
|
||||
DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S DATA
|
||||
FILES ("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"), YOU UNEQUIVOCALLY
|
||||
ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE TERMS AND CONDITIONS OF THIS
|
||||
AGREEMENT. IF YOU DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY,
|
||||
DISTRIBUTE OR USE THE DATA FILES OR SOFTWARE.
|
||||
|
||||
COPYRIGHT AND PERMISSION NOTICE
|
||||
|
||||
Copyright © 1991-2009 Unicode, Inc. All rights reserved. Distributed
|
||||
under the Terms of Use in http://www.unicode.org/copyright.html.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Unicode data files and any associated documentation
|
||||
(the "Data Files") or Unicode software and any associated documentation
|
||||
(the "Software") to deal in the Data Files or Software without restriction,
|
||||
including without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, and/or sell copies of the Data Files or Software, and to permit
|
||||
persons to whom the Data Files or Software are furnished to do so, provided
|
||||
that (a) the above copyright notice(s)and this permission notice appear with
|
||||
all copies of the Data Files or Software, (b) both the above copyright
|
||||
notice(s) and this permission notice appear in associated documentation,
|
||||
and (c) there is clear notice in each modified Data File or in the Software
|
||||
as well as in the documentation associated with the Data File(s) or Software
|
||||
that the data or software has been modified.
|
||||
|
||||
THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF
|
||||
ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS
|
||||
INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT
|
||||
OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
|
||||
USE, DATA OR PROFITS,WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
|
||||
TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
|
||||
OF THE DATA FILES OR SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name of a copyright holder shall
|
||||
not be used in advertising or otherwise to promote the sale, use or other
|
||||
dealings in these Data Files or Software without prior written authorization
|
||||
of the copyright holder.
|
||||
|
||||
*************************************************************************
|
||||
END OF ICU NOTICES AND INFORMATION
|
||||
*************************************************************************
|
||||
|
||||
IBM Public License
|
||||
|
||||
The Program includes some or all of the following that IBM obtained under
|
||||
the IBM Public License (source code available via the indicated URL):
|
||||
|
||||
JTOPEN V5.1.1 (http://sourceforge.net/projects/jt400/)
|
||||
|
||||
*************************************************************************
|
||||
END OF JTOPEN NOTICES AND INFORMATION
|
||||
*************************************************************************
|
||||
|
||||
===========================================================================
|
||||
END OF InstallAnywhere 2010 SP1 NOTICES AND INFORMATION
|
||||
===========================================================================
|
||||
|
||||
|
||||
===========================================================================
|
||||
END OF IBM LTFS SDE Linux version 2.2 NOTICES AND INFORMATION
|
||||
===========================================================================
|
||||
573
ltfs/doc/README
Normal file
573
ltfs/doc/README
Normal file
@@ -0,0 +1,573 @@
|
||||
=======================================================================
|
||||
HPE StoreOpen Software (HPE-SOS) - Version 3.4.2
|
||||
=======================================================================
|
||||
|
||||
Files in this download contain Licensed Materials, property of HPE,
|
||||
(C) Copyright 2015-2018 Hewlett Packard Enterprise Development LP
|
||||
|
||||
Files in this download also contain Licensed Materials, property of IBM,
|
||||
(C) Copyright IBM Corp. 2010, 2014
|
||||
|
||||
The HPE LTFS software application is an open-source tape file system
|
||||
implemented on dual partition tape drives.
|
||||
|
||||
This file is part of the HPE Linear Tape File System package. HPE LTFS is
|
||||
free software; you can redistribute it and/or modify it under the terms
|
||||
of the GNU Lesser General Public License as published by the Free Software
|
||||
Foundation, version 2.1 of the License.
|
||||
|
||||
HPE LTFS is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||
License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
or download the license from <http://www.gnu.org/licenses/>.
|
||||
|
||||
See the Licensing agreement (COPYING.LIB) when LTFS is downloaded.
|
||||
|
||||
Further details on HPE's LTFS implementation can be found at
|
||||
www.hpe.com/storage/storeopen
|
||||
|
||||
|
||||
=======================================================================
|
||||
HPE-SOS usage
|
||||
=======================================================================
|
||||
|
||||
1. Build and/or install the HPE-SOS application
|
||||
|
||||
Installation instuctions are in INSTALLING.linux / INSTALLING.macosx
|
||||
Information on how to build from source are in BUILDING.linux /
|
||||
BUILDING.macosx / Building.windows
|
||||
|
||||
2. Ensure that /usr/local/bin/ is in your command search path
|
||||
|
||||
For example:
|
||||
$ export PATH="$PATH:/usr/local/bin"
|
||||
|
||||
3. Format the tape cartridge in LTFS format
|
||||
|
||||
For Linux:
|
||||
$ mkltfs -d /dev/st0
|
||||
|
||||
For Mac OS X:
|
||||
$ mkltfs -d 0
|
||||
|
||||
Usage: mkltfs <options>
|
||||
|
||||
Available options are:
|
||||
-d, --device=<name> Tape device (required)
|
||||
-f, --force Force to format medium
|
||||
-s, --tape-serial=<id> Tape serial number (6 alphanumeric ASCII characters)
|
||||
-n, --volume-name=<name> Tape volume name (LTFS VOLUME by default)
|
||||
-r, --rules=<rules> Rules for choosing files to write to the
|
||||
index partition.
|
||||
The syntax of the rule argument is:
|
||||
size=1M
|
||||
size=1M/name=pattern
|
||||
size=1M/name=pattern1:pattern2:pattern3
|
||||
A file is written to the index partition if it is
|
||||
no larger than the given size AND matches at least
|
||||
one of the name patterns (if specified). The size
|
||||
argument accepts K, M, and G suffixes. Name
|
||||
patterns might contain the special characters
|
||||
'?' (match any single character) and '*' (match
|
||||
zero or more characters).
|
||||
--no-override Disallow mount-time data placement policy changes
|
||||
-w, --wipe Restore the LTFS medium to an unpartitioned medium
|
||||
(format to a legacy scratch medium)
|
||||
-q, --quiet Suppress progress information and general messages
|
||||
-t, --trace Enable function call tracing
|
||||
--syslogtrace Enable diagnostic output to stderr and syslog
|
||||
-V, --version Version information
|
||||
-h, --help This help
|
||||
-p, --advanced-help Full help, including advanced options
|
||||
-g, --interactive Interactive mode
|
||||
-i, --config=<file> Use the specified configuration file
|
||||
(default: /usr/local/etc/ltfs.conf)
|
||||
-e, --backend=<name> Use the specified tape device backend
|
||||
(default: ltotape)
|
||||
-b, --blocksize=<num> Set the LTFS record size (default: 524288)
|
||||
-c, --no-compression Disable compression on the volume
|
||||
-k, --keep-capacity Keep the tape medium's total capacity proportion
|
||||
-x, --fulltrace Enable full function call tracing (slow)
|
||||
--long-wipe Unformat the medium and erase any data on the tape
|
||||
by overwriting with special data pattern.
|
||||
This operation takes over 3 hours. Once you start,
|
||||
you cannot interrupt it.
|
||||
|
||||
LTFS17085I Plugin: Loading "ltotape" driver
|
||||
LTOTAPE backend options:
|
||||
-o log_directory=<dir> log snapshot directory (default=/var/log)
|
||||
-o nosizelimit remove 512kB limit (NOT RECOMMENDED)
|
||||
|
||||
Usage example:
|
||||
mkltfs --device=/dev/nst0 --rules="size=100K"
|
||||
mkltfs --device=/dev/nst0 --rules="size=1M/name=*.jpg"
|
||||
mkltfs --device=/dev/nst0 --rules="size=1M/name=*.jpg:*.png"
|
||||
|
||||
4. Mount the formatted tape cartridge
|
||||
$ mkdir /mnt/lto5
|
||||
$ ltfs /mnt/lto5
|
||||
|
||||
ltfs options:
|
||||
|
||||
usage: ltfs mountpoint [options]
|
||||
|
||||
general options:
|
||||
-o opt,[opt...] mount options
|
||||
-h --help print help
|
||||
-V --version print version
|
||||
|
||||
FUSE options:
|
||||
-d -o debug enable debug output (implies -f)
|
||||
-f foreground operation
|
||||
-s disable multi-threaded operation
|
||||
|
||||
-o allow_other allow access to other users
|
||||
-o allow_root allow access to root
|
||||
-o nonempty allow mounts over non-empty file/dir
|
||||
-o default_permissions enable permission checking by kernel
|
||||
-o fsname=NAME set filesystem name
|
||||
-o subtype=NAME set filesystem type
|
||||
-o large_read issue large read requests (2.4 only)
|
||||
-o max_read=N set maximum size of read requests
|
||||
|
||||
-o hard_remove immediate removal (don't hide files)
|
||||
-o use_ino let filesystem set inode numbers
|
||||
-o readdir_ino try to fill in d_ino in readdir
|
||||
-o direct_io use direct I/O
|
||||
-o kernel_cache cache files in kernel
|
||||
-o [no]auto_cache enable caching based on modification times (off)
|
||||
-o umask=M set file permissions (octal)
|
||||
-o uid=N set file owner
|
||||
-o gid=N set file group
|
||||
-o entry_timeout=T cache timeout for names (1.0s)
|
||||
-o negative_timeout=T cache timeout for deleted names (0.0s)
|
||||
-o attr_timeout=T cache timeout for attributes (1.0s)
|
||||
-o ac_attr_timeout=T auto cache timeout for attributes (attr_timeout)
|
||||
-o intr allow requests to be interrupted
|
||||
-o intr_signal=NUM signal to send on interrupt (10)
|
||||
-o modules=M1[:M2...] names of modules to push onto filesystem stack
|
||||
|
||||
-o max_write=N set maximum size of write requests
|
||||
-o max_readahead=N set maximum readahead
|
||||
-o async_read perform reads asynchronously (default)
|
||||
-o sync_read perform reads synchronously
|
||||
-o atomic_o_trunc enable atomic open+truncate support
|
||||
-o big_writes enable larger than 4kB writes
|
||||
-o no_remote_lock disable remote file locking
|
||||
|
||||
Module options:
|
||||
|
||||
[subdir]
|
||||
-o subdir=DIR prepend this directory to all paths (mandatory)
|
||||
-o [no]rellinks transform absolute symlinks to relative
|
||||
|
||||
[iconv]
|
||||
-o from_code=CHARSET original encoding of file names (default: UTF-8)
|
||||
-o to_code=CHARSET new encoding of the file names (default: UTF-8)
|
||||
|
||||
LTFS options:
|
||||
-o config_file=<file> Configuration file
|
||||
(default: /usr/local/etc/ltfs.conf)
|
||||
-o work_directory=<dir> LTFS work directory (default: /tmp/ltfs)
|
||||
-o atime Update index if only access times have changed
|
||||
-o noatime Do not update index if only access times have
|
||||
changed (default)
|
||||
-o tape_backend=<name> tape backend to use (default: ltotape)
|
||||
-o iosched_backend=<name> I/O scheduler implementation to use
|
||||
(default: unified, use "none" to disable)
|
||||
-o umask=<mode> Override default permission mask
|
||||
(3 octal digits, default: 000)
|
||||
-o fmask=<mode> Override file permission mask
|
||||
(3 octal digits, default: 000)
|
||||
-o dmask=<mode> Override directory permission mask
|
||||
(3 octal digits, default: 000)
|
||||
-o min_pool_size=<num> Minimum write cache pool size. Cache objects
|
||||
are 1 MB each (default: 25)
|
||||
-o max_pool_size=<num> Maximum write cache pool size. Cache objects
|
||||
are 1 MB each (default: 50)
|
||||
-o rules=<rules> Rules for choosing files to write to the
|
||||
index partition.
|
||||
The syntax of the rule argument is:
|
||||
size=1M
|
||||
size=1M/name=pattern
|
||||
size=1M/name=pattern1:pattern2:pattern3
|
||||
A file is written to the index partition if
|
||||
it is no larger than the given size AND
|
||||
matches at least one of the name patterns (if
|
||||
specified). The size argument accepts K, M,
|
||||
and G suffixes. Name patterns might contain
|
||||
the special characters '?' (match any single
|
||||
character) and '*' (match zero or more
|
||||
characters).
|
||||
-o quiet Disable informational messages (same as
|
||||
verbose=1)
|
||||
-o trace Enable diagnostic output (same as verbose=3)
|
||||
-o syslogtrace Enable diagnostic output to stderr and syslog
|
||||
(same as verbose=303)
|
||||
-o fulltrace Enable full call tracing (same as verbose=4)
|
||||
-o verbose=<num> Override output verbosity directly (default:2)
|
||||
-o eject Eject the cartridge after unmount
|
||||
-o noeject Do not eject the cartridge after unmount
|
||||
(default)
|
||||
-o sync_type=<type> Specify sync type (default: time@5)
|
||||
<type> should be specified as follows:
|
||||
time@min: LTFS attempts to write an index
|
||||
every 'min' minutes. min should be a
|
||||
decimal value from 1 to 10. A value of
|
||||
0 is equivalent to
|
||||
"-o sync_type=unmount"
|
||||
(default: min=5)
|
||||
close: LTFS attempts to write an index
|
||||
when each file is closed. This is not
|
||||
recommended for normal use.
|
||||
unmount: LTFS attempts to write an index
|
||||
only when the medium is unmounted
|
||||
-o force_mount_no_eod Skip EOD existence check when mounting
|
||||
(read-only mount)
|
||||
Only use for a CM corrupted medium
|
||||
-o rollback_mount=<gen> Attempt to mount on previous index generation
|
||||
(read-only mount)
|
||||
-o release_device Clear device reservation (should be specified
|
||||
with -o devname
|
||||
-o capture_index Capture latest index to the work directory at
|
||||
unmount
|
||||
-a Advanced help, including standard FUSE options
|
||||
|
||||
453e LTFS17085I Plugin: Loading "ltotape" driver
|
||||
LTOTAPE backend options:
|
||||
-o devname=<dev> tape device (default=/dev/nst0)
|
||||
-o log_directory=<dir> log snapshot directory (default=/var/log)
|
||||
-o nosizelimit remove 512kB limit (NOT RECOMMENDED)
|
||||
|
||||
5. Write files to the LTFS volume
|
||||
For example:
|
||||
$ cp -RL /home/user1 /mnt/lto5/
|
||||
|
||||
6. Unmount the tape cartridge
|
||||
This flushes the data buffer of the file system to the tape cartridge,
|
||||
and prepares for eject.
|
||||
|
||||
$ umount /mnt/lto5
|
||||
OR
|
||||
$ fusermount -u /mnt/lto5 (Linux only)
|
||||
|
||||
7. If at some time in the future user wishes to remove the LTFS format from
|
||||
the cartridge so that it can be reused for a different purpose, use
|
||||
the unltfs utility. Note that this will IRRETRIEVABLY DESTROY all
|
||||
contents of the cartridge, so use it only when you are sure that you
|
||||
wish to erase the LTFS volume.
|
||||
|
||||
$ unltfs -d /dev/st0
|
||||
|
||||
unltfs options:
|
||||
|
||||
Usage: unltfs <options>
|
||||
|
||||
-d, --device=<name> specifies the tape drive to use
|
||||
-y, --justdoit omits normal verification steps, reformats without
|
||||
further prompting
|
||||
-e --eject eject tape after operation completes successfully
|
||||
-q, --quiet suppresses all progress output
|
||||
-t, --trace displays detailed progress
|
||||
-h, --help shows this help
|
||||
-i, --config=<file> overrides the default config file
|
||||
-b, --backend specifies a different tape backend subsystem
|
||||
-x, --fulltrace displays debug information (verbose)
|
||||
|
||||
8. If the cartridge becomes inconsistent due to power failure, improper
|
||||
unmount, or other exceptional conditions then the ltfsck utility can
|
||||
be used to repair it / make it consistent again.
|
||||
|
||||
$ ltfsck /dev/st0
|
||||
|
||||
ltfsck options
|
||||
|
||||
Usage: ltfsck [options] filesys
|
||||
|
||||
filesys Device file for the tape drive
|
||||
|
||||
Available options are:
|
||||
-g, --generation=<generation> Specify the generation to roll back
|
||||
-r, --rollback Roll back to the point specified by -g
|
||||
-n, --no-rollback Do not roll back. Verify the point specified
|
||||
by -g (default)
|
||||
-f, --full-recovery Recover extra data blocks into directory
|
||||
_ltfs_lostandfound
|
||||
-z, --deep-recovery Recover a cartridge with missing EOD
|
||||
Some blocks might be erased, but recover to
|
||||
final unmount point with an index version of
|
||||
at least 2.0.0 or earlier. This option must
|
||||
be used for a cartridge that cannot be
|
||||
recovered by a normal repair)
|
||||
-l, --list-rollback-points List rollback points
|
||||
-m, --full-index-info Display full index information (works only
|
||||
with the -l option)
|
||||
-v, --traverse=<strategy> Set traverse mode for listing roll back
|
||||
points. Strategy should be forward or
|
||||
backward. (default: backward)
|
||||
-j, --erase-history Erase history at rollback
|
||||
-k, --keep-history Keep history at rollback (default)
|
||||
-q, --quiet Suppress informational messages
|
||||
-t, --trace Enable diagnostic output
|
||||
--syslogtrace Enable diagnostic output to stderr and syslog
|
||||
-V, --version Version information
|
||||
-h, --help This help
|
||||
-p, --advanced-help Full help, including advanced options
|
||||
-i, --config=<file> Use the specified configuration file
|
||||
(default: /usr/local/etc/ltfs.conf)
|
||||
-e, --backend=<name> Override the default tape device backend
|
||||
-x, --fulltrace Enable full function call tracing (slow)
|
||||
--capture-index Capture index information to the current
|
||||
directory (-g is effective for this option)
|
||||
--salvage-rollback-points List the rollback points of a cartridge that
|
||||
has no EOD
|
||||
|
||||
LTFS17085I Plugin: Loading "ltotape" driver
|
||||
LTOTAPE backend options:
|
||||
-o log_directory=<dir> log snapshot directory (default=/var/log)
|
||||
-o nosizelimit remove 512kB limit (NOT RECOMMENDED)
|
||||
|
||||
Usage example:
|
||||
ltfsck /dev/nst0
|
||||
ltfsck --generation --rollback /dev/nst0
|
||||
ltfsck --deep-recovery --full-recovery /dev/nst0
|
||||
|
||||
Changes from version v3.4.1 to 3.4.2:
|
||||
=====================================
|
||||
|
||||
- Corrected issue switching in/out of append-only mode with LTO7/LTO8 drives
|
||||
- Corrected issue with ltfscopy and md5sum verification
|
||||
|
||||
Changes from version v3.4.0 to 3.4.1:
|
||||
=====================================
|
||||
|
||||
- Corrected issue affecting sending of library drive tickets to CVTL
|
||||
- Corrected issue with truncation of barcodes
|
||||
|
||||
Changes from version v3.3.0 to 3.4.0:
|
||||
=====================================
|
||||
|
||||
- Support append-only mode option flag for LTO7 & LTO8 drives
|
||||
- Defect fixes
|
||||
|
||||
Changes from version v3.2.0 to 3.3.0:
|
||||
=====================================
|
||||
|
||||
- Support for HPE LTO8 tape drives
|
||||
- Support for SNIA 2.4 Percent Encoding
|
||||
- Support for SNIA 2.4 Vol Avisory Locking
|
||||
- Support for SNIA 2.4 Open for Write
|
||||
- Defect fixes
|
||||
|
||||
Changes from version v3.1.0 to 3.2.0:
|
||||
=====================================
|
||||
|
||||
- Support for Volume Advisory Locking
|
||||
- Support for volume UUID
|
||||
- Support for Windows Server 2016
|
||||
- Support for macOS Sierra
|
||||
- Support for capturing index by default (Windows and Mac Only)
|
||||
- LTFSCOPY default behavior changed to prompt before overwriting files
|
||||
- LTFSCOPY will preserve modification time with new option '-t'
|
||||
- Added support for HPE Archive Manager tape identification and mounting the same as read only
|
||||
- Defect fixes
|
||||
|
||||
Changes from version v3.0.0 to 3.1.0:
|
||||
=====================================
|
||||
|
||||
- Hewlett Packard Enterprise Branding
|
||||
|
||||
Changes from version v2.3.0 to 3.0.0:
|
||||
=====================================
|
||||
|
||||
- Support for HP LTO-7 Ultrium SAS standalone tape drives
|
||||
- LTFS Configurator displays messages indicating the progress of the mount operation
|
||||
- LTFS Configurator supports custom names for tape drives
|
||||
- CartridgeBrowser utility supports search based on file attribute values
|
||||
|
||||
Changes from version v2.2.1 to 2.3.0:
|
||||
=====================================
|
||||
|
||||
- Added multidrive support for windows
|
||||
- Added support for icons and label to indicate the status of the cartridge in windows
|
||||
- Added support for search option within Cartridge Browser
|
||||
- Added new utility "LTFS Smart copy" for efficient data transfer from cartridge and content data verification for files on the cartridge.
|
||||
- Implemented ability to list rollback points of a cartridge without EOD marker (--salvage-rollback-points)
|
||||
- Installation in Linux (RHEL)is now using RPM package.
|
||||
- LTFS is built with ICU version 50.1.2
|
||||
- Added support for RHEL 7.0
|
||||
- Added support for MacOSX 10.10
|
||||
- Removed support for SLES
|
||||
- Defect fixes
|
||||
|
||||
Changes from version v2.2.0 to 2.2.1:
|
||||
=====================================
|
||||
|
||||
- Added 'interactive mode' for mkltfs utility.
|
||||
- The default 'mkltfs' behavior modified to avoid user confirmation.
|
||||
- The '--quite' option in 'mkltfs' and 'unltfs' utilities now does not imply '--force'
|
||||
|
||||
Changes from version v2.1.1 to 2.2.0:
|
||||
=====================================
|
||||
|
||||
- Added support for LTFS Spec Version 2.2.0
|
||||
- Added support for MAM Barcode attribute
|
||||
- Added support for ICU version 4.8.1.1
|
||||
- Added support for RHEL 6.5 and RHEL 5.10
|
||||
- Added support for Windows 2012 R2 and Windows 8.1
|
||||
- Removed support for MacOSX 10.6
|
||||
- Defects fixed in Windows and Mac GUI
|
||||
- Defects fixed in Windows and Mac Installer
|
||||
- Defects fixed in LTFS core application
|
||||
|
||||
Changes from version v2.1.0 to 2.1.1:
|
||||
======================================
|
||||
|
||||
- Error fixes in windows installer to support upgrade
|
||||
- Fix to accept the index rules correctly when supplied using the LTFSConfigurator
|
||||
- Fix in ltfsck when run with --deep-recovery option
|
||||
- Fix to mount full tapes as read-only
|
||||
- Fix to clear the EWSTATE flag when a full tape is rolled back with --erase-history option
|
||||
- Fixed memory leaks
|
||||
|
||||
|
||||
Changes from version v2.0.0 to 2.1.0:
|
||||
======================================
|
||||
|
||||
- Enhanced LTFS driver for small file support(Improve file creation/listing time
|
||||
when a directory has many small files)
|
||||
- Improved Wizards and Configuration tool for Windows GUI
|
||||
- Cartridge utilities can be run directly from LTFSconfigurator
|
||||
- Default volume name is LTFS_VOLUME
|
||||
- Enhanced support for LTO CM attributes
|
||||
- Added support LTFS format specifications 2.1.0
|
||||
- Added support for symbolic link for Linux and Mac
|
||||
- Added support for rollback mount/read-only mount
|
||||
- Added support to save the current index as a xml file on unmount or when 'ltfsck' is run.
|
||||
- Application can run in background now in Mac.
|
||||
- Rollback of index is now possible only by specifying the generation number of the index,
|
||||
rollback using timespec of the index is disabled.
|
||||
- Implemented signal handlers to handle kill/interrupt signals and unmount the volume even when
|
||||
the mount is being done.
|
||||
- Tape can be unformatted by specifying -w option to mkltfs
|
||||
|
||||
|
||||
Changes from version v1.2.2 to v2.0.0:
|
||||
======================================
|
||||
|
||||
- Added support for LTO6 tape drives
|
||||
- Set the Application Format Version MAM attribute when formatting a volume
|
||||
- Added support for four new virtual extended attributes (VEA's):
|
||||
ltfs.softwareProduct, ltfs.softwareVendor, ltfs.softwareVersion,
|
||||
ltfs.softwareFormatSpec
|
||||
- Improved the handling of a cartridge that was not unmounted properly
|
||||
- Improved the process for storing a file on the index partition when the
|
||||
data placement policy is specified
|
||||
- Modified to update the change time of a file or directory when the VEA
|
||||
ltfs.modifyTime is written
|
||||
- Fixed the problem that ltfs.mediaStorageAlert VEA is cleared when another
|
||||
VEA is read
|
||||
- Fixed a problem in ltfsck when trying to list rollback points and a corrupt
|
||||
index is encountered
|
||||
- Added a check for a write-protected cartridge in mkltfs
|
||||
|
||||
|
||||
Changes from version v1.2.0 to v1.2.2:
|
||||
======================================
|
||||
|
||||
- Added the unltfs utility
|
||||
- Added "-o nosizelimit" option to ltfs
|
||||
- Improved message reporting for advisory conditions that previously were
|
||||
being reported as error conditions
|
||||
- Installer on Mac OS X now tries to create the logfile directory if it
|
||||
doesn't already exist
|
||||
- Mac OS X package now includes an application to simplify the management
|
||||
of an LTFS volume
|
||||
|
||||
|
||||
Changes from version v1.1.0 to v1.2.0:
|
||||
======================================
|
||||
|
||||
- Conforms with new LTFS Format Specification 2.0.0
|
||||
- Backward compatibility with Version 1.0 formated tapes, and built-in
|
||||
automatic migration mechanism to Version 2.0.0 format
|
||||
- Improved the parsing and handling of the index information
|
||||
- Supports standardized virtual extended attribute (VEA) names.
|
||||
VEA names used in previous release of LTFS become obsolete and
|
||||
no longer available.
|
||||
- See Important Note below
|
||||
- Enhanced the ability to recover the tapes in inconsistent state,
|
||||
which was caused by unexpected power outage.
|
||||
- Added a new function to flush the in-memory user data to the tape medium
|
||||
at pre-defined timing; either sync at file close or sync periodically.
|
||||
The default behaviour is now to sync the index every five minutes.
|
||||
- Changed the command line syntax of ltfs and mkltfs command for
|
||||
specifying the data placement rules
|
||||
- Check for incompatible media and report problems in a helpful way
|
||||
- Various minor corrections and updates
|
||||
|
||||
|
||||
Important Note:
|
||||
===============
|
||||
|
||||
Earlier versions of the HPE LTFS application supported the original 1.0 LTFS
|
||||
format specification; version v1.2.0 and later supports the updated 2.0.0 LTFS
|
||||
format specification. LTFS volumes created with application v1.2.0 will not
|
||||
be readable in older versions of the LTFS application, as shown in the
|
||||
following table:
|
||||
|
||||
Cartridge written by Cartridge written by Cartridge written by
|
||||
LTFS application v1.1.0 or earlier v1.2.0 or later v2.1.0 or later
|
||||
-------------------- ---------------------- ---------------------- -----------------------
|
||||
v1.1.0 or earlier Read/Write ok Cannot be mounted N/A
|
||||
|
||||
v1.2.0 or later Readable ok; will Read/Write ok N/A
|
||||
automatically be
|
||||
converted to new
|
||||
format if written
|
||||
|
||||
v2.1.0 or later Readable ok; will Readable ok; will Read/Write ok
|
||||
automatically be automatically be
|
||||
converted to new converted to new
|
||||
format if written format if written
|
||||
|
||||
HPE recommends that all instances of HPE LTFS should be updated to latest version
|
||||
to avoid these compatibility issues.
|
||||
|
||||
If for some reason it is important to maintain cartridges readable by
|
||||
previous versions of the HPE LTFS application, care should be taken to avoid
|
||||
writing to those cartridges with the new version of the application. This
|
||||
may be accomplished by mounting the volume as read-only, or by using the
|
||||
cartridge write-protect tab to prevent cartridge updates. However this
|
||||
should be regarded as a temporary measure until all the application instances
|
||||
can be updated to latest version.
|
||||
|
||||
Limitations:
|
||||
============
|
||||
|
||||
1. When the tape cartridge is almost full, further write operations will
|
||||
be prevented. The free space on the tape (e.g. from the df command)
|
||||
will indicate that there is still some capacity available, but that
|
||||
is reserved for updating the index when the tape is unmounted.
|
||||
|
||||
2. Future mounts of a cartridge that is almost full (has passed the
|
||||
point at which "early warning" is reported) will mount as Read Only,
|
||||
to prevent further modifications which may not fit on tape. This
|
||||
status is cleared when a cartridge is reformatted (using mkltfs) or
|
||||
when the volume is rolled back erasing history (using ltfsck).
|
||||
|
||||
3. (Mac OS X) LTFS does not support moving a folder within LTFS.
|
||||
Any attempt to move a folder in such a manner will result in an
|
||||
"operation not permitted" error, and the operation will be ignored.
|
||||
The user can still move a file within LTFS, and the user can also move
|
||||
a folder from LTFS to non-LTFS file system or vice versa.
|
||||
|
||||
4. (Mac OS X) Mac OS X's Spotlight will not display the files
|
||||
on LTFS as a result of search.
|
||||
|
||||
|
||||
678
ltfs/doc/README.windows
Normal file
678
ltfs/doc/README.windows
Normal file
@@ -0,0 +1,678 @@
|
||||
=======================================================================
|
||||
HPE StoreOpen Software (HPE-SOS) - Version 3.4.2
|
||||
=======================================================================
|
||||
|
||||
Files in this download contain Licensed Materials, property of HPE,
|
||||
(C) Copyright 2015, 2016 Hewlett Packard Enterprise Development LP
|
||||
|
||||
Files in this download also contain Licensed Materials, property of IBM,
|
||||
(C) Copyright IBM Corp. 2010, 2014
|
||||
|
||||
The HPE LTFS software application is an open-source tape file system
|
||||
implemented on dual partition tape drives.
|
||||
|
||||
This file is part of the HPE Linear Tape File System package. HPE LTFS is
|
||||
free software; you can redistribute it and/or modify it under the terms
|
||||
of the GNU Lesser General Public License as published by the Free Software
|
||||
Foundation, version 2.1 of the License.
|
||||
|
||||
HPE LTFS is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||
License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
or download the license from <http://www.gnu.org/licenses/>.
|
||||
|
||||
See the Licensing agreement (COPYING.LIB) when LTFS is downloaded.
|
||||
|
||||
Further details on HPE's LTFS implementation can be found at
|
||||
www.hpe.com/storage/storeopen
|
||||
|
||||
=======================================================================
|
||||
HPE-SOS_3.4.2 usage
|
||||
=======================================================================
|
||||
|
||||
1. Mapping a tape drive to a drive letter
|
||||
|
||||
Before you can access the tape cartridge as a volume, you must first establish a mapping between
|
||||
the tape drive and a Windows drive letter. To do this, run the LTFS Configuration Tool located in
|
||||
the HPE StoreOpen Software program group.
|
||||
|
||||
NOTE: The tool may request administrative privileges, depending on your system security policies.
|
||||
|
||||
By default the first usable tape drive found on your system is selected, along with the first unused
|
||||
drive letter. Change the selections as desired, then to mount with all the default options, click Create
|
||||
mapping. This results in the following actions:
|
||||
1.The configuration tool checks that the drive is accessible and usable.
|
||||
2.The tool attempts to verify that your system has suitable HBA driver support for LTFS operation.
|
||||
3.The tool looks for a currently loaded tape cartridge. If a cartridge is found, it is checked to
|
||||
see if it is formatted as an LTFS volume. If not, you are offered the option of formatting the
|
||||
cartridge before proceeding. It is recommended that you should accept this option.
|
||||
4.Once a formatted cartridge is detected, or if no cartridge is present, the file system service is
|
||||
started and the window is updated to reflect the new configuration.
|
||||
5.A new option called Drive alias is provided for the user to specify drive names of their choice.
|
||||
|
||||
2. Using HPE StoreOpen Software (Windows)
|
||||
|
||||
When the mapping has been established, you can close or minimize the configuration tool,or choose
|
||||
to map to another tape drive.
|
||||
|
||||
NOTE: SOS supports mapping of two tape drives at a time.The newly provided Drive alias option will
|
||||
be useful to provide appropriate drive names for both the drives.
|
||||
|
||||
A Windows Explorer window will now include an LTFS volume. The first time you access this drive
|
||||
volume there will be a slight delay whilst the index is loaded and checked, but from then on the
|
||||
drive volume may be accessed as normal.
|
||||
|
||||
CAUTION: If you insert a cleaning cartridge while a drive letter is assigned to the tape drive,
|
||||
HPE StoreOpen will attempt to use the cartridge. This can degrade the life of the cleaning cartridge.
|
||||
In order to preserve the cleaning cartridge, remove the drive letter mapping for the tape drive by
|
||||
using the LTFS configurator before inserting the cleaning cartridge in to the tape drive.
|
||||
|
||||
a. Mount options
|
||||
|
||||
In most circumstances the default options are suitable and you do not need to change them. However
|
||||
for flexibility you can modify them if you wish. The options are as follows:
|
||||
|
||||
• Mount read-only – If you select this option, the cartridge contents are readable but cannot be
|
||||
modified. This provides a “software” write-protect mechanism; the same effect can be achieved
|
||||
using the “hardware” write protect tab on the tape cartridge.
|
||||
• Re-mount the mapped drives at system start-up – The normal behavior is to configure the
|
||||
service so that it automatically restarts when the system boots up. Unselect this checkbox if
|
||||
you do not want this to happen (for example, if this is a temporary setup where the tape drive
|
||||
will be removed after the system is shut down).
|
||||
|
||||
b. Advanced options
|
||||
|
||||
This opens a further window where you can adjust less common options.
|
||||
|
||||
NOTE: Some of these options may have a noticeable impact on performance and in general
|
||||
should not be changed.
|
||||
|
||||
◦ Support ticket folder: This is the location where drive logs are stored. These logs are
|
||||
generated on each unmount and whenever an error is detected. The application will keep
|
||||
the ten most recent logs and automatically delete any older logs. These logs may be useful
|
||||
to HPE support personnel but otherwise can be ignored.
|
||||
◦ Enable verbose logging: This is not required in normal operation and you should only
|
||||
use it when requested by HPE support personnel, as it will have an adverse effect on performance.
|
||||
◦ Enable extended verbose logging: This adds a further level of detail to logfile entries.
|
||||
◦ Thumbnails: When Windows encounters a folder full of files, it attempts to build thumbnails
|
||||
to represent the content of each file. This is not desirable in an LTFS volume, because it
|
||||
may take many minutes or even hours to generate the thumbnails. So by default HPE
|
||||
StoreOpen Software tells the operating system that the volume is in the “offline” state,
|
||||
which prevents automatic thumbnail creation. You can turn this off if desired, but be
|
||||
aware that it will have a severe effect on the time needed to open and browse folders.
|
||||
• Index capture: This option allows you to keep a copy of the latest index from tape on
|
||||
the local disk. Enable the check box and enter the path to the folder where you would
|
||||
like to keep the index file after the tape is unmounted.
|
||||
◦ Index updates: This allows you to control when indexes are written to tape.
|
||||
◦ Index partition usage: The LTFS format allows for data files to be written in the index
|
||||
partition, which if used carefully may improve access times for frequently-used files.
|
||||
|
||||
However, in general you should leave this setting in its default state.
|
||||
|
||||
c. Index updates
|
||||
|
||||
Accessing data stored on tape relies on an up-to-date index being available. HPE StoreOpen
|
||||
Software offers three different mechanisms for updating the copy of the index stored on tape.
|
||||
The default setting is to write a copy of the index to tape periodically while writing data; the index
|
||||
is written every five minutes. You can change the time interval to every minute. This method of
|
||||
index update reduces the window of exposure to power-loss events, since there will be an index
|
||||
on tape no more than five minutes old (if using the default interval).
|
||||
The second option is to write the index to tape only when a volume is removed. In normal operation
|
||||
this is sufficient, since the LTFS usage model requires the volume to be unmounted after use, so
|
||||
there is always a valid index. However, if power is removed from the drive without unmounting,
|
||||
for example, through an unplanned power outage or accidental unplugging, the volume will be
|
||||
left in an inconsistent state, and all files added since the last dismount operation will be inaccessible.
|
||||
The CheckWizard utility may be able to recover the file data to the _ltfs_lostandfound
|
||||
directory, but the metadata (filename, access dates, and so on) will be lost.
|
||||
The final mechanism provided in HPE StoreOpen Software is to update the index every time a
|
||||
file is closed after writing. This further reduces the exposure window to a single file, or (if several
|
||||
processes are using the volume simultaneously) to the number of files being written concurrently.
|
||||
However, this does add some overhead, both in terms of the tape capacity used for each index,
|
||||
and also in terms of performance since the writing of the index will take bandwidth away from
|
||||
writing data. These overhead effects will become more severe with smaller file sizes.
|
||||
In most cases the default behavior offers the best solution, but the options allow you to modify the
|
||||
behavior for a particular situation.
|
||||
|
||||
3. Cartridge utilities
|
||||
|
||||
The cartridge utilities button opens a further window where you can access the utilities for formatting
|
||||
the tape, etc
|
||||
|
||||
• Load: Physically loads the tape which is already presented to the drive.
|
||||
• Unload: Physically ejects the LTFS volume from the tape drive. The file system will continue to
|
||||
run, but attempting to access the volume while no cartridge is present will result in the error
|
||||
message “The device is not ready”. When a formatted LTFS cartridge is loaded into the drive,
|
||||
the index will be read and checked, and then the volume may again be accessed.
|
||||
• Format: Starts the FormatWizard to guide you through the steps and options of creating a
|
||||
fresh volume on the current cartridge
|
||||
• Unformat: Runs the UnformatWizard to guide you through the steps and options of removing
|
||||
the LTFS format from the tape.
|
||||
• Check: Runs the Error-checking tool which scans the volume for consistency and can correct
|
||||
certain problems with the format.
|
||||
|
||||
4. File permissions
|
||||
|
||||
The HPE StoreOpen Software application manages a common set of file permissions for all files
|
||||
and users; file and directory ownership is not recorded to tape media. The only permission that is
|
||||
tracked is write-protect information.
|
||||
|
||||
5. File names
|
||||
|
||||
To maintain compatibility when copying files between multiple platforms, it is strongly recommended
|
||||
that do you do not use the following characters LTFS filenames, directory names, or extended
|
||||
attributes: * ? < > : " | / \
|
||||
|
||||
6. Limitations
|
||||
|
||||
• When the tape cartridge is almost full, further write operations will be prevented. The free
|
||||
space on the tape (for example, as reported by Explorer) will indicate that there is still some
|
||||
capacity available, but that is reserved for updating the index when the tape is unmounted.
|
||||
• Future mounts of a cartridge that is almost full (that is, it has passed the point at which “early
|
||||
warning” is reported) will mount as Read Only, to prevent further modifications that may not
|
||||
fit on the tape. This status is cleared when the cartridge is reformatted (using mkltfs) or when
|
||||
the volume is rolled back, erasing the history.
|
||||
• MAM and LTFS attributes cannot be listed using the ltfsattr command. The ltfs and MAM
|
||||
attributes are case sensitive.
|
||||
• LTFS volume name cannot be modified on a LTFS tape which is full.
|
||||
• Disconnecting or powering off a tape drive while it is mounted can make the LTFS volume
|
||||
inconsistent. Always un-mount the LTFS volume before disconnecting or powering down the
|
||||
tape drive.
|
||||
|
||||
7. Working with Windows Explorer
|
||||
|
||||
Once the mapping has been established and an LTFS-formatted cartridge loaded, you can access
|
||||
the contents of the cartridge either at a command prompt or through Windows Explorer.
|
||||
LTFS Configurator now also displays messages indicating the progress of the mount operation.
|
||||
|
||||
i) The volume type is shown as a LTFS VOLUME. This results from the way that the LTFS
|
||||
volume is linked into the operating system, and has no impact on operation.
|
||||
ii) The Total size and Space free figures appear slightly lower than expected; this is due
|
||||
to the way that Windows calculates and report capacities in binary GB (230 bytes) and TB
|
||||
(240 bytes) instead of decimal GB (109 bytes) and TB (1012) bytes. Note too that these are
|
||||
worst-case figures; if the volume is employing the drive’s default lossless hardware data
|
||||
compression, then the actual capacity available may be significantly greater than that
|
||||
shown.
|
||||
|
||||
8. Using the FormatWizard
|
||||
|
||||
Before you can use an LTO-5 or LTO-6 cartridge with LTFS, it must be prepared by formatting
|
||||
according to the LTFS specification. The LTFSFormatWizard application helps to select appropriate
|
||||
options and settings and then formats the tape. You can run it from the context menu, from the LTFS
|
||||
Tools tab in the drive properties, or from the HPE StoreOpen Software program group.
|
||||
|
||||
CAUTION: Read all the text on the wizard dialog windows carefully. Completing this wizard
|
||||
will irretrievably destroy all tape contents.
|
||||
|
||||
NOTE: If you execute the FormatWizard while no LTFS volume is mapped to a drive letter, the
|
||||
wizard may require administrative privileges (depending on system security policies and settings).
|
||||
Running with insufficient privileges will result in an inability to “see” the tape drive and consequently
|
||||
no formatting can be performed. If this occurs, right-click on the executable and select Run as
|
||||
administrator.
|
||||
|
||||
a) The initial screen presents information about the operation that has been started.
|
||||
b) The next window allows you to select a tape drive and related options.
|
||||
|
||||
The first drive on the system (or the one being used by the mounted file system, if any) will be
|
||||
selected by default; change the selection to use a different tape drive.
|
||||
NOTE: Only drives suitable for use with LTFS are shown in the list.
|
||||
By default the drive’s lossless hardware data compression engine will be enabled. You can
|
||||
turn it off if desired, in which case all writes and reads to this cartridge will bypass the
|
||||
compression engine.
|
||||
|
||||
c) The next window contains options related to the cartridge format.
|
||||
Both of these fields are optional, and are intended to provide a method of identifying the
|
||||
cartridge. Tape serial number should be no more than six alphanumeric characters (A–Z,
|
||||
0–9). Volume name is a free-format text string.
|
||||
The Advanced button leads to a further set of options; however it is recommended that you
|
||||
leave these at their default settings for all normal usage.
|
||||
d) The final window summarizes the format operation that you have defined using the wizard.
|
||||
|
||||
When you click Finish, the following operations take place:
|
||||
i) If the cartridge is currently mounted, it is unmounted
|
||||
ii) A “Progress” dialog window is created.
|
||||
iii)The format operation starts.
|
||||
iv) All tape contents are removed and a fresh (empty) index written to the cartridge.
|
||||
v) If the cartridge was mounted, the new cartridge is mounted.
|
||||
vi) When the Progress dialog shows that the format is complete, you can close the window.
|
||||
|
||||
9. Using the CheckWizard
|
||||
|
||||
The LTFSCheckWizard application has two purposes:
|
||||
• To check for problems with the format as written on the cartridge, and usually recover from
|
||||
them. This is not normally necessary but may be required for example if the drive was powered
|
||||
off without cleanly unmounting the volume.
|
||||
• To facilitate the rolling back of the cartridge contents to an earlier state.
|
||||
|
||||
CAUTION: Read all the text on the wizard dialog windows carefully. Completing this wizard
|
||||
may irretrievably modify the tape contents.
|
||||
|
||||
NOTE: If you execute the CheckWizard while no LTFS volume is mapped to a drive letter, the
|
||||
wizard may require administrative privileges (depending on system security policies and settings).
|
||||
Running with insufficient privileges will result in an inability to “see” the tape drive and consequently
|
||||
no checking can be performed. If this occurs, right-click on the executable and select Run as
|
||||
administrator.
|
||||
|
||||
a) The initial screen presents information about the operation that has been started.
|
||||
b) The next window allows you to select a tape drive.
|
||||
The first drive on the system (or the one being used by the mounted file system, if any) is
|
||||
selected by default; change the selection to use a different tape drive.
|
||||
|
||||
NOTE: Only drives suitable for use with LTFS are shown in the list.
|
||||
Select Provide detailed progress information to display more detail during the checking
|
||||
operation.
|
||||
c) The next window is where you select the desired mode of operation
|
||||
|
||||
• Check and repair volume: Select this option to check the volume for consistency.
|
||||
|
||||
If you suspect the volume was not updated properly due to a power outage, select
|
||||
the Perform deep recovery if necessary option, which will attempt to verify and, if
|
||||
necessary, recover from a missing End Of Data (EOD) marker. This may take a long
|
||||
time and may result in the loss of unindexed data blocks written since the last good
|
||||
index.
|
||||
|
||||
If it is important to try to recover those unindexed data blocks, select the option
|
||||
Attempt to save any unindexed data blocks. The utility will try to save the blocks to
|
||||
a new folder _ltfs_lostandfound.
|
||||
|
||||
NOTE: You need to identify and manipulate any recovered blocks manually, since
|
||||
there will be no identifying details (because they were not in any index).
|
||||
|
||||
• Rollback cartridge contents to previous state: Select this option if you want to change the
|
||||
view of the cartridge contents to a previous point in time. There are two choices:
|
||||
|
||||
Keep all history to allow potential roll forward in the future: The default is to roll
|
||||
back the contents as viewed in the index, but not erase any data — on other words,
|
||||
the view of the contents is changed, but the actual contents are unchanged. This
|
||||
allows for a future operation to “roll forward” the contents again, recovering changes
|
||||
that occurred since the rollback point. Note that no storage space is freed up by this
|
||||
option.
|
||||
|
||||
Permanently erase all files after rollback point: Roll back and erase the history. In
|
||||
this case, any changes since the rollback point will be lost irretrievably, so be sure
|
||||
that this is what you intend. This option will free up the storage space used by those
|
||||
changes.
|
||||
|
||||
If you opt to Rollback cartridge contents, an additional window is presented where you
|
||||
will be able to select a rollback point from those on the cartridge. Click Start scan to
|
||||
initiate a scan of the entire volume, looking for previous index points stored on tape. This
|
||||
operation may take many minutes or even several hours. When complete, the window
|
||||
is refreshed to show the available rollback points.
|
||||
|
||||
d) Select a rollback point and click Next.A summary of the operation to be carried out is displayed.
|
||||
|
||||
When you click Finish, the following operations take place:
|
||||
i) If the cartridge is currently mounted, it is unmounted.
|
||||
ii) A Progress dialog window is created.
|
||||
iii)The check or rollback operation starts.
|
||||
iv) The Progress dialog is updated as the operation proceeds to completion.
|
||||
v) If the cartridge was mounted, the checked or updated volume will be re-mounted
|
||||
|
||||
e) When the Progress dialog shows that the operation is complete, you can close the window.
|
||||
|
||||
10. Using the UnformatWizard
|
||||
|
||||
CAUTION: This operation will permanently remove all data present on the cartridge, so only use
|
||||
it if this is what you intend.
|
||||
You do not normally need to use the UnformatWizard. Its purpose is to remove the LTFS format
|
||||
from a cartridge and return it to a single partition, so that the cartridge can be used with a different
|
||||
software application. This utility is similar to the FormatWizard, but is much simpler, since there is
|
||||
only one option affecting operation (to eject the cartridge from the drive once the format has been
|
||||
removed).
|
||||
NOTE: The UnformatWizard may request administrative privileges to execute (depending on
|
||||
system security policies and settings).
|
||||
|
||||
11. Using the ltfsattr utility
|
||||
|
||||
HPE StoreOpen Software version 2.2.0 onwards includes the LTFSATTR utility which can be used
|
||||
to access the attributes from the LTFS volume. It is a Windows command line utility which provides
|
||||
similar functionality to the “attr” command in Linux and the “xattr” command in Mac OS X.
|
||||
|
||||
Running the ltfsattr utility with no parameters gives the usage information.
|
||||
|
||||
Usage: ltfsattr -h
|
||||
ltfsattr -p attrname [-v] filename
|
||||
ltfsattr -w attrname attrvalue [-v] filename
|
||||
ltfsattr -l [-v] filename
|
||||
ltfsattr -x attrname [-v] filename
|
||||
|
||||
ltfsattr options:
|
||||
-h prints the usage information
|
||||
|
||||
-p reads and displays the value of attrname
|
||||
for filename with -v, also displays the
|
||||
filename and the attribute name
|
||||
|
||||
-w writes attribute attrname with value
|
||||
attrvalue for filename with -v, provides
|
||||
confirmation (otherwise silent on success)
|
||||
|
||||
-l lists the user attributes for filename with -v,
|
||||
also lists the values (otherwise just the names)
|
||||
|
||||
-x deletes attribute attrname for filename
|
||||
with -v, provides confirmation (otherwise
|
||||
silent on success)
|
||||
|
||||
NOTE: Filename may also refer to a directory or folder name.
|
||||
NOTE: This utility manipulates extended attributes in conjunction with HPE StoreOpen software
|
||||
and should only be used in that context with a mounted LTFS volume.
|
||||
|
||||
12. HPE StoreOpen Cartridge Browser
|
||||
|
||||
HPE StoreOpen Software version 2.2.0 onwards includes a Windows GUI utility to view the
|
||||
contents of LTFS index files. Users can select a folder which contains LTFS index files and
|
||||
the utility will list all the index files in that folder. The user can then open a detailed
|
||||
view displaying the contents of any index file.
|
||||
|
||||
NOTE: This utility does not interact with the tape drive or the StoreOpen software. Instead, it is
|
||||
an independent tool for viewing the stored LTFS index files which are generated when an LTFS
|
||||
volume is mounted and unmounted.
|
||||
|
||||
Users can select a folder where the index files are kept (in most setups this will be the directory
|
||||
path selected for the ‘index capture’ setting in the advanced options of the HPE LTFS configuration
|
||||
GUI). The Cartridge Browser utility then displays all the index files in the folder. When you hover
|
||||
the mouse over a particular index file the details about the index will be shown.
|
||||
If you double click on any of the index files, the utility will open another window which shows a
|
||||
detailed view of the selected index as a nested expandable tree. Selecting a particular file shows
|
||||
the information regarding that file.
|
||||
|
||||
User can also search for specific files and find out in which index that file is present. The search
|
||||
feature will be very useful if you have a lot of indexes and want to find out which tape has the
|
||||
particular file. The search box accepts regular expressions as described below:
|
||||
|
||||
c matches any literal character c
|
||||
. matches any single character
|
||||
^ matches the beginning of the input string
|
||||
$ matches the end of the input string
|
||||
* matches zero or more occurrences of the previous character
|
||||
|
||||
13. LTFS Smart Copy utility
|
||||
A console is provided with the set up to run the LTFS SmartCopy utility in windows
|
||||
|
||||
The installer includes the LTFS Smart Copy utility for Windows.
|
||||
|
||||
The LTFS Smart Copy tool provides the binary ltfscopy command that provides the below two
|
||||
benefits to the LTFS users:
|
||||
|
||||
- Faster data transfer from Tape to disk and Tape to Tape.
|
||||
- File verification using hash values.
|
||||
|
||||
The ltfscopy tool is installed by default when you install HPE StoreOpen Software. The
|
||||
executable name is ltfscopy.exe and it will be available in the installation folder where you
|
||||
installed the HPE StoreOpen Software software.
|
||||
|
||||
Command examples:
|
||||
|
||||
To copy the files from the tape cartridge to C:\photos:
|
||||
ltfscopy.exe –s E:\CVG427L5\ -d C:\photos
|
||||
To copy files and all subfolders and files recursively:
|
||||
ltfscopy.exe –s E:\CVG427L5\ -d C:\photos --recursive
|
||||
To copy files and all subfolders and files recursively and verify:
|
||||
ltfscopy.exe –s E:\CVG427L5\ -d C:\photos --copy --verify --recursive
|
||||
To verify previously copied data by comparing it with source:
|
||||
ltfscopy.exe -s E:\CVG427L5\ -d C:\photos --verify –recursive
|
||||
|
||||
Run 'ltfscopy --help' for more information about usage and the supported options.
|
||||
|
||||
14. LTFS tape library utility
|
||||
|
||||
The ltfslibutil tool is installed when you install HPE StoreOpen Software.
|
||||
It can be used to exchange cartridges for a mounted LTFS volume in a
|
||||
supported tape library. Open the LTFS Console from the Start Menu and run
|
||||
ltfslibutil –h for usage information.
|
||||
|
||||
Command examples:
|
||||
|
||||
To identify which cartridge is currently loaded in drive R:
|
||||
ltfslibutil –i R:
|
||||
|
||||
To list available cartridges in the library:
|
||||
ltfslibutil –l –n R:
|
||||
|
||||
To unload the current cartridge and replace with barcode G80289L7:
|
||||
ltfslibutil –b G80289L7 R:
|
||||
|
||||
|
||||
Changes from version v3.4.1 to 3.4.2:
|
||||
=====================================
|
||||
|
||||
- Corrected issue switching in/out of append-only mode with LTO7/LTO8 drives
|
||||
- Corrected issue with ltfscopy and md5sum verification
|
||||
|
||||
Changes from version v3.4.0 to 3.4.1:
|
||||
=====================================
|
||||
|
||||
- Corrected issue affecting sending of library drive tickets to CVTL
|
||||
- Corrected issue with truncation of barcodes
|
||||
|
||||
Changes from version v3.3.0 to 3.4.0:
|
||||
=====================================
|
||||
|
||||
- Supports HPE StoreEver MSL tape libraries
|
||||
- New command line utility ltfslibutil
|
||||
- Support append-only mode option flag for LTO7 & LTO8 drives
|
||||
- Defect fixes
|
||||
|
||||
Changes from version v3.2.0 to 3.3.0:
|
||||
=====================================
|
||||
|
||||
- Support for LTO 8
|
||||
- Support for SNIA 2.4 Percent Encoding
|
||||
- Support for SNIA 2.4 Vol Avisory Locking
|
||||
- Support for SNIA 2.4 Open for Write
|
||||
- Support for HPE 1/8 Autoloaders
|
||||
- Defect fixes
|
||||
|
||||
Changes from version v3.1.0 to 3.2.0:
|
||||
=====================================
|
||||
|
||||
- Support for Volume Advisory Locking
|
||||
- Support for volume UUID
|
||||
- Support for Windows Server 2016
|
||||
- Support for macOS Sierra
|
||||
- Support for capturing index by default (Windows and Mac Only)
|
||||
- LTFSCOPY default behavior changed to prompt before overwriting files
|
||||
- LTFSCOPY will preserve modification time with new option '-t'
|
||||
- Added support for HPE Archive Manager tape identification and mounting the same as read only
|
||||
- Defect fixes
|
||||
|
||||
Changes from version v3.0.0 to 3.1.0:
|
||||
=====================================
|
||||
|
||||
- Hewlett Packard Enterprise Branding
|
||||
|
||||
Changes from version v2.3.0 to 3.0.0:
|
||||
=====================================
|
||||
|
||||
- Support for HP LTO-7 Ultrium SAS standalone tape drives
|
||||
- LTFS Configurator displays messages indicating the progress of the mount operation
|
||||
- LTFS Configurator supports custom names for tape drives
|
||||
- CartridgeBrowser utility supports search based on file attribute values
|
||||
|
||||
Changes from version v2.2.1 to 2.3.0:
|
||||
=====================================
|
||||
|
||||
- Added multidrive support for windows
|
||||
- Added support for icons and label to indicate the status of the cartridge in windows
|
||||
- Added support for search option within Cartridge Browser
|
||||
- Added new utility “LTFS Smart copy” for efficient data transfer from cartridge and content data verification for files on the cartridge.
|
||||
- Implemented ability to list rollback points of a cartridge without EOD marker (--salvage-rollback-points)
|
||||
- Installation in Linux (RHEL)is now using RPM package.
|
||||
- LTFS is built with ICU version 50.1.2
|
||||
- Added support for RHEL 7.0
|
||||
- Added support for MacOSX 10.10
|
||||
- Removed support for SLES
|
||||
- Defect fixes
|
||||
|
||||
Changes from version v2.2.0 to 2.2.1:
|
||||
=====================================
|
||||
|
||||
- Added 'interactive mode' for mkltfs utility.
|
||||
- The default 'mkltfs' behavior modified to avoid user confirmation.
|
||||
- The '--quite' option in 'mkltfs' and 'unltfs' utilities now does not imply '--force'
|
||||
|
||||
Changes from version v2.1.1 to 2.2.0:
|
||||
=====================================
|
||||
|
||||
- Added support for LTFS Spec Version 2.2.0
|
||||
- Added support for MAM Barcode attribute
|
||||
- Added support for ICU version 4.8.1.1
|
||||
- Added support for RHEL 6.5 and RHEL 5.10
|
||||
- Added support for Windows 2012 R2 and Windows 8.1
|
||||
- Removed support for MacOSX 10.6
|
||||
- Defects fixed in Windows and Mac GUI
|
||||
- Defects fixed in Windows and Mac Installer
|
||||
- Defects fixed in LTFS core application
|
||||
|
||||
Changes from version v2.1.0 to 2.1.1:
|
||||
======================================
|
||||
|
||||
- Error fixes in windows installer to support upgrade
|
||||
- Fix to accept the index rules correctly when supplied using the LTFSConfigurator
|
||||
- Fix in ltfsck when run with --deep-recovery option
|
||||
- Fix to mount full tapes as read-only
|
||||
- Fix to clear the EWSTATE flag when a full tape is rolled back with --erase-history option
|
||||
- Fixed memory leaks
|
||||
|
||||
|
||||
Changes from version v2.0.0 to 2.1.0:
|
||||
======================================
|
||||
|
||||
- Enhanced LTFS driver for small file support(Improve file creation/listing time
|
||||
when a directory has many small files)
|
||||
- Improved Wizards and Configuration tool for Windows GUI
|
||||
- Cartridge utilities can be run directly from LTFSconfigurator
|
||||
- Default volume name is LTFS_VOLUME
|
||||
- Enhanced support for LTO CM attributes
|
||||
- Added support LTFS format specifications 2.1.0
|
||||
- Added support for symbolic link for Linux and Mac
|
||||
- Added support for rollback mount/read-only mount
|
||||
- Added support to save the current index as a xml file on unmount or when 'ltfsck' is run.
|
||||
- Application can run in background now in Mac.
|
||||
- Rollback of index is now possible only by specifying the generation number of the index,
|
||||
rollback using timespec of the index is disabled.
|
||||
- Implemented signal handlers to handle kill/interrupt signals and unmount the volume even when
|
||||
the mount is being done.
|
||||
- Tape can be unformatted by specifying -w option to mkltfs
|
||||
|
||||
|
||||
Changes from version v1.2.2 to v2.0.0:
|
||||
======================================
|
||||
|
||||
- Added support for LTO6 tape drives
|
||||
- Set the Application Format Version MAM attribute when formatting a volume
|
||||
- Added support for four new virtual extended attributes (VEA's):
|
||||
ltfs.softwareProduct, ltfs.softwareVendor, ltfs.softwareVersion,
|
||||
ltfs.softwareFormatSpec
|
||||
- Improved the handling of a cartridge that was not unmounted properly
|
||||
- Improved the process for storing a file on the index partition when the
|
||||
data placement policy is specified
|
||||
- Modified to update the change time of a file or directory when the VEA
|
||||
ltfs.modifyTime is written
|
||||
- Fixed the problem that ltfs.mediaStorageAlert VEA is cleared when another
|
||||
VEA is read
|
||||
- Fixed a problem in ltfsck when trying to list rollback points and a corrupt
|
||||
index is encountered
|
||||
- Added a check for a write-protected cartridge in mkltfs
|
||||
|
||||
|
||||
Changes from version v1.2.0 to v1.2.2:
|
||||
======================================
|
||||
|
||||
- Added the unltfs utility
|
||||
- Added "-o nosizelimit" option to ltfs
|
||||
- Improved message reporting for advisory conditions that previously were
|
||||
being reported as error conditions
|
||||
- Installer on Mac OS X now tries to create the logfile directory if it
|
||||
doesn't already exist
|
||||
- Mac OS X package now includes an application to simplify the management
|
||||
of an LTFS volume
|
||||
|
||||
|
||||
Changes from version v1.1.0 to v1.2.0:
|
||||
======================================
|
||||
|
||||
- Conforms with new LTFS Format Specification 2.0.0
|
||||
- Backward compatibility with Version 1.0 formated tapes, and built-in
|
||||
automatic migration mechanism to Version 2.0.0 format
|
||||
- Improved the parsing and handling of the index information
|
||||
- Supports standardized virtual extended attribute (VEA) names.
|
||||
VEA names used in previous release of LTFS become obsolete and
|
||||
no longer available.
|
||||
- See Important Note below
|
||||
- Enhanced the ability to recover the tapes in inconsistent state,
|
||||
which was caused by unexpected power outage.
|
||||
- Added a new function to flush the in-memory user data to the tape medium
|
||||
at pre-defined timing; either sync at file close or sync periodically.
|
||||
The default behaviour is now to sync the index every five minutes.
|
||||
- Changed the command line syntax of ltfs and mkltfs command for
|
||||
specifying the data placement rules
|
||||
- Check for incompatible media and report problems in a helpful way
|
||||
- Various minor corrections and updates
|
||||
|
||||
|
||||
Important Note:
|
||||
===============
|
||||
|
||||
Earlier versions of the HPE LTFS application supported the original 1.0 LTFS
|
||||
format specification; version v1.2.0 and later supports the updated 2.0.0 LTFS
|
||||
format specification. LTFS volumes created with application v1.2.0 will not
|
||||
be readable in older versions of the LTFS application, as shown in the
|
||||
following table:
|
||||
|
||||
Cartridge written by Cartridge written by Cartridge written by
|
||||
LTFS application v1.1.0 or earlier v1.2.0 or later v2.1.0 or later
|
||||
-------------------- ---------------------- ---------------------- -----------------------
|
||||
v1.1.0 or earlier Read/Write ok Cannot be mounted N/A
|
||||
|
||||
v1.2.0 or later Readable ok; will Read/Write ok N/A
|
||||
automatically be
|
||||
converted to new
|
||||
format if written
|
||||
|
||||
v2.1.0 or later Readable ok; will Readable ok; will Read/Write ok
|
||||
automatically be automatically be
|
||||
converted to new converted to new
|
||||
format if written format if written
|
||||
|
||||
HPE recommends that all instances of HPE LTFS should be updated to latest version
|
||||
to avoid these compatibility issues.
|
||||
|
||||
If for some reason it is important to maintain cartridges readable by
|
||||
previous versions of the HPE LTFS application, care should be taken to avoid
|
||||
writing to those cartridges with the new version of the application. This
|
||||
may be accomplished by mounting the volume as read-only, or by using the
|
||||
cartridge write-protect tab to prevent cartridge updates. However this
|
||||
should be regarded as a temporary measure until all the application instances
|
||||
can be updated to latest version.
|
||||
|
||||
|
||||
Limitations:
|
||||
============
|
||||
|
||||
1. When the tape cartridge is almost full, further write operations will
|
||||
be prevented. The free space on the tape (e.g. from the df command)
|
||||
will indicate that there is still some capacity available, but that
|
||||
is reserved for updating the index when the tape is unmounted.
|
||||
|
||||
2. Future mounts of a cartridge that is almost full (has passed the
|
||||
point at which "early warning" is reported) will mount as Read Only,
|
||||
to prevent further modifications which may not fit on tape. This
|
||||
status is cleared when a cartridge is reformatted (using mkltfs) or
|
||||
when the volume is rolled back erasing history (using ltfsck).
|
||||
|
||||
3. (Mac OS X) LTFS does not support moving a folder within LTFS.
|
||||
Any attempt to move a folder in such a manner will result in an
|
||||
"operation not permitted" error, and the operation will be ignored.
|
||||
The user can still move a file within LTFS, and the user can also move
|
||||
a folder from LTFS to non-LTFS file system or vice versa.
|
||||
|
||||
4. (Mac OS X) Mac OS X's Spotlight will not display the files
|
||||
on LTFS as a result of search.
|
||||
|
||||
|
||||
38
ltfs/doc/ltfs.conf.example
Normal file
38
ltfs/doc/ltfs.conf.example
Normal file
@@ -0,0 +1,38 @@
|
||||
# Automatically generated LTFS configuration file for Linux.
|
||||
# Edit this file to add or remove tape driver plugins and I/O
|
||||
# schedulers or to change default settings.
|
||||
#
|
||||
# To make configuration changes that will persist across software
|
||||
# updates, edit ltfs.conf.local instead of this file.
|
||||
|
||||
# Tape device plugins
|
||||
# Syntax: driver PLUGIN-NAME PLUGIN-PATH
|
||||
# The PLUGIN-PATH may contain spaces.
|
||||
driver ibmtape /opt/IBM/ltfs/lib64/ltfs/libdriver-ibmtape.so
|
||||
driver file /opt/IBM/ltfs/lib64/ltfs/libdriver-file.so
|
||||
|
||||
# I/O scheduler plugins
|
||||
# Syntax: iosched PLUGIN-NAME PLUGIN-PATH
|
||||
# The PLUGIN-PATH may contain spaces.
|
||||
iosched unified /opt/IBM/ltfs/lib64/ltfs/libiosched-unified.so
|
||||
iosched fcfs /opt/IBM/ltfs/lib64/ltfs/libiosched-fcfs.so
|
||||
|
||||
# Key Manager Interface plugins
|
||||
# Syntax: kmi PLUGIN-NAME PLUGIN-PATH
|
||||
# The PLUGIN-PATH may contain spaces.
|
||||
kmi flatfile /opt/IBM/ltfs/lib64/ltfs/libkmi-flatfile.so
|
||||
kmi simple /opt/IBM/ltfs/lib64/ltfs/libkmi-simple.so
|
||||
|
||||
# Default plugins
|
||||
# Syntax: default PLUGIN-TYPE PLUGIN-NAME
|
||||
# The PLUGIN-NAME must be one of those defined using a "driver" or "iosched" line.
|
||||
# For a PLUGIN-TYPE of iosched, the special "none" name may be used to indicate that
|
||||
# no I/O scheduler should be used by default.
|
||||
default driver ibmtape
|
||||
default iosched unified
|
||||
default kmi none
|
||||
|
||||
# Include the local settings file. That file is not overwritten when a newer
|
||||
# version of LTFS is installed.
|
||||
include /etc/ltfs.conf.local
|
||||
|
||||
13
ltfs/doc/ltfs.conf.local.example
Normal file
13
ltfs/doc/ltfs.conf.local.example
Normal file
@@ -0,0 +1,13 @@
|
||||
# The default LTFS configuration file includes this one.
|
||||
# Any directives placed here will be kept across software updates.
|
||||
#
|
||||
# It is possible to remove a plugin specified previously.
|
||||
# Syntax: -iosched PLUGIN-NAME
|
||||
# -driver PLUGIN-NAME
|
||||
# -kmi PLUGIN-NAME
|
||||
# Example: -driver file
|
||||
#
|
||||
# It is also possible to unset a previously specified default plugin.
|
||||
# Syntax: -default PLUGIN-TYPE
|
||||
# Example: -default driver
|
||||
|
||||
12
ltfs/init.d/Makefile.am
Normal file
12
ltfs/init.d/Makefile.am
Normal file
@@ -0,0 +1,12 @@
|
||||
|
||||
all:
|
||||
|
||||
install-data-local:
|
||||
if [ ! -d "@datadir@/ltfs" ]; then \
|
||||
mkdir -p "@datadir@/ltfs"; \
|
||||
fi ;\
|
||||
if [ ! -f "@datadir@/ltfs/ltfs" ]; then \
|
||||
install -m 755 ltfs "@datadir@/ltfs/ltfs"; \
|
||||
fi
|
||||
|
||||
clean-local:
|
||||
382
ltfs/init.d/Makefile.in
Normal file
382
ltfs/init.d/Makefile.in
Normal file
@@ -0,0 +1,382 @@
|
||||
# Makefile.in generated by automake 1.11.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
|
||||
# Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
@SET_MAKE@
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkglibexecdir = $(libexecdir)/@PACKAGE@
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
target_triplet = @target@
|
||||
subdir = init.d
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMTAR = @AMTAR@
|
||||
AM_CFLAGS = @AM_CFLAGS@
|
||||
AM_CPPFLAGS = @AM_CPPFLAGS@
|
||||
AM_LDFLAGS = @AM_LDFLAGS@
|
||||
AR = @AR@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CRC_OPTIMIZE = @CRC_OPTIMIZE@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFAULT_DRIVER = @DEFAULT_DRIVER@
|
||||
DEFAULT_IOSCHED = @DEFAULT_IOSCHED@
|
||||
DEFAULT_KMI = @DEFAULT_KMI@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DSYMUTIL = @DSYMUTIL@
|
||||
DUMPBIN = @DUMPBIN@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
FGREP = @FGREP@
|
||||
FUSE_MODULE_CFLAGS = @FUSE_MODULE_CFLAGS@
|
||||
FUSE_MODULE_LIBS = @FUSE_MODULE_LIBS@
|
||||
GENRB = @GENRB@
|
||||
GREP = @GREP@
|
||||
ICU_MODULE_CFLAGS = @ICU_MODULE_CFLAGS@
|
||||
ICU_MODULE_LIBS = @ICU_MODULE_LIBS@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LIBXML2_MODULE_CFLAGS = @LIBXML2_MODULE_CFLAGS@
|
||||
LIBXML2_MODULE_LIBS = @LIBXML2_MODULE_LIBS@
|
||||
LIPO = @LIPO@
|
||||
LN_S = @LN_S@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
NM = @NM@
|
||||
NMEDIT = @NMEDIT@
|
||||
OBJDUMP = @OBJDUMP@
|
||||
OBJEXT = @OBJEXT@
|
||||
OTOOL = @OTOOL@
|
||||
OTOOL64 = @OTOOL64@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PKGDATA = @PKGDATA@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
RANLIB = @RANLIB@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
STRIP = @STRIP@
|
||||
UUID_MODULE_CFLAGS = @UUID_MODULE_CFLAGS@
|
||||
UUID_MODULE_LIBS = @UUID_MODULE_LIBS@
|
||||
VERSION = @VERSION@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
build = @build@
|
||||
build_alias = @build_alias@
|
||||
build_cpu = @build_cpu@
|
||||
build_os = @build_os@
|
||||
build_vendor = @build_vendor@
|
||||
builddir = @builddir@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host = @host@
|
||||
host_alias = @host_alias@
|
||||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
htmldir = @htmldir@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
localedir = @localedir@
|
||||
localstatedir = @localstatedir@
|
||||
lt_ECHO = @lt_ECHO@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
oldincludedir = @oldincludedir@
|
||||
pdfdir = @pdfdir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target = @target@
|
||||
target_alias = @target_alias@
|
||||
target_cpu = @target_cpu@
|
||||
target_os = @target_os@
|
||||
target_vendor = @target_vendor@
|
||||
top_build_prefix = @top_build_prefix@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
|
||||
&& { if test -f $@; then exit 0; else break; fi; }; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign init.d/Makefile'; \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign init.d/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
$(top_srcdir)/configure: $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(am__aclocal_m4_deps):
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
tags: TAGS
|
||||
TAGS:
|
||||
|
||||
ctags: CTAGS
|
||||
CTAGS:
|
||||
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
dist_files=`for file in $$list; do echo $$file; done | \
|
||||
sed -e "s|^$$srcdirstrip/||;t" \
|
||||
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||
case $$dist_files in \
|
||||
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||
sort -u` ;; \
|
||||
esac; \
|
||||
for file in $$dist_files; do \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d "$(distdir)/$$file"; then \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
||||
else \
|
||||
test -f "$(distdir)/$$file" \
|
||||
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
check-am: all-am
|
||||
check: check-am
|
||||
all-am: Makefile
|
||||
installdirs:
|
||||
install: install-am
|
||||
install-exec: install-exec-am
|
||||
install-data: install-data-am
|
||||
uninstall: uninstall-am
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
|
||||
installcheck: installcheck-am
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
clean: clean-am
|
||||
|
||||
clean-am: clean-generic clean-libtool clean-local mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-generic
|
||||
|
||||
dvi: dvi-am
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
html-am:
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am: install-data-local
|
||||
|
||||
install-dvi: install-dvi-am
|
||||
|
||||
install-dvi-am:
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-html: install-html-am
|
||||
|
||||
install-html-am:
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-info-am:
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-am
|
||||
|
||||
install-pdf-am:
|
||||
|
||||
install-ps: install-ps-am
|
||||
|
||||
install-ps-am:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-am
|
||||
|
||||
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
|
||||
|
||||
pdf: pdf-am
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-am
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am:
|
||||
|
||||
.MAKE: install-am install-strip
|
||||
|
||||
.PHONY: all all-am check check-am clean clean-generic clean-libtool \
|
||||
clean-local distclean distclean-generic distclean-libtool \
|
||||
distdir dvi dvi-am html html-am info info-am install \
|
||||
install-am install-data install-data-am install-data-local \
|
||||
install-dvi install-dvi-am install-exec install-exec-am \
|
||||
install-html install-html-am install-info install-info-am \
|
||||
install-man install-pdf install-pdf-am install-ps \
|
||||
install-ps-am install-strip installcheck installcheck-am \
|
||||
installdirs maintainer-clean maintainer-clean-generic \
|
||||
mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
|
||||
ps ps-am uninstall uninstall-am
|
||||
|
||||
|
||||
all:
|
||||
|
||||
install-data-local:
|
||||
if [ ! -d "@datadir@/ltfs" ]; then \
|
||||
mkdir -p "@datadir@/ltfs"; \
|
||||
fi ;\
|
||||
if [ ! -f "@datadir@/ltfs/ltfs" ]; then \
|
||||
install -m 755 ltfs "@datadir@/ltfs/ltfs"; \
|
||||
fi
|
||||
|
||||
clean-local:
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
||||
135
ltfs/init.d/ltfs
Normal file
135
ltfs/init.d/ltfs
Normal file
@@ -0,0 +1,135 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# /etc/init.d/ltfs
|
||||
#
|
||||
# ZZ_Copyright_BEGIN
|
||||
#
|
||||
#
|
||||
# Licensed Materials - Property of IBM
|
||||
#
|
||||
# IBM Linear Tape File System Single Drive Edition Version 2.2.0.2 for Linux and Mac OS X
|
||||
#
|
||||
# Copyright IBM Corp. 2010, 2014
|
||||
#
|
||||
# This file is part of the IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X
|
||||
# (formally known as IBM Linear Tape File System)
|
||||
#
|
||||
# The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is free software;
|
||||
# you can redistribute it and/or modify it under the terms of the GNU Lesser
|
||||
# General Public License as published by the Free Software Foundation,
|
||||
# version 2.1 of the License.
|
||||
#
|
||||
# The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is distributed in the
|
||||
# hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the GNU Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this library; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
# or download the license from <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
#
|
||||
# ZZ_Copyright_END
|
||||
#
|
||||
#
|
||||
# ltfs: IBM Linear Tape File System
|
||||
# This script ensures that all LTFS volumes are cleanly
|
||||
# unmounted before shutdown or reboot.
|
||||
#
|
||||
# chkconfig: 2345 24 76
|
||||
# description: Ensures that all LTFS volumes are unmounted before shutdown
|
||||
#
|
||||
### BEGIN INIT INFO
|
||||
# Provides: ltfs
|
||||
# Required-Start:
|
||||
# Required-Stop:
|
||||
# Default-Start: 2 3 4 5
|
||||
# Default-Stop: 0 1 6
|
||||
# Description: Ensure all LTFS volumes are unmounted cleanly
|
||||
### END INIT INFO
|
||||
|
||||
if [ -f /etc/init.d/functions ]; then
|
||||
. /etc/init.d/functions
|
||||
elif [ -f /etc/rc.status ]; then
|
||||
. /etc/rc.status
|
||||
rc_reset
|
||||
elif [ -f /lib/lsb/init-functions ]; then
|
||||
. /lib/lsb/init-functions
|
||||
fi
|
||||
|
||||
# Used to decide how to generate output
|
||||
fn_exists() {
|
||||
type -t $1 | grep -q 'function'
|
||||
}
|
||||
|
||||
# List mounted LTFS volumes. This does not always detect v1.00 mounts
|
||||
# because those sometimes have $1 == "fuse" and $3 == "fuse".
|
||||
LTFSMTAB=`LC_ALL=C awk 'match($1,/^ltfs:?/) && match($3,/^fuse/) { print $2 }' /proc/mounts`
|
||||
|
||||
# Time to wait, in units of 2 seconds (so 300 is 10 minutes)
|
||||
wait_time=300
|
||||
|
||||
wait_exit() {
|
||||
# Send SIGTERM to all ltfs processes
|
||||
ltfspid=`ls -l /proc/[0123456789]*/exe 2>/dev/null | grep '/ltfs\(\|-singledrive\|-library\)$' | awk 'BEGIN{FS="/"}{print $3}'`
|
||||
[ -z "$ltfspid" ] && return 0
|
||||
/bin/kill -TERM $ltfspid
|
||||
|
||||
# Wait for ltfs processes to exit
|
||||
counter=0
|
||||
while [ "$counter" -lt "$wait_time" ]; do
|
||||
procs=`ls -l /proc/[0123456789]*/exe 2>/dev/null | grep '/ltfs\(\|-singledrive\|-library\)$'`
|
||||
[ -z "$procs" ] && break
|
||||
counter=$(( $counter + 1 ))
|
||||
sleep 2
|
||||
done
|
||||
procs=`ls -l /proc/[0123456789]*/exe 2>/dev/null | grep '/ltfs\(\|-singledrive\|-library\)$'`
|
||||
[ -n "$procs" ] && return 1
|
||||
return 0
|
||||
}
|
||||
|
||||
stop() {
|
||||
fn_exists log_daemon_msg && log_daemon_msg "Unmounting LTFS file systems"
|
||||
fn_exists rc_status && echo -n "Unmounting LTFS file systems "
|
||||
|
||||
# Unmount all LTFS file systems
|
||||
if (fn_exists __umount_loop && [ -n "$LTFSMTAB" ]); then
|
||||
__umount_loop 'match($1,"ltfs:*") && $3 == "fuse" { print $2 }' \
|
||||
/proc/mounts \
|
||||
"Unmounting LTFS filesystems: " \
|
||||
"Unmounting LTFS filesystems (retry): " \
|
||||
"-f"
|
||||
fi
|
||||
|
||||
# Wait for all LTFS processes to complete
|
||||
if fn_exists action; then
|
||||
action "Waiting for LTFS processes to finish:" wait_exit
|
||||
else
|
||||
wait_exit
|
||||
fi
|
||||
rc=$?
|
||||
fn_exists log_end_msg && log_end_msg "$rc"
|
||||
rm -f /var/lock/subsys/ltfs
|
||||
return $rc
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
[ -d /var/lock/subsys ] && touch /var/lock/subsys/ltfs
|
||||
exit 0
|
||||
;;
|
||||
stop)
|
||||
if fn_exists rc_status; then
|
||||
stop
|
||||
rc_status -v
|
||||
rc_exit
|
||||
else
|
||||
stop
|
||||
exit $?
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 {start|stop}"
|
||||
exit 1
|
||||
esac
|
||||
126
ltfs/ltfs.spec
Normal file
126
ltfs/ltfs.spec
Normal file
@@ -0,0 +1,126 @@
|
||||
# RPM specification file for HPE SOS.
|
||||
Summary: HPE StoreOpen Software (HPE-SOS) - Version 3.4.2
|
||||
Name: HPE-SOS
|
||||
Version: 3.4.2
|
||||
Release: 9
|
||||
Group: Util
|
||||
License: LGPL
|
||||
Vendor: HPE
|
||||
Source0: HPE_LTFS_3.4.2_BUILD9
|
||||
Prereq: /sbin/ldconfig, /usr/bin/awk
|
||||
Requires: fuse >= 2.8.4
|
||||
Requires: libxml2 >= 2.6.16
|
||||
Requires: libicu >= 3.6
|
||||
Requires: e2fsprogs >= 1.36
|
||||
BuildRoot: /tmp/rpm/%{name}-%{version}
|
||||
|
||||
%define _unpackaged_files_terminate_build 0
|
||||
%define _sysconf /etc
|
||||
%define _prefix /usr/local
|
||||
%define _processname ltfs
|
||||
%define _mkltfsprocessname mkltfs
|
||||
%define _unltfsprocessname unltfs
|
||||
%define _ltfsckprocessname ltfsck
|
||||
%define __prelink_undo_cmd %{nil}
|
||||
#%undefine __prelink_undo_cmd
|
||||
#AutoReqProv: no
|
||||
|
||||
%description
|
||||
The HPE LTFS software application is an open-source tape file system
|
||||
implemented on dual partition tape drives.
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
echo $RPM_BUILD_ROOT
|
||||
|
||||
%build
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
#./configure
|
||||
./configure --prefix=%{_prefix} --libdir=%{_libdir}
|
||||
make
|
||||
|
||||
%pre
|
||||
LTFS_PID=`ps ax | grep -v grep | grep -v rpm | grep -E '(^|\s)%{_processname}($|\s)' | awk '{print $1}' | tr '\n' ' '`
|
||||
MKLTFS_PID=`ps ax | grep -v grep | grep -v rpm | grep -E '(^|\s)%{_mkltfsprocessname}($|\s)' | awk '{print $1}' | tr '\n' ' '`
|
||||
UNLTFS_PID=`ps ax | grep -v grep | grep -v rpm | grep -E '(^|\s)%{_unltfsprocessname}($|\s)' | awk '{print $1}' | tr '\n' ' '`
|
||||
LTFSCK_PID=`ps ax | grep -v grep | grep -v rpm | grep -E '(^|\s)%{_ltfsckprocessname}($|\s)' | awk '{print $1}' | tr '\n' ' '`
|
||||
if [ ! -z "$LTFS_PID" ] || [ ! -z "$MKLTFS_PID" ] || [ ! -z "$UNLTFS_PID" ] || [ ! -z "$LTFSCK_PID" ]; then
|
||||
echo
|
||||
echo "Error: please unmount all LTFS instances or utilities( PID: $LTFS_PID $MKLTFS_PID $UNLTFS_PID $LTFSCK_PID) before installing this RPM. Please refer the user guide for more information."
|
||||
echo
|
||||
exit 1
|
||||
fi
|
||||
|
||||
%preun
|
||||
LTFS_PID=`ps ax | grep -v grep | grep -v rpm | grep -E '(^|\s)%{_processname}($|\s)' | awk '{print $1}' | tr '\n' ' '`
|
||||
MKLTFS_PID=`ps ax | grep -v grep | grep -v rpm | grep -E '(^|\s)%{_mkltfsprocessname}($|\s)' | awk '{print $1}' | tr '\n' ' '`
|
||||
UNLTFS_PID=`ps ax | grep -v grep | grep -v rpm | grep -E '(^|\s)%{_unltfsprocessname}($|\s)' | awk '{print $1}' | tr '\n' ' '`
|
||||
LTFSCK_PID=`ps ax | grep -v grep | grep -v rpm | grep -E '(^|\s)%{_ltfsckprocessname}($|\s)' | awk '{print $1}' | tr '\n' ' '`
|
||||
if [ ! -z "$LTFS_PID" ] || [ ! -z "$MKLTFS_PID" ] || [ ! -z "$UNLTFS_PID" ] || [ ! -z "$LTFSCK_PID" ]; then
|
||||
echo
|
||||
echo "Error: please unmount all LTFS instances or utilities( PID: $LTFS_PID $MKLTFS_PID $UNLTFS_PID $LTFSCK_PID) before uninstalling this RPM. Please refer the user guide for more information."
|
||||
echo
|
||||
exit 1
|
||||
fi
|
||||
|
||||
%pretrans
|
||||
|
||||
%posttrans
|
||||
if [ -s /usr/local/lib/ltfs ] && [ %{_libdir} != "/usr/local/lib" ]
|
||||
then
|
||||
rm -rf /usr/local/lib/*ltfs*
|
||||
fi
|
||||
/sbin/ldconfig
|
||||
|
||||
%install
|
||||
[ -d $RPM_BUILD_ROOT ] && rm -rf $RPM_BUILD_ROOT;
|
||||
make sysconfdir=$RPM_BUILD_ROOT install DESTDIR=$RPM_BUILD_ROOT
|
||||
mkdir -p $RPM_BUILD_ROOT%{_prefix}%{_sysconf}
|
||||
mkdir -p $RPM_BUILD_ROOT%{_sysconf}/ld.so.conf.d
|
||||
cp $RPM_BUILD_ROOT/ltfs.conf.local $RPM_BUILD_ROOT%{_prefix}%{_sysconf}
|
||||
cp $RPM_BUILD_ROOT$RPM_BUILD_ROOT/ltfs.conf $RPM_BUILD_ROOT%{_prefix}%{_sysconf}
|
||||
# echo "/usr/local/lib" > $RPM_BUILD_ROOT%{_sysconf}/ld.so.conf.d/%{name}.conf
|
||||
# echo "/usr/local/lib64" >> $RPM_BUILD_ROOT%{_sysconf}/ld.so.conf.d/%{name}.conf
|
||||
echo "%{_libdir}" > $RPM_BUILD_ROOT%{_sysconf}/ld.so.conf.d/%{name}.conf
|
||||
cp %{_prefix}/bin/ltfscopy $RPM_BUILD_ROOT%{_prefix}/bin/
|
||||
cp %{_prefix}/bin/ltfslock $RPM_BUILD_ROOT%{_prefix}/bin/
|
||||
cp %{_prefix}/bin/latte $RPM_BUILD_ROOT%{_prefix}/bin/
|
||||
|
||||
%post
|
||||
/sbin/ldconfig
|
||||
|
||||
%postun
|
||||
/sbin/ldconfig
|
||||
|
||||
%clean
|
||||
[ -d $RPM_BUILD_ROOT ] && rm -rf $RPM_BUILD_ROOT;
|
||||
|
||||
%files
|
||||
%defattr(-,root,root)
|
||||
%{_prefix}/bin/ltfs
|
||||
%{_prefix}/bin/ltfsck
|
||||
%{_prefix}/bin/mkltfs
|
||||
%{_prefix}/bin/unltfs
|
||||
%{_prefix}/bin/ltfscopy
|
||||
%{_prefix}/bin/ltfslock
|
||||
%{_prefix}/bin/latte
|
||||
%{_libdir}/libltfs.a
|
||||
%{_libdir}/libltfs.la
|
||||
%{_libdir}/libltfs.so
|
||||
%{_libdir}/libltfs.so.0
|
||||
%{_libdir}/libltfs.so.0.0.0
|
||||
%{_libdir}/ltfs/libdriver-ltotape.so
|
||||
%{_libdir}/ltfs/libiosched-fcfs.so
|
||||
%{_libdir}/ltfs/libiosched-unified.so
|
||||
%{_libdir}/ltfs/libkmi-flatfile.so
|
||||
%{_libdir}/ltfs/libkmi-simple.so
|
||||
%{_prefix}/etc/ltfs.conf
|
||||
%{_prefix}/etc/ltfs.conf.local
|
||||
%config /etc/ld.so.conf.d/%{name}.conf
|
||||
|
||||
%changelog
|
||||
* Thu May 25 2017 Martind <martin.dyer@hpe.com>
|
||||
- update to 3.3.0
|
||||
|
||||
* Wed May 11 2015 Murali <murali.vuppalapati@hpe.com>
|
||||
- update to 3.2.0
|
||||
73
ltfs/messages/Makefile.am
Executable file
73
ltfs/messages/Makefile.am
Executable file
@@ -0,0 +1,73 @@
|
||||
##
|
||||
## %Z% %I% %W% %G% %U%
|
||||
##
|
||||
## ZZ_Copyright_BEGIN
|
||||
##
|
||||
##
|
||||
## Licensed Materials - Property of IBM
|
||||
##
|
||||
## IBM Linear Tape File System Single Drive Edition Version 2.2.0.2 for Linux and Mac OS X
|
||||
##
|
||||
## Copyright IBM Corp. 2010, 2014
|
||||
##
|
||||
## This file is part of the IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X
|
||||
## (formally known as IBM Linear Tape File System)
|
||||
##
|
||||
## The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is free software;
|
||||
## you can redistribute it and/or modify it under the terms of the GNU Lesser
|
||||
## General Public License as published by the Free Software Foundation,
|
||||
## version 2.1 of the License.
|
||||
##
|
||||
## The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is distributed in the
|
||||
## hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
|
||||
## implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
## See the GNU Lesser General Public License for more details.
|
||||
##
|
||||
## You should have received a copy of the GNU Lesser General Public
|
||||
## License along with this library; if not, write to the Free Software
|
||||
## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
## or download the license from <http://www.gnu.org/licenses/>.
|
||||
##
|
||||
##
|
||||
## ZZ_Copyright_END
|
||||
##
|
||||
######################################################################################
|
||||
##
|
||||
## COMPONENT NAME: IBM Linear Tape File System
|
||||
##
|
||||
## FILE NAME: Makefile.osx
|
||||
##
|
||||
## DESCRIPTION: Automake template for LTFS message libraries on Linux.
|
||||
##
|
||||
## AUTHOR: Brian Biskeborn
|
||||
## IBM Almaden Research Center
|
||||
## bbiskebo@us.ibm.com
|
||||
##
|
||||
######################################################################################
|
||||
##
|
||||
## (C) Copyright 2015, 2016 Hewlett Packard Enterprise Development LP
|
||||
##
|
||||
## 10/08/10 Add ltotape to list of RESOURCES
|
||||
##
|
||||
######################################################################################
|
||||
|
||||
RESOURCES = \
|
||||
bin_mkltfs_dat.o \
|
||||
bin_ltfsck_dat.o \
|
||||
bin_ltfs_dat.o \
|
||||
kmi_simple_dat.o \
|
||||
kmi_flatfile_dat.o \
|
||||
driver_ltotape_dat.o \
|
||||
iosched_fcfs_dat.o \
|
||||
iosched_unified_dat.o \
|
||||
libltfs_dat.o \
|
||||
internal_error_dat.o
|
||||
|
||||
.PHONY: all $(RESOURCES) clean-local
|
||||
all: $(RESOURCES)
|
||||
|
||||
$(RESOURCES):
|
||||
@./make_message_src.sh $@
|
||||
|
||||
clean-local:
|
||||
rm -rf $(RESOURCES) */work
|
||||
80
ltfs/messages/Makefile.am_Windows
Normal file
80
ltfs/messages/Makefile.am_Windows
Normal file
@@ -0,0 +1,80 @@
|
||||
##
|
||||
## %Z% %I% %W% %G% %U%
|
||||
##
|
||||
## ZZ_Copyright_BEGIN
|
||||
##
|
||||
##
|
||||
## Licensed Materials - Property of IBM
|
||||
##
|
||||
## IBM Linear Tape File System Single Drive Edition Version 2.2.0.2 for Linux and Mac OS X
|
||||
##
|
||||
## Copyright IBM Corp. 2010, 2014
|
||||
##
|
||||
## This file is part of the IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X
|
||||
## (formally known as IBM Linear Tape File System)
|
||||
##
|
||||
## The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is free software;
|
||||
## you can redistribute it and/or modify it under the terms of the GNU Lesser
|
||||
## General Public License as published by the Free Software Foundation,
|
||||
## version 2.1 of the License.
|
||||
##
|
||||
## The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is distributed in the
|
||||
## hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
|
||||
## implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
## See the GNU Lesser General Public License for more details.
|
||||
##
|
||||
## You should have received a copy of the GNU Lesser General Public
|
||||
## License along with this library; if not, write to the Free Software
|
||||
## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
## or download the license from <http://www.gnu.org/licenses/>.
|
||||
##
|
||||
##
|
||||
## ZZ_Copyright_END
|
||||
##
|
||||
######################################################################################
|
||||
##
|
||||
## COMPONENT NAME: IBM Linear Tape File System
|
||||
##
|
||||
## FILE NAME: Makefile.osx
|
||||
##
|
||||
## DESCRIPTION: Automake template for LTFS message libraries on Linux.
|
||||
##
|
||||
## AUTHOR: Brian Biskeborn
|
||||
## IBM Almaden Research Center
|
||||
## bbiskebo@us.ibm.com
|
||||
##
|
||||
######################################################################################
|
||||
##
|
||||
## (C) Copyright 2015, 2016 Hewlett Packard Enterprise Development LP
|
||||
##
|
||||
## 10/08/10 Add ltotape to list of RESOURCES
|
||||
##
|
||||
######################################################################################
|
||||
|
||||
##
|
||||
## OSR/HPE_mingw_BUILD
|
||||
##
|
||||
## Object file name must be changed from libltfs_dat to bin_libltfs_dat. This is
|
||||
## part of changing the package name from libltfs to bin_libltfs to avoid collision
|
||||
## with libltfs.dll, which is the name of the LTFS library code
|
||||
##
|
||||
RESOURCES = \
|
||||
bin_mkltfs_dat.o \
|
||||
bin_ltfsck_dat.o \
|
||||
bin_ltfs_dat.o \
|
||||
kmi_simple_dat.o \
|
||||
kmi_flatfile_dat.o \
|
||||
driver_ltotape_dat.o \
|
||||
iosched_fcfs_dat.o \
|
||||
iosched_unified_dat.o \
|
||||
bin_libltfs_dat.o \
|
||||
internal_error_dat.o
|
||||
|
||||
.PHONY: all $(RESOURCES) clean-local
|
||||
all: $(RESOURCES)
|
||||
|
||||
$(RESOURCES):
|
||||
@./make_message_src.sh $@
|
||||
|
||||
clean-local:
|
||||
rm -rf $(RESOURCES) */work
|
||||
395
ltfs/messages/Makefile.in
Normal file
395
ltfs/messages/Makefile.in
Normal file
@@ -0,0 +1,395 @@
|
||||
# Makefile.in generated by automake 1.11.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
|
||||
# Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
######################################################################################
|
||||
######################################################################################
|
||||
######################################################################################
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkglibexecdir = $(libexecdir)/@PACKAGE@
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
target_triplet = @target@
|
||||
subdir = messages
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMTAR = @AMTAR@
|
||||
AM_CFLAGS = @AM_CFLAGS@
|
||||
AM_CPPFLAGS = @AM_CPPFLAGS@
|
||||
AM_LDFLAGS = @AM_LDFLAGS@
|
||||
AR = @AR@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CRC_OPTIMIZE = @CRC_OPTIMIZE@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFAULT_DRIVER = @DEFAULT_DRIVER@
|
||||
DEFAULT_IOSCHED = @DEFAULT_IOSCHED@
|
||||
DEFAULT_KMI = @DEFAULT_KMI@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DSYMUTIL = @DSYMUTIL@
|
||||
DUMPBIN = @DUMPBIN@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
FGREP = @FGREP@
|
||||
FUSE_MODULE_CFLAGS = @FUSE_MODULE_CFLAGS@
|
||||
FUSE_MODULE_LIBS = @FUSE_MODULE_LIBS@
|
||||
GENRB = @GENRB@
|
||||
GREP = @GREP@
|
||||
ICU_MODULE_CFLAGS = @ICU_MODULE_CFLAGS@
|
||||
ICU_MODULE_LIBS = @ICU_MODULE_LIBS@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LIBXML2_MODULE_CFLAGS = @LIBXML2_MODULE_CFLAGS@
|
||||
LIBXML2_MODULE_LIBS = @LIBXML2_MODULE_LIBS@
|
||||
LIPO = @LIPO@
|
||||
LN_S = @LN_S@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
NM = @NM@
|
||||
NMEDIT = @NMEDIT@
|
||||
OBJDUMP = @OBJDUMP@
|
||||
OBJEXT = @OBJEXT@
|
||||
OTOOL = @OTOOL@
|
||||
OTOOL64 = @OTOOL64@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PKGDATA = @PKGDATA@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
RANLIB = @RANLIB@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
STRIP = @STRIP@
|
||||
UUID_MODULE_CFLAGS = @UUID_MODULE_CFLAGS@
|
||||
UUID_MODULE_LIBS = @UUID_MODULE_LIBS@
|
||||
VERSION = @VERSION@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
build = @build@
|
||||
build_alias = @build_alias@
|
||||
build_cpu = @build_cpu@
|
||||
build_os = @build_os@
|
||||
build_vendor = @build_vendor@
|
||||
builddir = @builddir@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host = @host@
|
||||
host_alias = @host_alias@
|
||||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
htmldir = @htmldir@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
localedir = @localedir@
|
||||
localstatedir = @localstatedir@
|
||||
lt_ECHO = @lt_ECHO@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
oldincludedir = @oldincludedir@
|
||||
pdfdir = @pdfdir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target = @target@
|
||||
target_alias = @target_alias@
|
||||
target_cpu = @target_cpu@
|
||||
target_os = @target_os@
|
||||
target_vendor = @target_vendor@
|
||||
top_build_prefix = @top_build_prefix@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
RESOURCES = \
|
||||
bin_mkltfs_dat.o \
|
||||
bin_ltfsck_dat.o \
|
||||
bin_ltfs_dat.o \
|
||||
kmi_simple_dat.o \
|
||||
kmi_flatfile_dat.o \
|
||||
driver_ltotape_dat.o \
|
||||
iosched_fcfs_dat.o \
|
||||
iosched_unified_dat.o \
|
||||
libltfs_dat.o \
|
||||
internal_error_dat.o
|
||||
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
|
||||
&& { if test -f $@; then exit 0; else break; fi; }; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign messages/Makefile'; \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign messages/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
$(top_srcdir)/configure: $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(am__aclocal_m4_deps):
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
tags: TAGS
|
||||
TAGS:
|
||||
|
||||
ctags: CTAGS
|
||||
CTAGS:
|
||||
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
dist_files=`for file in $$list; do echo $$file; done | \
|
||||
sed -e "s|^$$srcdirstrip/||;t" \
|
||||
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||
case $$dist_files in \
|
||||
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||
sort -u` ;; \
|
||||
esac; \
|
||||
for file in $$dist_files; do \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d "$(distdir)/$$file"; then \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
||||
else \
|
||||
test -f "$(distdir)/$$file" \
|
||||
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
check-am: all-am
|
||||
check: check-am
|
||||
all-am: Makefile
|
||||
installdirs:
|
||||
install: install-am
|
||||
install-exec: install-exec-am
|
||||
install-data: install-data-am
|
||||
uninstall: uninstall-am
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
|
||||
installcheck: installcheck-am
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
clean: clean-am
|
||||
|
||||
clean-am: clean-generic clean-libtool clean-local mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-generic
|
||||
|
||||
dvi: dvi-am
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
html-am:
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am:
|
||||
|
||||
install-dvi: install-dvi-am
|
||||
|
||||
install-dvi-am:
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-html: install-html-am
|
||||
|
||||
install-html-am:
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-info-am:
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-am
|
||||
|
||||
install-pdf-am:
|
||||
|
||||
install-ps: install-ps-am
|
||||
|
||||
install-ps-am:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-am
|
||||
|
||||
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
|
||||
|
||||
pdf: pdf-am
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-am
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am:
|
||||
|
||||
.MAKE: install-am install-strip
|
||||
|
||||
.PHONY: all all-am check check-am clean clean-generic clean-libtool \
|
||||
clean-local distclean distclean-generic distclean-libtool \
|
||||
distdir dvi dvi-am html html-am info info-am install \
|
||||
install-am install-data install-data-am install-dvi \
|
||||
install-dvi-am install-exec install-exec-am install-html \
|
||||
install-html-am install-info install-info-am install-man \
|
||||
install-pdf install-pdf-am install-ps install-ps-am \
|
||||
install-strip installcheck installcheck-am installdirs \
|
||||
maintainer-clean maintainer-clean-generic mostlyclean \
|
||||
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
|
||||
uninstall uninstall-am
|
||||
|
||||
|
||||
.PHONY: all $(RESOURCES) clean-local
|
||||
all: $(RESOURCES)
|
||||
|
||||
$(RESOURCES):
|
||||
@./make_message_src.sh $@
|
||||
|
||||
clean-local:
|
||||
rm -rf $(RESOURCES) */work
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
||||
69
ltfs/messages/Makefile.osx
Executable file
69
ltfs/messages/Makefile.osx
Executable file
@@ -0,0 +1,69 @@
|
||||
##
|
||||
## %Z% %I% %W% %G% %U%
|
||||
##
|
||||
## ZZ_Copyright_BEGIN
|
||||
##
|
||||
##
|
||||
## Licensed Materials - Property of IBM
|
||||
##
|
||||
## IBM Linear Tape File System Single Drive Edition Version 2.2.0.2 for Linux and Mac OS X
|
||||
##
|
||||
## Copyright IBM Corp. 2010, 2014
|
||||
##
|
||||
## This file is part of the IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X
|
||||
## (formally known as IBM Linear Tape File System)
|
||||
##
|
||||
## The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is free software;
|
||||
## you can redistribute it and/or modify it under the terms of the GNU Lesser
|
||||
## General Public License as published by the Free Software Foundation,
|
||||
## version 2.1 of the License.
|
||||
##
|
||||
## The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is distributed in the
|
||||
## hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
|
||||
## implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
## See the GNU Lesser General Public License for more details.
|
||||
##
|
||||
## You should have received a copy of the GNU Lesser General Public
|
||||
## License along with this library; if not, write to the Free Software
|
||||
## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
## or download the license from <http://www.gnu.org/licenses/>.
|
||||
##
|
||||
##
|
||||
## ZZ_Copyright_END
|
||||
##
|
||||
######################################################################################
|
||||
##
|
||||
## COMPONENT NAME: IBM Linear Tape File System
|
||||
##
|
||||
## FILE NAME: Makefile.osx
|
||||
##
|
||||
## DESCRIPTION: Makefile for LTFS message library on OS X.
|
||||
##
|
||||
## AUTHOR: Michael A. Richmond
|
||||
## IBM Almaden Research Center
|
||||
## mar@almaden.ibm.com
|
||||
##
|
||||
######################################################################################
|
||||
##
|
||||
## (C) Copyright 2015, 2016 Hewlett Packard Enterprise Development LP
|
||||
##
|
||||
## 10/08/10 Add ltotape to list of RESOURCES
|
||||
##
|
||||
######################################################################################
|
||||
|
||||
RESOURCES=libltfs_dat.o \
|
||||
driver_generic_file_dat.o driver_osx_iokit_dat.o \
|
||||
driver_ltotape_dat.o \
|
||||
iosched_fcfs_dat.o iosched_unified_dat.o \
|
||||
bin_mkltfs_dat.o bin_ltfs_dat.o bin_ltfsck_dat.o \
|
||||
internal_error_dat.o \
|
||||
kmi_simple_dat.o kmi_flatfile_dat.o
|
||||
|
||||
.PHONY: all $(RESOURCES) clean-local
|
||||
all: $(RESOURCES)
|
||||
|
||||
$(RESOURCES):
|
||||
@./make_message_src.sh $@
|
||||
|
||||
clean-local:
|
||||
rm -rf $(RESOURCES) */work
|
||||
38
ltfs/messages/bin_libltfs/en.txt
Normal file
38
ltfs/messages/bin_libltfs/en.txt
Normal file
@@ -0,0 +1,38 @@
|
||||
//
|
||||
// %Z% %I% %W% %G% %U%
|
||||
//
|
||||
// ZZ_Copyright_BEGIN
|
||||
//
|
||||
//
|
||||
// Licensed Materials - Property of IBM
|
||||
//
|
||||
// IBM Linear Tape File System Single Drive Edition Version 1.3.0.0 for Linux and Mac OS X
|
||||
//
|
||||
// Copyright IBM Corp. 2010, 2012
|
||||
//
|
||||
// This file is part of the IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X
|
||||
// (formally known as IBM Linear Tape File System)
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is free software;
|
||||
// you can redistribute it and/or modify it under the terms of the GNU Lesser
|
||||
// General Public License as published by the Free Software Foundation,
|
||||
// version 2.1 of the License.
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is distributed in the
|
||||
// hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
|
||||
// implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
// See the GNU Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
// or download the license from <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
//
|
||||
// ZZ_Copyright_END
|
||||
//
|
||||
|
||||
en:table {
|
||||
// This resource intentionally left blank.
|
||||
}
|
||||
|
||||
38
ltfs/messages/bin_libltfs/en_US.txt
Normal file
38
ltfs/messages/bin_libltfs/en_US.txt
Normal file
@@ -0,0 +1,38 @@
|
||||
//
|
||||
// %Z% %I% %W% %G% %U%
|
||||
//
|
||||
// ZZ_Copyright_BEGIN
|
||||
//
|
||||
//
|
||||
// Licensed Materials - Property of IBM
|
||||
//
|
||||
// IBM Linear Tape File System Single Drive Edition Version 1.3.0.0 for Linux and Mac OS X
|
||||
//
|
||||
// Copyright IBM Corp. 2010, 2012
|
||||
//
|
||||
// This file is part of the IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X
|
||||
// (formally known as IBM Linear Tape File System)
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is free software;
|
||||
// you can redistribute it and/or modify it under the terms of the GNU Lesser
|
||||
// General Public License as published by the Free Software Foundation,
|
||||
// version 2.1 of the License.
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is distributed in the
|
||||
// hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
|
||||
// implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
// See the GNU Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
// or download the license from <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
//
|
||||
// ZZ_Copyright_END
|
||||
//
|
||||
|
||||
en_US:table {
|
||||
// This resource intentionally left blank.
|
||||
}
|
||||
|
||||
777
ltfs/messages/bin_libltfs/root.txt
Normal file
777
ltfs/messages/bin_libltfs/root.txt
Normal file
@@ -0,0 +1,777 @@
|
||||
//
|
||||
// %Z% %I% %W% %G% %U%
|
||||
//
|
||||
// ZZ_Copyright_BEGIN
|
||||
//
|
||||
//
|
||||
// Licensed Materials - Property of IBM
|
||||
//
|
||||
// IBM Linear Tape File System Single Drive Edition Version 1.3.0.0 for Linux and Mac OS X
|
||||
//
|
||||
// Copyright IBM Corp. 2010, 2012
|
||||
//
|
||||
// This file is part of the IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X
|
||||
// (formally known as IBM Linear Tape File System)
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is free software;
|
||||
// you can redistribute it and/or modify it under the terms of the GNU Lesser
|
||||
// General Public License as published by the Free Software Foundation,
|
||||
// version 2.1 of the License.
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is distributed in the
|
||||
// hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
|
||||
// implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
// See the GNU Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
// or download the license from <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
// ZZ_Copyright_END
|
||||
//
|
||||
// (C) Copyright 2015-2017 Hewlett Packard Enterprise Development LP
|
||||
//
|
||||
// 10/13/2017 Added extra messages to support SNIA 2.4
|
||||
//
|
||||
|
||||
|
||||
root:table {
|
||||
// Fallback messages. These messages do not have unique IDs; they are printed when
|
||||
// the message function receives an unrecognized unique ID or fails to
|
||||
// generate a message for a known unique ID.
|
||||
// These messages are accessed by key, not by index: so they may be
|
||||
// reordered, but they should not be renamed.
|
||||
fallback_messages:table {
|
||||
notfound:string { "(no message found)" }
|
||||
overflow:string { "(message too long)" }
|
||||
}
|
||||
|
||||
// Message list for libltfs.
|
||||
// Notes:
|
||||
// - Message IDs less than 10000 are not officially supported. A few are listed here
|
||||
// for legacy reasons. DO NOT add new ones.
|
||||
// - Message IDs from 10000 to 10099 are generic messages which may be used outside libltfs.
|
||||
// - Other messages listed here should not be used outside libltfs.
|
||||
messages:table {
|
||||
start_id:int { 9000 }
|
||||
end_id:int { 19999 }
|
||||
|
||||
// Messages with IDs less than 10000. These are here for legacy reasons only.
|
||||
// DO NOT add new messages with IDs less than 10000.
|
||||
9001E:string { "Failed to parse command line options" }
|
||||
9006E:string { "Cannot load resource \"fallback_messages\" (ures_getByKey: %d)" }
|
||||
9008E:string { "Cannot open output converter (ucnv_open: %d)" }
|
||||
9010E:string { "Invalid option \'%s\'" }
|
||||
9011E:string { "Logging initialization failed" }
|
||||
9012E:string { "Cannot specify \"--quiet\" with \"--trace\" or \"--fulltrace\"" }
|
||||
9013E:string { "Cannot specify \"--quiet\" with \"--trace\" or \"--fulltrace\"" }
|
||||
9014E:string { "Cannot create work directory \'%s\': %s" }
|
||||
9015W:string { "Setting the locale to 'en_US.UTF-8'. If this setting is wrong, set the LANG environment variable before starting %s." }
|
||||
9016E:string { "Cannot set the LANG environment variable" }
|
||||
|
||||
// Generic messages (IDs 10000 through 10099).
|
||||
// These may be used in multiple components.
|
||||
10000E:string { "Failed to initialize libltfs (%d)" }
|
||||
10001E:string { "Memory allocation failed (%s)" }
|
||||
10002E:string { "Cannot initialize mutex (%d)" }
|
||||
10003E:string { "Cannot initialize condition variable (%d)" }
|
||||
10004E:string { "Cannot open device \'%s\'" }
|
||||
10005E:string { "Null argument (%s) to %s" }
|
||||
10006W:string { "Null argument (%s) to %s" }
|
||||
10007E:string { "Not yet implemented (%s)" }
|
||||
10008E:string { "Failed to load the configuration file (%d)" }
|
||||
10009E:string { "No driver plug-in specified and no default found" }
|
||||
//unused 10010E:string { "Cannot initialize plugin: failed to load messages (%d)" }
|
||||
//unused 10011E:string { "Failed to load message data for %s" }
|
||||
10012E:string { "Failed to register messages with libltfs (%d)" }
|
||||
10013E:string { "Failed to set up signal handler" }
|
||||
10014E:string { "Failed to clean up signal handler" }
|
||||
//unused 10015E:string { "Failed to get shared memory (%d)" }
|
||||
//unused 10016E:string { "Failed to attach shared memory (%d)" }
|
||||
//unused 10017E:string { "Failed to set mutex attribute as shared (%d)" }
|
||||
10018E:string { "No key manager interface plug-in specified and no default found (%s, %d, %d)" }
|
||||
|
||||
11000E:string { "Cannot instantiate LTFS volume: failed to allocate device data" }
|
||||
11001E:string { "Cannot instantiate LTFS volume: failed to allocate label data" }
|
||||
11002E:string { "Cannot instantiate LTFS volume: failed to allocate index data" }
|
||||
11003E:string { "Cannot retrieve device capacity data (%d)" }
|
||||
11004E:string { "Cannot take the device lock (%s)" }
|
||||
11005I:string { "Mounting the volume" }
|
||||
11006E:string { "Cannot read volume: failed to load the tape" }
|
||||
11007D:string { "Tape is loaded" }
|
||||
11008D:string { "Reading partition labels" }
|
||||
11009E:string { "Cannot read volume: failed to read partition labels." }
|
||||
11010E:string { "Cannot read volume: failed to set medium compression." }
|
||||
11011E:string { "Cannot read volume: block size is %lu, but the device only supports a block size of %u" }
|
||||
11012D:string { "Loading the tape" }
|
||||
11013D:string { "Partition labels are valid" }
|
||||
11014D:string { "Reading MAM parameters" }
|
||||
11015W:string { "VCR MAM parameter is not usable. Mounting will take longer." }
|
||||
11016W:string { "The index partition MAM parameter is not usable. Mounting will take longer." }
|
||||
11017W:string { "The data partition MAM parameter is not usable. Mounting will take longer." }
|
||||
11018D:string { "Done reading MAM parameters" }
|
||||
11019D:string { "Checking volume consistency" }
|
||||
11020E:string { "Cannot mount volume: seek to index failed on the data partition" }
|
||||
11021E:string { "Cannot mount volume: read index failed on the data partition" }
|
||||
11022I:string { "Restoring volume consistency by writing an index to the index partition" }
|
||||
11023E:string { "Cannot mount volume: seek to index failed on the index partition" }
|
||||
11024E:string { "Cannot mount volume: read index failed on the index partition" }
|
||||
11025D:string { "Volume is consistent" }
|
||||
11026I:string { "Performing a full medium consistency check" }
|
||||
11027E:string { "Cannot mount volume: medium consistency check failed" }
|
||||
11028D:string { "Consistency check finished" }
|
||||
11029E:string { "Cannot mount volume: failed to save the append position for the index partition." }
|
||||
//unused 11030E:string { "Cannot release the device lock (%s)" }
|
||||
//unused 11031D:string { "Volume mounted successfully" }
|
||||
11032D:string { "Unmounting the volume" }
|
||||
11033E:string { "Cannot unmount: failed to write an index" }
|
||||
11034I:string { "Volume unmounted successfully" }
|
||||
//unused 11035D:string { "Medium is write protected" }
|
||||
//unused 11036D:string { "Medium is writeable" }
|
||||
//unused 11037E:string { "Cannot get attributes: failed to format the path (%d)" }
|
||||
//unused 11038E:string { "Cannot get attributes: path lookup failed (%d)" }
|
||||
11039E:string { "Cannot open file: failed to format the path (%d)" }
|
||||
11040E:string { "Cannot open file: path lookup failed (%d)" }
|
||||
//unused 11041E:string { "Cannot set times: failed to format the path (%d)" }
|
||||
//unused 11042E:string { "Cannot set times: path lookup failed (%d)" }
|
||||
//unused 11043E:string { "Cannot set read-only flag: failed to format the path (%d)" }
|
||||
//unused 11044E:string { "Cannot set read-only flag: path lookup failed (%d)" }
|
||||
11045E:string { "Cannot set times: device is not ready" }
|
||||
11046E:string { "Cannot set read-only flag: device is not ready" }
|
||||
11047E:string { "Cannot create: device is not ready" }
|
||||
11048E:string { "Cannot create: failed to format the path (%d)" }
|
||||
11049E:string { "Cannot create: path lookup failed (%d)" }
|
||||
11050E:string { "Cannot unlink: device is not ready" }
|
||||
11051E:string { "Cannot unlink: failed to format the path (%d)" }
|
||||
11052E:string { "Cannot unlink: path lookup failed (%d)" }
|
||||
11053E:string { "Cannot rename: device is not ready" }
|
||||
11054E:string { "Cannot rename: failed to format the source path (%d)" }
|
||||
11055E:string { "Cannot rename: failed to format the destination path (%d)" }
|
||||
11056E:string { "Cannot rename: path lookup failed for source (%d)" }
|
||||
11057E:string { "Cannot rename: path lookup failed for destination (%d)" }
|
||||
//unused 11058E:string { "Cannot rename: unable to overwrite destination (%d)" }
|
||||
11059E:string { "Cannot truncate: length must not be negative" }
|
||||
//unused 11060E:string { "Cannot truncate: failed to format the path (%d)" }
|
||||
//unused 11061E:string { "Cannot truncate: path lookup failed (%d)" }
|
||||
11062E:string { "Cannot truncate: device is not ready" }
|
||||
//unused 11063E:string { "Cannot truncate: failed to write an index while switching partitions (%d)" }
|
||||
//unused 11064E:string { "Cannot truncate: failed to write zero bytes to the medium (%d)" }
|
||||
//unused 11065E:string { "Cannot truncate: failed to update the extent list (%d)" }
|
||||
//unused 11066E:string { "Cannot save extent: offset is greater than the file size" }
|
||||
11067E:string { "Cannot write blocks: invalid partition identifier" }
|
||||
11068E:string { "Cannot write blocks: multiple repetitions specified with an irregular buffer size" }
|
||||
11069E:string { "Cannot write blocks: failed to write an index while switching partitions (%d)" }
|
||||
11070E:string { "Cannot write blocks: locate append position failed on partition %c" }
|
||||
11071E:string { "Cannot write blocks: failed to determine medium position (%d)" }
|
||||
11072E:string { "Cannot write blocks: failed to write to the medium (%d)" }
|
||||
//unused 11073E:string { "Cannot write blocks: write to medium returned %zd, expected %u" }
|
||||
//unused 11074E:string { "Cannot write: invalid partition identifier" }
|
||||
//unused 11075E:string { "Cannot write: failed to write an index while switching partitions (%d)" }
|
||||
//unused 11076E:string { "Cannot write: failed to extend the file with zeros (%d)" }
|
||||
11077E:string { "Cannot write: failed to write blocks to the medium (%d)" }
|
||||
//unused 11078E:string { "Cannot write: failed to update extent list (%d)" }
|
||||
//unused 11079E:string { "Cannot write index to index partition: failed to write index to data partition" }
|
||||
11080E:string { "Cannot write index: failed to locate append position on partition %c (%d)" }
|
||||
11081E:string { "Cannot write index: failed to determine medium position (%d)" }
|
||||
11082E:string { "Cannot write index: failed to write file mark (%d)" }
|
||||
11083E:string { "Cannot write index: failed to generate and write XML data (%d). The medium might be in an inconsistent state; unmount and run ltfsck." }
|
||||
11084E:string { "Cannot write index: failed to write a trailing file mark (%d). The medium is in an inconsistent state; unmount and run ltfsck." }
|
||||
11085E:string { "Cannot read: failed to determine medium position (%d)" }
|
||||
11086E:string { "Cannot read: failed to locate (%d) to partition %c, record %llu" }
|
||||
11087E:string { "Cannot read: expected %u bytes from cache, but received %lu bytes" }
|
||||
11088E:string { "Cannot read: failed to get a block from the medium (%d)" }
|
||||
11089E:string { "Cannot read: expected %u bytes from the medium, but received %zd bytes" }
|
||||
11090W:string { "Data partition identifier requested on an uninitialized volume" }
|
||||
11091W:string { "Index partition identifier requested on an uninitialized volume" }
|
||||
//unused 11092I:string { "Loading the medium" }
|
||||
11093E:string { "Cannot format: failed to load the medium (%d)" }
|
||||
//unused 11094I:string { "Medium is loaded" }
|
||||
11095E:string { "Cannot format: the medium is write protected" }
|
||||
11096E:string { "Cannot format: requested block size is %lu bytes, but the device only supports %u" }
|
||||
11097I:string { "Partitioning the medium" }
|
||||
11098E:string { "Cannot format: failed to partition the medium (%d)" }
|
||||
11099E:string { "Cannot format: failed to set the medium compression (%d)" }
|
||||
|
||||
11100I:string { "Writing label to partition %c" }
|
||||
11101E:string { "Cannot format: failed to locate (%d) to partition %u, block 0" }
|
||||
11102E:string { "Cannot format: failed to write ANSI label (%d) on partition %u" }
|
||||
//unused 11103E:string { "Cannot format: failed to write ANSI label on partition %u (expected %u, received %zd)" }
|
||||
11104E:string { "Cannot format: failed to write file mark after ANSI label (%d) on partition %u" }
|
||||
11105E:string { "Cannot format: failed to generate LTFS label" }
|
||||
11106E:string { "Cannot format: failed to write XML label (%d) on partition %u" }
|
||||
//unused 11107E:string { "Cannot format: failed to write XML label on partition %u (expected %u, received %zd)" }
|
||||
11108E:string { "Cannot format: failed to write file mark after XML label (%d) on partition %u" }
|
||||
//unused 11109E:string { "Cannot format: failed to generate empty Index data structure (%d)" }
|
||||
11110E:string { "Cannot get current time (%d)" }
|
||||
11111E:string { "Base64 decoder: empty input" }
|
||||
11112E:string { "Base64 decoder: invalid character in the input" }
|
||||
11113E:string { "Base64 decoder: input length is not a multiple of 4" }
|
||||
11114E:string { "Cache manager: failed to initialize the pool" }
|
||||
11115W:string { "Cache manager: failed to fully expand the pool" }
|
||||
11116E:string { "Cache manager: failed to grow the pool" }
|
||||
11117E:string { "Cannot set extended attribute: device is not ready" }
|
||||
11118E:string { "Cannot set extended attribute: failed to format the path (%d)" }
|
||||
11119E:string { "Cannot set extended attribute: failed to format the name (%d)" }
|
||||
11120E:string { "Cannot set extended attribute: failed to validate the name (%d)" }
|
||||
11121E:string { "Cannot set extended attribute: failed to look up the path (%d)" }
|
||||
11122E:string { "Cannot set extended attribute: failed to look up the xattr (%d)" }
|
||||
11123E:string { "Cannot get extended attribute: NULL value with non-zero size" }
|
||||
11124E:string { "Cannot get extended attribute: failed to format the path (%d)" }
|
||||
11125E:string { "Cannot get extended attribute: failed to format the name (%d)" }
|
||||
11126E:string { "Cannot get extended attribute: failed to validate the name (%d)" }
|
||||
11127E:string { "Cannot get extended attribute: failed to look up the path (%d)" }
|
||||
11128E:string { "Cannot get extended attribute: failed to look for virtual xattrs (%d)" }
|
||||
11129E:string { "Cannot get extended attribute: failed to look up the xattr (%d)" }
|
||||
11130E:string { "Cannot list extended attributes: NULL output buffer with a non-zero size" }
|
||||
11131E:string { "Cannot list extended attributes: failed to format the path (%d)" }
|
||||
11132E:string { "Cannot list extended attributes: failed to look up the path (%d)" }
|
||||
11133E:string { "Cannot list extended attributes: failed to list real xattrs (%d)" }
|
||||
//unused 11134E
|
||||
11135E:string { "Cannot remove extended attribute: device is not ready" }
|
||||
11136E:string { "Cannot remove extended attribute: failed to format the path (%d)" }
|
||||
11137E:string { "Cannot remove extended attribute: failed to format the name (%d)" }
|
||||
11138E:string { "Cannot remove extended attribute: failed to validate the name (%d)" }
|
||||
11139E:string { "Cannot remove extended attribute: failed to look up the path (%d)" }
|
||||
11140E:string { "Cannot remove extended attribute: failed to look up the xattr (%d)" }
|
||||
11141E:string { "Cannot list physical xattrs: failed to generate namespace prefix (%d)" }
|
||||
11142E:string { "Cannot list physical xattrs: failed to convert key to system locale (%d)" }
|
||||
//unused 11143E
|
||||
//unused 11144E:string { "Cannot list physical xattrs: failed to convert key to system locale (%d)" }
|
||||
11145E:string { "Cannot get attribute %s: failed to generate the time string" }
|
||||
11146E:string { "Invalid index criteria option \'%s\'" }
|
||||
11147E:string { "Duplicate index criteria option \'%s\'" }
|
||||
11148E:string { "More than one non-numeric character follows the size criterion" }
|
||||
11149E:string { "Invalid size criterion multiplier \'%c\'" }
|
||||
11150E:string { "Size= rule must contain a valid size" }
|
||||
11151E:string { "Size= rule must contain a digit" }
|
||||
11152E:string { "Cannot parse index criteria: rules are invalid" }
|
||||
11153E:string { "Cannot parse index criteria: failed to parse name rule (%d)" }
|
||||
11154E:string { "Cannot parse index criteria: error while seeking name rule" }
|
||||
11155E:string { "Cannot parse index criteria: failed to parse size rule (%d)" }
|
||||
11156E:string { "Cannot parse index criteria: error while seeking size rule" }
|
||||
11157E:string { "Cannot specify a name rule without a size rule" }
|
||||
11158E:string { "Cannot match name: failed to initialize glob cache (%d)" }
|
||||
11159E:string { "Cannot match name: failed to prepare for caseless matching (%d)" }
|
||||
11160E:string { "Cannot prepare glob cache: failed to prepare name for caseless matching (%d)" }
|
||||
11161E:string { "Cannot match name: match function failed (%d)" }
|
||||
11162E:string { "Cannot perform matching: failed to open text boundary iterator for criteria (%d)" }
|
||||
11163E:string { "Cannot perform matching: failed to open text boundary iterator for filename (%d)" }
|
||||
11164E:string { "Failed to push file name onto a null stack pointer" }
|
||||
11165E:string { "Failed to pop a file name from a null stack pointer" }
|
||||
11166E:string { "Cannot allocate index data: failed to initialize mutex (%d)" }
|
||||
11167E:string { "Cannot create file or directory: failed to allocate dentry" }
|
||||
11168E:string { "Cannot allocate index data: failed to allocate root dentry" }
|
||||
11169E:string { "Cannot read labels: failed to allocate label data (%d)" }
|
||||
11170E:string { "Failed to read label (%d) from partition 0" }
|
||||
11171E:string { "Failed to read label (%d) from partition 1" }
|
||||
11172E:string { "Cannot verify labels: comparison failed (%d)" }
|
||||
11173E:string { "Cannot read label (%d): failed to seek to block 0 (partition %lu)" }
|
||||
11174E:string { "Cannot read ANSI label: read failed (%d)" }
|
||||
11175E:string { "Cannot read ANSI label: expected 80 bytes, but received %d" }
|
||||
11176E:string { "ANSI label indicates this is not an LTFS volume" }
|
||||
//unused 11177E:string { "Cannot read LTFS label: failed to space forward 1 file mark (%d)" }
|
||||
11178E:string { "Cannot read LTFS label: read failed (%d)" }
|
||||
11179E:string { "Cannot read LTFS label: parsing failed (%d)" }
|
||||
11180E:string { "Cannot read partition label: failed to space forward over the trailing file mark (%d)" }
|
||||
11181E:string { "Cannot read partition label: failed to find the trailing file mark" }
|
||||
11182E:string { "Comparing labels: tape bar code number mismatch" }
|
||||
11183E:string { "Comparing labels: volume UUID mismatch" }
|
||||
11184E:string { "Comparing labels: format time mismatch" }
|
||||
11185E:string { "Comparing labels: block size mismatch" }
|
||||
11186E:string { "Comparing labels: compression mismatch" }
|
||||
11187E:string { "Comparing labels: partition IDs must be lowercase ASCII characters" }
|
||||
11188E:string { "Comparing labels: partition IDs must be distinct" }
|
||||
11189E:string { "Comparing labels: partition map mismatch" }
|
||||
11190E:string { "Comparing labels: unknown partition ID" }
|
||||
11191E:string { "Comparing labels: partitions have the same ID \'%c\'" }
|
||||
11192E:string { "Comparing labels: invalid bar code number" }
|
||||
11193E:string { "Cannot read index: failed to determined medium position (%d)" }
|
||||
11194W:string { "Cannot read index: failed to read and parse XML data (%d)" }
|
||||
11195W:string { "This index belongs to a different volume" }
|
||||
11196W:string { "Cannot read index: self-pointer mismatch" }
|
||||
11197E:string { "Cannot read index: back pointer is corrupt" }
|
||||
11198E:string { "Cannot read index: failed to space forward 1 file mark (%d)" }
|
||||
11199E:string { "Cannot locate index: failed to locate to EOD (%d)" }
|
||||
11200E:string { "Cannot locate index: failed to determined medium position (%d)" }
|
||||
11201E:string { "Cannot locate index: failed to space back 1 file mark (%d)" }
|
||||
11202E:string { "Cannot locate index: failed to space forward 1 file mark (%d)" }
|
||||
11203E:string { "Cannot locate index: failed to space back 2 file marks (%d)" }
|
||||
11204D:string { "No index found. Space back and try again" }
|
||||
11205E:string { "Index partition contains a back pointer, but no index found on the data partition" }
|
||||
11206E:string { "Index partition back pointer is invalid" }
|
||||
11207E:string { "Missing required index partition back pointer" }
|
||||
11208E:string { "Back pointer chain is broken" }
|
||||
11209E:string { "Cannot create lost and found directory: failed to allocate directory data" }
|
||||
11210W:string { "Ignoring unexpected file mark in partition %lu" }
|
||||
11211E:string { "Cannot populate lost and found directory: failed to allocate file data" }
|
||||
11212E:string { "Cannot create lost and found directory: seek failed (%d)" }
|
||||
11213E:string { "Cannot check medium: seek index failed on the data partition (%d)" }
|
||||
11214E:string { "Cannot check medium: seek index failed on the index partition (%d)" }
|
||||
11215E:string { "Cannot check medium: failed to locate to EOD on the data partition (%d)" }
|
||||
11216E:string { "Cannot check medium: failed to locate to EOD on the index partition (%d)" }
|
||||
11217E:string { "Cannot check medium: failed to write a file mark to the data partition (%d)" }
|
||||
11218E:string { "Cannot check medium: failed to write a file mark to the index partition (%d)" }
|
||||
11219E:string { "Cannot check medium: pointer verification failed (%d)" }
|
||||
11220E:string { "Medium check failed: extra blocks detected. Run ltfsck." }
|
||||
11221E:string { "Medium check failed: detected invalid extents" }
|
||||
11222E:string { "Cannot check medium: failed to save index partition append position (%d)" }
|
||||
11223I:string { "Generating lost and found directory" }
|
||||
11224E:string { "Cannot restore medium consistency: failed to generate lost and found (%d)" }
|
||||
11225E:string { "Cannot check medium: failed to allocate index data (%d)" }
|
||||
11226I:string { "Erasing bad blocks from the index partition" }
|
||||
11227I:string { "Erasing bad blocks from the data partition" }
|
||||
11228E:string { "Cannot restore medium consistency: failed to save data partition append position (%d)" }
|
||||
11229E:string { "Cannot restore medium consistency: failed to save index partition append position (%d)" }
|
||||
11230I:string { "Writing index(es) to restore consistency" }
|
||||
11231E:string { "A simple fix is possible to restore the consistency of the tape." }
|
||||
11232E:string { "Rerun the consistency check with simple fixes enabled." }
|
||||
11233I:string { "Updating MAM coherency data" }
|
||||
11234E:string { "Cannot validate extended attribute value: code point iteration failed" }
|
||||
11235E:string { "Cannot validate name: failed to iterate code point" }
|
||||
11236E:string { "Cannot fold string case: failed to get output buffer size (%d)" }
|
||||
11237E:string { "Cannot fold string case: failed to fill output buffer (%d)" }
|
||||
11238E:string { "Cannot apply NFC: failed to get output buffer size (%d)" }
|
||||
11239E:string { "Cannot apply NFC: failed to fill output buffer (%d)" }
|
||||
11240E:string { "Cannot apply NFD: failed to get output buffer size (%d)" }
|
||||
11241E:string { "Cannot apply NFD: failed to fill output buffer (%d)" }
|
||||
11242E:string { "Cannot convert UTF-8 to UTF-16: failed to get output buffer size (%d)" }
|
||||
11243E:string { "Cannot convert UTF-8 to UTF-16: failed to fill output buffer (%d)" }
|
||||
11244E:string { "Cannot convert UTF-16 to UTF-8: failed to get output buffer size (%d)" }
|
||||
11245E:string { "Cannot convert UTF-16 to UTF-8: failed to fill output buffer (%d)" }
|
||||
11246E:string { "Cannot convert system locale to UTF-16: failed to open converter (%d)" }
|
||||
11247E:string { "Cannot convert system locale to UTF-16: failed to set up converter (%d)" }
|
||||
11248E:string { "Cannot convert system locale to UTF-16: failed to get output buffer size (%d)" }
|
||||
11249E:string { "Cannot convert system locale to UTF-16: failed to fill output buffer (%d)" }
|
||||
11250E:string { "Cannot convert UTF-8 to system locale: failed to get output buffer size (%d)" }
|
||||
11251E:string { "Cannot convert UTF-8 to system locale: failed to fill output buffer (%d)" }
|
||||
11252D:string { "libltfs write to \'%s\': offset = %lld, count = %u" }
|
||||
//unused 11253D:string { "libltfs write to \'%s\': offset = %lld, count = %u (no extent update)" }
|
||||
11254D:string { "libltfs read from \'%s\': offset = %lld, count = %u" }
|
||||
11255I:string { "Appending a file mark to the data partition" }
|
||||
11256I:string { "Appending a file mark to the index partition" }
|
||||
11257I:string { "No index found in the index partition" }
|
||||
11258I:string { "No index found in the data partition" }
|
||||
11259I:string { "Cannot move directory: Directory move is prohibited because of a MacFUSE bug" }
|
||||
11260E:string { "Plug-in \'%s\' was not found in the configuration file" }
|
||||
11261E:string { "Cannot load plug-in: %s" }
|
||||
11262E:string { "Cannot unload plug-in: %s" }
|
||||
11263E:string { "Cannot resolve plug-in operation interface: %s" }
|
||||
11264E:string { "Cannot get plug-in operations" }
|
||||
11265E:string { "Cannot parse configuration file: \'default\' directive must be followed by a plug-in type and name" }
|
||||
//unused 11266E:string { "Cannot parse configuration file: unknown plugin type \'%s\' in \'default\' directive" }
|
||||
11267E:string { "Cannot get library path: unknown plug-in type \'%s\' or plug-in name \'%s\'" }
|
||||
11268E:string { "Cannot open configuration file \'%s\' (%d)" }
|
||||
11269E:string { "Cannot parse configuration file: line too long" }
|
||||
11270E:string { "Cannot parse configuration file: \'-default\' directive must be followed by a plug-in type" }
|
||||
11271E:string { "Cannot parse configuration file: unknown plug-in type \'%s\' in \'-default\' directive" }
|
||||
11272E:string { "Cannot parse configuration file: \'option\' directive must be followed by an option type and LTFS mount option" }
|
||||
11273E:string { "Cannot parse configuration file: \'%s\' directive must be followed by a valid %s name" }
|
||||
//unused 11274E:string { "Cannot define a scheduler plug-in using the reserved name \'none\'" }
|
||||
11275E:string { "Cannot parse configuration file: \'plug-in\' directive must be followed by a plug-in type, name, and library path" }
|
||||
11276W:string { "Ignoring unknown configuration directive \'%s\'" }
|
||||
11277W:string { "Cannot find the %s plug-in \'%s\' at \'%s\'" }
|
||||
11278I:string { "Writing index to partition %c" }
|
||||
11279E:string { "Cannot write index to partition %c (%d)" }
|
||||
11280E:string { "Unknown default %s \'%s\'" }
|
||||
11281E:string { "Cannot load messages: failed to get message table (%d)" }
|
||||
11282E:string { "Cannot load messages: failed to determine first message ID (ures_getByKey: %d)" }
|
||||
11283E:string { "Cannot load messages: failed to determine first message ID (ures_getInt: %d)" }
|
||||
11284E:string { "Cannot resolve plug-in message bundle interface: %s" }
|
||||
11285E:string { "Cannot load %s plug-in \'%s\': failed to load the message bundle (%d)" }
|
||||
11286E:string { "Cannot load messages: failed to open resource bundle (%d)" }
|
||||
11287E:string { "Cannot load messages: failed to register message data (%d)" }
|
||||
11288W:string { "No end ID found for this message bundle: assigning 1000 message IDs" }
|
||||
11289I:string { "Ejecting cartridge" }
|
||||
11290E:string { "Failed to eject the cartridge (%s)" }
|
||||
11291I:string { "Eject successful" }
|
||||
//unused 11292E
|
||||
11293E:string { "Cannot load messages for libltfs (%d)" }
|
||||
//unused 11294E
|
||||
11295E:string { "Cannot read partition label: check for file mark after the ANSI label failed (%d)" }
|
||||
11296E:string { "Cannot read partition label: failed to find a file mark after the ANSI label" }
|
||||
11297E:string { "Cannot read index: failed to allocate index structure (%d)" }
|
||||
11298E:string { "Cannot read volume: unsupported medium" }
|
||||
11299E:string { "Cannot format: unsupported medium" }
|
||||
//unused 11300E:string { "Cannot rename: failed check of target file existence (%d)" }
|
||||
11301E:string { "Unable to read index: cannot duplicate index partition criteria" }
|
||||
11302E:string { "Data placement rule contains invalid character(s): '%s'" }
|
||||
11303E:string { "Data placement rule is too long: '%s'" }
|
||||
11304E:string { "Failed to validate data placement rule (%d)" }
|
||||
11305E:string { "Empty data placement rule in '%s'" }
|
||||
11306E:string { "Cannot get read-only state of partition: invalid partition identifier" }
|
||||
11307W:string { "All unique IDs for volume %s are used. No new files or directories can be created for the volume." }
|
||||
11308E:string { "Commit message must be 65536 bytes or less" }
|
||||
11309E:string { "Cannot parse configuration file: \'-plugin\' directive must be followed by a plug-in type and name" }
|
||||
11310W:string { "Cannot set the traversal mode: failed to get a valid selection %d" }
|
||||
11311E:string { "Cannot format: failed to reset capacity proportion (%d)" }
|
||||
11312D:string { "Revalidating the medium" }
|
||||
11313E:string { "Medium revalidation failed (%d). Unmount the tape before continuing." }
|
||||
11314E:string { "Cannot format: failed to get data key (%d)" }
|
||||
11315E:string { "Cannot format: failed to set data key (%d)" }
|
||||
11316E:string { "Failed to print help message of key manager interface backend" }
|
||||
11317E:string { "Cannot print help message: unknown type: '%s'" }
|
||||
11318W:string { "Unknown log level (%d), forced the level to (%d)" }
|
||||
11319E:string { "Cannot add the key to hash table at %s (%d)" }
|
||||
11320E:string { "Cannot search the key from hash table at %s (%d)" }
|
||||
11321E:string { "Symbolic link might be replaced by data file. Use ltfsck for recovery" }
|
||||
11322D:string { "Makeing a symlink '%s' target '%s'" }
|
||||
11323D:string { "Symlink EA prefix valuse is (%s)" }
|
||||
11324D:string { "Path changed from '%s' to '%s'" }
|
||||
11325E:string { "Cannot set extended attribute: failed to flush (%d)" }
|
||||
|
||||
// Message IDs 11400 through 11700 are allocated to the libchanger.
|
||||
// DO NOT add messages with those IDs to this file.
|
||||
|
||||
//unused 11997E:string { "Comparing labels: failed to match versions" }
|
||||
11998W:string { "Unable to delete dentry '%s': it still has outstanding references" }
|
||||
11999E:string { "Cannot load the medium: failed to get capacity data (%d)" }
|
||||
//unused 12000E:string { "Cannot open device backend library directory" }
|
||||
//unused 12001E:string { "Failed to open device backend library: %s" }
|
||||
//unused 12002E:string { "Failed to get device operations: %s" }
|
||||
//unused 12003E:string { "Device backend returned an empty set of operations" }
|
||||
12004E:string { "Device backend does not implement all required methods" }
|
||||
//unused 12005E:string { "Failed to inquiry tape page: backend call failed (%d)" }
|
||||
//unused 12006E:string { "Cannot allocate device data: failed to set mutex attributes (%d)" }
|
||||
//unused 12007E:string { "Cannot allocate device data: failed to set mutex type (%d)" }
|
||||
12008E:string { "Cannot allocate device data: failed to initialize mutex (%d)" }
|
||||
//unused 12009E:string { "Cannot allocate device data: failed to free mutex attributes (%d)" }
|
||||
12010E:string { "Failed to grab the device lock (%s)" }
|
||||
12011E:string { "Failed to release the device lock (%s)" }
|
||||
12012E:string { "Cannot open device: failed backend open call" }
|
||||
12013E:string { "Cannot inquire the tape device: backend call failed (%d)" }
|
||||
12014E:string { "Cannot open device: failed to reserve the device (%d)" }
|
||||
//unused 12015D:string { "Attempting to load the medium" }
|
||||
12016E:string { "No medium present" }
|
||||
12017E:string { "Cannot load the medium (%d)" }
|
||||
12018E:string { "Cannot load the medium: failed to lock the medium in the drive (%d)" }
|
||||
12019E:string { "Cannot load the medium: failed to determine medium position (%d)" }
|
||||
12020E:string { "Cannot load the medium: failed to set device defaults (%d)" }
|
||||
12021E:string { "Cannot load the medium: failed to get device parameters (%d)" }
|
||||
12022I:string { "Unloading medium" }
|
||||
12023D:string { "Reserving device" }
|
||||
12024E:string { "Cannot reserve device: backend call failed (%d)" }
|
||||
12025D:string { "Releasing device" }
|
||||
12026D:string { "Locking medium in the drive" }
|
||||
12027E:string { "Cannot lock medium in the drive: backend call failed (%d)" }
|
||||
12028D:string { "Unlocking medium" }
|
||||
12029E:string { "Device is not ready (%d)" }
|
||||
12030E:string { "Cannot get capacity data: backend call failed (%d)" }
|
||||
12031E:string { "Cannot set compression: backend call failed (%d)" }
|
||||
12032E:string { "Cannot set append position: invalid partition %lu" }
|
||||
12033E:string { "Cannot seek to append position: seek failed (%d)" }
|
||||
12034E:string { "Cannot get maximum device blocksize: backend call failed (%d)" }
|
||||
12035E:string { "Cannot rewind medium: backend call failed (%d)" }
|
||||
12036E:string { "Seek failed: final position is not what was requested" }
|
||||
12037E:string { "Cannot seek: backend call failed (%d)" }
|
||||
12038E:string { "Cannot seek EOD: invalid partition %lu" }
|
||||
12039E:string { "Cannot seek EOD: backend locate call failed (%d)" }
|
||||
12040E:string { "Cannot parse backend options: backend call failed (%d)" }
|
||||
12041E:string { "Cannot space file marks: backend call failed (%d)" }
|
||||
12042E:string { "Cannot write block: must open the device first" }
|
||||
12043E:string { "Cannot write block: device is read-only" }
|
||||
12044E:string { "Cannot write a %u-byte block: maximum block size is %lu" }
|
||||
12045E:string { "Cannot write block: backend call failed (%d). Dropping to read-only mode." }
|
||||
12046E:string { "Cannot write file marks: must open the device first" }
|
||||
12047E:string { "Cannot write file marks: backend call failed (%d). Dropping to read-only mode." }
|
||||
12048E:string { "Cannot read: must open the device first" }
|
||||
12049E:string { "Cannot read: backend call failed (%d)" }
|
||||
12050E:string { "Cannot format medium: locate to partition 0, block 0 failed (%d)" }
|
||||
12051E:string { "Cannot format medium: Mode Sense for Medium Partition failed (%d)" }
|
||||
//unused 12052E:string { "Cannot format medium: Mode Select for Medium Partition failed (%d)" }
|
||||
12053E:string { "Cannot format medium: backend call failed (%d)" }
|
||||
12054E:string { "Cannot unformat medium: locate to partition 0, block 0 failed (%d)" }
|
||||
12055E:string { "Cannot unformat medium: backend call failed (%d)" }
|
||||
12056W:string { "Cannot get Volume Change Reference parameter: read attribute failed (%d)" }
|
||||
12057W:string { "Cannot get VCI data: read attribute failed (%d)" }
|
||||
12058W:string { "Cannot get VCI data: unexpected ID 0x%04x" }
|
||||
12059W:string { "Cannot get VCI data: unexpected length 0x%04x" }
|
||||
12060W:string { "Cannot get VCI data: unexpected VCR length 0x%04x" }
|
||||
12061W:string { "Cannot get VCI data: unexpected Application Specific Info length %d" }
|
||||
12062W:string { "Cannot get VCI data: unexpected Application Specific Info signature" }
|
||||
12063W:string { "Cannot set VCI data: backend call failed (%d)" }
|
||||
12064E:string { "Cannot write block: no space left on device" }
|
||||
// unused 12065E:string { "Cannot write file marks: error during retry on out of space condition (%d). Dropping to read-only mode." }
|
||||
// unused 12066E:string { "Cannot write block: error during retry on out of space condition (%d). Dropping to read-only mode." }
|
||||
|
||||
// Message IDs 12067 through 12499 are allocated to IBM tape device plugins.
|
||||
// DO NOT add messages with those IDs to this file.
|
||||
|
||||
//unused 13000E:string { "Failed to open I/O scheduler backend: %s" }
|
||||
//unused 13001E:string { "Failed to get scheduler operations: %s" }
|
||||
//unused 13002E:string { "Scheduler backend returned an empty set of operations" }
|
||||
13003E:string { "Scheduler backend does not implement all required methods" }
|
||||
13004E:string { "Dentry cache backend does not implement all required methods" }
|
||||
|
||||
// Message IDs 13005 through 13499 are allocated to IBM I/O scheduler plugins.
|
||||
// DO NOT add messages with those IDs to this file.
|
||||
|
||||
// Message IDs 13500-13999 are allocated to dentry cache plugins.
|
||||
// DO NOT add messages with those IDs to this file.
|
||||
|
||||
// Message IDs 14000-14499 are reserved for the ltfs executable.
|
||||
// DO NOT add messages with those IDs to this file.
|
||||
|
||||
// Message IDs 14500-14999 are reserved for the admin_channel interface.
|
||||
// DO NOT add messages with those IDs to this file.
|
||||
|
||||
// Message IDs 15000-15499 are reserved for the mkltfs executable.
|
||||
// DO NOT add messages with those IDs to this file.
|
||||
|
||||
// Message IDs 15500-15999 are reserved for the cropto plugins.
|
||||
// DO NOT add messages with those IDs to this file.
|
||||
|
||||
// Message IDs 16000-16499 are reserved for the ltfsck executable.
|
||||
// DO NOT add messages with those IDs to this file.
|
||||
|
||||
17000E:string { "XML parser: not all required tags found in \'%s\'" }
|
||||
17001E:string { "XML parser: duplicate required tag \'%s\'" }
|
||||
17002E:string { "XML parser: duplicate optional tag \'%s\'" }
|
||||
17003E:string { "XML parser: cannot determine whether tag is empty" }
|
||||
17004E:string { "XML parser: tag \'%s\' must not be empty" }
|
||||
17005E:string { "XML parser: extra content in tag \'%s\'" }
|
||||
17006W:string { "XML parser: ignoring unrecognized tag \'%s\' inside \'%s\'" }
|
||||
17007E:string { "Cannot instantiate an LTFS label parser for file \'%s\'" }
|
||||
17008E:string { "Cannot parse XML label from file \'%s\'" }
|
||||
17009E:string { "Cannot instantiate an LTFS label parser for a memory buffer" }
|
||||
17010E:string { "Cannot parse XML label from memory" }
|
||||
17011E:string { "Cannot instantiate an index parser for file \'%s\'" }
|
||||
17012E:string { "Cannot parse index from file \'%s\'" }
|
||||
17013E:string { "Cannot parse index: failed to determine medium position (%d)" }
|
||||
17014E:string { "Cannot parse index: failed to create XML parser input buffer" }
|
||||
17015E:string { "Cannot parse index: failed to create XML reader" }
|
||||
17016E:string { "Cannot parse index direct from medium" }
|
||||
17017E:string { "XML parser: unexpected top-level tag \'%s\'" }
|
||||
17018E:string { "XML parser: unsupported encoding \'%s\'" }
|
||||
17019E:string { "XML parser: no schema version found" }
|
||||
17020E:string { "XML parser: invalid schema version \'%s\'" }
|
||||
17021E:string { "XML parser: unsupported %s version %s" }
|
||||
17022E:string { "XML parser: invalid block size %s" }
|
||||
17023E:string { "XML parser: invalid generation number %s" }
|
||||
17024E:string { "XML parser: invalid size criterion %s" }
|
||||
17025E:string { "XML parser: failed to normalize value (%d)" }
|
||||
17026E:string { "XML parser: file size is shorter than extent list" }
|
||||
17027E:string { "XML parser: unsupported extended attribute type \'%s\'" }
|
||||
17028E:string { "XML parser: base64 decoding failed" }
|
||||
17029E:string { "XML parser: invalid UUID %s" }
|
||||
17030E:string { "XML parser: failed to normalize name \'%s\'" }
|
||||
17031E:string { "XML parser: invalid %s name \'%s\'" }
|
||||
17032E:string { "XML parser: compression must be \'true\' (1) or \'false\' (0)" }
|
||||
17033E:string { "XML parser: invalid partition \'%s\'" }
|
||||
17034E:string { "XML parser: invalid time \'%s\'" }
|
||||
17035E:string { "XML parser: expected a text node" }
|
||||
17036E:string { "XML parser: expected a text node (received type %d)" }
|
||||
17037E:string { "XML parser: failed to read from XML stream" }
|
||||
17038E:string { "XML parser: unexpected end of XML stream" }
|
||||
17039E:string { "XML parser: failed to read a block from the medium (%d)" }
|
||||
17040E:string { "XML parser: failed to space back 1 file mark" }
|
||||
17041E:string { "XML parser: read failed while looking for a file mark (%d)" }
|
||||
17042E:string { "XML writer: error creating tag (%s)" }
|
||||
17043E:string { "Cannot instantiate an LTFS label writer to memory" }
|
||||
17044E:string { "Label writer: failed to start the document (%d)" }
|
||||
17045E:string { "Label writer: failed to format time" }
|
||||
17046E:string { "Label writer: failed to close the document (%d)" }
|
||||
17047E:string { "Cannot generate LTFS label: failed to allocate buffer" }
|
||||
17048E:string { "Cannot generate index data in memory: failed to allocate buffer" }
|
||||
17049E:string { "Cannot instantiate index writer to memory" }
|
||||
17050E:string { "Cannot generate index data in memory" }
|
||||
17051E:string { "Cannot instantiate an index writer to file \'%s\'" }
|
||||
17052E:string { "Cannot generate index data (%d) in file \'%s\'" }
|
||||
17053E:string { "Cannot generate index data direct to tape: failed to create output buffer" }
|
||||
17054E:string { "Cannot instantiate an index writer direct to tape" }
|
||||
17055E:string { "Cannot generate index data direct to tape (%d)" }
|
||||
17056E:string { "XML writer: cannot format time (gmtime failed)" }
|
||||
17057E:string { "Index writer: failed to start the document (%d)" }
|
||||
17058E:string { "Index writer: failed to close the document (%d)" }
|
||||
17059E:string { "Index writer: cannot validate extended attribute value (%d)" }
|
||||
17060E:string { "XML writer: failed to write a block to the medium (%d)" }
|
||||
17061E:string { "XML writer: failed to flush cached data to the medium (%d)" }
|
||||
17062E:string { "XML writer: tried to write a directory as a file" }
|
||||
17063W:string { "Periodic sync thread failed to flush file data to the medium. Data might be lost (%s)." }
|
||||
17064D:string { "Sync is done. (%s)" }
|
||||
17065D:string { "Periodic sync thread initialized" }
|
||||
17066D:string { "Periodic sync thread uninitialized" }
|
||||
17067D:string { "Sync is kicked. (%s)" }
|
||||
17068D:string { "Sync index" }
|
||||
17069E:string { "Failed to sync index" }
|
||||
//unused 17070I:string { "Tape is not loaded" }
|
||||
17071I:string { "Unpartitioning the medium" }
|
||||
17072E:string { "Cannot unformat: failed to unpartition the medium (%d)" }
|
||||
17073I:string { "Device list:" }
|
||||
17074I:string { "Device Name = %s, Vender ID = %s, Product ID = %s, Serial Number = %s, Product Name = %s" }
|
||||
17075E:string { "Traverse(%c): cannot read index from %d (%c)" }
|
||||
17076E:string { "Traverse(%c): cannot locate to the next index position (%c)" }
|
||||
17077I:string { "Traverse(%c): find target generation %d (%c)" }
|
||||
17078D:string { "Traverse(%c): cannot find target generation %d (%c)" }
|
||||
17079E:string { "Traverse: cannot find target generation %d" }
|
||||
17080D:string { "Traverse(%c): find generation %d (%c)" }
|
||||
17081E:string { "Traverse(%c): callback function failed %d (%c)" }
|
||||
17082E:string { "Traverse(%c): cannot locate to the first index position (%c)" }
|
||||
17083E:string { "Traverse(%c): cannot locate to the last index position (%c)" }
|
||||
17084E:string { "XML parser: failed to read extent list from file (%d)" }
|
||||
17085I:string { "Plugin: Loading \"%s\" %s" }
|
||||
17086W:string { "Cannot get kernel version" }
|
||||
17087I:string { "Kernel version: %s" }
|
||||
17088W:string { "Cannot get distribution information" }
|
||||
17089I:string { "Distribution: %s" }
|
||||
17090W:string { "sysctl system call failed (%s)" }
|
||||
17091E:string { "Cannot save tag: libxml2 could not return text for this node" }
|
||||
17092E:string { "Index writer: failed to write opaque tags (%s)" }
|
||||
17093E:string { "XML parser: failed to skip tag" }
|
||||
17094E:string { "XML parser: comment field is longer than 64 KiB" }
|
||||
17095W:string { "The index read from the tape uses an old version of the LTFS format. If this tape is modified, the index upgrades to format version %s." }
|
||||
17096W:string { "The index read from the tape uses a newer version of the LTFS format than the one supported by this software. Some functionality might be available. If this tape is modified, the index downgrades to format version %s." }
|
||||
17097E:string { "XML parser: two extents overlap" }
|
||||
17098E:string { "XML parser: invalid name pattern '%s\'" }
|
||||
17099E:string { "Failed to spawn the periodic sync thread (%d)" }
|
||||
|
||||
17100E:string { "XML parser: UID on the root directory must be 1" }
|
||||
17101E:string { "XML parser: UID 1 is reserved for the root directory" }
|
||||
17102E:string { "Cannot set PEWS: Mode Sense for Device Configuration Extension failed (%d)" }
|
||||
17103E:string { "Cannot set PEWS: Mode Select for Device Configuration Extension failed (%d)" }
|
||||
17104E:string { "Cannot get PEWS: Mode Sense for Device Configuration Extension failed (%d)" }
|
||||
17105E:string { "Cannot load the medium: failed to get programmable early warning size (%d)" }
|
||||
17106E:string { "XML parser: UID 0 is reserved" }
|
||||
17107E:string { "Version mismatch of MAM, IP=%d, DP=%d" }
|
||||
17108E:string { "Cannot find partition id \'%c\'(0x%x)" }
|
||||
17109E:string { "Failed to detect the final index or the final record" }
|
||||
17110I:string { "The MAM was written by PGA1 or earlier" }
|
||||
17111I:string { "The MAM was written by PGA2 or later" }
|
||||
17112I:string { "Starting EOD recovery (GA/PGA1)" }
|
||||
17113I:string { "Starting EOD recovery: reading an index from (%llu, %llu)" }
|
||||
17114I:string { "Seaching the final index in IP" }
|
||||
17115E:string { "Failed to search the final index in IP" }
|
||||
17116I:string { "Detecting the final record in DP" }
|
||||
17117E:string { "Failed to search the final index in DP" }
|
||||
17118I:string { "Seeking to the final index in %s (%llu, %llu)" }
|
||||
17119E:string { "Failed to seek to the final index in %s (%d)" }
|
||||
17120I:string { "Reading the final index in %s (%llu, %llu)" }
|
||||
17121E:string { "Failed to read the final index in %s (%d)" }
|
||||
//unused 17122I:string { "Search one more index after current index (%llu, %llu)" }
|
||||
17123E:string { "Unexpected genaration value (Gen = %d, MAM IP = %d, MAM DP = %d)" }
|
||||
17124I:string { "Seeking to the final record in %s (%llu, %llu)" }
|
||||
17125E:string { "Failed to seek to the final record in %s (%d)" }
|
||||
17126E:string { "Unexpected EOD status (%d, %d)" }
|
||||
17127I:string { "Detecting the final record to read by hitting read error takes about 20 minutes" }
|
||||
//unused 17128W:string { "Unexpected EOD detection on the missing EOD cartridge occurred. No action required." }
|
||||
17129W:string { "Unexpected read error occurred" }
|
||||
17130I:string { "Expected read error occurred" }
|
||||
17131I:string { "Recovering EOD at (%llu, %llu) takes about 20 minutes" }
|
||||
17132E:string { "Failed to get current position" }
|
||||
17133E:string { "Failed to unload the cartridge" }
|
||||
17134E:string { "Failed to reload the cartridge" }
|
||||
17135E:string { "Failed to seek to EOD recovery point" }
|
||||
17136E:string { "Failed to erase at EOD recovery point" }
|
||||
17137E:string { "Failed to recover EOD status (%d)" }
|
||||
17138I:string { "Recovered EOD status successfully (%d)" }
|
||||
17139I:string { "Starting a deep recovery operation: missing EOD" }
|
||||
17140E:string { "Tape backend does not support missing EOD detection" }
|
||||
17141I:string { "Both EODs are detected. A deep recovery operation is unnecessary." }
|
||||
17142E:string { "Both EODs are missing." }
|
||||
17143I:string { "EOD of %s(%d) is missing" }
|
||||
17144E:string { "The MAM of %s is not usable" }
|
||||
17145W:string { "Tape backend does not support missing EOD detection" }
|
||||
17146E:string { "EOD of %s(%d) is missing. A deep recovery operation is required." }
|
||||
17147I:string { "Attempting to mount a cartridge without EOD status check" }
|
||||
17148E:string { "Use ltfsck with the --deep-recovery option" }
|
||||
17149E:string { "Cannot erase: backend call failed (%d)" }
|
||||
//unused 17150I:string { "PEWS field in Device Configuration Extension mode page was changed to disable programmable early warning" }
|
||||
17151E:string { "Cannot set WRITE MODE: Failed to unload medium (%d)" }
|
||||
17152E:string { "Cannot set WRITE MODE: Failed to load medium (%s, %d)" }
|
||||
// unused 17153E:string { "Cannot set WRITE MODE: Invalid mode is specified (%x)" }
|
||||
17154E:string { "Cannot set WRITE MODE: Mode Sense for Device Configuration Extension failed (%d)" }
|
||||
17155E:string { "Cannot set WRITE MODE: Mode Select for Device Configuration Extension failed (%d)" }
|
||||
17156E:string { "Cannot get WRITE MODE: Mode Sense for Device Configuration Extension failed (%d)" }
|
||||
17157I:string { "Changing the drive setting %s" }
|
||||
//unused 17158E:string { "Cannot set up tape drive" }
|
||||
17159I:string { "Process was interruped by user" }
|
||||
17160I:string { "Maximum device block size is %d" }
|
||||
17161I:string { "EOD information (%s) is corrupted" }
|
||||
17162I:string { "Trying a simple recovery that requires several minutes to complete" }
|
||||
17163E:string { "Cannot reset the capacity proportion: failed to locate partition 0, block 0 (%d)" }
|
||||
17164E:string { "Cannot reset the capacity proportion: backend call failed (%d)" }
|
||||
17165I:string { "Resetting the medium's capacity proportion" }
|
||||
17166D:string { "Coherency Data: %s (%lld, %lld, %lld, %u, %s, %c)" }
|
||||
17167E:string { "Cannot read volume: failed to get capacity data (%d)" }
|
||||
17168E:string { "Cannot read volume: medium is not partitioned" }
|
||||
17169I:string { "Detected EOD on the missing EOD cartridge" }
|
||||
17170E:string { "Failed to parse LTFS dcache configuration rules: invalid option '%s'" }
|
||||
17171E:string { "Failed to parse LTFS dcache configuration rules: invalid value '%d' for option '%s'" }
|
||||
17172W:string { "Time conversion is overflowed. (%04d-%02d-%02dT%02d:%02d:%02dZ)" }
|
||||
17173W:string { "Time conversion is underflowed. (%04d-%02d-%02dT%02d:%02d:%02dZ)" }
|
||||
17174E:string { "Key manager interface backend does not implement all required methods" }
|
||||
17175E:string { "Cannot read: failed to get data key identifier (%d)" }
|
||||
17176E:string { "Cannot read: failed to get data key (%d)" }
|
||||
17177E:string { "Cannot read: no correct key" }
|
||||
17178E:string { "Cannot read: failed to set data key (%d)" }
|
||||
17179I:string { "Cleaning cartridge was loaded. (TA=%016llx)" }
|
||||
17180E:string { "File %s has both of symbolic link and extents" }
|
||||
17181E:string { "Cannot reopen device: failed backend reopen call" }
|
||||
17182D:string { "Writing schema to disk: UUID='%s', barcode='%s'" }
|
||||
17183E:string { "Error writing XML schema to file '%s' on the disk" }
|
||||
17184E:string { "Error changing index cache file's permission (%d)" }
|
||||
17185E:string { "Cannot read LTFS label: max transfer length is shorter than max LTFS label length (%d)" }
|
||||
17186E:string { "Called releaseread_mrsw with zero or less count" }
|
||||
17187E:string { "Unexpected not ready state (%d)" }
|
||||
17188I:string { "Device is not ready (%d)" }
|
||||
17189I:string { "Device is becoming ready (%d)" }
|
||||
17190I:string { "Data key is set to enable encryption feature" }
|
||||
17191I:string { "Data key is cleared to disable encryption feature" }
|
||||
17192W:string { "Cannot read: medium is encrypted" }
|
||||
|
||||
17200E:string { "XML parser: cannot save tag, libxml2 workaround failed (%s)" }
|
||||
|
||||
// 17250 - 17299 are reserved for LE+T
|
||||
|
||||
// DO NOT place messages with IDs 20000 or higher here!
|
||||
// If you are writing a plugin for libltfs, create a separate message bundle
|
||||
// containing messages with
|
||||
// start_id 20000 and end_id 20999 (for driver plugins) or
|
||||
// start_id 21000 and end_id 21999 (for scheduler plugins).
|
||||
// See messages/README for more information.
|
||||
|
||||
//17300 - 17350 are reserved for MAM attributes and Advisory locking
|
||||
17300D:string { "Done reading MAM attributes" }
|
||||
17301W:string { "Failed to retrieve MAM attributes" }
|
||||
17302W:string { "Cannot retrieve attribute (%s=0x%x)" }
|
||||
17303E:string { "Barcode must be atleast 6 and atmost 32 alphanumeric ascii characters" }
|
||||
17304E:string { "Barcode can contain only digits and upper case characters" }
|
||||
17305I:string { "The ltfs volume is locked and needs to be unlocked for Read-Write operations" }
|
||||
17306I:string { "Mounting as read-only because the volume is locked due to a hard write error" }
|
||||
17307I:string { "The ltfs volume is permanently locked and so is mounted read-only. Reformat required for write operations"}
|
||||
17308I:string { "The ltfs volume is locked due to write error. Run check utility to fix or reformat the cartridge"}
|
||||
17309I:string { "The ltfs volume is permanently locked. Run format utility to re-use the cartridge"}
|
||||
17310I:string { "Setting the LTFS Volume to be unlocked" }
|
||||
17311E:string { "The LTFS Volume cannot be unlocked (%u)" }
|
||||
17312I:string { "Setting the LTFS Volume to be locked" }
|
||||
17313E:string { "The LTFS Volume cannot be locked (%u)" }
|
||||
17314I:string { "Setting the LTFS Volume to be permanently locked" }
|
||||
17315E:string { "The LTFS Volume cannot be permanently locked (%u)" }
|
||||
17316I:string { "Setting the LTFS Volume to be locked due to write error" }
|
||||
17317E:string { "The LTFS Volume cannot be locked due to write error (%u)" }
|
||||
17318E:string { "Only 0->Unlocking, 1->Locking and 2->Permanent Locking are allowed" }
|
||||
17319I:string { "%s" }
|
||||
17320I:string { "Mounting as read-only with the latest index (%d) as permanent write error is set in MAM" }
|
||||
|
||||
// HPE MD 22.09.2017 Added for SNIA 2.4 to allow for checking percent encoding and openforwrite
|
||||
17321D:string { "Original name from platform? %s" }
|
||||
17322D:string { "percent encoded name? %s" }
|
||||
17323D:string { "Original name from tape? %s" }
|
||||
17324D:string { "percent decoded filename? %s" }
|
||||
17325D:string { "Generic string tracepoint %d, %s"}
|
||||
17326D:string { "Generic number tracepoint %d, %d"}
|
||||
17327I:string { "The ltfs volume is locked due to data partition write error. Run check utility to fix or reformat the cartridge"}
|
||||
17328I:string { "The ltfs volume is locked due to index partition write error. Run check utility to fix or reformat the cartridge"}
|
||||
17329I:string { "Setting the LTFS Volume to be locked due to data partition write error" }
|
||||
17330I:string { "Setting the LTFS Volume to be locked due to index partition write error" }
|
||||
17331E:string { "The LTFS Volume cannot be locked due to data partition write error (%u)" }
|
||||
17332E:string { "The LTFS Volume cannot be locked due to index partition write error (%u)" }
|
||||
17333I:string { "Mounting as read-only because the volume is locked due to a data partition hard write error" }
|
||||
17334I:string { "Mounting as read-only because the volume is locked due to a index partition hard write error" }
|
||||
17335I:string { "Mounting as read-only because the volume is locked due to both partition hard write error" }
|
||||
17336I:string { "Percent encoded name has been truncated" }
|
||||
|
||||
//17351 - 17360 are reserved for Archive Manager
|
||||
17351I:string { "Volume belongs to Archive Manager spanned set, mounting as read only" }
|
||||
}
|
||||
}
|
||||
38
ltfs/messages/bin_ltfs/en.txt
Normal file
38
ltfs/messages/bin_ltfs/en.txt
Normal file
@@ -0,0 +1,38 @@
|
||||
//
|
||||
// %Z% %I% %W% %G% %U%
|
||||
//
|
||||
// ZZ_Copyright_BEGIN
|
||||
//
|
||||
//
|
||||
// Licensed Materials - Property of IBM
|
||||
//
|
||||
// IBM Linear Tape File System Single Drive Edition Version 2.2.0.2 for Linux and Mac OS X
|
||||
//
|
||||
// Copyright IBM Corp. 2010, 2014
|
||||
//
|
||||
// This file is part of the IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X
|
||||
// (formally known as IBM Linear Tape File System)
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is free software;
|
||||
// you can redistribute it and/or modify it under the terms of the GNU Lesser
|
||||
// General Public License as published by the Free Software Foundation,
|
||||
// version 2.1 of the License.
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is distributed in the
|
||||
// hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
|
||||
// implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
// See the GNU Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
// or download the license from <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
//
|
||||
// ZZ_Copyright_END
|
||||
//
|
||||
|
||||
en:table {
|
||||
// This resource intentionally left blank.
|
||||
}
|
||||
|
||||
38
ltfs/messages/bin_ltfs/en_US.txt
Normal file
38
ltfs/messages/bin_ltfs/en_US.txt
Normal file
@@ -0,0 +1,38 @@
|
||||
//
|
||||
// %Z% %I% %W% %G% %U%
|
||||
//
|
||||
// ZZ_Copyright_BEGIN
|
||||
//
|
||||
//
|
||||
// Licensed Materials - Property of IBM
|
||||
//
|
||||
// IBM Linear Tape File System Single Drive Edition Version 2.2.0.2 for Linux and Mac OS X
|
||||
//
|
||||
// Copyright IBM Corp. 2010, 2014
|
||||
//
|
||||
// This file is part of the IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X
|
||||
// (formally known as IBM Linear Tape File System)
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is free software;
|
||||
// you can redistribute it and/or modify it under the terms of the GNU Lesser
|
||||
// General Public License as published by the Free Software Foundation,
|
||||
// version 2.1 of the License.
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is distributed in the
|
||||
// hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
|
||||
// implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
// See the GNU Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
// or download the license from <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
//
|
||||
// ZZ_Copyright_END
|
||||
//
|
||||
|
||||
en_US:table {
|
||||
// This resource intentionally left blank.
|
||||
}
|
||||
|
||||
272
ltfs/messages/bin_ltfs/root.txt
Normal file
272
ltfs/messages/bin_ltfs/root.txt
Normal file
@@ -0,0 +1,272 @@
|
||||
//
|
||||
// %Z% %I% %W% %G% %U%
|
||||
//
|
||||
// ZZ_Copyright_BEGIN
|
||||
//
|
||||
//
|
||||
// Licensed Materials - Property of IBM
|
||||
//
|
||||
// IBM Linear Tape File System Single Drive Edition Version 2.2.0.2 for Linux and Mac OS X
|
||||
//
|
||||
// Copyright IBM Corp. 2010, 2014
|
||||
//
|
||||
// This file is part of the IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X
|
||||
// (formally known as IBM Linear Tape File System)
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is free software;
|
||||
// you can redistribute it and/or modify it under the terms of the GNU Lesser
|
||||
// General Public License as published by the Free Software Foundation,
|
||||
// version 2.1 of the License.
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is distributed in the
|
||||
// hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
|
||||
// implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
// See the GNU Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
// or download the license from <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
//
|
||||
// ZZ_Copyright_END
|
||||
//
|
||||
|
||||
// Messages for the main ltfs application (src/main.c, src/ltfs_fuse.c).
|
||||
root:table {
|
||||
messages:table {
|
||||
start_id:int { 14000 }
|
||||
end_id:int { 14499 }
|
||||
|
||||
14000I:string { "LTFS starting, %s version %s, log level %d" }
|
||||
14001E:string { "Cannot enable FUSE option %s (%d)" }
|
||||
14002E:string { "Cannot set up permissions (%d)" }
|
||||
14003E:string { "min_pool_size (%d) cannot be greater than max_pool_size (%d)" }
|
||||
14004E:string { "Cannot create work directory (%d)" }
|
||||
14005E:string { "Path \'%s\' exists, but is not a directory" }
|
||||
14006E:string { "Invalid umask \'%s\' (must be 3 octal digits, such as 022)" }
|
||||
14007E:string { "Invalid fmask \'%s\' (must be 3 octal digits, such as 022)" }
|
||||
14008E:string { "Invalid dmask \'%s\' (must be 3 octal digits, such as 022)" }
|
||||
14009E:string { "The backend \'%s\' does not have a default device. Specify one using the \"-o devname=\" option." }
|
||||
//unused 14010E:string { "Cannot load I/O scheduler \'%s\'" }
|
||||
14011E:string { "Cannot allocate LTFS volume structure" }
|
||||
14012E:string { "Tape backend option parsing failed" }
|
||||
14013E:string { "Cannot mount the volume" }
|
||||
//unused 14014E:string { "Cannot duplicate index criteria" }
|
||||
14015W:string { "Volume does not allow index criteria override. Ignoring user-specified criteria." }
|
||||
14016E:string { "Cannot format data placement rules (%d)" }
|
||||
14017E:string { "Cannot parse data placement rules (%d)" }
|
||||
14018E:string { "Cannot get read-only status of the medium" }
|
||||
14019I:string { "Medium is write protected. Mounting read-only." }
|
||||
//unused 14020E:string { "The data placement rules must be 255 characters or less." }
|
||||
//unused 14021E:string { "The data placement rules contain invalid characters" }
|
||||
14022E:string { "Cannot flush file data to the medium. Data might be lost (%s)." }
|
||||
14023E:string { "Cannot set extended attribute: position option must be zero" }
|
||||
14024E:string { "Cannot get extended attribute: position option must be zero" }
|
||||
//unused 14025D:string { "Cannot read directory: no file handle provided" }
|
||||
14026D:string { "Cannot read directory: no buffer space" }
|
||||
14027E:string { "Cannot read directory: convert to system locale failed (%s, %d)" }
|
||||
14028W:string { "Cannot initialize I/O scheduler. The scheduler is disabled. Performance might decrease and memory usage might increase." }
|
||||
14029I:string { "Ready to receive file system requests" }
|
||||
14030D:string { "FUSE fgetattr for \'%s\'" }
|
||||
14031D:string { "FUSE getattr for \'%s\'" }
|
||||
14032D:string { "FUSE open file \'%s\' (%s)" }
|
||||
14033D:string { "FUSE open directory \'%s\'" }
|
||||
14034D:string { "FUSE release directory \'%s\'" }
|
||||
14035D:string { "FUSE release file \'%s\'" }
|
||||
14036D:string { "FUSE fsync \'%s\'" }
|
||||
14037D:string { "FUSE flush \'%s\'" }
|
||||
14038D:string { "FUSE set times \'%s\'" }
|
||||
14039D:string { "FUSE chmod \'%s\'" }
|
||||
14040D:string { "FUSE create file \'%s\'" }
|
||||
14041D:string { "FUSE mkdir \'%s\'" }
|
||||
14042D:string { "FUSE truncate \'%s\' (length=%lld)" }
|
||||
14043D:string { "FUSE ftruncate \'%s\' (length=%lld)" }
|
||||
14044D:string { "FUSE unlink \'%s\'" }
|
||||
14045D:string { "FUSE rmdir \'%s\'" }
|
||||
14046D:string { "FUSE rename \'%s\' to \'%s\'" }
|
||||
14047D:string { "FUSE readdir \'%s\'" }
|
||||
14048D:string { "FUSE write \'%s\' (offset=%lld, count=%zu)" }
|
||||
14049D:string { "FUSE read \'%s\' (offset=%lld, count=%zu)" }
|
||||
14050D:string { "FUSE setxattr \'%s\' (name=\'%s\', size=%zu)" }
|
||||
14051D:string { "FUSE getxattr \'%s\' (name=\'%s\')" }
|
||||
14052D:string { "FUSE listxattr \'%s\'" }
|
||||
14053D:string { "FUSE removexattr \'%s\' (name=\'%s\')" }
|
||||
14054E:string { "Failed to load tape drive plug-in (%d)" }
|
||||
14055E:string { "Failed to load I/O scheduler plug-in (%d)" }
|
||||
14056E:string { "No driver plug-in configured and no default found" }
|
||||
14057E:string { "Failed to load kmi plug-in (%d)" }
|
||||
14058I:string { "%s version %s" }
|
||||
//unused 14059E:string { "No changer plug-in configured and no default found" }
|
||||
14060E:string { "Failed to convert the sync time (%s)" }
|
||||
14061E:string { "Unknown type of sync (%s)" }
|
||||
14062E:string { "Cannot mount. Sync time must be a non-zero positive number." }
|
||||
14063I:string { "Sync type is \"%s\", Sync time is %ld sec" }
|
||||
14064I:string { "Sync type is \"%s\"" }
|
||||
14065E:string { "Unexpected sync type (%d)" }
|
||||
//unused 14066E:string { "Sync time should be a positive value" }
|
||||
14067E:string { "Failed to convert the sync time because it is too big or too small (%s)" }
|
||||
14068E:string { "Specified sync time is too big or too small (%ld)" }
|
||||
//unused 14069E:string { "Failed to load changer plug-in (%d)" }
|
||||
//unused 14070E:string { "The backend \'%s\' does not have a default device. Specify one using the \"-o changer_devname=\" option." }
|
||||
14071I:string { "Medium has no space to write data. Mounting as read-only." }
|
||||
14072I:string { "Rollback mount is specified. Mounting as read-only at generation %d." }
|
||||
14073I:string { "Index partition has no space to write index. Mounting as read-only." }
|
||||
14074I:string { "Data partition has no space to write index. Mounting as read-only." }
|
||||
14075E:string { "Cannot set up tape drive" }
|
||||
14076I:string { "Attempting to mount the cartridge without EOD existence check" }
|
||||
14077I:string { "The cartridge will be mounted as read-only" }
|
||||
// unused 14078E:string { "CM in the cartridge might be corrupted. Try to run ltfs with the \"-o force_mount_no_eod\" option." }
|
||||
14079E:string { "Invalid uid \'%s\' (must be a positive integer or valid user name)" }
|
||||
14080E:string { "Invalid gid \'%s\' (must be a positive integer or valid group name)" }
|
||||
//unused 14081E:string { "Failed to create a dentry cache view for cartridge \"%s\"" }
|
||||
//unused 14082E:string { "Failed to enable dentry cache for cartridge \"%s\"" }
|
||||
//unused 14083E:string { "Failed to remove existing dentry cache for cartridge \"%s\" (%d)" }
|
||||
//unused 14084E:string { "Failed to load the dentry cache module (%d)" }
|
||||
//unused 14085E:string { "Could not initialize the dentry cache manager (%d)" }
|
||||
//unused 14086E:string { "Could not configure the dentry cache manager (%d)" }
|
||||
//unused 14087E:string { "Failed to unload the dentry cache module (%d)" }
|
||||
//unused 14088E:string { "Failed to destroy the dentry cache manager (%d)" }
|
||||
14089E:string { "Could not initialize the kmi plug-in." }
|
||||
14090E:string { "KMI backend option parsing failed" }
|
||||
14091E:string { "Invalid generation for rollback mount is specified. %s." }
|
||||
14092I:string { "Symbolic link type is (%s)" }
|
||||
14093E:string { "Unknown type of symbolic link (%s)" }
|
||||
14094E:string { "Cannot get mount point (%d)" }
|
||||
14095I:string { "Set the tape device write-anywhere mode to avoid cartridge ejection" }
|
||||
|
||||
//unused 14100W:string { "The device name specified with \'-o devname\' is ignored in library mode" }
|
||||
//unused 14101W:string { "The eject option is not available in library mode" }
|
||||
//unused 14102E:string { "Time-based sync is not available in library mode" }
|
||||
//unused 14103E:string { "Cannot specify both a single drive name and a changer device name" }
|
||||
14104I:string { "Launched by \"%s\"" }
|
||||
14105I:string { "%s" }
|
||||
14106I:string { "GCC version is %s" }
|
||||
//unused 14107W:string { "d->dentry_proxy is NULL unexpectedly: %s" }
|
||||
//unused 14108E:string { "The single drive feature is not supported in this binary." }
|
||||
14109E:string { "Minimum pool size must be a positive number" }
|
||||
14110E:string { "Maximum pool size must be a positive number" }
|
||||
14111I:string { "Initial setup completed successfully" }
|
||||
14112I:string { "Invoke 'mount' command to check the result of final setup" }
|
||||
14113I:string { "Specified mount point is listed if succeeded" }
|
||||
14114E:string { "Cannot initialize the open file table" }
|
||||
14115E:string { "Invalid scsi_append_only_mode option: %s" }
|
||||
14116E:string { "This medium is not supported (%d)" } // 2.2.0.2
|
||||
14117W:string { "Ignored setting modify and access time to 0" }
|
||||
14118I:string { "Incompatible medium. Mounting read-only." }
|
||||
|
||||
// 14150 - 14199 are reserved for LE+
|
||||
|
||||
14200E:string { "Missing mountpoint parameter" }
|
||||
14201E:string { "Mountpoint \"%s\" specified but not accessible" }
|
||||
|
||||
// Help messages
|
||||
14400I:string { "usage: %s mountpoint [options]" }
|
||||
14401I:string { "LTFS options:" }
|
||||
14402I:string { " -o devname=<dev> Tape device (default: %s)" }
|
||||
14403I:string { " -o devname=<dev> Tape device" }
|
||||
14404I:string { " -o work_directory=<dir> LTFS work directory (default: %s)" }
|
||||
14405I:string { " -o trace Enable diagnostic output (same as verbose=3)" }
|
||||
14406I:string { " -a Advanced help, including standard FUSE options"}
|
||||
14407I:string { " -V, --version Output version information and exit" }
|
||||
14408I:string { " -h, --help Display this help and exit" }
|
||||
14409I:string { "FUSE options:" }
|
||||
14410I:string { " -o umask=M Set file permissions (octal)" }
|
||||
14411I:string { " -o uid=N Set file owner" }
|
||||
14412I:string { " -o gid=N Set file group" }
|
||||
14413I:string { " -o config_file=<file> Configuration file (default: %s)" }
|
||||
14414I:string { " -o atime Update index if only access times have changed" }
|
||||
14415I:string { " -o tape_backend=<name> tape backend to use (default: %s)" }
|
||||
14416I:string { " -o iosched_backend=<name> I/O scheduler implementation to use (default: %s, use \"none\" to disable)" }
|
||||
14417I:string { " -o umask=<mode> Override default permission mask (3 octal digits, default: 000)" }
|
||||
14418I:string { " -o fmask=<mode> Override file permission mask (3 octal digits, default: 000)" }
|
||||
14419I:string { " -o dmask=<mode> Override directory permission mask (3 octal digits, default: 000)" }
|
||||
14420I:string { " -o min_pool_size=<num> Minimum write cache pool size. Cache objects are 1 MB each (default: %d)" }
|
||||
14421I:string { " -o max_pool_size=<num> Maximum write cache pool size. Cache objects are 1 MB each (default: %d)" }
|
||||
14422I:string { " -o rules=<rules> Rules for choosing files to write to the index partition.\n"
|
||||
" The syntax of the rule argument is:\n"
|
||||
" size=1M\n"
|
||||
" size=1M/name=pattern\n"
|
||||
" size=1M/name=pattern1:pattern2:pattern3\n"
|
||||
" A file is written to the index partition if it is no larger\n"
|
||||
" than the given size AND matches at least one of the name\n"
|
||||
" patterns (if specified). The size argument accepts K, M, and G\n"
|
||||
" suffixes. Name patterns might contain the special characters\n"
|
||||
" '?' (match any single character) and '*' (match zero or more\n"
|
||||
" characters)." }
|
||||
14423I:string { " -o quiet Disable informational messages (same as verbose=1)" }
|
||||
14424I:string { " -o fulltrace Enable full call tracing (same as verbose=4)" }
|
||||
14425I:string { " -o eject Eject the cartridge after unmount" }
|
||||
// Reserved 14426I
|
||||
14427I:string { " -o sync_type=<type> Specify sync type (default: time@5)\n"
|
||||
" <type> should be specified as follows:\n"
|
||||
" time@min: LTFS attempts to write an index each 'min' minutes.\n"
|
||||
" min should be a decimal number from 1 to %ld\n"
|
||||
" It is equivalent to \"-o sync_type=unmount\" when 0 is specified\n"
|
||||
" (default: min=5)\n"
|
||||
" close: LTFS attempts to write an index when a file is closed\n"
|
||||
" unmount: LTFS attempts to write an index when the medium is unmounted" }
|
||||
|
||||
// Reserved 14428I
|
||||
// Reserved 14429I
|
||||
// Reserved 14430I
|
||||
// Reserved 14431E
|
||||
// Reserved 14432I
|
||||
// Reserved 14433E
|
||||
// Reserved 14434E
|
||||
// Reserved 14435I
|
||||
14436I:string { " -o device_list Show available tape devices" }
|
||||
14437I:string { " -o rollback_mount=<gen> Attempt to mount on previous index generation (read-only mount)" }
|
||||
// Reserved 14438I
|
||||
14439I:string { " -o noeject Do not eject the cartridge after unmount (default)" }
|
||||
14440I:string { " -o noatime Do not update index if only access times have changed (default)" }
|
||||
14441I:string { " -o verbose=<num> Override output verbosity directly (default: %d)" }
|
||||
// Reserved 14442I
|
||||
14443I:string { " -o force_mount_no_eod Skip EOD existence check when mounting (read-only mount)\n"
|
||||
" Only use for a CM corrupted medium" }
|
||||
// Reserved 14444I
|
||||
// Reserved 14445I
|
||||
// Reserved 14446I
|
||||
// Reserved 14447I
|
||||
14448I:string { " -o release_device Clear device reservation (should be specified with -o devname"}
|
||||
// Reserved 14449I
|
||||
// Reserved 14450I
|
||||
// Reserved 14451I
|
||||
// Reserved 14454I
|
||||
14455I:string { " -o kmi_backend=<name> Key manager interface implementation to use (default: %s, use \"none\" to disable)" }
|
||||
14456I:string { " -o capture_index Capture latest index to work directory at unmount" }
|
||||
// Reserved 14457I
|
||||
// Reserved 14458I
|
||||
// Reserved 14459I
|
||||
// Reserved 14460I
|
||||
14461I:string { " -o symlink_type=<type> Specify symbolic link type (default: posix)\n"
|
||||
" <type> should be specified with one of the following values:\n"
|
||||
" posix: LTFS behavior is same as standard symbolic link\n"
|
||||
" live: LTFS replaces mount point path by current mount point" }
|
||||
// Reserved 14462I
|
||||
14463I:string { " -o scsi_append_only_mode=<on|off> Set the tape device append-only mode (default=on)" }
|
||||
14464I:string { "%s version %s (build %d)" } // Used by HPE-SOS
|
||||
// Reserved 14465I
|
||||
// Reserved 14466I
|
||||
14467I:string { " -o syslogtrace Enable diagnostic output to stderr and syslog(same as verbose=303)" }
|
||||
// Reserved 14468I // 2.2.0.2
|
||||
|
||||
// Added for windows as currently we are not supporting sync_type as close
|
||||
14480I:string { " -o sync_type=<type> Specify sync type (default: time@5)\n"
|
||||
" <type> should be specified as follows:\n"
|
||||
" time@min: LTFS attempts to write an index each 'min' minutes.\n"
|
||||
" min should be a decimal number from 1 to %ld\n"
|
||||
" It is equivalent to \"-o sync_type=unmount\" when 0 is specified\n"
|
||||
" (default: min=5)\n"
|
||||
" unmount: LTFS attempts to write an index when the medium is unmounted" }
|
||||
14481I:string { "The Permanent write error bit is set in MAM " }
|
||||
14482E:string { "Failed to find a valid index from either partition to do a read-only mount as PWE is set in MAM" }
|
||||
14483I:string { "The Data Partition Permanent write error bit is set in MAM " }
|
||||
14484E:string { "Failed to find a valid index from either partition to do a read-only mount as DPPWE is set in MAM" }
|
||||
14485I:string { "The Index Partition Permanent write error bit is set in MAM " }
|
||||
14486E:string { "Failed to find a valid index from either partition to do a read-only mount as IPPWE is set in MAM" }
|
||||
14487I:string { "The Data and Index Partition Permanent write error bit is set in MAM " }
|
||||
14488E:string { "Failed to find a valid index from either partition to do a read-only mount as DP_IP_PWE is set in MAM" }
|
||||
14489E:string { "Unable to mount, out of memory or mutexes" }
|
||||
}
|
||||
}
|
||||
38
ltfs/messages/bin_ltfsck/en.txt
Normal file
38
ltfs/messages/bin_ltfsck/en.txt
Normal file
@@ -0,0 +1,38 @@
|
||||
//
|
||||
// %Z% %I% %W% %G% %U%
|
||||
//
|
||||
// ZZ_Copyright_BEGIN
|
||||
//
|
||||
//
|
||||
// Licensed Materials - Property of IBM
|
||||
//
|
||||
// IBM Linear Tape File System Single Drive Edition Version 2.2.0.2 for Linux and Mac OS X
|
||||
//
|
||||
// Copyright IBM Corp. 2010, 2014
|
||||
//
|
||||
// This file is part of the IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X
|
||||
// (formally known as IBM Linear Tape File System)
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is free software;
|
||||
// you can redistribute it and/or modify it under the terms of the GNU Lesser
|
||||
// General Public License as published by the Free Software Foundation,
|
||||
// version 2.1 of the License.
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is distributed in the
|
||||
// hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
|
||||
// implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
// See the GNU Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
// or download the license from <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
//
|
||||
// ZZ_Copyright_END
|
||||
//
|
||||
|
||||
en:table {
|
||||
// This resource intentionally left blank.
|
||||
}
|
||||
|
||||
38
ltfs/messages/bin_ltfsck/en_US.txt
Normal file
38
ltfs/messages/bin_ltfsck/en_US.txt
Normal file
@@ -0,0 +1,38 @@
|
||||
//
|
||||
// %Z% %I% %W% %G% %U%
|
||||
//
|
||||
// ZZ_Copyright_BEGIN
|
||||
//
|
||||
//
|
||||
// Licensed Materials - Property of IBM
|
||||
//
|
||||
// IBM Linear Tape File System Single Drive Edition Version 2.2.0.2 for Linux and Mac OS X
|
||||
//
|
||||
// Copyright IBM Corp. 2010, 2014
|
||||
//
|
||||
// This file is part of the IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X
|
||||
// (formally known as IBM Linear Tape File System)
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is free software;
|
||||
// you can redistribute it and/or modify it under the terms of the GNU Lesser
|
||||
// General Public License as published by the Free Software Foundation,
|
||||
// version 2.1 of the License.
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is distributed in the
|
||||
// hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
|
||||
// implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
// See the GNU Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
// or download the license from <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
//
|
||||
// ZZ_Copyright_END
|
||||
//
|
||||
|
||||
en_US:table {
|
||||
// This resource intentionally left blank.
|
||||
}
|
||||
|
||||
207
ltfs/messages/bin_ltfsck/root.txt
Normal file
207
ltfs/messages/bin_ltfsck/root.txt
Normal file
@@ -0,0 +1,207 @@
|
||||
//
|
||||
// %Z% %I% %W% %G% %U%
|
||||
//
|
||||
// ZZ_Copyright_BEGIN
|
||||
//
|
||||
//
|
||||
// Licensed Materials - Property of IBM
|
||||
//
|
||||
// IBM Linear Tape File System Single Drive Edition Version 2.2.0.2 for Linux and Mac OS X
|
||||
//
|
||||
// Copyright IBM Corp. 2010, 2014
|
||||
//
|
||||
// This file is part of the IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X
|
||||
// (formally known as IBM Linear Tape File System)
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is free software;
|
||||
// you can redistribute it and/or modify it under the terms of the GNU Lesser
|
||||
// General Public License as published by the Free Software Foundation,
|
||||
// version 2.1 of the License.
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is distributed in the
|
||||
// hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
|
||||
// implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
// See the GNU Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
// or download the license from <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
//
|
||||
// ZZ_Copyright_END
|
||||
//
|
||||
|
||||
// Messages for ltfsck.
|
||||
root:table {
|
||||
messages:table {
|
||||
start_id:int { 16000 }
|
||||
end_id: int { 16499 }
|
||||
|
||||
16000I:string { "Starting ltfsck, %s version %s, log level %d" }
|
||||
16001E:string { "Cannot allocate LTFS volume structure" }
|
||||
16002E:string { "Option validation failed" }
|
||||
16003E:string { "Must provide search criteria using -g" }
|
||||
16004E:string { "Unexpected condition: str_gen is not specified" }
|
||||
16005E:string { "Invalid generation number %s" }
|
||||
16006I:string { "Rolling back to generation %d" }
|
||||
//unused 16007E:string { "Invalid time string %s" }
|
||||
//unused 16008D:string { "Specified time is %04d-%02d-%02d %02d:%02d:%02d.%09ld %s" }
|
||||
16009E:string { "Must provide device name" }
|
||||
16010E:string { "Cannot load backend \'%s\' (%d)" }
|
||||
16011E:string { "Cannot open device \'%s\'" }
|
||||
//unused 16012E:string { "Cannot load medium" }
|
||||
//unused 16013E:string { "Cannot take the device lock (%d)" }
|
||||
16014I:string { "Checking LTFS file system on \'%s\'" }
|
||||
16015I:string { "Rolling back LTFS file system on \'%s\'" }
|
||||
16016E:string { "Invalid search mode" }
|
||||
16017I:string { "Verify rollback point on \'%s\'" }
|
||||
16018I:string { "Listing LTFS file system rollback points on \'%s\'" }
|
||||
16019E:string { "Invalid operation mode" }
|
||||
16020W:string { "Failed to close the device (%d)" }
|
||||
16021E:string { "Volume is inconsistent and was not corrected" }
|
||||
16022I:string { "Volume is consistent" }
|
||||
16023I:string { "LTFS volume information:" }
|
||||
16024I:string { "Volser (bar code) : %s" }
|
||||
16025I:string { "Volume UUID : %s" }
|
||||
16026I:string { "Format time : %04d-%02d-%02d %02d:%02d:%02d.%09ld %s" }
|
||||
16027I:string { "Block size : %lu" }
|
||||
16028I:string { "Compression : %s" }
|
||||
16029I:string { "Index partition : ID = %c, SCSI Partition = %u" }
|
||||
16030I:string { "Data partition : ID = %c, SCSI Partition = %u" }
|
||||
16031I:string { "Data placement policy information:" }
|
||||
16032I:string { "Size threshold : %llu" }
|
||||
16033I:string { "Name pattern : %s" }
|
||||
16034I:string { "Policy update : %s" }
|
||||
//unused 16035E:string { "Cannot traverse indexes: failed to seek EOD on partition %c (%d)" }
|
||||
//unused 16036E:string { "Cannot traverse indexes: failed to space back 1 file mark (%d)" }
|
||||
//unused 16037E:string { "Cannot traverse indexes: failed to space forward 1 file mark (%d)" }
|
||||
//unused 16038I:string { "Partition %c ends in a valid index, but no trailing file mark was found. Closing the partition with a file mark." }
|
||||
//unused 16039D:string { "Partition %c ends in a file mark" }
|
||||
//unused 16040I:string { "Partition %c ends in a valid index, but no trailing file mark was found." }
|
||||
//unused 16041D:string { "Partition %c ends in a valid index" }
|
||||
//Unused 16042E:string { "Cannot traverse indexes: callback function failed (%d)" }
|
||||
//unused 16043I:string { "Partition %c does not end in a valid index" }
|
||||
//unused 16044E:string { "Cannot traverse indexes: failed to space back file marks (%d)" }
|
||||
16045D:string { "Erasing history from (%c, %llu)" }
|
||||
16046D:string { "Rolling back %s: (%c, %llu)" }
|
||||
//unused 16047E:string { "Cannot read volume: failed to load the tape (%d)" }
|
||||
//unused 16048E:string { "Cannot read volume: failed to read the partition labels (%d)" }
|
||||
//unused 16049E:string { "Cannot read volume: failed to set compression (%d)" }
|
||||
16050D:string { "Erase history: spacing to end of index" }
|
||||
16051E:string { "Cannot erase history: failed to space forward 1 file mark (%d)" }
|
||||
16052D:string { "Erase history: spacing back and writing a file mark" }
|
||||
16053E:string { "Cannot erase history: failed to space back 1 file mark (%d)" }
|
||||
16054E:string { "Cannot erase history: failed to write a file mark (%d)" }
|
||||
16055E:string { "Cannot roll back the data partition: failed to erase history (%d)" }
|
||||
16056E:string { "Cannot roll back the data partition: failed to write an index (%d)" }
|
||||
16057E:string { "Cannot roll back: the medium is read-only" }
|
||||
16058I:string { "Rolling back from the index partition" }
|
||||
16059E:string { "Cannot roll back the index partition: failed to erase history (%d)" }
|
||||
16060E:string { "Cannot roll back the index partition: failed to write an index (%d)" }
|
||||
16061E:string { "Cannot roll back: invalid partition ID %c" }
|
||||
16062I:string { "Roll back from the data partition" }
|
||||
16063I:string { "Specified rollback point is the current index. The volume is consistent. No operation is required." }
|
||||
//unused 16064I:string { "Specified rollback point is the current index, but there are extra blocks on the medium" }
|
||||
//unused 16065I:string { "Restoring volume consistency based on the following index." }
|
||||
//unused 16066I:string { "At least one index is not at the end of its partition." }
|
||||
16067I:string { "Rolling back based on the following index chain." }
|
||||
16068E:string { "Cannot roll back: found 2 or more target indexes in one partition (%d)" }
|
||||
//unused 16069E:string { "Cannot roll back: found 3 or more target indexes" }
|
||||
16070E:string { "Cannot roll back: failed to load the volume (%d)" }
|
||||
16071E:string { "Cannot roll back: failed to traverse the index partition (%d)" }
|
||||
16072E:string { "Cannot roll back: failed to traverse the data partition (%d)" }
|
||||
16073E:string { "Cannot roll back: failed to find indexes" }
|
||||
16074E:string { "Cannot list rollback points: failed to load the volume (%d)" }
|
||||
16075E:string { "Cannot list rollback points: failed to traverse the index partition (%d)" }
|
||||
16076E:string { "Cannot list rollback points: failed to traverse the data partition (%d)" }
|
||||
//unused 16077I:string { "Valid indexes:" }
|
||||
//unused 16078I:string { "No indexes found" }
|
||||
16079E:string { "Cannot roll back: failed to save index partition append position (%d)" }
|
||||
16080E:string { "Cannot check volume (%d)" }
|
||||
16081D:string { "Latest index generation is %d (%c, %llu)" }
|
||||
16082I:string { "Saving latest index to data partition to save history" }
|
||||
16083I:string { "List indexes in forward direction strategy" }
|
||||
16084I:string { "List indexes in backward direction strategy" }
|
||||
16085E:string { "Unexpected traverse strategy." }
|
||||
16086I:string { "Volume is rolled back successfully" }
|
||||
16087E:string { "Volume is inconsistent. Try to recover consistency with ltfsck first." }
|
||||
16088I:string { "Launched by \"%s\"" }
|
||||
16089I:string { "%s" }
|
||||
16090I:string { "GCC version is %s" }
|
||||
16091E:string { "Cannot recover missing EOD (%d)" }
|
||||
16092E:string { "Cannot set up tape drive (%s)"}
|
||||
16093E:string { "Cannot recover the cartridge with ltfsck" }
|
||||
16094E:string { "CM in the cartridge might be corrupted. Try to run ltfs with the \"-o force_mount_no_eod\" option." }
|
||||
// unused 16095
|
||||
16096W:string { "Both EODs are missing. Attempt to list index information." }
|
||||
16097E:string { "Both EODs are missing. Roll back operation is not permitted." }
|
||||
16098E:string { "Cannot roll back the cartridge: found unsupported index version" }
|
||||
16099E:string { "Use the latest version of LTFS software" }
|
||||
16100E:string { "Cannot recover the cartridge: found unsupported index version" }
|
||||
16101E:string { "Please use the latest version os LTFS software or --deep-recovery option." }
|
||||
16102E:string { "Cannot open key manager interface backend \'%s\'" }
|
||||
16103W:string { "Cannot unload key manager interface backend" }
|
||||
16104E:string { "Could not initialize the key manager interface plug-in. \'%s\' (%d)" }
|
||||
16105E:string { "Key manager interface backend option parsing failed" }
|
||||
16106E:string { "Tape backend option parsing failed" }
|
||||
16107E:string { "Unknown option '%s %s'" }
|
||||
16108I:string { "%s version %s" }
|
||||
16109E:string { "This operation is not allowed on this medium (%s)" }
|
||||
16110E:string { "The --salvage-rollback-points option was specified against a normal cartridge." }
|
||||
16111E:string { "Cannot roll back: incompatible medium" }
|
||||
16112E:string { "Cannot repair: incompatible medium" }
|
||||
// 2.2.0.2
|
||||
|
||||
// Help messages
|
||||
16400I:string { "Usage: %s [options] filesys" }
|
||||
16401I:string { "filesys Device file for the tape drive" }
|
||||
16402I:string { "Available options are:" }
|
||||
16403I:string { " -g, --generation=<generation> Specify the generation to roll back" }
|
||||
16404I:string { " -r, --rollback Roll back to the point specified by -g" }
|
||||
16405I:string { " -n, --no-rollback Do not roll back. Verify the point specified by -g (default)" }
|
||||
16406I:string { " -f, --full-recovery Recover extra data blocks into directory %s" }
|
||||
16407I:string { " -l, --list-rollback-points List rollback points" }
|
||||
16408I:string { " -j, --erase-history Erase history at rollback" }
|
||||
16409I:string { " -k, --keep-history Keep history at rollback (default)" }
|
||||
16410I:string { " -q, --quiet Suppress informational messages" }
|
||||
16411I:string { " -t, --trace Enable diagnostic output" }
|
||||
16412I:string { " -h, --help This help" }
|
||||
16413I:string { " -p, --advanced-help Full help, including advanced options" }
|
||||
16414I:string { " -i, --config=<file> Use the specified configuration file (default: %s)" }
|
||||
16415I:string { " -e, --backend=<name> Override the default tape device backend" }
|
||||
16416I:string { " -x, --fulltrace Enable full function call tracing (slow)" }
|
||||
//unused 16417I
|
||||
//unused 16418I:string { " -t, --time=<time> Specify the time to roll back" }
|
||||
//unused 16419I:string { " Time value should be \"yyyy-mm-dd HH:MM:SS.nanosec\"" }
|
||||
16420I:string { " -v, --traverse=<strategy> Set traverse mode for listing roll back points. Strategy should be forward or backward. (default: backward)" }
|
||||
16421I:string { " -z, --deep-recovery Recover EOD missing cartridge.\n"
|
||||
" Some blocks might be erased, but recover to final unmount point\n"
|
||||
" with an index version of at least "2.0.0" or earlier.\n"
|
||||
" (Must be used for a cartridge that cannot be recovered by a normal option.)" }
|
||||
16422I:string { " -m, --full-index-info Display full index information (Effective only for -l option)" }
|
||||
16423I:string { " --kmi-backend=<name> Override the default key manager interface backend" }
|
||||
16424I:string { " --capture-index Capture index information to the current directory (-g is effective for this option)" }
|
||||
16425I:string { " --syslogtrace Enable diagnostic output to stderr and syslog" }
|
||||
16426I:string { " -V, --version Version information" }
|
||||
16427I:string { " --salvage-rollback-points List the rollback points of the cartridge that has no EOD" } // 2.2.0.2
|
||||
16428I:string { "Verifying the rollback point based on the index generation %d" }
|
||||
16429I:string { "Verifying on basis of the following index generation." }
|
||||
16430I:string { "Verification of the rollback point based on the index generation is completed." }
|
||||
16431I:string { "Provide valid generation number" }
|
||||
16432I:string { "Usage example:" }
|
||||
16433I:string { " %s %s" }
|
||||
16434I:string { " %s %s %s %s" }
|
||||
16435E:string { "This operation is not allowed, Volume is locked" }
|
||||
16436E:string { "This operation is not allowed, Volume is permanently locked" }
|
||||
16437I:string { "Volume corrected, Setting the LTFS Volume to be unlocked" }
|
||||
16438E:string { "LTFS volume corrected but failed to unlock the volume" }
|
||||
16439E:string { "Unable to repair volume belonging to Archive Manager spanned set" }
|
||||
16440I:string { " -w, --list-open-files List open for write files at rollback points. (Effective only for -l option)" }
|
||||
16441I:string { " -c, --count-open-files Count open for write files at rollback points. (Effective only for -l option)" }
|
||||
16442I:string { " -F, --Force Force rollback when there are files open for write in the index. (Effective only for -r option)" }
|
||||
16443E:string { "Rollback index has the following open for write files" }
|
||||
16444E:string { "use -F option to force rollback" }
|
||||
16445I:string { " -P, --Pipe Format the list of rollback points for consumption by another process" }
|
||||
}
|
||||
}
|
||||
38
ltfs/messages/bin_mkltfs/en.txt
Normal file
38
ltfs/messages/bin_mkltfs/en.txt
Normal file
@@ -0,0 +1,38 @@
|
||||
//
|
||||
// %Z% %I% %W% %G% %U%
|
||||
//
|
||||
// ZZ_Copyright_BEGIN
|
||||
//
|
||||
//
|
||||
// Licensed Materials - Property of IBM
|
||||
//
|
||||
// IBM Linear Tape File System Single Drive Edition Version 2.2.0.2 for Linux and Mac OS X
|
||||
//
|
||||
// Copyright IBM Corp. 2010, 2014
|
||||
//
|
||||
// This file is part of the IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X
|
||||
// (formally known as IBM Linear Tape File System)
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is free software;
|
||||
// you can redistribute it and/or modify it under the terms of the GNU Lesser
|
||||
// General Public License as published by the Free Software Foundation,
|
||||
// version 2.1 of the License.
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is distributed in the
|
||||
// hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
|
||||
// implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
// See the GNU Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
// or download the license from <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
//
|
||||
// ZZ_Copyright_END
|
||||
//
|
||||
|
||||
en:table {
|
||||
// This resource intentionally left blank.
|
||||
}
|
||||
|
||||
38
ltfs/messages/bin_mkltfs/en_US.txt
Normal file
38
ltfs/messages/bin_mkltfs/en_US.txt
Normal file
@@ -0,0 +1,38 @@
|
||||
//
|
||||
// %Z% %I% %W% %G% %U%
|
||||
//
|
||||
// ZZ_Copyright_BEGIN
|
||||
//
|
||||
//
|
||||
// Licensed Materials - Property of IBM
|
||||
//
|
||||
// IBM Linear Tape File System Single Drive Edition Version 2.2.0.2 for Linux and Mac OS X
|
||||
//
|
||||
// Copyright IBM Corp. 2010, 2014
|
||||
//
|
||||
// This file is part of the IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X
|
||||
// (formally known as IBM Linear Tape File System)
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is free software;
|
||||
// you can redistribute it and/or modify it under the terms of the GNU Lesser
|
||||
// General Public License as published by the Free Software Foundation,
|
||||
// version 2.1 of the License.
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is distributed in the
|
||||
// hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
|
||||
// implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
// See the GNU Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
// or download the license from <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
//
|
||||
// ZZ_Copyright_END
|
||||
//
|
||||
|
||||
en_US:table {
|
||||
// This resource intentionally left blank.
|
||||
}
|
||||
|
||||
150
ltfs/messages/bin_mkltfs/root.txt
Normal file
150
ltfs/messages/bin_mkltfs/root.txt
Normal file
@@ -0,0 +1,150 @@
|
||||
//
|
||||
// %Z% %I% %W% %G% %U%
|
||||
//
|
||||
// ZZ_Copyright_BEGIN
|
||||
//
|
||||
//
|
||||
// Licensed Materials - Property of IBM
|
||||
//
|
||||
// IBM Linear Tape File System Single Drive Edition Version 2.2.0.2 for Linux and Mac OS X
|
||||
//
|
||||
// Copyright IBM Corp. 2010, 2014
|
||||
//
|
||||
// This file is part of the IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X
|
||||
// (formally known as IBM Linear Tape File System)
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is free software;
|
||||
// you can redistribute it and/or modify it under the terms of the GNU Lesser
|
||||
// General Public License as published by the Free Software Foundation,
|
||||
// version 2.1 of the License.
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is distributed in the
|
||||
// hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
|
||||
// implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
// See the GNU Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
// or download the license from <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
//
|
||||
// ZZ_Copyright_END
|
||||
//
|
||||
|
||||
// Messages for mkltfs.
|
||||
root:table {
|
||||
messages:table {
|
||||
start_id:int { 15000 }
|
||||
end_id:int { 15499 }
|
||||
|
||||
15000I:string { "Starting mkltfs, %s version %s, log level %d" }
|
||||
15001E:string { "Cannot allocate LTFS volume structure" }
|
||||
15002E:string { "Option validation failed" }
|
||||
15003I:string { "Formatting device \'%s\'" }
|
||||
15004I:string { "LTFS volume blocksize: %lu" }
|
||||
15005I:string { "Index partition placement policy: %s" }
|
||||
15006D:string { "Opening the device" }
|
||||
15007D:string { "Device opened" }
|
||||
15008E:string { "Cannot open backend \'%s\'" }
|
||||
15009E:string { "Cannot open device \'%s\' (%d)" }
|
||||
15010I:string { "Creating data partition %c on SCSI partition %d" }
|
||||
15011I:string { "Creating index partition %c on SCSI partition %d" }
|
||||
15012E:string { "Failed to format the medium" }
|
||||
15013I:string { "Volume UUID is: %s" }
|
||||
15014E:string { "Cannot set policy override flag in the index (%d)" }
|
||||
15015E:string { "Cannot parse data placement rules (%d)" }
|
||||
//unused 15016E:string { "Cannot create a backup of the policy rules (%d)" }
|
||||
15019I:string { "Volume capacity is %llu GB" }
|
||||
15020D:string { "Closing the device" }
|
||||
15021W:string { "Cannot unload backend" }
|
||||
15022D:string { "Device closed" }
|
||||
15023I:string { "Formatting failed" }
|
||||
15024I:string { "Medium formatted successfully" }
|
||||
15025D:string { "Validating command line options" }
|
||||
15026E:string { "Device name must use the \'%s\' option" }
|
||||
//unused 15027E:string { "Block size must be greater than zero" }
|
||||
15028E:string { "Block size must be at least %d" }
|
||||
15029E:string { "Tape serial must be 6 characters" }
|
||||
15030E:string { "Tape serial must contain only ASCII digits and capital letters" }
|
||||
15031E:string { "Volume name must conform to file name rules" }
|
||||
//unused 15032E:string { "Data placement rules contain invalid characters" }
|
||||
//unused 15033E:string { "Data placement rules are too long" }
|
||||
15034E:string { "Cannot format data placement rules (%d)" }
|
||||
//unused 15035E:string { "Cannot parse data placement rules (%d)" }
|
||||
//unused 15036E:string { "Cannot specify name rules with a zero file size" }
|
||||
15037D:string { "Command line options are valid" }
|
||||
15038E:string { "Failed to unformat the medium" }
|
||||
15039I:string { "Unformatting failed" }
|
||||
15040I:string { "Medium unformatted successfully" }
|
||||
15041I:string { "Launched by \"%s\"" }
|
||||
15042I:string { "%s" }
|
||||
15043I:string { "GCC version is %s" }
|
||||
15044E:string { "Cannot set up tape device" }
|
||||
15045E:string { "Formatting was canceled by the user" }
|
||||
15046E:string { "Unformatting was canceled by the user" }
|
||||
15047E:string { "Medium is already formatted (%d)" } // 2.2.0.2
|
||||
15048I:string { "Need to specify -f or --force option to format this medium" }
|
||||
15049I:string { "Checking the medium (%s)" } // 2.2.0.2
|
||||
15050E:string { "Cannot open key manager interface backend \'%s\'" }
|
||||
15051W:string { "Cannot unload key manager interface backend" }
|
||||
15052E:string { "Could not initialize the key manager interface plug-in. \'%s\' (%d)" }
|
||||
15053E:string { "Key manager interface backend option parsing failed" }
|
||||
15054E:string { "Tape backend option parsing failed" }
|
||||
15055E:string { "Unknown option '%s %s'" }
|
||||
15056E:string { "Failed to decrypt the medium" }
|
||||
15057I:string { "Need to specify the correct data key or -f option to format this medium" }
|
||||
15058E:string { "Cannot set the tape attribute: %s" }
|
||||
15059I:string { "%s version %s" } // 2.2.0.2
|
||||
15060E:string { "Index criteria update is not allowed on this medium" } // 2.2.0.2
|
||||
15061E:string { "Failed to format the medium due to WORM error" } // 2.2.0.2
|
||||
15062E:string { "Failed to unformat the medium due to WORM error" } // 2.2.0.2
|
||||
|
||||
15063E:string { "Eject and write-enable the cartridge then try again." }
|
||||
15064I:string { "Cartridge in device %s will be unformatted" }
|
||||
15065I:string { "Removing LTFS format..." }
|
||||
|
||||
// Help messages
|
||||
15400I:string { "Usage: %s <options>" }
|
||||
15401I:string { "Available options are:" }
|
||||
15402I:string { " -d, --device=<name> Tape device (required)" }
|
||||
15403I:string { " -s, --tape-serial=<id> Tape serial number (6 alphanumeric ASCII characters)" }
|
||||
15404I:string { " -n, --volume-name=<name> Tape volume name (LTFS VOLUME by default)" }
|
||||
15405I:string { " -r, --rules=<rules> Rules for choosing files to write to the index partition.\n The syntax of the rule argument is:\n size=1M\n size=1M/name=pattern\n size=1M/name=pattern1:pattern2:pattern3\n A file is written to the index partition if it is no larger\n than the given size AND matches at least one of the name\n patterns (if specified). The size argument accepts K, M, and G\n suffixes. Name patterns might contain the special characters\n '?' (match any single character) and '*' (match zero or more\n characters)." }
|
||||
15406I:string { " --no-override Disallow mount-time data placement policy changes" }
|
||||
15407I:string { " -q, --quiet Suppress progress information and general messages" }
|
||||
15408I:string { " -t, --trace Enable function call tracing" }
|
||||
15409I:string { " -h, --help This help" }
|
||||
15410I:string { "Usage example:" }
|
||||
15411I:string { " %s --device=%s --rules=\"%s\"" }
|
||||
15412I:string { " -p, --advanced-help Full help, including advanced options" }
|
||||
15413I:string { " -i, --config=<file> Use the specified configuration file (default: %s)" }
|
||||
15414I:string { " -e, --backend=<name> Use the specified tape device backend (default: %s)" }
|
||||
15415I:string { " -b, --blocksize=<num> Set the LTFS record size (default: %d)" }
|
||||
15416I:string { " -c, --no-compression Disable compression on the volume" }
|
||||
15417I:string { " -x, --fulltrace Enable full function call tracing (slow)" }
|
||||
15418I:string { " -w, --wipe Restore the LTFS medium to an unpartitioned medium (format to a legacy scratch medium)" }
|
||||
15419I:string { " -k, --keep-capacity Keep the tape medium's total capacity proportion" }
|
||||
15420I:string { " -f, --force Force to format medium" }
|
||||
15421I:string { " --kmi-backend=<name> Use the specified key manager interface backend (default: %s)" }
|
||||
|
||||
// Hewlett Packard Enterprise additions
|
||||
15488E:string { "Unable to format volume belonging to Archive Manager spanned set" }
|
||||
15489E:string { "Unable to unformat volume belonging to Archive Manager spanned set" }
|
||||
|
||||
15490E:string { "Tape already contains an LTFS volume. Need -f option to force reformat" }
|
||||
15491I:string { " -f, --force Force reformat of existing LTFS volume (normally prevented)" }
|
||||
15422I:string { " --syslogtrace Enable diagnostic output to stderr and syslog" } // 2.2.0.2
|
||||
15423I:string { " -V, --version Version information" } // 2.2.0.2
|
||||
15424I:string { " --long-wipe Unformat the medium and erase any data on the tape by overwriting special data pattern.\n This operation takes over 3 hours. Once you start, you cannot interrupt it." }
|
||||
15492I:string { "This operation will result in irrecoverable loss of data on the tape (Data or LTFS formatted). \n"
|
||||
"Enter 'Y' if you agree or any other key to abort." }
|
||||
15493I:string { "Operation aborted." }
|
||||
15494E:string { "Unformat unsuccessful, tape already unformatted." }
|
||||
15495I:string { "LTFS Unformat Utility\n" }
|
||||
15496I:string { " -g, --interactive Interactive mode" }
|
||||
15497I:string { "Operation succeeded. Cartridge no longer contains a valid LTFS volume." }
|
||||
15498E:string { "Operation failed. Volume may be in a confused state.." }
|
||||
15499E:string { "Unable to open device; check name and ensure it is not in use." }
|
||||
}
|
||||
}
|
||||
38
ltfs/messages/driver_generic_file/en.txt
Normal file
38
ltfs/messages/driver_generic_file/en.txt
Normal file
@@ -0,0 +1,38 @@
|
||||
//
|
||||
// %Z% %I% %W% %G% %U%
|
||||
//
|
||||
// ZZ_Copyright_BEGIN
|
||||
//
|
||||
//
|
||||
// Licensed Materials - Property of IBM
|
||||
//
|
||||
// IBM Linear Tape File System Single Drive Edition Version 2.2.0.2 for Linux and Mac OS X
|
||||
//
|
||||
// Copyright IBM Corp. 2010, 2014
|
||||
//
|
||||
// This file is part of the IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X
|
||||
// (formally known as IBM Linear Tape File System)
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is free software;
|
||||
// you can redistribute it and/or modify it under the terms of the GNU Lesser
|
||||
// General Public License as published by the Free Software Foundation,
|
||||
// version 2.1 of the License.
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is distributed in the
|
||||
// hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
|
||||
// implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
// See the GNU Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
// or download the license from <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
//
|
||||
// ZZ_Copyright_END
|
||||
//
|
||||
|
||||
en:table {
|
||||
// This resource intentionally left blank.
|
||||
}
|
||||
|
||||
38
ltfs/messages/driver_generic_file/en_US.txt
Normal file
38
ltfs/messages/driver_generic_file/en_US.txt
Normal file
@@ -0,0 +1,38 @@
|
||||
//
|
||||
// %Z% %I% %W% %G% %U%
|
||||
//
|
||||
// ZZ_Copyright_BEGIN
|
||||
//
|
||||
//
|
||||
// Licensed Materials - Property of IBM
|
||||
//
|
||||
// IBM Linear Tape File System Single Drive Edition Version 2.2.0.2 for Linux and Mac OS X
|
||||
//
|
||||
// Copyright IBM Corp. 2010, 2014
|
||||
//
|
||||
// This file is part of the IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X
|
||||
// (formally known as IBM Linear Tape File System)
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is free software;
|
||||
// you can redistribute it and/or modify it under the terms of the GNU Lesser
|
||||
// General Public License as published by the Free Software Foundation,
|
||||
// version 2.1 of the License.
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is distributed in the
|
||||
// hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
|
||||
// implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
// See the GNU Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
// or download the license from <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
//
|
||||
// ZZ_Copyright_END
|
||||
//
|
||||
|
||||
en_US:table {
|
||||
// This resource intentionally left blank.
|
||||
}
|
||||
|
||||
142
ltfs/messages/driver_generic_file/root.txt
Normal file
142
ltfs/messages/driver_generic_file/root.txt
Normal file
@@ -0,0 +1,142 @@
|
||||
//
|
||||
// %Z% %I% %W% %G% %U%
|
||||
//
|
||||
// ZZ_Copyright_BEGIN
|
||||
//
|
||||
//
|
||||
// Licensed Materials - Property of IBM
|
||||
//
|
||||
// IBM Linear Tape File System Single Drive Edition Version 2.2.0.2 for Linux and Mac OS X
|
||||
//
|
||||
// Copyright IBM Corp. 2010, 2014
|
||||
//
|
||||
// This file is part of the IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X
|
||||
// (formally known as IBM Linear Tape File System)
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is free software;
|
||||
// you can redistribute it and/or modify it under the terms of the GNU Lesser
|
||||
// General Public License as published by the Free Software Foundation,
|
||||
// version 2.1 of the License.
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is distributed in the
|
||||
// hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
|
||||
// implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
// See the GNU Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
// or download the license from <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
//
|
||||
// ZZ_Copyright_END
|
||||
//
|
||||
|
||||
// Messages for the file backend.
|
||||
// This backend shares IDs 12000-12999 with ibmtape, iokit and the backend interface functions,
|
||||
// so be sure to make a note in messages/ltfs/root.txt whenever an ID is allocated here.
|
||||
root:table {
|
||||
messages:table {
|
||||
start_id:int { 12067 }
|
||||
end_id:int { 12499 }
|
||||
|
||||
12127E:string { "Unrecognized space type" }
|
||||
|
||||
12152D:string { "Backend %s: (%llu, %llu)" }
|
||||
12153D:string { "Backend %s" }
|
||||
12154D:string { "Backend %s: %llu" }
|
||||
12155D:string { "Backend %s: (%llu, %llu) FM = %llu" }
|
||||
|
||||
12158E:string { "Cannot write attribute: failed to create file (%d)" }
|
||||
12159E:string { "Cannot write attribute: failed to write file (%d)" }
|
||||
//unused 12160E:string { "Cannot open device: path does not exist or is not a directory" }
|
||||
12161D:string { "Backend read: %u bytes (from position=(%u, %llu), FMs %llu)" }
|
||||
12162E:string { "Cannot read: unit not ready" }
|
||||
12163E:string { "Cannot read: already at EOD" }
|
||||
12164E:string { "Cannot read: check for file mark failed (%d)" }
|
||||
12165E:string { "Cannot read: check for record failed (%d)" }
|
||||
12166E:string { "Cannot read: failed to open file (%d)" }
|
||||
12167E:string { "Cannot read: failed to read file (%d)" }
|
||||
12168E:string { "Cannot read: failed to close file (%d)" }
|
||||
12169D:string { "Backend read: returning %zd bytes" }
|
||||
12170E:string { "Cannot read: no block at current position" }
|
||||
12171D:string { "Backend write: %u bytes (at position=(%u, %llu), FMs %llu)" }
|
||||
12172E:string { "Cannot write: unit not ready" }
|
||||
12173E:string { "Cannot write: null input buffer" }
|
||||
12174E:string { "Cannot write: requested size (%u) exceeds maximum block size (%u)" }
|
||||
12175E:string { "Cannot write: failed to remove current record (%d)" }
|
||||
12176E:string { "Cannot write: failed to set write pass (%d)" }
|
||||
12177E:string { "Cannot write: failed to generate file name" }
|
||||
12178E:string { "Cannot write: failed to create file \'%s\' (%d)" }
|
||||
12179E:string { "Cannot write: failed to write file (%d)" }
|
||||
12180E:string { "Cannot write: failed to close file (%d)" }
|
||||
12181E:string { "Cannot write: failed to update EOD (%d)" }
|
||||
12182D:string { "Backend write file marks: %u (at position=(%u, %llu), FMs %llu)" }
|
||||
12183E:string { "Cannot write file marks: unit not ready" }
|
||||
12184E:string { "Cannot write file marks: failed to set write pass (%d)" }
|
||||
12185E:string { "Cannot write file marks: failed to remove current record (%d)" }
|
||||
12186E:string { "Cannot write file marks: failed to generate file name" }
|
||||
12187E:string { "Cannot write file marks: failed to create file \'%s\' (%d)" }
|
||||
12188E:string { "Cannot write file marks: failed to close file (%d)" }
|
||||
12189E:string { "Cannot write file marks: failed to update EOD (%d)" }
|
||||
12190E:string { "Cannot rewind: unit not ready" }
|
||||
12191E:string { "Cannot locate: unit not ready" }
|
||||
12192E:string { "Cannot locate: invalid partition %lu" }
|
||||
12193E:string { "Cannot locate: failed to generate file name" }
|
||||
12194E:string { "Cannot space: unit not ready" }
|
||||
12195E:string { "Cannot space: failed to generate file name" }
|
||||
12196E:string { "Cannot erase: unit not ready" }
|
||||
12197D:string { "Erase partition %lu" }
|
||||
12198E:string { "Cannot load: failed to find EOD on partition %u (%d)" }
|
||||
12199E:string { "Cannot load: failed to get write pass" }
|
||||
12200E:string { "Cannot read position: unit not ready" }
|
||||
12201E:string { "Cannot format: must issue command from partition 0, block 0" }
|
||||
12202E:string { "Cannot format: unknown format type" }
|
||||
12203E:string { "Cannot get remaining capacity: unit not ready" }
|
||||
12204E:string { "Device already reserved" }
|
||||
12205E:string { "Cannot lock medium: unit not ready" }
|
||||
12206E:string { "Cannot unlock medium: unit not ready" }
|
||||
12207W:string { "Cannot read attribute: failed to open file (%d)" }
|
||||
12208W:string { "Cannot read attribute: failed to read file (%d)" }
|
||||
12209D:string { "Backend write attribute %04x, size=%u" }
|
||||
12210E:string { "Cannot write attribute: failed to generate file name" }
|
||||
12211E:string { "Cannot set compression: unit not ready" }
|
||||
//unused 12212E:string { "Cannot get parameters: unit not ready" }
|
||||
12213E:string { "Cannot find EOD: failed to generate file name" }
|
||||
12214E:string { "Cannot find EOD: failed to check for file (%d)" }
|
||||
12215E:string { "Cannot find EOD: failed to update EOD (%d)" }
|
||||
12216E:string { "Cannot update EOD: failed to remove current record (%d)" }
|
||||
12217E:string { "Cannot update EOD: failed to generate file name" }
|
||||
12218E:string { "Cannot update EOD: failed to create file (%d)" }
|
||||
12219E:string { "Cannot update EOD: failed to remove file (%d)" }
|
||||
12220E:string { "Cannot remove record: failed to make file name" }
|
||||
12221E:string { "Cannot remove record: failed to unlink file (%d)" }
|
||||
12222E:string { "Cannot space file marks: tried to space over EOD" }
|
||||
12223E:string { "Cannot space file marks: failed to generate file name" }
|
||||
12224E:string { "Cannot space file marks: failed to check for file (%d)" }
|
||||
12225E:string { "Cannot space file marks: tried to space over BOT" }
|
||||
12226E:string { "Cannot set capacity: must issue command from partition 0, block 0" }
|
||||
|
||||
12258I:string { "Opening a directory through generic file driver (%s)" }
|
||||
12259I:string { "Opening a redirecting file through generic file driver (%s)" }
|
||||
12260I:string { "Opening a device through generic file driver (%s)" }
|
||||
12261I:string { "Loading a redirecting file through generic file driver (%s)" }
|
||||
12262I:string { "Loading a directory through generic file driver (%s)" }
|
||||
12263E:string { "Cannot open redirecting file (%s)" }
|
||||
12264E:string { "Cannot get a redirect location (%s)" }
|
||||
12265I:string { "Dummy device shows empty (%s)" }
|
||||
12266E:string { "Cannot find the location pointed by redirecting file (%s)" }
|
||||
12267I:string { "Getting the device directory (%s)" }
|
||||
12268I:string { "No device directory is specified (%s)" }
|
||||
12269I:string { "Scanning the devices directory (%s)" }
|
||||
12270E:string { "Cannot open the device directory (%s)" }
|
||||
12271D:string { "Found a device (%s, %s, %s, %s)" }
|
||||
12272I:string { "FILE backend options:\n"
|
||||
" -o devname=<dev> LTFS emulation directory (default=%s)\n"
|
||||
" -o file_readonly Emulate operation in read-only mode\n"
|
||||
" -o file_p0_warning=<num> Set early warning position partition 0\n"
|
||||
" -o file_p1_warning=<num> Set early warning position partition 1\n" }
|
||||
// unused 12273E:string { "Pseudo-error on %s" }
|
||||
// unused 12274I:string { "Pseudo-error on write. Good return code, but a record to emulate a write error did not get sent to the drive." }
|
||||
}
|
||||
}
|
||||
38
ltfs/messages/driver_linux_ibmtape/en.txt
Normal file
38
ltfs/messages/driver_linux_ibmtape/en.txt
Normal file
@@ -0,0 +1,38 @@
|
||||
//
|
||||
// %Z% %I% %W% %G% %U%
|
||||
//
|
||||
// ZZ_Copyright_BEGIN
|
||||
//
|
||||
//
|
||||
// Licensed Materials - Property of IBM
|
||||
//
|
||||
// IBM Linear Tape File System Single Drive Edition Version 2.2.0.2 for Linux and Mac OS X
|
||||
//
|
||||
// Copyright IBM Corp. 2010, 2014
|
||||
//
|
||||
// This file is part of the IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X
|
||||
// (formally known as IBM Linear Tape File System)
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is free software;
|
||||
// you can redistribute it and/or modify it under the terms of the GNU Lesser
|
||||
// General Public License as published by the Free Software Foundation,
|
||||
// version 2.1 of the License.
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is distributed in the
|
||||
// hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
|
||||
// implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
// See the GNU Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
// or download the license from <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
//
|
||||
// ZZ_Copyright_END
|
||||
//
|
||||
|
||||
en:table {
|
||||
// This resource intentionally left blank.
|
||||
}
|
||||
|
||||
38
ltfs/messages/driver_linux_ibmtape/en_US.txt
Normal file
38
ltfs/messages/driver_linux_ibmtape/en_US.txt
Normal file
@@ -0,0 +1,38 @@
|
||||
//
|
||||
// %Z% %I% %W% %G% %U%
|
||||
//
|
||||
// ZZ_Copyright_BEGIN
|
||||
//
|
||||
//
|
||||
// Licensed Materials - Property of IBM
|
||||
//
|
||||
// IBM Linear Tape File System Single Drive Edition Version 2.2.0.2 for Linux and Mac OS X
|
||||
//
|
||||
// Copyright IBM Corp. 2010, 2014
|
||||
//
|
||||
// This file is part of the IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X
|
||||
// (formally known as IBM Linear Tape File System)
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is free software;
|
||||
// you can redistribute it and/or modify it under the terms of the GNU Lesser
|
||||
// General Public License as published by the Free Software Foundation,
|
||||
// version 2.1 of the License.
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is distributed in the
|
||||
// hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
|
||||
// implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
// See the GNU Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
// or download the license from <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
//
|
||||
// ZZ_Copyright_END
|
||||
//
|
||||
|
||||
en_US:table {
|
||||
// This resource intentionally left blank.
|
||||
}
|
||||
|
||||
214
ltfs/messages/driver_linux_ibmtape/root.txt
Normal file
214
ltfs/messages/driver_linux_ibmtape/root.txt
Normal file
@@ -0,0 +1,214 @@
|
||||
//
|
||||
// %Z% %I% %W% %G% %U%
|
||||
//
|
||||
// ZZ_Copyright_BEGIN
|
||||
//
|
||||
//
|
||||
// Licensed Materials - Property of IBM
|
||||
//
|
||||
// IBM Linear Tape File System Single Drive Edition Version 2.2.0.2 for Linux and Mac OS X
|
||||
//
|
||||
// Copyright IBM Corp. 2010, 2014
|
||||
//
|
||||
// This file is part of the IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X
|
||||
// (formally known as IBM Linear Tape File System)
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is free software;
|
||||
// you can redistribute it and/or modify it under the terms of the GNU Lesser
|
||||
// General Public License as published by the Free Software Foundation,
|
||||
// version 2.1 of the License.
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is distributed in the
|
||||
// hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
|
||||
// implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
// See the GNU Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
// or download the license from <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
//
|
||||
// ZZ_Copyright_END
|
||||
//
|
||||
|
||||
// Messages for the ibmtape backend.
|
||||
// This backend shares IDs 12000-12999 with the file and iokit backends and the backend
|
||||
// interface functions, so be sure to make a note in messages/ltfs/root.txt whenever an
|
||||
// ID is allocated here.
|
||||
root:table {
|
||||
messages:table {
|
||||
start_id:int { 12067 }
|
||||
end_id:int { 12499 }
|
||||
|
||||
//unused 12067E:string { "EBUSY in %s" }
|
||||
//unused 12068E:string { "EFAULT in %s" }
|
||||
//unused 12069E:string { "EIO in %s" }
|
||||
//unused 12070E:string { "ENOMEM in %s" }
|
||||
//unused 12071E:string { "ENXIO in %s" }
|
||||
//unused 12072E:string { "EPERM in %s" }
|
||||
//unused 12073E:string { "ETIMEDOUT in %s" }
|
||||
12074W:string { "Received low space warning (early warning) in %s" }
|
||||
//unused 12075E:string { "EACCES in %s" }
|
||||
//unused 12076E:string { "EOVERFLOW in %s" }
|
||||
//unused 12077E:string { "EINVAL in %s" }
|
||||
//unused 12078E:string { "ENOSYS in %s" }
|
||||
//unused 12079E:string { "EROFS in %s" }
|
||||
//unused 12080E:string { "ENOMEDIUM in %s" }
|
||||
//unused 12081E:string { "Unknown error in %s (%d)" }
|
||||
//unused 12082E:string { "Cannot read device buffer: return code of -1 without sense data" }
|
||||
//unused 12083E:string { "Cannot read device buffer or get sense data" }
|
||||
//unused 12084E:string { "Cannot read device buffer (%d)" }
|
||||
12085W:string { "Cannot retrieve drive dump: failed to create dump file (%d)" }
|
||||
12086I:string { "Saving drive dump to %s" }
|
||||
12087D:string { "Total dump data length is %lld." }
|
||||
12088D:string { "Total number of transfers is %d." }
|
||||
12089D:string { "Transferring dump data" }
|
||||
12090W:string { "Cannot retrieve drive dump: failed to read buffer (%d)" }
|
||||
12091W:string { "Cannot retrieve drive dump: failed to write to dump file (%d)" }
|
||||
12092D:string { "Transfer %d: wrote %d bytes" }
|
||||
12093W:string { "Cannot retrieve drive dump: wrote %d bytes out, expected %d" }
|
||||
//unused 12094W:string { "Cannot force drive dump (%d)" }
|
||||
//unused 12095W:string { "Cannot force drive dump: return code of -1 without sense data" }
|
||||
//unused 12096W:string { "Cannot force drive dump or get sense data" }
|
||||
12097I:string { "Taking drive dump in buffer" }
|
||||
12098I:string { "Forcing drive dump" }
|
||||
12099I:string { "Cannot get sense (%d)" }
|
||||
12100I:string { "SCSI_PASS_THROUGH: command failed (%d) %s" }
|
||||
//unused 12101W:string { "SCSI_PASS_THROUGH: sense = %02x/%02x%02x" }
|
||||
//unused 12102E:string { "SCSI_PASS_THROUGH: cannot get sense data from the drive" }
|
||||
//unused 12103W:string { "SIOC_PASS_THROUGH: command failed (%d)" }
|
||||
12104D:string { "SIOC_PASS_THROUGH: no sense info: T%02x:M%02x:H%02x:D%02x %s" }
|
||||
12105D:string { "SIOC_PASS_THROUGH: sense = %02x/%02x%02x" }
|
||||
12106D:string { "SIOC_PASS_THROUGH: pos = 0x%02x%02x%02x%02x %s" }
|
||||
12107I:string { "SIOC_PASS_THROUGH: cannot sense data from the drive" }
|
||||
12108I:string { "SIOC_PASS_THROUGH: status info: T%02x:M%02x:H%02x:D%02x %s" }
|
||||
12109I:string { "Drive cleaning required" }
|
||||
//unused 12110D:string { "Ignoring recovered error" }
|
||||
12111I:string { "Parsing log page: buffer too small, copying %zu bytes from %lx" }
|
||||
12112I:string { "Option parsing for the ibmtape backend failed (%d)" }
|
||||
12113E:string { "%s: medium is already mounted or in use" }
|
||||
12114I:string { "Cannot open device \'%s\' (%d)" }
|
||||
12115W:string { "Device \'%s\' must be opened in read-only mode" }
|
||||
12116I:string { "Cannot open device: inquiry failed (%d)" }
|
||||
12117I:string { "Unsupported %s \'%s\'" }
|
||||
12118I:string { "%s identification is \'%s\'" }
|
||||
12119D:string { "Read block: file mark detected" }
|
||||
12120D:string { "Read block: illegal length, actual = %d" }
|
||||
//unused 12121E:string { "Cannot read block: space back after illegal length failed (%d)" }
|
||||
//unused 12122E:string { "EAGAIN in read" }
|
||||
12123D:string { "EOD detected (%s): ignore sense" }
|
||||
//unused 12124E:string { "Cannot locate: return code of -1 without sense data" }
|
||||
//unused 12125E:string { "Cannot locate or get sense data" }
|
||||
//unused 12126E:string { "Cannot locate (%d)" }
|
||||
12127I:string { "Unrecognized space type" }
|
||||
//unused 12128E:string { "Cannot read position: return code of -1 without sense data" }
|
||||
//unused 12129E:string { "Cannot read position or get sense data" }
|
||||
//unused 12130E:string { "Cannot read position (%d)" }
|
||||
12131I:string { "Invalid format mode (%d)" }
|
||||
//unused 12132E:string { "Cannot format tape (%d)" }
|
||||
//unused 12133E:string { "Cannot format tape: return code of -1 without sense data" }
|
||||
//unused 12134E:string { "Cannot format tape or get sense data" }
|
||||
12135I:string { "Cannot get remaining capacity: get log page 0x%02x failed (%d)" }
|
||||
12136I:string { "Cannot get remaining capacity: failed to parse the log page" }
|
||||
12137I:string { "Cannot get remaining capacity: loop index error (%d)" }
|
||||
//unused 12138E:string { "Cannot get mode data (%d)" }
|
||||
//unused 12139E:string { "Cannot get mode data: return code of -1 without sense data" }
|
||||
//unused 12140E:string { "Cannot get mode data or get sense data" }
|
||||
//unused 12141E:string { "Cannot set mode data (%d)" }
|
||||
//unused 12142E:string { "Cannot set mode data: return code of -1 without sense data" }
|
||||
//unused 12143E:string { "Cannot set mode data or get sense data" }
|
||||
12144I:string { "Cannot read attribute (%d)" }
|
||||
//unused 12145E:string { "Cannot read attribute: return code of -1 without sense data" }
|
||||
//unused 12146E:string { "Cannot read attribute or get sense data" }
|
||||
//unused 12147E:string { "Cannot write attribute (%d)" }
|
||||
//unused 12148E:string { "Cannot write attribute: return code of -1 without sense data" }
|
||||
//unused 12149E:string { "Cannot write attribute or get sense data" }
|
||||
12150D:string { "Backend %s: %zu bytes %s" }
|
||||
12151D:string { "Backend %s: %zu %s" }
|
||||
12152D:string { "Backend %s: (%llu, %llu) %s" }
|
||||
12153D:string { "Backend %s %s" }
|
||||
12154D:string { "Backend %s: %llu %s" }
|
||||
12155D:string { "Backend %s: (%llu, %llu) FM = %llu %s" }
|
||||
12156D:string { "Backend %s: %d %s" }
|
||||
12157I:string { "Unsupported cartridge type (0x%x)" }
|
||||
//unused 12157D:string { "Backend %s: (%lu, %u)" }
|
||||
12158I:string { "Opening a device through ibmtape driver (%s)" }
|
||||
12159I:string { "Firmware revision is %s" }
|
||||
12160I:string { "%s serial is %s" }
|
||||
12161I:string { "Cannot open device: inquiry 0x%x failed (%d)" }
|
||||
12162I:string { "Vendor ID is %s" }
|
||||
//unused 12163D:string { "Invalid field in CDB detected while reading coherency page in MAM: ignore sense" }
|
||||
12164W:string { "Cannot detect lin_tape version" }
|
||||
12165I:string { "lin_tape version is %s" }
|
||||
12166W:string { "Received low space warning (programmable early warning) in %s" }
|
||||
//unused 12167E:string { "Cannot erase tape (%d)" }
|
||||
//unused 12168E:string { "Cannot erase tape: return code of -1 without sense data" }
|
||||
//unused 12169E:string { "Cannot erase tape or get sense data" }
|
||||
12170W:string { "Cannot get EOD status: failed to get log page 0x%02x (%d)" }
|
||||
12171W:string { "Cannot get EOD status: failed to parse the log page" }
|
||||
12172W:string { "Cannot get EOD status: value length or partition number is wrong %d - (%d, %d)" }
|
||||
12173I:string { "Error on %s: %s (%d) %s"}
|
||||
12174E:string { "Error on %s: msg = NULL (%d) %s"}
|
||||
//unused 12175D:string { "Error on address 0x%x: (0x%04x -> 0x%04x) msg = NULL (%d) %s"}
|
||||
//unused 12176D:string { "Error on address 0x%x: (0x%04x -> 0x%04x) %s (%d) %s"}
|
||||
//unused 12177D:string { "Error on address 0x%x: (0x%04x) msg = NULL (%d) %s"}
|
||||
//unused 12178D:string { "Error on address 0x%x: (0x%04x) %s (%d) %s"}
|
||||
//unused 12179D:string { "Error on changer command: 0x%04x -> 0x%04x"}
|
||||
//unused 12180D:string { "Error on changer command: 0x%04x"}
|
||||
12181W:string { "Drive firmware must be updated. Upgrading to %s or later is recommended." }
|
||||
12182W:string { "Drive firmware level does not correctly detect the EOD status" }
|
||||
//unused 12183I:string { "Cannot validate hardware license (%d)" }
|
||||
//unused 12184I:string { "Cannot create ITD conversion table (%d)" }
|
||||
//unused 12185D:string { "%s: %d(%04x) %d 0x%02x%02x(%d) [%d %d %d %d %d %d %d %d %d %d %d %d(%d)] %s" }
|
||||
//unused 12186D:string { "An error occurred on drive address 0x%x: (0x%04x -> 0x%04x) %s (%d)"}
|
||||
12187W:string { "Failed to get medium type code: medium type check is skipped" }
|
||||
12188I:string { "Read block: overlength condition is detected. residual = %d, actual = %d" }
|
||||
12189D:string { "Read block: underlength condition is detected. shortage = %d, actual = %d" }
|
||||
//unused 12190E:string { "Read block: unexpected condition in illegal length, %d" }
|
||||
12191I:string { "Unexpected parameter size for getting active CQ loss write (%d)" }
|
||||
12192I:string { "Cannot allocate memory in %s" }
|
||||
12193E:string { "Old lin_tape version is detected." }
|
||||
12194D:string { "IOCTL: sense = %02x/%02x%02x" }
|
||||
12195D:string { "IOCTL: pos = 0x%02x%02x%02x%02x %s" }
|
||||
12196I:string { "IOCTL: %s %d returns %d (generic %d) %s" }
|
||||
12197D:string { "IOCTL: no sense info" }
|
||||
12198D:string { "IOCTL: %s %d expected error %d" }
|
||||
12199I:string { "Cannot space: count value %d of the space command is too large" }
|
||||
12200E:string { "Logical block protection Error on write" }
|
||||
12201E:string { "Logical block protection Error on read" }
|
||||
12202E:string { "CRC check failed: Len = %d, Actual CRC = %08x, Expected CRC = %08x" }
|
||||
12203D:string { "CRC: %s ,Len = %d, CRC = %08x" }
|
||||
12204E:string { "Encryption method of the drive is not AME but %s (0x%02X)" }
|
||||
12205E:string { "Encryption feature is not supported on the drive: %d" }
|
||||
12206I:string { "Logical block protection is enabled" }
|
||||
12207I:string { "Logical block protection is disabled" }
|
||||
12208E:string { "Is medium mountable: invalid bar code %s" }
|
||||
12209D:string { "Is medium mountable: six-character bar code %s" }
|
||||
12210E:string { "Is medium mountable: unsupported tape drive type (%d) is used" }
|
||||
12211I:string { "Is medium mountable: unsupported medium %s is detected" }
|
||||
12212D:string { "Is medium mountable: drive (%s) can mount medium (%s,0x%x)" }
|
||||
12213D:string { "Is medium mountable: drive (%s) cannot mount medium (%s,0x%x)" }
|
||||
//unused 12214I:string { "Opening a device through ibmtape driver (%s)" }
|
||||
//unused 12215E:string { "Failed to open the directory '%s' (%d)" }
|
||||
//unused 12216D:string { "Device map: [%d] address=%d, serial=%s, error=%d" }
|
||||
12217I:string { "Cannot get log page 0x%02x (%d) in %s" }
|
||||
12218I:string { "Cannot parse the log page 0x%02x in %s" }
|
||||
12219E:string { "Failed to open file '%s' (%d)"}
|
||||
12220E:string { "Invalid scsi_lbprotect option: %s" }
|
||||
12221I:string { "IBMTAPE backend options:\n"
|
||||
" -o devname=<dev> tape device (default=%s)\n"
|
||||
" -o autodump enable autodump (default)\n"
|
||||
" -o noautodump disable autodump\n"
|
||||
" -o scsi_lbprotect=<on|off> enable drive logical block protection (default=off)\n" }
|
||||
12222I:string { "Pseudo-error on %s" }
|
||||
12223I:string { "Pseudo-error on write. Good return code, but a record to emulate a write error did not get sent to the drive." }
|
||||
12224I:string { "A long data wipe is in progress. (%d minutes passed)" }
|
||||
12225I:string { "A long data wipe is in progress. %d %%" }
|
||||
12226D:string { "WORM cartridge is loaded." }
|
||||
12227I:string { "Failed to get cartridge status. The cartridge is not loaded."}
|
||||
|
||||
62202I:string { "CRC check failed: Len = %d, Actual CRC = %08x, Expected CRC = %08x" }
|
||||
62203D:string { "CRC: %s, Len = %d, CRC = %08x" }
|
||||
}
|
||||
}
|
||||
37
ltfs/messages/driver_ltotape/en.txt
Normal file
37
ltfs/messages/driver_ltotape/en.txt
Normal file
@@ -0,0 +1,37 @@
|
||||
//
|
||||
// %Z% %I% %W% %G% %U%
|
||||
//
|
||||
// ZZ_Copyright_BEGIN
|
||||
//
|
||||
//
|
||||
// Licensed Materials - Property of Hewlett Packard Enterprise Development LP
|
||||
//
|
||||
// HPE StoreOpen Software Version 3.4
|
||||
//
|
||||
// (C) Copyright 2015-2018 Hewlett Packard Enterprise Development LP
|
||||
//
|
||||
// This file is part of the HPE StoreOpen Software
|
||||
//
|
||||
// HPE StoreOpen Software is free software;
|
||||
// you can redistribute it and/or modify it under the terms of the GNU Lesser
|
||||
// General Public License as published by the Free Software Foundation,
|
||||
// version 2.1 of the License.
|
||||
//
|
||||
// HPE StoreOpen Software is distributed in the
|
||||
// hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
|
||||
// implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
// See the GNU Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
// or download the license from <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
//
|
||||
// ZZ_Copyright_END
|
||||
//
|
||||
|
||||
en:table {
|
||||
// This resource intentionally left blank.
|
||||
}
|
||||
|
||||
37
ltfs/messages/driver_ltotape/en_US.txt
Normal file
37
ltfs/messages/driver_ltotape/en_US.txt
Normal file
@@ -0,0 +1,37 @@
|
||||
//
|
||||
// %Z% %I% %W% %G% %U%
|
||||
//
|
||||
// ZZ_Copyright_BEGIN
|
||||
//
|
||||
//
|
||||
// Licensed Materials - Property of Hewlett Packard Enterprise Development LP
|
||||
//
|
||||
// HPE StoreOpen Software Version 3.4
|
||||
//
|
||||
// (C) Copyright 2015-2018 Hewlett Packard Enterprise Development LP
|
||||
//
|
||||
// This file is part of the HPE StoreOpen Software
|
||||
//
|
||||
// HPE StoreOpen Software is free software;
|
||||
// you can redistribute it and/or modify it under the terms of the GNU Lesser
|
||||
// General Public License as published by the Free Software Foundation,
|
||||
// version 2.1 of the License.
|
||||
//
|
||||
// HPE StoreOpen Software is distributed in the
|
||||
// hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
|
||||
// implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
// See the GNU Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
// or download the license from <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
//
|
||||
// ZZ_Copyright_END
|
||||
//
|
||||
|
||||
en_US:table {
|
||||
// This resource intentionally left blank.
|
||||
}
|
||||
|
||||
144
ltfs/messages/driver_ltotape/root.txt
Normal file
144
ltfs/messages/driver_ltotape/root.txt
Normal file
@@ -0,0 +1,144 @@
|
||||
//
|
||||
// %Z% %I% %W% %G% %U%
|
||||
//
|
||||
// ZZ_Copyright_BEGIN
|
||||
//
|
||||
//
|
||||
// Licensed Materials - Property of Hewlett Packard Enterprise Development LP
|
||||
//
|
||||
// HPE StoreOpen Software Version 3.4
|
||||
//
|
||||
// (C) Copyright 2015 - 2018 Hewlett Packard Enterprise Development LP
|
||||
//
|
||||
// This file is part of the HPE StoreOpen Software
|
||||
//
|
||||
// HPE StoreOpen Software is free software;
|
||||
// you can redistribute it and/or modify it under the terms of the GNU Lesser
|
||||
// General Public License as published by the Free Software Foundation,
|
||||
// version 2.1 of the License.
|
||||
//
|
||||
// HPE StoreOpen Software is distributed in the
|
||||
// hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
|
||||
// implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
// See the GNU Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
// or download the license from <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
//
|
||||
// ZZ_Copyright_END
|
||||
//
|
||||
|
||||
// Messages for the ltotape backend.
|
||||
// This backend uses IDs in the range 20000-20999.
|
||||
|
||||
root:table {
|
||||
messages:table {
|
||||
start_id:int { 20000 }
|
||||
end_id:int { 20999 }
|
||||
|
||||
// First ten slots reserved..
|
||||
|
||||
// Messages for the ltotape backend:
|
||||
20010D:string { "SCSI request: [ %s] Requested length=%d" }
|
||||
20011D:string { "SCSI outcome: Driver status=0x%02X SCSI status=0x%02X Actual length=%d" }
|
||||
20012D:string { "SCSI sense : %s" }
|
||||
20013I:string { "Drive type is %s, serial number is %s" }
|
||||
20014E:string { "Drive requires firmware update to enable LTFS (current=%s)" }
|
||||
20015I:string { "Unable to read device serial number" }
|
||||
20016W:string { "Cannot find valid snapshot log" }
|
||||
20017D:string { "Cannot take snapshot log, drive type (%s) does not support feature" }
|
||||
20018D:string { "Snapshot in process of creation, pausing before retry" }
|
||||
20019E:string { "Internal program error: size %d too large in (%s)" }
|
||||
20020D:string { "SG_RESERVED_SIZE (max block size) now set to %d bytes" }
|
||||
20021D:string { "Cannot locate, tape appears to be uninitialized" }
|
||||
20022I:string { "Tape has passed the Early Warning EOM point, so forcing to Read Only mode" }
|
||||
20023E:string { "Backend SCSI subsystem error from %s (0x%0X)" }
|
||||
20024W:string { "Cannot store attribute 0x%0X (%d)" }
|
||||
20025D:string { "Stored EWSTATE attribute as %d" }
|
||||
20026I:string { "Tape was previously formatted by application '%s'" }
|
||||
20027E:string { "Failed to find specific device instance %d" }
|
||||
20028D:string { "Found device class 0x%X at index %d" }
|
||||
20029E:string { "Failed to create device interface - device may be busy?" }
|
||||
20030E:string { "Failed to get exclusive access - device may be busy? (%d)" }
|
||||
20031D:string { "Looking for sg device corresponding to %s" }
|
||||
20032E:string { "Error remapping st device %s to sg : %s" }
|
||||
20033E:string { "Unable to find matching sg device for %s" }
|
||||
20034D:string { "Mapped %s to %s (%d.%d.%d.%d)" }
|
||||
20035E:string { "Unable to lock device (%s)" }
|
||||
20036E:string { "Parsing log page: buffer too small, copying %zu bytes from %lx" }
|
||||
20037E:string { "Option parsing for the ltotape backend failed (%d)" }
|
||||
20038D:string { "Read block: file mark detected" }
|
||||
20039D:string { "Backend %s: %zu bytes" }
|
||||
20040E:string { "EBUSY in %s" }
|
||||
20041E:string { "EFAULT in %s" }
|
||||
20042E:string { "EIO in %s" }
|
||||
20043E:string { "ENOMEM in %s" }
|
||||
20044E:string { "ENXIO in %s" }
|
||||
20045E:string { "EPERM in %s" }
|
||||
20046E:string { "ETIMEDOUT in %s" }
|
||||
20047E:string { "EINVAL in %s" }
|
||||
20048W:string { "Received low space warning in %s" }
|
||||
20049E:string { "EACCES in %s" }
|
||||
20050E:string { "EOVERFLOW in %s" }
|
||||
20051E:string { "ENOSYS in %s" }
|
||||
20052E:string { "EROFS in %s" }
|
||||
20053E:string { "ENOMEDIUM in %s" }
|
||||
20054E:string { "Unknown error in %s (%d)" }
|
||||
20055E:string { "EAGAIN in %s" }
|
||||
20056D:string { "Backend %s: %zu" }
|
||||
20057D:string { "Backend %s: (%llu, %llu)" }
|
||||
20058D:string { "Backend %s" }
|
||||
20059D:string { "Backend %s: %llu" }
|
||||
20060D:string { "Backend ReadPosition: Partition=%llu, LogObject=%llu, FMcount=%llu" }
|
||||
20061D:string { "Backend %s: 0x%02X" }
|
||||
20062E:string { "Unsupported cartridge type (%s)" }
|
||||
20063D:string { "Locate encountered EOD : ignoring sense data" }
|
||||
20064E:string { "Locate failed (%d)" }
|
||||
20065E:string { "Space: unrecognized type (%d)" }
|
||||
20066E:string { "Cannot read position (%d)" }
|
||||
20067E:string { "Invalid format mode (%d)" }
|
||||
20068E:string { "Format operation failed (%d)" }
|
||||
20069E:string { "Cannot get remaining capacity: get log page 0x%02x failed (%d)" }
|
||||
20070E:string { "Cannot get remaining capacity: failed to parse the log page" }
|
||||
20071E:string { "Cannot get remaining capacity: loop index error (%d)" }
|
||||
20072E:string { "Failed to read mode data (%d)" }
|
||||
20073E:string { "Failed to set mode data (%d)" }
|
||||
20074E:string { "Failed to read attribute 0x%X (%d)" }
|
||||
20075E:string { "Failed to write attribute (%d)" }
|
||||
20076I:string { "Triggering drive diagnostic dump" }
|
||||
20077W:string { "Unable to generate drive dump" }
|
||||
20078W:string { "Unable to read drive dump" }
|
||||
20079W:string { "Unable to save drive dump to file" }
|
||||
20080D:string { "Saved drive dump to %s" }
|
||||
20081W:string { "Error saving drive dump: wrote %d bytes out, expected %d" }
|
||||
20082W:string { "Error saving drive dump: unable to close %s" }
|
||||
20083E:string { "Cannot open device: inquiry failed (%d)" }
|
||||
20084D:string { "Drive identification is \'%s\'" }
|
||||
20085E:string { "Unsupported drive \'%s\'" }
|
||||
20086E:string { "%s: medium is already mounted or in use" }
|
||||
20087E:string { "Cannot open device \'%s\' (%d)" }
|
||||
20088W:string { "Had to open device \'%s\' in read-only mode" }
|
||||
20089D:string { "Driver detail: %16s = 0x%X" }
|
||||
20090W:string { "Unable to create dumpfile \'%s\' - %s" }
|
||||
20091I:string { "Unable to get %s properties for \'%s\' - %s" }
|
||||
20092D:string { "Found %d log snapshot files, oldest is \'%s\'" }
|
||||
20093E:string { "Unable to delete file \'%s\' - %s" }
|
||||
20094D:string { "Removed old snapshot file \'%s\'" }
|
||||
20095D:string { "Snapshot directory set to \'%s\'" }
|
||||
20096I:string { "Diagnostic dump complete" }
|
||||
20097D:string { "Drive firmware update needed to enable EOD status check" }
|
||||
20098D:string { "Attribute 0x%X not found" }
|
||||
20099I:string { "Log snapshot cannot be used, \'%s\' is not available" }
|
||||
20100E:string { "Memory allocation failed" }
|
||||
20101D:string { "Device name %s modified to a non-rewind-on-close type %s" }
|
||||
20102W:string { "Cannot create work directory (%d)" }
|
||||
20103W:string { "Path \'%s\' exists, but is not a directory" }
|
||||
20104W:string { "Invalid log-directory path \'%s\', setting back to default log-directory" }
|
||||
20105E:string { "Attempting to write FM at BOP" }
|
||||
20106I:string { "Retaining existing MAM barcode %s" }
|
||||
20107I:string { "Replacing existing MAM barcode %s with user-specified %s" }
|
||||
}
|
||||
}
|
||||
38
ltfs/messages/driver_osx_iokit/en.txt
Normal file
38
ltfs/messages/driver_osx_iokit/en.txt
Normal file
@@ -0,0 +1,38 @@
|
||||
//
|
||||
// %Z% %I% %W% %G% %U%
|
||||
//
|
||||
// ZZ_Copyright_BEGIN
|
||||
//
|
||||
//
|
||||
// Licensed Materials - Property of IBM
|
||||
//
|
||||
// IBM Linear Tape File System Single Drive Edition Version 2.2.0.2 for Linux and Mac OS X
|
||||
//
|
||||
// Copyright IBM Corp. 2010, 2014
|
||||
//
|
||||
// This file is part of the IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X
|
||||
// (formally known as IBM Linear Tape File System)
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is free software;
|
||||
// you can redistribute it and/or modify it under the terms of the GNU Lesser
|
||||
// General Public License as published by the Free Software Foundation,
|
||||
// version 2.1 of the License.
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is distributed in the
|
||||
// hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
|
||||
// implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
// See the GNU Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
// or download the license from <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
//
|
||||
// ZZ_Copyright_END
|
||||
//
|
||||
|
||||
en:table {
|
||||
// This resource intentionally left blank.
|
||||
}
|
||||
|
||||
38
ltfs/messages/driver_osx_iokit/en_US.txt
Normal file
38
ltfs/messages/driver_osx_iokit/en_US.txt
Normal file
@@ -0,0 +1,38 @@
|
||||
//
|
||||
// %Z% %I% %W% %G% %U%
|
||||
//
|
||||
// ZZ_Copyright_BEGIN
|
||||
//
|
||||
//
|
||||
// Licensed Materials - Property of IBM
|
||||
//
|
||||
// IBM Linear Tape File System Single Drive Edition Version 2.2.0.2 for Linux and Mac OS X
|
||||
//
|
||||
// Copyright IBM Corp. 2010, 2014
|
||||
//
|
||||
// This file is part of the IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X
|
||||
// (formally known as IBM Linear Tape File System)
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is free software;
|
||||
// you can redistribute it and/or modify it under the terms of the GNU Lesser
|
||||
// General Public License as published by the Free Software Foundation,
|
||||
// version 2.1 of the License.
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is distributed in the
|
||||
// hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
|
||||
// implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
// See the GNU Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
// or download the license from <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
//
|
||||
// ZZ_Copyright_END
|
||||
//
|
||||
|
||||
en_US:table {
|
||||
// This resource intentionally left blank.
|
||||
}
|
||||
|
||||
127
ltfs/messages/driver_osx_iokit/root.txt
Normal file
127
ltfs/messages/driver_osx_iokit/root.txt
Normal file
@@ -0,0 +1,127 @@
|
||||
//
|
||||
// %Z% %I% %W% %G% %U%
|
||||
//
|
||||
// ZZ_Copyright_BEGIN
|
||||
//
|
||||
//
|
||||
// Licensed Materials - Property of IBM
|
||||
//
|
||||
// IBM Linear Tape File System Single Drive Edition Version 2.2.0.2 for Linux and Mac OS X
|
||||
//
|
||||
// Copyright IBM Corp. 2010, 2014
|
||||
//
|
||||
// This file is part of the IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X
|
||||
// (formally known as IBM Linear Tape File System)
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is free software;
|
||||
// you can redistribute it and/or modify it under the terms of the GNU Lesser
|
||||
// General Public License as published by the Free Software Foundation,
|
||||
// version 2.1 of the License.
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is distributed in the
|
||||
// hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
|
||||
// implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
// See the GNU Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
// or download the license from <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
//
|
||||
// ZZ_Copyright_END
|
||||
//
|
||||
|
||||
// Messages for the iokit backend.
|
||||
// This backend shares IDs 12000-12999 with the file and ibmtape backends and the backend
|
||||
// interface functions, so be sure to make a note in messages/ltfs/root.txt whenever an
|
||||
// ID is allocated here.
|
||||
root:table {
|
||||
messages:table {
|
||||
start_id:int { 12067 }
|
||||
end_id:int { 12499 }
|
||||
|
||||
12074W:string { "Received low space warning (early warning) in %s" }
|
||||
12075W:string { "Received low space warning (programmable early warning) in %s" }
|
||||
|
||||
12109I:string { "Drive cleaning required" }
|
||||
//unused 12110D:string { "Ignoring recovered error" }
|
||||
|
||||
12116I:string { "Cannot open device: inquiry failed (%d)" }
|
||||
12117I:string { "Unsupported drive \'%s\'" }
|
||||
12118I:string { "Drive identification is \'%s\'" }
|
||||
12119D:string { "Read block: file mark detected" }
|
||||
12120D:string { "Read block: illegal length, actual = %d" }
|
||||
|
||||
12123D:string { "EOD detected (%s): ignore sense" }
|
||||
12127I:string { "Unrecognized space type" }
|
||||
|
||||
12135I:string { "Cannot get remaining capacity: get log page 0x%02x failed (%d)" }
|
||||
12136I:string { "Cannot get remaining capacity: failed to parse the log page" }
|
||||
|
||||
12144I:string { "Cannot read attribute (%d)" }
|
||||
|
||||
12150D:string { "Backend %s: %zu bytes" }
|
||||
12151D:string { "Backend %s: %zu" }
|
||||
12152D:string { "Backend %s: (%llu, %llu)" }
|
||||
12153D:string { "Backend %s %s" }
|
||||
12154D:string { "Backend %s: %llu" }
|
||||
12155D:string { "Backend %s: (%llu, %llu) FM = %llu" }
|
||||
12156D:string { "Backend %s: %d %s" }
|
||||
12157I:string { "Unsupported cartridge type (0x%x)" }
|
||||
12158I:string { "Opening a device through iokit driver (%s)" }
|
||||
12159I:string { "Firmware revision is %s" }
|
||||
12160I:string { "Drive serial is %s" }
|
||||
12161I:string { "Cannot open device: inquiry 0x%x failed (%d)" }
|
||||
12162I:string { "Vendor ID is %s" }
|
||||
12163I:string { "Cannot open device: failed to convert devname to devnumber (%s)" }
|
||||
12170W:string { "Cannot get EOD status: failed to get log page 0x%02x (%d)" }
|
||||
12171W:string { "Cannot get EOD status: failed to parse the log page" }
|
||||
12172W:string { "Cannot get EOD status: value length or partition number is wrong %d - (%d, %d)" }
|
||||
12173I:string { "%s returns %s (%d) %s" }
|
||||
12174E:string { "%s returns msg = NULL (%d) %s" }
|
||||
// 12175 - 12180 is reserved for Version 2
|
||||
12181W:string { "Drive firmware must be upgraded to %s or later" }
|
||||
12182W:string { "Drive firmware level does not correctly detect the EOD status" }
|
||||
// 12183 - 12187 is already used by Version 2
|
||||
12188I:string { "Read block: overrun in illegal length. residual = %d, actual = %d" }
|
||||
12189D:string { "Read block: underrun in illegal length. residual = %d, actual = %d" }
|
||||
// unused 12190E:string { "Read block: unexpected condition in illegal length, %d" }
|
||||
12191I:string { "Unexpected parameter size for getting active CQ loss write (%d)" }
|
||||
12192I:string { "Cannot allocate memory in %s" }
|
||||
// 12193
|
||||
12194D:string { "CDB check condition: sense = %02x/%02x%02x" }
|
||||
// 12195
|
||||
12196I:string { "%s (0x%02x) returns %d. %s" }
|
||||
12197D:string { "no sense info" }
|
||||
12198D:string { "%s (0x%02x) expected error %d" }
|
||||
// unused 12200E:string { "Logical block protection Error on write" }
|
||||
12201E:string { "Logical block protection Error on read" }
|
||||
12202E:string { "CRC check failed: Len = %d, Actual CRC = %08x, Expected CRC = %08x" }
|
||||
12203D:string { "CRC: %s ,Len = %d, CRC = %08x" }
|
||||
12204E:string { "Encryption method of the drive is not AME but %s (0x%02X)." }
|
||||
12205E:string { "Encryption feature is not supported on the drive: %d" }
|
||||
12206I:string { "Logical block protection is enabled" }
|
||||
12207I:string { "Logical block protection is disabled" }
|
||||
12208E:string { "Is medium mountable: invalid bar code %s" }
|
||||
12209D:string { "Is medium mountable: six-character bar code %s" }
|
||||
12210E:string { "Is medium mountable: unsupported tape drive type (%d) is used" }
|
||||
12211I:string { "Is medium mountable: unsupported medium %s is detected" }
|
||||
12212D:string { "Is medium mountable: drive (%s) can mount medium (%s,0x%x)" }
|
||||
12213D:string { "Is medium mountable: drive (%s) cannot mount medium (%s,0x%x)" }
|
||||
12214I:string { "Reopening a device through iokit driver (%s)" }
|
||||
// unused 12215E:string { "Failed to open the directory '%s' (%d)" }
|
||||
// 12216
|
||||
12217I:string { "Cannot get log page 0x%02x (%d) in %s" }
|
||||
12218I:string { "Cannot parse the log page 0x%02x in %s" }
|
||||
// 12219
|
||||
12220E:string { "Invalid scsi_lbprotect option: %s" }
|
||||
12221I:string { "IOKIT backend options:\n"
|
||||
" -o devname=<dev> tape device (default=%s)\n"
|
||||
" -o scsi_lbprotect=<on|off> enable drive logical block protection (default=off)\n" }
|
||||
// unused 12222E:string { "Pseudo-error on %s" }
|
||||
12223I:string { "Pseudo-error on write. Good return code, but a record to emulate a write error did not get sent to the drive." }
|
||||
12224I:string { "A long data wipe is in progress. (%d minutes passed)" }
|
||||
12225I:string { "A long data wipe is in progress. %d %%" }
|
||||
}
|
||||
}
|
||||
38
ltfs/messages/internal_error/en.txt
Normal file
38
ltfs/messages/internal_error/en.txt
Normal file
@@ -0,0 +1,38 @@
|
||||
//
|
||||
// %Z% %I% %W% %G% %U%
|
||||
//
|
||||
// ZZ_Copyright_BEGIN
|
||||
//
|
||||
//
|
||||
// Licensed Materials - Property of IBM
|
||||
//
|
||||
// IBM Linear Tape File System Single Drive Edition Version 2.2.0.2 for Linux and Mac OS X
|
||||
//
|
||||
// Copyright IBM Corp. 2010, 2014
|
||||
//
|
||||
// This file is part of the IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X
|
||||
// (formally known as IBM Linear Tape File System)
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is free software;
|
||||
// you can redistribute it and/or modify it under the terms of the GNU Lesser
|
||||
// General Public License as published by the Free Software Foundation,
|
||||
// version 2.1 of the License.
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is distributed in the
|
||||
// hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
|
||||
// implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
// See the GNU Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
// or download the license from <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
//
|
||||
// ZZ_Copyright_END
|
||||
//
|
||||
|
||||
en:table {
|
||||
// This resource intentionally left blank.
|
||||
}
|
||||
|
||||
38
ltfs/messages/internal_error/en_US.txt
Normal file
38
ltfs/messages/internal_error/en_US.txt
Normal file
@@ -0,0 +1,38 @@
|
||||
//
|
||||
// %Z% %I% %W% %G% %U%
|
||||
//
|
||||
// ZZ_Copyright_BEGIN
|
||||
//
|
||||
//
|
||||
// Licensed Materials - Property of IBM
|
||||
//
|
||||
// IBM Linear Tape File System Single Drive Edition Version 2.2.0.2 for Linux and Mac OS X
|
||||
//
|
||||
// Copyright IBM Corp. 2010, 2014
|
||||
//
|
||||
// This file is part of the IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X
|
||||
// (formally known as IBM Linear Tape File System)
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is free software;
|
||||
// you can redistribute it and/or modify it under the terms of the GNU Lesser
|
||||
// General Public License as published by the Free Software Foundation,
|
||||
// version 2.1 of the License.
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is distributed in the
|
||||
// hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
|
||||
// implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
// See the GNU Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
// or download the license from <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
//
|
||||
// ZZ_Copyright_END
|
||||
//
|
||||
|
||||
en_US:table {
|
||||
// This resource intentionally left blank.
|
||||
}
|
||||
|
||||
345
ltfs/messages/internal_error/root.txt
Normal file
345
ltfs/messages/internal_error/root.txt
Normal file
@@ -0,0 +1,345 @@
|
||||
//
|
||||
// %Z% %I% %W% %G% %U%
|
||||
//
|
||||
// ZZ_Copyright_BEGIN
|
||||
//
|
||||
//
|
||||
// Licensed Materials - Property of IBM
|
||||
//
|
||||
// IBM Linear Tape File System Single Drive Edition Version 2.2.0.2 for Linux and Mac OS X
|
||||
//
|
||||
// Copyright IBM Corp. 2010, 2014
|
||||
//
|
||||
// This file is part of the IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X
|
||||
// (formally known as IBM Linear Tape File System)
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is free software;
|
||||
// you can redistribute it and/or modify it under the terms of the GNU Lesser
|
||||
// General Public License as published by the Free Software Foundation,
|
||||
// version 2.1 of the License.
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is distributed in the
|
||||
// hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
|
||||
// implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
// See the GNU Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
// or download the license from <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
//
|
||||
// ZZ_Copyright_END
|
||||
//
|
||||
|
||||
root:table {
|
||||
// Fallback messages. These messages do not have unique IDs; they are printed when
|
||||
// the message function receives an unrecognized unique ID or fails to
|
||||
// generate a message for a known unique ID.
|
||||
// These messages are accessed by key, not by index: so they may be
|
||||
// reordered, but they should not be renamed.
|
||||
fallback_messages:table {
|
||||
notfound:string { "(no message found)" }
|
||||
overflow:string { "(message too long)" }
|
||||
}
|
||||
|
||||
// Message list for LTFS internal error codes.
|
||||
messages:table {
|
||||
start_id:int { "99998" }
|
||||
end_id:int { "99999" }
|
||||
|
||||
// I1000 - I1999 (LTFS internal error codes)
|
||||
I1000E:string{ "Unexpected NULL function argument" }
|
||||
I1001E:string{ "Memory allocation failed" }
|
||||
I1002E:string{ "Attempted to lock or unlock an uninitialized mutex" }
|
||||
I1003E:string{ "Attempted to unlock an already unlocked mutex" }
|
||||
I1004E:string{ "Invalid device data structure" }
|
||||
I1005E:string{ "Invalid partition number requested" }
|
||||
I1006E:string{ "A libxml2 call failed" }
|
||||
I1007E:string{ "Device is not ready" }
|
||||
I1008E:string{ "No medium is present in the device" }
|
||||
I1009E:string{ "Device does not support the formatted block size" }
|
||||
I1010E:string{ "Locate operation resulted in an unexpected position" }
|
||||
I1011E:string{ "Medium contains only one partition" }
|
||||
I1012E:string{ "Invalid partition label" }
|
||||
I1013E:string{ "Partition labels do not match" }
|
||||
I1014E:string{ "Invalid XML index or index back chain pointer. Recovery might be possible." }
|
||||
I1015E:string{ "Volume is inconsistent, but recoverable" }
|
||||
I1016E:string{ "Medium cannot be partitioned or made compatible" }
|
||||
I1017E:string{ "Index generation mismatch between the cached copy and the tape" }
|
||||
I1018E:string{ "MAM cache is invalid" }
|
||||
I1019E:string{ "Index cache is invalid" }
|
||||
I1020E:string{ "Empty name rule encountered during policy parsing" }
|
||||
I1021E:string{ "Mutex initialization failed" }
|
||||
I1022E:string{ "Generic error for an invalid function argument" }
|
||||
I1023E:string{ "A path name component is too long" }
|
||||
I1024E:string{ "No such file or directory exists" }
|
||||
I1025E:string{ "Path cannot be UTF-8 encoded or contains invalid characters" }
|
||||
I1026E:string{ "Like LTFS_INVALID_PATH, but for paths the caller expects to exist" }
|
||||
I1027E:string{ "Cannot remove the existing target path" }
|
||||
I1028E:string{ "Cannot remove the non-empty directory" }
|
||||
I1029E:string{ "Cannot remove the root directory" }
|
||||
I1030E:string{ "Cannot move the directory because of the MacFUSE bug" }
|
||||
I1031E:string{ "Cannot rename files or directories in the directory" }
|
||||
I1032E:string{ "Block read from tape is smaller than expected" }
|
||||
I1033E:string{ "Operation is only valid on files" }
|
||||
I1034E:string{ "Medium has no EOD in one partition" }
|
||||
I1035E:string{ "Medium has no EOD in both partitions" }
|
||||
I1036E:string{ "Unexpected value detected in LTFS" }
|
||||
I1037E:string{ "Unsupported method call" }
|
||||
I1040E:string{ "Failed to find an extended attribute" }
|
||||
I1041E:string{ "Failed to set signal handler" }
|
||||
I1042E:string{ "Catch signals to terminate process" }
|
||||
I1043E:string{ "Unsupported format version is detected in the index" }
|
||||
I1044E:string{ "Received an unexpected error from ICU" }
|
||||
I1045E:string{ "Error while loading a plug-in" }
|
||||
I1046E:string{ "Error while unloading a plug-in" }
|
||||
I1047E:string{ "Cannot modify read-only extended attribute" }
|
||||
I1048E:string{ "User should not overwrite the existing extended attribute" }
|
||||
I1049E:string{ "User-provided buffer is too small" }
|
||||
I1050E:string{ "Volume is in read-only mode" }
|
||||
I1051E:string{ "Volume is full" }
|
||||
I1052E:string{ "Extended attribute value is too large" }
|
||||
I1053E:string{ "Index search failed" }
|
||||
I1054E:string{ "Requested extended attribute namespace is not supported" }
|
||||
I1055E:string{ "Configuration file parsing failed" }
|
||||
I1056E:string{ "Plug-in does not implement a required function" }
|
||||
I1057E:string{ "Requested plug-in is not known" }
|
||||
I1058E:string{ "Cannot parse policy string" }
|
||||
I1059E:string{ "Operation is valid only on directories" }
|
||||
I1060E:string{ "Failed to find the target tape volume" }
|
||||
I1061E:string{ "Cannot change the data placement policy" }
|
||||
I1062E:string{ "Block size is too small" }
|
||||
I1063E:string{ "Bar code has the wrong length" }
|
||||
I1064E:string{ "Bar code contains invalid characters" }
|
||||
I1065E:string{ "Insufficient number of drives available to move between tapes" }
|
||||
I1066E:string{ "Device lock request denied" }
|
||||
I1067E:string{ "Medium revalidation in progress" }
|
||||
I1068E:string{ "Medium revalidation failed" }
|
||||
I1069E:string{ "Library is in the full slot condition" }
|
||||
I1070E:string{ "Library is in the slot shortage condition" }
|
||||
I1071E:string{ "Library is in an error condition" }
|
||||
I1072E:string{ "Unexpected tape medium found" }
|
||||
I1073E:string{ "No home slot is assigned" }
|
||||
I1074E:string{ "Attempt to move active cartridge to IE slot" }
|
||||
I1075E:string{ "There are no IE slots available" }
|
||||
I1076E:string{ "Cannot move the tape to the requested location: failed to specify a valid target" }
|
||||
I1077E:string{ "Unsupported cartridge in LTFS" }
|
||||
I1078E:string{ "Cartridge is stuck in the drive" }
|
||||
I1079E:string{ "The operation is not allowed" }
|
||||
I1080E:string{ "This operation is not allowed on a duplicate cartridge" }
|
||||
I1081E:string{ "This operation is not allowed on an unsupported cartridge" }
|
||||
I1082E:string{ "This operation is not allowed on an inaccessible cartridge" }
|
||||
I1083E:string{ "This operation is not allowed on an unformatted cartridge" }
|
||||
I1084E:string{ "This operation is not allowed on an invalid cartridge" }
|
||||
I1085E:string{ "This operation is not allowed on a cartridge with an error" }
|
||||
I1086E:string{ "This operation is not allowed on a cartridge with a critical error" }
|
||||
I1087E:string{ "This operation is not allowed on a cleaning cartridge" }
|
||||
I1088E:string{ "This operation is not allowed on a read-only cartridge" }
|
||||
I1089E:string{ "This cartridge is already included in the file system" }
|
||||
I1090E:string{ "This cartridge is not included in the file system" }
|
||||
I1091E:string{ "Cannot move the cartridge to the IE slot: the cartridge must be removed from the file system" }
|
||||
I1092E:string{ "This operation is not allowed on a cartridge without a bar code" }
|
||||
I1093E:string{ "Cannot remove the drive: 'Critical' cartridge is loaded" }
|
||||
I1094E:string{ "Cannot add the drive: the drive is already added" }
|
||||
I1095E:string{ "Unexpected inventory rebuild error (have to manage within LTFS itself)" }
|
||||
I1096E:string{ "Library failes to get inventory. Try to unmount LTFS and re-mount LTFS again" }
|
||||
I1097E:string{ "Operation needs to be restarted" }
|
||||
I1098E:string{ "No target drive is found" }
|
||||
I1099E:string{ "No supported filesystem type for dcache is in this system" }
|
||||
I1100E:string{ "The disk image already exists" }
|
||||
I1101E:string{ "The disk image is already mounted" }
|
||||
I1102E:string{ "The disk image is not mounted" }
|
||||
I1103E:string{ "/etc/mtab is not a regular file" }
|
||||
I1104E:string{ "Failed to open /etc/mtab" }
|
||||
I1105E:string{ "Failed to lock /etc/mtab" }
|
||||
I1106E:string{ "Failed to seek /etc/mtab" }
|
||||
I1107E:string{ "Failed to update /etc/mtab" }
|
||||
I1108E:string{ "Failed to flush /etc/mtab" }
|
||||
I1109E:string{ "Failed to unlock /etc/mtab" }
|
||||
I1110E:string{ "Failed to close /etc/mtab" }
|
||||
I1111E:string{ "Failed to copy /etc/mtab to temporary file" }
|
||||
I1112E:string{ "Failed to open the temporary file for /etc/mtab" }
|
||||
I1113E:string{ "Failed to seek the temporary file for /etc/mtab" }
|
||||
I1114E:string{ "Failed to create a directory tree for the disk image" }
|
||||
I1115E:string{ "Failed to cache dentry due to limitation of host filesystem" }
|
||||
I1116E:string{ "The disk image reached the maximum size" }
|
||||
I1117E:string{ "Cannot find data key" }
|
||||
I1118E:string{ "A function is called in invalid sequence" }
|
||||
I1119E:string{ "Cannot update the root directory" }
|
||||
I1120E:string{ "Conflicting symlink tag and extent tag in XML" }
|
||||
I1121E:string{ "Failed to initialize the network connection for ltfsadmintool" }
|
||||
I1122E:string{ "Insufficient number of drives available for the operation" }
|
||||
I1123E:string{ "Invalid volume serial number" }
|
||||
I1124E:string{ "Volume has no space to write a file" }
|
||||
I1125E:string{ "Volume is in physical and/or logical write protect mode" }
|
||||
I1126E:string{ "Write error has previously occurred on the current mount" }
|
||||
I1127E:string{ "Unexpected length of barcode label is set on the cartridge" }
|
||||
I1128E:string{ "Conversion from string to value is failed, may be invalid string" }
|
||||
I1129E:string{ "Failed to initialize admin session" }
|
||||
I1130E:string{ "Invalid message on admin_channel" }
|
||||
I1131E:string{ "Invalid password to log in via admin_channel" }
|
||||
I1132E:string{ "Login credentials are not yet valid" }
|
||||
I1133E:string{ "Deep recovery cannot be performed to a WORM cartridge" }
|
||||
I1134E:string{ "WORM cartridge cannot be rollbacked" }
|
||||
I1135E:string{ "Salvage list is valid only for WORM cartridge" }
|
||||
I1136E:string{ "Cartridge is already formatted" }
|
||||
I1137E:string{ "Placement policy cannot be set to WORM cartridge" }
|
||||
I1138E:string{ "Specified block size is not correct" }
|
||||
I1139E:string{ "Specified volume name is not correct" }
|
||||
I1140E:string{ "Specified placement policy is not correct" }
|
||||
I1141E:string{ "Need to specify a genaration to be rollbacked" }
|
||||
I1142E:string{ "Specified generation is not correct" }
|
||||
I1143E:string{ "Rollback target generation is not specified" }
|
||||
I1144E:string{ "Multiple target indexes were found on the cartridge" }
|
||||
I1145E:string{ "Salvage list is not required for this cartridge" }
|
||||
|
||||
// I1150 - I1199 are reserved for LE+
|
||||
I1150E:string{ "Cannot find cartridge" }
|
||||
I1151E:string{ "Cannot lock cache files" }
|
||||
I1152E:string{ "Cannot unlock cache files" }
|
||||
I1153E:string{ "Error in file operation(open,stat,truncate,etc)" }
|
||||
I1154E:string{ "Read error (cartridge repository)" }
|
||||
I1155E:string{ "Write error (cartridge repository)" }
|
||||
I1156E:string{ "Invalid operation(invalid arg, op, etc)" }
|
||||
I1157E:string{ "Error in file operation (mkdir,stat,rename, etc)" }
|
||||
I1158E:string{ "Cannot use the cartridge" }
|
||||
I1159E:string{ "Cannot find lock entry" }
|
||||
I1160E:string{ "Cannot mount/unmount" }
|
||||
I1161E:string{ "Cannot find device" }
|
||||
I1162E:string{ "Failed to set/get Extended Attribute" }
|
||||
I1163E:string{ "Failed to perform file tree walk" }
|
||||
I1164E:string{ "Failed to update time stamp" }
|
||||
I1165E:string{ "Block device is required" }
|
||||
I1166E:string{ "Disk quota exceeded" }
|
||||
I1167E:string{ "Too many open files in system" }
|
||||
I1168E:string{ "Link dir exists" }
|
||||
I1169E:string{ "No dmap entry" }
|
||||
I1170E:string{ "Host filesystem returns recoverable error" }
|
||||
I1171E:string{ "No additional cache space" }
|
||||
I1172E:string{ "Repository 'Unavailable' (cart's state read error)" }
|
||||
I1173E:string{ "Repository 'Out of sync' (isolated from cluster)" }
|
||||
I1174E:string{ "Failed to get status of node" }
|
||||
I1175E:string{ "Cannot execute this operation: Node is in 'Out of sync' state" }
|
||||
I1176E:string{ "Failed to sync index cache files" }
|
||||
I1177E:string{ "Failed to sync dentry cache" }
|
||||
I1178E:string{ "Failed to sync cartridge repository" }
|
||||
I1179E:string{ "Multi-node config file is not found" }
|
||||
I1180E:string{ "Failed to handle multi node config file" }
|
||||
I1181E:string{ "Cache files are corrupted and discarded" }
|
||||
I1182E:string{ "Long write lock is acquired" }
|
||||
I1183E:string{ "Incompatible cache file is detected" }
|
||||
I1184E:string{ "Dcache is not initialized yet" }
|
||||
I1185E:string{ "The multi-node config file is locked" }
|
||||
I1186E:string{ "Failed to create POSIX message queue" }
|
||||
I1187E:string{ "Failed to fork process" }
|
||||
I1188E:string{ "No ACK message is received from child process" }
|
||||
I1189E:string{ "Node type detection is failed" }
|
||||
I1190E:string{ "Invalid message is detected in node detection" }
|
||||
I1191E:string{ "Failed to degate other nodes" }
|
||||
I1192E:string{ "Failed to operate against a cluster-wide lock" }
|
||||
|
||||
// Special error codes
|
||||
I9997E:string{ "Child process error (ltfsck/mkltfs): %s (%d)" }
|
||||
I9998E:string{ "System error: %s (%d)" }
|
||||
I9999E:string{ "Message for %s is not found (%d)" }
|
||||
|
||||
// D0000 - D9999 (Device error codes)
|
||||
D0000E:string{ "No sense data exists" }
|
||||
D0002E:string{ "Read overrun condition when sili bit is off" }
|
||||
D0003E:string{ "Read underrun condition when sili bit is off" }
|
||||
D0004E:string{ "File mark is detected" }
|
||||
D0005E:string{ "Early warning condition is detected." }
|
||||
D0006E:string{ "Beginning of partition is detected" }
|
||||
D0007E:string{ "Programable early warning condition is detected" }
|
||||
D0008E:string{ "ITD_RES Media is cleaning the cartridge" }
|
||||
D0009E:string{ "ITD_RES Voltag is not readable" }
|
||||
D0010E:string{ "ITD_RES Media presence is not detected" }
|
||||
D0011E:string{ "ITD_RES Media presence is not detected" }
|
||||
D0012E:string{ "(TS3500/TS4500) Slot state is unknown" }
|
||||
D0013E:string{ "(TS3500/TS4500) Drive is not available" }
|
||||
D0014E:string{ "Record not found" }
|
||||
D0015E:string{ "Insufficient time for operation (string search)" }
|
||||
D0098E:string{ "(IBM LTO 00/8282) Drive requests cleaning" }
|
||||
D0100E:string{ "Recovered error (should be ignored)" }
|
||||
D0101E:string{ "Mode select parameter is rounded by the drive (should be ignored)" }
|
||||
D0198E:string{ "(IBM LTO 01/8252) Degraded medium is detected" }
|
||||
D0200E:string{ "Drive is not ready" }
|
||||
D0201E:string{ "Cannot report an error for this condition" }
|
||||
D0202E:string{ "Device is becoming ready" }
|
||||
D0203E:string{ "Initialize command is required" }
|
||||
D0204E:string{ "Manual intervention is required" }
|
||||
D0205E:string{ "Operation is in progress" }
|
||||
D0206E:string{ "Device is offline" }
|
||||
D0207E:string{ "Door is open" }
|
||||
D0208E:string{ "Device is too hot." }
|
||||
D0209E:string{ "Drive has no medium" }
|
||||
D0210E:string{ "Device has not self-configured yet" }
|
||||
D0211E:string{ "SA creation parameter value rejected" }
|
||||
D0297E:string{ "Cleaning is in progress" }
|
||||
D0298E:string{ "(TS3500/TS4500) I/O slot is opened" }
|
||||
D0300E:string{ "Other medium errors" }
|
||||
D0301E:string{ "Read or write permanent error" }
|
||||
D0302E:string{ "CM RW error" }
|
||||
D0303E:string{ "Incompatible or unknown format" }
|
||||
D0304E:string{ "Corrupt format is detected" }
|
||||
D0305E:string{ "Drive rejects a read operation because of an unexpected overwrite on the WORM medium" }
|
||||
D0306E:string{ "Load/Unload error" }
|
||||
D0307E:string{ "Cleaning operation failed" }
|
||||
D0308E:string{ "Permanent read error" }
|
||||
D0309E:string{ "Permanent write error" }
|
||||
D0399E:string{ "Maximum medium error value" }
|
||||
D0400E:string{ "All H/W errors" }
|
||||
D0401E:string{ "Logical Block Guard Check Failed" }
|
||||
D0402E:string{ "Logical Block Protection read error" }
|
||||
D0499E:string{ "Maximum hardware error value" }
|
||||
D0500E:string{ "All illegal request errors" }
|
||||
D0501E:string{ "Invalid field in CDB" }
|
||||
D0502E:string{ "Medium destination element full" }
|
||||
D0503E:string{ "Medium source element empty" }
|
||||
D0504E:string{ "Medium magazine is not accessible" }
|
||||
D0505E:string{ "Element address is invalid" }
|
||||
D0506E:string{ "Medium removal prevented. Drive media removal prevented state set." }
|
||||
D0600E:string{ "Other UA conditions" }
|
||||
D0601E:string{ "Not ready to transition: medium might have changed" }
|
||||
D0602E:string{ "IE slot is accessed" }
|
||||
D0603E:string{ "POR/Bus reset occurred" }
|
||||
D0604E:string{ "Drive configuration is changed" }
|
||||
D0605E:string{ "Command is cleared by another initiator" }
|
||||
D0606E:string{ "Operator medium removal request" }
|
||||
D0607E:string{ "Cannot remove the medium" }
|
||||
D0608E:string{ "Medium magazine inserted" }
|
||||
D0700E:string{ "Other data protect conditions" }
|
||||
D0701E:string{ "Write-protected" }
|
||||
D0702E:string{ "WORM cartridge" }
|
||||
D0703E:string{ "Attempt to overwrite in append-only mode" }
|
||||
D0800E:string{ "Other blank check conditions" }
|
||||
D0801E:string{ "EOD detected" }
|
||||
D0802E:string{ "EOD not found" }
|
||||
D1100E:string{ "Other aborted command conditions" }
|
||||
D1101E:string{ "Overlapping commands" }
|
||||
D1102E:string{ "Initiator response timeout" }
|
||||
D1300E:string{ "The medium is full" }
|
||||
D1600E:string{ "Other encryption-related errors" }
|
||||
D1601E:string{ "Key service timeout or failure" }
|
||||
D1602E:string{ "Detect key change" }
|
||||
D1603E:string{ "Detect key change" }
|
||||
D1700E:string{ "Internal logic error" }
|
||||
D1701E:string{ "Driver reports an error" }
|
||||
D1702E:string{ "Host reports an error" }
|
||||
D1703E:string{ "Target reports an error" }
|
||||
D1704E:string{ "Memory allocation failure" }
|
||||
D1705E:string{ "Unsupported function" }
|
||||
D1706E:string{ "Parameter code of log page not found" }
|
||||
D1707E:string{ "Cannot get the sense data from a lower level" }
|
||||
D1708E:string{ "Invalid argument" }
|
||||
D1709E:string{ "IO error on saving dump" }
|
||||
D1710E:string{ "Medium is already mounted or in use" }
|
||||
D1711E:string{ "Cannot open the device" }
|
||||
D1712E:string{ "Cannot support the device" }
|
||||
D1713E:string{ "The device is not an IBM product" }
|
||||
D1714E:string{ "Cannot support the firmware" }
|
||||
D9998E:string{ "Unknown sense" }
|
||||
D9999E:string{ "Vendor unique sense. ASC >= 0x80 or ASCQ >= 0x80" }
|
||||
}
|
||||
}
|
||||
38
ltfs/messages/iosched_fcfs/en.txt
Normal file
38
ltfs/messages/iosched_fcfs/en.txt
Normal file
@@ -0,0 +1,38 @@
|
||||
//
|
||||
// %Z% %I% %W% %G% %U%
|
||||
//
|
||||
// ZZ_Copyright_BEGIN
|
||||
//
|
||||
//
|
||||
// Licensed Materials - Property of IBM
|
||||
//
|
||||
// IBM Linear Tape File System Single Drive Edition Version 2.2.0.2 for Linux and Mac OS X
|
||||
//
|
||||
// Copyright IBM Corp. 2010, 2014
|
||||
//
|
||||
// This file is part of the IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X
|
||||
// (formally known as IBM Linear Tape File System)
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is free software;
|
||||
// you can redistribute it and/or modify it under the terms of the GNU Lesser
|
||||
// General Public License as published by the Free Software Foundation,
|
||||
// version 2.1 of the License.
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is distributed in the
|
||||
// hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
|
||||
// implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
// See the GNU Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
// or download the license from <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
//
|
||||
// ZZ_Copyright_END
|
||||
//
|
||||
|
||||
en:table {
|
||||
// This resource intentionally left blank.
|
||||
}
|
||||
|
||||
38
ltfs/messages/iosched_fcfs/en_US.txt
Normal file
38
ltfs/messages/iosched_fcfs/en_US.txt
Normal file
@@ -0,0 +1,38 @@
|
||||
//
|
||||
// %Z% %I% %W% %G% %U%
|
||||
//
|
||||
// ZZ_Copyright_BEGIN
|
||||
//
|
||||
//
|
||||
// Licensed Materials - Property of IBM
|
||||
//
|
||||
// IBM Linear Tape File System Single Drive Edition Version 2.2.0.2 for Linux and Mac OS X
|
||||
//
|
||||
// Copyright IBM Corp. 2010, 2014
|
||||
//
|
||||
// This file is part of the IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X
|
||||
// (formally known as IBM Linear Tape File System)
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is free software;
|
||||
// you can redistribute it and/or modify it under the terms of the GNU Lesser
|
||||
// General Public License as published by the Free Software Foundation,
|
||||
// version 2.1 of the License.
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is distributed in the
|
||||
// hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
|
||||
// implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
// See the GNU Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
// or download the license from <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
//
|
||||
// ZZ_Copyright_END
|
||||
//
|
||||
|
||||
en_US:table {
|
||||
// This resource intentionally left blank.
|
||||
}
|
||||
|
||||
48
ltfs/messages/iosched_fcfs/root.txt
Normal file
48
ltfs/messages/iosched_fcfs/root.txt
Normal file
@@ -0,0 +1,48 @@
|
||||
//
|
||||
// %Z% %I% %W% %G% %U%
|
||||
//
|
||||
// ZZ_Copyright_BEGIN
|
||||
//
|
||||
//
|
||||
// Licensed Materials - Property of IBM
|
||||
//
|
||||
// IBM Linear Tape File System Single Drive Edition Version 2.2.0.2 for Linux and Mac OS X
|
||||
//
|
||||
// Copyright IBM Corp. 2010, 2014
|
||||
//
|
||||
// This file is part of the IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X
|
||||
// (formally known as IBM Linear Tape File System)
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is free software;
|
||||
// you can redistribute it and/or modify it under the terms of the GNU Lesser
|
||||
// General Public License as published by the Free Software Foundation,
|
||||
// version 2.1 of the License.
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is distributed in the
|
||||
// hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
|
||||
// implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
// See the GNU Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
// or download the license from <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
//
|
||||
// ZZ_Copyright_END
|
||||
//
|
||||
|
||||
// Messages for the fcfs scheduler.
|
||||
// This backend shares IDs 13000-13999 with the schedulers and the scheduler
|
||||
// interface functions, so be sure to make a note in messages/ltfs/root.txt whenever an
|
||||
// ID is allocated here.
|
||||
root:table {
|
||||
messages:table {
|
||||
start_id:int { 13005 }
|
||||
end_id:int { 13499 }
|
||||
|
||||
13019I:string { "FCFS I/O scheduler initialized" }
|
||||
13020I:string { "FCFS I/O scheduler uninitialized" }
|
||||
}
|
||||
}
|
||||
|
||||
38
ltfs/messages/iosched_unified/en.txt
Normal file
38
ltfs/messages/iosched_unified/en.txt
Normal file
@@ -0,0 +1,38 @@
|
||||
//
|
||||
// %Z% %I% %W% %G% %U%
|
||||
//
|
||||
// ZZ_Copyright_BEGIN
|
||||
//
|
||||
//
|
||||
// Licensed Materials - Property of IBM
|
||||
//
|
||||
// IBM Linear Tape File System Single Drive Edition Version 2.2.0.2 for Linux and Mac OS X
|
||||
//
|
||||
// Copyright IBM Corp. 2010, 2014
|
||||
//
|
||||
// This file is part of the IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X
|
||||
// (formally known as IBM Linear Tape File System)
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is free software;
|
||||
// you can redistribute it and/or modify it under the terms of the GNU Lesser
|
||||
// General Public License as published by the Free Software Foundation,
|
||||
// version 2.1 of the License.
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is distributed in the
|
||||
// hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
|
||||
// implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
// See the GNU Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
// or download the license from <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
//
|
||||
// ZZ_Copyright_END
|
||||
//
|
||||
|
||||
en:table {
|
||||
// This resource intentionally left blank.
|
||||
}
|
||||
|
||||
38
ltfs/messages/iosched_unified/en_US.txt
Normal file
38
ltfs/messages/iosched_unified/en_US.txt
Normal file
@@ -0,0 +1,38 @@
|
||||
//
|
||||
// %Z% %I% %W% %G% %U%
|
||||
//
|
||||
// ZZ_Copyright_BEGIN
|
||||
//
|
||||
//
|
||||
// Licensed Materials - Property of IBM
|
||||
//
|
||||
// IBM Linear Tape File System Single Drive Edition Version 2.2.0.2 for Linux and Mac OS X
|
||||
//
|
||||
// Copyright IBM Corp. 2010, 2014
|
||||
//
|
||||
// This file is part of the IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X
|
||||
// (formally known as IBM Linear Tape File System)
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is free software;
|
||||
// you can redistribute it and/or modify it under the terms of the GNU Lesser
|
||||
// General Public License as published by the Free Software Foundation,
|
||||
// version 2.1 of the License.
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is distributed in the
|
||||
// hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
|
||||
// implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
// See the GNU Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
// or download the license from <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
//
|
||||
// ZZ_Copyright_END
|
||||
//
|
||||
|
||||
en_US:table {
|
||||
// This resource intentionally left blank.
|
||||
}
|
||||
|
||||
64
ltfs/messages/iosched_unified/root.txt
Normal file
64
ltfs/messages/iosched_unified/root.txt
Normal file
@@ -0,0 +1,64 @@
|
||||
//
|
||||
// %Z% %I% %W% %G% %U%
|
||||
//
|
||||
// ZZ_Copyright_BEGIN
|
||||
//
|
||||
//
|
||||
// Licensed Materials - Property of IBM
|
||||
//
|
||||
// IBM Linear Tape File System Single Drive Edition Version 2.2.0.2 for Linux and Mac OS X
|
||||
//
|
||||
// Copyright IBM Corp. 2010, 2014
|
||||
//
|
||||
// This file is part of the IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X
|
||||
// (formally known as IBM Linear Tape File System)
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is free software;
|
||||
// you can redistribute it and/or modify it under the terms of the GNU Lesser
|
||||
// General Public License as published by the Free Software Foundation,
|
||||
// version 2.1 of the License.
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is distributed in the
|
||||
// hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
|
||||
// implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
// See the GNU Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
// or download the license from <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
//
|
||||
// ZZ_Copyright_END
|
||||
//
|
||||
|
||||
// Messages for the unified scheduler.
|
||||
// This backend shares IDs 13000-13999 with other schedulers and the scheduler
|
||||
// interface functions, so be sure to make a note in messages/ltfs/root.txt whenever an
|
||||
// ID is allocated here.
|
||||
root:table {
|
||||
messages:table {
|
||||
start_id:int { 13005 }
|
||||
end_id:int { 13499 }
|
||||
|
||||
13005E:string { "Cannot initialize scheduler: failed to initialize cache manager" }
|
||||
13006E:string { "Cannot initialize scheduler: failed to initialize mutex %s (%d)" }
|
||||
13007E:string { "Cannot initialize scheduler: failed to initialize condition variable %s (%d)" }
|
||||
13008E:string { "Cannot initialize scheduler: failed to create thread %s (%d)" }
|
||||
13009E:string { "Failed to initialize mutex in scheduler private data (%d)" }
|
||||
13010E:string { "Cannot write: failed to allocate scheduler private data (%d)" }
|
||||
13011E:string { "Invalid back pointer to the dentry in the dentry_priv structure" }
|
||||
13012E:string { "Invalid request_state received when updating the queue membership (%d)" }
|
||||
13013W:string { "Index partition writer: failed to write data to the tape (%d)" }
|
||||
13014W:string { "Data partition writer: failed to write data to the tape (%d)" }
|
||||
13015D:string { "Unified I/O scheduler initialized" }
|
||||
13016D:string { "Unified I/O scheduler uninitialized" }
|
||||
13017E:string { "Cannot write: failed to allocate a cache block (%d)" }
|
||||
13018E:string { "Cannot write: failed to allocate a write request" }
|
||||
13019E:string { "Cannot flush: failed to write to data partition (%d)" }
|
||||
13020E:string { "Aborting full flush: flushing dentry '%s' failed (%d)" }
|
||||
13021W:string { "Failed to save index partition extents for a dentry (%d)" }
|
||||
13022W:string { "Freeing a dentry priv with outstanding write requests. This is a bug." }
|
||||
//unused 13023W:string { "Failed to copy a request: will stop writing file to the index partition" }
|
||||
}
|
||||
}
|
||||
38
ltfs/messages/kmi_flatfile/en.txt
Normal file
38
ltfs/messages/kmi_flatfile/en.txt
Normal file
@@ -0,0 +1,38 @@
|
||||
//
|
||||
// %Z% %I% %W% %G% %U%
|
||||
//
|
||||
// ZZ_Copyright_BEGIN
|
||||
//
|
||||
//
|
||||
// Licensed Materials - Property of IBM
|
||||
//
|
||||
// IBM Linear Tape File System Single Drive Edition Version 2.2.0.2 for Linux and Mac OS X
|
||||
//
|
||||
// Copyright IBM Corp. 2010, 2014
|
||||
//
|
||||
// This file is part of the IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X
|
||||
// (formally known as IBM Linear Tape File System)
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is free software;
|
||||
// you can redistribute it and/or modify it under the terms of the GNU Lesser
|
||||
// General Public License as published by the Free Software Foundation,
|
||||
// version 2.1 of the License.
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is distributed in the
|
||||
// hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
|
||||
// implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
// See the GNU Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
// or download the license from <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
//
|
||||
// ZZ_Copyright_END
|
||||
//
|
||||
|
||||
en:table {
|
||||
// This resource intentionally left blank.
|
||||
}
|
||||
|
||||
38
ltfs/messages/kmi_flatfile/en_US.txt
Normal file
38
ltfs/messages/kmi_flatfile/en_US.txt
Normal file
@@ -0,0 +1,38 @@
|
||||
//
|
||||
// %Z% %I% %W% %G% %U%
|
||||
//
|
||||
// ZZ_Copyright_BEGIN
|
||||
//
|
||||
//
|
||||
// Licensed Materials - Property of IBM
|
||||
//
|
||||
// IBM Linear Tape File System Single Drive Edition Version 2.2.0.2 for Linux and Mac OS X
|
||||
//
|
||||
// Copyright IBM Corp. 2010, 2014
|
||||
//
|
||||
// This file is part of the IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X
|
||||
// (formally known as IBM Linear Tape File System)
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is free software;
|
||||
// you can redistribute it and/or modify it under the terms of the GNU Lesser
|
||||
// General Public License as published by the Free Software Foundation,
|
||||
// version 2.1 of the License.
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is distributed in the
|
||||
// hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
|
||||
// implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
// See the GNU Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
// or download the license from <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
//
|
||||
// ZZ_Copyright_END
|
||||
//
|
||||
|
||||
en_US:table {
|
||||
// This resource intentionally left blank.
|
||||
}
|
||||
|
||||
67
ltfs/messages/kmi_flatfile/root.txt
Normal file
67
ltfs/messages/kmi_flatfile/root.txt
Normal file
@@ -0,0 +1,67 @@
|
||||
//
|
||||
// %Z% %I% %W% %G% %U%
|
||||
//
|
||||
// ZZ_Copyright_BEGIN
|
||||
//
|
||||
//
|
||||
// Licensed Materials - Property of IBM
|
||||
//
|
||||
// IBM Linear Tape File System Single Drive Edition Version 2.2.0.2 for Linux and Mac OS X
|
||||
//
|
||||
// Copyright IBM Corp. 2010, 2014
|
||||
//
|
||||
// This file is part of the IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X
|
||||
// (formally known as IBM Linear Tape File System)
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is free software;
|
||||
// you can redistribute it and/or modify it under the terms of the GNU Lesser
|
||||
// General Public License as published by the Free Software Foundation,
|
||||
// version 2.1 of the License.
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is distributed in the
|
||||
// hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
|
||||
// implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
// See the GNU Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
// or download the license from <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
//
|
||||
// ZZ_Copyright_END
|
||||
//
|
||||
|
||||
// Messages for the key manager interface flat file plugin.
|
||||
// This backend shares IDs 15500-15999 with other key manager interface plugins and the plugin
|
||||
// interface functions, so be sure to make a note in messages/libltfs/root.txt whenever an
|
||||
// ID is allocated here.
|
||||
root:table {
|
||||
messages:table {
|
||||
start_id:int { 15500 }
|
||||
end_id:int { 15999 }
|
||||
|
||||
// Message IDs 15500-15009 are reserved for the cropto direct plugins.
|
||||
// DO NOT add messages with those IDs to this file.
|
||||
|
||||
15510D:string { "Flat File plug-in initialized" }
|
||||
15511D:string { "Flat File plug-in uninitialized" }
|
||||
15512E:string { "Flat File plug-in failed to parse options" }
|
||||
15513E:string { "Flat File plug-in failed to open the file (%d,%d)" }
|
||||
15514E:string { "Flat File plug-in detected key format violation" }
|
||||
|
||||
// for LTFS specific format
|
||||
15600E:string { "Encryption key format violation (%s): %s" }
|
||||
15603E:string { "Cannot find data key" }
|
||||
15604E:string { "Option parsing for the key manager interface backend failed (%d)" }
|
||||
15605E:string { "Invalid sequence error (%d,%d): %s" }
|
||||
15606E:string { "Failed to parse data key and/or data key identifier" }
|
||||
15607E:string { "Cannot find data key of the data key identifier" }
|
||||
15608I:string { "Key manager interface flatfile plug-in options:\n"
|
||||
" -o kmi_dki_for_format=<DKi>\n"
|
||||
" Data key identifier to format a cartridge\n"
|
||||
" -o kmi_dk_list=FILE\n"
|
||||
" Data key and data key identifier pairs' list file\n\n" }
|
||||
}
|
||||
}
|
||||
|
||||
38
ltfs/messages/kmi_simple/en.txt
Normal file
38
ltfs/messages/kmi_simple/en.txt
Normal file
@@ -0,0 +1,38 @@
|
||||
//
|
||||
// %Z% %I% %W% %G% %U%
|
||||
//
|
||||
// ZZ_Copyright_BEGIN
|
||||
//
|
||||
//
|
||||
// Licensed Materials - Property of IBM
|
||||
//
|
||||
// IBM Linear Tape File System Single Drive Edition Version 2.2.0.2 for Linux and Mac OS X
|
||||
//
|
||||
// Copyright IBM Corp. 2010, 2014
|
||||
//
|
||||
// This file is part of the IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X
|
||||
// (formally known as IBM Linear Tape File System)
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is free software;
|
||||
// you can redistribute it and/or modify it under the terms of the GNU Lesser
|
||||
// General Public License as published by the Free Software Foundation,
|
||||
// version 2.1 of the License.
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is distributed in the
|
||||
// hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
|
||||
// implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
// See the GNU Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
// or download the license from <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
//
|
||||
// ZZ_Copyright_END
|
||||
//
|
||||
|
||||
en:table {
|
||||
// This resource intentionally left blank.
|
||||
}
|
||||
|
||||
38
ltfs/messages/kmi_simple/en_US.txt
Normal file
38
ltfs/messages/kmi_simple/en_US.txt
Normal file
@@ -0,0 +1,38 @@
|
||||
//
|
||||
// %Z% %I% %W% %G% %U%
|
||||
//
|
||||
// ZZ_Copyright_BEGIN
|
||||
//
|
||||
//
|
||||
// Licensed Materials - Property of IBM
|
||||
//
|
||||
// IBM Linear Tape File System Single Drive Edition Version 2.2.0.2 for Linux and Mac OS X
|
||||
//
|
||||
// Copyright IBM Corp. 2010, 2014
|
||||
//
|
||||
// This file is part of the IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X
|
||||
// (formally known as IBM Linear Tape File System)
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is free software;
|
||||
// you can redistribute it and/or modify it under the terms of the GNU Lesser
|
||||
// General Public License as published by the Free Software Foundation,
|
||||
// version 2.1 of the License.
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is distributed in the
|
||||
// hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
|
||||
// implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
// See the GNU Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
// or download the license from <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
//
|
||||
// ZZ_Copyright_END
|
||||
//
|
||||
|
||||
en_US:table {
|
||||
// This resource intentionally left blank.
|
||||
}
|
||||
|
||||
70
ltfs/messages/kmi_simple/root.txt
Normal file
70
ltfs/messages/kmi_simple/root.txt
Normal file
@@ -0,0 +1,70 @@
|
||||
//
|
||||
// %Z% %I% %W% %G% %U%
|
||||
//
|
||||
// ZZ_Copyright_BEGIN
|
||||
//
|
||||
//
|
||||
// Licensed Materials - Property of IBM
|
||||
//
|
||||
// IBM Linear Tape File System Single Drive Edition Version 2.2.0.2 for Linux and Mac OS X
|
||||
//
|
||||
// Copyright IBM Corp. 2010, 2014
|
||||
//
|
||||
// This file is part of the IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X
|
||||
// (formally known as IBM Linear Tape File System)
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is free software;
|
||||
// you can redistribute it and/or modify it under the terms of the GNU Lesser
|
||||
// General Public License as published by the Free Software Foundation,
|
||||
// version 2.1 of the License.
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is distributed in the
|
||||
// hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
|
||||
// implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
// See the GNU Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
// or download the license from <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
//
|
||||
// ZZ_Copyright_END
|
||||
//
|
||||
|
||||
// Messages for the key manager interface simple plugin.
|
||||
// This backend shares IDs 15500-15999 with other key manager interface plugins and the plugin
|
||||
// interface functions, so be sure to make a note in messages/libltfs/root.txt whenever an
|
||||
// ID is allocated here.
|
||||
root:table {
|
||||
messages:table {
|
||||
start_id:int { 15500 }
|
||||
end_id:int { 15999 }
|
||||
|
||||
15500D:string { "Simple plug-in initialized" }
|
||||
15501D:string { "Simple plug-in uninitialized" }
|
||||
|
||||
// Message IDs 15510-15529 are reserved for the cropto flatfile plugins.
|
||||
// DO NOT add messages with those IDs to this file.
|
||||
|
||||
// for LTFS specific format
|
||||
15600E:string { "Encryption key format violation (%s): %s" }
|
||||
15603E:string { "Cannot find data key" }
|
||||
15604E:string { "Option parsing for the key manager interface backend failed (%d)" }
|
||||
15605E:string { "Invalid sequence error (%d,%d): %s" }
|
||||
15606E:string { "Failed to parse data key and/or data key identifier" }
|
||||
15607E:string { "Cannot find data key of the data key identifier" }
|
||||
15608I:string { "Key manager interface simple plug-in options:\n"
|
||||
" -o kmi_dk=<DK>\n"
|
||||
" Data key\n"
|
||||
" -o kmi_dki=<DKi>\n"
|
||||
" Data key identifier\n"
|
||||
" -o kmi_dk_for_format=<DK>\n"
|
||||
" Data key to format a cartridge\n"
|
||||
" -o kmi_dki_for_format=<DKi>\n"
|
||||
" Data key identifier to format a cartridge\n"
|
||||
" -o kmi_dk_list=<DK>:<DKi>/<DK>:<DKi>/.../<DK>:<DKi>\n"
|
||||
" Data key and data key identifier pairs' list\n\n" }
|
||||
}
|
||||
}
|
||||
|
||||
38
ltfs/messages/libltfs/en.txt
Normal file
38
ltfs/messages/libltfs/en.txt
Normal file
@@ -0,0 +1,38 @@
|
||||
//
|
||||
// %Z% %I% %W% %G% %U%
|
||||
//
|
||||
// ZZ_Copyright_BEGIN
|
||||
//
|
||||
//
|
||||
// Licensed Materials - Property of IBM
|
||||
//
|
||||
// IBM Linear Tape File System Single Drive Edition Version 2.2.0.2 for Linux and Mac OS X
|
||||
//
|
||||
// Copyright IBM Corp. 2010, 2014
|
||||
//
|
||||
// This file is part of the IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X
|
||||
// (formally known as IBM Linear Tape File System)
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is free software;
|
||||
// you can redistribute it and/or modify it under the terms of the GNU Lesser
|
||||
// General Public License as published by the Free Software Foundation,
|
||||
// version 2.1 of the License.
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is distributed in the
|
||||
// hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
|
||||
// implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
// See the GNU Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
// or download the license from <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
//
|
||||
// ZZ_Copyright_END
|
||||
//
|
||||
|
||||
en:table {
|
||||
// This resource intentionally left blank.
|
||||
}
|
||||
|
||||
38
ltfs/messages/libltfs/en_US.txt
Normal file
38
ltfs/messages/libltfs/en_US.txt
Normal file
@@ -0,0 +1,38 @@
|
||||
//
|
||||
// %Z% %I% %W% %G% %U%
|
||||
//
|
||||
// ZZ_Copyright_BEGIN
|
||||
//
|
||||
//
|
||||
// Licensed Materials - Property of IBM
|
||||
//
|
||||
// IBM Linear Tape File System Single Drive Edition Version 2.2.0.2 for Linux and Mac OS X
|
||||
//
|
||||
// Copyright IBM Corp. 2010, 2014
|
||||
//
|
||||
// This file is part of the IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X
|
||||
// (formally known as IBM Linear Tape File System)
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is free software;
|
||||
// you can redistribute it and/or modify it under the terms of the GNU Lesser
|
||||
// General Public License as published by the Free Software Foundation,
|
||||
// version 2.1 of the License.
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is distributed in the
|
||||
// hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
|
||||
// implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
// See the GNU Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
// or download the license from <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
//
|
||||
// ZZ_Copyright_END
|
||||
//
|
||||
|
||||
en_US:table {
|
||||
// This resource intentionally left blank.
|
||||
}
|
||||
|
||||
816
ltfs/messages/libltfs/root.txt
Normal file
816
ltfs/messages/libltfs/root.txt
Normal file
@@ -0,0 +1,816 @@
|
||||
//
|
||||
// %Z% %I% %W% %G% %U%
|
||||
//
|
||||
// ZZ_Copyright_BEGIN
|
||||
//
|
||||
//
|
||||
// Licensed Materials - Property of IBM
|
||||
//
|
||||
// IBM Linear Tape File System Single Drive Edition Version 2.2.0.2 for Linux and Mac OS X
|
||||
//
|
||||
// Copyright IBM Corp. 2010, 2014
|
||||
//
|
||||
// This file is part of the IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X
|
||||
// (formally known as IBM Linear Tape File System)
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is free software;
|
||||
// you can redistribute it and/or modify it under the terms of the GNU Lesser
|
||||
// General Public License as published by the Free Software Foundation,
|
||||
// version 2.1 of the License.
|
||||
//
|
||||
// The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is distributed in the
|
||||
// hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
|
||||
// implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
// See the GNU Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
// or download the license from <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
// ZZ_Copyright_END
|
||||
//
|
||||
// (C) Copyright 2015-2017 Hewlett Packard Enterprise Development LP
|
||||
//
|
||||
// 10/13/2017 Added extra messages to support SNIA 2.4
|
||||
//
|
||||
|
||||
root:table {
|
||||
// Fallback messages. These messages do not have unique IDs; they are printed when
|
||||
// the message function receives an unrecognized unique ID or fails to
|
||||
// generate a message for a known unique ID.
|
||||
// These messages are accessed by key, not by index: so they may be
|
||||
// reordered, but they should not be renamed.
|
||||
fallback_messages:table {
|
||||
notfound:string { "(no message found)" }
|
||||
overflow:string { "(message too long)" }
|
||||
}
|
||||
|
||||
// Message list for libltfs.
|
||||
// Notes:
|
||||
// - Message IDs less than 10000 are not officially supported. A few are listed here
|
||||
// for legacy reasons. DO NOT add new ones.
|
||||
// - Message IDs from 10000 to 10099 are generic messages which may be used outside libltfs.
|
||||
// - Other messages listed here should not be used outside libltfs.
|
||||
messages:table {
|
||||
start_id:int { 9000 }
|
||||
end_id:int { 19999 }
|
||||
|
||||
// Messages with IDs less than 10000. These are here for legacy reasons only.
|
||||
// DO NOT add new messages with IDs less than 10000.
|
||||
9001E:string { "Failed to parse command line options" }
|
||||
9006E:string { "Cannot load resource \"fallback_messages\" (ures_getByKey: %d)" }
|
||||
9008E:string { "Cannot open output converter (ucnv_open: %d)" }
|
||||
9010E:string { "Invalid option \'%s\'" }
|
||||
9011E:string { "Logging initialization failed" }
|
||||
9012E:string { "Cannot specify \"--quiet\" with \"--trace\" or \"--fulltrace\"" }
|
||||
9013E:string { "Cannot specify \"--quiet\" with \"--trace\" or \"--fulltrace\"" }
|
||||
9014E:string { "Cannot create work directory \'%s\': %s" }
|
||||
9015W:string { "Setting the locale to 'en_US.UTF-8'. If this setting is wrong, set the LANG environment variable before starting %s." }
|
||||
9016E:string { "Cannot set the LANG environment variable" }
|
||||
|
||||
// Generic messages (IDs 10000 through 10099).
|
||||
// These may be used in multiple components.
|
||||
10000E:string { "Failed to initialize libltfs (%d)" }
|
||||
10001E:string { "Memory allocation failed (%s)" }
|
||||
10002E:string { "Cannot initialize mutex (%d)" }
|
||||
10003E:string { "Cannot initialize condition variable (%d)" }
|
||||
10004E:string { "Cannot open device \'%s\'" }
|
||||
10005E:string { "Null argument (%s) to %s" }
|
||||
10006W:string { "Null argument (%s) to %s" }
|
||||
10007E:string { "Not yet implemented (%s)" }
|
||||
10008E:string { "Failed to load the configuration file (%d)" }
|
||||
10009E:string { "No driver plug-in specified and no default found" }
|
||||
//unused 10010E:string { "Cannot initialize plugin: failed to load messages (%d)" }
|
||||
//unused 10011E:string { "Failed to load message data for %s" }
|
||||
10012E:string { "Failed to register messages with libltfs (%d)" }
|
||||
10013E:string { "Failed to set up signal handler" }
|
||||
10014E:string { "Failed to clean up signal handler" }
|
||||
//unused 10015E:string { "Failed to get shared memory (%d)" }
|
||||
//unused 10016E:string { "Failed to attach shared memory (%d)" }
|
||||
//unused 10017E:string { "Failed to set mutex attribute as shared (%d)" }
|
||||
10018E:string { "No key manager interface plug-in specified and no default found (%s, %d, %d)" }
|
||||
10019E:string { "Error on runcommand (%s, %d, %d)" }
|
||||
10020E:string { "Error on %s: %s (%d, %d)" }
|
||||
|
||||
11000E:string { "Cannot instantiate LTFS volume: failed to allocate device data" }
|
||||
11001E:string { "Cannot instantiate LTFS volume: failed to allocate label data" }
|
||||
11002E:string { "Cannot instantiate LTFS volume: failed to allocate index data" }
|
||||
11003E:string { "Cannot retrieve device capacity data (%d)" }
|
||||
11004E:string { "Cannot take the device lock (%s)" }
|
||||
11005I:string { "Mounting the volume" }
|
||||
11006E:string { "Cannot read volume: failed to load the tape" }
|
||||
11007D:string { "Tape is loaded" }
|
||||
11008D:string { "Reading partition labels" }
|
||||
11009E:string { "Cannot read volume: failed to read partition labels." }
|
||||
11010E:string { "Cannot read volume: failed to set medium compression." }
|
||||
11011E:string { "Cannot read volume: block size is %lu, but the device only supports a block size of %u" }
|
||||
11012D:string { "Loading the tape" }
|
||||
11013D:string { "Partition labels are valid" }
|
||||
11014D:string { "Reading MAM parameters" }
|
||||
11015W:string { "VCR MAM parameter is not usable. Mounting will take longer." }
|
||||
11016W:string { "The index partition MAM parameter is not usable. Mounting will take longer." }
|
||||
11017W:string { "The data partition MAM parameter is not usable. Mounting will take longer." }
|
||||
11018D:string { "Done reading MAM parameters" }
|
||||
11019D:string { "Checking volume consistency" }
|
||||
11020E:string { "Cannot mount volume: seek to index failed on the data partition" }
|
||||
11021E:string { "Cannot mount volume: read index failed on the data partition" }
|
||||
11022I:string { "Restoring volume consistency by writing an index to the index partition" }
|
||||
11023E:string { "Cannot mount volume: seek to index failed on the index partition" }
|
||||
11024E:string { "Cannot mount volume: read index failed on the index partition" }
|
||||
11025D:string { "Volume is consistent" }
|
||||
11026I:string { "Performing a full medium consistency check" }
|
||||
11027E:string { "Cannot mount volume: medium consistency check failed" }
|
||||
11028D:string { "Consistency check finished" }
|
||||
11029E:string { "Cannot mount volume: failed to save the append position for the index partition." }
|
||||
//unused 11030E:string { "Cannot release the device lock (%s)" }
|
||||
//11031D:string { "Volume mounted successfully" }
|
||||
11032D:string { "Unmounting the volume" }
|
||||
11033E:string { "Cannot unmount: failed to write an index" }
|
||||
11034I:string { "Volume unmounted successfully" }
|
||||
//unused 11035D:string { "Medium is write protected" }
|
||||
//unused 11036D:string { "Medium is writeable" }
|
||||
//unused 11037E:string { "Cannot get attributes: failed to format the path (%d)" }
|
||||
//unused 11038E:string { "Cannot get attributes: path lookup failed (%d)" }
|
||||
11039E:string { "Cannot open file: failed to format the path (%d)" }
|
||||
11040E:string { "Cannot open file: path lookup failed (%d)" }
|
||||
//unused 11041E:string { "Cannot set times: failed to format the path (%d)" }
|
||||
//unused 11042E:string { "Cannot set times: path lookup failed (%d)" }
|
||||
//unused 11043E:string { "Cannot set read-only flag: failed to format the path (%d)" }
|
||||
//unused 11044E:string { "Cannot set read-only flag: path lookup failed (%d)" }
|
||||
11045E:string { "Cannot set times: device is not ready" }
|
||||
11046E:string { "Cannot set read-only flag: device is not ready" }
|
||||
11047E:string { "Cannot create: device is not ready" }
|
||||
11048E:string { "Cannot create: failed to format the path (%d)" }
|
||||
11049E:string { "Cannot create: path lookup failed (%d)" }
|
||||
11050E:string { "Cannot unlink: device is not ready" }
|
||||
11051E:string { "Cannot unlink: failed to format the path (%d)" }
|
||||
11052E:string { "Cannot unlink: path lookup failed (%d)" }
|
||||
11053E:string { "Cannot rename: device is not ready" }
|
||||
11054E:string { "Cannot rename: failed to format the source path (%d)" }
|
||||
11055E:string { "Cannot rename: failed to format the destination path (%d)" }
|
||||
11056E:string { "Cannot rename: path lookup failed for source (%d)" }
|
||||
11057E:string { "Cannot rename: path lookup failed for destination (%d)" }
|
||||
//unused 11058E:string { "Cannot rename: unable to overwrite destination (%d)" }
|
||||
11059E:string { "Cannot truncate: length must not be negative" }
|
||||
//unused 11060E:string { "Cannot truncate: failed to format the path (%d)" }
|
||||
//unused 11061E:string { "Cannot truncate: path lookup failed (%d)" }
|
||||
11062E:string { "Cannot truncate: device is not ready" }
|
||||
//unused 11063E:string { "Cannot truncate: failed to write an index while switching partitions (%d)" }
|
||||
//unused 11064E:string { "Cannot truncate: failed to write zero bytes to the medium (%d)" }
|
||||
//unused 11065E:string { "Cannot truncate: failed to update the extent list (%d)" }
|
||||
//unused 11066E:string { "Cannot save extent: offset is greater than the file size" }
|
||||
11067E:string { "Cannot write blocks: invalid partition identifier" }
|
||||
11068E:string { "Cannot write blocks: multiple repetitions specified with an irregular buffer size" }
|
||||
11069E:string { "Cannot write blocks: failed to write an index while switching partitions (%d)" }
|
||||
11070E:string { "Cannot write blocks: locate append position failed on partition %c" }
|
||||
11071E:string { "Cannot write blocks: failed to determine medium position (%d)" }
|
||||
11072E:string { "Cannot write blocks: failed to write to the medium (%d)" }
|
||||
//unused 11073E:string { "Cannot write blocks: write to medium returned %zd, expected %u" }
|
||||
//unused 11074E:string { "Cannot write: invalid partition identifier" }
|
||||
//unused 11075E:string { "Cannot write: failed to write an index while switching partitions (%d)" }
|
||||
//unused 11076E:string { "Cannot write: failed to extend the file with zeros (%d)" }
|
||||
11077E:string { "Cannot write: failed to write blocks to the medium (%d)" }
|
||||
//unused 11078E:string { "Cannot write: failed to update extent list (%d)" }
|
||||
//unused 11079E:string { "Cannot write index to index partition: failed to write index to data partition" }
|
||||
11080E:string { "Cannot write index: failed to locate append position on partition %c (%d)" }
|
||||
11081E:string { "Cannot write index: failed to determine medium position (%d)" }
|
||||
11082E:string { "Cannot write index: failed to write file mark (%d)" }
|
||||
11083E:string { "Cannot write index: failed to generate and write XML data (%d). The medium might be in an inconsistent state; unmount and run ltfsck." }
|
||||
11084E:string { "Cannot write index: failed to write a trailing file mark (%d). The medium is in an inconsistent state; unmount and run ltfsck." }
|
||||
11085E:string { "Cannot read: failed to determine medium position (%d)" }
|
||||
11086E:string { "Cannot read: failed to locate (%d) to partition %c, record %llu" }
|
||||
11087E:string { "Cannot read: expected %u bytes from cache, but received %lu bytes" }
|
||||
11088E:string { "Cannot read: failed to get a block from the medium (%d)" }
|
||||
11089E:string { "Cannot read: expected %u bytes from the medium, but received %u bytes" }
|
||||
11090W:string { "Data partition identifier requested on an uninitialized volume" }
|
||||
11091W:string { "Index partition identifier requested on an uninitialized volume" }
|
||||
//unused 11092I:string { "Loading the medium" }
|
||||
11093E:string { "Cannot format: failed to load the medium (%d)" }
|
||||
//unused 11094I:string { "Medium is loaded" }
|
||||
11095E:string { "Cannot format: the medium is write protected" }
|
||||
11096E:string { "Cannot format: requested block size is %lu bytes, but the device only supports %u" }
|
||||
11097I:string { "Partitioning the medium" }
|
||||
11098E:string { "Cannot format: failed to partition the medium (%d)" }
|
||||
11099E:string { "Cannot format: failed to set the medium compression (%d)" }
|
||||
|
||||
11100I:string { "Writing label to partition %c" }
|
||||
11101E:string { "Cannot format: failed to locate (%d) to partition %u, block 0" }
|
||||
11102E:string { "Cannot format: failed to write ANSI label (%d) on partition %u" }
|
||||
//unused 11103E:string { "Cannot format: failed to write ANSI label on partition %u (expected %u, received %zd)" }
|
||||
11104E:string { "Cannot format: failed to write file mark after ANSI label (%d) on partition %u" }
|
||||
11105E:string { "Cannot format: failed to generate LTFS label" }
|
||||
11106E:string { "Cannot format: failed to write XML label (%d) on partition %u" }
|
||||
//unused 11107E:string { "Cannot format: failed to write XML label on partition %u (expected %u, received %zd)" }
|
||||
11108E:string { "Cannot format: failed to write file mark after XML label (%d) on partition %u" }
|
||||
//unused 11109E:string { "Cannot format: failed to generate empty Index data structure (%d)" }
|
||||
11110E:string { "Cannot get current time (%d)" }
|
||||
11111E:string { "Base64 decoder: empty input" }
|
||||
11112E:string { "Base64 decoder: invalid character in the input" }
|
||||
11113E:string { "Base64 decoder: input length is not a multiple of 4" }
|
||||
11114E:string { "Cache manager: failed to initialize the pool" }
|
||||
11115W:string { "Cache manager: failed to fully expand the pool" }
|
||||
11116E:string { "Cache manager: failed to grow the pool" }
|
||||
11117E:string { "Cannot set extended attribute: device is not ready" }
|
||||
11118E:string { "Cannot set extended attribute: failed to format the path (%d)" }
|
||||
11119E:string { "Cannot set extended attribute: failed to format the name (%d)" }
|
||||
11120E:string { "Cannot set extended attribute: failed to validate the name (%d)" }
|
||||
11121E:string { "Cannot set extended attribute: failed to look up the path (%d)" }
|
||||
11122E:string { "Cannot set extended attribute: failed to look up the xattr (%d)" }
|
||||
11123E:string { "Cannot get extended attribute: NULL value with non-zero size" }
|
||||
11124E:string { "Cannot get extended attribute: failed to format the path (%d)" }
|
||||
11125E:string { "Cannot get extended attribute: failed to format the name (%d)" }
|
||||
11126E:string { "Cannot get extended attribute: failed to validate the name (%d)" }
|
||||
11127E:string { "Cannot get extended attribute: failed to look up the path (%d)" }
|
||||
11128E:string { "Cannot get extended attribute: failed to look for virtual xattrs (%d)" }
|
||||
11129E:string { "Cannot get extended attribute: failed to look up the xattr (%d)" }
|
||||
11130E:string { "Cannot list extended attributes: NULL output buffer with a non-zero size" }
|
||||
11131E:string { "Cannot list extended attributes: failed to format the path (%d)" }
|
||||
11132E:string { "Cannot list extended attributes: failed to look up the path (%d)" }
|
||||
11133E:string { "Cannot list extended attributes: failed to list real xattrs (%d)" }
|
||||
//unused 11134E
|
||||
11135E:string { "Cannot remove extended attribute: device is not ready" }
|
||||
11136E:string { "Cannot remove extended attribute: failed to format the path (%d)" }
|
||||
11137E:string { "Cannot remove extended attribute: failed to format the name (%d)" }
|
||||
11138E:string { "Cannot remove extended attribute: failed to validate the name (%d)" }
|
||||
11139E:string { "Cannot remove extended attribute: failed to look up the path (%d)" }
|
||||
11140E:string { "Cannot remove extended attribute: failed to look up the xattr (%d)" }
|
||||
11141E:string { "Cannot list physical xattrs: failed to generate namespace prefix (%d)" }
|
||||
11142E:string { "Cannot list physical xattrs: failed to convert key to system locale (%d)" }
|
||||
//unused 11143E
|
||||
//unused 11144E:string { "Cannot list physical xattrs: failed to convert key to system locale (%d)" }
|
||||
11145E:string { "Cannot get attribute %s: failed to generate the time string" }
|
||||
11146E:string { "Invalid index criteria option \'%s\'" }
|
||||
11147E:string { "Duplicate index criteria option \'%s\'" }
|
||||
11148E:string { "More than one non-numeric character follows the size criterion" }
|
||||
11149E:string { "Invalid size criterion multiplier \'%c\'" }
|
||||
11150E:string { "Size= rule must contain a valid size" }
|
||||
11151E:string { "Size= rule must contain a digit" }
|
||||
11152E:string { "Cannot parse index criteria: rules are invalid" }
|
||||
11153E:string { "Cannot parse index criteria: failed to parse name rule (%d)" }
|
||||
11154E:string { "Cannot parse index criteria: error while seeking name rule" }
|
||||
11155E:string { "Cannot parse index criteria: failed to parse size rule (%d)" }
|
||||
11156E:string { "Cannot parse index criteria: error while seeking size rule" }
|
||||
11157E:string { "Cannot specify a name rule without a size rule" }
|
||||
11158E:string { "Cannot match name: failed to initialize glob cache (%d)" }
|
||||
11159E:string { "Cannot match name: failed to prepare for caseless matching (%d)" }
|
||||
11160E:string { "Cannot prepare glob cache: failed to prepare name for caseless matching (%d)" }
|
||||
11161E:string { "Cannot match name: match function failed (%d)" }
|
||||
11162E:string { "Cannot perform matching: failed to open text boundary iterator for criteria (%d)" }
|
||||
11163E:string { "Cannot perform matching: failed to open text boundary iterator for filename (%d)" }
|
||||
11164E:string { "Failed to push file name onto a null stack pointer" }
|
||||
11165E:string { "Failed to pop a file name from a null stack pointer" }
|
||||
11166E:string { "Cannot allocate index data: failed to initialize mutex (%d)" }
|
||||
11167E:string { "Cannot create file or directory: failed to allocate dentry" }
|
||||
11168E:string { "Cannot allocate index data: failed to allocate root dentry" }
|
||||
11169E:string { "Cannot read labels: failed to allocate label data (%d)" }
|
||||
11170E:string { "Failed to read label (%d) from partition 0" }
|
||||
11171E:string { "Failed to read label (%d) from partition 1" }
|
||||
11172E:string { "Cannot verify labels: comparison failed (%d)" }
|
||||
11173E:string { "Cannot read label (%d): failed to seek to block 0 (partition %lu)" }
|
||||
11174E:string { "Cannot read ANSI label: read failed (%d)" }
|
||||
11175E:string { "Cannot read ANSI label: expected 80 bytes, but received %d" }
|
||||
11176E:string { "ANSI label indicates this is not an LTFS volume" }
|
||||
//unused 11177E:string { "Cannot read LTFS label: failed to space forward 1 file mark (%d)" }
|
||||
11178E:string { "Cannot read LTFS label: read failed (%d)" }
|
||||
11179E:string { "Cannot read LTFS label: parsing failed (%d)" }
|
||||
11180E:string { "Cannot read partition label: failed to space forward over the trailing file mark (%d)" }
|
||||
11181E:string { "Cannot read partition label: failed to find the trailing file mark" }
|
||||
11182E:string { "Comparing labels: tape bar code number mismatch" }
|
||||
11183E:string { "Comparing labels: volume UUID mismatch" }
|
||||
11184E:string { "Comparing labels: format time mismatch" }
|
||||
11185E:string { "Comparing labels: block size mismatch" }
|
||||
11186E:string { "Comparing labels: compression mismatch" }
|
||||
11187E:string { "Comparing labels: partition IDs must be lowercase ASCII characters" }
|
||||
11188E:string { "Comparing labels: partition IDs must be distinct" }
|
||||
11189E:string { "Comparing labels: partition map mismatch" }
|
||||
11190E:string { "Comparing labels: unknown partition ID" }
|
||||
11191E:string { "Comparing labels: partitions have the same ID \'%c\'" }
|
||||
11192E:string { "Comparing labels: invalid bar code number" }
|
||||
11193E:string { "Cannot read index: failed to determined medium position (%d)" }
|
||||
11194W:string { "Cannot read index: failed to read and parse XML data (%d)" }
|
||||
11195W:string { "This index belongs to a different volume" }
|
||||
11196W:string { "Cannot read index: self-pointer mismatch" }
|
||||
11197E:string { "Cannot read index: back pointer is corrupt" }
|
||||
11198E:string { "Cannot read index: failed to space forward 1 file mark (%d)" }
|
||||
11199E:string { "Cannot locate index: failed to locate to EOD (%d)" }
|
||||
11200E:string { "Cannot locate index: failed to determined medium position (%d)" }
|
||||
11201E:string { "Cannot locate index: failed to space back 1 file mark (%d)" }
|
||||
11202E:string { "Cannot locate index: failed to space forward 1 file mark (%d)" }
|
||||
11203E:string { "Cannot locate index: failed to space back 2 file marks (%d)" }
|
||||
11204D:string { "No index found. Space back and try again" }
|
||||
11205E:string { "Index partition contains a back pointer, but no index found on the data partition" }
|
||||
11206E:string { "Index partition back pointer is invalid" }
|
||||
11207E:string { "Missing required index partition back pointer" }
|
||||
//unused 11208E:string { "Back pointer chain is broken" }
|
||||
11209E:string { "Cannot create lost and found directory: failed to allocate directory data" }
|
||||
11210W:string { "Ignoring unexpected file mark in partition %lu" }
|
||||
11211E:string { "Cannot populate lost and found directory: failed to allocate file data" }
|
||||
11212E:string { "Cannot create lost and found directory: seek failed (%d)" }
|
||||
11213E:string { "Cannot check medium: seek index failed on the data partition (%d)" }
|
||||
11214E:string { "Cannot check medium: seek index failed on the index partition (%d)" }
|
||||
11215E:string { "Cannot check medium: failed to locate to EOD on the data partition (%d)" }
|
||||
11216E:string { "Cannot check medium: failed to locate to EOD on the index partition (%d)" }
|
||||
11217E:string { "Cannot check medium: failed to write a file mark to the data partition (%d)" }
|
||||
11218E:string { "Cannot check medium: failed to write a file mark to the index partition (%d)" }
|
||||
11219E:string { "Cannot check medium: pointer verification failed (%d)" }
|
||||
11220E:string { "Medium check failed: extra blocks detected. Run ltfsck." }
|
||||
11221E:string { "Medium check failed: detected invalid extents" }
|
||||
11222E:string { "Cannot check medium: failed to save index partition append position (%d)" }
|
||||
11223I:string { "Generating lost and found directory" }
|
||||
11224E:string { "Cannot restore medium consistency: failed to generate lost and found (%d)" }
|
||||
11225E:string { "Cannot check medium: failed to allocate index data (%d)" }
|
||||
11226I:string { "Erasing bad blocks from the index partition" }
|
||||
11227I:string { "Erasing bad blocks from the data partition" }
|
||||
11228E:string { "Cannot restore medium consistency: failed to save data partition append position (%d)" }
|
||||
11229E:string { "Cannot restore medium consistency: failed to save index partition append position (%d)" }
|
||||
11230I:string { "Writing index(es) to restore consistency" }
|
||||
11231E:string { "A simple fix is possible to restore the consistency of the tape." }
|
||||
11232E:string { "Rerun the consistency check with simple fixes enabled." }
|
||||
11233I:string { "Updating MAM coherency data" }
|
||||
11234E:string { "Cannot validate extended attribute value: code point iteration failed" }
|
||||
11235E:string { "Cannot validate name: failed to iterate code point" }
|
||||
11236E:string { "Cannot fold string case: failed to get output buffer size (%d)" }
|
||||
11237E:string { "Cannot fold string case: failed to fill output buffer (%d)" }
|
||||
11238E:string { "Cannot apply NFC: failed to get output buffer size (%d)" }
|
||||
11239E:string { "Cannot apply NFC: failed to fill output buffer (%d)" }
|
||||
11240E:string { "Cannot apply NFD: failed to get output buffer size (%d)" }
|
||||
11241E:string { "Cannot apply NFD: failed to fill output buffer (%d)" }
|
||||
11242E:string { "Cannot convert UTF-8 to UTF-16: failed to get output buffer size (%d)" }
|
||||
11243E:string { "Cannot convert UTF-8 to UTF-16: failed to fill output buffer (%d)" }
|
||||
11244E:string { "Cannot convert UTF-16 to UTF-8: failed to get output buffer size (%d)" }
|
||||
11245E:string { "Cannot convert UTF-16 to UTF-8: failed to fill output buffer (%d)" }
|
||||
11246E:string { "Cannot convert system locale to UTF-16: failed to open converter (%d)" }
|
||||
11247E:string { "Cannot convert system locale to UTF-16: failed to set up converter (%d)" }
|
||||
11248E:string { "Cannot convert system locale to UTF-16: failed to get output buffer size (%d) for '%s'" }
|
||||
11249E:string { "Cannot convert system locale to UTF-16: failed to fill output buffer (%d) for '%s'" }
|
||||
11250E:string { "Cannot convert UTF-8 to system locale: failed to get output buffer size (%d)" }
|
||||
11251E:string { "Cannot convert UTF-8 to system locale: failed to fill output buffer (%d)" }
|
||||
11252D:string { "libltfs write to \'%s\': offset = %lld, count = %u" }
|
||||
11253E:string { "No index found in the medium" }
|
||||
11254D:string { "libltfs read from \'%s\': offset = %lld, count = %u" }
|
||||
11255I:string { "Appending a file mark to the data partition" }
|
||||
11256I:string { "Appending a file mark to the index partition" }
|
||||
11257I:string { "No index found in the index partition" }
|
||||
11258I:string { "No index found in the data partition" }
|
||||
11259I:string { "Cannot move directory: Directory move is prohibited because of a MacFUSE bug" }
|
||||
11260E:string { "Plug-in \'%s\' was not found in the configuration file" }
|
||||
11261E:string { "Cannot load plug-in: %s" }
|
||||
11262E:string { "Cannot unload plug-in: %s" }
|
||||
11263E:string { "Cannot resolve plug-in operation interface: %s" }
|
||||
11264E:string { "Cannot get plug-in operations" }
|
||||
11265E:string { "Cannot parse configuration file: \'default\' directive must be followed by a plug-in type and name" }
|
||||
//unused 11266E:string { "Cannot parse configuration file: unknown plugin type \'%s\' in \'default\' directive" }
|
||||
11267E:string { "Cannot get library path: unknown plug-in type \'%s\' or plug-in name \'%s\'" }
|
||||
11268E:string { "Cannot open configuration file \'%s\' (%d)" }
|
||||
11269E:string { "Cannot parse configuration file: line too long" }
|
||||
11270E:string { "Cannot parse configuration file: \'-default\' directive must be followed by a plug-in type" }
|
||||
11271E:string { "Cannot parse configuration file: unknown plug-in type \'%s\' in \'-default\' directive" }
|
||||
11272E:string { "Cannot parse configuration file: \'option\' directive must be followed by an option type and LTFS mount option" }
|
||||
11273E:string { "Cannot parse configuration file: \'%s\' directive must be followed by a valid %s name" }
|
||||
//unused 11274E:string { "Cannot define a scheduler plug-in using the reserved name \'none\'" }
|
||||
11275E:string { "Cannot parse configuration file: \'plug-in\' directive must be followed by a plug-in type, name, and library path" }
|
||||
11276W:string { "Ignoring unknown configuration directive \'%s\'" }
|
||||
11277W:string { "Cannot find the %s plug-in \'%s\' at \'%s\'" }
|
||||
11278I:string { "Writing index to partition %c" }
|
||||
11279E:string { "Cannot write index to partition %c (%d)" }
|
||||
11280E:string { "Unknown default %s \'%s\'" }
|
||||
11281E:string { "Cannot load messages: failed to get message table (%d)" }
|
||||
11282E:string { "Cannot load messages: failed to determine first message ID (ures_getByKey: %d)" }
|
||||
11283E:string { "Cannot load messages: failed to determine first message ID (ures_getInt: %d)" }
|
||||
11284E:string { "Cannot resolve plug-in message bundle interface: %s" }
|
||||
11285E:string { "Cannot load %s plug-in \'%s\': failed to load the message bundle (%d)" }
|
||||
11286E:string { "Cannot load messages: failed to open resource bundle (%d)" }
|
||||
11287E:string { "Cannot load messages: failed to register message data (%d)" }
|
||||
11288W:string { "No end ID found for this message bundle: assigning 1000 message IDs" }
|
||||
11289I:string { "Ejecting cartridge" }
|
||||
11290E:string { "Failed to eject the cartridge (%s)" }
|
||||
11291I:string { "Eject successful" }
|
||||
//unused 11292E
|
||||
11293E:string { "Cannot load messages for libltfs (%d)" }
|
||||
//unused 11294E
|
||||
11295E:string { "Cannot read partition label: check for file mark after the ANSI label failed (%d)" }
|
||||
11296E:string { "Cannot read partition label: failed to find a file mark after the ANSI label" }
|
||||
11297E:string { "Cannot read index: failed to allocate index structure (%d)" }
|
||||
11298E:string { "Cannot read volume: unsupported medium" }
|
||||
11299E:string { "Cannot format: unsupported medium" }
|
||||
//unused 11300E:string { "Cannot rename: failed check of target file existence (%d)" }
|
||||
11301E:string { "Unable to read index: cannot duplicate index partition criteria" }
|
||||
11302E:string { "Data placement rule contains invalid character(s): '%s'" }
|
||||
11303E:string { "Data placement rule is too long: '%s'" }
|
||||
11304E:string { "Failed to validate data placement rule (%d)" }
|
||||
11305E:string { "Empty data placement rule in '%s'" }
|
||||
11306E:string { "Cannot get read-only state of partition: invalid partition identifier" }
|
||||
11307W:string { "All unique IDs for volume %s are used. No new files or directories can be created for the volume." }
|
||||
11308E:string { "Commit message must be 65536 bytes or less" }
|
||||
11309E:string { "Cannot parse configuration file: \'-plugin\' directive must be followed by a plug-in type and name" }
|
||||
11310W:string { "Cannot set the traversal mode: failed to get a valid selection %d" }
|
||||
11311E:string { "Cannot format: failed to reset capacity proportion (%d)" }
|
||||
11312D:string { "Revalidating the medium" }
|
||||
11313E:string { "Medium revalidation failed (%d). Unmount the tape before continuing." }
|
||||
11314E:string { "Cannot format: failed to get data key (%d)" }
|
||||
11315E:string { "Cannot format: failed to set data key (%d)" }
|
||||
11316E:string { "Failed to print help message of key manager interface backend" }
|
||||
11317E:string { "Cannot print help message: unknown type: '%s'" }
|
||||
11318W:string { "Unknown log level (%d), forced the level to (%d)" }
|
||||
11319E:string { "Cannot add the key to hash table at %s (%d)" }
|
||||
11320E:string { "Cannot search the key from hash table at %s (%d)" }
|
||||
11321E:string { "Symbolic link might be replaced by data file. Use ltfsck for recovery" }
|
||||
11322D:string { "Makeing a symlink '%s' target '%s'" }
|
||||
11323D:string { "Symlink EA prefix valuse is (%s)" }
|
||||
11324D:string { "Path changed from '%s' to '%s'" }
|
||||
11325E:string { "Cannot set extended attribute: failed to flush (%d)" }
|
||||
11326E:string { "Cannot write index: failed to flush buffered data (%d)" }
|
||||
11327E:string { "Failed to seek EOD: seek invalid partition (%d, %d)" }
|
||||
11328E:string { "Failed to seek index: seek invalid partition (%c, %c)" }
|
||||
11329E:string { "Failed to recover tape: cannot write the index to an invalid position in the data partition (%lld, %lld, %d)" }
|
||||
11330E:string { "Cannot format: incompatible medium" }
|
||||
|
||||
// Message IDs 11400 through 11800 are allocated to the libchanger.
|
||||
// DO NOT add messages with those IDs to this file.
|
||||
|
||||
//unused 11997E:string { "Comparing labels: failed to match versions" }
|
||||
11998W:string { "Unable to delete dentry '%s': it still has outstanding references" }
|
||||
11999E:string { "Cannot load the medium: failed to get capacity data (%d)" }
|
||||
//unused 12000E:string { "Cannot open device backend library directory" }
|
||||
//unused 12001E:string { "Failed to open device backend library: %s" }
|
||||
//unused 12002E:string { "Failed to get device operations: %s" }
|
||||
//unused 12003E:string { "Device backend returned an empty set of operations" }
|
||||
12004E:string { "Device backend does not implement all required methods" }
|
||||
//unused 12005E:string { "Failed to inquiry tape page: backend call failed (%d)" }
|
||||
//unused 12006E:string { "Cannot allocate device data: failed to set mutex attributes (%d)" }
|
||||
//unused 12007E:string { "Cannot allocate device data: failed to set mutex type (%d)" }
|
||||
12008E:string { "Cannot allocate device data: failed to initialize mutex (%d)" }
|
||||
//unused 12009E:string { "Cannot allocate device data: failed to free mutex attributes (%d)" }
|
||||
12010E:string { "Failed to grab the device lock (%s)" }
|
||||
//unused 12011E:string { "Failed to release the device lock (%s)" }
|
||||
12012E:string { "Cannot open device: failed backend open call" }
|
||||
12013E:string { "Cannot inquire the tape device: backend call failed (%d)" }
|
||||
12014E:string { "Cannot open device: failed to reserve the device (%d)" }
|
||||
//unused 12015D:string { "Attempting to load the medium" }
|
||||
12016E:string { "No medium present" }
|
||||
12017E:string { "Cannot load the medium (%d)" }
|
||||
12018E:string { "Cannot load the medium: failed to lock the medium in the drive (%d)" }
|
||||
12019E:string { "Cannot load the medium: failed to determine medium position (%d)" }
|
||||
12020E:string { "Cannot load the medium: failed to set device defaults (%d)" }
|
||||
12021E:string { "Cannot load the medium: failed to get device parameters (%d)" }
|
||||
12022I:string { "Unloading medium" }
|
||||
12023D:string { "Reserving device" }
|
||||
12024E:string { "Cannot reserve device: backend call failed (%d)" }
|
||||
12025D:string { "Releasing device" }
|
||||
12026D:string { "Locking medium in the drive" }
|
||||
12027E:string { "Cannot lock medium in the drive: backend call failed (%d)" }
|
||||
12028D:string { "Unlocking medium" }
|
||||
12029E:string { "Device is not ready (%d)" }
|
||||
12030E:string { "Cannot get capacity data: backend call failed (%d)" }
|
||||
12031E:string { "Cannot set compression: backend call failed (%d)" }
|
||||
12032E:string { "Cannot set append position: invalid partition %lu" }
|
||||
12033E:string { "Cannot seek to append position: seek failed (%d)" }
|
||||
12034E:string { "Cannot get maximum device blocksize: backend call failed (%d)" }
|
||||
12035E:string { "Cannot rewind medium: backend call failed (%d)" }
|
||||
12036E:string { "Seek failed: final position is not what was requested" }
|
||||
12037E:string { "Cannot seek: backend call failed (%d)" }
|
||||
12038E:string { "Cannot seek EOD: invalid partition %lu" }
|
||||
12039E:string { "Cannot seek EOD: backend locate call failed (%d)" }
|
||||
12040E:string { "Cannot parse backend options: backend call failed (%d)" }
|
||||
12041E:string { "Cannot space file marks: backend call failed (%d)" }
|
||||
12042E:string { "Cannot write block: must open the device first" }
|
||||
12043E:string { "Cannot write block: device is read-only" }
|
||||
12044E:string { "Cannot write a %u-byte block: maximum block size is %lu" }
|
||||
12045E:string { "Cannot write block: backend call failed (%d). Dropping to read-only mode." }
|
||||
12046E:string { "Cannot write file marks: must open the device first" }
|
||||
12047E:string { "Cannot write file marks: backend call failed (%d). Dropping to read-only mode." }
|
||||
12048E:string { "Cannot read: must open the device first" }
|
||||
12049E:string { "Cannot read: backend call failed (%d)" }
|
||||
12050E:string { "Cannot format medium: locate to partition 0, block 0 failed (%d)" }
|
||||
12051E:string { "Cannot format medium: Mode Sense for Medium Partition failed (%d)" }
|
||||
//unused 12052E:string { "Cannot format medium: Mode Select for Medium Partition failed (%d)" }
|
||||
12053E:string { "Cannot format medium: backend call failed (%d)" }
|
||||
12054E:string { "Cannot unformat medium: locate to partition 0, block 0 failed (%d)" }
|
||||
12055E:string { "Cannot unformat medium: backend call failed (%d)" }
|
||||
12056W:string { "Cannot get Volume Change Reference parameter: read attribute failed (%d)" }
|
||||
12057W:string { "Cannot get VCI data: read attribute failed (%d)" }
|
||||
12058W:string { "Cannot get VCI data: unexpected ID 0x%04x" }
|
||||
12059W:string { "Cannot get VCI data: unexpected length 0x%04x" }
|
||||
12060W:string { "Cannot get VCI data: unexpected VCR length 0x%04x" }
|
||||
12061W:string { "Cannot get VCI data: unexpected Application Specific Info length %d" }
|
||||
12062W:string { "Cannot get VCI data: unexpected Application Specific Info signature" }
|
||||
12063W:string { "Cannot set VCI data: backend call failed (%d)" }
|
||||
12064E:string { "Cannot write block: no space left on device" }
|
||||
// unused 12065E:string { "Cannot write file marks: error during retry on out of space condition (%d). Dropping to read-only mode." }
|
||||
// unused 12066E:string { "Cannot write block: error during retry on out of space condition (%d). Dropping to read-only mode." }
|
||||
|
||||
// Message IDs 12067 through 12499 are allocated to IBM tape device plugins.
|
||||
// DO NOT add messages with those IDs to this file.
|
||||
|
||||
//unused 13000E:string { "Failed to open I/O scheduler backend: %s" }
|
||||
//unused 13001E:string { "Failed to get scheduler operations: %s" }
|
||||
//unused 13002E:string { "Scheduler backend returned an empty set of operations" }
|
||||
13003E:string { "Scheduler backend does not implement all required methods" }
|
||||
13004E:string { "Dentry cache backend does not implement all required methods" }
|
||||
|
||||
// Message IDs 13005 through 13499 are allocated to IBM I/O scheduler plugins.
|
||||
// DO NOT add messages with those IDs to this file.
|
||||
|
||||
// Message IDs 13500-13999 are allocated to dentry cache plugins.
|
||||
// DO NOT add messages with those IDs to this file.
|
||||
|
||||
// Message IDs 14000-14499 are reserved for the ltfs executable.
|
||||
// DO NOT add messages with those IDs to this file.
|
||||
|
||||
// Message IDs 14500-14999 are reserved for the admin_channel interface.
|
||||
// DO NOT add messages with those IDs to this file.
|
||||
|
||||
// Message IDs 15000-15499 are reserved for the mkltfs executable.
|
||||
// DO NOT add messages with those IDs to this file.
|
||||
|
||||
// Message IDs 15500-15999 are reserved for the cropto plugins.
|
||||
// DO NOT add messages with those IDs to this file.
|
||||
|
||||
// Message IDs 16000-16499 are reserved for the ltfsck executable.
|
||||
// DO NOT add messages with those IDs to this file.
|
||||
|
||||
// Message IDs 16500-16999 are reserved for the cartrige repository plugins.
|
||||
// DO NOT add messages with those IDs to this file.
|
||||
|
||||
17000E:string { "XML parser: not all required tags found in \'%s\'" }
|
||||
17001E:string { "XML parser: duplicate required tag \'%s\'" }
|
||||
17002E:string { "XML parser: duplicate optional tag \'%s\'" }
|
||||
17003E:string { "XML parser: cannot determine whether tag is empty" }
|
||||
17004E:string { "XML parser: tag \'%s\' must not be empty" }
|
||||
17005E:string { "XML parser: extra content in tag \'%s\'" }
|
||||
17006W:string { "XML parser: ignoring unrecognized tag \'%s\' inside \'%s\'" }
|
||||
17007E:string { "Cannot instantiate an LTFS label parser for file \'%s\'" }
|
||||
17008E:string { "Cannot parse XML label from file \'%s\'" }
|
||||
17009E:string { "Cannot instantiate an LTFS label parser for a memory buffer" }
|
||||
17010E:string { "Cannot parse XML label from memory" }
|
||||
17011E:string { "Cannot instantiate an index parser for file \'%s\'" }
|
||||
17012E:string { "Cannot parse index from file \'%s\'" }
|
||||
17013E:string { "Cannot parse index: failed to determine medium position (%d)" }
|
||||
17014E:string { "Cannot parse index: failed to create XML parser input buffer" }
|
||||
17015E:string { "Cannot parse index: failed to create XML reader" }
|
||||
17016E:string { "Cannot parse index direct from medium" }
|
||||
17017E:string { "XML parser: unexpected top-level tag \'%s\'" }
|
||||
17018E:string { "XML parser: unsupported encoding \'%s\'" }
|
||||
17019E:string { "XML parser: no schema version found" }
|
||||
17020E:string { "XML parser: invalid schema version \'%s\'" }
|
||||
17021E:string { "XML parser: unsupported %s version %s" }
|
||||
17022E:string { "XML parser: invalid block size %s" }
|
||||
17023E:string { "XML parser: invalid generation number %s" }
|
||||
17024E:string { "XML parser: invalid size criterion %s" }
|
||||
17025E:string { "XML parser: failed to normalize value (%d)" }
|
||||
17026E:string { "XML parser: file size is shorter than extent list" }
|
||||
17027E:string { "XML parser: unsupported extended attribute type \'%s\'" }
|
||||
17028E:string { "XML parser: base64 decoding failed" }
|
||||
17029E:string { "XML parser: invalid UUID %s" }
|
||||
17030E:string { "XML parser: failed to normalize name \'%s\'" }
|
||||
17031E:string { "XML parser: invalid %s name \'%s\'" }
|
||||
17032E:string { "XML parser: compression must be \'true\' (1) or \'false\' (0)" }
|
||||
17033E:string { "XML parser: invalid partition \'%s\'" }
|
||||
17034E:string { "XML parser: invalid time \'%s\' (%d)" }
|
||||
17035E:string { "XML parser: expected a text node" }
|
||||
17036E:string { "XML parser: expected a text node (received type %d)" }
|
||||
17037E:string { "XML parser: failed to read from XML stream" }
|
||||
17038E:string { "XML parser: unexpected end of XML stream" }
|
||||
17039E:string { "XML parser: failed to read a block from the medium (%d)" }
|
||||
17040E:string { "XML parser: failed to space back 1 file mark" }
|
||||
17041E:string { "XML parser: read failed while looking for a file mark (%d)" }
|
||||
17042E:string { "XML writer: error creating tag (%s)" }
|
||||
17043E:string { "Cannot instantiate an LTFS label writer to memory" }
|
||||
17044E:string { "Label writer: failed to start the document (%d)" }
|
||||
17045E:string { "Label writer: failed to format time" }
|
||||
17046E:string { "Label writer: failed to close the document (%d)" }
|
||||
17047E:string { "Cannot generate LTFS label: failed to allocate buffer" }
|
||||
17048E:string { "Cannot generate index data in memory: failed to allocate buffer" }
|
||||
17049E:string { "Cannot instantiate index writer to memory" }
|
||||
17050E:string { "Cannot generate index data in memory" }
|
||||
17051E:string { "Cannot instantiate an index writer to file \'%s\'" }
|
||||
17052E:string { "Cannot generate index data (%d) in file \'%s\'" }
|
||||
17053E:string { "Cannot generate index data direct to tape: failed to create output buffer" }
|
||||
17054E:string { "Cannot instantiate an index writer direct to tape" }
|
||||
17055E:string { "Cannot generate index data direct to tape (%d)" }
|
||||
17056E:string { "XML writer: cannot format time (gmtime failed)" }
|
||||
17057E:string { "Index writer: failed to start the document (%d)" }
|
||||
17058E:string { "Index writer: failed to close the document (%d)" }
|
||||
17059E:string { "Index writer: cannot validate extended attribute value (%d)" }
|
||||
17060E:string { "XML writer: failed to write a block to the medium (%d)" }
|
||||
17061E:string { "XML writer: failed to flush cached data to the medium (%d)" }
|
||||
17062E:string { "XML writer: tried to write a directory as a file" }
|
||||
17063W:string { "Periodic sync thread failed to flush file data to the medium. Data might be lost (%s)." }
|
||||
17064D:string { "Sync is done. (%s)" }
|
||||
17065D:string { "Periodic sync thread initialized" }
|
||||
17066D:string { "Periodic sync thread uninitialized" }
|
||||
17067D:string { "Sync is kicked. (%s)" }
|
||||
17068D:string { "Sync index" }
|
||||
17069E:string { "Failed to sync index" }
|
||||
//unused 17070I:string { "Tape is not loaded" }
|
||||
17071I:string { "Unpartitioning the medium" }
|
||||
17072E:string { "Cannot unformat: failed to unpartition the medium (%d)" }
|
||||
17073I:string { "Tape Device list:" }
|
||||
17074I:string { "Device Name = %s, Vender ID = %s, Product ID = %s, Serial Number = %s, Product Name = %s" }
|
||||
17075E:string { "Traverse(%c): cannot read index from %d (%c)" }
|
||||
17076E:string { "Traverse(%c): cannot locate to the next index position (%c)" }
|
||||
17077I:string { "Traverse(%c): find target generation %d (%c)" }
|
||||
17078D:string { "Traverse(%c): cannot find target generation %d (%c)" }
|
||||
17079E:string { "Traverse: cannot find target generation %d" }
|
||||
17080D:string { "Traverse(%c): find generation %d (%c)" }
|
||||
17081E:string { "Traverse(%c): callback function failed %d (%c)" }
|
||||
17082E:string { "Traverse(%c): cannot locate to the first index position (%c)" }
|
||||
17083E:string { "Traverse(%c): cannot locate to the last index position (%c)" }
|
||||
17084E:string { "XML parser: failed to read extent list from file (%d)" }
|
||||
17085I:string { "Plugin: Loading \"%s\" %s" }
|
||||
17086W:string { "Cannot get kernel version" }
|
||||
17087I:string { "Kernel version: %s" }
|
||||
17088W:string { "Cannot get distribution information" }
|
||||
17089I:string { "Distribution: %s" }
|
||||
17090W:string { "sysctl system call failed (%s)" }
|
||||
17091E:string { "Cannot save tag: libxml2 could not return text for this node" }
|
||||
17092E:string { "Index writer: failed to write opaque tags (%s)" }
|
||||
17093E:string { "XML parser: failed to skip tag" }
|
||||
17094E:string { "XML parser: comment field is longer than 64 KiB" }
|
||||
17095W:string { "The index read from the tape uses an old version of the LTFS format. If this tape is modified, the index upgrades format version to %s from %d.%d.%d." }
|
||||
17096W:string { "The index read from the tape uses a newer version of the LTFS format than the one supported by this software. Some functionality might be unavailable. If this tape is modified, the index downgrades format version to %s from %d.%d.%d" }
|
||||
17097E:string { "XML parser: two extents overlap" }
|
||||
17098E:string { "XML parser: invalid name pattern '%s\'" }
|
||||
17099E:string { "Failed to spawn the periodic sync thread (%d)" }
|
||||
|
||||
17100E:string { "XML parser: UID on the root directory must be 1" }
|
||||
17101E:string { "XML parser: UID 1 is reserved for the root directory" }
|
||||
17102E:string { "Cannot set PEWS: Mode Sense for Device Configuration Extension failed (%d)" }
|
||||
17103E:string { "Cannot set PEWS: Mode Select for Device Configuration Extension failed (%d)" }
|
||||
17104E:string { "Cannot get PEWS: Mode Sense for Device Configuration Extension failed (%d)" }
|
||||
17105E:string { "Cannot load the medium: failed to get programmable early warning size (%d)" }
|
||||
17106E:string { "XML parser: UID 0 is reserved" }
|
||||
17107E:string { "Version mismatch of MAM, IP=%d, DP=%d" }
|
||||
17108E:string { "Cannot find partition id \'%c\'(0x%x)" }
|
||||
17109E:string { "Failed to detect the final index or the final record" }
|
||||
17110I:string { "The MAM was written by PGA1 or earlier" }
|
||||
17111I:string { "The MAM was written by PGA2 or later" }
|
||||
17112I:string { "Starting EOD recovery (GA/PGA1)" }
|
||||
17113I:string { "Starting EOD recovery: reading an index from (%llu, %llu)" }
|
||||
17114I:string { "Seaching the final index in IP" }
|
||||
17115E:string { "Failed to search the final index in IP" }
|
||||
17116I:string { "Detecting the final record in DP" }
|
||||
17117E:string { "Failed to search the final index in DP" }
|
||||
17118I:string { "Seeking to the final index in %s (%llu, %llu)" }
|
||||
17119E:string { "Failed to seek to the final index in %s (%d)" }
|
||||
17120I:string { "Reading the final index in %s (%llu, %llu)" }
|
||||
17121E:string { "Failed to read the final index in %s (%d)" }
|
||||
//unused 17122I:string { "Search one more index after current index (%llu, %llu)" }
|
||||
17123E:string { "Unexpected genaration value (Gen = %d, MAM IP = %d, MAM DP = %d)" }
|
||||
17124I:string { "Seeking to the final record in %s (%llu, %llu)" }
|
||||
17125E:string { "Failed to seek to the final record in %s (%d)" }
|
||||
17126E:string { "Unexpected EOD status (%d, %d)" }
|
||||
17127I:string { "Detecting the final record to read by hitting read error takes about 20 minutes" }
|
||||
//unused 17128W:string { "Unexpected EOD detection on the missing EOD cartridge occurred. No action required." }
|
||||
17129W:string { "Unexpected read error occurred" }
|
||||
17130I:string { "Expected read error occurred" }
|
||||
17131I:string { "Recovering EOD at (%llu, %llu) takes about 20 minutes" }
|
||||
17132E:string { "Failed to get current position" }
|
||||
17133E:string { "Failed to unload the cartridge" }
|
||||
17134E:string { "Failed to reload the cartridge" }
|
||||
17135E:string { "Failed to seek to EOD recovery point" }
|
||||
17136E:string { "Failed to erase at EOD recovery point" }
|
||||
17137E:string { "Failed to recover EOD status (%d)" }
|
||||
17138I:string { "Recovered EOD status successfully (%d)" }
|
||||
17139I:string { "Starting a deep recovery operation: missing EOD" }
|
||||
17140E:string { "Tape backend does not support missing EOD detection" }
|
||||
17141I:string { "Both EODs are detected. A deep recovery operation is unnecessary." }
|
||||
17142E:string { "Both EODs are missing." }
|
||||
17143I:string { "EOD of %s(%d) is missing" }
|
||||
17144E:string { "The MAM of %s is not usable" }
|
||||
17145W:string { "Tape backend does not support missing EOD detection" }
|
||||
17146E:string { "EOD of %s(%d) is missing. A deep recovery operation is required." }
|
||||
17147I:string { "Attempting to mount a cartridge without EOD status check" }
|
||||
17148E:string { "Use ltfsck with the --deep-recovery option" }
|
||||
17149E:string { "Cannot erase: backend call failed (%d)" }
|
||||
//unused 17150I:string { "PEWS field in Device Configuration Extension mode page was changed to disable programmable early warning" }
|
||||
17151E:string { "Cannot set WRITE MODE: Failed to unload medium (%d)" }
|
||||
17152E:string { "Cannot set WRITE MODE: Failed to load medium (%s, %d)" }
|
||||
// unused 17153E:string { "Cannot set WRITE MODE: Invalid mode is specified (%x)" }
|
||||
17154E:string { "Cannot set WRITE MODE: Mode Sense for Device Configuration Extension failed (%d)" }
|
||||
17155E:string { "Cannot set WRITE MODE: Mode Select for Device Configuration Extension failed (%d)" }
|
||||
17156E:string { "Cannot get WRITE MODE: Mode Sense for Device Configuration Extension failed (%d)" }
|
||||
17157I:string { "Changing the drive setting %s" }
|
||||
//unused 17158E:string { "Cannot set up tape drive" }
|
||||
17159I:string { "Process was interruped by user" }
|
||||
17160I:string { "Maximum device block size is %d" }
|
||||
17161I:string { "EOD information (%s) is corrupted" }
|
||||
17162I:string { "Trying a simple recovery that requires several minutes to complete" }
|
||||
17163E:string { "Cannot reset the capacity proportion: failed to locate partition 0, block 0 (%d)" }
|
||||
17164E:string { "Cannot reset the capacity proportion: backend call failed (%d)" }
|
||||
17165I:string { "Resetting the medium's capacity proportion" }
|
||||
17166D:string { "Coherency Data: %s (%lld, %lld, %lld, %u, %s, %c)" }
|
||||
17167E:string { "Cannot read volume: failed to get capacity data (%d)" }
|
||||
17168E:string { "Cannot read volume: medium is not partitioned" }
|
||||
17169I:string { "Detected EOD on the missing EOD cartridge" }
|
||||
17170E:string { "Failed to parse LTFS dcache configuration rules: invalid option '%s'" }
|
||||
17171E:string { "Failed to parse LTFS dcache configuration rules: invalid value '%d' for option '%s'" }
|
||||
17172W:string { "Time conversion is overflowed. (%04d-%02d-%02dT%02d:%02d:%02dZ)" }
|
||||
17173W:string { "Time conversion is underflowed. (%04d-%02d-%02dT%02d:%02d:%02dZ)" }
|
||||
17174E:string { "Key manager interface backend does not implement all required methods" }
|
||||
17175E:string { "Cannot read: failed to get data key identifier (%d)" }
|
||||
17176E:string { "Cannot read: failed to get data key (%d)" }
|
||||
17177E:string { "Cannot read: no correct key" }
|
||||
17178E:string { "Cannot read: failed to set data key (%d)" }
|
||||
17179I:string { "Cleaning cartridge was loaded. (TA=%016llx)" }
|
||||
17180E:string { "File %s has both of symbolic link and extents" }
|
||||
17181E:string { "Cannot reopen device: failed backend reopen call" }
|
||||
17182D:string { "Writing schema to disk: UUID='%s', barcode='%s'" }
|
||||
17183E:string { "Error writing XML schema to file '%s' on the disk" }
|
||||
17184E:string { "Error changing index cache file's permission (%d)" }
|
||||
17185E:string { "Cannot read LTFS label: max transfer length is shorter than max LTFS label length (%d)" }
|
||||
17186E:string { "Called releaseread_mrsw with zero or less count" }
|
||||
17187E:string { "Unexpected not ready state (%d)" }
|
||||
17188I:string { "Device is not ready (%d)" }
|
||||
17189I:string { "Device is becoming ready (%d)" }
|
||||
17190I:string { "Data key is set to enable encryption feature" }
|
||||
17191I:string { "Data key is cleared to disable encryption feature" }
|
||||
17192W:string { "Cannot read: medium is encrypted" }
|
||||
// unused (used for backtrace function name) 17193E:string { "%p : %s" }
|
||||
17194E:string { "Backtrace function address[%d]: %p" }
|
||||
17195E:string { "Cannot get maximum block size : %s (%d)" }
|
||||
17196W:string { "Cannot retrieve the tape attribute data: unexpected ID 0x%04x" }
|
||||
17197W:string { "Cannot retrieve the tape attribute data: unexpected length 0x%04x" }
|
||||
17198D:string { "Cannot get the tape attribute: 0x%04x (%s)" }
|
||||
17199W:string { "Cannot update the tape attribute (type: 0x%04x): %s" }
|
||||
17200E:string { "XML parser: cannot save tag, libxml2 workaround failed (%s)" }
|
||||
17201I:string { "Starting a long wipe operation. This can take over 3 hours." }
|
||||
17202E:string { "Failed to wipe the medium (%d)" }
|
||||
17203W:string { "Truncate the tape attribute: %s (%s) to %d bytes" }
|
||||
17204W:string { "Cannot set: unkown tape attribute type(0x%04x): %s" }
|
||||
17205E:string { "Cannot set the tape attribute (type: 0x%04x): %s " }
|
||||
17206E:string { "Cannot write XML data to file descriptor (%s, %d, %ld)" }
|
||||
17207E:string { "Use the ltfsck command with the --salvage-rollback-points option and select the latest index from the list\n Then use the ltfs command with the -o rollback-mount-no-eod option by specifying the generation." }
|
||||
17208I:string { "Encountered the last data on the tape (%d). The last read index generation is %d." }
|
||||
17217W:string { "%s is out of range in setting time (%s:%llu sec=%lld)" }
|
||||
17218W:string { "%s is out of range in parsing the label (%s)" }
|
||||
17219W:string { "%s is out of range in parsing the index (%s)" }
|
||||
17220W:string { "%s is out of range in parsing dentry (%s:%llu %s)" }
|
||||
17221W:string { "%s is out of range in setting xattr (%s:%llu %s)" }
|
||||
17222W:string { "%s is out of range in getting xattr (%s:%llu sec = %lld)" }
|
||||
17223W:string { "%s is out of range in creating the label (%lld)" }
|
||||
17224W:string { "%s is out of range in creating the index (%lld)" }
|
||||
17225W:string { "%s is out of range in creating dentry (%lld)" }
|
||||
17226W:string { "Cannot update the tape attribute: the maximum (%s) attribute length is %d" }
|
||||
17227I:string { "Tape attribute: %s = %s" }
|
||||
17228I:string { "Tape attribute: %s = 0x%02x" }
|
||||
17229D:string { "Truncate the tape attribute: %s (%s) to %d bytes" }
|
||||
17230W:string { "The bar code information is null." }
|
||||
17231E:string { "Cannot %s the tape attribute: %s" }
|
||||
17232E:string { "Failed to initialize file system component (%d)" }
|
||||
17233E:string { "Failed to kick gcore" }
|
||||
17234W:string { "The index read from the tape uses a newer version of the LTFS format than the one supported by this software. If this tape is modified, the index downgrades to format version %s from %d.%d.%d" }
|
||||
|
||||
// 17250 - 17299 are reserved for LE+
|
||||
|
||||
// DO NOT place messages with IDs 20000 or higher here!
|
||||
// If you are writing a plugin for libltfs, create a separate message bundle
|
||||
// containing messages with
|
||||
// start_id 20000 and end_id 20999 (for driver plugins) or
|
||||
// start_id 21000 and end_id 21999 (for scheduler plugins).
|
||||
// See messages/README for more information.
|
||||
|
||||
17300D:string { "Done reading MAM attributes" }
|
||||
17301W:string { "Failed to retrieve MAM attributes" }
|
||||
17302W:string { "Cannot retrieve attribute (%s=0x%x)" }
|
||||
17303E:string { "Barcode must be atleast 6 and atmost 32 alphanumeric ascii characters" }
|
||||
17304E:string { "Barcode can contain only digits and upper case characters" }
|
||||
17305I:string { "The ltfs volume is locked and needs to be unlocked for Read-Write operations" }
|
||||
17306I:string { "Mounting as read-only because the volume is locked due to a hard write error" }
|
||||
17307I:string { "The ltfs volume is permanently locked and so is mounted read-only. Reformat required for write operations"}
|
||||
17308I:string { "The ltfs volume is locked due to write error. Run check utility to fix or reformat the cartridge"}
|
||||
17309I:string { "The ltfs volume is permanently locked. Run format utility to re-use the cartridge"}
|
||||
17310I:string { "Setting the LTFS Volume to be unlocked" }
|
||||
17311E:string { "The LTFS Volume cannot be unlocked (%u)" }
|
||||
17312I:string { "Setting the LTFS Volume to be locked" }
|
||||
17313E:string { "The LTFS Volume cannot be locked (%u)" }
|
||||
17314I:string { "Setting the LTFS Volume to be permanently locked" }
|
||||
17315E:string { "The LTFS Volume cannot be permanently locked (%u)" }
|
||||
17316I:string { "Setting the LTFS Volume to be locked due to write error" }
|
||||
17317E:string { "The LTFS Volume cannot be locked due to write error (%u)" }
|
||||
17318E:string { "Only 0->Unlocking, 1->Locking and 2->Permanent Locking are allowed" }
|
||||
17319I:string { "%s" }
|
||||
17320I:string { "Mounting as read-only with the latest index (%d) as permanent write error is set in MAM" }
|
||||
|
||||
//MD 22.09.2017 Added for SNIA 2.4 to allow for checking percent encoding and openforwrite
|
||||
17321D:string { "Original name from platform? %s" }
|
||||
17322D:string { "percent encoded name? %s" }
|
||||
17323D:string { "Original name from tape? %s" }
|
||||
17324D:string { "percent decoded filename? %s" }
|
||||
17325D:string { "Generic string tracepoint %d, %s"}
|
||||
17326D:string { "Generic number tracepoint %d, %d"}
|
||||
17327I:string { "The ltfs volume is locked due to data partition write error. Run check utility to fix or reformat the cartridge"}
|
||||
17328I:string { "The ltfs volume is locked due to index partition write error. Run check utility to fix or reformat the cartridge"}
|
||||
17329I:string { "Setting the LTFS Volume to be locked due to data partition write error" }
|
||||
17330I:string { "Setting the LTFS Volume to be locked due to index partition write error" }
|
||||
17331E:string { "The LTFS Volume cannot be locked due to data partition write error (%u)" }
|
||||
17332E:string { "The LTFS Volume cannot be locked due to index partition write error (%u)" }
|
||||
17333I:string { "Mounting as read-only because the volume is locked due to a data partition hard write error" }
|
||||
17334I:string { "Mounting as read-only because the volume is locked due to a index partition hard write error" }
|
||||
17335I:string { "Mounting as read-only because the volume is locked due to both partition hard write error" }
|
||||
17336I:string { "Percent encoded name has been truncated" }
|
||||
|
||||
17351I:string { "Volume belongs to Archive Manager spanned set, mounting as read only" }
|
||||
}
|
||||
}
|
||||
77
ltfs/messages/make_message_src.sh
Executable file
77
ltfs/messages/make_message_src.sh
Executable file
@@ -0,0 +1,77 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
KERNEL_NAME=`uname -s`
|
||||
if [ "$KERNEL_NAME" = "Darwin" ]; then
|
||||
ICU_FRAMEWORK=/Library/Frameworks/ICU.framework
|
||||
export PATH=${PATH}:${ICU_FRAMEWORK}/Versions/Current/usr/bin
|
||||
export DYLD_LIBRARY_PATH=${ICU_FRAMEWORK}/Versions/Current/usr/lib
|
||||
GENRB=${ICU_FRAMEWORK}/Versions/Current/usr/bin/genrb
|
||||
PKGDATA=${ICU_FRAMEWORK}/Versions/Current/usr/bin/pkgdata
|
||||
else
|
||||
GENRB=genrb
|
||||
PKGDATA=pkgdata
|
||||
fi
|
||||
|
||||
if [ "$#" -ne "1" ]; then
|
||||
echo "Usage: $0 object_file"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
BASENAME=`echo $1 | sed -e 's/_dat\.o$//'`
|
||||
|
||||
cd ${BASENAME}
|
||||
|
||||
make_obj() {
|
||||
# Create a fresh work directory
|
||||
if [ -d work ]; then
|
||||
rm -rf work
|
||||
fi
|
||||
mkdir work
|
||||
|
||||
# Generate files
|
||||
${GENRB} -d work -q *.txt
|
||||
cd work
|
||||
ls *.res >packagelist.txt
|
||||
${PKGDATA} -p ${BASENAME} -m static -q packagelist.txt >/dev/null
|
||||
|
||||
case $KERNEL_NAME in
|
||||
MINGW32_NT*)
|
||||
#
|
||||
# HPE_mingw_BUILD
|
||||
#
|
||||
# We use dynamic libraries for the package data, so use the
|
||||
# -m dll switch
|
||||
#
|
||||
${PKGDATA} -p ${BASENAME} -m dll -q packagelist.txt >/dev/null
|
||||
|
||||
# Copy the resulting DLL as both a link library
|
||||
# (lib*.a) and the DLL with the package data
|
||||
# (*.dll). Libtool will happily use the copy of
|
||||
# the DLL to link
|
||||
#
|
||||
cp ${BASENAME}.dll ../../lib${BASENAME}.a
|
||||
cp ${BASENAME}.dll ../../${BASENAME}.dll
|
||||
;;
|
||||
*)
|
||||
mv ${BASENAME}_dat.o ../../
|
||||
;;
|
||||
esac
|
||||
|
||||
# Clean up
|
||||
cd ..
|
||||
rm -rf work
|
||||
}
|
||||
|
||||
# Check whether we need to do anything
|
||||
if [ -f "../$1" ]; then
|
||||
for file in *; do
|
||||
if [ "$file" -nt "../$1" ]; then
|
||||
make_obj
|
||||
exit 0
|
||||
fi
|
||||
done
|
||||
else
|
||||
make_obj
|
||||
fi
|
||||
1
ltfs/osx_installer/LTFS.pmdoc/01ltfs-contents.xml
Normal file
1
ltfs/osx_installer/LTFS.pmdoc/01ltfs-contents.xml
Normal file
@@ -0,0 +1 @@
|
||||
<pkg-contents spec="1.12"/>
|
||||
1
ltfs/osx_installer/LTFS.pmdoc/01ltfs.xml
Normal file
1
ltfs/osx_installer/LTFS.pmdoc/01ltfs.xml
Normal file
@@ -0,0 +1 @@
|
||||
<pkgref spec="1.12" uuid="FE45DE1B-6C99-486E-9844-B05107951195"><config><identifier>com.hpe.ltfs.pkg</identifier><version>1.2</version><description></description><post-install type="none"/><requireAuthorization/><installFrom relative="true" mod="true" includeRoot="true">../distribution/LTFS.framework</installFrom><installTo>/Library/Frameworks</installTo><flags><followSymbolicLinks/></flags><packageStore type="internal"></packageStore><mod>installFrom.isRelativeType</mod><mod>version</mod><mod>installFrom.path</mod><mod>identifier</mod><mod>scripts.postinstall.isRelativeType</mod><mod>parent</mod></config><scripts><postinstall relative="true" mod="true">post_install.sh</postinstall></scripts><contents><component id="com.hpe.ltfs" path="/Users/chrism/ltfs/trunk/distribution/LTFS.framework" version="1.2.0"><component id="com.hpe.ltfs" path="/Users/chrism/ltfs/trunk/distribution/LTFS.framework/Versions/1.2.0" version="1.2.0"/></component><filter>/CVS$</filter><filter>/\.svn$</filter><filter>/\.cvsignore$</filter><filter>/\.cvspass$</filter><filter>/\.DS_Store$</filter></contents></pkgref>
|
||||
1
ltfs/osx_installer/LTFS.pmdoc/index.xml
Normal file
1
ltfs/osx_installer/LTFS.pmdoc/index.xml
Normal file
@@ -0,0 +1 @@
|
||||
<pkmkdoc spec="1.12"><properties><title>HPE StoreOpen Software 3.4.2</title><build>/Users/chrism/Documents/HPE StoreOpen Software.pkg</build><organization>com.hpe.ltfs</organization><userSees ui="easy"/><min-target os="3"/><domain system="true"/></properties><distribution><versions min-spec="1.000000"/><scripts></scripts></distribution><description>This package installs HPE StoreOpen Software.</description><contents><choice title="LTFS" id="choice4" starts_selected="true" starts_enabled="true" starts_hidden="false"><pkgref id="com.hpe.ltfs.pkg"/></choice></contents><resources bg-scale="tofit" bg-align="bottomleft"><locale lang="en"><resource relative="true" mod="true" type="background">LTFSicon.jpg</resource><resource relative="true" mod="true" type="license">LTFS_Installer_License.txt</resource><resource relative="true" mod="true" type="welcome">LTFS_Installer_Introduction.html</resource></locale></resources><requirements><requirement id="sosv" operator="ge" value="'10.5.6'"><message-title>Unable to install HPE StoreOpen Software</message-title><message>The ICU libraries have not been tested with versions of OS X earlier than 10.5.6.</message></requirement><requirement id="file" operator="eq" value="true"><file>/Library/Frameworks/OSXFUSE.framework</file><message-title>Unable to install HPE StoreOpen Software</message-title><message>The MacFuse package for 10.6/OSXFUSE package for 10.7 and above is not installed on this system. Please install it before attempting to install HPE StoreOpen Software.</message></requirement><requirement id="file" operator="eq" value="true"><file>/Library/Frameworks/ICU.framework</file><message-title>Unable to install HPE StoreOpen Software</message-title><message>The ICU framework version 50.1.2 is not installed on this system. The ICU framework version 50.1.2 is bundled with the HPE StoreOpen Software installer image file.</message></requirement></requirements><flags/><item type="file">01ltfs.xml</item><mod>properties.title</mod><mod>description</mod><mod>properties.anywhereDomain</mod><mod>properties.systemDomain</mod></pkmkdoc>
|
||||
32
ltfs/osx_installer/LTFS_Installer_Introduction.html
Executable file
32
ltfs/osx_installer/LTFS_Installer_Introduction.html
Executable file
@@ -0,0 +1,32 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta http-equiv="Content-Style-Type" content="text/css">
|
||||
<title></title>
|
||||
<meta name="Generator" content="Cocoa HTML Writer">
|
||||
<meta name="CocoaVersion" content="1138.51">
|
||||
<style type="text/css">
|
||||
p.p1 {margin: 0.0px 0.0px 14.0px 0.0px; font: 14.0px Helvetica}
|
||||
p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Helvetica}
|
||||
p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Helvetica; min-height: 17.0px}
|
||||
p.p4 {margin: 0.0px 0.0px 14.0px 0.0px; font: 14.0px Helvetica; min-height: 17.0px}
|
||||
li.li2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Helvetica}
|
||||
span.s1 {text-decoration: underline ; color: #0000ee}
|
||||
ul.ul1 {list-style-type: square}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<p class="p1">This is the installation package for<br>
|
||||
<b>HPE StoreOpen Software version 3.4.2</b>.</p>
|
||||
<p class="p1">This will install the HPE StoreOpen Software and associated utilities onto your system. Note that to use HPE StoreOpen Software, you should also have already installed the following packages:</p>
|
||||
<ul class="ul1">
|
||||
<li class="li2">OSXFUSE (bundled with this distribution package)</li>
|
||||
<li class="li2">Refer to the <a href="http://www.hpe.com/storage/daprcompatibility"><span class="s1">HPE DAPR Compatibility Matrix</span></a> for compatibility of versions of OSXFUSE with corresponding Mac OS X versions</li>
|
||||
<li class="li2">icu version 50.1.2 (attached to this distribution package)</li>
|
||||
</ul>
|
||||
<p class="p3"><br></p>
|
||||
<p class="p2">This installer will not allow you to proceed until you have installed these two packages.</p>
|
||||
<p class="p4"><br></p>
|
||||
</body>
|
||||
</html>
|
||||
510
ltfs/osx_installer/LTFS_Installer_License.txt
Executable file
510
ltfs/osx_installer/LTFS_Installer_License.txt
Executable file
@@ -0,0 +1,510 @@
|
||||
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
Version 2.1, February 1999
|
||||
|
||||
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
|
||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
[This is the first released version of the Lesser GPL. It also counts
|
||||
as the successor of the GNU Library Public License, version 2, hence
|
||||
the version number 2.1.]
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
Licenses are intended to guarantee your freedom to share and change
|
||||
free software--to make sure the software is free for all its users.
|
||||
|
||||
This license, the Lesser General Public License, applies to some
|
||||
specially designated software packages--typically libraries--of the
|
||||
Free Software Foundation and other authors who decide to use it. You
|
||||
can use it too, but we suggest you first think carefully about whether
|
||||
this license or the ordinary General Public License is the better
|
||||
strategy to use in any particular case, based on the explanations
|
||||
below.
|
||||
|
||||
When we speak of free software, we are referring to freedom of use,
|
||||
not price. Our General Public Licenses are designed to make sure that
|
||||
you have the freedom to distribute copies of free software (and charge
|
||||
for this service if you wish); that you receive source code or can get
|
||||
it if you want it; that you can change the software and use pieces of
|
||||
it in new free programs; and that you are informed that you can do
|
||||
these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
distributors to deny you these rights or to ask you to surrender these
|
||||
rights. These restrictions translate to certain responsibilities for
|
||||
you if you distribute copies of the library or if you modify it.
|
||||
|
||||
For example, if you distribute copies of the library, whether gratis
|
||||
or for a fee, you must give the recipients all the rights that we gave
|
||||
you. You must make sure that they, too, receive or can get the source
|
||||
code. If you link other code with the library, you must provide
|
||||
complete object files to the recipients, so that they can relink them
|
||||
with the library after making changes to the library and recompiling
|
||||
it. And you must show them these terms so they know their rights.
|
||||
|
||||
We protect your rights with a two-step method: (1) we copyright the
|
||||
library, and (2) we offer you this license, which gives you legal
|
||||
permission to copy, distribute and/or modify the library.
|
||||
|
||||
To protect each distributor, we want to make it very clear that
|
||||
there is no warranty for the free library. Also, if the library is
|
||||
modified by someone else and passed on, the recipients should know
|
||||
that what they have is not the original version, so that the original
|
||||
author's reputation will not be affected by problems that might be
|
||||
introduced by others.
|
||||
^L
|
||||
Finally, software patents pose a constant threat to the existence of
|
||||
any free program. We wish to make sure that a company cannot
|
||||
effectively restrict the users of a free program by obtaining a
|
||||
restrictive license from a patent holder. Therefore, we insist that
|
||||
any patent license obtained for a version of the library must be
|
||||
consistent with the full freedom of use specified in this license.
|
||||
|
||||
Most GNU software, including some libraries, is covered by the
|
||||
ordinary GNU General Public License. This license, the GNU Lesser
|
||||
General Public License, applies to certain designated libraries, and
|
||||
is quite different from the ordinary General Public License. We use
|
||||
this license for certain libraries in order to permit linking those
|
||||
libraries into non-free programs.
|
||||
|
||||
When a program is linked with a library, whether statically or using
|
||||
a shared library, the combination of the two is legally speaking a
|
||||
combined work, a derivative of the original library. The ordinary
|
||||
General Public License therefore permits such linking only if the
|
||||
entire combination fits its criteria of freedom. The Lesser General
|
||||
Public License permits more lax criteria for linking other code with
|
||||
the library.
|
||||
|
||||
We call this license the "Lesser" General Public License because it
|
||||
does Less to protect the user's freedom than the ordinary General
|
||||
Public License. It also provides other free software developers Less
|
||||
of an advantage over competing non-free programs. These disadvantages
|
||||
are the reason we use the ordinary General Public License for many
|
||||
libraries. However, the Lesser license provides advantages in certain
|
||||
special circumstances.
|
||||
|
||||
For example, on rare occasions, there may be a special need to
|
||||
encourage the widest possible use of a certain library, so that it
|
||||
becomes a de-facto standard. To achieve this, non-free programs must
|
||||
be allowed to use the library. A more frequent case is that a free
|
||||
library does the same job as widely used non-free libraries. In this
|
||||
case, there is little to gain by limiting the free library to free
|
||||
software only, so we use the Lesser General Public License.
|
||||
|
||||
In other cases, permission to use a particular library in non-free
|
||||
programs enables a greater number of people to use a large body of
|
||||
free software. For example, permission to use the GNU C Library in
|
||||
non-free programs enables many more people to use the whole GNU
|
||||
operating system, as well as its variant, the GNU/Linux operating
|
||||
system.
|
||||
|
||||
Although the Lesser General Public License is Less protective of the
|
||||
users' freedom, it does ensure that the user of a program that is
|
||||
linked with the Library has the freedom and the wherewithal to run
|
||||
that program using a modified version of the Library.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow. Pay close attention to the difference between a
|
||||
"work based on the library" and a "work that uses the library". The
|
||||
former contains code derived from the library, whereas the latter must
|
||||
be combined with the library in order to run.
|
||||
^L
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License Agreement applies to any software library or other
|
||||
program which contains a notice placed by the copyright holder or
|
||||
other authorized party saying it may be distributed under the terms of
|
||||
this Lesser General Public License (also called "this License").
|
||||
Each licensee is addressed as "you".
|
||||
|
||||
A "library" means a collection of software functions and/or data
|
||||
prepared so as to be conveniently linked with application programs
|
||||
(which use some of those functions and data) to form executables.
|
||||
|
||||
The "Library", below, refers to any such software library or work
|
||||
which has been distributed under these terms. A "work based on the
|
||||
Library" means either the Library or any derivative work under
|
||||
copyright law: that is to say, a work containing the Library or a
|
||||
portion of it, either verbatim or with modifications and/or translated
|
||||
straightforwardly into another language. (Hereinafter, translation is
|
||||
included without limitation in the term "modification".)
|
||||
|
||||
"Source code" for a work means the preferred form of the work for
|
||||
making modifications to it. For a library, complete source code means
|
||||
all the source code for all modules it contains, plus any associated
|
||||
interface definition files, plus the scripts used to control
|
||||
compilation and installation of the library.
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running a program using the Library is not restricted, and output from
|
||||
such a program is covered only if its contents constitute a work based
|
||||
on the Library (independent of the use of the Library in a tool for
|
||||
writing it). Whether that is true depends on what the Library does
|
||||
and what the program that uses the Library does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Library's
|
||||
complete source code as you receive it, in any medium, provided that
|
||||
you conspicuously and appropriately publish on each copy an
|
||||
appropriate copyright notice and disclaimer of warranty; keep intact
|
||||
all the notices that refer to this License and to the absence of any
|
||||
warranty; and distribute a copy of this License along with the
|
||||
Library.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy,
|
||||
and you may at your option offer warranty protection in exchange for a
|
||||
fee.
|
||||
|
||||
2. You may modify your copy or copies of the Library or any portion
|
||||
of it, thus forming a work based on the Library, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) The modified work must itself be a software library.
|
||||
|
||||
b) You must cause the files modified to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
c) You must cause the whole of the work to be licensed at no
|
||||
charge to all third parties under the terms of this License.
|
||||
|
||||
d) If a facility in the modified Library refers to a function or a
|
||||
table of data to be supplied by an application program that uses
|
||||
the facility, other than as an argument passed when the facility
|
||||
is invoked, then you must make a good faith effort to ensure that,
|
||||
in the event an application does not supply such function or
|
||||
table, the facility still operates, and performs whatever part of
|
||||
its purpose remains meaningful.
|
||||
|
||||
(For example, a function in a library to compute square roots has
|
||||
a purpose that is entirely well-defined independent of the
|
||||
application. Therefore, Subsection 2d requires that any
|
||||
application-supplied function or table used by this function must
|
||||
be optional: if the application does not supply it, the square
|
||||
root function must still compute square roots.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Library,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Library, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote
|
||||
it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Library.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Library
|
||||
with the Library (or with a work based on the Library) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may opt to apply the terms of the ordinary GNU General Public
|
||||
License instead of this License to a given copy of the Library. To do
|
||||
this, you must alter all the notices that refer to this License, so
|
||||
that they refer to the ordinary GNU General Public License, version 2,
|
||||
instead of to this License. (If a newer version than version 2 of the
|
||||
ordinary GNU General Public License has appeared, then you can specify
|
||||
that version instead if you wish.) Do not make any other change in
|
||||
these notices.
|
||||
^L
|
||||
Once this change is made in a given copy, it is irreversible for
|
||||
that copy, so the ordinary GNU General Public License applies to all
|
||||
subsequent copies and derivative works made from that copy.
|
||||
|
||||
This option is useful when you wish to copy part of the code of
|
||||
the Library into a program that is not a library.
|
||||
|
||||
4. You may copy and distribute the Library (or a portion or
|
||||
derivative of it, under Section 2) in object code or executable form
|
||||
under the terms of Sections 1 and 2 above provided that you accompany
|
||||
it with the complete corresponding machine-readable source code, which
|
||||
must be distributed under the terms of Sections 1 and 2 above on a
|
||||
medium customarily used for software interchange.
|
||||
|
||||
If distribution of object code is made by offering access to copy
|
||||
from a designated place, then offering equivalent access to copy the
|
||||
source code from the same place satisfies the requirement to
|
||||
distribute the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
5. A program that contains no derivative of any portion of the
|
||||
Library, but is designed to work with the Library by being compiled or
|
||||
linked with it, is called a "work that uses the Library". Such a
|
||||
work, in isolation, is not a derivative work of the Library, and
|
||||
therefore falls outside the scope of this License.
|
||||
|
||||
However, linking a "work that uses the Library" with the Library
|
||||
creates an executable that is a derivative of the Library (because it
|
||||
contains portions of the Library), rather than a "work that uses the
|
||||
library". The executable is therefore covered by this License.
|
||||
Section 6 states terms for distribution of such executables.
|
||||
|
||||
When a "work that uses the Library" uses material from a header file
|
||||
that is part of the Library, the object code for the work may be a
|
||||
derivative work of the Library even though the source code is not.
|
||||
Whether this is true is especially significant if the work can be
|
||||
linked without the Library, or if the work is itself a library. The
|
||||
threshold for this to be true is not precisely defined by law.
|
||||
|
||||
If such an object file uses only numerical parameters, data
|
||||
structure layouts and accessors, and small macros and small inline
|
||||
functions (ten lines or less in length), then the use of the object
|
||||
file is unrestricted, regardless of whether it is legally a derivative
|
||||
work. (Executables containing this object code plus portions of the
|
||||
Library will still fall under Section 6.)
|
||||
|
||||
Otherwise, if the work is a derivative of the Library, you may
|
||||
distribute the object code for the work under the terms of Section 6.
|
||||
Any executables containing that work also fall under Section 6,
|
||||
whether or not they are linked directly with the Library itself.
|
||||
^L
|
||||
6. As an exception to the Sections above, you may also combine or
|
||||
link a "work that uses the Library" with the Library to produce a
|
||||
work containing portions of the Library, and distribute that work
|
||||
under terms of your choice, provided that the terms permit
|
||||
modification of the work for the customer's own use and reverse
|
||||
engineering for debugging such modifications.
|
||||
|
||||
You must give prominent notice with each copy of the work that the
|
||||
Library is used in it and that the Library and its use are covered by
|
||||
this License. You must supply a copy of this License. If the work
|
||||
during execution displays copyright notices, you must include the
|
||||
copyright notice for the Library among them, as well as a reference
|
||||
directing the user to the copy of this License. Also, you must do one
|
||||
of these things:
|
||||
|
||||
a) Accompany the work with the complete corresponding
|
||||
machine-readable source code for the Library including whatever
|
||||
changes were used in the work (which must be distributed under
|
||||
Sections 1 and 2 above); and, if the work is an executable linked
|
||||
with the Library, with the complete machine-readable "work that
|
||||
uses the Library", as object code and/or source code, so that the
|
||||
user can modify the Library and then relink to produce a modified
|
||||
executable containing the modified Library. (It is understood
|
||||
that the user who changes the contents of definitions files in the
|
||||
Library will not necessarily be able to recompile the application
|
||||
to use the modified definitions.)
|
||||
|
||||
b) Use a suitable shared library mechanism for linking with the
|
||||
Library. A suitable mechanism is one that (1) uses at run time a
|
||||
copy of the library already present on the user's computer system,
|
||||
rather than copying library functions into the executable, and (2)
|
||||
will operate properly with a modified version of the library, if
|
||||
the user installs one, as long as the modified version is
|
||||
interface-compatible with the version that the work was made with.
|
||||
|
||||
c) Accompany the work with a written offer, valid for at least
|
||||
three years, to give the same user the materials specified in
|
||||
Subsection 6a, above, for a charge no more than the cost of
|
||||
performing this distribution.
|
||||
|
||||
d) If distribution of the work is made by offering access to copy
|
||||
from a designated place, offer equivalent access to copy the above
|
||||
specified materials from the same place.
|
||||
|
||||
e) Verify that the user has already received a copy of these
|
||||
materials or that you have already sent this user a copy.
|
||||
|
||||
For an executable, the required form of the "work that uses the
|
||||
Library" must include any data and utility programs needed for
|
||||
reproducing the executable from it. However, as a special exception,
|
||||
the materials to be distributed need not include anything that is
|
||||
normally distributed (in either source or binary form) with the major
|
||||
components (compiler, kernel, and so on) of the operating system on
|
||||
which the executable runs, unless that component itself accompanies
|
||||
the executable.
|
||||
|
||||
It may happen that this requirement contradicts the license
|
||||
restrictions of other proprietary libraries that do not normally
|
||||
accompany the operating system. Such a contradiction means you cannot
|
||||
use both them and the Library together in an executable that you
|
||||
distribute.
|
||||
^L
|
||||
7. You may place library facilities that are a work based on the
|
||||
Library side-by-side in a single library together with other library
|
||||
facilities not covered by this License, and distribute such a combined
|
||||
library, provided that the separate distribution of the work based on
|
||||
the Library and of the other library facilities is otherwise
|
||||
permitted, and provided that you do these two things:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work
|
||||
based on the Library, uncombined with any other library
|
||||
facilities. This must be distributed under the terms of the
|
||||
Sections above.
|
||||
|
||||
b) Give prominent notice with the combined library of the fact
|
||||
that part of it is a work based on the Library, and explaining
|
||||
where to find the accompanying uncombined form of the same work.
|
||||
|
||||
8. You may not copy, modify, sublicense, link with, or distribute
|
||||
the Library except as expressly provided under this License. Any
|
||||
attempt otherwise to copy, modify, sublicense, link with, or
|
||||
distribute the Library is void, and will automatically terminate your
|
||||
rights under this License. However, parties who have received copies,
|
||||
or rights, from you under this License will not have their licenses
|
||||
terminated so long as such parties remain in full compliance.
|
||||
|
||||
9. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Library or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Library (or any work based on the
|
||||
Library), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Library or works based on it.
|
||||
|
||||
10. Each time you redistribute the Library (or any work based on the
|
||||
Library), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute, link with or modify the Library
|
||||
subject to these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties with
|
||||
this License.
|
||||
^L
|
||||
11. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Library at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Library by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Library.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply, and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
12. If the distribution and/or use of the Library is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Library under this License
|
||||
may add an explicit geographical distribution limitation excluding those
|
||||
countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
13. The Free Software Foundation may publish revised and/or new
|
||||
versions of the Lesser General Public License from time to time.
|
||||
Such new versions will be similar in spirit to the present version,
|
||||
but may differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Library
|
||||
specifies a version number of this License which applies to it and
|
||||
"any later version", you have the option of following the terms and
|
||||
conditions either of that version or of any later version published by
|
||||
the Free Software Foundation. If the Library does not specify a
|
||||
license version number, you may choose any version ever published by
|
||||
the Free Software Foundation.
|
||||
^L
|
||||
14. If you wish to incorporate parts of the Library into other free
|
||||
programs whose distribution conditions are incompatible with these,
|
||||
write to the author to ask for permission. For software which is
|
||||
copyrighted by the Free Software Foundation, write to the Free
|
||||
Software Foundation; we sometimes make exceptions for this. Our
|
||||
decision will be guided by the two goals of preserving the free status
|
||||
of all derivatives of our free software and of promoting the sharing
|
||||
and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
|
||||
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
|
||||
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
|
||||
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
|
||||
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
|
||||
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
|
||||
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
|
||||
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
|
||||
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
|
||||
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
|
||||
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
|
||||
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
|
||||
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
|
||||
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
|
||||
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
||||
DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
^L
|
||||
How to Apply These Terms to Your New Libraries
|
||||
|
||||
If you develop a new library, and you want it to be of the greatest
|
||||
possible use to the public, we recommend making it free software that
|
||||
everyone can redistribute and change. You can do so by permitting
|
||||
redistribution under these terms (or, alternatively, under the terms
|
||||
of the ordinary General Public License).
|
||||
|
||||
To apply these terms, attach the following notices to the library.
|
||||
It is safest to attach them to the start of each source file to most
|
||||
effectively convey the exclusion of warranty; and each file should
|
||||
have at least the "copyright" line and a pointer to where the full
|
||||
notice is found.
|
||||
|
||||
|
||||
<one line to give the library's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or
|
||||
your school, if any, to sign a "copyright disclaimer" for the library,
|
||||
if necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the
|
||||
library `Frob' (a library for tweaking knobs) written by James
|
||||
Random Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1990
|
||||
Ty Coon, President of Vice
|
||||
|
||||
That's all there is to it!
|
||||
|
||||
|
||||
BIN
ltfs/osx_installer/LTFSicon.jpg
Executable file
BIN
ltfs/osx_installer/LTFSicon.jpg
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 61 KiB |
83
ltfs/osx_installer/post_install.sh
Executable file
83
ltfs/osx_installer/post_install.sh
Executable file
@@ -0,0 +1,83 @@
|
||||
#!/bin/sh
|
||||
|
||||
LOG_FILE=/tmp/LTFS_postinstall.log
|
||||
|
||||
FRAMEWORK_NAME=LTFS.framework
|
||||
VERSION=3.4.2
|
||||
|
||||
echo "" >> ${LOG_FILE}
|
||||
echo "Starting post-install for ${FRAMEWORK_NAME} at `date`" >> ${LOG_FILE}
|
||||
|
||||
echo "User: "`who am i` >> ${LOG_FILE}
|
||||
echo "PWD: "`pwd` >> ${LOG_FILE}
|
||||
echo "args: "$@ >> ${LOG_FILE}
|
||||
|
||||
PACKAGE_LOCATION=${1}
|
||||
INSTALL_DEST=${2}
|
||||
DEST_VOL=${3}
|
||||
INSTALL_TYPE=${4}
|
||||
|
||||
echo "PACKAGE_LOC: ${PACKAGE_LOCATION}" >> ${LOG_FILE}
|
||||
echo "INSTALL_DEST: ${INSTALL_DEST}" >> ${LOG_FILE}
|
||||
echo "DEST_VOL: ${DEST_VOL}" >> ${LOG_FILE}
|
||||
echo "INSTALL_TYPE: ${INSTALL_TYPE}" >> ${LOG_FILE}
|
||||
|
||||
echo "PWD: "`pwd` >> ${LOG_FILE}
|
||||
|
||||
|
||||
# Change owner...
|
||||
echo "Changing owner and group..." >> ${LOG_FILE}
|
||||
cd ${INSTALL_DEST}/${FRAMEWORK_NAME}
|
||||
chown -R root:admin .
|
||||
echo " owner and group changed" >> ${LOG_FILE}
|
||||
|
||||
|
||||
# Change permissions...
|
||||
echo "Changing Permissions..." >> ${LOG_FILE}
|
||||
# set directory permissions
|
||||
cd ${INSTALL_DEST}/${FRAMEWORK_NAME}
|
||||
find . -type d | xargs chmod u=rwx,go=rx
|
||||
echo " set directory permissions" >> ${LOG_FILE}
|
||||
|
||||
# set read file permissions
|
||||
#cd ${INSTALL_DEST}/${FRAMEWORK_NAME}/Versions/Current/usr/include
|
||||
#find . -type f | xargs chmod u=rw,go=r
|
||||
#cd ${INSTALL_DEST}/${FRAMEWORK_NAME}/Versions/Current/usr/man
|
||||
#find . -type f | xargs chmod u=rw,go=r
|
||||
cd ${INSTALL_DEST}/${FRAMEWORK_NAME}/Versions/Current/usr/share
|
||||
find . -type f | xargs chmod u=rw,go=r
|
||||
echo " set read file permissions" >> ${LOG_FILE}
|
||||
|
||||
# set executable file permissions
|
||||
cd ${INSTALL_DEST}/${FRAMEWORK_NAME}/Versions/Current/usr/bin
|
||||
find . -type f | xargs chmod u+rwx,go=rx
|
||||
cd ${INSTALL_DEST}/${FRAMEWORK_NAME}/Versions/Current/usr/lib
|
||||
find . -type f | xargs chmod u+rwx,go=rx
|
||||
echo " set executable file permissions" >> ${LOG_FILE}
|
||||
|
||||
# Create symlinks to save cumbersome path manipulation for users
|
||||
echo "Linking executables..." >> ${LOG_FILE}
|
||||
if [ ! -d /usr/local/bin/ ]
|
||||
then
|
||||
mkdir /usr/local/bin/
|
||||
echo " created directory /usr/local/bin/" >> ${LOG_FILE}
|
||||
fi
|
||||
proglist=`find ${INSTALL_DEST}/${FRAMEWORK_NAME}/Versions/Current/usr/bin -type f`
|
||||
for prog in $proglist
|
||||
do
|
||||
ln -s $prog /usr/local/bin/`basename $prog`
|
||||
done
|
||||
echo " symlinked executables to /usr/local/bin/" >> ${LOG_FILE}
|
||||
|
||||
# Create a log directory if it doesn't already exist
|
||||
DUMPDIR=${HOME}/Library/Logs/LTFS
|
||||
if [ ! -d $DUMPDIR ]
|
||||
then
|
||||
echo "Creating log directory...">> ${LOG_FILE}
|
||||
mkdir $DUMPDIR
|
||||
echo " created directory $DUMPDIR for drive log snapshot dumps" >> ${LOG_FILE}
|
||||
ls -ld ${HOME}/Library/Logs | awk '{ printf "%s:%s %s/LTFS",$3,$4,$9 }' | xargs chown
|
||||
echo " set directory permissions" >> ${LOG_FILE}
|
||||
fi
|
||||
|
||||
echo "Finished post-install for ${FRAMEWORK_NAME} at `date`" >> ${LOG_FILE}
|
||||
1451
ltfs/src/Doxyfile
Normal file
1451
ltfs/src/Doxyfile
Normal file
File diff suppressed because it is too large
Load Diff
BIN
ltfs/src/MSG00001.bin
Normal file
BIN
ltfs/src/MSG00001.bin
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user