pax_global_header 0000666 0000000 0000000 00000000064 12630115627 0014515 g ustar 00root root 0000000 0000000 52 comment=ca7d5dd5d31bb644a6c7b6fe47d5a6474a5995ce
bareos-Release-14.2.6/ 0000775 0000000 0000000 00000000000 12630115627 0014440 5 ustar 00root root 0000000 0000000 bareos-Release-14.2.6/.gitignore 0000664 0000000 0000000 00000000332 12630115627 0016426 0 ustar 00root root 0000000 0000000 # temporay files
*~
# Compiled Object files
*.slo
*.lo
*.o
# Compiled Dynamic libraries
*.so
*.dylib
# Compiled Static libraries
*.lai
*.la
*.a
# Autoconf generated files
autoconf/config.log
# debian
debian/*.log
bareos-Release-14.2.6/.travis.yml 0000664 0000000 0000000 00000006541 12630115627 0016557 0 ustar 00root root 0000000 0000000 language: cpp
compiler:
- gcc
- clang
# This project also uses Coverity Scan https://scan.coverity.com/
# However, the Travis coverity scan addon (as of 19.02.2014) does not fit our needs,
# because then all builds are done as covertiy scans and results send to the server.
# Therefore we reused the old method
# (setting environment variables, download and execute a script).
env:
global:
# -- BEGIN Coverity Scan ENV
# The build command with all of the arguments that you would apply to a manual `cov-build`
# Usually this is the same as STANDARD_BUILD_COMMAND, exluding the automated test arguments
- COVERITY_SCAN_BUILD_COMMAND="make"
# Name of the project
- COVERITY_SCAN_PROJECT_NAME="bareos/bareos"
# Email address for notifications related to this build
- COVERITY_SCAN_NOTIFICATION_EMAIL="coverity@bareos.org"
# Regular expression selects on which branches to run analysis
# Be aware of quotas. Do not run on every branch/commit
- COVERITY_SCAN_BRANCH_PATTERN="master"
# COVERITY_SCAN_TOKEN via "travis encrypt" using the repo's public key
- secure: "EMFCxVpjP2SBZIGqRxwdxcxxdg373w+sXIm109N7ZGMouOFVCeHq4PMBV9m6EyQ6wyb02oa6Re0GfZM9Yvc1vLc+fWpIV7y8kmVLXZhyAhGhLnCKXfirahgJkEIJTqddU/aWroub4oPPkqqNcxNAWYgrwi8jpcBkO50FGxxI9rg="
- COVERITY_SCAN_BUILD_URL="https://scan.coverity.com/scripts/travisci_build_coverity_scan.sh"
- COVERITY_SCAN_BUILD="curl -s $COVERITY_SCAN_BUILD_URL | bash"
# -- END Coverity Scan ENV
matrix:
- DB=postgresql
- DB=mysql
- DB=sqlite3
- DB=postgresql COVERITY_SCAN=1
matrix:
# covertiy scan should only run once and it might fail,
# because the number of times its runs is limited per week.
# We only check when compiled with gcc.
exclude:
- compiler: clang
env: DB=postgresql COVERITY_SCAN=1
allow_failures:
- env: DB=postgresql COVERITY_SCAN=1
before_install:
# install build dependencies
# use files instead of shell variables, because travis has some problems supporting variables
- sudo apt-get -qq update
- dpkg-checkbuilddeps 2> /tmp/dpkg-builddeps || true
- sed "s/.*:.*:\s//" /tmp/dpkg-builddeps > /tmp/build_depends
- yes "" | sudo xargs --arg-file /tmp/build_depends apt-get -q --assume-no install
before_script:
# changelog file is required (and normally generated by OBS)
- cp -a platforms/packaging/bareos.changes debian/changelog
# build Debian packages
- if [ -z "${COVERITY_SCAN}" ]; then fakeroot debian/rules binary; else debian/rules override_dh_auto_configure; eval "$COVERITY_SCAN_BUILD"; fi
# create Debian package repository
- cd ..
- if [ -z "${COVERITY_SCAN}" ]; then dpkg-scanpackages . /dev/null | gzip > Packages.gz; fi
- if [ -z "${COVERITY_SCAN}" ]; then printf 'deb file:%s /\n' $PWD > /tmp/bareos.list; fi
- if [ -z "${COVERITY_SCAN}" ]; then sudo cp /tmp/bareos.list /etc/apt/sources.list.d/bareos.list; fi
- cd -
# install Bareos packages
- if [ -z "${COVERITY_SCAN}" ]; then sudo apt-get -qq update; fi
- if [ -z "${COVERITY_SCAN}" ]; then sudo apt-get install -y --force-yes bareos bareos-database-$DB; fi
script:
# run test script
- if [ -z "${COVERITY_SCAN}" ]; then sudo -E $PWD/test/all; fi
addons:
hosts:
- bareos.example.com
bareos-Release-14.2.6/AGPL-3.0.txt 0000664 0000000 0000000 00000103330 12630115627 0016222 0 ustar 00root root 0000000 0000000 GNU AFFERO GENERAL PUBLIC LICENSE
Version 3, 19 November 2007
Copyright (C) 2007 Free Software Foundation, Inc.
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The GNU Affero General Public License is a free, copyleft license for
software and other kinds of works, specifically designed to ensure
cooperation with the community in the case of network server software.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
our General Public Licenses are intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users.
When we speak of free software, we are referring to freedom, 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
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
Developers that use our General Public Licenses protect your rights
with two steps: (1) assert copyright on the software, and (2) offer
you this License which gives you legal permission to copy, distribute
and/or modify the software.
A secondary benefit of defending all users' freedom is that
improvements made in alternate versions of the program, if they
receive widespread use, become available for other developers to
incorporate. Many developers of free software are heartened and
encouraged by the resulting cooperation. However, in the case of
software used on network servers, this result may fail to come about.
The GNU General Public License permits making a modified version and
letting the public access it on a server without ever releasing its
source code to the public.
The GNU Affero General Public License is designed specifically to
ensure that, in such cases, the modified source code becomes available
to the community. It requires the operator of a network server to
provide the source code of the modified version running there to the
users of that server. Therefore, public use of a modified version, on
a publicly accessible server, gives the public access to the source
code of the modified version.
An older license, called the Affero General Public License and
published by Affero, was designed to accomplish similar goals. This is
a different license, not a version of the Affero GPL, but Affero has
released a new version of the Affero GPL which permits relicensing under
this license.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU Affero General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is that
same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If 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 convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
13. Remote Network Interaction; Use with the GNU General Public License.
Notwithstanding any other provision of this License, if you modify the
Program, your modified version must prominently offer all users
interacting with it remotely through a computer network (if your version
supports such interaction) an opportunity to receive the Corresponding
Source of your version by providing access to the Corresponding Source
from a network server at no charge, through some standard or customary
means of facilitating copying of software. This Corresponding Source
shall include the Corresponding Source for any work covered by version 3
of the GNU General Public License that is incorporated pursuant to the
following paragraph.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the work with which it is combined will remain governed by version
3 of the GNU General Public License.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU Affero 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
Program specifies that a certain numbered version of the GNU Affero General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU Affero General Public License, you may choose any version ever published
by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU Affero General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "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 PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM 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 PROGRAM (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 PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
Copyright (C)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, 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 Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
Also add information on how to contact you by electronic and paper mail.
If your software can interact with users remotely through a computer
network, you should also make sure that it provides a way for users to
get its source. For example, if your program is a web application, its
interface could display a "Source" link that leads users to an archive
of the code. There are many ways you could offer source, and different
solutions will be better for different programs; see section 13 for the
specific requirements.
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU AGPL, see
.
bareos-Release-14.2.6/AUTHORS 0000664 0000000 0000000 00000004030 12630115627 0015505 0 ustar 00root root 0000000 0000000 This file contains a list of the people who have contributed code, programs or documentation.
Contributors:
Adam Thorton
Adrew J. Millar
Adrian Close
Aitor Matilla
Alan Brown
Aleksandar Milivojevic
Alexander Bergolth
Alexandre Baron
Alexandre Simon
Allan Black
Andreas Helmcke
Andreas Piesk
Andre Noll
Andrew Ford
Arno Lehmann
Attila Fülöp
Bastian Friedrich
Ben Walton
Bernd Frick
Bill Moran
Bruno Friedmann
Camilo Viecco
Carlos A. Molina G
Carsten Paeth
Chris Lee
Christer Fletcher
Christian Masopust
Christopher Hull
Craig Miskell
D. Scott Barninger
Dan Langille
Daniel Neuberger
Daniele Eccher
David Boyes
David Duchscher
Davide Franco
Devin Reade
Dirk Bartley
Eamon Brosnan
Edwin Groothuis
Eric Bollengier
Erich Prinz
Evgeni Golov
Felix Schwarz
Francisco Reyes
Frank Bergkemper
Frank Kardel
Frank Sweetser
Frank Ueberschar
Graham Keeling
Grzegorz Grabowski
Howard Thomson
Jaime Ventura
Jakub Hradil
James Harper
Jan Kesten
Jan Görig
Jo Simoens
Joakim Tjernlund
Joao Henrique Freitas
Joerg Steffens
John Goerzen
John Kodis
John Walker
Jorj Bauer
Jose Herrera
Jose Luis Tallon
Josip Almasi
Juan Luis Frances
Juergen Lock
Karl Cunningham
Kern Sibbald
Kjetil Torgrim Homme
Landon Fuller
Laurent Papier
Lorenz Schori
Luca Berra
Lucas B. Cohen
Lucas Di Pentima
Ludovic Strappazon
Lukas Nykryn
Maik Aussendorf
Marc Cousin
Marc Schiffbauer
Marco van Wieringen
Martin Schmid
Martin Simmons
Matthew Ife
Max Meyer
Meno Abels
Michael -buk- Scherer
Michael Renner
Michael Stapelberg
Michel Meyers
Morgan
Nic Bellamy
Nicolas Boichat
Oleg Livshyts
Olivier Gagnon
Olivier Lehmann
Peter Buschmann
Peter Eriksson
Peter Much
Phil Stracchino
Philipp Storz
Philippe Chauvat
Preben Guldberg
Radosław Korzeniewski
Riccardo Ghetta
Richard Mortimer
Robert Nelson
Rudolf Cejka
Russel Howe
Scott Bailey
Sebastian Lederer
Sergey Svishchev
Simone Caronni
Stefan Reddig
Stephan Duehr
Thomas Glatthor
Thomas Lohman
Thorsten Enge
Tim Oberfoell
Tomas Cameron
Tullio Andreatta
Ulrich Leodolter
Victor Hugo dos Santos
Vitaliy Kosharskiy
Wolfgang Denk
Yuri Timofeev
Yves Orton
Zilvinas Krapavickas
bareos-Release-14.2.6/LICENSE 0000664 0000000 0000000 00000152132 12630115627 0015451 0 ustar 00root root 0000000 0000000 BAREOS is a fork of the Bacula source code.
Please find below (1) our license information, (2) the preexisting license information
of Bacula (from 06/05/2013, i.e. the date the source was forked into BAREOS), and
(3) the license text of the AGPLv3. Our license information (1) is applicable to all
changes to the preexisting code of Bacula.
1.
BAREOS LICENSE SPECIFICS
The following license terms apply to the BAREOS code:
Trademark:
The name BAREOS is a registered trademark of Bareos GmbH & Co. KG
Bareos is licensed under the AGPL version 3 (see 3. below). Some parts of the code
are licensed under permissive licenses:
a)
For the native NDMP support we imported some BSD 2 clause code which has the
following copyright:
/*
* Copyright (c) 1998,1999,2000
* Traakan, Inc., Los Altos, CA
* 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 unmodified, 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.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
*/
b)
Furthermore we included code from src/lib/bmtio.h which has the following copyright:
/*-
* Copyright (c) 1982, 1986, 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.
*
* @(#)mtio.h 8.1 (Berkeley) 6/2/93
* $FreeBSD: stable/7/sys/sys/mtio.h 139825 2005-01-07 02:29:27Z imp $
*/
c)
Furthermore we included the LMDB code from the OpenLDAP project which has the
following copyright:
The OpenLDAP Public License
Version 2.8, 17 August 2003
Redistribution and use of this software and associated documentation
("Software"), with or without modification, are permitted provided
that the following conditions are met:
1. Redistributions in source form must retain copyright statements
and notices,
2. Redistributions in binary form must reproduce applicable copyright
statements and notices, this list of conditions, and the following
disclaimer in the documentation and/or other materials provided
with the distribution, and
3. Redistributions must contain a verbatim copy of this document.
The OpenLDAP Foundation may revise this license from time to time.
Each revision is distinguished by a version number. You may use
this Software under terms of this license revision or under the
terms of any subsequent revision of the license.
THIS SOFTWARE IS PROVIDED BY THE OPENLDAP FOUNDATION AND ITS
CONTRIBUTORS ``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 OPENLDAP FOUNDATION, ITS CONTRIBUTORS, OR THE AUTHOR(S)
OR OWNER(S) OF THE SOFTWARE 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.
The names of the authors and copyright holders must not be used in
advertising or otherwise to promote the sale, use or other dealing
in this Software without specific, written prior permission. Title
to copyright in this Software shall at all times remain with copyright
holders.
OpenLDAP is a registered trademark of the OpenLDAP Foundation.
Copyright 1999-2003 The OpenLDAP Foundation, Redwood City,
California, USA. All Rights Reserved. Permission to copy and
distribute verbatim copies of this document is granted.
The new source header doesn't include a reference to the AUTHORS file
in each source file but we still maintain the AUTHORS file with all
authors of the orignal project ("Bacula") and any new authors for code
submitted to the BAREOS project.The AUTHORS file can be found in the main
directory.
d)
Files: src/lib/sha1.h src/lib/sha1.c
Copyright: Steve Reid
License: public-domain
replaced the SHA licensed implementation (Copyright: 2001 The Internet Society), mentioned later in this document.
e)
Bareos can be compiled with data compression and decompression using
the fastlzlib library. (see git://github.com/exalead/fastlzlib.git)
The following licenses (LICENSE, LICENSE-FASTLZ and LICENSE-LZ4) apply
to the fastlzlib and its components:
== LICENSE ==
zlib-like interface to fast block compression (LZ4 or FastLZ) libraries
Copyright (C) 2013 Exalead SA. (http://www.exalead.com/)
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
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
Remarks/Bugs:
LZ4 compression library by Yann Collet (yann.collet.73@gmail.com)
FastLZ compression library by Ariya Hidayat (ariya@kde.org)
Library encapsulation by Xavier Roche (fastlz@exalead.com)
== LICENSE-FASTLZ ==
FastLZ - lightning-fast lossless compression library
Copyright (C) 2007 Ariya Hidayat (ariya@kde.org)
Copyright (C) 2006 Ariya Hidayat (ariya@kde.org)
Copyright (C) 2005 Ariya Hidayat (ariya@kde.org)
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
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
== LICENSE-LZ4 ==
LZ4 - Fast LZ compression algorithm
Header File
Copyright (C) 2011-2012, Yann Collet.
BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
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.
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.
You can contact the author at :
- LZ4 homepage : http://fastcompression.blogspot.com/p/lz4.html
- LZ4 source repository : http://code.google.com/p/lz4/
===========================================
2.
History:
The original Bacula code was Copyright Kern Sibbald and John Walker.
After November 2004, it became Copyright Kern Sibbald, and finally,
the copyright was transferred to the Free Software Foundation Europe
on 15 November 2006. The license was changed from GPLv2 to AGPLv3
on 24 July 2010.
Trademark:
The name Bacula is a registered trademark of Kern Sibbald.
===================================
License:
For the most part, Bacula is licensed under the AGPL version 3. This
code is listed under Copyright Free Software Foundation Europe e.V.
What follows is the addition(s) to the AGPL version 3 license, that
applies to code that is copyrighted by the Free Software Foundation
Europe e.V.
Linking:
As a special exception to the AGPLv3, the Bacula Project gives
permission to link the code of its release of Bacula with the OpenSSL
project's "OpenSSL" library (or with modified versions of it that use
the same license as the "OpenSSL" library), and distribute the linked
executables. You must obey the GNU Affero General Public License in all
respects for all of the code used other than "OpenSSL".
As a special exception to the AGPLv3, the Bacula Project gives
permission to link the code of its release of the Bacula Win32 File
daemon with the Microsoft supplied Volume Shadow Copy (VSS) libraries
and distribute the linked executables. You must obey the GNU General
Public License in all respects for all of the code used other than for
the Microsoft VSS code, where you must obey their license terms.
The Bacula Project gives permission for plugins with AGPLv3 compatible
licenses to be loaded and distributed with the Bacula executables as
long as the combined work is distributed under the terms listed in the
Bacula LICENSE file. A full list of AGPLv3 compatible licenses can be
found at: http://www.fsf.org/licensing/licenses/. If you wish to load
or distribute plugins with different licensing terms please contact
the Bacula Project at: license@bacula.org
===================================
What follows is information from the authors of the code:
License:
To the best of our knowledge, all code used in Bacula, which is
copyrighted by a third party, has licenses that are compatible
with the OpenSSL license, and so given the exception that we have
made to the AGPLv3 above, Bacula can be freely linked and distributed
with the OpenSSL libraries.
Intellectual Property rights:
Recipient understands that although each Contributor to Bacula grants
the licenses to its Contributions set forth herein, no assurances are
provided by any Contributor that the Program does not infringe the
patent or other intellectual property rights of any other entity.
Each Contributor disclaims any liability to Recipient for claims
brought by any other entity based on infringement of intellectual
property rights or otherwise. As a condition to exercising the rights
and licenses granted hereunder, each Recipient hereby assumes sole
responsibility to secure any other intellectual property rights
needed, if any. For example, if a third party patent license is
required to allow Recipient to distribute the Program, it is
Recipient's responsibility to acquire that license before distributing
the Program.
Copyrights:
Each Contributor to Bacula represents that to its knowledge it has
sufficient copyright rights in its Contribution, if any, to grant
the copyright license set forth in this Agreement.
Code falling under the above conditions will be marked as follows:
Bacula® - The Network Backup Solution
Copyright (C) 2000-2010 Free Software Foundation Europe e.V.
The main author of Bacula is Kern Sibbald, with contributions from
many others, a complete list can be found in the file AUTHORS.
This program is Free Software; you can redistribute it and/or
modify it under the terms of version three of the GNU Affero General Public
License as published by the Free Software Foundation plus additions
that are listed in the file LICENSE.
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 Affero General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
Bacula® is a registered trademark of Kern Sibbald.
The licensor of Bacula is the Free Software Foundation Europe
(FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zürich,
Switzerland, email:ftf@fsfeurope.org.
Windows:
Certain source code used to build the Windows version of the
Bacula File daemon is copyrighted and or trademarked by Microsoft
and may contain Microsoft intellectual property (examples:
Microsoft VC++, the source to the VSS libraries, the Microsoft C
runtime libraries). As such we cannot and do not distribute that
software. We are permitted however to distribute Bacula with the
necessary Microsoft libraries in binary form.
You may obtain the parts that we cannot distribute as follows. The
Microsoft compiler available for purchase, and Microsoft provides a free
version of the compiler. The source code and libraries are available for
download from Microsoft public Web servers. We have documented in the
src/win32 directory the URLs from which we obtained the library source, and
how we build the Windows File daemon and many users have succeeded in doing
so themselves. Our intention is to respect as closely as possible Open
Source practices while maintaining full respect for proprietary and
copyrighted code.
GPLv2 or later license:
src/tools/bsmtp.c
Copyright (C) 1997 Ralf S. Engelschall, All Rights Reserved.
(note, bsmtp.c does not use OpenSSL, nor is it used with the code
of any other part of Bacula)
3 clause BSD License notice for inclusion with the binary:
src/lib/fnmatch.c
* Copyright (c) 1989, 1993, 1994
* The Regents of the University of California. All rights reserved.
src/lib/fnmatch.h
* Copyright (c) 1992, 1993
* The Regents of the University of California. All rights reserved.
Permissive licenses:
src/lib/var.c/h
** OSSP var - Variable Expansion
** Copyright (c) 2001-2002 Ralf S. Engelschall
** Copyright (c) 2001-2002 The OSSP Project (http://www.ossp.org/)
** Copyright (c) 2001-2002 Cable & Wireless Deutschland (http://www.cw.com/de/)
src/lib/bsnprintf.c
* Copyright Patrick Powell 1995
src/bregex.c/h
* Copyright (c) 1991 Tatu Ylonen, Espoo, Finland
src/lib/sha1.c/h
Copyright (C) The Internet Society (2001). All Rights Reserved.
src/win32/compat/getopt.c
"... licensed under IBM copyrights to use the IBM-provided source code
in any way he or she deems fit ..."
src/win32/compat/sys/mtio.h (LGPL)
Copyright (C) 1996, 1997 Free Software Foundation, Inc.
Bacula can be enabled with data encryption and/or communications
encryption. If this is the case, you will be including OpenSSL code that
that contains cryptographic software written by Eric Young
(eay@cryptsoft.com) and also software written by Tim Hudson
(tjh@cryptsoft.com).
There are parts of Bacula that are licensed under the LGPL so
that those files may be used in proprietary code to interface with
Bacula.
Finally there are parts of Bacula that are in the public domain.
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.
3.
GNU AFFERO GENERAL PUBLIC LICENSE
Version 3, 19 November 2007
Copyright (C) 2007 Free Software Foundation, Inc.
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The GNU Affero General Public License is a free, copyleft license for
software and other kinds of works, specifically designed to ensure
cooperation with the community in the case of network server software.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
our General Public Licenses are intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users.
When we speak of free software, we are referring to freedom, 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
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
Developers that use our General Public Licenses protect your rights
with two steps: (1) assert copyright on the software, and (2) offer
you this License which gives you legal permission to copy, distribute
and/or modify the software.
A secondary benefit of defending all users' freedom is that
improvements made in alternate versions of the program, if they
receive widespread use, become available for other developers to
incorporate. Many developers of free software are heartened and
encouraged by the resulting cooperation. However, in the case of
software used on network servers, this result may fail to come about.
The GNU General Public License permits making a modified version and
letting the public access it on a server without ever releasing its
source code to the public.
The GNU Affero General Public License is designed specifically to
ensure that, in such cases, the modified source code becomes available
to the community. It requires the operator of a network server to
provide the source code of the modified version running there to the
users of that server. Therefore, public use of a modified version, on
a publicly accessible server, gives the public access to the source
code of the modified version.
An older license, called the Affero General Public License and
published by Affero, was designed to accomplish similar goals. This is
a different license, not a version of the Affero GPL, but Affero has
released a new version of the Affero GPL which permits relicensing under
this license.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU Affero General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is that
same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If 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 convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
13. Remote Network Interaction; Use with the GNU General Public License.
Notwithstanding any other provision of this License, if you modify the
Program, your modified version must prominently offer all users
interacting with it remotely through a computer network (if your version
supports such interaction) an opportunity to receive the Corresponding
Source of your version by providing access to the Corresponding Source
from a network server at no charge, through some standard or customary
means of facilitating copying of software. This Corresponding Source
shall include the Corresponding Source for any work covered by version 3
of the GNU General Public License that is incorporated pursuant to the
following paragraph.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the work with which it is combined will remain governed by version
3 of the GNU General Public License.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU Affero 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
Program specifies that a certain numbered version of the GNU Affero General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU Affero General Public License, you may choose any version ever published
by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU Affero General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "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 PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM 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 PROGRAM (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 PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
Copyright (C)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, 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 Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
Also add information on how to contact you by electronic and paper mail.
If your software can interact with users remotely through a computer
network, you should also make sure that it provides a way for users to
get its source. For example, if your program is a web application, its
interface could display a "Source" link that leads users to an archive
of the code. There are many ways you could offer source, and different
solutions will be better for different programs; see section 13 for the
specific requirements.
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU AGPL, see
.
===========================================
bareos-Release-14.2.6/Makefile.in 0000775 0000000 0000000 00000016472 12630115627 0016522 0 ustar 00root root 0000000 0000000 #
# Master Makefile
#
@MCOMMON@
working_dir = @working_dir@
log_dir = @logdir@
dir_group = @dir_group@
dir_user = @dir_user@
srcdir = @srcdir@
VPATH = @srcdir@
.PATH: @srcdir@
topdir = .
thisdir = .
first_rule: all
dummy:
# --client-only directories
fd_subdirs = src scripts src/lib src/findlib @LMDB_DIR@ src/filed \
@READLINE_SRC@ @BAT_DIR@ @TRAY_MONITOR_DIR@ src/console @FD_PLUGIN_DIR@
# Non-client-only directores
subdirs = src/cats @NDMP_DIR@ @DIRD_DIR@ @STORED_DIR@ @SD_BACKENDS_DIR@ @SD_PLUGIN_DIR@ @DIR_PLUGIN_DIR@ src/tools
all_subdirs = ${fd_subdirs} ${@ALL_DIRS@} manpages platforms
DIST = INSTALL README.configure configure Makefile Makefile.in ChangeLog
DIST_CFG = autoconf/aclocal.m4 autoconf/configure.in \
autoconf/config.h.in autoconf/acconfig.h autoconf/Make.common.in \
autoconf/install-sh autoconf/mkinstalldirs
MKDIR = $(srcdir)/autoconf/mkinstalldirs
LIBTOOL_DEPS = @LIBTOOL_DEPS@
#-------------------------------------------------------------------------
all: info Makefile
@for I in ${all_subdirs}; \
do (cd $$I; echo "==>Entering directory `pwd`"; \
$(MAKE) DESTDIR=$(DESTDIR) $@ || (echo ""; echo ""; echo " ====== Error in `pwd` ======"; \
echo ""; echo ""; exit 1;)); \
done
depend:
@for I in ${all_subdirs}; \
do (cd $$I; echo "==>Entering directory `pwd`"; $(MAKE) DESTDIR=$(DESTDIR) $@ || exit 1); done
bareos-fd: Makefile
@for I in ${fd_subdirs}; \
do (cd $$I; echo "==>Entering directory `pwd`"; \
$(MAKE) DESTDIR=$(DESTDIR) all || (echo ""; echo ""; echo " ====== Error in `pwd` ======"; \
echo ""; echo ""; exit 1;)); \
done
#-------------------------------------------------------------------------
autoconf/aclocal.m4: autoconf/configure.in autoconf/bareos/* autoconf/gettext/* autoconf/libtool/*
# Note, the following is needed in the above if ever any new macro is added.
# However, at the current time, the -I libtool causes the autoconf/aclocal.m4
# get messed up, so this is commented out
# cd autoconf && aclocal -I bareos-macros -I gettext-macros -I libtool
configure: autoconf/configure.in autoconf/aclocal.m4 autoconf/config.h.in
cd $(srcdir);
${RMF} config.cache config.log config.out config.status src/config.h
${RMF} -r autoconf/autom4te.cache autom4te.cache
touch config.status
autoconf --prepend-include=$(srcdir)/autoconf \
autoconf/configure.in > configure
chmod 755 configure
${RMF} -r autoconf/autom4te.cache autom4te.cache
config.status:
if test -x config.status; then config.status --recheck; \
else $(SHELL) configure; fi
autoconf/config.h.in: autoconf/configure.in
cd $(srcdir);
${RMF} config.cache config.log config.out config.status src/config.h
autoheader --prepend-include=$(srcdir)/autoconf \
autoconf/configure.in > autoconf/config.h.in
chmod 644 autoconf/config.h.in
libtool: Makefile $(LIBTOOL_DEPS)
$(SHELL) ./config.status --recheck
installdirs:
$(MKDIR) $(DESTDIR)$(sbindir)
$(MKDIR) $(DESTDIR)$(sysconfdir)
chmod 770 $(DESTDIR)$(sysconfdir)
-if test "x$(dir_user)" != "x" ; then \
chown $(dir_user) $(DESTDIR)$(sysconfdir); \
fi
-if test "x$(dir_group)" != "x" ; then \
chgrp $(dir_group) $(DESTDIR)$(sysconfdir); \
fi
$(MKDIR) $(DESTDIR)$(scriptdir)
$(MKDIR) $(DESTDIR)$(archivedir)
-if test ! -d $(DESTDIR)$(working_dir) ; then \
$(MKDIR) $(DESTDIR)$(working_dir); \
chmod 770 $(DESTDIR)$(working_dir); \
fi
$(MKDIR) $(DESTDIR)$(log_dir);
chmod 775 $(DESTDIR)$(log_dir);
-if test "x$(dir_user)" != "x" ; then \
chown $(dir_user) $(DESTDIR)$(working_dir); \
fi
-if test "x$(dir_group)" != "x" ; then \
chgrp $(dir_group) $(DESTDIR)$(working_dir); \
fi
install: installdirs
@for I in $(all_subdirs); do (cd $$I && $(MAKE) DESTDIR=$(DESTDIR) $@ || exit 1); done
(cd platforms && $(MAKE) DESTDIR=$(DESTDIR) $@ || exit 1)
install-autostart:
(cd platforms && $(MAKE) DESTDIR=$(DESTDIR) $@ || exit 1)
install-autostart-dir:
(cd platforms && $(MAKE) DESTDIR=$(DESTDIR) $@ || exit 1)
install-autostart-fd:
(cd platforms && $(MAKE) DESTDIR=$(DESTDIR) $@ || exit 1)
install-autostart-sd:
(cd platforms && $(MAKE) DESTDIR=$(DESTDIR) $@ || exit 1)
Makefile: Makefile.in
cd $(topdir) \
&& CONFIG_FILES=$(thisdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
Makefiles:
$(SHELL) config.status
(cd scripts; \
chmod 755 bareos btraceback mtx-changer bconsole devel_bareos; )
(cd src/cats; \
chmod 755 create_bareos_database update_bareos_tables make_bareos_tables; \
chmod 755 grant_bareos_privileges drop_bareos_tables drop_bareos_database; \
chmod 755 make_catalog_backup delete_catalog_backup)
@for I in @DB_BACKENDS@ ; do \
(cd src/cats; \
chmod 755 create_$${I}_database update_$${I}_tables make_$${I}_tables; \
chmod 755 grant_$${I}_privileges drop_$${I}_tables drop_$${I}_database); \
done
(cd src/qt-console; \
chmod 755 install_conf_file)
info:
@mkdir -p build/
scripts/git-info.sh build/
$(CP) -p config.out build/
clean:
@for I in ${all_subdirs} ; \
do (cd $$I; echo "==>Entering directory `pwd`"; ${MAKE} $@ || exit 1); done
@$(RMF) *~ 1 2 3 core core.* config.guess console.log console.sum
@$(RMF) examples/1 examples/2 examples/devices/1 examples/devices/2
@$(RMF) -r autom4te.cache
@$(RMF) -r build/
@find . -name ".#*" -exec $(RMF) {} \;
# clean for distribution
distclean:
@for I in $(all_subdirs); do (cd $$I && $(MAKE) $@ || exit 1); done
@for I in $(all_subdirs); do (cd $$I && $(RMF) startit stopit btraceback); done
@(cd $(srcdir) && $(RMF) *~ config.cache config.h config.log config.status config.out)
@(cd $(srcdir) && $(RMF) Makefile autoconf/Make.common)
@$(RMF) bareos fd Makefile startmysql stopmysql startit stopit btraceback
@$(RMF) bconsole gconsole
@$(RMF) *~ 1 2 3 core core.* config.guess console.log console.sum
@$(RMF) working/* kerns-*
@$(RMF) -r txt diff src/python src/testprogs
@$(RMF) libtool
# remove files generated by configure
find . -type f -a -name "*.in" -a ! -name "control.in" | sed -e 's/.in$$//' | xargs $(RMF)
devclean:
@for I in $(all_subdirs); do (cd $$I && $(MAKE) $@ || exit 1); done
@for I in $(all_subdirs); do (cd $$I && $(RMF) startit stopit btraceback); done
@(cd $(srcdir) && $(RMF) *~ config.cache config.h config.log config.status config.out)
@(cd $(srcdir) && $(RMF) Makefile autoconf/Make.common)
@$(RMF) bareos fd Makefile startmysql stopmysql startit stopit btraceback
@$(RMF) bconsole gconsole
@$(RMF) *~ 1 2 3 core core.* config.guess console.log console.sum
@$(RMF) working/*
distdirs:
mkdir ../$(VERNAME);
mkdir ../$(VERNAME)/autoconf;
@for I in $(all_subdirs); do (cd $$I && $(MAKE) DESTDIR=$(DESTDIR) $@ || (echo "Failed to make distclean in $$I"; exit 0) ); done
distcopy:
$(CP) -p $(DIST) ../$(VERNAME);
$(CP) -p $(DIST_CFG) ../$(VERNAME)/autoconf;
@for I in $(all_subdirs); do (cd $$I && $(MAKE) DESTDIR=$(DESTDIR) $@ || exit 1); done
distrib: configure autoconf/config.h.in distdirs distcopy
test:
tar.gz: ../$(VERNAME).tar.gz
../$(VERNAME).tar.gz:
(cd ..; tar cvf - $(VERNAME) | gzip -f9 > $(VERNAME).tar.gz)
tar.Z: ../$(VERNAME).tar.Z
../$(VERNAME).tar.Z:
(cd ..; tar cvf - $(VERNAME) | compress > $(VERNAME).tar.Z)
tar.bz2: ../$(VERNAME).tar.bz2
../$(VERNAME).tar.bz2:
(cd ..; tar cvf - $(VERNAME) | bzip2 -f9 > $(VERNAME).tar.bz2)
uuencode: tar.gz
uuencode ../$(VERNAME).tar.gz $(VERNAME).tar.gz > ../$(VERNAME).tgz.uu
# ------------------------------------------------------------------------
bareos-Release-14.2.6/README.NDMP 0000664 0000000 0000000 00000031551 12630115627 0016062 0 ustar 00root root 0000000 0000000 Embedding full NDMP support in BAREOS.
No filed plugin but a proper implementation with support in
the director to act as a NDMP DMA (Data Management Application)
and for NDMP tape agent support in the storage daemon for saving
data using the NDMP protocol.
This code is based on the NDMJOB NDMP reference implementation
of Traakan, Inc., Los Altos, CA which has a BSD style license
(2 clause one).
http://www.traakan.com/ndmjob/index.html
We imported the latest actively supported version of this
reference NDMP code from the Amanda project. Instead of
basing it on glib what Amanda has done we reverted some changes
back to the way the latest spinnaker sources of the NDMJOB code
deliver things with per OS specific code.
The robot and tape simulator are rewritten versions from NDMJOB
with support for registering callbacks in the calling code. This
way we can implement virtual tape and robot functionality in the
storage daemon for handling NDMP backups.
There is also some code added for registering authentication
callbacks in the calling code. This way we can perform clear
text and md5 based authentication against the internal config
data we keep in BAREOS native resources.
The core fileindex handling code is rewritten to use callback
functions for doing the real work. This way we can hook in
internal functions into the core file indexing process which
happens after a backup and before a restore to fill the
files which have been backuped or restored.
Some missing initialization, commission and decommission is
added although it is empty it is better to have a consistent
coding path/style for everything. Added extra destroy method
as for some agents a decommission means make it ready for a next
run and we want something that does a tear down and cleanup
of anything dynamically allocated during a NDMP run.
We also added support for telling the initialization upfront
what NDMP services it should support. (e.g. DATA MANAGEMENT
APPLICATION (DMA), DATA AGENT, TAPE AGENT or ROBOT AGENT)
so when we accept a connection in the storage daemon via
ndmp_tape we only allow the client to use our NDMP TAPE AGENT
and not the ROBOT, DMA and DATA AGENT. See ndm_session structure
members ..._agent_enabled.
We also rewrote some of the internal structures. Normally
a NDMP session is described by a so called ndm_session struct
which is a whopping 1442392 bytes (almost 1.4 Mb) in size.
The coders decided they would allocate each array up front
and as such the total structure is huge. This is not very
handy when using it as a base for a shared library as we want
to support all agents but possibly not at the same time
(even most likely not at the same time.)
So the new ndm_session struct has pointers to the individual
members and storage is only allocated when things are needed
we also only allocate buffers at the time we need them not
upfront. For things like directory names or other pathnames
we just strdup the actual string and free it on decommission
of the data, this saves a lot when PATH_MAX = 1024 bytes and
you stuff a directory path of lets say 30 bytes.
The DMA and DATA AGENT also keep track of an list of environment
variables and a name list structure. In the original code the
environment variable list can have a maximum of 1024 entries
and 10240 entries for the name list and that is allocated as
one big array of either 1024 or 10240 entries. This is
madness we rewrote the list code to use a normal linked
list so we only need the space to store the actual number
of nodes of each list. There is a enumerate function which
returns a memory chunk with all entries concatenated which
is used for the rpc calls. We keep track of this enumerate
buffer in the list descriptor and when the list is torn down
it is freed. (We cannot free it earlier as it is needed
as buffer for the returning rpc call.) This lingering of
a buffer should be no problem as it should be moderate in
size now and not the whopping 1024 or 10240 entries anymore.
The media table is also rewritten to a linked list and not
a fixed list of 40 entries as it was in the old code.
This has significant size advantages to give an idea:
ndm_control_agent, original size 523000 bytes, new size 928 bytes
ndm_data_agent, original size 553232 bytes, new size 304 bytes
ndm_tape_agent, original size 263388 bytes, new size 228 bytes
ndm_plumbing, original size 102592 bytes, new size 20 bytes
As we initialize some things now later we needed to add some
extra checks and things may core dump due to dereferencing
a null pointer. We decided to take that as a risk and fix
those problems which we encounter them. Adding extra checks
all over the place checking if things are not initialized is
also gross overkill and as NDMP is a nice state machine we
probably can get away by putting checks in strategic places.
The test routines are put into an extra define named
NDMOS_OPTION_NO_TEST_AGENTS so one can disable them for a
production shared library.
Extra support for getaddrinfo() is added to the library
which supercedes the old and by POSIX deprecated gethostbyname()
interface. Also the implementation of poll() is completed and
we now also check the return info from poll() and set the
channel ready flag if we detect something on a channel. This
way the poll() handler should be on par with the select()
based poller.
The ndmjob program code is also included and you can build
the ndmjob binary using the new shared library. Currently
it is mostly for testing the new code in the shared library.
The ndmjob program code is rewritten to also use linked list
whereever possible without the need to completely rewrite the
code.
The NDMJOB header files are made C++ aware so we can compile
the shared lib a pure C-code (which it essentially also is)
and use it from BAREOS.
The config engine of the director and storage daemon have been
made aware of the NDMP protocol. Currently there is support for
creating NDMP protocol based Backup and Restore Jobs. The storage
resource is extended with a protocol and authentication type field
which can be used by the NDMP DMA coded in ndmp_dma.c. A Client
also has those two fields. When a storage daemon used in the NDMP
backup/restore is in real life an BAREOS storage daemon an extra
field named paired storage is part of the storage resource and is
used by the DMA to contact the storage daemon via the native protocol
to be able to simulate a NDMP save or restore via the normal
BAREOS infrastructure. Via the native protocol we reserve
things like drives etc so the virtual NDMP tape client can
save its data, the native link is also used for things like
getting the next volume to load etc.
The job start code for backup and restore is modified to check
for the job protocol and dispatch to the native routines when
it is a native backup or to the NDMP routines when it is any NDMP job.
The NDMP tape agent lives in ndmp_tape.c in the storage
daemon it creates an extra listening thread which handles NDMP
connections. Its based on the BAREOS bnet_server_thread code but
put somewhat on a diet as for NDMP we don't need all the bells
and whistles from the bsock class so we implemented a light weight
ndmp connection structure. This structure is passed as handle to
the connection handler and could be seen as local hook data and
can be extended along the way to keep some state information on
the NDMP session related to internal BAREOS resources.
A ndmp backup configuration looks somethings like this:
Configuration in bareos-dir.conf:
Replace with the hostname of the storage device
you are backing up e.g. the DATA AGENT in NDMP terms.
#
# Use the DUMP protocol (e.g. UNIX DUMP comparable to tar/cpio)
# Generates FileHandle Information which can be used for single file
# restore.
#
JobDefs {
Name = "DefaultNDMPJob"
Type = Backup
Protocol = NDMP
Level = Incremental
Client = -ndmp
Backup Format = dump
FileSet = "NDMP Fileset"
Schedule = "WeeklyCycle"
Storage = NDMPFile
Messages = Standard
Pool = NDMPFile
Priority = 10
Write Bootstrap = "/var/opt/bareos/run/bareos/%c.bsr"
}
#
# A special restore Job which has the protocol set right etc.
#
JobDefs {
Name = "DefaultNDMPRestoreJob"
Client = -ndmp
Type = Restore
Protocol = NDMP
Backup Format = dump
FileSet = "NDMP Fileset"
Storage = NDMPFile
Pool = Default
Messages = Standard
Where = /
}
#
# A NDMP Backup Job using the JobDef above.
#
Job {
Name = "BackupNDMPDump"
JobDefs = "DefaultNDMPJob"
}
#
# Use the NETAPP SMTAPE protocol e.g. same protocol is used as replication protocol
# between two NETAPP storage boxes. Doesn't allow single file restore all or nothing
# restore of whole NETAPP volume.
#
Job {
Name = "BackupNDMPSMTape"
JobDefs = "DefaultNDMPJob"
Backup Format = smtape
Client = -ndmp
FileSet = "NDMP SMtape Fileset"
}
#
# A NDMP restore Job using the JobDef above.
#
Job {
Name = "NDMPRestoreDump"
JobDefs = "DefaultNDMPRestoreJob"
}
#
# A NDMP restore Job using the JobDef above but for restoring a SMTAPE type of NDMP backup.
#
Job {
Name = "NDMPRestoreSMTape"
JobDefs = "DefaultNDMPRestoreJob"
Backup Format = smtape
FileSet = "NDMP SMtape Restore Fileset"
}
Fileset {
Name = "NDMP Fileset"
Include {
Options {
meta = "USER=root"
}
File = /export/home/...
}
}
#
# A NDMP Backup using SMPTAPE of a NetAPP storage box.
#
Fileset {
Name = "NDMP SMtape Fileset"
Include {
Options {
meta = "SMTAPE_DELETE_SNAPSHOT=Y"
}
File = /vol/vol1
}
}
#
# A NDMP Restore using SMPTAPE of a NetAPP storage box.
#
Fileset {
Name = "NDMP SMtape Restore Fileset"
Include {
Options {
meta = "SMTAPE_BREAK_MIRROR=Y"
}
File = /vol/vol1
}
}
#
# A NDMP Client.
#
Client {
Name = -ndmp
Address = ...
Port = 10000
Protocol = NDMPv4 # Need to specify protocol before password as protocol determines password encoding used.
Auth Type = Clear # Clear == Clear Text, MD5 == Challenge protocol
Username = "ndmp" # username of the NDMP user on the DATA AGENT e.g. storage box being backuped.
Password = "test" # password of the NDMP user on the DATA AGENT e.g. storage box being backuped.
}
#
# Your normal Bareos SD definition should be already in your config.
#
Storage {
Name = File
Address = ... # N.B. Use a fully qualified name here
SDPort = 9103
Password = ...
Device = FileStorage
Media Type = File
}
#
# Same storage daemon but via NDMP protocol.
# We link via the PairedStorage config option the Bareos SD instance definition to a NDMP TAPE AGENT.
#
Storage {
Name = NDMPFile
Address = ... # N.B. Use a fully qualified name here
Port = 10000
Protocol = NDMPv4 # Need to specify protocol before password as protocol determines password encoding used.
Auth Type = Clear # Clear == Clear Text, MD5 == Challenge protocol
Username = ndmp # username of the NDMP user on the TAPE AGENT e.g. the Bareos SD but accessed via the NDMP protocol.
Password = test # password of the NDMP user on the TAPE AGENT e.g. the Bareos SD but accessed via the NDMP protocol.
Device = FileStorage
Media Type = File
PairedStorage = File
}
#
# Your normal File based backup pool normally already defined.
#
Pool {
Name = File
Pool Type = Backup
Recycle = yes
AutoPrune = yes
Storage = File
Volume Retention = 365 days # one year
Maximum Volume Bytes = 50G # Limit Volume size to something reasonable
Maximum Volumes = 100 # Limit number of Volumes in Pool
}
#
# Seperate Pool for NDMP data so upgrading of Jobs works and selects the right storage.
#
Pool {
Name = NDMPFile
Pool Type = Backup
Recycle = yes
AutoPrune = yes
Storage = NDMPFile
Volume Retention = 365 days # one year
Maximum Volume Bytes = 50G # Limit Volume size to something reasonable
Maximum Volumes = 100 # Limit number of Volumes in Pool
}
Configuration in bareos-sd.conf:
#
# Normal SD config block, should enable the NDMP protocol here otherwise it won't listen
# on port 10000.
#
Storage {
Name = ....
...
NDMP Enable = yes
}
#
# This entry gives the DMA in the Director access to the bareos SD via the NDMP protocol.
# This option is used via the NDMP protocol to open the right TAPE AGENT connection to your
# Bareos SD via the NDMP protocol. The initialization of the SD is done via the native protocol
# and is handled via the PairedStorage keyword.
#
Ndmp {
Name = ...-ndmp-dma # Can be any name but normally you should use the name of the Director here.
Username = ndmp # Same username as you specified in the NDMPFile storage definition.
Password = test # Same password as you specified in the NDMPFile storage definition.
AuthType = Clear # Clear == Clear Text, MD5 == Challenge protocol
}
bareos-Release-14.2.6/README.dbconfig 0000664 0000000 0000000 00000010704 12630115627 0017074 0 ustar 00root root 0000000 0000000 On Debian based systems (Debian, Ubuntu, Univention Corporate Server),
database configuration can be done with help of the dbconfig system.
* Package: dbconfig-common
* Homepage/Documentation: http://people.debian.org/~seanius/policy/dbconfig-common.html/
Install/update scenarios:
* fresh install
* preinstalled 2001
* preinstalled 2002
* 12: 2001 -> 2002, 13: 2001 -> 2002: update from 12 to 13
Behavior:
* config file: /etc/dbconfig-common/bareos.conf
* sql files stored at
* /usr/share/dbconfig-common/data/bareos-database-common/upgrade/pgsql/2001
* /usr/share/dbconfig-common/data/bareos-database-common/upgrade/pgsql/2002
* /usr/share/dbconfig-common/data/bareos-database-common/upgrade/mysql/2001
* /usr/share/dbconfig-common/data/bareos-database-common/upgrade/mysql/2002
* /usr/share/dbconfig-common/data/bareos-database-common/install/pgsql
* /usr/share/dbconfig-common/data/bareos-database-common/install/mysql
Upgrade:
* bareos-database-common.postinst
* every file from /usr/share/dbconfig-common/data/bareos-database-common/upgrade/DATABASE/*, that is larger than parameter $2 (package version of replaced package) will be installed.
* even if the filename "is larger" than current package version
* dbconfig does not store the installed version. It uses only the old and the current package version.
* in Bareos, different branches can each do a database version update, example:
* 12.4.6: 2001
* 12.4.7: 2002
* 12.4.8: 2003
* 13.2.2: 2001
* 13.2.3: 2002
* 13.2.4: 2003
* using standard dbconfig this could result in following
* updating from 12.4.6 to 13.2.3 would result in a database update from
* 2001 (12.4.6) -> 2002 (12.4.7) -> 2003 (12.4.8) -> 2001 (13.2.2) ... => failure
* Bareos modifies the dbconfig behavior by not working with package versions, but database versions:
* bareos-database-common.config, bareos-database-common.postinst:
* instead of passing parameter $2 (old package version), this gots translated to database version with the help of a map file (versions.map).
* with the help of this, every database schema update is only be done once
* how to handle package update from version without dbconfig to version with it?
Bareos dbconfig will be introduced with some version >= 14.1.0.
The latest database version for 12.4 and 13.2 will be 2002.
Therefore we claim, that the first version using db_config will be 2003, even if it is only 2002. Using this, all existing database updates get applied.
if dpkg --compare-versions "$param2_orig" lt "14.1.0"; then
dbc_first_version="2003"
...
fi
Database Permissions by dbconfig:
MySQL:
GRANT USAGE ON *.* TO 'bareos'@'localhost' IDENTIFIED BY PASSWORD '*3E80BB05233BE488EE70C1D6494E2F2DB00FEBB4'
GRANT ALL PRIVILEGES ON `bareos`.* TO 'bareos'@'localhost'
PostgreSQL:
bareos will be the database owner
Testing:
# bareos-database-dbconfig
# ~/dbconf
# fakeroot debian/rules binary
# /var/lib/dpkg/info/*.postinst ...
/var/log/dbconfig-common/dbc.log
eval "`dbconfig-generate-include /etc/dbconfig-common/bareos-database-common.conf`"
Behavior
========
noninteractive
==============
export DEBIAN_FRONTEND=noninteractive
echo "bareos-database-common bareos-database-common/mysql/admin-pass select linuxlinux" | debconf-set-selections
postgresql
==========
* install
* /etc/dbconfig-common/bareos-database-common.conf created
* db: setup
* update from 12.4:
* updates db_version from 2001 to 2002.
* update from 13.2:
* db_version is already 2002. It detects, nothing to do.
* update dbconfig already configured
* ?
mysql
=====
* install
* /etc/dbconfig-common/bareos-database-common.conf created
* db: setup
* dbpass must be set to bareos-dir.conf
* update from 12.4:
* updates db_version from 2001 to 2002.
* update from 13.2:
* db_version is already 2002. It detects, nothing to do.
* update dbconfig already configured
* ?
sqlite3
=======
* install
* /etc/dbconfig-common/bareos-database-common.conf created
* db: setup
* creates link from /var/lib/bareos/bareos.db to bareos
* update from 12.4:
* updates db_version from 2001 to 2002.
* update from 13.2:
* db_version is already 2002. It detects, nothing to do.
* creates link from /var/lib/bareos/bareos.db to bareos
* update dbconfig already configured
* ?
bareos-Release-14.2.6/README.md 0000664 0000000 0000000 00000037317 12630115627 0015732 0 ustar 00root root 0000000 0000000 [BAREOS](http://www.bareos.org/) is a fork of the Bacula project.
If you want to contribute somethings to this repo please read our contribution
policy at https://www.bareos.org/en/howto-contribute.html
This source code has the following changes (highlevel) compared with
Bacula 5.2.13 (original version forked.):
Release 14.2.x
==============
[](https://travis-ci.org/bareos/bareos)
* Configuration engine refactoring in preparation for configuration API.
* Accurate mode refactoring
* Data storage abstraction
* In memory hashtable (same as previously)
* LMDB (Lightning Memory DB same as used in OpenLDAP.)
* Python FD plugin base class abstraction for Python plugin writers.
* Added missing methods to Python FD class should now have all methods and structures that C plugin has.
* Fixed most important high level coding problems found by Coverity scans.
* Disable a client (analog to disable job but then for all jobs of a certain client.)
* Disable a schedule (analog to disable job but then for all jobs triggered by that schedule.)
* Cleanup of more global variables.
* Make scripting more robust for getting the database engine used.
* Debian packaging got major overhaul.
* dbconfig used for database configuration on debian based distributions.
* dh_installinit used for init scripts on debian based distributions.
* The LICENSE text is more inline with what debian requires for the debian packaging.
* Bug fixes to bugs found by Coverity scans.
* Added prototype of CRL (Certificate Revocation List) reload logic for openssl.
* Limit storage list to autochangers automatically when a command makes sense only on autochangers.
* Exclude Dir containting extended to allow multiple settings.
* Added elapsed time printing in restore jobs.
* Some tools are installed into bindir instead of sbindir now.
* Traymonitor now shows a red icon when there are connection or authentication problems with a server.
* CentOS 7 and RHEL7 support added to build system.
* Fixed several problems with copy and migration jobs to make them work better.
* Do not cancel the copy/migration job on certain events.
* When you configure your Copy and Migration Jobs now without a dummy client/fileset you get the following:
* Jobs now show the actual client of the original job.
* Jobs now show the actual level of the the original job.
* Jobs now show the actual fileset of the original job.
* The jobs data spooling setting is now only used when its not enabled already.
* In the old situation the disabling of data spooling in the Job would disable a command line override to enable spooling.
* The printing of Client and FileSet and Level is restored now they are set with sensible info.
* Disabled checking client concurrency for Copy and Migration Jobs.
* As the client is not contacted anyway we are now only limited by the storage concurrency.
* Allow to read from file type devices multiple times
* A read volume on a file type device can now be reserved by multiple jobs and when the jobs
use the same volume they can execute at the same time when the right concurrency is met on the other resources.
* Added a prototype of a CEPHFS storage backend.
* Added support for dynamic loading of storage backends in the storage daemon.
* File storage is always loaded.
* Tape/GFAPI/RADOS/... can be loaded dynamically (simular to what we alread had for database backends.)
* All shared code between the different storage programs (bareos-sd, btape, ...) is now in a new shared library.
* VTAPE is removed from the code base (Use MHVTL).
* Initial support for TAPEALERT is added.
* Storage daemon statistics gathering.
* Some preliminary work for allowing to have audit events.
* Use a special backend dir to store both catalog and storage backends.
* Support for NotToBackup Registry Key on windows.
* On the packaging side we now store the bareos libs in a subdir. (e.g. /usr/lib/bareos, /usr/lib64/bareos)
Release 14.1.x
==============
[](https://travis-ci.org/bareos/bareos)
* Windows DIR.
* Support for different blocksizes (e.g. per volume blocksize) for better performance.
* Preliminary support for Cloud storage backends:
* GFAPI (Gluster FileSystem) (tested simple backup and restore, needs more tests)
* Object storage (S3/Swift etc.) using libdroplet (Needs patched bareos libdroplet) (Due to unusable VFS abstraction not working).
* Rados (CEPH) (tested simple backup and restore, needs more tests)
Release 13.4.x
==============
[](https://travis-ci.org/bareos/bareos)
* First attempt at supporting IBM lin_tape driver.
* Fix storage daemon plugin interface.
* AIX compile fixes.
* Catalog backend scripting reworked.
* Python plugins (fd/sd/dir)
* Windows SD.
* Support for Univention packages.
* Bpipe plugin upgraded to new plugin config parser.
* Socket abstraction (TCP supported, prototype for SCTP and UDT sockets).
* Windows enhancements
* Volume Mountpoints support (VMP).
* Use GetFileInformationByHandleEx to get real changetime.
* Windows dedup support
* Initial support for Windows EFS filesystems
Release 13.3.x
==============
[](https://travis-ci.org/bareos/bareos)
* NDMP enhancements (first code for doing filelevel restores, preliminary).
* Plugin framework enhancements.
* Auto inflation/deflation storage daemon plugin (needs more testing).
* Interactive path selection refactoring.
* Add config option for storing a diagnostic device.
* Plugin framework enhancements.
* Conditionally enable VSS.
* Refactor windows version detection code.
* Implement plugin options passing.
* Upgrade all filed plugins to use fd_common.h
* Windows config files admin-only access.
* Use modern autoconf idioms.
* Enhanced help for run and restore command.
* Add command for doing a name resolution on client.
* Implement a store_alist_dir function.
* Fill the process environment with an BAREOS_CFGDIR.
* Cleanup win api compat layer.
* Sortable tables in bRestore.
* Copy job definition requires unnecessary settings (relax config).
* Added usage to the plugin information block.
* Make new diskonly configs the default installed configs.
* Private connection to database for some long running operations.
* Plugin to do backup of Microsoft Sql Server (mssql) server.
* Config engine redesign Phase 1.
Release 13.2.x
==============
[](https://travis-ci.org/bareos/bareos)
* Allow to cancel multiple jobids with cancel cmd from bconsole.
Release 13.1.x
==============
[](https://travis-ci.org/bareos/bareos)
* Allow cancel by JobId on storage daemon. (#13)
* Security (filed)
* Implementation of an allowed scriptdir keyword (#31)
* Implementation of an allowed job command keyword (#32)
* Cleanup of compression framework (#34)
* Encryption cipher is hardcoded (#46)
* Job migration/copy between different SDs (#7)
* Use open_bpipe wrapper in bpipe plugin (#104)
* Side effect of using open_bpipe is that you can only call
a binary or a script like all other things in Bareos e.g.
runscripts etc. If you want to use a direct cmdline you need
to embed the cmdline in a sh -c 'cmdline ...'
* Add firewall friendly reverse data channel initialization.
* instead of FD connecting to SD for backup, restore and verify
the client is defined as a passive client and the Director instructs
the SD to connect to the FD. So no need for puching holes in your firewall
for returning data traffic but initiate all connections from the inside to
the outside. The default is still non passive mode but for external clients
in an DMZ or on the Internet you can define the client as a passive client.
Release 12.4.x
==============
[](https://travis-ci.org/bareos/bareos)
* First attempt at adding a rerun command.
* Pass the restore context as parameter to display_job_parameters
* When showing the pool source show if it was set on the cmdline.
* Link bacula using libumem on Solaris the better multithreaded allocator
* Rewrite find_one_file using inline functions so its better readable.
* Add support for backtrace dumps on Solaris
* Add a bstrinlinecpy function which allows for overlapping copies.
* Major overhaul of configure subsystem.
* Rewrite the restore stream processing somewhat so its better readable.
* Use bstr functions whereever possible.
* Major overhaul of config tables and layout of code.
* Backport catalog changes
* Backport of dynamic loadable backends and sql pooling.
* First attempt at adding a fileset size option.
* Replace the mntent cache htable with a dlist.
* Add safeguard to append_file function for empty filepatterns.
* Modify block device restore
* First attempt at adding fileset shadowing detection.
* Reindent cmdline table.
* Reindent config tables without space allignment.
* Add sd and dir plugin dir to build targets.
* Do not check for backend when --enable-client-only is given.
* Backported quota support.
* Import/Export of volumes from bconsole and BAT with full support in
bareos-dir and bareos-sd
* Cleanup of dird
* Add an autochanger transfer option.
* Add extra function to update database with new data.
* Allow get_user_slot_list to search for specific argument.
* Tweak layout of status slots
* Tweak status slots no need to get a drive
* Tweak update slots only ask for drive with scan option.
* First try at implementing Import/Export GUI.
* Add better support for multi drive autochangers.
* Change drive selection dialog.
* Allow export when a volume is loaded in a drive.
* Repopulate the media view on enabling the pane.
* Do not show import/export slots in contents overview.
* Repopulate panes in BAT when they get focus again.
* Allow a move slots operation from BAT.
* Upgrade libtool to 2.4.2
* Bring autoconf stuff to 2.68 version.
* See if adding ENGINE initialization to openssl makes it use hw crypto.
* Fix help text and comments on list and llist cmd.
* Output .help item= as machine parseable data.
* Need a way to express we want a private database connection.
* Implement an unformated list type NF_LIST
* Use NF_LIST e.g. non formated list for the files and basefiles of a job.
* Implement a special version of NF_LIST e.g. RAW_LIST
* Use RAW_LIST e.g. no formated raw output list for the job log of a job
* Add basic backup/restore only mode.
* Replace all bnet_sig and bnet_close.
* Sort the prototypes in the protos.h header.
* Added sample postgresql stored procedures for lstat field.
* Use bools instead of integers for db functions.
* Change catalog code to use a single exit from function.
* Do not use useless NULL arguments to db_sql_query
* Uncripple storage daemon plugins.
* Add support for newer AIX flags for acl retrieval.
* Add mount/unmount storage daemon plugin event.
* Implement baculaRegisterEvents proper.
* Allow the stored plugin to override the volume status.
* Use MAX_BLOCK_LENGTH instead of hardcoded 4096000
* Add clone job jobcode
* Allow open_mail_pipe to use extended jobcodes.
* Capture error in bpipe plugin.
* Do not define types in prototype header.
* Add additional storage plugin events.
* Align all plugin headers.
* Added support for loading plugins in btools.
* Use a generic plugin info structure for all plugins
(fd, sd, dir) instead of a per daemon one with the
same content.
* Only export load and unload symbols from plugins
as "C" symbols for dynamic loading not everything.
* Added support for poll POSIX interface next to the
normal POSIX select support. Created basic wrappers
so we can reuse some code.
* Restored version browser in BAT, although it may be broken
its replacement also has problems of his own. For now make
both available and give the user something to choose something
somewhat broken or something seriously broken.
* Possibilty to schedule Jobs on last Sunday-Saturday of the month.
* Deprecated old embeded python support in all daemons to be
replaced with daemon plugins which interface with python.
* Increase name lengths so director/stored/filed names of more than
30 characters can be used.
* Allow users to test plugins from a plugtest binary when developing.
* Deprecated wxwindows console.
* Deprecated old tray-monitor use qt-tray-monitor instead.
* Update config parser to allow default strings and make it more flexible.
* Warn users when they are using deprecated keywords in their config.
* Deprecated old runbeforejob/runafterjob protocol and switch to use
new runjob protocol (introduced in 2006) for every runjob.
* Deprecated DVD support.
* Allow nextpool override from run cmdline.
* Allow nextpool override from Job definition.
* Add support for auto expanding drive selection on windows.
* Add default piddir and workingdir settings to ease configuration.
* Turn off client autopruning by default.
* Extend scheduler to allow to perform modulo scheduling.
* Implemented feature request 14 (Possibilty to schedule Jobs on last Friday of the month)
* Implemented feature request 34 (Command that releases all drives in an autochanger)
* SCSI crypto support using a storage daemon plugin
* Native NDMP backup/restore with DataManagementAgent (DMA) in director
and NDMP Tape Server support int the storage daemon. Currently all or
nothing restore for NDMP.
* Automatic sending of BSR (at least of the Catalog DB) vie email (#24)
* Tray-monitor shows backup activity by blinking icon
Long standing bugs fixed (bug numbers are from the bacula bug database):
* Implement feature request #1698
* Proper fix #1764 ld: warning: symbol plugin_list has differing sizes
* Add the essentials from bugreport #1846
* Fix bug #1739 level overides ignore user input.
* Fix bug #1679 Job Overrides are Not listed In Manual Run Confirmation
* Fix bug #1965 Can not unmount with a 2-drive-library in BAT
* Fix bug #1955 bconsole inconsistent with response handling
* Fix bug #1978/#1962 Job is flagged if post-run script returns non-zero
* Fix bug #1966 bconsole does not show completions for some commands
* Fix bug #1960 qformlayout.h requires qt 4.4
Build System
============
* Fully new building system used for compiling and packaging the software
* Based on [Open Build System](https://build.opensuse.org/)
* Packages are build for:
* CentOS 5
* CentOS 6
* Debian 6.0
* Debian 7.0
* Fedora 18
* Fedora 19
* RedHat Enterprise Linux 5 (RHEL5)
* RedHat Enterprise Linux 6 (RHEL6)
* Suse Linux Enterprise 11 SP1 (SLE_11_SP1)
* Suse Linux Enterprise 11 SP2 (SLE_11_SP2)
* Suse Linux Enterprise 11 SP3 (SLE_11_SP3)
* Univention 3.1
* Univention 3.2
* OpenSuse 11.4
* OpenSuse 12.1
* OpenSuse 12.2
* OpenSuse 12.3
* OpenSuse 13.1
* OpenSuse factory
* Ubuntu 10.04
* Ubuntu 12.04
* Windows (32 and 64 Bit)
* Fully automatic generation of new packages within one hour after new
release of software or bugfix.
* Fully automatic continuos integration tests of new packages with all supported Linux distributions
* Windows
* New clean MINGW based windows Makefile set based on integration into OBS
* Use native libraries available in OBS for MINGW32 and MINGW64 (no more deppkgs)
* No longer based on archaic build system but state of the art and maintained OBS crosscompiling
* Automatic creation of NSI installer packages
* Supports of silent installs
* OBS uses source services to checkout current software directly from git
* see http://en.opensuse.org/openSUSE:Build_Service_private_instance_software_live_cycle
bareos-Release-14.2.6/README.scsicrypto 0000664 0000000 0000000 00000035255 12630115627 0017533 0 ustar 00root root 0000000 0000000 LTO4 and LTO5 drives and other modern tape drives
support hardware encryption.
There are several ways of using encryption with these drives
The following three types of key management are available for
doing encryption. The transmission of the keys to the volumes
is accomplished by:
- A backup application that supports Application Managed Encryption (AME)
- A tape library that supports Library Managed Encryption (LME)
- Using a Key Management Appliance (KMA).
We added support for Application Managed Encryption (AME) scheme where
on labeling a crypto key is generated for a volume and when the volume
is mounted the crypto key is loaded and when unloaded the key is cleared
from the memory of the Tape Drive using the SCSI SPOUT command set.
If you have implemented Library Managed Encryption (LME) or
a Key Management Appliance (KMA) there is no need to have support
from Bareos on loading and clearing the encryption keys as either
the Library knows the per volume encryption keys itself or it
will ask the KMA for the encryption key when it needs it. For
big installations you might consider using a KMA but the Application
Managed Encryption implemented in Bareos should also scale rather
well and has low overhead as the keys are only loaded and cleared
when needed.
How does it all work:
- the libbareos library has some new features:
- crypto_wrap.c - Implements a RFC3394 based wrapping of crypto keys
- crypto_cache.c - Implements a cache of wrapped crypto keys used when
we cannot ask the director for the key e.g. on
startup of the storage daemon.
- passphrase.c - Implements generation of semi-random passphrases
- scsi_lli.c - Implements a lowlevel interface to the tape drive for
several ioctl interfaces available on some modern UNIX
platforms. Current supported platforms are:
- Linux (SG_IO ioctl interface) (tested)
- Solaris (USCSI ioctl interface) (tested)
- FreeBSD (libcam interface)
- NetBSD (SCIOCCOMMAND ioctl interface)
- OpenBSD (SCIOCCOMMAND ioctl interface)
- scsi_crypto.c - Implements sending of SCSI Security Protocol IN (SPIN)
and SCSI Security Protocol OUT (SPOUT) pages using
the scsi_lli interface.
- A new tool named bscrypto allows you to manipulate the tape drive.
It is mostly used for Disaster Recovery (DR) purposes. The storage
daemon and the btools (bls, bextract, bscan, btape, bextract) will
use a so called storage daemon plugin to perform the setting and
clearing of the encryption keys. To bootstrap the encryption support
and for populating things like the crypto cache with encryption keys
of volumes that you want to scan you need to use the bscrypto tool.
The bscrypto tools has the following capabilities:
- Generate a new passphrase
- to be used as a so called Key Encryption Key (KEK) for
wrapping a passphrase using RFC3394 key wrapping with aes-wrap
- or -
- for usage as a clear text encryption key loaded into the tape drive.
- Base64 encode a key if requested
- Generate a wrapped passphrase which performs the following steps:
- generate a semi random clear text passphrase
- wrap the passphrase using the Key Encryption Key using RFC3394
- base64 encode the wrapped key (as the wrapped key is binary, we
always need to base64-encode it in order to be able to pass the
data as part of the director to storage daemon protocol
- show the content of a wrapped or unwrapped keyfile
This can be used to reveal the content of the passphrase when
a passphrase is stored in the database and you have the urge to
change the Key Encryption Key. Normally I would urge people to not
change their Key Encryption Key as this means that you have to redo
all your stored encryption keys as they are stored in the database
wrapped using the Key Encryption Key available in the config during
the label phase of the volume
- Clear the crypto cache on the machine running the bareos-sd which keeps
a cache of used encryption keys which can be used when the bareos-sd is
restarted without the need to connect to the bareos-dir to retrieve the
encryption keys.
- Set the encryption key of the drive
- Clear the encryption key of the drive
- Show the encryption status of the drive
- Show the encryption status of the next block (e.g. volume)
- Populate the crypto cache with data
- A new storage daemon plugin is added named scsicrypto-sd which
hooks into the "unload", "label read", "label write" and "label verified"
events for loading and clearing the key. It checks the drive if it
needs to clear it by either using a internal state if it loaded
a key before or when enabled via a special option which first issues
an encrytion status query. When there is a connection to the director
and the volume information is not available it will ask the director
for the data on the currently loaded volume. When no connection is
available a cache is used which should contain the most recently mounted
volumes. When an encryption key is available it is loaded into the
drives memory.
- The director is extended with additional code for handling
hardware data encryption. On a label of a volume the extra
keyword "encrypt" will force the director to generate a new
semi random passphrase for the volume and this passphrase
is stored in the database as part of the media information.
A passphrase is always stored in the database base64 encoded
and when a so called Key Encryption Key is set in the config
of the director the passphrase is first wrapped using RFC3394
key wrapping and then base64 encoded. By using key wrapping
the keys in the database are save against people sniffing
the info as the data is still encrypted using the Key
Encryption Key (which in essense is just an extra passphrase
of the same length as the volume passphrases used)
When the storage daemon needs to mount the volume it
will ask the director for the volume information and
that protocol is extended with the exchange of the
base64 wrapped encryption key (passphrase). The storage
daemon has an extra config option in which it records
the Key Encryption Key of the particular director and
as such can unwrap the key sended into the original
passphrase.
As can be seen from the above info we don't allow the
user to enter a passphrase but generate a semi random
passphrase using the openssl random functions (if available)
and convert that into a readable ASCII stream of letters,
numbers and most other characters other than the quotes
and space etc. This will give much stronger passphrase than
when requesting the info from a user, as we store things in
the database the user never has to enter these passphrases.
The volume label is written unencrypted to the volume so
we can always recognize a Bareos volume. When the key is
loaded onto the drive we set the decryption mode to mixed
so we can read both unencrypted and encrypted data from the
volume. When there is no key loaded or the wrong key is
loaded the drive will give an IO error when trying to
read the volume.
For disaster recovery you can store the Key Encryption Key
and the content of the wrapped encryption keys somewhere save
and the bscrypto tool together with the scsicrypto-sd plugin
can be used to get access to your volumes when you ever lose
your complete environment.
When you don't want to use the scsicrypto-sd plugin when
doing DR and you are only reading one volume you can also
set the crypto key using the bscrypto tool because we use
the mixed decryption mode you can set the right encryption
key before reading the volume label as in mixed mode you can
read both encrypted and unencrypted data from a volume.
When you need to read more then one volume you better use
the scsicrypto-sd plugin with things like bscan/bextract
as the plugin will then auto load the correct encryption
key when it loads the volume just as what the storage
daemon does when performing backups and restores.
The volume label is unencrypted so a volume can also be
recognized by a non encrypted installation but it won't be
able to read the actual data from it. Using an encrypted
volume label doesn't add much security (there is no security
related info in the volume label anyhow) and it makes it
harder to recognize either a labeled volume with encrypted
data v.s. a unlabeled new volume (both would return an
IO-error on read of the label.)
The initial setup of SCSI crypto looks something like this:
- Run configure with your normal configure options and
add the --enable-scsi-crypto option.
- Build the Bareos programs and package/install them
in the normal way.
- Generate a Key Encryption Key e.g.
bscrypto -g -
=== Security Setup ===
Some security levels need to be increased for the storage
daemon to be able to use the low level SCSI interface for
setting and getting encryption status on a tape device.
The following additional security is needed for the following
operating systems:
- Linux (SG_IO ioctl interface)
The user running the storage daemon needs the following
additional capabilities:
CAP_SYS_RAWIO (See capabilities(7))
On older kernels it can be you need CAP_SYS_ADMIN try
CAP_SYS_RAWIO first and if that doesn't work try CAP_SYS_ADMIN
When you are running the storage daemon as an other user
then root (which has the CAP_SYS_RAWIO capability) you
need to add it to the current set of capabilities.
When you are using systemd you could add this additional
capability to the CapabilityBoundingSet parameter.
For systemd add to the bareos-sd.service the following:
Capabilities=cap_sys_rawio+ep
You can also setup the extra capability on bscrypto and
bareos-sd by running the following cmd:
# setcap cap_sys_rawio=ep bscrypto
# setcap cap_sys_rawio=ep bareos-sd
Check the setting with
# getcap -v bscrypto
# getcap -v bareos-sd
getcap and setcap are part of libcap-progs which may not be
installed on your system.
- Solaris (USCSI ioctl interface)
The user running the storage daemon needs the following
additional privileges:
PRIV_SYS_DEVICES (See privileges(5))
When you are running the storage daemon as an other user
then root (which has the PRIV_SYS_DEVICES privilege) you
need to add it to the current set of privileges.
This can be setup by setting this either as a project for
the user or as a extra privileges in the SMF definition
starting the storage daemon. The SMF setup is the cleanest.
For SMF make sure you have something like this in the instance
block.
=== Changes in bareos-sd.conf ===
- Put the Key Encryption Key into the bareos-sd.conf
under the director entry in that config for the specific
director you are creating the config for. e.g.
Key Encryption Key = ""
- Enable the loading of storage daemon plugins by
setting the plugin dir in the bareos-sd.conf e.g.
Plugin Directory =
- Enable the SCSI encryption option in the device configuration
section of the drive in the bareos-sd.conf. e.g.
Drive Crypto Enabled = Yes
- When you want the plugin to probe the drive for its encryption
status if it needs to clear a pending key enable the Query
Crypto Status option in the device configuration section of the
drive in the bareos-sd.conf e.g.
Query Crypto Status = Yes
=== Changes in bareos-dir.conf ===
- Put the Key Encryption Key into the bareos-dir.conf under
the director config item named Key Encryption Key e.g.
Key Encryption Key = ""
- restart sd and dir
- Label a volume with the encrypt option e.g.
label slots=1-5 barcodes encrypt
For Disaster Recovery (DR) you need the following information:
- Actual bareos-sd.conf with config options enabled as described
above, including things like a definition of a director with
the Key Encryption Key used for creating the encryption keys
of the volumes.
- The actual keys used for encryption of the volumes.
This data needs to be availabe as a so called crypto cache
file which is used by the plugin when no connection to the
director can be made to do a lookup (most likely on DR).
Most of the times the needed information e.g. bootstrap info
is available on recently written volumes and most of the
time the encryption cache will contain the most recent data
so a recent copy of the bareos-sd..cryptoc file in
the workingdir is most of the time enough. You can also save
the info from database in a save place and use bscrypto to
populate this info (VolumeNameEncryptKey) into the crypto
cache file used by bextract and bscan. You can use bscrypto
with the following flags to create a new or update an existing
crypto cache file e.g. :
# bscrypto -p /var/lib/bareos/bareos-sd..cryptoc
- A valid BSR file with the location of the last save of the
database makes recovery much easier. Adding a post script
to the database save job could collect the needed info and
make sure its stored somewhere safe.
- Recover the database in the normal way e.g. for postgresql:
# bextract -D -c bareos-sd.conf -V \
/dev/nst0 /tmp -b bootstrap.bsr
# /usr/lib64/bareos/create_bareos_database
# /usr/lib64/bareos/grant_bareos_privileges
# psql bareos < /tmp/var/lib/bareos/bareos.sql
Or something similar (change paths to follow where you
installed the software or where the package put it.)
NOTE: As described at the beginning of this README there are different
types of key management:
- A backup application that supports Application Managed Encryption (AME)
- A tape library that supports Library Managed Encryption (LME)
- Using a Key Management Appliance (KMA).
If the Library is setup for LME or KMA it probably won't allow our AME setup
and the scsi-crypto plugin will fail to set/clear the encryption key. To be
able to use AME you need to "Modify Encryption Method" and set it to something
like "Application Managed". If you decide to use LME or KMA you don't have to
bother with the whole setup of AME which may for big libraries be easier, although
the overhead of using AME even for very big libraries should be minimal.
bareos-Release-14.2.6/autoconf/ 0000775 0000000 0000000 00000000000 12630115627 0016256 5 ustar 00root root 0000000 0000000 bareos-Release-14.2.6/autoconf/Make.common.in 0000664 0000000 0000000 00000005445 12630115627 0020762 0 ustar 00root root 0000000 0000000 #
# This file is pulled in by all the Unix Bareos Makefiles
# so it has all the "common" definitions
#
DATE="@DATE@"
LSMDATE=@LSMDATE@
VERSION=@VERSION@
VERNAME=bareos-$(VERSION)#
MAINT=Bareos Gatekeeper#
MAINTEMAIL=#
WEBMAINT=#
WEBMAINTEMAIL=#
WEBPAGE=http://bareos.org#
FTPSITENAME=#
FTPSITEDIR=#
#-------------------------------------------------------------------------
SHELL = /bin/sh
# Installation target directories & other installation stuff
prefix = @prefix@
exec_prefix = @exec_prefix@
binprefix =
manprefix =
datarootdir = @datarootdir@
docdir = @docdir@
bindir = @bindir@
sbindir = @sbindir@
libdir = @libdir@
logdir = @logdir@
includedir = @includedir@
sysconfdir = @sysconfdir@
backenddir = @backenddir@
plugindir = @plugindir@
scriptdir = @scriptdir@
archivedir = @archivedir@
mandir = @mandir@
manext = 8
NO_ECHO = @
# Tools & program stuff
CC = @CC@
CPP = @CPP@
CXX = @CXX@
MV = @MV@
RM = @REMOVE@
RMF = $(RM) -f
CP = @CP@
LN_S = @LN_S@
SYMLINK = $(LN_S) -f
SED = @SED@
AWK = @AWK@
ECHOCMD = @ECHOCMD@
CMP = @CMP@
TBL = @TBL@
AR = @AR@
GMAKE = @GMAKE@
RANLIB = @RANLIB@
MKDIR = @BUILD_DIR@/autoconf/mkinstalldirs
INSTALL = @INSTALL@
# add the -s to the following in PRODUCTION mode
INSTALL_PROGRAM = $(INSTALL) -m @SBINPERM@
INSTALL_LIB = $(INSTALL) -m 755
INSTALL_DATA = $(INSTALL) -m 644
INSTALL_SCRIPT = $(INSTALL) -m @SBINPERM@
INSTALL_CONFIG = $(INSTALL) -m 640
#
# Libtool specific settings
#
DEFAULT_OBJECT_TYPE = @DEFAULT_OBJECT_TYPE@
DEFAULT_ARCHIVE_TYPE = @DEFAULT_ARCHIVE_TYPE@
DEFAULT_SHARED_OBJECT_TYPE = @DEFAULT_SHARED_OBJECT_TYPE@
LIBTOOL = @BUILD_DIR@/libtool
LIBTOOL_TAG = CXX
LIBTOOL_COMPILE = @LIBTOOL@ --silent --tag=$(LIBTOOL_TAG) --mode=compile
LIBTOOL_LINK = @LIBTOOL@ --silent --tag=$(LIBTOOL_TAG) --mode=link
LIBTOOL_INSTALL = @LIBTOOL@ --silent --tag=$(LIBTOOL_TAG) --mode=install
LIBTOOL_INSTALL_FINISH = @LIBTOOL@ --silent --tag=$(LIBTOOL_TAG) --finish --mode=install
LIBTOOL_UNINSTALL = @LIBTOOL@ --silent --tag=$(LIBTOOL_TAG) --mode=uninstall
LIBTOOL_CLEAN = @LIBTOOL@ --silent --tag=$(LIBTOOL_TAG) --mode=clean
# Flags & libs
CFLAGS = @CFLAGS@
CXXFLAGS = @CXXFLAGS@
CPPFLAGS = @CPPFLAGS@
LDFLAGS = @LDFLAGS@
TTOOL_LDFLAGS = @TTOOL_LDFLAGS@
#DEFS = @DEFS@ @LOCAL_DEFS@
LIBS = @LIBS@
WRAPLIBS = @WRAPLIBS@
DINCLUDE = @DINCLUDE@
DLIB = @DLIB@
PYTHON_LIBS = @PYTHON_LIBS@
OPENSSL_INCLUDES = @OPENSSL_INC@
OPENSSL_LIBS = @OPENSSL_LIBS@
GNUTLS_INCLUDES = @GNUTLS_INC@
GNUTLS_LIBS = @GNUTLS_LIBS@
DLLIBS = @LIBADD_DLOPEN@
# Windows (cygwin) flags
WCFLAGS = @WCFLAGS@
WLDFLAGS = @WLDFLAGS@
# X Include directory
#XINC = @X_CFLAGS@ @XPM_CFLAGS@
# extra libraries needed by X on some systems, X library location
#XLIB = @X_LIBS@ @XPM_LIBS@ -lX11 @X_EXTRA_LIBS@
# End of common section of the Makefile
#-------------------------------------------------------------------------
bareos-Release-14.2.6/autoconf/aclocal.m4 0000664 0000000 0000000 00000003464 12630115627 0020125 0 ustar 00root root 0000000 0000000 # generated automatically by aclocal 1.9.6 -*- Autoconf -*-
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
# 2005 Free Software Foundation, Inc.
# This file 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.
m4_include([libtool/libtool.m4])
m4_include([libtool/ltoptions.m4])
m4_include([libtool/ltsugar.m4])
m4_include([libtool/ltversion.m4])
m4_include([libtool/lt~obsolete.m4])
m4_include([libtool/ltdl.m4])
m4_include([gettext/codeset.m4])
m4_include([gettext/gettext.m4])
m4_include([gettext/glibc2.m4])
m4_include([gettext/glibc21.m4])
m4_include([gettext/iconv.m4])
m4_include([gettext/intdiv0.m4])
m4_include([gettext/intmax.m4])
m4_include([gettext/inttypes-pri.m4])
m4_include([gettext/inttypes.m4])
m4_include([gettext/inttypes_h.m4])
m4_include([gettext/isc-posix.m4])
m4_include([gettext/lcmessage.m4])
m4_include([gettext/lib-ld.m4])
m4_include([gettext/lib-link.m4])
m4_include([gettext/lib-prefix.m4])
m4_include([gettext/longdouble.m4])
m4_include([gettext/longlong.m4])
m4_include([gettext/nls.m4])
m4_include([gettext/po.m4])
m4_include([gettext/printf-posix.m4])
m4_include([gettext/progtest.m4])
m4_include([gettext/signed.m4])
m4_include([gettext/size_max.m4])
m4_include([gettext/stdint_h.m4])
m4_include([gettext/uintmax_t.m4])
m4_include([gettext/ulonglong.m4])
m4_include([gettext/wchar_t.m4])
m4_include([gettext/wint_t.m4])
m4_include([gettext/xsize.m4])
m4_include([bareos/db.m4])
m4_include([bareos/largefiles.m4])
m4_include([bareos/os.m4])
bareos-Release-14.2.6/autoconf/bareos/ 0000775 0000000 0000000 00000000000 12630115627 0017531 5 ustar 00root root 0000000 0000000 bareos-Release-14.2.6/autoconf/bareos/compare-version.m4 0000664 0000000 0000000 00000007303 12630115627 0023107 0 ustar 00root root 0000000 0000000 dnl # Copyright © 2008 Tim Toolan
dnl #
dnl # Copying and distribution of this file, with or without modification,
dnl # are permitted in any medium without royalty provided the copyright notice
dnl # and this notice are preserved.
dnl #########################################################################
AC_DEFUN([AX_COMPARE_VERSION], [
AC_PROG_AWK
# Used to indicate true or false condition
ax_compare_version=false
# Convert the two version strings to be compared into a format that
# allows a simple string comparison. The end result is that a version
# string of the form 1.12.5-r617 will be converted to the form
# 0001001200050617. In other words, each number is zero padded to four
# digits, and non digits are removed.
AS_VAR_PUSHDEF([A],[ax_compare_version_A])
A=`echo "$1" | sed -e 's/\([[0-9]]*\)/Z\1Z/g' \
-e 's/Z\([[0-9]]\)Z/Z0\1Z/g' \
-e 's/Z\([[0-9]][[0-9]]\)Z/Z0\1Z/g' \
-e 's/Z\([[0-9]][[0-9]][[0-9]]\)Z/Z0\1Z/g' \
-e 's/[[^0-9]]//g'`
AS_VAR_PUSHDEF([B],[ax_compare_version_B])
B=`echo "$3" | sed -e 's/\([[0-9]]*\)/Z\1Z/g' \
-e 's/Z\([[0-9]]\)Z/Z0\1Z/g' \
-e 's/Z\([[0-9]][[0-9]]\)Z/Z0\1Z/g' \
-e 's/Z\([[0-9]][[0-9]][[0-9]]\)Z/Z0\1Z/g' \
-e 's/[[^0-9]]//g'`
dnl # In the case of le, ge, lt, and gt, the strings are sorted as necessary
dnl # then the first line is used to determine if the condition is true.
dnl # The sed right after the echo is to remove any indented white space.
m4_case(m4_tolower($2),
[lt],[
ax_compare_version=`echo "x$A
x$B" | sed 's/^ *//' | sort -r | sed "s/x${A}/false/;s/x${B}/true/;1q"`
],
[gt],[
ax_compare_version=`echo "x$A
x$B" | sed 's/^ *//' | sort | sed "s/x${A}/false/;s/x${B}/true/;1q"`
],
[le],[
ax_compare_version=`echo "x$A
x$B" | sed 's/^ *//' | sort | sed "s/x${A}/true/;s/x${B}/false/;1q"`
],
[ge],[
ax_compare_version=`echo "x$A
x$B" | sed 's/^ *//' | sort -r | sed "s/x${A}/true/;s/x${B}/false/;1q"`
],[
dnl Split the operator from the subversion count if present.
m4_bmatch(m4_substr($2,2),
[0],[
# A count of zero means use the length of the shorter version.
# Determine the number of characters in A and B.
ax_compare_version_len_A=`echo "$A" | $AWK '{print(length)}'`
ax_compare_version_len_B=`echo "$B" | $AWK '{print(length)}'`
# Set A to no more than B's length and B to no more than A's length.
A=`echo "$A" | sed "s/\(.\{$ax_compare_version_len_B\}\).*/\1/"`
B=`echo "$B" | sed "s/\(.\{$ax_compare_version_len_A\}\).*/\1/"`
],
[[0-9]+],[
# A count greater than zero means use only that many subversions
A=`echo "$A" | sed "s/\(\([[0-9]]\{4\}\)\{m4_substr($2,2)\}\).*/\1/"`
B=`echo "$B" | sed "s/\(\([[0-9]]\{4\}\)\{m4_substr($2,2)\}\).*/\1/"`
],
[.+],[
AC_WARNING(
[illegal OP numeric parameter: $2])
],[])
# Pad zeros at end of numbers to make same length.
ax_compare_version_tmp_A="$A`echo $B | sed 's/./0/g'`"
B="$B`echo $A | sed 's/./0/g'`"
A="$ax_compare_version_tmp_A"
# Check for equality or inequality as necessary.
m4_case(m4_tolower(m4_substr($2,0,2)),
[eq],[
test "x$A" = "x$B" && ax_compare_version=true
],
[ne],[
test "x$A" != "x$B" && ax_compare_version=true
],[
AC_WARNING([illegal OP parameter: $2])
])
])
AS_VAR_POPDEF([A])dnl
AS_VAR_POPDEF([B])dnl
dnl # Execute ACTION-IF-TRUE / ACTION-IF-FALSE.
if test "$ax_compare_version" = "true" ; then
m4_ifvaln([$4],[$4],[:])dnl
m4_ifvaln([$5],[else $5])dnl
fi
]) dnl AX_COMPARE_VERSION
bareos-Release-14.2.6/autoconf/bareos/db.m4 0000664 0000000 0000000 00000112412 12630115627 0020361 0 ustar 00root root 0000000 0000000 AC_DEFUN([BA_CHECK_DBI_DB],
[
AC_MSG_CHECKING(for DBI support)
AC_ARG_WITH(dbi,
AC_HELP_STRING([--with-dbi@<:@=DIR@:>@], [Include DBI support. DIR is the DBD base install directory, default is to search through a number of common places for the DBI files.]),
[
if test "$withval" != "no"; then
if test "$withval" = "yes"; then
if test -f /usr/local/include/dbi/dbi.h; then
DBI_INCDIR=/usr/local/dbi/include
if test -d /usr/local/lib64; then
DBI_LIBDIR=/usr/local/lib64
else
DBI_LIBDIR=/usr/local/lib
fi
DBI_BINDIR=/usr/local/bin
elif test -f /usr/include/dbi/dbi.h; then
DBI_INCDIR=/usr/include
if test -d /usr/lib64; then
DBI_LIBDIR=/usr/lib64
else
DBI_LIBDIR=/usr/lib
fi
DBI_BINDIR=/usr/bin
elif test -f $prefix/include/dbi/dbi.h; then
DBI_INCDIR=$prefix/include
if test -d $prefix/lib64; then
DBI_LIBDIR=$prefix/lib64
else
DBI_LIBDIR=$prefix/lib
fi
DBI_BINDIR=$prefix/bin
else
AC_MSG_RESULT(no)
AC_MSG_ERROR(Unable to find dbi.h in standard locations)
fi
if test -d /usr/local/lib/dbd; then
DRIVERDIR=/usr/local/lib/dbd
if test -d /usr/local/lib64/dbd; then
DRIVERDIR=/usr/local/lib64/dbd
else
DRIVERDIR=/usr/local/lib/dbd
fi
elif test -d /usr/lib/dbd; then
DRIVERDIR=/usr/lib/dbd
if test -d /usr/lib64/dbd; then
DRIVERDIR=/usr/lib64/dbd
else
DRIVERDIR=/usr/lib/dbd
fi
elif test -d $prefix/lib/dbd; then
if test -d $prefix/lib64/dbd; then
DRIVERDIR=$prefix/lib64/dbd
else
DRIVERDIR=$prefix/lib/dbd
fi
elif test -d /usr/local/lib64/dbd; then
DRIVERDIR=/usr/local/lib64/dbd
elif test -d /usr/lib64/dbd; then
DRIVERDIR=/usr/lib64/dbd
elif test -d $prefix/lib64/dbd; then
DRIVERDIR=$prefix/lib64/dbd
else
AC_MSG_RESULT(no)
AC_MSG_ERROR(Unable to find DBD drivers in standard locations)
fi
else
if test -f $withval/dbi.h; then
DBI_INCDIR=$withval
DBI_LIBDIR=$withval
DBI_BINDIR=$withval
elif test -f $withval/include/dbi/dbi.h; then
DBI_INCDIR=$withval/include
if test -d $withval/lib64; then
DBI_LIBDIR=$withval/lib64
else
DBI_LIBDIR=$withval/lib
fi
DBI_BINDIR=$withval/bin
else
AC_MSG_RESULT(no)
AC_MSG_ERROR(Invalid DBI directory $withval - unable to find dbi.h under $withval)
fi
if test -d $withval/dbd; then
DRIVERDIR=$withval/dbd
elif test -d $withval/lib/; then
if test -d $withval/lib64/dbd; then
DRIVERDIR=$withval/lib64/dbd
else
DRIVERDIR=$withval/lib/dbd
fi
elif test -d $withval/lib64/dbd; then
DRIVERDIR=$withval/lib64/dbd
else
AC_MSG_RESULT(no)
AC_MSG_ERROR(Invalid DBD driver directory $withval - unable to find DBD drivers under $withval)
fi
fi
if test x$DBI_LIBDIR != x; then
DBI_INCLUDE=-I$DBI_INCDIR
if test x$use_libtool != xno; then
DBI_LIBS="-R $DBI_LIBDIR -L$DBI_LIBDIR -ldbi"
else
DBI_LIBS="-L$DBI_LIBDIR -ldbi"
fi
DBI_LIB=$DBI_LIBDIR/libdbi.a
DBI_DBD_DRIVERDIR="-D DBI_DRIVER_DIR=\\\"$DRIVERDIR\\\""
DB_LIBS="${DB_LIBS} ${DBI_LIBS}"
AC_DEFINE(HAVE_DBI, 1, [Set if you have the DBI driver])
AC_MSG_RESULT(yes)
if test -z "${db_backends}"; then
db_backends="DBI"
else
db_backends="${db_backends} DBI"
fi
if test -z "${DB_BACKENDS}" ; then
DB_BACKENDS="dbi"
else
DB_BACKENDS="${DB_BACKENDS} dbi"
fi
uncomment_dbi=" "
dnl -------------------------------------------
dnl Push the DB_PROG onto the stack of supported database backends for DBI
dnl -------------------------------------------
DB_BACKENDS="${DB_BACKENDS} ${DB_PROG}"
dnl -------------------------------------------
dnl Check if dbi supports batch mode
dnl -------------------------------------------
if test "x$support_batch_insert" = "xyes"; then
if test $DB_PROG = postgresql; then
AC_CHECK_LIB(pq, PQisthreadsafe, AC_DEFINE(HAVE_PQISTHREADSAFE, 1, [Define to 1 if you have the `PQisthreadsafe' function.]))
AC_CHECK_LIB(pq, PQputCopyData, AC_DEFINE(HAVE_PQ_COPY, 1, [Define to 1 if you have the `PQputCopyData' function.]))
test "x$ac_cv_lib_pq_PQputCopyData" = "xyes"
pkg=$?
if test $pkg = 0; then
AC_DEFINE(HAVE_POSTGRESQL_BATCH_FILE_INSERT, 1, [Define to 1 if PostgreSQL DB batch insert code enabled])
fi
fi
fi
fi
else
AC_MSG_RESULT(no)
fi
],[
AC_MSG_RESULT(no)
])
AC_SUBST(DBI_LIBS)
AC_SUBST(DBI_INCLUDE)
AC_SUBST(DBI_BINDIR)
AC_SUBST(DBI_DBD_DRIVERDIR)
])
AC_DEFUN([BA_CHECK_DBI_DRIVER],
[
db_prog=no
AC_MSG_CHECKING(for DBI drivers support)
AC_ARG_WITH(dbi-driver,
AC_HELP_STRING([--with-dbi-driver@<:@=DRIVER@:>@], [Suport for DBI driver. DRIVER is the one DBI driver like Mysql, Postgresql, others. Default is to not configure any driver.]),
[
if test "$withval" != "no"; then
case $withval in
"mysql")
db_prog="mysql"
MYSQL_CONFIG=`which mysql_config 2>/dev/null`
if test "x${MYSQL_CONFIG}" != x; then
MYSQL_BINDIR="${MYSQL_CONFIG%/*}"
${MYSQL_CONFIG} --variable=pkglibdir > /dev/null 2>&1
if test $? = 0 ; then
MYSQL_LIBDIR=`${MYSQL_CONFIG} --variable=pkglibdir`
MYSQL_INCDIR=`${MYSQL_CONFIG} --variable=pkgincludedir`
else
MYSQL_LIBDIR=`${MYSQL_CONFIG} --libs | sed -e 's/.*-L//' -e 's/ .*//'`
MYSQL_INCDIR=`${MYSQL_CONFIG} --include | sed -e 's/-I//'`
fi
fi
#
# See if the mysql_config gave something that is worth anything.
# Some OS-es just lie about this when you ask for the library to use
# they just give you back the directory its not in.
#
# Fallback to the old way of finding the right settings to use and hope for the best.
#
if test x${MYSQL_LIBDIR} = x -o \
! \( -f ${MYSQL_LIBDIR}/libmysqlclient_r.so -o \
-f ${MYSQL_LIBDIR}/libmysqlclient_r.a \); then
if test -f /usr/local/mysql/bin/mysql; then
MYSQL_BINDIR=/usr/local/mysql/bin
if test -f /usr/local/mysql/lib64/mysql/libmysqlclient_r.a \
-o -f /usr/local/mysql/lib64/mysql/libmysqlclient_r.so; then
MYSQL_LIBDIR=/usr/local/mysql/lib64/mysql
else
MYSQL_LIBDIR=/usr/local/mysql/lib/mysql
fi
elif test -f /usr/bin/mysql; then
MYSQL_BINDIR=/usr/bin
if test -f /usr/lib64/mysql/libmysqlclient_r.a \
-o -f /usr/lib64/mysql/libmysqlclient_r.so; then
MYSQL_LIBDIR=/usr/lib64/mysql
elif test -f /usr/lib/mysql/libmysqlclient_r.a \
-o -f /usr/lib/mysql/libmysqlclient_r.so; then
MYSQL_LIBDIR=/usr/lib/mysql
else
MYSQL_LIBDIR=/usr/lib
fi
elif test -f /usr/local/bin/mysql; then
MYSQL_BINDIR=/usr/local/bin
if test -f /usr/local/lib64/mysql/libmysqlclient_r.a \
-o -f /usr/local/lib64/mysql/libmysqlclient_r.so; then
MYSQL_LIBDIR=/usr/local/lib64/mysql
elif test -f /usr/local/lib/mysql/libmysqlclient_r.a \
-o -f /usr/local/lib/mysql/libmysqlclient_r.so; then
MYSQL_LIBDIR=/usr/local/lib/mysql
else
MYSQL_LIBDIR=/usr/local/lib
fi
elif test -f $withval/bin/mysql; then
MYSQL_BINDIR=$withval/bin
if test -f $withval/lib64/mysql/libmysqlclient_r.a \
-o -f $withval/lib64/mysql/libmysqlclient_r.so; then
MYSQL_LIBDIR=$withval/lib64/mysql
elif test -f $withval/lib64/libmysqlclient_r.a \
-o -f $withval/lib64/libmysqlclient_r.so; then
MYSQL_LIBDIR=$withval/lib64
elif test -f $withval/lib/libmysqlclient_r.a \
-o -f $withval/lib/libmysqlclient_r.so; then
MYSQL_LIBDIR=$withval/lib/
else
MYSQL_LIBDIR=$withval/lib/mysql
fi
else
AC_MSG_RESULT(no)
AC_MSG_ERROR(Unable to find mysql in standard locations)
fi
fi
if test -f $MYSQL_LIBDIR/libmysqlclient_r.so; then
DB_PROG_LIB=$MYSQL_LIBDIR/libmysqlclient_r.so
else
DB_PROG_LIB=$MYSQL_LIBDIR/libmysqlclient_r.a
fi
;;
"postgresql")
db_prog="postgresql"
PG_CONFIG=`which pg_config 2>/dev/null`
if test -n "$PG_CONFIG"; then
POSTGRESQL_BINDIR=`"$PG_CONFIG" --bindir`
POSTGRESQL_LIBDIR=`"$PG_CONFIG" --libdir`
fi
#
# See if the pg_config gave something that is worth anything.
#
if test x${POSTGRESQL_LIBDIR} = x -o \
! \( -f ${POSTGRESQL_LIBDIR}/libpq.so -o \
-f ${POSTGRESQL_LIBDIR}/libpq.a \); then
if test -f /usr/local/bin/psql; then
POSTGRESQL_BINDIR=/usr/local/bin
if test -d /usr/local/lib64; then
POSTGRESQL_LIBDIR=/usr/local/lib64
else
POSTGRESQL_LIBDIR=/usr/local/lib
fi
elif test -f /usr/bin/psql; then
POSTGRESQL_BINDIR=/usr/local/bin
if test -d /usr/lib64/postgresql; then
POSTGRESQL_LIBDIR=/usr/lib64/postgresql
elif test -d /usr/lib/postgresql; then
POSTGRESQL_LIBDIR=/usr/lib/postgresql
elif test -d /usr/lib64; then
POSTGRESQL_LIBDIR=/usr/lib64
else
POSTGRESQL_LIBDIR=/usr/lib
fi
elif test -f $withval/bin/psql; then
POSTGRESQL_BINDIR=$withval/bin
if test -d $withval/lib64; then
POSTGRESQL_LIBDIR=$withval/lib64
else
POSTGRESQL_LIBDIR=$withval/lib
fi
else
AC_MSG_RESULT(no)
AC_MSG_ERROR(Unable to find psql in standard locations)
fi
fi
if test -f $POSTGRESQL_LIBDIR/libpq.so; then
DB_PROG_LIB=$POSTGRESQL_LIBDIR/libpq.so
else
DB_PROG_LIB=$POSTGRESQL_LIBDIR/libpq.a
fi
;;
"sqlite3")
db_prog="sqlite3"
if test -f /usr/local/bin/sqlite3; then
SQLITE_BINDIR=/usr/local/bin
if test -d /usr/local/lib64; then
SQLITE_LIBDIR=/usr/local/lib64
else
SQLITE_LIBDIR=/usr/local/lib
fi
elif test -f /usr/bin/sqlite3; then
SQLITE_BINDIR=/usr/bin
if test -d /usr/lib64; then
SQLITE_LIBDIR=/usr/lib64
else
SQLITE_LIBDIR=/usr/lib
fi
elif test -f $withval/bin/sqlite3; then
SQLITE_BINDIR=$withval/bin
if test -d $withval/lib64; then
SQLITE_LIBDIR=$withval/lib64
else
SQLITE_LIBDIR=$withval/lib
fi
else
AC_MSG_RESULT(no)
AC_MSG_ERROR(Unable to find sqlite in standard locations)
fi
if test -f $SQLITE_LIBDIR/libsqlite3.so; then
DB_PROG_LIB=$SQLITE_LIBDIR/libsqlite3.so
else
DB_PROG_LIB=$SQLITE_LIBDIR/libsqlite3.a
fi
;;
*)
AC_MSG_RESULT(no)
AC_MSG_ERROR(Unable to set DBI driver. $withval is not supported)
;;
esac
AC_MSG_RESULT(yes)
DB_PROG=$db_prog
else
AC_MSG_RESULT(no)
fi
],[
AC_MSG_RESULT(no)
])
AC_SUBST(MYSQL_BINDIR)
AC_SUBST(POSTGRESQL_BINDIR)
AC_SUBST(SQLITE_BINDIR)
AC_SUBST(DB_PROG)
AC_SUBST(DB_PROG_LIB)
])
AC_DEFUN([BA_CHECK_MYSQL_DB],
[
AC_MSG_CHECKING(for MySQL support)
AC_ARG_WITH(mysql,
AC_HELP_STRING([--with-mysql@<:@=DIR@:>@], [Include MySQL support. DIR is the MySQL base install directory, default is to search through a number of common places for the MySQL files.]),
[
if test "$withval" != "no"; then
if test "$withval" = "yes"; then
MYSQL_CONFIG=`which mysql_config 2>/dev/null`
if test "x${MYSQL_CONFIG}" != x; then
MYSQL_BINDIR="${MYSQL_CONFIG%/*}"
${MYSQL_CONFIG} --variable=pkglibdir > /dev/null 2>&1
if test $? = 0 ; then
MYSQL_LIBDIR=`${MYSQL_CONFIG} --variable=pkglibdir`
MYSQL_INCDIR=`${MYSQL_CONFIG} --variable=pkgincludedir`
else
MYSQL_LIBDIR=`${MYSQL_CONFIG} --libs | sed -e 's/.*-L//' -e 's/ .*//'`
MYSQL_INCDIR=`${MYSQL_CONFIG} --include | sed -e 's/-I//'`
fi
fi
#
# See if the mysql_config gave something that is worth anything.
# Some OS-es just lie about this when you ask for the library to use
# they just give you back the directory its not in.
#
# Fallback to the old way of finding the right settings to use and hope for the best.
#
if test x${MYSQL_LIBDIR} = x -o \
! \( -f ${MYSQL_LIBDIR}/libmysqlclient_r.so -o \
-f ${MYSQL_LIBDIR}/libmysqlclient_r.a \); then
if test -f /usr/local/mysql/include/mysql/mysql.h; then
MYSQL_INCDIR=/usr/local/mysql/include/mysql
if test -f /usr/local/mysql/lib64/mysql/libmysqlclient_r.a \
-o -f /usr/local/mysql/lib64/mysql/libmysqlclient_r.so; then
MYSQL_LIBDIR=/usr/local/mysql/lib64/mysql
else
MYSQL_LIBDIR=/usr/local/mysql/lib/mysql
fi
MYSQL_BINDIR=/usr/local/mysql/bin
elif test -f /usr/include/mysql/mysql.h; then
MYSQL_INCDIR=/usr/include/mysql
if test -f /usr/lib64/mysql/libmysqlclient_r.a \
-o -f /usr/lib64/mysql/libmysqlclient_r.so; then
MYSQL_LIBDIR=/usr/lib64/mysql
elif test -f /usr/lib64/libmysqlclient_r.a \
-o -f /usr/lib64/libmysqlclient_r.so; then
MYSQL_LIBDIR=/usr/lib64
elif test -f /usr/lib/x86_64-linux-gnu/libmysqlclient_r.a \
-o -f /usr/lib/x86_64-linux-gnu/libmysqlclient_r.so; then
MYSQL_LIBDIR=/usr/lib/x86_64-linux-gnu
elif test -f /usr/lib/mysql/libmysqlclient_r.a \
-o -f /usr/lib/mysql/libmysqlclient_r.so; then
MYSQL_LIBDIR=/usr/lib/mysql
else
MYSQL_LIBDIR=/usr/lib
fi
MYSQL_BINDIR=/usr/bin
elif test -f /usr/include/mysql.h; then
MYSQL_INCDIR=/usr/include
if test -f /usr/lib64/libmysqlclient_r.a \
-o -f /usr/lib64/libmysqlclient_r.so; then
MYSQL_LIBDIR=/usr/lib64
else
MYSQL_LIBDIR=/usr/lib
fi
MYSQL_BINDIR=/usr/bin
elif test -f /usr/local/include/mysql/mysql.h; then
MYSQL_INCDIR=/usr/local/include/mysql
if test -f /usr/local/lib64/mysql/libmysqlclient_r.a \
-o -f /usr/local/lib64/mysql/libmysqlclient_r.so; then
MYSQL_LIBDIR=/usr/local/lib64/mysql
else
MYSQL_LIBDIR=/usr/local/lib/mysql
fi
MYSQL_BINDIR=/usr/local/bin
elif test -f /usr/local/include/mysql.h; then
MYSQL_INCDIR=/usr/local/include
if test -f /usr/local/lib64/libmysqlclient_r.a \
-o -f /usr/local/lib64/libmysqlclient_r.so; then
MYSQL_LIBDIR=/usr/local/lib64
else
MYSQL_LIBDIR=/usr/local/lib
fi
MYSQL_BINDIR=/usr/local/bin
else
AC_MSG_RESULT(no)
AC_MSG_ERROR(Unable to find mysql.h in standard locations)
fi
fi
else
if test -f $withval/include/mysql/mysql.h; then
MYSQL_INCDIR=$withval/include/mysql
if test -f $withval/lib64/mysql/libmysqlclient_r.a \
-o -f $withval/lib64/mysql/libmysqlclient_r.so; then
MYSQL_LIBDIR=$withval/lib64/mysql
elif test -f $withval/lib64/libmysqlclient_r.a \
-o -f $withval/lib64/libmysqlclient_r.so; then
MYSQL_LIBDIR=$withval/lib64
elif test -f $withval/lib/libmysqlclient_r.a \
-o -f $withval/lib/libmysqlclient_r.so; then
MYSQL_LIBDIR=$withval/lib
else
MYSQL_LIBDIR=$withval/lib/mysql
fi
MYSQL_BINDIR=$withval/bin
elif test -f $withval/include/mysql.h; then
MYSQL_INCDIR=$withval/include
if test -f $withval/lib64/libmysqlclient_r.a \
-o -f $withval/lib64/libmysqlclient_r.so; then
MYSQL_LIBDIR=$withval/lib64
else
MYSQL_LIBDIR=$withval/lib
fi
MYSQL_BINDIR=$withval/bin
else
AC_MSG_RESULT(no)
AC_MSG_ERROR(Invalid MySQL directory $withval - unable to find mysql.h under $withval)
fi
fi
if test x${MYSQL_LIBDIR} != x; then
MYSQL_INCLUDE=-I$MYSQL_INCDIR
if test -f $MYSQL_LIBDIR/libmysqlclient_r.a \
-o -f $MYSQL_LIBDIR/libmysqlclient_r.so; then
if test x$use_libtool != xno; then
MYSQL_LIBS="-R $MYSQL_LIBDIR -L$MYSQL_LIBDIR -lmysqlclient_r -lz"
else
MYSQL_LIBS="-L$MYSQL_LIBDIR -lmysqlclient_r -lz"
fi
DB_LIBS="${DB_LIBS} ${MYSQL_LIBS}"
fi
MYSQL_LIB=$MYSQL_LIBDIR/libmysqlclient_r.a
AC_DEFINE(HAVE_MYSQL, 1, [Set if you have an MySQL Database])
AC_MSG_RESULT(yes)
if test -z "${db_backends}" ; then
db_backends="MySQL"
else
db_backends="${db_backends} MySQL"
fi
if test -z "${DB_BACKENDS}" ; then
DB_BACKENDS="mysql"
else
DB_BACKENDS="${DB_BACKENDS} mysql"
fi
dnl -------------------------------------------
dnl Check if mysql supports batch mode
dnl -------------------------------------------
if test "x$support_batch_insert" = "xyes"; then
dnl For mysql checking
saved_LDFLAGS="${LDFLAGS}"
LDFLAGS="${saved_LDFLAGS} -L$MYSQL_LIBDIR"
saved_LIBS="${LIBS}"
LIBS="${saved_LIBS} -lz"
AC_CHECK_LIB(mysqlclient_r, mysql_thread_safe, AC_DEFINE(HAVE_MYSQL_THREAD_SAFE, 1, [Define to 1 if you have the `mysql_thread_safe' function.]))
if test "x$ac_cv_lib_mysqlclient_r_mysql_thread_safe" = "xyes"; then
if test -z "${batch_insert_db_backends}"; then
batch_insert_db_backends="MySQL"
else
batch_insert_db_backends="${batch_insert_db_backends} MySQL"
fi
fi
dnl Revert after mysql checks
LDFLAGS="${saved_LDFLAGS}"
LIBS="${saved_LIBS}"
fi
else
AC_MSG_RESULT(no)
fi
fi
],[
AC_MSG_RESULT(no)
])
AC_MSG_CHECKING(for MySQL embedded support)
AC_ARG_WITH(embedded-mysql,
AC_HELP_STRING([--with-embedded-mysql@<:@=DIR@:>@], [Include MySQL support. DIR is the MySQL base install directory, default is to search through a number of common places for the MySQL files.]),
[
if test "$withval" != "no"; then
if test "$withval" = "yes"; then
if test -f /usr/local/mysql/include/mysql/mysql.h; then
MYSQL_INCDIR=/usr/local/mysql/include/mysql
if test -d /usr/local/mysql/lib64/mysql; then
MYSQL_LIBDIR=/usr/local/mysql/lib64/mysql
else
MYSQL_LIBDIR=/usr/local/mysql/lib/mysql
fi
MYSQL_BINDIR=/usr/local/mysql/bin
elif test -f /usr/include/mysql/mysql.h; then
MYSQL_INCDIR=/usr/include/mysql
if test -d /usr/lib64/mysql; then
MYSQL_LIBDIR=/usr/lib64/mysql
else
MYSQL_LIBDIR=/usr/lib/mysql
fi
MYSQL_BINDIR=/usr/bin
elif test -f /usr/include/mysql.h; then
MYSQL_INCDIR=/usr/include
if test -d /usr/lib64; then
MYSQL_LIBDIR=/usr/lib64
else
MYSQL_LIBDIR=/usr/lib
fi
MYSQL_BINDIR=/usr/bin
elif test -f /usr/local/include/mysql/mysql.h; then
MYSQL_INCDIR=/usr/local/include/mysql
if test -d /usr/local/lib64/mysql; then
MYSQL_LIBDIR=/usr/local/lib64/mysql
else
MYSQL_LIBDIR=/usr/local/lib/mysql
fi
MYSQL_BINDIR=/usr/local/bin
elif test -f /usr/local/include/mysql.h; then
MYSQL_INCDIR=/usr/local/include
if test -d /usr/local/lib64; then
MYSQL_LIBDIR=/usr/local/lib64
else
MYSQL_LIBDIR=/usr/local/lib
fi
MYSQL_BINDIR=/usr/local/bin
else
AC_MSG_RESULT(no)
AC_MSG_ERROR(Unable to find mysql.h in standard locations)
fi
else
if test -f $withval/include/mysql/mysql.h; then
MYSQL_INCDIR=$withval/include/mysql
if test -d $withval/lib64/mysql; then
MYSQL_LIBDIR=$withval/lib64/mysql
else
MYSQL_LIBDIR=$withval/lib/mysql
fi
MYSQL_BINDIR=$withval/bin
elif test -f $withval/include/mysql.h; then
MYSQL_INCDIR=$withval/include
if test -d $withval/lib64; then
MYSQL_LIBDIR=$withval/lib64
else
MYSQL_LIBDIR=$withval/lib
fi
MYSQL_BINDIR=$withval/bin
else
AC_MSG_RESULT(no)
AC_MSG_ERROR(Invalid MySQL directory $withval - unable to find mysql.h under $withval)
fi
fi
if test x$MYSQL_LIBDIR != x; then
MYSQL_INCLUDE=-I$MYSQL_INCDIR
if test x$use_libtool != xno; then
MYSQL_LIBS="-R $MYSQL_LIBDIR -L$MYSQL_LIBDIR -lmysqld -lz -lm -lcrypt"
else
MYSQL_LIBS="-L$MYSQL_LIBDIR -lmysqld -lz -lm -lcrypt"
fi
MYSQL_LIB=$MYSQL_LIBDIR/libmysqld.a
DB_LIBS="${DB_LIBS} ${MYSQL_LIBS}"
AC_DEFINE(HAVE_MYSQL, 1, [Set if you have an MySQL Database])
AC_DEFINE(HAVE_EMBEDDED_MYSQL, 1, [Set if you have an Embedded MySQL Database])
AC_MSG_RESULT(yes)
if test -z "${db_backends}"; then
db_backends="MySQL"
else
db_backends="${db_backends} MySQL"
fi
if test -z "${DB_BACKENDS}"; then
DB_BACKENDS="mysql"
else
DB_BACKENDS="${DB_BACKENDS} mysql"
fi
dnl -------------------------------------------
dnl Check if mysql supports batch mode
dnl -------------------------------------------
if test "x$support_batch_insert" = "xyes"; then
dnl For mysql checking
saved_LDFLAGS="${LDFLAGS}"
LDFLAGS="${saved_LDFLAGS} -L$MYSQL_LIBDIR"
saved_LIBS="${LIBS}"
LIBS="${saved_LIBS} -lz -lm -lcrypt"
AC_CHECK_LIB(mysqlclient_r, mysql_thread_safe, AC_DEFINE(HAVE_MYSQL_THREAD_SAFE, 1, [Set if have mysql_thread_safe]))
if test "x$ac_cv_lib_mysqlclient_r_mysql_thread_safe" = "xyes"; then
if test -z "${batch_insert_db_backends}"; then
batch_insert_db_backends="MySQL"
else
batch_insert_db_backends="${batch_insert_db_backends} MySQL"
fi
fi
dnl Revert after mysql checks
LDFLAGS="${saved_LDFLAGS}"
LIBS="${saved_LIBS}"
fi
fi
else
AC_MSG_RESULT(no)
fi
],[
AC_MSG_RESULT(no)
])
AC_SUBST(MYSQL_LIBS)
AC_SUBST(MYSQL_INCLUDE)
AC_SUBST(MYSQL_BINDIR)
])
AC_DEFUN([BA_CHECK_INGRES_DB],
[
AC_MSG_CHECKING(for Ingres support)
AC_ARG_WITH(ingres,
AC_HELP_STRING([--with-ingres@<:@=DIR@:>@], [Include Ingres support. DIR is the Ingres base install directory, default is to search through a number of common places for the Ingres files.]),
[
if test "$withval" != "no"; then
if test "$withval" = "yes"; then
if test -f ${II_SYSTEM}/files/eqdefc.h; then
INGRES_INCDIR=${II_SYSTEM}/files
INGRES_LIBDIR=${II_SYSTEM}/lib
INGRES_BINDIR=${II_SYSTEM}/bin
elif test -f ${II_SYSTEM}/ingres/files/eqdefc.h; then
INGRES_INCDIR=${II_SYSTEM}/ingres/files
INGRES_LIBDIR=${II_SYSTEM}/ingres/lib
INGRES_BINDIR=${II_SYSTEM}/ingres/bin
else
AC_MSG_RESULT(no)
AC_MSG_ERROR(Unable to find eqdefc.h in standard locations)
fi
else
if test -f $withval/files/eqdefc.h; then
INGRES_INCDIR=$withval/files
INGRES_LIBDIR=$withval/lib
INGRES_BINDIR=$withval/bin
else
AC_MSG_RESULT(no)
AC_MSG_ERROR(Invalid Ingres directory $withval - unable to find Ingres headers under $withval)
fi
fi
if test x$INGRES_LIBDIR != x; then
INGRES_INCLUDE=-I$INGRES_INCDIR
if test x$use_libtool != xno; then
INGRES_LIBS="-R $INGRES_LIBDIR -L$INGRES_LIBDIR -lq.1 -lcompat.1 -lframe.1"
else
INGRES_LIBS="-L$INGRES_LIBDIR -lq.1 -lcompat.1 -lframe.1"
fi
DB_LIBS="${DB_LIBS} ${INGRES_LIBS}"
AC_DEFINE(HAVE_INGRES, 1, [Set if have Ingres Database])
AC_MSG_RESULT(yes)
if test -z "${db_backends}"; then
db_backends="Ingres"
else
db_backends="${db_backends} Ingres"
fi
if test -z "${DB_BACKENDS}"; then
DB_BACKENDS="ingres"
else
DB_BACKENDS="${DB_BACKENDS} ingres"
fi
fi
else
AC_MSG_RESULT(no)
fi
],[
AC_MSG_RESULT(no)
])
AC_SUBST(INGRES_LIBS)
AC_SUBST(INGRES_INCLUDE)
AC_SUBST(INGRES_BINDIR)
])
AC_DEFUN([BA_CHECK_SQLITE3_DB],
[
AC_MSG_CHECKING(for SQLite3 support)
AC_ARG_WITH(sqlite3,
AC_HELP_STRING([--with-sqlite3@<:@=DIR@:>@], [Include SQLite3 support. DIR is the SQLite3 base install directory, default is to search through a number of common places for the SQLite3 files.]),
[
if test "$withval" != "no"; then
if test "$withval" = "yes"; then
if test -f /usr/local/include/sqlite3.h; then
SQLITE_INCDIR=/usr/local/include
if test -d /usr/local/lib64; then
SQLITE_LIBDIR=/usr/local/lib64
else
SQLITE_LIBDIR=/usr/local/lib
fi
SQLITE_BINDIR=/usr/local/bin
elif test -f /usr/include/sqlite3.h; then
SQLITE_INCDIR=/usr/include
if test -d /usr/lib64; then
SQLITE_LIBDIR=/usr/lib64
else
SQLITE_LIBDIR=/usr/lib
fi
SQLITE_BINDIR=/usr/bin
elif test -f $prefix/include/sqlite3.h; then
SQLITE_INCDIR=$prefix/include
if test -d $prefix/lib64; then
SQLITE_LIBDIR=$prefix/lib64
else
SQLITE_LIBDIR=$prefix/lib
fi
SQLITE_BINDIR=$prefix/bin
else
AC_MSG_RESULT(no)
AC_MSG_ERROR(Unable to find sqlite3.h in standard locations)
fi
else
if test -f $withval/sqlite3.h; then
SQLITE_INCDIR=$withval
SQLITE_LIBDIR=$withval
SQLITE_BINDIR=$withval
elif test -f $withval/include/sqlite3.h; then
SQLITE_INCDIR=$withval/include
if test -d $withval/lib64; then
SQLITE_LIBDIR=$withval/lib64
else
SQLITE_LIBDIR=$withval/lib
fi
SQLITE_BINDIR=$withval/bin
else
AC_MSG_RESULT(no)
AC_MSG_ERROR(Invalid SQLite3 directory $withval - unable to find sqlite3.h under $withval)
fi
fi
if test x$SQLITE_LIBDIR != x; then
SQLITE_INCLUDE=-I$SQLITE_INCDIR
if test x$use_libtool != xno; then
SQLITE_LIBS="-R $SQLITE_LIBDIR -L$SQLITE_LIBDIR -lsqlite3"
else
SQLITE_LIBS="-L$SQLITE_LIBDIR -lsqlite3"
fi
SQLITE_LIB=$SQLITE_LIBDIR/libsqlite3.a
DB_LIBS="${DB_LIBS} ${SQLITE_LIBS}"
AC_DEFINE(HAVE_SQLITE3, 1, [Set if you have an SQLite3 Database])
AC_MSG_RESULT(yes)
if test -z "${db_backends}"; then
db_backends="SQLite3"
else
db_backends="${db_backends} SQLite3"
fi
if test -z "${DB_BACKENDS}"; then
DB_BACKENDS="sqlite3"
else
DB_BACKENDS="${DB_BACKENDS} sqlite3"
fi
dnl -------------------------------------------
dnl Check if sqlite supports batch mode
dnl -------------------------------------------
if test "x$support_batch_insert" = "xyes"; then
dnl For sqlite checking
saved_LDFLAGS="${LDFLAGS}"
LDFLAGS="${saved_LDFLAGS} -L$SQLITE_LIBDIR"
AC_CHECK_LIB(sqlite3, sqlite3_threadsafe, AC_DEFINE(HAVE_SQLITE3_THREADSAFE, 1, [Define to 1 if you have the `sqlite3_threadsafe' function.]))
if test "x$ac_cv_lib_sqlite3_sqlite3_threadsafe" = "xyes"; then
if test -z "${batch_insert_db_backends}"; then
batch_insert_db_backends="SQLite3"
else
batch_insert_db_backends="${batch_insert_db_backends} SQLite3"
fi
fi
dnl Revert after sqlite checks
LDFLAGS="${saved_LDFLAGS}"
fi
fi
else
AC_MSG_RESULT(no)
fi
],[
AC_MSG_RESULT(no)
])
AC_SUBST(SQLITE_LIBS)
AC_SUBST(SQLITE_INCLUDE)
AC_SUBST(SQLITE_BINDIR)
])
AC_DEFUN([BA_CHECK_POSTGRESQL_DB],
[
AC_MSG_CHECKING(for PostgreSQL support)
AC_ARG_WITH(postgresql,
AC_HELP_STRING([--with-postgresql@<:@=DIR@:>@], [Include PostgreSQL support. DIR is the PostgreSQL base install directory, @<:@default=/usr/local/pgsql@:>@]),
[
if test "$withval" != "no"; then
if test "$withval" = "yes"; then
PG_CONFIG=`which pg_config 2>/dev/null`
if test -n "$PG_CONFIG"; then
POSTGRESQL_INCDIR=`"$PG_CONFIG" --includedir`
POSTGRESQL_LIBDIR=`"$PG_CONFIG" --libdir`
POSTGRESQL_BINDIR=`"$PG_CONFIG" --bindir`
fi
#
# See if the pg_config gave something that is worth anything.
#
if test x${POSTGRESQL_LIBDIR} = x -o \
! \( -f ${POSTGRESQL_LIBDIR}/libpq.so -o \
-f ${POSTGRESQL_LIBDIR}/libpq.a \); then
if test -f /usr/local/include/libpq-fe.h; then
POSTGRESQL_INCDIR=/usr/local/include
if test -d /usr/local/lib64; then
POSTGRESQL_LIBDIR=/usr/local/lib64
else
POSTGRESQL_LIBDIR=/usr/local/lib
fi
POSTGRESQL_BINDIR=/usr/local/bin
elif test -f /usr/include/libpq-fe.h; then
POSTGRESQL_INCDIR=/usr/include
if test -d /usr/lib64; then
POSTGRESQL_LIBDIR=/usr/lib64
else
POSTGRESQL_LIBDIR=/usr/lib
fi
POSTGRESQL_BINDIR=/usr/bin
elif test -f /usr/include/pgsql/libpq-fe.h; then
POSTGRESQL_INCDIR=/usr/include/pgsql
if test -d /usr/lib64/pgsql; then
POSTGRESQL_LIBDIR=/usr/lib64/pgsql
else
POSTGRESQL_LIBDIR=/usr/lib/pgsql
fi
POSTGRESQL_BINDIR=/usr/bin
elif test -f /usr/include/postgresql/libpq-fe.h; then
POSTGRESQL_INCDIR=/usr/include/postgresql
if test -d /usr/lib64/postgresql; then
POSTGRESQL_LIBDIR=/usr/lib64/postgresql
else
POSTGRESQL_LIBDIR=/usr/lib/postgresql
fi
POSTGRESQL_BINDIR=/usr/bin
else
AC_MSG_RESULT(no)
AC_MSG_ERROR(Unable to find libpq-fe.h in standard locations)
fi
fi
else
if test -f $withval/include/libpq-fe.h; then
POSTGRESQL_INCDIR=$withval/include
POSTGRESQL_LIBDIR=$withval/lib
POSTGRESQL_BINDIR=$withval/bin
elif test -f $withval/include/postgresql/libpq-fe.h; then
POSTGRESQL_INCDIR=$withval/include/postgresql
if test -d $withval/lib64; then
POSTGRESQL_LIBDIR=$withval/lib64
else
POSTGRESQL_LIBDIR=$withval/lib
fi
POSTGRESQL_BINDIR=$withval/bin
else
AC_MSG_RESULT(no)
AC_MSG_ERROR(Invalid PostgreSQL directory $withval - unable to find libpq-fe.h under $withval)
fi
fi
if test x$POSTGRESQL_LIBDIR != x; then
AC_DEFINE(HAVE_POSTGRESQL, 1, [Set if you have an PostgreSQL Database])
AC_MSG_RESULT(yes)
POSTGRESQL_INCLUDE=-I$POSTGRESQL_INCDIR
if test x$use_libtool != xno; then
POSTGRESQL_LIBS="-R $POSTGRESQL_LIBDIR -L$POSTGRESQL_LIBDIR -lpq"
else
POSTGRESQL_LIBS="-L$POSTGRESQL_LIBDIR -lpq"
fi
AC_CHECK_FUNC(crypt, , AC_CHECK_LIB(crypt, crypt, [POSTGRESQL_LIBS="$POSTGRESQL_LIBS -lcrypt"]))
POSTGRESQL_LIB=$POSTGRESQL_LIBDIR/libpq.a
DB_LIBS="${DB_LIBS} ${POSTGRESQL_LIBS}"
if test -z "${db_backends}"; then
db_backends="PostgreSQL"
else
db_backends="${db_backends} PostgreSQL"
fi
if test -z "${DB_BACKENDS}"; then
DB_BACKENDS="postgresql"
else
DB_BACKENDS="${DB_BACKENDS} postgresql"
fi
dnl -------------------------------------------
dnl Check if postgresql supports batch mode
dnl -------------------------------------------
if test "x$support_batch_insert" = "xyes"; then
dnl For postgresql checking
saved_LDFLAGS="${LDFLAGS}"
LDFLAGS="${saved_LDFLAGS} -L$POSTGRESQL_LIBDIR"
saved_LIBS="${LIBS}"
if test "x$ac_cv_lib_crypt_crypt" = "xyes" ; then
LIBS="${saved_LIBS} -lcrypt"
fi
AC_CHECK_LIB(pq, PQisthreadsafe, AC_DEFINE(HAVE_PQISTHREADSAFE, 1, [Set if have PQisthreadsafe]))
AC_CHECK_LIB(pq, PQputCopyData, AC_DEFINE(HAVE_PQ_COPY, 1, [Set if have PQputCopyData]))
if test "x$ac_cv_lib_pq_PQputCopyData" = "xyes"; then
if test $support_batch_insert = yes ; then
AC_DEFINE(HAVE_POSTGRESQL_BATCH_FILE_INSERT, 1, [Set if PostgreSQL DB batch insert code enabled])
if test -z "${batch_insert_db_backends}"; then
batch_insert_db_backends="PostgreSQL"
else
batch_insert_db_backends="${batch_insert_db_backends} PostgreSQL"
fi
fi
fi
if test x$ac_cv_lib_pq_PQisthreadsafe != xyes -a x$support_batch_insert = xyes; then
echo "WARNING: Your PostgreSQL client library is too old to detect "
echo "if it was compiled with --enable-thread-safety, consider to "
echo "upgrade it in order to avoid problems with Batch insert mode"
fi
dnl Revert after postgresql checks
LDFLAGS="${saved_LDFLAGS}"
LIBS="${saved_LIBS}"
fi
fi
else
AC_MSG_RESULT(no)
fi
],[
AC_MSG_RESULT(no)
])
AC_SUBST(POSTGRESQL_LIBS)
AC_SUBST(POSTGRESQL_INCLUDE)
AC_SUBST(POSTGRESQL_BINDIR)
])
AC_DEFUN([AM_CONDITIONAL],
[AC_SUBST($1_TRUE)
AC_SUBST($1_FALSE)
if $2; then
$1_TRUE=
$1_FALSE='#'
else
$1_TRUE='#'
$1_FALSE=
fi])
bareos-Release-14.2.6/autoconf/bareos/largefiles.m4 0000664 0000000 0000000 00000007171 12630115627 0022116 0 ustar 00root root 0000000 0000000 dnl
dnl ========= Large File Support ==============
dnl By default, many hosts won't let programs access large files;
dnl one must use special compiler options to get large-file access to work.
dnl For more details about this brain damage please see:
dnl http://www.sas.com/standards/large.file/x_open.20Mar96.html
dnl Written by Paul Eggert .
dnl
dnl Modified by Kern Sibbald to turn on the large file
dnl flags on all machines. Otherwise functions such as
dnl fseek are not large file capable.
dnl
dnl Internal subroutine of AC_SYS_LARGEFILE.
dnl AC_SYS_LARGEFILE_FLAGS(FLAGSNAME)
AC_DEFUN([AC_SYS_LARGEFILE_FLAGS],
[AC_CACHE_CHECK([for $1 value to request large file support],
ac_cv_sys_largefile_$1,
[ac_cv_sys_largefile_$1=`($GETCONF LFS_$1) 2>/dev/null` || {
ac_cv_sys_largefile_$1=no
ifelse($1, CFLAGS,
[case "$host_os" in
# IRIX 6.2 and later require cc -n32.
changequote(, )dnl
irix6.[2-9]* | irix6.1[0-9]* | irix[7-9].* | irix[1-9][0-9]*)
changequote([, ])dnl
if test "$GCC" != yes; then
ac_cv_sys_largefile_CFLAGS=-n32
fi
ac_save_CC="$CC"
CC="$CC $ac_cv_sys_largefile_CFLAGS"
AC_TRY_LINK(, , , ac_cv_sys_largefile_CFLAGS=no)
CC="$ac_save_CC"
esac])
}])])
dnl Internal subroutine of AC_SYS_LARGEFILE.
dnl AC_SYS_LARGEFILE_SPACE_APPEND(VAR, VAL)
AC_DEFUN([AC_SYS_LARGEFILE_SPACE_APPEND],
[case $2 in
no) ;;
?*)
case "[$]$1" in
'') $1=$2 ;;
*) $1=[$]$1' '$2 ;;
esac ;;
esac])
dnl Internal subroutine of AC_SYS_LARGEFILE.
dnl AC_SYS_LARGEFILE_MACRO_VALUE(C-MACRO, CACHE-VAR, COMMENT, CODE-TO-SET-DEFAULT)
AC_DEFUN([AC_SYS_LARGEFILE_MACRO_VALUE],
[AC_CACHE_CHECK([for $1], $2,
[$2=no
changequote(, )dnl
$4
for ac_flag in $ac_cv_sys_largefile_CFLAGS no; do
case "$ac_flag" in
-D$1)
$2=1 ;;
-D$1=*)
$2=`expr " $ac_flag" : '[^=]*=\(.*\)'` ;;
esac
done
changequote([, ])dnl
])
if test "[$]$2" != no; then
AC_DEFINE_UNQUOTED([$1], [$]$2, [$3])
fi])
AC_DEFUN([AC_BRS_LARGEFILE],
[AC_REQUIRE([AC_CANONICAL_HOST])
AC_ARG_ENABLE(largefile,
[ --disable-largefile omit support for large files])
if test "$enable_largefile" != no; then
AC_CHECK_TOOL(GETCONF, getconf)
AC_SYS_LARGEFILE_FLAGS(CFLAGS)
AC_SYS_LARGEFILE_FLAGS(LDFLAGS)
AC_SYS_LARGEFILE_FLAGS(LIBS)
for ac_flag in $ac_cv_sys_largefile_CFLAGS no; do
case "$ac_flag" in
no) ;;
-D_FILE_OFFSET_BITS=*) ;;
-D_LARGEFILE_SOURCE | -D_LARGEFILE_SOURCE=*) ;;
-D_LARGE_FILES | -D_LARGE_FILES=*) ;;
-D?* | -I?*)
AC_SYS_LARGEFILE_SPACE_APPEND(CPPFLAGS, "$ac_flag") ;;
*)
AC_SYS_LARGEFILE_SPACE_APPEND(CFLAGS, "$ac_flag") ;;
esac
done
AC_SYS_LARGEFILE_SPACE_APPEND(LDFLAGS, "$ac_cv_sys_largefile_LDFLAGS")
AC_SYS_LARGEFILE_SPACE_APPEND(LIBS, "$ac_cv_sys_largefile_LIBS")
AC_SYS_LARGEFILE_MACRO_VALUE(_FILE_OFFSET_BITS,
ac_cv_sys_file_offset_bits,
[Number of bits in a file offset, on hosts where this is settable.],
[ac_cv_sys_file_offset_bits=64])
AC_SYS_LARGEFILE_MACRO_VALUE(_LARGEFILE_SOURCE,
ac_cv_sys_largefile_source,
[Define to make fseeko etc. visible, on some hosts.],
[ac_cv_sys_largefile_source=1])
AC_SYS_LARGEFILE_MACRO_VALUE(_LARGE_FILES,
ac_cv_sys_large_files,
[Define for large files, on AIX-style hosts.],
[ac_cv_sys_large_files=1])
fi
])
dnl ==========================================================
bareos-Release-14.2.6/autoconf/bareos/os.m4 0000664 0000000 0000000 00000023436 12630115627 0020424 0 ustar 00root root 0000000 0000000 dnl Check type of signal routines (posix, 4.2bsd, 4.1bsd or v7)
AC_DEFUN([SIGNAL_CHECK],
[AC_REQUIRE([AC_TYPE_SIGNAL])
AC_MSG_CHECKING(for type of signal functions)
AC_CACHE_VAL(bash_cv_signal_vintage,
[
AC_TRY_LINK([#include ],[
sigset_t ss;
struct sigaction sa;
sigemptyset(&ss); sigsuspend(&ss);
sigaction(SIGINT, &sa, (struct sigaction *) 0);
sigprocmask(SIG_BLOCK, &ss, (sigset_t *) 0);
], bash_cv_signal_vintage="posix",
[
AC_TRY_LINK([#include ], [
int mask = sigmask(SIGINT);
sigsetmask(mask); sigblock(mask); sigpause(mask);
], bash_cv_signal_vintage="4.2bsd",
[
AC_TRY_LINK([
#include
RETSIGTYPE foo() { }], [
int mask = sigmask(SIGINT);
sigset(SIGINT, foo); sigrelse(SIGINT);
sighold(SIGINT); sigpause(SIGINT);
], bash_cv_signal_vintage="svr3", bash_cv_signal_vintage="v7"
)]
)]
)
])
AC_MSG_RESULT($bash_cv_signal_vintage)
if test "$bash_cv_signal_vintage" = "posix"; then
AC_DEFINE(HAVE_POSIX_SIGNALS, 1, [Define to 1 if you have POSIX signals])
elif test "$bash_cv_signal_vintage" = "4.2bsd"; then
AC_DEFINE(HAVE_BSD_SIGNALS, 1, [Define to 1 if you have 4.2BSD signals])
elif test "$bash_cv_signal_vintage" = "svr3"; then
AC_DEFINE(HAVE_USG_SIGHOLD, 1, [Define to 1 if you have SVR3 signals])
fi
])
AC_DEFUN([BA_CONDITIONAL],
[AC_SUBST($1_TRUE)
AC_SUBST($1_FALSE)
if $2; then
$1_TRUE=
$1_FALSE='#'
else
$1_TRUE='#'
$1_FALSE=
fi])
AC_DEFUN([BA_CHECK_OPSYS],
[
AC_CYGWIN
if test $HAVE_UNAME=yes -a x`uname -s` = xSunOS
then
BA_CONDITIONAL(HAVE_SUN_OS, $TRUEPRG)
AC_DEFINE(HAVE_SUN_OS, 1, [Define to 1 if you are running Solaris])
else
BA_CONDITIONAL(HAVE_SUN_OS, $FALSEPRG)
fi
if test $HAVE_UNAME=yes -a x`uname -s` = xGNU
then
BA_CONDITIONAL(HAVE_HURD_OS, $TRUEPRG)
AC_DEFINE(HAVE_HURD_OS, 1, [Define to 1 if you are running GNU Hurd])
else
BA_CONDITIONAL(HAVE_HURD_OS, $FALSEPRG)
fi
if test $HAVE_UNAME=yes -a x`uname -s` = xOSF1
then
BA_CONDITIONAL(HAVE_OSF1_OS, $TRUEPRG)
AC_DEFINE(HAVE_OSF1_OS, 1, [Define to 1 if you are running Tru64])
else
BA_CONDITIONAL(HAVE_OSF1_OS, $FALSEPRG)
fi
if test $HAVE_UNAME=yes -a x`uname -s` = xAIX
then
BA_CONDITIONAL(HAVE_AIX_OS, $TRUEPRG)
AC_DEFINE(HAVE_AIX_OS, 1, [Define to 1 if you are running AIX])
else
BA_CONDITIONAL(HAVE_AIX_OS, $FALSEPRG)
fi
if test $HAVE_UNAME=yes -a x`uname -s` = xHP-UX
then
BA_CONDITIONAL(HAVE_HPUX_OS, $TRUEPRG)
AC_DEFINE(HAVE_HPUX_OS, 1, [Define to 1 if you are running HPUX])
else
BA_CONDITIONAL(HAVE_HPUX_OS, $FALSEPRG)
fi
if test $HAVE_UNAME=yes -a x`uname -s` = xLinux
then
BA_CONDITIONAL(HAVE_LINUX_OS, $TRUEPRG)
AC_DEFINE(HAVE_LINUX_OS, 1, [Define to 1 if you are running Linux])
else
BA_CONDITIONAL(HAVE_LINUX_OS, $FALSEPRG)
fi
if test $HAVE_UNAME=yes -a x`uname -s` = xFreeBSD
then
BA_CONDITIONAL(HAVE_FREEBSD_OS, $TRUEPRG)
AC_DEFINE(HAVE_FREEBSD_OS, 1, [Define to 1 if you are running FreeBSD])
else
BA_CONDITIONAL(HAVE_FREEBSD_OS, $FALSEPRG)
fi
if test $HAVE_UNAME=yes -a x`uname -s` = xNetBSD
then
BA_CONDITIONAL(HAVE_NETBSD_OS, $TRUEPRG)
AC_DEFINE(HAVE_NETBSD_OS, 1, [Define to 1 if you are running NetBSD])
else
BA_CONDITIONAL(HAVE_NETBSD_OS, $FALSEPRG)
fi
if test $HAVE_UNAME=yes -a x`uname -s` = xOpenBSD
then
BA_CONDITIONAL(HAVE_OPENBSD_OS, $TRUEPRG)
AC_DEFINE(HAVE_OPENBSD_OS, 1, [Define to 1 if you are running OpenBSD])
else
BA_CONDITIONAL(HAVE_OPENBSD_OS, $FALSEPRG)
fi
if test $HAVE_UNAME=yes -a x`uname -s` = xBSD/OS
then
BA_CONDITIONAL(HAVE_BSDI_OS, $TRUEPRG)
AC_DEFINE(HAVE_BSDI_OS, 1, [Define to 1 if you are running BSDI])
else
BA_CONDITIONAL(HAVE_BSDI_OS, $FALSEPRG)
fi
if test $HAVE_UNAME=yes -a x`uname -s` = xSGI
then
BA_CONDITIONAL(HAVE_SGI_OS, $TRUEPRG)
AC_DEFINE(HAVE_SGI_OS, 1, [Define to 1 if you are running SGI OS])
else
BA_CONDITIONAL(HAVE_SGI_OS, $FALSEPRG)
fi
if test $HAVE_UNAME=yes -a x`uname -s` = xIRIX -o x`uname -s` = xIRIX64
then
BA_CONDITIONAL(HAVE_IRIX_OS, $TRUEPRG)
AC_DEFINE(HAVE_IRIX_OS, 1, [Define to 1 if you are running IRIX])
else
BA_CONDITIONAL(HAVE_IRIX_OS, $FALSEPRG)
fi
if test $HAVE_UNAME=yes -a x`uname -s` = xDarwin
then
AM_CONDITIONAL(HAVE_DARWIN_OS, $TRUEPRG)
AC_DEFINE(HAVE_DARWIN_OS, 1, [Define to 1 if you are running OSX])
else
AM_CONDITIONAL(HAVE_DARWIN_OS, $FALSEPRG)
fi
])
AC_DEFUN([BA_CHECK_OPSYS_DISTNAME], [
AC_MSG_CHECKING(for Operating System Distribution)
if test "x$DISTNAME" != "x"
then
echo "distname set to $DISTNAME"
else
which lsb_release > /dev/null 2>&1
if test $? = 0
then
LSB_DISTRIBUTOR=`lsb_release -i -s`
case ${LSB_DISTRIBUTOR} in
"SUSE LINUX")
DISTNAME=suse
;;
"openSUSE project")
DISTNAME=suse
;;
CentOS)
DISTNAME=redhat
;;
Fedora)
DISTNAME=redhat
;;
RedHatEnterprise*)
DISTNAME=redhat
;;
Oracle*)
DISTNAME=redhat
;;
MandrivaLinux)
DISTNAME=mandrake
;;
Arch|archlinux)
DISTNAME=archlinux
;;
LinuxMint)
DISTNAME=debian
;;
Debian)
DISTNAME=debian
;;
Ubuntu)
DISTNAME=ubuntu
;;
Univention)
DISTNAME=univention
;;
*)
DISTNAME=""
;;
esac
#
# If we got a valid DISTNAME get the DISTVER from lsb_release too.
#
if test "x$DISTNAME" != "x"
then
DISTVER=`lsb_release -d -s | sed -e 's/"//g'`
fi
fi
#
# If lsb_release gave us the wanted info we skip this fallback block.
#
if test "x$DISTNAME" = "x" -o "x$DISTVER" = "x"
then
if test $HAVE_UNAME=yes -a x`uname -s` = xOSF1
then
DISTNAME=alpha
DISTVER=`uname -r`
elif test $HAVE_UNAME=yes -a x`uname -s` = xAIX
then
DISTNAME=aix
DISTVER=`uname -r`
elif test $HAVE_UNAME=yes -a x`uname -s` = xHP-UX
then
DISTNAME=hpux
DISTVER=`uname -r`
elif test $HAVE_UNAME=yes -a x`uname -s` = xSunOS
then
DISTNAME=solaris
DISTVER=`uname -r`
elif test $HAVE_UNAME=yes -a x`uname -s` = xGNU
then
DISTNAME=hurd
DISTVER=`uname -r`
elif test $HAVE_UNAME=yes -a x`uname -s` = xFreeBSD
then
DISTNAME=freebsd
DISTVER=`uname -r`
elif test $HAVE_UNAME=yes -a x`uname -s` = xNetBSD
then
DISTNAME=netbsd
DISTVER=`uname -r`
elif test $HAVE_UNAME=yes -a x`uname -s` = xOpenBSD
then
DISTNAME=openbsd
DISTVER=`uname -r`
elif test $HAVE_UNAME=yes -a x`uname -s` = xIRIX
then
DISTNAME=irix
DISTVER=`uname -r`
elif test $HAVE_UNAME=yes -a x`uname -s` = xBSD/OS
then
DISTNAME=bsdi
DISTVER=`uname -a | awk '{print $3}'`
elif test -f /etc/SuSE-release
then
DISTNAME=suse
DISTVER=`cat /etc/SuSE-release | \
grep VERSION | \
cut -f3 -d' '`
elif test -d /etc/SuSEconfig
then
DISTNAME=suse
DISTVER=5.x
elif test -f /etc/mandrake-release
then
DISTNAME=mandrake
DISTVER=`cat /etc/mandrake-release | \
grep release | \
cut -f5 -d' '`
elif test -f /etc/fedora-release
then
DISTNAME=redhat
DISTVER="`cat /etc/fedora-release | cut -d' ' -f1,3`"
elif test -f /etc/whitebox-release
then
DISTNAME=redhat
DISTVER=`cat /etc/whitebox-release | grep release`
elif test -f /etc/redhat-release
then
DISTNAME=redhat
DISTVER=`cat /etc/redhat-release | grep release`
elif test -f /etc/gentoo-release
then
DISTNAME=gentoo
DISTVER=`awk '/version / { print $5 }' < /etc/gentoo-release`
elif test -f /etc/debian_version
then
if `test -f /etc/apt/sources.list && grep -q ubuntu /etc/apt/sources.list`; then
DISTNAME=ubuntu
else
DISTNAME=debian
fi
DISTVER=`cat /etc/debian_version`
elif test -f /etc/slackware-version
then
DISTNAME=slackware
DISTVER=`cat /etc/slackware-version`
elif test x$host_vendor = xapple
then
DISTNAME=osx
DISTVER=`uname -r`
elif test $HAVE_UNAME=yes -a x`uname -s` = xDarwin
then
DISTNAME=darwin
DISTVER=`uname -r`
elif test -f /etc/engarde-version
then
DISTNAME=engarde
DISTVER=`uname -r`
elif test -f /etc/arch-release
then
DISTNAME=archlinux
elif test "$CYGWIN" = yes
then
DISTNAME=cygwin
AC_DEFINE(HAVE_CYGWIN, 1, [Define to 1 if you use CYGWIN])
else
DISTNAME=unknown
DISTVER=unknown
fi
fi
fi
AC_MSG_RESULT(done)
])
AC_DEFUN([BA_CHECK_OBS_DISTNAME], [
AC_MSG_CHECKING(for OBS OS Distribution)
if test "x$OBS_DISTRIBUTION" != "x"
then
echo "obsdistname set to $OBS_DISTRIBUTION"
else
if test -e /.build.log; then
OBS_PROJECT=`grep 'Building bareos for project' /.build.log | cut -d' ' -f10 | sed "s#'##g"`
OBS_DISTRIBUTION=`grep 'Building bareos for project' /.build.log | cut -d' ' -f12 | sed "s#'##g"`
OBS_ARCH=`grep 'Building bareos for project' /.build.log | cut -d' ' -f14 | sed "s#'##g"`
OBS_SRCMD5=`grep 'Building bareos for project' /.build.log | cut -d' ' -f16 | sed "s#'##g"`
AC_DEFINE(IS_BUILD_ON_OBS, 1, [Define to 1 if things are build using the Open Build Service (OBS)])
fi
fi
AC_MSG_RESULT(done)
])
bareos-Release-14.2.6/autoconf/config.guess 0000775 0000000 0000000 00000130145 12630115627 0020602 0 ustar 00root root 0000000 0000000 #! /bin/sh
# Attempt to guess a canonical system name.
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
# 2011, 2012 Free Software Foundation, Inc.
timestamp='2012-02-10'
# This file 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 of the License, 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 .
#
# 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 Per Bothner. Please send patches (context
# diff format) to and include a ChangeLog
# entry.
#
# This script attempts to guess a canonical system name similar to
# config.sub. If it succeeds, it prints the system name on stdout, and
# exits with 0. Otherwise, it exits with 1.
#
# You can get the latest version of this script from:
# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
me=`echo "$0" | sed -e 's,.*/,,'`
usage="\
Usage: $0 [OPTION]
Output the configuration name of the system \`$me' is run on.
Operation modes:
-h, --help print this help, then exit
-t, --time-stamp print date of last modification, then exit
-v, --version print version number, then exit
Report bugs and patches to ."
version="\
GNU config.guess ($timestamp)
Originally written by Per Bothner.
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
help="
Try \`$me --help' for more information."
# Parse command line
while test $# -gt 0 ; do
case $1 in
--time-stamp | --time* | -t )
echo "$timestamp" ; exit ;;
--version | -v )
echo "$version" ; exit ;;
--help | --h* | -h )
echo "$usage"; exit ;;
-- ) # Stop option processing
shift; break ;;
- ) # Use stdin as input.
break ;;
-* )
echo "$me: invalid option $1$help" >&2
exit 1 ;;
* )
break ;;
esac
done
if test $# != 0; then
echo "$me: too many arguments$help" >&2
exit 1
fi
trap 'exit 1' 1 2 15
# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
# compiler to aid in system detection is discouraged as it requires
# temporary files to be created and, as you can see below, it is a
# headache to deal with in a portable fashion.
# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
# use `HOST_CC' if defined, but it is deprecated.
# Portable tmp directory creation inspired by the Autoconf team.
set_cc_for_build='
trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
: ${TMPDIR=/tmp} ;
{ tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
{ test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
{ tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
{ echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
dummy=$tmp/dummy ;
tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
case $CC_FOR_BUILD,$HOST_CC,$CC in
,,) echo "int x;" > $dummy.c ;
for c in cc gcc c89 c99 ; do
if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
CC_FOR_BUILD="$c"; break ;
fi ;
done ;
if test x"$CC_FOR_BUILD" = x ; then
CC_FOR_BUILD=no_compiler_found ;
fi
;;
,,*) CC_FOR_BUILD=$CC ;;
,*,*) CC_FOR_BUILD=$HOST_CC ;;
esac ; set_cc_for_build= ;'
# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
# (ghazi@noc.rutgers.edu 1994-08-24)
if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
PATH=$PATH:/.attbin ; export PATH
fi
UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
case "${UNAME_MACHINE}" in
i?86)
test -z "$VENDOR" && VENDOR=pc
;;
*)
test -z "$VENDOR" && VENDOR=unknown
;;
esac
test -f /etc/SuSE-release -o -f /.buildenv && VENDOR=suse
# Note: order is significant - the case branches are not exclusive.
case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
*:NetBSD:*:*)
# NetBSD (nbsd) targets should (where applicable) match one or
# more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
# *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
# switched to ELF, *-*-netbsd* would select the old
# object file format. This provides both forward
# compatibility and a consistent mechanism for selecting the
# object file format.
#
# Note: NetBSD doesn't particularly care about the vendor
# portion of the name. We always set it to "unknown".
sysctl="sysctl -n hw.machine_arch"
UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
/usr/sbin/$sysctl 2>/dev/null || echo unknown)`
case "${UNAME_MACHINE_ARCH}" in
armeb) machine=armeb-unknown ;;
arm*) machine=arm-unknown ;;
sh3el) machine=shl-unknown ;;
sh3eb) machine=sh-unknown ;;
sh5el) machine=sh5le-unknown ;;
*) machine=${UNAME_MACHINE_ARCH}-unknown ;;
esac
# The Operating System including object format, if it has switched
# to ELF recently, or will in the future.
case "${UNAME_MACHINE_ARCH}" in
arm*|i386|m68k|ns32k|sh3*|sparc|vax)
eval $set_cc_for_build
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ELF__
then
# Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
# Return netbsd for either. FIX?
os=netbsd
else
os=netbsdelf
fi
;;
*)
os=netbsd
;;
esac
# The OS release
# Debian GNU/NetBSD machines have a different userland, and
# thus, need a distinct triplet. However, they do not need
# kernel version information, so it can be replaced with a
# suitable tag, in the style of linux-gnu.
case "${UNAME_VERSION}" in
Debian*)
release='-gnu'
;;
*)
release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
;;
esac
# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
# contains redundant information, the shorter form:
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
echo "${machine}-${os}${release}"
exit ;;
*:OpenBSD:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
echo ${UNAME_MACHINE_ARCH}-${VENDOR}-openbsd${UNAME_RELEASE}
exit ;;
*:ekkoBSD:*:*)
echo ${UNAME_MACHINE}-${VENDOR}-ekkobsd${UNAME_RELEASE}
exit ;;
*:SolidBSD:*:*)
echo ${UNAME_MACHINE}-${VENDOR}-solidbsd${UNAME_RELEASE}
exit ;;
macppc:MirBSD:*:*)
echo powerpc-${VENDOR}-mirbsd${UNAME_RELEASE}
exit ;;
*:MirBSD:*:*)
echo ${UNAME_MACHINE}-${VENDOR}-mirbsd${UNAME_RELEASE}
exit ;;
alpha:OSF1:*:*)
case $UNAME_RELEASE in
*4.0)
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
;;
*5.*)
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
;;
esac
# According to Compaq, /usr/sbin/psrinfo has been available on
# OSF/1 and Tru64 systems produced since 1995. I hope that
# covers most systems running today. This code pipes the CPU
# types through head -n 1, so we only detect the type of CPU 0.
ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
case "$ALPHA_CPU_TYPE" in
"EV4 (21064)")
UNAME_MACHINE="alpha" ;;
"EV4.5 (21064)")
UNAME_MACHINE="alpha" ;;
"LCA4 (21066/21068)")
UNAME_MACHINE="alpha" ;;
"EV5 (21164)")
UNAME_MACHINE="alphaev5" ;;
"EV5.6 (21164A)")
UNAME_MACHINE="alphaev56" ;;
"EV5.6 (21164PC)")
UNAME_MACHINE="alphapca56" ;;
"EV5.7 (21164PC)")
UNAME_MACHINE="alphapca57" ;;
"EV6 (21264)")
UNAME_MACHINE="alphaev6" ;;
"EV6.7 (21264A)")
UNAME_MACHINE="alphaev67" ;;
"EV6.8CB (21264C)")
UNAME_MACHINE="alphaev68" ;;
"EV6.8AL (21264B)")
UNAME_MACHINE="alphaev68" ;;
"EV6.8CX (21264D)")
UNAME_MACHINE="alphaev68" ;;
"EV6.9A (21264/EV69A)")
UNAME_MACHINE="alphaev69" ;;
"EV7 (21364)")
UNAME_MACHINE="alphaev7" ;;
"EV7.9 (21364A)")
UNAME_MACHINE="alphaev79" ;;
esac
# A Pn.n version is a patched version.
# A Vn.n version is a released version.
# A Tn.n version is a released field test version.
# A Xn.n version is an unreleased experimental baselevel.
# 1.2 uses "1.2" for uname -r.
echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
# Reset EXIT trap before exiting to avoid spurious non-zero exit code.
exitcode=$?
trap '' 0
exit $exitcode ;;
Alpha\ *:Windows_NT*:*)
# How do we know it's Interix rather than the generic POSIX subsystem?
# Should we change UNAME_MACHINE based on the output of uname instead
# of the specific Alpha model?
echo alpha-pc-interix
exit ;;
21064:Windows_NT:50:3)
echo alpha-dec-winnt3.5
exit ;;
Amiga*:UNIX_System_V:4.0:*)
echo m68k-${VENDOR}-sysv4
exit ;;
*:[Aa]miga[Oo][Ss]:*:*)
echo ${UNAME_MACHINE}-${VENDOR}-amigaos
exit ;;
*:[Mm]orph[Oo][Ss]:*:*)
echo ${UNAME_MACHINE}-${VENDOR}-morphos
exit ;;
*:OS/390:*:*)
echo i370-ibm-openedition
exit ;;
*:z/VM:*:*)
echo s390-ibm-zvmoe
exit ;;
*:OS400:*:*)
echo powerpc-ibm-os400
exit ;;
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
echo arm-acorn-riscix${UNAME_RELEASE}
exit ;;
arm:riscos:*:*|arm:RISCOS:*:*)
echo arm-${VENDOR}-riscos
exit ;;
SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
echo hppa1.1-hitachi-hiuxmpp
exit ;;
Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
if test "`(/bin/universe) 2>/dev/null`" = att ; then
echo pyramid-pyramid-sysv3
else
echo pyramid-pyramid-bsd
fi
exit ;;
NILE*:*:*:dcosx)
echo pyramid-pyramid-svr4
exit ;;
DRS?6000:unix:4.0:6*)
echo sparc-icl-nx6
exit ;;
DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
case `/usr/bin/uname -p` in
sparc) echo sparc-icl-nx7; exit ;;
esac ;;
s390x:SunOS:*:*)
echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit ;;
sun4H:SunOS:5.*:*)
echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit ;;
sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit ;;
i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
echo i386-pc-auroraux${UNAME_RELEASE}
exit ;;
i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
eval $set_cc_for_build
SUN_ARCH="i386"
# If there is a compiler, see if it is configured for 64-bit objects.
# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
# This test works for both compilers.
if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
(CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
grep IS_64BIT_ARCH >/dev/null
then
SUN_ARCH="x86_64"
fi
fi
echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit ;;
sun4*:SunOS:6*:*)
# According to config.sub, this is the proper way to canonicalize
# SunOS6. Hard to guess exactly what SunOS6 will be like, but
# it's likely to be more like Solaris than SunOS4.
echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit ;;
sun4*:SunOS:*:*)
case "`/usr/bin/arch -k`" in
Series*|S4*)
UNAME_RELEASE=`uname -v`
;;
esac
# Japanese Language versions have a version number like `4.1.3-JL'.
echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
exit ;;
sun3*:SunOS:*:*)
echo m68k-sun-sunos${UNAME_RELEASE}
exit ;;
sun*:*:4.2BSD:*)
UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
case "`/bin/arch`" in
sun3)
echo m68k-sun-sunos${UNAME_RELEASE}
;;
sun4)
echo sparc-sun-sunos${UNAME_RELEASE}
;;
esac
exit ;;
aushp:SunOS:*:*)
echo sparc-auspex-sunos${UNAME_RELEASE}
exit ;;
# The situation for MiNT is a little confusing. The machine name
# can be virtually everything (everything which is not
# "atarist" or "atariste" at least should have a processor
# > m68000). The system name ranges from "MiNT" over "FreeMiNT"
# to the lowercase version "mint" (or "freemint"). Finally
# the system name "TOS" denotes a system which is actually not
# MiNT. But MiNT is downward compatible to TOS, so this should
# be no problem.
atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
echo m68k-atari-mint${UNAME_RELEASE}
exit ;;
atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
echo m68k-atari-mint${UNAME_RELEASE}
exit ;;
*falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
echo m68k-atari-mint${UNAME_RELEASE}
exit ;;
milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
echo m68k-milan-mint${UNAME_RELEASE}
exit ;;
hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
echo m68k-hades-mint${UNAME_RELEASE}
exit ;;
*:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
echo m68k-${VENDOR}-mint${UNAME_RELEASE}
exit ;;
m68k:machten:*:*)
echo m68k-apple-machten${UNAME_RELEASE}
exit ;;
powerpc:machten:*:*)
echo powerpc-apple-machten${UNAME_RELEASE}
exit ;;
RISC*:Mach:*:*)
echo mips-dec-mach_bsd4.3
exit ;;
RISC*:ULTRIX:*:*)
echo mips-dec-ultrix${UNAME_RELEASE}
exit ;;
VAX*:ULTRIX*:*:*)
echo vax-dec-ultrix${UNAME_RELEASE}
exit ;;
2020:CLIX:*:* | 2430:CLIX:*:*)
echo clipper-intergraph-clix${UNAME_RELEASE}
exit ;;
mips:*:*:UMIPS | mips:*:*:RISCos)
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
#ifdef __cplusplus
#include /* for printf() prototype */
int main (int argc, char *argv[]) {
#else
int main (argc, argv) int argc; char *argv[]; {
#endif
#if defined (host_mips) && defined (MIPSEB)
#if defined (SYSTYPE_SYSV)
printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
#endif
#if defined (SYSTYPE_SVR4)
printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
#endif
#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
#endif
#endif
exit (-1);
}
EOF
$CC_FOR_BUILD -o $dummy $dummy.c &&
dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
SYSTEM_NAME=`$dummy $dummyarg` &&
{ echo "$SYSTEM_NAME"; exit; }
echo mips-mips-riscos${UNAME_RELEASE}
exit ;;
Motorola:PowerMAX_OS:*:*)
echo powerpc-motorola-powermax
exit ;;
Motorola:*:4.3:PL8-*)
echo powerpc-harris-powermax
exit ;;
Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
echo powerpc-harris-powermax
exit ;;
Night_Hawk:Power_UNIX:*:*)
echo powerpc-harris-powerunix
exit ;;
m88k:CX/UX:7*:*)
echo m88k-harris-cxux7
exit ;;
m88k:*:4*:R4*)
echo m88k-motorola-sysv4
exit ;;
m88k:*:3*:R3*)
echo m88k-motorola-sysv3
exit ;;
AViiON:dgux:*:*)
# DG/UX returns AViiON for all architectures
UNAME_PROCESSOR=`/usr/bin/uname -p`
if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
then
if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
[ ${TARGET_BINARY_INTERFACE}x = x ]
then
echo m88k-dg-dgux${UNAME_RELEASE}
else
echo m88k-dg-dguxbcs${UNAME_RELEASE}
fi
else
echo i586-dg-dgux${UNAME_RELEASE}
fi
exit ;;
M88*:DolphinOS:*:*) # DolphinOS (SVR3)
echo m88k-dolphin-sysv3
exit ;;
M88*:*:R3*:*)
# Delta 88k system running SVR3
echo m88k-motorola-sysv3
exit ;;
XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
echo m88k-tektronix-sysv3
exit ;;
Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
echo m68k-tektronix-bsd
exit ;;
*:IRIX*:*:*)
echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
exit ;;
????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
exit ;; # Note that: echo "'`uname -s`'" gives 'AIX '
i*86:AIX:*:*)
echo i386-ibm-aix
exit ;;
ia64:AIX:*:*)
if [ -x /usr/bin/oslevel ] ; then
IBM_REV=`/usr/bin/oslevel`
else
IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
fi
echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
exit ;;
*:AIX:2:3)
if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
#include
main()
{
if (!__power_pc())
exit(1);
puts("powerpc-ibm-aix3.2.5");
exit(0);
}
EOF
if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
then
echo "$SYSTEM_NAME"
else
echo rs6000-ibm-aix3.2.5
fi
elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
echo rs6000-ibm-aix3.2.4
else
echo rs6000-ibm-aix3.2
fi
exit ;;
*:AIX:*:[4567])
IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
IBM_ARCH=rs6000
else
IBM_ARCH=powerpc
fi
if [ -x /usr/bin/oslevel ] ; then
IBM_REV=`/usr/bin/oslevel`
else
IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
fi
echo ${IBM_ARCH}-ibm-aix${IBM_REV}
exit ;;
*:AIX:*:*)
echo rs6000-ibm-aix
exit ;;
ibmrt:4.4BSD:*|romp-ibm:BSD:*)
echo romp-ibm-bsd4.4
exit ;;
ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
exit ;; # report: romp-ibm BSD 4.3
*:BOSX:*:*)
echo rs6000-bull-bosx
exit ;;
DPX/2?00:B.O.S.:*:*)
echo m68k-bull-sysv3
exit ;;
9000/[34]??:4.3bsd:1.*:*)
echo m68k-hp-bsd
exit ;;
hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
echo m68k-hp-bsd4.4
exit ;;
9000/[34678]??:HP-UX:*:*)
HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
case "${UNAME_MACHINE}" in
9000/31? ) HP_ARCH=m68000 ;;
9000/[34]?? ) HP_ARCH=m68k ;;
9000/[678][0-9][0-9])
if [ -x /usr/bin/getconf ]; then
sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
case "${sc_cpu_version}" in
523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
532) # CPU_PA_RISC2_0
case "${sc_kernel_bits}" in
32) HP_ARCH="hppa2.0n" ;;
64) HP_ARCH="hppa2.0w" ;;
'') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
esac ;;
esac
fi
if [ "${HP_ARCH}" = "" ]; then
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
#define _HPUX_SOURCE
#include
#include
int main ()
{
#if defined(_SC_KERNEL_BITS)
long bits = sysconf(_SC_KERNEL_BITS);
#endif
long cpu = sysconf (_SC_CPU_VERSION);
switch (cpu)
{
case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
case CPU_PA_RISC2_0:
#if defined(_SC_KERNEL_BITS)
switch (bits)
{
case 64: puts ("hppa2.0w"); break;
case 32: puts ("hppa2.0n"); break;
default: puts ("hppa2.0"); break;
} break;
#else /* !defined(_SC_KERNEL_BITS) */
puts ("hppa2.0"); break;
#endif
default: puts ("hppa1.0"); break;
}
exit (0);
}
EOF
(CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
test -z "$HP_ARCH" && HP_ARCH=hppa
fi ;;
esac
if [ ${HP_ARCH} = "hppa2.0w" ]
then
eval $set_cc_for_build
# hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
# 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
# generating 64-bit code. GNU and HP use different nomenclature:
#
# $ CC_FOR_BUILD=cc ./config.guess
# => hppa2.0w-hp-hpux11.23
# $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
# => hppa64-hp-hpux11.23
if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
grep -q __LP64__
then
HP_ARCH="hppa2.0w"
else
HP_ARCH="hppa64"
fi
fi
echo ${HP_ARCH}-hp-hpux${HPUX_REV}
exit ;;
ia64:HP-UX:*:*)
HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
echo ia64-hp-hpux${HPUX_REV}
exit ;;
3050*:HI-UX:*:*)
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
#include
int
main ()
{
long cpu = sysconf (_SC_CPU_VERSION);
/* The order matters, because CPU_IS_HP_MC68K erroneously returns
true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
results, however. */
if (CPU_IS_PA_RISC (cpu))
{
switch (cpu)
{
case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
default: puts ("hppa-hitachi-hiuxwe2"); break;
}
}
else if (CPU_IS_HP_MC68K (cpu))
puts ("m68k-hitachi-hiuxwe2");
else puts ("unknown-hitachi-hiuxwe2");
exit (0);
}
EOF
$CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
{ echo "$SYSTEM_NAME"; exit; }
echo unknown-hitachi-hiuxwe2
exit ;;
9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
echo hppa1.1-hp-bsd
exit ;;
9000/8??:4.3bsd:*:*)
echo hppa1.0-hp-bsd
exit ;;
*9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
echo hppa1.0-hp-mpeix
exit ;;
hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
echo hppa1.1-hp-osf
exit ;;
hp8??:OSF1:*:*)
echo hppa1.0-hp-osf
exit ;;
i*86:OSF1:*:*)
if [ -x /usr/sbin/sysversion ] ; then
echo ${UNAME_MACHINE}-${VENDOR}-osf1mk
else
echo ${UNAME_MACHINE}-${VENDOR}-osf1
fi
exit ;;
parisc*:Lites*:*:*)
echo hppa1.1-hp-lites
exit ;;
C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
echo c1-convex-bsd
exit ;;
C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
if getsysinfo -f scalar_acc
then echo c32-convex-bsd
else echo c2-convex-bsd
fi
exit ;;
C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
echo c34-convex-bsd
exit ;;
C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
echo c38-convex-bsd
exit ;;
C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
echo c4-convex-bsd
exit ;;
CRAY*Y-MP:*:*:*)
echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
exit ;;
CRAY*[A-Z]90:*:*:*)
echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
-e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
-e 's/\.[^.]*$/.X/'
exit ;;
CRAY*TS:*:*:*)
echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
exit ;;
CRAY*T3E:*:*:*)
echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
exit ;;
CRAY*SV1:*:*:*)
echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
exit ;;
*:UNICOS/mp:*:*)
echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
exit ;;
F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
exit ;;
5000:UNIX_System_V:4.*:*)
FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
exit ;;
i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
exit ;;
sparc*:BSD/OS:*:*)
echo sparc-${VENDOR}-bsdi${UNAME_RELEASE}
exit ;;
*:BSD/OS:*:*)
echo ${UNAME_MACHINE}-${VENDOR}-bsdi${UNAME_RELEASE}
exit ;;
*:FreeBSD:*:*)
UNAME_PROCESSOR=`/usr/bin/uname -p`
case ${UNAME_PROCESSOR} in
amd64)
echo x86_64-${VENDOR}-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
*)
echo ${UNAME_PROCESSOR}-${VENDOR}-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
esac
exit ;;
i*:CYGWIN*:*)
echo ${UNAME_MACHINE}-pc-cygwin
exit ;;
*:MINGW*:*)
echo ${UNAME_MACHINE}-pc-mingw32
exit ;;
i*:MSYS*:*)
echo ${UNAME_MACHINE}-pc-msys
exit ;;
i*:windows32*:*)
# uname -m includes "-pc" on this system.
echo ${UNAME_MACHINE}-mingw32
exit ;;
i*:PW*:*)
echo ${UNAME_MACHINE}-pc-pw32
exit ;;
*:Interix*:*)
case ${UNAME_MACHINE} in
x86)
echo i586-pc-interix${UNAME_RELEASE}
exit ;;
authenticamd | genuineintel | EM64T)
echo x86_64-${VENDOR}-interix${UNAME_RELEASE}
exit ;;
IA64)
echo ia64-${VENDOR}-interix${UNAME_RELEASE}
exit ;;
esac ;;
[345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
echo i${UNAME_MACHINE}-pc-mks
exit ;;
8664:Windows_NT:*)
echo x86_64-pc-mks
exit ;;
i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
# How do we know it's Interix rather than the generic POSIX subsystem?
# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
# UNAME_MACHINE based on the output of uname instead of i386?
echo i586-pc-interix
exit ;;
i*:UWIN*:*)
echo ${UNAME_MACHINE}-pc-uwin
exit ;;
amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
echo x86_64-${VENDOR}-cygwin
exit ;;
p*:CYGWIN*:*)
echo powerpcle-${VENDOR}-cygwin
exit ;;
prep*:SunOS:5.*:*)
echo powerpcle-${VENDOR}-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit ;;
*:GNU:*:*)
# the GNU system
echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-${VENDOR}-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
exit ;;
*:GNU/*:*:*)
# other systems with GNU libc and userland
echo ${UNAME_MACHINE}-${VENDOR}-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
exit ;;
i*86:Minix:*:*)
echo ${UNAME_MACHINE}-pc-minix
exit ;;
aarch64:Linux:*:*)
echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
exit ;;
aarch64_be:Linux:*:*)
UNAME_MACHINE=aarch64_be
echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
exit ;;
alpha:Linux:*:*)
case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
EV5) UNAME_MACHINE=alphaev5 ;;
EV56) UNAME_MACHINE=alphaev56 ;;
PCA56) UNAME_MACHINE=alphapca56 ;;
PCA57) UNAME_MACHINE=alphapca56 ;;
EV6) UNAME_MACHINE=alphaev6 ;;
EV67) UNAME_MACHINE=alphaev67 ;;
EV68*) UNAME_MACHINE=alphaev68 ;;
esac
objdump --private-headers /bin/sh | grep -q ld.so.1
if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu${LIBC}
exit ;;
arm*:Linux:*:*)
eval $set_cc_for_build
if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_EABI__
then
echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
else
if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_PCS_VFP
then
echo ${UNAME_MACHINE}-${VENDOR}-linux-gnueabi
else
echo ${UNAME_MACHINE}-${VENDOR}-linux-gnueabihf
fi
fi
exit ;;
avr32*:Linux:*:*)
echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
exit ;;
cris:Linux:*:*)
echo ${UNAME_MACHINE}-axis-linux-gnu
exit ;;
crisv32:Linux:*:*)
echo ${UNAME_MACHINE}-axis-linux-gnu
exit ;;
frv:Linux:*:*)
echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
exit ;;
hexagon:Linux:*:*)
echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
exit ;;
i*86:Linux:*:*)
LIBC=gnu
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
#ifdef __dietlibc__
LIBC=dietlibc
#endif
EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
exit ;;
ia64:Linux:*:*)
echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
exit ;;
m32r*:Linux:*:*)
echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
exit ;;
m68*:Linux:*:*)
echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
exit ;;
mips:Linux:*:* | mips64:Linux:*:*)
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
#undef CPU
#undef ${UNAME_MACHINE}
#undef ${UNAME_MACHINE}el
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
CPU=${UNAME_MACHINE}el
#else
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
CPU=${UNAME_MACHINE}
#else
CPU=
#endif
#endif
EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
test x"${CPU}" != x && { echo "${CPU}-${VENDOR}-linux-gnu"; exit; }
;;
or32:Linux:*:*)
echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
exit ;;
padre:Linux:*:*)
echo sparc-${VENDOR}-linux-gnu
exit ;;
parisc64:Linux:*:* | hppa64:Linux:*:*)
echo hppa64-${VENDOR}-linux-gnu
exit ;;
parisc:Linux:*:* | hppa:Linux:*:*)
# Look for CPU level
case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
PA7*) echo hppa1.1-${VENDOR}-linux-gnu ;;
PA8*) echo hppa2.0-${VENDOR}-linux-gnu ;;
*) echo hppa-${VENDOR}-linux-gnu ;;
esac
exit ;;
ppc64:Linux:*:*)
echo powerpc64-${VENDOR}-linux-gnu
exit ;;
ppc:Linux:*:*)
echo powerpc-${VENDOR}-linux-gnu
exit ;;
s390:Linux:*:* | s390x:Linux:*:*)
echo ${UNAME_MACHINE}-ibm-linux
exit ;;
sh64*:Linux:*:*)
echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
exit ;;
sh*:Linux:*:*)
echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
exit ;;
sparc:Linux:*:* | sparc64:Linux:*:*)
echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
exit ;;
tile*:Linux:*:*)
echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
exit ;;
vax:Linux:*:*)
echo ${UNAME_MACHINE}-dec-linux-gnu
exit ;;
x86_64:Linux:*:*)
echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
exit ;;
xtensa*:Linux:*:*)
echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
exit ;;
i*86:DYNIX/ptx:4*:*)
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
# earlier versions are messed up and put the nodename in both
# sysname and nodename.
echo i386-sequent-sysv4
exit ;;
i*86:UNIX_SV:4.2MP:2.*)
# Unixware is an offshoot of SVR4, but it has its own version
# number series starting with 2...
# I am not positive that other SVR4 systems won't match this,
# I just have to hope. -- rms.
# Use sysv4.2uw... so that sysv4* matches it.
echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
exit ;;
i*86:OS/2:*:*)
# If we were able to find `uname', then EMX Unix compatibility
# is probably installed.
echo ${UNAME_MACHINE}-pc-os2-emx
exit ;;
i*86:XTS-300:*:STOP)
echo ${UNAME_MACHINE}-${VENDOR}-stop
exit ;;
i*86:atheos:*:*)
echo ${UNAME_MACHINE}-${VENDOR}-atheos
exit ;;
i*86:syllable:*:*)
echo ${UNAME_MACHINE}-pc-syllable
exit ;;
i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
echo i386-${VENODR}-lynxos${UNAME_RELEASE}
exit ;;
i*86:*DOS:*:*)
echo ${UNAME_MACHINE}-pc-msdosdjgpp
exit ;;
i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
else
echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
fi
exit ;;
i*86:*:5:[678]*)
# UnixWare 7.x, OpenUNIX and OpenServer 6.
case `/bin/uname -X | grep "^Machine"` in
*486*) UNAME_MACHINE=i486 ;;
*Pentium) UNAME_MACHINE=i586 ;;
*Pent*|*Celeron) UNAME_MACHINE=i686 ;;
esac
echo ${UNAME_MACHINE}-${VENDOR}-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
exit ;;
i*86:*:3.2:*)
if test -f /usr/options/cb.name; then
UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then
UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
(/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
&& UNAME_MACHINE=i586
(/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
&& UNAME_MACHINE=i686
(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
&& UNAME_MACHINE=i686
echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
else
echo ${UNAME_MACHINE}-pc-sysv32
fi
exit ;;
pc:*:*:*)
# Left here for compatibility:
# uname -m prints for DJGPP always 'pc', but it prints nothing about
# the processor, so we play safe by assuming i586.
# Note: whatever this is, it MUST be the same as what config.sub
# prints for the "djgpp" host, or else GDB configury will decide that
# this is a cross-build.
echo i586-pc-msdosdjgpp
exit ;;
Intel:Mach:3*:*)
echo i386-pc-mach3
exit ;;
paragon:*:*:*)
echo i860-intel-osf1
exit ;;
i860:*:4.*:*) # i860-SVR4
if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
else # Add other i860-SVR4 vendors below as they are discovered.
echo i860-${VENODR}-sysv${UNAME_RELEASE} # Unknown i860-SVR4
fi
exit ;;
mini*:CTIX:SYS*5:*)
# "miniframe"
echo m68010-convergent-sysv
exit ;;
mc68k:UNIX:SYSTEM5:3.51m)
echo m68k-convergent-sysv
exit ;;
M680?0:D-NIX:5.3:*)
echo m68k-diab-dnix
exit ;;
M68*:*:R3V[5678]*:*)
test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
OS_REL=''
test -r /etc/.relid \
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
&& { echo i486-ncr-sysv4.3${OS_REL}; exit; }
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
&& { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
&& { echo i486-ncr-sysv4; exit; } ;;
NCR*:*:4.2:* | MPRAS*:*:4.2:*)
OS_REL='.3'
test -r /etc/.relid \
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
&& { echo i486-ncr-sysv4.3${OS_REL}; exit; }
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
&& { echo i586-ncr-sysv4.3${OS_REL}; exit; }
/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
&& { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
echo m68k-${VENDOR}-lynxos${UNAME_RELEASE}
exit ;;
mc68030:UNIX_System_V:4.*:*)
echo m68k-atari-sysv4
exit ;;
TSUNAMI:LynxOS:2.*:*)
echo sparc-${VENDOR}-lynxos${UNAME_RELEASE}
exit ;;
rs6000:LynxOS:2.*:*)
echo rs6000-${VENDOR}-lynxos${UNAME_RELEASE}
exit ;;
PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
echo powerpc-${VENDOR}-lynxos${UNAME_RELEASE}
exit ;;
SM[BE]S:UNIX_SV:*:*)
echo mips-dde-sysv${UNAME_RELEASE}
exit ;;
RM*:ReliantUNIX-*:*:*)
echo mips-sni-sysv4
exit ;;
RM*:SINIX-*:*:*)
echo mips-sni-sysv4
exit ;;
*:SINIX-*:*:*)
if uname -p 2>/dev/null >/dev/null ; then
UNAME_MACHINE=`(uname -p) 2>/dev/null`
echo ${UNAME_MACHINE}-sni-sysv4
else
echo ns32k-sni-sysv
fi
exit ;;
PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
# says
echo i586-unisys-sysv4
exit ;;
*:UNIX_System_V:4*:FTX*)
# From Gerald Hewes .
# How about differentiating between stratus architectures? -djm
echo hppa1.1-stratus-sysv4
exit ;;
*:*:*:FTX*)
# From seanf@swdc.stratus.com.
echo i860-stratus-sysv4
exit ;;
i*86:VOS:*:*)
# From Paul.Green@stratus.com.
echo ${UNAME_MACHINE}-stratus-vos
exit ;;
*:VOS:*:*)
# From Paul.Green@stratus.com.
echo hppa1.1-stratus-vos
exit ;;
mc68*:A/UX:*:*)
echo m68k-apple-aux${UNAME_RELEASE}
exit ;;
news*:NEWS-OS:6*:*)
echo mips-sony-newsos6
exit ;;
R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
if [ -d /usr/nec ]; then
echo mips-nec-sysv${UNAME_RELEASE}
else
echo mips-${VENDOR}-sysv${UNAME_RELEASE}
fi
exit ;;
BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
echo powerpc-be-beos
exit ;;
BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
echo powerpc-apple-beos
exit ;;
BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
echo i586-pc-beos
exit ;;
BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
echo i586-pc-haiku
exit ;;
SX-4:SUPER-UX:*:*)
echo sx4-nec-superux${UNAME_RELEASE}
exit ;;
SX-5:SUPER-UX:*:*)
echo sx5-nec-superux${UNAME_RELEASE}
exit ;;
SX-6:SUPER-UX:*:*)
echo sx6-nec-superux${UNAME_RELEASE}
exit ;;
SX-7:SUPER-UX:*:*)
echo sx7-nec-superux${UNAME_RELEASE}
exit ;;
SX-8:SUPER-UX:*:*)
echo sx8-nec-superux${UNAME_RELEASE}
exit ;;
SX-8R:SUPER-UX:*:*)
echo sx8r-nec-superux${UNAME_RELEASE}
exit ;;
Power*:Rhapsody:*:*)
echo powerpc-apple-rhapsody${UNAME_RELEASE}
exit ;;
*:Rhapsody:*:*)
echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
exit ;;
*:Darwin:*:*)
UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
case $UNAME_PROCESSOR in
i386)
eval $set_cc_for_build
if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
(CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
grep IS_64BIT_ARCH >/dev/null
then
UNAME_PROCESSOR="x86_64"
fi
fi ;;
unknown) UNAME_PROCESSOR=powerpc ;;
esac
echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
exit ;;
*:procnto*:*:* | *:QNX:[0123456789]*:*)
UNAME_PROCESSOR=`uname -p`
if test "$UNAME_PROCESSOR" = "x86"; then
UNAME_PROCESSOR=i386
UNAME_MACHINE=pc
fi
echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
exit ;;
*:QNX:*:4*)
echo i386-pc-qnx
exit ;;
NEO-?:NONSTOP_KERNEL:*:*)
echo neo-tandem-nsk${UNAME_RELEASE}
exit ;;
NSE-?:NONSTOP_KERNEL:*:*)
echo nse-tandem-nsk${UNAME_RELEASE}
exit ;;
NSR-?:NONSTOP_KERNEL:*:*)
echo nsr-tandem-nsk${UNAME_RELEASE}
exit ;;
*:NonStop-UX:*:*)
echo mips-compaq-nonstopux
exit ;;
BS2000:POSIX*:*:*)
echo bs2000-siemens-sysv
exit ;;
DS/*:UNIX_System_V:*:*)
echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
exit ;;
*:Plan9:*:*)
# "uname -m" is not consistent, so use $cputype instead. 386
# is converted to i386 for consistency with other x86
# operating systems.
if test "$cputype" = "386"; then
UNAME_MACHINE=i386
else
UNAME_MACHINE="$cputype"
fi
echo ${UNAME_MACHINE}-${VENDOR}-plan9
exit ;;
*:TOPS-10:*:*)
echo pdp10-${VENDOR}-tops10
exit ;;
*:TENEX:*:*)
echo pdp10-${VENDOR}-tenex
exit ;;
KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
echo pdp10-dec-tops20
exit ;;
XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
echo pdp10-xkl-tops20
exit ;;
*:TOPS-20:*:*)
echo pdp10-${VENDOR}-tops20
exit ;;
*:ITS:*:*)
echo pdp10-${VENDOR}-its
exit ;;
SEI:*:*:SEIUX)
echo mips-sei-seiux${UNAME_RELEASE}
exit ;;
*:DragonFly:*:*)
echo ${UNAME_MACHINE}-${VENDOR}-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
exit ;;
*:*VMS:*:*)
UNAME_MACHINE=`(uname -p) 2>/dev/null`
case "${UNAME_MACHINE}" in
A*) echo alpha-dec-vms ; exit ;;
I*) echo ia64-dec-vms ; exit ;;
V*) echo vax-dec-vms ; exit ;;
esac ;;
*:XENIX:*:SysV)
echo i386-pc-xenix
exit ;;
i*86:skyos:*:*)
echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
exit ;;
i*86:rdos:*:*)
echo ${UNAME_MACHINE}-pc-rdos
exit ;;
i*86:AROS:*:*)
echo ${UNAME_MACHINE}-pc-aros
exit ;;
x86_64:VMkernel:*:*)
echo ${UNAME_MACHINE}-${VENDOR}-esx
exit ;;
esac
#echo '(No uname command or uname output not recognized.)' 1>&2
#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
eval $set_cc_for_build
cat >$dummy.c <
# include
#endif
main ()
{
#if defined (sony)
#if defined (MIPSEB)
/* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
I don't know.... */
printf ("mips-sony-bsd\n"); exit (0);
#else
#include
printf ("m68k-sony-newsos%s\n",
#ifdef NEWSOS4
"4"
#else
""
#endif
); exit (0);
#endif
#endif
#if defined (__arm) && defined (__acorn) && defined (__unix)
printf ("arm-acorn-riscix\n"); exit (0);
#endif
#if defined (hp300) && !defined (hpux)
printf ("m68k-hp-bsd\n"); exit (0);
#endif
#if defined (NeXT)
#if !defined (__ARCHITECTURE__)
#define __ARCHITECTURE__ "m68k"
#endif
int version;
version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
if (version < 4)
printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
else
printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
exit (0);
#endif
#if defined (MULTIMAX) || defined (n16)
#if defined (UMAXV)
printf ("ns32k-encore-sysv\n"); exit (0);
#else
#if defined (CMU)
printf ("ns32k-encore-mach\n"); exit (0);
#else
printf ("ns32k-encore-bsd\n"); exit (0);
#endif
#endif
#endif
#if defined (__386BSD__)
printf ("i386-pc-bsd\n"); exit (0);
#endif
#if defined (sequent)
#if defined (i386)
printf ("i386-sequent-dynix\n"); exit (0);
#endif
#if defined (ns32000)
printf ("ns32k-sequent-dynix\n"); exit (0);
#endif
#endif
#if defined (_SEQUENT_)
struct utsname un;
uname(&un);
if (strncmp(un.version, "V2", 2) == 0) {
printf ("i386-sequent-ptx2\n"); exit (0);
}
if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
printf ("i386-sequent-ptx1\n"); exit (0);
}
printf ("i386-sequent-ptx\n"); exit (0);
#endif
#if defined (vax)
# if !defined (ultrix)
# include
# if defined (BSD)
# if BSD == 43
printf ("vax-dec-bsd4.3\n"); exit (0);
# else
# if BSD == 199006
printf ("vax-dec-bsd4.3reno\n"); exit (0);
# else
printf ("vax-dec-bsd\n"); exit (0);
# endif
# endif
# else
printf ("vax-dec-bsd\n"); exit (0);
# endif
# else
printf ("vax-dec-ultrix\n"); exit (0);
# endif
#endif
#if defined (alliant) && defined (i860)
printf ("i860-alliant-bsd\n"); exit (0);
#endif
exit (1);
}
EOF
$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
{ echo "$SYSTEM_NAME"; exit; }
# Apollos put the system type in the environment.
test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
# Convex versions that predate uname can use getsysinfo(1)
if [ -x /usr/convex/getsysinfo ]
then
case `getsysinfo -f cpu_type` in
c1*)
echo c1-convex-bsd
exit ;;
c2*)
if getsysinfo -f scalar_acc
then echo c32-convex-bsd
else echo c2-convex-bsd
fi
exit ;;
c34*)
echo c34-convex-bsd
exit ;;
c38*)
echo c38-convex-bsd
exit ;;
c4*)
echo c4-convex-bsd
exit ;;
esac
fi
cat >&2 < in order to provide the needed
information to handle your system.
config.guess timestamp = $timestamp
uname -m = `(uname -m) 2>/dev/null || echo unknown`
uname -r = `(uname -r) 2>/dev/null || echo unknown`
uname -s = `(uname -s) 2>/dev/null || echo unknown`
uname -v = `(uname -v) 2>/dev/null || echo unknown`
/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
/bin/uname -X = `(/bin/uname -X) 2>/dev/null`
hostinfo = `(hostinfo) 2>/dev/null`
/bin/universe = `(/bin/universe) 2>/dev/null`
/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
/bin/arch = `(/bin/arch) 2>/dev/null`
/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
UNAME_MACHINE = ${UNAME_MACHINE}
UNAME_RELEASE = ${UNAME_RELEASE}
UNAME_SYSTEM = ${UNAME_SYSTEM}
UNAME_VERSION = ${UNAME_VERSION}
EOF
exit 1
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "timestamp='"
# time-stamp-format: "%:y-%02m-%02d"
# time-stamp-end: "'"
# End:
bareos-Release-14.2.6/autoconf/config.h.in 0000664 0000000 0000000 00000101350 12630115627 0020301 0 ustar 00root root 0000000 0000000 /* autoconf/config.h.in. Generated from autoconf/configure.in by autoheader. */
/* Define if building universal (internal helper macro) */
#undef AC_APPLE_UNIVERSAL_BUILD
/* Define to 1 if the `closedir' function returns void instead of `int'. */
#undef CLOSEDIR_VOID
/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
systems. This function is required for `alloca.c' support on those systems.
*/
#undef CRAY_STACKSEG_END
/* Define to 1 if using `alloca.c'. */
#undef C_ALLOCA
/* Define to 1 if translation of program messages to the user's native
language is requested. */
#undef ENABLE_NLS
/* Define to 1 if you have AIX3 statfs to get filesystem type */
#undef FSTYPE_AIX_STATFS
/* Define to 1 if you have Ultrix getmnt to get filesystem type */
#undef FSTYPE_GETMNT
/* Define to 1 if you have 4.3BSD getmntent to get filesystem type */
#undef FSTYPE_MNTENT
/* Define to 1 if you have 4.4BSD and OSF1 statfs to get filesystem type */
#undef FSTYPE_STATFS
/* Define to 1 if you have SVR4 statvfs to get filesystem type */
#undef FSTYPE_STATVFS
/* Define to 1 if you have SVR3.2 statfs to get filesystem type */
#undef FSTYPE_USG_STATFS
/* Define to 1 if you want Normal acl support */
#undef HAVE_ACL
/* Defines if your system have the ACL_TYPE_DEFAULT_DIR acl type */
#undef HAVE_ACL_TYPE_DEFAULT_DIR
/* Defines if your system have the ACL_TYPE_EXTENDED acl type */
#undef HAVE_ACL_TYPE_EXTENDED
/* Defines if your system have the ACL_TYPE_NFS4 acl type */
#undef HAVE_ACL_TYPE_NFS4
/* Set if addrtosymstr exists */
#undef HAVE_ADDRTOSYMSTR
/* Define to 1 if you have the `add_proplist_entry' function. */
#undef HAVE_ADD_PROPLIST_ENTRY
/* Define to 1 if your system has AFS support */
#undef HAVE_AFS
/* Andrew FileSystem ACL support */
#undef HAVE_AFS_ACL
/* Define to 1 if you have the header file. */
#undef HAVE_AFS_AFSINT_H
/* Define to 1 if you have the header file. */
#undef HAVE_AFS_VENUS_H
/* Define to 1 if you are running AIX */
#undef HAVE_AIX_OS
/* Define to 1 if you have `alloca', as a function or macro. */
#undef HAVE_ALLOCA
/* Define to 1 if you have and it should be used (not on Ultrix).
*/
#undef HAVE_ALLOCA_H
/* Define to 1 if you have the header file. */
#undef HAVE_ARGZ_H
/* Define to 1 if you have the header file. */
#undef HAVE_ARPA_NAMESER_H
/* Define to 1 if you have the `asprintf' function. */
#undef HAVE_ASPRINTF
/* Define to 1 if you have the header file. */
#undef HAVE_ASSERT_H
/* Define to 1 if you have the header file. */
#undef HAVE_ATTR_H
/* Define to 1 if you have the `backtrace' function. */
#undef HAVE_BACKTRACE
/* Define to 1 if you have the `backtrace_symbols' function. */
#undef HAVE_BACKTRACE_SYMBOLS
/* Define to 1 if bat Qt4 GUI support should be enabled */
#undef HAVE_BAT
/* Define to 1 if you have the `bcopy' function. */
#undef HAVE_BCOPY
/* Big Endian */
#undef HAVE_BIG_ENDIAN
/* Define to 1 if you are running BSDI */
#undef HAVE_BSDI_OS
/* Define to 1 if you have 4.2BSD signals */
#undef HAVE_BSD_SIGNALS
/* Define to 1 if you have the header file. */
#undef HAVE_CAMLIB_H
/* Define to 1 if you have the header file. */
#undef HAVE_CAM_SCSI_SCSI_MESSAGE_H
/* Define to 1 if you have cephfs lib */
#undef HAVE_CEPHFS
/* Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the
CoreFoundation framework. */
#undef HAVE_CFLOCALECOPYCURRENT
/* Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in
the CoreFoundation framework. */
#undef HAVE_CFPREFERENCESCOPYAPPVALUE
/* Define to 1 if you have the `chflags' function. */
#undef HAVE_CHFLAGS
/* Define to 1 if you have the `closefrom' function. */
#undef HAVE_CLOSEFROM
/* Define to 1 if you have compressBound */
#undef HAVE_COMPRESS_BOUND
/* Define to 1 if Bareos conio support enabled */
#undef HAVE_CONIO
/* Define to 1 if cplus_demangle exists in libdemangle */
#undef HAVE_CPLUS_DEMANGLE
/* Define to 1 if encryption support should be enabled */
#undef HAVE_CRYPTO
/* Define to 1 if you have the header file. */
#undef HAVE_CURSES_H
/* Define to 1 if you have the header file. */
#undef HAVE_CXXABI_H
/* Define to 1 if you use CYGWIN */
#undef HAVE_CYGWIN
/* Define to 1 if you are running OSX */
#undef HAVE_DARWIN_OS
/* Define if the GNU dcgettext() function is already present or preinstalled.
*/
#undef HAVE_DCGETTEXT
/* Define to 1 if you have the declaration of `cygwin_conv_path', and to 0 if
you don't. */
#undef HAVE_DECL_CYGWIN_CONV_PATH
/* Define to 1 if you have the declaration of `feof_unlocked', and to 0 if you
don't. */
#undef HAVE_DECL_FEOF_UNLOCKED
/* Define to 1 if you have the declaration of `fgets_unlocked', and to 0 if
you don't. */
#undef HAVE_DECL_FGETS_UNLOCKED
/* Define to 1 if you have the declaration of `getc_unlocked', and to 0 if you
don't. */
#undef HAVE_DECL_GETC_UNLOCKED
/* Define to 1 if you have the declaration of `tzname', and to 0 if you don't.
*/
#undef HAVE_DECL_TZNAME
/* Define to 1 if you have the declaration of `_snprintf', and to 0 if you
don't. */
#undef HAVE_DECL__SNPRINTF
/* Define to 1 if you have the declaration of `_snwprintf', and to 0 if you
don't. */
#undef HAVE_DECL__SNWPRINTF
/* Define to 1 if you have the header file. */
#undef HAVE_DEMANGLE_H
/* Define to 1 if you have the header file. */
#undef HAVE_DEV_SCSIPI_SCSIPI_ALL_H
/* Define to 1 if you have the header file, and it defines `DIR'.
*/
#undef HAVE_DIRENT_H
/* Define if you have the GNU dld library. */
#undef HAVE_DLD
/* Define to 1 if you have the `dlerror' function. */
#undef HAVE_DLERROR
/* Define to 1 if you have the header file. */
#undef HAVE_DLFCN_H
/* Define to 1 if you have the header file. */
#undef HAVE_DL_H
/* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */
#undef HAVE_DOPRNT
/* Define if you have the _dyld_func_lookup function. */
#undef HAVE_DYLD
/* Define to 1 if dynamic loading of catalog backends is enabled */
#undef HAVE_DYNAMIC_CATS_BACKENDS
/* Define to 1 if dynamic loading of storage backends is enabled */
#undef HAVE_DYNAMIC_SD_BACKENDS
/* Set if you have an Embedded MySQL Database */
#undef HAVE_EMBEDDED_MYSQL
/* Define to 1 if OpenSSL library has ENGINE_load_pk11 available */
#undef HAVE_ENGINE_LOAD_PK11
/* Define to 1 if you have the header file. */
#undef HAVE_EXECINFO_H
/* Define to 1 if you have the `extattr_get_file' function. */
#undef HAVE_EXTATTR_GET_FILE
/* Define to 1 if you have the `extattr_get_link' function. */
#undef HAVE_EXTATTR_GET_LINK
/* Define to 1 if you have the `extattr_list_file' function. */
#undef HAVE_EXTATTR_LIST_FILE
/* Define to 1 if you have the `extattr_list_link' function. */
#undef HAVE_EXTATTR_LIST_LINK
/* Define to 1 if you have the `extattr_namespace_to_string' function. */
#undef HAVE_EXTATTR_NAMESPACE_TO_STRING
/* Define to 1 if you have the `extattr_set_file' function. */
#undef HAVE_EXTATTR_SET_FILE
/* Define to 1 if you have the `extattr_set_link' function. */
#undef HAVE_EXTATTR_SET_LINK
/* Define to 1 if you have the `extattr_string_to_namespace' function. */
#undef HAVE_EXTATTR_STRING_TO_NAMESPACE
/* Define to 1 if you want Extended acl support */
#undef HAVE_EXTENDED_ACL
/* Define to 1 if you have fastlz lib */
#undef HAVE_FASTLZ
/* Define to 1 if you have the header file. */
#undef HAVE_FASTLZLIB_H
/* Define to 1 if you have the `fchdir' function. */
#undef HAVE_FCHDIR
/* Define to 1 if you have the `fchmod' function. */
#undef HAVE_FCHMOD
/* Define to 1 if you have the `fchown' function. */
#undef HAVE_FCHOWN
/* Define to 1 if you have the `fchownat' function. */
#undef HAVE_FCHOWNAT
/* Define to 1 if you have the fcntl F_CLOSEM flag */
#undef HAVE_FCNTL_F_CLOSEM
/* Define to 1 if you have the header file. */
#undef HAVE_FCNTL_H
/* Define to 1 if you have the `fdatasync' function. */
#undef HAVE_FDATASYNC
/* Define to 1 if you have the `fork' function. */
#undef HAVE_FORK
/* Define to 1 if you are running FreeBSD */
#undef HAVE_FREEBSD_OS
/* Define to 1 if you have the `fseeko' function. */
#undef HAVE_FSEEKO
/* Define to 1 if you have the `fstatat' function. */
#undef HAVE_FSTATAT
/* Define to 1 if you have the `futimens' function. */
#undef HAVE_FUTIMENS
/* Define to 1 if you have the `futimes' function. */
#undef HAVE_FUTIMES
/* Define to 1 if you have the `futimesat' function. */
#undef HAVE_FUTIMESAT
/* Define to 1 if you have the `fwprintf' function. */
#undef HAVE_FWPRINTF
/* Define to 1 if you have the `gai_strerror' function. */
#undef HAVE_GAI_STRERROR
/* Define to 1 if you use gcc. */
#undef HAVE_GCC
/* Define to 1 if you have the `getaddrinfo' function. */
#undef HAVE_GETADDRINFO
/* Define to 1 if you have the `getcwd' function. */
#undef HAVE_GETCWD
/* Define to 1 if you have the `getea' function. */
#undef HAVE_GETEA
/* Define to 1 if you have the `getegid' function. */
#undef HAVE_GETEGID
/* Define to 1 if you have the `geteuid' function. */
#undef HAVE_GETEUID
/* Define to 1 if you have the `getgid' function. */
#undef HAVE_GETGID
/* Define to 1 if you have the `gethostbyname2' function. */
#undef HAVE_GETHOSTBYNAME2
/* Define to 1 if you have the `gethostbyname_r' function. */
#undef HAVE_GETHOSTBYNAME_R
/* Define to 1 if you have the `gethostid' function. */
#undef HAVE_GETHOSTID
/* Define to 1 if you have the `gethostname' function. */
#undef HAVE_GETHOSTNAME
/* Define to 1 if you have the `getmntent' function. */
#undef HAVE_GETMNTENT
/* Define to 1 if you have the `getmntinfo' function. */
#undef HAVE_GETMNTINFO
/* Define to 1 if you have the `getpagesize' function. */
#undef HAVE_GETPAGESIZE
/* Define to 1 if you have the `getpid' function. */
#undef HAVE_GETPID
/* Define to 1 if you have the `getproplist' function. */
#undef HAVE_GETPROPLIST
/* Define if the GNU gettext() function is already present or preinstalled. */
#undef HAVE_GETTEXT
/* Define to 1 if you have the `gettimeofday' function. */
#undef HAVE_GETTIMEOFDAY
/* Define to 1 if you have the `getuid' function. */
#undef HAVE_GETUID
/* Define to 1 if you have the `getxattr' function. */
#undef HAVE_GETXATTR
/* Define to 1 if you have the `get_proplist_entry' function. */
#undef HAVE_GET_PROPLIST_ENTRY
/* Define to 1 if you have gfapi lib */
#undef HAVE_GFAPI
/* Define to 1 if GNUTLS library is available */
#undef HAVE_GNUTLS
/* Define to 1 if you have the `gnutls_cipher_init' function. */
#undef HAVE_GNUTLS_CIPHER_INIT
/* Define to 1 if you have the header file. */
#undef HAVE_GNUTLS_GNUTLS_H
/* Define to 1 if you have the `gnutls_transport_set_int' function. */
#undef HAVE_GNUTLS_TRANSPORT_SET_INT
/* Define to 1 if you have the header file. */
#undef HAVE_GRP_H
/* Define to 1 if you are running HPUX */
#undef HAVE_HPUX_OS
/* Define to 1 if you are running GNU Hurd */
#undef HAVE_HURD_OS
/* Define to 1 if you have the `iconv()' function. */
#undef HAVE_ICONV
/* Define to 1 if you have the `inet_ntop' function. */
#undef HAVE_INET_NTOP
/* Define to 1 if you have the `inet_pton' function. */
#undef HAVE_INET_PTON
/* Define to 1 if you have int64_t */
#undef HAVE_INT64_T
/* Define to 1 if you have intmax_t */
#undef HAVE_INTMAX_T
/* Define to 1 if the system has the type `intptr_t'. */
#undef HAVE_INTPTR_T
/* Define to 1 if you have the header file. */
#undef HAVE_INTTYPES_H
/* Define if exists, doesn't clash with , and
declares uintmax_t. */
#undef HAVE_INTTYPES_H_WITH_UINTMAX
/* Define to 1 if you have intxx_t */
#undef HAVE_INTXX_T
/* Define to 1 if ioctl request is unsigned long int */
#undef HAVE_IOCTL_ULINT_REQUEST
/* Define to 1 if IPv6 support should be enabled */
#undef HAVE_IPV6
/* Define to 1 if you are running IRIX */
#undef HAVE_IRIX_OS
/* Define if you have and nl_langinfo(CODESET). */
#undef HAVE_LANGINFO_CODESET
/* Define to 1 if you have the `lchmod' function. */
#undef HAVE_LCHMOD
/* Define to 1 if you have the `lchown' function. */
#undef HAVE_LCHOWN
/* Define if your file defines LC_MESSAGES. */
#undef HAVE_LC_MESSAGES
/* Define to 1 if you have the `lgetea' function. */
#undef HAVE_LGETEA
/* Define to 1 if you have the `lgetxattr' function. */
#undef HAVE_LGETXATTR
/* Define to 1 if you have libcap */
#undef HAVE_LIBCAP
/* Define to 1 if you have the header file. */
#undef HAVE_LIBC_H
/* Define if you have the libdl library or equivalent. */
#undef HAVE_LIBDL
/* Define if libdlloader will be built on this platform */
#undef HAVE_LIBDLLOADER
/* Define to 1 if you have the `sun' library (-lsun). */
#undef HAVE_LIBSUN
/* Define to 1 if you have the `util' library (-lutil). */
#undef HAVE_LIBUTIL
/* Define to 1 if you have the header file. */
#undef HAVE_LIBUTIL_H
/* Set to enable libwrap support */
#undef HAVE_LIBWRAP
/* Define to 1 if you have zlib */
#undef HAVE_LIBZ
/* Define to 1 if you have the header file. */
#undef HAVE_LIMITS_H
/* Define to 1 if you are running Linux */
#undef HAVE_LINUX_OS
/* Define to 1 if you have the `listea' function. */
#undef HAVE_LISTEA
/* Define to 1 if you have the `listxattr' function. */
#undef HAVE_LISTXATTR
/* Little Endian */
#undef HAVE_LITTLE_ENDIAN
/* Define to 1 if you have the `llistea' function. */
#undef HAVE_LLISTEA
/* Define to 1 if you have the `llistxattr' function. */
#undef HAVE_LLISTXATTR
/* Define to 1 if LMDB support should be enabled */
#undef HAVE_LMDB
/* Define to 1 if you have the header file. */
#undef HAVE_LOCALE_H
/* Define to 1 if you have the `localtime_r' function. */
#undef HAVE_LOCALTIME_R
/* Define if you have the 'long double' type. */
#undef HAVE_LONG_DOUBLE
/* Define if you have the 'long long' type. */
#undef HAVE_LONG_LONG
/* Low level SCSI Interface support */
#undef HAVE_LOWLEVEL_SCSI_INTERFACE
/* Define to 1 if you have the `lsetea' function. */
#undef HAVE_LSETEA
/* Define to 1 if you have the `lsetxattr' function. */
#undef HAVE_LSETXATTR
/* Define to 1 if you have the `lstat' function. */
#undef HAVE_LSTAT
/* Define to 1 if you have the `lutimes' function. */
#undef HAVE_LUTIMES
/* Define to 1 if you have lzo lib */
#undef HAVE_LZO
/* Define to 1 if you have the header file. */
#undef HAVE_LZO_LZO1X_H
/* Define to 1 if you have the header file. */
#undef HAVE_LZO_LZOCONF_H
/* Define to 1 if you have the header file. */
#undef HAVE_MALLOC_H
/* Define to 1 if you have the `malloc_trim' function. */
#undef HAVE_MALLOC_TRIM
/* Define to 1 if you have the header file. */
#undef HAVE_MEMORY_H
/* Define to 1 if you have the `mempcpy' function. */
#undef HAVE_MEMPCPY
/* Define to 1 if you have a working `mmap' system call. */
#undef HAVE_MMAP
/* Define to 1 if you have the header file. */
#undef HAVE_MTIO_H
/* Define to 1 if you have the `munmap' function. */
#undef HAVE_MUNMAP
/* Set if you have an MySQL Database */
#undef HAVE_MYSQL
/* Set if have mysql_thread_safe */
#undef HAVE_MYSQL_THREAD_SAFE
/* Define to 1 if you have the `nanosleep' function. */
#undef HAVE_NANOSLEEP
/* Define to 1 if you have the header file, and it defines `DIR'. */
#undef HAVE_NDIR_H
/* Define to 1 if NDMP support should be enabled */
#undef HAVE_NDMP
/* Define to 1 if you are running NetBSD */
#undef HAVE_NETBSD_OS
/* Define to 1 if you have the `nl_langinfo' function. */
#undef HAVE_NL_LANGINFO
/* Define to 1 if you have the header file. */
#undef HAVE_NL_TYPES_H
/* Define to 1 to when walkcontext does not work */
#undef HAVE_NON_WORKING_WALKCONTEXT
/* Define to 1 if you have the `nvlist_next_nvpair' function. */
#undef HAVE_NVLIST_NEXT_NVPAIR
/* Define to 1 if you have libdroplet lib */
#undef HAVE_OBJECTSTORE
/* Define to 1 to use the old sockopt option */
#undef HAVE_OLD_SOCKOPT
/* Define to 1 if you have the `openat' function. */
#undef HAVE_OPENAT
/* Define to 1 if you are running OpenBSD */
#undef HAVE_OPENBSD_OS
/* Define to 1 if OpenSSL library is available */
#undef HAVE_OPENSSL
/* Define to 1 if the OpenSSL library is export-contrained to 128bit ciphers
*/
#undef HAVE_OPENSSL_EXPORT_LIBRARY
/* Define to 1 if you are running Tru64 */
#undef HAVE_OSF1_OS
/* Define to 1 if you have the `poll' function. */
#undef HAVE_POLL
/* Define to 1 if you have the header file. */
#undef HAVE_POLL_H
/* Define to 1 if you have the `posix_fadvise' function. */
#undef HAVE_POSIX_FADVISE
/* Define if your printf() function supports format strings with positions. */
#undef HAVE_POSIX_PRINTF
/* Define to 1 if you have POSIX signals */
#undef HAVE_POSIX_SIGNALS
/* Set if you have an PostgreSQL Database */
#undef HAVE_POSTGRESQL
/* Set if PostgreSQL DB batch insert code enabled */
#undef HAVE_POSTGRESQL_BATCH_FILE_INSERT
/* Set if have PQisthreadsafe */
#undef HAVE_PQISTHREADSAFE
/* Set if have PQputCopyData */
#undef HAVE_PQ_COPY
/* Define to 1 if you have the `prctl' function. */
#undef HAVE_PRCTL
/* Define to 1 if you have the `putenv' function. */
#undef HAVE_PUTENV
/* Define to 1 if you have the header file. */
#undef HAVE_PWD_H
/* Define to 1 if python support should be enabled */
#undef HAVE_PYTHON
/* Define to 1 if you have rados lib */
#undef HAVE_RADOS
/* Define to 1 if you have the `readdir_r' function. */
#undef HAVE_READDIR_R
/* Define to 1 if readline support should be enabled */
#undef HAVE_READLINE
/* Define to 1 if you have the header file. */
#undef HAVE_REGEX_H
/* Define to 1 if sa_len field exists in struct sockaddr */
#undef HAVE_SA_LEN
/* Define to 1 if you have the header file. */
#undef HAVE_SCSI_SCSI_H
/* Define to 1 if you have the header file. */
#undef HAVE_SCSI_SG_H
/* Define to 1 if you have the `select' function. */
#undef HAVE_SELECT
/* Define to 1 if you have the `setea' function. */
#undef HAVE_SETEA
/* Define to 1 if you have the `setenv' function. */
#undef HAVE_SETENV
/* Define to 1 if you have the `setlocale' function. */
#undef HAVE_SETLOCALE
/* Define to 1 if you have the `setpgid' function. */
#undef HAVE_SETPGID
/* Define to 1 if you have the `setpgrp' function. */
#undef HAVE_SETPGRP
/* Define to 1 if you have the `setproplist' function. */
#undef HAVE_SETPROPLIST
/* Define to 1 if you have the `setreuid' function. */
#undef HAVE_SETREUID
/* Define to 1 if you have the `setsid' function. */
#undef HAVE_SETSID
/* Define to 1 if you have the `setxattr' function. */
#undef HAVE_SETXATTR
/* Define to 1 if you are running SGI OS */
#undef HAVE_SGI_OS
/* Define to 1 if the SHA-2 family of digest algorithms is available */
#undef HAVE_SHA2
/* Define if you have the shl_load function. */
#undef HAVE_SHL_LOAD
/* Define to 1 if you have the `signal' function. */
#undef HAVE_SIGNAL
/* Define to 1 if you have the `sizeof_proplist_entry' function. */
#undef HAVE_SIZEOF_PROPLIST_ENTRY
/* Define to 1 if you have the `snprintf' function. */
#undef HAVE_SNPRINTF
/* Define to 1 if socklen_t exists */
#undef HAVE_SOCKLEN_T
/* Set if you have an SQLite3 Database */
#undef HAVE_SQLITE3
/* Define to 1 if you have the `sqlite3_threadsafe' function. */
#undef HAVE_SQLITE3_THREADSAFE
/* Define to 1 if sql pooling is enabled */
#undef HAVE_SQL_POOLING
/* Define to 1 if you have the header file. */
#undef HAVE_STDARG_H
/* Define to 1 if you have the header file. */
#undef HAVE_STDDEF_H
/* Define to 1 if you have the header file. */
#undef HAVE_STDINT_H
/* Define if exists, doesn't clash with , and declares
uintmax_t. */
#undef HAVE_STDINT_H_WITH_UINTMAX
/* Define to 1 if you have the header file. */
#undef HAVE_STDLIB_H
/* Define to 1 if you have the `stpcpy' function. */
#undef HAVE_STPCPY
/* 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 `strerror_r' function. */
#undef HAVE_STRERROR_R
/* Define to 1 if you have the `strftime' function. */
#undef HAVE_STRFTIME
/* Define to 1 if you have the header file. */
#undef HAVE_STRINGS_H
/* Define to 1 if you have the header file. */
#undef HAVE_STRING_H
/* Define to 1 if you have the `strncmp' function. */
#undef HAVE_STRNCMP
/* Define to 1 if you have the `strncpy' function. */
#undef HAVE_STRNCPY
/* Define to 1 if you have the `strtoll' function. */
#undef HAVE_STRTOLL
/* Define to 1 if you have the `strtoul' function. */
#undef HAVE_STRTOUL
/* Define to 1 if `st_blksize' is a member of `struct stat'. */
#undef HAVE_STRUCT_STAT_ST_BLKSIZE
/* Define to 1 if `st_blocks' is a member of `struct stat'. */
#undef HAVE_STRUCT_STAT_ST_BLOCKS
/* Define to 1 if `st_rdev' is a member of `struct stat'. */
#undef HAVE_STRUCT_STAT_ST_RDEV
/* Define to 1 if `tm_zone' is a member of `struct tm'. */
#undef HAVE_STRUCT_TM_TM_ZONE
/* Define to 1 if your `struct stat' has `st_blksize'. Deprecated, use
`HAVE_STRUCT_STAT_ST_BLKSIZE' instead. */
#undef HAVE_ST_BLKSIZE
/* 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 your `struct stat' has `st_rdev'. Deprecated, use
`HAVE_STRUCT_STAT_ST_RDEV' instead. */
#undef HAVE_ST_RDEV
/* Define to 1 if you are running Solaris */
#undef HAVE_SUN_OS
/* Define to 1 if systemd support should be enabled */
#undef HAVE_SYSTEMD
/* Define to 1 if you have the header file. */
#undef HAVE_SYS_ACL_H
/* Define to 1 if you have the header file. */
#undef HAVE_SYS_ATTR_H
/* Define to 1 if you have the header file. */
#undef HAVE_SYS_BITYPES_H
/* Define to 1 if you have the header file. */
#undef HAVE_SYS_BYTEORDER_H
/* Define to 1 if you have the header file. */
#undef HAVE_SYS_CAPABILITY_H
/* Define to 1 if you have the header file, and it defines `DIR'.
*/
#undef HAVE_SYS_DIR_H
/* Define to 1 if you have the header file. */
#undef HAVE_SYS_DL_H
/* Define to 1 if you have the header file. */
#undef HAVE_SYS_EA_H
/* Define to 1 if you have the header file. */
#undef HAVE_SYS_EXTATTR_H
/* Define to 1 if you have the header file. */
#undef HAVE_SYS_IOCTL_H
/* Define to 1 if you have the header file. */
#undef HAVE_SYS_MTIO_H
/* Define to 1 if you have the header file, and it defines `DIR'.
*/
#undef HAVE_SYS_NDIR_H
/* Define to 1 if you have the header file. */
#undef HAVE_SYS_NVPAIR_H
/* Define to 1 if you have the header file. */
#undef HAVE_SYS_PARAM_H
/* Define to 1 if you have the header file. */
#undef HAVE_SYS_POLL_H
/* Define to 1 if you have the header file. */
#undef HAVE_SYS_PRCTL_H
/* Define to 1 if you have the header file. */
#undef HAVE_SYS_PROPLIST_H
/* Define to 1 if you have the header file. */
#undef HAVE_SYS_SCSI_IMPL_USCSI_H
/* Define to 1 if you have the header file. */
#undef HAVE_SYS_SELECT_H
/* Define to 1 if you have the header file. */
#undef HAVE_SYS_SOCKET_H
/* Define to 1 if you have the header file. */
#undef HAVE_SYS_SOCKIO_H
/* Define to 1 if you have the header file. */
#undef HAVE_SYS_STATVFS_H
/* Define to 1 if you have the header file. */
#undef HAVE_SYS_STAT_H
/* Define to 1 if you have the header file. */
#undef HAVE_SYS_TAPE_H
/* Define to 1 if you have the header file. */
#undef HAVE_SYS_TIME_H
/* Define to 1 if you have the header file. */
#undef HAVE_SYS_TYPES_H
/* Define to 1 if you have that is POSIX.1 compatible. */
#undef HAVE_SYS_WAIT_H
/* Define to 1 if you have the header file. */
#undef HAVE_SYS_XATTR_H
/* Define to 1 if you have the `tcgetattr' function. */
#undef HAVE_TCGETATTR
/* Define to 1 if you have the header file. */
#undef HAVE_TERMCAP_H
/* Define to 1 if you have the header file. */
#undef HAVE_TERMIOS_H
/* Define to 1 if you have the header file. */
#undef HAVE_TERM_H
/* Define to 1 if TLS support should be enabled */
#undef HAVE_TLS
/* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use
`HAVE_STRUCT_TM_TM_ZONE' instead. */
#undef HAVE_TM_ZONE
/* Define to 1 if tray-monitor Qt4 GUI support should be enabled */
#undef HAVE_TRAYMONITOR
/* Define to 1 if you have the `tsearch' function. */
#undef HAVE_TSEARCH
/* Define to 1 if compiler has typeof */
#undef HAVE_TYPEOF
/* Define to 1 if you don't have `tm_zone' but do have the external array
`tzname'. */
#undef HAVE_TZNAME
/* Define to 1 if you have the header file. */
#undef HAVE_UCONTEXT_H
/* Define if you have the 'uintmax_t' type in or . */
#undef HAVE_UINTMAX_T
/* Define to 1 if the system has the type `uintptr_t'. */
#undef HAVE_UINTPTR_T
/* Define to 1 if you have uintxx_t */
#undef HAVE_UINTXX_T
/* Define to 1 if you have the header file. */
#undef HAVE_UMEM_H
/* Define to 1 if you have the header file. */
#undef HAVE_UNISTD_H
/* Define to 1 if you have the `unlinkat' function. */
#undef HAVE_UNLINKAT
/* Define if you have the 'unsigned long long' type. */
#undef HAVE_UNSIGNED_LONG_LONG
/* Define to 1 if you have the header file. */
#undef HAVE_USCSI_ALL_H
/* Define to 1 if you have SVR3 signals */
#undef HAVE_USG_SIGHOLD
/* Define to 1 if you have the `utimes' function. */
#undef HAVE_UTIMES
/* Define to 1 if you have the header file. */
#undef HAVE_UTIME_H
/* Define to 1 if you have u_int */
#undef HAVE_U_INT
/* Define to 1 if you have u_int64_t */
#undef HAVE_U_INT64_T
/* Define to 1 if you have u_intmax_t */
#undef HAVE_U_INTMAX_T
/* Define to 1 if you have u_intxx_t */
#undef HAVE_U_INTXX_T
/* Define to 1 if you have the header file. */
#undef HAVE_VARARGS_H
/* Set if va_copy exists */
#undef HAVE_VA_COPY
/* Define to 1 if you have the `vfprintf' function. */
#undef HAVE_VFPRINTF
/* Define to 1 if you have the `vprintf' function. */
#undef HAVE_VPRINTF
/* Define to 1 if you have the `vsnprintf' function. */
#undef HAVE_VSNPRINTF
/* Define if you have the 'wchar_t' type. */
#undef HAVE_WCHAR_T
/* Define to 1 if you have the `wcslen' function. */
#undef HAVE_WCSLEN
/* Define if you have the 'wint_t' type. */
#undef HAVE_WINT_T
/* Extended Attributes support */
#undef HAVE_XATTR
/* Define to 1 if you have the header file. */
#undef HAVE_ZLIB_H
/* Define to 1 if you have the `__argz_count' function. */
#undef HAVE___ARGZ_COUNT
/* Define to 1 if you have the `__argz_next' function. */
#undef HAVE___ARGZ_NEXT
/* Define to 1 if you have the `__argz_stringify' function. */
#undef HAVE___ARGZ_STRINGIFY
/* Define to 1 if you have the `__fsetlocking' function. */
#undef HAVE___FSETLOCKING
/* Define as const if the declaration of iconv() needs const. */
#undef ICONV_CONST
/* Define if integer division by zero raises signal SIGFPE. */
#undef INTDIV0_RAISES_SIGFPE
/* Where are shared libs stored */
#undef LIBDIR
/* Where are locale files stored */
#undef LOCALEDIR
/* Define to the sub-directory in which libtool stores uninstalled libraries.
*/
#undef LT_OBJDIR
/* Define to 1 if `major', `minor', and `makedev' are declared in .
*/
#undef MAJOR_IN_MKDEV
/* Define to 1 if `major', `minor', and `makedev' are declared in
. */
#undef MAJOR_IN_SYSMACROS
/* Define to 1 if your C compiler doesn't accept -c and -o together. */
#undef NO_MINUS_C_MINUS_O
/* 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 home page for this package. */
#undef PACKAGE_URL
/* Define to the version of this package. */
#undef PACKAGE_VERSION
/* Define if exists and defines unusable PRI* macros. */
#undef PRI_MACROS_BROKEN
/* Define if you need function prototypes */
#undef PROTOTYPES
/* Define as the return type of signal handlers (`int' or `void'). */
#undef RETSIGTYPE
/* Define to 1 if the `setpgrp' function takes no argument. */
#undef SETPGRP_VOID
/* The size of `char', as computed by sizeof. */
#undef SIZEOF_CHAR
/* The size of `int', as computed by sizeof. */
#undef SIZEOF_INT
/* The size of `int *', as computed by sizeof. */
#undef SIZEOF_INT_P
/* The size of `long int', as computed by sizeof. */
#undef SIZEOF_LONG_INT
/* The size of `long long int', as computed by sizeof. */
#undef SIZEOF_LONG_LONG_INT
/* The size of `short int', as computed by sizeof. */
#undef SIZEOF_SHORT_INT
/* Define as the maximum value of type 'size_t', if the system doesn't define
it. */
#undef SIZE_MAX
/* Define to 1 if you want Smartalloc enabled */
#undef SMARTALLOC
/* If using the C implementation of alloca, define if you know the
direction of stack growth for your system; otherwise it will be
automatically deduced at runtime.
STACK_DIRECTION > 0 => grows toward higher addresses
STACK_DIRECTION < 0 => grows toward lower addresses
STACK_DIRECTION = 0 => direction of growth unknown */
#undef STACK_DIRECTION
/* Define to 1 if the `S_IS*' macros in do not work properly. */
#undef STAT_MACROS_BROKEN
/* Define to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS
/* Where are config files stored */
#undef SYSCONFDIR
/* Define to 1 if you can safely include both and . */
#undef TIME_WITH_SYS_TIME
/* Define to 1 if your declares `struct tm'. */
#undef TM_IN_SYS_TIME
/* Define to 1 if DB batch insert code enabled */
#undef USE_BATCH_FILE_INSERT
/* Define to 1 to use the thr_setconcurrency function */
#undef USE_THR_SETCONCURRENCY
/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
significant byte first (like Motorola and SPARC, unlike Intel). */
#if defined AC_APPLE_UNIVERSAL_BUILD
# if defined __BIG_ENDIAN__
# define WORDS_BIGENDIAN 1
# endif
#else
# ifndef WORDS_BIGENDIAN
# undef WORDS_BIGENDIAN
# endif
#endif
/* Define to 1 if the X Window System is missing or not being used. */
#undef X_DISPLAY_MISSING
/* Number of bits in a file offset, on hosts where this is settable. */
#undef _FILE_OFFSET_BITS
/* Needed on HP-UX/g++ systems to support long long ints (int64) */
#undef _INCLUDE_LONGLONG
/* Define to make fseeko etc. visible, on some hosts. */
#undef _LARGEFILE_SOURCE
/* Define for large files, on AIX-style hosts. */
#undef _LARGE_FILES
/* Directory for backend files */
#undef _PATH_BAREOS_BACKENDDIR
/* Directory for PID files */
#undef _PATH_BAREOS_PIDDIR
/* Directory for daemon files */
#undef _PATH_BAREOS_WORKINGDIR
/* Define to 1 if you want Lock Manager enabled */
#undef _USE_LOCKMGR
/* Define to empty if `const' does not conform to ANSI C. */
#undef const
/* Define to `long' if does not define. */
#undef daddr_t
/* Define to `unsigned long' if does not define. */
#undef dev_t
/* Define to `int' if doesn't define. */
#undef gid_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 `unsigned long' if does not define. */
#undef ino_t
/* Define to the type of a signed integer type wide enough to hold a pointer,
if such a type exists, and if the system does not define it. */
#undef intptr_t
/* Set to correct scanf value for long long int */
#undef lld
/* Set to correct scanf value for long long unsigned int */
#undef llu
/* Define to `int' if does not define. */
#undef major_t
/* Define to `int' if does not define. */
#undef minor_t
/* Define to `int' if does not define. */
#undef mode_t
/* Define to `long int' if does not define. */
#undef off_t
/* Define to `int' if does not define. */
#undef pid_t
/* Define as the type of the result of subtracting two pointers, if the system
doesn't define it. */
#undef ptrdiff_t
/* Define to empty if the C compiler doesn't support this keyword. */
#undef signed
/* Define to `unsigned int' if does not define. */
#undef size_t
/* Define to `int' if does not define. */
#undef ssize_t
/* Define to `int' if doesn't define. */
#undef uid_t
/* Define to unsigned long or unsigned long long if and
don't define. */
#undef uintmax_t
/* Define to the type of an unsigned integer type wide enough to hold a
pointer, if such a type exists, and if the system does not define it. */
#undef uintptr_t
bareos-Release-14.2.6/autoconf/config.rpath 0000775 0000000 0000000 00000044012 12630115627 0020567 0 ustar 00root root 0000000 0000000 #! /bin/sh
# Output a system dependent set of variables, describing how to set the
# run time search path of shared libraries in an executable.
#
# Copyright 1996-2010 Free Software Foundation, Inc.
# Taken from GNU libtool, 2001
# Originally by Gordon Matzigkeit , 1996
#
# This file 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.
#
# The first argument passed to this file is the canonical host specification,
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
# or
# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
# The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld
# should be set by the caller.
#
# The set of defined variables is at the end of this script.
# Known limitations:
# - On IRIX 6.5 with CC="cc", the run time search patch must not be longer
# than 256 bytes, otherwise the compiler driver will dump core. The only
# known workaround is to choose shorter directory names for the build
# directory and/or the installation directory.
# All known linkers require a `.a' archive for static linking (except MSVC,
# which needs '.lib').
libext=a
shrext=.so
host="$1"
host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
# Code taken from libtool.m4's _LT_CC_BASENAME.
for cc_temp in $CC""; do
case $cc_temp in
compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
\-*) ;;
*) break;;
esac
done
cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'`
# Code taken from libtool.m4's _LT_COMPILER_PIC.
wl=
if test "$GCC" = yes; then
wl='-Wl,'
else
case "$host_os" in
aix*)
wl='-Wl,'
;;
darwin*)
case $cc_basename in
xlc*)
wl='-Wl,'
;;
esac
;;
mingw* | cygwin* | pw32* | os2* | cegcc*)
;;
hpux9* | hpux10* | hpux11*)
wl='-Wl,'
;;
irix5* | irix6* | nonstopux*)
wl='-Wl,'
;;
newsos6)
;;
linux* | k*bsd*-gnu)
case $cc_basename in
ecc*)
wl='-Wl,'
;;
icc* | ifort*)
wl='-Wl,'
;;
lf95*)
wl='-Wl,'
;;
pgcc | pgf77 | pgf90)
wl='-Wl,'
;;
ccc*)
wl='-Wl,'
;;
como)
wl='-lopt='
;;
*)
case `$CC -V 2>&1 | sed 5q` in
*Sun\ C*)
wl='-Wl,'
;;
esac
;;
esac
;;
osf3* | osf4* | osf5*)
wl='-Wl,'
;;
rdos*)
;;
solaris*)
wl='-Wl,'
;;
sunos4*)
wl='-Qoption ld '
;;
sysv4 | sysv4.2uw2* | sysv4.3*)
wl='-Wl,'
;;
sysv4*MP*)
;;
sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
wl='-Wl,'
;;
unicos*)
wl='-Wl,'
;;
uts4*)
;;
esac
fi
# Code taken from libtool.m4's _LT_LINKER_SHLIBS.
hardcode_libdir_flag_spec=
hardcode_libdir_separator=
hardcode_direct=no
hardcode_minus_L=no
case "$host_os" in
cygwin* | mingw* | pw32* | cegcc*)
# FIXME: the MSVC++ port hasn't been tested in a loooong time
# When not using gcc, we currently assume that we are using
# Microsoft Visual C++.
if test "$GCC" != yes; then
with_gnu_ld=no
fi
;;
interix*)
# we just hope/assume this is gcc and not c89 (= MSVC++)
with_gnu_ld=yes
;;
openbsd*)
with_gnu_ld=no
;;
esac
ld_shlibs=yes
if test "$with_gnu_ld" = yes; then
# Set some defaults for GNU ld with shared library support. These
# are reset later if shared libraries are not supported. Putting them
# here allows them to be overridden if necessary.
# Unlike libtool, we use -rpath here, not --rpath, since the documented
# option of GNU ld is called -rpath, not --rpath.
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
case "$host_os" in
aix[3-9]*)
# On AIX/PPC, the GNU linker is very broken
if test "$host_cpu" != ia64; then
ld_shlibs=no
fi
;;
amigaos*)
hardcode_libdir_flag_spec='-L$libdir'
hardcode_minus_L=yes
# Samuel A. Falvo II reports
# that the semantics of dynamic libraries on AmigaOS, at least up
# to version 4, is to share data among multiple programs linked
# with the same dynamic library. Since this doesn't match the
# behavior of shared libraries on other platforms, we cannot use
# them.
ld_shlibs=no
;;
beos*)
if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
:
else
ld_shlibs=no
fi
;;
cygwin* | mingw* | pw32* | cegcc*)
# hardcode_libdir_flag_spec is actually meaningless, as there is
# no search path for DLLs.
hardcode_libdir_flag_spec='-L$libdir'
if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
:
else
ld_shlibs=no
fi
;;
interix[3-9]*)
hardcode_direct=no
hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
;;
gnu* | linux* | k*bsd*-gnu)
if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
:
else
ld_shlibs=no
fi
;;
netbsd*)
;;
solaris*)
if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
ld_shlibs=no
elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
:
else
ld_shlibs=no
fi
;;
sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
case `$LD -v 2>&1` in
*\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
ld_shlibs=no
;;
*)
if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`'
else
ld_shlibs=no
fi
;;
esac
;;
sunos4*)
hardcode_direct=yes
;;
*)
if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
:
else
ld_shlibs=no
fi
;;
esac
if test "$ld_shlibs" = no; then
hardcode_libdir_flag_spec=
fi
else
case "$host_os" in
aix3*)
# Note: this linker hardcodes the directories in LIBPATH if there
# are no directories specified by -L.
hardcode_minus_L=yes
if test "$GCC" = yes; then
# Neither direct hardcoding nor static linking is supported with a
# broken collect2.
hardcode_direct=unsupported
fi
;;
aix[4-9]*)
if test "$host_cpu" = ia64; then
# On IA64, the linker does run time linking by default, so we don't
# have to do anything special.
aix_use_runtimelinking=no
else
aix_use_runtimelinking=no
# Test if we are trying to use run time linking or normal
# AIX style linking. If -brtl is somewhere in LDFLAGS, we
# need to do runtime linking.
case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
for ld_flag in $LDFLAGS; do
if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
aix_use_runtimelinking=yes
break
fi
done
;;
esac
fi
hardcode_direct=yes
hardcode_libdir_separator=':'
if test "$GCC" = yes; then
case $host_os in aix4.[012]|aix4.[012].*)
collect2name=`${CC} -print-prog-name=collect2`
if test -f "$collect2name" && \
strings "$collect2name" | grep resolve_lib_name >/dev/null
then
# We have reworked collect2
:
else
# We have old collect2
hardcode_direct=unsupported
hardcode_minus_L=yes
hardcode_libdir_flag_spec='-L$libdir'
hardcode_libdir_separator=
fi
;;
esac
fi
# Begin _LT_AC_SYS_LIBPATH_AIX.
echo 'int main () { return 0; }' > conftest.c
${CC} ${LDFLAGS} conftest.c -o conftest
aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
}'`
if test -z "$aix_libpath"; then
aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
}'`
fi
if test -z "$aix_libpath"; then
aix_libpath="/usr/lib:/lib"
fi
rm -f conftest.c conftest
# End _LT_AC_SYS_LIBPATH_AIX.
if test "$aix_use_runtimelinking" = yes; then
hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
else
if test "$host_cpu" = ia64; then
hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
else
hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
fi
fi
;;
amigaos*)
hardcode_libdir_flag_spec='-L$libdir'
hardcode_minus_L=yes
# see comment about different semantics on the GNU ld section
ld_shlibs=no
;;
bsdi[45]*)
;;
cygwin* | mingw* | pw32* | cegcc*)
# When not using gcc, we currently assume that we are using
# Microsoft Visual C++.
# hardcode_libdir_flag_spec is actually meaningless, as there is
# no search path for DLLs.
hardcode_libdir_flag_spec=' '
libext=lib
;;
darwin* | rhapsody*)
hardcode_direct=no
if test "$GCC" = yes ; then
:
else
case $cc_basename in
xlc*)
;;
*)
ld_shlibs=no
;;
esac
fi
;;
dgux*)
hardcode_libdir_flag_spec='-L$libdir'
;;
freebsd1*)
ld_shlibs=no
;;
freebsd2.2*)
hardcode_libdir_flag_spec='-R$libdir'
hardcode_direct=yes
;;
freebsd2*)
hardcode_direct=yes
hardcode_minus_L=yes
;;
freebsd* | dragonfly*)
hardcode_libdir_flag_spec='-R$libdir'
hardcode_direct=yes
;;
hpux9*)
hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
hardcode_libdir_separator=:
hardcode_direct=yes
# hardcode_minus_L: Not really in the search PATH,
# but as the default location of the library.
hardcode_minus_L=yes
;;
hpux10*)
if test "$with_gnu_ld" = no; then
hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
hardcode_libdir_separator=:
hardcode_direct=yes
# hardcode_minus_L: Not really in the search PATH,
# but as the default location of the library.
hardcode_minus_L=yes
fi
;;
hpux11*)
if test "$with_gnu_ld" = no; then
hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
hardcode_libdir_separator=:
case $host_cpu in
hppa*64*|ia64*)
hardcode_direct=no
;;
*)
hardcode_direct=yes
# hardcode_minus_L: Not really in the search PATH,
# but as the default location of the library.
hardcode_minus_L=yes
;;
esac
fi
;;
irix5* | irix6* | nonstopux*)
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
hardcode_libdir_separator=:
;;
netbsd*)
hardcode_libdir_flag_spec='-R$libdir'
hardcode_direct=yes
;;
newsos6)
hardcode_direct=yes
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
hardcode_libdir_separator=:
;;
openbsd*)
if test -f /usr/libexec/ld.so; then
hardcode_direct=yes
if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
else
case "$host_os" in
openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
hardcode_libdir_flag_spec='-R$libdir'
;;
*)
hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
;;
esac
fi
else
ld_shlibs=no
fi
;;
os2*)
hardcode_libdir_flag_spec='-L$libdir'
hardcode_minus_L=yes
;;
osf3*)
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
hardcode_libdir_separator=:
;;
osf4* | osf5*)
if test "$GCC" = yes; then
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
else
# Both cc and cxx compiler support -rpath directly
hardcode_libdir_flag_spec='-rpath $libdir'
fi
hardcode_libdir_separator=:
;;
solaris*)
hardcode_libdir_flag_spec='-R$libdir'
;;
sunos4*)
hardcode_libdir_flag_spec='-L$libdir'
hardcode_direct=yes
hardcode_minus_L=yes
;;
sysv4)
case $host_vendor in
sni)
hardcode_direct=yes # is this really true???
;;
siemens)
hardcode_direct=no
;;
motorola)
hardcode_direct=no #Motorola manual says yes, but my tests say they lie
;;
esac
;;
sysv4.3*)
;;
sysv4*MP*)
if test -d /usr/nec; then
ld_shlibs=yes
fi
;;
sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
;;
sysv5* | sco3.2v5* | sco5v6*)
hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
hardcode_libdir_separator=':'
;;
uts4*)
hardcode_libdir_flag_spec='-L$libdir'
;;
*)
ld_shlibs=no
;;
esac
fi
# Check dynamic linker characteristics
# Code taken from libtool.m4's _LT_SYS_DYNAMIC_LINKER.
# Unlike libtool.m4, here we don't care about _all_ names of the library, but
# only about the one the linker finds when passed -lNAME. This is the last
# element of library_names_spec in libtool.m4, or possibly two of them if the
# linker has special search rules.
library_names_spec= # the last element of library_names_spec in libtool.m4
libname_spec='lib$name'
case "$host_os" in
aix3*)
library_names_spec='$libname.a'
;;
aix[4-9]*)
library_names_spec='$libname$shrext'
;;
amigaos*)
library_names_spec='$libname.a'
;;
beos*)
library_names_spec='$libname$shrext'
;;
bsdi[45]*)
library_names_spec='$libname$shrext'
;;
cygwin* | mingw* | pw32* | cegcc*)
shrext=.dll
library_names_spec='$libname.dll.a $libname.lib'
;;
darwin* | rhapsody*)
shrext=.dylib
library_names_spec='$libname$shrext'
;;
dgux*)
library_names_spec='$libname$shrext'
;;
freebsd1*)
;;
freebsd* | dragonfly*)
case "$host_os" in
freebsd[123]*)
library_names_spec='$libname$shrext$versuffix' ;;
*)
library_names_spec='$libname$shrext' ;;
esac
;;
gnu*)
library_names_spec='$libname$shrext'
;;
hpux9* | hpux10* | hpux11*)
case $host_cpu in
ia64*)
shrext=.so
;;
hppa*64*)
shrext=.sl
;;
*)
shrext=.sl
;;
esac
library_names_spec='$libname$shrext'
;;
interix[3-9]*)
library_names_spec='$libname$shrext'
;;
irix5* | irix6* | nonstopux*)
library_names_spec='$libname$shrext'
case "$host_os" in
irix5* | nonstopux*)
libsuff= shlibsuff=
;;
*)
case $LD in
*-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;;
*-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;;
*-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;;
*) libsuff= shlibsuff= ;;
esac
;;
esac
;;
linux*oldld* | linux*aout* | linux*coff*)
;;
linux* | k*bsd*-gnu)
library_names_spec='$libname$shrext'
;;
knetbsd*-gnu)
library_names_spec='$libname$shrext'
;;
netbsd*)
library_names_spec='$libname$shrext'
;;
newsos6)
library_names_spec='$libname$shrext'
;;
nto-qnx*)
library_names_spec='$libname$shrext'
;;
openbsd*)
library_names_spec='$libname$shrext$versuffix'
;;
os2*)
libname_spec='$name'
shrext=.dll
library_names_spec='$libname.a'
;;
osf3* | osf4* | osf5*)
library_names_spec='$libname$shrext'
;;
rdos*)
;;
solaris*)
library_names_spec='$libname$shrext'
;;
sunos4*)
library_names_spec='$libname$shrext$versuffix'
;;
sysv4 | sysv4.3*)
library_names_spec='$libname$shrext'
;;
sysv4*MP*)
library_names_spec='$libname$shrext'
;;
sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
library_names_spec='$libname$shrext'
;;
uts4*)
library_names_spec='$libname$shrext'
;;
esac
sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"`
shlibext=`echo "$shrext" | sed -e 's,^\.,,'`
escaped_libname_spec=`echo "X$libname_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
escaped_library_names_spec=`echo "X$library_names_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <