From: Kern Sibbald Date: Sat, 26 Jan 2008 09:09:15 +0000 (+0000) Subject: Create tag Release-2.2.8 X-Git-Tag: Release-2.2.8~1 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=222ebea5b9f8d495ebb3a4ffa9257d09e88e5744;p=bacula%2Fbacula Create tag Release-2.2.8 git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/tags/Release-2.2.8@6321 91ce42f0-d328-0410-95d8-f526ca767f89 --- diff --git a/Branch-2.2/bacula/ABOUT-NLS b/Branch-2.2/bacula/ABOUT-NLS new file mode 100644 index 0000000000..ed3565aef9 --- /dev/null +++ b/Branch-2.2/bacula/ABOUT-NLS @@ -0,0 +1,986 @@ +1 Notes on the Free Translation Project +*************************************** + +Free software is going international! The Free Translation Project is +a way to get maintainers of free software, translators, and users all +together, so that free software will gradually become able to speak many +languages. A few packages already provide translations for their +messages. + + If you found this `ABOUT-NLS' file inside a distribution, you may +assume that the distributed package does use GNU `gettext' internally, +itself available at your nearest GNU archive site. But you do _not_ +need to install GNU `gettext' prior to configuring, installing or using +this package with messages translated. + + Installers will find here some useful hints. These notes also +explain how users should proceed for getting the programs to use the +available translations. They tell how people wanting to contribute and +work on translations can contact the appropriate team. + + When reporting bugs in the `intl/' directory or bugs which may be +related to internationalization, you should tell about the version of +`gettext' which is used. The information can be found in the +`intl/VERSION' file, in internationalized packages. + +1.1 Quick configuration advice +============================== + +If you want to exploit the full power of internationalization, you +should configure it using + + ./configure --with-included-gettext + +to force usage of internationalizing routines provided within this +package, despite the existence of internationalizing capabilities in the +operating system where this package is being installed. So far, only +the `gettext' implementation in the GNU C library version 2 provides as +many features (such as locale alias, message inheritance, automatic +charset conversion or plural form handling) as the implementation here. +It is also not possible to offer this additional functionality on top +of a `catgets' implementation. Future versions of GNU `gettext' will +very likely convey even more functionality. So it might be a good idea +to change to GNU `gettext' as soon as possible. + + So you need _not_ provide this option if you are using GNU libc 2 or +you have installed a recent copy of the GNU gettext package with the +included `libintl'. + +1.2 INSTALL Matters +=================== + +Some packages are "localizable" when properly installed; the programs +they contain can be made to speak your own native language. Most such +packages use GNU `gettext'. Other packages have their own ways to +internationalization, predating GNU `gettext'. + + By default, this package will be installed to allow translation of +messages. It will automatically detect whether the system already +provides the GNU `gettext' functions. If not, the included GNU +`gettext' library will be used. This library is wholly contained +within this package, usually in the `intl/' subdirectory, so prior +installation of the GNU `gettext' package is _not_ required. +Installers may use special options at configuration time for changing +the default behaviour. The commands: + + ./configure --with-included-gettext + ./configure --disable-nls + +will, respectively, bypass any pre-existing `gettext' to use the +internationalizing routines provided within this package, or else, +_totally_ disable translation of messages. + + When you already have GNU `gettext' installed on your system and run +configure without an option for your new package, `configure' will +probably detect the previously built and installed `libintl.a' file and +will decide to use this. This might not be desirable. You should use +the more recent version of the GNU `gettext' library. I.e. if the file +`intl/VERSION' shows that the library which comes with this package is +more recent, you should use + + ./configure --with-included-gettext + +to prevent auto-detection. + + The configuration process will not test for the `catgets' function +and therefore it will not be used. The reason is that even an +emulation of `gettext' on top of `catgets' could not provide all the +extensions of the GNU `gettext' library. + + Internationalized packages usually have many `po/LL.po' files, where +LL gives an ISO 639 two-letter code identifying the language. Unless +translations have been forbidden at `configure' time by using the +`--disable-nls' switch, all available translations are installed +together with the package. However, the environment variable `LINGUAS' +may be set, prior to configuration, to limit the installed set. +`LINGUAS' should then contain a space separated list of two-letter +codes, stating which languages are allowed. + +1.3 Using This Package +====================== + +As a user, if your language has been installed for this package, you +only have to set the `LANG' environment variable to the appropriate +`LL_CC' combination. Here `LL' is an ISO 639 two-letter language code, +and `CC' is an ISO 3166 two-letter country code. For example, let's +suppose that you speak German and live in Germany. At the shell +prompt, merely execute `setenv LANG de_DE' (in `csh'), +`export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash'). +This can be done from your `.login' or `.profile' file, once and for +all. + + You might think that the country code specification is redundant. +But in fact, some languages have dialects in different countries. For +example, `de_AT' is used for Austria, and `pt_BR' for Brazil. The +country code serves to distinguish the dialects. + + The locale naming convention of `LL_CC', with `LL' denoting the +language and `CC' denoting the country, is the one use on systems based +on GNU libc. On other systems, some variations of this scheme are +used, such as `LL' or `LL_CC.ENCODING'. You can get the list of +locales supported by your system for your country by running the command +`locale -a | grep '^LL''. + + Not all programs have translations for all languages. By default, an +English message is shown in place of a nonexistent translation. If you +understand other languages, you can set up a priority list of languages. +This is done through a different environment variable, called +`LANGUAGE'. GNU `gettext' gives preference to `LANGUAGE' over `LANG' +for the purpose of message handling, but you still need to have `LANG' +set to the primary language; this is required by other parts of the +system libraries. For example, some Swedish users who would rather +read translations in German than English for when Swedish is not +available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'. + + Special advice for Norwegian users: The language code for Norwegian +bokma*l changed from `no' to `nb' recently (in 2003). During the +transition period, while some message catalogs for this language are +installed under `nb' and some older ones under `no', it's recommended +for Norwegian users to set `LANGUAGE' to `nb:no' so that both newer and +older translations are used. + + In the `LANGUAGE' environment variable, but not in the `LANG' +environment variable, `LL_CC' combinations can be abbreviated as `LL' +to denote the language's main dialect. For example, `de' is equivalent +to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT' +(Portuguese as spoken in Portugal) in this context. + +1.4 Translating Teams +===================== + +For the Free Translation Project to be a success, we need interested +people who like their own language and write it well, and who are also +able to synergize with other translators speaking the same language. +Each translation team has its own mailing list. The up-to-date list of +teams can be found at the Free Translation Project's homepage, +`http://www.iro.umontreal.ca/contrib/po/HTML/', in the "National teams" +area. + + If you'd like to volunteer to _work_ at translating messages, you +should become a member of the translating team for your own language. +The subscribing address is _not_ the same as the list itself, it has +`-request' appended. For example, speakers of Swedish can send a +message to `sv-request@li.org', having this message body: + + subscribe + + Keep in mind that team members are expected to participate +_actively_ in translations, or at solving translational difficulties, +rather than merely lurking around. If your team does not exist yet and +you want to start one, or if you are unsure about what to do or how to +get started, please write to `translation@iro.umontreal.ca' to reach the +coordinator for all translator teams. + + The English team is special. It works at improving and uniformizing +the terminology in use. Proven linguistic skill are praised more than +programming skill, here. + +1.5 Available Packages +====================== + +Languages are not equally supported in all packages. The following +matrix shows the current state of internationalization, as of April +2005. The matrix shows, in regard of each package, for which languages +PO files have been submitted to translation coordination, with a +translation percentage of at least 50%. + + Ready PO files af am ar az be bg bs ca cs cy da de el en en_GB + +-------------------------------------------------+ + GNUnet | | + a2ps | [] [] [] [] [] | + aegis | () | + ant-phone | () | + anubis | [] | + ap-utils | | + aspell | [] [] [] [] | + bash | [] [] | + batchelor | [] | + bfd | | + bibshelf | [] | + binutils | [] | + bison | [] [] | + bluez-pin | [] [] [] [] | + clisp | [] [] | + console-tools | [] [] | + coreutils | [] [] [] [] | + cpio | | + cpplib | [] [] [] | + darkstat | [] () [] | + dialog | [] [] [] [] [] [] | + diffutils | [] [] [] [] [] | + doodle | [] | + e2fsprogs | [] [] | + enscript | [] [] [] [] | + error | [] [] [] [] | + fetchmail | [] () [] [] [] | + fileutils | [] [] | + findutils | [] [] [] | + flex | [] [] [] | + fslint | [] | + gas | | + gawk | [] [] [] | + gbiff | [] | + gcal | [] | + gcc | [] | + gettext-examples | [] [] [] [] | + gettext-runtime | [] [] [] [] | + gettext-tools | [] [] | + gimp-print | [] [] [] [] | + gip | | + gliv | [] | + glunarclock | | + gmult | [] [] | + gnubiff | () | + gnucash | [] () () [] | + gnucash-glossary | [] () | + gpe-aerial | [] [] | + gpe-beam | [] [] | + gpe-calendar | [] [] | + gpe-clock | [] [] | + gpe-conf | [] [] | + gpe-contacts | | + gpe-edit | [] | + gpe-go | [] | + gpe-login | [] [] | + gpe-ownerinfo | [] [] | + gpe-sketchbook | [] [] | + gpe-su | [] [] | + gpe-taskmanager | [] [] | + gpe-timesheet | [] | + gpe-today | [] [] | + gpe-todo | [] [] | + gphoto2 | [] [] [] [] | + gprof | [] [] | + gpsdrive | () () | + gramadoir | [] [] | + grep | [] [] [] [] [] [] | + gretl | | + gsasl | [] | + gss | | + gst-plugins | [] [] [] [] [] [] | + gstreamer | [] [] [] [] [] | + gtick | [] () | + gtkspell | [] [] [] | + hello | [] [] [] [] | + id-utils | [] [] | + impost | | + indent | [] [] | + iso_3166 | | + iso_3166_1 | [] [] [] [] [] | + iso_3166_2 | | + iso_3166_3 | [] | + iso_4217 | | + iso_639 | | + jpilot | [] | + jtag | | + jwhois | | + kbd | [] [] [] [] | + latrine | () | + ld | [] | + libc | [] [] [] [] [] | + libextractor | | + libgpewidget | [] [] [] | + libgsasl | | + libiconv | [] [] [] [] [] | + libidn | | + lifelines | [] () | + lilypond | [] | + lingoteach | | + lynx | [] [] [] [] | + m4 | [] [] [] [] | + mailutils | [] | + make | [] [] | + man-db | [] () [] [] | + minicom | [] [] | + mysecretdiary | [] [] | + nano | [] () [] | + nano_1_0 | [] () [] [] | + opcodes | [] | + parted | [] [] [] [] | + psmisc | | + ptx | [] [] [] | + pwdutils | | + python | | + radius | [] | + recode | [] [] [] [] [] | + rpm | [] [] | + screem | | + scrollkeeper | [] [] [] [] [] [] [] [] | + sed | [] [] | + sh-utils | [] [] | + shared-mime-info | [] [] | + sharutils | [] [] [] [] [] | + silky | | + skencil | [] () | + sketch | [] () | + solfege | [] | + soundtracker | [] [] | + sp | [] | + stardict | [] | + tar | | + texinfo | [] [] | + textutils | [] [] [] | + tin | () () | + tp-robot | [] | + tuxpaint | [] [] [] [] [] [] [] | + unicode-han-tra... | | + unicode-transla... | | + util-linux | [] [] [] [] | + vorbis-tools | [] [] [] [] | + wastesedge | () | + wdiff | [] [] [] [] | + wget | [] [] [] [] [] [] | + xchat | [] [] [] [] | + xkeyboard-config | | + xpad | | + +-------------------------------------------------+ + af am ar az be bg bs ca cs cy da de el en en_GB + 10 0 0 2 7 4 0 41 43 3 52 90 20 1 15 + + eo es et eu fa fi fr ga gl he hr hu id is it + +-----------------------------------------------+ + GNUnet | | + a2ps | [] [] [] () | + aegis | | + ant-phone | [] | + anubis | [] | + ap-utils | [] | + aspell | [] [] | + bash | [] [] [] [] | + batchelor | [] [] | + bfd | [] | + bibshelf | [] [] [] | + binutils | [] [] | + bison | [] [] [] [] [] [] | + bluez-pin | [] [] [] [] [] [] | + clisp | [] [] | + console-tools | | + coreutils | [] [] [] [] [] | + cpio | [] [] | + cpplib | [] [] | + darkstat | [] () [] [] [] | + dialog | [] [] [] [] [] [] [] [] | + diffutils | [] [] [] [] [] [] [] [] [] [] | + doodle | [] [] | + e2fsprogs | [] [] [] | + enscript | [] [] | + error | [] [] [] [] [] | + fetchmail | [] | + fileutils | [] [] [] [] [] [] | + findutils | [] [] [] [] [] | + flex | [] [] [] | + fslint | [] | + gas | [] [] | + gawk | [] [] [] [] | + gbiff | [] | + gcal | [] [] | + gcc | [] | + gettext-examples | [] [] [] [] | + gettext-runtime | [] [] [] [] [] [] | + gettext-tools | [] [] [] | + gimp-print | [] [] | + gip | [] [] [] | + gliv | () | + glunarclock | [] [] [] | + gmult | [] [] [] | + gnubiff | () () | + gnucash | [] () [] | + gnucash-glossary | [] [] | + gpe-aerial | [] [] | + gpe-beam | [] [] | + gpe-calendar | [] [] [] [] | + gpe-clock | [] [] [] | + gpe-conf | [] | + gpe-contacts | [] | + gpe-edit | [] [] | + gpe-go | [] [] | + gpe-login | [] [] [] | + gpe-ownerinfo | [] [] [] [] [] | + gpe-sketchbook | [] [] | + gpe-su | [] [] [] | + gpe-taskmanager | [] [] [] | + gpe-timesheet | [] [] [] [] | + gpe-today | [] [] [] [] | + gpe-todo | [] [] [] | + gphoto2 | [] [] [] [] [] | + gprof | [] [] [] | + gpsdrive | () () [] () | + gramadoir | [] [] | + grep | [] [] [] [] [] [] [] [] [] [] [] [] | + gretl | [] [] [] | + gsasl | [] [] [] | + gss | [] | + gst-plugins | [] [] [] | + gstreamer | [] | + gtick | [] [] [] [] [] | + gtkspell | [] [] [] [] [] [] | + hello | [] [] [] [] [] [] [] [] [] [] [] [] [] [] | + id-utils | [] [] [] [] | + impost | [] [] | + indent | [] [] [] [] [] [] [] [] [] [] [] | + iso_3166 | [] [] [] | + iso_3166_1 | [] [] [] [] [] [] [] | + iso_3166_2 | [] | + iso_3166_3 | [] | + iso_4217 | [] [] [] | + iso_639 | [] [] [] [] | + jpilot | [] [] | + jtag | [] | + jwhois | [] [] [] [] [] | + kbd | [] [] | + latrine | [] [] [] | + ld | [] [] | + libc | [] [] [] [] [] | + libextractor | | + libgpewidget | [] [] [] [] [] | + libgsasl | [] [] | + libiconv | [] [] [] [] [] [] [] [] [] [] [] | + libidn | [] [] | + lifelines | () | + lilypond | [] | + lingoteach | [] [] [] | + lynx | [] [] [] | + m4 | [] [] [] [] | + mailutils | [] [] | + make | [] [] [] [] [] [] [] | + man-db | () | + minicom | [] [] [] [] | + mysecretdiary | [] [] [] | + nano | [] [] () [] [] | + nano_1_0 | [] [] [] [] [] | + opcodes | [] [] | + parted | [] [] [] [] | + psmisc | [] [] | + ptx | [] [] [] [] [] [] [] [] [] | + pwdutils | | + python | | + radius | [] [] | + recode | [] [] [] [] [] [] [] [] | + rpm | [] | + screem | | + scrollkeeper | [] [] [] | + sed | [] [] [] [] [] | + sh-utils | [] [] [] [] [] [] [] | + shared-mime-info | [] [] [] [] [] [] | + sharutils | [] [] [] [] [] [] [] | + silky | [] | + skencil | [] [] | + sketch | [] [] | + solfege | [] | + soundtracker | [] [] [] | + sp | [] | + stardict | [] | + tar | [] [] [] [] [] | + texinfo | [] [] [] | + textutils | [] [] [] [] [] | + tin | [] () | + tp-robot | [] [] | + tuxpaint | [] [] [] [] [] [] [] [] [] | + unicode-han-tra... | | + unicode-transla... | [] [] | + util-linux | [] [] [] [] [] [] | + vorbis-tools | [] [] | + wastesedge | () | + wdiff | [] [] [] [] [] [] [] [] | + wget | [] [] [] [] [] [] [] [] [] [] | + xchat | [] [] [] [] [] | + xkeyboard-config | | + xpad | [] [] [] | + +-----------------------------------------------+ + eo es et eu fa fi fr ga gl he hr hu id is it + 13 85 21 15 2 35 115 45 17 8 6 40 27 1 45 + + ja ko ku lg lt lv mk mn ms mt nb nl nn no nso + +-----------------------------------------------+ + GNUnet | | + a2ps | () [] [] () | + aegis | () | + ant-phone | [] | + anubis | [] [] [] | + ap-utils | | + aspell | [] [] | + bash | [] | + batchelor | [] | + bfd | | + bibshelf | | + binutils | | + bison | [] [] [] | + bluez-pin | [] | + clisp | [] | + console-tools | | + coreutils | [] [] | + cpio | | + cpplib | | + darkstat | [] [] | + dialog | [] | + diffutils | [] [] [] | + doodle | | + e2fsprogs | | + enscript | [] | + error | [] | + fetchmail | [] [] | + fileutils | [] [] | + findutils | [] | + flex | [] [] | + fslint | [] | + gas | | + gawk | [] [] | + gbiff | [] | + gcal | | + gcc | | + gettext-examples | [] [] | + gettext-runtime | [] [] [] | + gettext-tools | [] [] | + gimp-print | [] [] | + gip | [] | + gliv | [] | + glunarclock | [] [] | + gmult | [] | + gnubiff | | + gnucash | () () [] | + gnucash-glossary | [] | + gpe-aerial | [] | + gpe-beam | [] | + gpe-calendar | [] | + gpe-clock | [] | + gpe-conf | [] | + gpe-contacts | | + gpe-edit | [] | + gpe-go | [] | + gpe-login | [] | + gpe-ownerinfo | [] | + gpe-sketchbook | [] | + gpe-su | [] | + gpe-taskmanager | [] [] | + gpe-timesheet | [] | + gpe-today | [] | + gpe-todo | [] | + gphoto2 | [] [] | + gprof | | + gpsdrive | () () () | + gramadoir | () | + grep | [] [] [] | + gretl | | + gsasl | [] | + gss | | + gst-plugins | [] | + gstreamer | [] | + gtick | [] | + gtkspell | [] [] | + hello | [] [] [] [] [] [] [] [] | + id-utils | [] | + impost | | + indent | [] [] | + iso_3166 | [] | + iso_3166_1 | [] [] | + iso_3166_2 | [] | + iso_3166_3 | [] | + iso_4217 | [] [] [] | + iso_639 | [] [] [] | + jpilot | () () () | + jtag | | + jwhois | [] | + kbd | [] | + latrine | [] | + ld | | + libc | [] [] [] [] [] | + libextractor | | + libgpewidget | [] | + libgsasl | [] | + libiconv | [] | + libidn | | + lifelines | [] | + lilypond | [] | + lingoteach | [] | + lynx | [] [] | + m4 | [] [] | + mailutils | | + make | [] [] [] | + man-db | () | + minicom | [] | + mysecretdiary | [] | + nano | [] [] | + nano_1_0 | [] [] [] | + opcodes | [] | + parted | [] [] | + psmisc | [] [] | + ptx | [] [] [] | + pwdutils | | + python | | + radius | | + recode | [] | + rpm | [] [] | + screem | [] | + scrollkeeper | [] [] [] | + sed | [] [] | + sh-utils | [] [] | + shared-mime-info | [] [] [] [] | + sharutils | [] [] | + silky | [] | + skencil | | + sketch | | + solfege | [] [] | + soundtracker | | + sp | () | + stardict | [] [] | + tar | [] [] | + texinfo | [] [] [] | + textutils | [] [] [] | + tin | | + tp-robot | [] | + tuxpaint | [] [] [] [] [] [] | + unicode-han-tra... | | + unicode-transla... | | + util-linux | [] [] | + vorbis-tools | [] | + wastesedge | [] | + wdiff | [] [] | + wget | [] [] | + xchat | [] [] [] [] | + xkeyboard-config | [] | + xpad | [] | + +-----------------------------------------------+ + ja ko ku lg lt lv mk mn ms mt nb nl nn no nso + 33 11 1 1 1 2 2 3 11 0 15 96 7 5 0 + + or pa pl pt pt_BR rm ro ru rw sk sl sq sr sv ta + +-------------------------------------------------+ + GNUnet | | + a2ps | () [] [] [] [] [] [] | + aegis | () () | + ant-phone | [] | + anubis | [] [] [] | + ap-utils | () | + aspell | [] [] | + bash | [] [] [] | + batchelor | [] | + bfd | | + bibshelf | | + binutils | [] [] | + bison | [] [] [] [] [] | + bluez-pin | [] [] [] [] [] [] [] [] | + clisp | [] | + console-tools | [] | + coreutils | [] [] [] [] | + cpio | [] [] | + cpplib | | + darkstat | [] [] [] [] [] [] | + dialog | [] [] [] [] [] [] [] | + diffutils | [] [] [] [] [] [] | + doodle | [] | + e2fsprogs | [] [] | + enscript | [] [] [] [] | + error | [] [] [] | + fetchmail | [] () [] [] [] | + fileutils | [] [] [] [] [] | + findutils | [] [] [] [] [] [] | + flex | [] [] [] [] [] | + fslint | [] [] [] | + gas | | + gawk | [] [] [] [] | + gbiff | [] | + gcal | [] | + gcc | | + gettext-examples | [] [] [] [] [] [] | + gettext-runtime | [] [] [] [] [] [] [] | + gettext-tools | [] [] [] [] [] [] [] | + gimp-print | [] [] | + gip | [] [] [] | + gliv | [] [] [] | + glunarclock | [] [] [] [] [] [] | + gmult | [] [] [] [] | + gnubiff | () [] | + gnucash | () [] [] [] [] | + gnucash-glossary | [] [] [] | + gpe-aerial | [] [] [] [] [] [] | + gpe-beam | [] [] [] [] [] [] | + gpe-calendar | [] [] [] [] [] [] [] | + gpe-clock | [] [] [] [] [] [] [] | + gpe-conf | [] [] [] [] [] [] | + gpe-contacts | [] [] [] | + gpe-edit | [] [] [] [] [] [] [] | + gpe-go | [] [] [] [] [] | + gpe-login | [] [] [] [] [] [] [] | + gpe-ownerinfo | [] [] [] [] [] [] [] | + gpe-sketchbook | [] [] [] [] [] [] [] | + gpe-su | [] [] [] [] [] [] [] | + gpe-taskmanager | [] [] [] [] [] [] [] | + gpe-timesheet | [] [] [] [] [] [] [] | + gpe-today | [] [] [] [] [] [] [] | + gpe-todo | [] [] [] [] [] [] [] | + gphoto2 | [] [] [] [] | + gprof | [] [] [] | + gpsdrive | [] | + gramadoir | [] | + grep | [] [] [] [] [] [] [] | + gretl | [] | + gsasl | [] [] [] [] [] | + gss | [] [] [] | + gst-plugins | [] [] [] [] | + gstreamer | [] [] [] [] | + gtick | [] [] [] | + gtkspell | [] [] [] [] [] [] | + hello | [] [] [] [] [] [] [] | + id-utils | [] [] [] [] | + impost | | + indent | [] [] [] [] [] [] | + iso_3166 | [] [] [] [] [] | + iso_3166_1 | [] [] [] [] | + iso_3166_2 | | + iso_3166_3 | [] [] [] | + iso_4217 | [] [] | + iso_639 | [] [] [] | + jpilot | | + jtag | [] | + jwhois | [] [] [] () () | + kbd | [] [] [] | + latrine | [] [] | + ld | [] | + libc | [] [] [] [] [] | + libextractor | [] | + libgpewidget | [] [] [] [] [] [] | + libgsasl | [] [] [] | + libiconv | [] [] [] [] [] [] [] [] [] [] | + libidn | [] () | + lifelines | [] [] | + lilypond | [] | + lingoteach | [] | + lynx | [] [] [] | + m4 | [] [] [] [] [] | + mailutils | [] [] [] | + make | [] [] [] [] | + man-db | [] [] | + minicom | [] [] [] [] | + mysecretdiary | [] [] [] [] | + nano | [] [] [] | + nano_1_0 | [] [] [] [] | + opcodes | [] [] | + parted | [] [] [] [] | + psmisc | [] [] | + ptx | [] [] [] [] [] [] | + pwdutils | [] | + python | | + radius | [] [] | + recode | [] [] [] [] [] [] | + rpm | [] [] [] [] | + screem | | + scrollkeeper | [] [] [] [] [] [] [] | + sed | [] [] [] [] [] [] [] [] | + sh-utils | [] [] [] | + shared-mime-info | [] [] [] [] [] | + sharutils | [] [] [] | + silky | [] | + skencil | [] [] [] | + sketch | [] [] [] | + solfege | | + soundtracker | [] [] | + sp | | + stardict | [] [] | + tar | [] [] [] [] | + texinfo | [] [] [] [] | + textutils | [] [] [] | + tin | | + tp-robot | [] | + tuxpaint | [] [] [] [] [] [] [] [] | + unicode-han-tra... | | + unicode-transla... | | + util-linux | [] [] [] | + vorbis-tools | [] [] | + wastesedge | | + wdiff | [] [] [] [] [] [] | + wget | [] [] [] [] [] [] [] [] [] | + xchat | [] [] [] [] [] [] | + xkeyboard-config | | + xpad | | + +-------------------------------------------------+ + or pa pl pt pt_BR rm ro ru rw sk sl sq sr sv ta + 1 0 48 30 58 6 79 71 5 45 13 12 50 86 0 + + tg th tk tr uk ven vi wa xh zh_CN zh_TW zu + +--------------------------------------------+ + GNUnet | | 0 + a2ps | [] [] [] | 19 + aegis | | 0 + ant-phone | [] | 4 + anubis | [] | 9 + ap-utils | () | 1 + aspell | [] [] [] | 13 + bash | | 10 + batchelor | [] [] | 7 + bfd | | 1 + bibshelf | [] | 5 + binutils | [] | 6 + bison | [] | 17 + bluez-pin | [] [] [] [] [] | 24 + clisp | | 7 + console-tools | [] | 4 + coreutils | [] | 16 + cpio | [] [] | 6 + cpplib | [] [] | 7 + darkstat | [] () () | 15 + dialog | [] [] [] | 25 + diffutils | [] [] [] [] | 28 + doodle | [] | 5 + e2fsprogs | [] | 8 + enscript | [] | 12 + error | [] [] [] | 16 + fetchmail | [] | 12 + fileutils | [] [] [] | 18 + findutils | [] [] | 17 + flex | [] [] | 15 + fslint | [] | 7 + gas | [] | 3 + gawk | [] | 14 + gbiff | | 4 + gcal | [] | 5 + gcc | [] | 3 + gettext-examples | [] [] [] [] | 20 + gettext-runtime | [] [] [] [] [] | 25 + gettext-tools | [] [] [] | 17 + gimp-print | [] | 11 + gip | [] | 8 + gliv | [] | 6 + glunarclock | [] [] | 13 + gmult | [] [] [] | 13 + gnubiff | [] | 3 + gnucash | () [] | 10 + gnucash-glossary | [] | 8 + gpe-aerial | [] [] | 13 + gpe-beam | [] [] | 13 + gpe-calendar | [] [] [] [] | 18 + gpe-clock | [] [] [] [] | 17 + gpe-conf | [] [] | 12 + gpe-contacts | [] [] | 6 + gpe-edit | [] [] [] [] | 15 + gpe-go | [] [] | 11 + gpe-login | [] [] [] [] [] | 18 + gpe-ownerinfo | [] [] [] [] | 19 + gpe-sketchbook | [] [] | 14 + gpe-su | [] [] [] | 16 + gpe-taskmanager | [] [] [] | 17 + gpe-timesheet | [] [] [] [] | 17 + gpe-today | [] [] [] [] [] | 19 + gpe-todo | [] [] [] | 16 + gphoto2 | [] [] | 17 + gprof | [] [] | 10 + gpsdrive | | 2 + gramadoir | [] | 6 + grep | [] [] [] [] | 32 + gretl | | 4 + gsasl | [] [] | 12 + gss | [] | 5 + gst-plugins | [] [] | 16 + gstreamer | [] [] [] | 14 + gtick | [] | 11 + gtkspell | [] [] [] | 20 + hello | [] [] [] [] | 37 + id-utils | [] [] | 13 + impost | [] | 3 + indent | [] [] [] | 24 + iso_3166 | [] [] [] | 12 + iso_3166_1 | [] [] | 20 + iso_3166_2 | | 2 + iso_3166_3 | [] [] | 8 + iso_4217 | [] [] | 10 + iso_639 | [] [] | 12 + jpilot | [] [] [] | 6 + jtag | | 2 + jwhois | [] [] [] | 12 + kbd | [] [] | 12 + latrine | [] [] | 8 + ld | [] | 5 + libc | [] [] | 22 + libextractor | | 1 + libgpewidget | [] [] | 17 + libgsasl | [] | 7 + libiconv | [] [] [] [] [] | 32 + libidn | [] [] | 5 + lifelines | | 4 + lilypond | [] | 5 + lingoteach | | 5 + lynx | [] [] | 14 + m4 | [] [] | 17 + mailutils | [] | 7 + make | [] [] | 18 + man-db | | 5 + minicom | | 11 + mysecretdiary | [] [] | 12 + nano | | 11 + nano_1_0 | [] [] | 17 + opcodes | [] | 7 + parted | [] [] [] | 17 + psmisc | [] | 7 + ptx | [] [] | 23 + pwdutils | | 1 + python | | 0 + radius | [] | 6 + recode | [] [] | 22 + rpm | [] [] | 11 + screem | | 1 + scrollkeeper | [] [] | 23 + sed | [] [] | 19 + sh-utils | [] | 15 + shared-mime-info | [] [] | 19 + sharutils | [] [] [] | 20 + silky | | 3 + skencil | | 6 + sketch | | 6 + solfege | | 4 + soundtracker | [] | 8 + sp | [] | 3 + stardict | [] [] [] [] | 10 + tar | [] [] | 13 + texinfo | [] [] | 14 + textutils | [] [] [] | 17 + tin | | 1 + tp-robot | [] [] | 7 + tuxpaint | [] [] [] [] | 34 + unicode-han-tra... | | 0 + unicode-transla... | | 2 + util-linux | [] [] | 17 + vorbis-tools | [] | 10 + wastesedge | | 1 + wdiff | [] [] | 22 + wget | [] [] [] [] | 31 + xchat | [] [] [] | 22 + xkeyboard-config | | 1 + xpad | [] | 5 + +--------------------------------------------+ + 72 teams tg th tk tr uk ven vi wa xh zh_CN zh_TW zu + 147 domains 0 0 1 78 29 0 71 16 0 41 20 0 1711 + + Some counters in the preceding matrix are higher than the number of +visible blocks let us expect. This is because a few extra PO files are +used for implementing regional variants of languages, or language +dialects. + + For a PO file in the matrix above to be effective, the package to +which it applies should also have been internationalized and +distributed as such by its maintainer. There might be an observable +lag between the mere existence a PO file and its wide availability in a +distribution. + + If April 2005 seems to be old, you may fetch a more recent copy of +this `ABOUT-NLS' file on most GNU archive sites. The most up-to-date +matrix with full percentage details can be found at +`http://www.iro.umontreal.ca/contrib/po/HTML/matrix.html'. + +1.6 Using `gettext' in new packages +=================================== + +If you are writing a freely available program and want to +internationalize it you are welcome to use GNU `gettext' in your +package. Of course you have to respect the GNU Library General Public +License which covers the use of the GNU `gettext' library. This means +in particular that even non-free programs can use `libintl' as a shared +library, whereas only free software can use `libintl' as a static +library or use modified versions of `libintl'. + + Once the sources are changed appropriately and the setup can handle +the use of `gettext' the only thing missing are the translations. The +Free Translation Project is also available for packages which are not +developed inside the GNU project. Therefore the information given above +applies also for every other Free Software Project. Contact +`translation@iro.umontreal.ca' to make the `.pot' files available to +the translation teams. + diff --git a/Branch-2.2/bacula/AUTHORS b/Branch-2.2/bacula/AUTHORS new file mode 100644 index 0000000000..f188694af8 --- /dev/null +++ b/Branch-2.2/bacula/AUTHORS @@ -0,0 +1,88 @@ + +This file contains a list of the people who have contributed code, programs or +documentation to the Bacula project. Thanks to all of you. Without your +participation, Bacula would not be the success it is today. + +If you have made a contribution and do not find your +name on this list, please send a note to me: kern@sibbald.com + +Contributors: + +Adam Thorton +Adrew J. Millar +Adrian Close +Aitor Matilla +Aleksandar Milivojevic +Alexander Bergolth +Alexandre Baron +Andreas Piesk +Andrew Ford +Arno Lehmann +Attila Fülöp +Bernd Frick +Bill Moran +Bastian Friedrich +Carlos A. Molina G +Carsten Paeth +Chris Lee +Christian Masopust +Christopher Hull +Dan Langille +Daniele Eccher +David Boyes +David Duchscher +D. Scott Barninger +Devin Reade +Dirk Bartley +Eamon Brosnan +Eric Bollengier +Erich Prinz +Felix Schwarz +Francisco Reyes +Frank Sweetser +Howard Thomson +Jaime Ventura +Jan Kesten +John Goerzen +John Kodis +John Walker +Jorj Bauer +Jose Luis Tallon +Jo Simoens +Juan Luis Frances +Juergen Lock +Karl Cunningham +Kern Sibbald +Landon Fuller +Luca Berra +Lucas B. Cohen +Lucas Di Pentima +Ludovic Strappazon +Marc Cousin +Marc Schiffbauer +Martin Simmons +Meno Abels +Michael Renner +Michael -buk- Scherer +Michael Stapelberg +Michel Meyers +Morgan +Nic Bellamy +Nicolas Boichat +Olivier Lehmann +Peter Buschmann +Peter Eriksson +Philippe Chauvat +Phil Stracchino +Preben Guldberg +Richard Mortimer +Robert Nelson +Rudolf Cejka +Russel Howe +Sergey Svishchev +Thomas Glatthor +Thorsten Enge +Tim Oberfoell +Tomas Cameron +Wolfgang Denk +Yves Orton diff --git a/Branch-2.2/bacula/COPYING b/Branch-2.2/bacula/COPYING new file mode 100644 index 0000000000..062c2fbb48 --- /dev/null +++ b/Branch-2.2/bacula/COPYING @@ -0,0 +1,2 @@ +Please see the file LICENSE concerning the terms of the license, +copying and such. diff --git a/Branch-2.2/bacula/COPYRIGHT b/Branch-2.2/bacula/COPYRIGHT new file mode 100644 index 0000000000..062c2fbb48 --- /dev/null +++ b/Branch-2.2/bacula/COPYRIGHT @@ -0,0 +1,2 @@ +Please see the file LICENSE concerning the terms of the license, +copying and such. diff --git a/Branch-2.2/bacula/ChangeLog b/Branch-2.2/bacula/ChangeLog new file mode 100644 index 0000000000..47ac66bfa1 --- /dev/null +++ b/Branch-2.2/bacula/ChangeLog @@ -0,0 +1,1322 @@ + Technical notes on version 2.2.x + +General: +Release Version 2.2.8 +25Jan08 +kes Apply patch from Martin to correct bug #1040, bscan sets existing + ClientId to zero. +kes Fixed important spelling error in doc -- bug #1045. +23Jan08 +kes Move initialization of read/write res lock earlier in the code. + This fixes the crash with a null conf file. This fixes bug + #1030. +kes Redefine CURES in lib/parse_conf to be URES and move it all + into lib/parse_conf.c -- this responds to bug #1042, but does + not fix it. The fix is not to compile with FORTIFY_SOURCE. +kes Backport fix de-referencing a NULL pointer in the scanner from + the trunk SVN. I don't think this was reported as a bug. + +Beta release Version 2.2.8 +09Jan08 +kes Re-enable the new job code editing (%f). +08Jan08 +kes Fix bsnprintf for float point numbers. I broke recently when + parameterizing some variables. +03Jan08 +kes Move Heartbeat documentation from Job to Director resource. + This fixes bug #1033. +02Jan08 +kes Fix existing switch drive SD code to call autochanger to release + any old volume. This must be done to keep the autochanger from + releasing subsequently newly reserved volumes in doing a close(). + This should possibly fix bugs #1032 and #1018. +kes Apply big backport of current SVN SD code that corrects a number + of race conditions. This is a first step in fixing bug #1018. +29Dec07 +ebl Fixes bug #1028 where "Selection Type" option was not usable + with JobDefs. + + +Release Version 2.2.7 +24Dec07 +kes Partial back out (disabled) %f job code editing because it + does not build on Win32. +kes Fix seg fault Frank Sweetser reports in regression testing + on his systems. The problem was that the original author of + bsnprintf.c did not take into account the side effects of + using ++x in the argument to a #define. +14Dec07 +kes Apply patch from Michael Stapelberg + that implements double quoting include names in conf files, + and also allows piping input by having the first character + be a vertical bar (|). +kes Apply patch from Bastian Friedrich + that implement %f in RunScripts to pass the FileSet name. +kes Skip leading | when lex input comes from a pipe as suggested + by Michael Stapelberg . +13Dec07 +kes Apply patch for bsmtp Win32 daylight savings time fix supplied by + Nerijus Baliunas +10Dec07 +kes This patch corrects a problem where the maximum concurrent storage + jobs counter gets out of sync during restore jobs causing jobs to + 'wait on max Storage jobs'. This patch fixes bug #1009. +08Dec07 +kes Add new include to postgresql.c suggested by Marc Cousins so + that it compiles correctly with pgre version 8.3. Also fix + misuse of %x with pointer (should be %p). +03Dec07 +kes This patch fixes bcopy so that it produces correct Volumes. + It fixes bug #1022. +kes This patch eliminates spurious output to the console during a VerifyVolume + job that contains encrypted data. It fixes bug #1024. +02Dec07 +kes This patch prevents the 'status dir' command from trying to use a scratch + volume and possibly moving it from one pool to another. This patch fixes + bug #1019. +30Nov07 +kes Fix --archivedir addition to configure. Replace it with + --with-archivedir in configure.in This fixes the regression + test builds. +kes This patch fixes bug #1012 where the job is canceled because + of Max Run Time exceeded when the job has not yet started. +29Nov07 +ebl Apply Richard Mortimer patch that fixes #1016 when there are more than + one 'part' to write. Instead of each part being stored on disk, + written to DVD, then deleted from disk, all parts are written to disk, + and only the last is written and deleted from disk. +27Nov07 +kes Correct typos in disk-changer.in +25Nov07 +kes This patch fixes the status command to include the formating string for + JS_AttrInserting. It fixes bug #1021. +kes This patch should fix the Mac OS X build problem on the latest + Darwin, where sys/types.h was not included correctly (apparently + due to a change in the Mac headers). The solution was to explicitly + ensure that it is defined for the ./configure. + This patch also has a rebuild of configure that includes the Debian + qt4 patch to check for qmake-qt4. This patch fixes bug #1020. +kes This patch should ensure that queued messages to the console are + displayed as soon as possible. It should fix bug #1007, but has been + reported not to work. +14Nov07 +kes This patch fixes the infinite loop when trying to increase the + maximum number of volumes in a Pool during the add command. + This patch fixes bug #1008. + +Release Version 2.2.6 +09Nov07 +kes Get fix for joblist bug in bat from trunk. +04Nov07 +kes This patch fixes bug #1003 where putting the message output from + a Verify job into the catalog results in a recursive loop. The problem + seems to show up only with postgresql (to be verified). +02Nov07 +kes Fix bug #942 where lots of emails where generated when the heartbeat + interval was low and Bacula wanted a different tape from the one in + the drive. +26Oct07 +ebl Apply 2.2.5-lastwritten.patch to fix the LastWritten field + which was updated during a restore (or a reading migration) bug #982 +24Oct07 +ebl Use qmake-qt4 instead of qmake when available (debian system). +22Oct07 +kes Add a security warning to src/cats/make_catalog_backup.in indicating + that passing the password via the command line (arg 3) is insecure. + This responds to bug #990 (it doesn't fix it). +kes Apply 2.2.5-postgresql-errors.patch +kes Remove unneeded File table index on JobId, which is already + present as the first index of another multi-index. +19Oct07 +kes Set default debug_level to zero. This corrects bugs #991 and #993. +kes Fix a crash in bat when it cannot connect to the Director for example + if the Director is not running. +16Oct07 +kes Activate Close button on tray-monitor window. This fixes + bug #986. +12Oct07 +kes Fix spurious warning message printed when creating a volume with + a LabelFormat. This fixes bug #976. + +Release Version 2.2.5 +09Oct07 +kes Add JobId in place of Job name in all the Jmsg() output. +kes Correct the APP_DESC for the Win32 storage service (remove an e). +06Oct07 +kes Add new SD despooling attributes and Dir inserting attributes + job status codes. This fixes bug #961. +kes Fix Win32 drive display in bat version browser. Fixes bug #962. +05Oct07 +kes Fix doc issue. This fixes bug #963. +kes Fix listing performance problems in bat. Pointed out by + Chris Howells. +ebl Fix replace on restore. This fixes bug #969 +kes Fix bat code that tests for Win32. This should fix bug #968 +kes Query 5 list wrong Vol after migration. This fixes bug #960 +04Oct07 +kes Correct lib/Makefile.in to include enh_fnmatch.o that was removed + in back porting from 2.3.x +03Oct07 +kes Backport almost 4000 lines of 2.3 code that fixes a number of bugs. + The details are included in the notes in this file. +28Sep07 +kes Backport 2.3 code that fixes: it fixes incorrect or incomplete error + messages; it fixes a problem opening the SQLite3 database when multiple + simultaneous jobs were running; it fixes a bug with certain versions of + MySQL where batch inserts failed because of table name character case + (upper/lower) differences. +kes Fix race condition that drops final block written to volume. + This happens in rare cases with multiple simultaneous jobs + when the Volume fills. This fixes bug #964. May be related + to bug #935 and possibly #903. +27Sep07 +kes Fix FD->SD authorization failure, which was due to spurious + wakeups from a pthread_cond_timedwait(). Simply check the + predicate before continuing. This fixes bug #953 +dvl Add new configuration item --archivedir +dvl Adjust regression tests to use tmp not /tmp. This will allow + multiple concurrent runs of the regression tests. +28Sep07 +kes Fix race condition that drops final block written to volume. + This happens in rare cases with multiple simultaneous jobs + when the Volume fills. This fixes bug #964. May be related + to bug #935 and possibly #903. +kes Eliminate more strerror() and replace with bstrerror(). +kes Remove BSD getopt and replace with unrestricted IBM version. +kes Fix Win32 build for changed calling sequences. +27Sep07 +kes Fix FD->SD authorization failure, which was due to spurious + wakeups from a pthread_cond_timedwait(). Simply check the + predicate before continuing. This fixes bug #953. +kes Add const char where needed (more to do). +26Sep07 +kes Setup SQLite busy handler before doing queries. Fixes bug #967. +kes Don't overwrite error message in check_tables_version. + Fixes bug #966. +kes Unlock batch insert tables with same calls used elsewhere. +kes Allow starting 59 jobs a second. +kes Make SD session key more random. +kes Add retry for SQLite opening db if it fails. Probably helps + for bug #967. +kes Suppress extra error messages during batch insert failure. + Fixes bug #966. +kes Put some FD auth code on dbglvl rather than fixed. +kes Return insert attributes error message in db msg buffer to avoid + false error messages. Helps fix bug #966. +kes Separate batch init error messages. Probably helps fix bug #966. +kes If Dir gets an error during inserting attributes, cancel SD. + This reduces unnecessary error messages. +24Sep07 +ebl Cleanup batch insert code. Probably fixes bug #965. +23Sep07 +kes Turn off some code when batch insert not enabled. +kes Edit FD name in connect error messages. +22Sep07 +kes Add code to handle tray monitor separated from Win32 FD. +kes Fix display of Win32 tray monitor after reboot. Fixes bug #952. +20Sep07 +kes Fix ANSI tape labeling. This fixes bug #954. +kes Increase the max block size to 4MB fixes bug #957. +kes Apply 2.2.4-poll-mount fix, that resolves bug #908 where a tape + is not properly mounted (recognized) during a poll. +kes Apply 2.2.4-verify patch that resolves bug #958. A Verify catalog + Job that has differences reports Verify OK. + +Release Version 2.2.4 +14Sep07 +kes Increase size of name string when FD making connection to SD. + May fix bug #953. +13Sep07 +kes Add code to try to fix bug #908. +kes Add waits to multiple exit detection code to try to force pid + file to always be deleted. +kes Restore good dev.tar.gz to rescue set appropriate binary property. + This fixes bug #950. +kes Fix seg fault in error exit of acquire_for_read after unsuccessfully + trying to switch drives by checking for blocking before unblocking. + Fixes bug #906. +kes Cancel storage daemon in all cases where FD reports error. This + should fix virtually all cases of bug #920. +12Sep07 +kes Fix error message that was clobbered when Dir tells SD it does not + have write permission on Volume. This should fix a minor point + in bug #942, but not the main problem. +kes Add code to cancel job in SD if FD connection fails. This should + fix bug #920. +kes Add code in FD exit to prevent loops and a crash on FreeBSD. +kes Fix migration code to get correct Volume name with multiple volumes + by skipping |. Fixes bug #936. +kes Implement patch supplied by Landon to fix bug #944 where using + TLS with bconsole uses 99+% of the CPU. +kes Note, you need GTK >= 2.10 to be able to link the Tray Monitor + program. +kes Move patches into patches directory. +11Sep07 +ebl Fix bug #946 about "bacula-dir -t" which doesn't works + as expected. +09Sep07 +ebl Using "m" in bconsole will show messages like before, + and not memory usage. + +Release Version 2.2.3 +kes Note, you need GTK >= 2.10 to be able to link the Tray Monitor + program. +09Sep07 +kes Fix bug #935, and probably also bug #903 where files were not + restored. MediaId was not properly set in JobMedia record after + a Volume change. +07Sep07 +kes Add ./configure search in qwt-qt4 for qwt package +kes Apply Martin Simmons patch that should turn off the new API usage + when batch insert is turned off allowing building on older + PostgreSQLs. + +Release Version 2.2.2 +04Sep07 +ebl Detect if new PosgreSQL batch insert API is present. +kes Correct incorrect mempool call causing Director crash. +sb Update spec files for 2.2.1 release + +Release Version 2.2.1 +30Aug07 +kes Update POTFILES.in +kes Cleanup a few underquoted AC_DEFUNs in configure +kes Apply patch from Martin Simmons that adds a test for va_copy to + ./configure +29Aug07 +kes Fix bug 921 by increasing the number of tries to create a new volume + from 11 to 100. +kes Rework bmsg in ua_output to use va_copy() so that bvsnprintf() + can be called multiple times. Implement a version for machines + without va_copy() that gets a big buffer. +25Aug07 +kes Integrate more portable zone offset code into bsmtp.c + Submitted by Attila Fülöp. +24Aug07 +kes Fix bad SD->FD return status reported by + (James Harper) +ebl Fix a bug in read_close_session which return random status + thanks to James Harper +23Aug07 +kes Fix (hopefully) bug #930 by doing a db_escape_string() on file + and directory names during restore of single file/directories. +kes Add sanity checks to .sql command when string is empty. Hopefully + that will resolve Dirks Director crash. +22Aug07 +kes Apply patch submitted by Martin Simmons that corrects a seg fault + in the bsmtp chat subroutine when debug is >= 10. +21Aug07 +kes Fix Director crash when running bat SQL queries. +kes Add David's notes on Item 8: Copy pools. +18Aug07 +kes Rework projects file to be current and ready for a vote. +kes Enhance lex scanner error message. +17Aug07 +kes Tweak LICENSE file to mention BSD code. +kes Fix bat.pro.in so that it includes the OpenSSL libraries only + if specified on the ./configure. +kes Add first (not yet tested) cut of bcomm to the qt-console directory. + This class is intended to allow us to open a second bsock to the + Director while in the restore subdialog. +16Aug07 +kes Fix configure to create bat Makefile before creating dependencies. +kes Eliminate the egg files from the tray-monitor. Use gtk calls. +kes Add a tooltip to the tray monitor. +dvl Set the Director's PID file before dropping privs. This fixes + bug #923. +15Aug07 +kes Update AUTHORs file +kes Increase the default max concurrent jobs to 20 in FD and SD to + correspond with the default .conf files. +kes Rewrite the Win32 service routines. This eliminates the 3 copies + some different, of the same file created by RN when porting the + Win32 SD and Dir. +kes Rearrange some of the Win32 directories and the placement of the files + in them. +kes Set DEVELOPER flag in version.h + +======================================================================== +Release Version 2.2.0 +09Aug07 +kes Apply a second doc patch from Marc. +kes Apply a doc patch from Marc Schiffbauer that + improves the tips section that discusses how to setup multiple + simultaneous jobs. +08Aug07 +kes Update bat README file. +kes Apply patch from Allan Black that + corrects a typo in the Recycle status check in db_find_next_volume(). + This will probably fix a number of annoying problems with multiple + Recycled volumes. +kes Modify most of dird/msgchan.c to use bsock class calls rather than + bnet calls -- no functionality change. +07Aug07 +kes Modify the Verify output to specify if files are missing on + the Volume(s) or disk. Fixes confusion in bug #916. +kes When more than one Volume is read in a migration job, the last + Volume bytes reported are from the last read volume rather than + the last written volume. Fixed. This fixes bug #910. +kes Fix display of Recycle flag after update volume=foo recycle=yes. + It previously printed New Recyle flag is: no. This fixes bug + #917. +06Aug07 +kes Correct seg fault when switching tape drives during restore. +kes Commit uid_gid_name.c (replacement for idcache.c), but will not + be used until after 2.2.0 release. +04Aug07 +kes Remove fnmatch() in SD that permitted wild card specifications. + This fixes bug #914. +31Jul07 +kes Fix %g in filename returned by SQL for browse tree reported by + Dirk. +kes Fix configure so that it puts config.out in the cwd rather than + in src/qt-console +kes Attempt to fix the locking problem reported by Eric in bug #906. +kes Make berrno class to leave errno unchanged after constructor call. +kes Make bnet_server use the heap rather than the stack to allocate + its socket fd pointers to avoid a crash at termination. Problem + reported by Ryan Novosielski and bugs pointed out by Martin Simmons. +30Jul07 +kes Create new depkgs and depkgs-qt separating the qwt out of depkgs + and putting it in depkgs-qt along with Qt4.3. +29Jul07 +kes Rework code in acquire.c that switches drives for reading when + the Media Type does not match. This should fix bug #906 +28Jul07 +ebl Fix a director segfault during job setup #907 +kes Correct seg fault in postgresql when first operation returns no + rows. Fixes Dirks File browser problem seg fault with bat. +25Jul07 +kes Apply patch from Felix Schwarz that allows + building wxconsole on Fedora 7 with wxWidgets 2.8 (it works with + 2.6 as well). +24Jul07 +kes Implement PopUp YES/NO dialog for bat. +23Jul07 +ebl Fix a compilation bug when using #define BACL_WANT_NUMERIC_IDS +22Jul07 +kes Correct RunScript to terminate job in FD on failure. +kes Change abort_on_error and AbortJobOnError to fail_on_error + and FailJobOnError in RunScripts. +kes Minor tweaks of code formating in RunScripts, principally to + avoid depassing 80 columns. +21Jul07 +kes Eliminate one #ifdef Win32 in bsmtp +kes Implement grow tool to grow a file for testing very large databases. +kes Add big-vol-test to test Bacula seeking with > 5GB. +Release 2.1.28 beta +19Jul07 +kes Modify find_next_volume() to return all values in Media record. +kes Ensure that we keep Recycle Pool when moving Scratch volumes. + +Release 2.1.28 beta +18Jul08 +kes Update Release notes +17Jul07 +ebl fix a bug in get_scratch_volume() report by Andreas Helmcke + Warning, in previous beta version, all media get from scratch keep their + old retention. +16Jul07 +kes Tweaked Win32 installer to remove temp conf files at uninstall time. + This should fix bug #842. Made a note to look at removing the temp + files at the end of the install. +kes Add ability to mount and unmount a file device providing it is + marked as being removable and has the appropriate mount and unmount + commands defined in the Device resource. This fixes bug #830. +kes When applying a storage override, release all previous storage + definitions rather than just prepending the new storage. + This should prevent a good deal of confusion. +14Jul07 +kes Implement ./configure search for qwt libraries. +13Jul07 +kes Disable posting the WM_CLOSE message in KillRunningCopy of the + Win32 FD. This should fix bug #893. +kes Remove an unnecessary beep in Win32 init code. +kes Update copyright dates in Win32 executable about boxes. +kes Replace the FSF copyrighted getopt.c and getopt.h in the Win32 + code with a BSD getopt.c and getopt.h. +kes Remove sched.h from the Win32 compat directory -- not used. +kes Remove the Exit menu item from the Win32 tray monitor. If you really + need to shut it down, do it through the services panel or the command + line. +kes Remove some inappropriate Bacula FSFE copyrights. +ebl Tweak status client=xxx to be more easy to parse (more like in 2.0.x) +kes Fix regress config non-portable test as pointed out by + Florian Heigl +kes Fix PSCMD for HP-UX in configure.in to have proper syntax. + as pointed out by Florian Heigl +12Jul07 +kes Fix missing rctx. prefixes on the Darwin code in src/filed/restore.c + Reported by Frank Sweetser. + +Release 2.1.26 beta +12Jul07 +kes Fix client-only build. +kes Integrate client-only fixes for bsys (initgroups) and conio from + Sergey Svishchev for the AIX platform. +kes Make arguments to get_scratch_volume() in same order as other + such calls. +kes Rework the prune_volumes() subroutine so that after purging and + no volume found in desired pool, it will check for a scratch + volume. This prevents recycling the whole scratch pool. +kes Add code to status storage to print boffset_t (largefile support). +11Jul07 +kes Move qwt (Graphics libarary for Qt4) to depkgs. +kes You now need a --with-qwt= to be able to build bat. +kes Update src/win32/cats/bacula_cats.def to include the new + db_get_query_dbids() call on Win32. +07Jul07 +kes Correct a problem when selecting a scratch volume and moving + it to another pool that lost some columns. +kes Tweak some code in ua_update.c to use POOL_MEM instead of POOLMEM. +kes Enhance Autochanger error messages to include Volume and device name. +kes Rework prune_volumes() code to take account of InChanger flag, + and to handle recycling volumes going to the Scratch pool and + current pool because the RecyclePool directive. +kes Implement a better and more efficient db_get_query_dbids() to + handle creating and passing back a list of DBIds. + +Release 2.1.24 beta +03Jul07 +kes Start work on new more efficient DBId subroutine. First use + will be for recycling volume to Scratch inchanger. +kes Increase number of JobIds in pruning from 1000 to 10000. + This to be replaced by above routine. +kes Begin implementation of building Qt4 on Win32. +kes Correct typo in fix I added for bad TLS shutdown. +kes Pull 2.0.3 patches into patches directory. +kes Update Release notes. Include qt-console in line count. +kes Update Projects file. +30Jun07 +kes Integrate patch from Sergey Svishchev that fixes + bug in migration code where a job that spanned two volumes + was migrated twice. +29Jun07 +kes Implement new BST_DESPOOLING blocked state. Change from locking + during despooling in SD to blocking. This means that other threads + can work with the device structure, in particular the reservations + system while despooling. +28Jun07 +kes Fix return in reservation message queue that missed clearing + the jcr lock (implemented 26Jun07 below). +kes Rename a number of dev methods to make locking function names + a bit clearer. +kes Document locking in lock.c. Move lock structures to new file + lock.h. +26Jun07 +kes Move reservations message lock to lock jcr only this + fixes bug #861. +kes Move main SD locking code into lock.c (new file). +kes Update Win32 build to include lock.c + +Release 2.1.22 beta +26Jun07 +kes Dirk committed the qwt library code for drawing graphs in bat. +kes Tweak install of qwt so that it is integrated with ./configure. +25Jun07 +kes Fix HAVE_BATCH_INSERT to be HAVE_BATCH_FILE_INSERT, pointed + out by Eric (my typo). +ebl Fix configure.in to get batch mode enable +kes Return correct string from authenticate.cpp in bat when connecting + to Dir. +kes Apply patch suggested by Frank Sweetser to fix bug #888 -- + spurious line drops when using TLS. +kes Do not file reparse points when restoring a file that already + exists -- Win32. +24Jun07 +kes Implement Windows reparse points -- similar to directories, but + we do not descend into it. This is a first cut. They seem to + be backed up, but restore is not yet tested. +kes Remove restore_blocking in tls code when shutting a socket to leave + it in blocking mode. Hopefully this will fix the encryption bug + reported by Frank Sweetser. +kes When opening a file for backup, tell the OS that we are going to + read it sequentially -- optimization. +kes Change variable names in authenticate_director() to not conflict + with member names in bat. Caused great confusion with compiler, + but no warnings. +23Jun07 +kes Queue openssl error messages in case of comm problem. +kes Do shutdown() call if socket terminated. +kes Remove some duplicated code in tls.c +kes Move more of the bsock member variables into private and access + them with methods. +kes Add Frank Sweetser's tls-test to the regression suite. +22Jun07 +kes Add Swedish sv.po file +21Jun07 +kes Don't print clock skew message in FD if less than 3 seconds diff. +kes Add a bit of VSS info to status client. +kes Implement a first cut of Vista VSS, using Win2003 code. + + +Release: 2.1.20 beta +20Jun07 +kes Fixed bug #886 (multidrive autochanger: SD doesn't use drive with + loaded tape but uses first drive). +kes Fixed bug #807 Restore encrypted backup failed on Windows 2003 + This was indeed a Win32 issue. +19Jun07 +kes Simplify search of autochanger for in-use Volume. +kes Fix exit condition of check for in-use volume. kes Remove + inappropriate my_postgresql_free_result() in db_close() + routine. +kes Fix bad return in FD when encryption signature not found. + Probably caused a crash. +kes Inhibit missing encryption signature error messages for + file types where no signature computed. +kes Correct inverted check on autochanger in reservation system. +kes Tweak debug code in autochanger reservation. +18Jun07 +kes Add some additional locking in the cats directory in subroutines + that modify packet variables called from batch insert. +kes Rework how dcrs are allocated. new_dcr() can now be called + with an existing pointer, and it will simply clean it up. + This allows the reservation system to test various different + devices, and will permit easy device changes. +kes A bunch of changes all over to handle new new_dcr() calling + sequence. +kes Work more on the Volume management in the SD. Remember Volumes + for tape drives and for autochangers (even virtual disk changers). +kes When looking at the Volume list to reserve a drive, handle + autochanger names correctly by interating through the changer + devices. Also call the Director to see if a Volume is suitable + for the current job. +kes Fix some bugs in bscan. Make sure all media records are written. + Make sure that valid JobMedia records are written for disk files. + Previously they were completely wrong. +kes Move source tar files for depkgs-mingw32 to www.bacula.org so + that the URLs don't change and so that the developers will all + work off the same copy. Rebuild from scrach. +kes Upgrade Win32 SQLite3 from 3.3.8 to 3.3.17. + +Release: 2.1.18 beta +16Jun07 +kes Fix seg fault in FD from incorrect digest size. +kes Fix argument to non-OpenSSL crypto.c subroutine. + +Release: 2.1.16 beta +16Jun07 +kes Remove a few malloc()s from the encryption code. +kes Use the class calls to bsock in filed/backup.c and restore.c in + place of the old bnet_xxx code. +kes Implement code that does an on the fly calculation of the + signing digest during restore of encrypted files. It makes + a best guess at the algorithm, and if it is not correct, will + then revert to the old code which reads the file after it is + restored. +kes Implement at least one missing crypto stream in stream_to_ascii() +kes Apply patch from William that fixes bug + #877 where a reload with bad syntax causes Dir to exit. + +Cut: 2.1.14 beta (not released) +14Jun07 +kes Do not free a volume on a tape drive until another volume is + mounted and read, or the autochanger unloads the volume. + This should help the SD re-use volumes that are already mounted, + and should fix bug #886. +kes Apply patch from user brettedgar that allows gnome2-console include + the OpenSSL libraries, and hence work with SSL. Fixes bug #885. +kes Apply patch from Lucien Weller that fixes day of week calculation + because of DST flag problem. Fixes bug #887. +10Jun08 +kes Move find_next_appendable_volume() to after acquiring a valid device + in reserve.c. This fixes bug #864 -- confirmed by reporter. +09Jun07 +kes Unable to reproduce bug 872. However added additional testing for + integer. +kes Bug #874 resolved by documenting SQLite limitations. +kes Bug #882 resolved by documenting mtx-changer script for new drive code. +kes Bug #881 resolved by removing typo in mtx-changer script. +kes Made Frank Sweetser's wiki the official Bacula wiki with his + approval. Added a link to the wiki on the web page, and implemented + a backup from http://paramount.ind.wpi.edu +08Jun07 +kes Fix update allfrompool to pass pool name. +07Jun07 +kes Convert to pure GPL v2 license. +kes Fix sscanf problems reported by Peter Buschman that caused + a bus error on Solaris. +kes Rework (simplify) the select prompt in bat. +kes Move get_jobid_from_tid() into lib and create a + get_jcr_from_tid(). +kes Use get_jcr_from_tid() to conver all tls Emsg() to Jmsg(). This + should definitely fix the problem of lost error messages in the + encryption code. +kes Remove over zellous addition of FSFE copyright in a few eggxxx files. +kes Eliminate tcpd.h from the project. Enclose the #include from the + library with extern C ... +kes Add print of signal name when a signal is trapped. + +Release: 2.1.12 beta +04Jun07 +kes Fix a seg fault in the PostgreSQL driver dereferencing a NULL pointer. +03Jun07 +kes Implement SQLITE3_INIT_QUERY in version.h that can do an initial + query for SQLite3. Use it to set PRAGMA synchronous = OFF. This + makes SQLit3 run 30 times faster, though a bit less safe. +kes Implement --with-batch-insert in configure and detection of thread + safe libraries. It is on by default, but turned off if no thread + safe library (e.g. SQLite 2) is available. +02Jun07 +kes Fix Bacula PostgreSQL buffer overruns. +kes Do better checking for NULL results returned from PostgreSQL; + implement retry for failed queries; clear results buffer after + failed query. Hopefully this will correct the PostgreSQL failures. +01Jun07 +kes Implement algorithm to handle only one appendable volume with + Prefer Mounted Volumes = no. +kes Fix a Bacula PostgreSQL bug dereferencing a NULL pointer + returned from a query. +kes Make volume lock recursive. +kes Implement an additional volume reservation algorithm that + starts by considering all reserved volumes then uses the + old brute force algorithm of searching the resources to + find a suitable device. +kes Add new reservations debug code and refine the old code. +kes Update the win32/dll/bacula.defs file. +29May07 +kes Tweak reservations algorithm to permit a few more cases, i.e. + volume reserved, but on different drive, ... +kes Enhance SD status to include Pool and Media Type for drive in a + more readable format (a bit longer). +kes Fix PostgreSQL double free. +28May07 +kes Minor refactoring of restore decryption code. +kes Add code to smartall.c to detect double free of a buffer. +27May07 +kes Add < > around %r in from field on mail command of bacula-dir.conf.in + so that bsmtp will create a correct email address (mailbox only). +kes Modify 'memory' command so that the buffers are listed as 'In use' + to avoid confusion with Orphaned buffers. +kes I reworked the OpenSSL include/lib flags to be handled in + the standard Bacula way, which should fix bug #863 concerning + non-standard OpenSSL libraries. +26May07 +kes Implement Help Browser window for bat. +kes Fix reload bug that reset StorageId to zero. +25May07 +kes Fix TLS #ifdefing when TLS turned off. +kes Ensure that when labelling a tape with Slot=0 that InChanger + is not set. +kes Use DISTINCT to make MySQL and PostgreSQL uar_list_temp query + the same. +kes Add StartTime to final uar_sel_jobid_temp query so that we can + add DISTINCT (required by PostgreSQL). +kes Implement BSOCK authenticate_director() method. Eventually will + authenicate all daemons. +kes Move several more functions into the BSOCK class. +24May07 +kes Add code to tell the OS that we no longer need a cached + file that we were reading. In findlib/bfile.c. Also, + only cache files that we are reading. Thanks to + Tobias Oetiker for the idea. +kes Tweak to bsmtp to eliminate compiler warnings on Win32. +kes Implement script to automatically generate cats and dll .def + files for Win32 dll. +kes Update README.mingw32 to include new .def file generation. +kes Correct typo in UTF-8 error message as reported by: + jhernandez +kes Add additional sm_check() code on debug level 1. +kes Set default debug level to 1. +kes Trap SIGABRT in attempt to get traceback. +23May07 +kes Reduce bat connect timeout from 30 to 15 seconds. +kes More restructuring and implementing BSOCK class in place of + old bnet.c code. +kes Remove a few unnecessary malloc() tests in crypto code. +kes Turn off crypto calls for > 128 bits in crypto.c if HAVE_SHA2 + not defined. Bug reported by Allan Black +kes Remove duplicate HAVE_CRYPTO definition in config.h.in +22May07 +kes Fix Verify InitCatalog mysql_escape_string() trashing memory. + Make buffer bigger. +kes Fix Verify InitCatalog. The attributes were not pointing to the + correct saved location. +kes Implement message callback so that GUI is sure to get all + daemon messages. Currently displayed in a dialog in bat. +kes Ignore SIGUSR2 (Bacula timer) in bat. +kes Apply regress patch from bug #859 to allow regress to work + with Solaris compiler. +21May07 +kes Begin adding TLS support to bat. +kes Apply UTF-8/16 patch from Yves Orton to + clean up lex.c and make it more readable. +20May07 +kes Move more bnet functions into the BSOCK class. +kes Fix tray-monitor by not requiring a timer interval in bnet_connect() +kes Complete change of berrno strerror() method to bstrerror() + +Release: 2.1.10 beta +18May07 +kes Cleanup incorrect email addresses in bsmtp. +kes Make bat display initial messages rather than discard them. +16May07 +kes First cut of adding .mod to the run command. +kes Implement auto display of messages in bat. +kes Enhanced preferences to allow all Bacula output to be + displayed in bat. +15May07 +kes Fixed bug #856 autochanger documentation. +kes Rework bsmtp date editing for Win32. This fixes bug #854. +kes Add new cats entry point so Win32 builds. +14May07 +kes Attempt to fix bsmtp date editing on OSes without %z editing. +kes Do better checking for the MySQL 64 bit libraries looking for both + .a and .so libraries. +kes Add a kludge for Ubuntu's non-standard locations for MySQL -- allow + /usr/include/mysql/mysql.h AND /usr/lib/... rather than /usr/lib/mysql/... +kes Require the thread safe version of MySQL during configure. Thanks + to Andre Noll for pointing this out. +kes Ensure that calls to find_jobids_from_mediaid_list() check count before + continuing in migration code. +kes Apply implementation of tray-monitor font derived from gnome-console + submitted by Andreas Piesk +13May07 +kes Eliminate important memory loss in SQLite +kes Fixed the batch insert MySQL thread specific data that was not + being freed. See cats/mysql.c:db_thread_cleanup(). +kes Fix restore before command. +kes Convert old hdr.name to name() in a few places. +kes Implement update jobid command. +kes Return all time_t dates in db_get_job_record() +kes Stop watchdog in SD earlier. +kes Put Pool just after Storage in please mount message. +kes Fix pointer usage bugs in Verify InitCatalog pointed out by + Eric. +12May07 +kes Update the po files. +kes Fix Verify InitCatalog by making it cache attributes. +11May07 +kes Change name bacula-bat to bat for man 1 page to correspond to + Makefile. +kes Check for client and store NULL pointers in status command. This + fixes bug #845. +kes Fix non-ssl build so that it works (add JCR *jcr to crypto structures). +kes Fix sign extended editing of %p. +kes Clean out a little old #ifdefing in cats/mysql.c +10May07 +kes If time diff between DIR and FD is more than 600 seconds convert + INFO message to WARNING. +kes Implement heap size display in status for all daemons. +kes Attempt to fix MySQL db open memory loss (not successfull). +kes Don't set SIGKILL and SIGSTOP neither can be trapped. +kes Eliminate memory loss in MySQL (possibly other SQLs) during + Query. This looks like a MySQL but but by doing extra releases, + the memory goes away. This should fix bug #847. +09May07 +kes When backup fails, cancel SD before waiting for sd termination. +kes If SD is waiting for FD to connect during cancel, wake up the + thread. +kes Fix fsf code so that errno is correctly reported. +kes Apply migration patch (with changes) from Sergey Svishchev +08May07 +kes Merge patch from Sergey Svishchev that preserves + the original jobb's FileSetId. +kes Merge patch from Sergey Svishchev that implements + spooling in migration jobs. Not yet tested. +kes Merge patch from Jorj Bauer that implements + reading conf file from a pipe. However, do it with open_bpipe() + rather than popen. Not yet tested. +07May07 +kes Fix an ugly bug where the VolCatBytes were getting updated + during a restore. +kes Implement bconsole memory command that prints current memory + usage, plus smartalloc dump. +kes Clarify some error messages in backup, admin, and migrate. +kes Shrink label dialog to smaller size. +kes Invert Cancel OK buttons on restore to be OK Cancel. +kes More strerror() to bstrerror() conversions. +06May07 +kes Start implementing bstrerror() in place of strerror(). +kes First cut at stripping path -- seems to work. +04May07 +kes Prevent door and port files from being restored (mostly + Solaris stuff). +kes Free an unreleased buffer in compat code. +kes Change console Job name from *Console* to -Console- to eliminate + Win32 filename problems. Put Win32 path separator when creating + Console file. This fixes bug #846. +kes Change berrno::strerror() to berrno::bstrerror(). Not yet full + implemented. +kes Pass jcr to crypt_sign_decode because it creates a new SIGNATURE + structure. +kes Define b_errno_win32 on Linux to be zero so that it can be or'ed in + to force Win32 error message. +03May07 +kes First cut strip path. The data should be passed to the FD, + but nothing is done with it yet. +kes Enhance the digest and signature routines in the crypto + library to accept a JCR and to use it to print error messages + so that they will go in the Job report rather than the daemon's + messages. +kes Simplify some of the verify signature code. +kes Simplify a few of the alternative returns in the signature + code. +02May07 +ebl Use only POSIX regex instead of GNU regex in breg.c for + File relocation. It fix broken freebsd compilation. +kes Convert all other Dir files to use ne ua class message + routines for bat. +kes Tentative fix for missing digest signature in bug 807. +kes Correct handle problem in new win32_ftruncate routine. +kes Convert ua_purge.c and ua_update.c to use new ua class + message routines for bat. +29Apr07 +kes Correct incorrect installation of LICENSE in Win32 installer. +kes Display LICENSE at the beginning of the Win32 install. +kes Attempt to correct the need for the png files to be installed + for bat. +kes Reapply my bat.conf install script in qt-console. I think I + editted bat.pro instead of bat.pro.in and it was lost. +kes Apply CentOS patches someone sent me. Checks for /var/run/subsys, + the /var/lock/subsys for subsysdir. Also corrects typos in the + doc. +28Apr07 +kes First cut update job. +kes Correct configure to include qmake of src/qt-console directory. +26Apr07 +kes Make restore job yes/mod/no print in one command so GUI works. +kes First cut implementing backup and restore client. +kes Correct editing in Verify output that caused a seg fault. +25Apr07 +kes Insure that bat.conf is not overwritten during installation. +kes Fix important bug in db_sql_query() in mysql.c. It was introduced + while I was implementing migration in March 2006 ! +24Apr07 +ebl Cleanup file relocation, using char *RegexWhere instead of + char *where + bool where_use_regexp +kes Update some manpages and add bat manpage. +kes Make a first cut at converting bacula.spec.in for bwx-console + and bgnome-console. +kes Apply patch from John Goerzen to add hostname as fourth argument + to make_catalog_backup script. +kes Fix typos I introduced into bsmtp.c +kes Make pm_strxxx() routines handle input of NULL pointer. This + is to protect from NULL pointers returned from SQL databases. +kes Correct typo in bacula-sd manpage as pointed out by John Goerzen. +kes Add more debug to FIFO code -- fix fifo regression test. +23Apr07 +kes Implement posix_fadvise in FD, and for reading spool files in SD. +kes Add thread timer to bnet_connect() to break from OS if wait time + expires. +22Apr07 +kes Update Win32 build to include new files, new symbols, and + renamed files. +kes Implement socket level heartbeat (tcp_keepidle) +ebl Commit File relocation patch +kes Make bat have 'make install' target. +kes Warn during install if old gnome-console binary found. +kes Warn during install if old wx-console binary found. +kes Add -8 option to bsmtp command line to add content type utf-8. + Fixes bug #809. (Character coding problem in bsmtp). +kes If < is found in target (from, to, cc) then do not enclose the + target in < > in bsmtp. Fixes bug #772 (malformed address). +kes When printing certain items in dbcheck, stop after 300000. + Fixes bug #822. (dbcheck loops). +kes Incorrect status in Dir after waiting for mount with poll set. + Fixes bug #825. +21Apr07 +kes Extend idea of Prefer Mounted Volumes to mean a volume about + to be mounted. +kes Print waiting to reserve a device every 5 mins. +20Apr07 +kes Don't call close_part in label.c if tape and relabel. +kes Don't free volume if busy in close() -- should help with + bug 801. +ebl Fix #824 RunScript bug (After script could be execute twice) + Now, Before Script can use RunsOnSuccess and RunsOnFailure options + By default (like before) RunsOnSuccess=true and RunsOnFailure=false + Add a regression script to test RunScript +19Apr07 +kes Correct usage of MTIOCLRERR ioctl for clearing persistant errors + on Solaris. +18Apr07 +kes The bgnome-console (gnome-console) and bwx-console (wx-console) are + deprecated. No additional bugs will be fixed, and they will be dropped + in a future release (probably 2.4.0). +kes Change name of wx-console to bwx-console to make it more Bacula + unique. +kes Change the name of gnome-console to bgnome-console to make it + more Bacula unique. +14Apr07 +kes Some time in March, a Feature Request with patch from Jorj Bauer + was committed by Landon (with my approval). + It implements: + The ability for the director to validate a Client (FD) CN against + an arbitrary set of patterns rather than the hostname, with + A new 'TLS Allowed CN' set of directives which are implemented + in the Client resource. Then pattern matching is used in place + of hostname matching against the Certificate's CN. As an example, we + have certificates which (a) use a local CA, and (b) have a CN of the + form client_123. +kes Add new/changed entry points to Win32 build +kes Create unaccepted-projects for projects that are not accepted. +kes Simplify locking in the reservations system. +kes Add more debug code in reservations. +kes Make sure error condition on reserving a volume is handled correctly. +kes Correct handling of volume_in_use. +kes Correct handling of initializing a device. +kes Move handling of broadcasting releasing a device into release_device(). +kes Correct attaching dcr to dev so that it is only done if device + is properly initiated. +12Apr07 +kes Locking debug level tweaks in SD. +kes Tweak new Volume code. +11Apr07 +kes Add exec external-command [wait-seconds] to bconsole. This + executes the external-command. Note! normally external-command + should be enclosed in double quotes. +kes Turn the .die command on only if DEVELOPER is defined -- i.e. + it should normally be off in a production system. +10Apr07 +kes Implement die command for SD so that we can force it to dump. +kes Implement SD lock debug code. +kes Implement new algorithm for keeping Volume list in SD. It + is now owned by the device. +04Apr07 +kes Implement new code for freeing in use volumes that should + resolve if not all, some of the problems of multiple drive + tape conflicts described in bug 801. +03Apr07 +kes Fix gui/bacula-web/images files in svn. +kes Turn on FreeBSD/OpenBSD code to set EOT model on tape. +02Apr07 +ebl Fix a bug in batch mode (in string escape) +kes Correct migration prune SQL typo that crept in in a + recent 2.1.x change. +01Apr07 +kes Move bnet_despool() into class in bsock.c +kes Modify job report to include director name and Build OS. +kes Move drop root privilege and check_catalog() before fork. +kes Add update database scripts (version 9 to 10) to updatedb directory. +31Mar07 +ebl Check size and age of each file after its backup to see if + it has changed during backup, if 'checkfilechanges' is set. + The FD will do an extra check (stat(2)) after + each file backup. mtime, ctime and size are compared with + 'before backup' information. If time or size mismatch, an + error message will be generated. You must upgrade FD to use it. +30Mar07 +kes Make database name and user configurable + --with-db-name=xxx --with-db-user=xxx +kes Add back database type to message.c for debugging. +29Mar07 +kes Implement dir_sql() which issues an SQL query. +kes Modify bat medialist to use dir_sql() and do some minor C++ + formatting as well as eliminating a number of pointers, simplifing + the code. +28Mar07 +kes Fix some of the mtx-changer grep commands for tape label readers. +kes Convert a number of bsendmsg into the appropriate send/warning/error + message class calls. +kes Suppress the using database message in the .sql command. +kes Correct an incorrect bnet_tls_client prototype -- patch from Martin. +27Mar07 +kes Add context menu for floating a window. +kes Some minor cleanup and name changes in qt-console +kes Add doing mt setblk 0 in Win32 mtx-changer. +kes Apply Martin's bug fix to move definition of ENODATA for + FreeBSD to bsock.c +ebl Add a BUSY handler to sqlite to be able to use multi_db = 1 with + sqlite2 and sqlite3. +26Mar07 +kes More pruning cleanup. +kes Turn on wait_for_drive by default in mtx-changer. +kes Turn on Batch insert code by default as it now passes regression. +kes Add ./configure --enable-bat to enable building of Bat. + No install yet though. +25Mar07 +kes Implement a new .sql command for bat. +kes Implement code to turn off pruning in obtaining the next volume. + Pruning is turned off for the status dir command, but turned on + for SD requests and for the list nextvolume command. +24Mar07 +kes Correct Qmsg() that was not updated correctly when committing a + previous change (probably the recent TLS patch). +23Mar07 +kes Write new subroutine is_volume_purged() that explicitly checks + if the Volume is purged, and if so marks it as such. This should + resolve problems reported about needing to mount twice to recycle + volumes. +kes Rewrite pruning algorithm to do more work in the SQL engine, and + to pass a list of JobIds to be deleted to SQL. Also, minimize the + amount of duplicated code. +kes Do volume pruning only for the Media Type desired (reduces pruning time + if multiple Media Types are in the same pool). +kes Implement more detailed info in the Job report for the Bacula version + and architecture. +kes Switch from POOLMEM to POOL_MEM (a real class) in ua_prune.c and + ua_purge.c. +ebl Add bbatch tool to bench database and insert mode. + Fix sql quote stuff in batch mode + Fix sql stuff for mysql +22Mar07 +kes Correct problems with am/pm scheduling. Fixes bug #808. +kes Implement new prunning code that prunes up to 1000 jobs at + the same time. The same technique can be applied to a number + of other prune/purge subroutines. +kes Add an insanity check when starting a new tape job to ensure + that the tape position has not been changed. If so fail the + job. +kes Fix Win32 build for dlls to add the folllowing: + src/lib/bsock.c -- new file with new entry points + src/lib/dlist.c -- new entry points + src/cats/sql_create.c -- new entry point + src/cats/sql_cmds.c -- new DATA item exported +21Mar07 +ebl batch mode cleanup bscan-test is ok now. +kes Implement SD code to check length of disk volume before appending. +18Mar07 +kes Correct return status on db_batch... routines. +kes Add call to db_write_batch_file_records() to migration code. +ebl Fix AfterJob timing +kes Move the checking of the database in initializion of the Director + to after we drop privileges. This avoids the need for both root + and bacula access to the DB. +kes Correct a misplaced variable definition in src/filed/backup.c +kes Correct how the new batch insert db_create_attributes_record() + uses the arguments. Caused a seg fault in bscan. +kes Implement lock() and unlock() methods in DEVICE class. + Implement block() and set_block(xx) methods in DEVICE class. +kes Modify bnet_connect() so that it uses time() to check for the + wait time expiring (on some OSes, some system calls may not + return immediately). +kes Modify Verify to obtain the previous JobId when it is actually + running rather than at schedule time (as it was in 1.38.x). +kes Fix src/job.c to handle MaxWaitTime correctly. This should + fix bug #802. +kes When checking pid in pid file, continue running if the pid is + the same as ours. This occurs on IRIX after a system crash. + Fixes bug #797. +10Mar07 +kes Extend new GUI API. +kes Make the ua structure a class, and implement send_msg(), + error_msg(), warning_msg(), and info_msg(). +08Mar07 +kes Apply fix from for building wx-console on the Mac from + bug #798. +kes Implement new select mechanism for GUI programs. +kes Reorganize initialization of stackedWidgets in bat. +07Mar07 +kes Add updated nagios plugin supplied by Christian Masopust. +05Mar07 +kes More bat implementation. +kes File migrate bug with Pool Occupancy using mediaid instead + of jobids. Fixes bug #795. +kes Fix orphaned buffers in filed backup and verify due to + crypto buffers not freed during errors. Fixes bug #789. +kes Extend new GUI api code to tree commands. +kes Ensure that tree and dot commands check console ACLs. +kes Permit marking directory with trailing slash. +kes Allow 20 console connections (instead of only 10). +04Mar07 +kes Add smartctl call to bacula-sd.conf as an example of getting + tape alert info. +02Mar07 +kes Modify jobq.c to let simultaneous restore jobs run. This may + cause them to fail if they cannot get a drive. +kes Add Client Connect Wait to Storage daemon to permit users to + modify the time the SD waits for a FD connection. +29Feb07 +kes Correct virtual changer check which was backwards. This caused + volumes to be unloaded into slots already occupied. +28Feb07 +kes Apply Command ACL filter to JobId list in restore command. +kes Correct typeo in var.c patch. +27Feb07 +kes Don't let Bacula prune File or Job records for the current Job. +kes Fix variable substitution pad + inc bug reported (with patch) + in bug #791. +26Feb07 +kes Correct SQLite log table index as reported by Luca Berra. +24Feb07 +ebl fix fifo stuff, bacula tries to rewind the fifo... Thanks to Andreas +22Feb07 +kes Begin implementing new comm signals for API. +kes Fix a few places in lib/message.c where the open fd may + not be zeroed. +kes Continue implementing lib/bsock.c (real class). Make jcr, + who, host, and port private. There are new methods to access + them for non-class use. This required touching a number of files. +21Feb07 +kes Add LANG=C to autoconf/randpass so it works with languages other + than English. Fixes bug #788. +20Feb07 +ebl Revert ClientRunBeforeJob to old position as in 1.38.X. + This fixes bug #780 + You will not be able to generate Include/Exclude list any more. + It will be fixed soon. + If you want to use this, you can apply + trunk/bacula/patches/testing/clientrunbeforejob_can_generate_include_exclude_list.patch +19Feb07 +kes Restore of sockets created false error messages because Bacula + no longer restores sockets, but the code was still trying to + set the attributes on a non-existent file. Reported by a user. +ebl finish RecyclePool feature + Media will takes Pool.RecyclePool + when moving from Scratch to a Pool or when user will do + update volume=xxx frompool + To use it, add RecyclePool = aPool to your Pool resource + Pool { + Name = Default + RecyclePool = Scratch + ... + } + TODO: update manual +kes Expand new BSOCK class adding signal() and new BNET signals. +kes Begin enhancing the dot commands adding a new API function + that returns more information and will make it easier + to interface to the Director from a program. +18Feb07 +kes Make DEVICE fd private. Its new name is m_fd, and can be + obtained with dev->fd() outside the class. This is the + first of many DEVICE members to be made private. +kes Implement Michael Renner's idea on having a virtual disk + changer. I made some minor modifications (e.g. I did not + implement the Virtual Changer directive, but simply set + the Changer Command to an empty string. +17Feb07 +kes Implement a BSOCK send() method that writes the whole record + in a single write() request rather than in two. +ebl add update volume=xxx recyclepool=yyyy + volume takes recyclepool from pool when using update volume=xxx from pool +16Feb07 +kes Fix encryption deblocking bug, which caused some restored files + to be truncated. This fixes bug #763. +kes Add FD event sequence order prepared by Eric -- for RunScripts. +kes Fix 12am/pm bug as reported in bug #782. +13Feb07 +kes Apply Eric's ClientRunScriptAfter patch to 2.0 and 2.1. +ebl Use btime_t instead of uint64_t in media patch. +11Feb07 +kes Optimize the use of the database a bit in the Status dir command. + Only open it when needed, ensure that if any previous database + was opened, it is closed. +10Feb07 +kes Correct VolCatBytes bug from media patch. +kes Apply patch from bug #612 by Rudolf Cejka to speedup pruning + in the case of orphaned records. +kes Modify dbcheck to handle orphaned JobMedia, Path, Filename, + and File records in 300K chunks to be more efficient. This + idea came from Juan Luis Frances (if I remember right). +kes Apply Eric's scratch patch that moves a purged Volume to + the RecyclePool. Question: how is RecyclePool set? what + happens to the ScratchPool? +kes Apply Eric's media patch that collects read/write media + times as well as byte counts. This patch requires a + simultaneous upgrade of the DIR and SD. Note, there + should be some way to turn off timing. I'm not sure + times are in Bacula units. +kes Apply Eric's batch-insert patch. +09Feb07 +kes Update projects list. +08Feb07 +kes Implement Include/Exclude file lists in FD as dlists using + the new dlistString class. This permits efficiently having + large include/exclude lists and completes project Item 25. +kes Fix dird/ua_cmds.c so that a cancel command checks if the + console is authorized to cancel the job. This fixes bug + #767. +kes Modify SD so that the VolCatJobs medium record is updated + at the beginning of a Job rather than the end. This + fixes bug #775 where exceeding MaxVolJobs caused jobs + to fail. +kes Added a mutex around getting and setting Volume information + so that multiple simultaneous jobs will single thread. +07Feb07 + Switch to using Subversion +kes Remove src/pygtk-console/ from configure +06Feb07 +kes Delete src/lib/btree.c from win32 build, then add rblist.c + plus the entrypoints. +kes Apply patch supplied that corrects debug print + in canceling jobs for max run time. Supplied as + part of bug #621, which was previously fixed. +05Feb07 +kes Test on job_canceled() and sd_msg_thread_done inside + loop starting the message thread to avoid a race condition. + Fixes bug #771. +kes Remove rl_catch_signal from console.c as it conflicted + with the header definition. Fixes bug #765. +ebl Fixes bug #766 about RunsOnClient = Yes (case sensitive) +04Feb07 +kes Clarify some stored/acquire messages to indicate if the + problem is with read or append. +02Feb07 +kes Fix memory leak with storage ids in cats/sql_get.c +kes Terminate watchdog earlier to avoid reference to released + memory -- reported by Jason Austin. +kes Move closing the database from jobq.c to the director daemon + termination routine. This fixes memory leaks for shadow jobs + (i.e. migration jobs). +kes Free up the unique jobid chain items in migrate.c. This fixes + a memory leak problem. +kes Convert some ugly looking for statements to use foreach_alist + in findlib/find.c. This will facilitate converting the structures + to use dlist (for large include/exclude lists). +kes Fix a bug in the btree.c and btree.h routines, then rename them + rblist and add them to be built in src/lib. Include some new + methods written by Rudolf Cejka that make the code more readable + (hides some of the ugly casting). +kes Add set_next() and set_prev() methods which make the code much more + readable. Also add a new dlistString class that facilitates storing + strings in dlists. To be used in the large include/exclude lists. +kes Make some trivial modifications to lib/tree.h that use rblist + rather than dlist for storing the tree links. This was suggested + by Rudolf Cejka. The result of this is that the restore tree now + uses red-black binary trees rather than simple linked lists. This + should give rather dramatic speed improvements for directories + contining large numbers of directories/files (more than 10000). +28Jan07 +kes Fix maxruntime bug #621. +26Jan07 +ebl Implement the include JobID in spool file name project. +kes Reorder projects file in order determined by Jan 2007 vote. +kes Implement item #12 on project list -- quick release of FD by + the SD. +kes Fix open of SQLite3 db where user does not have write permission + so that DIR does not crash. Fixes bug #761. +25Jan07 +kes Add back missing @ in Win32 Makefile. +kes Change 'Device not configured to autolabel' from INFO + to WARNING. +kes Fix jobq.c to restart failed jobs when Reschedule Times = 0 + which should restart an indefinite # of times. +kes Fix configure --help to print --with-mysql[=DIR]. Same for + other DIR specifications. +23Jan07 +rn Fix msvc build problems. Fix bacula.dll exports for msvc build. + Fix path quoting in SQLite scripts. + Fix problems with SHGetFolderPath. +19Jan07 +kes Create patches/2.0.1-restart.patch. Fixes bug #755. +18Jan07 +kes Fix Job restart on error bug that promotes an Inc to a Full + backup. This should fix bug #755. +kes Add qt-console and first cut of code. + +Version 2.0.1 +12Jan07 +kes Fix Bacula->Documentation link on Win32 to point to index.html + instead of bacula.html. Fixed bug #750. +kes Return JobId in db_get_job_record() when JobId==0. This should + fix bug #741. +kes Do not release source pointers when restarting a failed job. +11Jan07 +kes Add dynamic dll entry point for SHGetFolderPath to Win32 code. + This *should* fix bug #747. +kes Modify winbacula.nsi to substitute with g bin_dir_cmd. Should fix + bug #742. +09Jan07 +kes Modify USTORE constructor to set an empty store_source string, + and don't copy the store_source string in a cancel. Hopefully + this will fix Arno's seg fault, bug #744. +kes Add back code to disable conio in configure. Fixes bug #743. +kes Correct the Options scanner in the FD to correctly handle + SHA1 option, which was eating the next option. Reported by + Sebastien Guilbaud. +kes Add code to indicate when the SD is spooling, spool wait, and + despooling as requested by Alan Brown. + +Version 2.0.0 released: 4 January 2007 diff --git a/Branch-2.2/bacula/CheckList b/Branch-2.2/bacula/CheckList new file mode 100644 index 0000000000..46f4816d23 --- /dev/null +++ b/Branch-2.2/bacula/CheckList @@ -0,0 +1,61 @@ + + Release Check List + +Assume release is in bacula/base bacula/gui bacula/docs bacula/rescue + +- Build it on Win32 +# No longer done +# - Build it on Solaris and run regression tests +# - Build it on FreeBSD and run regression tests +- Update ChangeLog (add release date) +- Update ReleaeNotes +- Do a svn commit +# ./makerel +- Run ./makerel Branch-2.0 branch-2.0 2.0.x +- Run the regression tests on the new bacula + directory that is created. Run regression on + Linux. +- Run the production version over night in production. +- Manually test Win32 version + (with Robert's work, it is now possible to run the + Regression scripts). +- Write final ReleaseNotes +- If everything is good +- cd bacula +# The below needs to be updated more +- Run + cd base + svn update + cd ../gui + svn update + cd ../docs + svn update + cd manual + make tex + latex bacula.tex + (make sure the above finishes. If it stops and asks + what to do, correct the problem). + cd .. + cd ../rescue + svn update + cd .. + ./makerel base 2.0.x + ./makeguirel gui 2.0.x + ./makedocsrel docs 2.0.x + ./makerescuerel rescue 2.0.x + cd base/win32 + make + cp release/winbacula-2.0.x.exe $HOME/bacula + cd $HOME/bacula + ./sign winbacula-2.0.x.exe + +- Upload everything to appropriate part of Source Forge + and release it. I use releaseforge +- After releasing everything. +- Either download everything and compare the signatures, + or simply check the upload sizes of everything. +- cd docs/manual + make +- Upload new release doc to web site. + Upload bacula.pdf to web site. +- Update news on web site. diff --git a/Branch-2.2/bacula/INSTALL b/Branch-2.2/bacula/INSTALL new file mode 100644 index 0000000000..2dd8a48eda --- /dev/null +++ b/Branch-2.2/bacula/INSTALL @@ -0,0 +1,77 @@ + +This file is rather out of date, and if you want to avoid a lot +of pain, you will read the manual, which you can find at www.bacula.org + + +-------------------------------------------------------------------------- +Using GNU autoconfig +-------------------------------------------------------------------------- + 1. Read the Compiling and Installing section of the HTML manual + at http://www.bacula.org + + 2. Run ./configure to generate config.h and the various Makefiles. + ./configure --help gives a list of possible options. Note, in + configuring Bacula, you cannot get by with a simple ./configure, + it is much more complicated than that (unfortunately). + + You might look at the "defaultconfig" file in the examples directory. + It is an example of what is probably reasonable for defaults. + + Some systems require unusual options for compilation or linking that + the `configure' script does not know about. You can give `configure' + initial values for variables by setting them in the environment. Using + a Bourne-compatible shell, you can do that on the command line like + this: + CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure + Or on systems that have the `env' program, you can do it like this: + env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure + Or if you're using a non Bourne-compatible shell, you can do: + sh -c 'CFLAGS="-O2 -g" ./configure + + A typical Bacula development configuration for Linux is: + + CFLAGS="-g -O2 -Wall" \ + ./configure \ + --sbindir=$HOME/bacula/bin \ + --sysconfdir=$HOME/bacula/bin \ + --with-pid-dir=$HOME/bacula/bin/working \ + --with-subsys-dir=$HOME/bacula/bin/working \ + --enable-smartalloc \ + --with-mysql \ + --with-working-dir=$HOME/bacula/bin/working \ + --with-dump-email=your@address.com \ + --with-job-email=your@address.com \ + --with-smtp-host=localhost + + + See the README for a few additional details and the online manual + for all the gory details: http://www.bacula.org/rel-manual + + 3. Carefully review the output from ./configure. If it is not + what you want, re-run the ./configure. Often ./configure "caches" + things and thus remembers the last ./configure options. If you + want to be sure you are starting fresh after a ./configure, + do a: + + make distclean + + before re-running ./configure. "make distclean" wipes out any + knowledge of the ./configure, so don't do it after you have a + configuration that suits your needs, otherwise the "make" will + not work. + + 4. Set any other main preferences (normally, you don't do this): + Edit "config.h" if you didn't use ./configure options + If you're cross-compiling, edit the following in "config.h" + + 5. Build it (repeat step 2 as desired): + make + + 6. Install it + make install + + 7. Run it + cd $HOME/bacula/bin + ./bacula start + ./console + (enter commands) diff --git a/Branch-2.2/bacula/LICENSE b/Branch-2.2/bacula/LICENSE new file mode 100644 index 0000000000..d39557cb6c --- /dev/null +++ b/Branch-2.2/bacula/LICENSE @@ -0,0 +1,537 @@ +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. + +Trademark: +The name Bacula is a registered trademark. + +=================================== + +License: +For the most part, Bacula is licensed under the GPL version 2 +this code is listed under Copyright Free Software Foundation +Europe e.V. A small part of the code (less than 10 files) is +copyrighted under the GPL by FSF, or under BSD licenses by various +authors (see below). + +What follows is information from the authors of the code: + +Linking: +Bacula may be linked with any libraries permitted under the GPL. +However, if configured with encryption Bacula does use the +OpenSSL libraries which are, unfortunately, not compatible with +GPL v2. To the best of our knowledge these libraries are not +distributed with Bacula code because they are shared objects, and +as such there is no conflict with the GPL according what I (Kern) +understand in talking to FSFE, and in any case, for the code that +I have written, I have no problems linking in OpenSSL (of course +this does not speak for the few files in Bacula that are +copyrighted by others). If you take a more severe stance on this +issue, and you are going to distribute Bacula, then simply do not +use the --with-openssl when building your package, and no use of +OpenSSL even through dynamic linking will be included. + + +IP rights: +Recipient understands that although each Contributor 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 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-2008 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 two of the GNU General Public + License as published by the Free Software Foundation, a copy of which + is in the LICENSE file + + 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, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + 02110-1301, USA. + + Bacula® is a registered trademark of John Walker. + 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. + +BSD code used in the Windows version only: +Code falling under the BSD license has the following license: + + Copyright (c)2002-2003 Mark K. Kim + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the original author of this software nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL 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. + + +===================================== + +The entire GPL is reproduced below, in the manuals distributed with the +Bacula documentation and can also be found online on the GNU web site +as well as at www.bacula.org. You may also obtain a copy of the +GPL (or LGPL) by writing to: Free Software Foundation, Inc., +51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +The Four Freedoms Guaranteed by the GPL: +Freedom zero is the freedom to run the program as you wish for any purpose. + +Freedom one is the freedom to study the source code and change it +to do what you wish. + +Freedom two is the freedom to help your neighbour, that's the +freedom to make copies and distribute them to others when you +wish. + +Freedom three is the freedom to help your community, that's the +freedom to publish or distribute modified versions when you wish. + +Other Licenses: +Certain parts of the Bacula software are licensed by their +copyright holder(s) under the GPL or under the BSD license. +These software files are clearly marked as such. + +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 they 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. + +===================================== + + +============== Text of GPL version 2 license ======== + + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + 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 +this service 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. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute 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 and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the 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 a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, 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. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE 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. + + 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 +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 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, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. + +=========================================== diff --git a/Branch-2.2/bacula/Makefile.in b/Branch-2.2/bacula/Makefile.in new file mode 100755 index 0000000000..68aba65dc7 --- /dev/null +++ b/Branch-2.2/bacula/Makefile.in @@ -0,0 +1,255 @@ +# +# Version $Id$ +# +@MCOMMON@ + +working_dir=@working_dir@ +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 src/filed \ + @READLINE_SRC@ @BAT_DIR@ @GNOME_DIR@ @TRAY_MONITOR_DIR@ @WX_DIR@ \ + src/console + +# Non-client-only directores +subdirs = src/cats @DIRD_DIR@ @STORED_DIR@ src/tools + +all_subdirs = ${fd_subdirs} ${@ALL_DIRS@} manpages + +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 + +#------------------------------------------------------------------------- + +all: Makefile + @for I in ${all_subdirs}; \ + do (cd $$I; echo "==>Entering directory `pwd`"; \ + $(MAKE) $@ || (echo ""; echo ""; echo " ====== Error in `pwd` ======"; \ + echo ""; echo "";)); \ + done + +depend: + @for I in ${all_subdirs}; \ + do (cd $$I; echo "==>Entering directory `pwd`"; $(MAKE) DESTDIR=$(DESTDIR) $@ || exit 1); done + +bacula-fd: Makefile + @for I in ${fd_subdirs}; \ + do (cd $$I; echo "==>Entering directory `pwd`"; \ + $(MAKE) all || (echo ""; echo ""; echo " ====== Error in `pwd` ======; \ + echo ""; echo "";)); \ + done + +#------------------------------------------------------------------------- +autoconf/aclocal.m4: autoconf/configure.in autoconf/bacula-macros/* autoconf/gettext-macros/* + cd autoconf && aclocal -I bacula-macros -I gettext-macros + +configure: autoconf/configure.in autoconf/aclocal.m4 autoconf/acconfig.h autoconf/config.h.in + cd $(srcdir); + ${RMF} -f config.cache config.log config.out config.status src/config.h + ${RMF} -rf autoconf/autom4te.cache autom4te.cache + autoconf --prepend-include=$(srcdir)/autoconf \ + autoconf/configure.in > configure + chmod 755 configure + +old-configure: autoconf/configure.in autoconf/aclocal.m4 autoconf/acconfig.h + cd $(srcdir); + ${RMF} -f config.cache config.log config.out config.status src/config.h + autoconf --include=$(srcdir)/autoconf \ + autoconf/configure.in > configure + chmod 755 configure + @rm -f config.cache + +config.status: + if test -x config.status; then config.status --recheck; \ + else $(SHELL) configure; fi + +autoconf/config.h.in: autoconf/configure.in autoconf/acconfig.h + cd $(srcdir); + ${RMF} -f 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 + +installdirs: + $(MKDIR) $(DESTDIR)$(sbindir) + $(MKDIR) $(DESTDIR)$(sysconfdir) + $(MKDIR) $(DESTDIR)$(scriptdir) + -if test ! -d $(DESTDIR)$(working_dir) ; then \ + $(MKDIR) $(DESTDIR)$(working_dir); \ + chmod 770 $(DESTDIR)$(working_dir); \ + fi + -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 + +gnomedirs: + $(MKDIR) $(DESTDIR)/usr/share/pixmaps + $(MKDIR) $(DESTDIR)/usr/share/gnome/apps/System + $(MKDIR) $(DESTDIR)/usr/share/applications + $(MKDIR) $(DESTDIR)/etc/security/console.apps + $(MKDIR) $(DESTDIR)/etc/pam.d + +install-menu: gnomedirs + ${INSTALL_DATA} scripts/bacula.png $(DESTDIR)/usr/share/pixmaps/bacula.png + ${INSTALL_DATA} scripts/bacula.desktop.gnome1 $(DESTDIR)/usr/share/gnome/apps/System/bacula.desktop + ${INSTALL_DATA} scripts/bacula.desktop.gnome2 $(DESTDIR)/usr/share/applications/bacula.desktop + +install-menu-xsu: gnomedirs + ${INSTALL_DATA} scripts/bacula.png $(DESTDIR)/usr/share/pixmaps/bacula.png + ${INSTALL_DATA} scripts/bacula.desktop.gnome1.xsu $(DESTDIR)/usr/share/gnome/apps/System/bacula.desktop + ${INSTALL_DATA} scripts/bacula.desktop.gnome2.xsu $(DESTDIR)/usr/share/applications/bacula.desktop + +install-menu-consolehelper: gnomedirs + ${INSTALL_DATA} scripts/bacula.png $(DESTDIR)/usr/share/pixmaps/bacula.png + ${INSTALL_DATA} scripts/bacula.desktop.gnome1.consolehelper $(DESTDIR)/usr/share/gnome/apps/System/bacula.desktop + ${INSTALL_DATA} scripts/bacula.desktop.gnome2.consolehelper $(DESTDIR)/usr/share/applications/bacula.desktop + ${INSTALL_DATA} scripts/gnome-console.console_apps $(DESTDIR)/etc/security/console.apps/gnome-console + ${INSTALL_DATA} scripts/gnome-console.pamd $(DESTDIR)/etc/pam.d/gnome-console + ln -s $(DESTDIR)/usr/bin/consolehelper $(DESTDIR)/usr/bin/gnome-console + +install: installdirs + @for I in $(all_subdirs); do (cd $$I && $(MAKE) DESTDIR=$(DESTDIR) $@ || exit 1); done + +uninstall: + @for I in $(all_subdirs); do (cd $$I && $(MAKE) DESTDIR=$(DESTDIR) $@ || exit 1); done + +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) + +uninstall-autostart: + (cd platforms && $(MAKE) DESTDIR=$(DESTDIR) $@ || exit 1) + +uninstall-autostart-dir: + (cd platforms && $(MAKE) DESTDIR=$(DESTDIR) $@ || exit 1) + +uninstall-autostart-fd: + (cd platforms && $(MAKE) DESTDIR=$(DESTDIR) $@ || exit 1) + +uninstall-autostart-sd: + (cd platforms && $(MAKE) DESTDIR=$(DESTDIR) $@ || exit 1) + +uninstall-menu: + rm -f $(DESTDIR)/usr/share/pixmaps/bacula.png + rm -f $(DESTDIR)/usr/share/gnome/apps/System/bacula.desktop + rm -f $(DESTDIR)/usr/share/applications/bacula.desktop + +uninstall-menu-consolehelper: + rm -f $(DESTDIR)/usr/share/pixmaps/bacula.png + rm -f $(DESTDIR)/usr/share/gnome/apps/System/bacula.desktop + rm -f $(DESTDIR)/usr/share/applications/bacula.desktop + rm -f $(DESTDIR)/etc/security/console.apps/gnome-console + rm -f $(DESTDIR)/etc/pam.d/gnome-console + rm -f $(DESTDIR)/usr/bin/gnome-console + + +Makefile: Makefile.in + cd $(topdir) \ + && CONFIG_FILES=$(thisdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + +Makefiles: + $(SHELL) config.status + (cd scripts; \ + chmod 755 startmysql stopmysql bacula startit stopit btraceback; \ + chmod 755 mtx-changer bconsole gconsole devel_bacula; \ + chmod 755 dvd-handler) + + (cd src/cats; \ + chmod 755 create_bacula_database update_bacula_tables make_bacula_tables; \ + chmod 755 grant_bacula_privileges drop_bacula_tables drop_bacula_database; \ + chmod 755 create_@DB_TYPE@_database update_@DB_TYPE@_tables make_@DB_TYPE@_tables; \ + chmod 755 grant_@DB_TYPE@_privileges drop_@DB_TYPE@_tables drop_@DB_TYPE@_database; \ + chmod 755 make_catalog_backup delete_catalog_backup) + +clean: + @for I in ${all_subdirs} src/win32; \ + do (cd $$I; echo "==>Entering directory `pwd`"; ${MAKE} $@ || exit 1); done + @(cd platforms; echo "==>Entering directory `pwd`"; ${MAKE} $@ || exit 1) + @$(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 + @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) + @(cd platforms; echo "==>Entering directory `pwd`"; ${MAKE} $@ || exit 1) + @$(RMF) bacula 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) -rf txt diff src/python src/testprogs + +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) + @(cd platforms; echo "==>Entering directory `pwd`"; ${MAKE} $@ || exit 1) + @$(RMF) bacula 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 + +# ------------------------------------------------------------------------ diff --git a/Branch-2.2/bacula/README b/Branch-2.2/bacula/README new file mode 100644 index 0000000000..8ac5920f1e --- /dev/null +++ b/Branch-2.2/bacula/README @@ -0,0 +1,72 @@ + +Your best bet to get Bacula compiled and running is +to read the online manual at: + + http://www.bacula.org + +You will save yourself a lot of pain if you read +the manual -- it is online at the above site. +Barring reading the manual, you might try the +following: + +To Configure it: + + CFLAGS="-g -O2" \ + ./configure \ + --sbindir=$HOME/bacula/bin \ + --sysconfdir=$HOME/bacula/bin \ + --with-pid-dir=$HOME/bacula/bin/working \ + --with-subsys-dir=$HOME/bacula/bin/working \ + --enable-smartalloc \ + --with-mysql \ + --with-working-dir=$HOME/bacula/bin/working \ + --with-dump-email=your@address.com \ + --with-job-email=your@address.com \ + --with-smtp-host=localhost + + +Build Bacula: + + make + + If you are doing a port, there should be no errors. The most + likely source of errors will probably come in the src/stored + directory in time.c or dev.c. There may also be problems in + lib/signal.c as I currently pull in all Linux signals, some of + which may not be available on your system. + +To create the database: + + src/cats/make_bacula_tables + +To install: + + make install + +To start it: + + cd $HOME/bacula/bin + ./bacula start + +To start it (as a developer). This is not appropriate if you +are installing Bacula. + + ./startit + ./console (or ./gnome-console) + +To stop it: + + ./stopit + +Well, it is all just a bit more complicated than that, +but you should have the idea. + +Be sure you read the chapter about testing your tape drive! +Don't waste a lot of time setting up and running Bacula, if +your drive is not supported. + +FreeBSD users, pay special attention to the Device configuration +parameters needed to deal with FreeBSD tape drivers. + +License: +Please see the file LICENSE for the terms of the license. diff --git a/Branch-2.2/bacula/README.AIX b/Branch-2.2/bacula/README.AIX new file mode 100644 index 0000000000..bcb767a746 --- /dev/null +++ b/Branch-2.2/bacula/README.AIX @@ -0,0 +1,56 @@ + +Here are a few tips from James MacLean on +making Bacula work on an AIX system -- 15 Mar 2003: + +Hi Folks, + +I expect that an AIX with all the latest patches and a proper gcc will +compile. It is a boring story as Kern knows :), but here are the +highlights todate. + +I have had success with : + +/usr/local/bin/gcc -v +Reading specs from /usr/local/lib/gcc-lib/powerpc-ibm-aix4.1.5.0/egcs-2.91.60/specs +gcc version egcs-2.91.60 19981201 (egcs-1.1.1 release) + +Which was installed from www-frec.bull.com. But with that release, it +collides with sys/types.h from AIX and I had to redefine on my own in +src/bacula.h : + +typedef int crid_t; +typedef int __daddr_t; +typedef unsigned int class_id_t; + +With that I have had all parts of bacula running and did backups and a +restore fine. + +So I then went to IBM's own (current) gcc : + +/opt/freeware/GNUPro/bin/gcc -v +Reading specs from /opt/freeware/GNUPro/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/2.9-aix51-020209/specs +gcc version 2.9-aix51-020209 + +from http://www-1.ibm.com/servers/aix/products/aixos/linux/download.html + +And found that it was not creating libbac.a correctly. Since then I've +been trying to compile my own gcc only to find out last night after I +broke down and looked at the GCC docs that there was a known bug in the +AIX "as" compiler, for which there was a patch, and I have since applied. + +So now I am trying again to compile my own gcc, so that I can then try to +compile Bacula and be comfortable that all is well with the latest Bacula +and GCC. + +We are at AIX oslevel 4.3.3.0, so even though we brought it right up to +date 150 days ago, there is already 250Megs of patches for it :(. So there +may be more to this story :). + +Bottom line is, yes it does work :), but because of our intstallation +here, your setup might need to be tweaked to compile it... Then again it +may not :). + +How's that for a confusing Saturday story ;). + +take care, +JES diff --git a/Branch-2.2/bacula/ReleaseNotes b/Branch-2.2/bacula/ReleaseNotes new file mode 100644 index 0000000000..80a9a95690 --- /dev/null +++ b/Branch-2.2/bacula/ReleaseNotes @@ -0,0 +1,270 @@ + + Release Notes for Bacula 2.2.8 + + Bacula code: Total files = 520 Total lines = 195,550 (*.h *.c *.in) + 82 new files, 41,221 new lines of code, 208,380 lines of change from 2.0.3 + +This Director and Storage daemon must be upgraded at the same time, +but they should be compatible with all 2.0.x File daemons, unless you +use some of the new features that affect the FD. In other words, you should +not have to upgrade all your File daemons when you upgrade. There is +no database upgrade needed from version 2.0.x to 2.2.0. + +Version 2.2.8 is a bug fix to version 2.2.7: +- It fixes bugs: 1036, 1033(doc), 1028, 1040, 1045(doc), 1030, + 1042(partially), and possibly bugs 1018 and 1032. + Bugs 1018 and 1032 involve problems with multiple-drive autochangers, + and are difficult to reproduce. + See the ChangeLog for more details. + +Version 2.2.7 has several new features and several important bug fixes + since version 2.2.6: +- It fixes bugs: 1009, 1022, 1024, 1019, 1012, 1021, 1020 + 1007, 1008. For more details, please see the technotes-2.1 file. +- Fixed a seg fault reported by Frank Sweetser that depended on + exact path lengths, but the problem was in bsnprintf.c +- Double quoting include filenames (@xxx) in Bacula conf files is now + possible, thanks to a patch by Michael Stapelberg. +- You can pipe input to include filenames (@|prog) by using a vertical + bar, thanks to the above patch. +- A daylight savings time bug in the Win32 bsmpt was fixed by a patch from + Nerijus Baliunas. +- Marc Cousins submitted a patch that permits building the PostgreSQL + driver with version 8.3. +- The configure option --archivedir has been changed to --with-archivedir + +Version 2.2.6 is a minor bug fix release to version 2.2.5 +- It fixes bugs: #1003, 942, 982, 990(response only), 991, + 993, 986, 976. +- Fix bat crash wen it cannot connect to Director. +- Fix joblist failure bug in bat. + +Version 2.2.5 is a major bug fix release to version 2.2.4 +- It fixes the following bugs: #961, 962, 963, 969, 968, 960, + 964, (possibly 935 and 903), 953, 953, 967, 966, 965, 954, + 957, 908, 958, and 955. +- It also improves listing performance problems in bat pointed + out by Chris Howells. + +Version 2.2.4 is a minor bug fix release to version 2.2.3 +- Possible fix for authorization problems bug #953. +- Possible fix for bug #908. +- Add waits to multiple exit detection code to try to force pid + file to always be deleted. +- Restore good dev.tar.gz to rescue set appropriate binary property. + This fixes bug #950. +- Fix seg fault in error exit of acquire_for_read after unsuccessfully + trying to switch drives by checking for blocking before unblocking. + Fixes bug #906. +- Cancel storage daemon in all cases where FD reports error. This + should fix virtually all cases of bug #920 and will ensure that Devices + are released as soon as possible. +- Fix error message that was clobbered when Dir tells SD it does not + have write permission on Volume. This should fix a minor point + in bug #942, but not the main problem. +- Fix migration code to get correct Volume name with multiple volumes + by skipping |. Fixes bug #936. +- Implement patch supplied by Landon to fix bug #944 where using + TLS with bconsole uses 99+% of the CPU. +- Fix bug #946 about "bacula-dir -t" which doesn't works + as expected. +- Using "m" in bconsole will show messages as in prior versions + and not memory usage. + +- Note, you need GTK >= 2.10 to be able to link the Tray Monitor + program. + +Version 2.2.3 is a critical bug fix release to version 2.2.2 +- Fix bug #935, and possibly also bug #903 where files were not + restored. MediaId was not properly set in JobMedia record after + a Volume change. This bug is known to affect all versions from + 2.0.0 on, and probably versions prior to that. A detailed analysis + of the bug can be found at: + + http://www.bacula.org/downloads/bug-395.txt + +- Add ./configure search in qwt-qt4 for qwt package +- Apply Martin Simmons patch that should turn off the new API usage + when batch insert is turned off allowing building on older + PostgreSQLs. +- Note, you need GTK >= 2.10 to be able to link the Tray Monitor + program. + +Version 2.2.2 is a minor bug fix release to 2.2.1 +- Detect if new PosgreSQL batch insert API is present. +- Correct incorrect mempool call causing Director crash on older + systems that do not have va_copy(). +- Update spec files for 2.2.1 release + +Version 2.2.1 is mainly a minor bug fix release to version 2.2.0, + the main changes since 2.2.0 are: +- Fixed bugs #921, 930, and 923. +- More portable timezone offset in bsmtp thaks to Attila Fülöp. +- Fix several bat issues. +- Use GTK+ calls instead of egg files in tray-monitor. +- Win32 service routines rewritten +- Updated projects file +Please see the ChangeLog for details. + +Notes on 2.2.0 release follow: + +Areas requiring caution or testing: +- You must have the thread safe version of MySQL client libraries loaded + to build with MySQL enabled. +- Volumes are pruned only when absolutely necessary -- this may cause + your database to grow compared to prior Bacula versions. +- Solaris door and even port files are no longer restored (equivalent + to what we do with sockets). +- SQLite is no longer supported for Solaris -- it fails too often with + bus errors. SQLite3 should work on Solaris. +- The default setting for SQLite3 is now 'PRAGMA synchronous=OFF'. + This makes it run 30 times faster, but increases the possiblity + of a corrupted database if your server shuts down unexpectedly. + The default behavior can be changed in src/version.h +- Restore on Win32, and in particular on Vista is untested. Please + test before relying on it. It should backup and restore reparse + points. +- Win32 servers are untested, and very likely not to work. + +The major new features are: +- Much faster insertion of attributes (somewhere around 10 times), + many thanks to Eric Bollengier and Marc Cousin. +- First release of bat (Bacula Administration Tool). Note to build + bat you must explicitly enable it on the ./configure line, you + must have the Qt4 version 4.2 or later libraries loaded, the qwt + (Qt Graphics) package loaded, and qmake and the other Qt4 tools + must be available. Most of the implementation was done by Dirk Bartley. +- Red/Black restore in memory tree (500 times faster loading). +- The Regex Where code to allow easier relocation of restored files + thanks to Eric. +- Socket level heartbeat for all connections (untested). +- posix_fadvise() use in the FD to improve performance reduces + swapping due to opening/reading lots of files. Win32 equivalent + implemented. +- Much improved Volume reservation code that should eliminate most + conflicts experienced in multiple drive autochangers. +- Simpler locking in the SD in the reservation system. +- Detection of file size/date change during backup if enabled. +- New Recycle Pool feature -- thanks to Eric. +- Efficient implementation of very large include/exclude lists. +- Volumes are no longer pruned during 'status dir' +- Pruning is now more efficient, and if a Volume is purged, + during pruning, it is immediately discovered. +- License is now GPL v2 without modifications, fix a few copyright + mistakes made when adding FSFE copyright notice. + +New ./configure options: +- --enable-bwx-console +- --enable-bat +- --with-qwt= +- --with-db-name= +- --with-db-user= +- --enable-batch-insert + +New bconsole commands: +- exec +- memory +- update recyclepool +- .sql +- .api +- .pwd (in restore tree) +- restoreclient (keyword) +- backupclient (keyword) +- regexwhere (keyword) +- update jobid (new command) +- recyclepool (keyword) + +New directives: +- Heartbeat Interval (bconsole.conf) +- Heartbeat Interval (bacula-dir.conf in Director, Client, Storage) +- TLS Allowed CN (bacula-dir.conf in Client) +- Regex Where (bacula-dir.conf in Job) +- Strip Prefix (bacula-dir.conf in Job) +- Add Prefix (bacula-dir.conf in Job) +- Add Suffex (bacula-dir.conf in Job) +- Recycle Pool (bacula-dir.conf in Pool) +- FailJobOnError (bacula-dir.conf in RunScript) +- CheckFileChanges (bacula-dir.conf in FileSet) +- StripPath (bacula-dir.conf in FileSet) + +Other features or bug fixes: +- Fixed bugs: 916, 910, 917, 914, 906, 907, + 842, 830, 893, 861, 888, 886, 807, 877, 872 + 885, 887, 864, 874, 882, 881, 863, 859, + 856, 854, 845, 847, 846, 809, 772, + 822, 825, 824, 808, 802, 797, 798, 795, 789, 791, + 788, 780, 763, 782, 612, 767, 775, 621, 772, 764, + 766, 621, 761, 755, 750, 741, 747, 742, 744, and 743. +- Configure bat with --enable-bat. Define qwt libraries with + --with-qwt=. See Installation chapter of manual for details. +- Create a depkgs-qt package that has both Qt4 and qwt, which are + needed to build bat. Most modern Linux systems will have both + these packages in the distro. +- Storage overrides delete all previous storage definitions instead + of prepending. +- One should be able to mount and unmount removable devices if the + Device resource has Removeable Media set and the mount and unmount + directives are defined. +- ./configure will do a better job of searching for qwt libraries. +- The Win32 version can no longer be shutdown from the tray monitor. + Use the command line or the Services panne. +- Keep prune_volumes() from pruning the whole Scratch pool. +- More debug output in status storage. +- Correct moving a Scratch volume from pool to pool (some + critical columns were lost). +- Different locking in reservations and despooling systems, + which means more micro-locking and less macro-locking, which + should give a lot more concurrency at the expense of slightly + (<0.1%) more overhead due to more locking/unlocking, but + concurrent jobs should run much faster. +- Additional drive reservation algorithm that should solve a lot of + the problems experienced with multiple drive autochangers. +- Storage daemon status command enhanced to more clearly show Volume, + pool and media type when a job is waiting. +- Made bsmtp work with more strict SMTP servers. +- Detect doubly freed buffers in smartall.c +- wx-console renamed to bwx-console (Fedora request) +- gnome-console renamed to bgnome-console (Fedora request) +- Migration preserves original job's FileSetId +- Spooling implemented for migration jobs. +- Config files can be read through a pipe, by specifying a leading | + in front of the configuration path/filename. +- New memory command (bconsole) that will print the current Director's + memory usage, and an in use buffer dump. +- Console name changed from *Console* to -Console- to accomodate Win32 + filename restrictions. +- Corrected the Win32 ftruncate bug. +- Additional version information added to Job reports. +- New -8 option for bsmtp to specify UTF-8 encoding type. +- bsmtp will no longer add < > to target (from, to, cc) if there + is already a < in the target. +- Prefer Mounted Volumes extended to mean a volume that is being + mounted by another job. +- Runscript timing set to same as version 1.38.11 +- New TLS Allowed CN directive(s) permitted. +- New bconsole 'exec' command to run external script/command. +- Turn on FreeBSD/OpenBSD code to set EOT model on tape. +- Drop from root done before database is opened. +- Database user and name can be configured with: + --with-db-name=name --with-db-user=user +- Turn on wait_for_drive in mtx-changer script. +- Rework how bar codes are handled in mtx-changer script. + This appears to have been an unreported bug. +- Updated nagios plugin supplied by Christian Masopust +- Better restricted console ACL checking. +- New Client Connect Wait directive in Storage daemon so that + users can configure how long SD waits for FD connection. +- Bacula will no longer permit pruning of the currently running + job (note, if other jobs are running, they may be pruned). +- Sockets are no longer restored. +- dbcheck works in 300K chunks so will typically run faster. +- Include/Exclude lists can now be efficiently handled for quite + large sizes -- tens of thousands of entries. +- Several memory leaks in migration and database usage were fixed. +- New console keyword restoreclient, which specifies the client to + which the restore will be sent. The client keyword specifies + the backup client. The restoreclient keyword is optional if it is + not specified, the backup client will also be the restore client. +- The disk file size is now checked to ensure that it agrees with the + catalog value before Bacula will append to the disk (same as tape + and DVD). diff --git a/Branch-2.2/bacula/SUPPORT b/Branch-2.2/bacula/SUPPORT new file mode 100644 index 0000000000..3fcf8ecef6 --- /dev/null +++ b/Branch-2.2/bacula/SUPPORT @@ -0,0 +1,33 @@ + + Bacula Support request form. Please fill it out and email it to + bacula-users@lists.sourceforge.net + +Bacula version: + +OS type and version: + +How was Bacula built/installed? Source, rpms, ... be specific. + +Concise description of the problem: + + +Bacula output showing the problem: + + +Steps to reproduce the problem: + + + +Other information (optional): +A copy of your config.out file (if built from source) + +Tape drive/autochanger (for tape problems): + +Have you run btape "test" command? + +Database problems: what database are you using? +What is the database version? + +If the output involves configuration files, consider attaching +bacula-dir.conf, bacula-fd.conf, and bacula-sd.conf if necessary, +appropriate. diff --git a/Branch-2.2/bacula/VERIFYING b/Branch-2.2/bacula/VERIFYING new file mode 100644 index 0000000000..2c7babd9ab --- /dev/null +++ b/Branch-2.2/bacula/VERIFYING @@ -0,0 +1,38 @@ + +All Bacula packages released on Source Forge after 8 June 2003 +will be signed with the Bacula Distribution Verification Key. By +obtaining a copy of the Bacula Distribution Verification Public +key from either the home site (www.bacula.org) or from the Source +Forge project page, (www.sourceforge.net/projects/bacula). you +can verify that the code you have is complete, unaltered, and +packaged by myself (Kern Sibbald) or D. Scott Barninger. + +Putting the Bacula Key in your Keyring: + +Once you download the Bacula public key, you must insert it in +your keyring. The procedure will differ depending on whether you +are using PGP or GPG. For GPG, assuming you have put the key +in bacula.key, the procedure is: + + gpg --import bacula.key + +Verifying an RPM: + +The procedure for verification differs slightly if you are using +rpms or tar.gz files. For rpms, the signature becomes part of the +rpm package, and once the Bacula public key is in your keyring +you check the package with: + + rpm --checksig bacula-1.xx.rpm + +Verifying tar files: + +Tar files are distributed as they always have been in the past, +unchanged. However, for each xxxx.tar.gz file that is released there +will be a second file released with the same name but with .sig +appended, for example xxxx.tar.gz.sig. To verify the Bacula distribution, +you download both the files and put them in the same directory, then +for GPG, you use the following command to do the verification: + + gpg --verify xxxx.tar.gz.sig + diff --git a/Branch-2.2/bacula/autoconf/Make.common.in b/Branch-2.2/bacula/autoconf/Make.common.in new file mode 100644 index 0000000000..155e4e591e --- /dev/null +++ b/Branch-2.2/bacula/autoconf/Make.common.in @@ -0,0 +1,83 @@ +# +# This file is pulled in by all the Unix Bacula Makefiles +# so it has all the "common" definitions +# + +DATE="@DATE@" +LSMDATE=@LSMDATE@ +VERSION=@VERSION@ +VERNAME=bacula-$(VERSION)# +MAINT=Kern Sibbald# +MAINTEMAIL=# +WEBMAINT=# +WEBMAINTEMAIL=# +WEBPAGE=# +FTPSITENAME=# +FTPSITEDIR=# +#------------------------------------------------------------------------- + +SHELL = /bin/sh + +# Installation target directories & other installation stuff +prefix = @prefix@ +exec_prefix = @exec_prefix@ +binprefix = +manprefix = +sbindir = @sbindir@ +sysconfdir = @sysconfdir@ +scriptdir = @scriptdir@ +mandir = @mandir@ +manext = 8 + +NO_ECHO = @ + +# Tools & program stuff +CC = @CC@ +CPP = @CPP@ +CXX = @CXX@ +MV = @MV@ +RM = @RM@ +RMF = @RM@ -f +CP = @CP@ +SED = @SED@ +AWK = @AWK@ +ECHO = @ECHO@ +CMP = @CMP@ +TBL = @TBL@ +AR = @AR@ +RANLIB = @RANLIB@ +MKDIR = @BUILD_DIR@/autoconf/mkinstalldirs +INSTALL = @INSTALL@ +# add the -s to the following in PRODUCTION mode +INSTALL_PROGRAM = @INSTALL@ -m @SBINPERM@ +INSTALL_DATA = @INSTALL@ -m 644 +INSTALL_SCRIPT = @INSTALL@ -m @SBINPERM@ +INSTALL_CONFIG = @INSTALL@ -m 640 + +# Flags & libs +CFLAGS = @CFLAGS@ @OPENSSL_INC@ +CPPFLAGS = @CPPFLAGS@ @OPENSSL_INC@ +LDFLAGS = @LDFLAGS@ +TTOOL_LDFLAGS = @TTOOL_LDFLAGS@ +#DEFS = @DEFS@ @LOCAL_DEFS@ +LIBS = @LIBS@ +WRAPLIBS = @WRAPLIBS@ +DINCLUDE = @DINCLUDE@ +DLIB = @DLIB@ +DB_LIBS = @DB_LIBS@ +PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_INC = @PYTHON_INCDIR@ +OPENSSL_LIBS = @OPENSSL_LIBS@ + +# 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 +#------------------------------------------------------------------------- diff --git a/Branch-2.2/bacula/autoconf/acconfig.h b/Branch-2.2/bacula/autoconf/acconfig.h new file mode 100644 index 0000000000..ea87110b1f --- /dev/null +++ b/Branch-2.2/bacula/autoconf/acconfig.h @@ -0,0 +1,243 @@ +/* ------------------------------------------------------------------------- */ +/* -- CONFIGURE SPECIFIED FEATURES -- */ +/* ------------------------------------------------------------------------- */ + +/* Define if you want to use MySQL as Catalog database */ +#undef USE_MYSQL_DB + +/* Define if you want SmartAlloc debug code enabled */ +#undef SMARTALLOC + +/* Define to `int' if doesn't define. */ +#undef daddr_t + +/* Define to `int' if doesn't define. */ +#undef major_t + +/* Define to `int' if doesn't define. */ +#undef minor_t + +/* Define to `int' if doesn't define. */ +#undef ssize_t + +/* Define if you want to use PostgreSQL */ +#undef HAVE_POSTGRESQL + +/* Define if you want to use MySQL */ +#undef HAVE_MYSQL + +/* Defined if MySQL thread safe library is present */ +#undef HAVE_THREAD_SAFE_MYSQL + +/* Define if you want to use embedded MySQL */ +#undef HAVE_EMBEDDED_MYSQL + +/* Define if you want to use SQLite */ +#undef HAVE_SQLITE + +/* Define if you want to use SQLite3 */ +#undef HAVE_SQLITE3 + +/* Define if you want to use Berkeley DB */ +#undef HAVE_BERKELEY_DB + +/* Define if you want to use mSQL */ +#undef HAVE_MSQL + +/* Define if you want to use iODBC */ +#undef HAVE_IODBC + +/* Define if you want to use unixODBC */ +#undef HAVE_UNIXODBC + +/* Define if you want to use Solid SQL Server */ +#undef HAVE_SOLID + +/* Define if you want to use OpenLink ODBC (Virtuoso) */ +#undef HAVE_VIRT + +/* Define if you want to use EasySoft ODBC */ +#undef HAVE_EASYSOFT + +/* Define if you want to use Interbase SQL Server */ +#undef HAVE_IBASE + +/* Define if you want to use Oracle 8 SQL Server */ +#undef HAVE_ORACLE8 + +/* Define if you want to use Oracle 7 SQL Server */ +#undef HAVE_ORACLE7 + + +/* ------------------------------------------------------------------------- */ +/* -- CONFIGURE DETECTED FEATURES -- */ +/* ------------------------------------------------------------------------- */ +@TOP@ + +/* Define if you need function prototypes */ +#undef PROTOTYPES + +/* Define if you have XPointer typedef */ +#undef HAVE_XPOINTER + +/* Define if you have _GNU_SOURCE getpt() */ +#undef HAVE_GETPT + +/* Define if you have GCC */ +#undef HAVE_GCC + +/* Define if you have the Andrew File System. */ +#undef AFS + +/* Define If you want find -nouser and -nogroup to make tables of + used UIDs and GIDs at startup instead of using getpwuid or + getgrgid when needed. Speeds up -nouser and -nogroup unless you + are running NIS or Hesiod, which make password and group calls + very expensive. */ +#undef CACHE_IDS + +/* Define to use SVR4 statvfs to get filesystem type. */ +#undef FSTYPE_STATVFS + +/* Define to use SVR3.2 statfs to get filesystem type. */ +#undef FSTYPE_USG_STATFS + +/* Define to use AIX3 statfs to get filesystem type. */ +#undef FSTYPE_AIX_STATFS + +/* Define to use 4.3BSD getmntent to get filesystem type. */ +#undef FSTYPE_MNTENT + +/* Define to use 4.4BSD and OSF1 statfs to get filesystem type. */ +#undef FSTYPE_STATFS + +/* Define to use Ultrix getmnt to get filesystem type. */ +#undef FSTYPE_GETMNT + +/* Define to `unsigned long' if doesn't define. */ +#undef dev_t + +/* Define to `unsigned long' if doesn't define. */ +#undef ino_t + +/* Define to 1 if utime.h exists and declares struct utimbuf. */ +#undef HAVE_UTIME_H + +#if (HAVE_MYSQL||HAVE_POSTGRESQL||HAVE_MSQL||HAVE_IODBC||HAVE_UNIXODBC||HAVE_SOLID||HAVE_VIRT||HAVE_IBASE||HAVE_ORACLE8||HAVE_ORACLE7||HAVE_EASYSOFT) +#define HAVE_SQL +#endif + +/* Data types */ +#undef HAVE_U_INT +#undef HAVE_INTXX_T +#undef HAVE_U_INTXX_T +#undef HAVE_UINTXX_T +#undef HAVE_INT64_T +#undef HAVE_U_INT64_T +#undef HAVE_INTMAX_T +#undef HAVE_U_INTMAX_T + +/* Define if you want TCP Wrappers support */ +#undef HAVE_LIBWRAP + +/* Define if you have sys/bitypes.h */ +#undef HAVE_SYS_BITYPES_H + +/* Directory for PID files */ +#undef _PATH_BACULA_PIDDIR + +/* LOCALEDIR */ +#undef LOCALEDIR + +/* Define if you have zlib */ +#undef HAVE_LIBZ + +/* Define if you have libacl */ +#undef HAVE_ACL + +/* General libs */ +#undef LIBS + +/* File daemon specif libraries */ +#undef FDLIBS + +/* Path to Sendmail program */ +#undef SENDMAIL_PATH + +/* What kind of signals we have */ +#undef HAVE_POSIX_SIGNALS +#undef HAVE_BSD_SIGNALS +#undef HAVE_USG_SIGHOLD + +/* Operating systems */ +/* OSes */ +#undef HAVE_LINUX_OS +#undef HAVE_FREEBSD_OS +#undef HAVE_NETBSD_OS +#undef HAVE_OPENBSD_OS +#undef HAVE_BSDI_OS +#undef HAVE_HPUX_OS +#undef HAVE_SUN_OS +#undef HAVE_IRIX_OS +#undef HAVE_AIX_OS +#undef HAVE_SGI_OS +#undef HAVE_CYGWIN +#undef HAVE_OSF1_OS +#undef HAVE_DARWIN_OS + +/* Set to correct scanf value for long long int */ +#undef lld +#undef llu + +#undef HAVE_READLINE +#undef HAVE_PYTHON + +#undef HAVE_GMP + +#undef HAVE_CWEB + +#undef HAVE_FCHDIR + +#undef HAVE_GETOPT_LONG + +#undef HAVE_LIBSM + +/* Check for thread safe routines */ +#undef HAVE_LOCALTIME_R +#undef HAVE_READDIR_R +#undef HAVE_STRERROR_R +#undef HAVE_GETHOSTBYNAME_R + +#undef HAVE_STRTOLL +#undef HAVE_INET_PTON + +#undef HAVE_SOCKLEN_T + +#undef HAVE_OLD_SOCKOPT + +#undef HAVE_BIGENDIAN + +/* Defined if Gtk+-2.4 or greater is present */ +#undef HAVE_GTK_2_4 + +/* Needed on HP-UX/g++ systems to support long long ints (int64) */ +#undef _INCLUDE_LONGLONG + +/* Define to system config directory */ +#undef SYSCONFDIR + +/* Define if OPENSSL is available */ +#undef HAVE_OPENSSL + +/* Define if comm encryption should be enabled */ +#undef HAVE_TLS + +/* Define if data encryption should be enabled */ +#undef HAVE_CRYPTO + +/* Define the LOCALEDIR if a translation */ +#undef LOCALEDIR + +/* Define if language support is enabled */ +#undef ENABLE_NLS + diff --git a/Branch-2.2/bacula/autoconf/aclocal.m4 b/Branch-2.2/bacula/autoconf/aclocal.m4 new file mode 100644 index 0000000000..a1c61deb13 --- /dev/null +++ b/Branch-2.2/bacula/autoconf/aclocal.m4 @@ -0,0 +1,45 @@ +# 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([gettext-macros/codeset.m4]) +m4_include([gettext-macros/gettext.m4]) +m4_include([gettext-macros/glibc2.m4]) +m4_include([gettext-macros/glibc21.m4]) +m4_include([gettext-macros/iconv.m4]) +m4_include([gettext-macros/intdiv0.m4]) +m4_include([gettext-macros/intmax.m4]) +m4_include([gettext-macros/inttypes-pri.m4]) +m4_include([gettext-macros/inttypes.m4]) +m4_include([gettext-macros/inttypes_h.m4]) +m4_include([gettext-macros/isc-posix.m4]) +m4_include([gettext-macros/lcmessage.m4]) +m4_include([gettext-macros/lib-ld.m4]) +m4_include([gettext-macros/lib-link.m4]) +m4_include([gettext-macros/lib-prefix.m4]) +m4_include([gettext-macros/longdouble.m4]) +m4_include([gettext-macros/longlong.m4]) +m4_include([gettext-macros/nls.m4]) +m4_include([gettext-macros/po.m4]) +m4_include([gettext-macros/printf-posix.m4]) +m4_include([gettext-macros/progtest.m4]) +m4_include([gettext-macros/signed.m4]) +m4_include([gettext-macros/size_max.m4]) +m4_include([gettext-macros/stdint_h.m4]) +m4_include([gettext-macros/uintmax_t.m4]) +m4_include([gettext-macros/ulonglong.m4]) +m4_include([gettext-macros/wchar_t.m4]) +m4_include([gettext-macros/wint_t.m4]) +m4_include([gettext-macros/xsize.m4]) +m4_include([bacula-macros/db.m4]) +m4_include([bacula-macros/largefiles.m4]) +m4_include([bacula-macros/os.m4]) diff --git a/Branch-2.2/bacula/autoconf/bacula-macros/db.m4 b/Branch-2.2/bacula/autoconf/bacula-macros/db.m4 new file mode 100644 index 0000000000..d8f846cebd --- /dev/null +++ b/Branch-2.2/bacula/autoconf/bacula-macros/db.m4 @@ -0,0 +1,1022 @@ +AC_DEFUN([BA_CHECK_MYSQL_DB], +[ +db_found=no +AC_MSG_CHECKING(for MySQL support) +AC_ARG_WITH(mysql, +[ + --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 + 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/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 + 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 + else + MYSQL_LIBDIR=$withval/lib/mysql + # Solaris ... + if test -f $withval/lib/libmysqlclient_r.so; then + MYSQL_LIBDIR=$withval/lib + fi + 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 + SQL_INCLUDE=-I$MYSQL_INCDIR + if test -f $MYSQL_LIBDIR/libmysqlclient_r.a \ + -o -f $MYSQL_LIBDIR/libmysqlclient_r.so; then + SQL_LFLAGS="-L$MYSQL_LIBDIR -lmysqlclient_r -lz" + AC_DEFINE(HAVE_THREAD_SAFE_MYSQL) + fi + SQL_BINDIR=$MYSQL_BINDIR + SQL_LIB=$MYSQL_LIBDIR/libmysqlclient_r.a + + AC_DEFINE(HAVE_MYSQL) + AC_MSG_RESULT(yes) + db_found=yes + support_mysql=yes + db_type=MySQL + DB_TYPE=mysql + + else + AC_MSG_RESULT(no) + fi +] +) + +AC_ARG_WITH(embedded-mysql, +[ + --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 + SQL_INCLUDE=-I$MYSQL_INCDIR + SQL_LFLAGS="-L$MYSQL_LIBDIR -lmysqld -lz -lm -lcrypt" + SQL_BINDIR=$MYSQL_BINDIR + SQL_LIB=$MYSQL_LIBDIR/libmysqld.a + + AC_DEFINE(HAVE_MYSQL) + AC_DEFINE(HAVE_EMBEDDED_MYSQL) + AC_MSG_RESULT(yes) + db_found=yes + support_mysql=yes + db_type=MySQL + DB_TYPE=mysql + + else + AC_MSG_RESULT(no) + fi +] +) + + +AC_SUBST(SQL_LFLAGS) +AC_SUBST(SQL_INCLUDE) +AC_SUBST(SQL_BINDIR) + +]) + + +AC_DEFUN([BA_CHECK_SQLITE_DB], +[ +db_found=no +AC_MSG_CHECKING(for SQLite support) +AC_ARG_WITH(sqlite, +[ + --with-sqlite@<:@=DIR@:>@ Include SQLite support. DIR is the SQLite base + install directory, default is to search through + a number of common places for the SQLite files.], +[ + if test "$withval" != "no"; then + if test "$withval" = "yes"; then + if test -f /usr/local/include/sqlite.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/sqlite.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/sqlite.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 sqlite.h in standard locations) + fi + else + if test -f $withval/sqlite.h; then + SQLITE_INCDIR=$withval + SQLITE_LIBDIR=$withval + SQLITE_BINDIR=$withval + elif test -f $withval/include/sqlite.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 SQLite directory $withval - unable to find sqlite.h under $withval) + fi + fi + SQL_INCLUDE=-I$SQLITE_INCDIR + SQL_LFLAGS="-L$SQLITE_LIBDIR -lsqlite" + SQL_BINDIR=$SQLITE_BINDIR + SQL_LIB=$SQLITE_LIBDIR/libsqlite.a + + AC_DEFINE(HAVE_SQLITE) + AC_MSG_RESULT(yes) + db_found=yes + support_sqlite=yes + db_type=SQLite + DB_TYPE=sqlite + + else + AC_MSG_RESULT(no) + fi +],[ + AC_MSG_RESULT(no) +]) +AC_SUBST(SQL_LFLAGS) +AC_SUBST(SQL_INCLUDE) +AC_SUBST(SQL_BINDIR) + +]) + +AC_DEFUN([BA_CHECK_SQLITE3_DB], +[ +db_found=no +AC_MSG_CHECKING(for SQLite3 support) +AC_ARG_WITH(sqlite3, +[ + --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 + SQL_INCLUDE=-I$SQLITE_INCDIR + SQL_LFLAGS="-L$SQLITE_LIBDIR -lsqlite3" + SQL_BINDIR=$SQLITE_BINDIR + SQL_LIB=$SQLITE_LIBDIR/libsqlite3.a + + AC_DEFINE(HAVE_SQLITE3) + AC_MSG_RESULT(yes) + db_found=yes + support_sqlite3=yes + db_type=SQLite3 + DB_TYPE=sqlite3 + + else + AC_MSG_RESULT(no) + fi +],[ + AC_MSG_RESULT(no) +]) +AC_SUBST(SQL_LFLAGS) +AC_SUBST(SQL_INCLUDE) +AC_SUBST(SQL_BINDIR) + +]) + + + +AC_DEFUN([BA_CHECK_POSTGRESQL_DB], +[ +db_found=no +AC_MSG_CHECKING(for PostgreSQL support) +AC_ARG_WITH(postgresql, +[ --with-postgresql@<:@=DIR@:>@ Include PostgreSQL support. DIR is the PostgreSQL + base install directory, defaults to /usr/local/pgsql], +[ + if test "$withval" != "no"; then + if test "$db_found" = "yes"; then + AC_MSG_RESULT(error) + AC_MSG_ERROR("You can configure for only one database."); + fi + if test "$withval" = "yes"; then + PG_CONFIG=`which pg_config` + if test -n "$PG_CONFIG";then + POSTGRESQL_INCDIR=`"$PG_CONFIG" --includedir` + POSTGRESQL_LIBDIR=`"$PG_CONFIG" --libdir` + POSTGRESQL_BINDIR=`"$PG_CONFIG" --bindir` + elif 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 + elif 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 + POSTGRESQL_LFLAGS="-L$POSTGRESQL_LIBDIR -lpq" + AC_CHECK_FUNC(crypt, , AC_CHECK_LIB(crypt, crypt, [POSTGRESQL_LFLAGS="$POSTGRESQL_LFLAGS -lcrypt"])) + SQL_INCLUDE=-I$POSTGRESQL_INCDIR + SQL_LFLAGS=$POSTGRESQL_LFLAGS + SQL_BINDIR=$POSTGRESQL_BINDIR + SQL_LIB=$POSTGRESQL_LIBDIR/libpq.a + + AC_DEFINE(HAVE_POSTGRESQL) + AC_MSG_RESULT(yes) + db_found=yes + support_postgresql=yes + db_type=PostgreSQL + DB_TYPE=postgresql + else + AC_MSG_RESULT(no) + fi +],[ + AC_MSG_RESULT(no) +]) +AC_SUBST(SQL_LFLAGS) +AC_SUBST(SQL_INCLUDE) +AC_SUBST(SQL_BINDIR) + +]) + + + +AC_DEFUN([BA_CHECK_SQL_DB], +[AC_MSG_CHECKING(Checking for various databases) +dnl# -------------------------------------------------------------------------- +dnl# CHECKING FOR VARIOUS DATABASES (thanks to UdmSearch team) +dnl# -------------------------------------------------------------------------- +dnl Check for some DBMS backend +dnl NOTE: we can use only one backend at a time +db_found=no +DB_TYPE=none + +if test x$support_mysql = xyes; then + cats=cats +fi + +AC_MSG_CHECKING(for Berkeley DB support) +AC_ARG_WITH(berkeleydb, +[ + --with-berkeleydb@<:@=DIR@:>@ Include Berkeley DB support. DIR is the Berkeley DB base + install directory, default is to search through + a number of common places for the DB files.], +[ + if test "$withval" != "no"; then + if test "$withval" = "yes"; then + if test -f /usr/include/db.h; then + BERKELEYDB_INCDIR=/usr/include + if test -d /usr/lib64; then + BERKELEYDB_LIBDIR=/usr/lib64 + else + BERKELEYDB_LIBDIR=/usr/lib + fi + else + AC_MSG_RESULT(no) + AC_MSG_ERROR(Invalid Berkeley DB directory - unable to find db.h) + fi + else + if test -f $withval/include/db.h; then + BERKELEYDB_INCDIR=$withval/include + if test -d $withval/lib64; then + BERKELEYDB_LIBDIR=$withval/lib64 + else + BERKELEYDB_LIBDIR=$withval/lib + fi + else + AC_MSG_RESULT(no) + AC_MSG_ERROR(Invalid Berkeley DB directory - unable to find db.h under $withval) + fi + fi + SQL_INCLUDE=-I$BERKELEYDB_INCDIR + SQL_LFLAGS="-L$BERKELEYDB_LIBDIR -ldb" + + AC_DEFINE(HAVE_BERKELEY_DB) + AC_MSG_RESULT(yes) + have_db=yes + support_mysql=yes + DB_TYPE=BerkelyDB + + else + AC_MSG_RESULT(no) + fi +],[ + AC_MSG_RESULT(no) +]) +AC_SUBST(SQL_LFLAGS) +AC_SUBST(SQL_INCLUDE) + +if test x$support_berkleydb = xyes; then + cats=cats +fi + + + + +AC_MSG_CHECKING(for mSQL support) +AC_ARG_WITH(msql, +[ --with-msql@<:@=DIR@:> Include mSQL support. DIR is the mSQL base + install directory, defaults to /usr/local/Hughes.], +[ + if test "$withval" != "no"; then + if test "$have_db" = "yes"; then + AC_MSG_RESULT(error) + AC_MSG_ERROR("You can configure for only one database."); + fi + + if test "$withval" = "yes"; then + MSQL_INCDIR=/usr/local/Hughes/include + if test -d /usr/local/Hughes/lib64; then + MSQL_LIBDIR=/usr/local/Hughes/lib64 + else + MSQL_LIBDIR=/usr/local/Hughes/lib + fi + else + MSQL_INCDIR=$withval/include + if test -d $withval/lib64; then + MSQL_LIBDIR=$withval/lib64 + else + MSQL_LIBDIR=$withval/lib + fi + fi + MSQL_INCLUDE=-I$MSQL_INCDIR + MSQL_LFLAGS="-L$MSQL_LIBDIR -lmsql" + + AC_DEFINE(HAVE_MSQL) + AC_MSG_RESULT(yes) + have_db=yes + else + AC_MSG_RESULT(no) + fi +],[ + AC_MSG_RESULT(no) +]) +AC_SUBST(MSQL_LFLAGS) +AC_SUBST(MSQL_INCLUDE) + + +AC_MSG_CHECKING(for iODBC support) +AC_ARG_WITH(iodbc, +[ --with-iodbc@<:@=DIR@:> Include iODBC support. DIR is the iODBC base + install directory, defaults to /usr/local.], +[ + if test "$withval" != "no"; then + if test "$have_db" = "yes"; then + AC_MSG_RESULT(error) + AC_MSG_ERROR("You can configure for only one database."); + fi + fi + + if test "$withval" = "yes"; then + withval=/usr/local + fi + + if test "$withval" != "no"; then + if test -f $withval/include/isql.h; then + IODBC_INCDIR=$withval/include + if test -d $withval/lib64; then + IODBC_LIBDIR=$withval/lib64 + else + IODBC_LIBDIR=$withval/lib + fi + else + AC_MSG_RESULT(no) + AC_MSG_ERROR(Invalid iODBC directory - unable to find isql.h) + fi + IODBC_LFLAGS="-L$IODBC_LIBDIR -liodbc" + IODBC_INCLUDE=-I$IODBC_INCDIR + AC_DEFINE(HAVE_IODBC) + AC_MSG_RESULT(yes) + have_db=yes + fi +],[ + AC_MSG_RESULT(no) +]) +AC_SUBST(IODBC_LFLAGS) +AC_SUBST(IODBC_INCLUDE) + + +AC_MSG_CHECKING(for unixODBC support) +AC_ARG_WITH(unixODBC, +[ --with-unixODBC@<:@=DIR@:> Include unixODBC support. DIR is the unixODBC base + install directory, defaults to /usr/local.], +[ + if test "$withval" != "no"; then + if test "$have_db" = "yes"; then + AC_MSG_RESULT(error) + AC_MSG_ERROR("You can configure for only one database."); + fi + fi + + if test "$withval" = "yes"; then + withval=/usr/local + fi + + if test "$withval" != "no"; then + if test -f $withval/include/sql.h; then + UNIXODBC_INCDIR=$withval/include + if test -d $withval/lib64; then + UNIXODBC_LIBDIR=$withval/lib64 + else + UNIXODBC_LIBDIR=$withval/lib + fi + else + AC_MSG_RESULT(no) + AC_MSG_ERROR(Invalid unixODBC directory - unable to find sql.h) + fi + UNIXODBC_LFLAGS="-L$UNIXODBC_LIBDIR -lodbc" + UNIXODBC_INCLUDE=-I$UNIXODBC_INCDIR + AC_DEFINE(HAVE_UNIXODBC) + AC_MSG_RESULT(yes) + have_db=yes + fi +],[ + AC_MSG_RESULT(no) +]) +AC_SUBST(UNIXODBC_LFLAGS) +AC_SUBST(UNIXODBC_INCLUDE) + + +AC_MSG_CHECKING(for Solid support) +AC_ARG_WITH(solid, +[ --with-solid@<:@=DIR@:> Include Solid support. DIR is the Solid base + install directory, defaults to /usr/local.], +[ + if test "$withval" != "no"; then + if test "$have_db" = "yes"; then + AC_MSG_RESULT(error) + AC_MSG_ERROR("You can configure for only one database."); + fi + fi + + if test "$withval" = "yes"; then + withval=/usr/local + fi + + if test "$withval" != "no"; then + if test -f $withval/include/cli0cli.h; then + SOLID_INCDIR=$withval/include + if test -d $withval/lib64; then + SOLID_LIBDIR=$withval/lib64 + else + SOLID_LIBDIR=$withval/lib + fi + else + AC_MSG_RESULT(no) + AC_MSG_ERROR(Invalid Solid directory - unable to find cli0cli.h) + fi + SOLID_LFLAGS="-L$SOLID_LIBDIR -lsolcli" + SOLID_INCLUDE="-I$SOLID_INCDIR" + AC_DEFINE(HAVE_SOLID) + AC_MSG_RESULT(yes) + have_db=yes + fi +],[ + AC_MSG_RESULT(no) +]) +AC_SUBST(SOLID_LFLAGS) +AC_SUBST(SOLID_INCLUDE) + +AC_MSG_CHECKING(for OpenLink ODBC support) +AC_ARG_WITH(openlink, +[ --with-openlink@<:@=DIR@:> Include OpenLink ODBC support. + DIR is the base OpenLink ODBC install directory], +[ + if test "$withval" != "no"; then + if test "$withval" = "yes"; then + + if test "$have_db" = "yes"; then + AC_MSG_RESULT(error) + AC_MSG_ERROR("You can configure for only one database."); + fi + + if test -f /usr/local/virtuoso-ent/odbcsdk/include/isql.h; then + VIRT_INCDIR=/usr/local/virtuoso-ent/odbcsdk/include/ + if test -d /usr/local/virtuoso-ent/odbcsdk/lib64/; then + VIRT_LIBDIR=/usr/local/virtuoso-ent/odbcsdk/lib64/ + else + VIRT_LIBDIR=/usr/local/virtuoso-ent/odbcsdk/lib/ + fi + elif test -f /usr/local/virtuoso-lite/odbcsdk/include/isql.h; then + VIRT_INCDIR=/usr/local/virtuoso-lite/odbcsdk/include/ + if test -d /usr/local/virtuoso-lite/odbcsdk/lib64/; then + VIRT_LIBDIR=/usr/local/virtuoso-lite/odbcsdk/lib64/ + else + VIRT_LIBDIR=/usr/local/virtuoso-lite/odbcsdk/lib/ + fi + elif test -f /usr/local/virtuoso/odbcsdk/include/isql.h; then + VIRT_INCDIR=/usr/local/virtuoso/odbcsdk/include/ + if test -d /usr/local/virtuoso/odbcsdk/lib64/; then + VIRT_LIBDIR=/usr/local/virtuoso/odbcsdk/lib64/ + else + VIRT_LIBDIR=/usr/local/virtuoso/odbcsdk/lib/ + fi + else + AC_MSG_RESULT(no) + AC_MSG_ERROR(Invalid OpenLink ODBC directory - unable to find isql.h) + fi + else + if test -f $withval/odbcsdk/include/isql.h; then + VIRT_INCDIR=$withval/odbcsdk/include/ + if test -d $withval/odbcsdk/lib64/; then + VIRT_LIBDIR=$withval/odbcsdk/lib64/ + else + VIRT_LIBDIR=$withval/odbcsdk/lib/ + fi + elif test -f $withval/include/isql.h; then + VIRT_INCDIR=$withval/include/ + if test -d $withval/lib64/; then + VIRT_LIBDIR=$withval/lib64/ + else + VIRT_LIBDIR=$withval/lib/ + fi + else + AC_MSG_RESULT(no) + AC_MSG_ERROR(Invalid OpenLink ODBC directory - unable to find isql.h under $withval) + fi + fi + VIRT_INCLUDE=-I$VIRT_INCDIR + VIRT_LFLAGS="-L$VIRT_LIBDIR -liodbc" + + AC_DEFINE(HAVE_VIRT) + AC_MSG_RESULT(yes) + have_db=yes + + else + AC_MSG_RESULT(no) + fi +],[ + AC_MSG_RESULT(no) +]) +AC_SUBST(VIRT_LFLAGS) +AC_SUBST(VIRT_INCLUDE) + + +AC_MSG_CHECKING(for EasySoft ODBC support) +AC_ARG_WITH(easysoft, +[ --with-easysoft@<:@=DIR@:> Include EasySoft ODBC support. + DIR is the base EasySoft ODBC install directory], +[ + if test "$withval" != "no"; then + if test "$withval" = "yes"; then + + if test "$have_db" = "yes"; then + AC_MSG_RESULT(error) + AC_MSG_ERROR("You can configure for only one database."); + fi + + if test -f /usr/local/easysoft/oob/client/include/sql.h; then + EASYSOFT_INCDIR=/usr/local/easysoft/oob/client/include/ + if test -d /usr/local/easysoft/oob/client/lib64/; then + EASYSOFT_LFLAGS="-L/usr/local/easysoft/oob/client/lib64/ -L/usr/local/easysoft/lib64" + else + EASYSOFT_LFLAGS="-L/usr/local/easysoft/oob/client/lib/ -L/usr/local/easysoft/lib" + fi + else + AC_MSG_RESULT(no) + AC_MSG_ERROR(Invalid EasySoft ODBC directory - unable to find sql.h) + fi + else + if test -f $withval/easysoft/oob/client/include/sql.h; then + EASYSOFT_INCDIR=$withval/easysoft/oob/client/include/ + if test -d $withval/easysoft/oob/client/lib64/; then + EASYSOFT_LFLAGS="-L$withval/easysoft/oob/client/lib64/ -L$withval/easysoft/lib64" + else + EASYSOFT_LFLAGS="-L$withval/easysoft/oob/client/lib/ -L$withval/easysoft/lib" + fi + else + AC_MSG_RESULT(no) + AC_MSG_ERROR(Invalid EasySoft ODBC directory - unable to find sql.h under $withval) + fi + fi + EASYSOFT_INCLUDE=-I$EASYSOFT_INCDIR + EASYSOFT_LFLAGS="$EASYSOFT_LFLAGS -lesoobclient -lesrpc -lsupport -lextra" + + AC_DEFINE(HAVE_EASYSOFT) + AC_MSG_RESULT(yes) + have_db=yes + + else + AC_MSG_RESULT(no) + fi +],[ + AC_MSG_RESULT(no) +]) +AC_SUBST(EASYSOFT_LFLAGS) +AC_SUBST(EASYSOFT_INCLUDE) + + + +AC_MSG_CHECKING(for InterBase support) +AC_ARG_WITH(ibase, +[ --with-ibase@<:@=DIR@:> Include InterBase support. DIR is the InterBase + install directory, defaults to /usr/interbase.], +[ + if test "$withval" != "no"; then + if test "$have_db" = "yes"; then + AC_MSG_RESULT(error) + AC_MSG_ERROR("You can configure for only one database."); + fi + fi + + if test "$withval" = "yes"; then + withval=/usr/interbase + fi + + if test "$withval" != "no"; then + if test -f $withval/include/ibase.h; then + IBASE_INCDIR=$withval/include + if test -d $withval/lib64; then + IBASE_LIBDIR=$withval/lib64 + else + IBASE_LIBDIR=$withval/lib + fi + else + AC_MSG_RESULT(no) + AC_MSG_ERROR(Invalid InterBase directory - unable to find ibase.h) + fi + IBASE_LFLAGS="-L$IBASE_LIBDIR -lgds" + IBASE_INCLUDE=-I$IBASE_INCDIR + AC_DEFINE(HAVE_IBASE) + AC_MSG_RESULT(yes) + have_db=yes + fi +],[ + AC_MSG_RESULT(no) +]) +AC_SUBST(IBASE_LFLAGS) +AC_SUBST(IBASE_INCLUDE) + +AC_MSG_CHECKING(for Oracle8 support) +AC_ARG_WITH(oracle8, +[ --with-oracle8@<:@=DIR@:> Include Oracle8 support. DIR is the Oracle + home directory, defaults to $ORACLE_HOME or + /oracle8/app/oracle/product/8.0.5.], +[ + if test "$withval" != "no"; then + if test "$have_db" = "yes"; then + AC_MSG_RESULT(error) + AC_MSG_ERROR("You can configure for only one database."); + fi + fi + + if test "$withval" = "yes"; then + withval="$ORACLE_HOME" + if test "$withval" = ""; then + withval=/oracle8/app/oracle/product/8.0.5 + fi + fi + + if test "$withval" != "no"; then + if test -f $withval/rdbms/demo/oci.h; then + ORACLE8_INCDIR1=$withval/rdbms/demo/ + ORACLE8_INCDIR2=$withval/rdbms/public/: + ORACLE8_INCDIR3=$withval/network/public/ + ORACLE8_INCDIR4=$withval/plsql/public/ + if test -d $withval/lib64; then + ORACLE8_LIBDIR1=$withval/lib64 + else + ORACLE8_LIBDIR1=$withval/lib + fi + if test -d $withval/rdbms/lib64; then + ORACLE8_LIBDIR2=$withval/rdbms/lib64 + else + ORACLE8_LIBDIR2=$withval/rdbms/lib + fi + else + AC_MSG_RESULT(no) + AC_MSG_ERROR(Invalid ORACLE directory - unable to find oci.h) + fi + if test -f $withval/lib64/libclntsh.so; then + ORACLE8_LFLAGS="-L$ORACLE8_LIBDIR1 -L$ORACLE8_LIBDIR2 $withval/lib64/libclntsh.so -lmm -lepc -lclient -lvsn -lcommon -lgeneric -lcore4 -lnlsrtl3 -lnsl -lm -ldl -lnetv2 -lnttcp -lnetwork -lncr -lsql" + else + ORACLE8_LFLAGS="-L$ORACLE8_LIBDIR1 -L$ORACLE8_LIBDIR2 $withval/lib/libclntsh.so -lmm -lepc -lclient -lvsn -lcommon -lgeneric -lcore4 -lnlsrtl3 -lnsl -lm -ldl -lnetv2 -lnttcp -lnetwork -lncr -lsql" + fi + ORACLE8_INCLUDE="-I$ORACLE8_INCDIR1 -I$ORACLE8_INCDIR2 -I$ORACLE8_INCDIR3 -I$ORACLE8_INCDIR4" + AC_DEFINE(HAVE_ORACLE8) + AC_MSG_RESULT(yes) + have_db=yes + fi +],[ + AC_MSG_RESULT(no) +]) +AC_SUBST(ORACLE8_LFLAGS) +AC_SUBST(ORACLE8_INCLUDE) + + +AC_MSG_CHECKING(for Oracle7 support) +AC_ARG_WITH(oracle7, +[ --with-oracle7@<:@=DIR@:> Include Oracle 7.3 support. DIR is the Oracle + home directory, defaults to + ORACLE_HOME [$ORACLE_HOME]], +[ + if test "$withval" != "no"; then + if test "$have_db" = "yes"; then + AC_MSG_RESULT(error) + AC_MSG_ERROR("You can configure for only one database."); + fi + fi + + if test "$withval" = "yes"; then + withval="$ORACLE_HOME" + fi + + if test "$withval" != "no"; then + if test -f $withval/rdbms/demo/ocidfn.h; then + ORACLE7_INCDIR=$withval/rdbms/demo/ + if test -d $withval/lib64; then + ORACLE7_LIBDIR1=$withval/lib64 + else + ORACLE7_LIBDIR1=$withval/lib + fi + if test -d $withval/rdbms/lib64; then + ORACLE7_LIBDIR2=$withval/rdbms/lib64 + else + ORACLE7_LIBDIR2=$withval/rdbms/lib + fi + else + AC_MSG_RESULT(no) + AC_MSG_ERROR(Invalid ORACLE directory - unable to find ocidfn.h) + fi + + ORACLEINST_TOP=$withval + if test -f "$ORACLEINST_TOP/rdbms/lib/sysliblist" + then + ORA_SYSLIB="`cat $ORACLEINST_TOP/rdbms/lib/sysliblist`" + elif test -f "$ORACLEINST_TOP/rdbms/lib64/sysliblist" + then + ORA_SYSLIB="`cat $ORACLEINST_TOP/rdbms/lib64/sysliblist`" + elif test -f "$ORACLEINST_TOP/lib/sysliblist" + then + ORA_SYSLIB="`cat $ORACLEINST_TOP/lib/sysliblist`" + elif test -f "$ORACLEINST_TOP/lib64/sysliblist" + then + ORA_SYSLIB="`cat $ORACLEINST_TOP/lib64/sysliblist`" + else + ORA_SYSLIB="-lm" + fi + + ORACLE7_LFLAGS="-L$ORACLE7_LIBDIR1 -L$ORACLE7_LIBDIR2 \ + -lclient -lsqlnet -lncr -lsqlnet -lclient -lcommon \ + -lgeneric -lsqlnet -lncr -lsqlnet -lclient -lcommon -lgeneric \ + -lepc -lnlsrtl3 -lc3v6 -lcore3 -lnlsrtl3 -lcore3 -lnlsrtl3 \ + $ORA_SYSLIB -lcore3 $ORA_SYSLIB" + ORACLE7_INCLUDE="-I$ORACLE7_INCDIR " + AC_DEFINE(HAVE_ORACLE7) + AC_MSG_RESULT(yes) + have_db=yes + fi +],[ + AC_MSG_RESULT(no) +]) +AC_SUBST(ORACLE7_LFLAGS) +AC_SUBST(ORACLE7_INCLUDE) +]) + + +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]) diff --git a/Branch-2.2/bacula/autoconf/bacula-macros/largefiles.m4 b/Branch-2.2/bacula/autoconf/bacula-macros/largefiles.m4 new file mode 100644 index 0000000000..e33d005601 --- /dev/null +++ b/Branch-2.2/bacula/autoconf/bacula-macros/largefiles.m4 @@ -0,0 +1,109 @@ +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_BAC_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 ========================================================== diff --git a/Branch-2.2/bacula/autoconf/bacula-macros/os.m4 b/Branch-2.2/bacula/autoconf/bacula-macros/os.m4 new file mode 100644 index 0000000000..7fe1a6bf6d --- /dev/null +++ b/Branch-2.2/bacula/autoconf/bacula-macros/os.m4 @@ -0,0 +1,224 @@ +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) + elif test "$bash_cv_signal_vintage" = "4.2bsd"; then + AC_DEFINE(HAVE_BSD_SIGNALS) + elif test "$bash_cv_signal_vintage" = "svr3"; then + AC_DEFINE(HAVE_USG_SIGHOLD) + 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) +else + BA_CONDITIONAL(HAVE_SUN_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) +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) +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) +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) +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) +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) +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) +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) +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) +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) +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) +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" +elif test $HAVE_UNAME=yes -a x`uname -s` = xOSF1 +then + DISTNAME=alpha +elif test $HAVE_UNAME=yes -a x`uname -s` = xAIX +then + DISTNAME=aix +elif test $HAVE_UNAME=yes -a x`uname -s` = xHP-UX +then + DISTNAME=hpux +elif test $HAVE_UNAME=yes -a x`uname -s` = xSunOS +then + DISTNAME=solaris +elif test $HAVE_UNAME=yes -a x`uname -s` = xFreeBSD +then + DISTNAME=freebsd +elif test $HAVE_UNAME=yes -a x`uname -s` = xNetBSD +then + DISTNAME=netbsd +elif test $HAVE_UNAME=yes -a x`uname -s` = xOpenBSD +then + DISTNAME=openbsd +elif test $HAVE_UNAME=yes -a x`uname -s` = xIRIX +then + DISTNAME=irix +elif test $HAVE_UNAME=yes -a x`uname -s` = xBSD/OS +then + DISTNAME=bsdi +elif test -f /etc/SuSE-release +then + DISTNAME=suse +elif test -d /etc/SuSEconfig +then + DISTNAME=suse5 +elif test -f /etc/mandrake-release +then + DISTNAME=mandrake +elif test -f /etc/whitebox-release +then + DISTNAME=redhat +elif test -f /etc/redhat-release +then + DISTNAME=redhat +elif test -f /etc/gentoo-release +then + DISTNAME=gentoo +elif test -f /etc/debian_version +then + DISTNAME=debian +elif test -f /etc/slackware-version +then + DISTNAME=slackware +elif test $HAVE_UNAME=yes -a x`uname -s` = xDarwin +then + DISTNAME=darwin +elif test -f /etc/engarde-version +then + DISTNAME=engarde +elif test "$CYGWIN" = yes +then + DISTNAME=cygwin + AC_DEFINE(HAVE_CYGWIN) +else + DISTNAME=unknown +fi +AC_MSG_RESULT(done) +]) diff --git a/Branch-2.2/bacula/autoconf/confdefs.h b/Branch-2.2/bacula/autoconf/confdefs.h new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/Branch-2.2/bacula/autoconf/confdefs.h @@ -0,0 +1 @@ + diff --git a/Branch-2.2/bacula/autoconf/config.guess b/Branch-2.2/bacula/autoconf/config.guess new file mode 100755 index 0000000000..7d0185e019 --- /dev/null +++ b/Branch-2.2/bacula/autoconf/config.guess @@ -0,0 +1,1447 @@ +#! /bin/sh +# Attempt to guess a canonical system name. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +# 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. + +timestamp='2004-09-07' + +# 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, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# 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 to . Submit a context +# diff and a properly formatted 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. +# +# The plan is that this can be called by configure scripts if you +# don't specify an explicit build system type. + +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 +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 0 ;; + --version | -v ) + echo "$version" ; exit 0 ;; + --help | --h* | -h ) + echo "$usage"; exit 0 ;; + -- ) # 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 -q "$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 ;' + +# 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 + +# 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 tupples: *-*-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 ;; + *) 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 __ELF__ >/dev/null + 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 0 ;; + amd64:OpenBSD:*:*) + echo x86_64-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + amiga:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + cats:OpenBSD:*:*) + echo arm-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + hp300:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + luna88k:OpenBSD:*:*) + echo m88k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + mac68k:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + macppc:OpenBSD:*:*) + echo powerpc-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + mvme68k:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + mvme88k:OpenBSD:*:*) + echo m88k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + mvmeppc:OpenBSD:*:*) + echo powerpc-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + sgi:OpenBSD:*:*) + echo mips64-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + sun3:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + *:OpenBSD:*:*) + echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + *:ekkoBSD:*:*) + echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} + exit 0 ;; + macppc:MirBSD:*:*) + echo powerppc-unknown-mirbsd${UNAME_RELEASE} + exit 0 ;; + *:MirBSD:*:*) + echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} + exit 0 ;; + 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'` + exit 0 ;; + 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 0 ;; + 21064:Windows_NT:50:3) + echo alpha-dec-winnt3.5 + exit 0 ;; + Amiga*:UNIX_System_V:4.0:*) + echo m68k-unknown-sysv4 + exit 0;; + *:[Aa]miga[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-amigaos + exit 0 ;; + *:[Mm]orph[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-morphos + exit 0 ;; + *:OS/390:*:*) + echo i370-ibm-openedition + exit 0 ;; + *:OS400:*:*) + echo powerpc-ibm-os400 + exit 0 ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix${UNAME_RELEASE} + exit 0;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + echo hppa1.1-hitachi-hiuxmpp + exit 0;; + 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 0 ;; + NILE*:*:*:dcosx) + echo pyramid-pyramid-svr4 + exit 0 ;; + DRS?6000:unix:4.0:6*) + echo sparc-icl-nx6 + exit 0 ;; + DRS?6000:UNIX_SV:4.2*:7*) + case `/usr/bin/uname -p` in + sparc) echo sparc-icl-nx7 && exit 0 ;; + esac ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + i86pc:SunOS:5.*:*) + echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + 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 0 ;; + 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 0 ;; + sun3*:SunOS:*:*) + echo m68k-sun-sunos${UNAME_RELEASE} + exit 0 ;; + 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 0 ;; + aushp:SunOS:*:*) + echo sparc-auspex-sunos${UNAME_RELEASE} + exit 0 ;; + # 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 0 ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit 0 ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit 0 ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + echo m68k-milan-mint${UNAME_RELEASE} + exit 0 ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + echo m68k-hades-mint${UNAME_RELEASE} + exit 0 ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + echo m68k-unknown-mint${UNAME_RELEASE} + exit 0 ;; + m68k:machten:*:*) + echo m68k-apple-machten${UNAME_RELEASE} + exit 0 ;; + powerpc:machten:*:*) + echo powerpc-apple-machten${UNAME_RELEASE} + exit 0 ;; + RISC*:Mach:*:*) + echo mips-dec-mach_bsd4.3 + exit 0 ;; + RISC*:ULTRIX:*:*) + echo mips-dec-ultrix${UNAME_RELEASE} + exit 0 ;; + VAX*:ULTRIX*:*:*) + echo vax-dec-ultrix${UNAME_RELEASE} + exit 0 ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + echo clipper-intergraph-clix${UNAME_RELEASE} + exit 0 ;; + 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 \ + && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ + && exit 0 + echo mips-mips-riscos${UNAME_RELEASE} + exit 0 ;; + Motorola:PowerMAX_OS:*:*) + echo powerpc-motorola-powermax + exit 0 ;; + Motorola:*:4.3:PL8-*) + echo powerpc-harris-powermax + exit 0 ;; + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) + echo powerpc-harris-powermax + exit 0 ;; + Night_Hawk:Power_UNIX:*:*) + echo powerpc-harris-powerunix + exit 0 ;; + m88k:CX/UX:7*:*) + echo m88k-harris-cxux7 + exit 0 ;; + m88k:*:4*:R4*) + echo m88k-motorola-sysv4 + exit 0 ;; + m88k:*:3*:R3*) + echo m88k-motorola-sysv3 + exit 0 ;; + 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 0 ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 + exit 0 ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + echo m88k-motorola-sysv3 + exit 0 ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + echo m88k-tektronix-sysv3 + exit 0 ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + echo m68k-tektronix-bsd + exit 0 ;; + *:IRIX*:*:*) + echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` + exit 0 ;; + ????????: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 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + i*86:AIX:*:*) + echo i386-ibm-aix + exit 0 ;; + 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 0 ;; + *: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 + $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 + echo rs6000-ibm-aix3.2.5 + 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 0 ;; + *:AIX:*:[45]) + 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 0 ;; + *:AIX:*:*) + echo rs6000-ibm-aix + exit 0 ;; + ibmrt:4.4BSD:*|romp-ibm:BSD:*) + echo romp-ibm-bsd4.4 + exit 0 ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + exit 0 ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + echo rs6000-bull-bosx + exit 0 ;; + DPX/2?00:B.O.S.:*:*) + echo m68k-bull-sysv3 + exit 0 ;; + 9000/[34]??:4.3bsd:1.*:*) + echo m68k-hp-bsd + exit 0 ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + echo m68k-hp-bsd4.4 + exit 0 ;; + 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 + # avoid double evaluation of $set_cc_for_build + test -n "$CC_FOR_BUILD" || eval $set_cc_for_build + if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null + then + HP_ARCH="hppa2.0w" + else + HP_ARCH="hppa64" + fi + fi + echo ${HP_ARCH}-hp-hpux${HPUX_REV} + exit 0 ;; + ia64:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux${HPUX_REV} + exit 0 ;; + 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 && $dummy && exit 0 + echo unknown-hitachi-hiuxwe2 + exit 0 ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + echo hppa1.1-hp-bsd + exit 0 ;; + 9000/8??:4.3bsd:*:*) + echo hppa1.0-hp-bsd + exit 0 ;; + *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) + echo hppa1.0-hp-mpeix + exit 0 ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + echo hppa1.1-hp-osf + exit 0 ;; + hp8??:OSF1:*:*) + echo hppa1.0-hp-osf + exit 0 ;; + i*86:OSF1:*:*) + if [ -x /usr/sbin/sysversion ] ; then + echo ${UNAME_MACHINE}-unknown-osf1mk + else + echo ${UNAME_MACHINE}-unknown-osf1 + fi + exit 0 ;; + parisc*:Lites*:*:*) + echo hppa1.1-hp-lites + exit 0 ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd + exit 0 ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit 0 ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd + exit 0 ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd + exit 0 ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd + exit 0 ;; + CRAY*Y-MP:*:*:*) + echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; + 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 0 ;; + CRAY*TS:*:*:*) + echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; + CRAY*T3E:*:*:*) + echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; + CRAY*SV1:*:*:*) + echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; + *:UNICOS/mp:*:*) + echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; + 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 0 ;; + 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 0 ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} + exit 0 ;; + sparc*:BSD/OS:*:*) + echo sparc-unknown-bsdi${UNAME_RELEASE} + exit 0 ;; + *:BSD/OS:*:*) + echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + exit 0 ;; + *:FreeBSD:*:*) + echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit 0 ;; + i*:CYGWIN*:*) + echo ${UNAME_MACHINE}-pc-cygwin + exit 0 ;; + i*:MINGW*:*) + echo ${UNAME_MACHINE}-pc-mingw32 + exit 0 ;; + i*:PW*:*) + echo ${UNAME_MACHINE}-pc-pw32 + exit 0 ;; + x86:Interix*:[34]*) + echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//' + exit 0 ;; + [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) + echo i${UNAME_MACHINE}-pc-mks + exit 0 ;; + 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 0 ;; + i*:UWIN*:*) + echo ${UNAME_MACHINE}-pc-uwin + exit 0 ;; + p*:CYGWIN*:*) + echo powerpcle-unknown-cygwin + exit 0 ;; + prep*:SunOS:5.*:*) + echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + *:GNU:*:*) + # the GNU system + echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + exit 0 ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland + echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu + exit 0 ;; + i*86:Minix:*:*) + echo ${UNAME_MACHINE}-pc-minix + exit 0 ;; + arm*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + cris:Linux:*:*) + echo cris-axis-linux-gnu + exit 0 ;; + crisv32:Linux:*:*) + echo crisv32-axis-linux-gnu + exit 0 ;; + frv:Linux:*:*) + echo frv-unknown-linux-gnu + exit 0 ;; + ia64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + m32r*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + m68*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + mips:Linux:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #undef CPU + #undef mips + #undef mipsel + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + CPU=mipsel + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + CPU=mips + #else + CPU= + #endif + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` + test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 + ;; + mips64:Linux:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #undef CPU + #undef mips64 + #undef mips64el + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + CPU=mips64el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + CPU=mips64 + #else + CPU= + #endif + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` + test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 + ;; + ppc:Linux:*:*) + echo powerpc-unknown-linux-gnu + exit 0 ;; + ppc64:Linux:*:*) + echo powerpc64-unknown-linux-gnu + exit 0 ;; + 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 ld.so.1 >/dev/null + if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi + echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} + exit 0 ;; + 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-unknown-linux-gnu ;; + PA8*) echo hppa2.0-unknown-linux-gnu ;; + *) echo hppa-unknown-linux-gnu ;; + esac + exit 0 ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-gnu + exit 0 ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo ${UNAME_MACHINE}-ibm-linux + exit 0 ;; + sh64*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + sh*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + x86_64:Linux:*:*) + echo x86_64-unknown-linux-gnu + exit 0 ;; + i*86:Linux:*:*) + # The BFD linker knows what the default object file format is, so + # first see if it will tell us. cd to the root directory to prevent + # problems with other programs or directories called `ld' in the path. + # Set LC_ALL=C to ensure ld outputs messages in English. + ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ + | sed -ne '/supported targets:/!d + s/[ ][ ]*/ /g + s/.*supported targets: *// + s/ .*// + p'` + case "$ld_supported_targets" in + elf32-i386) + TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" + ;; + a.out-i386-linux) + echo "${UNAME_MACHINE}-pc-linux-gnuaout" + exit 0 ;; + coff-i386) + echo "${UNAME_MACHINE}-pc-linux-gnucoff" + exit 0 ;; + "") + # Either a pre-BFD a.out linker (linux-gnuoldld) or + # one that does not give us useful --help. + echo "${UNAME_MACHINE}-pc-linux-gnuoldld" + exit 0 ;; + esac + # Determine whether the default compiler is a.out or elf + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + #ifdef __ELF__ + # ifdef __GLIBC__ + # if __GLIBC__ >= 2 + LIBC=gnu + # else + LIBC=gnulibc1 + # endif + # else + LIBC=gnulibc1 + # endif + #else + #ifdef __INTEL_COMPILER + LIBC=gnu + #else + LIBC=gnuaout + #endif + #endif + #ifdef __dietlibc__ + LIBC=dietlibc + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` + test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0 + test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 + ;; + 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 0 ;; + 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 0 ;; + 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 0 ;; + i*86:XTS-300:*:STOP) + echo ${UNAME_MACHINE}-unknown-stop + exit 0 ;; + i*86:atheos:*:*) + echo ${UNAME_MACHINE}-unknown-atheos + exit 0 ;; + i*86:syllable:*:*) + echo ${UNAME_MACHINE}-pc-syllable + exit 0 ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) + echo i386-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + i*86:*DOS:*:*) + echo ${UNAME_MACHINE}-pc-msdosdjgpp + exit 0 ;; + 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 0 ;; + i*86:*:5:[78]*) + case `/bin/uname -X | grep "^Machine"` in + *486*) UNAME_MACHINE=i486 ;; + *Pentium) UNAME_MACHINE=i586 ;; + *Pent*|*Celeron) UNAME_MACHINE=i686 ;; + esac + echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + exit 0 ;; + 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 0 ;; + 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 i386. + echo i386-pc-msdosdjgpp + exit 0 ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 + exit 0 ;; + paragon:*:*:*) + echo i860-intel-osf1 + exit 0 ;; + 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-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 + fi + exit 0 ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + echo m68010-convergent-sysv + exit 0 ;; + mc68k:UNIX:SYSTEM5:3.51m) + echo m68k-convergent-sysv + exit 0 ;; + M680?0:D-NIX:5.3:*) + echo m68k-diab-dnix + exit 0 ;; + M68*:*:R3V[5678]*:*) + test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; + 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 0 + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && echo i486-ncr-sysv4 && exit 0 ;; + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + echo m68k-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + mc68030:UNIX_System_V:4.*:*) + echo m68k-atari-sysv4 + exit 0 ;; + TSUNAMI:LynxOS:2.*:*) + echo sparc-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + rs6000:LynxOS:2.*:*) + echo rs6000-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) + echo powerpc-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + SM[BE]S:UNIX_SV:*:*) + echo mips-dde-sysv${UNAME_RELEASE} + exit 0 ;; + RM*:ReliantUNIX-*:*:*) + echo mips-sni-sysv4 + exit 0 ;; + RM*:SINIX-*:*:*) + echo mips-sni-sysv4 + exit 0 ;; + *: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 0 ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says + echo i586-unisys-sysv4 + exit 0 ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes . + # How about differentiating between stratus architectures? -djm + echo hppa1.1-stratus-sysv4 + exit 0 ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + echo i860-stratus-sysv4 + exit 0 ;; + *:VOS:*:*) + # From Paul.Green@stratus.com. + echo hppa1.1-stratus-vos + exit 0 ;; + mc68*:A/UX:*:*) + echo m68k-apple-aux${UNAME_RELEASE} + exit 0 ;; + news*:NEWS-OS:6*:*) + echo mips-sony-newsos6 + exit 0 ;; + 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-unknown-sysv${UNAME_RELEASE} + fi + exit 0 ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + echo powerpc-be-beos + exit 0 ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + echo powerpc-apple-beos + exit 0 ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + echo i586-pc-beos + exit 0 ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux${UNAME_RELEASE} + exit 0 ;; + SX-5:SUPER-UX:*:*) + echo sx5-nec-superux${UNAME_RELEASE} + exit 0 ;; + SX-6:SUPER-UX:*:*) + echo sx6-nec-superux${UNAME_RELEASE} + exit 0 ;; + Power*:Rhapsody:*:*) + echo powerpc-apple-rhapsody${UNAME_RELEASE} + exit 0 ;; + *:Rhapsody:*:*) + echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} + exit 0 ;; + *:Darwin:*:*) + UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown + case $UNAME_PROCESSOR in + *86) UNAME_PROCESSOR=i686 ;; + unknown) UNAME_PROCESSOR=powerpc ;; + esac + echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} + exit 0 ;; + *: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 0 ;; + *:QNX:*:4*) + echo i386-pc-qnx + exit 0 ;; + NSR-?:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk${UNAME_RELEASE} + exit 0 ;; + *:NonStop-UX:*:*) + echo mips-compaq-nonstopux + exit 0 ;; + BS2000:POSIX*:*:*) + echo bs2000-siemens-sysv + exit 0 ;; + DS/*:UNIX_System_V:*:*) + echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} + exit 0 ;; + *: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}-unknown-plan9 + exit 0 ;; + *:TOPS-10:*:*) + echo pdp10-unknown-tops10 + exit 0 ;; + *:TENEX:*:*) + echo pdp10-unknown-tenex + exit 0 ;; + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) + echo pdp10-dec-tops20 + exit 0 ;; + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) + echo pdp10-xkl-tops20 + exit 0 ;; + *:TOPS-20:*:*) + echo pdp10-unknown-tops20 + exit 0 ;; + *:ITS:*:*) + echo pdp10-unknown-its + exit 0 ;; + SEI:*:*:SEIUX) + echo mips-sei-seiux${UNAME_RELEASE} + exit 0 ;; + *:DragonFly:*:*) + echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit 0 ;; + *:*VMS:*:*) + UNAME_MACHINE=`(uname -p) 2>/dev/null` + case "${UNAME_MACHINE}" in + A*) echo alpha-dec-vms && exit 0 ;; + I*) echo ia64-dec-vms && exit 0 ;; + V*) echo vax-dec-vms && exit 0 ;; + esac +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"); 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 && $dummy && exit 0 + +# Apollos put the system type in the environment. + +test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } + +# 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 0 ;; + c2*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit 0 ;; + c34*) + echo c34-convex-bsd + exit 0 ;; + c38*) + echo c38-convex-bsd + exit 0 ;; + c4*) + echo c4-convex-bsd + exit 0 ;; + 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: diff --git a/Branch-2.2/bacula/autoconf/config.h.in b/Branch-2.2/bacula/autoconf/config.h.in new file mode 100644 index 0000000000..994901cb3f --- /dev/null +++ b/Branch-2.2/bacula/autoconf/config.h.in @@ -0,0 +1,926 @@ +/* autoconf/config.h.in. Generated from autoconf/configure.in by autoheader. */ +/* ------------------------------------------------------------------------- */ +/* -- CONFIGURE SPECIFIED FEATURES -- */ +/* ------------------------------------------------------------------------- */ + +/* Define if you want to use MySQL as Catalog database */ +#undef USE_MYSQL_DB + +/* Define if you want SmartAlloc debug code enabled */ +#undef SMARTALLOC + +/* Define to `int' if doesn't define. */ +#undef daddr_t + +/* Define to `int' if doesn't define. */ +#undef major_t + +/* Define to `int' if doesn't define. */ +#undef minor_t + +/* Define to `int' if doesn't define. */ +#undef ssize_t + +/* Define if you want to use PostgreSQL */ +#undef HAVE_POSTGRESQL + +/* Define if you want to use MySQL */ +#undef HAVE_MYSQL + +/* Defined if MySQL thread safe library is present */ +#undef HAVE_THREAD_SAFE_MYSQL + +/* Define if you want to use embedded MySQL */ +#undef HAVE_EMBEDDED_MYSQL + +/* Define if you want to use SQLite */ +#undef HAVE_SQLITE + +/* Define if you want to use SQLite3 */ +#undef HAVE_SQLITE3 + +/* Define if you want to use Berkeley DB */ +#undef HAVE_BERKELEY_DB + +/* Define if you want to use mSQL */ +#undef HAVE_MSQL + +/* Define if you want to use iODBC */ +#undef HAVE_IODBC + +/* Define if you want to use unixODBC */ +#undef HAVE_UNIXODBC + +/* Define if you want to use Solid SQL Server */ +#undef HAVE_SOLID + +/* Define if you want to use OpenLink ODBC (Virtuoso) */ +#undef HAVE_VIRT + +/* Define if you want to use EasySoft ODBC */ +#undef HAVE_EASYSOFT + +/* Define if you want to use Interbase SQL Server */ +#undef HAVE_IBASE + +/* Define if you want to use Oracle 8 SQL Server */ +#undef HAVE_ORACLE8 + +/* Define if you want to use Oracle 7 SQL Server */ +#undef HAVE_ORACLE7 + + +/* ------------------------------------------------------------------------- */ +/* -- CONFIGURE DETECTED FEATURES -- */ +/* ------------------------------------------------------------------------- */ + +/* Define if you need function prototypes */ +#undef PROTOTYPES + +/* Define if you have XPointer typedef */ +#undef HAVE_XPOINTER + +/* Define if you have _GNU_SOURCE getpt() */ +#undef HAVE_GETPT + +/* Define if you have GCC */ +#undef HAVE_GCC + +/* Define if you have the Andrew File System. */ +#undef AFS + +/* Define If you want find -nouser and -nogroup to make tables of + used UIDs and GIDs at startup instead of using getpwuid or + getgrgid when needed. Speeds up -nouser and -nogroup unless you + are running NIS or Hesiod, which make password and group calls + very expensive. */ +#undef CACHE_IDS + +/* Define to use SVR4 statvfs to get filesystem type. */ +#undef FSTYPE_STATVFS + +/* Define to use SVR3.2 statfs to get filesystem type. */ +#undef FSTYPE_USG_STATFS + +/* Define to use AIX3 statfs to get filesystem type. */ +#undef FSTYPE_AIX_STATFS + +/* Define to use 4.3BSD getmntent to get filesystem type. */ +#undef FSTYPE_MNTENT + +/* Define to use 4.4BSD and OSF1 statfs to get filesystem type. */ +#undef FSTYPE_STATFS + +/* Define to use Ultrix getmnt to get filesystem type. */ +#undef FSTYPE_GETMNT + +/* Define to `unsigned long' if doesn't define. */ +#undef dev_t + +/* Define to `unsigned long' if doesn't define. */ +#undef ino_t + +/* Define to 1 if utime.h exists and declares struct utimbuf. */ +#undef HAVE_UTIME_H + +#if (HAVE_MYSQL||HAVE_POSTGRESQL||HAVE_MSQL||HAVE_IODBC||HAVE_UNIXODBC||HAVE_SOLID||HAVE_VIRT||HAVE_IBASE||HAVE_ORACLE8||HAVE_ORACLE7||HAVE_EASYSOFT) +#define HAVE_SQL +#endif + +/* Data types */ +#undef HAVE_U_INT +#undef HAVE_INTXX_T +#undef HAVE_U_INTXX_T +#undef HAVE_UINTXX_T +#undef HAVE_INT64_T +#undef HAVE_U_INT64_T +#undef HAVE_INTMAX_T +#undef HAVE_U_INTMAX_T + +/* Define if you want TCP Wrappers support */ +#undef HAVE_LIBWRAP + +/* Define if you have sys/bitypes.h */ +#undef HAVE_SYS_BITYPES_H + +/* Directory for PID files */ +#undef _PATH_BACULA_PIDDIR + +/* LOCALEDIR */ +#undef LOCALEDIR + +/* Define if you have zlib */ +#undef HAVE_LIBZ + +/* Define if you have libacl */ +#undef HAVE_ACL + +/* General libs */ +#undef LIBS + +/* File daemon specif libraries */ +#undef FDLIBS + +/* Path to Sendmail program */ +#undef SENDMAIL_PATH + +/* What kind of signals we have */ +#undef HAVE_POSIX_SIGNALS +#undef HAVE_BSD_SIGNALS +#undef HAVE_USG_SIGHOLD + +/* Operating systems */ +/* OSes */ +#undef HAVE_LINUX_OS +#undef HAVE_FREEBSD_OS +#undef HAVE_NETBSD_OS +#undef HAVE_OPENBSD_OS +#undef HAVE_BSDI_OS +#undef HAVE_HPUX_OS +#undef HAVE_SUN_OS +#undef HAVE_IRIX_OS +#undef HAVE_AIX_OS +#undef HAVE_SGI_OS +#undef HAVE_CYGWIN +#undef HAVE_OSF1_OS +#undef HAVE_DARWIN_OS + +/* Set to correct scanf value for long long int */ +#undef lld +#undef llu + +#undef HAVE_READLINE +#undef HAVE_PYTHON + +#undef HAVE_GMP + +#undef HAVE_CWEB + +#undef HAVE_FCHDIR + +#undef HAVE_GETOPT_LONG + +#undef HAVE_LIBSM + +/* Check for thread safe routines */ +#undef HAVE_LOCALTIME_R +#undef HAVE_READDIR_R +#undef HAVE_STRERROR_R +#undef HAVE_GETHOSTBYNAME_R + +#undef HAVE_STRTOLL +#undef HAVE_INET_PTON + +#undef HAVE_SOCKLEN_T + +#undef HAVE_OLD_SOCKOPT + +#undef HAVE_BIGENDIAN + +/* Defined if Gtk+-2.4 or greater is present */ +#undef HAVE_GTK_2_4 + +/* Needed on HP-UX/g++ systems to support long long ints (int64) */ +#undef _INCLUDE_LONGLONG + +/* Define to system config directory */ +#undef SYSCONFDIR + +/* Define if OPENSSL is available */ +#undef HAVE_OPENSSL + +/* Define if comm encryption should be enabled */ +#undef HAVE_TLS + +/* Define if data encryption should be enabled */ +#undef HAVE_CRYPTO + +/* Define the LOCALEDIR if a translation */ +#undef LOCALEDIR + +/* Define if language support is enabled */ +#undef ENABLE_NLS + + +/* 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 `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 + +/* Set if Bacula bat Qt4 GUI support enabled */ +#undef HAVE_BAT + +/* Set if DB batch insert code enabled */ +#undef HAVE_BATCH_FILE_INSERT + +/* 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 + +/* Set if Bacula conio support enabled */ +#undef HAVE_CONIO + +/* Define if encryption support should be enabled */ +#undef HAVE_CRYPTO + +/* Define to 1 if you have the header file. */ +#undef HAVE_CURSES_H + +/* Define if the GNU dcgettext() function is already present or preinstalled. + */ +#undef HAVE_DCGETTEXT + +/* 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 `_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, and it defines `DIR'. + */ +#undef HAVE_DIRENT_H + +/* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */ +#undef HAVE_DOPRNT + +/* Define to 1 if you have the `fchdir' function. */ +#undef HAVE_FCHDIR + +/* 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 have the `fseeko' function. */ +#undef HAVE_FSEEKO + +/* Define to 1 if you have the `fwprintf' function. */ +#undef HAVE_FWPRINTF + +/* Define to 1 if you have the `getcwd' function. */ +#undef HAVE_GETCWD + +/* 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 `getpagesize' function. */ +#undef HAVE_GETPAGESIZE + +/* Define to 1 if you have the `getpid' function. */ +#undef HAVE_GETPID + +/* 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 header file. */ +#undef HAVE_GRP_H + +/* Set if you have GTK 4.2 or greater loaded */ +#undef HAVE_GTK_2_4 + +/* Define 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 if you have the 'intmax_t' type in or . */ +#undef HAVE_INTMAX_T + +/* Define if exists and doesn't clash with . */ +#undef HAVE_INTTYPES_H + +/* Define if exists, doesn't clash with , and + declares uintmax_t. */ +#undef HAVE_INTTYPES_H_WITH_UINTMAX + +/* Whether to enable IPv6 support */ +#undef HAVE_IPV6 + +/* Define if you have and nl_langinfo(CODESET). */ +#undef HAVE_LANGINFO_CODESET + +/* 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 header file. */ +#undef HAVE_LIBC_H + +/* Define to 1 if you have the `inet' library (-linet). */ +#undef HAVE_LIBINET + +/* Define to 1 if you have the `nsl' library (-lnsl). */ +#undef HAVE_LIBNSL + +/* Define to 1 if you have the `resolv' library (-lresolv). */ +#undef HAVE_LIBRESOLV + +/* Define to 1 if you have the `socket' library (-lsocket). */ +#undef HAVE_LIBSOCKET + +/* 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 + +/* Set to enable libwraper support */ +#undef HAVE_LIBWRAP + +/* Define to 1 if you have the `xnet' library (-lxnet). */ +#undef HAVE_LIBXNET + +/* Define to 1 if you have the header file. */ +#undef HAVE_LIMITS_H + +/* 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 + +/* Define to 1 if you have the `lstat' function. */ +#undef HAVE_LSTAT + +/* Define to 1 if you have the header file. */ +#undef HAVE_MALLOC_H + +/* 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 + +/* 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 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 if OpenSSL library is available */ +#undef HAVE_OPENSSL + +/* Define if the OpenSSL library is export-contrained to 128bit ciphers */ +#undef HAVE_OPENSSL_EXPORT_LIBRARY + +/* 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 the `putenv' function. */ +#undef HAVE_PUTENV + +/* Define to 1 if you have the header file. */ +#undef HAVE_PWD_H + +/* Define to 1 if you have the `readdir_r' function. */ +#undef HAVE_READDIR_R + +/* Set to enable readline support */ +#undef HAVE_READLINE + +/* Define to 1 if you have the header file. */ +#undef HAVE_REGEX_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_RESOLV_H + +/* Define if sa_len field exists in struct sockaddr */ +#undef HAVE_SA_LEN + +/* Define to 1 if you have the `select' function. */ +#undef HAVE_SELECT + +/* 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 `setsid' function. */ +#undef HAVE_SETSID + +/* Define if the SHA-2 family of digest algorithms is available */ +#undef HAVE_SHA2 + +/* Define to 1 if you have the `signal' function. */ +#undef HAVE_SIGNAL + +/* Define to 1 if you have the `snprintf' function. */ +#undef HAVE_SNPRINTF + +/* 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 member of `struct stat'. */ +#undef HAVE_STRUCT_STAT_ST_BLKSIZE + +/* Define to 1 if `st_blocks' is member of `struct stat'. */ +#undef HAVE_STRUCT_STAT_ST_BLOCKS + +/* Define to 1 if `st_rdev' is member of `struct stat'. */ +#undef HAVE_STRUCT_STAT_ST_RDEV + +/* Define to 1 if `tm_zone' is 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 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, and it defines `DIR'. + */ +#undef HAVE_SYS_DIR_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_PARAM_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 + +/* Defines if your system have the sys/statvfs.h 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 `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 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 you have the `tsearch' function. */ +#undef HAVE_TSEARCH + +/* Defind 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 if you have the 'uintmax_t' type in or . */ +#undef HAVE_UINTMAX_T + +/* Define to 1 if you have the header file. */ +#undef HAVE_UNISTD_H + +/* Define if you have the 'unsigned long long' type. */ +#undef HAVE_UNSIGNED_LONG_LONG + +/* Set if utime.h exists */ +#undef HAVE_UTIME_H + +/* 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 + +/* 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 + +/* 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 version of this package. */ +#undef PACKAGE_VERSION + +/* Define if exists and defines unusable PRI* macros. */ +#undef PRI_MACROS_BROKEN + +/* 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 a `char', as computed by sizeof. */ +#undef SIZEOF_CHAR + +/* The size of a `int', as computed by sizeof. */ +#undef SIZEOF_INT + +/* The size of a `int *', as computed by sizeof. */ +#undef SIZEOF_INT_P + +/* The size of a `long int', as computed by sizeof. */ +#undef SIZEOF_LONG_INT + +/* The size of a `long long int', as computed by sizeof. */ +#undef SIZEOF_LONG_LONG_INT + +/* The size of a `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 + +/* Set 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 run-time. + 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 + +/* 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 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 + +/* Define to make fseeko etc. visible, on some hosts. */ +#undef _LARGEFILE_SOURCE + +/* Define for large files, on AIX-style hosts. */ +#undef _LARGE_FILES + +/* 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 `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' 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' 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 diff --git a/Branch-2.2/bacula/autoconf/config.h.in.save b/Branch-2.2/bacula/autoconf/config.h.in.save new file mode 100644 index 0000000000..994901cb3f --- /dev/null +++ b/Branch-2.2/bacula/autoconf/config.h.in.save @@ -0,0 +1,926 @@ +/* autoconf/config.h.in. Generated from autoconf/configure.in by autoheader. */ +/* ------------------------------------------------------------------------- */ +/* -- CONFIGURE SPECIFIED FEATURES -- */ +/* ------------------------------------------------------------------------- */ + +/* Define if you want to use MySQL as Catalog database */ +#undef USE_MYSQL_DB + +/* Define if you want SmartAlloc debug code enabled */ +#undef SMARTALLOC + +/* Define to `int' if doesn't define. */ +#undef daddr_t + +/* Define to `int' if doesn't define. */ +#undef major_t + +/* Define to `int' if doesn't define. */ +#undef minor_t + +/* Define to `int' if doesn't define. */ +#undef ssize_t + +/* Define if you want to use PostgreSQL */ +#undef HAVE_POSTGRESQL + +/* Define if you want to use MySQL */ +#undef HAVE_MYSQL + +/* Defined if MySQL thread safe library is present */ +#undef HAVE_THREAD_SAFE_MYSQL + +/* Define if you want to use embedded MySQL */ +#undef HAVE_EMBEDDED_MYSQL + +/* Define if you want to use SQLite */ +#undef HAVE_SQLITE + +/* Define if you want to use SQLite3 */ +#undef HAVE_SQLITE3 + +/* Define if you want to use Berkeley DB */ +#undef HAVE_BERKELEY_DB + +/* Define if you want to use mSQL */ +#undef HAVE_MSQL + +/* Define if you want to use iODBC */ +#undef HAVE_IODBC + +/* Define if you want to use unixODBC */ +#undef HAVE_UNIXODBC + +/* Define if you want to use Solid SQL Server */ +#undef HAVE_SOLID + +/* Define if you want to use OpenLink ODBC (Virtuoso) */ +#undef HAVE_VIRT + +/* Define if you want to use EasySoft ODBC */ +#undef HAVE_EASYSOFT + +/* Define if you want to use Interbase SQL Server */ +#undef HAVE_IBASE + +/* Define if you want to use Oracle 8 SQL Server */ +#undef HAVE_ORACLE8 + +/* Define if you want to use Oracle 7 SQL Server */ +#undef HAVE_ORACLE7 + + +/* ------------------------------------------------------------------------- */ +/* -- CONFIGURE DETECTED FEATURES -- */ +/* ------------------------------------------------------------------------- */ + +/* Define if you need function prototypes */ +#undef PROTOTYPES + +/* Define if you have XPointer typedef */ +#undef HAVE_XPOINTER + +/* Define if you have _GNU_SOURCE getpt() */ +#undef HAVE_GETPT + +/* Define if you have GCC */ +#undef HAVE_GCC + +/* Define if you have the Andrew File System. */ +#undef AFS + +/* Define If you want find -nouser and -nogroup to make tables of + used UIDs and GIDs at startup instead of using getpwuid or + getgrgid when needed. Speeds up -nouser and -nogroup unless you + are running NIS or Hesiod, which make password and group calls + very expensive. */ +#undef CACHE_IDS + +/* Define to use SVR4 statvfs to get filesystem type. */ +#undef FSTYPE_STATVFS + +/* Define to use SVR3.2 statfs to get filesystem type. */ +#undef FSTYPE_USG_STATFS + +/* Define to use AIX3 statfs to get filesystem type. */ +#undef FSTYPE_AIX_STATFS + +/* Define to use 4.3BSD getmntent to get filesystem type. */ +#undef FSTYPE_MNTENT + +/* Define to use 4.4BSD and OSF1 statfs to get filesystem type. */ +#undef FSTYPE_STATFS + +/* Define to use Ultrix getmnt to get filesystem type. */ +#undef FSTYPE_GETMNT + +/* Define to `unsigned long' if doesn't define. */ +#undef dev_t + +/* Define to `unsigned long' if doesn't define. */ +#undef ino_t + +/* Define to 1 if utime.h exists and declares struct utimbuf. */ +#undef HAVE_UTIME_H + +#if (HAVE_MYSQL||HAVE_POSTGRESQL||HAVE_MSQL||HAVE_IODBC||HAVE_UNIXODBC||HAVE_SOLID||HAVE_VIRT||HAVE_IBASE||HAVE_ORACLE8||HAVE_ORACLE7||HAVE_EASYSOFT) +#define HAVE_SQL +#endif + +/* Data types */ +#undef HAVE_U_INT +#undef HAVE_INTXX_T +#undef HAVE_U_INTXX_T +#undef HAVE_UINTXX_T +#undef HAVE_INT64_T +#undef HAVE_U_INT64_T +#undef HAVE_INTMAX_T +#undef HAVE_U_INTMAX_T + +/* Define if you want TCP Wrappers support */ +#undef HAVE_LIBWRAP + +/* Define if you have sys/bitypes.h */ +#undef HAVE_SYS_BITYPES_H + +/* Directory for PID files */ +#undef _PATH_BACULA_PIDDIR + +/* LOCALEDIR */ +#undef LOCALEDIR + +/* Define if you have zlib */ +#undef HAVE_LIBZ + +/* Define if you have libacl */ +#undef HAVE_ACL + +/* General libs */ +#undef LIBS + +/* File daemon specif libraries */ +#undef FDLIBS + +/* Path to Sendmail program */ +#undef SENDMAIL_PATH + +/* What kind of signals we have */ +#undef HAVE_POSIX_SIGNALS +#undef HAVE_BSD_SIGNALS +#undef HAVE_USG_SIGHOLD + +/* Operating systems */ +/* OSes */ +#undef HAVE_LINUX_OS +#undef HAVE_FREEBSD_OS +#undef HAVE_NETBSD_OS +#undef HAVE_OPENBSD_OS +#undef HAVE_BSDI_OS +#undef HAVE_HPUX_OS +#undef HAVE_SUN_OS +#undef HAVE_IRIX_OS +#undef HAVE_AIX_OS +#undef HAVE_SGI_OS +#undef HAVE_CYGWIN +#undef HAVE_OSF1_OS +#undef HAVE_DARWIN_OS + +/* Set to correct scanf value for long long int */ +#undef lld +#undef llu + +#undef HAVE_READLINE +#undef HAVE_PYTHON + +#undef HAVE_GMP + +#undef HAVE_CWEB + +#undef HAVE_FCHDIR + +#undef HAVE_GETOPT_LONG + +#undef HAVE_LIBSM + +/* Check for thread safe routines */ +#undef HAVE_LOCALTIME_R +#undef HAVE_READDIR_R +#undef HAVE_STRERROR_R +#undef HAVE_GETHOSTBYNAME_R + +#undef HAVE_STRTOLL +#undef HAVE_INET_PTON + +#undef HAVE_SOCKLEN_T + +#undef HAVE_OLD_SOCKOPT + +#undef HAVE_BIGENDIAN + +/* Defined if Gtk+-2.4 or greater is present */ +#undef HAVE_GTK_2_4 + +/* Needed on HP-UX/g++ systems to support long long ints (int64) */ +#undef _INCLUDE_LONGLONG + +/* Define to system config directory */ +#undef SYSCONFDIR + +/* Define if OPENSSL is available */ +#undef HAVE_OPENSSL + +/* Define if comm encryption should be enabled */ +#undef HAVE_TLS + +/* Define if data encryption should be enabled */ +#undef HAVE_CRYPTO + +/* Define the LOCALEDIR if a translation */ +#undef LOCALEDIR + +/* Define if language support is enabled */ +#undef ENABLE_NLS + + +/* 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 `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 + +/* Set if Bacula bat Qt4 GUI support enabled */ +#undef HAVE_BAT + +/* Set if DB batch insert code enabled */ +#undef HAVE_BATCH_FILE_INSERT + +/* 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 + +/* Set if Bacula conio support enabled */ +#undef HAVE_CONIO + +/* Define if encryption support should be enabled */ +#undef HAVE_CRYPTO + +/* Define to 1 if you have the header file. */ +#undef HAVE_CURSES_H + +/* Define if the GNU dcgettext() function is already present or preinstalled. + */ +#undef HAVE_DCGETTEXT + +/* 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 `_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, and it defines `DIR'. + */ +#undef HAVE_DIRENT_H + +/* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */ +#undef HAVE_DOPRNT + +/* Define to 1 if you have the `fchdir' function. */ +#undef HAVE_FCHDIR + +/* 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 have the `fseeko' function. */ +#undef HAVE_FSEEKO + +/* Define to 1 if you have the `fwprintf' function. */ +#undef HAVE_FWPRINTF + +/* Define to 1 if you have the `getcwd' function. */ +#undef HAVE_GETCWD + +/* 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 `getpagesize' function. */ +#undef HAVE_GETPAGESIZE + +/* Define to 1 if you have the `getpid' function. */ +#undef HAVE_GETPID + +/* 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 header file. */ +#undef HAVE_GRP_H + +/* Set if you have GTK 4.2 or greater loaded */ +#undef HAVE_GTK_2_4 + +/* Define 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 if you have the 'intmax_t' type in or . */ +#undef HAVE_INTMAX_T + +/* Define if exists and doesn't clash with . */ +#undef HAVE_INTTYPES_H + +/* Define if exists, doesn't clash with , and + declares uintmax_t. */ +#undef HAVE_INTTYPES_H_WITH_UINTMAX + +/* Whether to enable IPv6 support */ +#undef HAVE_IPV6 + +/* Define if you have and nl_langinfo(CODESET). */ +#undef HAVE_LANGINFO_CODESET + +/* 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 header file. */ +#undef HAVE_LIBC_H + +/* Define to 1 if you have the `inet' library (-linet). */ +#undef HAVE_LIBINET + +/* Define to 1 if you have the `nsl' library (-lnsl). */ +#undef HAVE_LIBNSL + +/* Define to 1 if you have the `resolv' library (-lresolv). */ +#undef HAVE_LIBRESOLV + +/* Define to 1 if you have the `socket' library (-lsocket). */ +#undef HAVE_LIBSOCKET + +/* 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 + +/* Set to enable libwraper support */ +#undef HAVE_LIBWRAP + +/* Define to 1 if you have the `xnet' library (-lxnet). */ +#undef HAVE_LIBXNET + +/* Define to 1 if you have the header file. */ +#undef HAVE_LIMITS_H + +/* 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 + +/* Define to 1 if you have the `lstat' function. */ +#undef HAVE_LSTAT + +/* Define to 1 if you have the header file. */ +#undef HAVE_MALLOC_H + +/* 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 + +/* 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 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 if OpenSSL library is available */ +#undef HAVE_OPENSSL + +/* Define if the OpenSSL library is export-contrained to 128bit ciphers */ +#undef HAVE_OPENSSL_EXPORT_LIBRARY + +/* 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 the `putenv' function. */ +#undef HAVE_PUTENV + +/* Define to 1 if you have the header file. */ +#undef HAVE_PWD_H + +/* Define to 1 if you have the `readdir_r' function. */ +#undef HAVE_READDIR_R + +/* Set to enable readline support */ +#undef HAVE_READLINE + +/* Define to 1 if you have the header file. */ +#undef HAVE_REGEX_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_RESOLV_H + +/* Define if sa_len field exists in struct sockaddr */ +#undef HAVE_SA_LEN + +/* Define to 1 if you have the `select' function. */ +#undef HAVE_SELECT + +/* 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 `setsid' function. */ +#undef HAVE_SETSID + +/* Define if the SHA-2 family of digest algorithms is available */ +#undef HAVE_SHA2 + +/* Define to 1 if you have the `signal' function. */ +#undef HAVE_SIGNAL + +/* Define to 1 if you have the `snprintf' function. */ +#undef HAVE_SNPRINTF + +/* 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 member of `struct stat'. */ +#undef HAVE_STRUCT_STAT_ST_BLKSIZE + +/* Define to 1 if `st_blocks' is member of `struct stat'. */ +#undef HAVE_STRUCT_STAT_ST_BLOCKS + +/* Define to 1 if `st_rdev' is member of `struct stat'. */ +#undef HAVE_STRUCT_STAT_ST_RDEV + +/* Define to 1 if `tm_zone' is 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 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, and it defines `DIR'. + */ +#undef HAVE_SYS_DIR_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_PARAM_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 + +/* Defines if your system have the sys/statvfs.h 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 `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 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 you have the `tsearch' function. */ +#undef HAVE_TSEARCH + +/* Defind 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 if you have the 'uintmax_t' type in or . */ +#undef HAVE_UINTMAX_T + +/* Define to 1 if you have the header file. */ +#undef HAVE_UNISTD_H + +/* Define if you have the 'unsigned long long' type. */ +#undef HAVE_UNSIGNED_LONG_LONG + +/* Set if utime.h exists */ +#undef HAVE_UTIME_H + +/* 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 + +/* 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 + +/* 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 version of this package. */ +#undef PACKAGE_VERSION + +/* Define if exists and defines unusable PRI* macros. */ +#undef PRI_MACROS_BROKEN + +/* 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 a `char', as computed by sizeof. */ +#undef SIZEOF_CHAR + +/* The size of a `int', as computed by sizeof. */ +#undef SIZEOF_INT + +/* The size of a `int *', as computed by sizeof. */ +#undef SIZEOF_INT_P + +/* The size of a `long int', as computed by sizeof. */ +#undef SIZEOF_LONG_INT + +/* The size of a `long long int', as computed by sizeof. */ +#undef SIZEOF_LONG_LONG_INT + +/* The size of a `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 + +/* Set 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 run-time. + 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 + +/* 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 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 + +/* Define to make fseeko etc. visible, on some hosts. */ +#undef _LARGEFILE_SOURCE + +/* Define for large files, on AIX-style hosts. */ +#undef _LARGE_FILES + +/* 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 `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' 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' 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 diff --git a/Branch-2.2/bacula/autoconf/config.log b/Branch-2.2/bacula/autoconf/config.log new file mode 100644 index 0000000000..fb9038e996 --- /dev/null +++ b/Branch-2.2/bacula/autoconf/config.log @@ -0,0 +1,3 @@ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + diff --git a/Branch-2.2/bacula/autoconf/config.rpath b/Branch-2.2/bacula/autoconf/config.rpath new file mode 100755 index 0000000000..3f1bef34a0 --- /dev/null +++ b/Branch-2.2/bacula/autoconf/config.rpath @@ -0,0 +1,571 @@ +#! /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-2005 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 M$VC, +# 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/'` + +cc_basename=`echo "$CC" | sed -e 's%^.*/%%'` + +# Code taken from libtool.m4's AC_LIBTOOL_PROG_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* | pw32* | os2*) + ;; + hpux9* | hpux10* | hpux11*) + wl='-Wl,' + ;; + irix5* | irix6* | nonstopux*) + wl='-Wl,' + ;; + newsos6) + ;; + linux*) + case $cc_basename in + icc* | ecc*) + wl='-Wl,' + ;; + pgcc | pgf77 | pgf90) + wl='-Wl,' + ;; + ccc*) + wl='-Wl,' + ;; + como) + wl='-lopt=' + ;; + esac + ;; + osf3* | osf4* | osf5*) + wl='-Wl,' + ;; + sco3.2v5*) + ;; + solaris*) + wl='-Wl,' + ;; + sunos4*) + wl='-Qoption ld ' + ;; + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + wl='-Wl,' + ;; + sysv4*MP*) + ;; + unicos*) + wl='-Wl,' + ;; + uts4*) + ;; + esac +fi + +# Code taken from libtool.m4's AC_LIBTOOL_PROG_LD_SHLIBS. + +hardcode_libdir_flag_spec= +hardcode_libdir_separator= +hardcode_direct=no +hardcode_minus_L=no + +case "$host_os" in + cygwin* | mingw* | pw32*) + # 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 + ;; + openbsd*) + with_gnu_ld=no + ;; +esac + +ld_shlibs=yes +if test "$with_gnu_ld" = yes; then + case "$host_os" in + aix3* | aix4* | aix5*) + # 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*) + # 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 + ;; + netbsd*) + ;; + solaris* | sysv5*) + 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 + ;; + sunos4*) + hardcode_direct=yes + ;; + linux*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + esac + if test "$ld_shlibs" = yes; then + # 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' + 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 + ;; + aix4* | aix5*) + 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].*|aix5*) + 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 + hardcode_direct=yes + 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*) + # 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* | kfreebsd*-gnu | 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* | hpux11*) + if test "$with_gnu_ld" = no; then + case "$host_cpu" in + hppa*64*) + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=no + ;; + ia64*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_direct=no + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + *) + 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 + ;; + 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*) + 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 + ;; + 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=: + ;; + sco3.2v5*) + ;; + 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.2uw2*) + hardcode_direct=yes + hardcode_minus_L=no + ;; + sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*) + ;; + sysv5*) + hardcode_libdir_flag_spec= + ;; + uts4*) + hardcode_libdir_flag_spec='-L$libdir' + ;; + *) + ld_shlibs=no + ;; + esac +fi + +# Check dynamic linker characteristics +# Code taken from libtool.m4's AC_LIBTOOL_SYS_DYNAMIC_LINKER. +libname_spec='lib$name' +case "$host_os" in + aix3*) + ;; + aix4* | aix5*) + ;; + amigaos*) + ;; + beos*) + ;; + bsdi[45]*) + ;; + cygwin* | mingw* | pw32*) + shrext=.dll + ;; + darwin* | rhapsody*) + shrext=.dylib + ;; + dgux*) + ;; + freebsd1*) + ;; + kfreebsd*-gnu) + ;; + freebsd*) + ;; + gnu*) + ;; + hpux9* | hpux10* | hpux11*) + case "$host_cpu" in + ia64*) + shrext=.so + ;; + hppa*64*) + shrext=.sl + ;; + *) + shrext=.sl + ;; + esac + ;; + irix5* | irix6* | nonstopux*) + 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*) + ;; + knetbsd*-gnu) + ;; + netbsd*) + ;; + newsos6) + ;; + nto-qnx*) + ;; + openbsd*) + ;; + os2*) + libname_spec='$name' + shrext=.dll + ;; + osf3* | osf4* | osf5*) + ;; + sco3.2v5*) + ;; + solaris*) + ;; + sunos4*) + ;; + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + ;; + sysv4*MP*) + ;; + uts4*) + ;; +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_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=/' <. Submit a context +# diff and a properly formatted ChangeLog entry. +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS + $0 [OPTION] ALIAS + +Canonicalize a configuration name. + +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.sub ($timestamp) + +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 +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 0 ;; + --version | -v ) + echo "$version" ; exit 0 ;; + --help | --h* | -h ) + echo "$usage"; exit 0 ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo $1 + exit 0;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; +esac + +# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). +# Here we must recognize all the valid KERNEL-OS combinations. +maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` +case $maybe_os in + nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \ + kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; + *) + basic_machine=`echo $1 | sed 's/-[^-]*$//'` + if [ $basic_machine != $1 ] + then os=`echo $1 | sed 's/.*-/-/'` + else os=; fi + ;; +esac + +### Let's recognize common machines as not being operating systems so +### that things like config.sub decstation-3100 work. We also +### recognize some manufacturers as not being operating systems, so we +### can provide default operating systems below. +case $os in + -sun*os*) + # Prevent following clause from handling this invalid input. + ;; + -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ + -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ + -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ + -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ + -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ + -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ + -apple | -axis | -knuth | -cray) + os= + basic_machine=$1 + ;; + -sim | -cisco | -oki | -wec | -winbond) + os= + basic_machine=$1 + ;; + -scout) + ;; + -wrs) + os=-vxworks + basic_machine=$1 + ;; + -chorusos*) + os=-chorusos + basic_machine=$1 + ;; + -chorusrdb) + os=-chorusrdb + basic_machine=$1 + ;; + -hiux*) + os=-hiuxwe2 + ;; + -sco5) + os=-sco3.2v5 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco4) + os=-sco3.2v4 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2.[4-9]*) + os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2v[4-9]*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco*) + os=-sco3.2v2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -udk*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -isc) + os=-isc2.2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -clix*) + basic_machine=clipper-intergraph + ;; + -isc*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -lynx*) + os=-lynxos + ;; + -ptx*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` + ;; + -windowsnt*) + os=`echo $os | sed -e 's/windowsnt/winnt/'` + ;; + -psos*) + os=-psos + ;; + -mint | -mint[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; +esac + +# Decode aliases for certain CPU-COMPANY combinations. +case $basic_machine in + # Recognize the basic CPU types without company name. + # Some are omitted here because they have special meanings below. + 1750a | 580 \ + | a29k \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | am33_2.0 \ + | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ + | c4x | clipper \ + | d10v | d30v | dlx | dsp16xx \ + | fr30 | frv \ + | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | i370 | i860 | i960 | ia64 \ + | ip2k | iq2000 \ + | m32r | m32rle | m68000 | m68k | m88k | mcore \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64el \ + | mips64vr | mips64vrel \ + | mips64orion | mips64orionel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ + | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipstx39 | mipstx39el \ + | mn10200 | mn10300 \ + | msp430 \ + | ns16k | ns32k \ + | openrisc | or32 \ + | pdp10 | pdp11 | pj | pjl \ + | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ + | pyramid \ + | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ + | sh64 | sh64le \ + | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv8 | sparcv9 | sparcv9b \ + | strongarm \ + | tahoe | thumb | tic4x | tic80 | tron \ + | v850 | v850e \ + | we32k \ + | x86 | xscale | xstormy16 | xtensa \ + | z8k) + basic_machine=$basic_machine-unknown + ;; + m6811 | m68hc11 | m6812 | m68hc12) + # Motorola 68HC11/12. + basic_machine=$basic_machine-unknown + os=-none + ;; + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) + ;; + + # We use `pc' rather than `unknown' + # because (1) that's what they normally are, and + # (2) the word "unknown" tends to confuse beginning users. + i*86 | x86_64) + basic_machine=$basic_machine-pc + ;; + # Object if more than one company name word. + *-*-*) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; + # Recognize the basic CPU types with company name. + 580-* \ + | a29k-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ + | avr-* \ + | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ + | clipper-* | craynv-* | cydra-* \ + | d10v-* | d30v-* | dlx-* \ + | elxsi-* \ + | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ + | h8300-* | h8500-* \ + | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ + | i*86-* | i860-* | i960-* | ia64-* \ + | ip2k-* | iq2000-* \ + | m32r-* | m32rle-* \ + | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ + | m88110-* | m88k-* | mcore-* \ + | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ + | mips16-* \ + | mips64-* | mips64el-* \ + | mips64vr-* | mips64vrel-* \ + | mips64orion-* | mips64orionel-* \ + | mips64vr4100-* | mips64vr4100el-* \ + | mips64vr4300-* | mips64vr4300el-* \ + | mips64vr5000-* | mips64vr5000el-* \ + | mipsisa32-* | mipsisa32el-* \ + | mipsisa32r2-* | mipsisa32r2el-* \ + | mipsisa64-* | mipsisa64el-* \ + | mipsisa64r2-* | mipsisa64r2el-* \ + | mipsisa64sb1-* | mipsisa64sb1el-* \ + | mipsisa64sr71k-* | mipsisa64sr71kel-* \ + | mipstx39-* | mipstx39el-* \ + | mmix-* \ + | msp430-* \ + | none-* | np1-* | ns16k-* | ns32k-* \ + | orion-* \ + | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ + | pyramid-* \ + | romp-* | rs6000-* \ + | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ + | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ + | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ + | tahoe-* | thumb-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tron-* \ + | v850-* | v850e-* | vax-* \ + | we32k-* \ + | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \ + | xtensa-* \ + | ymp-* \ + | z8k-*) + ;; + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 386bsd) + basic_machine=i386-unknown + os=-bsd + ;; + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + basic_machine=m68000-att + ;; + 3b*) + basic_machine=we32k-att + ;; + a29khif) + basic_machine=a29k-amd + os=-udi + ;; + abacus) + basic_machine=abacus-unknown + ;; + adobe68k) + basic_machine=m68010-adobe + os=-scout + ;; + alliant | fx80) + basic_machine=fx80-alliant + ;; + altos | altos3068) + basic_machine=m68k-altos + ;; + am29k) + basic_machine=a29k-none + os=-bsd + ;; + amd64) + basic_machine=x86_64-pc + ;; + amd64-*) + basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + amdahl) + basic_machine=580-amdahl + os=-sysv + ;; + amiga | amiga-*) + basic_machine=m68k-unknown + ;; + amigaos | amigados) + basic_machine=m68k-unknown + os=-amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + os=-sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + os=-sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + os=-bsd + ;; + aux) + basic_machine=m68k-apple + os=-aux + ;; + balance) + basic_machine=ns32k-sequent + os=-dynix + ;; + c90) + basic_machine=c90-cray + os=-unicos + ;; + convex-c1) + basic_machine=c1-convex + os=-bsd + ;; + convex-c2) + basic_machine=c2-convex + os=-bsd + ;; + convex-c32) + basic_machine=c32-convex + os=-bsd + ;; + convex-c34) + basic_machine=c34-convex + os=-bsd + ;; + convex-c38) + basic_machine=c38-convex + os=-bsd + ;; + cray | j90) + basic_machine=j90-cray + os=-unicos + ;; + craynv) + basic_machine=craynv-cray + os=-unicosmp + ;; + cr16c) + basic_machine=cr16c-unknown + os=-elf + ;; + crds | unos) + basic_machine=m68k-crds + ;; + crisv32 | crisv32-* | etraxfs*) + basic_machine=crisv32-axis + ;; + cris | cris-* | etrax*) + basic_machine=cris-axis + ;; + crx) + basic_machine=crx-unknown + os=-elf + ;; + da30 | da30-*) + basic_machine=m68k-da30 + ;; + decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) + basic_machine=mips-dec + ;; + decsystem10* | dec10*) + basic_machine=pdp10-dec + os=-tops10 + ;; + decsystem20* | dec20*) + basic_machine=pdp10-dec + os=-tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + basic_machine=m68k-motorola + ;; + delta88) + basic_machine=m88k-motorola + os=-sysv3 + ;; + dpx20 | dpx20-*) + basic_machine=rs6000-bull + os=-bosx + ;; + dpx2* | dpx2*-bull) + basic_machine=m68k-bull + os=-sysv3 + ;; + ebmon29k) + basic_machine=a29k-amd + os=-ebmon + ;; + elxsi) + basic_machine=elxsi-elxsi + os=-bsd + ;; + encore | umax | mmax) + basic_machine=ns32k-encore + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + os=-ose + ;; + fx2800) + basic_machine=i860-alliant + ;; + genix) + basic_machine=ns32k-ns + ;; + gmicro) + basic_machine=tron-gmicro + os=-sysv + ;; + go32) + basic_machine=i386-pc + os=-go32 + ;; + h3050r* | hiux*) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + h8300hms) + basic_machine=h8300-hitachi + os=-hms + ;; + h8300xray) + basic_machine=h8300-hitachi + os=-xray + ;; + h8500hms) + basic_machine=h8500-hitachi + os=-hms + ;; + harris) + basic_machine=m88k-harris + os=-sysv3 + ;; + hp300-*) + basic_machine=m68k-hp + ;; + hp300bsd) + basic_machine=m68k-hp + os=-bsd + ;; + hp300hpux) + basic_machine=m68k-hp + os=-hpux + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + basic_machine=m68000-hp + ;; + hp9k3[2-9][0-9]) + basic_machine=m68k-hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + basic_machine=hppa1.1-hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hppa-next) + os=-nextstep3 + ;; + hppaosf) + basic_machine=hppa1.1-hp + os=-osf + ;; + hppro) + basic_machine=hppa1.1-hp + os=-proelf + ;; + i370-ibm* | ibm*) + basic_machine=i370-ibm + ;; +# I'm not sure what "Sysv32" means. Should this be sysv3.2? + i*86v32) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv32 + ;; + i*86v4*) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv4 + ;; + i*86v) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv + ;; + i*86sol2) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-solaris2 + ;; + i386mach) + basic_machine=i386-mach + os=-mach + ;; + i386-vsta | vsta) + basic_machine=i386-unknown + os=-vsta + ;; + iris | iris4d) + basic_machine=mips-sgi + case $os in + -irix*) + ;; + *) + os=-irix4 + ;; + esac + ;; + isi68 | isi) + basic_machine=m68k-isi + os=-sysv + ;; + m88k-omron*) + basic_machine=m88k-omron + ;; + magnum | m3230) + basic_machine=mips-mips + os=-sysv + ;; + merlin) + basic_machine=ns32k-utek + os=-sysv + ;; + mingw32) + basic_machine=i386-pc + os=-mingw32 + ;; + miniframe) + basic_machine=m68000-convergent + ;; + *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; + mips3*-*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` + ;; + mips3*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown + ;; + monitor) + basic_machine=m68k-rom68k + os=-coff + ;; + morphos) + basic_machine=powerpc-unknown + os=-morphos + ;; + msdos) + basic_machine=i386-pc + os=-msdos + ;; + mvs) + basic_machine=i370-ibm + os=-mvs + ;; + ncr3000) + basic_machine=i486-ncr + os=-sysv4 + ;; + netbsd386) + basic_machine=i386-unknown + os=-netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + os=-linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + os=-newsos + ;; + news1000) + basic_machine=m68030-sony + os=-newsos + ;; + news-3600 | risc-news) + basic_machine=mips-sony + os=-newsos + ;; + necv70) + basic_machine=v70-nec + os=-sysv + ;; + next | m*-next ) + basic_machine=m68k-next + case $os in + -nextstep* ) + ;; + -ns2*) + os=-nextstep2 + ;; + *) + os=-nextstep3 + ;; + esac + ;; + nh3000) + basic_machine=m68k-harris + os=-cxux + ;; + nh[45]000) + basic_machine=m88k-harris + os=-cxux + ;; + nindy960) + basic_machine=i960-intel + os=-nindy + ;; + mon960) + basic_machine=i960-intel + os=-mon960 + ;; + nonstopux) + basic_machine=mips-compaq + os=-nonstopux + ;; + np1) + basic_machine=np1-gould + ;; + nsr-tandem) + basic_machine=nsr-tandem + ;; + op50n-* | op60c-*) + basic_machine=hppa1.1-oki + os=-proelf + ;; + or32 | or32-*) + basic_machine=or32-unknown + os=-coff + ;; + os400) + basic_machine=powerpc-ibm + os=-os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + os=-ose + ;; + os68k) + basic_machine=m68k-none + os=-os68k + ;; + pa-hitachi) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + paragon) + basic_machine=i860-intel + os=-osf + ;; + pbd) + basic_machine=sparc-tti + ;; + pbb) + basic_machine=m68k-tti + ;; + pc532 | pc532-*) + basic_machine=ns32k-pc532 + ;; + pentium | p5 | k5 | k6 | nexgen | viac3) + basic_machine=i586-pc + ;; + pentiumpro | p6 | 6x86 | athlon | athlon_*) + basic_machine=i686-pc + ;; + pentiumii | pentium2 | pentiumiii | pentium3) + basic_machine=i686-pc + ;; + pentium4) + basic_machine=i786-pc + ;; + pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) + basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumpro-* | p6-* | 6x86-* | athlon-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium4-*) + basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pn) + basic_machine=pn-gould + ;; + power) basic_machine=power-ibm + ;; + ppc) basic_machine=powerpc-unknown + ;; + ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppcle | powerpclittle | ppc-le | powerpc-little) + basic_machine=powerpcle-unknown + ;; + ppcle-* | powerpclittle-*) + basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64) basic_machine=powerpc64-unknown + ;; + ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64le | powerpc64little | ppc64-le | powerpc64-little) + basic_machine=powerpc64le-unknown + ;; + ppc64le-* | powerpc64little-*) + basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ps2) + basic_machine=i386-ibm + ;; + pw32) + basic_machine=i586-unknown + os=-pw32 + ;; + rom68k) + basic_machine=m68k-rom68k + os=-coff + ;; + rm[46]00) + basic_machine=mips-siemens + ;; + rtpc | rtpc-*) + basic_machine=romp-ibm + ;; + s390 | s390-*) + basic_machine=s390-ibm + ;; + s390x | s390x-*) + basic_machine=s390x-ibm + ;; + sa29200) + basic_machine=a29k-amd + os=-udi + ;; + sb1) + basic_machine=mipsisa64sb1-unknown + ;; + sb1el) + basic_machine=mipsisa64sb1el-unknown + ;; + sei) + basic_machine=mips-sei + os=-seiux + ;; + sequent) + basic_machine=i386-sequent + ;; + sh) + basic_machine=sh-hitachi + os=-hms + ;; + sh64) + basic_machine=sh64-unknown + ;; + sparclite-wrs | simso-wrs) + basic_machine=sparclite-wrs + os=-vxworks + ;; + sps7) + basic_machine=m68k-bull + os=-sysv2 + ;; + spur) + basic_machine=spur-unknown + ;; + st2000) + basic_machine=m68k-tandem + ;; + stratus) + basic_machine=i860-stratus + os=-sysv4 + ;; + sun2) + basic_machine=m68000-sun + ;; + sun2os3) + basic_machine=m68000-sun + os=-sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + os=-sunos4 + ;; + sun3os3) + basic_machine=m68k-sun + os=-sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + os=-sunos4 + ;; + sun4os3) + basic_machine=sparc-sun + os=-sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + os=-sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + os=-solaris2 + ;; + sun3 | sun3-*) + basic_machine=m68k-sun + ;; + sun4) + basic_machine=sparc-sun + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + ;; + sv1) + basic_machine=sv1-cray + os=-unicos + ;; + symmetry) + basic_machine=i386-sequent + os=-dynix + ;; + t3e) + basic_machine=alphaev5-cray + os=-unicos + ;; + t90) + basic_machine=t90-cray + os=-unicos + ;; + tic54x | c54x*) + basic_machine=tic54x-unknown + os=-coff + ;; + tic55x | c55x*) + basic_machine=tic55x-unknown + os=-coff + ;; + tic6x | c6x*) + basic_machine=tic6x-unknown + os=-coff + ;; + tx39) + basic_machine=mipstx39-unknown + ;; + tx39el) + basic_machine=mipstx39el-unknown + ;; + toad1) + basic_machine=pdp10-xkl + os=-tops20 + ;; + tower | tower-32) + basic_machine=m68k-ncr + ;; + tpf) + basic_machine=s390x-ibm + os=-tpf + ;; + udi29k) + basic_machine=a29k-amd + os=-udi + ;; + ultra3) + basic_machine=a29k-nyu + os=-sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + os=-none + ;; + vaxv) + basic_machine=vax-dec + os=-sysv + ;; + vms) + basic_machine=vax-dec + os=-vms + ;; + vpp*|vx|vx-*) + basic_machine=f301-fujitsu + ;; + vxworks960) + basic_machine=i960-wrs + os=-vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + os=-vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + os=-vxworks + ;; + w65*) + basic_machine=w65-wdc + os=-none + ;; + w89k-*) + basic_machine=hppa1.1-winbond + os=-proelf + ;; + xps | xps100) + basic_machine=xps100-honeywell + ;; + ymp) + basic_machine=ymp-cray + os=-unicos + ;; + z8k-*-coff) + basic_machine=z8k-unknown + os=-sim + ;; + none) + basic_machine=none-none + os=-none + ;; + +# Here we handle the default manufacturer of certain CPU types. It is in +# some cases the only manufacturer, in others, it is the most popular. + w89k) + basic_machine=hppa1.1-winbond + ;; + op50n) + basic_machine=hppa1.1-oki + ;; + op60c) + basic_machine=hppa1.1-oki + ;; + romp) + basic_machine=romp-ibm + ;; + mmix) + basic_machine=mmix-knuth + ;; + rs6000) + basic_machine=rs6000-ibm + ;; + vax) + basic_machine=vax-dec + ;; + pdp10) + # there are many clones, so DEC is not a safe bet + basic_machine=pdp10-unknown + ;; + pdp11) + basic_machine=pdp11-dec + ;; + we32k) + basic_machine=we32k-att + ;; + sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele) + basic_machine=sh-unknown + ;; + sh64) + basic_machine=sh64-unknown + ;; + sparc | sparcv8 | sparcv9 | sparcv9b) + basic_machine=sparc-sun + ;; + cydra) + basic_machine=cydra-cydrome + ;; + orion) + basic_machine=orion-highlevel + ;; + orion105) + basic_machine=clipper-highlevel + ;; + mac | mpw | mac-mpw) + basic_machine=m68k-apple + ;; + pmac | pmac-mpw) + basic_machine=powerpc-apple + ;; + *-unknown) + # Make sure to match an already-canonicalized machine name. + ;; + *) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $basic_machine in + *-digital*) + basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` + ;; + *-commodore*) + basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if [ x"$os" != x"" ] +then +case $os in + # First match some system type aliases + # that might get confused with valid system types. + # -solaris* is a basic system type, with this one exception. + -solaris1 | -solaris1.*) + os=`echo $os | sed -e 's|solaris1|sunos4|'` + ;; + -solaris) + os=-solaris2 + ;; + -svr4*) + os=-sysv4 + ;; + -unixware*) + os=-sysv4.2uw + ;; + -gnu/linux*) + os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` + ;; + # First accept the basic system types. + # The portable systems comes first. + # Each alternative MUST END IN A *, to match a version number. + # -sysv* is not here because it comes later, after sysvr4. + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \ + | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ + | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -chorusos* | -chorusrdb* \ + | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -mingw32* | -linux-gnu* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ + | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ + | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ + | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ + | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; + -qnx*) + case $basic_machine in + x86-* | i*86-*) + ;; + *) + os=-nto$os + ;; + esac + ;; + -nto-qnx*) + ;; + -nto*) + os=`echo $os | sed -e 's|nto|nto-qnx|'` + ;; + -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ + | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ + | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) + ;; + -mac*) + os=`echo $os | sed -e 's|mac|macos|'` + ;; + -linux-dietlibc) + os=-linux-dietlibc + ;; + -linux*) + os=`echo $os | sed -e 's|linux|linux-gnu|'` + ;; + -sunos5*) + os=`echo $os | sed -e 's|sunos5|solaris2|'` + ;; + -sunos6*) + os=`echo $os | sed -e 's|sunos6|solaris3|'` + ;; + -opened*) + os=-openedition + ;; + -os400*) + os=-os400 + ;; + -wince*) + os=-wince + ;; + -osfrose*) + os=-osfrose + ;; + -osf*) + os=-osf + ;; + -utek*) + os=-bsd + ;; + -dynix*) + os=-bsd + ;; + -acis*) + os=-aos + ;; + -atheos*) + os=-atheos + ;; + -syllable*) + os=-syllable + ;; + -386bsd) + os=-bsd + ;; + -ctix* | -uts*) + os=-sysv + ;; + -nova*) + os=-rtmk-nova + ;; + -ns2 ) + os=-nextstep2 + ;; + -nsk*) + os=-nsk + ;; + # Preserve the version number of sinix5. + -sinix5.*) + os=`echo $os | sed -e 's|sinix|sysv|'` + ;; + -sinix*) + os=-sysv4 + ;; + -tpf*) + os=-tpf + ;; + -triton*) + os=-sysv3 + ;; + -oss*) + os=-sysv3 + ;; + -svr4) + os=-sysv4 + ;; + -svr3) + os=-sysv3 + ;; + -sysvr4) + os=-sysv4 + ;; + # This must come after -sysvr4. + -sysv*) + ;; + -ose*) + os=-ose + ;; + -es1800*) + os=-ose + ;; + -xenix) + os=-xenix + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + os=-mint + ;; + -aros*) + os=-aros + ;; + -kaos*) + os=-kaos + ;; + -none) + ;; + *) + # Get rid of the `-' at the beginning of $os. + os=`echo $os | sed 's/[^-]*-//'` + echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 + exit 1 + ;; +esac +else + +# Here we handle the default operating systems that come with various machines. +# The value should be what the vendor currently ships out the door with their +# machine or put another way, the most popular os provided with the machine. + +# Note that if you're going to try to match "-MANUFACTURER" here (say, +# "-sun"), then you have to tell the case statement up towards the top +# that MANUFACTURER isn't an operating system. Otherwise, code above +# will signal an error saying that MANUFACTURER isn't an operating +# system, and we'll never get to this point. + +case $basic_machine in + *-acorn) + os=-riscix1.2 + ;; + arm*-rebel) + os=-linux + ;; + arm*-semi) + os=-aout + ;; + c4x-* | tic4x-*) + os=-coff + ;; + # This must come before the *-dec entry. + pdp10-*) + os=-tops20 + ;; + pdp11-*) + os=-none + ;; + *-dec | vax-*) + os=-ultrix4.2 + ;; + m68*-apollo) + os=-domain + ;; + i386-sun) + os=-sunos4.0.2 + ;; + m68000-sun) + os=-sunos3 + # This also exists in the configure program, but was not the + # default. + # os=-sunos4 + ;; + m68*-cisco) + os=-aout + ;; + mips*-cisco) + os=-elf + ;; + mips*-*) + os=-elf + ;; + or32-*) + os=-coff + ;; + *-tti) # must be before sparc entry or we get the wrong os. + os=-sysv3 + ;; + sparc-* | *-sun) + os=-sunos4.1.1 + ;; + *-be) + os=-beos + ;; + *-ibm) + os=-aix + ;; + *-knuth) + os=-mmixware + ;; + *-wec) + os=-proelf + ;; + *-winbond) + os=-proelf + ;; + *-oki) + os=-proelf + ;; + *-hp) + os=-hpux + ;; + *-hitachi) + os=-hiux + ;; + i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) + os=-sysv + ;; + *-cbm) + os=-amigaos + ;; + *-dg) + os=-dgux + ;; + *-dolphin) + os=-sysv3 + ;; + m68k-ccur) + os=-rtu + ;; + m88k-omron*) + os=-luna + ;; + *-next ) + os=-nextstep + ;; + *-sequent) + os=-ptx + ;; + *-crds) + os=-unos + ;; + *-ns) + os=-genix + ;; + i370-*) + os=-mvs + ;; + *-next) + os=-nextstep3 + ;; + *-gould) + os=-sysv + ;; + *-highlevel) + os=-bsd + ;; + *-encore) + os=-bsd + ;; + *-sgi) + os=-irix + ;; + *-siemens) + os=-sysv4 + ;; + *-masscomp) + os=-rtu + ;; + f30[01]-fujitsu | f700-fujitsu) + os=-uxpv + ;; + *-rom68k) + os=-coff + ;; + *-*bug) + os=-coff + ;; + *-apple) + os=-macos + ;; + *-atari*) + os=-mint + ;; + *) + os=-none + ;; +esac +fi + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +vendor=unknown +case $basic_machine in + *-unknown) + case $os in + -riscix*) + vendor=acorn + ;; + -sunos*) + vendor=sun + ;; + -aix*) + vendor=ibm + ;; + -beos*) + vendor=be + ;; + -hpux*) + vendor=hp + ;; + -mpeix*) + vendor=hp + ;; + -hiux*) + vendor=hitachi + ;; + -unos*) + vendor=crds + ;; + -dgux*) + vendor=dg + ;; + -luna*) + vendor=omron + ;; + -genix*) + vendor=ns + ;; + -mvs* | -opened*) + vendor=ibm + ;; + -os400*) + vendor=ibm + ;; + -ptx*) + vendor=sequent + ;; + -tpf*) + vendor=ibm + ;; + -vxsim* | -vxworks* | -windiss*) + vendor=wrs + ;; + -aux*) + vendor=apple + ;; + -hms*) + vendor=hitachi + ;; + -mpw* | -macos*) + vendor=apple + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + vendor=atari + ;; + -vos*) + vendor=stratus + ;; + esac + basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + ;; +esac + +echo $basic_machine$os +exit 0 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/Branch-2.2/bacula/autoconf/configure.in b/Branch-2.2/bacula/autoconf/configure.in new file mode 100644 index 0000000000..926a6ed2cb --- /dev/null +++ b/Branch-2.2/bacula/autoconf/configure.in @@ -0,0 +1,2415 @@ +lal# +dnl# +dnl# Process this file with autoconf to produce a configure script. +dnl# +AC_INIT(src/version.h) +BUILD_DIR=`pwd` +cd .. +TOP_DIR=`pwd` +cd ${BUILD_DIR} +AC_SUBST(BUILD_DIR) +AC_SUBST(TOP_DIR) +AC_CONFIG_AUX_DIR(${BUILD_DIR}/autoconf) +AC_CONFIG_HEADER(src/config.h:autoconf/config.h.in) + +dnl require a recent autoconf +AC_PREREQ(2.59) + + +dnl search for true and false programs. +AC_PATH_PROGS(TRUEPRG, true, :) +AC_PATH_PROGS(FALSEPRG, false, :) + + +dnl bacula version +VERSION=`sed -n -e 's/^.*VERSION.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h` +DATE=`sed -n -e 's/^.*[ \t]*BDATE.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h` +LSMDATE=`sed -n -e 's/^.*LSMDATE.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h` +AC_SUBST(VERSION)dnl +AC_SUBST(DATE)dnl +AC_SUBST(LSMDATE)dnl +echo "configuring for bacula $VERSION ($DATE)" + + +dnl ------------------------------------------------------- +dnl# Check for compiler. +dnl ------------------------------------------------------ + +AC_PROG_CC +AC_PROG_CXX +AC_PROG_CC_C_O dnl Determine if C compiler support -c -o. +AC_PROG_GCC_TRADITIONAL dnl Determine if ioctl() need -traditional. + +BASECC=`basename $CC` +have_gcc=no +if test "x$BASECC" = xgcc; then + AC_DEFINE(HAVE_GCC) + have_gcc=yes +fi +AC_PATH_PROG(CXX, $CXX, $CXX) +if test ! -e $CXX; then + AC_MSG_ERROR(Unable to find C++ compiler) +fi + +dnl ------------------------------------------------------- +dnl# Check for programs. +dnl ------------------------------------------------------ +AC_PROG_INSTALL +AC_PROG_RANLIB +AC_PATH_PROG(MV, mv, mv) +AC_PATH_PROG(RM, rm, rm) +AC_PATH_PROG(CP, cp, cp) +AC_PATH_PROG(SED, sed, sed) +AC_PATH_PROG(ECHO, echo, echo) +AC_PATH_PROG(CMP, cmp, cmp) +AC_PATH_PROG(TBL, tbl, tbl) +AC_PATH_PROG(AR, ar, ar) +dnl AC_PATH_PROG(RANLIB, ranlib, ranlib) +AC_PATH_PROG(OPENSSL, openssl, none) +AC_PATH_PROG(MTX, mtx, mtx) +AC_PATH_PROG(DD, dd, dd) +AC_PATH_PROG(MKISOFS, mkisofs, mkisofs) +AC_PATH_PROG(PYTHON, python, python) +AC_PATH_PROG(GROWISOFS, growisofs, growisofs) +AC_PATH_PROG(DVDRWMEDIAINFO, dvd+rw-mediainfo, dvd+rw-mediainfo) +AC_PATH_PROG(DVDRWFORMAT, dvd+rw-format, dvd+rw-format) +AC_PATH_PROG(PKGCONFIG, pkg-config, pkg-config) +AC_PATH_PROG(QMAKE, qmake, none) +AC_PATH_PROG(QMAKEQT4, qmake-qt4, none) +AC_ARG_VAR(WXCONFIG, [wx-config command. On some systems, you must set it to wx-config-2.6 to use wxWidgets 2.6.]) +if test "x$WXCONFIG" = x; then + WXCONFIG=wx-config +fi +AC_PATH_PROG(WXCONFIG, ${WXCONFIG}, ${WXCONFIG}) +AC_ARG_VAR(WXFLAGS, [Parameters to pass to wx-config (e.g. --unicode=no).]) +AC_PATH_PROG(CDRECORD, cdrecord, cdrecord) +AC_PATH_PROG(PIDOF, pidof, pidof) +AC_PROG_AWK +# Some AWK programs fail, so test it and warn the user +if echo xfoo | $AWK 'BEGIN { prog=ARGV[1]; ARGC=1 } + { if ((prog == $2) || (("(" prog ")") == $2) || + (("[" prog "]") == $2) || + ((prog ":") == $2)) { print $1 ; exit 0 } }' xfoo>/dev/null; then :; +else + AC_MSG_ERROR([!!!!!!!!! WARNING !!!!!!!!!!!!!! + The regex engine of $AWK is too broken to be used you + might want to install GNU AWK. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!]) +fi +THE_AWK=$AWK +AC_PATH_PROG(AWK, $THE_AWK, $THE_AWK) + + +test -n "$ARFLAG" || ARFLAGS="cr" +AC_SUBST(ARFLAGS) + +MAKE_SHELL=/bin/sh +AC_SUBST(MAKE_SHELL) + +AC_SUBST(LOCAL_LIBS) +AC_SUBST(LOCAL_CFLAGS) +AC_SUBST(LOCAL_LDFLAGS) +AC_SUBST(LOCAL_DEFS) + +dnl -------------------------------------------------- +dnl Bacula OP Sys determination (see aclocal.m4) +dnl -------------------------------------------------- +BA_CHECK_OPSYS + +# ----------------------------------------------------------- +dnl Bacula OPSys Distribution determination (see aclocal.m4) +# ---------------------------------------------------------- +BA_CHECK_OPSYS_DISTNAME + +# -------------------------------------------------- +# Suppport for gettext (translations) +# By default, $datadir is ${prefix}/share +# -------------------------------------------------- +AM_GNU_GETTEXT([external]) +if test x${prefix} = xNONE ; then + if test `eval echo ${datadir}` = NONE/share ; then + datadir=/usr/share + fi +fi + +# ------------------------------------------------------------------ +# If the user has not set --prefix, we set our default to nothing. +# In this case, if the user has not set --sysconfdir, we set it +# to the package default of /etc/bacula. If either --prefix or +# --sysconfdir is set, we leave sysconfdir alone except to eval it. +# ------------------------------------------------------------------ +if test x${prefix} = xNONE ; then + if test `eval echo ${sysconfdir}` = NONE/etc ; then + sysconfdir=/etc/bacula + fi + prefix= +fi +sysconfdir=`eval echo ${sysconfdir}` +datadir=`eval echo ${datadir}` +localedir=`eval echo ${datadir}/locale` +AC_DEFINE_UNQUOTED(LOCALEDIR, "$localedir") +AC_DEFINE_UNQUOTED(SYSCONFDIR, "$sysconfdir") + +# ------------------------------------------------------------------------- +# If the user has not set --exec-prefix, we default to ${prefix} +# ------------------------------------------------------------------------- +if test x${exec_prefix} = xNONE ; then + exec_prefix=${prefix} +fi + +# ------------------------------------------------------------------ +# If the user has not set --sbindir, we set our default as /sbin +# ------------------------------------------------------------------ +if test x$sbindir = x'${exec_prefix}/sbin' ; then + sbindir=${exec_prefix}/sbin +fi +sbindir=`eval echo ${sbindir}` + + +# ------------------------------------------------------------------------- +# If the user has not set --mandir, we default to /usr/share/man +# ------------------------------------------------------------------------- +if test x$mandir = x'${prefix}/man' ; then + mandir=/usr/share/man +fi + + +AC_PATH_PROGS(MSGFMT, msgfmt, no) +if test "$MSGFMT" = "no" +then + echo 'msgfmt program not found, disabling NLS !' + USE_NLS=no + USE_INCLUDED_LIBINTL=no +#else + AM_GNU_GETTEXT +fi + + +support_mysql=no +support_sqlite=no +support_sqlite3=no +support_postgresql=no +support_smartalloc=yes +support_readline=yes +support_conio=yes +support_gnome=no +support_bat=no +support_wx_console=no +support_tls=no +support_crypto=no +gnome_version= +wx_version= +support_static_tools=no +support_static_fd=no +support_static_sd=no +support_static_dir=no +support_static_cons=no +support_python=no +build_client_only=no +build_dird=yes +build_stored=yes +cats= +db_type=Internal +DB_TYPE=bdb + +dnl# -------------------------------------------------------------------------- +dnl# CHECKING COMMAND LINE OPTIONS +dnl# -------------------------------------------------------------------------- + +# ------------------------------------------- +# gnome (default off) +# ------------------------------------------- +AC_ARG_ENABLE(gnome, + [ --enable-gnome enable build of bgnome-console GUI [disabled]], + [if test x$enableval = xyes; then + support_gnome=yes + fi]) + +GNOME_DIR= +if test x$support_gnome = xyes; then + abc=`$PKGCONFIG --exists libgnomeui-2.0` + pkg=$? + if test $pkg = 0; then + GNOME_INCLUDEDIR=`$PKGCONFIG --cflags-only-I libgnomeui-2.0` + GNOMEUI_LIBS=`$PKGCONFIG --libs-only-l libgnomeui-2.0` + GNOME_LIBDIR=`$PKGCONFIG --libs libgnomeui-2.0` + GNOME_LIBS=`$PKGCONFIG --libs-only-l libgnomeui-2.0` + AC_SUBST(GNOME_INCLUDEDIR) + AC_SUBST(GNOMEUI_LIBS) + AC_SUBST(GNOME_LIBDIR) + AC_SUBST(GNOME_LIBS) + GNOME_DIR=src/gnome2-console + gnome_version="Version 2.x" + else + AC_MSG_ERROR(Unable to find Gnome 2 installation) + fi +fi +AC_SUBST(GNOME_DIR) + +# ------------------------------------------- +# bat (default off) +# ------------------------------------------- +AC_ARG_ENABLE(bat, + [ --enable-bat enable build of bat Qt4 GUI [disabled]], + [if test x$enableval = xyes; then + AC_DEFINE(HAVE_BAT, 1, [Set if Bacula bat Qt4 GUI support enabled]) + support_bat=yes + fi]) + +BAT_DIR= +if test x$support_bat = xyes; then + abc=`$PKGCONFIG --atleast-version=4.2 QtGui` + pkg=$? + if test $pkg = 0; then + BAT_DIR=src/qt-console + else + AC_MSG_ERROR(Unable to find Qt4 installation needed by bat) + fi +fi + +# +# If bat is enabled, we need the qwt library +got_qwt=no +QWT_INC= +QWT_LDFLAGS= +if test x$support_bat = xyes; then + AC_MSG_CHECKING(for qwt support) + AC_ARG_WITH(qwt, + [ --with-qwt@<:@=DIR@:>@ specify qwt library directory], + [ + case "$with_qwt" in + no) + ;; + yes|*) + if test -f ${with_qwt}/include/qwt.h; then + QWT_INC="${with_qwt}/include" + QWT_LDFLAGS="-L${with_qwt}/lib" + fi + ;; + esac + ] + ) +# +# Search in standard places, or --with-qwt not specified +# + if test x$QWT_INC = x; then + for root in /usr /usr/local; do + for ver in qwt qwt5 qwt-qt4; do + if test -f ${root}/include/${ver}/qwt.h; then + QWT_INC="${root}/include/${ver}" + if test -d ${root}/lib64/; then + QWT_LDFLAGS="-L${root}/lib64" + else + QWT_LDFLAGS="-L${root}/lib" + fi + got_qwt=yes + break; + fi + done + done + fi + if test x$QWT_INC = x; then + AC_MSG_RESULT(no) + AC_MSG_ERROR(Unable to find qwt package needed by bat) + BAT_DIR= + support_bat=no + else + AC_MSG_RESULT(yes) + fi +fi + +AC_SUBST(BAT_DIR) +AC_SUBST(QWT_INC) +AC_SUBST(QWT_LDFLAGS) + + +# ------------------------------------------- +# bwx-console (default off) +# ------------------------------------------- +AC_ARG_ENABLE(bwx-console, + [ --enable-bwx-console enable build of wxWidgets console [disabled]], + [if test x$enableval = xyes; then + support_wx_console=yes + fi]) + +WX_DIR= +if test x$support_wx_console = xyes; then + abc=`$WXCONFIG $WXFLAGS --cppflags` + pkg=$? + if test $pkg = 0; then + wx_version="wxWidgets `$WXCONFIG $WXFLAGS --release`" + WXCONS_CPPFLAGS=`$WXCONFIG $WXFLAGS --cppflags` + WXCONS_LDFLAGS=`$WXCONFIG $WXFLAGS --libs` + + AC_SUBST(WXCONS_CPPFLAGS) + AC_SUBST(WXCONS_LDFLAGS) + WX_DIR=src/wx-console + else + echo " " + echo "wx-config program not found. bwx-console disabled." + echo " " + support_wx_console=no + fi +fi +AC_SUBST(WX_DIR) + + +# ------------------------------------------- +# tray-monitor (default off) +# ------------------------------------------- +AC_ARG_ENABLE(tray-monitor, + [ --enable-tray-monitor enable build of Gnome tray monitor (compatible with KDE) [disabled]], + [if test x$enableval = xyes; then + support_tray_monitor=yes + fi]) + +TRAY_MONITOR_DIR= +if test x$support_tray_monitor = xyes; then + abc=`$PKGCONFIG --exists gtk+-2.0` + pkg=$? + if test $pkg = 0; then + TRAY_MONITOR_CPPFLAGS=`$PKGCONFIG --cflags gtk+-2.0` + TRAY_MONITOR_LDFLAGS=`$PKGCONFIG --libs gtk+-2.0` + AC_SUBST(TRAY_MONITOR_CPPFLAGS) + AC_SUBST(TRAY_MONITOR_LDFLAGS) + TRAY_MONITOR_DIR=src/tray-monitor + abc=`$PKGCONFIG --atleast-version=2.4 gtk+-2.0` + pkg=$? + if test $pkg = 0; then + AC_DEFINE(HAVE_GTK_2_4, 1, [Set if you have GTK 4.2 or greater loaded]) + fi + fi +fi +AC_SUBST(TRAY_MONITOR_DIR) + +# ------------------------------------------- +# smartalloc (default off) +# ------------------------------------------- +AC_ARG_ENABLE(smartalloc, + [ --enable-smartalloc enable smartalloc debugging support [disabled]], + [if test x$enableval = xno; then + support_smartalloc=no + fi]) + +if test x$support_smartalloc = xyes; then + AC_DEFINE(SMARTALLOC, 1, [Set if you want Smartalloc enabled]) +fi + +# ------------------------------------------- +# static-tools (default off) +# ------------------------------------------- +AC_ARG_ENABLE(static-tools, + [ --enable-static-tools enable static tape tools [disabled]], + [if test x$enableval = xyes; then + support_static_tools=yes + fi]) + +TTOOL_LDFLAGS= +if test x$support_static_tools = xyes; then + TTOOL_LDFLAGS="-static" +fi +AC_SUBST(TTOOL_LDFLAGS) + +# ------------------------------------------- +# static-fd (default off) +# ------------------------------------------- +AC_ARG_ENABLE(static-fd, + [ --enable-static-fd enable static File daemon [disabled]], + [if test x$enableval = xyes; then + support_static_fd=yes + fi]) + +STATIC_FD= +if test x$support_static_fd = xyes; then + STATIC_FD="static-bacula-fd" +fi +AC_SUBST(STATIC_FD) + +# ------------------------------------------- +# static-sd (default off) +# ------------------------------------------- +AC_ARG_ENABLE(static-sd, + [ --enable-static-sd enable static Storage daemon [disabled]], + [if test x$enableval = xyes; then + support_static_sd=yes + fi]) + +STATIC_SD= +if test x$support_static_sd = xyes; then + STATIC_SD="static-bacula-sd" +fi +AC_SUBST(STATIC_SD) + +# ------------------------------------------- +# static-dir (default off) +# ------------------------------------------- +AC_ARG_ENABLE(static-dir, + [ --enable-static-dir enable static Director [disabled]], + [if test x$enableval = xyes; then + support_static_dir=yes + fi]) + +STATIC_DIR= +if test x$support_static_dir = xyes; then + STATIC_DIR="static-bacula-dir" +fi +AC_SUBST(STATIC_DIR) + +# ------------------------------------------- +# static-cons (default off) +# ------------------------------------------- +AC_ARG_ENABLE(static-cons, + [ --enable-static-cons enable static Console [disabled]], + [if test x$enableval = xyes; then + support_static_cons=yes + fi]) + +STATIC_CONS= +STATIC_GNOME_CONS= +STATIC_WX_CONS= +if test x$support_static_cons = xyes; then + STATIC_CONS="static-bconsole" + STATIC_GNOME_CONS="static-bgnome-console" + STATIC_WX_CONS="static-bwx-console" +fi +AC_SUBST(STATIC_CONS) +AC_SUBST(STATIC_GNOME_CONS) +AC_SUBST(STATIC_WX_CONS) + +# ------------------------------------------- +# client_only (default off) +# ------------------------------------------- +AC_ARG_ENABLE(client-only, + [ --enable-client-only build client (File daemon) only [disabled]], + [if test x$enableval = xyes; then + build_client_only=yes + db_type=None + DB_TYPE=none + fi]) +if test x$build_client_only = xno; then + ALL_DIRS="subdirs" +else + ALL_DIRS="" +fi +AC_SUBST(ALL_DIRS) + +# ------------------------------------------- +# director (default on) +# ------------------------------------------- +AC_ARG_ENABLE(build-dird, + [ --enable-build-dird enable building of dird (Director) [enabled]], + [if test x$enableval = xno; then + build_dird=no + fi]) +if test x$build_dird = xyes; then + DIRD_DIR="src/dird" + DIR_TOOLS="DIRTOOLS" +else + DIRD_DIR="" + DIR_TOOLS="NODIRTOOLS" +fi +AC_SUBST(DIRD_DIR) +AC_SUBST(DIR_TOOLS) + +# ------------------------------------------- +# stored (default on) +# ------------------------------------------- +AC_ARG_ENABLE(build-stored, + [ --enable-build-stored enable building of stored (Storage daemon) [enabled]], + [if test x$enableval = xno; then + build_stored=no + fi]) +if test x$build_stored = xyes; then + STORED_DIR="src/stored" +else + STORED_DIR="" +fi +AC_SUBST(STORED_DIR) + +# --------------------------------------------------- +# Check for conio (Bacula readline substitute)( +# --------------------------------------------------- +# this allows you to turn it completely off +AC_ARG_ENABLE(conio, + [ --disable-conio disable conio support [enabled] + ], + [if test x$enableval = xno; then + support_conio=no + fi] +) + + +# --------------------------------------------------- +# Check for IPv6 support +# --------------------------------------------------- +# this allows you to turn it completely off +support_ipv6=yes +AC_ARG_ENABLE(ipv6, + [ --enable-ipv6 enable ipv6 support [enabled] + ], + [if test x$enableval = xno; then + support_ipv6=no + fi] +) + +if test x$support_ipv6 = xyes; then + AC_TRY_LINK([ #include +#include +#include ], [struct sockaddr_in6 s; struct in6_addr t=in6addr_any; int i=AF_INET6; s; t.s6_addr[0] = 0;], + [support_ipv6=yes], [support_ipv6=no]) +fi + +if test x$support_ipv6 = xyes; then + AC_DEFINE(HAVE_IPV6,1,[Whether to enable IPv6 support]) +fi + + + +got_conio="no" +if test x$support_conio = xyes; then + AC_CHECK_HEADER(termcap.h, + [ AC_CHECK_LIB(termcap, tgetent, + [ CONS_LIBS="-ltermcap" + CONS_OBJ="conio.o" + CONS_SRC="conio.c" + got_conio="yes" + support_readline=no + AC_DEFINE(HAVE_CONIO, 1, [Set if Bacula conio support enabled]) + ], + [ AC_CHECK_LIB(ncurses, tgetent, + [ CONS_LIBS="-lncurses" + CONS_OBJ="conio.o" + CONS_SRC="conio.c" + got_conio="yes" + support_readline=no + AC_DEFINE(HAVE_CONIO, 1, [Set if Bacula conio support enabled]) + ]) + ]) + ], + [ + AC_CHECK_HEADERS(curses.h) + AC_CHECK_HEADER(term.h, + [ AC_CHECK_LIB(curses, tgetent, + [ CONS_LIBS="-lcurses" + CONS_OBJ="conio.o" + CONS_SRC="conio.c" + got_conio="yes" + support_readline=no + AC_DEFINE(HAVE_CONIO, 1, [Set if Bacula conio support enabled]) + ]) + ], + [ echo " "; echo "Required libraries not found. CONIO turned off ..."; echo " "], +[#if HAVE_CURSES_H +#include +#endif +]) + ]) +fi + + +# --------------------------------------------------- +# Check for readline support/directory (default off) +# --------------------------------------------------- +# this allows you to turn it completely off +AC_ARG_ENABLE(readline, + [ --disable-readline disable readline support [disable] + ], + [if test x$enableval = xno; then + support_readline=no + fi]) + +got_readline="no" +READLINE_SRC= +if test x$support_readline = xyes; then + AC_ARG_WITH(readline, + [ --with-readline@<:@=DIR@:>@ specify readline library directory], + [ + case "$with_readline" in + no) : ;; + yes|*) + if test -f ${with_readline}/readline.h; then + CONS_INC="-I${with_readline}" + CONS_LDFLAGS="-L$with_readline" + elif test -f ${with_readline}/include/readline/readline.h; then + CONS_INC="-I${with_readline}/include/readline" + CONS_LDFLAGS="-L${with_readline}/lib" + with_readline="${with_readline}/include/readline" + else + with_readline="/usr/include/readline" + fi + AC_CHECK_HEADER(${with_readline}/readline.h, + [ AC_DEFINE(HAVE_READLINE, 1, [Set to enable readline support]) + CONS_LIBS="-lreadline -lhistory -ltermcap" + got_readline="yes" + ], + [ echo " " + echo "readline.h not found. readline turned off ..." + echo " " + ] + ) + ;; + esac + ],[ + # check for standard readline library + AC_CHECK_HEADER(/usr/include/readline/readline.h, + [ AC_DEFINE(HAVE_READLINE, 1, [Set to enable readline support]) + got_readline="yes" + CONS_INC="-I/usr/include/readline" + CONS_LIBS="-lreadline -ltermcap" + ], [ + # Did not find standard library, so try Bacula's default + AC_CHECK_HEADER(${TOP_DIR}/depkgs/readline/readline.h, + [ AC_DEFINE(HAVE_READLINE, 1, [Set to enable readline support]) + got_readline="yes" + CONS_INC="-I${TOP_DIR}/depkgs/readline" + CONS_LIBS="-lreadline -lhistory -ltermcap" + CONS_LDFLAGS="-L${TOP_DIR}/depkgs/readline" + PRTREADLINE_SRC="${TOP_DIR}/depkgs/readline" + ], + [ echo " " + echo "readline.h not found. readline turned off ..." + echo " " + ] + ) + ] + ) + ] + ) +fi + + + +AC_SUBST(CONS_INC) +AC_SUBST(CONS_OBJ) +AC_SUBST(CONS_SRC) +AC_SUBST(CONS_LIBS) +AC_SUBST(CONS_LDFLAGS) +AC_SUBST(READLINE_SRC) + +# Minimal stuff for readline Makefile configuration +MAKE_SHELL=/bin/sh +AC_SUBST(MAKE_SHELL) +AC_HEADER_STAT +AC_HEADER_DIRENT +AC_CHECK_FUNCS(strcasecmp select setenv putenv tcgetattr lstat lchown) +AC_CHECK_FUNCS(nanosleep nl_langinfo) +AC_CHECK_HEADERS(varargs.h) + +# End of readline/conio stuff +# ----------------------------------------------------------------------- + +# ----------------------------------------------------------------------- +# Check for Python support +# +AC_MSG_CHECKING(for Python support) +AC_ARG_WITH(python, +[ + --with-python@<:@=DIR@:>@ Include Python support. DIR is the Python base + install directory, default is to search through + a number of common places for the Python files.], +[ + PYTHON_INCDIR= + PYTHON_LIBS= + if test "$withval" != "no"; then + if test "$withval" = "yes"; then + for python_root in /usr /usr/local /usr/sfw; do + for ver in python2.2 python2.3 python2.4 python2.5; do + if test -f $python_root/include/${ver}/Python.h; then + PYTHON_INCDIR=-I$python_root/include/${ver} + if test -d $python_root/lib64/${ver}/config; then + PYTHON_LIBS="-L$python_root/lib64/${ver}/config -l${ver}" + else + PYTHON_LIBS="-L$python_root/lib/${ver}/config -l${ver}" + fi + break + fi + done + done + if test x$PYTHON_INCDIR = x; then + if test -f $prefix/include/Python.h; then + PYTHON_INCDIR=-I$prefix/include + if test -d $prefix/lib64/config; then + PYTHON_LIBS="-L$prefix/lib64/config -lpython" + else + PYTHON_LIBS="-L$prefix/lib/config -lpython" + fi + else + AC_MSG_RESULT(no) + AC_MSG_ERROR(Unable to find Python.h in standard locations) + fi + fi + else + if test -f $withval/Python.h; then + PYTHON_INCDIR=-I$withval + PYTHON_LIBS="-L$withval/config -lpython" + elif test -f $withval/include/Python.h; then + PYTHON_INCDIR=-I$withval/include + if test -d $withval/lib64/config; then + PYTHON_LIBS="-L$withval/lib64/config -lpython" + else + PYTHON_LIBS="-L$withval/lib/config -lpython" + fi + elif test -f $withval/include/python/Python.h; then + PYTHON_INCDIR=-I$withval/include/python + if test -d $withval/lib64/python/config; then + PYTHON_LIBS="-L$withval/lib64/python/config -lpython" + else + PYTHON_LIBS="-L$withval/lib/python/config -lpython" + fi + else + AC_MSG_RESULT(no) + AC_MSG_ERROR(Invalid Python directory $withval - unable to find Python.h under $withval) + fi + fi + AC_DEFINE([HAVE_PYTHON], 1) + AC_MSG_RESULT(yes) + support_python=yes + AC_MSG_NOTICE(checking for more Python libs) + saved_LIBS="$LIBS"; LIBS= + AC_SEARCH_LIBS(shm_open, [rt]) + AC_CHECK_LIB(util, openpty) + PYTHON_LIBS="$PYTHON_LIBS $LIBS" + LIBS="$saved_LIBS" + else + AC_MSG_RESULT(no) + fi +],[ + AC_MSG_RESULT(no) +]) +AC_SUBST(PYTHON_LIBS) +AC_SUBST(PYTHON_INCDIR) + +# +# Find where sockets are (especially for Solaris) +# Do this before the TCP Wrappers test since tcp wrappers +# uses the socket library and some linkers are stupid. +# +AC_CHECK_FUNC(socket, + AC_MSG_RESULT(using libc's socket), + AC_CHECK_LIB(xnet,socket) + AC_CHECK_LIB(socket,socket) + AC_CHECK_LIB(inet,socket)) + + +# ----------------------------------------------------------- +# Check whether user wants TCP wrappers support (default off) +# ----------------------------------------------------------- +TCPW_MSG="no" +WRAPLIBS="" +AC_ARG_WITH(tcp-wrappers, + [ --with-tcp-wrappers@<:@=DIR@:>@ enable tcpwrappers support], + [ + if test "x$withval" != "xno" ; then + saved_LIBS="$LIBS" + LIBS="$saved_LIBS -lwrap" + AC_MSG_CHECKING(for libwrap) + AC_SEARCH_LIBS(nanosleep, [rt]) + AC_TRY_LINK( + [ #include + #include + int deny_severity = 0; + int allow_severity = 0; + struct request_info *req; ], + [ hosts_access(req); ], + [ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_LIBWRAP, 1, [Set to enable libwraper support]) + TCPW_MSG="yes" + LIBS="$saved_LIBS" + WRAPLIBS="-lwrap" + ], [ + LIBS="$saved_LIBS -lwrap -lnsl" + WRAPLIBS="$saved_LIBS -lwrap -lnsl" + AC_TRY_LINK( + [ #include + #include + int deny_severity = 0; + int allow_severity = 0; + struct request_info *req; ], + [ hosts_access(req); ], + [ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_LIBWRAP, 1, [Set to enable libwraper support]) + TCPW_MSG="yes" + LIBS="$saved_LIBS" + WRAPLIBS="-lwrap" + ], + [AC_MSG_ERROR([*** libwrap missing]) ] ] + ) + ) + fi + ] +) + +# ----------------------------------------------------------- +# Check whether OpenSSL is available +# ----------------------------------------------------------- +AC_MSG_CHECKING([for OpenSSL]) +dnl The following uses quadrigraphs: +dnl '@<:@' = '[' +dnl '@:>@' = ']' +AC_ARG_WITH(openssl, + AC_HELP_STRING([--with-openssl@<:@=DIR@:>@], [Include OpenSSL support. DIR is the OpenSSL base]), + [with_openssl_directory=${withval}]) + +if test "x$with_openssl_directory" != "x"; then + OPENSSL_LIBS="-lssl -lcrypto" + OPENSSL_INC="" + + if test "x$with_openssl_directory" != "xyes" && test x"${with_openssl_directory}" != "x"; then + OPENSSL_LIBS="-L$with_openssl_directory/lib $OPENSSL_LIBS" + OPENSSL_INC="-I$with_openssl_directory/include $OPENSSL_INC" + fi + + saved_LIBS="${LIBS}" + saved_CFLAGS="${CFLAGS}" + LIBS="${saved_LIBS} ${OPENSSL_LIBS}" + CFLAGS="${saved_CFLAGS} ${OPENSSL_INC}" + + AC_TRY_LINK([ #include ], + [ CRYPTO_set_id_callback(NULL); ], + [ + support_tls="yes" + support_crypto="yes" + ], + [ support_tls="no" ] + ) + + AC_TRY_LINK([ #include ], + [ EVP_sha512(); ], + [ ac_cv_openssl_sha2="yes" ], + [ ac_cv_openssl_sha2="no" ] + ) + + # Solaris disables greater than 128+ bit encryption in their OpenSSL + # implementation, presumably for export reasons. If 192bit AES + # is available, we assume that we're running with a 'non-export' + # openssl library. + AC_TRY_LINK([ #include ], + [ EVP_aes_192_cbc(); ], + [ ac_cv_openssl_export="no" ], + [ ac_cv_openssl_export="yes" ] + ) + + LIBS="${saved_LIBS}" + CFLAGS="${saved_CFLAGS}" + + if test "$support_tls" = "yes"; then + AC_DEFINE(HAVE_OPENSSL, 1, [Define if OpenSSL library is available]) + AC_DEFINE(HAVE_TLS, 1, [Define if TLS support should be enabled]) + AC_DEFINE(HAVE_CRYPTO, 1, [Define if encryption support should be enabled]) + fi + + if test "$ac_cv_openssl_sha2" = "yes"; then + AC_DEFINE(HAVE_SHA2, 1, [Define if the SHA-2 family of digest algorithms is available]) + fi + + if test "$ac_cv_openssl_export" = "yes"; then + AC_DEFINE(HAVE_OPENSSL_EXPORT_LIBRARY, 1, [Define if the OpenSSL library is export-contrained to 128bit ciphers]) + fi +else + support_tls="no" + support_crypto="no" + OPENSSL_LIBS="" + OPENSSL_INC="" +fi + +AC_MSG_RESULT([$support_tls]) +AC_SUBST(OPENSSL_LIBS) +AC_SUBST(OPENSSL_INC) + + +# ----------------------------------------------------------- +# Python and OpenSSL are using dlopen +# ----------------------------------------------------------- + +if test "$support_python" = "yes" -o "$support_tls" = "yes"; then + AC_SEARCH_LIBS(dlopen, [dl]) +fi + +# ------------------------------------------ +# Where to place working dir +# ------------------------------------------ +working_dir=`eval echo ${prefix}/var/bacula/working` +AC_ARG_WITH(working-dir, + [ --with-working-dir=PATH specify path of Bacula working directory], + [ + if test "x$withval" != "xno" ; then + working_dir=$withval + fi + ] +) + +AC_SUBST(working_dir) + +# ------------------------------------------------------------------ +# If the user has not set archivedir, we set our default as /tmp +# ------------------------------------------------------------------ +archive_dir=/tmp +AC_ARG_WITH(archivedir, + [ --with-archivedir=PATH specify path of SD archive directory], + [ + if test "x$withval" != "xno" ; then + archivedir=$withval + fi + ] +) + +AC_SUBST(archivedir) + + + +# ------------------------------------------ +# Where to place scriptdir (script files) +# ------------------------------------------ +scriptdir=`eval echo ${sysconfdir}` +AC_ARG_WITH(scriptdir, + [ --with-scriptdir=PATH specify path of Bacula scripts directory], + [ + if test "x$withval" != "xno" ; then + scriptdir=$withval + fi + ] +) + +AC_SUBST(scriptdir) + + +# ------------------------------------------ +# Where to send dump email +# ------------------------------------------ +dump_email=root@localhost +AC_ARG_WITH(dump-email, + [ --with-dump-email=EMAIL dump email address], + [ + if test "x$withval" != "xno" ; then + dump_email=$withval + fi + ] +) + +AC_SUBST(dump_email) + +# ------------------------------------------ +# Where to send job email +# ------------------------------------------ +job_email=root@localhost +AC_ARG_WITH(job-email, + [ --with-job-email=EMAIL job output email address], + [ + if test "x$withval" != "xno" ; then + job_email=$withval + fi + ] +) + +AC_SUBST(job_email) + +# ------------------------------------------ +# Where to find smtp host +# ------------------------------------------ +smtp_host=localhost +AC_ARG_WITH(smtp_host, + [ --with-smtp-host=HOST SMTP mail host address], + [ + if test "x$withval" != "xno" ; then + smtp_host=$withval + fi + ] +) + +AC_SUBST(smtp_host) + + +# ------------------------------------ +# Where to place pid files +# ------------------------------------ +piddir=/var/run +AC_ARG_WITH(pid-dir, + [ --with-pid-dir=PATH specify location of Bacula pid files], + [ + if test "x$withval" != "xno" ; then + piddir=$withval + fi + ] +) + +AC_DEFINE_UNQUOTED(_PATH_BACULA_PIDDIR, "$piddir") +AC_SUBST(piddir) + + +# ------------------------------------ +# Where to place subsys "lock file" +# ------------------------------------ +subsysdir=/var/run/subsys +if test -d /var/run/subsys; then + subsysdir=/var/run/subsys +elif test -d /var/lock/subsys; then + subsysdir=/var/lock/subsys +else + subsysdir=/var/run/subsys +fi +AC_ARG_WITH(subsys-dir, + [ --with-subsys-dir=PATH specify location of Bacula subsys file], + [ + if test "x$withval" != "xno" ; then + subsysdir=$withval + fi + ] +) + +AC_SUBST(subsysdir) + + + +# ------------------------------------ +# Where to start assigning ports +# ------------------------------------ +baseport=9101 +AC_ARG_WITH(baseport, + [ --with-baseport=PORT specify base port address for daemons], + [ + if test "x$withval" != "xno" ; then + baseport=$withval + fi + ] +) + +AC_SUBST(baseport) +dir_port=`expr $baseport` +fd_port=`expr $baseport + 1` +sd_port=`expr $fd_port + 1` + +AC_SUBST(dir_port) +AC_SUBST(fd_port) +AC_SUBST(sd_port) + + +# ------------------------------------------ +# Generate passwords +# ------------------------------------------ +dir_password= +AC_ARG_WITH(dir-password, + [ --with-dir-password=PASSWORD specify Director's password], + [ + if test "x$withval" != "xno" ; then + dir_password=$withval + fi + ] +) + +if test "x$dir_password" = "x" ; then + if test "x$OPENSSL" = "xnone" ; then + key=`autoconf/randpass 33` + else + key=`openssl rand -base64 33` + fi + dir_password=$key +fi + +fd_password= +AC_ARG_WITH(fd-password, + [ --with-fd-password=PASSWORD specify Client's password], + [ + if test "x$withval" != "xno" ; then + fd_password=$withval + fi + ] +) + +if test "x$fd_password" = "x" ; then + if test "x$OPENSSL" = "xnone" ; then + key=`autoconf/randpass 37` + else + key=`openssl rand -base64 33` + fi + fd_password=$key +fi + +sd_password= +AC_ARG_WITH(sd-password, + [ --with-sd-password=PASSWORD specify Storage daemon's password], + [ + if test "x$withval" != "xno" ; then + sd_password=$withval + fi + ] +) + +if test "x$sd_password" = "x" ; then + if test "x$OPENSSL" = "xnone" ; then + key=`autoconf/randpass 41` + else + key=`openssl rand -base64 33` + fi + sd_password=$key +fi + +mon_dir_password= +AC_ARG_WITH(mon-dir-password, + [ --with-mon-dir-password=PASSWORD specify Director's password used by the monitor], + [ + if test "x$withval" != "xno" ; then + mon_dir_password=$withval + fi + ] +) + +if test "x$mon_dir_password" = "x" ; then + if test "x$OPENSSL" = "xnone" ; then + key=`autoconf/randpass 33` + else + key=`openssl rand -base64 33` + fi + mon_dir_password=$key +fi + +mon_fd_password= +AC_ARG_WITH(mon-fd-password, + [ --with-mon-fd-password=PASSWORD specify Client's password used by the monitor], + [ + if test "x$withval" != "xno" ; then + mon_fd_password=$withval + fi + ] +) + +if test "x$mon_fd_password" = "x" ; then + if test "x$OPENSSL" = "xnone" ; then + key=`autoconf/randpass 37` + else + key=`openssl rand -base64 33` + fi + mon_fd_password=$key +fi + +mon_sd_password= +AC_ARG_WITH(mon-sd-password, + [ --with-mon-sd-password=PASSWORD specify Storage daemon's password used by the monitor], + [ + if test "x$withval" != "xno" ; then + mon_sd_password=$withval + fi + ] +) + +if test "x$mon_sd_password" = "x" ; then + if test "x$OPENSSL" = "xnone" ; then + key=`autoconf/randpass 41` + else + key=`openssl rand -base64 33` + fi + mon_sd_password=$key +fi + +AC_SUBST(dir_password) +AC_SUBST(fd_password) +AC_SUBST(sd_password) +AC_SUBST(mon_dir_password) +AC_SUBST(mon_fd_password) +AC_SUBST(mon_sd_password) + +# +# Pickup any database name +# +db_name=bacula +AC_ARG_WITH(db_name, + [ --with-db-name=DBNAME specify database name (default bacula)], + [ + if test "x$withval" != "x" ; then + db_name=$withval + fi + ] +) +AC_SUBST(db_name) + +db_user=bacula +AC_ARG_WITH(db_user, + [ --with-db-user=UNAME specify database user (default bacula)], + [ + if test "x$withval" != "x" ; then + db_user=$withval + fi + ] +) +AC_SUBST(db_user) + + +# +# Handle users and groups for each daemon +# +dir_user= +AC_ARG_WITH(dir_user, + [ --with-dir-user=USER specify user for Director daemon], + [ + if test "x$withval" != "x" ; then + dir_user=$withval + fi + ] +) + +dir_group= +AC_ARG_WITH(dir_group, + [ --with-dir-group=GROUP specify group for Director daemon], + [ + if test "x$withval" != "x" ; then + dir_group=$withval + fi + ] +) + +sd_user= +AC_ARG_WITH(sd_user, + [ --with-sd-user=USER specify user for Storage daemon], + [ + if test "x$withval" != "x" ; then + sd_user=$withval + fi + ] +) + +sd_group= +AC_ARG_WITH(sd_group, + [ --with-sd-group=GROUP specify group for Storage daemon], + [ + if test "x$withval" != "x" ; then + sd_group=$withval + fi + ] +) + +fd_user= +AC_ARG_WITH(fd_user, + [ --with-fd-user=USER specify user for File daemon], + [ + if test "x$withval" != "x" ; then + fd_user=$withval + fi + ] +) + +fd_group= +AC_ARG_WITH(fd_group, + [ --with-fd-group=GROUP specify group for File daemon], + [ + if test "x$withval" != "x" ; then + fd_group=$withval + fi + ] +) + +AC_SUBST(dir_user) +AC_SUBST(dir_group) +AC_SUBST(sd_user) +AC_SUBST(sd_group) +AC_SUBST(fd_user) +AC_SUBST(fd_group) + +# +# allow setting default executable permissions +# +SBINPERM=0754 +AC_ARG_WITH(sbin-perm, + [ --with-sbin-perm=MODE specify permissions for sbin binaries (0754)], + [ + if test "x$withval" != "x" ; then + SBINPERM=$withval + fi + ] +) + +AC_SUBST(SBINPERM) + +# ------------------------------------------------ +# Bacula check for various SQL database engines +# ------------------------------------------------ +SQL_LIB= +BA_CHECK_POSTGRESQL_DB + +BA_CHECK_MYSQL_DB + +BA_CHECK_SQLITE3_DB + +BA_CHECK_SQLITE_DB + +AC_SUBST(cats) +AC_SUBST(DB_TYPE) + +# ------------------------------------------- +# enable batch attribute DB insert (default on) +# ------------------------------------------- +support_batch_insert=no +A=`nm $SQL_LIB | grep pthread_mutex_lock` +pkg=$? +if test $pkg = 0; then + support_batch_insert=yes + AC_ARG_ENABLE(batch-insert, + [ --enable-batch-insert enable the DB batch insert code [disabled]], + [if test x$enableval = xno; then + support_batch_insert=no + else + support_batch_insert=yes + fi]) +fi + +# Check if postgresql support batch mode +if test x$DB_TYPE = xpostgresql; then + A=`nm $SQL_LIB | grep PQputCopyData` + pkg=$? + if test $pkg != 0; then + support_batch_insert=no + fi +fi + +if test $support_batch_insert = yes ; then + AC_DEFINE(HAVE_BATCH_FILE_INSERT, 1, [Set if DB batch insert code enabled]) +fi + + +AC_DEFINE(PROTOTYPES) + +dnl# -------------------------------------------------------------------------- +dnl# Supply default CFLAGS, if not specified by `CFLAGS=flags ./configure' +dnl# +if test -z "$CFLAGS" -o "$CFLAGS" = "-g -O2"; then + if test -z "$CCOPTS"; then + CCOPTS='-g -O2 -Wall' + fi + CFLAGS="$CCOPTS" +fi + + +dnl A few others +AC_EXEEXT + +dnl See if we can use 64 bit file addresses +largefile_support="no" +AC_BAC_LARGEFILE + + +AC_PATH_XTRA + +dnl# -------------------------------------------------------------------------- +dnl# CHECKING FOR HEADER FILES +dnl# -------------------------------------------------------------------------- +AC_CHECK_HEADERS( \ + assert.h \ + fcntl.h \ + grp.h \ + pwd.h \ + libc.h \ + limits.h \ + stdarg.h \ + stdlib.h \ + stdint.h \ + string.h \ + strings.h \ + termios.h \ + termcap.h \ + term.h \ + unistd.h \ + sys/bitypes.h \ + sys/byteorder.h \ + sys/ioctl.h \ + sys/select.h \ + sys/socket.h \ + sys/sockio.h \ + sys/stat.h \ + sys/time.h \ + sys/types.h \ + arpa/nameser.h \ + resolv.h \ + mtio.h \ + sys/mtio.h \ + sys/tape.h \ + regex.h \ +) +AC_HEADER_STDC +AC_HEADER_MAJOR +AC_HEADER_DIRENT +AC_HEADER_STAT +AC_HEADER_SYS_WAIT +AC_HEADER_TIME +AC_STRUCT_ST_BLKSIZE +AC_STRUCT_ST_BLOCKS +AC_STRUCT_TIMEZONE + +dnl# -------------------------------------------------------------------------- +dnl# Check for utime.h structure +dnl# -------------------------------------------------------------------------- +AC_CACHE_CHECK(for utime.h, ba_cv_header_utime_h, + [AC_TRY_COMPILE([ +#include +#include ], [struct utimbuf foo], + ba_cv_header_utime_h=yes, ba_cv_header_utime_h=no)]) +test $ba_cv_header_utime_h = yes && AC_DEFINE(HAVE_UTIME_H, 1, [Set if utime.h exists]) + +dnl# -------------------------------------------------------------------------- +dnl# Check for socklen_t +dnl# -------------------------------------------------------------------------- +AC_CACHE_CHECK(for socklen_t, ba_cv_header_socklen_t, + [AC_TRY_COMPILE([ +#include +#include ], + [socklen_t x], + ba_cv_header_socklen_t=yes, ba_cv_header_socklen_t=no)]) +test $ba_cv_header_socklen_t = yes && AC_DEFINE(HAVE_SOCKLEN_T) + +dnl# -------------------------------------------------------------------------- +dnl# Check for bigendian +dnl# -------------------------------------------------------------------------- +AC_CACHE_CHECK([for bigendian], ba_cv_bigendian, + [AC_TRY_RUN( + [main(){long a=1L; char *p=(char *)&a; exit(*p);}], + [ba_cv_bigendian=yes], + [ba_cv_bigendian=no], + [ba_cv_bigendian=no])]) +test $ba_cv_bigendian = yes && AC_DEFINE(HAVE_BIGENDIAN) + +dnl# -------------------------------------------------------------------------- +dnl# Check for typeof() +dnl# -------------------------------------------------------------------------- +AC_LANG_PUSH(C++) +AC_CACHE_CHECK(for typeof, ba_cv_have_typeof, + [AC_TRY_RUN( + [main(){char *a = 0; a = (typeof a)a;}], + [ba_cv_have_typeof=yes], + [ba_cv_have_typeof=no], + [ba_cv_have_typeof=no])]) +test $ba_cv_have_typeof = yes && AC_DEFINE([HAVE_TYPEOF], 1, [Defind to 1 if compiler has typeof]) +AC_LANG_POP(C++) + +AC_C_CONST + + +dnl# -------------------------------------------------------------------------- +dnl# CHECKING FOR FILESYSTEM TYPE +dnl# -------------------------------------------------------------------------- +AC_MSG_CHECKING(how to get filesystem type) +fstype=no +# The order of these tests is important. +AC_TRY_CPP([#include +#include ], AC_DEFINE(FSTYPE_STATVFS) fstype=SVR4) +if test $fstype = no; then +AC_TRY_CPP([#include +#include ], AC_DEFINE(FSTYPE_USG_STATFS) fstype=SVR3) +fi +if test $fstype = no; then +AC_TRY_CPP([#include +#include ], AC_DEFINE(FSTYPE_AIX_STATFS) fstype=AIX) +fi +if test $fstype = no; then +AC_TRY_CPP([#include ], AC_DEFINE(FSTYPE_MNTENT) fstype=4.3BSD) +fi +if test $fstype = no; then +AC_EGREP_HEADER(f_type;, sys/mount.h, AC_DEFINE(FSTYPE_STATFS) fstype=4.4BSD/OSF1) +fi +if test $fstype = no; then +AC_TRY_CPP([#include +#include ], AC_DEFINE(FSTYPE_GETMNT) fstype=Ultrix) +fi +AC_MSG_RESULT($fstype) + +AC_CHECK_HEADER(sys/statvfs.h, [ AC_DEFINE(HAVE_SYS_STATVFS_H,1,[Defines if your system have the sys/statvfs.h header file])] , ) + +dnl# -------------------------------------------------------------------------- +dnl# CHECKING FOR TYPEDEFS, STRUCTURES, AND COMPILER CHARACTERISTICS. +dnl# -------------------------------------------------------------------------- +AC_TYPE_SIGNAL +SIGNAL_CHECK +AC_TYPE_MODE_T +AC_TYPE_UID_T +AC_TYPE_SIZE_T +AC_TYPE_PID_T +AC_TYPE_OFF_T +AC_CHECK_TYPE(ino_t, unsigned long) +AC_CHECK_TYPE(dev_t, unsigned long) +AC_CHECK_TYPE(daddr_t, long) +AC_CHECK_TYPE(major_t, int) +AC_CHECK_TYPE(minor_t, int) +AC_CHECK_TYPE(ssize_t, int) +AC_STRUCT_ST_BLOCKS +AC_STRUCT_ST_RDEV +AC_STRUCT_TM +AC_C_CONST + + +AC_CHECK_SIZEOF(char, 1) +AC_CHECK_SIZEOF(short int, 2) +AC_CHECK_SIZEOF(int, 4) +AC_CHECK_SIZEOF(long int, 4) +AC_CHECK_SIZEOF(long long int, 8) +AC_CHECK_SIZEOF(int *, 4) + +# Check for sys/types.h types +AC_CACHE_CHECK([for u_int type], ac_cv_have_u_int, [ + AC_TRY_COMPILE( + [ #include ], + [ u_int a; a = 1;], + [ ac_cv_have_u_int="yes" ], + [ ac_cv_have_u_int="no" ] + ) +]) +if test "x$ac_cv_have_u_int" = "xyes" ; then + AC_DEFINE(HAVE_U_INT) + have_u_int=1 +fi + +AC_CACHE_CHECK([for intmax_t type], ac_cv_have_intmax_t, [ + AC_TRY_COMPILE( + [ #include ], + [ intmax_t a; a = 1;], + [ ac_cv_have_intmax_t="yes" ], + [ + AC_TRY_COMPILE( + [ #include ], + [ intmax_t a; a = 1;], + [ ac_cv_have_intmax_t="yes" ], + [ ac_cv_have_intmax_t="no" ] + ) + ] + ) + +]) +if test "x$ac_cv_have_intmax_t" = "xyes" ; then + AC_DEFINE(HAVE_INTMAX_T) + have_intmax_t=1 +fi + + +AC_CACHE_CHECK([for u_intmax_t type], ac_cv_have_u_intmax_t, [ + AC_TRY_COMPILE( + [ #include ], + [ u_intmax_t a; a = 1;], + [ ac_cv_have_u_intmax_t="yes" ], + [ + AC_TRY_COMPILE( + [ #include ], + [ u_intmax_t a; a = 1;], + [ ac_cv_have_u_intmax_t="yes" ], + [ ac_cv_have_u_intmax_t="no" ] + ) + ] + ) +]) +if test "x$ac_cv_have_u_intmax_t" = "xyes" ; then + AC_DEFINE(HAVE_U_INTMAX_T) + have_u_intmax_t=1 +fi + + +AC_CACHE_CHECK([for intXX_t types], ac_cv_have_intxx_t, [ + AC_TRY_COMPILE( + [ #include ], + [ int8_t a; int16_t b; int32_t c; a = b = c = 1;], + [ ac_cv_have_intxx_t="yes" ], + [ ac_cv_have_intxx_t="no" ] + ) +]) +if test "x$ac_cv_have_intxx_t" = "xyes" ; then + AC_DEFINE(HAVE_INTXX_T) + have_intxx_t=1 +fi + +AC_CACHE_CHECK([for int64_t type], ac_cv_have_int64_t, [ + AC_TRY_COMPILE( + [ #include ], + [ int64_t a; a = 1;], + [ ac_cv_have_int64_t="yes" ], + [ ac_cv_have_int64_t="no" ] + ) +]) +if test "x$ac_cv_have_int64_t" = "xyes" ; then + AC_DEFINE(HAVE_INT64_T) + have_int64_t=1 +fi + +AC_CACHE_CHECK([for u_intXX_t types], ac_cv_have_u_intxx_t, [ + AC_TRY_COMPILE( + [ #include ], + [ u_int8_t a; u_int16_t b; u_int32_t c; a = b = c = 1;], + [ ac_cv_have_u_intxx_t="yes" ], + [ ac_cv_have_u_intxx_t="no" ] + ) +]) +if test "x$ac_cv_have_u_intxx_t" = "xyes" ; then + AC_DEFINE(HAVE_U_INTXX_T) + have_u_intxx_t=1 +fi + +AC_CACHE_CHECK([for u_int64_t types], ac_cv_have_u_int64_t, [ + AC_TRY_COMPILE( + [ #include ], + [ u_int64_t a; a = 1;], + [ ac_cv_have_u_int64_t="yes" ], + [ ac_cv_have_u_int64_t="no" ] + ) +]) +if test "x$ac_cv_have_u_int64_t" = "xyes" ; then + AC_DEFINE(HAVE_U_INT64_T) + have_u_int64_t=1 +fi + +if (test -z "$have_u_intxx_t" || test -z "$have_intxx_t" && \ + test "x$ac_cv_header_sys_bitypes_h" = "xyes") +then + AC_MSG_CHECKING([for intXX_t and u_intXX_t types in sys/bitypes.h]) + AC_TRY_COMPILE( + [ #include ], + [ int8_t a; int16_t b; int32_t c; + u_int8_t e; u_int16_t f; u_int32_t g; + a = b = c = e = f = g = 1; ], + [ AC_DEFINE(HAVE_U_INTXX_T) + AC_DEFINE(HAVE_INTXX_T) + AC_DEFINE(HAVE_SYS_BITYPES_H) + AC_MSG_RESULT(yes) ], + [ AC_MSG_RESULT(no)] + ) +fi + +if test -z "$have_u_intxx_t" ; then + AC_CACHE_CHECK([for uintXX_t types], ac_cv_have_uintxx_t, [ + AC_TRY_COMPILE( + [ #include ], + [ uint8_t a; uint16_t b; + uint32_t c; a = b = c = 1; ], + [ ac_cv_have_uintxx_t="yes" ], + [ ac_cv_have_uintxx_t="no" ] + ) + ]) + if test "x$ac_cv_have_uintxx_t" = "xyes" ; then + AC_DEFINE(HAVE_UINTXX_T) + fi +fi + +if (test -z "$have_u_int64_t" || test -z "$have_int64_t" && \ + test "x$ac_cv_header_sys_bitypes_h" = "xyes") +then + AC_MSG_CHECKING([for int64_t and u_int64_t types in sys/bitypes.h]) + AC_TRY_COMPILE( + [ #include ], + [ int64_t a; u_int64_t b; + a = b = 1; ], + [ AC_DEFINE(HAVE_U_INT64_T) + AC_DEFINE(HAVE_INT64_T) + AC_MSG_RESULT(yes) ], + [ AC_MSG_RESULT(no)] + ) +fi + +if (test -z "$have_uintxx_t" && \ + test "x$ac_cv_header_sys_bitypes_h" = "xyes") +then + AC_MSG_CHECKING([for uintXX_t types in sys/bitypes.h]) + AC_TRY_COMPILE( + [ #include ], + [ uint8_t a; uint16_t b; + uint32_t c; a = b = c = 1; ], + [ AC_DEFINE(HAVE_UINTXX_T) + AC_MSG_RESULT(yes) ], + [ AC_MSG_RESULT(no)] + ) + +fi + + + + +dnl# -------------------------------------------------------------------------- +dnl# CHECKING FOR REQUIRED LIBRARY FUNCTIONS +dnl# -------------------------------------------------------------------------- +AC_CHECK_FUNCS( \ + fork \ + getcwd \ + gethostname \ + getpid \ + gettimeofday \ + setpgid \ + setpgrp \ + setsid \ + signal \ + strerror \ + strncmp \ + strncpy \ + vfprintf \ + ,, + [echo 'configure: cannot find needed function.'; exit 1] +) + +AC_CHECK_FUNCS(fchdir, [AC_DEFINE(HAVE_FCHDIR)]) +AC_CHECK_FUNCS(strtoll, [AC_DEFINE(HAVE_STRTOLL)]) +AC_CHECK_FUNCS(posix_fadvise) +AC_CHECK_FUNCS(fdatasync) + +AC_CHECK_FUNCS(chflags) + +AC_CHECK_FUNCS(snprintf vsnprintf gethostid fseeko) + +AC_CACHE_CHECK(for va_copy, ba_cv_va_copy, + [AC_TRY_LINK([ +#include +void use_va_copy(va_list args){va_list args2; va_copy(args2,args); va_end(args2);} +void call_use_va_copy(int junk,...){va_list args; va_start(args,junk); use_va_copy(args); va_end(args);} +], + [call_use_va_copy(1,2,3)], + ba_cv_va_copy=yes, ba_cv_va_copy=no)]) +test $ba_cv_va_copy = yes && AC_DEFINE(HAVE_VA_COPY, 1, [Set if va_copy exists]) + + +dnl# -------------------------------------------------------------------------- +dnl# CHECKING FOR THREAD SAFE FUNCTIONS +dnl# -------------------------------------------------------------------------- +AC_CHECK_FUNCS(localtime_r readdir_r strerror_r gethostbyname_r) + +# If resolver functions are not in libc check for -lnsl or -lresolv. +AC_CHECK_FUNC(gethostbyname_r, + AC_MSG_RESULT(using libc's resolver), + AC_CHECK_LIB(nsl,gethostbyname_r) + AC_CHECK_LIB(resolv,gethostbyname_r)) + + + +AC_CHECK_FUNCS(inet_pton, [AC_DEFINE(HAVE_INET_PTON)]) +AC_CHECK_FUNCS(inet_ntop, [AC_DEFINE(HAVE_INET_NTOP)]) +AC_CHECK_FUNCS(gethostbyname2, [AC_DEFINE(HAVE_GETHOSTBYNAME2)]) + +dnl ---------------------------- +dnl check sa_len of sockaddr +dnl ---------------------------- +AC_CACHE_CHECK(for struct sockaddr has a sa_len field, ac_cv_struct_sockaddr_sa_len, + [AC_TRY_COMPILE([#include ], [struct sockaddr s; s.sa_len;], + ac_cv_struct_sockaddr_sa_len=yes, ac_cv_struct_sockaddr_sa_len=no)]) + + if test $ac_cv_struct_sockaddr_sa_len = yes; then + AC_DEFINE(HAVE_SA_LEN, 1, [Define if sa_len field exists in struct sockaddr]) + fi + + + + +AC_FUNC_STRFTIME +AC_FUNC_VPRINTF +AC_FUNC_ALLOCA +AC_FUNC_GETMNTENT +AC_FUNC_CLOSEDIR_VOID +AC_FUNC_SETPGRP dnl check for BSD setpgrp. +# AC_FUNC_FNMATCH dnl use local version + + +AC_CHECK_LIB(intl, gettext, [LIBS="$LIBS -lintl"]) + + +AC_CHECK_LIB(sun, getpwnam) + +AC_CHECK_HEADERS(zlib.h) +AC_CHECK_LIB(z, deflate, [FDLIBS="-lz"]) +have_zlib=no +if test x$FDLIBS = x-lz; then + AC_DEFINE(HAVE_LIBZ) + have_zlib=yes +fi + +# +# Check for ACL libraries +# +have_acl=no +AC_CHECK_HEADER(sys/acl.h) +AC_CHECK_FUNC(acl_get_file, [have_acl=yes], + [AC_CHECK_LIB(acl, acl_get_file, [have_acl=yes; FDLIBS="-lacl $FDLIBS"], + [AC_CHECK_LIB(sec, acltotext, [have_acl=yes; FDLIBS="-lsec $FDLIBS"])] + )] +) +if test $have_acl = yes; then + AC_DEFINE(HAVE_ACL) +fi + +dnl Check for pthread libraries +PTHREAD_LIB="" +AC_CHECK_LIB(pthread, pthread_create, PTHREAD_LIB="-lpthread", + [AC_CHECK_LIB(pthreads, pthread_create, PTHREAD_LIB="-lpthreads", + [AC_CHECK_LIB(c_r, pthread_create, PTHREAD_LIB="-lc_r", + [AC_CHECK_FUNC(pthread_create)] + )] + )] +) + +AC_SUBST(FDLIBS) +AC_DEFINE(FDLIBS) + + +CFLAGS=${CFLAGS--O} + +if test x$have_gcc = xyes ; then + CPPFLAGS="$CPPFLAGS -fno-strict-aliasing -fno-exceptions -fno-rtti" + CFLAGS="$CFLAGS -fno-strict-aliasing -fno-exceptions -fno-rtti" +fi +LDFLAGS=${LDFLAGS--O} +DB_LIBS="${SQL_LFLAGS}" +CPPFLAGS="$CPPFLAGS" +CFLAGS="$CFLAGS" +AC_SUBST(DEBUG) +AC_SUBST(DINCLUDE) +AC_SUBST(CFLAGS) +AC_SUBST(CPPFLAGS) +AC_SUBST(LDFLAGS) +AC_SUBST(X_CFLAGS) +AC_SUBST(DEFS) +AC_SUBST(LIBS) +AC_SUBST(DLIB) +AC_SUBST(DB_LIBS) +AC_SUBST(X_LIBS) +AC_SUBST(X_EXTRA_LIBS) +AC_SUBST(WCFLAGS) +AC_SUBST(WLDFLAGS) +AC_SUBST(WRAPLIBS) + +dnl# extra configurable objects +OBJLIST= +AC_SUBST(OBJLIST) + +lld="lld" +llu="llu" + +WCFLAGS= +WLDFLAGS= + +# +# Finally we set appropriate distribution specific +# variables and defaults +# +# PFILES are platform specific files +PFILES="platforms/Makefile" +PSCMD="ps -e" +WIN32= +MACOSX= +hostname=`uname -n | cut -d '.' -f 1` +if test x${hostname} = x ; then + hostname="localhost" +fi +case "$DISTNAME" in +aix) + DISTVER=`uname -r` + PSCMD="ps -e -o pid,comm" + PFILES="${PFILES} \ + platforms/aix/Makefile" + TAPEDRIVE="/dev/rmt0.1" + ;; +alpha) + DISTVER=`uname -r` + PTHREAD_LIB="-lpthread -lexc" + if test "${CC}" = "gcc" ; then + lld="lld" + llu="llu" + else + lld="ld" + llu="lu" + fi + TAPEDRIVE="/dev/nrmt0" + ;; +bsdi) + DISTVER=`uname -a |awk '{print $3}'` + TAPEDRIVE="/dev/nrmt0" + PTHREAD_LIB="-pthread" + CFLAGS="${CFLAGS} -pthread" + PSCMD="ps -ax -o pid,command" + lld="qd" + llu="qu" + PFILES="${PFILES} \ + platforms/bsdi/Makefile \ + platforms/bsdi/bacula-fd \ + platforms/bsdi/bacula-sd \ + platforms/bsdi/bacula-dir" + largefile_support="yes" + ;; +cygwin) + DISTVER=`uname -a |awk '{print $3}'` + TAPEDRIVE="/dev/nrst0" + WIN32=win32 + WCFLAGS="-mwindows" + WLDFLAGS="-mwindows" + ;; +darwin) + DISTVER=`uname -r` + TAPEDRIVE="/dev/nst0" + PSCMD="ps -e -o pid,command" + MACOSX=macosx + PFILES="${PFILES} \ + platforms/darwin/Makefile" + ;; +debian) + DISTVER=`cat /etc/debian_version` + TAPEDRIVE="/dev/nrst0" + PSCMD="ps -e -o pid,command" + ;; +freebsd) + DISTVER=`uname -a |awk '{print $3}'` + VER=`echo $DISTVER | cut -c 1` + if test x$VER = x4 ; then + PTHREAD_LIB="${PTHREAD_LIBS:--pthread}" + CFLAGS="${CFLAGS} ${PTHREAD_CFLAGS:--pthread}" + fi + lld="qd" + llu="qu" + TAPEDRIVE="/dev/nrsa0" + PSCMD="ps -ax -o pid,command" + PFILES="${PFILES} \ + platforms/freebsd/Makefile \ + platforms/freebsd/bacula-fd \ + platforms/freebsd/bacula-sd \ + platforms/freebsd/bacula-dir" + largefile_support="yes" + ;; +hpux) + PSCMD="UNIX95=1; ps -e -o pid,comm" + CFLAGS="${CFLAGS} -D_XOPEN_SOURCE_EXTENDED=1" + DISTVER=`uname -r` + TAPEDRIVE="/dev/rmt/0hnb" + PTHREAD_LIB="-lpthread" + AC_DEFINE([_INCLUDE_LONGLONG]) + ;; +irix) + DISTVER=`uname -r` + TAPEDRIVE="/dev/rmt/0cbn" + PSCMD="ps -e -o pid,comm" + PFILES="${PFILES} \ + platforms/irix/Makefile \ + platforms/irix/bacula-fd \ + platforms/irix/bacula-sd \ + platforms/irix/bacula-dir" + ;; +netbsd) + DISTVER=`uname -a |awk '{print $3}'` + lld="qd" + llu="qu" + TAPEDRIVE="/dev/nrst0" + PSCMD="ps -ax -o pid,command" + PTHREAD_LIB="-pthread" + CFLAGS="${CFLAGS} -pthread" + ;; +openbsd) + DISTVER=`uname -a |awk '{print $3}'` + lld="qd" + llu="qu" + TAPEDRIVE="/dev/nrst0" + PSCMD="ps -ax -o pid,command" + PTHREAD_LIB="-pthread" + CFLAGS="${CFLAGS} -pthread" + PFILES="${PFILES} \ + platforms/openbsd/Makefile \ + platforms/openbsd/bacula-fd \ + platforms/openbsd/bacula-sd \ + platforms/openbsd/bacula-dir" + ;; +redhat) + if test -f /etc/whitebox-release ; then + f=/etc/whitebox-release + else + f=/etc/redhat-release + fi + if test `cat $f | grep release |\ + cut -f 3 -d ' '`x = "Enterprise"x ; then + DISTVER="Enterprise "`cat $f | grep release |\ + cut -f 6 -d ' '` + else + DISTVER=`cat /etc/redhat-release | grep release |\ + cut -f 5 -d ' '` + fi + TAPEDRIVE="/dev/nst0" + PSCMD="ps -e -o pid,command" + PFILES="${PFILES} \ + platforms/redhat/Makefile \ + platforms/redhat/bacula-fd \ + platforms/redhat/bacula-sd \ + platforms/redhat/bacula-dir \ + platforms/redhat/bacula.spec \ + " + ;; +mandrake) + DISTVER=`cat /etc/mandrake-release | grep release |\ + cut -f 5 -d ' '` + TAPEDRIVE="/dev/nst0" + PSCMD="ps -e -o pid,command" + PFILES="${PFILES} \ + platforms/mandrake/Makefile \ + platforms/mandrake/bacula-fd \ + platforms/mandrake/bacula-sd \ + platforms/mandrake/bacula-dir \ + platforms/mandrake/bacula.spec \ + " + ;; +gentoo) + DISTVER=`awk '/version / {print $5}' < /etc/gentoo-release` + TAPEDRIVE="/dev/nst0" + PSCMD="ps -e -o pid,command" + PFILES="${PFILES} \ + platforms/gentoo/Makefile \ + platforms/gentoo/bacula-init \ + platforms/gentoo/bacula-fd \ + platforms/gentoo/bacula-sd \ + platforms/gentoo/bacula-dir" + ;; +slackware) + DISTVER=`cat /etc/slackware-version` + TAPEDRIVE="/dev/nst0" + PSCMD="ps -e -o pid,command" + PFILES="${PFILES} \ + platforms/slackware/Makefile \ + platforms/slackware/rc.bacula-fd \ + platforms/slackware/rc.bacula-sd \ + platforms/slackware/rc.bacula-dir\ + platforms/slackware/functions.bacula" + ;; +solaris) + DISTVER=`uname -r` + TAPEDRIVE="/dev/rmt/0cbn" + PSCMD="ps -e -o pid,comm" + PFILES="${PFILES} \ + platforms/solaris/Makefile \ + platforms/solaris/bacula-fd \ + platforms/solaris/bacula-sd \ + platforms/solaris/bacula-dir" + if test x$DISTVER = x5.6 ; then + AC_DEFINE(HAVE_OLD_SOCKOPT) + fi + LIBS="$LIBS -lresolv" + ;; +suse) + DISTVER=`cat /etc/SuSE-release |grep VERSION|\ + cut -f 3 -d ' '` + TAPEDRIVE="/dev/nst0" + PSCMD="ps -e -o pid,command" + PFILES="${PFILES} \ + platforms/suse/Makefile \ + platforms/suse/bacula-fd \ + platforms/suse/bacula-sd \ + platforms/suse/bacula-dir \ + platforms/suse/bacula \ + platforms/suse/bacula.spec" + ;; +suse5) + DISTNAME=suse + DISTVER=5.x + TAPEDRIVE="/dev/nst0" + PSCMD="ps -e -o pid,command" + PFILES="${PFILES} \ + platforms/suse/Makefile \ + platforms/suse/bacula-fd \ + platforms/suse/bacula-sd \ + platforms/suse/bacula-dir" + ;; +unknown) + DISTVER=unknown + TAPEDRIVE="/dev/nst0" + ;; +*) + echo " === Something went wrong. Unknown DISTNAME $DISTNAME ===" + ;; +esac + +AC_SUBST(hostname) + +LIBS="$PTHREAD_LIB $LIBS" + +AC_DEFINE_UNQUOTED(lld, "$lld") +AC_DEFINE_UNQUOTED(llu, "$llu") +AC_SUBST(TAPEDRIVE) +AC_SUBST(PSCMD) +AC_SUBST(WIN32) +AC_SUBST(MACOSX) +AC_SUBST(DISTNAME) +AC_SUBST(DISTVER) + +dnl# common parts of the Makefile +MCOMMON=./autoconf/Make.common +AC_SUBST_FILE(MCOMMON) + +dnl# Insanity check +if test "x${subsysdir}" = "x${sbindir}" ; then + echo " " + echo " " + echo "You have set both --sbindir and --with-subsys-dir" + echo " equal to: ${subsysdir} " + echo "This is not permitted. Please reconfigure." + echo " " + echo "Aborting configuration ..." + echo " " + echo " " + exit 1 +fi + +AC_OUTPUT([autoconf/Make.common \ + Makefile \ + manpages/Makefile \ + scripts/startmysql \ + scripts/stopmysql \ + scripts/btraceback \ + scripts/startit \ + scripts/stopit \ + scripts/bconsole \ + scripts/gconsole \ + scripts/bacula \ + scripts/bacula-ctl-dir \ + scripts/bacula-ctl-fd \ + scripts/bacula-ctl-sd \ + scripts/devel_bacula \ + scripts/Makefile \ + scripts/logrotate \ + scripts/bacula.desktop.gnome1 \ + scripts/bacula.desktop.gnome2 \ + scripts/bacula.desktop.gnome1.consolehelper \ + scripts/bacula.desktop.gnome2.consolehelper \ + scripts/bacula.desktop.gnome1.xsu \ + scripts/bacula.desktop.gnome2.xsu \ + scripts/bgnome-console.console_apps \ + scripts/mtx-changer \ + scripts/disk-changer \ + scripts/dvd-handler \ + scripts/dvd-simulator \ + scripts/bacula-tray-monitor.desktop \ + scripts/logwatch/Makefile \ + scripts/logwatch/logfile.bacula.conf \ + scripts/wxconsole.console_apps \ + scripts/wxconsole.desktop.consolehelper \ + scripts/wxconsole.desktop.xsu \ + scripts/bat.desktop \ + scripts/bat.desktop.xsu \ + scripts/bat.desktop.consolehelper \ + scripts/bat.console_apps \ + src/Makefile \ + src/host.h \ + src/console/Makefile \ + src/console/bconsole.conf \ + src/gnome2-console/Makefile \ + src/gnome2-console/bgnome-console.conf \ + src/qt-console/bat.conf \ + src/qt-console/bat.pro \ + src/qt-console/install_conf_file \ + src/wx-console/Makefile \ + src/wx-console/bwx-console.conf \ + src/tray-monitor/Makefile \ + src/tray-monitor/tray-monitor.conf \ + src/dird/Makefile \ + src/dird/bacula-dir.conf \ + src/lib/Makefile \ + src/stored/Makefile \ + src/stored/bacula-sd.conf \ + src/filed/Makefile \ + src/filed/bacula-fd.conf \ + src/cats/Makefile \ + src/cats/make_catalog_backup \ + src/cats/delete_catalog_backup \ + src/cats/create_postgresql_database \ + src/cats/update_postgresql_tables \ + src/cats/make_postgresql_tables \ + src/cats/grant_postgresql_privileges \ + src/cats/drop_postgresql_tables \ + src/cats/drop_postgresql_database \ + src/cats/create_mysql_database \ + src/cats/update_mysql_tables \ + src/cats/make_mysql_tables \ + src/cats/grant_mysql_privileges \ + src/cats/drop_mysql_tables \ + src/cats/drop_mysql_database \ + src/cats/create_sqlite_database \ + src/cats/update_sqlite_tables \ + src/cats/make_sqlite_tables \ + src/cats/grant_sqlite_privileges \ + src/cats/drop_sqlite_tables \ + src/cats/drop_sqlite_database \ + src/cats/create_sqlite3_database \ + src/cats/update_sqlite3_tables \ + src/cats/make_sqlite3_tables \ + src/cats/grant_sqlite3_privileges \ + src/cats/drop_sqlite3_tables \ + src/cats/drop_sqlite3_database \ + src/cats/sqlite \ + src/cats/mysql \ + src/cats/create_bdb_database \ + src/cats/update_bdb_tables \ + src/cats/make_bdb_tables \ + src/cats/grant_bdb_privileges \ + src/cats/drop_bdb_tables \ + src/cats/drop_bdb_database \ + src/cats/create_bacula_database \ + src/cats/update_bacula_tables \ + src/cats/grant_bacula_privileges \ + src/cats/make_bacula_tables \ + src/cats/drop_bacula_tables \ + src/cats/drop_bacula_database \ + src/findlib/Makefile \ + src/tools/Makefile \ + po/Makefile.in \ + $PFILES ], + [ ] +) + +if test "${support_bat}" = "yes" ; then + if test "x$QMAKE" = "xnone" && test "x$QMAKEQT4" = "xnone"; then + echo "Could not find qmake or qmake-qt4 in $PATH. Check your Qt installation" + exit 1 + fi + + QMAKEBIN="qmake" + + if test "x$QMAKEQT4" != "xnone"; then + QMAKEBIN=qmake-qt4 + fi + + + + cd src/qt-console + chmod 755 install_conf_file build-depkgs-qt-console + echo "Creating bat Makefile" + $QMAKEBIN + cd ${BUILD_DIR} +fi + +echo "Doing make of dependencies" +${MAKE:-make} depend + +cd scripts +chmod 755 startmysql stopmysql bacula startit stopit btraceback mtx-changer +chmod 755 dvd-handler dvd-simulator +chmod 755 bconsole gconsole mtx-changer devel_bacula logrotate +cd .. + +c=src/cats + +chmod 755 $c/create_bacula_database $c/update_bacula_tables $c/make_bacula_tables +chmod 755 $c/grant_bacula_privileges $c/drop_bacula_tables $c/drop_bacula_database + +chmod 755 $c/create_bdb_database $c/update_bdb_tables $c/make_bdb_tables +chmod 755 $c/grant_bdb_privileges $c/drop_bdb_tables $c/drop_bdb_database + +chmod 755 $c/create_mysql_database $c/update_mysql_tables $c/make_mysql_tables +chmod 755 $c/grant_mysql_privileges $c/drop_mysql_tables $c/drop_mysql_database + +chmod 755 $c/create_sqlite_database $c/update_sqlite_tables $c/make_sqlite_tables +chmod 755 $c/grant_sqlite_privileges $c/drop_sqlite_tables $c/drop_sqlite_database + +chmod 755 $c/create_sqlite3_database $c/update_sqlite3_tables $c/make_sqlite3_tables +chmod 755 $c/grant_sqlite3_privileges $c/drop_sqlite3_tables $c/drop_sqlite3_database + +chmod 755 $c/create_postgresql_database $c/update_postgresql_tables $c/make_postgresql_tables +chmod 755 $c/grant_postgresql_privileges $c/drop_postgresql_tables $c/drop_postgresql_database + +chmod 755 $c/make_catalog_backup $c/delete_catalog_backup +chmod 755 $c/sqlite +chmod 755 $c/mysql + +chmod 755 src/win32/build-depkgs-mingw32 + + + +if test "x$ac_cv_sys_largefile_CFLAGS" != "xno" ; then + largefile_support="yes" +fi + +# +# A whole lot of hand springs to get the compiler version. +# This is because gcc changed the output in version 3.0 +# +CCVERSION=`${CC} --version | tr '\n' ' ' | cut -f 3 -d ' '` +if test "x${CCVERSION}" = "x" ; then + CCVERSION=`${CC} --version | tr '\n' ' ' | cut -f 1 -d ' '` +fi +CXXVERSION=`${CXX} --version | tr '\n' ' ' | cut -f 3 -d ' '` +if test x"${CXXVERSION}" = x ; then + CXXVERSION=`${CXX} --version | tr '\n' ' ' | cut -f 1 -d ' '` +fi + +if test "x${subsysdir}" = "x${sbindir}" ; then + echo " " + echo " " + echo "You have set --sbindir and --with-subsys-dir" + echo " both equal to: ${subsysdir} " + echo " This is not permitted. Please reconfigure." + echo " " + echo "Aborting configuration ..." + echo " " + echo " " + exit 1 +fi + +if test "x${db_type}" = "xInternal" ; then + echo " " + echo " " + echo "You have not specified either --enable-client-only or one of the" + echo " supported databases: MySQL, PostgreSQL, SQLite3 or SQLite." + echo " This is not permitted. Please reconfigure." + echo " " + echo "Aborting the configuration ..." + echo " " + echo " " + exit 1 +fi + +echo " +Configuration on `date`: + + Host: $host -- ${DISTNAME} ${DISTVER} + Bacula version: ${VERSION} (${DATE}) + Source code location: ${srcdir} + Install binaries: ${sbindir} + Install config files: ${sysconfdir} + Scripts directory: ${scriptdir} + Archive directory: ${archivedir} + Working directory: ${working_dir} + PID directory: ${piddir} + Subsys directory: ${subsysdir} + Man directory: ${mandir} + Data directory: ${datadir} + C Compiler: ${CC} ${CCVERSION} + C++ Compiler: ${CXX} ${CXXVERSION} + Compiler flags: ${WCFLAGS} ${CFLAGS} + Linker flags: ${WLDFLAGS} ${LDFLAGS} + Libraries: ${LIBS} + Statically Linked Tools: ${support_static_tools} + Statically Linked FD: ${support_static_fd} + Statically Linked SD: ${support_static_sd} + Statically Linked DIR: ${support_static_dir} + Statically Linked CONS: ${support_static_cons} + Database type: ${db_type} + Database lib: ${DB_LIBS} + Database name: ${db_name} + Database user: ${db_user} + + Job Output Email: ${job_email} + Traceback Email: ${dump_email} + SMTP Host Address: ${smtp_host} + + Director Port: ${dir_port} + File daemon Port: ${fd_port} + Storage daemon Port: ${sd_port} + + Director User: ${dir_user} + Director Group: ${dir_group} + Storage Daemon User: ${sd_user} + Storage DaemonGroup: ${sd_group} + File Daemon User: ${fd_user} + File Daemon Group: ${fd_group} + + SQL binaries Directory ${SQL_BINDIR} + + Large file support: $largefile_support + Bacula conio support: ${got_conio} ${CONS_LIBS} + readline support: ${got_readline} ${PRTREADLINE_SRC} + TCP Wrappers support: ${TCPW_MSG} ${WRAPLIBS} + TLS support: ${support_tls} + Encryption support: ${support_crypto} + ZLIB support: ${have_zlib} + enable-smartalloc: ${support_smartalloc} + bat support: ${support_bat} ${QWT_LDFLAGS} + enable-gnome: ${support_gnome} ${gnome_version} + enable-bwx-console: ${support_wx_console} ${wx_version} + enable-tray-monitor: ${support_tray_monitor} + client-only: ${build_client_only} + build-dird: ${build_dird} + build-stored: ${build_stored} + ACL support: ${have_acl} + Python support: ${support_python} ${PYTHON_LIBS} + Batch insert enabled: ${support_batch_insert} + + " > config.out + +cat config.out diff --git a/Branch-2.2/bacula/autoconf/gettext-macros/codeset.m4 b/Branch-2.2/bacula/autoconf/gettext-macros/codeset.m4 new file mode 100644 index 0000000000..a6e67ec498 --- /dev/null +++ b/Branch-2.2/bacula/autoconf/gettext-macros/codeset.m4 @@ -0,0 +1,21 @@ +# codeset.m4 serial AM1 (gettext-0.10.40) +dnl Copyright (C) 2000-2002 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. + +AC_DEFUN([AM_LANGINFO_CODESET], +[ + AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset, + [AC_TRY_LINK([#include ], + [char* cs = nl_langinfo(CODESET);], + am_cv_langinfo_codeset=yes, + am_cv_langinfo_codeset=no) + ]) + if test $am_cv_langinfo_codeset = yes; then + AC_DEFINE(HAVE_LANGINFO_CODESET, 1, + [Define if you have and nl_langinfo(CODESET).]) + fi +]) diff --git a/Branch-2.2/bacula/autoconf/gettext-macros/gettext.m4 b/Branch-2.2/bacula/autoconf/gettext-macros/gettext.m4 new file mode 100644 index 0000000000..624a807859 --- /dev/null +++ b/Branch-2.2/bacula/autoconf/gettext-macros/gettext.m4 @@ -0,0 +1,549 @@ +# gettext.m4 serial 37 (gettext-0.14.4) +dnl Copyright (C) 1995-2005 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper , 1995-2000. +dnl Bruno Haible , 2000-2003. + +dnl Macro to add for using GNU gettext. + +dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]). +dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The +dnl default (if it is not specified or empty) is 'no-libtool'. +dnl INTLSYMBOL should be 'external' for packages with no intl directory, +dnl and 'no-libtool' or 'use-libtool' for packages with an intl directory. +dnl If INTLSYMBOL is 'use-libtool', then a libtool library +dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static, +dnl depending on --{enable,disable}-{shared,static} and on the presence of +dnl AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library +dnl $(top_builddir)/intl/libintl.a will be created. +dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext +dnl implementations (in libc or libintl) without the ngettext() function +dnl will be ignored. If NEEDSYMBOL is specified and is +dnl 'need-formatstring-macros', then GNU gettext implementations that don't +dnl support the ISO C 99 formatstring macros will be ignored. +dnl INTLDIR is used to find the intl libraries. If empty, +dnl the value `$(top_builddir)/intl/' is used. +dnl +dnl The result of the configuration is one of three cases: +dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled +dnl and used. +dnl Catalog format: GNU --> install in $(datadir) +dnl Catalog extension: .mo after installation, .gmo in source tree +dnl 2) GNU gettext has been found in the system's C library. +dnl Catalog format: GNU --> install in $(datadir) +dnl Catalog extension: .mo after installation, .gmo in source tree +dnl 3) No internationalization, always use English msgid. +dnl Catalog format: none +dnl Catalog extension: none +dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur. +dnl The use of .gmo is historical (it was needed to avoid overwriting the +dnl GNU format catalogs when building on a platform with an X/Open gettext), +dnl but we keep it in order not to force irrelevant filename changes on the +dnl maintainers. +dnl +AC_DEFUN([AM_GNU_GETTEXT], +[ + dnl Argument checking. + ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], , + [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT +])])])])]) + ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], , + [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT +])])])]) + define([gt_included_intl], ifelse([$1], [external], [no], [yes])) + define([gt_libtool_suffix_prefix], ifelse([$1], [use-libtool], [l], [])) + + AC_REQUIRE([AM_PO_SUBDIRS])dnl + ifelse(gt_included_intl, yes, [ + AC_REQUIRE([AM_INTL_SUBDIR])dnl + ]) + + dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + AC_REQUIRE([AC_LIB_RPATH]) + + dnl Sometimes libintl requires libiconv, so first search for libiconv. + dnl Ideally we would do this search only after the + dnl if test "$USE_NLS" = "yes"; then + dnl if test "$gt_cv_func_gnugettext_libc" != "yes"; then + dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT + dnl the configure script would need to contain the same shell code + dnl again, outside any 'if'. There are two solutions: + dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'. + dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE. + dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not + dnl documented, we avoid it. + ifelse(gt_included_intl, yes, , [ + AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) + ]) + + dnl Sometimes, on MacOS X, libintl requires linking with CoreFoundation. + gt_INTL_MACOSX + + dnl Set USE_NLS. + AM_NLS + + ifelse(gt_included_intl, yes, [ + BUILD_INCLUDED_LIBINTL=no + USE_INCLUDED_LIBINTL=no + ]) + LIBINTL= + LTLIBINTL= + POSUB= + + dnl If we use NLS figure out what method + if test "$USE_NLS" = "yes"; then + gt_use_preinstalled_gnugettext=no + ifelse(gt_included_intl, yes, [ + AC_MSG_CHECKING([whether included gettext is requested]) + AC_ARG_WITH(included-gettext, + [ --with-included-gettext use the GNU gettext library included here], + nls_cv_force_use_gnu_gettext=$withval, + nls_cv_force_use_gnu_gettext=no) + AC_MSG_RESULT($nls_cv_force_use_gnu_gettext) + + nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" + if test "$nls_cv_force_use_gnu_gettext" != "yes"; then + ]) + dnl User does not insist on using GNU NLS library. Figure out what + dnl to use. If GNU gettext is available we use this. Else we have + dnl to fall back to GNU NLS library. + + dnl Add a version number to the cache macros. + define([gt_api_version], ifelse([$2], [need-formatstring-macros], 3, ifelse([$2], [need-ngettext], 2, 1))) + define([gt_cv_func_gnugettext_libc], [gt_cv_func_gnugettext]gt_api_version[_libc]) + define([gt_cv_func_gnugettext_libintl], [gt_cv_func_gnugettext]gt_api_version[_libintl]) + + AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc, + [AC_TRY_LINK([#include +]ifelse([$2], [need-formatstring-macros], +[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) +#endif +changequote(,)dnl +typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; +changequote([,])dnl +], [])[extern int _nl_msg_cat_cntr; +extern int *_nl_domain_bindings;], + [bindtextdomain ("", ""); +return * gettext ("")]ifelse([$2], [need-ngettext], [ + * ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_domain_bindings], + gt_cv_func_gnugettext_libc=yes, + gt_cv_func_gnugettext_libc=no)]) + + if test "$gt_cv_func_gnugettext_libc" != "yes"; then + dnl Sometimes libintl requires libiconv, so first search for libiconv. + ifelse(gt_included_intl, yes, , [ + AM_ICONV_LINK + ]) + dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL + dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv]) + dnl because that would add "-liconv" to LIBINTL and LTLIBINTL + dnl even if libiconv doesn't exist. + AC_LIB_LINKFLAGS_BODY([intl]) + AC_CACHE_CHECK([for GNU gettext in libintl], + gt_cv_func_gnugettext_libintl, + [gt_save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $INCINTL" + gt_save_LIBS="$LIBS" + LIBS="$LIBS $LIBINTL" + dnl Now see whether libintl exists and does not depend on libiconv. + AC_TRY_LINK([#include +]ifelse([$2], [need-formatstring-macros], +[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) +#endif +changequote(,)dnl +typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; +changequote([,])dnl +], [])[extern int _nl_msg_cat_cntr; +extern +#ifdef __cplusplus +"C" +#endif +const char *_nl_expand_alias (const char *);], + [bindtextdomain ("", ""); +return * gettext ("")]ifelse([$2], [need-ngettext], [ + * ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias ("")], + gt_cv_func_gnugettext_libintl=yes, + gt_cv_func_gnugettext_libintl=no) + dnl Now see whether libintl exists and depends on libiconv. + if test "$gt_cv_func_gnugettext_libintl" != yes && test -n "$LIBICONV"; then + LIBS="$LIBS $LIBICONV" + AC_TRY_LINK([#include +]ifelse([$2], [need-formatstring-macros], +[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) +#endif +changequote(,)dnl +typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; +changequote([,])dnl +], [])[extern int _nl_msg_cat_cntr; +extern +#ifdef __cplusplus +"C" +#endif +const char *_nl_expand_alias (const char *);], + [bindtextdomain ("", ""); +return * gettext ("")]ifelse([$2], [need-ngettext], [ + * ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias ("")], + [LIBINTL="$LIBINTL $LIBICONV" + LTLIBINTL="$LTLIBINTL $LTLIBICONV" + gt_cv_func_gnugettext_libintl=yes + ]) + fi + CPPFLAGS="$gt_save_CPPFLAGS" + LIBS="$gt_save_LIBS"]) + fi + + dnl If an already present or preinstalled GNU gettext() is found, + dnl use it. But if this macro is used in GNU gettext, and GNU + dnl gettext is already preinstalled in libintl, we update this + dnl libintl. (Cf. the install rule in intl/Makefile.in.) + if test "$gt_cv_func_gnugettext_libc" = "yes" \ + || { test "$gt_cv_func_gnugettext_libintl" = "yes" \ + && test "$PACKAGE" != gettext-runtime \ + && test "$PACKAGE" != gettext-tools; }; then + gt_use_preinstalled_gnugettext=yes + else + dnl Reset the values set by searching for libintl. + LIBINTL= + LTLIBINTL= + INCINTL= + fi + + ifelse(gt_included_intl, yes, [ + if test "$gt_use_preinstalled_gnugettext" != "yes"; then + dnl GNU gettext is not found in the C library. + dnl Fall back on included GNU gettext library. + nls_cv_use_gnu_gettext=yes + fi + fi + + if test "$nls_cv_use_gnu_gettext" = "yes"; then + dnl Mark actions used to generate GNU NLS library. + BUILD_INCLUDED_LIBINTL=yes + USE_INCLUDED_LIBINTL=yes + LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV" + LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV" + LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` + fi + + CATOBJEXT= + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + dnl Mark actions to use GNU gettext tools. + CATOBJEXT=.gmo + fi + ]) + + if test -n "$INTL_MACOSX_LIBS"; then + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + dnl Some extra flags are needed during linking. + LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" + LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" + fi + fi + + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + AC_DEFINE(ENABLE_NLS, 1, + [Define to 1 if translation of program messages to the user's native language + is requested.]) + else + USE_NLS=no + fi + fi + + AC_MSG_CHECKING([whether to use NLS]) + AC_MSG_RESULT([$USE_NLS]) + if test "$USE_NLS" = "yes"; then + AC_MSG_CHECKING([where the gettext function comes from]) + if test "$gt_use_preinstalled_gnugettext" = "yes"; then + if test "$gt_cv_func_gnugettext_libintl" = "yes"; then + gt_source="external libintl" + else + gt_source="libc" + fi + else + gt_source="included intl directory" + fi + AC_MSG_RESULT([$gt_source]) + fi + + if test "$USE_NLS" = "yes"; then + + if test "$gt_use_preinstalled_gnugettext" = "yes"; then + if test "$gt_cv_func_gnugettext_libintl" = "yes"; then + AC_MSG_CHECKING([how to link with libintl]) + AC_MSG_RESULT([$LIBINTL]) + AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL]) + fi + + dnl For backward compatibility. Some packages may be using this. + AC_DEFINE(HAVE_GETTEXT, 1, + [Define if the GNU gettext() function is already present or preinstalled.]) + AC_DEFINE(HAVE_DCGETTEXT, 1, + [Define if the GNU dcgettext() function is already present or preinstalled.]) + fi + + dnl We need to process the po/ directory. + POSUB=po + fi + + ifelse(gt_included_intl, yes, [ + dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL + dnl to 'yes' because some of the testsuite requires it. + if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then + BUILD_INCLUDED_LIBINTL=yes + fi + + dnl Make all variables we use known to autoconf. + AC_SUBST(BUILD_INCLUDED_LIBINTL) + AC_SUBST(USE_INCLUDED_LIBINTL) + AC_SUBST(CATOBJEXT) + + dnl For backward compatibility. Some configure.ins may be using this. + nls_cv_header_intl= + nls_cv_header_libgt= + + dnl For backward compatibility. Some Makefiles may be using this. + DATADIRNAME=share + AC_SUBST(DATADIRNAME) + + dnl For backward compatibility. Some Makefiles may be using this. + INSTOBJEXT=.mo + AC_SUBST(INSTOBJEXT) + + dnl For backward compatibility. Some Makefiles may be using this. + GENCAT=gencat + AC_SUBST(GENCAT) + + dnl For backward compatibility. Some Makefiles may be using this. + INTLOBJS= + if test "$USE_INCLUDED_LIBINTL" = yes; then + INTLOBJS="\$(GETTOBJS)" + fi + AC_SUBST(INTLOBJS) + + dnl Enable libtool support if the surrounding package wishes it. + INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix + AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX) + ]) + + dnl For backward compatibility. Some Makefiles may be using this. + INTLLIBS="$LIBINTL" + AC_SUBST(INTLLIBS) + + dnl Make all documented variables known to autoconf. + AC_SUBST(LIBINTL) + AC_SUBST(LTLIBINTL) + AC_SUBST(POSUB) +]) + + +dnl Checks for all prerequisites of the intl subdirectory, +dnl except for INTL_LIBTOOL_SUFFIX_PREFIX (and possibly LIBTOOL), INTLOBJS, +dnl USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL. +AC_DEFUN([AM_INTL_SUBDIR], +[ + AC_REQUIRE([AC_PROG_INSTALL])dnl + AC_REQUIRE([AM_MKINSTALLDIRS])dnl + AC_REQUIRE([AC_PROG_CC])dnl + AC_REQUIRE([AC_CANONICAL_HOST])dnl + AC_REQUIRE([gt_GLIBC2])dnl + AC_REQUIRE([AC_PROG_RANLIB])dnl + AC_REQUIRE([AC_ISC_POSIX])dnl + AC_REQUIRE([AC_HEADER_STDC])dnl + AC_REQUIRE([AC_C_CONST])dnl + AC_REQUIRE([bh_C_SIGNED])dnl + AC_REQUIRE([AC_C_INLINE])dnl + AC_REQUIRE([AC_TYPE_OFF_T])dnl + AC_REQUIRE([AC_TYPE_SIZE_T])dnl + AC_REQUIRE([gl_AC_TYPE_LONG_LONG])dnl + AC_REQUIRE([gt_TYPE_LONGDOUBLE])dnl + AC_REQUIRE([gt_TYPE_WCHAR_T])dnl + AC_REQUIRE([gt_TYPE_WINT_T])dnl + AC_REQUIRE([gl_AC_HEADER_INTTYPES_H]) + AC_REQUIRE([gl_AC_HEADER_STDINT_H]) + AC_REQUIRE([gt_TYPE_INTMAX_T]) + AC_REQUIRE([gt_PRINTF_POSIX]) + AC_REQUIRE([AC_FUNC_ALLOCA])dnl + AC_REQUIRE([AC_FUNC_MMAP])dnl + AC_REQUIRE([gl_GLIBC21])dnl + AC_REQUIRE([gt_INTDIV0])dnl + AC_REQUIRE([gl_AC_TYPE_UINTMAX_T])dnl + AC_REQUIRE([gt_HEADER_INTTYPES_H])dnl + AC_REQUIRE([gt_INTTYPES_PRI])dnl + AC_REQUIRE([gl_XSIZE])dnl + AC_REQUIRE([gt_INTL_MACOSX])dnl + + AC_CHECK_TYPE([ptrdiff_t], , + [AC_DEFINE([ptrdiff_t], [long], + [Define as the type of the result of subtracting two pointers, if the system doesn't define it.]) + ]) + AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \ +stdlib.h string.h unistd.h sys/param.h]) + AC_CHECK_FUNCS([asprintf fwprintf getcwd getegid geteuid getgid getuid \ +mempcpy munmap putenv setenv setlocale snprintf stpcpy strcasecmp strdup \ +strtoul tsearch wcslen __argz_count __argz_stringify __argz_next \ +__fsetlocking]) + + dnl Use the _snprintf function only if it is declared (because on NetBSD it + dnl is defined as a weak alias of snprintf; we prefer to use the latter). + gt_CHECK_DECL(_snprintf, [#include ]) + gt_CHECK_DECL(_snwprintf, [#include ]) + + dnl Use the *_unlocked functions only if they are declared. + dnl (because some of them were defined without being declared in Solaris + dnl 2.5.1 but were removed in Solaris 2.6, whereas we want binaries built + dnl on Solaris 2.5.1 to run on Solaris 2.6). + dnl Don't use AC_CHECK_DECLS because it isn't supported in autoconf-2.13. + gt_CHECK_DECL(feof_unlocked, [#include ]) + gt_CHECK_DECL(fgets_unlocked, [#include ]) + gt_CHECK_DECL(getc_unlocked, [#include ]) + + case $gt_cv_func_printf_posix in + *yes) HAVE_POSIX_PRINTF=1 ;; + *) HAVE_POSIX_PRINTF=0 ;; + esac + AC_SUBST([HAVE_POSIX_PRINTF]) + if test "$ac_cv_func_asprintf" = yes; then + HAVE_ASPRINTF=1 + else + HAVE_ASPRINTF=0 + fi + AC_SUBST([HAVE_ASPRINTF]) + if test "$ac_cv_func_snprintf" = yes; then + HAVE_SNPRINTF=1 + else + HAVE_SNPRINTF=0 + fi + AC_SUBST([HAVE_SNPRINTF]) + if test "$ac_cv_func_wprintf" = yes; then + HAVE_WPRINTF=1 + else + HAVE_WPRINTF=0 + fi + AC_SUBST([HAVE_WPRINTF]) + + AM_ICONV + AM_LANGINFO_CODESET + if test $ac_cv_header_locale_h = yes; then + gt_LC_MESSAGES + fi + + if test -n "$INTL_MACOSX_LIBS"; then + CPPFLAGS="$CPPFLAGS -I/System/Library/Frameworks/CoreFoundation.framework/Headers" + fi + + dnl intl/plural.c is generated from intl/plural.y. It requires bison, + dnl because plural.y uses bison specific features. It requires at least + dnl bison-1.26 because earlier versions generate a plural.c that doesn't + dnl compile. + dnl bison is only needed for the maintainer (who touches plural.y). But in + dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put + dnl the rule in general Makefile. Now, some people carelessly touch the + dnl files or have a broken "make" program, hence the plural.c rule will + dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not + dnl present or too old. + AC_CHECK_PROGS([INTLBISON], [bison]) + if test -z "$INTLBISON"; then + ac_verc_fail=yes + else + dnl Found it, now check the version. + AC_MSG_CHECKING([version of bison]) +changequote(<<,>>)dnl + ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'` + case $ac_prog_version in + '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; + 1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*) +changequote([,])dnl + ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; + *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; + esac + AC_MSG_RESULT([$ac_prog_version]) + fi + if test $ac_verc_fail = yes; then + INTLBISON=: + fi +]) + + +dnl Checks for special options needed on MacOS X. +dnl Defines INTL_MACOSX_LIBS. +AC_DEFUN([gt_INTL_MACOSX], +[ + dnl Check for API introduced in MacOS X 10.2. + AC_CACHE_CHECK([for CFPreferencesCopyAppValue], + gt_cv_func_CFPreferencesCopyAppValue, + [gt_save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS -I/System/Library/Frameworks/CoreFoundation.framework/Headers" + gt_save_LIBS="$LIBS" + LIBS="$LIBS -framework CoreFoundation" + AC_TRY_LINK([#include ], + [CFPreferencesCopyAppValue(NULL, NULL)], + [gt_cv_func_CFPreferencesCopyAppValue=yes], + [gt_cv_func_CFPreferencesCopyAppValue=no]) + CPPFLAGS="$gt_save_CPPFLAGS" + LIBS="$gt_save_LIBS"]) + if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then + AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], 1, + [Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in the CoreFoundation framework.]) + fi + dnl Check for API introduced in MacOS X 10.3. + AC_CACHE_CHECK([for CFLocaleCopyCurrent], gt_cv_func_CFLocaleCopyCurrent, + [gt_save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS -I/System/Library/Frameworks/CoreFoundation.framework/Headers" + gt_save_LIBS="$LIBS" + LIBS="$LIBS -framework CoreFoundation" + AC_TRY_LINK([#include ], [CFLocaleCopyCurrent();], + [gt_cv_func_CFLocaleCopyCurrent=yes], + [gt_cv_func_CFLocaleCopyCurrent=no]) + CPPFLAGS="$gt_save_CPPFLAGS" + LIBS="$gt_save_LIBS"]) + if test $gt_cv_func_CFLocaleCopyCurrent = yes; then + AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], 1, + [Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the CoreFoundation framework.]) + fi + INTL_MACOSX_LIBS= + if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then + INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" + fi + AC_SUBST([INTL_MACOSX_LIBS]) +]) + + +dnl gt_CHECK_DECL(FUNC, INCLUDES) +dnl Check whether a function is declared. +AC_DEFUN([gt_CHECK_DECL], +[ + AC_CACHE_CHECK([whether $1 is declared], ac_cv_have_decl_$1, + [AC_TRY_COMPILE([$2], [ +#ifndef $1 + char *p = (char *) $1; +#endif +], ac_cv_have_decl_$1=yes, ac_cv_have_decl_$1=no)]) + if test $ac_cv_have_decl_$1 = yes; then + gt_value=1 + else + gt_value=0 + fi + AC_DEFINE_UNQUOTED([HAVE_DECL_]translit($1, [a-z], [A-Z]), [$gt_value], + [Define to 1 if you have the declaration of `$1', and to 0 if you don't.]) +]) + + +dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version]) +AC_DEFUN([AM_GNU_GETTEXT_VERSION], []) diff --git a/Branch-2.2/bacula/autoconf/gettext-macros/glibc2.m4 b/Branch-2.2/bacula/autoconf/gettext-macros/glibc2.m4 new file mode 100644 index 0000000000..e8f5bfe6ed --- /dev/null +++ b/Branch-2.2/bacula/autoconf/gettext-macros/glibc2.m4 @@ -0,0 +1,30 @@ +# glibc2.m4 serial 1 +dnl Copyright (C) 2000-2002, 2004 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +# Test for the GNU C Library, version 2.0 or newer. +# From Bruno Haible. + +AC_DEFUN([gt_GLIBC2], + [ + AC_CACHE_CHECK(whether we are using the GNU C Library 2 or newer, + ac_cv_gnu_library_2, + [AC_EGREP_CPP([Lucky GNU user], + [ +#include +#ifdef __GNU_LIBRARY__ + #if (__GLIBC__ >= 2) + Lucky GNU user + #endif +#endif + ], + ac_cv_gnu_library_2=yes, + ac_cv_gnu_library_2=no) + ] + ) + AC_SUBST(GLIBC2) + GLIBC2="$ac_cv_gnu_library_2" + ] +) diff --git a/Branch-2.2/bacula/autoconf/gettext-macros/glibc21.m4 b/Branch-2.2/bacula/autoconf/gettext-macros/glibc21.m4 new file mode 100644 index 0000000000..d95fd98613 --- /dev/null +++ b/Branch-2.2/bacula/autoconf/gettext-macros/glibc21.m4 @@ -0,0 +1,30 @@ +# glibc21.m4 serial 3 +dnl Copyright (C) 2000-2002, 2004 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +# Test for the GNU C Library, version 2.1 or newer. +# From Bruno Haible. + +AC_DEFUN([gl_GLIBC21], + [ + AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer, + ac_cv_gnu_library_2_1, + [AC_EGREP_CPP([Lucky GNU user], + [ +#include +#ifdef __GNU_LIBRARY__ + #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2) + Lucky GNU user + #endif +#endif + ], + ac_cv_gnu_library_2_1=yes, + ac_cv_gnu_library_2_1=no) + ] + ) + AC_SUBST(GLIBC21) + GLIBC21="$ac_cv_gnu_library_2_1" + ] +) diff --git a/Branch-2.2/bacula/autoconf/gettext-macros/iconv.m4 b/Branch-2.2/bacula/autoconf/gettext-macros/iconv.m4 new file mode 100644 index 0000000000..654c415894 --- /dev/null +++ b/Branch-2.2/bacula/autoconf/gettext-macros/iconv.m4 @@ -0,0 +1,101 @@ +# iconv.m4 serial AM4 (gettext-0.11.3) +dnl Copyright (C) 2000-2002 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. + +AC_DEFUN([AM_ICONV_LINKFLAGS_BODY], +[ + dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + AC_REQUIRE([AC_LIB_RPATH]) + + dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV + dnl accordingly. + AC_LIB_LINKFLAGS_BODY([iconv]) +]) + +AC_DEFUN([AM_ICONV_LINK], +[ + dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and + dnl those with the standalone portable GNU libiconv installed). + + dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV + dnl accordingly. + AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) + + dnl Add $INCICONV to CPPFLAGS before performing the following checks, + dnl because if the user has installed libiconv and not disabled its use + dnl via --without-libiconv-prefix, he wants to use it. The first + dnl AC_TRY_LINK will then fail, the second AC_TRY_LINK will succeed. + am_save_CPPFLAGS="$CPPFLAGS" + AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV]) + + AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [ + am_cv_func_iconv="no, consider installing GNU libiconv" + am_cv_lib_iconv=no + AC_TRY_LINK([#include +#include ], + [iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd);], + am_cv_func_iconv=yes) + if test "$am_cv_func_iconv" != yes; then + am_save_LIBS="$LIBS" + LIBS="$LIBS $LIBICONV" + AC_TRY_LINK([#include +#include ], + [iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd);], + am_cv_lib_iconv=yes + am_cv_func_iconv=yes) + LIBS="$am_save_LIBS" + fi + ]) + if test "$am_cv_func_iconv" = yes; then + AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.]) + fi + if test "$am_cv_lib_iconv" = yes; then + AC_MSG_CHECKING([how to link with libiconv]) + AC_MSG_RESULT([$LIBICONV]) + else + dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV + dnl either. + CPPFLAGS="$am_save_CPPFLAGS" + LIBICONV= + LTLIBICONV= + fi + AC_SUBST(LIBICONV) + AC_SUBST(LTLIBICONV) +]) + +AC_DEFUN([AM_ICONV], +[ + AM_ICONV_LINK + if test "$am_cv_func_iconv" = yes; then + AC_MSG_CHECKING([for iconv declaration]) + AC_CACHE_VAL(am_cv_proto_iconv, [ + AC_TRY_COMPILE([ +#include +#include +extern +#ifdef __cplusplus +"C" +#endif +#if defined(__STDC__) || defined(__cplusplus) +size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); +#else +size_t iconv(); +#endif +], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const") + am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"]) + am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` + AC_MSG_RESULT([$]{ac_t:- + }[$]am_cv_proto_iconv) + AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1, + [Define as const if the declaration of iconv() needs const.]) + fi +]) diff --git a/Branch-2.2/bacula/autoconf/gettext-macros/intdiv0.m4 b/Branch-2.2/bacula/autoconf/gettext-macros/intdiv0.m4 new file mode 100644 index 0000000000..b8d78176a6 --- /dev/null +++ b/Branch-2.2/bacula/autoconf/gettext-macros/intdiv0.m4 @@ -0,0 +1,70 @@ +# intdiv0.m4 serial 1 (gettext-0.11.3) +dnl Copyright (C) 2002 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. + +AC_DEFUN([gt_INTDIV0], +[ + AC_REQUIRE([AC_PROG_CC])dnl + AC_REQUIRE([AC_CANONICAL_HOST])dnl + + AC_CACHE_CHECK([whether integer division by zero raises SIGFPE], + gt_cv_int_divbyzero_sigfpe, + [ + AC_TRY_RUN([ +#include +#include + +static void +#ifdef __cplusplus +sigfpe_handler (int sig) +#else +sigfpe_handler (sig) int sig; +#endif +{ + /* Exit with code 0 if SIGFPE, with code 1 if any other signal. */ + exit (sig != SIGFPE); +} + +int x = 1; +int y = 0; +int z; +int nan; + +int main () +{ + signal (SIGFPE, sigfpe_handler); +/* IRIX and AIX (when "xlc -qcheck" is used) yield signal SIGTRAP. */ +#if (defined (__sgi) || defined (_AIX)) && defined (SIGTRAP) + signal (SIGTRAP, sigfpe_handler); +#endif +/* Linux/SPARC yields signal SIGILL. */ +#if defined (__sparc__) && defined (__linux__) + signal (SIGILL, sigfpe_handler); +#endif + + z = x / y; + nan = y / y; + exit (1); +} +], gt_cv_int_divbyzero_sigfpe=yes, gt_cv_int_divbyzero_sigfpe=no, + [ + # Guess based on the CPU. + case "$host_cpu" in + alpha* | i[34567]86 | m68k | s390*) + gt_cv_int_divbyzero_sigfpe="guessing yes";; + *) + gt_cv_int_divbyzero_sigfpe="guessing no";; + esac + ]) + ]) + case "$gt_cv_int_divbyzero_sigfpe" in + *yes) value=1;; + *) value=0;; + esac + AC_DEFINE_UNQUOTED(INTDIV0_RAISES_SIGFPE, $value, + [Define if integer division by zero raises signal SIGFPE.]) +]) diff --git a/Branch-2.2/bacula/autoconf/gettext-macros/intmax.m4 b/Branch-2.2/bacula/autoconf/gettext-macros/intmax.m4 new file mode 100644 index 0000000000..d99c999fdb --- /dev/null +++ b/Branch-2.2/bacula/autoconf/gettext-macros/intmax.m4 @@ -0,0 +1,30 @@ +# intmax.m4 serial 2 (gettext-0.14.2) +dnl Copyright (C) 2002-2005 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. +dnl Test whether the system has the 'intmax_t' type, but don't attempt to +dnl find a replacement if it is lacking. + +AC_DEFUN([gt_TYPE_INTMAX_T], +[ + AC_REQUIRE([gl_AC_HEADER_INTTYPES_H]) + AC_REQUIRE([gl_AC_HEADER_STDINT_H]) + AC_CACHE_CHECK(for intmax_t, gt_cv_c_intmax_t, + [AC_TRY_COMPILE([ +#include +#include +#if HAVE_STDINT_H_WITH_UINTMAX +#include +#endif +#if HAVE_INTTYPES_H_WITH_UINTMAX +#include +#endif +], [intmax_t x = -1;], gt_cv_c_intmax_t=yes, gt_cv_c_intmax_t=no)]) + if test $gt_cv_c_intmax_t = yes; then + AC_DEFINE(HAVE_INTMAX_T, 1, + [Define if you have the 'intmax_t' type in or .]) + fi +]) diff --git a/Branch-2.2/bacula/autoconf/gettext-macros/inttypes-pri.m4 b/Branch-2.2/bacula/autoconf/gettext-macros/inttypes-pri.m4 new file mode 100644 index 0000000000..4d56a9ad30 --- /dev/null +++ b/Branch-2.2/bacula/autoconf/gettext-macros/inttypes-pri.m4 @@ -0,0 +1,30 @@ +# inttypes-pri.m4 serial 1 (gettext-0.11.4) +dnl Copyright (C) 1997-2002 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. + +# Define PRI_MACROS_BROKEN if exists and defines the PRI* +# macros to non-string values. This is the case on AIX 4.3.3. + +AC_DEFUN([gt_INTTYPES_PRI], +[ + AC_REQUIRE([gt_HEADER_INTTYPES_H]) + if test $gt_cv_header_inttypes_h = yes; then + AC_CACHE_CHECK([whether the inttypes.h PRIxNN macros are broken], + gt_cv_inttypes_pri_broken, + [ + AC_TRY_COMPILE([#include +#ifdef PRId32 +char *p = PRId32; +#endif +], [], gt_cv_inttypes_pri_broken=no, gt_cv_inttypes_pri_broken=yes) + ]) + fi + if test "$gt_cv_inttypes_pri_broken" = yes; then + AC_DEFINE_UNQUOTED(PRI_MACROS_BROKEN, 1, + [Define if exists and defines unusable PRI* macros.]) + fi +]) diff --git a/Branch-2.2/bacula/autoconf/gettext-macros/inttypes.m4 b/Branch-2.2/bacula/autoconf/gettext-macros/inttypes.m4 new file mode 100644 index 0000000000..779bcea059 --- /dev/null +++ b/Branch-2.2/bacula/autoconf/gettext-macros/inttypes.m4 @@ -0,0 +1,25 @@ +# inttypes.m4 serial 1 (gettext-0.11.4) +dnl Copyright (C) 1997-2002 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Paul Eggert. + +# Define HAVE_INTTYPES_H if exists and doesn't clash with +# . + +AC_DEFUN([gt_HEADER_INTTYPES_H], +[ + AC_CACHE_CHECK([for inttypes.h], gt_cv_header_inttypes_h, + [ + AC_TRY_COMPILE( + [#include +#include ], + [], gt_cv_header_inttypes_h=yes, gt_cv_header_inttypes_h=no) + ]) + if test $gt_cv_header_inttypes_h = yes; then + AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H, 1, + [Define if exists and doesn't clash with .]) + fi +]) diff --git a/Branch-2.2/bacula/autoconf/gettext-macros/inttypes_h.m4 b/Branch-2.2/bacula/autoconf/gettext-macros/inttypes_h.m4 new file mode 100644 index 0000000000..a5d075d968 --- /dev/null +++ b/Branch-2.2/bacula/autoconf/gettext-macros/inttypes_h.m4 @@ -0,0 +1,26 @@ +# inttypes_h.m4 serial 6 +dnl Copyright (C) 1997-2004 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Paul Eggert. + +# Define HAVE_INTTYPES_H_WITH_UINTMAX if exists, +# doesn't clash with , and declares uintmax_t. + +AC_DEFUN([gl_AC_HEADER_INTTYPES_H], +[ + AC_CACHE_CHECK([for inttypes.h], gl_cv_header_inttypes_h, + [AC_TRY_COMPILE( + [#include +#include ], + [uintmax_t i = (uintmax_t) -1;], + gl_cv_header_inttypes_h=yes, + gl_cv_header_inttypes_h=no)]) + if test $gl_cv_header_inttypes_h = yes; then + AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H_WITH_UINTMAX, 1, + [Define if exists, doesn't clash with , + and declares uintmax_t. ]) + fi +]) diff --git a/Branch-2.2/bacula/autoconf/gettext-macros/isc-posix.m4 b/Branch-2.2/bacula/autoconf/gettext-macros/isc-posix.m4 new file mode 100644 index 0000000000..74dc8f26d8 --- /dev/null +++ b/Branch-2.2/bacula/autoconf/gettext-macros/isc-posix.m4 @@ -0,0 +1,24 @@ +# isc-posix.m4 serial 2 (gettext-0.11.2) +dnl Copyright (C) 1995-2002 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +# This file is not needed with autoconf-2.53 and newer. Remove it in 2005. + +# This test replaces the one in autoconf. +# Currently this macro should have the same name as the autoconf macro +# because gettext's gettext.m4 (distributed in the automake package) +# still uses it. Otherwise, the use in gettext.m4 makes autoheader +# give these diagnostics: +# configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX +# configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX + +undefine([AC_ISC_POSIX]) + +AC_DEFUN([AC_ISC_POSIX], + [ + dnl This test replaces the obsolescent AC_ISC_POSIX kludge. + AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"]) + ] +) diff --git a/Branch-2.2/bacula/autoconf/gettext-macros/lcmessage.m4 b/Branch-2.2/bacula/autoconf/gettext-macros/lcmessage.m4 new file mode 100644 index 0000000000..19aa77e4f7 --- /dev/null +++ b/Branch-2.2/bacula/autoconf/gettext-macros/lcmessage.m4 @@ -0,0 +1,30 @@ +# lcmessage.m4 serial 4 (gettext-0.14.2) +dnl Copyright (C) 1995-2002, 2004-2005 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper , 1995. + +# Check whether LC_MESSAGES is available in . + +AC_DEFUN([gt_LC_MESSAGES], +[ + AC_CACHE_CHECK([for LC_MESSAGES], gt_cv_val_LC_MESSAGES, + [AC_TRY_LINK([#include ], [return LC_MESSAGES], + gt_cv_val_LC_MESSAGES=yes, gt_cv_val_LC_MESSAGES=no)]) + if test $gt_cv_val_LC_MESSAGES = yes; then + AC_DEFINE(HAVE_LC_MESSAGES, 1, + [Define if your file defines LC_MESSAGES.]) + fi +]) diff --git a/Branch-2.2/bacula/autoconf/gettext-macros/lib-ld.m4 b/Branch-2.2/bacula/autoconf/gettext-macros/lib-ld.m4 new file mode 100644 index 0000000000..96c4e2c339 --- /dev/null +++ b/Branch-2.2/bacula/autoconf/gettext-macros/lib-ld.m4 @@ -0,0 +1,110 @@ +# lib-ld.m4 serial 3 (gettext-0.13) +dnl Copyright (C) 1996-2003 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl Subroutines of libtool.m4, +dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision +dnl with libtool.m4. + +dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no. +AC_DEFUN([AC_LIB_PROG_LD_GNU], +[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld, +[# I'd rather use --version here, but apparently some GNU ld's only accept -v. +case `$LD -v 2>&1 conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + AC_MSG_CHECKING([for ld used by GCC]) + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [[\\/]* | [A-Za-z]:[\\/]*)] + [re_direlt='/[^/][^/]*/\.\./'] + # Canonicalize the path of ld + ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` + while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do + ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +AC_CACHE_VAL(acl_cv_path_LD, +[if test -z "$LD"; then + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" + for ac_dir in $PATH; do + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + acl_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some GNU ld's only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in + *GNU* | *'with BFD'*) + test "$with_gnu_ld" != no && break ;; + *) + test "$with_gnu_ld" != yes && break ;; + esac + fi + done + IFS="$ac_save_ifs" +else + acl_cv_path_LD="$LD" # Let the user override the test with a path. +fi]) +LD="$acl_cv_path_LD" +if test -n "$LD"; then + AC_MSG_RESULT($LD) +else + AC_MSG_RESULT(no) +fi +test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) +AC_LIB_PROG_LD_GNU +]) diff --git a/Branch-2.2/bacula/autoconf/gettext-macros/lib-link.m4 b/Branch-2.2/bacula/autoconf/gettext-macros/lib-link.m4 new file mode 100644 index 0000000000..ea0b0c4ea6 --- /dev/null +++ b/Branch-2.2/bacula/autoconf/gettext-macros/lib-link.m4 @@ -0,0 +1,553 @@ +# lib-link.m4 serial 6 (gettext-0.14.3) +dnl Copyright (C) 2001-2005 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. + +AC_PREREQ(2.50) + +dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and +dnl the libraries corresponding to explicit and implicit dependencies. +dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and +dnl augments the CPPFLAGS variable. +AC_DEFUN([AC_LIB_LINKFLAGS], +[ + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + AC_REQUIRE([AC_LIB_RPATH]) + define([Name],[translit([$1],[./-], [___])]) + define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) + AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [ + AC_LIB_LINKFLAGS_BODY([$1], [$2]) + ac_cv_lib[]Name[]_libs="$LIB[]NAME" + ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME" + ac_cv_lib[]Name[]_cppflags="$INC[]NAME" + ]) + LIB[]NAME="$ac_cv_lib[]Name[]_libs" + LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs" + INC[]NAME="$ac_cv_lib[]Name[]_cppflags" + AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) + AC_SUBST([LIB]NAME) + AC_SUBST([LTLIB]NAME) + dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the + dnl results of this search when this library appears as a dependency. + HAVE_LIB[]NAME=yes + undefine([Name]) + undefine([NAME]) +]) + +dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode) +dnl searches for libname and the libraries corresponding to explicit and +dnl implicit dependencies, together with the specified include files and +dnl the ability to compile and link the specified testcode. If found, it +dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and +dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and +dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs +dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty. +AC_DEFUN([AC_LIB_HAVE_LINKFLAGS], +[ + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + AC_REQUIRE([AC_LIB_RPATH]) + define([Name],[translit([$1],[./-], [___])]) + define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) + + dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME + dnl accordingly. + AC_LIB_LINKFLAGS_BODY([$1], [$2]) + + dnl Add $INC[]NAME to CPPFLAGS before performing the following checks, + dnl because if the user has installed lib[]Name and not disabled its use + dnl via --without-lib[]Name-prefix, he wants to use it. + ac_save_CPPFLAGS="$CPPFLAGS" + AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) + + AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [ + ac_save_LIBS="$LIBS" + LIBS="$LIBS $LIB[]NAME" + AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no]) + LIBS="$ac_save_LIBS" + ]) + if test "$ac_cv_lib[]Name" = yes; then + HAVE_LIB[]NAME=yes + AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.]) + AC_MSG_CHECKING([how to link with lib[]$1]) + AC_MSG_RESULT([$LIB[]NAME]) + else + HAVE_LIB[]NAME=no + dnl If $LIB[]NAME didn't lead to a usable library, we don't need + dnl $INC[]NAME either. + CPPFLAGS="$ac_save_CPPFLAGS" + LIB[]NAME= + LTLIB[]NAME= + fi + AC_SUBST([HAVE_LIB]NAME) + AC_SUBST([LIB]NAME) + AC_SUBST([LTLIB]NAME) + undefine([Name]) + undefine([NAME]) +]) + +dnl Determine the platform dependent parameters needed to use rpath: +dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator, +dnl hardcode_direct, hardcode_minus_L. +AC_DEFUN([AC_LIB_RPATH], +[ + dnl Tell automake >= 1.10 to complain if config.rpath is missing. + m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])]) + AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS + AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld + AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host + AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir + AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [ + CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ + ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh + . ./conftest.sh + rm -f ./conftest.sh + acl_cv_rpath=done + ]) + wl="$acl_cv_wl" + libext="$acl_cv_libext" + shlibext="$acl_cv_shlibext" + hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" + hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" + hardcode_direct="$acl_cv_hardcode_direct" + hardcode_minus_L="$acl_cv_hardcode_minus_L" + dnl Determine whether the user wants rpath handling at all. + AC_ARG_ENABLE(rpath, + [ --disable-rpath do not hardcode runtime library paths], + :, enable_rpath=yes) +]) + +dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and +dnl the libraries corresponding to explicit and implicit dependencies. +dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables. +AC_DEFUN([AC_LIB_LINKFLAGS_BODY], +[ + define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) + dnl By default, look in $includedir and $libdir. + use_additional=yes + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + AC_LIB_ARG_WITH([lib$1-prefix], +[ --with-lib$1-prefix[=DIR] search for lib$1 in DIR/include and DIR/lib + --without-lib$1-prefix don't search for lib$1 in includedir and libdir], +[ + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + else + additional_includedir="$withval/include" + additional_libdir="$withval/lib" + fi + fi +]) + dnl Search the library and its dependencies in $additional_libdir and + dnl $LDFLAGS. Using breadth-first-seach. + LIB[]NAME= + LTLIB[]NAME= + INC[]NAME= + rpathdirs= + ltrpathdirs= + names_already_handled= + names_next_round='$1 $2' + while test -n "$names_next_round"; do + names_this_round="$names_next_round" + names_next_round= + for name in $names_this_round; do + already_handled= + for n in $names_already_handled; do + if test "$n" = "$name"; then + already_handled=yes + break + fi + done + if test -z "$already_handled"; then + names_already_handled="$names_already_handled $name" + dnl See if it was already located by an earlier AC_LIB_LINKFLAGS + dnl or AC_LIB_HAVE_LINKFLAGS call. + uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` + eval value=\"\$HAVE_LIB$uppername\" + if test -n "$value"; then + if test "$value" = yes; then + eval value=\"\$LIB$uppername\" + test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value" + eval value=\"\$LTLIB$uppername\" + test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value" + else + dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined + dnl that this library doesn't exist. So just drop it. + : + fi + else + dnl Search the library lib$name in $additional_libdir and $LDFLAGS + dnl and the already constructed $LIBNAME/$LTLIBNAME. + found_dir= + found_la= + found_so= + found_a= + if test $use_additional = yes; then + if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then + found_dir="$additional_libdir" + found_so="$additional_libdir/lib$name.$shlibext" + if test -f "$additional_libdir/lib$name.la"; then + found_la="$additional_libdir/lib$name.la" + fi + else + if test -f "$additional_libdir/lib$name.$libext"; then + found_dir="$additional_libdir" + found_a="$additional_libdir/lib$name.$libext" + if test -f "$additional_libdir/lib$name.la"; then + found_la="$additional_libdir/lib$name.la" + fi + fi + fi + fi + if test "X$found_dir" = "X"; then + for x in $LDFLAGS $LTLIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + case "$x" in + -L*) + dir=`echo "X$x" | sed -e 's/^X-L//'` + if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then + found_dir="$dir" + found_so="$dir/lib$name.$shlibext" + if test -f "$dir/lib$name.la"; then + found_la="$dir/lib$name.la" + fi + else + if test -f "$dir/lib$name.$libext"; then + found_dir="$dir" + found_a="$dir/lib$name.$libext" + if test -f "$dir/lib$name.la"; then + found_la="$dir/lib$name.la" + fi + fi + fi + ;; + esac + if test "X$found_dir" != "X"; then + break + fi + done + fi + if test "X$found_dir" != "X"; then + dnl Found the library. + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name" + if test "X$found_so" != "X"; then + dnl Linking with a shared library. We attempt to hardcode its + dnl directory into the executable's runpath, unless it's the + dnl standard /usr/lib. + if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then + dnl No hardcoding is needed. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + else + dnl Use an explicit option to hardcode DIR into the resulting + dnl binary. + dnl Potentially add DIR to ltrpathdirs. + dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $found_dir" + fi + dnl The hardcoding into $LIBNAME is system dependent. + if test "$hardcode_direct" = yes; then + dnl Using DIR/libNAME.so during linking hardcodes DIR into the + dnl resulting binary. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + else + if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then + dnl Use an explicit option to hardcode DIR into the resulting + dnl binary. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + dnl Potentially add DIR to rpathdirs. + dnl The rpathdirs will be appended to $LIBNAME at the end. + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $found_dir" + fi + else + dnl Rely on "-L$found_dir". + dnl But don't add it if it's already contained in the LDFLAGS + dnl or the already constructed $LIBNAME + haveit= + for x in $LDFLAGS $LIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir" + fi + if test "$hardcode_minus_L" != no; then + dnl FIXME: Not sure whether we should use + dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" + dnl here. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + else + dnl We cannot use $hardcode_runpath_var and LD_RUN_PATH + dnl here, because this doesn't fit in flags passed to the + dnl compiler. So give up. No hardcoding. This affects only + dnl very old systems. + dnl FIXME: Not sure whether we should use + dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" + dnl here. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" + fi + fi + fi + fi + else + if test "X$found_a" != "X"; then + dnl Linking with a static library. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a" + else + dnl We shouldn't come here, but anyway it's good to have a + dnl fallback. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name" + fi + fi + dnl Assume the include files are nearby. + additional_includedir= + case "$found_dir" in + */lib | */lib/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'` + additional_includedir="$basedir/include" + ;; + esac + if test "X$additional_includedir" != "X"; then + dnl Potentially add $additional_includedir to $INCNAME. + dnl But don't add it + dnl 1. if it's the standard /usr/include, + dnl 2. if it's /usr/local/include and we are using GCC on Linux, + dnl 3. if it's already present in $CPPFLAGS or the already + dnl constructed $INCNAME, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + for x in $CPPFLAGS $INC[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + dnl Really add $additional_includedir to $INCNAME. + INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir" + fi + fi + fi + fi + fi + dnl Look for dependencies. + if test -n "$found_la"; then + dnl Read the .la file. It defines the variables + dnl dlname, library_names, old_library, dependency_libs, current, + dnl age, revision, installed, dlopen, dlpreopen, libdir. + save_libdir="$libdir" + case "$found_la" in + */* | *\\*) . "$found_la" ;; + *) . "./$found_la" ;; + esac + libdir="$save_libdir" + dnl We use only dependency_libs. + for dep in $dependency_libs; do + case "$dep" in + -L*) + additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` + dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME. + dnl But don't add it + dnl 1. if it's the standard /usr/lib, + dnl 2. if it's /usr/local/lib and we are using GCC on Linux, + dnl 3. if it's already present in $LDFLAGS or the already + dnl constructed $LIBNAME, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_libdir" != "X/usr/lib"; then + haveit= + if test "X$additional_libdir" = "X/usr/local/lib"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + haveit= + for x in $LDFLAGS $LIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + dnl Really add $additional_libdir to $LIBNAME. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir" + fi + fi + haveit= + for x in $LDFLAGS $LTLIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + dnl Really add $additional_libdir to $LTLIBNAME. + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir" + fi + fi + fi + fi + ;; + -R*) + dir=`echo "X$dep" | sed -e 's/^X-R//'` + if test "$enable_rpath" != no; then + dnl Potentially add DIR to rpathdirs. + dnl The rpathdirs will be appended to $LIBNAME at the end. + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $dir" + fi + dnl Potentially add DIR to ltrpathdirs. + dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $dir" + fi + fi + ;; + -l*) + dnl Handle this in the next round. + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` + ;; + *.la) + dnl Handle this in the next round. Throw away the .la's + dnl directory; it is already contained in a preceding -L + dnl option. + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` + ;; + *) + dnl Most likely an immediate library name. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep" + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep" + ;; + esac + done + fi + else + dnl Didn't find the library; assume it is in the system directories + dnl known to the linker and runtime loader. (All the system + dnl directories known to the linker should also be known to the + dnl runtime loader, otherwise the system is severely misconfigured.) + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name" + fi + fi + fi + done + done + if test "X$rpathdirs" != "X"; then + if test -n "$hardcode_libdir_separator"; then + dnl Weird platform: only the last -rpath option counts, the user must + dnl pass all path elements in one option. We can arrange that for a + dnl single library, but not when more than one $LIBNAMEs are used. + alldirs= + for found_dir in $rpathdirs; do + alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir" + done + dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl. + acl_save_libdir="$libdir" + libdir="$alldirs" + eval flag=\"$hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" + else + dnl The -rpath options are cumulative. + for found_dir in $rpathdirs; do + acl_save_libdir="$libdir" + libdir="$found_dir" + eval flag=\"$hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" + done + fi + fi + if test "X$ltrpathdirs" != "X"; then + dnl When using libtool, the option that works for both libraries and + dnl executables is -R. The -R options are cumulative. + for found_dir in $ltrpathdirs; do + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" + done + fi +]) + +dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR, +dnl unless already present in VAR. +dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes +dnl contains two or three consecutive elements that belong together. +AC_DEFUN([AC_LIB_APPENDTOVAR], +[ + for element in [$2]; do + haveit= + for x in $[$1]; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X$element"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + [$1]="${[$1]}${[$1]:+ }$element" + fi + done +]) diff --git a/Branch-2.2/bacula/autoconf/gettext-macros/lib-prefix.m4 b/Branch-2.2/bacula/autoconf/gettext-macros/lib-prefix.m4 new file mode 100644 index 0000000000..0d895ca630 --- /dev/null +++ b/Branch-2.2/bacula/autoconf/gettext-macros/lib-prefix.m4 @@ -0,0 +1,153 @@ +# lib-prefix.m4 serial 4 (gettext-0.14.2) +dnl Copyright (C) 2001-2005 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. + +dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and +dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't +dnl require excessive bracketing. +ifdef([AC_HELP_STRING], +[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])], +[AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])]) + +dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed +dnl to access previously installed libraries. The basic assumption is that +dnl a user will want packages to use other packages he previously installed +dnl with the same --prefix option. +dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate +dnl libraries, but is otherwise very convenient. +AC_DEFUN([AC_LIB_PREFIX], +[ + AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) + AC_REQUIRE([AC_PROG_CC]) + AC_REQUIRE([AC_CANONICAL_HOST]) + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + dnl By default, look in $includedir and $libdir. + use_additional=yes + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + AC_LIB_ARG_WITH([lib-prefix], +[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib + --without-lib-prefix don't search for libraries in includedir and libdir], +[ + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + else + additional_includedir="$withval/include" + additional_libdir="$withval/lib" + fi + fi +]) + if test $use_additional = yes; then + dnl Potentially add $additional_includedir to $CPPFLAGS. + dnl But don't add it + dnl 1. if it's the standard /usr/include, + dnl 2. if it's already present in $CPPFLAGS, + dnl 3. if it's /usr/local/include and we are using GCC on Linux, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + for x in $CPPFLAGS; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + dnl Really add $additional_includedir to $CPPFLAGS. + CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir" + fi + fi + fi + fi + dnl Potentially add $additional_libdir to $LDFLAGS. + dnl But don't add it + dnl 1. if it's the standard /usr/lib, + dnl 2. if it's already present in $LDFLAGS, + dnl 3. if it's /usr/local/lib and we are using GCC on Linux, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_libdir" != "X/usr/lib"; then + haveit= + for x in $LDFLAGS; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test "X$additional_libdir" = "X/usr/local/lib"; then + if test -n "$GCC"; then + case $host_os in + linux*) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + dnl Really add $additional_libdir to $LDFLAGS. + LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir" + fi + fi + fi + fi + fi +]) + +dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix, +dnl acl_final_exec_prefix, containing the values to which $prefix and +dnl $exec_prefix will expand at the end of the configure script. +AC_DEFUN([AC_LIB_PREPARE_PREFIX], +[ + dnl Unfortunately, prefix and exec_prefix get only finally determined + dnl at the end of configure. + if test "X$prefix" = "XNONE"; then + acl_final_prefix="$ac_default_prefix" + else + acl_final_prefix="$prefix" + fi + if test "X$exec_prefix" = "XNONE"; then + acl_final_exec_prefix='${prefix}' + else + acl_final_exec_prefix="$exec_prefix" + fi + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" + prefix="$acl_save_prefix" +]) + +dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the +dnl variables prefix and exec_prefix bound to the values they will have +dnl at the end of the configure script. +AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], +[ + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + $1 + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" +]) diff --git a/Branch-2.2/bacula/autoconf/gettext-macros/longdouble.m4 b/Branch-2.2/bacula/autoconf/gettext-macros/longdouble.m4 new file mode 100644 index 0000000000..40cd7ce02d --- /dev/null +++ b/Branch-2.2/bacula/autoconf/gettext-macros/longdouble.m4 @@ -0,0 +1,28 @@ +# longdouble.m4 serial 1 (gettext-0.12) +dnl Copyright (C) 2002-2003 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. +dnl Test whether the compiler supports the 'long double' type. +dnl Prerequisite: AC_PROG_CC + +AC_DEFUN([gt_TYPE_LONGDOUBLE], +[ + AC_CACHE_CHECK([for long double], gt_cv_c_long_double, + [if test "$GCC" = yes; then + gt_cv_c_long_double=yes + else + AC_TRY_COMPILE([ + /* The Stardent Vistra knows sizeof(long double), but does not support it. */ + long double foo = 0.0; + /* On Ultrix 4.3 cc, long double is 4 and double is 8. */ + int array [2*(sizeof(long double) >= sizeof(double)) - 1]; + ], , + gt_cv_c_long_double=yes, gt_cv_c_long_double=no) + fi]) + if test $gt_cv_c_long_double = yes; then + AC_DEFINE(HAVE_LONG_DOUBLE, 1, [Define if you have the 'long double' type.]) + fi +]) diff --git a/Branch-2.2/bacula/autoconf/gettext-macros/longlong.m4 b/Branch-2.2/bacula/autoconf/gettext-macros/longlong.m4 new file mode 100644 index 0000000000..7b399e0128 --- /dev/null +++ b/Branch-2.2/bacula/autoconf/gettext-macros/longlong.m4 @@ -0,0 +1,23 @@ +# longlong.m4 serial 5 +dnl Copyright (C) 1999-2004 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Paul Eggert. + +# Define HAVE_LONG_LONG if 'long long' works. + +AC_DEFUN([gl_AC_TYPE_LONG_LONG], +[ + AC_CACHE_CHECK([for long long], ac_cv_type_long_long, + [AC_TRY_LINK([long long ll = 1LL; int i = 63;], + [long long llmax = (long long) -1; + return ll << i | ll >> i | llmax / ll | llmax % ll;], + ac_cv_type_long_long=yes, + ac_cv_type_long_long=no)]) + if test $ac_cv_type_long_long = yes; then + AC_DEFINE(HAVE_LONG_LONG, 1, + [Define if you have the 'long long' type.]) + fi +]) diff --git a/Branch-2.2/bacula/autoconf/gettext-macros/nls.m4 b/Branch-2.2/bacula/autoconf/gettext-macros/nls.m4 new file mode 100644 index 0000000000..2082c3b249 --- /dev/null +++ b/Branch-2.2/bacula/autoconf/gettext-macros/nls.m4 @@ -0,0 +1,51 @@ +# nls.m4 serial 2 (gettext-0.14.3) +dnl Copyright (C) 1995-2003, 2005 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper , 1995-2000. +dnl Bruno Haible , 2000-2003. + +AC_PREREQ(2.50) + +AC_DEFUN([AM_NLS], +[ + AC_MSG_CHECKING([whether NLS is requested]) + dnl Default is enabled NLS + AC_ARG_ENABLE(nls, + [ --disable-nls do not use Native Language Support], + USE_NLS=$enableval, USE_NLS=yes) + AC_MSG_RESULT($USE_NLS) + AC_SUBST(USE_NLS) +]) + +AC_DEFUN([AM_MKINSTALLDIRS], +[ + dnl Tell automake >= 1.10 to complain if mkinstalldirs is missing. + m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([mkinstalldirs])]) + dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly + dnl find the mkinstalldirs script in another subdir but $(top_srcdir). + dnl Try to locate it. + MKINSTALLDIRS= + if test -n "$ac_aux_dir"; then + case "$ac_aux_dir" in + /*) MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" ;; + *) MKINSTALLDIRS="\$(top_builddir)/$ac_aux_dir/mkinstalldirs" ;; + esac + fi + if test -z "$MKINSTALLDIRS"; then + MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" + fi + AC_SUBST(MKINSTALLDIRS) +]) diff --git a/Branch-2.2/bacula/autoconf/gettext-macros/po.m4 b/Branch-2.2/bacula/autoconf/gettext-macros/po.m4 new file mode 100644 index 0000000000..f2795eea0c --- /dev/null +++ b/Branch-2.2/bacula/autoconf/gettext-macros/po.m4 @@ -0,0 +1,429 @@ +# po.m4 serial 7 (gettext-0.14.3) +dnl Copyright (C) 1995-2005 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper , 1995-2000. +dnl Bruno Haible , 2000-2003. + +AC_PREREQ(2.50) + +dnl Checks for all prerequisites of the po subdirectory. +AC_DEFUN([AM_PO_SUBDIRS], +[ + AC_REQUIRE([AC_PROG_MAKE_SET])dnl + AC_REQUIRE([AC_PROG_INSTALL])dnl + AC_REQUIRE([AM_MKINSTALLDIRS])dnl + AC_REQUIRE([AM_NLS])dnl + + dnl Perform the following tests also if --disable-nls has been given, + dnl because they are needed for "make dist" to work. + + dnl Search for GNU msgfmt in the PATH. + dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions. + dnl The second test excludes FreeBSD msgfmt. + AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, + [$ac_dir/$ac_word --statistics /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && + (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], + :) + AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) + + dnl Search for GNU xgettext 0.12 or newer in the PATH. + dnl The first test excludes Solaris xgettext and early GNU xgettext versions. + dnl The second test excludes FreeBSD xgettext. + AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, + [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && + (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], + :) + dnl Remove leftover from FreeBSD xgettext call. + rm -f messages.po + + dnl Search for GNU msgmerge 0.11 or newer in the PATH. + AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge, + [$ac_dir/$ac_word --update -q /dev/null /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1], :) + + dnl This could go away some day; the PATH_PROG_WITH_TEST already does it. + dnl Test whether we really found GNU msgfmt. + if test "$GMSGFMT" != ":"; then + dnl If it is no GNU msgfmt we define it as : so that the + dnl Makefiles still can work. + if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 && + (if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then + : ; + else + GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'` + AC_MSG_RESULT( + [found $GMSGFMT program is not GNU msgfmt; ignore it]) + GMSGFMT=":" + fi + fi + + dnl This could go away some day; the PATH_PROG_WITH_TEST already does it. + dnl Test whether we really found GNU xgettext. + if test "$XGETTEXT" != ":"; then + dnl If it is no GNU xgettext we define it as : so that the + dnl Makefiles still can work. + if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 && + (if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then + : ; + else + AC_MSG_RESULT( + [found xgettext program is not GNU xgettext; ignore it]) + XGETTEXT=":" + fi + dnl Remove leftover from FreeBSD xgettext call. + rm -f messages.po + fi + + AC_OUTPUT_COMMANDS([ + for ac_file in $CONFIG_FILES; do + # Support "outfile[:infile[:infile...]]" + case "$ac_file" in + *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + esac + # PO directories have a Makefile.in generated from Makefile.in.in. + case "$ac_file" in */Makefile.in) + # Adjust a relative srcdir. + ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` + ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" + ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` + # In autoconf-2.13 it is called $ac_given_srcdir. + # In autoconf-2.50 it is called $srcdir. + test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" + case "$ac_given_srcdir" in + .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; + /*) top_srcdir="$ac_given_srcdir" ;; + *) top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + # Treat a directory as a PO directory if and only if it has a + # POTFILES.in file. This allows packages to have multiple PO + # directories under different names or in different locations. + if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then + rm -f "$ac_dir/POTFILES" + test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" + cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" + POMAKEFILEDEPS="POTFILES.in" + # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend + # on $ac_dir but don't depend on user-specified configuration + # parameters. + if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then + # The LINGUAS file contains the set of available languages. + if test -n "$OBSOLETE_ALL_LINGUAS"; then + test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" + fi + ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` + # Hide the ALL_LINGUAS assigment from automake. + eval 'ALL_LINGUAS''=$ALL_LINGUAS_' + POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" + else + # The set of available languages was given in configure.in. + eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' + fi + # Compute POFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) + # Compute UPDATEPOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) + # Compute DUMMYPOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) + # Compute GMOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) + case "$ac_given_srcdir" in + .) srcdirpre= ;; + *) srcdirpre='$(srcdir)/' ;; + esac + POFILES= + UPDATEPOFILES= + DUMMYPOFILES= + GMOFILES= + for lang in $ALL_LINGUAS; do + POFILES="$POFILES $srcdirpre$lang.po" + UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" + DUMMYPOFILES="$DUMMYPOFILES $lang.nop" + GMOFILES="$GMOFILES $srcdirpre$lang.gmo" + done + # CATALOGS depends on both $ac_dir and the user's LINGUAS + # environment variable. + INST_LINGUAS= + if test -n "$ALL_LINGUAS"; then + for presentlang in $ALL_LINGUAS; do + useit=no + if test "%UNSET%" != "$LINGUAS"; then + desiredlanguages="$LINGUAS" + else + desiredlanguages="$ALL_LINGUAS" + fi + for desiredlang in $desiredlanguages; do + # Use the presentlang catalog if desiredlang is + # a. equal to presentlang, or + # b. a variant of presentlang (because in this case, + # presentlang can be used as a fallback for messages + # which are not translated in the desiredlang catalog). + case "$desiredlang" in + "$presentlang"*) useit=yes;; + esac + done + if test $useit = yes; then + INST_LINGUAS="$INST_LINGUAS $presentlang" + fi + done + fi + CATALOGS= + if test -n "$INST_LINGUAS"; then + for lang in $INST_LINGUAS; do + CATALOGS="$CATALOGS $lang.gmo" + done + fi + test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" + sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" + for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do + if test -f "$f"; then + case "$f" in + *.orig | *.bak | *~) ;; + *) cat "$f" >> "$ac_dir/Makefile" ;; + esac + fi + done + fi + ;; + esac + done], + [# Capture the value of obsolete ALL_LINGUAS because we need it to compute + # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it + # from automake. + eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' + # Capture the value of LINGUAS because we need it to compute CATALOGS. + LINGUAS="${LINGUAS-%UNSET%}" + ]) +]) + +dnl Postprocesses a Makefile in a directory containing PO files. +AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE], +[ + # When this code is run, in config.status, two variables have already been + # set: + # - OBSOLETE_ALL_LINGUAS is the value of LINGUAS set in configure.in, + # - LINGUAS is the value of the environment variable LINGUAS at configure + # time. + +changequote(,)dnl + # Adjust a relative srcdir. + ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` + ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" + ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` + # In autoconf-2.13 it is called $ac_given_srcdir. + # In autoconf-2.50 it is called $srcdir. + test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" + case "$ac_given_srcdir" in + .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; + /*) top_srcdir="$ac_given_srcdir" ;; + *) top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + # Find a way to echo strings without interpreting backslash. + if test "X`(echo '\t') 2>/dev/null`" = 'X\t'; then + gt_echo='echo' + else + if test "X`(printf '%s\n' '\t') 2>/dev/null`" = 'X\t'; then + gt_echo='printf %s\n' + else + echo_func () { + cat < "$ac_file.tmp" + if grep -l '@TCLCATALOGS@' "$ac_file" > /dev/null; then + # Add dependencies that cannot be formulated as a simple suffix rule. + for lang in $ALL_LINGUAS; do + frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` + cat >> "$ac_file.tmp" < /dev/null; then + # Add dependencies that cannot be formulated as a simple suffix rule. + for lang in $ALL_LINGUAS; do + frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'` + cat >> "$ac_file.tmp" <> "$ac_file.tmp" < +#include +/* The string "%2$d %1$d", with dollar characters protected from the shell's + dollar expansion (possibly an autoconf bug). */ +static char format[] = { '%', '2', '$', 'd', ' ', '%', '1', '$', 'd', '\0' }; +static char buf[100]; +int main () +{ + sprintf (buf, format, 33, 55); + return (strcmp (buf, "55 33") != 0); +}], gt_cv_func_printf_posix=yes, gt_cv_func_printf_posix=no, + [ + AC_EGREP_CPP(notposix, [ +#if defined __NetBSD__ || defined _MSC_VER || defined __MINGW32__ || defined __CYGWIN__ + notposix +#endif + ], gt_cv_func_printf_posix="guessing no", + gt_cv_func_printf_posix="guessing yes") + ]) + ]) + case $gt_cv_func_printf_posix in + *yes) + AC_DEFINE(HAVE_POSIX_PRINTF, 1, + [Define if your printf() function supports format strings with positions.]) + ;; + esac +]) diff --git a/Branch-2.2/bacula/autoconf/gettext-macros/progtest.m4 b/Branch-2.2/bacula/autoconf/gettext-macros/progtest.m4 new file mode 100644 index 0000000000..a56365cd37 --- /dev/null +++ b/Branch-2.2/bacula/autoconf/gettext-macros/progtest.m4 @@ -0,0 +1,92 @@ +# progtest.m4 serial 4 (gettext-0.14.2) +dnl Copyright (C) 1996-2003, 2005 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper , 1996. + +AC_PREREQ(2.50) + +# Search path for a program which passes the given test. + +dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, +dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) +AC_DEFUN([AM_PATH_PROG_WITH_TEST], +[ +# Prepare PATH_SEPARATOR. +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi + +# Find out how to test for executable files. Don't use a zero-byte file, +# as systems may use methods other than mode bits to determine executability. +cat >conf$$.file <<_ASEOF +#! /bin/sh +exit 0 +_ASEOF +chmod +x conf$$.file +if test -x conf$$.file >/dev/null 2>&1; then + ac_executable_p="test -x" +else + ac_executable_p="test -f" +fi +rm -f conf$$.file + +# Extract the first word of "$2", so it can be a program name with args. +set dummy $2; ac_word=[$]2 +AC_MSG_CHECKING([for $ac_word]) +AC_CACHE_VAL(ac_cv_path_$1, +[case "[$]$1" in + [[\\/]]* | ?:[[\\/]]*) + ac_cv_path_$1="[$]$1" # Let the user override the test with a path. + ;; + *) + ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in ifelse([$5], , $PATH, [$5]); do + IFS="$ac_save_IFS" + test -z "$ac_dir" && ac_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then + echo "$as_me: trying $ac_dir/$ac_word..." >&AS_MESSAGE_LOG_FD + if [$3]; then + ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext" + break 2 + fi + fi + done + done + IFS="$ac_save_IFS" +dnl If no 4th arg is given, leave the cache variable unset, +dnl so AC_PATH_PROGS will keep looking. +ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" +])dnl + ;; +esac])dnl +$1="$ac_cv_path_$1" +if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then + AC_MSG_RESULT([$]$1) +else + AC_MSG_RESULT(no) +fi +AC_SUBST($1)dnl +]) diff --git a/Branch-2.2/bacula/autoconf/gettext-macros/signed.m4 b/Branch-2.2/bacula/autoconf/gettext-macros/signed.m4 new file mode 100644 index 0000000000..048f593698 --- /dev/null +++ b/Branch-2.2/bacula/autoconf/gettext-macros/signed.m4 @@ -0,0 +1,17 @@ +# signed.m4 serial 1 (gettext-0.10.40) +dnl Copyright (C) 2001-2002 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. + +AC_DEFUN([bh_C_SIGNED], +[ + AC_CACHE_CHECK([for signed], bh_cv_c_signed, + [AC_TRY_COMPILE(, [signed char x;], bh_cv_c_signed=yes, bh_cv_c_signed=no)]) + if test $bh_cv_c_signed = no; then + AC_DEFINE(signed, , + [Define to empty if the C compiler doesn't support this keyword.]) + fi +]) diff --git a/Branch-2.2/bacula/autoconf/gettext-macros/size_max.m4 b/Branch-2.2/bacula/autoconf/gettext-macros/size_max.m4 new file mode 100644 index 0000000000..4fe81c7b07 --- /dev/null +++ b/Branch-2.2/bacula/autoconf/gettext-macros/size_max.m4 @@ -0,0 +1,59 @@ +# size_max.m4 serial 2 +dnl Copyright (C) 2003 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. + +AC_DEFUN([gl_SIZE_MAX], +[ + AC_CHECK_HEADERS(stdint.h) + dnl First test whether the system already has SIZE_MAX. + AC_MSG_CHECKING([for SIZE_MAX]) + result= + AC_EGREP_CPP([Found it], [ +#include +#if HAVE_STDINT_H +#include +#endif +#ifdef SIZE_MAX +Found it +#endif +], result=yes) + if test -z "$result"; then + dnl Define it ourselves. Here we assume that the type 'size_t' is not wider + dnl than the type 'unsigned long'. + dnl The _AC_COMPUTE_INT macro works up to LONG_MAX, since it uses 'expr', + dnl which is guaranteed to work from LONG_MIN to LONG_MAX. + _AC_COMPUTE_INT([~(size_t)0 / 10], res_hi, + [#include ], result=?) + _AC_COMPUTE_INT([~(size_t)0 % 10], res_lo, + [#include ], result=?) + _AC_COMPUTE_INT([sizeof (size_t) <= sizeof (unsigned int)], fits_in_uint, + [#include ], result=?) + if test "$fits_in_uint" = 1; then + dnl Even though SIZE_MAX fits in an unsigned int, it must be of type + dnl 'unsigned long' if the type 'size_t' is the same as 'unsigned long'. + AC_TRY_COMPILE([#include + extern size_t foo; + extern unsigned long foo; + ], [], fits_in_uint=0) + fi + if test -z "$result"; then + if test "$fits_in_uint" = 1; then + result="$res_hi$res_lo"U + else + result="$res_hi$res_lo"UL + fi + else + dnl Shouldn't happen, but who knows... + result='~(size_t)0' + fi + fi + AC_MSG_RESULT([$result]) + if test "$result" != yes; then + AC_DEFINE_UNQUOTED([SIZE_MAX], [$result], + [Define as the maximum value of type 'size_t', if the system doesn't define it.]) + fi +]) diff --git a/Branch-2.2/bacula/autoconf/gettext-macros/stdint_h.m4 b/Branch-2.2/bacula/autoconf/gettext-macros/stdint_h.m4 new file mode 100644 index 0000000000..3355f35aa3 --- /dev/null +++ b/Branch-2.2/bacula/autoconf/gettext-macros/stdint_h.m4 @@ -0,0 +1,26 @@ +# stdint_h.m4 serial 5 +dnl Copyright (C) 1997-2004 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Paul Eggert. + +# Define HAVE_STDINT_H_WITH_UINTMAX if exists, +# doesn't clash with , and declares uintmax_t. + +AC_DEFUN([gl_AC_HEADER_STDINT_H], +[ + AC_CACHE_CHECK([for stdint.h], gl_cv_header_stdint_h, + [AC_TRY_COMPILE( + [#include +#include ], + [uintmax_t i = (uintmax_t) -1;], + gl_cv_header_stdint_h=yes, + gl_cv_header_stdint_h=no)]) + if test $gl_cv_header_stdint_h = yes; then + AC_DEFINE_UNQUOTED(HAVE_STDINT_H_WITH_UINTMAX, 1, + [Define if exists, doesn't clash with , + and declares uintmax_t. ]) + fi +]) diff --git a/Branch-2.2/bacula/autoconf/gettext-macros/uintmax_t.m4 b/Branch-2.2/bacula/autoconf/gettext-macros/uintmax_t.m4 new file mode 100644 index 0000000000..bf83ed7464 --- /dev/null +++ b/Branch-2.2/bacula/autoconf/gettext-macros/uintmax_t.m4 @@ -0,0 +1,30 @@ +# uintmax_t.m4 serial 9 +dnl Copyright (C) 1997-2004 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Paul Eggert. + +AC_PREREQ(2.13) + +# Define uintmax_t to 'unsigned long' or 'unsigned long long' +# if it is not already defined in or . + +AC_DEFUN([gl_AC_TYPE_UINTMAX_T], +[ + AC_REQUIRE([gl_AC_HEADER_INTTYPES_H]) + AC_REQUIRE([gl_AC_HEADER_STDINT_H]) + if test $gl_cv_header_inttypes_h = no && test $gl_cv_header_stdint_h = no; then + AC_REQUIRE([gl_AC_TYPE_UNSIGNED_LONG_LONG]) + test $ac_cv_type_unsigned_long_long = yes \ + && ac_type='unsigned long long' \ + || ac_type='unsigned long' + AC_DEFINE_UNQUOTED(uintmax_t, $ac_type, + [Define to unsigned long or unsigned long long + if and don't define.]) + else + AC_DEFINE(HAVE_UINTMAX_T, 1, + [Define if you have the 'uintmax_t' type in or .]) + fi +]) diff --git a/Branch-2.2/bacula/autoconf/gettext-macros/ulonglong.m4 b/Branch-2.2/bacula/autoconf/gettext-macros/ulonglong.m4 new file mode 100644 index 0000000000..dee10ccc3e --- /dev/null +++ b/Branch-2.2/bacula/autoconf/gettext-macros/ulonglong.m4 @@ -0,0 +1,23 @@ +# ulonglong.m4 serial 4 +dnl Copyright (C) 1999-2004 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Paul Eggert. + +# Define HAVE_UNSIGNED_LONG_LONG if 'unsigned long long' works. + +AC_DEFUN([gl_AC_TYPE_UNSIGNED_LONG_LONG], +[ + AC_CACHE_CHECK([for unsigned long long], ac_cv_type_unsigned_long_long, + [AC_TRY_LINK([unsigned long long ull = 1ULL; int i = 63;], + [unsigned long long ullmax = (unsigned long long) -1; + return ull << i | ull >> i | ullmax / ull | ullmax % ull;], + ac_cv_type_unsigned_long_long=yes, + ac_cv_type_unsigned_long_long=no)]) + if test $ac_cv_type_unsigned_long_long = yes; then + AC_DEFINE(HAVE_UNSIGNED_LONG_LONG, 1, + [Define if you have the 'unsigned long long' type.]) + fi +]) diff --git a/Branch-2.2/bacula/autoconf/gettext-macros/wchar_t.m4 b/Branch-2.2/bacula/autoconf/gettext-macros/wchar_t.m4 new file mode 100644 index 0000000000..cde2129a97 --- /dev/null +++ b/Branch-2.2/bacula/autoconf/gettext-macros/wchar_t.m4 @@ -0,0 +1,20 @@ +# wchar_t.m4 serial 1 (gettext-0.12) +dnl Copyright (C) 2002-2003 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. +dnl Test whether has the 'wchar_t' type. +dnl Prerequisite: AC_PROG_CC + +AC_DEFUN([gt_TYPE_WCHAR_T], +[ + AC_CACHE_CHECK([for wchar_t], gt_cv_c_wchar_t, + [AC_TRY_COMPILE([#include + wchar_t foo = (wchar_t)'\0';], , + gt_cv_c_wchar_t=yes, gt_cv_c_wchar_t=no)]) + if test $gt_cv_c_wchar_t = yes; then + AC_DEFINE(HAVE_WCHAR_T, 1, [Define if you have the 'wchar_t' type.]) + fi +]) diff --git a/Branch-2.2/bacula/autoconf/gettext-macros/wint_t.m4 b/Branch-2.2/bacula/autoconf/gettext-macros/wint_t.m4 new file mode 100644 index 0000000000..b8fff9c86f --- /dev/null +++ b/Branch-2.2/bacula/autoconf/gettext-macros/wint_t.m4 @@ -0,0 +1,20 @@ +# wint_t.m4 serial 1 (gettext-0.12) +dnl Copyright (C) 2003 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. +dnl Test whether has the 'wint_t' type. +dnl Prerequisite: AC_PROG_CC + +AC_DEFUN([gt_TYPE_WINT_T], +[ + AC_CACHE_CHECK([for wint_t], gt_cv_c_wint_t, + [AC_TRY_COMPILE([#include + wint_t foo = (wchar_t)'\0';], , + gt_cv_c_wint_t=yes, gt_cv_c_wint_t=no)]) + if test $gt_cv_c_wint_t = yes; then + AC_DEFINE(HAVE_WINT_T, 1, [Define if you have the 'wint_t' type.]) + fi +]) diff --git a/Branch-2.2/bacula/autoconf/gettext-macros/xsize.m4 b/Branch-2.2/bacula/autoconf/gettext-macros/xsize.m4 new file mode 100644 index 0000000000..85bb721e43 --- /dev/null +++ b/Branch-2.2/bacula/autoconf/gettext-macros/xsize.m4 @@ -0,0 +1,13 @@ +# xsize.m4 serial 3 +dnl Copyright (C) 2003-2004 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl_XSIZE], +[ + dnl Prerequisites of lib/xsize.h. + AC_REQUIRE([gl_SIZE_MAX]) + AC_REQUIRE([AC_C_INLINE]) + AC_CHECK_HEADERS(stdint.h) +]) diff --git a/Branch-2.2/bacula/autoconf/gnome-macros/Makefile b/Branch-2.2/bacula/autoconf/gnome-macros/Makefile new file mode 100644 index 0000000000..a8037c36e2 --- /dev/null +++ b/Branch-2.2/bacula/autoconf/gnome-macros/Makefile @@ -0,0 +1,254 @@ +# Generated automatically from Makefile.in by configure. +# Makefile.in generated automatically by automake 1.4 from Makefile.am + +# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = /bin/sh + +srcdir = . +top_srcdir = .. +prefix = /usr/local +exec_prefix = ${prefix} + +bindir = ${exec_prefix}/bin +sbindir = ${exec_prefix}/sbin +libexecdir = ${exec_prefix}/libexec +datadir = ${prefix}/share +sysconfdir = ${prefix}/etc +sharedstatedir = ${prefix}/com +localstatedir = ${prefix}/var +libdir = ${exec_prefix}/lib +infodir = ${prefix}/info +mandir = ${prefix}/man +includedir = ${prefix}/include +oldincludedir = /usr/include + +DESTDIR = + +pkgdatadir = $(datadir)/bacula +pkglibdir = $(libdir)/bacula +pkgincludedir = $(includedir)/bacula + +top_builddir = .. + +ACLOCAL = aclocal -I macros +AUTOCONF = autoconf +AUTOMAKE = automake +AUTOHEADER = autoheader + +INSTALL = /usr/bin/install -c +INSTALL_PROGRAM = ${INSTALL} $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = ${INSTALL} -m 644 +INSTALL_SCRIPT = ${INSTALL_PROGRAM} +transform = s,x,x, + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +CATALOGS = +CATOBJEXT = .gmo +CC = gcc +DATADIRNAME = share +GENCAT = +GMOFILES = +GMSGFMT = /usr/bin/msgfmt +GNOMEGNORBA_LIBS = -rdynamic -lgnorba -lORBitCosNaming -lORBit -lIIOP -lORBitutil -lnsl -lgnomeui -lart_lgpl -lgdk_imlib -lSM -lICE -lgtk -lgdk -lgmodule -ldl -lXi -lXext -lX11 -lgnome -lgnomesupport -lesd -laudiofile -lm -ldb1 -lglib +GNOMEUI_LIBS = -rdynamic -lgnomeui -lart_lgpl -lgdk_imlib -lSM -lICE -lgtk -lgdk -lgmodule -ldl -lXi -lXext -lX11 -lgnome -lgnomesupport -lesd -laudiofile -lm -ldb1 -lglib +GNOME_APPLETS_LIBS = +GNOME_CAPPLET_LIBS = +GNOME_CONFIG = /usr/bin/gnome-config +GNOME_DOCKLETS_LIBS = +GNOME_INCLUDEDIR = -I/usr/include/gnome-1.0 -DNEED_GNOMESUPPORT_H -I/usr/lib/gnome-libs/include -I/usr/include/glib-1.2 -I/usr/lib/glib/include -I/usr/include/orbit-1.0 -I/usr/include/gtk-1.2 -I/usr/X11R6/include +GNOME_LIBDIR = -rdynamic -L/usr/lib -L/usr/X11R6/lib +GNOME_LIBS = -lgnome -lgnomesupport -lesd -laudiofile -lm -ldb1 -lglib +GNORBA_CFLAGS = -I/usr/include/gnome-1.0 -DNEED_GNOMESUPPORT_H -I/usr/lib/gnome-libs/include -I/usr/include/glib-1.2 -I/usr/lib/glib/include -I/usr/include/orbit-1.0 -I/usr/include/gtk-1.2 -I/usr/X11R6/include +GNORBA_LIBS = -rdynamic -L/usr/lib -L/usr/X11R6/lib -lgnorba -lORBitCosNaming -lORBit -lIIOP -lORBitutil -lnsl -lgnomeui -lart_lgpl -lgdk_imlib -lSM -lICE -lgtk -lgdk -lgmodule -ldl -lXi -lXext -lX11 -lgnome -lgnomesupport -lesd -laudiofile -lm -ldb1 -lglib +GTKXMHTML_LIBS = -rdynamic -lgtkxmhtml -lXpm -ljpeg -lpng -lz -lSM -lICE -lgtk -lgdk -lgmodule -lglib -ldl -lXi -lXext -lX11 -lm +GTK_CFLAGS = -I/usr/include/gtk-1.2 -I/usr/include/glib-1.2 -I/usr/lib/glib/include -I/usr/X11R6/include +GTK_CONFIG = /usr/bin/gtk-config +GTK_LIBS = -lSM -lICE -L/usr/lib -L/usr/X11R6/lib -lgtk -lgdk -rdynamic -lgmodule -lglib -ldl -lXi -lXext -lX11 -lm +GT_NO = +GT_YES = #YES# +INCLUDE_LOCALE_H = #include +INSTOBJEXT = .mo +INTLDEPS = +INTLLIBS = +INTLOBJS = +MAKEINFO = makeinfo +MKINSTALLDIRS = ./mkinstalldirs +MSGFMT = /usr/bin/msgfmt +ORBIT_CFLAGS = -I/usr/include/glib-1.2 -I/usr/lib/glib/include -I/usr/include/orbit-1.0 +ORBIT_CONFIG = /usr/bin/orbit-config +ORBIT_IDL = /usr/bin/orbit-idl +ORBIT_LIBS = -L/usr/lib -lORBitCosNaming -lORBit -lIIOP -lORBitutil -lglib -lnsl -lm +PACKAGE = bacula +POFILES = +POSUB = po +PTHREAD_LIB = -lpthread +RANLIB = ranlib +USE_INCLUDED_LIBINTL = no +USE_NLS = yes +VERSION = 0.1 +XPM_LIBS = -lXpm +ZVT_LIBS = -rdynamic -lzvt -lutil -lSM -lICE -lgdk_imlib -lgtk -lgdk -lgmodule -lglib -ldl -lXi -lXext -lX11 -lm +cflags_set = yes +cxxflags_set = @cxxflags_set@ +l = + +MACROS = aclocal-include.m4 compiler-flags.m4 curses.m4 gnome-bonobo-check.m4 gnome-fileutils.m4 gnome-ghttp-check.m4 gnome-gnorba-check.m4 gnome-guile-checks.m4 gnome-libgtop-check.m4 gnome-objc-checks.m4 gnome-orbit-check.m4 gnome-print-check.m4 gnome-pthread-check.m4 gnome-support.m4 gnome-undelfs.m4 gnome-vfs.m4 gnome-x-checks.m4 gnome-xml-check.m4 gnome.m4 gperf-check.m4 linger.m4 need-declaration.m4 + + +EXTRA_DIST = $(MACROS) gnome-common.m4 gnome-gettext.m4 autogen.sh +MAINTAINERCLEANFILES = macros.dep + +#gnome_aclocaldir = $(datadir)/aclocal/gnome-macros + +#gnome_aclocal_DATA = $(MACROS) gnome-macros.dep gnome-common.m4 gnome-gettext.m4 autogen.sh +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = ../config.h +CONFIG_CLEAN_FILES = +DATA = $(gnome_aclocal_DATA) + +DIST_COMMON = Makefile.am Makefile.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = gtar +GZIP_ENV = --best +all: all-redirect +.SUFFIXES: +$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --gnu macros/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + +install-gnome_aclocalDATA: $(gnome_aclocal_DATA) + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(gnome_aclocaldir) + @list='$(gnome_aclocal_DATA)'; for p in $$list; do \ + if test -f $(srcdir)/$$p; then \ + echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(gnome_aclocaldir)/$$p"; \ + $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(gnome_aclocaldir)/$$p; \ + else if test -f $$p; then \ + echo " $(INSTALL_DATA) $$p $(DESTDIR)$(gnome_aclocaldir)/$$p"; \ + $(INSTALL_DATA) $$p $(DESTDIR)$(gnome_aclocaldir)/$$p; \ + fi; fi; \ + done + +uninstall-gnome_aclocalDATA: + @$(NORMAL_UNINSTALL) + list='$(gnome_aclocal_DATA)'; for p in $$list; do \ + rm -f $(DESTDIR)$(gnome_aclocaldir)/$$p; \ + done +tags: TAGS +TAGS: + + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) + +subdir = macros + +distdir: $(DISTFILES) + here=`cd $(top_builddir) && pwd`; \ + top_distdir=`cd $(top_distdir) && pwd`; \ + distdir=`cd $(distdir) && pwd`; \ + cd $(top_srcdir) \ + && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu macros/Makefile + @for file in $(DISTFILES); do \ + d=$(srcdir); \ + if test -d $$d/$$file; then \ + cp -pr $$d/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done +info-am: +info: info-am +dvi-am: +dvi: dvi-am +check-am: all-am +check: check-am +installcheck-am: +installcheck: installcheck-am +install-exec-am: +install-exec: install-exec-am + +install-data-am: install-gnome_aclocalDATA +install-data: install-data-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-am +uninstall-am: uninstall-gnome_aclocalDATA +uninstall: uninstall-am +all-am: Makefile $(DATA) +all-redirect: all-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: + $(mkinstalldirs) $(DESTDIR)$(gnome_aclocaldir) + + +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +mostlyclean-am: mostlyclean-generic + +mostlyclean: mostlyclean-am + +clean-am: clean-generic mostlyclean-am + +clean: clean-am + +distclean-am: distclean-generic clean-am + +distclean: distclean-am + +maintainer-clean-am: maintainer-clean-generic distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +maintainer-clean: maintainer-clean-am + +.PHONY: uninstall-gnome_aclocalDATA install-gnome_aclocalDATA tags \ +distdir info-am info dvi-am dvi check check-am installcheck-am \ +installcheck install-exec-am install-exec install-data-am install-data \ +install-am install uninstall-am uninstall all-redirect all-am all \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +macros.dep: Makefile.am + @echo '$$(top_srcdir)/aclocal.m4: $(MACROS:%=macros/%)' > $@ + +#gnome-macros.dep: Makefile.am +# @echo '$$(top_srcdir)/aclocal.m4: $(MACROS:%=$(gnome_aclocaldir)/%)' > $@ + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/Branch-2.2/bacula/autoconf/gnome-macros/Makefile.am b/Branch-2.2/bacula/autoconf/gnome-macros/Makefile.am new file mode 100644 index 0000000000..f5cc043be2 --- /dev/null +++ b/Branch-2.2/bacula/autoconf/gnome-macros/Makefile.am @@ -0,0 +1,42 @@ +## Please update this variable if any new macros are created + +MACROS= \ + aclocal-include.m4 \ + compiler-flags.m4 \ + curses.m4 \ + gnome-bonobo-check.m4 \ + gnome-fileutils.m4 \ + gnome-ghttp-check.m4 \ + gnome-gnorba-check.m4 \ + gnome-guile-checks.m4 \ + gnome-libgtop-check.m4 \ + gnome-objc-checks.m4 \ + gnome-orbit-check.m4 \ + gnome-print-check.m4 \ + gnome-pthread-check.m4 \ + gnome-support.m4 \ + gnome-undelfs.m4 \ + gnome-vfs.m4 \ + gnome-x-checks.m4 \ + gnome-xml-check.m4 \ + gnome.m4 \ + gperf-check.m4 \ + linger.m4 \ + need-declaration.m4 + +EXTRA_DIST=$(MACROS) gnome-common.m4 gnome-gettext.m4 autogen.sh +MAINTAINERCLEANFILES=macros.dep + +@MAINT@macros.dep: Makefile.am +@MAINT@ @echo '$$(top_srcdir)/aclocal.m4: $(MACROS:%=macros/%)' > $@ + +if INSIDE_GNOME_COMMON +gnome_aclocaldir = $(datadir)/aclocal/gnome-macros + +gnome-macros.dep: Makefile.am + @echo '$$(top_srcdir)/aclocal.m4: $(MACROS:%=$(gnome_aclocaldir)/%)' > $@ + +gnome_aclocal_DATA = $(MACROS) gnome-macros.dep gnome-common.m4 \ + gnome-gettext.m4 autogen.sh + +endif diff --git a/Branch-2.2/bacula/autoconf/gnome-macros/Makefile.in b/Branch-2.2/bacula/autoconf/gnome-macros/Makefile.in new file mode 100644 index 0000000000..111a372c79 --- /dev/null +++ b/Branch-2.2/bacula/autoconf/gnome-macros/Makefile.in @@ -0,0 +1,254 @@ +# Makefile.in generated automatically by automake 1.4 from Makefile.am + +# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = .. + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +DATADIRNAME = @DATADIRNAME@ +GENCAT = @GENCAT@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +GNOMEGNORBA_LIBS = @GNOMEGNORBA_LIBS@ +GNOMEUI_LIBS = @GNOMEUI_LIBS@ +GNOME_APPLETS_LIBS = @GNOME_APPLETS_LIBS@ +GNOME_CAPPLET_LIBS = @GNOME_CAPPLET_LIBS@ +GNOME_CONFIG = @GNOME_CONFIG@ +GNOME_DOCKLETS_LIBS = @GNOME_DOCKLETS_LIBS@ +GNOME_INCLUDEDIR = @GNOME_INCLUDEDIR@ +GNOME_LIBDIR = @GNOME_LIBDIR@ +GNOME_LIBS = @GNOME_LIBS@ +GNORBA_CFLAGS = @GNORBA_CFLAGS@ +GNORBA_LIBS = @GNORBA_LIBS@ +GTKXMHTML_LIBS = @GTKXMHTML_LIBS@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_CONFIG = @GTK_CONFIG@ +GTK_LIBS = @GTK_LIBS@ +GT_NO = @GT_NO@ +GT_YES = @GT_YES@ +INCLUDE_LOCALE_H = @INCLUDE_LOCALE_H@ +INSTOBJEXT = @INSTOBJEXT@ +INTLDEPS = @INTLDEPS@ +INTLLIBS = @INTLLIBS@ +INTLOBJS = @INTLOBJS@ +MAKEINFO = @MAKEINFO@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MSGFMT = @MSGFMT@ +ORBIT_CFLAGS = @ORBIT_CFLAGS@ +ORBIT_CONFIG = @ORBIT_CONFIG@ +ORBIT_IDL = @ORBIT_IDL@ +ORBIT_LIBS = @ORBIT_LIBS@ +PACKAGE = @PACKAGE@ +POFILES = @POFILES@ +POSUB = @POSUB@ +PTHREAD_LIB = @PTHREAD_LIB@ +RANLIB = @RANLIB@ +USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +XPM_LIBS = @XPM_LIBS@ +ZVT_LIBS = @ZVT_LIBS@ +cflags_set = @cflags_set@ +cxxflags_set = @cxxflags_set@ +l = @l@ + +MACROS = aclocal-include.m4 compiler-flags.m4 curses.m4 gnome-bonobo-check.m4 gnome-fileutils.m4 gnome-ghttp-check.m4 gnome-gnorba-check.m4 gnome-guile-checks.m4 gnome-libgtop-check.m4 gnome-objc-checks.m4 gnome-orbit-check.m4 gnome-print-check.m4 gnome-pthread-check.m4 gnome-support.m4 gnome-undelfs.m4 gnome-vfs.m4 gnome-x-checks.m4 gnome-xml-check.m4 gnome.m4 gperf-check.m4 linger.m4 need-declaration.m4 + + +EXTRA_DIST = $(MACROS) gnome-common.m4 gnome-gettext.m4 autogen.sh +MAINTAINERCLEANFILES = macros.dep + +@INSIDE_GNOME_COMMON_TRUE@gnome_aclocaldir = $(datadir)/aclocal/gnome-macros + +@INSIDE_GNOME_COMMON_TRUE@gnome_aclocal_DATA = $(MACROS) gnome-macros.dep gnome-common.m4 gnome-gettext.m4 autogen.sh +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = ../config.h +CONFIG_CLEAN_FILES = +DATA = $(gnome_aclocal_DATA) + +DIST_COMMON = Makefile.am Makefile.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = gtar +GZIP_ENV = --best +all: all-redirect +.SUFFIXES: +$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --gnu macros/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + +install-gnome_aclocalDATA: $(gnome_aclocal_DATA) + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(gnome_aclocaldir) + @list='$(gnome_aclocal_DATA)'; for p in $$list; do \ + if test -f $(srcdir)/$$p; then \ + echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(gnome_aclocaldir)/$$p"; \ + $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(gnome_aclocaldir)/$$p; \ + else if test -f $$p; then \ + echo " $(INSTALL_DATA) $$p $(DESTDIR)$(gnome_aclocaldir)/$$p"; \ + $(INSTALL_DATA) $$p $(DESTDIR)$(gnome_aclocaldir)/$$p; \ + fi; fi; \ + done + +uninstall-gnome_aclocalDATA: + @$(NORMAL_UNINSTALL) + list='$(gnome_aclocal_DATA)'; for p in $$list; do \ + rm -f $(DESTDIR)$(gnome_aclocaldir)/$$p; \ + done +tags: TAGS +TAGS: + + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) + +subdir = macros + +distdir: $(DISTFILES) + here=`cd $(top_builddir) && pwd`; \ + top_distdir=`cd $(top_distdir) && pwd`; \ + distdir=`cd $(distdir) && pwd`; \ + cd $(top_srcdir) \ + && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu macros/Makefile + @for file in $(DISTFILES); do \ + d=$(srcdir); \ + if test -d $$d/$$file; then \ + cp -pr $$d/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done +info-am: +info: info-am +dvi-am: +dvi: dvi-am +check-am: all-am +check: check-am +installcheck-am: +installcheck: installcheck-am +install-exec-am: +install-exec: install-exec-am + +install-data-am: install-gnome_aclocalDATA +install-data: install-data-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-am +uninstall-am: uninstall-gnome_aclocalDATA +uninstall: uninstall-am +all-am: Makefile $(DATA) +all-redirect: all-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: + $(mkinstalldirs) $(DESTDIR)$(gnome_aclocaldir) + + +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +mostlyclean-am: mostlyclean-generic + +mostlyclean: mostlyclean-am + +clean-am: clean-generic mostlyclean-am + +clean: clean-am + +distclean-am: distclean-generic clean-am + +distclean: distclean-am + +maintainer-clean-am: maintainer-clean-generic distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +maintainer-clean: maintainer-clean-am + +.PHONY: uninstall-gnome_aclocalDATA install-gnome_aclocalDATA tags \ +distdir info-am info dvi-am dvi check check-am installcheck-am \ +installcheck install-exec-am install-exec install-data-am install-data \ +install-am install uninstall-am uninstall all-redirect all-am all \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +macros.dep: Makefile.am + @echo '$$(top_srcdir)/aclocal.m4: $(MACROS:%=macros/%)' > $@ + +@INSIDE_GNOME_COMMON_TRUE@gnome-macros.dep: Makefile.am +@INSIDE_GNOME_COMMON_TRUE@ @echo '$$(top_srcdir)/aclocal.m4: $(MACROS:%=$(gnome_aclocaldir)/%)' > $@ + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/Branch-2.2/bacula/autoconf/gnome-macros/aclocal-include.m4 b/Branch-2.2/bacula/autoconf/gnome-macros/aclocal-include.m4 new file mode 100644 index 0000000000..43f9dbc48a --- /dev/null +++ b/Branch-2.2/bacula/autoconf/gnome-macros/aclocal-include.m4 @@ -0,0 +1,16 @@ +# aclocal-include.m4 +# +# This macro adds the name macrodir to the set of directories +# that `aclocal' searches for macros. + +# serial 1 + +dnl AM_ACLOCAL_INCLUDE(macrodir) +AC_DEFUN([AM_ACLOCAL_INCLUDE], +[ + AM_CONDITIONAL(INSIDE_GNOME_COMMON, false) + + test -n "$ACLOCAL_FLAGS" && ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS" + + for k in $1 ; do ACLOCAL="$ACLOCAL -I $k" ; done +]) diff --git a/Branch-2.2/bacula/autoconf/gnome-macros/autogen.sh b/Branch-2.2/bacula/autoconf/gnome-macros/autogen.sh new file mode 100644 index 0000000000..71f7dfcf92 --- /dev/null +++ b/Branch-2.2/bacula/autoconf/gnome-macros/autogen.sh @@ -0,0 +1,207 @@ +#!/bin/sh +# Run this to generate all the initial makefiles, etc. + +DIE=0 + +if [ -n "$GNOME2_PATH" ]; then + ACLOCAL_FLAGS="-I $GNOME2_PATH/share/aclocal $ACLOCAL_FLAGS" + PATH="$GNOME2_PATH/bin:$PATH" + export PATH +fi + +(autoconf --version) < /dev/null > /dev/null 2>&1 || { + echo + echo "**Error**: You must have \`autoconf' installed to compile $PKG_NAME." + echo "Download the appropriate package for your distribution," + echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/" + DIE=1 +} + +(grep "^AC_PROG_INTLTOOL" $srcdir/configure.in >/dev/null) && { + (intltoolize --version) < /dev/null > /dev/null 2>&1 || { + echo + echo "**Error**: You must have \`intltoolize' installed to compile $PKG_NAME." + echo "Get ftp://ftp.gnome.org/pub/GNOME/stable/sources/intltool/intltool-0.10.tar.gz" + echo "(or a newer version if it is available)" + DIE=1 + } +} + +(grep "^AM_PROG_XML_I18N_TOOLS" $srcdir/configure.in >/dev/null) && { + (xml-i18n-toolize --version) < /dev/null > /dev/null 2>&1 || { + echo + echo "**Error**: You must have \`xml-i18n-toolize' installed to compile $PKG_NAME." + echo "Get ftp://ftp.gnome.org/pub/GNOME/stable/sources/xml-i18n-tools/xml-i18n-tools-0.9.tar.gz" + echo "(or a newer version of xml-i18n-tools or intltool if it is available)" + DIE=1 + } +} + +(grep "^AM_PROG_LIBTOOL" $srcdir/configure.in >/dev/null) && { + (libtool --version) < /dev/null > /dev/null 2>&1 || { + echo + echo "**Error**: You must have \`libtool' installed to compile $PKG_NAME." + echo "Get ftp://ftp.gnu.org/pub/gnu/libtool-1.2d.tar.gz" + echo "(or a newer version if it is available)" + DIE=1 + } +} + +#grep "^AM_GNU_GETTEXT" $srcdir/configure.in >/dev/null && { +# grep "sed.*POTFILES" $srcdir/configure.in >/dev/null || \ +# (gettext --version) < /dev/null > /dev/null 2>&1 || { +# echo +# echo "**Error**: You must have \`gettext' installed to compile $PKG_NAME." +# echo "Get ftp://ftp.gnu.org/pub/gnu/gettext/gettext-0.10.39.tar.gz" +# echo "(or a newer version if it is available)" +# DIE=1 +# } +#} + +#grep "^AM_GNOME_GETTEXT" $srcdir/configure.in >/dev/null && { +# grep "sed.*POTFILES" $srcdir/configure.in >/dev/null || \ +# (gettext --version) < /dev/null > /dev/null 2>&1 || { +# echo +# echo "**Error**: You must have \`gettext' installed to compile $PKG_NAME." +# echo "Get ftp://ftp.gnu.org/pub/gnu/gettext/gettext-0.10.39.tar.gz" +# echo "(or a newer version if it is available)" +# DIE=1 +# } +#} + +(automake --version) < /dev/null > /dev/null 2>&1 || { + echo + echo "**Error**: You must have \`automake' installed to compile $PKG_NAME." + echo "Get ftp://ftp.gnu.org/pub/gnu/automake-1.3.tar.gz" + echo "(or a newer version if it is available)" + DIE=1 + NO_AUTOMAKE=yes +} + + +# if no automake, don't bother testing for aclocal +test -n "$NO_AUTOMAKE" || (aclocal --version) < /dev/null > /dev/null 2>&1 || { + echo + echo "**Error**: Missing \`aclocal'. The version of \`automake'" + echo "installed doesn't appear recent enough." + echo "Get ftp://ftp.gnu.org/pub/gnu/automake-1.3.tar.gz" + echo "(or a newer version if it is available)" + DIE=1 +} + +if test "$DIE" -eq 1; then + exit 1 +fi + +if test -z "$*"; then + echo "**Warning**: I am going to run \`configure' with no arguments." + echo "If you wish to pass any to it, please specify them on the" + echo \`$0\'" command line." + echo +fi + +case $CC in +xlc ) + am_opt=--include-deps;; +esac + +for coin in `find $srcdir -name configure.in -print` +do + dr=`dirname $coin` + if test -f $dr/NO-AUTO-GEN; then + echo skipping $dr -- flagged as no auto-gen + else + echo processing $dr + macrodirs=`sed -n -e 's,AM_ACLOCAL_INCLUDE(\(.*\)),\1,gp' < $coin` + ( cd $dr + macrosdir=`find . -name macros -print` + for i in $macrodirs; do + if test -f $i/gnome-gettext.m4; then + DELETEFILES="$DELETEFILES $i/gnome-gettext.m4" + fi + done + + echo "deletefiles is $DELETEFILES" + aclocalinclude="$ACLOCAL_FLAGS" + for k in $aclocalinclude; do + if test -d $k; then + if [ -f $k/gnome.m4 -a "$GNOME_INTERFACE_VERSION" = "1" ]; then + rm -f $DELETEFILES + fi + fi + done + for k in $macrodirs; do + if test -d $k; then + aclocalinclude="$aclocalinclude -I $k" + if [ -f $k/gnome.m4 -a "$GNOME_INTERFACE_VERSION" = "1" ]; then + rm -f $DELETEFILES + fi + fi + done + if grep "^AM_GNU_GETTEXT" configure.in >/dev/null; then + if grep "sed.*POTFILES" configure.in >/dev/null; then + : do nothing -- we still have an old unmodified configure.in + else + echo "Creating $dr/aclocal.m4 ..." + test -r $dr/aclocal.m4 || touch $dr/aclocal.m4 + echo "Running gettextize... Ignore non-fatal messages." + echo "no" | gettextize --force --copy + echo "Making $dr/aclocal.m4 writable ..." + test -r $dr/aclocal.m4 && chmod u+w $dr/aclocal.m4 + fi + fi + if grep "^AM_GNOME_GETTEXT" configure.in >/dev/null; then + echo "Creating $dr/aclocal.m4 ..." + test -r $dr/aclocal.m4 || touch $dr/aclocal.m4 + echo "Running gettextize... Ignore non-fatal messages." + echo "no" | gettextize --force --copy + echo "Making $dr/aclocal.m4 writable ..." + test -r $dr/aclocal.m4 && chmod u+w $dr/aclocal.m4 + fi + if grep "^AC_PROG_INTLTOOL" configure.in >/dev/null; then + echo "Running intltoolize..." + intltoolize --copy --force --automake + fi + if grep "^AM_PROG_XML_I18N_TOOLS" configure.in >/dev/null; then + echo "Running xml-i18n-toolize..." + xml-i18n-toolize --copy --force --automake + fi + if grep "^AM_PROG_LIBTOOL" configure.in >/dev/null; then + if test -z "$NO_LIBTOOLIZE" ; then + echo "Running libtoolize..." + libtoolize --force --copy + fi + fi + echo "Running aclocal $aclocalinclude ..." + aclocal $aclocalinclude || { + echo + echo "**Error**: aclocal failed. This may mean that you have not" + echo "installed all of the packages you need, or you may need to" + echo "set ACLOCAL_FLAGS to include \"-I \$prefix/share/aclocal\"" + echo "for the prefix where you installed the packages whose" + echo "macros were not found" + exit 1 + } + + if grep "^AM_CONFIG_HEADER" configure.in >/dev/null; then + echo "Running autoheader..." + autoheader || { echo "**Error**: autoheader failed."; exit 1; } + fi + echo "Running automake --gnu $am_opt ..." + automake --add-missing --gnu $am_opt || + { echo "**Error**: automake failed."; exit 1; } + echo "Running autoconf ..." + autoconf || { echo "**Error**: autoconf failed."; exit 1; } + ) || exit 1 + fi +done + +conf_flags="--enable-maintainer-mode --enable-compile-warnings" #--enable-iso-c + +if test x$NOCONFIGURE = x; then + echo Running $srcdir/configure $conf_flags "$@" ... + $srcdir/configure $conf_flags "$@" \ + && echo Now type \`make\' to compile $PKG_NAME || exit 1 +else + echo Skipping configure process. +fi diff --git a/Branch-2.2/bacula/autoconf/gnome-macros/compiler-flags.m4 b/Branch-2.2/bacula/autoconf/gnome-macros/compiler-flags.m4 new file mode 100644 index 0000000000..63f8e2e6ac --- /dev/null +++ b/Branch-2.2/bacula/autoconf/gnome-macros/compiler-flags.m4 @@ -0,0 +1,109 @@ +dnl GNOME_COMPILE_WARNINGS +dnl Turn on many useful compiler warnings +dnl For now, only works on GCC +AC_DEFUN([GNOME_COMPILE_WARNINGS],[ + AC_ARG_ENABLE(compile-warnings, + [ --enable-compile-warnings=[no/minimum/yes] Turn on compiler warnings.],,enable_compile_warnings=minimum) + + AC_MSG_CHECKING(what warning flags to pass to the C compiler) + warnCFLAGS= + if test "x$GCC" != xyes; then + enable_compile_warnings=no + fi + + if test "x$enable_compile_warnings" != "xno"; then + if test "x$GCC" = "xyes"; then + case " $CFLAGS " in + *[\ \ ]-Wall[\ \ ]*) ;; + *) warnCFLAGS="-Wall -Wunused" ;; + esac + + ## -W is not all that useful. And it cannot be controlled + ## with individual -Wno-xxx flags, unlike -Wall + if test "x$enable_compile_warnings" = "xyes"; then + warnCFLAGS="$warnCFLAGS -Wmissing-prototypes -Wmissing-declarations" + fi + fi + fi + AC_MSG_RESULT($warnCFLAGS) + + AC_ARG_ENABLE(iso-c, + [ --enable-iso-c Try to warn if code is not ISO C ],, + enable_iso_c=no) + + AC_MSG_CHECKING(what language compliance flags to pass to the C compiler) + complCFLAGS= + if test "x$enable_iso_c" != "xno"; then + if test "x$GCC" = "xyes"; then + case " $CFLAGS " in + *[\ \ ]-ansi[\ \ ]*) ;; + *) complCFLAGS="$complCFLAGS -ansi" ;; + esac + + case " $CFLAGS " in + *[\ \ ]-pedantic[\ \ ]*) ;; + *) complCFLAGS="$complCFLAGS -pedantic" ;; + esac + fi + fi + AC_MSG_RESULT($complCFLAGS) + if test "x$cflags_set" != "xyes"; then + CFLAGS="$CFLAGS $warnCFLAGS $complCFLAGS" + cflags_set=yes + AC_SUBST(cflags_set) + fi +]) + +dnl For C++, do basically the same thing. + +AC_DEFUN([GNOME_CXX_WARNINGS],[ + AC_ARG_ENABLE(cxx-warnings, + [ --enable-cxx-warnings=[no/minimum/yes] Turn on compiler warnings.],,enable_cxx_warnings=minimum) + + AC_MSG_CHECKING(what warning flags to pass to the C++ compiler) + warnCXXFLAGS= + if test "x$GCC" != xyes; then + enable_compile_warnings=no + fi + if test "x$enable_cxx_warnings" != "xno"; then + if test "x$GCC" = "xyes"; then + case " $CXXFLAGS " in + *[\ \ ]-Wall[\ \ ]*) ;; + *) warnCXXFLAGS="-Wall -Wno-unused" ;; + esac + + ## -W is not all that useful. And it cannot be controlled + ## with individual -Wno-xxx flags, unlike -Wall + if test "x$enable_cxx_warnings" = "xyes"; then + warnCXXFLAGS="$warnCXXFLAGS -Wmissing-prototypes -Wmissing-declarations -Wshadow -Woverloaded-virtual" + fi + fi + fi + AC_MSG_RESULT($warnCXXFLAGS) + + AC_ARG_ENABLE(iso-cxx, + [ --enable-iso-cxx Try to warn if code is not ISO C++ ],, + enable_iso_cxx=no) + + AC_MSG_CHECKING(what language compliance flags to pass to the C++ compiler) + complCXXFLAGS= + if test "x$enable_iso_cxx" != "xno"; then + if test "x$GCC" = "xyes"; then + case " $CXXFLAGS " in + *[\ \ ]-ansi[\ \ ]*) ;; + *) complCXXFLAGS="$complCXXFLAGS -ansi" ;; + esac + + case " $CXXFLAGS " in + *[\ \ ]-pedantic[\ \ ]*) ;; + *) complCXXFLAGS="$complCXXFLAGS -pedantic" ;; + esac + fi + fi + AC_MSG_RESULT($complCXXFLAGS) + if test "x$cxxflags_set" != "xyes"; then + CXXFLAGS="$CXXFLAGS $warnCXXFLAGS $complCXXFLAGS" + cxxflags_set=yes + AC_SUBST(cxxflags_set) + fi +]) diff --git a/Branch-2.2/bacula/autoconf/gnome-macros/curses.m4 b/Branch-2.2/bacula/autoconf/gnome-macros/curses.m4 new file mode 100644 index 0000000000..5307e13d38 --- /dev/null +++ b/Branch-2.2/bacula/autoconf/gnome-macros/curses.m4 @@ -0,0 +1,318 @@ +dnl Curses detection: Munged from Midnight Commander's configure.in +dnl +dnl What it does: +dnl ============= +dnl +dnl - Determine which version of curses is installed on your system +dnl and set the -I/-L/-l compiler entries and add a few preprocessor +dnl symbols +dnl - Do an AC_SUBST on the CURSES_INCLUDEDIR and CURSES_LIBS so that +dnl @CURSES_INCLUDEDIR@ and @CURSES_LIBS@ will be available in +dnl Makefile.in's +dnl - Modify the following configure variables (these are the only +dnl curses.m4 variables you can access from within configure.in) +dnl CURSES_INCLUDEDIR - contains -I's and possibly -DRENAMED_CURSES if +dnl an ncurses.h that's been renamed to curses.h +dnl is found. +dnl CURSES_LIBS - sets -L and -l's appropriately +dnl CFLAGS - if --with-sco, add -D_SVID3 +dnl has_curses - exports result of tests to rest of configure +dnl +dnl Usage: +dnl ====== +dnl 1) Add lines indicated below to acconfig.h +dnl 2) call AC_CHECK_CURSES after AC_PROG_CC in your configure.in +dnl 3) Instead of #include you should use the following to +dnl properly locate ncurses or curses header file +dnl +dnl #if defined(USE_NCURSES) && !defined(RENAMED_NCURSES) +dnl #include +dnl #else +dnl #include +dnl #endif +dnl +dnl 4) Make sure to add @CURSES_INCLUDEDIR@ to your preprocessor flags +dnl 5) Make sure to add @CURSES_LIBS@ to your linker flags or LIBS +dnl +dnl Notes with automake: +dnl - call AM_CONDITIONAL(HAS_CURSES, test "$has_curses" = true) from +dnl configure.in +dnl - your Makefile.am can look something like this +dnl ----------------------------------------------- +dnl INCLUDES= blah blah blah $(CURSES_INCLUDEDIR) +dnl if HAS_CURSES +dnl CURSES_TARGETS=name_of_curses_prog +dnl endif +dnl bin_PROGRAMS = other_programs $(CURSES_TARGETS) +dnl other_programs_SOURCES = blah blah blah +dnl name_of_curses_prog_SOURCES = blah blah blah +dnl other_programs_LDADD = blah +dnl name_of_curses_prog_LDADD = blah $(CURSES_LIBS) +dnl ----------------------------------------------- +dnl +dnl +dnl The following lines should be added to acconfig.h: +dnl ================================================== +dnl +dnl /*=== Curses version detection defines ===*/ +dnl /* Found some version of curses that we're going to use */ +dnl #undef HAS_CURSES +dnl +dnl /* Use SunOS SysV curses? */ +dnl #undef USE_SUNOS_CURSES +dnl +dnl /* Use old BSD curses - not used right now */ +dnl #undef USE_BSD_CURSES +dnl +dnl /* Use SystemV curses? */ +dnl #undef USE_SYSV_CURSES +dnl +dnl /* Use Ncurses? */ +dnl #undef USE_NCURSES +dnl +dnl /* If you Curses does not have color define this one */ +dnl #undef NO_COLOR_CURSES +dnl +dnl /* Define if you want to turn on SCO-specific code */ +dnl #undef SCO_FLAVOR +dnl +dnl /* Set to reflect version of ncurses * +dnl * 0 = version 1.* +dnl * 1 = version 1.9.9g +dnl * 2 = version 4.0/4.1 */ +dnl #undef NCURSES_970530 +dnl +dnl /*=== End new stuff for acconfig.h ===*/ +dnl + + +AC_DEFUN([AC_CHECK_CURSES],[ + search_ncurses=true + screen_manager="" + has_curses=false + + CFLAGS=${CFLAGS--O} + + AC_SUBST(CURSES_LIBS) + AC_SUBST(CURSES_INCLUDEDIR) + + AC_ARG_WITH(sco, + [ --with-sco Use this to turn on SCO-specific code],[ + if test x$withval = xyes; then + AC_DEFINE(SCO_FLAVOR) + CFLAGS="$CFLAGS -D_SVID3" + fi + ]) + + AC_ARG_WITH(sunos-curses, + [ --with-sunos-curses Used to force SunOS 4.x curses],[ + if test x$withval = xyes; then + AC_USE_SUNOS_CURSES + fi + ]) + + AC_ARG_WITH(osf1-curses, + [ --with-osf1-curses Used to force OSF/1 curses],[ + if test x$withval = xyes; then + AC_USE_OSF1_CURSES + fi + ]) + + AC_ARG_WITH(vcurses, + [ --with-vcurses[=incdir] Used to force SysV curses], + if test x$withval != xyes; then + CURSES_INCLUDEDIR="-I$withval" + fi + AC_USE_SYSV_CURSES + ) + + AC_ARG_WITH(ncurses, + [ --with-ncurses[=dir] Compile with ncurses/locate base dir], + if test x$withval = xno ; then + search_ncurses=false + elif test x$withval != xyes ; then + CURSES_LIBS="$LIBS -L$withval/lib -lncurses" + CURSES_INCLUDEDIR="-I$withval/include" + search_ncurses=false + screen_manager="ncurses" + AC_DEFINE(USE_NCURSES) + AC_DEFINE(HAS_CURSES) + has_curses=true + fi + ) + + if $search_ncurses + then + AC_SEARCH_NCURSES() + fi + + +]) + + +AC_DEFUN([AC_USE_SUNOS_CURSES], [ + search_ncurses=false + screen_manager="SunOS 4.x /usr/5include curses" + AC_MSG_RESULT(Using SunOS 4.x /usr/5include curses) + AC_DEFINE(USE_SUNOS_CURSES) + AC_DEFINE(HAS_CURSES) + has_curses=true + AC_DEFINE(NO_COLOR_CURSES) + AC_DEFINE(USE_SYSV_CURSES) + CURSES_INCLUDEDIR="-I/usr/5include" + CURSES_LIBS="/usr/5lib/libcurses.a /usr/5lib/libtermcap.a" + AC_MSG_RESULT(Please note that some screen refreshs may fail) +]) + +AC_DEFUN([AC_USE_OSF1_CURSES], [ + AC_MSG_RESULT(Using OSF1 curses) + search_ncurses=false + screen_manager="OSF1 curses" + AC_DEFINE(HAS_CURSES) + has_curses=true + AC_DEFINE(NO_COLOR_CURSES) + AC_DEFINE(USE_SYSV_CURSES) + CURSES_LIBS="-lcurses" +]) + +AC_DEFUN([AC_USE_SYSV_CURSES], [ + AC_MSG_RESULT(Using SysV curses) + AC_DEFINE(HAS_CURSES) + has_curses=true + AC_DEFINE(USE_SYSV_CURSES) + search_ncurses=false + screen_manager="SysV/curses" + CURSES_LIBS="-lcurses" +]) + +dnl AC_ARG_WITH(bsd-curses, +dnl [--with-bsd-curses Used to compile with bsd curses, not very fancy], +dnl search_ncurses=false +dnl screen_manager="Ultrix/cursesX" +dnl if test $system = ULTRIX +dnl then +dnl THIS_CURSES=cursesX +dnl else +dnl THIS_CURSES=curses +dnl fi +dnl +dnl CURSES_LIBS="-l$THIS_CURSES -ltermcap" +dnl AC_DEFINE(HAS_CURSES) +dnl has_curses=true +dnl AC_DEFINE(USE_BSD_CURSES) +dnl AC_MSG_RESULT(Please note that some screen refreshs may fail) +dnl AC_MSG_WARN(Use of the bsdcurses extension has some) +dnl AC_MSG_WARN(display/input problems.) +dnl AC_MSG_WARN(Reconsider using xcurses) +dnl) + + +dnl +dnl Parameters: directory filename cureses_LIBS curses_INCLUDEDIR nicename +dnl +AC_DEFUN([AC_NCURSES], [ + if $search_ncurses + then + if test -f $1/$2 + then + AC_MSG_RESULT(Found ncurses on $1/$2) + CURSES_LIBS="$3" + CURSES_INCLUDEDIR="$4" + search_ncurses=false + screen_manager=$5 + AC_DEFINE(HAS_CURSES) + has_curses=true + AC_DEFINE(USE_NCURSES) + fi + fi +]) + +AC_DEFUN([AC_SEARCH_NCURSES], [ + AC_CHECKING("location of ncurses.h file") + + AC_NCURSES(/usr/include, ncurses.h, -lncurses,, "ncurses on /usr/include") + AC_NCURSES(/usr/include/ncurses, ncurses.h, -lncurses, -I/usr/include/ncurses, "ncurses on /usr/include/ncurses") + AC_NCURSES(/usr/local/include, ncurses.h, -L/usr/local/lib -lncurses, -I/usr/local/include, "ncurses on /usr/local") + AC_NCURSES(/usr/local/include/ncurses, ncurses.h, -L/usr/local/lib -L/usr/local/lib/ncurses -lncurses, -I/usr/local/include/ncurses, "ncurses on /usr/local/include/ncurses") + + AC_NCURSES(/usr/local/include/ncurses, curses.h, -L/usr/local/lib -lncurses, -I/usr/local/include/ncurses -DRENAMED_NCURSES, "renamed ncurses on /usr/local/.../ncurses") + + AC_NCURSES(/usr/include/ncurses, curses.h, -lncurses, -I/usr/include/ncurses -DRENAMED_NCURSES, "renamed ncurses on /usr/include/ncurses") + + dnl + dnl We couldn't find ncurses, try SysV curses + dnl + if $search_ncurses + then + AC_EGREP_HEADER(init_color, /usr/include/curses.h, + AC_USE_SYSV_CURSES) + AC_EGREP_CPP(USE_NCURSES,[ +#include +#ifdef __NCURSES_H +#undef USE_NCURSES +USE_NCURSES +#endif +],[ + CURSES_INCLUDEDIR="$CURSES_INCLUDEDIR -DRENAMED_NCURSES" + AC_DEFINE(HAS_CURSES) + has_curses=true + AC_DEFINE(USE_NCURSES) + search_ncurses=false + screen_manager="ncurses installed as curses" +]) + fi + + dnl + dnl Try SunOS 4.x /usr/5{lib,include} ncurses + dnl The flags USE_SUNOS_CURSES, USE_BSD_CURSES and BUGGY_CURSES + dnl should be replaced by a more fine grained selection routine + dnl + if $search_ncurses + then + if test -f /usr/5include/curses.h + then + AC_USE_SUNOS_CURSES + fi + else + # check for ncurses version, to properly ifdef mouse-fix + AC_MSG_CHECKING(for ncurses version) + ncurses_version=unknown +cat > conftest.$ac_ext < +#else +#include +#endif +#undef VERSION +VERSION:NCURSES_VERSION +EOF + if (eval "$ac_cpp conftest.$ac_ext") 2>&AC_FD_CC | + egrep "VERSION:" >conftest.out 2>&1; then +changequote(,)dnl + ncurses_version=`cat conftest.out|sed -e 's/^[^"]*"//' -e 's/".*//'` +changequote([,])dnl + fi + rm -rf conftest* + AC_MSG_RESULT($ncurses_version) + case "$ncurses_version" in +changequote(,)dnl + 4.[01]) +changequote([,])dnl + AC_DEFINE(NCURSES_970530,2) + ;; + 1.9.9g) + AC_DEFINE(NCURSES_970530,1) + ;; + 1*) + AC_DEFINE(NCURSES_970530,0) + ;; + esac + fi +]) + + + + + diff --git a/Branch-2.2/bacula/autoconf/gnome-macros/gnome-bonobo-check.m4 b/Branch-2.2/bacula/autoconf/gnome-macros/gnome-bonobo-check.m4 new file mode 100644 index 0000000000..daa109c0f4 --- /dev/null +++ b/Branch-2.2/bacula/autoconf/gnome-macros/gnome-bonobo-check.m4 @@ -0,0 +1,166 @@ +# Configure paths for Bonobo +# Miguel de Icaza, 99-04-12 +# Stolen from Chris Lahey 99-2-5 +# stolen from Manish Singh again +# stolen back from Frank Belew +# stolen from Manish Singh +# Shamelessly stolen from Owen Taylor + +dnl AM_PATH_BONOBO ([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]]) +dnl Test for Bonobo, and define BONOBO_CFLAGS and BONOBO_LIBS +dnl +AC_DEFUN([AM_PATH_BONOBO], +[ +dnl +dnl Get the cflags and libraries from the gnome-config script +dnl +AC_ARG_WITH(bonobo-prefix,[ --with-bonobo-prefix=PFX Prefix where Bonobo is installed (optional)], + bonobo_prefix="$withval", bonobo_prefix="") +AC_ARG_WITH(bonobo-exec-prefix,[ --with-bonobo-exec-prefix=PFX Exec prefix where Bonobo is installed (optional)], + bonobo_exec_prefix="$withval", bonobo_exec_prefix="") +AC_ARG_ENABLE(bonobotest, [ --disable-bonobotest Do not try to compile and run a test Bonobo program], + , enable_bonobotest=yes) + + if test x$bonobo_exec_prefix != x ; then + bonobo_args="$bonobo_args --exec-prefix=$bonobo_exec_prefix" + if test x${GNOME_CONFIG+set} != xset ; then + GNOME_CONFIG=$bonobo_exec_prefix/bin/gnome-config + fi + fi + if test x$bonobo_prefix != x ; then + bonobo_args="$bonobo_args --prefix=$bonobo_prefix" + if test x${GNOME_CONFIG+set} != xset ; then + GNOME_CONFIG=$bonobo_prefix/bin/gnome-config + fi + fi + + AC_PATH_PROG(GNOME_CONFIG, gnome-config, no) + min_bonobo_version=ifelse([$1], ,0.1.0,$1) + AC_MSG_CHECKING(for BONOBO - version >= $min_bonobo_version) + no_bonobo="" + if test "$GNOME_CONFIG" = "no" ; then + no_bonobo=yes + else + BONOBO_CFLAGS=`$GNOME_CONFIG $bonoboconf_args --cflags bonobo bonobox` + BONOBO_LIBS=`$GNOME_CONFIG $bonoboconf_args --libs bonobo bonobox` + + bonobo_major_version=`$GNOME_CONFIG $bonobo_args --version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` + bonobo_minor_version=`$GNOME_CONFIG $bonobo_args --version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` + bonobo_micro_version=`$GNOME_CONFIG $bonobo_config_args --version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` + if test "x$enable_bonobotest" = "xyes" ; then + ac_save_CFLAGS="$CFLAGS" + ac_save_LIBS="$LIBS" + CFLAGS="$CFLAGS $BONOBO_CFLAGS" + LIBS="$LIBS $BONOBO_LIBS" +dnl +dnl Now check if the installed BONOBO is sufficiently new. (Also sanity +dnl checks the results of gnome-config to some extent +dnl + rm -f conf.bonobotest + AC_TRY_RUN([ +#include +#include +#include +#include + +static char* +my_strdup (char *str) +{ + char *new_str; + + if (str) + { + new_str = malloc ((strlen (str) + 1) * sizeof(char)); + strcpy (new_str, str); + } + else + new_str = NULL; + + return new_str; +} + +int main () +{ + int major, minor, micro; + char *tmp_version; + + system ("touch conf.bonobotest"); + bonobo_object_get_type (); + return 0; +} + +],, no_bonobo=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) + CFLAGS="$ac_save_CFLAGS" + LIBS="$ac_save_LIBS" + fi + fi + if test "x$no_bonobo" = x ; then + AC_MSG_RESULT(yes) + ifelse([$2], , :, [$2]) + else + AC_MSG_RESULT(no) + if test "$GNOME_CONFIG" = "no" ; then + echo "*** The gnome-config script installed by GNOME-LIBS could not be found" + echo "*** If BONOBO was installed in PREFIX, make sure PREFIX/bin is in" + echo "*** your path, or set the GNOME_CONFIG environment variable to the" + echo "*** full path to gnome-config." + else + if test -f conf.bonobotest ; then + : + else + echo "*** Could not run BONOBO test program, checking why..." + CFLAGS="$CFLAGS $BONOBO_CFLAGS" + LIBS="$LIBS $BONOBO_LIBS" + AC_TRY_LINK([ +#include +#include +], [ return 0; ], + [ echo "*** The test program compiled, but did not run. This usually means" + echo "*** that the run-time linker is not finding BONOBO or finding the wrong" + echo "*** version of BONOBO. If it is not finding BONOBO, you'll need to set your" + echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" + echo "*** to the installed location Also, make sure you have run ldconfig if that" + echo "*** is required on your system" + echo "***" + echo "*** If you have an old version installed, it is best to remove it, although" + echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"], + [ echo "*** The test program failed to compile or link. See the file config.log for the" + echo "*** exact error that occured. This usually means BONOBO was incorrectly installed" + echo "*** or that you have moved BONOBO since it was installed. In the latter case, you" + echo "*** may want to edit the gnome-config script: $GNOME_CONFIG" ]) + CFLAGS="$ac_save_CFLAGS" + LIBS="$ac_save_LIBS" + fi + fi + BONOBO_CFLAGS="" + BONOBO_LIBS="" + ifelse([$3], , :, [$3]) + fi + AC_SUBST(BONOBO_CFLAGS) + AC_SUBST(BONOBO_LIBS) + rm -f conf.bonobotest +]) + +AC_DEFUN([BONOBO_CHECK], [ + AM_PATH_BONOBO(0.1.0,,[AC_MSG_ERROR(BONOBO not found)]) +]) + +AC_DEFUN([AM_BONOBO_USES_OAF], +[ + AC_REQUIRE([AM_PATH_BONOBO]) + + AC_MSG_CHECKING(if Bonobo uses OAF) + if ( gnome-config --libs bonobo | grep oaf ) > /dev/null 2>&1 ; then + using_oaf="yes" + AC_DEFINE(BONOBO_USES_OAF) + else + using_oaf="no" + fi + + AC_MSG_RESULT("$using_oaf") + + AM_CONDITIONAL(BONOBO_USES_OAF, test x"using_oaf" = "xyes") +]) diff --git a/Branch-2.2/bacula/autoconf/gnome-macros/gnome-common.m4 b/Branch-2.2/bacula/autoconf/gnome-macros/gnome-common.m4 new file mode 100644 index 0000000000..83bb00d709 --- /dev/null +++ b/Branch-2.2/bacula/autoconf/gnome-macros/gnome-common.m4 @@ -0,0 +1,14 @@ +# gnome-common.m4 +# +# This only for packages that are not in the GNOME CVS tree. + +dnl GNOME_COMMON_INIT + +AC_DEFUN([GNOME_COMMON_INIT], +[ + GNOME_ACLOCAL_DIR="$GNOME_COMMON_MACROS_DIR" + AC_SUBST(GNOME_ACLOCAL_DIR) + + ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS" +]) + diff --git a/Branch-2.2/bacula/autoconf/gnome-macros/gnome-fileutils.m4 b/Branch-2.2/bacula/autoconf/gnome-macros/gnome-fileutils.m4 new file mode 100644 index 0000000000..a8456f2a8f --- /dev/null +++ b/Branch-2.2/bacula/autoconf/gnome-macros/gnome-fileutils.m4 @@ -0,0 +1,414 @@ +dnl +dnl GNOME_FILEUTILS_CHECKS +dnl +dnl checks that are needed for the diskusage applet. +dnl + +AC_DEFUN([GNOME_FILEUTILS_CHECKS], +[ +AC_CHECK_HEADERS(fcntl.h sys/param.h sys/statfs.h sys/fstyp.h \ +mnttab.h mntent.h sys/statvfs.h sys/vfs.h sys/mount.h \ +sys/filsys.h sys/fs_types.h sys/fs/s5param.h) + +AC_CHECK_FUNCS(bcopy endgrent endpwent fchdir ftime ftruncate \ +getcwd getmntinfo gettimeofday isascii lchown \ +listmntent memcpy mkfifo strchr strerror strrchr vprintf) + +dnl Set some defaults when cross-compiling + +if test x$cross_compiling = xyes ; then + case "$host_os" in + linux*) + fu_cv_sys_mounted_getmntent1=yes + fu_cv_sys_stat_statfs2_bsize=yes + ;; + sunos*) + fu_cv_sys_stat_statfs4=yes + ;; + freebsd*) + fu_cv_sys_stat_statfs2_bsize=yes + ;; + osf*) + fu_cv_sys_stat_statfs3_osf1=yes + ;; + esac +fi + +# Determine how to get the list of mounted filesystems. +list_mounted_fs= + +# If the getmntent function is available but not in the standard library, +# make sure LIBS contains -lsun (on Irix4) or -lseq (on PTX). +AC_FUNC_GETMNTENT + +# This test must precede the ones for getmntent because Unicos-9 is +# reported to have the getmntent function, but its support is incompatible +# with other getmntent implementations. + +# NOTE: Normally, I wouldn't use a check for system type as I've done for +# `CRAY' below since that goes against the whole autoconf philosophy. But +# I think there is too great a chance that some non-Cray system has a +# function named listmntent to risk the false positive. + +if test -z "$list_mounted_fs"; then +# Cray UNICOS 9 +AC_MSG_CHECKING([for listmntent of Cray/Unicos-9]) +AC_CACHE_VAL(fu_cv_sys_mounted_cray_listmntent, +[fu_cv_sys_mounted_cray_listmntent=no +AC_EGREP_CPP(yes, +[#ifdef _CRAY +yes +#endif +], [test $ac_cv_func_listmntent = yes \ +&& fu_cv_sys_mounted_cray_listmntent=yes] +) +] +) +AC_MSG_RESULT($fu_cv_sys_mounted_cray_listmntent) +if test $fu_cv_sys_mounted_cray_listmntent = yes; then +list_mounted_fs=found +AC_DEFINE(MOUNTED_LISTMNTENT) +fi +fi + +if test $ac_cv_func_getmntent = yes; then + +# This system has the getmntent function. +# Determine whether it's the one-argument variant or the two-argument one. + +if test -z "$list_mounted_fs"; then +# 4.3BSD, SunOS, HP-UX, Dynix, Irix +AC_MSG_CHECKING([for one-argument getmntent function]) +AC_CACHE_VAL(fu_cv_sys_mounted_getmntent1, +[test $ac_cv_header_mntent_h = yes \ +&& fu_cv_sys_mounted_getmntent1=yes \ +|| fu_cv_sys_mounted_getmntent1=no]) +AC_MSG_RESULT($fu_cv_sys_mounted_getmntent1) +if test $fu_cv_sys_mounted_getmntent1 = yes; then +list_mounted_fs=found +AC_DEFINE(MOUNTED_GETMNTENT1) +fi +fi + +if test -z "$list_mounted_fs"; then +# SVR4 +AC_MSG_CHECKING([for two-argument getmntent function]) +AC_CACHE_VAL(fu_cv_sys_mounted_getmntent2, +[AC_EGREP_HEADER(getmntent, sys/mnttab.h, +fu_cv_sys_mounted_getmntent2=yes, +fu_cv_sys_mounted_getmntent2=no)]) +AC_MSG_RESULT($fu_cv_sys_mounted_getmntent2) +if test $fu_cv_sys_mounted_getmntent2 = yes; then +list_mounted_fs=found +AC_DEFINE(MOUNTED_GETMNTENT2) +fi +fi + +if test -z "$list_mounted_fs"; then +AC_MSG_ERROR([could not determine how to read list of mounted filesystems]) +fi + +fi + +if test -z "$list_mounted_fs"; then +# DEC Alpha running OSF/1. +AC_MSG_CHECKING([for getfsstat function]) +AC_CACHE_VAL(fu_cv_sys_mounted_getsstat, +[AC_TRY_LINK([ +#include +#include +#include ], +[struct statfs *stats; +int numsys = getfsstat ((struct statfs *)0, 0L, MNT_WAIT); ], +fu_cv_sys_mounted_getsstat=yes, +fu_cv_sys_mounted_getsstat=no)]) +AC_MSG_RESULT($fu_cv_sys_mounted_getsstat) +if test $fu_cv_sys_mounted_getsstat = yes; then +list_mounted_fs=found +AC_DEFINE(MOUNTED_GETFSSTAT) +fi +fi + +if test -z "$list_mounted_fs"; then +# AIX. +AC_MSG_CHECKING([for mntctl function and struct vmount]) +AC_CACHE_VAL(fu_cv_sys_mounted_vmount, +[AC_TRY_CPP([#include ], +fu_cv_sys_mounted_vmount=yes, +fu_cv_sys_mounted_vmount=no)]) +AC_MSG_RESULT($fu_cv_sys_mounted_vmount) +if test $fu_cv_sys_mounted_vmount = yes; then +list_mounted_fs=found +AC_DEFINE(MOUNTED_VMOUNT) +fi +fi + +if test -z "$list_mounted_fs"; then +# SVR3 +AC_MSG_CHECKING([for FIXME existence of three headers]) +AC_CACHE_VAL(fu_cv_sys_mounted_fread_fstyp, +[AC_TRY_CPP([ +#include +#include +#include ], +fu_cv_sys_mounted_fread_fstyp=yes, +fu_cv_sys_mounted_fread_fstyp=no)]) +AC_MSG_RESULT($fu_cv_sys_mounted_fread_fstyp) +if test $fu_cv_sys_mounted_fread_fstyp = yes; then +list_mounted_fs=found +AC_DEFINE(MOUNTED_FREAD_FSTYP) +fi +fi + +if test -z "$list_mounted_fs"; then +# 4.4BSD and DEC OSF/1. +AC_MSG_CHECKING([for getmntinfo function]) +AC_CACHE_VAL(fu_cv_sys_mounted_getmntinfo, +[ +ok= +if test $ac_cv_func_getmntinfo = yes; then +AC_EGREP_HEADER(f_type;, sys/mount.h, +ok=yes) +fi +test -n "$ok" \ +&& fu_cv_sys_mounted_getmntinfo=yes \ +|| fu_cv_sys_mounted_getmntinfo=no +]) +AC_MSG_RESULT($fu_cv_sys_mounted_getmntinfo) +if test $fu_cv_sys_mounted_getmntinfo = yes; then +list_mounted_fs=found +AC_DEFINE(MOUNTED_GETMNTINFO) +fi +fi + +# FIXME: add a test for netbsd-1.1 here + +if test -z "$list_mounted_fs"; then +# Ultrix +AC_MSG_CHECKING([for getmnt function]) +AC_CACHE_VAL(fu_cv_sys_mounted_getmnt, +[AC_TRY_CPP([ +#include +#include ], +fu_cv_sys_mounted_getmnt=yes, +fu_cv_sys_mounted_getmnt=no)]) +AC_MSG_RESULT($fu_cv_sys_mounted_getmnt) +if test $fu_cv_sys_mounted_getmnt = yes; then +list_mounted_fs=found +AC_DEFINE(MOUNTED_GETMNT) +fi +fi + +if test -z "$list_mounted_fs"; then +# SVR2 +AC_MSG_CHECKING([whether it is possible to resort to fread on /etc/mnttab]) +AC_CACHE_VAL(fu_cv_sys_mounted_fread, +[AC_TRY_CPP([#include ], +fu_cv_sys_mounted_fread=yes, +fu_cv_sys_mounted_fread=no)]) +AC_MSG_RESULT($fu_cv_sys_mounted_fread) +if test $fu_cv_sys_mounted_fread = yes; then +list_mounted_fs=found +AC_DEFINE(MOUNTED_FREAD) +fi +fi + +if test -z "$list_mounted_fs"; then +AC_MSG_ERROR([could not determine how to read list of mounted filesystems]) +# FIXME -- no need to abort building the whole package +# Cannot build mountlist.c or anything that needs its functions +fi + +AC_CHECKING(how to get filesystem space usage) +space=no + +# Perform only the link test since it seems there are no variants of the +# statvfs function. This check is more than just AC_CHECK_FUNCS(statvfs) +# because that got a false positive on SCO OSR5. Adding the declaration +# of a `struct statvfs' causes this test to fail (as it should) on such +# systems. That system is reported to work fine with STAT_STATFS4 which +# is what it gets when this test fails. +if test $space = no; then +# SVR4 +AC_CACHE_CHECK([statvfs function (SVR4)], fu_cv_sys_stat_statvfs, +[AC_TRY_LINK([#include +#include ], +[struct statvfs fsd; statvfs (0, &fsd);], +fu_cv_sys_stat_statvfs=yes, +fu_cv_sys_stat_statvfs=no)]) +if test $fu_cv_sys_stat_statvfs = yes; then +space=yes +AC_DEFINE(STAT_STATVFS) +fi +fi + +if test $space = no; then +# DEC Alpha running OSF/1 +AC_MSG_CHECKING([for 3-argument statfs function (DEC OSF/1)]) +AC_CACHE_VAL(fu_cv_sys_stat_statfs3_osf1, +[AC_TRY_RUN([ +#include +#include +#include +int main () +{ +struct statfs fsd; +fsd.f_fsize = 0; +return (statfs (".", &fsd, sizeof (struct statfs))); +}], +fu_cv_sys_stat_statfs3_osf1=yes, +fu_cv_sys_stat_statfs3_osf1=no, +fu_cv_sys_stat_statfs3_osf1=no)]) +AC_MSG_RESULT($fu_cv_sys_stat_statfs3_osf1) +if test $fu_cv_sys_stat_statfs3_osf1 = yes; then +space=yes +AC_DEFINE(STAT_STATFS3_OSF1) +fi +fi + +if test $space = no; then +# AIX +AC_MSG_CHECKING([for two-argument statfs with statfs.bsize dnl +member (AIX, 4.3BSD)]) +AC_CACHE_VAL(fu_cv_sys_stat_statfs2_bsize, +[AC_TRY_RUN([ +#ifdef HAVE_SYS_PARAM_H +#include +#endif +#ifdef HAVE_SYS_MOUNT_H +#include +#endif +#ifdef HAVE_SYS_VFS_H +#include +#endif +int main () +{ +struct statfs fsd; +fsd.f_bsize = 0; +return (statfs (".", &fsd)); +}], +fu_cv_sys_stat_statfs2_bsize=yes, +fu_cv_sys_stat_statfs2_bsize=no, +fu_cv_sys_stat_statfs2_bsize=no)]) +AC_MSG_RESULT($fu_cv_sys_stat_statfs2_bsize) +if test $fu_cv_sys_stat_statfs2_bsize = yes; then +space=yes +AC_DEFINE(STAT_STATFS2_BSIZE) +fi +fi + +if test $space = no; then +# SVR3 +AC_MSG_CHECKING([for four-argument statfs (AIX-3.2.5, SVR3)]) +AC_CACHE_VAL(fu_cv_sys_stat_statfs4, +[AC_TRY_RUN([#include +#include +int main () +{ +struct statfs fsd; +return (statfs (".", &fsd, sizeof fsd, 0)); +}], +fu_cv_sys_stat_statfs4=yes, +fu_cv_sys_stat_statfs4=no, +fu_cv_sys_stat_statfs4=no)]) +AC_MSG_RESULT($fu_cv_sys_stat_statfs4) +if test $fu_cv_sys_stat_statfs4 = yes; then +space=yes +AC_DEFINE(STAT_STATFS4) +fi +fi + +if test $space = no; then +# 4.4BSD and NetBSD +AC_MSG_CHECKING([for two-argument statfs with statfs.fsize dnl +member (4.4BSD and NetBSD)]) +AC_CACHE_VAL(fu_cv_sys_stat_statfs2_fsize, +[AC_TRY_RUN([#include +#ifdef HAVE_SYS_PARAM_H +#include +#endif +#ifdef HAVE_SYS_MOUNT_H +#include +#endif +int main () +{ +struct statfs fsd; +fsd.f_fsize = 0; +return (statfs (".", &fsd)); +}], +fu_cv_sys_stat_statfs2_fsize=yes, +fu_cv_sys_stat_statfs2_fsize=no, +fu_cv_sys_stat_statfs2_fsize=no)]) +AC_MSG_RESULT($fu_cv_sys_stat_statfs2_fsize) +if test $fu_cv_sys_stat_statfs2_fsize = yes; then +space=yes +AC_DEFINE(STAT_STATFS2_FSIZE) +fi +fi + +if test $space = no; then +# Ultrix +AC_MSG_CHECKING([for two-argument statfs with struct fs_data (Ultrix)]) +AC_CACHE_VAL(fu_cv_sys_stat_fs_data, +[AC_TRY_RUN([#include +#ifdef HAVE_SYS_PARAM_H +#include +#endif +#ifdef HAVE_SYS_MOUNT_H +#include +#endif +#ifdef HAVE_SYS_FS_TYPES_H +#include +#endif +int main () +{ +struct fs_data fsd; +/* Ultrix's statfs returns 1 for success, +0 for not mounted, -1 for failure. */ +return (statfs (".", &fsd) != 1); +}], +fu_cv_sys_stat_fs_data=yes, +fu_cv_sys_stat_fs_data=no, +fu_cv_sys_stat_fs_data=no)]) +AC_MSG_RESULT($fu_cv_sys_stat_fs_data) +if test $fu_cv_sys_stat_fs_data = yes; then +space=yes +AC_DEFINE(STAT_STATFS2_FS_DATA) +fi +fi + +if test $space = no; then +# SVR2 +AC_TRY_CPP([#include ], +AC_DEFINE(STAT_READ_FILSYS) space=yes) +fi + +if test -n "$list_mounted_fs" && test $space != no; then +DF_PROG="df" +# LIBOBJS="$LIBOBJS fsusage.o" +# LIBOBJS="$LIBOBJS mountlist.o" +fi + +# Check for SunOS statfs brokenness wrt partitions 2GB and larger. +# If exists and struct statfs has a member named f_spare, +# enable the work-around code in fsusage.c. +AC_MSG_CHECKING([for statfs that truncates block counts]) +AC_CACHE_VAL(fu_cv_sys_truncating_statfs, +[AC_TRY_COMPILE([ +#if !defined(sun) && !defined(__sun) +choke -- this is a workaround for a Sun-specific problem +#endif +#include +#include ], +[struct statfs t; long c = *(t.f_spare);], +fu_cv_sys_truncating_statfs=yes, +fu_cv_sys_truncating_statfs=no, +)]) +if test $fu_cv_sys_truncating_statfs = yes; then +AC_DEFINE(STATFS_TRUNCATES_BLOCK_COUNTS) +fi +AC_MSG_RESULT($fu_cv_sys_truncating_statfs) + +AC_CHECKING(for AFS) +test -d /afs && AC_DEFINE(AFS) +]) diff --git a/Branch-2.2/bacula/autoconf/gnome-macros/gnome-ghttp-check.m4 b/Branch-2.2/bacula/autoconf/gnome-macros/gnome-ghttp-check.m4 new file mode 100644 index 0000000000..0ecacaaf05 --- /dev/null +++ b/Branch-2.2/bacula/autoconf/gnome-macros/gnome-ghttp-check.m4 @@ -0,0 +1,14 @@ +AC_DEFUN([GNOME_GHTTP_CHECK],[ + AC_REQUIRE([GNOME_INIT_HOOK]) + GHTTP_LIB= + AC_CHECK_FUNC(connect,,[ + AC_CHECK_LIB(socket,connect, + GHTTP_LIB="-lsocket $GHTTP_LIB",,$GHTTP_LIB)]) + AC_CHECK_FUNC(gethostbyname,,[ + AC_CHECK_LIB(nsl,gethostbyname, + GHTTP_LIB="-lnsl $GHTTP_LIB",,$GHTTP_LIB)]) + AC_CHECK_LIB(ghttp, ghttp_request_new, + GHTTP_LIB="-lghttp $GHTTP_LIB",GHTTP_LIB="",-L$gnome_prefix $GHTTP_LIB) + AC_SUBST(GHTTP_LIB) + AC_PROVIDE([GNOME_GHTTP_CHECK]) +]) diff --git a/Branch-2.2/bacula/autoconf/gnome-macros/gnome-gnorba-check.m4 b/Branch-2.2/bacula/autoconf/gnome-macros/gnome-gnorba-check.m4 new file mode 100644 index 0000000000..dbac0a6cf7 --- /dev/null +++ b/Branch-2.2/bacula/autoconf/gnome-macros/gnome-gnorba-check.m4 @@ -0,0 +1,35 @@ +dnl +dnl GNOME_GNORBA_HOOK (script-if-gnorba-found, failflag) +dnl +dnl if failflag is "failure" it aborts if gnorba is not found. +dnl + +AC_DEFUN([GNOME_GNORBA_HOOK],[ + GNOME_ORBIT_HOOK([],$2) + AC_CACHE_CHECK([for gnorba libraries],gnome_cv_gnorba_found,[ + gnome_cv_gnorba_found=no + if test x$gnome_cv_orbit_found = xyes; then + GNORBA_CFLAGS="`gnome-config --cflags gnorba gnomeui`" + GNORBA_LIBS="`gnome-config --libs gnorba gnomeui`" + if test -n "$GNORBA_LIBS"; then + gnome_cv_gnorba_found=yes + fi + fi + ]) + AM_CONDITIONAL(HAVE_GNORBA, test x$gnome_cv_gnorba_found = xyes) + if test x$gnome_cv_orbit_found = xyes; then + $1 + GNORBA_CFLAGS="`gnome-config --cflags gnorba gnomeui`" + GNORBA_LIBS="`gnome-config --libs gnorba gnomeui`" + AC_SUBST(GNORBA_CFLAGS) + AC_SUBST(GNORBA_LIBS) + else + if test x$2 = xfailure; then + AC_MSG_ERROR(gnorba library not installed or installation problem) + fi + fi +]) + +AC_DEFUN([GNOME_GNORBA_CHECK], [ + GNOME_GNORBA_HOOK([],failure) +]) diff --git a/Branch-2.2/bacula/autoconf/gnome-macros/gnome-guile-checks.m4 b/Branch-2.2/bacula/autoconf/gnome-macros/gnome-guile-checks.m4 new file mode 100644 index 0000000000..102351cffd --- /dev/null +++ b/Branch-2.2/bacula/autoconf/gnome-macros/gnome-guile-checks.m4 @@ -0,0 +1,134 @@ +dnl +dnl GNOME_CHECK_GUILE (failflag) +dnl +dnl if failflag is "fail" then GNOME_CHECK_GUILE will abort if guile is not found. +dnl + +AC_DEFUN([GNOME_CHECK_GUILE], +[ +dnl AC_MSG_WARN([Withval is: $withval]) + guile_msg = 'Huh?' +if test x$withval = xno ; then + guile_msg = 'disabled' + GUILE_LIBS= + GUILE_INCS= + AC_SUBST(GUILE_LIBS) + AC_SUBST(GUILE_INCS) + AM_CONDITIONAL(GUILE, /bin/false) +else + guile_msg="no" + + saved_ldflags="$LDFLAGS" + saved_cppflags="$CPPFLAGS" + LDFLAGS="$LDFLAGS $GNOME_LIBDIR" + + AC_CHECK_LIB(qthreads,qt_null,[ + QTTHREADS_LIB="-lqthreads" + ],[ + AC_CHECK_LIB(qt, qt_null, QTTHREADS_LIB="-lqt") + ],$LIBS) + AC_SUBST(QTTHREADS_LIB) + + AC_CHECK_LIB(termcap,main,TERMCAP_LIB="-ltermcap") + AC_CHECK_LIB(readline,main,READLINE_LIB="-lreadline",,$TERMCAP_LIB) + + AC_SUBST(TERMCAP_LIB) + AC_SUBST(READLINE_LIB) + + if test "x$cross_compiling" = "xyes" ; then + name_build_guile="$target_alias-guile-config" + else + name_build_guile="guile-config" + fi + + AC_CHECK_PROG(BUILD_GUILE, $name_build_guile, yes, no) + + if test "x$BUILD_GUILE" = "xyes"; then + AC_MSG_CHECKING(whether $name_build_guile works) + if test x`$name_build_guile --version >/dev/null 2>&1 || \ + echo no` = xno; then + BUILD_GUILE=no + fi + AC_MSG_RESULT($BUILD_GUILE) + else + + if test "x$cross_compiling" = "xyes" ; then + name_build_guile="$target_alias-build-guile" + else + name_build_guile="build-guile" + fi + + AC_CHECK_PROG(BUILD_GUILE, $name_build_guile, yes, no) + + if test "x$BUILD_GUILE" = "xyes"; then + AC_MSG_CHECKING(whether $name_build_guile works) + if test x`$name_build_guile --version >/dev/null 2>&1 || \ + echo no` = xno; then + BUILD_GUILE=no + fi + AC_MSG_RESULT($BUILD_GUILE) + fi + fi + + AC_CHECK_LIB(m, sin) + + if test "x$BUILD_GUILE" = "xyes"; then + AC_MSG_CHECKING(for guile libraries) + GUILE_LIBS="`$name_build_guile link`" + AC_MSG_RESULT($GUILE_LIBS) + AC_MSG_CHECKING(for guile headers) + GUILE_INCS="`$name_build_guile compile`" + AC_MSG_RESULT($GUILE_INCS) + else + GUILE_LIBS="$GNOME_LIBDIR" + GUILE_INCS="$GNOME_INCLUDEDIR" + AC_CHECK_LIB(rx, main, GUILE_LIBS="-lrx $GUILE_LIBS") + AC_CHECK_LIB(qt, qt_null, GUILE_LIBS="-lqt $GUILE_LIBS") + AC_CHECK_LIB(dl, dlopen, GUILE_LIBS="-ldl $GUILE_LIBS") + AC_CHECK_LIB(nsl, t_accept, GUILE_LIBS="$GUILE_LIBS -lnsl") + AC_CHECK_LIB(socket, socket, GUILE_LIBS="$GUILE_LIBS -lsocket") + GUILE_LIBS="-lguile $GUILE_LIBS $QTTHREADS_LIB $READLINE_LIB $TERMCAP_LIB" + fi + + AC_SUBST(GUILE_LIBS) + AC_SUBST(GUILE_INCS) + + saved_LIBS="$LIBS" + LIBS="$LIBS $GUILE_LIBS" + CPPFLAGS="$saved_cppflags $GUILE_INCS" + + AC_MSG_CHECKING(whether guile works) + AC_TRY_LINK([ + #include + #include + ],[ + gh_eval_str("(newline)"); + scm_boot_guile(0,NULL,NULL,NULL); + ],[ + ac_cv_guile_found=yes + AC_DEFINE(HAVE_GUILE) + ],[ + ac_cv_guile_found=no + ]) + AC_MSG_RESULT($ac_cv_guile_found) + + guile_msg=$ac_cv_guile_found + + if test x$ac_cv_guile_found = xno ; then + if test x$1 = xfail ; then + AC_MSG_ERROR(Can not find Guile on this system) + else + AC_MSG_WARN(Can not find Guile on this system) + fi + ac_cv_guile_found=no + GUILE_LIBS= GUILE_INCS= + fi + + LIBS="$saved_LIBS" + LDFLAGS="$saved_ldflags" + CPPFLAGS="$saved_cppflags" + + AC_SUBST(GUILE_LIBS) + AM_CONDITIONAL(GUILE, test x$ac_cv_guile_found = xyes) +fi +]) diff --git a/Branch-2.2/bacula/autoconf/gnome-macros/gnome-libgtop-check.m4 b/Branch-2.2/bacula/autoconf/gnome-macros/gnome-libgtop-check.m4 new file mode 100644 index 0000000000..1b4e1745cb --- /dev/null +++ b/Branch-2.2/bacula/autoconf/gnome-macros/gnome-libgtop-check.m4 @@ -0,0 +1,217 @@ +dnl +dnl LIBGTOP_CHECK_TYPE +dnl +dnl Improved version of AC_CHECK_TYPE which takes into account +dnl that we need to #include some other header files on some +dnl systems to get some types. + +dnl AC_LIBGTOP_CHECK_TYPE(TYPE, DEFAULT) +AC_DEFUN([AC_LIBGTOP_CHECK_TYPE], +[AC_REQUIRE([AC_HEADER_STDC])dnl +AC_MSG_CHECKING(for $1) +AC_CACHE_VAL(ac_cv_type_$1, +[AC_EGREP_CPP(dnl +changequote(<<,>>)dnl +<<(^|[^a-zA-Z_0-9])$1[^a-zA-Z_0-9]>>dnl +changequote([,]), [#include +#if STDC_HEADERS +#include +#include +#endif + +/* For Tru64 */ +#ifdef HAVE_SYS_BITYPES_H +#include +#endif +], ac_cv_type_$1=yes, ac_cv_type_$1=no)])dnl +AC_MSG_RESULT($ac_cv_type_$1) +if test $ac_cv_type_$1 = no; then + AC_DEFINE($1, $2) +fi +]) + +dnl +dnl GNOME_LIBGTOP_TYPES +dnl +dnl some typechecks for libgtop. +dnl + +AC_DEFUN([GNOME_LIBGTOP_TYPES], +[ + AC_CHECK_HEADERS(sys/bitypes.h) + AC_LIBGTOP_CHECK_TYPE(u_int64_t, unsigned long long int) + AC_LIBGTOP_CHECK_TYPE(int64_t, signed long long int) +]) + +dnl +dnl GNOME_LIBGTOP_HOOK (minversion, script-if-libgtop-enabled, failflag) +dnl +dnl if failflag is "fail" then GNOME_LIBGTOP_HOOK will abort if LibGTop +dnl is not found. +dnl + +AC_DEFUN([GNOME_LIBGTOP_HOOK], +[ + AC_REQUIRE([GNOME_LIBGTOP_TYPES]) + + AC_SUBST(LIBGTOP_LIBDIR) + AC_SUBST(LIBGTOP_INCLUDEDIR) + AC_SUBST(LIBGTOP_EXTRA_LIBS) + AC_SUBST(LIBGTOP_LIBS) + AC_SUBST(LIBGTOP_INCS) + AC_SUBST(LIBGTOP_NAMES_LIBS) + AC_SUBST(LIBGTOP_NAMES_INCS) + AC_SUBST(LIBGTOP_MAJOR_VERSION) + AC_SUBST(LIBGTOP_MINOR_VERSION) + AC_SUBST(LIBGTOP_MICRO_VERSION) + AC_SUBST(LIBGTOP_VERSION) + AC_SUBST(LIBGTOP_VERSION_CODE) + AC_SUBST(LIBGTOP_SERVER_VERSION) + AC_SUBST(LIBGTOP_INTERFACE_AGE) + AC_SUBST(LIBGTOP_BINARY_AGE) + AC_SUBST(LIBGTOP_BINDIR) + AC_SUBST(LIBGTOP_SERVER) + + dnl Get the cflags and libraries from the libgtop-config script + dnl + AC_ARG_WITH(libgtop, + [ --with-libgtop=PFX Prefix where LIBGTOP is installed (optional)], + libgtop_config_prefix="$withval", libgtop_config_prefix="") + AC_ARG_WITH(libgtop-exec, + [ --with-libgtop-exec=PFX Exec prefix where LIBGTOP is installed (optional)], + libgtop_config_exec_prefix="$withval", libgtop_config_exec_prefix="") + + if test x$libgtop_config_exec_prefix != x ; then + libgtop_config_args="$libgtop_config_args --exec-prefix=$libgtop_config_exec_prefix" + if test x${LIBGTOP_CONFIG+set} != xset ; then + LIBGTOP_CONFIG=$libgtop_config_exec_prefix/bin/libgtop-config + fi + fi + if test x$libgtop_config_prefix != x ; then + libgtop_config_args="$libgtop_config_args --prefix=$libgtop_config_prefix" + if test x${LIBGTOP_CONFIG+set} != xset ; then + LIBGTOP_CONFIG=$libgtop_config_prefix/bin/libgtop-config + fi + fi + + AC_PATH_PROG(LIBGTOP_CONFIG, libgtop-config, no) + dnl IMPORTANT NOTICE: + dnl If you increase this number here, this means that *ALL* + dnl modules will require the new version, even if they explicitly + dnl give a lower number in their `configure.in' !!! + real_min_libgtop_version=1.0.0 + min_libgtop_version=ifelse([$1], ,$real_min_libgtop_version,$1) + dnl I know, the following code looks really ugly, but if you want + dnl to make changes, please test it with a brain-dead /bin/sh and + dnl with a brain-dead /bin/test (not all shells/tests support the + dnl `<' operator to compare strings, that's why I convert everything + dnl into numbers and test them). + min_libgtop_major=`echo $min_libgtop_version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` + min_libgtop_minor=`echo $min_libgtop_version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` + min_libgtop_micro=`echo $min_libgtop_version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` + test x$min_libgtop_micro = x && min_libgtop_micro=0 + real_min_libgtop_major=`echo $real_min_libgtop_version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` + real_min_libgtop_minor=`echo $real_min_libgtop_version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` + real_min_libgtop_micro=`echo $real_min_libgtop_version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` + test x$real_min_libgtop_micro = x && real_min_libgtop_micro=0 + dnl You cannot require a version less then $real_min_libgtop_version, + dnl so you don't need to update each `configure.in' when it's increased. + if test $real_min_libgtop_major -gt $min_libgtop_major ; then + min_libgtop_major=$real_min_libgtop_major + min_libgtop_minor=$real_min_libgtop_minor + min_libgtop_micro=$real_min_libgtop_micro + elif test $real_min_libgtop_major = $min_libgtop_major ; then + if test $real_min_libgtop_minor -gt $min_libgtop_minor ; then + min_libgtop_minor=$real_min_libgtop_minor + min_libgtop_micro=$real_min_libgtop_micro + elif test $real_min_libgtop_minor = $min_libgtop_minor ; then + if test $real_min_libgtop_micro -gt $min_libgtop_micro ; then + min_libgtop_micro=$real_min_libgtop_micro + fi + fi + fi + min_libgtop_version="$min_libgtop_major.$min_libgtop_minor.$min_libgtop_micro" + AC_MSG_CHECKING(for libgtop - version >= $min_libgtop_version) + no_libgtop="" + if test "$LIBGTOP_CONFIG" = "no" ; then + no_libgtop=yes + else + configfile=`$LIBGTOP_CONFIG --config` + libgtop_major_version=`$LIBGTOP_CONFIG --version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` + libgtop_minor_version=`$LIBGTOP_CONFIG --version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` + libgtop_micro_version=`$LIBGTOP_CONFIG --version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` + if test $libgtop_major_version != $min_libgtop_major ; then + no_libgtop=mismatch + else + test $libgtop_minor_version -lt $min_libgtop_minor && no_libgtop=yes + if test $libgtop_minor_version = $min_libgtop_minor ; then + test $libgtop_micro_version -lt $min_libgtop_micro && no_libgtop=yes + fi + fi + . $configfile + fi + if test x$no_libgtop = x ; then + AC_DEFINE(HAVE_LIBGTOP) + AC_DEFINE_UNQUOTED(LIBGTOP_VERSION, "$LIBGTOP_VERSION") + AC_DEFINE_UNQUOTED(LIBGTOP_VERSION_CODE, $LIBGTOP_VERSION_CODE) + AC_DEFINE_UNQUOTED(LIBGTOP_MAJOR_VERSION, $LIBGTOP_MAJOR_VERSION) + AC_DEFINE_UNQUOTED(LIBGTOP_MINOR_VERSION, $LIBGTOP_MINOR_VERSION) + AC_DEFINE_UNQUOTED(LIBGTOP_MICRO_VERSION, $LIBGTOP_MICRO_VERSION) + AC_DEFINE_UNQUOTED(LIBGTOP_SERVER_VERSION, $LIBGTOP_SERVER_VERSION) + AC_MSG_RESULT(yes) + dnl Note that an empty true branch is not valid sh syntax. + ifelse([$2], [], :, [$2]) + else + AC_MSG_RESULT(no) + if test "$no_libgtop"x = mismatchx; then + AC_MSG_ERROR(LibGTop major version mismatch $libgtop_major_version != $min_libgtop_major) + fi + if test "x$3" = "xfail"; then + AC_MSG_ERROR(LibGTop >= $min_libgtop_version not found) + else + AC_MSG_WARN(LibGTop >= $min_libgtop_version not found) + fi + fi + + AM_CONDITIONAL(HAVE_LIBGTOP, test x$no_libgtop != xyes) +]) + +AC_DEFUN([GNOME_INIT_LIBGTOP],[ + GNOME_LIBGTOP_HOOK($1,[ifelse([$3], [], :, [$3])],$2) +]) + +dnl +dnl GNOME_LIBGTOP_DOCU +dnl +dnl checks whether the documentation of LibGTop is installed +dnl + +AC_DEFUN([GNOME_LIBGTOP_DOCU], +[ + AC_REQUIRE([GNOME_LIBGTOP_HOOK]) + + helpdir="$LIBGTOP_DATADIR/gnome/help/libgtop" + + AC_MSG_CHECKING(whether you have the LibGTop Documentation) + + if test -f "$helpdir/C/topic.dat" ; then + have_libgtop_docu=yes + AC_DEFINE(HAVE_LIBGTOP_DOCU) + else + have_libgtop_docu=no + fi + + AC_MSG_RESULT($have_libgtop_docu) + + AM_CONDITIONAL(HAVE_LIBGTOP_DOCU, test x$have_libgtop_docu = xyes) +]) + diff --git a/Branch-2.2/bacula/autoconf/gnome-macros/gnome-objc-checks.m4 b/Branch-2.2/bacula/autoconf/gnome-macros/gnome-objc-checks.m4 new file mode 100644 index 0000000000..c69acb077e --- /dev/null +++ b/Branch-2.2/bacula/autoconf/gnome-macros/gnome-objc-checks.m4 @@ -0,0 +1,83 @@ +AC_DEFUN([GNOME_CHECK_OBJC], +[ +dnl Look for an ObjC compiler. +dnl FIXME: extend list of possible names of ObjC compilers. + AC_CHECK_PROGS(OBJC, $OBJC egcs, "") + if test "x$OBJC" = "x" ; then + AC_CHECK_PROGS(OBJC, $OBJC egcc, "") + if test "x$OBJC" = "x" ; then + AC_CHECK_PROGS(OBJC, $OBJC gcc, "") + fi + fi + + AC_REQUIRE([GNOME_PTHREAD_CHECK]) + + OBJC_LIBS="-lobjc $PTHREAD_LIB" + AC_CHECK_FUNC(sched_yield,,[ + AC_CHECK_LIB(rt,sched_yield, + OBJC_LIBS="$OBJC_LIBS -lrt",[ + AC_CHECK_LIB(posix4,sched_yield, + OBJC_LIBS="$OBJC_LIBS -lposix4",, + $OBJC_LIBS)], + $OBJC_LIBS)]) + AC_SUBST(OBJC_LIBS) + + AC_CACHE_CHECK([if Objective C compiler ($OBJC) works], + ac_cv_prog_objc_works, [ + if test -n "$OBJC"; then + cat > conftest.m < +@interface myRandomObj : Object +{ +} +@end +@implementation myRandomObj +@end +int main () { + /* No, you are not seeing double. Remember that square brackets + are the autoconf m4 quotes. */ + id myid = [[myRandomObj alloc]]; + [[myid free]]; + return 0; +} +EOF + + $OBJC $CFLAGS -o conftest $LDFLAGS conftest.m $OBJC_LIBS 1>&AC_FD_CC 2>&1 + result=$? + rm -f conftest* + + if test $result -eq 0; then + ac_cv_prog_objc_works=yes + fi + else + ac_cv_prog_objc_works=no + fi + ]) + + AM_CONDITIONAL(OBJECTIVE_C, test x$ac_cv_prog_objc_works = xyes) + dnl Also set the shell variable OBJECTIVE_C to "yes" or "no". + OBJECTIVE_C=$ac_cv_prog_objc_works +]) + +AC_DEFUN([GNOME_INIT_OBJC], +[ + AC_MSG_CHECKING(for an obGnomeConf.sh) + my_gnome_libdir=`$GNOME_CONFIG --libdir` + if test -f $my_gnome_libdir/obGnomeConf.sh; then + . $my_gnome_libdir/obGnomeConf.sh + AC_MSG_RESULT(found $my_gnome_libdir) + ac_cv_have_gnome_objc=yes + else + AC_MSG_RESULT(not found) + AC_MSG_WARN(Could not find the obGnomeConf.sh file that is generated by gnome-objc install) + ac_cv_have_gnome_objc=no + fi + + dnl Add a conditional on whether or not we have gnome-objc + AM_CONDITIONAL(HAVE_GNOME_OBJC, test x$ac_cv_have_gnome_objc = xyes) + HAVE_GNOME_OBJC=$ac_cv_have_gnome_objc + + AC_SUBST(OBGNOME_INCLUDEDIR) + AC_SUBST(OBGNOME_LIBS) + AC_SUBST(OBGTK_LIBS) +]) diff --git a/Branch-2.2/bacula/autoconf/gnome-macros/gnome-orbit-check.m4 b/Branch-2.2/bacula/autoconf/gnome-macros/gnome-orbit-check.m4 new file mode 100644 index 0000000000..54bf33aa4b --- /dev/null +++ b/Branch-2.2/bacula/autoconf/gnome-macros/gnome-orbit-check.m4 @@ -0,0 +1,33 @@ +dnl +dnl GNOME_ORBIT_HOOK (script-if-orbit-found, failflag) +dnl +dnl if failflag is "failure" it aborts if orbit is not found. +dnl + +AC_DEFUN([GNOME_ORBIT_HOOK],[ + AC_PATH_PROG(ORBIT_CONFIG,orbit-config,no) + AC_PATH_PROG(ORBIT_IDL,orbit-idl,no) + AC_CACHE_CHECK([for working ORBit environment],gnome_cv_orbit_found,[ + if test x$ORBIT_CONFIG = xno -o x$ORBIT_IDL = xno; then + gnome_cv_orbit_found=no + else + gnome_cv_orbit_found=yes + fi + ]) + AM_CONDITIONAL(HAVE_ORBIT, test x$gnome_cv_orbit_found = xyes) + if test x$gnome_cv_orbit_found = xyes; then + $1 + ORBIT_CFLAGS=`orbit-config --cflags client server` + ORBIT_LIBS=`orbit-config --use-service=name --libs client server` + AC_SUBST(ORBIT_CFLAGS) + AC_SUBST(ORBIT_LIBS) + else + if test x$2 = xfailure; then + AC_MSG_ERROR(ORBit not installed or installation problem) + fi + fi +]) + +AC_DEFUN([GNOME_ORBIT_CHECK], [ + GNOME_ORBIT_HOOK([],failure) +]) diff --git a/Branch-2.2/bacula/autoconf/gnome-macros/gnome-print-check.m4 b/Branch-2.2/bacula/autoconf/gnome-macros/gnome-print-check.m4 new file mode 100644 index 0000000000..968fcc01c2 --- /dev/null +++ b/Branch-2.2/bacula/autoconf/gnome-macros/gnome-print-check.m4 @@ -0,0 +1,63 @@ +# Configure paths for GNOME-PRINT +# Chris Lahey 99-2-5 +# stolen from Manish Singh again +# stolen back from Frank Belew +# stolen from Manish Singh +# Shamelessly stolen from Owen Taylor + +dnl AM_PATH_GNOME_PRINT([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]]) +dnl Test for GNOME-PRINT, and define GNOME_PRINT_CFLAGS and GNOME_PRINT_LIBS +dnl +AC_DEFUN([AM_PATH_GNOME_PRINT], +[ + min_version=ifelse([$1],,0.21,$1) + + gnome_print_ok="" + + AC_PATH_PROG(GNOME_CONFIG, gnome-config, no) + if test "$GNOME_CONFIG" = "no" ; then + AC_MSG_RESULT(gnome-config is missing, check your gnome installation) + else + AC_MSG_CHECKING(for GNOME-PRINT - version >= $min_version) + if `$GNOME_CONFIG --libs print > /dev/null 2>&1`; then + rqmajor=`echo "$min_version" | sed -e 's/cvs-//' | sed 's/\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'` + rqminor=`echo "$min_version" | sed -e 's/cvs-//' | sed 's/\([[0-9]]*\)\.\([[0-9]]*\).*/\2/'` + major=`$GNOME_CONFIG --modversion print | sed -e 's/gnome-print-//' | sed -e 's/cvs-//' | sed 's/\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'` + minor=`$GNOME_CONFIG --modversion print | sed -e 's/gnome-print-//' | sed -e 's/cvs-//' | sed 's/\([[0-9]]*\)\.\([[0-9]]*\).*/\2/'` + if test "$major" -ge "$rqmajor"; then + if test "$major" -gt "$rqmajor"; then + AC_MSG_RESULT("found $major.$minor") + gnome_print_ok="yes" + else + if test "$minor" -ge "$rqminor"; then + AC_MSG_RESULT("found $major.$minor") + gnome_print_ok="yes" + else + AC_MSG_RESULT("you have $major.$minor") + fi + fi + else + AC_MSG_RESULT("you have $major.$minor") + fi + else + AC_MSG_RESULT("did not find any version") + fi + fi + + if test "x$gnome_print_ok" != "x" ; then + GNOME_PRINT_CFLAGS=`$GNOME_CONFIG --cflags print` + GNOME_PRINT_LIBS=`$GNOME_CONFIG --libs print` + ifelse([$2], , :, [$2]) + else + GNOME_PRINT_CFLAGS="" + GNOME_PRINT_LIBS="" + ifelse([$3], , :, [$3]) + fi + + AC_SUBST(GNOME_PRINT_CFLAGS) + AC_SUBST(GNOME_PRINT_LIBS) +]) + +AC_DEFUN([GNOME_PRINT_CHECK], [ + AM_PATH_GNOME_PRINT($1,,[AC_MSG_ERROR(GNOME-PRINT not found or wrong version)]) +]) diff --git a/Branch-2.2/bacula/autoconf/gnome-macros/gnome-pthread-check.m4 b/Branch-2.2/bacula/autoconf/gnome-macros/gnome-pthread-check.m4 new file mode 100644 index 0000000000..5a1afee014 --- /dev/null +++ b/Branch-2.2/bacula/autoconf/gnome-macros/gnome-pthread-check.m4 @@ -0,0 +1,18 @@ +dnl +dnl And better, use gthreads instead... +dnl + +AC_DEFUN([GNOME_PTHREAD_CHECK],[ + PTHREAD_LIB="" + AC_CHECK_LIB(pthread, pthread_create, PTHREAD_LIB="-lpthread", + [AC_CHECK_LIB(pthreads, pthread_create, PTHREAD_LIB="-lpthreads", + [AC_CHECK_LIB(c_r, pthread_create, PTHREAD_LIB="-lc_r", + [AC_CHECK_LIB(pthread, __pthread_attr_init_system, PTHREAD_LIB="-lpthread", + [AC_CHECK_FUNC(pthread_create)] + )] + )] + )] + ) + AC_SUBST(PTHREAD_LIB) + AC_PROVIDE([GNOME_PTHREAD_CHECK]) +]) diff --git a/Branch-2.2/bacula/autoconf/gnome-macros/gnome-support.m4 b/Branch-2.2/bacula/autoconf/gnome-macros/gnome-support.m4 new file mode 100644 index 0000000000..2c1d049842 --- /dev/null +++ b/Branch-2.2/bacula/autoconf/gnome-macros/gnome-support.m4 @@ -0,0 +1,68 @@ +dnl GNOME_SUPPORT_CHECKS +dnl Check for various support functions needed by the standard +dnl Gnome libraries. Sets LIBOBJS, might define some macros. +dnl This should only be used when building the Gnome libs; +dnl Gnome clients should not need this macro. +AC_DEFUN([GNOME_SUPPORT_CHECKS],[ + # we need an `awk' to build `gnomesupport.h' + AC_REQUIRE([AC_PROG_AWK]) + + # this should go away soon + need_gnome_support=yes + + save_LIBOBJS="$LIBOBJS" + LIBOBJS= + + AC_CHECK_FUNCS(getopt_long,,LIBOBJS="$LIBOBJS getopt.o getopt1.o") + + # for `scandir' + AC_HEADER_DIRENT + + # copied from `configure.in' of `libiberty' + vars="program_invocation_short_name program_invocation_name sys_errlist" + for v in $vars; do + AC_MSG_CHECKING([for $v]) + AC_CACHE_VAL(gnome_cv_var_$v, + [AC_TRY_LINK([int *p;], [extern int $v; p = &$v;], + [eval "gnome_cv_var_$v=yes"], + [eval "gnome_cv_var_$v=no"])]) + if eval "test \"`echo '$gnome_cv_var_'$v`\" = yes"; then + AC_MSG_RESULT(yes) + n=HAVE_`echo $v | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + AC_DEFINE_UNQUOTED($n) + else + AC_MSG_RESULT(no) + fi + done + + AC_REPLACE_FUNCS(memmove mkstemp scandir strcasecmp strerror strndup strnlen) + AC_REPLACE_FUNCS(strtok_r strtod strtol strtoul vasprintf vsnprintf) + + AC_CHECK_FUNCS(realpath,,LIBOBJS="$LIBOBJS canonicalize.o") + + # to include `error.c' error.c has some HAVE_* checks + AC_CHECK_FUNCS(vprintf doprnt strerror_r) + AM_FUNC_ERROR_AT_LINE + + # This is required if we declare setreuid () and setregid (). + AC_TYPE_UID_T + + # see if we need to declare some functions. Solaris is notorious for + # putting functions into the `libc' but not listing them in the headers + AC_CHECK_HEADERS(string.h strings.h stdlib.h unistd.h dirent.h) + GCC_NEED_DECLARATIONS(gethostname setreuid setregid getpagesize) + GCC_NEED_DECLARATION(scandir,[ +#ifdef HAVE_DIRENT_H +#include +#endif +]) + + # Turn our LIBOBJS into libtool objects. This is gross, but it + # requires changes to autoconf before it goes away. + LTLIBOBJS=`echo "$LIBOBJS" | sed 's/\.o/.lo/g'` + AC_SUBST(need_gnome_support) + AC_SUBST(LTLIBOBJS) + + LIBOBJS="$save_LIBOBJS" + AM_CONDITIONAL(BUILD_GNOME_SUPPORT, test "$need_gnome_support" = yes) +]) diff --git a/Branch-2.2/bacula/autoconf/gnome-macros/gnome-undelfs.m4 b/Branch-2.2/bacula/autoconf/gnome-macros/gnome-undelfs.m4 new file mode 100644 index 0000000000..fe031cd6fc --- /dev/null +++ b/Branch-2.2/bacula/autoconf/gnome-macros/gnome-undelfs.m4 @@ -0,0 +1,22 @@ +dnl GNOME_UNDELFS_CHECKS +dnl Check for ext2fs undel support. +dnl Set shell variable ext2fs_undel to "yes" if we have it, +dnl "no" otherwise. May define USE_EXT2FSLIB for cpp. +dnl Will set EXT2FS_UNDEL_LIBS to required libraries. + +AC_DEFUN([GNOME_UNDELFS_CHECKS], [ + ext2fs_undel=no + EXT2FS_UNDEL_LIBS= + AC_CHECK_HEADERS(linux/ext2_fs.h) + if test x$ac_cv_header_linux_ext2_fs_h = xyes + then + AC_CHECK_HEADERS(ext2fs/ext2fs.h, , , [#include +#include ]) + if test x$ac_cv_header_ext2fs_ext2fs_h = xyes + then + AC_DEFINE(USE_EXT2FSLIB) + ext2fs_undel=yes + EXT2FS_UNDEL_LIBS="-lext2fs -lcom_err" + fi + fi +]) diff --git a/Branch-2.2/bacula/autoconf/gnome-macros/gnome-vfs.m4 b/Branch-2.2/bacula/autoconf/gnome-macros/gnome-vfs.m4 new file mode 100644 index 0000000000..6dce307783 --- /dev/null +++ b/Branch-2.2/bacula/autoconf/gnome-macros/gnome-vfs.m4 @@ -0,0 +1,126 @@ +dnl GNOME_VFS_CHECKS +dnl Check for various functions needed by libvfs. +dnl This has various effects: +dnl Sets GNOME_VFS_LIBS to libraries required +dnl Sets termnet to true or false depending on whether it is required. +dnl If yes, defines USE_TERMNET. +dnl Sets vfs_flags to "pretty" list of vfs implementations we include. +dnl Sets shell variable use_vfs to yes (default, --with-vfs) or +dnl "no" (--without-vfs). +dnl Calls AC_SUBST(mcserv), which is either empty or "mcserv". + +dnl Private define +AC_DEFUN([GNOME_WITH_VFS],[ + dnl FIXME: network checks should probably be in their own macro. + AC_CHECK_LIB(nsl, t_accept) + AC_CHECK_LIB(socket, socket) + + have_socket=no + AC_CHECK_FUNCS(socket, have_socket=yes) + if test $have_socket = no; then + # socket is not in the default libraries. See if it's in some other. + for lib in bsd socket inet; do + AC_CHECK_LIB($lib, socket, [ + LIBS="$LIBS -l$lib" + have_socket=yes + AC_DEFINE(HAVE_SOCKET) + break]) + done + fi + + have_gethostbyname=no + AC_CHECK_FUNC(gethostbyname, have_gethostbyname=yes) + if test $have_gethostbyname = no; then + # gethostbyname is not in the default libraries. See if it's in some other. + for lib in bsd socket inet; do + AC_CHECK_LIB($lib, gethostbyname, [LIBS="$LIBS -l$lib"; have_gethostbyname=yes; break]) + done + fi + + vfs_flags="tarfs" + use_net_code=false + if test $have_socket = yes; then + AC_STRUCT_LINGER + AC_CHECK_FUNCS(pmap_set, , [ + AC_CHECK_LIB(rpc, pmap_set, [ + LIBS="-lrpc $LIBS" + AC_DEFINE(HAVE_PMAP_SET) + ])]) + AC_CHECK_FUNCS(pmap_getport pmap_getmaps rresvport) + dnl add for source routing support setsockopt + AC_CHECK_HEADERS(rpc/pmap_clnt.h, , , [ +#include +#include +#include +#include +#include + ]) + vfs_flags="$vfs_flags, mcfs, ftpfs, fish" + use_net_code=true + fi + + dnl + dnl Samba support + dnl + smbfs="" + SAMBAFILES="" + AC_ARG_WITH(samba, + [--with-samba Support smb virtual file system],[ + if test "x$withval" != "xno"; then + AC_DEFINE(WITH_SMBFS) + vfs_flags="$vfs_flags, smbfs" + smbfs="smbfs.o" + SAMBAFILES="\$(SAMBAFILES)" + fi + ]) + AC_SUBST(smbfs) + AC_SUBST(SAMBAFILES) + + dnl + dnl The termnet support + dnl + termnet=false + AC_ARG_WITH(termnet, + [--with-termnet If you want a termified net support],[ + if test x$withval = xyes; then + AC_DEFINE(USE_TERMNET) + termnet=true + fi + ]) + + TERMNET="" + AC_DEFINE(USE_VFS) + if $use_net_code; then + AC_DEFINE(USE_NETCODE) + fi + mcserv= + if test $have_socket = yes; then + mcserv="mcserv" + if $termnet; then + TERMNET="-ltermnet" + fi + fi + + AC_SUBST(TERMNET) + AC_SUBST(mcserv) + +dnl FIXME: +dnl GNOME_VFS_LIBS= + +]) + +AC_DEFUN([GNOME_VFS_CHECKS],[ + use_vfs=yes + AC_ARG_WITH(vfs, + [--with-vfs Compile with the VFS code], + use_vfs=$withval + ) + case $use_vfs in + yes) GNOME_WITH_VFS;; + no) use_vfs=no;; + *) use_vfs=no;; + dnl Should we issue a warning? + esac +]) + + diff --git a/Branch-2.2/bacula/autoconf/gnome-macros/gnome-x-checks.m4 b/Branch-2.2/bacula/autoconf/gnome-macros/gnome-x-checks.m4 new file mode 100644 index 0000000000..1e397ef8e3 --- /dev/null +++ b/Branch-2.2/bacula/autoconf/gnome-macros/gnome-x-checks.m4 @@ -0,0 +1,80 @@ +dnl GNOME_X_CHECKS +dnl +dnl Basic X11 related checks for X11. At the end, the following will be +dnl defined/changed: +dnl GTK_{CFLAGS,LIBS} From AM_PATH_GTK +dnl CPPFLAGS Will include $X_CFLAGS +dnl GNOME_HAVE_SM `true' or `false' depending on whether session +dnl management is available. It is available if +dnl both -lSM and X11/SM/SMlib.h exist. (Some +dnl Solaris boxes have the library but not the header) +dnl XPM_LIBS -lXpm if Xpm library is present, otherwise "" +dnl +dnl The following configure cache variables are defined (but not used): +dnl gnome_cv_passdown_{x_libs,X_LIBS,X_CFLAGS} +dnl +AC_DEFUN([GNOME_X_CHECKS], +[ + AM_PATH_GTK(1.2.0,,AC_MSG_ERROR(GTK not installed, or gtk-config not in path)) + dnl Hope that GTK_CFLAGS have only -I and -D. Otherwise, we could + dnl test -z "$x_includes" || CPPFLAGS="$CPPFLAGS -I$x_includes" + dnl + dnl Use CPPFLAGS instead of CFLAGS because AC_CHECK_HEADERS uses + dnl CPPFLAGS, not CFLAGS + CPPFLAGS="$CPPFLAGS $GTK_CFLAGS" + + saved_ldflags="$LDFLAGS" + LDFLAGS="$LDFLAGS $GTK_LIBS" + + gnome_cv_passdown_x_libs="$GTK_LIBS" + gnome_cv_passdown_X_LIBS="$GTK_LIBS" + gnome_cv_passdown_X_CFLAGS="$GTK_CFLAGS" + gnome_cv_passdown_GTK_LIBS="$GTK_LIBS" + + LDFLAGS="$saved_ldflags $GTK_LIBS" + +dnl We are requiring GTK >= 1.1.1, which means this will be fine anyhow. + USE_DEVGTK=true + +dnl AC_MSG_CHECKING([whether to use features from (unstable) GTK+ 1.1.x]) +dnl AC_EGREP_CPP(answer_affirmatively, +dnl [#include +dnl #ifdef GTK_HAVE_FEATURES_1_1_0 +dnl answer_affirmatively +dnl #endif +dnl ], dev_gtk=yes, dev_gtk=no) +dnl if test "$dev_gtk" = "yes"; then +dnl USE_DEVGTK=true +dnl fi +dnl AC_MSG_RESULT("$dev_gtk") + + GNOME_HAVE_SM=true + case "$GTK_LIBS" in + *-lSM*) + dnl Already found it. + ;; + *) + dnl Assume that if we have -lSM then we also have -lICE. + AC_CHECK_LIB(SM, SmcSaveYourselfDone, + [GTK_LIBS="-lSM -lICE $GTK_LIBS"],GNOME_HAVE_SM=false, + $x_libs -lICE) + ;; + esac + + if test "$GNOME_HAVE_SM" = true; then + AC_CHECK_HEADERS(X11/SM/SMlib.h,,GNOME_HAVE_SM=false) + fi + + if test "$GNOME_HAVE_SM" = true; then + AC_DEFINE(HAVE_LIBSM) + fi + + XPM_LIBS="" + AC_CHECK_LIB(Xpm, XpmFreeXpmImage, [XPM_LIBS="-lXpm"], , $x_libs) + AC_SUBST(XPM_LIBS) + + AC_REQUIRE([GNOME_PTHREAD_CHECK]) + LDFLAGS="$saved_ldflags" + + AC_PROVIDE([GNOME_X_CHECKS]) +]) diff --git a/Branch-2.2/bacula/autoconf/gnome-macros/gnome-xml-check.m4 b/Branch-2.2/bacula/autoconf/gnome-macros/gnome-xml-check.m4 new file mode 100644 index 0000000000..1caad1009f --- /dev/null +++ b/Branch-2.2/bacula/autoconf/gnome-macros/gnome-xml-check.m4 @@ -0,0 +1,32 @@ +dnl +dnl GNOME_XML_HOOK (script-if-xml-found, failflag) +dnl +dnl If failflag is "failure", script aborts due to lack of XML +dnl +dnl Check for availability of the libxml library +dnl the XML parser uses libz if available too +dnl + +AC_DEFUN([GNOME_XML_HOOK],[ + AC_PATH_PROG(GNOME_CONFIG,gnome-config,no) + if test "$GNOME_CONFIG" = no; then + if test x$2 = xfailure; then + AC_MSG_ERROR(Could not find gnome-config) + fi + fi + GNOME_XML_CFLAGS=`$GNOME_CONFIG --cflags xml` + AC_SUBST(GNOME_XML_CFLAGS) + AC_CHECK_LIB(xml, xmlNewDoc, [ + $1 + GNOME_XML_LIB=`$GNOME_CONFIG --libs xml` + ], [ + if test x$2 = xfailure; then + AC_MSG_ERROR(Could not link sample xml program) + fi + ], `$GNOME_CONFIG --libs xml`) + AC_SUBST(GNOME_XML_LIB) +]) + +AC_DEFUN([GNOME_XML_CHECK], [ + GNOME_XML_HOOK([],failure) +]) diff --git a/Branch-2.2/bacula/autoconf/gnome-macros/gnome.m4 b/Branch-2.2/bacula/autoconf/gnome-macros/gnome.m4 new file mode 100644 index 0000000000..2d23de8772 --- /dev/null +++ b/Branch-2.2/bacula/autoconf/gnome-macros/gnome.m4 @@ -0,0 +1,130 @@ +dnl +dnl GNOME_INIT_HOOK (script-if-gnome-enabled, [failflag], [additional-inits]) +dnl +dnl if failflag is "fail" then GNOME_INIT_HOOK will abort if gnomeConf.sh +dnl is not found. +dnl + +AC_DEFUN([GNOME_INIT_HOOK],[ + AC_SUBST(GNOME_LIBS) + AC_SUBST(GNOMEUI_LIBS) + AC_SUBST(GNOMEGNORBA_LIBS) + AC_SUBST(GTKXMHTML_LIBS) + AC_SUBST(ZVT_LIBS) + AC_SUBST(GNOME_LIBDIR) + AC_SUBST(GNOME_INCLUDEDIR) + + AC_ARG_WITH(gnome-includes, + [ --with-gnome-includes Specify location of GNOME headers],[ + CFLAGS="$CFLAGS -I$withval" + ]) + + AC_ARG_WITH(gnome-libs, + [ --with-gnome-libs Specify location of GNOME libs],[ + LDFLAGS="$LDFLAGS -L$withval" + gnome_prefix=$withval + ]) + + AC_ARG_WITH(gnome, + [ --with-gnome Specify prefix for GNOME files], + if test x$withval = xyes; then + want_gnome=yes + dnl Note that an empty true branch is not + dnl valid sh syntax. + ifelse([$1], [], :, [$1]) + else + if test "x$withval" = xno; then + want_gnome=no + else + want_gnome=yes + LDFLAGS="$LDFLAGS -L$withval/lib" + CFLAGS="$CFLAGS -I$withval/include" + gnome_prefix=$withval/lib + fi + fi, + want_gnome=yes) + + if test "x$want_gnome" = xyes; then + + AC_PATH_PROG(GNOME_CONFIG,gnome-config,no) + if test "$GNOME_CONFIG" = "no"; then + no_gnome_config="yes" + else + AC_MSG_CHECKING(if $GNOME_CONFIG works) + if $GNOME_CONFIG --libs-only-l gnome >/dev/null 2>&1; then + AC_MSG_RESULT(yes) + GNOME_GNORBA_HOOK([],$2) + GNOME_LIBS="`$GNOME_CONFIG --libs-only-l gnome`" + GNOMEUI_LIBS="`$GNOME_CONFIG --libs-only-l gnomeui`" + GNOMEGNORBA_LIBS="`$GNOME_CONFIG --libs-only-l gnorba gnomeui`" + GTKXMHTML_LIBS="`$GNOME_CONFIG --libs-only-l gtkxmhtml`" + ZVT_LIBS="`$GNOME_CONFIG --libs-only-l zvt`" + GNOME_LIBDIR="`$GNOME_CONFIG --libs-only-L gnorba gnomeui`" + GNOME_INCLUDEDIR="`$GNOME_CONFIG --cflags gnorba gnomeui`" + $1 + else + AC_MSG_RESULT(no) + no_gnome_config="yes" + fi + fi + + if test x$exec_prefix = xNONE; then + if test x$prefix = xNONE; then + gnome_prefix=$ac_default_prefix/lib + else + gnome_prefix=$prefix/lib + fi + else + gnome_prefix=`eval echo \`echo $libdir\`` + fi + + if test "$no_gnome_config" = "yes"; then + AC_MSG_CHECKING(for gnomeConf.sh file in $gnome_prefix) + if test -f $gnome_prefix/gnomeConf.sh; then + AC_MSG_RESULT(found) + echo "loading gnome configuration from" \ + "$gnome_prefix/gnomeConf.sh" + . $gnome_prefix/gnomeConf.sh + $1 + else + AC_MSG_RESULT(not found) + if test x$2 = xfail; then + AC_MSG_ERROR(Could not find the gnomeConf.sh file that is generated by gnome-libs install) + fi + fi + fi + fi + + if test -n "$3"; then + n="$3" + for i in $n; do + AC_MSG_CHECKING(extra library \"$i\") + case $i in + applets) + AC_SUBST(GNOME_APPLETS_LIBS) + GNOME_APPLETS_LIBS=`$GNOME_CONFIG --libs-only-l applets` + AC_MSG_RESULT($GNOME_APPLETS_LIBS);; + docklets) + AC_SUBST(GNOME_DOCKLETS_LIBS) + GNOME_DOCKLETS_LIBS=`$GNOME_CONFIG --libs-only-l docklets` + AC_MSG_RESULT($GNOME_DOCKLETS_LIBS);; + capplet) + AC_SUBST(GNOME_CAPPLET_LIBS) + GNOME_CAPPLET_LIBS=`$GNOME_CONFIG --libs-only-l capplet` + AC_MSG_RESULT($GNOME_CAPPLET_LIBS);; + *) + AC_MSG_RESULT(unknown library) + esac + EXTRA_INCLUDEDIR=`$GNOME_CONFIG --cflags $i` + GNOME_INCLUDEDIR="$GNOME_INCLUDEDIR $EXTRA_INCLUDEDIR" + done + fi +]) + +dnl +dnl GNOME_INIT ([additional-inits]) +dnl + +AC_DEFUN([GNOME_INIT],[ + GNOME_INIT_HOOK([],fail,$1) +]) diff --git a/Branch-2.2/bacula/autoconf/gnome-macros/gperf-check.m4 b/Branch-2.2/bacula/autoconf/gnome-macros/gperf-check.m4 new file mode 100644 index 0000000000..3869459ebc --- /dev/null +++ b/Branch-2.2/bacula/autoconf/gnome-macros/gperf-check.m4 @@ -0,0 +1,79 @@ +dnl +dnl AC_PROG_GPERF (MINIMUM-VERSION) +dnl +dnl Check for availability of gperf. +dnl Abort if not found or if current version is not up to par. +dnl + +AC_DEFUN([AC_PROG_GPERF],[ + AC_PATH_PROG(GPERF, gperf, no) + if test "$GPERF" = no; then + AC_MSG_ERROR(Could not find gperf) + fi + min_gperf_version=ifelse([$1], ,2.7,$1) + AC_MSG_CHECKING(for gperf - version >= $min_gperf_version) + gperf_major_version=`$GPERF --version | \ + sed 's/GNU gperf \([[0-9]]*\).\([[0-9]]*\)/\1/'` + gperf_minor_version=`$GPERF --version | \ + sed 's/GNU gperf \([[0-9]]*\).\([[0-9]]*\)/\2/'` + no_gperf="" +dnl +dnl Now check if the installed gperf is sufficiently new. +dnl + AC_TRY_RUN([ +#include +#include +#include + +static char* +my_strdup (char *str) +{ + char *new_str; + + if (str) + { + new_str = malloc ((strlen (str) + 1) * sizeof(char)); + strcpy (new_str, str); + } + else + new_str = NULL; + + return new_str; +} + +int +main () +{ + char *tmp_version; + + int major; + int minor; + + /* HP/UX 9 (%@#!) writes to sscanf strings */ + tmp_version = my_strdup("$min_gperf_version"); + if (sscanf(tmp_version, "%d.%d", &major, &minor) != 2) { + printf ("%s, bad version string\n", "$min_gperf_version"); + return 1; + } + + if (($gperf_major_version > major) || + (($gperf_major_version == major) && ($gperf_minor_version >= minor))) { + return 0; + } else { + printf ("\n"); + printf ("*** An old version of gperf ($gperf_major_version.$gperf_minor_version) was found.\n"); + printf ("*** You need a version of gperf newer than %d.%d.%d. The latest version of\n", + major, minor); + printf ("*** gperf is always available from ftp://ftp.gnu.org.\n"); + printf ("***\n"); + return 1; + } +} +],,no_gperf=yes,[/bin/true]) + if test "x$no_gperf" = x ; then + AC_MSG_RESULT(yes) + else + AC_MSG_RESULT(no) + fi + +]) diff --git a/Branch-2.2/bacula/autoconf/gnome-macros/linger.m4 b/Branch-2.2/bacula/autoconf/gnome-macros/linger.m4 new file mode 100644 index 0000000000..f1c7060398 --- /dev/null +++ b/Branch-2.2/bacula/autoconf/gnome-macros/linger.m4 @@ -0,0 +1,28 @@ +dnl +dnl Check for struct linger +dnl +AC_DEFUN([AC_STRUCT_LINGER], [ +av_struct_linger=no +AC_MSG_CHECKING(struct linger is available) +AC_TRY_RUN([ +#include +#include + +struct linger li; + +int main () +{ + li.l_onoff = 1; + li.l_linger = 120; + return 0; +} +],[ +AC_DEFINE(HAVE_STRUCT_LINGER) +av_struct_linger=yes +],[ +av_struct_linger=no +],[ +av_struct_linger=no +]) +AC_MSG_RESULT($av_struct_linger) +]) diff --git a/Branch-2.2/bacula/autoconf/gnome-macros/need-declaration.m4 b/Branch-2.2/bacula/autoconf/gnome-macros/need-declaration.m4 new file mode 100644 index 0000000000..8a217b8a30 --- /dev/null +++ b/Branch-2.2/bacula/autoconf/gnome-macros/need-declaration.m4 @@ -0,0 +1,42 @@ +dnl See whether we need a declaration for a function. +dnl GCC_NEED_DECLARATION(FUNCTION [, EXTRA-HEADER-FILES]) +AC_DEFUN([GCC_NEED_DECLARATION], +[AC_MSG_CHECKING([whether $1 must be declared]) +AC_CACHE_VAL(gcc_cv_decl_needed_$1, +[AC_TRY_COMPILE([ +#include +#ifdef HAVE_STRING_H +#include +#else +#ifdef HAVE_STRINGS_H +#include +#endif +#endif +#ifdef HAVE_STDLIB_H +#include +#endif +#ifdef HAVE_UNISTD_H +#include +#endif +$2], +[char *(*pfn) = (char *(*)) $1], +eval "gcc_cv_decl_needed_$1=no", eval "gcc_cv_decl_needed_$1=yes")]) +if eval "test \"`echo '$gcc_cv_decl_needed_'$1`\" = yes"; then + AC_MSG_RESULT(yes) + gcc_need_declarations="$gcc_need_declarations $1" + gcc_tr_decl=NEED_DECLARATION_`echo $1 | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + AC_DEFINE_UNQUOTED($gcc_tr_decl) +else + AC_MSG_RESULT(no) +fi +])dnl + +dnl Check multiple functions to see whether each needs a declaration. +dnl GCC_NEED_DECLARATIONS(FUNCTION... [, EXTRA-HEADER-FILES]) +AC_DEFUN([GCC_NEED_DECLARATIONS], +[for ac_func in $1 +do +GCC_NEED_DECLARATION($ac_func, $2) +done +] +) diff --git a/Branch-2.2/bacula/autoconf/install-sh b/Branch-2.2/bacula/autoconf/install-sh new file mode 100755 index 0000000000..11870f1b01 --- /dev/null +++ b/Branch-2.2/bacula/autoconf/install-sh @@ -0,0 +1,251 @@ +#!/bin/sh +# +# install - install a program, script, or datafile +# This comes from X11R5 (mit/util/scripts/install.sh). +# +# Copyright 1991 by the Massachusetts Institute of Technology +# +# Permission to use, copy, modify, distribute, and sell this software and its +# documentation for any purpose is hereby granted without fee, provided that +# the above copyright notice appear in all copies and that both that +# copyright notice and this permission notice appear in supporting +# documentation, and that the name of M.I.T. not be used in advertising or +# publicity pertaining to distribution of the software without specific, +# written prior permission. M.I.T. makes no representations about the +# suitability of this software for any purpose. It is provided "as is" +# without express or implied warranty. +# +# Calling this script install-sh is preferred over install.sh, to prevent +# `make' implicit rules from creating a file called install from it +# when there is no Makefile. +# +# This script is compatible with the BSD install script, but was written +# from scratch. It can only install one file at a time, a restriction +# shared with many OS's install programs. + + +# set DOITPROG to echo to test this script + +# Don't use :- since 4.3BSD and earlier shells don't like it. +doit="${DOITPROG-}" + + +# put in absolute paths if you don't have them in your path; or use env. vars. + +mvprog="${MVPROG-mv}" +cpprog="${CPPROG-cp}" +chmodprog="${CHMODPROG-chmod}" +chownprog="${CHOWNPROG-chown}" +chgrpprog="${CHGRPPROG-chgrp}" +stripprog="${STRIPPROG-strip}" +rmprog="${RMPROG-rm}" +mkdirprog="${MKDIRPROG-mkdir}" + +transformbasename="" +transform_arg="" +instcmd="$mvprog" +chmodcmd="$chmodprog 0755" +chowncmd="" +chgrpcmd="" +stripcmd="" +rmcmd="$rmprog -f" +mvcmd="$mvprog" +src="" +dst="" +dir_arg="" + +while [ x"$1" != x ]; do + case $1 in + -c) instcmd="$cpprog" + shift + continue;; + + -d) dir_arg=true + shift + continue;; + + -m) chmodcmd="$chmodprog $2" + shift + shift + continue;; + + -o) chowncmd="$chownprog $2" + shift + shift + continue;; + + -g) chgrpcmd="$chgrpprog $2" + shift + shift + continue;; + + -s) stripcmd="$stripprog" + shift + continue;; + + -t=*) transformarg=`echo $1 | sed 's/-t=//'` + shift + continue;; + + -b=*) transformbasename=`echo $1 | sed 's/-b=//'` + shift + continue;; + + *) if [ x"$src" = x ] + then + src=$1 + else + # this colon is to work around a 386BSD /bin/sh bug + : + dst=$1 + fi + shift + continue;; + esac +done + +if [ x"$src" = x ] +then + echo "install: no input file specified" + exit 1 +else + : +fi + +if [ x"$dir_arg" != x ]; then + dst=$src + src="" + + if [ -d $dst ]; then + instcmd=: + chmodcmd="" + else + instcmd=$mkdirprog + fi +else + +# Waiting for this to be detected by the "$instcmd $src $dsttmp" command +# might cause directories to be created, which would be especially bad +# if $src (and thus $dsttmp) contains '*'. + + if [ -f "$src" ] || [ -d "$src" ] + then + : + else + echo "install: $src does not exist" + exit 1 + fi + + if [ x"$dst" = x ] + then + echo "install: no destination specified" + exit 1 + else + : + fi + +# If destination is a directory, append the input filename; if your system +# does not like double slashes in filenames, you may need to add some logic + + if [ -d $dst ] + then + dst="$dst"/`basename $src` + else + : + fi +fi + +## this sed command emulates the dirname command +dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` + +# Make sure that the destination directory exists. +# this part is taken from Noah Friedman's mkinstalldirs script + +# Skip lots of stat calls in the usual case. +if [ ! -d "$dstdir" ]; then +defaultIFS=' + ' +IFS="${IFS-${defaultIFS}}" + +oIFS="${IFS}" +# Some sh's can't handle IFS=/ for some reason. +IFS='%' +set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` +IFS="${oIFS}" + +pathcomp='' + +while [ $# -ne 0 ] ; do + pathcomp="${pathcomp}${1}" + shift + + if [ ! -d "${pathcomp}" ] ; + then + $mkdirprog "${pathcomp}" + else + : + fi + + pathcomp="${pathcomp}/" +done +fi + +if [ x"$dir_arg" != x ] +then + $doit $instcmd $dst && + + if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else : ; fi && + if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else : ; fi && + if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else : ; fi && + if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else : ; fi +else + +# If we're going to rename the final executable, determine the name now. + + if [ x"$transformarg" = x ] + then + dstfile=`basename $dst` + else + dstfile=`basename $dst $transformbasename | + sed $transformarg`$transformbasename + fi + +# don't allow the sed command to completely eliminate the filename + + if [ x"$dstfile" = x ] + then + dstfile=`basename $dst` + else + : + fi + +# Make a temp file name in the proper directory. + + dsttmp=$dstdir/#inst.$$# + +# Move or copy the file name to the temp name + + $doit $instcmd $src $dsttmp && + + trap "rm -f ${dsttmp}" 0 && + +# and set any options; do chmod last to preserve setuid bits + +# If any of these fail, we abort the whole thing. If we want to +# ignore errors from any of these, just make sure not to ignore +# errors from the above "$doit $instcmd $src $dsttmp" command. + + if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else :;fi && + if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else :;fi && + if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else :;fi && + if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else :;fi && + +# Now rename the file to the real destination. + + $doit $rmcmd -f $dstdir/$dstfile && + $doit $mvcmd $dsttmp $dstdir/$dstfile + +fi && + + +exit 0 diff --git a/Branch-2.2/bacula/autoconf/install.sh b/Branch-2.2/bacula/autoconf/install.sh new file mode 100755 index 0000000000..ea88212bb5 --- /dev/null +++ b/Branch-2.2/bacula/autoconf/install.sh @@ -0,0 +1,235 @@ +#!/bin/sh +# +# install - install a program, script, or datafile +# This comes from X11R5. +# +# $XConsortium: install.sh,v 1.2 89/12/18 14:47:22 jim Exp $ +# +# This script is compatible with the BSD install script, but was written +# from scratch. +# + +# set DOITPROG to echo to test this script + +# Don't use :- since 4.3BSD and earlier shells don't like it. +doit="${DOITPROG-}" + + +# put in absolute paths if you don't have them in your path; or use env. vars. + +mvprog="${MVPROG-mv}" +cpprog="${CPPROG-cp}" +chmodprog="${CHMODPROG-chmod}" +chownprog="${CHOWNPROG-chown}" +chgrpprog="${CHGRPPROG-chgrp}" +stripprog="${STRIPPROG-strip}" +rmprog="${RMPROG-rm}" +mkdirprog="${MKDIRPROG-mkdir}" + +tranformbasename="" +transform_arg="" +instcmd="$mvprog" +chmodcmd="$chmodprog 0755" +chowncmd="" +chgrpcmd="" +stripcmd="" +rmcmd="$rmprog -f" +mvcmd="$mvprog" +src="" +dst="" +dir_arg="" + +while [ x"$1" != x ]; do + case $1 in + -c) instcmd="$cpprog" + shift + continue;; + + -d) dir_arg=true + shift + continue;; + + -m) chmodcmd="$chmodprog $2" + shift + shift + continue;; + + -o) chowncmd="$chownprog $2" + shift + shift + continue;; + + -g) chgrpcmd="$chgrpprog $2" + shift + shift + continue;; + + -s) stripcmd="$stripprog" + shift + continue;; + + -t=*) transformarg=`echo $1 | sed 's/-t=//'` + shift + continue;; + + -b=*) transformbasename=`echo $1 | sed 's/-b=//'` + shift + continue;; + + *) if [ x"$src" = x ] + then + src=$1 + else + # this colon is to work around a 386BSD /bin/sh bug + : + dst=$1 + fi + shift + continue;; + esac +done + +if [ x"$src" = x ] +then + echo "install: no input file specified" + exit 1 +else + true +fi + +if [ x"$dir_arg" != x ]; then + dst=$src + src="" + + if [ -d $dst ]; then + instcmd=: + else + instcmd=mkdir + fi +else + +# Waiting for this to be detected by the "$instcmd $src $dsttmp" command +# might cause directories to be created, which would be especially bad +# if $src (and thus $dsttmp) contains '*'. + + if [ -f $src -o -d $src ] + then + true + else + echo "install: $src does not exist" + exit 1 + fi + + if [ x"$dst" = x ] + then + echo "install: no destination specified" + exit 1 + else + true + fi + +# If destination is a directory, append the input filename; if your system +# does not like double slashes in filenames, you may need to add some logic + + if [ -d $dst ] + then + dst="$dst"/`basename $src` + else + true + fi +fi + +## this sed command emulates the dirname command +dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` + +# Make sure that the destination directory exists. +# this part is taken from Noah Friedman's mkinstalldirs script + +# Skip lots of stat calls in the usual case. +if [ ! -d "$dstdir" ]; then +defaultIFS=' +' +IFS="${IFS-${defaultIFS}}" + +oIFS="${IFS}" +# Some sh's can't handle IFS=/ for some reason. +IFS='%' +set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` +IFS="${oIFS}" + +pathcomp='' + +while [ $# -ne 0 ] ; do + pathcomp="${pathcomp}${1}" + shift + + if [ ! -d "${pathcomp}" ] ; + then + $mkdirprog "${pathcomp}" + else + true + fi + + pathcomp="${pathcomp}/" +done +fi + +if [ x"$dir_arg" != x ] +then + $doit $instcmd $dst && + + if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && + if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && + if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && + if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi +else + +# If we're going to rename the final executable, determine the name now. + + if [ x"$transformarg" = x ] + then + dstfile=`basename $dst` + else + dstfile=`basename $dst $transformbasename | + sed $transformarg`$transformbasename + fi + +# don't allow the sed command to completely eliminate the filename + + if [ x"$dstfile" = x ] + then + dstfile=`basename $dst` + else + true + fi + +# Make a temp file name in the proper directory. + + dsttmp=$dstdir/#inst.$$# + +# Move or copy the file name to the temp name + + $doit $instcmd $src $dsttmp && + + trap "rm -f ${dsttmp}" 0 && + +# and set any options; do chmod last to preserve setuid bits + +# If any of these fail, we abort the whole thing. If we want to +# ignore errors from any of these, just make sure not to ignore +# errors from the above "$doit $instcmd $src $dsttmp" command. + + if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && + if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && + if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && + if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && + +# Now rename the file to the real destination. + + $doit $rmcmd -f $dstdir/$dstfile && + $doit $mvcmd $dsttmp $dstdir/$dstfile + +fi && + + +exit 0 diff --git a/Branch-2.2/bacula/autoconf/mkinstalldirs b/Branch-2.2/bacula/autoconf/mkinstalldirs new file mode 100755 index 0000000000..6fbe5e1176 --- /dev/null +++ b/Branch-2.2/bacula/autoconf/mkinstalldirs @@ -0,0 +1,150 @@ +#! /bin/sh +# mkinstalldirs --- make directory hierarchy + +scriptversion=2004-02-15.20 + +# Original author: Noah Friedman +# Created: 1993-05-16 +# Public domain. +# +# This file is maintained in Automake, please report +# bugs to or send patches to +# . + +errstatus=0 +dirmode="" + +usage="\ +Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ... + +Create each directory DIR (with mode MODE, if specified), including all +leading file name components. + +Report bugs to ." + +# process command line arguments +while test $# -gt 0 ; do + case $1 in + -h | --help | --h*) # -h for help + echo "$usage" + exit 0 + ;; + -m) # -m PERM arg + shift + test $# -eq 0 && { echo "$usage" 1>&2; exit 1; } + dirmode=$1 + shift + ;; + --version) + echo "$0 $scriptversion" + exit 0 + ;; + --) # stop option processing + shift + break + ;; + -*) # unknown option + echo "$usage" 1>&2 + exit 1 + ;; + *) # first non-opt arg + break + ;; + esac +done + +for file +do + if test -d "$file"; then + shift + else + break + fi +done + +case $# in + 0) exit 0 ;; +esac + +# Solaris 8's mkdir -p isn't thread-safe. If you mkdir -p a/b and +# mkdir -p a/c at the same time, both will detect that a is missing, +# one will create a, then the other will try to create a and die with +# a "File exists" error. This is a problem when calling mkinstalldirs +# from a parallel make. We use --version in the probe to restrict +# ourselves to GNU mkdir, which is thread-safe. +case $dirmode in + '') + if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then + echo "mkdir -p -- $*" + exec mkdir -p -- "$@" + else + # On NextStep and OpenStep, the `mkdir' command does not + # recognize any option. It will interpret all options as + # directories to create, and then abort because `.' already + # exists. + test -d ./-p && rmdir ./-p + test -d ./--version && rmdir ./--version + fi + ;; + *) + if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 && + test ! -d ./--version; then + echo "mkdir -m $dirmode -p -- $*" + exec mkdir -m "$dirmode" -p -- "$@" + else + # Clean up after NextStep and OpenStep mkdir. + for d in ./-m ./-p ./--version "./$dirmode"; + do + test -d $d && rmdir $d + done + fi + ;; +esac + +for file +do + set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` + shift + + pathcomp= + for d + do + pathcomp="$pathcomp$d" + case $pathcomp in + -*) pathcomp=./$pathcomp ;; + esac + + if test ! -d "$pathcomp"; then + echo "mkdir $pathcomp" + + mkdir "$pathcomp" || lasterr=$? + + if test ! -d "$pathcomp"; then + errstatus=$lasterr + else + if test ! -z "$dirmode"; then + echo "chmod $dirmode $pathcomp" + lasterr="" + chmod "$dirmode" "$pathcomp" || lasterr=$? + + if test ! -z "$lasterr"; then + errstatus=$lasterr + fi + fi + fi + fi + + pathcomp="$pathcomp/" + done +done + +exit $errstatus + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-end: "$" +# End: diff --git a/Branch-2.2/bacula/autoconf/python.conf.py b/Branch-2.2/bacula/autoconf/python.conf.py new file mode 100644 index 0000000000..9f679f2bf2 --- /dev/null +++ b/Branch-2.2/bacula/autoconf/python.conf.py @@ -0,0 +1,14 @@ +import sys +import os +from distutils import sysconfig + +print 'PYTHON_INCDIR="-I%s"' % \ + ( sysconfig.get_config_var('INCLUDEPY'), ) + +libdir=sysconfig.get_config_var('LIBPL') +filename = sysconfig.get_config_var('LDLIBRARY'); +lib = os.path.splitext(filename)[0]; +if lib[0:3] == 'lib': + lib = lib[3:] + +print 'PYTHON_LIBS="-L%s -l%s"' % ( libdir, lib ) diff --git a/Branch-2.2/bacula/autoconf/randpass b/Branch-2.2/bacula/autoconf/randpass new file mode 100755 index 0000000000..2294a23331 --- /dev/null +++ b/Branch-2.2/bacula/autoconf/randpass @@ -0,0 +1,27 @@ +#! /bin/sh +# +# Generate a random password, written to standard output +# By John Walker +# +LANG=C +if test "x$1" = "x" ; then + PWL=48 # Password length in characters +else + PWL=$1 +fi +tmp=`mktemp randpass.XXXXXXXXXX` +if test x$tmp = x; then + tmp=/tmp/p.tmp.$$ + if test -f $tmp; then + echo "Temp file security problem on: $tmp" + exit 1 + fi +fi +cp autoconf/randpass.bc $tmp +ps | sum | tr -d ':[:alpha:] ' | sed 's/^/k=/' >>$tmp +date | tr -d ':[:alpha:] ' | sed 's/^/k=k*/' >>$tmp +ls -l /tmp | sum | tr -d ':[:alpha:] ' | sed 's/^/k=k*/' >>$tmp +echo "j=s(k); for (i = 0; i < $PWL; i++) r()" >>$tmp +echo "quit" >>$tmp +bc $tmp | awk -f autoconf/randpass.awk +rm $tmp diff --git a/Branch-2.2/bacula/autoconf/randpass.awk b/Branch-2.2/bacula/autoconf/randpass.awk new file mode 100644 index 0000000000..04cfd13b2e --- /dev/null +++ b/Branch-2.2/bacula/autoconf/randpass.awk @@ -0,0 +1,14 @@ + +# Dumb little AWK program to convert random decimal +# values generated by rand.bc into passwords from the +# character set defined below as "charset". + +BEGIN { + charset = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" + for (i = 0; i < length(charset); i++) { + set[i] = substr(charset, i, 1) + } +} + { printf "%s", set[$1 % length(charset)] } + +END { printf "\n" } diff --git a/Branch-2.2/bacula/autoconf/randpass.bc b/Branch-2.2/bacula/autoconf/randpass.bc new file mode 100644 index 0000000000..8a35df67a4 --- /dev/null +++ b/Branch-2.2/bacula/autoconf/randpass.bc @@ -0,0 +1,44 @@ + /* + "bc" implementation of the "Minimal Standard" + multiplicative congruential generator of Park and Miller. + [Park, S.K. and K.W. Miller, Communications of the ACM 31, + 1192-1201 (1988).] + + The generation algorithm is: + + I[j+1] = (I[j] × 16807) & 0x7FFFFFFF + + Note that the intermediate value of the multiplication by 16807 + (7^5) exceeds that representable in 32 bits; this has + deterred use of this generator in most portable languages. + Fortunately, bc computes with arbitrary precision so this + poses no problem. + + Designed and implemented in September 2002 by John Walker, + http://www.fourmilab.ch/. + */ + + /* Initialise state to default value of 1. */ + + t = 1 + + /* Generate and return the next random byte, updating + the state t. */ + + define r() { + t = (t * 16807) % (2^31) + return ((t / 2048) % (2^8)) + } + + /* Set the seed to the x argument. The state t is + set from the seed, after an initial shuffle. If + you don't want 0 printed when setting the seed, + assign s(x) to a junk variable. */ + + define s(x) { + auto i, j + if (x == 0) { "Seed must be nonzero"; return } + t = x % (2^32) + /* Perform initial shuffle of state. */ + for (i = 0; i < 11; i++) j = r() + } diff --git a/Branch-2.2/bacula/configure b/Branch-2.2/bacula/configure new file mode 100755 index 0000000000..01a0bcdbaf --- /dev/null +++ b/Branch-2.2/bacula/configure @@ -0,0 +1,32384 @@ +#! /bin/sh +# Guess values for system-dependent variables and create Makefiles. +# Generated by GNU Autoconf 2.59. +# +# Copyright (C) 2003 Free Software Foundation, Inc. +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. +## --------------------- ## +## M4sh Initialization. ## +## --------------------- ## + +# Be Bourne compatible +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' +elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then + set -o posix +fi +DUALCASE=1; export DUALCASE # for MKS sh + +# Support unset when possible. +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + as_unset=unset +else + as_unset=false +fi + + +# Work around bugs in pre-3.0 UWIN ksh. +$as_unset ENV MAIL MAILPATH +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +for as_var in \ + LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ + LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ + LC_TELEPHONE LC_TIME +do + if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then + eval $as_var=C; export $as_var + else + $as_unset $as_var + fi +done + +# Required to use basename. +if expr a : '\(a\)' >/dev/null 2>&1; then + as_expr=expr +else + as_expr=false +fi + +if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + + +# Name of the executable. +as_me=`$as_basename "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)$' \| \ + . : '\(.\)' 2>/dev/null || +echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } + /^X\/\(\/\/\)$/{ s//\1/; q; } + /^X\/\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + + +# PATH needs CR, and LINENO needs CR and PATH. +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi + + + as_lineno_1=$LINENO + as_lineno_2=$LINENO + as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x$as_lineno_3" = "x$as_lineno_2" || { + # Find who we are. Look in the path if we contain no path at all + # relative or not. + case $0 in + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break +done + + ;; + esac + # We did not find ourselves, most probably we were run as `sh COMMAND' + # in which case we are not to be found in the path. + if test "x$as_myself" = x; then + as_myself=$0 + fi + if test ! -f "$as_myself"; then + { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2 + { (exit 1); exit 1; }; } + fi + case $CONFIG_SHELL in + '') + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for as_base in sh bash ksh sh5; do + case $as_dir in + /*) + if ("$as_dir/$as_base" -c ' + as_lineno_1=$LINENO + as_lineno_2=$LINENO + as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then + $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } + $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } + CONFIG_SHELL=$as_dir/$as_base + export CONFIG_SHELL + exec "$CONFIG_SHELL" "$0" ${1+"$@"} + fi;; + esac + done +done +;; + esac + + # Create $as_me.lineno as a copy of $as_myself, but with $LINENO + # uniformly replaced by the line number. The first 'sed' inserts a + # line-number line before each line; the second 'sed' does the real + # work. The second script uses 'N' to pair each line-number line + # with the numbered line, and appends trailing '-' during + # substitution so that $LINENO is not a special case at line end. + # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the + # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) + sed '=' <$as_myself | + sed ' + N + s,$,-, + : loop + s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, + t loop + s,-$,, + s,^['$as_cr_digits']*\n,, + ' >$as_me.lineno && + chmod +x $as_me.lineno || + { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 + { (exit 1); exit 1; }; } + + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensible to this). + . ./$as_me.lineno + # Exit status is that of the last command. + exit +} + + +case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in + *c*,-n*) ECHO_N= ECHO_C=' +' ECHO_T=' ' ;; + *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; + *) ECHO_N= ECHO_C='\c' ECHO_T= ;; +esac + +if expr a : '\(a\)' >/dev/null 2>&1; then + as_expr=expr +else + as_expr=false +fi + +rm -f conf$$ conf$$.exe conf$$.file +echo >conf$$.file +if ln -s conf$$.file conf$$ 2>/dev/null; then + # We could just check for DJGPP; but this test a) works b) is more generic + # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). + if test -f conf$$.exe; then + # Don't use ln at all; we don't have any links + as_ln_s='cp -p' + else + as_ln_s='ln -s' + fi +elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.file + +if mkdir -p . 2>/dev/null; then + as_mkdir_p=: +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +as_executable_p="test -f" + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +# IFS +# We need space, tab and new line, in precisely that order. +as_nl=' +' +IFS=" $as_nl" + +# CDPATH. +$as_unset CDPATH + + +# Name of the host. +# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, +# so uname gets run too. +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` + +exec 6>&1 + +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_config_libobj_dir=. +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} + +# Maximum number of lines to put in a shell here document. +# This variable seems obsolete. It should probably be removed, and +# only ac_max_sed_lines should be used. +: ${ac_max_here_lines=38} + +# Identity of this package. +PACKAGE_NAME= +PACKAGE_TARNAME= +PACKAGE_VERSION= +PACKAGE_STRING= +PACKAGE_BUGREPORT= + +ac_unique_file="src/version.h" +# Factoring default headers for most tests. +ac_includes_default="\ +#include +#if HAVE_SYS_TYPES_H +# include +#endif +#if HAVE_SYS_STAT_H +# include +#endif +#if STDC_HEADERS +# include +# include +#else +# if HAVE_STDLIB_H +# include +# endif +#endif +#if HAVE_STRING_H +# if !STDC_HEADERS && HAVE_MEMORY_H +# include +# endif +# include +#endif +#if HAVE_STRINGS_H +# include +#endif +#if HAVE_INTTYPES_H +# include +#else +# if HAVE_STDINT_H +# include +# endif +#endif +#if HAVE_UNISTD_H +# include +#endif" + +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS BUILD_DIR TOP_DIR TRUEPRG FALSEPRG VERSION DATE LSMDATE CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX CPP EGREP INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA RANLIB ac_ct_RANLIB MV RM CP SED ECHO CMP TBL AR OPENSSL MTX DD MKISOFS PYTHON GROWISOFS DVDRWMEDIAINFO DVDRWFORMAT PKGCONFIG QMAKE QMAKEQT4 WXCONFIG WXFLAGS CDRECORD PIDOF AWK ARFLAGS MAKE_SHELL LOCAL_LIBS LOCAL_CFLAGS LOCAL_LDFLAGS LOCAL_DEFS build build_cpu build_vendor build_os host host_cpu host_vendor host_os HAVE_SUN_OS_TRUE HAVE_SUN_OS_FALSE HAVE_OSF1_OS_TRUE HAVE_OSF1_OS_FALSE HAVE_AIX_OS_TRUE HAVE_AIX_OS_FALSE HAVE_HPUX_OS_TRUE HAVE_HPUX_OS_FALSE HAVE_LINUX_OS_TRUE HAVE_LINUX_OS_FALSE HAVE_FREEBSD_OS_TRUE HAVE_FREEBSD_OS_FALSE HAVE_NETBSD_OS_TRUE HAVE_NETBSD_OS_FALSE HAVE_OPENBSD_OS_TRUE HAVE_OPENBSD_OS_FALSE HAVE_BSDI_OS_TRUE HAVE_BSDI_OS_FALSE HAVE_SGI_OS_TRUE HAVE_SGI_OS_FALSE HAVE_IRIX_OS_TRUE HAVE_IRIX_OS_FALSE HAVE_DARWIN_OS_TRUE HAVE_DARWIN_OS_FALSE SET_MAKE MKINSTALLDIRS USE_NLS MSGFMT GMSGFMT XGETTEXT MSGMERGE INTL_MACOSX_LIBS LIBICONV LTLIBICONV INTLLIBS LIBINTL LTLIBINTL POSUB GLIBC2 ALLOCA GLIBC21 HAVE_POSIX_PRINTF HAVE_ASPRINTF HAVE_SNPRINTF HAVE_WPRINTF INTLBISON BUILD_INCLUDED_LIBINTL USE_INCLUDED_LIBINTL CATOBJEXT DATADIRNAME INSTOBJEXT GENCAT INTLOBJS INTL_LIBTOOL_SUFFIX_PREFIX GNOME_INCLUDEDIR GNOMEUI_LIBS GNOME_LIBDIR GNOME_LIBS GNOME_DIR BAT_DIR QWT_INC QWT_LDFLAGS WXCONS_CPPFLAGS WXCONS_LDFLAGS WX_DIR TRAY_MONITOR_CPPFLAGS TRAY_MONITOR_LDFLAGS TRAY_MONITOR_DIR TTOOL_LDFLAGS STATIC_FD STATIC_SD STATIC_DIR STATIC_CONS STATIC_GNOME_CONS STATIC_WX_CONS ALL_DIRS DIRD_DIR DIR_TOOLS STORED_DIR CONS_INC CONS_OBJ CONS_SRC CONS_LIBS CONS_LDFLAGS READLINE_SRC PYTHON_LIBS PYTHON_INCDIR OPENSSL_LIBS OPENSSL_INC working_dir archivedir scriptdir dump_email job_email smtp_host piddir subsysdir baseport dir_port fd_port sd_port dir_password fd_password sd_password mon_dir_password mon_fd_password mon_sd_password db_name db_user dir_user dir_group sd_user sd_group fd_user fd_group SBINPERM SQL_LFLAGS SQL_INCLUDE SQL_BINDIR cats DB_TYPE GETCONF ac_ct_GETCONF X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS LIBOBJS FDLIBS DEBUG DINCLUDE DLIB DB_LIBS WCFLAGS WLDFLAGS WRAPLIBS OBJLIST hostname TAPEDRIVE PSCMD WIN32 MACOSX DISTNAME DISTVER LTLIBOBJS' +ac_subst_files='MCOMMON' + +# Initialize some variables set by options. +ac_init_help= +ac_init_version=false +# The variables have the same names as the options, with +# dashes changed to underlines. +cache_file=/dev/null +exec_prefix=NONE +no_create= +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +verbose= +x_includes=NONE +x_libraries=NONE + +# Installation directory options. +# These are left unexpanded so users can "make install exec_prefix=/foo" +# and all the variables that are supposed to be based on exec_prefix +# by default will actually change. +# Use braces instead of parens because sh, perl, etc. also accept them. +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +ac_prev= +for ac_option +do + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case $ac_option in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir=$ac_optarg ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build_alias ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build_alias=$ac_optarg ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file=$ac_optarg ;; + + --config-cache | -C) + cache_file=config.cache ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir=$ac_optarg ;; + + -disable-* | --disable-*) + ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid feature name: $ac_feature" >&2 + { (exit 1); exit 1; }; } + ac_feature=`echo $ac_feature | sed 's/-/_/g'` + eval "enable_$ac_feature=no" ;; + + -enable-* | --enable-*) + ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid feature name: $ac_feature" >&2 + { (exit 1); exit 1; }; } + ac_feature=`echo $ac_feature | sed 's/-/_/g'` + case $ac_option in + *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; + *) ac_optarg=yes ;; + esac + eval "enable_$ac_feature='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix=$ac_optarg ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he | -h) + ac_init_help=long ;; + -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) + ac_init_help=recursive ;; + -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) + ac_init_help=short ;; + + -host | --host | --hos | --ho) + ac_prev=host_alias ;; + -host=* | --host=* | --hos=* | --ho=*) + host_alias=$ac_optarg ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir=$ac_optarg ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir=$ac_optarg ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir=$ac_optarg ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir=$ac_optarg ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir=$ac_optarg ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir=$ac_optarg ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c | -n) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir=$ac_optarg ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix=$ac_optarg ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix=$ac_optarg ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix=$ac_optarg ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name=$ac_optarg ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir=$ac_optarg ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir=$ac_optarg ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site=$ac_optarg ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir=$ac_optarg ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir=$ac_optarg ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target_alias ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target_alias=$ac_optarg ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers | -V) + ac_init_version=: ;; + + -with-* | --with-*) + ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid package name: $ac_package" >&2 + { (exit 1); exit 1; }; } + ac_package=`echo $ac_package| sed 's/-/_/g'` + case $ac_option in + *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; + *) ac_optarg=yes ;; + esac + eval "with_$ac_package='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid package name: $ac_package" >&2 + { (exit 1); exit 1; }; } + ac_package=`echo $ac_package | sed 's/-/_/g'` + eval "with_$ac_package=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes=$ac_optarg ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries=$ac_optarg ;; + + -*) { echo "$as_me: error: unrecognized option: $ac_option +Try \`$0 --help' for more information." >&2 + { (exit 1); exit 1; }; } + ;; + + *=*) + ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` + # Reject names that are not valid shell variable names. + expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 + { (exit 1); exit 1; }; } + ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` + eval "$ac_envvar='$ac_optarg'" + export $ac_envvar ;; + + *) + # FIXME: should be removed in autoconf 3.0. + echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} + ;; + + esac +done + +if test -n "$ac_prev"; then + ac_option=--`echo $ac_prev | sed 's/_/-/g'` + { echo "$as_me: error: missing argument to $ac_option" >&2 + { (exit 1); exit 1; }; } +fi + +# Be sure to have absolute paths. +for ac_var in exec_prefix prefix +do + eval ac_val=$`echo $ac_var` + case $ac_val in + [\\/$]* | ?:[\\/]* | NONE | '' ) ;; + *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 + { (exit 1); exit 1; }; };; + esac +done + +# Be sure to have absolute paths. +for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ + localstatedir libdir includedir oldincludedir infodir mandir +do + eval ac_val=$`echo $ac_var` + case $ac_val in + [\\/$]* | ?:[\\/]* ) ;; + *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 + { (exit 1); exit 1; }; };; + esac +done + +# There might be people who depend on the old broken behavior: `$host' +# used to hold the argument of --host etc. +# FIXME: To remove some day. +build=$build_alias +host=$host_alias +target=$target_alias + +# FIXME: To remove some day. +if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe + echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. + If a cross compiler is detected then cross compile mode will be used." >&2 + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +fi + +ac_tool_prefix= +test -n "$host_alias" && ac_tool_prefix=$host_alias- + +test "$silent" = yes && exec 6>/dev/null + + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_confdir=`(dirname "$0") 2>/dev/null || +$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$0" : 'X\(//\)[^/]' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$0" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2 + { (exit 1); exit 1; }; } + else + { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 + { (exit 1); exit 1; }; } + fi +fi +(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null || + { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2 + { (exit 1); exit 1; }; } +srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` +ac_env_build_alias_set=${build_alias+set} +ac_env_build_alias_value=$build_alias +ac_cv_env_build_alias_set=${build_alias+set} +ac_cv_env_build_alias_value=$build_alias +ac_env_host_alias_set=${host_alias+set} +ac_env_host_alias_value=$host_alias +ac_cv_env_host_alias_set=${host_alias+set} +ac_cv_env_host_alias_value=$host_alias +ac_env_target_alias_set=${target_alias+set} +ac_env_target_alias_value=$target_alias +ac_cv_env_target_alias_set=${target_alias+set} +ac_cv_env_target_alias_value=$target_alias +ac_env_CC_set=${CC+set} +ac_env_CC_value=$CC +ac_cv_env_CC_set=${CC+set} +ac_cv_env_CC_value=$CC +ac_env_CFLAGS_set=${CFLAGS+set} +ac_env_CFLAGS_value=$CFLAGS +ac_cv_env_CFLAGS_set=${CFLAGS+set} +ac_cv_env_CFLAGS_value=$CFLAGS +ac_env_LDFLAGS_set=${LDFLAGS+set} +ac_env_LDFLAGS_value=$LDFLAGS +ac_cv_env_LDFLAGS_set=${LDFLAGS+set} +ac_cv_env_LDFLAGS_value=$LDFLAGS +ac_env_CPPFLAGS_set=${CPPFLAGS+set} +ac_env_CPPFLAGS_value=$CPPFLAGS +ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set} +ac_cv_env_CPPFLAGS_value=$CPPFLAGS +ac_env_CXX_set=${CXX+set} +ac_env_CXX_value=$CXX +ac_cv_env_CXX_set=${CXX+set} +ac_cv_env_CXX_value=$CXX +ac_env_CXXFLAGS_set=${CXXFLAGS+set} +ac_env_CXXFLAGS_value=$CXXFLAGS +ac_cv_env_CXXFLAGS_set=${CXXFLAGS+set} +ac_cv_env_CXXFLAGS_value=$CXXFLAGS +ac_env_CPP_set=${CPP+set} +ac_env_CPP_value=$CPP +ac_cv_env_CPP_set=${CPP+set} +ac_cv_env_CPP_value=$CPP +ac_env_WXCONFIG_set=${WXCONFIG+set} +ac_env_WXCONFIG_value=$WXCONFIG +ac_cv_env_WXCONFIG_set=${WXCONFIG+set} +ac_cv_env_WXCONFIG_value=$WXCONFIG +ac_env_WXFLAGS_set=${WXFLAGS+set} +ac_env_WXFLAGS_value=$WXFLAGS +ac_cv_env_WXFLAGS_set=${WXFLAGS+set} +ac_cv_env_WXFLAGS_value=$WXFLAGS + +# +# Report the --help message. +# +if test "$ac_init_help" = "long"; then + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat <<_ACEOF +\`configure' configures this package to adapt to many kinds of systems. + +Usage: $0 [OPTION]... [VAR=VALUE]... + +To assign environment variables (e.g., CC, CFLAGS...), specify them as +VAR=VALUE. See below for descriptions of some of the useful variables. + +Defaults for the options are specified in brackets. + +Configuration: + -h, --help display this help and exit + --help=short display options specific to this package + --help=recursive display the short help of all the included packages + -V, --version display version information and exit + -q, --quiet, --silent do not print \`checking...' messages + --cache-file=FILE cache test results in FILE [disabled] + -C, --config-cache alias for \`--cache-file=config.cache' + -n, --no-create do not create output files + --srcdir=DIR find the sources in DIR [configure dir or \`..'] + +_ACEOF + + cat <<_ACEOF +Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [PREFIX] + +By default, \`make install' will install all the files in +\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify +an installation prefix other than \`$ac_default_prefix' using \`--prefix', +for instance \`--prefix=\$HOME'. + +For better control, use the options below. + +Fine tuning of the installation directories: + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data [PREFIX/share] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --infodir=DIR info documentation [PREFIX/info] + --mandir=DIR man documentation [PREFIX/man] +_ACEOF + + cat <<\_ACEOF + +X features: + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR + +System types: + --build=BUILD configure for building on BUILD [guessed] + --host=HOST cross-compile to build programs to run on HOST [BUILD] +_ACEOF +fi + +if test -n "$ac_init_help"; then + + cat <<\_ACEOF + +Optional Features: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --disable-nls do not use Native Language Support + --disable-rpath do not hardcode runtime library paths + --enable-gnome enable build of bgnome-console GUI disabled + --enable-bat enable build of bat Qt4 GUI disabled + --enable-bwx-console enable build of wxWidgets console disabled + --enable-tray-monitor enable build of Gnome tray monitor (compatible with KDE) disabled + --enable-smartalloc enable smartalloc debugging support disabled + --enable-static-tools enable static tape tools disabled + --enable-static-fd enable static File daemon disabled + --enable-static-sd enable static Storage daemon disabled + --enable-static-dir enable static Director disabled + --enable-static-cons enable static Console disabled + --enable-client-only build client (File daemon) only disabled + --enable-build-dird enable building of dird (Director) enabled + --enable-build-stored enable building of stored (Storage daemon) enabled + --disable-conio disable conio support enabled + + --enable-ipv6 enable ipv6 support enabled + + --disable-readline disable readline support disable + + --enable-batch-insert enable the DB batch insert code disabled + --disable-largefile omit support for large files + +Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-gnu-ld assume the C compiler uses GNU ld default=no + --with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib + --without-libiconv-prefix don't search for libiconv in includedir and libdir + --with-libintl-prefix[=DIR] search for libintl in DIR/include and DIR/lib + --without-libintl-prefix don't search for libintl in includedir and libdir + --with-included-gettext use the GNU gettext library included here + --with-qwt[=DIR] specify qwt library directory + --with-readline[=DIR] specify readline library directory + + --with-python[=DIR] Include Python support. DIR is the Python base + install directory, default is to search through + a number of common places for the Python files. + --with-tcp-wrappers[=DIR] enable tcpwrappers support + --with-openssl[=DIR] + Include OpenSSL support. DIR is the OpenSSL base + --with-working-dir=PATH specify path of Bacula working directory + --with-archivedir=PATH specify path of SD archive directory + --with-scriptdir=PATH specify path of Bacula scripts directory + --with-dump-email=EMAIL dump email address + --with-job-email=EMAIL job output email address + --with-smtp-host=HOST SMTP mail host address + --with-pid-dir=PATH specify location of Bacula pid files + --with-subsys-dir=PATH specify location of Bacula subsys file + --with-baseport=PORT specify base port address for daemons + --with-dir-password=PASSWORD specify Director's password + --with-fd-password=PASSWORD specify Client's password + --with-sd-password=PASSWORD specify Storage daemon's password + --with-mon-dir-password=PASSWORD specify Director's password used by the monitor + --with-mon-fd-password=PASSWORD specify Client's password used by the monitor + --with-mon-sd-password=PASSWORD specify Storage daemon's password used by the monitor + --with-db-name=DBNAME specify database name (default bacula) + --with-db-user=UNAME specify database user (default bacula) + --with-dir-user=USER specify user for Director daemon + --with-dir-group=GROUP specify group for Director daemon + --with-sd-user=USER specify user for Storage daemon + --with-sd-group=GROUP specify group for Storage daemon + --with-fd-user=USER specify user for File daemon + --with-fd-group=GROUP specify group for File daemon + --with-sbin-perm=MODE specify permissions for sbin binaries (0754) + --with-postgresql[=DIR] Include PostgreSQL support. DIR is the PostgreSQL + base install directory, defaults to /usr/local/pgsql + + --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. + + --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. + + --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. + + --with-sqlite[=DIR] Include SQLite support. DIR is the SQLite base + install directory, default is to search through + a number of common places for the SQLite files. + --with-x use the X Window System + +Some influential environment variables: + CC C compiler command + CFLAGS C compiler flags + LDFLAGS linker flags, e.g. -L if you have libraries in a + nonstandard directory + CPPFLAGS C/C++ preprocessor flags, e.g. -I if you have + headers in a nonstandard directory + CXX C++ compiler command + CXXFLAGS C++ compiler flags + CPP C preprocessor + WXCONFIG wx-config command. On some systems, you must set it to + wx-config-2.6 to use wxWidgets 2.6. + WXFLAGS Parameters to pass to wx-config (e.g. --unicode=no). + +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +_ACEOF +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + ac_popdir=`pwd` + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue + test -d $ac_dir || continue + ac_builddir=. + +if test "$ac_dir" != .; then + ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + # A "../" for each directory in $ac_dir_suffix. + ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` +else + ac_dir_suffix= ac_top_builddir= +fi + +case $srcdir in + .) # No --srcdir option. We are building in place. + ac_srcdir=. + if test -z "$ac_top_builddir"; then + ac_top_srcdir=. + else + ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` + fi ;; + [\\/]* | ?:[\\/]* ) # Absolute path. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir ;; + *) # Relative path. + ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_builddir$srcdir ;; +esac + +# Do not use `cd foo && pwd` to compute absolute paths, because +# the directories may not exist. +case `pwd` in +.) ac_abs_builddir="$ac_dir";; +*) + case "$ac_dir" in + .) ac_abs_builddir=`pwd`;; + [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; + *) ac_abs_builddir=`pwd`/"$ac_dir";; + esac;; +esac +case $ac_abs_builddir in +.) ac_abs_top_builddir=${ac_top_builddir}.;; +*) + case ${ac_top_builddir}. in + .) ac_abs_top_builddir=$ac_abs_builddir;; + [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; + *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; + esac;; +esac +case $ac_abs_builddir in +.) ac_abs_srcdir=$ac_srcdir;; +*) + case $ac_srcdir in + .) ac_abs_srcdir=$ac_abs_builddir;; + [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; + *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; + esac;; +esac +case $ac_abs_builddir in +.) ac_abs_top_srcdir=$ac_top_srcdir;; +*) + case $ac_top_srcdir in + .) ac_abs_top_srcdir=$ac_abs_builddir;; + [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; + *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; + esac;; +esac + + cd $ac_dir + # Check for guested configure; otherwise get Cygnus style configure. + if test -f $ac_srcdir/configure.gnu; then + echo + $SHELL $ac_srcdir/configure.gnu --help=recursive + elif test -f $ac_srcdir/configure; then + echo + $SHELL $ac_srcdir/configure --help=recursive + elif test -f $ac_srcdir/configure.ac || + test -f $ac_srcdir/configure.in; then + echo + $ac_configure --help + else + echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi + cd $ac_popdir + done +fi + +test -n "$ac_init_help" && exit 0 +if $ac_init_version; then + cat <<\_ACEOF + +Copyright (C) 2003 Free Software Foundation, Inc. +This configure script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it. +_ACEOF + exit 0 +fi +exec 5>config.log +cat >&5 <<_ACEOF +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +It was created by $as_me, which was +generated by GNU Autoconf 2.59. Invocation command line was + + $ $0 $@ + +_ACEOF +{ +cat <<_ASUNAME +## --------- ## +## Platform. ## +## --------- ## + +hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` +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 || echo unknown` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` + +/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` +hostinfo = `(hostinfo) 2>/dev/null || echo unknown` +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` + +_ASUNAME + +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + echo "PATH: $as_dir" +done + +} >&5 + +cat >&5 <<_ACEOF + + +## ----------- ## +## Core tests. ## +## ----------- ## + +_ACEOF + + +# Keep a trace of the command line. +# Strip out --no-create and --no-recursion so they do not pile up. +# Strip out --silent because we don't want to record it for future runs. +# Also quote any args containing shell meta-characters. +# Make two passes to allow for proper duplicate-argument suppression. +ac_configure_args= +ac_configure_args0= +ac_configure_args1= +ac_sep= +ac_must_keep_next=false +for ac_pass in 1 2 +do + for ac_arg + do + case $ac_arg in + -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + continue ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) + ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + case $ac_pass in + 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; + 2) + ac_configure_args1="$ac_configure_args1 '$ac_arg'" + if test $ac_must_keep_next = true; then + ac_must_keep_next=false # Got value, back to normal. + else + case $ac_arg in + *=* | --config-cache | -C | -disable-* | --disable-* \ + | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ + | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ + | -with-* | --with-* | -without-* | --without-* | --x) + case "$ac_configure_args0 " in + "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; + esac + ;; + -* ) ac_must_keep_next=true ;; + esac + fi + ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" + # Get rid of the leading space. + ac_sep=" " + ;; + esac + done +done +$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } +$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } + +# When interrupted or exit'd, cleanup temporary files, and complete +# config.log. We remove comments because anyway the quotes in there +# would cause problems or look ugly. +# WARNING: Be sure not to use single quotes in there, as some shells, +# such as our DU 5.0 friend, will then `close' the trap. +trap 'exit_status=$? + # Save into config.log some information that might help in debugging. + { + echo + + cat <<\_ASBOX +## ---------------- ## +## Cache variables. ## +## ---------------- ## +_ASBOX + echo + # The following way of writing the cache mishandles newlines in values, +{ + (set) 2>&1 | + case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in + *ac_space=\ *) + sed -n \ + "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" + ;; + *) + sed -n \ + "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" + ;; + esac; +} + echo + + cat <<\_ASBOX +## ----------------- ## +## Output variables. ## +## ----------------- ## +_ASBOX + echo + for ac_var in $ac_subst_vars + do + eval ac_val=$`echo $ac_var` + echo "$ac_var='"'"'$ac_val'"'"'" + done | sort + echo + + if test -n "$ac_subst_files"; then + cat <<\_ASBOX +## ------------- ## +## Output files. ## +## ------------- ## +_ASBOX + echo + for ac_var in $ac_subst_files + do + eval ac_val=$`echo $ac_var` + echo "$ac_var='"'"'$ac_val'"'"'" + done | sort + echo + fi + + if test -s confdefs.h; then + cat <<\_ASBOX +## ----------- ## +## confdefs.h. ## +## ----------- ## +_ASBOX + echo + sed "/^$/d" confdefs.h | sort + echo + fi + test "$ac_signal" != 0 && + echo "$as_me: caught signal $ac_signal" + echo "$as_me: exit $exit_status" + } >&5 + rm -f core *.core && + rm -rf conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status + ' 0 +for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal +done +ac_signal=0 + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo >confdefs.h + +# Predefined preprocessor variables. + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_NAME "$PACKAGE_NAME" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_TARNAME "$PACKAGE_TARNAME" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_VERSION "$PACKAGE_VERSION" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_STRING "$PACKAGE_STRING" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" +_ACEOF + + +# Let the site file select an alternate cache file if it wants to. +# Prefer explicitly selected file to automatically selected ones. +if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 +echo "$as_me: loading site script $ac_site_file" >&6;} + sed 's/^/| /' "$ac_site_file" >&5 + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special + # files actually), so we avoid doing that. + if test -f "$cache_file"; then + { echo "$as_me:$LINENO: loading cache $cache_file" >&5 +echo "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . $cache_file;; + *) . ./$cache_file;; + esac + fi +else + { echo "$as_me:$LINENO: creating cache $cache_file" >&5 +echo "$as_me: creating cache $cache_file" >&6;} + >$cache_file +fi + +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in `(set) 2>&1 | + sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val="\$ac_cv_env_${ac_var}_value" + eval ac_new_val="\$ac_env_${ac_var}_value" + case $ac_old_set,$ac_new_set in + set,) + { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 +echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 +echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 +echo "$as_me: former value: $ac_old_val" >&2;} + { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 +echo "$as_me: current value: $ac_new_val" >&2;} + ac_cache_corrupted=: + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) + ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. + *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 +echo "$as_me: error: changes in the environment can compromise the build" >&2;} + { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 +echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} + { (exit 1); exit 1; }; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + + + + + + + + + + + + + + + + + +BUILD_DIR=`pwd` +cd .. +TOP_DIR=`pwd` +cd ${BUILD_DIR} + + +ac_aux_dir= +for ac_dir in ${BUILD_DIR}/autoconf $srcdir/${BUILD_DIR}/autoconf; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + elif test -f $ac_dir/shtool; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/shtool install -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in ${BUILD_DIR}/autoconf $srcdir/${BUILD_DIR}/autoconf" >&5 +echo "$as_me: error: cannot find install-sh or install.sh in ${BUILD_DIR}/autoconf $srcdir/${BUILD_DIR}/autoconf" >&2;} + { (exit 1); exit 1; }; } +fi +ac_config_guess="$SHELL $ac_aux_dir/config.guess" +ac_config_sub="$SHELL $ac_aux_dir/config.sub" +ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure. + + ac_config_headers="$ac_config_headers src/config.h:autoconf/config.h.in" + + + + + +for ac_prog in true +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_TRUEPRG+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $TRUEPRG in + [\\/]* | ?:[\\/]*) + ac_cv_path_TRUEPRG="$TRUEPRG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_TRUEPRG="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + ;; +esac +fi +TRUEPRG=$ac_cv_path_TRUEPRG + +if test -n "$TRUEPRG"; then + echo "$as_me:$LINENO: result: $TRUEPRG" >&5 +echo "${ECHO_T}$TRUEPRG" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + test -n "$TRUEPRG" && break +done +test -n "$TRUEPRG" || TRUEPRG=":" + +for ac_prog in false +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_FALSEPRG+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $FALSEPRG in + [\\/]* | ?:[\\/]*) + ac_cv_path_FALSEPRG="$FALSEPRG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_FALSEPRG="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + ;; +esac +fi +FALSEPRG=$ac_cv_path_FALSEPRG + +if test -n "$FALSEPRG"; then + echo "$as_me:$LINENO: result: $FALSEPRG" >&5 +echo "${ECHO_T}$FALSEPRG" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + test -n "$FALSEPRG" && break +done +test -n "$FALSEPRG" || FALSEPRG=":" + + + +VERSION=`sed -n -e 's/^.*VERSION.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h` +DATE=`sed -n -e 's/^.* \t*BDATE.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h` +LSMDATE=`sed -n -e 's/^.*LSMDATE.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h` +echo "configuring for bacula $VERSION ($DATE)" + + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="gcc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + CC=$ac_ct_CC +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="cc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + CC=$ac_ct_CC +else + CC="$ac_cv_prog_CC" +fi + +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + test -n "$ac_ct_CC" && break +done + + CC=$ac_ct_CC +fi + +fi + + +test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH +See \`config.log' for more details." >&5 +echo "$as_me: error: no acceptable C compiler found in \$PATH +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } + +# Provide some information about the compiler. +echo "$as_me:$LINENO:" \ + "checking for C compiler version" >&5 +ac_compiler=`set X $ac_compile; echo $2` +{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 + (eval $ac_compiler --version &5) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 + (eval $ac_compiler -v &5) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 + (eval $ac_compiler -V &5) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files a.out a.exe b.out" +# Try to create an executable without -o first, disregard a.out. +# It will help us diagnose broken compilers, and finding out an intuition +# of exeext. +echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 +echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6 +ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` +if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5 + (eval $ac_link_default) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + # Find the output, starting from the most likely. This scheme is +# not robust to junk in `.', hence go to wildcards (a.*) only as a last +# resort. + +# Be careful to initialize this variable, since it used to be cached. +# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile. +ac_cv_exeext= +# b.out is created by i960 compilers. +for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out +do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) + ;; + conftest.$ac_ext ) + # This is the source file. + ;; + [ab].out ) + # We found the default executable, but exeext='' is most + # certainly right. + break;; + *.* ) + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + # FIXME: I believe we export ac_cv_exeext for Libtool, + # but it would be cool to find out if it's true. Does anybody + # maintain Libtool? --akim. + export ac_cv_exeext + break;; + * ) + break;; + esac +done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { echo "$as_me:$LINENO: error: C compiler cannot create executables +See \`config.log' for more details." >&5 +echo "$as_me: error: C compiler cannot create executables +See \`config.log' for more details." >&2;} + { (exit 77); exit 77; }; } +fi + +ac_exeext=$ac_cv_exeext +echo "$as_me:$LINENO: result: $ac_file" >&5 +echo "${ECHO_T}$ac_file" >&6 + +# Check the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +echo "$as_me:$LINENO: checking whether the C compiler works" >&5 +echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6 +# FIXME: These cross compiler hacks should be removed for Autoconf 3.0 +# If not cross compiling, check that we can run a simple program. +if test "$cross_compiling" != yes; then + if { ac_try='./$ac_file' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { echo "$as_me:$LINENO: error: cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } + fi + fi +fi +echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + +rm -f a.out a.exe conftest$ac_cv_exeext b.out +ac_clean_files=$ac_clean_files_save +# Check the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 +echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6 +echo "$as_me:$LINENO: result: $cross_compiling" >&5 +echo "${ECHO_T}$cross_compiling" >&6 + +echo "$as_me:$LINENO: checking for suffix of executables" >&5 +echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6 +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + # If both `conftest.exe' and `conftest' are `present' (well, observable) +# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will +# work properly (i.e., refer to `conftest.exe'), while it won't with +# `rm'. +for ac_file in conftest.exe conftest conftest.*; do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + export ac_cv_exeext + break;; + * ) break;; + esac +done +else + { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi + +rm -f conftest$ac_cv_exeext +echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 +echo "${ECHO_T}$ac_cv_exeext" >&6 + +rm -f conftest.$ac_ext +EXEEXT=$ac_cv_exeext +ac_exeext=$EXEEXT +echo "$as_me:$LINENO: checking for suffix of object files" >&5 +echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6 +if test "${ac_cv_objext+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.o conftest.obj +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;; + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` + break;; + esac +done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute suffix of object files: cannot compile +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi + +rm -f conftest.$ac_cv_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 +echo "${ECHO_T}$ac_cv_objext" >&6 +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT +echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 +echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6 +if test "${ac_cv_c_compiler_gnu+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_compiler_gnu=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_compiler_gnu=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 +echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6 +GCC=`test $ac_compiler_gnu = yes && echo yes` +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +CFLAGS="-g" +echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 +echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 +if test "${ac_cv_prog_cc_g+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_prog_cc_g=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_prog_cc_g=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 +echo "${ECHO_T}$ac_cv_prog_cc_g" >&6 +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5 +echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6 +if test "${ac_cv_prog_cc_stdc+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_prog_cc_stdc=no +ac_save_CC=$CC +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#include +#include +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std1 is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std1. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +# Don't try gcc -ansi; that turns off useful extensions and +# breaks some systems' header files. +# AIX -qlanglvl=ansi +# Ultrix and OSF/1 -std1 +# HP-UX 10.20 and later -Ae +# HP-UX older versions -Aa -D_HPUX_SOURCE +# SVR4 -Xc -D__EXTENSIONS__ +for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_prog_cc_stdc=$ac_arg +break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.err conftest.$ac_objext +done +rm -f conftest.$ac_ext conftest.$ac_objext +CC=$ac_save_CC + +fi + +case "x$ac_cv_prog_cc_stdc" in + x|xno) + echo "$as_me:$LINENO: result: none needed" >&5 +echo "${ECHO_T}none needed" >&6 ;; + *) + echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5 +echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6 + CC="$CC $ac_cv_prog_cc_stdc" ;; +esac + +# Some people use a C++ compiler to compile C. Since we use `exit', +# in C++ we need to declare it. In case someone uses the same compiler +# for both compiling C and C++ we need to have the C++ compiler decide +# the declaration of exit, since it's the most demanding environment. +cat >conftest.$ac_ext <<_ACEOF +#ifndef __cplusplus + choke me +#endif +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + for ac_declaration in \ + '' \ + 'extern "C" void std::exit (int) throw (); using std::exit;' \ + 'extern "C" void std::exit (int); using std::exit;' \ + 'extern "C" void exit (int) throw ();' \ + 'extern "C" void exit (int);' \ + 'void exit (int);' +do + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_declaration +#include +int +main () +{ +exit (42); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +continue +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_declaration +int +main () +{ +exit (42); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +done +rm -f conftest* +if test -n "$ac_declaration"; then + echo '#ifdef __cplusplus' >>confdefs.h + echo $ac_declaration >>confdefs.h + echo '#endif' >>confdefs.h +fi + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +ac_ext=cc +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu +if test -n "$ac_tool_prefix"; then + for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_CXX+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CXX"; then + ac_cv_prog_CXX="$CXX" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +CXX=$ac_cv_prog_CXX +if test -n "$CXX"; then + echo "$as_me:$LINENO: result: $CXX" >&5 +echo "${ECHO_T}$CXX" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + test -n "$CXX" && break + done +fi +if test -z "$CXX"; then + ac_ct_CXX=$CXX + for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_CXX"; then + ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CXX="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +ac_ct_CXX=$ac_cv_prog_ac_ct_CXX +if test -n "$ac_ct_CXX"; then + echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5 +echo "${ECHO_T}$ac_ct_CXX" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + test -n "$ac_ct_CXX" && break +done +test -n "$ac_ct_CXX" || ac_ct_CXX="g++" + + CXX=$ac_ct_CXX +fi + + +# Provide some information about the compiler. +echo "$as_me:$LINENO:" \ + "checking for C++ compiler version" >&5 +ac_compiler=`set X $ac_compile; echo $2` +{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 + (eval $ac_compiler --version &5) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 + (eval $ac_compiler -v &5) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 + (eval $ac_compiler -V &5) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + +echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5 +echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6 +if test "${ac_cv_cxx_compiler_gnu+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_compiler_gnu=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_compiler_gnu=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_cxx_compiler_gnu=$ac_compiler_gnu + +fi +echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5 +echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6 +GXX=`test $ac_compiler_gnu = yes && echo yes` +ac_test_CXXFLAGS=${CXXFLAGS+set} +ac_save_CXXFLAGS=$CXXFLAGS +CXXFLAGS="-g" +echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5 +echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6 +if test "${ac_cv_prog_cxx_g+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_prog_cxx_g=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_prog_cxx_g=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5 +echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6 +if test "$ac_test_CXXFLAGS" = set; then + CXXFLAGS=$ac_save_CXXFLAGS +elif test $ac_cv_prog_cxx_g = yes; then + if test "$GXX" = yes; then + CXXFLAGS="-g -O2" + else + CXXFLAGS="-g" + fi +else + if test "$GXX" = yes; then + CXXFLAGS="-O2" + else + CXXFLAGS= + fi +fi +for ac_declaration in \ + '' \ + 'extern "C" void std::exit (int) throw (); using std::exit;' \ + 'extern "C" void std::exit (int); using std::exit;' \ + 'extern "C" void exit (int) throw ();' \ + 'extern "C" void exit (int);' \ + 'void exit (int);' +do + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_declaration +#include +int +main () +{ +exit (42); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +continue +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_declaration +int +main () +{ +exit (42); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +done +rm -f conftest* +if test -n "$ac_declaration"; then + echo '#ifdef __cplusplus' >>confdefs.h + echo $ac_declaration >>confdefs.h + echo '#endif' >>confdefs.h +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +if test "x$CC" != xcc; then + echo "$as_me:$LINENO: checking whether $CC and cc understand -c and -o together" >&5 +echo $ECHO_N "checking whether $CC and cc understand -c and -o together... $ECHO_C" >&6 +else + echo "$as_me:$LINENO: checking whether cc understands -c and -o together" >&5 +echo $ECHO_N "checking whether cc understands -c and -o together... $ECHO_C" >&6 +fi +set dummy $CC; ac_cc=`echo $2 | + sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` +if eval "test \"\${ac_cv_prog_cc_${ac_cc}_c_o+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +# Make sure it works both with $CC and with simple cc. +# We do the test twice because some compilers refuse to overwrite an +# existing .o file with -o, though they will create one. +ac_try='$CC -c conftest.$ac_ext -o conftest.$ac_objext >&5' +if { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + test -f conftest.$ac_objext && { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; +then + eval ac_cv_prog_cc_${ac_cc}_c_o=yes + if test "x$CC" != xcc; then + # Test first that cc exists at all. + if { ac_try='cc -c conftest.$ac_ext >&5' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_try='cc -c conftest.$ac_ext -o conftest.$ac_objext >&5' + if { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + test -f conftest.$ac_objext && { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; + then + # cc works too. + : + else + # cc exists but doesn't like -o. + eval ac_cv_prog_cc_${ac_cc}_c_o=no + fi + fi + fi +else + eval ac_cv_prog_cc_${ac_cc}_c_o=no +fi +rm -f conftest* + +fi +if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = yes"; then + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + +cat >>confdefs.h <<\_ACEOF +#define NO_MINUS_C_MINUS_O 1 +_ACEOF + +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 +echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6 +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if test "${ac_cv_prog_CPP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.$ac_ext + + # OK, works on sane cases. Now check whether non-existent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + # Broken: success on invalid input. +continue +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then + break +fi + + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +echo "$as_me:$LINENO: result: $CPP" >&5 +echo "${ECHO_T}$CPP" >&6 +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.$ac_ext + + # OK, works on sane cases. Now check whether non-existent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + # Broken: success on invalid input. +continue +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then + : +else + { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details." >&5 +echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +echo "$as_me:$LINENO: checking for egrep" >&5 +echo $ECHO_N "checking for egrep... $ECHO_C" >&6 +if test "${ac_cv_prog_egrep+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if echo a | (grep -E '(a|b)') >/dev/null 2>&1 + then ac_cv_prog_egrep='grep -E' + else ac_cv_prog_egrep='egrep' + fi +fi +echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5 +echo "${ECHO_T}$ac_cv_prog_egrep" >&6 + EGREP=$ac_cv_prog_egrep + + +if test $ac_cv_c_compiler_gnu = yes; then + echo "$as_me:$LINENO: checking whether $CC needs -traditional" >&5 +echo $ECHO_N "checking whether $CC needs -traditional... $ECHO_C" >&6 +if test "${ac_cv_prog_gcc_traditional+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_pattern="Autoconf.*'x'" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +Autoconf TIOCGETP +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "$ac_pattern" >/dev/null 2>&1; then + ac_cv_prog_gcc_traditional=yes +else + ac_cv_prog_gcc_traditional=no +fi +rm -f conftest* + + + if test $ac_cv_prog_gcc_traditional = no; then + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +Autoconf TCGETA +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "$ac_pattern" >/dev/null 2>&1; then + ac_cv_prog_gcc_traditional=yes +fi +rm -f conftest* + + fi +fi +echo "$as_me:$LINENO: result: $ac_cv_prog_gcc_traditional" >&5 +echo "${ECHO_T}$ac_cv_prog_gcc_traditional" >&6 + if test $ac_cv_prog_gcc_traditional = yes; then + CC="$CC -traditional" + fi +fi + +BASECC=`basename $CC` +have_gcc=no +if test "x$BASECC" = xgcc; then + cat >>confdefs.h <<\_ACEOF +#define HAVE_GCC 1 +_ACEOF + + have_gcc=yes +fi +# Extract the first word of "$CXX", so it can be a program name with args. +set dummy $CXX; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_CXX+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $CXX in + [\\/]* | ?:[\\/]*) + ac_cv_path_CXX="$CXX" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_CXX="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + test -z "$ac_cv_path_CXX" && ac_cv_path_CXX="$CXX" + ;; +esac +fi +CXX=$ac_cv_path_CXX + +if test -n "$CXX"; then + echo "$as_me:$LINENO: result: $CXX" >&5 +echo "${ECHO_T}$CXX" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +if test ! -e $CXX; then + { { echo "$as_me:$LINENO: error: Unable to find C++ compiler" >&5 +echo "$as_me: error: Unable to find C++ compiler" >&2;} + { (exit 1); exit 1; }; } +fi + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AmigaOS /C/install, which installs bootblocks on floppy discs +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# OS/2's system install, which has a completely different semantic +# ./install, which can be erroneously created by make from ./install.sh. +echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 +echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 +if test -z "$INSTALL"; then +if test "${ac_cv_path_install+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + # Account for people who put trailing slashes in PATH elements. +case $as_dir/ in + ./ | .// | /cC/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then + if test $ac_prog = install && + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + done + done + ;; +esac +done + + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL=$ac_install_sh + fi +fi +echo "$as_me:$LINENO: result: $INSTALL" >&5 +echo "${ECHO_T}$INSTALL" >&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_RANLIB+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + echo "$as_me:$LINENO: result: $RANLIB" >&5 +echo "${ECHO_T}$RANLIB" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +fi +if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_RANLIB"; then + ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":" +fi +fi +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 +echo "${ECHO_T}$ac_ct_RANLIB" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + RANLIB=$ac_ct_RANLIB +else + RANLIB="$ac_cv_prog_RANLIB" +fi + +# Extract the first word of "mv", so it can be a program name with args. +set dummy mv; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_MV+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $MV in + [\\/]* | ?:[\\/]*) + ac_cv_path_MV="$MV" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_MV="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + test -z "$ac_cv_path_MV" && ac_cv_path_MV="mv" + ;; +esac +fi +MV=$ac_cv_path_MV + +if test -n "$MV"; then + echo "$as_me:$LINENO: result: $MV" >&5 +echo "${ECHO_T}$MV" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +# Extract the first word of "rm", so it can be a program name with args. +set dummy rm; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_RM+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $RM in + [\\/]* | ?:[\\/]*) + ac_cv_path_RM="$RM" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_RM="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + test -z "$ac_cv_path_RM" && ac_cv_path_RM="rm" + ;; +esac +fi +RM=$ac_cv_path_RM + +if test -n "$RM"; then + echo "$as_me:$LINENO: result: $RM" >&5 +echo "${ECHO_T}$RM" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +# Extract the first word of "cp", so it can be a program name with args. +set dummy cp; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_CP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $CP in + [\\/]* | ?:[\\/]*) + ac_cv_path_CP="$CP" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_CP="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + test -z "$ac_cv_path_CP" && ac_cv_path_CP="cp" + ;; +esac +fi +CP=$ac_cv_path_CP + +if test -n "$CP"; then + echo "$as_me:$LINENO: result: $CP" >&5 +echo "${ECHO_T}$CP" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +# Extract the first word of "sed", so it can be a program name with args. +set dummy sed; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_SED+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $SED in + [\\/]* | ?:[\\/]*) + ac_cv_path_SED="$SED" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_SED="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + test -z "$ac_cv_path_SED" && ac_cv_path_SED="sed" + ;; +esac +fi +SED=$ac_cv_path_SED + +if test -n "$SED"; then + echo "$as_me:$LINENO: result: $SED" >&5 +echo "${ECHO_T}$SED" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +# Extract the first word of "echo", so it can be a program name with args. +set dummy echo; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_ECHO+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $ECHO in + [\\/]* | ?:[\\/]*) + ac_cv_path_ECHO="$ECHO" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_ECHO="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + test -z "$ac_cv_path_ECHO" && ac_cv_path_ECHO="echo" + ;; +esac +fi +ECHO=$ac_cv_path_ECHO + +if test -n "$ECHO"; then + echo "$as_me:$LINENO: result: $ECHO" >&5 +echo "${ECHO_T}$ECHO" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +# Extract the first word of "cmp", so it can be a program name with args. +set dummy cmp; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_CMP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $CMP in + [\\/]* | ?:[\\/]*) + ac_cv_path_CMP="$CMP" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_CMP="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + test -z "$ac_cv_path_CMP" && ac_cv_path_CMP="cmp" + ;; +esac +fi +CMP=$ac_cv_path_CMP + +if test -n "$CMP"; then + echo "$as_me:$LINENO: result: $CMP" >&5 +echo "${ECHO_T}$CMP" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +# Extract the first word of "tbl", so it can be a program name with args. +set dummy tbl; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_TBL+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $TBL in + [\\/]* | ?:[\\/]*) + ac_cv_path_TBL="$TBL" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_TBL="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + test -z "$ac_cv_path_TBL" && ac_cv_path_TBL="tbl" + ;; +esac +fi +TBL=$ac_cv_path_TBL + +if test -n "$TBL"; then + echo "$as_me:$LINENO: result: $TBL" >&5 +echo "${ECHO_T}$TBL" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +# Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_AR+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $AR in + [\\/]* | ?:[\\/]*) + ac_cv_path_AR="$AR" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_AR="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + test -z "$ac_cv_path_AR" && ac_cv_path_AR="ar" + ;; +esac +fi +AR=$ac_cv_path_AR + +if test -n "$AR"; then + echo "$as_me:$LINENO: result: $AR" >&5 +echo "${ECHO_T}$AR" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +# Extract the first word of "openssl", so it can be a program name with args. +set dummy openssl; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_OPENSSL+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $OPENSSL in + [\\/]* | ?:[\\/]*) + ac_cv_path_OPENSSL="$OPENSSL" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_OPENSSL="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + test -z "$ac_cv_path_OPENSSL" && ac_cv_path_OPENSSL="none" + ;; +esac +fi +OPENSSL=$ac_cv_path_OPENSSL + +if test -n "$OPENSSL"; then + echo "$as_me:$LINENO: result: $OPENSSL" >&5 +echo "${ECHO_T}$OPENSSL" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +# Extract the first word of "mtx", so it can be a program name with args. +set dummy mtx; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_MTX+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $MTX in + [\\/]* | ?:[\\/]*) + ac_cv_path_MTX="$MTX" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_MTX="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + test -z "$ac_cv_path_MTX" && ac_cv_path_MTX="mtx" + ;; +esac +fi +MTX=$ac_cv_path_MTX + +if test -n "$MTX"; then + echo "$as_me:$LINENO: result: $MTX" >&5 +echo "${ECHO_T}$MTX" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +# Extract the first word of "dd", so it can be a program name with args. +set dummy dd; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_DD+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $DD in + [\\/]* | ?:[\\/]*) + ac_cv_path_DD="$DD" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_DD="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + test -z "$ac_cv_path_DD" && ac_cv_path_DD="dd" + ;; +esac +fi +DD=$ac_cv_path_DD + +if test -n "$DD"; then + echo "$as_me:$LINENO: result: $DD" >&5 +echo "${ECHO_T}$DD" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +# Extract the first word of "mkisofs", so it can be a program name with args. +set dummy mkisofs; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_MKISOFS+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $MKISOFS in + [\\/]* | ?:[\\/]*) + ac_cv_path_MKISOFS="$MKISOFS" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_MKISOFS="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + test -z "$ac_cv_path_MKISOFS" && ac_cv_path_MKISOFS="mkisofs" + ;; +esac +fi +MKISOFS=$ac_cv_path_MKISOFS + +if test -n "$MKISOFS"; then + echo "$as_me:$LINENO: result: $MKISOFS" >&5 +echo "${ECHO_T}$MKISOFS" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +# Extract the first word of "python", so it can be a program name with args. +set dummy python; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_PYTHON+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $PYTHON in + [\\/]* | ?:[\\/]*) + ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + test -z "$ac_cv_path_PYTHON" && ac_cv_path_PYTHON="python" + ;; +esac +fi +PYTHON=$ac_cv_path_PYTHON + +if test -n "$PYTHON"; then + echo "$as_me:$LINENO: result: $PYTHON" >&5 +echo "${ECHO_T}$PYTHON" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +# Extract the first word of "growisofs", so it can be a program name with args. +set dummy growisofs; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_GROWISOFS+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $GROWISOFS in + [\\/]* | ?:[\\/]*) + ac_cv_path_GROWISOFS="$GROWISOFS" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_GROWISOFS="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + test -z "$ac_cv_path_GROWISOFS" && ac_cv_path_GROWISOFS="growisofs" + ;; +esac +fi +GROWISOFS=$ac_cv_path_GROWISOFS + +if test -n "$GROWISOFS"; then + echo "$as_me:$LINENO: result: $GROWISOFS" >&5 +echo "${ECHO_T}$GROWISOFS" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +# Extract the first word of "dvd+rw-mediainfo", so it can be a program name with args. +set dummy dvd+rw-mediainfo; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_DVDRWMEDIAINFO+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $DVDRWMEDIAINFO in + [\\/]* | ?:[\\/]*) + ac_cv_path_DVDRWMEDIAINFO="$DVDRWMEDIAINFO" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_DVDRWMEDIAINFO="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + test -z "$ac_cv_path_DVDRWMEDIAINFO" && ac_cv_path_DVDRWMEDIAINFO="dvd+rw-mediainfo" + ;; +esac +fi +DVDRWMEDIAINFO=$ac_cv_path_DVDRWMEDIAINFO + +if test -n "$DVDRWMEDIAINFO"; then + echo "$as_me:$LINENO: result: $DVDRWMEDIAINFO" >&5 +echo "${ECHO_T}$DVDRWMEDIAINFO" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +# Extract the first word of "dvd+rw-format", so it can be a program name with args. +set dummy dvd+rw-format; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_DVDRWFORMAT+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $DVDRWFORMAT in + [\\/]* | ?:[\\/]*) + ac_cv_path_DVDRWFORMAT="$DVDRWFORMAT" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_DVDRWFORMAT="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + test -z "$ac_cv_path_DVDRWFORMAT" && ac_cv_path_DVDRWFORMAT="dvd+rw-format" + ;; +esac +fi +DVDRWFORMAT=$ac_cv_path_DVDRWFORMAT + +if test -n "$DVDRWFORMAT"; then + echo "$as_me:$LINENO: result: $DVDRWFORMAT" >&5 +echo "${ECHO_T}$DVDRWFORMAT" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +# Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_PKGCONFIG+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $PKGCONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + test -z "$ac_cv_path_PKGCONFIG" && ac_cv_path_PKGCONFIG="pkg-config" + ;; +esac +fi +PKGCONFIG=$ac_cv_path_PKGCONFIG + +if test -n "$PKGCONFIG"; then + echo "$as_me:$LINENO: result: $PKGCONFIG" >&5 +echo "${ECHO_T}$PKGCONFIG" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +# Extract the first word of "qmake", so it can be a program name with args. +set dummy qmake; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_QMAKE+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $QMAKE in + [\\/]* | ?:[\\/]*) + ac_cv_path_QMAKE="$QMAKE" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_QMAKE="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + test -z "$ac_cv_path_QMAKE" && ac_cv_path_QMAKE="none" + ;; +esac +fi +QMAKE=$ac_cv_path_QMAKE + +if test -n "$QMAKE"; then + echo "$as_me:$LINENO: result: $QMAKE" >&5 +echo "${ECHO_T}$QMAKE" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +# Extract the first word of "qmake-qt4", so it can be a program name with args. +set dummy qmake-qt4; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_QMAKEQT4+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $QMAKEQT4 in + [\\/]* | ?:[\\/]*) + ac_cv_path_QMAKEQT4="$QMAKEQT4" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_QMAKEQT4="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + test -z "$ac_cv_path_QMAKEQT4" && ac_cv_path_QMAKEQT4="none" + ;; +esac +fi +QMAKEQT4=$ac_cv_path_QMAKEQT4 + +if test -n "$QMAKEQT4"; then + echo "$as_me:$LINENO: result: $QMAKEQT4" >&5 +echo "${ECHO_T}$QMAKEQT4" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + +if test "x$WXCONFIG" = x; then + WXCONFIG=wx-config +fi +# Extract the first word of "${WXCONFIG}", so it can be a program name with args. +set dummy ${WXCONFIG}; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_WXCONFIG+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $WXCONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_WXCONFIG="$WXCONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_WXCONFIG="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + test -z "$ac_cv_path_WXCONFIG" && ac_cv_path_WXCONFIG="${WXCONFIG}" + ;; +esac +fi +WXCONFIG=$ac_cv_path_WXCONFIG + +if test -n "$WXCONFIG"; then + echo "$as_me:$LINENO: result: $WXCONFIG" >&5 +echo "${ECHO_T}$WXCONFIG" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + +# Extract the first word of "cdrecord", so it can be a program name with args. +set dummy cdrecord; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_CDRECORD+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $CDRECORD in + [\\/]* | ?:[\\/]*) + ac_cv_path_CDRECORD="$CDRECORD" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_CDRECORD="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + test -z "$ac_cv_path_CDRECORD" && ac_cv_path_CDRECORD="cdrecord" + ;; +esac +fi +CDRECORD=$ac_cv_path_CDRECORD + +if test -n "$CDRECORD"; then + echo "$as_me:$LINENO: result: $CDRECORD" >&5 +echo "${ECHO_T}$CDRECORD" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +# Extract the first word of "pidof", so it can be a program name with args. +set dummy pidof; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_PIDOF+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $PIDOF in + [\\/]* | ?:[\\/]*) + ac_cv_path_PIDOF="$PIDOF" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_PIDOF="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + test -z "$ac_cv_path_PIDOF" && ac_cv_path_PIDOF="pidof" + ;; +esac +fi +PIDOF=$ac_cv_path_PIDOF + +if test -n "$PIDOF"; then + echo "$as_me:$LINENO: result: $PIDOF" >&5 +echo "${ECHO_T}$PIDOF" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +for ac_prog in gawk mawk nawk awk +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_AWK+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$AWK"; then + ac_cv_prog_AWK="$AWK" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AWK="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +AWK=$ac_cv_prog_AWK +if test -n "$AWK"; then + echo "$as_me:$LINENO: result: $AWK" >&5 +echo "${ECHO_T}$AWK" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + test -n "$AWK" && break +done + +# Some AWK programs fail, so test it and warn the user +if echo xfoo | $AWK 'BEGIN { prog=ARGV1; ARGC=1 } + { if ((prog == $2) || (("(" prog ")") == $2) || + (("" prog "") == $2) || + ((prog ":") == $2)) { print $1 ; exit 0 } }' xfoo>/dev/null; then :; +else + { { echo "$as_me:$LINENO: error: !!!!!!!!! WARNING !!!!!!!!!!!!!! + The regex engine of $AWK is too broken to be used you + might want to install GNU AWK. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" >&5 +echo "$as_me: error: !!!!!!!!! WARNING !!!!!!!!!!!!!! + The regex engine of $AWK is too broken to be used you + might want to install GNU AWK. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" >&2;} + { (exit 1); exit 1; }; } +fi +THE_AWK=$AWK +# Extract the first word of "$THE_AWK", so it can be a program name with args. +set dummy $THE_AWK; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_AWK+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $AWK in + [\\/]* | ?:[\\/]*) + ac_cv_path_AWK="$AWK" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_AWK="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + test -z "$ac_cv_path_AWK" && ac_cv_path_AWK="$THE_AWK" + ;; +esac +fi +AWK=$ac_cv_path_AWK + +if test -n "$AWK"; then + echo "$as_me:$LINENO: result: $AWK" >&5 +echo "${ECHO_T}$AWK" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + + +test -n "$ARFLAG" || ARFLAGS="cr" + + +MAKE_SHELL=/bin/sh + + + + + + + +# Make sure we can run config.sub. +$ac_config_sub sun4 >/dev/null 2>&1 || + { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5 +echo "$as_me: error: cannot run $ac_config_sub" >&2;} + { (exit 1); exit 1; }; } + +echo "$as_me:$LINENO: checking build system type" >&5 +echo $ECHO_N "checking build system type... $ECHO_C" >&6 +if test "${ac_cv_build+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_build_alias=$build_alias +test -z "$ac_cv_build_alias" && + ac_cv_build_alias=`$ac_config_guess` +test -z "$ac_cv_build_alias" && + { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 +echo "$as_me: error: cannot guess build type; you must specify one" >&2;} + { (exit 1); exit 1; }; } +ac_cv_build=`$ac_config_sub $ac_cv_build_alias` || + { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5 +echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;} + { (exit 1); exit 1; }; } + +fi +echo "$as_me:$LINENO: result: $ac_cv_build" >&5 +echo "${ECHO_T}$ac_cv_build" >&6 +build=$ac_cv_build +build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` + + + +echo "$as_me:$LINENO: checking host system type" >&5 +echo $ECHO_N "checking host system type... $ECHO_C" >&6 +if test "${ac_cv_host+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_host_alias=$host_alias +test -z "$ac_cv_host_alias" && + ac_cv_host_alias=$ac_cv_build_alias +ac_cv_host=`$ac_config_sub $ac_cv_host_alias` || + { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5 +echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;} + { (exit 1); exit 1; }; } + +fi +echo "$as_me:$LINENO: result: $ac_cv_host" >&5 +echo "${ECHO_T}$ac_cv_host" >&6 +host=$ac_cv_host +host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` + + +case $host_os in + *cygwin* ) CYGWIN=yes;; + * ) CYGWIN=no;; +esac + +if test $HAVE_UNAME=yes -a x`uname -s` = xSunOS +then + + +if $TRUEPRG; then + HAVE_SUN_OS_TRUE= + HAVE_SUN_OS_FALSE='#' +else + HAVE_SUN_OS_TRUE='#' + HAVE_SUN_OS_FALSE= +fi + cat >>confdefs.h <<\_ACEOF +#define HAVE_SUN_OS 1 +_ACEOF + +else + + +if $FALSEPRG; then + HAVE_SUN_OS_TRUE= + HAVE_SUN_OS_FALSE='#' +else + HAVE_SUN_OS_TRUE='#' + HAVE_SUN_OS_FALSE= +fi +fi + +if test $HAVE_UNAME=yes -a x`uname -s` = xOSF1 +then + + +if $TRUEPRG; then + HAVE_OSF1_OS_TRUE= + HAVE_OSF1_OS_FALSE='#' +else + HAVE_OSF1_OS_TRUE='#' + HAVE_OSF1_OS_FALSE= +fi + cat >>confdefs.h <<\_ACEOF +#define HAVE_OSF1_OS 1 +_ACEOF + +else + + +if $FALSEPRG; then + HAVE_OSF1_OS_TRUE= + HAVE_OSF1_OS_FALSE='#' +else + HAVE_OSF1_OS_TRUE='#' + HAVE_OSF1_OS_FALSE= +fi +fi + +if test $HAVE_UNAME=yes -a x`uname -s` = xAIX +then + + +if $TRUEPRG; then + HAVE_AIX_OS_TRUE= + HAVE_AIX_OS_FALSE='#' +else + HAVE_AIX_OS_TRUE='#' + HAVE_AIX_OS_FALSE= +fi + cat >>confdefs.h <<\_ACEOF +#define HAVE_AIX_OS 1 +_ACEOF + +else + + +if $FALSEPRG; then + HAVE_AIX_OS_TRUE= + HAVE_AIX_OS_FALSE='#' +else + HAVE_AIX_OS_TRUE='#' + HAVE_AIX_OS_FALSE= +fi +fi + +if test $HAVE_UNAME=yes -a x`uname -s` = xHP-UX +then + + +if $TRUEPRG; then + HAVE_HPUX_OS_TRUE= + HAVE_HPUX_OS_FALSE='#' +else + HAVE_HPUX_OS_TRUE='#' + HAVE_HPUX_OS_FALSE= +fi + cat >>confdefs.h <<\_ACEOF +#define HAVE_HPUX_OS 1 +_ACEOF + +else + + +if $FALSEPRG; then + HAVE_HPUX_OS_TRUE= + HAVE_HPUX_OS_FALSE='#' +else + HAVE_HPUX_OS_TRUE='#' + HAVE_HPUX_OS_FALSE= +fi +fi + +if test $HAVE_UNAME=yes -a x`uname -s` = xLinux +then + + +if $TRUEPRG; then + HAVE_LINUX_OS_TRUE= + HAVE_LINUX_OS_FALSE='#' +else + HAVE_LINUX_OS_TRUE='#' + HAVE_LINUX_OS_FALSE= +fi + cat >>confdefs.h <<\_ACEOF +#define HAVE_LINUX_OS 1 +_ACEOF + +else + + +if $FALSEPRG; then + HAVE_LINUX_OS_TRUE= + HAVE_LINUX_OS_FALSE='#' +else + HAVE_LINUX_OS_TRUE='#' + HAVE_LINUX_OS_FALSE= +fi +fi + +if test $HAVE_UNAME=yes -a x`uname -s` = xFreeBSD +then + + +if $TRUEPRG; then + HAVE_FREEBSD_OS_TRUE= + HAVE_FREEBSD_OS_FALSE='#' +else + HAVE_FREEBSD_OS_TRUE='#' + HAVE_FREEBSD_OS_FALSE= +fi + cat >>confdefs.h <<\_ACEOF +#define HAVE_FREEBSD_OS 1 +_ACEOF + +else + + +if $FALSEPRG; then + HAVE_FREEBSD_OS_TRUE= + HAVE_FREEBSD_OS_FALSE='#' +else + HAVE_FREEBSD_OS_TRUE='#' + HAVE_FREEBSD_OS_FALSE= +fi +fi + +if test $HAVE_UNAME=yes -a x`uname -s` = xNetBSD +then + + +if $TRUEPRG; then + HAVE_NETBSD_OS_TRUE= + HAVE_NETBSD_OS_FALSE='#' +else + HAVE_NETBSD_OS_TRUE='#' + HAVE_NETBSD_OS_FALSE= +fi + cat >>confdefs.h <<\_ACEOF +#define HAVE_NETBSD_OS 1 +_ACEOF + +else + + +if $FALSEPRG; then + HAVE_NETBSD_OS_TRUE= + HAVE_NETBSD_OS_FALSE='#' +else + HAVE_NETBSD_OS_TRUE='#' + HAVE_NETBSD_OS_FALSE= +fi +fi + +if test $HAVE_UNAME=yes -a x`uname -s` = xOpenBSD +then + + +if $TRUEPRG; then + HAVE_OPENBSD_OS_TRUE= + HAVE_OPENBSD_OS_FALSE='#' +else + HAVE_OPENBSD_OS_TRUE='#' + HAVE_OPENBSD_OS_FALSE= +fi + cat >>confdefs.h <<\_ACEOF +#define HAVE_OPENBSD_OS 1 +_ACEOF + +else + + +if $FALSEPRG; then + HAVE_OPENBSD_OS_TRUE= + HAVE_OPENBSD_OS_FALSE='#' +else + HAVE_OPENBSD_OS_TRUE='#' + HAVE_OPENBSD_OS_FALSE= +fi +fi + +if test $HAVE_UNAME=yes -a x`uname -s` = xBSD/OS +then + + +if $TRUEPRG; then + HAVE_BSDI_OS_TRUE= + HAVE_BSDI_OS_FALSE='#' +else + HAVE_BSDI_OS_TRUE='#' + HAVE_BSDI_OS_FALSE= +fi + cat >>confdefs.h <<\_ACEOF +#define HAVE_BSDI_OS 1 +_ACEOF + +else + + +if $FALSEPRG; then + HAVE_BSDI_OS_TRUE= + HAVE_BSDI_OS_FALSE='#' +else + HAVE_BSDI_OS_TRUE='#' + HAVE_BSDI_OS_FALSE= +fi +fi + +if test $HAVE_UNAME=yes -a x`uname -s` = xSGI +then + + +if $TRUEPRG; then + HAVE_SGI_OS_TRUE= + HAVE_SGI_OS_FALSE='#' +else + HAVE_SGI_OS_TRUE='#' + HAVE_SGI_OS_FALSE= +fi + cat >>confdefs.h <<\_ACEOF +#define HAVE_SGI_OS 1 +_ACEOF + +else + + +if $FALSEPRG; then + HAVE_SGI_OS_TRUE= + HAVE_SGI_OS_FALSE='#' +else + HAVE_SGI_OS_TRUE='#' + HAVE_SGI_OS_FALSE= +fi +fi + +if test $HAVE_UNAME=yes -a x`uname -s` = xIRIX -o x`uname -s` = xIRIX64 +then + + +if $TRUEPRG; then + HAVE_IRIX_OS_TRUE= + HAVE_IRIX_OS_FALSE='#' +else + HAVE_IRIX_OS_TRUE='#' + HAVE_IRIX_OS_FALSE= +fi + cat >>confdefs.h <<\_ACEOF +#define HAVE_IRIX_OS 1 +_ACEOF + +else + + +if $FALSEPRG; then + HAVE_IRIX_OS_TRUE= + HAVE_IRIX_OS_FALSE='#' +else + HAVE_IRIX_OS_TRUE='#' + HAVE_IRIX_OS_FALSE= +fi +fi + +if test $HAVE_UNAME=yes -a x`uname -s` = xDarwin +then + + +if $TRUEPRG; then + HAVE_DARWIN_OS_TRUE= + HAVE_DARWIN_OS_FALSE='#' +else + HAVE_DARWIN_OS_TRUE='#' + HAVE_DARWIN_OS_FALSE= +fi + cat >>confdefs.h <<\_ACEOF +#define HAVE_DARWIN_OS 1 +_ACEOF + +else + + +if $FALSEPRG; then + HAVE_DARWIN_OS_TRUE= + HAVE_DARWIN_OS_FALSE='#' +else + HAVE_DARWIN_OS_TRUE='#' + HAVE_DARWIN_OS_FALSE= +fi +fi + + +# ----------------------------------------------------------- +# ---------------------------------------------------------- +echo "$as_me:$LINENO: checking for Operating System Distribution" >&5 +echo $ECHO_N "checking for Operating System Distribution... $ECHO_C" >&6 +if test "x$DISTNAME" != "x" +then + echo "distname set to $DISTNAME" +elif test $HAVE_UNAME=yes -a x`uname -s` = xOSF1 +then + DISTNAME=alpha +elif test $HAVE_UNAME=yes -a x`uname -s` = xAIX +then + DISTNAME=aix +elif test $HAVE_UNAME=yes -a x`uname -s` = xHP-UX +then + DISTNAME=hpux +elif test $HAVE_UNAME=yes -a x`uname -s` = xSunOS +then + DISTNAME=solaris +elif test $HAVE_UNAME=yes -a x`uname -s` = xFreeBSD +then + DISTNAME=freebsd +elif test $HAVE_UNAME=yes -a x`uname -s` = xNetBSD +then + DISTNAME=netbsd +elif test $HAVE_UNAME=yes -a x`uname -s` = xOpenBSD +then + DISTNAME=openbsd +elif test $HAVE_UNAME=yes -a x`uname -s` = xIRIX +then + DISTNAME=irix +elif test $HAVE_UNAME=yes -a x`uname -s` = xBSD/OS +then + DISTNAME=bsdi +elif test -f /etc/SuSE-release +then + DISTNAME=suse +elif test -d /etc/SuSEconfig +then + DISTNAME=suse5 +elif test -f /etc/mandrake-release +then + DISTNAME=mandrake +elif test -f /etc/whitebox-release +then + DISTNAME=redhat +elif test -f /etc/redhat-release +then + DISTNAME=redhat +elif test -f /etc/gentoo-release +then + DISTNAME=gentoo +elif test -f /etc/debian_version +then + DISTNAME=debian +elif test -f /etc/slackware-version +then + DISTNAME=slackware +elif test $HAVE_UNAME=yes -a x`uname -s` = xDarwin +then + DISTNAME=darwin +elif test -f /etc/engarde-version +then + DISTNAME=engarde +elif test "$CYGWIN" = yes +then + DISTNAME=cygwin + cat >>confdefs.h <<\_ACEOF +#define HAVE_CYGWIN 1 +_ACEOF + +else + DISTNAME=unknown +fi +echo "$as_me:$LINENO: result: done" >&5 +echo "${ECHO_T}done" >&6 + + +# -------------------------------------------------- +# Suppport for gettext (translations) +# By default, $datadir is ${prefix}/share +# -------------------------------------------------- +echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'` +if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.make <<\_ACEOF +all: + @echo 'ac_maketemp="$(MAKE)"' +_ACEOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftest.make +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + SET_MAKE= +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + + + + MKINSTALLDIRS= + if test -n "$ac_aux_dir"; then + case "$ac_aux_dir" in + /*) MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" ;; + *) MKINSTALLDIRS="\$(top_builddir)/$ac_aux_dir/mkinstalldirs" ;; + esac + fi + if test -z "$MKINSTALLDIRS"; then + MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" + fi + + + + echo "$as_me:$LINENO: checking whether NLS is requested" >&5 +echo $ECHO_N "checking whether NLS is requested... $ECHO_C" >&6 + # Check whether --enable-nls or --disable-nls was given. +if test "${enable_nls+set}" = set; then + enableval="$enable_nls" + USE_NLS=$enableval +else + USE_NLS=yes +fi; + echo "$as_me:$LINENO: result: $USE_NLS" >&5 +echo "${ECHO_T}$USE_NLS" >&6 + + + + + + +# Prepare PATH_SEPARATOR. +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi + +# Find out how to test for executable files. Don't use a zero-byte file, +# as systems may use methods other than mode bits to determine executability. +cat >conf$$.file <<_ASEOF +#! /bin/sh +exit 0 +_ASEOF +chmod +x conf$$.file +if test -x conf$$.file >/dev/null 2>&1; then + ac_executable_p="test -x" +else + ac_executable_p="test -f" +fi +rm -f conf$$.file + +# Extract the first word of "msgfmt", so it can be a program name with args. +set dummy msgfmt; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_MSGFMT+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case "$MSGFMT" in + [\\/]* | ?:[\\/]*) + ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. + ;; + *) + ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$ac_save_IFS" + test -z "$ac_dir" && ac_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then + echo "$as_me: trying $ac_dir/$ac_word..." >&5 + if $ac_dir/$ac_word --statistics /dev/null >&5 2>&1 && + (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then + ac_cv_path_MSGFMT="$ac_dir/$ac_word$ac_exec_ext" + break 2 + fi + fi + done + done + IFS="$ac_save_IFS" + test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":" + ;; +esac +fi +MSGFMT="$ac_cv_path_MSGFMT" +if test "$MSGFMT" != ":"; then + echo "$as_me:$LINENO: result: $MSGFMT" >&5 +echo "${ECHO_T}$MSGFMT" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + # Extract the first word of "gmsgfmt", so it can be a program name with args. +set dummy gmsgfmt; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_GMSGFMT+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $GMSGFMT in + [\\/]* | ?:[\\/]*) + ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" + ;; +esac +fi +GMSGFMT=$ac_cv_path_GMSGFMT + +if test -n "$GMSGFMT"; then + echo "$as_me:$LINENO: result: $GMSGFMT" >&5 +echo "${ECHO_T}$GMSGFMT" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + + +# Prepare PATH_SEPARATOR. +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi + +# Find out how to test for executable files. Don't use a zero-byte file, +# as systems may use methods other than mode bits to determine executability. +cat >conf$$.file <<_ASEOF +#! /bin/sh +exit 0 +_ASEOF +chmod +x conf$$.file +if test -x conf$$.file >/dev/null 2>&1; then + ac_executable_p="test -x" +else + ac_executable_p="test -f" +fi +rm -f conf$$.file + +# Extract the first word of "xgettext", so it can be a program name with args. +set dummy xgettext; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_XGETTEXT+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case "$XGETTEXT" in + [\\/]* | ?:[\\/]*) + ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. + ;; + *) + ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$ac_save_IFS" + test -z "$ac_dir" && ac_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then + echo "$as_me: trying $ac_dir/$ac_word..." >&5 + if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&5 2>&1 && + (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then + ac_cv_path_XGETTEXT="$ac_dir/$ac_word$ac_exec_ext" + break 2 + fi + fi + done + done + IFS="$ac_save_IFS" + test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" + ;; +esac +fi +XGETTEXT="$ac_cv_path_XGETTEXT" +if test "$XGETTEXT" != ":"; then + echo "$as_me:$LINENO: result: $XGETTEXT" >&5 +echo "${ECHO_T}$XGETTEXT" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + rm -f messages.po + + +# Prepare PATH_SEPARATOR. +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi + +# Find out how to test for executable files. Don't use a zero-byte file, +# as systems may use methods other than mode bits to determine executability. +cat >conf$$.file <<_ASEOF +#! /bin/sh +exit 0 +_ASEOF +chmod +x conf$$.file +if test -x conf$$.file >/dev/null 2>&1; then + ac_executable_p="test -x" +else + ac_executable_p="test -f" +fi +rm -f conf$$.file + +# Extract the first word of "msgmerge", so it can be a program name with args. +set dummy msgmerge; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_MSGMERGE+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case "$MSGMERGE" in + [\\/]* | ?:[\\/]*) + ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. + ;; + *) + ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$ac_save_IFS" + test -z "$ac_dir" && ac_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then + echo "$as_me: trying $ac_dir/$ac_word..." >&5 + if $ac_dir/$ac_word --update -q /dev/null /dev/null >&5 2>&1; then + ac_cv_path_MSGMERGE="$ac_dir/$ac_word$ac_exec_ext" + break 2 + fi + fi + done + done + IFS="$ac_save_IFS" + test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE=":" + ;; +esac +fi +MSGMERGE="$ac_cv_path_MSGMERGE" +if test "$MSGMERGE" != ":"; then + echo "$as_me:$LINENO: result: $MSGMERGE" >&5 +echo "${ECHO_T}$MSGMERGE" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + + if test "$GMSGFMT" != ":"; then + if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 && + (if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then + : ; + else + GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'` + echo "$as_me:$LINENO: result: found $GMSGFMT program is not GNU msgfmt; ignore it" >&5 +echo "${ECHO_T}found $GMSGFMT program is not GNU msgfmt; ignore it" >&6 + GMSGFMT=":" + fi + fi + + if test "$XGETTEXT" != ":"; then + if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 && + (if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then + : ; + else + echo "$as_me:$LINENO: result: found xgettext program is not GNU xgettext; ignore it" >&5 +echo "${ECHO_T}found xgettext program is not GNU xgettext; ignore it" >&6 + XGETTEXT=":" + fi + rm -f messages.po + fi + + ac_config_commands="$ac_config_commands default-1" + + + + if test "X$prefix" = "XNONE"; then + acl_final_prefix="$ac_default_prefix" + else + acl_final_prefix="$prefix" + fi + if test "X$exec_prefix" = "XNONE"; then + acl_final_exec_prefix='${prefix}' + else + acl_final_exec_prefix="$exec_prefix" + fi + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" + prefix="$acl_save_prefix" + + +# Check whether --with-gnu-ld or --without-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then + withval="$with_gnu_ld" + test "$withval" = no || with_gnu_ld=yes +else + with_gnu_ld=no +fi; +# Prepare PATH_SEPARATOR. +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + echo "$as_me:$LINENO: checking for ld used by GCC" >&5 +echo $ECHO_N "checking for ld used by GCC... $ECHO_C" >&6 + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | [A-Za-z]:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the path of ld + ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` + while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do + ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + echo "$as_me:$LINENO: checking for GNU ld" >&5 +echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6 +else + echo "$as_me:$LINENO: checking for non-GNU ld" >&5 +echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6 +fi +if test "${acl_cv_path_LD+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -z "$LD"; then + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" + for ac_dir in $PATH; do + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + acl_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some GNU ld's only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in + *GNU* | *'with BFD'*) + test "$with_gnu_ld" != no && break ;; + *) + test "$with_gnu_ld" != yes && break ;; + esac + fi + done + IFS="$ac_save_ifs" +else + acl_cv_path_LD="$LD" # Let the user override the test with a path. +fi +fi + +LD="$acl_cv_path_LD" +if test -n "$LD"; then + echo "$as_me:$LINENO: result: $LD" >&5 +echo "${ECHO_T}$LD" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi +test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 +echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} + { (exit 1); exit 1; }; } +echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 +echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6 +if test "${acl_cv_prog_gnu_ld+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # I'd rather use --version here, but apparently some GNU ld's only accept -v. +case `$LD -v 2>&1 &5 +echo "${ECHO_T}$acl_cv_prog_gnu_ld" >&6 +with_gnu_ld=$acl_cv_prog_gnu_ld + + + + + echo "$as_me:$LINENO: checking for shared library run path origin" >&5 +echo $ECHO_N "checking for shared library run path origin... $ECHO_C" >&6 +if test "${acl_cv_rpath+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ + ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh + . ./conftest.sh + rm -f ./conftest.sh + acl_cv_rpath=done + +fi +echo "$as_me:$LINENO: result: $acl_cv_rpath" >&5 +echo "${ECHO_T}$acl_cv_rpath" >&6 + wl="$acl_cv_wl" + libext="$acl_cv_libext" + shlibext="$acl_cv_shlibext" + hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" + hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" + hardcode_direct="$acl_cv_hardcode_direct" + hardcode_minus_L="$acl_cv_hardcode_minus_L" + # Check whether --enable-rpath or --disable-rpath was given. +if test "${enable_rpath+set}" = set; then + enableval="$enable_rpath" + : +else + enable_rpath=yes +fi; + + + + + + + + use_additional=yes + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + +# Check whether --with-libiconv-prefix or --without-libiconv-prefix was given. +if test "${with_libiconv_prefix+set}" = set; then + withval="$with_libiconv_prefix" + + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + else + additional_includedir="$withval/include" + additional_libdir="$withval/lib" + fi + fi + +fi; + LIBICONV= + LTLIBICONV= + INCICONV= + rpathdirs= + ltrpathdirs= + names_already_handled= + names_next_round='iconv ' + while test -n "$names_next_round"; do + names_this_round="$names_next_round" + names_next_round= + for name in $names_this_round; do + already_handled= + for n in $names_already_handled; do + if test "$n" = "$name"; then + already_handled=yes + break + fi + done + if test -z "$already_handled"; then + names_already_handled="$names_already_handled $name" + uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` + eval value=\"\$HAVE_LIB$uppername\" + if test -n "$value"; then + if test "$value" = yes; then + eval value=\"\$LIB$uppername\" + test -z "$value" || LIBICONV="${LIBICONV}${LIBICONV:+ }$value" + eval value=\"\$LTLIB$uppername\" + test -z "$value" || LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$value" + else + : + fi + else + found_dir= + found_la= + found_so= + found_a= + if test $use_additional = yes; then + if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then + found_dir="$additional_libdir" + found_so="$additional_libdir/lib$name.$shlibext" + if test -f "$additional_libdir/lib$name.la"; then + found_la="$additional_libdir/lib$name.la" + fi + else + if test -f "$additional_libdir/lib$name.$libext"; then + found_dir="$additional_libdir" + found_a="$additional_libdir/lib$name.$libext" + if test -f "$additional_libdir/lib$name.la"; then + found_la="$additional_libdir/lib$name.la" + fi + fi + fi + fi + if test "X$found_dir" = "X"; then + for x in $LDFLAGS $LTLIBICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + case "$x" in + -L*) + dir=`echo "X$x" | sed -e 's/^X-L//'` + if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then + found_dir="$dir" + found_so="$dir/lib$name.$shlibext" + if test -f "$dir/lib$name.la"; then + found_la="$dir/lib$name.la" + fi + else + if test -f "$dir/lib$name.$libext"; then + found_dir="$dir" + found_a="$dir/lib$name.$libext" + if test -f "$dir/lib$name.la"; then + found_la="$dir/lib$name.la" + fi + fi + fi + ;; + esac + if test "X$found_dir" != "X"; then + break + fi + done + fi + if test "X$found_dir" != "X"; then + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$found_dir -l$name" + if test "X$found_so" != "X"; then + if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" + else + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $found_dir" + fi + if test "$hardcode_direct" = yes; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" + else + if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $found_dir" + fi + else + haveit= + for x in $LDFLAGS $LIBICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir" + fi + if test "$hardcode_minus_L" != no; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" + else + LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" + fi + fi + fi + fi + else + if test "X$found_a" != "X"; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_a" + else + LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir -l$name" + fi + fi + additional_includedir= + case "$found_dir" in + */lib | */lib/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'` + additional_includedir="$basedir/include" + ;; + esac + if test "X$additional_includedir" != "X"; then + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + for x in $CPPFLAGS $INCICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + INCICONV="${INCICONV}${INCICONV:+ }-I$additional_includedir" + fi + fi + fi + fi + fi + if test -n "$found_la"; then + save_libdir="$libdir" + case "$found_la" in + */* | *\\*) . "$found_la" ;; + *) . "./$found_la" ;; + esac + libdir="$save_libdir" + for dep in $dependency_libs; do + case "$dep" in + -L*) + additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` + if test "X$additional_libdir" != "X/usr/lib"; then + haveit= + if test "X$additional_libdir" = "X/usr/local/lib"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + haveit= + for x in $LDFLAGS $LIBICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + LIBICONV="${LIBICONV}${LIBICONV:+ }-L$additional_libdir" + fi + fi + haveit= + for x in $LDFLAGS $LTLIBICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$additional_libdir" + fi + fi + fi + fi + ;; + -R*) + dir=`echo "X$dep" | sed -e 's/^X-R//'` + if test "$enable_rpath" != no; then + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $dir" + fi + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $dir" + fi + fi + ;; + -l*) + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` + ;; + *.la) + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` + ;; + *) + LIBICONV="${LIBICONV}${LIBICONV:+ }$dep" + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$dep" + ;; + esac + done + fi + else + LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-l$name" + fi + fi + fi + done + done + if test "X$rpathdirs" != "X"; then + if test -n "$hardcode_libdir_separator"; then + alldirs= + for found_dir in $rpathdirs; do + alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir" + done + acl_save_libdir="$libdir" + libdir="$alldirs" + eval flag=\"$hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" + else + for found_dir in $rpathdirs; do + acl_save_libdir="$libdir" + libdir="$found_dir" + eval flag=\"$hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" + done + fi + fi + if test "X$ltrpathdirs" != "X"; then + for found_dir in $ltrpathdirs; do + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-R$found_dir" + done + fi + + + + + + + + + + + + + + + + + + + echo "$as_me:$LINENO: checking for CFPreferencesCopyAppValue" >&5 +echo $ECHO_N "checking for CFPreferencesCopyAppValue... $ECHO_C" >&6 +if test "${gt_cv_func_CFPreferencesCopyAppValue+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + gt_save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS -I/System/Library/Frameworks/CoreFoundation.framework/Headers" + gt_save_LIBS="$LIBS" + LIBS="$LIBS -framework CoreFoundation" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +CFPreferencesCopyAppValue(NULL, NULL) + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + gt_cv_func_CFPreferencesCopyAppValue=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +gt_cv_func_CFPreferencesCopyAppValue=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CPPFLAGS="$gt_save_CPPFLAGS" + LIBS="$gt_save_LIBS" +fi +echo "$as_me:$LINENO: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5 +echo "${ECHO_T}$gt_cv_func_CFPreferencesCopyAppValue" >&6 + if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_CFPREFERENCESCOPYAPPVALUE 1 +_ACEOF + + fi + echo "$as_me:$LINENO: checking for CFLocaleCopyCurrent" >&5 +echo $ECHO_N "checking for CFLocaleCopyCurrent... $ECHO_C" >&6 +if test "${gt_cv_func_CFLocaleCopyCurrent+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + gt_save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS -I/System/Library/Frameworks/CoreFoundation.framework/Headers" + gt_save_LIBS="$LIBS" + LIBS="$LIBS -framework CoreFoundation" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +CFLocaleCopyCurrent(); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + gt_cv_func_CFLocaleCopyCurrent=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +gt_cv_func_CFLocaleCopyCurrent=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CPPFLAGS="$gt_save_CPPFLAGS" + LIBS="$gt_save_LIBS" +fi +echo "$as_me:$LINENO: result: $gt_cv_func_CFLocaleCopyCurrent" >&5 +echo "${ECHO_T}$gt_cv_func_CFLocaleCopyCurrent" >&6 + if test $gt_cv_func_CFLocaleCopyCurrent = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_CFLOCALECOPYCURRENT 1 +_ACEOF + + fi + INTL_MACOSX_LIBS= + if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then + INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" + fi + + + + + echo "$as_me:$LINENO: checking whether NLS is requested" >&5 +echo $ECHO_N "checking whether NLS is requested... $ECHO_C" >&6 + # Check whether --enable-nls or --disable-nls was given. +if test "${enable_nls+set}" = set; then + enableval="$enable_nls" + USE_NLS=$enableval +else + USE_NLS=yes +fi; + echo "$as_me:$LINENO: result: $USE_NLS" >&5 +echo "${ECHO_T}$USE_NLS" >&6 + + + + + LIBINTL= + LTLIBINTL= + POSUB= + + if test "$USE_NLS" = "yes"; then + gt_use_preinstalled_gnugettext=no + + + + + + + echo "$as_me:$LINENO: checking for GNU gettext in libc" >&5 +echo $ECHO_N "checking for GNU gettext in libc... $ECHO_C" >&6 +if test "${gt_cv_func_gnugettext1_libc+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +extern int _nl_msg_cat_cntr; +extern int *_nl_domain_bindings; +int +main () +{ +bindtextdomain ("", ""); +return * gettext ("") + _nl_msg_cat_cntr + *_nl_domain_bindings + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + gt_cv_func_gnugettext1_libc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +gt_cv_func_gnugettext1_libc=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $gt_cv_func_gnugettext1_libc" >&5 +echo "${ECHO_T}$gt_cv_func_gnugettext1_libc" >&6 + + if test "$gt_cv_func_gnugettext1_libc" != "yes"; then + + + + + + am_save_CPPFLAGS="$CPPFLAGS" + + for element in $INCICONV; do + haveit= + for x in $CPPFLAGS; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X$element"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" + fi + done + + + echo "$as_me:$LINENO: checking for iconv" >&5 +echo $ECHO_N "checking for iconv... $ECHO_C" >&6 +if test "${am_cv_func_iconv+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + am_cv_func_iconv="no, consider installing GNU libiconv" + am_cv_lib_iconv=no + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +int +main () +{ +iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + am_cv_func_iconv=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test "$am_cv_func_iconv" != yes; then + am_save_LIBS="$LIBS" + LIBS="$LIBS $LIBICONV" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +int +main () +{ +iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + am_cv_lib_iconv=yes + am_cv_func_iconv=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$am_save_LIBS" + fi + +fi +echo "$as_me:$LINENO: result: $am_cv_func_iconv" >&5 +echo "${ECHO_T}$am_cv_func_iconv" >&6 + if test "$am_cv_func_iconv" = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_ICONV 1 +_ACEOF + + fi + if test "$am_cv_lib_iconv" = yes; then + echo "$as_me:$LINENO: checking how to link with libiconv" >&5 +echo $ECHO_N "checking how to link with libiconv... $ECHO_C" >&6 + echo "$as_me:$LINENO: result: $LIBICONV" >&5 +echo "${ECHO_T}$LIBICONV" >&6 + else + CPPFLAGS="$am_save_CPPFLAGS" + LIBICONV= + LTLIBICONV= + fi + + + + + + + use_additional=yes + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + +# Check whether --with-libintl-prefix or --without-libintl-prefix was given. +if test "${with_libintl_prefix+set}" = set; then + withval="$with_libintl_prefix" + + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + else + additional_includedir="$withval/include" + additional_libdir="$withval/lib" + fi + fi + +fi; + LIBINTL= + LTLIBINTL= + INCINTL= + rpathdirs= + ltrpathdirs= + names_already_handled= + names_next_round='intl ' + while test -n "$names_next_round"; do + names_this_round="$names_next_round" + names_next_round= + for name in $names_this_round; do + already_handled= + for n in $names_already_handled; do + if test "$n" = "$name"; then + already_handled=yes + break + fi + done + if test -z "$already_handled"; then + names_already_handled="$names_already_handled $name" + uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` + eval value=\"\$HAVE_LIB$uppername\" + if test -n "$value"; then + if test "$value" = yes; then + eval value=\"\$LIB$uppername\" + test -z "$value" || LIBINTL="${LIBINTL}${LIBINTL:+ }$value" + eval value=\"\$LTLIB$uppername\" + test -z "$value" || LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$value" + else + : + fi + else + found_dir= + found_la= + found_so= + found_a= + if test $use_additional = yes; then + if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then + found_dir="$additional_libdir" + found_so="$additional_libdir/lib$name.$shlibext" + if test -f "$additional_libdir/lib$name.la"; then + found_la="$additional_libdir/lib$name.la" + fi + else + if test -f "$additional_libdir/lib$name.$libext"; then + found_dir="$additional_libdir" + found_a="$additional_libdir/lib$name.$libext" + if test -f "$additional_libdir/lib$name.la"; then + found_la="$additional_libdir/lib$name.la" + fi + fi + fi + fi + if test "X$found_dir" = "X"; then + for x in $LDFLAGS $LTLIBINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + case "$x" in + -L*) + dir=`echo "X$x" | sed -e 's/^X-L//'` + if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then + found_dir="$dir" + found_so="$dir/lib$name.$shlibext" + if test -f "$dir/lib$name.la"; then + found_la="$dir/lib$name.la" + fi + else + if test -f "$dir/lib$name.$libext"; then + found_dir="$dir" + found_a="$dir/lib$name.$libext" + if test -f "$dir/lib$name.la"; then + found_la="$dir/lib$name.la" + fi + fi + fi + ;; + esac + if test "X$found_dir" != "X"; then + break + fi + done + fi + if test "X$found_dir" != "X"; then + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$found_dir -l$name" + if test "X$found_so" != "X"; then + if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" + else + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $found_dir" + fi + if test "$hardcode_direct" = yes; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" + else + if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $found_dir" + fi + else + haveit= + for x in $LDFLAGS $LIBINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir" + fi + if test "$hardcode_minus_L" != no; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" + else + LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" + fi + fi + fi + fi + else + if test "X$found_a" != "X"; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_a" + else + LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir -l$name" + fi + fi + additional_includedir= + case "$found_dir" in + */lib | */lib/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'` + additional_includedir="$basedir/include" + ;; + esac + if test "X$additional_includedir" != "X"; then + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + for x in $CPPFLAGS $INCINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + INCINTL="${INCINTL}${INCINTL:+ }-I$additional_includedir" + fi + fi + fi + fi + fi + if test -n "$found_la"; then + save_libdir="$libdir" + case "$found_la" in + */* | *\\*) . "$found_la" ;; + *) . "./$found_la" ;; + esac + libdir="$save_libdir" + for dep in $dependency_libs; do + case "$dep" in + -L*) + additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` + if test "X$additional_libdir" != "X/usr/lib"; then + haveit= + if test "X$additional_libdir" = "X/usr/local/lib"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + haveit= + for x in $LDFLAGS $LIBINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + LIBINTL="${LIBINTL}${LIBINTL:+ }-L$additional_libdir" + fi + fi + haveit= + for x in $LDFLAGS $LTLIBINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$additional_libdir" + fi + fi + fi + fi + ;; + -R*) + dir=`echo "X$dep" | sed -e 's/^X-R//'` + if test "$enable_rpath" != no; then + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $dir" + fi + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $dir" + fi + fi + ;; + -l*) + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` + ;; + *.la) + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` + ;; + *) + LIBINTL="${LIBINTL}${LIBINTL:+ }$dep" + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$dep" + ;; + esac + done + fi + else + LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-l$name" + fi + fi + fi + done + done + if test "X$rpathdirs" != "X"; then + if test -n "$hardcode_libdir_separator"; then + alldirs= + for found_dir in $rpathdirs; do + alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir" + done + acl_save_libdir="$libdir" + libdir="$alldirs" + eval flag=\"$hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" + else + for found_dir in $rpathdirs; do + acl_save_libdir="$libdir" + libdir="$found_dir" + eval flag=\"$hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" + done + fi + fi + if test "X$ltrpathdirs" != "X"; then + for found_dir in $ltrpathdirs; do + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-R$found_dir" + done + fi + + echo "$as_me:$LINENO: checking for GNU gettext in libintl" >&5 +echo $ECHO_N "checking for GNU gettext in libintl... $ECHO_C" >&6 +if test "${gt_cv_func_gnugettext1_libintl+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + gt_save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $INCINTL" + gt_save_LIBS="$LIBS" + LIBS="$LIBS $LIBINTL" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +extern int _nl_msg_cat_cntr; +extern +#ifdef __cplusplus +"C" +#endif +const char *_nl_expand_alias (const char *); +int +main () +{ +bindtextdomain ("", ""); +return * gettext ("") + _nl_msg_cat_cntr + *_nl_expand_alias ("") + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + gt_cv_func_gnugettext1_libintl=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +gt_cv_func_gnugettext1_libintl=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test "$gt_cv_func_gnugettext1_libintl" != yes && test -n "$LIBICONV"; then + LIBS="$LIBS $LIBICONV" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +extern int _nl_msg_cat_cntr; +extern +#ifdef __cplusplus +"C" +#endif +const char *_nl_expand_alias (const char *); +int +main () +{ +bindtextdomain ("", ""); +return * gettext ("") + _nl_msg_cat_cntr + *_nl_expand_alias ("") + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + LIBINTL="$LIBINTL $LIBICONV" + LTLIBINTL="$LTLIBINTL $LTLIBICONV" + gt_cv_func_gnugettext1_libintl=yes + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + fi + CPPFLAGS="$gt_save_CPPFLAGS" + LIBS="$gt_save_LIBS" +fi +echo "$as_me:$LINENO: result: $gt_cv_func_gnugettext1_libintl" >&5 +echo "${ECHO_T}$gt_cv_func_gnugettext1_libintl" >&6 + fi + + if test "$gt_cv_func_gnugettext1_libc" = "yes" \ + || { test "$gt_cv_func_gnugettext1_libintl" = "yes" \ + && test "$PACKAGE" != gettext-runtime \ + && test "$PACKAGE" != gettext-tools; }; then + gt_use_preinstalled_gnugettext=yes + else + LIBINTL= + LTLIBINTL= + INCINTL= + fi + + + + if test -n "$INTL_MACOSX_LIBS"; then + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" + LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" + fi + fi + + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + +cat >>confdefs.h <<\_ACEOF +#define ENABLE_NLS 1 +_ACEOF + + else + USE_NLS=no + fi + fi + + echo "$as_me:$LINENO: checking whether to use NLS" >&5 +echo $ECHO_N "checking whether to use NLS... $ECHO_C" >&6 + echo "$as_me:$LINENO: result: $USE_NLS" >&5 +echo "${ECHO_T}$USE_NLS" >&6 + if test "$USE_NLS" = "yes"; then + echo "$as_me:$LINENO: checking where the gettext function comes from" >&5 +echo $ECHO_N "checking where the gettext function comes from... $ECHO_C" >&6 + if test "$gt_use_preinstalled_gnugettext" = "yes"; then + if test "$gt_cv_func_gnugettext1_libintl" = "yes"; then + gt_source="external libintl" + else + gt_source="libc" + fi + else + gt_source="included intl directory" + fi + echo "$as_me:$LINENO: result: $gt_source" >&5 +echo "${ECHO_T}$gt_source" >&6 + fi + + if test "$USE_NLS" = "yes"; then + + if test "$gt_use_preinstalled_gnugettext" = "yes"; then + if test "$gt_cv_func_gnugettext1_libintl" = "yes"; then + echo "$as_me:$LINENO: checking how to link with libintl" >&5 +echo $ECHO_N "checking how to link with libintl... $ECHO_C" >&6 + echo "$as_me:$LINENO: result: $LIBINTL" >&5 +echo "${ECHO_T}$LIBINTL" >&6 + + for element in $INCINTL; do + haveit= + for x in $CPPFLAGS; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X$element"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" + fi + done + + fi + + +cat >>confdefs.h <<\_ACEOF +#define HAVE_GETTEXT 1 +_ACEOF + + +cat >>confdefs.h <<\_ACEOF +#define HAVE_DCGETTEXT 1 +_ACEOF + + fi + + POSUB=po + fi + + + + INTLLIBS="$LIBINTL" + + + + + + +if test x${prefix} = xNONE ; then + if test `eval echo ${datadir}` = NONE/share ; then + datadir=/usr/share + fi +fi + +# ------------------------------------------------------------------ +# If the user has not set --prefix, we set our default to nothing. +# In this case, if the user has not set --sysconfdir, we set it +# to the package default of /etc/bacula. If either --prefix or +# --sysconfdir is set, we leave sysconfdir alone except to eval it. +# ------------------------------------------------------------------ +if test x${prefix} = xNONE ; then + if test `eval echo ${sysconfdir}` = NONE/etc ; then + sysconfdir=/etc/bacula + fi + prefix= +fi +sysconfdir=`eval echo ${sysconfdir}` +datadir=`eval echo ${datadir}` +localedir=`eval echo ${datadir}/locale` +cat >>confdefs.h <<_ACEOF +#define LOCALEDIR "$localedir" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define SYSCONFDIR "$sysconfdir" +_ACEOF + + +# ------------------------------------------------------------------------- +# If the user has not set --exec-prefix, we default to ${prefix} +# ------------------------------------------------------------------------- +if test x${exec_prefix} = xNONE ; then + exec_prefix=${prefix} +fi + +# ------------------------------------------------------------------ +# If the user has not set --sbindir, we set our default as /sbin +# ------------------------------------------------------------------ +if test x$sbindir = x'${exec_prefix}/sbin' ; then + sbindir=${exec_prefix}/sbin +fi +sbindir=`eval echo ${sbindir}` + + +# ------------------------------------------------------------------------- +# If the user has not set --mandir, we default to /usr/share/man +# ------------------------------------------------------------------------- +if test x$mandir = x'${prefix}/man' ; then + mandir=/usr/share/man +fi + + +for ac_prog in msgfmt +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_MSGFMT+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $MSGFMT in + [\\/]* | ?:[\\/]*) + ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_MSGFMT="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + ;; +esac +fi +MSGFMT=$ac_cv_path_MSGFMT + +if test -n "$MSGFMT"; then + echo "$as_me:$LINENO: result: $MSGFMT" >&5 +echo "${ECHO_T}$MSGFMT" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + test -n "$MSGFMT" && break +done +test -n "$MSGFMT" || MSGFMT="no" + +if test "$MSGFMT" = "no" +then + echo 'msgfmt program not found, disabling NLS !' + USE_NLS=no + USE_INCLUDED_LIBINTL=no +#else + + echo "$as_me:$LINENO: checking whether we are using the GNU C Library 2 or newer" >&5 +echo $ECHO_N "checking whether we are using the GNU C Library 2 or newer... $ECHO_C" >&6 +if test "${ac_cv_gnu_library_2+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +#include +#ifdef __GNU_LIBRARY__ + #if (__GLIBC__ >= 2) + Lucky GNU user + #endif +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Lucky GNU user" >/dev/null 2>&1; then + ac_cv_gnu_library_2=yes +else + ac_cv_gnu_library_2=no +fi +rm -f conftest* + + + +fi +echo "$as_me:$LINENO: result: $ac_cv_gnu_library_2" >&5 +echo "${ECHO_T}$ac_cv_gnu_library_2" >&6 + + GLIBC2="$ac_cv_gnu_library_2" + + + + echo "$as_me:$LINENO: checking for strerror in -lcposix" >&5 +echo $ECHO_N "checking for strerror in -lcposix... $ECHO_C" >&6 +if test "${ac_cv_lib_cposix_strerror+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lcposix $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char strerror (); +int +main () +{ +strerror (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_cposix_strerror=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_cposix_strerror=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_cposix_strerror" >&5 +echo "${ECHO_T}$ac_cv_lib_cposix_strerror" >&6 +if test $ac_cv_lib_cposix_strerror = yes; then + LIBS="$LIBS -lcposix" +fi + + + +echo "$as_me:$LINENO: checking for ANSI C header files" >&5 +echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 +if test "${ac_cv_header_stdc+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#include +#include + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_header_stdc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_header_stdc=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then + : +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then + : +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then + : +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + exit(2); + exit (0); +} +_ACEOF +rm -f conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_header_stdc=no +fi +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +fi +fi +echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 +echo "${ECHO_T}$ac_cv_header_stdc" >&6 +if test $ac_cv_header_stdc = yes; then + +cat >>confdefs.h <<\_ACEOF +#define STDC_HEADERS 1 +_ACEOF + +fi + +echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5 +echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6 +if test "${ac_cv_c_const+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ +/* FIXME: Include the comments suggested by Paul. */ +#ifndef __cplusplus + /* Ultrix mips cc rejects this. */ + typedef int charset[2]; + const charset x; + /* SunOS 4.1.1 cc rejects this. */ + char const *const *ccp; + char **p; + /* NEC SVR4.0.2 mips cc rejects this. */ + struct point {int x, y;}; + static struct point const zero = {0,0}; + /* AIX XL C 1.02.0.0 rejects this. + It does not let you subtract one const X* pointer from another in + an arm of an if-expression whose if-part is not a constant + expression */ + const char *g = "string"; + ccp = &g + (g ? g-g : 0); + /* HPUX 7.0 cc rejects these. */ + ++ccp; + p = (char**) ccp; + ccp = (char const *const *) p; + { /* SCO 3.2v4 cc rejects this. */ + char *t; + char const *s = 0 ? (char *) 0 : (char const *) 0; + + *t++ = 0; + } + { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ + int x[] = {25, 17}; + const int *foo = &x[0]; + ++foo; + } + { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ + typedef const int *iptr; + iptr p = 0; + ++p; + } + { /* AIX XL C 1.02.0.0 rejects this saying + "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ + struct s { int j; const int *ap[3]; }; + struct s *b; b->j = 5; + } + { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ + const int foo = 10; + } +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_c_const=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_c_const=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5 +echo "${ECHO_T}$ac_cv_c_const" >&6 +if test $ac_cv_c_const = no; then + +cat >>confdefs.h <<\_ACEOF +#define const +_ACEOF + +fi + + + echo "$as_me:$LINENO: checking for signed" >&5 +echo $ECHO_N "checking for signed... $ECHO_C" >&6 +if test "${bh_cv_c_signed+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ +signed char x; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + bh_cv_c_signed=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +bh_cv_c_signed=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $bh_cv_c_signed" >&5 +echo "${ECHO_T}$bh_cv_c_signed" >&6 + if test $bh_cv_c_signed = no; then + +cat >>confdefs.h <<\_ACEOF +#define signed +_ACEOF + + fi + +echo "$as_me:$LINENO: checking for inline" >&5 +echo $ECHO_N "checking for inline... $ECHO_C" >&6 +if test "${ac_cv_c_inline+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_c_inline=no +for ac_kw in inline __inline__ __inline; do + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifndef __cplusplus +typedef int foo_t; +static $ac_kw foo_t static_foo () {return 0; } +$ac_kw foo_t foo () {return 0; } +#endif + +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_c_inline=$ac_kw; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +done + +fi +echo "$as_me:$LINENO: result: $ac_cv_c_inline" >&5 +echo "${ECHO_T}$ac_cv_c_inline" >&6 + + +case $ac_cv_c_inline in + inline | yes) ;; + *) + case $ac_cv_c_inline in + no) ac_val=;; + *) ac_val=$ac_cv_c_inline;; + esac + cat >>confdefs.h <<_ACEOF +#ifndef __cplusplus +#define inline $ac_val +#endif +_ACEOF + ;; +esac + +# On IRIX 5.3, sys/types and inttypes.h are conflicting. + + + + + + + + + +for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ + inttypes.h stdint.h unistd.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_Header=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +eval "$as_ac_Header=no" +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +echo "$as_me:$LINENO: checking for off_t" >&5 +echo $ECHO_N "checking for off_t... $ECHO_C" >&6 +if test "${ac_cv_type_off_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if ((off_t *) 0) + return 0; +if (sizeof (off_t)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_type_off_t=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_type_off_t=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_type_off_t" >&5 +echo "${ECHO_T}$ac_cv_type_off_t" >&6 +if test $ac_cv_type_off_t = yes; then + : +else + +cat >>confdefs.h <<_ACEOF +#define off_t long +_ACEOF + +fi + +echo "$as_me:$LINENO: checking for size_t" >&5 +echo $ECHO_N "checking for size_t... $ECHO_C" >&6 +if test "${ac_cv_type_size_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if ((size_t *) 0) + return 0; +if (sizeof (size_t)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_type_size_t=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_type_size_t=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5 +echo "${ECHO_T}$ac_cv_type_size_t" >&6 +if test $ac_cv_type_size_t = yes; then + : +else + +cat >>confdefs.h <<_ACEOF +#define size_t unsigned +_ACEOF + +fi + + + echo "$as_me:$LINENO: checking for long long" >&5 +echo $ECHO_N "checking for long long... $ECHO_C" >&6 +if test "${ac_cv_type_long_long+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +long long ll = 1LL; int i = 63; +int +main () +{ +long long llmax = (long long) -1; + return ll << i | ll >> i | llmax / ll | llmax % ll; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_type_long_long=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_type_long_long=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_type_long_long" >&5 +echo "${ECHO_T}$ac_cv_type_long_long" >&6 + if test $ac_cv_type_long_long = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_LONG_LONG 1 +_ACEOF + + fi + + + echo "$as_me:$LINENO: checking for long double" >&5 +echo $ECHO_N "checking for long double... $ECHO_C" >&6 +if test "${gt_cv_c_long_double+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$GCC" = yes; then + gt_cv_c_long_double=yes + else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + + /* The Stardent Vistra knows sizeof(long double), but does not support it. */ + long double foo = 0.0; + /* On Ultrix 4.3 cc, long double is 4 and double is 8. */ + int array [2*(sizeof(long double) >= sizeof(double)) - 1]; + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + gt_cv_c_long_double=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +gt_cv_c_long_double=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + fi +fi +echo "$as_me:$LINENO: result: $gt_cv_c_long_double" >&5 +echo "${ECHO_T}$gt_cv_c_long_double" >&6 + if test $gt_cv_c_long_double = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_LONG_DOUBLE 1 +_ACEOF + + fi + + + echo "$as_me:$LINENO: checking for wchar_t" >&5 +echo $ECHO_N "checking for wchar_t... $ECHO_C" >&6 +if test "${gt_cv_c_wchar_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + wchar_t foo = (wchar_t)'\0'; +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + gt_cv_c_wchar_t=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +gt_cv_c_wchar_t=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $gt_cv_c_wchar_t" >&5 +echo "${ECHO_T}$gt_cv_c_wchar_t" >&6 + if test $gt_cv_c_wchar_t = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_WCHAR_T 1 +_ACEOF + + fi + + + echo "$as_me:$LINENO: checking for wint_t" >&5 +echo $ECHO_N "checking for wint_t... $ECHO_C" >&6 +if test "${gt_cv_c_wint_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + wint_t foo = (wchar_t)'\0'; +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + gt_cv_c_wint_t=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +gt_cv_c_wint_t=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $gt_cv_c_wint_t" >&5 +echo "${ECHO_T}$gt_cv_c_wint_t" >&6 + if test $gt_cv_c_wint_t = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_WINT_T 1 +_ACEOF + + fi + + + echo "$as_me:$LINENO: checking for inttypes.h" >&5 +echo $ECHO_N "checking for inttypes.h... $ECHO_C" >&6 +if test "${gl_cv_header_inttypes_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +int +main () +{ +uintmax_t i = (uintmax_t) -1; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + gl_cv_header_inttypes_h=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +gl_cv_header_inttypes_h=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $gl_cv_header_inttypes_h" >&5 +echo "${ECHO_T}$gl_cv_header_inttypes_h" >&6 + if test $gl_cv_header_inttypes_h = yes; then + +cat >>confdefs.h <<_ACEOF +#define HAVE_INTTYPES_H_WITH_UINTMAX 1 +_ACEOF + + fi + + + echo "$as_me:$LINENO: checking for stdint.h" >&5 +echo $ECHO_N "checking for stdint.h... $ECHO_C" >&6 +if test "${gl_cv_header_stdint_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +int +main () +{ +uintmax_t i = (uintmax_t) -1; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + gl_cv_header_stdint_h=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +gl_cv_header_stdint_h=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $gl_cv_header_stdint_h" >&5 +echo "${ECHO_T}$gl_cv_header_stdint_h" >&6 + if test $gl_cv_header_stdint_h = yes; then + +cat >>confdefs.h <<_ACEOF +#define HAVE_STDINT_H_WITH_UINTMAX 1 +_ACEOF + + fi + + + + + echo "$as_me:$LINENO: checking for intmax_t" >&5 +echo $ECHO_N "checking for intmax_t... $ECHO_C" >&6 +if test "${gt_cv_c_intmax_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +#include +#include +#if HAVE_STDINT_H_WITH_UINTMAX +#include +#endif +#if HAVE_INTTYPES_H_WITH_UINTMAX +#include +#endif + +int +main () +{ +intmax_t x = -1; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + gt_cv_c_intmax_t=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +gt_cv_c_intmax_t=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $gt_cv_c_intmax_t" >&5 +echo "${ECHO_T}$gt_cv_c_intmax_t" >&6 + if test $gt_cv_c_intmax_t = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_INTMAX_T 1 +_ACEOF + + fi + + + + echo "$as_me:$LINENO: checking whether printf() supports POSIX/XSI format strings" >&5 +echo $ECHO_N "checking whether printf() supports POSIX/XSI format strings... $ECHO_C" >&6 +if test "${gt_cv_func_printf_posix+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + if test "$cross_compiling" = yes; then + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +#if defined __NetBSD__ || defined _MSC_VER || defined __MINGW32__ || defined __CYGWIN__ + notposix +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "notposix" >/dev/null 2>&1; then + gt_cv_func_printf_posix="guessing no" +else + gt_cv_func_printf_posix="guessing yes" +fi +rm -f conftest* + + +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +#include +#include +/* The string "%2$d %1$d", with dollar characters protected from the shell's + dollar expansion (possibly an autoconf bug). */ +static char format[] = { '%', '2', '$', 'd', ' ', '%', '1', '$', 'd', '\0' }; +static char buf[100]; +int main () +{ + sprintf (buf, format, 33, 55); + return (strcmp (buf, "55 33") != 0); +} +_ACEOF +rm -f conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + gt_cv_func_printf_posix=yes +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +gt_cv_func_printf_posix=no +fi +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + +fi +echo "$as_me:$LINENO: result: $gt_cv_func_printf_posix" >&5 +echo "${ECHO_T}$gt_cv_func_printf_posix" >&6 + case $gt_cv_func_printf_posix in + *yes) + +cat >>confdefs.h <<\_ACEOF +#define HAVE_POSIX_PRINTF 1 +_ACEOF + + ;; + esac + +# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works +# for constant arguments. Useless! +echo "$as_me:$LINENO: checking for working alloca.h" >&5 +echo $ECHO_N "checking for working alloca.h... $ECHO_C" >&6 +if test "${ac_cv_working_alloca_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +char *p = (char *) alloca (2 * sizeof (int)); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_working_alloca_h=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_working_alloca_h=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_working_alloca_h" >&5 +echo "${ECHO_T}$ac_cv_working_alloca_h" >&6 +if test $ac_cv_working_alloca_h = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_ALLOCA_H 1 +_ACEOF + +fi + +echo "$as_me:$LINENO: checking for alloca" >&5 +echo $ECHO_N "checking for alloca... $ECHO_C" >&6 +if test "${ac_cv_func_alloca_works+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifdef __GNUC__ +# define alloca __builtin_alloca +#else +# ifdef _MSC_VER +# include +# define alloca _alloca +# else +# if HAVE_ALLOCA_H +# include +# else +# ifdef _AIX + #pragma alloca +# else +# ifndef alloca /* predefined by HP cc +Olibcalls */ +char *alloca (); +# endif +# endif +# endif +# endif +#endif + +int +main () +{ +char *p = (char *) alloca (1); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_alloca_works=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_func_alloca_works=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_func_alloca_works" >&5 +echo "${ECHO_T}$ac_cv_func_alloca_works" >&6 + +if test $ac_cv_func_alloca_works = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_ALLOCA 1 +_ACEOF + +else + # The SVR3 libPW and SVR4 libucb both contain incompatible functions +# that cause trouble. Some versions do not even contain alloca or +# contain a buggy version. If you still want to use their alloca, +# use ar to extract alloca.o from them instead of compiling alloca.c. + +ALLOCA=alloca.$ac_objext + +cat >>confdefs.h <<\_ACEOF +#define C_ALLOCA 1 +_ACEOF + + +echo "$as_me:$LINENO: checking whether \`alloca.c' needs Cray hooks" >&5 +echo $ECHO_N "checking whether \`alloca.c' needs Cray hooks... $ECHO_C" >&6 +if test "${ac_cv_os_cray+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#if defined(CRAY) && ! defined(CRAY2) +webecray +#else +wenotbecray +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "webecray" >/dev/null 2>&1; then + ac_cv_os_cray=yes +else + ac_cv_os_cray=no +fi +rm -f conftest* + +fi +echo "$as_me:$LINENO: result: $ac_cv_os_cray" >&5 +echo "${ECHO_T}$ac_cv_os_cray" >&6 +if test $ac_cv_os_cray = yes; then + for ac_func in _getb67 GETB67 getb67; do + as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $ac_func + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +char (*f) () = $ac_func; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != $ac_func; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +eval "$as_ac_var=no" +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then + +cat >>confdefs.h <<_ACEOF +#define CRAY_STACKSEG_END $ac_func +_ACEOF + + break +fi + + done +fi + +echo "$as_me:$LINENO: checking stack direction for C alloca" >&5 +echo $ECHO_N "checking stack direction for C alloca... $ECHO_C" >&6 +if test "${ac_cv_c_stack_direction+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$cross_compiling" = yes; then + ac_cv_c_stack_direction=0 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +int +find_stack_direction () +{ + static char *addr = 0; + auto char dummy; + if (addr == 0) + { + addr = &dummy; + return find_stack_direction (); + } + else + return (&dummy > addr) ? 1 : -1; +} + +int +main () +{ + exit (find_stack_direction () < 0); +} +_ACEOF +rm -f conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_c_stack_direction=1 +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_c_stack_direction=-1 +fi +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +fi +echo "$as_me:$LINENO: result: $ac_cv_c_stack_direction" >&5 +echo "${ECHO_T}$ac_cv_c_stack_direction" >&6 + +cat >>confdefs.h <<_ACEOF +#define STACK_DIRECTION $ac_cv_c_stack_direction +_ACEOF + + +fi + + + +for ac_header in stdlib.h unistd.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_header_compiler=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +for ac_func in getpagesize +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $ac_func + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +char (*f) () = $ac_func; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != $ac_func; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +eval "$as_ac_var=no" +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + +echo "$as_me:$LINENO: checking for working mmap" >&5 +echo $ECHO_N "checking for working mmap... $ECHO_C" >&6 +if test "${ac_cv_func_mmap_fixed_mapped+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$cross_compiling" = yes; then + ac_cv_func_mmap_fixed_mapped=no +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +/* malloc might have been renamed as rpl_malloc. */ +#undef malloc + +/* Thanks to Mike Haertel and Jim Avera for this test. + Here is a matrix of mmap possibilities: + mmap private not fixed + mmap private fixed at somewhere currently unmapped + mmap private fixed at somewhere already mapped + mmap shared not fixed + mmap shared fixed at somewhere currently unmapped + mmap shared fixed at somewhere already mapped + For private mappings, we should verify that changes cannot be read() + back from the file, nor mmap's back from the file at a different + address. (There have been systems where private was not correctly + implemented like the infamous i386 svr4.0, and systems where the + VM page cache was not coherent with the file system buffer cache + like early versions of FreeBSD and possibly contemporary NetBSD.) + For shared mappings, we should conversely verify that changes get + propagated back to all the places they're supposed to be. + + Grep wants private fixed already mapped. + The main things grep needs to know about mmap are: + * does it exist and is it safe to write into the mmap'd area + * how to use it (BSD variants) */ + +#include +#include + +#if !STDC_HEADERS && !HAVE_STDLIB_H +char *malloc (); +#endif + +/* This mess was copied from the GNU getpagesize.h. */ +#if !HAVE_GETPAGESIZE +/* Assume that all systems that can run configure have sys/param.h. */ +# if !HAVE_SYS_PARAM_H +# define HAVE_SYS_PARAM_H 1 +# endif + +# ifdef _SC_PAGESIZE +# define getpagesize() sysconf(_SC_PAGESIZE) +# else /* no _SC_PAGESIZE */ +# if HAVE_SYS_PARAM_H +# include +# ifdef EXEC_PAGESIZE +# define getpagesize() EXEC_PAGESIZE +# else /* no EXEC_PAGESIZE */ +# ifdef NBPG +# define getpagesize() NBPG * CLSIZE +# ifndef CLSIZE +# define CLSIZE 1 +# endif /* no CLSIZE */ +# else /* no NBPG */ +# ifdef NBPC +# define getpagesize() NBPC +# else /* no NBPC */ +# ifdef PAGESIZE +# define getpagesize() PAGESIZE +# endif /* PAGESIZE */ +# endif /* no NBPC */ +# endif /* no NBPG */ +# endif /* no EXEC_PAGESIZE */ +# else /* no HAVE_SYS_PARAM_H */ +# define getpagesize() 8192 /* punt totally */ +# endif /* no HAVE_SYS_PARAM_H */ +# endif /* no _SC_PAGESIZE */ + +#endif /* no HAVE_GETPAGESIZE */ + +int +main () +{ + char *data, *data2, *data3; + int i, pagesize; + int fd; + + pagesize = getpagesize (); + + /* First, make a file with some known garbage in it. */ + data = (char *) malloc (pagesize); + if (!data) + exit (1); + for (i = 0; i < pagesize; ++i) + *(data + i) = rand (); + umask (0); + fd = creat ("conftest.mmap", 0600); + if (fd < 0) + exit (1); + if (write (fd, data, pagesize) != pagesize) + exit (1); + close (fd); + + /* Next, try to mmap the file at a fixed address which already has + something else allocated at it. If we can, also make sure that + we see the same garbage. */ + fd = open ("conftest.mmap", O_RDWR); + if (fd < 0) + exit (1); + data2 = (char *) malloc (2 * pagesize); + if (!data2) + exit (1); + data2 += (pagesize - ((long) data2 & (pagesize - 1))) & (pagesize - 1); + if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE, + MAP_PRIVATE | MAP_FIXED, fd, 0L)) + exit (1); + for (i = 0; i < pagesize; ++i) + if (*(data + i) != *(data2 + i)) + exit (1); + + /* Finally, make sure that changes to the mapped area do not + percolate back to the file as seen by read(). (This is a bug on + some variants of i386 svr4.0.) */ + for (i = 0; i < pagesize; ++i) + *(data2 + i) = *(data2 + i) + 1; + data3 = (char *) malloc (pagesize); + if (!data3) + exit (1); + if (read (fd, data3, pagesize) != pagesize) + exit (1); + for (i = 0; i < pagesize; ++i) + if (*(data + i) != *(data3 + i)) + exit (1); + close (fd); + exit (0); +} +_ACEOF +rm -f conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_mmap_fixed_mapped=yes +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_func_mmap_fixed_mapped=no +fi +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +fi +echo "$as_me:$LINENO: result: $ac_cv_func_mmap_fixed_mapped" >&5 +echo "${ECHO_T}$ac_cv_func_mmap_fixed_mapped" >&6 +if test $ac_cv_func_mmap_fixed_mapped = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_MMAP 1 +_ACEOF + +fi +rm -f conftest.mmap + + + echo "$as_me:$LINENO: checking whether we are using the GNU C Library 2.1 or newer" >&5 +echo $ECHO_N "checking whether we are using the GNU C Library 2.1 or newer... $ECHO_C" >&6 +if test "${ac_cv_gnu_library_2_1+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +#include +#ifdef __GNU_LIBRARY__ + #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2) + Lucky GNU user + #endif +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Lucky GNU user" >/dev/null 2>&1; then + ac_cv_gnu_library_2_1=yes +else + ac_cv_gnu_library_2_1=no +fi +rm -f conftest* + + + +fi +echo "$as_me:$LINENO: result: $ac_cv_gnu_library_2_1" >&5 +echo "${ECHO_T}$ac_cv_gnu_library_2_1" >&6 + + GLIBC21="$ac_cv_gnu_library_2_1" + + + + + echo "$as_me:$LINENO: checking whether integer division by zero raises SIGFPE" >&5 +echo $ECHO_N "checking whether integer division by zero raises SIGFPE... $ECHO_C" >&6 +if test "${gt_cv_int_divbyzero_sigfpe+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + if test "$cross_compiling" = yes; then + + # Guess based on the CPU. + case "$host_cpu" in + alpha* | i3456786 | m68k | s390*) + gt_cv_int_divbyzero_sigfpe="guessing yes";; + *) + gt_cv_int_divbyzero_sigfpe="guessing no";; + esac + +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +#include +#include + +static void +#ifdef __cplusplus +sigfpe_handler (int sig) +#else +sigfpe_handler (sig) int sig; +#endif +{ + /* Exit with code 0 if SIGFPE, with code 1 if any other signal. */ + exit (sig != SIGFPE); +} + +int x = 1; +int y = 0; +int z; +int nan; + +int main () +{ + signal (SIGFPE, sigfpe_handler); +/* IRIX and AIX (when "xlc -qcheck" is used) yield signal SIGTRAP. */ +#if (defined (__sgi) || defined (_AIX)) && defined (SIGTRAP) + signal (SIGTRAP, sigfpe_handler); +#endif +/* Linux/SPARC yields signal SIGILL. */ +#if defined (__sparc__) && defined (__linux__) + signal (SIGILL, sigfpe_handler); +#endif + + z = x / y; + nan = y / y; + exit (1); +} + +_ACEOF +rm -f conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + gt_cv_int_divbyzero_sigfpe=yes +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +gt_cv_int_divbyzero_sigfpe=no +fi +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + +fi +echo "$as_me:$LINENO: result: $gt_cv_int_divbyzero_sigfpe" >&5 +echo "${ECHO_T}$gt_cv_int_divbyzero_sigfpe" >&6 + case "$gt_cv_int_divbyzero_sigfpe" in + *yes) value=1;; + *) value=0;; + esac + +cat >>confdefs.h <<_ACEOF +#define INTDIV0_RAISES_SIGFPE $value +_ACEOF + + + + echo "$as_me:$LINENO: checking for unsigned long long" >&5 +echo $ECHO_N "checking for unsigned long long... $ECHO_C" >&6 +if test "${ac_cv_type_unsigned_long_long+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +unsigned long long ull = 1ULL; int i = 63; +int +main () +{ +unsigned long long ullmax = (unsigned long long) -1; + return ull << i | ull >> i | ullmax / ull | ullmax % ull; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_type_unsigned_long_long=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_type_unsigned_long_long=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_type_unsigned_long_long" >&5 +echo "${ECHO_T}$ac_cv_type_unsigned_long_long" >&6 + if test $ac_cv_type_unsigned_long_long = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_UNSIGNED_LONG_LONG 1 +_ACEOF + + fi + + + + + if test $gl_cv_header_inttypes_h = no && test $gl_cv_header_stdint_h = no; then + + test $ac_cv_type_unsigned_long_long = yes \ + && ac_type='unsigned long long' \ + || ac_type='unsigned long' + +cat >>confdefs.h <<_ACEOF +#define uintmax_t $ac_type +_ACEOF + + else + +cat >>confdefs.h <<\_ACEOF +#define HAVE_UINTMAX_T 1 +_ACEOF + + fi + + + echo "$as_me:$LINENO: checking for inttypes.h" >&5 +echo $ECHO_N "checking for inttypes.h... $ECHO_C" >&6 +if test "${gt_cv_header_inttypes_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + gt_cv_header_inttypes_h=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +gt_cv_header_inttypes_h=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +echo "$as_me:$LINENO: result: $gt_cv_header_inttypes_h" >&5 +echo "${ECHO_T}$gt_cv_header_inttypes_h" >&6 + if test $gt_cv_header_inttypes_h = yes; then + +cat >>confdefs.h <<_ACEOF +#define HAVE_INTTYPES_H 1 +_ACEOF + + fi + + + + if test $gt_cv_header_inttypes_h = yes; then + echo "$as_me:$LINENO: checking whether the inttypes.h PRIxNN macros are broken" >&5 +echo $ECHO_N "checking whether the inttypes.h PRIxNN macros are broken... $ECHO_C" >&6 +if test "${gt_cv_inttypes_pri_broken+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#ifdef PRId32 +char *p = PRId32; +#endif + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + gt_cv_inttypes_pri_broken=no +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +gt_cv_inttypes_pri_broken=yes +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +echo "$as_me:$LINENO: result: $gt_cv_inttypes_pri_broken" >&5 +echo "${ECHO_T}$gt_cv_inttypes_pri_broken" >&6 + fi + if test "$gt_cv_inttypes_pri_broken" = yes; then + +cat >>confdefs.h <<_ACEOF +#define PRI_MACROS_BROKEN 1 +_ACEOF + + fi + + + +for ac_header in stdint.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_header_compiler=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + echo "$as_me:$LINENO: checking for SIZE_MAX" >&5 +echo $ECHO_N "checking for SIZE_MAX... $ECHO_C" >&6 + result= + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +#include +#if HAVE_STDINT_H +#include +#endif +#ifdef SIZE_MAX +Found it +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Found it" >/dev/null 2>&1; then + result=yes +fi +rm -f conftest* + + if test -z "$result"; then + if test "$cross_compiling" = yes; then + # Depending upon the size, compute the lo and hi bounds. +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +static int test_array [1 - 2 * !((~(size_t)0 / 10) >= 0)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_lo=0 ac_mid=0 + while :; do + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +static int test_array [1 - 2 * !((~(size_t)0 / 10) <= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_hi=$ac_mid; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_lo=`expr $ac_mid + 1` + if test $ac_lo -le $ac_mid; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid + 1` +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +static int test_array [1 - 2 * !((~(size_t)0 / 10) < 0)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_hi=-1 ac_mid=-1 + while :; do + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +static int test_array [1 - 2 * !((~(size_t)0 / 10) >= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_lo=$ac_mid; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_hi=`expr '(' $ac_mid ')' - 1` + if test $ac_mid -le $ac_hi; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid` +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_lo= ac_hi= +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +# Binary search between lo and hi bounds. +while test "x$ac_lo" != "x$ac_hi"; do + ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +static int test_array [1 - 2 * !((~(size_t)0 / 10) <= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_hi=$ac_mid +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_lo=`expr '(' $ac_mid ')' + 1` +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +done +case $ac_lo in +?*) res_hi=$ac_lo;; +'') result=? ;; +esac +else + if test "$cross_compiling" = yes; then + { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot run test program while cross compiling +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +long longval () { return ~(size_t)0 / 10; } +unsigned long ulongval () { return ~(size_t)0 / 10; } +#include +#include +int +main () +{ + + FILE *f = fopen ("conftest.val", "w"); + if (! f) + exit (1); + if ((~(size_t)0 / 10) < 0) + { + long i = longval (); + if (i != (~(size_t)0 / 10)) + exit (1); + fprintf (f, "%ld\n", i); + } + else + { + unsigned long i = ulongval (); + if (i != (~(size_t)0 / 10)) + exit (1); + fprintf (f, "%lu\n", i); + } + exit (ferror (f) || fclose (f) != 0); + + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + res_hi=`cat conftest.val` +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +result=? +fi +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +fi +rm -f conftest.val + if test "$cross_compiling" = yes; then + # Depending upon the size, compute the lo and hi bounds. +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +static int test_array [1 - 2 * !((~(size_t)0 % 10) >= 0)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_lo=0 ac_mid=0 + while :; do + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +static int test_array [1 - 2 * !((~(size_t)0 % 10) <= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_hi=$ac_mid; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_lo=`expr $ac_mid + 1` + if test $ac_lo -le $ac_mid; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid + 1` +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +static int test_array [1 - 2 * !((~(size_t)0 % 10) < 0)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_hi=-1 ac_mid=-1 + while :; do + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +static int test_array [1 - 2 * !((~(size_t)0 % 10) >= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_lo=$ac_mid; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_hi=`expr '(' $ac_mid ')' - 1` + if test $ac_mid -le $ac_hi; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid` +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_lo= ac_hi= +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +# Binary search between lo and hi bounds. +while test "x$ac_lo" != "x$ac_hi"; do + ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +static int test_array [1 - 2 * !((~(size_t)0 % 10) <= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_hi=$ac_mid +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_lo=`expr '(' $ac_mid ')' + 1` +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +done +case $ac_lo in +?*) res_lo=$ac_lo;; +'') result=? ;; +esac +else + if test "$cross_compiling" = yes; then + { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot run test program while cross compiling +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +long longval () { return ~(size_t)0 % 10; } +unsigned long ulongval () { return ~(size_t)0 % 10; } +#include +#include +int +main () +{ + + FILE *f = fopen ("conftest.val", "w"); + if (! f) + exit (1); + if ((~(size_t)0 % 10) < 0) + { + long i = longval (); + if (i != (~(size_t)0 % 10)) + exit (1); + fprintf (f, "%ld\n", i); + } + else + { + unsigned long i = ulongval (); + if (i != (~(size_t)0 % 10)) + exit (1); + fprintf (f, "%lu\n", i); + } + exit (ferror (f) || fclose (f) != 0); + + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + res_lo=`cat conftest.val` +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +result=? +fi +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +fi +rm -f conftest.val + if test "$cross_compiling" = yes; then + # Depending upon the size, compute the lo and hi bounds. +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +static int test_array [1 - 2 * !((sizeof (size_t) <= sizeof (unsigned int)) >= 0)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_lo=0 ac_mid=0 + while :; do + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +static int test_array [1 - 2 * !((sizeof (size_t) <= sizeof (unsigned int)) <= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_hi=$ac_mid; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_lo=`expr $ac_mid + 1` + if test $ac_lo -le $ac_mid; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid + 1` +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +static int test_array [1 - 2 * !((sizeof (size_t) <= sizeof (unsigned int)) < 0)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_hi=-1 ac_mid=-1 + while :; do + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +static int test_array [1 - 2 * !((sizeof (size_t) <= sizeof (unsigned int)) >= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_lo=$ac_mid; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_hi=`expr '(' $ac_mid ')' - 1` + if test $ac_mid -le $ac_hi; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid` +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_lo= ac_hi= +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +# Binary search between lo and hi bounds. +while test "x$ac_lo" != "x$ac_hi"; do + ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +static int test_array [1 - 2 * !((sizeof (size_t) <= sizeof (unsigned int)) <= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_hi=$ac_mid +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_lo=`expr '(' $ac_mid ')' + 1` +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +done +case $ac_lo in +?*) fits_in_uint=$ac_lo;; +'') result=? ;; +esac +else + if test "$cross_compiling" = yes; then + { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot run test program while cross compiling +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +long longval () { return sizeof (size_t) <= sizeof (unsigned int); } +unsigned long ulongval () { return sizeof (size_t) <= sizeof (unsigned int); } +#include +#include +int +main () +{ + + FILE *f = fopen ("conftest.val", "w"); + if (! f) + exit (1); + if ((sizeof (size_t) <= sizeof (unsigned int)) < 0) + { + long i = longval (); + if (i != (sizeof (size_t) <= sizeof (unsigned int))) + exit (1); + fprintf (f, "%ld\n", i); + } + else + { + unsigned long i = ulongval (); + if (i != (sizeof (size_t) <= sizeof (unsigned int))) + exit (1); + fprintf (f, "%lu\n", i); + } + exit (ferror (f) || fclose (f) != 0); + + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + fits_in_uint=`cat conftest.val` +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +result=? +fi +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +fi +rm -f conftest.val + if test "$fits_in_uint" = 1; then + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + extern size_t foo; + extern unsigned long foo; + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + fits_in_uint=0 +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + fi + if test -z "$result"; then + if test "$fits_in_uint" = 1; then + result="$res_hi$res_lo"U + else + result="$res_hi$res_lo"UL + fi + else + result='~(size_t)0' + fi + fi + echo "$as_me:$LINENO: result: $result" >&5 +echo "${ECHO_T}$result" >&6 + if test "$result" != yes; then + +cat >>confdefs.h <<_ACEOF +#define SIZE_MAX $result +_ACEOF + + fi + + + + + +for ac_header in stdint.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_header_compiler=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + + + + + + + + echo "$as_me:$LINENO: checking for ptrdiff_t" >&5 +echo $ECHO_N "checking for ptrdiff_t... $ECHO_C" >&6 +if test "${ac_cv_type_ptrdiff_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if ((ptrdiff_t *) 0) + return 0; +if (sizeof (ptrdiff_t)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_type_ptrdiff_t=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_type_ptrdiff_t=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_type_ptrdiff_t" >&5 +echo "${ECHO_T}$ac_cv_type_ptrdiff_t" >&6 +if test $ac_cv_type_ptrdiff_t = yes; then + : +else + +cat >>confdefs.h <<\_ACEOF +#define ptrdiff_t long +_ACEOF + + +fi + + + + + + + + + + + +for ac_header in argz.h limits.h locale.h nl_types.h malloc.h stddef.h \ +stdlib.h string.h unistd.h sys/param.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_header_compiler=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + + + + + + + + + + + + + + + + + + + + + + + +for ac_func in asprintf fwprintf getcwd getegid geteuid getgid getuid \ +mempcpy munmap putenv setenv setlocale snprintf stpcpy strcasecmp strdup \ +strtoul tsearch wcslen __argz_count __argz_stringify __argz_next \ +__fsetlocking +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $ac_func + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +char (*f) () = $ac_func; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != $ac_func; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +eval "$as_ac_var=no" +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + + + echo "$as_me:$LINENO: checking whether _snprintf is declared" >&5 +echo $ECHO_N "checking whether _snprintf is declared... $ECHO_C" >&6 +if test "${ac_cv_have_decl__snprintf+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ + +#ifndef _snprintf + char *p = (char *) _snprintf; +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_have_decl__snprintf=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_have_decl__snprintf=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_have_decl__snprintf" >&5 +echo "${ECHO_T}$ac_cv_have_decl__snprintf" >&6 + if test $ac_cv_have_decl__snprintf = yes; then + gt_value=1 + else + gt_value=0 + fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL__SNPRINTF $gt_value +_ACEOF + + + + echo "$as_me:$LINENO: checking whether _snwprintf is declared" >&5 +echo $ECHO_N "checking whether _snwprintf is declared... $ECHO_C" >&6 +if test "${ac_cv_have_decl__snwprintf+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ + +#ifndef _snwprintf + char *p = (char *) _snwprintf; +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_have_decl__snwprintf=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_have_decl__snwprintf=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_have_decl__snwprintf" >&5 +echo "${ECHO_T}$ac_cv_have_decl__snwprintf" >&6 + if test $ac_cv_have_decl__snwprintf = yes; then + gt_value=1 + else + gt_value=0 + fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL__SNWPRINTF $gt_value +_ACEOF + + + + + echo "$as_me:$LINENO: checking whether feof_unlocked is declared" >&5 +echo $ECHO_N "checking whether feof_unlocked is declared... $ECHO_C" >&6 +if test "${ac_cv_have_decl_feof_unlocked+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ + +#ifndef feof_unlocked + char *p = (char *) feof_unlocked; +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_have_decl_feof_unlocked=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_have_decl_feof_unlocked=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_have_decl_feof_unlocked" >&5 +echo "${ECHO_T}$ac_cv_have_decl_feof_unlocked" >&6 + if test $ac_cv_have_decl_feof_unlocked = yes; then + gt_value=1 + else + gt_value=0 + fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_FEOF_UNLOCKED $gt_value +_ACEOF + + + + echo "$as_me:$LINENO: checking whether fgets_unlocked is declared" >&5 +echo $ECHO_N "checking whether fgets_unlocked is declared... $ECHO_C" >&6 +if test "${ac_cv_have_decl_fgets_unlocked+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ + +#ifndef fgets_unlocked + char *p = (char *) fgets_unlocked; +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_have_decl_fgets_unlocked=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_have_decl_fgets_unlocked=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_have_decl_fgets_unlocked" >&5 +echo "${ECHO_T}$ac_cv_have_decl_fgets_unlocked" >&6 + if test $ac_cv_have_decl_fgets_unlocked = yes; then + gt_value=1 + else + gt_value=0 + fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_FGETS_UNLOCKED $gt_value +_ACEOF + + + + echo "$as_me:$LINENO: checking whether getc_unlocked is declared" >&5 +echo $ECHO_N "checking whether getc_unlocked is declared... $ECHO_C" >&6 +if test "${ac_cv_have_decl_getc_unlocked+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ + +#ifndef getc_unlocked + char *p = (char *) getc_unlocked; +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_have_decl_getc_unlocked=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_have_decl_getc_unlocked=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_have_decl_getc_unlocked" >&5 +echo "${ECHO_T}$ac_cv_have_decl_getc_unlocked" >&6 + if test $ac_cv_have_decl_getc_unlocked = yes; then + gt_value=1 + else + gt_value=0 + fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_GETC_UNLOCKED $gt_value +_ACEOF + + + + case $gt_cv_func_printf_posix in + *yes) HAVE_POSIX_PRINTF=1 ;; + *) HAVE_POSIX_PRINTF=0 ;; + esac + + if test "$ac_cv_func_asprintf" = yes; then + HAVE_ASPRINTF=1 + else + HAVE_ASPRINTF=0 + fi + + if test "$ac_cv_func_snprintf" = yes; then + HAVE_SNPRINTF=1 + else + HAVE_SNPRINTF=0 + fi + + if test "$ac_cv_func_wprintf" = yes; then + HAVE_WPRINTF=1 + else + HAVE_WPRINTF=0 + fi + + + + + + + + am_save_CPPFLAGS="$CPPFLAGS" + + for element in $INCICONV; do + haveit= + for x in $CPPFLAGS; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X$element"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" + fi + done + + + echo "$as_me:$LINENO: checking for iconv" >&5 +echo $ECHO_N "checking for iconv... $ECHO_C" >&6 +if test "${am_cv_func_iconv+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + am_cv_func_iconv="no, consider installing GNU libiconv" + am_cv_lib_iconv=no + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +int +main () +{ +iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + am_cv_func_iconv=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test "$am_cv_func_iconv" != yes; then + am_save_LIBS="$LIBS" + LIBS="$LIBS $LIBICONV" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +int +main () +{ +iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + am_cv_lib_iconv=yes + am_cv_func_iconv=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$am_save_LIBS" + fi + +fi +echo "$as_me:$LINENO: result: $am_cv_func_iconv" >&5 +echo "${ECHO_T}$am_cv_func_iconv" >&6 + if test "$am_cv_func_iconv" = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_ICONV 1 +_ACEOF + + fi + if test "$am_cv_lib_iconv" = yes; then + echo "$as_me:$LINENO: checking how to link with libiconv" >&5 +echo $ECHO_N "checking how to link with libiconv... $ECHO_C" >&6 + echo "$as_me:$LINENO: result: $LIBICONV" >&5 +echo "${ECHO_T}$LIBICONV" >&6 + else + CPPFLAGS="$am_save_CPPFLAGS" + LIBICONV= + LTLIBICONV= + fi + + + + if test "$am_cv_func_iconv" = yes; then + echo "$as_me:$LINENO: checking for iconv declaration" >&5 +echo $ECHO_N "checking for iconv declaration... $ECHO_C" >&6 + if test "${am_cv_proto_iconv+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +#include +#include +extern +#ifdef __cplusplus +"C" +#endif +#if defined(__STDC__) || defined(__cplusplus) +size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); +#else +size_t iconv(); +#endif + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + am_cv_proto_iconv_arg1="" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +am_cv_proto_iconv_arg1="const" +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);" +fi + + am_cv_proto_iconv=`echo "$am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` + echo "$as_me:$LINENO: result: ${ac_t:- + }$am_cv_proto_iconv" >&5 +echo "${ECHO_T}${ac_t:- + }$am_cv_proto_iconv" >&6 + +cat >>confdefs.h <<_ACEOF +#define ICONV_CONST $am_cv_proto_iconv_arg1 +_ACEOF + + fi + + + echo "$as_me:$LINENO: checking for nl_langinfo and CODESET" >&5 +echo $ECHO_N "checking for nl_langinfo and CODESET... $ECHO_C" >&6 +if test "${am_cv_langinfo_codeset+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +char* cs = nl_langinfo(CODESET); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + am_cv_langinfo_codeset=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +am_cv_langinfo_codeset=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi +echo "$as_me:$LINENO: result: $am_cv_langinfo_codeset" >&5 +echo "${ECHO_T}$am_cv_langinfo_codeset" >&6 + if test $am_cv_langinfo_codeset = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_LANGINFO_CODESET 1 +_ACEOF + + fi + + if test $ac_cv_header_locale_h = yes; then + + echo "$as_me:$LINENO: checking for LC_MESSAGES" >&5 +echo $ECHO_N "checking for LC_MESSAGES... $ECHO_C" >&6 +if test "${gt_cv_val_LC_MESSAGES+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +return LC_MESSAGES + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + gt_cv_val_LC_MESSAGES=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +gt_cv_val_LC_MESSAGES=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $gt_cv_val_LC_MESSAGES" >&5 +echo "${ECHO_T}$gt_cv_val_LC_MESSAGES" >&6 + if test $gt_cv_val_LC_MESSAGES = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_LC_MESSAGES 1 +_ACEOF + + fi + + fi + + if test -n "$INTL_MACOSX_LIBS"; then + CPPFLAGS="$CPPFLAGS -I/System/Library/Frameworks/CoreFoundation.framework/Headers" + fi + + for ac_prog in bison +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_INTLBISON+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$INTLBISON"; then + ac_cv_prog_INTLBISON="$INTLBISON" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_INTLBISON="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +INTLBISON=$ac_cv_prog_INTLBISON +if test -n "$INTLBISON"; then + echo "$as_me:$LINENO: result: $INTLBISON" >&5 +echo "${ECHO_T}$INTLBISON" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + test -n "$INTLBISON" && break +done + + if test -z "$INTLBISON"; then + ac_verc_fail=yes + else + echo "$as_me:$LINENO: checking version of bison" >&5 +echo $ECHO_N "checking version of bison... $ECHO_C" >&6 + ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'` + case $ac_prog_version in + '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; + 1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*) + ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; + *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; + esac + echo "$as_me:$LINENO: result: $ac_prog_version" >&5 +echo "${ECHO_T}$ac_prog_version" >&6 + fi + if test $ac_verc_fail = yes; then + INTLBISON=: + fi + + + + + + + + + + + + + + + + + echo "$as_me:$LINENO: checking for CFPreferencesCopyAppValue" >&5 +echo $ECHO_N "checking for CFPreferencesCopyAppValue... $ECHO_C" >&6 +if test "${gt_cv_func_CFPreferencesCopyAppValue+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + gt_save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS -I/System/Library/Frameworks/CoreFoundation.framework/Headers" + gt_save_LIBS="$LIBS" + LIBS="$LIBS -framework CoreFoundation" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +CFPreferencesCopyAppValue(NULL, NULL) + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + gt_cv_func_CFPreferencesCopyAppValue=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +gt_cv_func_CFPreferencesCopyAppValue=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CPPFLAGS="$gt_save_CPPFLAGS" + LIBS="$gt_save_LIBS" +fi +echo "$as_me:$LINENO: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5 +echo "${ECHO_T}$gt_cv_func_CFPreferencesCopyAppValue" >&6 + if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_CFPREFERENCESCOPYAPPVALUE 1 +_ACEOF + + fi + echo "$as_me:$LINENO: checking for CFLocaleCopyCurrent" >&5 +echo $ECHO_N "checking for CFLocaleCopyCurrent... $ECHO_C" >&6 +if test "${gt_cv_func_CFLocaleCopyCurrent+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + gt_save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS -I/System/Library/Frameworks/CoreFoundation.framework/Headers" + gt_save_LIBS="$LIBS" + LIBS="$LIBS -framework CoreFoundation" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +CFLocaleCopyCurrent(); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + gt_cv_func_CFLocaleCopyCurrent=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +gt_cv_func_CFLocaleCopyCurrent=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CPPFLAGS="$gt_save_CPPFLAGS" + LIBS="$gt_save_LIBS" +fi +echo "$as_me:$LINENO: result: $gt_cv_func_CFLocaleCopyCurrent" >&5 +echo "${ECHO_T}$gt_cv_func_CFLocaleCopyCurrent" >&6 + if test $gt_cv_func_CFLocaleCopyCurrent = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_CFLOCALECOPYCURRENT 1 +_ACEOF + + fi + INTL_MACOSX_LIBS= + if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then + INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" + fi + + + + + echo "$as_me:$LINENO: checking whether NLS is requested" >&5 +echo $ECHO_N "checking whether NLS is requested... $ECHO_C" >&6 + # Check whether --enable-nls or --disable-nls was given. +if test "${enable_nls+set}" = set; then + enableval="$enable_nls" + USE_NLS=$enableval +else + USE_NLS=yes +fi; + echo "$as_me:$LINENO: result: $USE_NLS" >&5 +echo "${ECHO_T}$USE_NLS" >&6 + + + + + BUILD_INCLUDED_LIBINTL=no + USE_INCLUDED_LIBINTL=no + + LIBINTL= + LTLIBINTL= + POSUB= + + if test "$USE_NLS" = "yes"; then + gt_use_preinstalled_gnugettext=no + + echo "$as_me:$LINENO: checking whether included gettext is requested" >&5 +echo $ECHO_N "checking whether included gettext is requested... $ECHO_C" >&6 + +# Check whether --with-included-gettext or --without-included-gettext was given. +if test "${with_included_gettext+set}" = set; then + withval="$with_included_gettext" + nls_cv_force_use_gnu_gettext=$withval +else + nls_cv_force_use_gnu_gettext=no +fi; + echo "$as_me:$LINENO: result: $nls_cv_force_use_gnu_gettext" >&5 +echo "${ECHO_T}$nls_cv_force_use_gnu_gettext" >&6 + + nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" + if test "$nls_cv_force_use_gnu_gettext" != "yes"; then + + + + + + + echo "$as_me:$LINENO: checking for GNU gettext in libc" >&5 +echo $ECHO_N "checking for GNU gettext in libc... $ECHO_C" >&6 +if test "${gt_cv_func_gnugettext1_libc+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +extern int _nl_msg_cat_cntr; +extern int *_nl_domain_bindings; +int +main () +{ +bindtextdomain ("", ""); +return * gettext ("") + _nl_msg_cat_cntr + *_nl_domain_bindings + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + gt_cv_func_gnugettext1_libc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +gt_cv_func_gnugettext1_libc=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $gt_cv_func_gnugettext1_libc" >&5 +echo "${ECHO_T}$gt_cv_func_gnugettext1_libc" >&6 + + if test "$gt_cv_func_gnugettext1_libc" != "yes"; then + + + + use_additional=yes + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + +# Check whether --with-libintl-prefix or --without-libintl-prefix was given. +if test "${with_libintl_prefix+set}" = set; then + withval="$with_libintl_prefix" + + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + else + additional_includedir="$withval/include" + additional_libdir="$withval/lib" + fi + fi + +fi; + LIBINTL= + LTLIBINTL= + INCINTL= + rpathdirs= + ltrpathdirs= + names_already_handled= + names_next_round='intl ' + while test -n "$names_next_round"; do + names_this_round="$names_next_round" + names_next_round= + for name in $names_this_round; do + already_handled= + for n in $names_already_handled; do + if test "$n" = "$name"; then + already_handled=yes + break + fi + done + if test -z "$already_handled"; then + names_already_handled="$names_already_handled $name" + uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` + eval value=\"\$HAVE_LIB$uppername\" + if test -n "$value"; then + if test "$value" = yes; then + eval value=\"\$LIB$uppername\" + test -z "$value" || LIBINTL="${LIBINTL}${LIBINTL:+ }$value" + eval value=\"\$LTLIB$uppername\" + test -z "$value" || LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$value" + else + : + fi + else + found_dir= + found_la= + found_so= + found_a= + if test $use_additional = yes; then + if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then + found_dir="$additional_libdir" + found_so="$additional_libdir/lib$name.$shlibext" + if test -f "$additional_libdir/lib$name.la"; then + found_la="$additional_libdir/lib$name.la" + fi + else + if test -f "$additional_libdir/lib$name.$libext"; then + found_dir="$additional_libdir" + found_a="$additional_libdir/lib$name.$libext" + if test -f "$additional_libdir/lib$name.la"; then + found_la="$additional_libdir/lib$name.la" + fi + fi + fi + fi + if test "X$found_dir" = "X"; then + for x in $LDFLAGS $LTLIBINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + case "$x" in + -L*) + dir=`echo "X$x" | sed -e 's/^X-L//'` + if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then + found_dir="$dir" + found_so="$dir/lib$name.$shlibext" + if test -f "$dir/lib$name.la"; then + found_la="$dir/lib$name.la" + fi + else + if test -f "$dir/lib$name.$libext"; then + found_dir="$dir" + found_a="$dir/lib$name.$libext" + if test -f "$dir/lib$name.la"; then + found_la="$dir/lib$name.la" + fi + fi + fi + ;; + esac + if test "X$found_dir" != "X"; then + break + fi + done + fi + if test "X$found_dir" != "X"; then + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$found_dir -l$name" + if test "X$found_so" != "X"; then + if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" + else + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $found_dir" + fi + if test "$hardcode_direct" = yes; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" + else + if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $found_dir" + fi + else + haveit= + for x in $LDFLAGS $LIBINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir" + fi + if test "$hardcode_minus_L" != no; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" + else + LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" + fi + fi + fi + fi + else + if test "X$found_a" != "X"; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_a" + else + LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir -l$name" + fi + fi + additional_includedir= + case "$found_dir" in + */lib | */lib/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'` + additional_includedir="$basedir/include" + ;; + esac + if test "X$additional_includedir" != "X"; then + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + for x in $CPPFLAGS $INCINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + INCINTL="${INCINTL}${INCINTL:+ }-I$additional_includedir" + fi + fi + fi + fi + fi + if test -n "$found_la"; then + save_libdir="$libdir" + case "$found_la" in + */* | *\\*) . "$found_la" ;; + *) . "./$found_la" ;; + esac + libdir="$save_libdir" + for dep in $dependency_libs; do + case "$dep" in + -L*) + additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` + if test "X$additional_libdir" != "X/usr/lib"; then + haveit= + if test "X$additional_libdir" = "X/usr/local/lib"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + haveit= + for x in $LDFLAGS $LIBINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + LIBINTL="${LIBINTL}${LIBINTL:+ }-L$additional_libdir" + fi + fi + haveit= + for x in $LDFLAGS $LTLIBINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$additional_libdir" + fi + fi + fi + fi + ;; + -R*) + dir=`echo "X$dep" | sed -e 's/^X-R//'` + if test "$enable_rpath" != no; then + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $dir" + fi + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $dir" + fi + fi + ;; + -l*) + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` + ;; + *.la) + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` + ;; + *) + LIBINTL="${LIBINTL}${LIBINTL:+ }$dep" + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$dep" + ;; + esac + done + fi + else + LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-l$name" + fi + fi + fi + done + done + if test "X$rpathdirs" != "X"; then + if test -n "$hardcode_libdir_separator"; then + alldirs= + for found_dir in $rpathdirs; do + alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir" + done + acl_save_libdir="$libdir" + libdir="$alldirs" + eval flag=\"$hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" + else + for found_dir in $rpathdirs; do + acl_save_libdir="$libdir" + libdir="$found_dir" + eval flag=\"$hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" + done + fi + fi + if test "X$ltrpathdirs" != "X"; then + for found_dir in $ltrpathdirs; do + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-R$found_dir" + done + fi + + echo "$as_me:$LINENO: checking for GNU gettext in libintl" >&5 +echo $ECHO_N "checking for GNU gettext in libintl... $ECHO_C" >&6 +if test "${gt_cv_func_gnugettext1_libintl+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + gt_save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $INCINTL" + gt_save_LIBS="$LIBS" + LIBS="$LIBS $LIBINTL" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +extern int _nl_msg_cat_cntr; +extern +#ifdef __cplusplus +"C" +#endif +const char *_nl_expand_alias (const char *); +int +main () +{ +bindtextdomain ("", ""); +return * gettext ("") + _nl_msg_cat_cntr + *_nl_expand_alias ("") + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + gt_cv_func_gnugettext1_libintl=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +gt_cv_func_gnugettext1_libintl=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test "$gt_cv_func_gnugettext1_libintl" != yes && test -n "$LIBICONV"; then + LIBS="$LIBS $LIBICONV" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +extern int _nl_msg_cat_cntr; +extern +#ifdef __cplusplus +"C" +#endif +const char *_nl_expand_alias (const char *); +int +main () +{ +bindtextdomain ("", ""); +return * gettext ("") + _nl_msg_cat_cntr + *_nl_expand_alias ("") + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + LIBINTL="$LIBINTL $LIBICONV" + LTLIBINTL="$LTLIBINTL $LTLIBICONV" + gt_cv_func_gnugettext1_libintl=yes + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + fi + CPPFLAGS="$gt_save_CPPFLAGS" + LIBS="$gt_save_LIBS" +fi +echo "$as_me:$LINENO: result: $gt_cv_func_gnugettext1_libintl" >&5 +echo "${ECHO_T}$gt_cv_func_gnugettext1_libintl" >&6 + fi + + if test "$gt_cv_func_gnugettext1_libc" = "yes" \ + || { test "$gt_cv_func_gnugettext1_libintl" = "yes" \ + && test "$PACKAGE" != gettext-runtime \ + && test "$PACKAGE" != gettext-tools; }; then + gt_use_preinstalled_gnugettext=yes + else + LIBINTL= + LTLIBINTL= + INCINTL= + fi + + + if test "$gt_use_preinstalled_gnugettext" != "yes"; then + nls_cv_use_gnu_gettext=yes + fi + fi + + if test "$nls_cv_use_gnu_gettext" = "yes"; then + BUILD_INCLUDED_LIBINTL=yes + USE_INCLUDED_LIBINTL=yes + LIBINTL="\${top_builddir}/intl/libintl.a $LIBICONV" + LTLIBINTL="\${top_builddir}/intl/libintl.a $LTLIBICONV" + LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` + fi + + CATOBJEXT= + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + CATOBJEXT=.gmo + fi + + + if test -n "$INTL_MACOSX_LIBS"; then + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" + LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" + fi + fi + + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + +cat >>confdefs.h <<\_ACEOF +#define ENABLE_NLS 1 +_ACEOF + + else + USE_NLS=no + fi + fi + + echo "$as_me:$LINENO: checking whether to use NLS" >&5 +echo $ECHO_N "checking whether to use NLS... $ECHO_C" >&6 + echo "$as_me:$LINENO: result: $USE_NLS" >&5 +echo "${ECHO_T}$USE_NLS" >&6 + if test "$USE_NLS" = "yes"; then + echo "$as_me:$LINENO: checking where the gettext function comes from" >&5 +echo $ECHO_N "checking where the gettext function comes from... $ECHO_C" >&6 + if test "$gt_use_preinstalled_gnugettext" = "yes"; then + if test "$gt_cv_func_gnugettext1_libintl" = "yes"; then + gt_source="external libintl" + else + gt_source="libc" + fi + else + gt_source="included intl directory" + fi + echo "$as_me:$LINENO: result: $gt_source" >&5 +echo "${ECHO_T}$gt_source" >&6 + fi + + if test "$USE_NLS" = "yes"; then + + if test "$gt_use_preinstalled_gnugettext" = "yes"; then + if test "$gt_cv_func_gnugettext1_libintl" = "yes"; then + echo "$as_me:$LINENO: checking how to link with libintl" >&5 +echo $ECHO_N "checking how to link with libintl... $ECHO_C" >&6 + echo "$as_me:$LINENO: result: $LIBINTL" >&5 +echo "${ECHO_T}$LIBINTL" >&6 + + for element in $INCINTL; do + haveit= + for x in $CPPFLAGS; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X$element"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" + fi + done + + fi + + +cat >>confdefs.h <<\_ACEOF +#define HAVE_GETTEXT 1 +_ACEOF + + +cat >>confdefs.h <<\_ACEOF +#define HAVE_DCGETTEXT 1 +_ACEOF + + fi + + POSUB=po + fi + + + if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then + BUILD_INCLUDED_LIBINTL=yes + fi + + + + + + nls_cv_header_intl= + nls_cv_header_libgt= + + DATADIRNAME=share + + + INSTOBJEXT=.mo + + + GENCAT=gencat + + + INTLOBJS= + if test "$USE_INCLUDED_LIBINTL" = yes; then + INTLOBJS="\$(GETTOBJS)" + fi + + + INTL_LIBTOOL_SUFFIX_PREFIX= + + + + INTLLIBS="$LIBINTL" + + + + + + +fi + + +support_mysql=no +support_sqlite=no +support_sqlite3=no +support_postgresql=no +support_smartalloc=yes +support_readline=yes +support_conio=yes +support_gnome=no +support_bat=no +support_wx_console=no +support_tls=no +support_crypto=no +gnome_version= +wx_version= +support_static_tools=no +support_static_fd=no +support_static_sd=no +support_static_dir=no +support_static_cons=no +support_python=no +build_client_only=no +build_dird=yes +build_stored=yes +cats= +db_type=Internal +DB_TYPE=bdb + + +# ------------------------------------------- +# gnome (default off) +# ------------------------------------------- +# Check whether --enable-gnome or --disable-gnome was given. +if test "${enable_gnome+set}" = set; then + enableval="$enable_gnome" + if test x$enableval = xyes; then + support_gnome=yes + fi +fi; + +GNOME_DIR= +if test x$support_gnome = xyes; then + abc=`$PKGCONFIG --exists libgnomeui-2.0` + pkg=$? + if test $pkg = 0; then + GNOME_INCLUDEDIR=`$PKGCONFIG --cflags-only-I libgnomeui-2.0` + GNOMEUI_LIBS=`$PKGCONFIG --libs-only-l libgnomeui-2.0` + GNOME_LIBDIR=`$PKGCONFIG --libs libgnomeui-2.0` + GNOME_LIBS=`$PKGCONFIG --libs-only-l libgnomeui-2.0` + + + + + GNOME_DIR=src/gnome2-console + gnome_version="Version 2.x" + else + { { echo "$as_me:$LINENO: error: Unable to find Gnome 2 installation" >&5 +echo "$as_me: error: Unable to find Gnome 2 installation" >&2;} + { (exit 1); exit 1; }; } + fi +fi + + +# ------------------------------------------- +# bat (default off) +# ------------------------------------------- +# Check whether --enable-bat or --disable-bat was given. +if test "${enable_bat+set}" = set; then + enableval="$enable_bat" + if test x$enableval = xyes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_BAT 1 +_ACEOF + + support_bat=yes + fi +fi; + +BAT_DIR= +if test x$support_bat = xyes; then + abc=`$PKGCONFIG --atleast-version=4.2 QtGui` + pkg=$? + if test $pkg = 0; then + BAT_DIR=src/qt-console + else + { { echo "$as_me:$LINENO: error: Unable to find Qt4 installation needed by bat" >&5 +echo "$as_me: error: Unable to find Qt4 installation needed by bat" >&2;} + { (exit 1); exit 1; }; } + fi +fi + +# +# If bat is enabled, we need the qwt library +got_qwt=no +QWT_INC= +QWT_LDFLAGS= +if test x$support_bat = xyes; then + echo "$as_me:$LINENO: checking for qwt support" >&5 +echo $ECHO_N "checking for qwt support... $ECHO_C" >&6 + +# Check whether --with-qwt or --without-qwt was given. +if test "${with_qwt+set}" = set; then + withval="$with_qwt" + + case "$with_qwt" in + no) + ;; + yes|*) + if test -f ${with_qwt}/include/qwt.h; then + QWT_INC="${with_qwt}/include" + QWT_LDFLAGS="-L${with_qwt}/lib" + fi + ;; + esac + + +fi; +# +# Search in standard places, or --with-qwt not specified +# + if test x$QWT_INC = x; then + for root in /usr /usr/local; do + for ver in qwt qwt5 qwt-qt4; do + if test -f ${root}/include/${ver}/qwt.h; then + QWT_INC="${root}/include/${ver}" + if test -d ${root}/lib64/; then + QWT_LDFLAGS="-L${root}/lib64" + else + QWT_LDFLAGS="-L${root}/lib" + fi + got_qwt=yes + break; + fi + done + done + fi + if test x$QWT_INC = x; then + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + { { echo "$as_me:$LINENO: error: Unable to find qwt package needed by bat" >&5 +echo "$as_me: error: Unable to find qwt package needed by bat" >&2;} + { (exit 1); exit 1; }; } + BAT_DIR= + support_bat=no + else + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + fi +fi + + + + + + +# ------------------------------------------- +# bwx-console (default off) +# ------------------------------------------- +# Check whether --enable-bwx-console or --disable-bwx-console was given. +if test "${enable_bwx_console+set}" = set; then + enableval="$enable_bwx_console" + if test x$enableval = xyes; then + support_wx_console=yes + fi +fi; + +WX_DIR= +if test x$support_wx_console = xyes; then + abc=`$WXCONFIG $WXFLAGS --cppflags` + pkg=$? + if test $pkg = 0; then + wx_version="wxWidgets `$WXCONFIG $WXFLAGS --release`" + WXCONS_CPPFLAGS=`$WXCONFIG $WXFLAGS --cppflags` + WXCONS_LDFLAGS=`$WXCONFIG $WXFLAGS --libs` + + + + WX_DIR=src/wx-console + else + echo " " + echo "wx-config program not found. bwx-console disabled." + echo " " + support_wx_console=no + fi +fi + + + +# ------------------------------------------- +# tray-monitor (default off) +# ------------------------------------------- +# Check whether --enable-tray-monitor or --disable-tray-monitor was given. +if test "${enable_tray_monitor+set}" = set; then + enableval="$enable_tray_monitor" + if test x$enableval = xyes; then + support_tray_monitor=yes + fi +fi; + +TRAY_MONITOR_DIR= +if test x$support_tray_monitor = xyes; then + abc=`$PKGCONFIG --exists gtk+-2.0` + pkg=$? + if test $pkg = 0; then + TRAY_MONITOR_CPPFLAGS=`$PKGCONFIG --cflags gtk+-2.0` + TRAY_MONITOR_LDFLAGS=`$PKGCONFIG --libs gtk+-2.0` + + + TRAY_MONITOR_DIR=src/tray-monitor + abc=`$PKGCONFIG --atleast-version=2.4 gtk+-2.0` + pkg=$? + if test $pkg = 0; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_GTK_2_4 1 +_ACEOF + + fi + fi +fi + + +# ------------------------------------------- +# smartalloc (default off) +# ------------------------------------------- +# Check whether --enable-smartalloc or --disable-smartalloc was given. +if test "${enable_smartalloc+set}" = set; then + enableval="$enable_smartalloc" + if test x$enableval = xno; then + support_smartalloc=no + fi +fi; + +if test x$support_smartalloc = xyes; then + +cat >>confdefs.h <<\_ACEOF +#define SMARTALLOC 1 +_ACEOF + +fi + +# ------------------------------------------- +# static-tools (default off) +# ------------------------------------------- +# Check whether --enable-static-tools or --disable-static-tools was given. +if test "${enable_static_tools+set}" = set; then + enableval="$enable_static_tools" + if test x$enableval = xyes; then + support_static_tools=yes + fi +fi; + +TTOOL_LDFLAGS= +if test x$support_static_tools = xyes; then + TTOOL_LDFLAGS="-static" +fi + + +# ------------------------------------------- +# static-fd (default off) +# ------------------------------------------- +# Check whether --enable-static-fd or --disable-static-fd was given. +if test "${enable_static_fd+set}" = set; then + enableval="$enable_static_fd" + if test x$enableval = xyes; then + support_static_fd=yes + fi +fi; + +STATIC_FD= +if test x$support_static_fd = xyes; then + STATIC_FD="static-bacula-fd" +fi + + +# ------------------------------------------- +# static-sd (default off) +# ------------------------------------------- +# Check whether --enable-static-sd or --disable-static-sd was given. +if test "${enable_static_sd+set}" = set; then + enableval="$enable_static_sd" + if test x$enableval = xyes; then + support_static_sd=yes + fi +fi; + +STATIC_SD= +if test x$support_static_sd = xyes; then + STATIC_SD="static-bacula-sd" +fi + + +# ------------------------------------------- +# static-dir (default off) +# ------------------------------------------- +# Check whether --enable-static-dir or --disable-static-dir was given. +if test "${enable_static_dir+set}" = set; then + enableval="$enable_static_dir" + if test x$enableval = xyes; then + support_static_dir=yes + fi +fi; + +STATIC_DIR= +if test x$support_static_dir = xyes; then + STATIC_DIR="static-bacula-dir" +fi + + +# ------------------------------------------- +# static-cons (default off) +# ------------------------------------------- +# Check whether --enable-static-cons or --disable-static-cons was given. +if test "${enable_static_cons+set}" = set; then + enableval="$enable_static_cons" + if test x$enableval = xyes; then + support_static_cons=yes + fi +fi; + +STATIC_CONS= +STATIC_GNOME_CONS= +STATIC_WX_CONS= +if test x$support_static_cons = xyes; then + STATIC_CONS="static-bconsole" + STATIC_GNOME_CONS="static-bgnome-console" + STATIC_WX_CONS="static-bwx-console" +fi + + + + +# ------------------------------------------- +# client_only (default off) +# ------------------------------------------- +# Check whether --enable-client-only or --disable-client-only was given. +if test "${enable_client_only+set}" = set; then + enableval="$enable_client_only" + if test x$enableval = xyes; then + build_client_only=yes + db_type=None + DB_TYPE=none + fi +fi; +if test x$build_client_only = xno; then + ALL_DIRS="subdirs" +else + ALL_DIRS="" +fi + + +# ------------------------------------------- +# director (default on) +# ------------------------------------------- +# Check whether --enable-build-dird or --disable-build-dird was given. +if test "${enable_build_dird+set}" = set; then + enableval="$enable_build_dird" + if test x$enableval = xno; then + build_dird=no + fi +fi; +if test x$build_dird = xyes; then + DIRD_DIR="src/dird" + DIR_TOOLS="DIRTOOLS" +else + DIRD_DIR="" + DIR_TOOLS="NODIRTOOLS" +fi + + + +# ------------------------------------------- +# stored (default on) +# ------------------------------------------- +# Check whether --enable-build-stored or --disable-build-stored was given. +if test "${enable_build_stored+set}" = set; then + enableval="$enable_build_stored" + if test x$enableval = xno; then + build_stored=no + fi +fi; +if test x$build_stored = xyes; then + STORED_DIR="src/stored" +else + STORED_DIR="" +fi + + +# --------------------------------------------------- +# Check for conio (Bacula readline substitute)( +# --------------------------------------------------- +# this allows you to turn it completely off +# Check whether --enable-conio or --disable-conio was given. +if test "${enable_conio+set}" = set; then + enableval="$enable_conio" + if test x$enableval = xno; then + support_conio=no + fi + +fi; + + +# --------------------------------------------------- +# Check for IPv6 support +# --------------------------------------------------- +# this allows you to turn it completely off +support_ipv6=yes +# Check whether --enable-ipv6 or --disable-ipv6 was given. +if test "${enable_ipv6+set}" = set; then + enableval="$enable_ipv6" + if test x$enableval = xno; then + support_ipv6=no + fi + +fi; + +if test x$support_ipv6 = xyes; then + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + #include +#include +#include +int +main () +{ +struct sockaddr_in6 s; struct in6_addr t=in6addr_any; int i=AF_INET6; s; t.s6_addr[0] = 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + support_ipv6=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +support_ipv6=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + +if test x$support_ipv6 = xyes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_IPV6 1 +_ACEOF + +fi + + + +got_conio="no" +if test x$support_conio = xyes; then + if test "${ac_cv_header_termcap_h+set}" = set; then + echo "$as_me:$LINENO: checking for termcap.h" >&5 +echo $ECHO_N "checking for termcap.h... $ECHO_C" >&6 +if test "${ac_cv_header_termcap_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: $ac_cv_header_termcap_h" >&5 +echo "${ECHO_T}$ac_cv_header_termcap_h" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking termcap.h usability" >&5 +echo $ECHO_N "checking termcap.h usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_header_compiler=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking termcap.h presence" >&5 +echo $ECHO_N "checking termcap.h presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: termcap.h: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: termcap.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: termcap.h: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: termcap.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: termcap.h: present but cannot be compiled" >&5 +echo "$as_me: WARNING: termcap.h: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: termcap.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: termcap.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: termcap.h: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: termcap.h: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: termcap.h: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: termcap.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: termcap.h: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: termcap.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: termcap.h: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: termcap.h: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for termcap.h" >&5 +echo $ECHO_N "checking for termcap.h... $ECHO_C" >&6 +if test "${ac_cv_header_termcap_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_header_termcap_h=$ac_header_preproc +fi +echo "$as_me:$LINENO: result: $ac_cv_header_termcap_h" >&5 +echo "${ECHO_T}$ac_cv_header_termcap_h" >&6 + +fi +if test $ac_cv_header_termcap_h = yes; then + echo "$as_me:$LINENO: checking for tgetent in -ltermcap" >&5 +echo $ECHO_N "checking for tgetent in -ltermcap... $ECHO_C" >&6 +if test "${ac_cv_lib_termcap_tgetent+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ltermcap $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char tgetent (); +int +main () +{ +tgetent (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_termcap_tgetent=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_termcap_tgetent=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_termcap_tgetent" >&5 +echo "${ECHO_T}$ac_cv_lib_termcap_tgetent" >&6 +if test $ac_cv_lib_termcap_tgetent = yes; then + CONS_LIBS="-ltermcap" + CONS_OBJ="conio.o" + CONS_SRC="conio.c" + got_conio="yes" + support_readline=no + +cat >>confdefs.h <<\_ACEOF +#define HAVE_CONIO 1 +_ACEOF + + +else + echo "$as_me:$LINENO: checking for tgetent in -lncurses" >&5 +echo $ECHO_N "checking for tgetent in -lncurses... $ECHO_C" >&6 +if test "${ac_cv_lib_ncurses_tgetent+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lncurses $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char tgetent (); +int +main () +{ +tgetent (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_ncurses_tgetent=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_ncurses_tgetent=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_ncurses_tgetent" >&5 +echo "${ECHO_T}$ac_cv_lib_ncurses_tgetent" >&6 +if test $ac_cv_lib_ncurses_tgetent = yes; then + CONS_LIBS="-lncurses" + CONS_OBJ="conio.o" + CONS_SRC="conio.c" + got_conio="yes" + support_readline=no + +cat >>confdefs.h <<\_ACEOF +#define HAVE_CONIO 1 +_ACEOF + + +fi + + +fi + + +else + + +for ac_header in curses.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_header_compiler=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + echo "$as_me:$LINENO: checking for term.h" >&5 +echo $ECHO_N "checking for term.h... $ECHO_C" >&6 +if test "${ac_cv_header_term_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#if HAVE_CURSES_H +#include +#endif + + +#include +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_header_term_h=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_header_term_h=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_header_term_h" >&5 +echo "${ECHO_T}$ac_cv_header_term_h" >&6 +if test $ac_cv_header_term_h = yes; then + echo "$as_me:$LINENO: checking for tgetent in -lcurses" >&5 +echo $ECHO_N "checking for tgetent in -lcurses... $ECHO_C" >&6 +if test "${ac_cv_lib_curses_tgetent+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lcurses $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char tgetent (); +int +main () +{ +tgetent (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_curses_tgetent=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_curses_tgetent=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_curses_tgetent" >&5 +echo "${ECHO_T}$ac_cv_lib_curses_tgetent" >&6 +if test $ac_cv_lib_curses_tgetent = yes; then + CONS_LIBS="-lcurses" + CONS_OBJ="conio.o" + CONS_SRC="conio.c" + got_conio="yes" + support_readline=no + +cat >>confdefs.h <<\_ACEOF +#define HAVE_CONIO 1 +_ACEOF + + +fi + + +else + echo " "; echo "Required libraries not found. CONIO turned off ..."; echo " " +fi + + + +fi + + +fi + + +# --------------------------------------------------- +# Check for readline support/directory (default off) +# --------------------------------------------------- +# this allows you to turn it completely off +# Check whether --enable-readline or --disable-readline was given. +if test "${enable_readline+set}" = set; then + enableval="$enable_readline" + if test x$enableval = xno; then + support_readline=no + fi +fi; + +got_readline="no" +READLINE_SRC= +if test x$support_readline = xyes; then + +# Check whether --with-readline or --without-readline was given. +if test "${with_readline+set}" = set; then + withval="$with_readline" + + case "$with_readline" in + no) : ;; + yes|*) + if test -f ${with_readline}/readline.h; then + CONS_INC="-I${with_readline}" + CONS_LDFLAGS="-L$with_readline" + elif test -f ${with_readline}/include/readline/readline.h; then + CONS_INC="-I${with_readline}/include/readline" + CONS_LDFLAGS="-L${with_readline}/lib" + with_readline="${with_readline}/include/readline" + else + with_readline="/usr/include/readline" + fi + as_ac_Header=`echo "ac_cv_header_${with_readline}/readline.h" | $as_tr_sh` +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo "$as_me:$LINENO: checking for ${with_readline}/readline.h" >&5 +echo $ECHO_N "checking for ${with_readline}/readline.h... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking ${with_readline}/readline.h usability" >&5 +echo $ECHO_N "checking ${with_readline}/readline.h usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <${with_readline}/readline.h> +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_header_compiler=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking ${with_readline}/readline.h presence" >&5 +echo $ECHO_N "checking ${with_readline}/readline.h presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <${with_readline}/readline.h> +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: ${with_readline}/readline.h: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: ${with_readline}/readline.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: ${with_readline}/readline.h: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: ${with_readline}/readline.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: ${with_readline}/readline.h: present but cannot be compiled" >&5 +echo "$as_me: WARNING: ${with_readline}/readline.h: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: ${with_readline}/readline.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: ${with_readline}/readline.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: ${with_readline}/readline.h: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: ${with_readline}/readline.h: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: ${with_readline}/readline.h: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: ${with_readline}/readline.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: ${with_readline}/readline.h: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: ${with_readline}/readline.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: ${with_readline}/readline.h: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: ${with_readline}/readline.h: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for ${with_readline}/readline.h" >&5 +echo $ECHO_N "checking for ${with_readline}/readline.h... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_READLINE 1 +_ACEOF + + CONS_LIBS="-lreadline -lhistory -ltermcap" + got_readline="yes" + +else + echo " " + echo "readline.h not found. readline turned off ..." + echo " " + + +fi + + + ;; + esac + +else + + # check for standard readline library + if test "${ac_cv_header__usr_include_readline_readline_h+set}" = set; then + echo "$as_me:$LINENO: checking for /usr/include/readline/readline.h" >&5 +echo $ECHO_N "checking for /usr/include/readline/readline.h... $ECHO_C" >&6 +if test "${ac_cv_header__usr_include_readline_readline_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: $ac_cv_header__usr_include_readline_readline_h" >&5 +echo "${ECHO_T}$ac_cv_header__usr_include_readline_readline_h" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking /usr/include/readline/readline.h usability" >&5 +echo $ECHO_N "checking /usr/include/readline/readline.h usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_header_compiler=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking /usr/include/readline/readline.h presence" >&5 +echo $ECHO_N "checking /usr/include/readline/readline.h presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: /usr/include/readline/readline.h: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: /usr/include/readline/readline.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: /usr/include/readline/readline.h: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: /usr/include/readline/readline.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: /usr/include/readline/readline.h: present but cannot be compiled" >&5 +echo "$as_me: WARNING: /usr/include/readline/readline.h: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: /usr/include/readline/readline.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: /usr/include/readline/readline.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: /usr/include/readline/readline.h: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: /usr/include/readline/readline.h: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: /usr/include/readline/readline.h: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: /usr/include/readline/readline.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: /usr/include/readline/readline.h: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: /usr/include/readline/readline.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: /usr/include/readline/readline.h: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: /usr/include/readline/readline.h: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for /usr/include/readline/readline.h" >&5 +echo $ECHO_N "checking for /usr/include/readline/readline.h... $ECHO_C" >&6 +if test "${ac_cv_header__usr_include_readline_readline_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_header__usr_include_readline_readline_h=$ac_header_preproc +fi +echo "$as_me:$LINENO: result: $ac_cv_header__usr_include_readline_readline_h" >&5 +echo "${ECHO_T}$ac_cv_header__usr_include_readline_readline_h" >&6 + +fi +if test $ac_cv_header__usr_include_readline_readline_h = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_READLINE 1 +_ACEOF + + got_readline="yes" + CONS_INC="-I/usr/include/readline" + CONS_LIBS="-lreadline -ltermcap" + +else + + # Did not find standard library, so try Bacula's default + as_ac_Header=`echo "ac_cv_header_${TOP_DIR}/depkgs/readline/readline.h" | $as_tr_sh` +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo "$as_me:$LINENO: checking for ${TOP_DIR}/depkgs/readline/readline.h" >&5 +echo $ECHO_N "checking for ${TOP_DIR}/depkgs/readline/readline.h... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking ${TOP_DIR}/depkgs/readline/readline.h usability" >&5 +echo $ECHO_N "checking ${TOP_DIR}/depkgs/readline/readline.h usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <${TOP_DIR}/depkgs/readline/readline.h> +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_header_compiler=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking ${TOP_DIR}/depkgs/readline/readline.h presence" >&5 +echo $ECHO_N "checking ${TOP_DIR}/depkgs/readline/readline.h presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <${TOP_DIR}/depkgs/readline/readline.h> +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: ${TOP_DIR}/depkgs/readline/readline.h: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: ${TOP_DIR}/depkgs/readline/readline.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: ${TOP_DIR}/depkgs/readline/readline.h: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: ${TOP_DIR}/depkgs/readline/readline.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: ${TOP_DIR}/depkgs/readline/readline.h: present but cannot be compiled" >&5 +echo "$as_me: WARNING: ${TOP_DIR}/depkgs/readline/readline.h: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: ${TOP_DIR}/depkgs/readline/readline.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: ${TOP_DIR}/depkgs/readline/readline.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: ${TOP_DIR}/depkgs/readline/readline.h: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: ${TOP_DIR}/depkgs/readline/readline.h: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: ${TOP_DIR}/depkgs/readline/readline.h: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: ${TOP_DIR}/depkgs/readline/readline.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: ${TOP_DIR}/depkgs/readline/readline.h: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: ${TOP_DIR}/depkgs/readline/readline.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: ${TOP_DIR}/depkgs/readline/readline.h: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: ${TOP_DIR}/depkgs/readline/readline.h: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for ${TOP_DIR}/depkgs/readline/readline.h" >&5 +echo $ECHO_N "checking for ${TOP_DIR}/depkgs/readline/readline.h... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_READLINE 1 +_ACEOF + + got_readline="yes" + CONS_INC="-I${TOP_DIR}/depkgs/readline" + CONS_LIBS="-lreadline -lhistory -ltermcap" + CONS_LDFLAGS="-L${TOP_DIR}/depkgs/readline" + PRTREADLINE_SRC="${TOP_DIR}/depkgs/readline" + +else + echo " " + echo "readline.h not found. readline turned off ..." + echo " " + + +fi + + + + +fi + + + + +fi; +fi + + + + + + + + + + +# Minimal stuff for readline Makefile configuration +MAKE_SHELL=/bin/sh + +echo "$as_me:$LINENO: checking whether stat file-mode macros are broken" >&5 +echo $ECHO_N "checking whether stat file-mode macros are broken... $ECHO_C" >&6 +if test "${ac_cv_header_stat_broken+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include + +#if defined(S_ISBLK) && defined(S_IFDIR) +# if S_ISBLK (S_IFDIR) +You lose. +# endif +#endif + +#if defined(S_ISBLK) && defined(S_IFCHR) +# if S_ISBLK (S_IFCHR) +You lose. +# endif +#endif + +#if defined(S_ISLNK) && defined(S_IFREG) +# if S_ISLNK (S_IFREG) +You lose. +# endif +#endif + +#if defined(S_ISSOCK) && defined(S_IFREG) +# if S_ISSOCK (S_IFREG) +You lose. +# endif +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "You lose" >/dev/null 2>&1; then + ac_cv_header_stat_broken=yes +else + ac_cv_header_stat_broken=no +fi +rm -f conftest* + +fi +echo "$as_me:$LINENO: result: $ac_cv_header_stat_broken" >&5 +echo "${ECHO_T}$ac_cv_header_stat_broken" >&6 +if test $ac_cv_header_stat_broken = yes; then + +cat >>confdefs.h <<\_ACEOF +#define STAT_MACROS_BROKEN 1 +_ACEOF + +fi + + + + + + +ac_header_dirent=no +for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do + as_ac_Header=`echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_hdr that defines DIR" >&5 +echo $ECHO_N "checking for $ac_hdr that defines DIR... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include <$ac_hdr> + +int +main () +{ +if ((DIR *) 0) +return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_Header=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +eval "$as_ac_Header=no" +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_hdr" | $as_tr_cpp` 1 +_ACEOF + +ac_header_dirent=$ac_hdr; break +fi + +done +# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. +if test $ac_header_dirent = dirent.h; then + echo "$as_me:$LINENO: checking for library containing opendir" >&5 +echo $ECHO_N "checking for library containing opendir... $ECHO_C" >&6 +if test "${ac_cv_search_opendir+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_func_search_save_LIBS=$LIBS +ac_cv_search_opendir=no +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char opendir (); +int +main () +{ +opendir (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_search_opendir="none required" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +if test "$ac_cv_search_opendir" = no; then + for ac_lib in dir; do + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char opendir (); +int +main () +{ +opendir (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_search_opendir="-l$ac_lib" +break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + done +fi +LIBS=$ac_func_search_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5 +echo "${ECHO_T}$ac_cv_search_opendir" >&6 +if test "$ac_cv_search_opendir" != no; then + test "$ac_cv_search_opendir" = "none required" || LIBS="$ac_cv_search_opendir $LIBS" + +fi + +else + echo "$as_me:$LINENO: checking for library containing opendir" >&5 +echo $ECHO_N "checking for library containing opendir... $ECHO_C" >&6 +if test "${ac_cv_search_opendir+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_func_search_save_LIBS=$LIBS +ac_cv_search_opendir=no +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char opendir (); +int +main () +{ +opendir (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_search_opendir="none required" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +if test "$ac_cv_search_opendir" = no; then + for ac_lib in x; do + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char opendir (); +int +main () +{ +opendir (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_search_opendir="-l$ac_lib" +break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + done +fi +LIBS=$ac_func_search_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5 +echo "${ECHO_T}$ac_cv_search_opendir" >&6 +if test "$ac_cv_search_opendir" != no; then + test "$ac_cv_search_opendir" = "none required" || LIBS="$ac_cv_search_opendir $LIBS" + +fi + +fi + + + + + + + + +for ac_func in strcasecmp select setenv putenv tcgetattr lstat lchown +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $ac_func + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +char (*f) () = $ac_func; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != $ac_func; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +eval "$as_ac_var=no" +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + + +for ac_func in nanosleep nl_langinfo +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $ac_func + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +char (*f) () = $ac_func; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != $ac_func; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +eval "$as_ac_var=no" +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + +for ac_header in varargs.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_header_compiler=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +# End of readline/conio stuff +# ----------------------------------------------------------------------- + +# ----------------------------------------------------------------------- +# Check for Python support +# +echo "$as_me:$LINENO: checking for Python support" >&5 +echo $ECHO_N "checking for Python support... $ECHO_C" >&6 + +# Check whether --with-python or --without-python was given. +if test "${with_python+set}" = set; then + withval="$with_python" + + PYTHON_INCDIR= + PYTHON_LIBS= + if test "$withval" != "no"; then + if test "$withval" = "yes"; then + for python_root in /usr /usr/local /usr/sfw; do + for ver in python2.2 python2.3 python2.4 python2.5; do + if test -f $python_root/include/${ver}/Python.h; then + PYTHON_INCDIR=-I$python_root/include/${ver} + if test -d $python_root/lib64/${ver}/config; then + PYTHON_LIBS="-L$python_root/lib64/${ver}/config -l${ver}" + else + PYTHON_LIBS="-L$python_root/lib/${ver}/config -l${ver}" + fi + break + fi + done + done + if test x$PYTHON_INCDIR = x; then + if test -f $prefix/include/Python.h; then + PYTHON_INCDIR=-I$prefix/include + if test -d $prefix/lib64/config; then + PYTHON_LIBS="-L$prefix/lib64/config -lpython" + else + PYTHON_LIBS="-L$prefix/lib/config -lpython" + fi + else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + { { echo "$as_me:$LINENO: error: Unable to find Python.h in standard locations" >&5 +echo "$as_me: error: Unable to find Python.h in standard locations" >&2;} + { (exit 1); exit 1; }; } + fi + fi + else + if test -f $withval/Python.h; then + PYTHON_INCDIR=-I$withval + PYTHON_LIBS="-L$withval/config -lpython" + elif test -f $withval/include/Python.h; then + PYTHON_INCDIR=-I$withval/include + if test -d $withval/lib64/config; then + PYTHON_LIBS="-L$withval/lib64/config -lpython" + else + PYTHON_LIBS="-L$withval/lib/config -lpython" + fi + elif test -f $withval/include/python/Python.h; then + PYTHON_INCDIR=-I$withval/include/python + if test -d $withval/lib64/python/config; then + PYTHON_LIBS="-L$withval/lib64/python/config -lpython" + else + PYTHON_LIBS="-L$withval/lib/python/config -lpython" + fi + else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + { { echo "$as_me:$LINENO: error: Invalid Python directory $withval - unable to find Python.h under $withval" >&5 +echo "$as_me: error: Invalid Python directory $withval - unable to find Python.h under $withval" >&2;} + { (exit 1); exit 1; }; } + fi + fi + cat >>confdefs.h <<\_ACEOF +#define HAVE_PYTHON 1 +_ACEOF + + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + support_python=yes + { echo "$as_me:$LINENO: checking for more Python libs" >&5 +echo "$as_me: checking for more Python libs" >&6;} + saved_LIBS="$LIBS"; LIBS= + echo "$as_me:$LINENO: checking for library containing shm_open" >&5 +echo $ECHO_N "checking for library containing shm_open... $ECHO_C" >&6 +if test "${ac_cv_search_shm_open+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_func_search_save_LIBS=$LIBS +ac_cv_search_shm_open=no +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char shm_open (); +int +main () +{ +shm_open (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_search_shm_open="none required" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +if test "$ac_cv_search_shm_open" = no; then + for ac_lib in rt; do + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char shm_open (); +int +main () +{ +shm_open (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_search_shm_open="-l$ac_lib" +break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + done +fi +LIBS=$ac_func_search_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_search_shm_open" >&5 +echo "${ECHO_T}$ac_cv_search_shm_open" >&6 +if test "$ac_cv_search_shm_open" != no; then + test "$ac_cv_search_shm_open" = "none required" || LIBS="$ac_cv_search_shm_open $LIBS" + +fi + + +echo "$as_me:$LINENO: checking for openpty in -lutil" >&5 +echo $ECHO_N "checking for openpty in -lutil... $ECHO_C" >&6 +if test "${ac_cv_lib_util_openpty+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lutil $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char openpty (); +int +main () +{ +openpty (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_util_openpty=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_util_openpty=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_util_openpty" >&5 +echo "${ECHO_T}$ac_cv_lib_util_openpty" >&6 +if test $ac_cv_lib_util_openpty = yes; then + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBUTIL 1 +_ACEOF + + LIBS="-lutil $LIBS" + +fi + + PYTHON_LIBS="$PYTHON_LIBS $LIBS" + LIBS="$saved_LIBS" + else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + fi + +else + + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + +fi; + + + +# +# Find where sockets are (especially for Solaris) +# Do this before the TCP Wrappers test since tcp wrappers +# uses the socket library and some linkers are stupid. +# +echo "$as_me:$LINENO: checking for socket" >&5 +echo $ECHO_N "checking for socket... $ECHO_C" >&6 +if test "${ac_cv_func_socket+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define socket to an innocuous variant, in case declares socket. + For example, HP-UX 11i declares gettimeofday. */ +#define socket innocuous_socket + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char socket (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef socket + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char socket (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_socket) || defined (__stub___socket) +choke me +#else +char (*f) () = socket; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != socket; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_socket=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_func_socket=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_func_socket" >&5 +echo "${ECHO_T}$ac_cv_func_socket" >&6 +if test $ac_cv_func_socket = yes; then + echo "$as_me:$LINENO: result: using libc's socket" >&5 +echo "${ECHO_T}using libc's socket" >&6 +else + +echo "$as_me:$LINENO: checking for socket in -lxnet" >&5 +echo $ECHO_N "checking for socket in -lxnet... $ECHO_C" >&6 +if test "${ac_cv_lib_xnet_socket+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lxnet $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char socket (); +int +main () +{ +socket (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_xnet_socket=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_xnet_socket=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_xnet_socket" >&5 +echo "${ECHO_T}$ac_cv_lib_xnet_socket" >&6 +if test $ac_cv_lib_xnet_socket = yes; then + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBXNET 1 +_ACEOF + + LIBS="-lxnet $LIBS" + +fi + + +echo "$as_me:$LINENO: checking for socket in -lsocket" >&5 +echo $ECHO_N "checking for socket in -lsocket... $ECHO_C" >&6 +if test "${ac_cv_lib_socket_socket+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsocket $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char socket (); +int +main () +{ +socket (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_socket_socket=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_socket_socket=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_socket_socket" >&5 +echo "${ECHO_T}$ac_cv_lib_socket_socket" >&6 +if test $ac_cv_lib_socket_socket = yes; then + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBSOCKET 1 +_ACEOF + + LIBS="-lsocket $LIBS" + +fi + + +echo "$as_me:$LINENO: checking for socket in -linet" >&5 +echo $ECHO_N "checking for socket in -linet... $ECHO_C" >&6 +if test "${ac_cv_lib_inet_socket+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-linet $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char socket (); +int +main () +{ +socket (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_inet_socket=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_inet_socket=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_inet_socket" >&5 +echo "${ECHO_T}$ac_cv_lib_inet_socket" >&6 +if test $ac_cv_lib_inet_socket = yes; then + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBINET 1 +_ACEOF + + LIBS="-linet $LIBS" + +fi + +fi + + + +# ----------------------------------------------------------- +# Check whether user wants TCP wrappers support (default off) +# ----------------------------------------------------------- +TCPW_MSG="no" +WRAPLIBS="" + +# Check whether --with-tcp-wrappers or --without-tcp-wrappers was given. +if test "${with_tcp_wrappers+set}" = set; then + withval="$with_tcp_wrappers" + + if test "x$withval" != "xno" ; then + saved_LIBS="$LIBS" + LIBS="$saved_LIBS -lwrap" + echo "$as_me:$LINENO: checking for libwrap" >&5 +echo $ECHO_N "checking for libwrap... $ECHO_C" >&6 + echo "$as_me:$LINENO: checking for library containing nanosleep" >&5 +echo $ECHO_N "checking for library containing nanosleep... $ECHO_C" >&6 +if test "${ac_cv_search_nanosleep+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_func_search_save_LIBS=$LIBS +ac_cv_search_nanosleep=no +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char nanosleep (); +int +main () +{ +nanosleep (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_search_nanosleep="none required" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +if test "$ac_cv_search_nanosleep" = no; then + for ac_lib in rt; do + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char nanosleep (); +int +main () +{ +nanosleep (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_search_nanosleep="-l$ac_lib" +break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + done +fi +LIBS=$ac_func_search_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_search_nanosleep" >&5 +echo "${ECHO_T}$ac_cv_search_nanosleep" >&6 +if test "$ac_cv_search_nanosleep" != no; then + test "$ac_cv_search_nanosleep" = "none required" || LIBS="$ac_cv_search_nanosleep $LIBS" + +fi + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + #include + #include + int deny_severity = 0; + int allow_severity = 0; + struct request_info *req; +int +main () +{ + hosts_access(req); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + +cat >>confdefs.h <<\_ACEOF +#define HAVE_LIBWRAP 1 +_ACEOF + + TCPW_MSG="yes" + LIBS="$saved_LIBS" + WRAPLIBS="-lwrap" + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + + LIBS="$saved_LIBS -lwrap -lnsl" + WRAPLIBS="$saved_LIBS -lwrap -lnsl" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + #include + #include + int deny_severity = 0; + int allow_severity = 0; + struct request_info *req; +int +main () +{ + hosts_access(req); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + +cat >>confdefs.h <<\_ACEOF +#define HAVE_LIBWRAP 1 +_ACEOF + + TCPW_MSG="yes" + LIBS="$saved_LIBS" + WRAPLIBS="-lwrap" + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { echo "$as_me:$LINENO: error: *** libwrap missing" >&5 +echo "$as_me: error: *** libwrap missing" >&2;} + { (exit 1); exit 1; }; } + +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + fi + + +fi; + +# ----------------------------------------------------------- +# Check whether OpenSSL is available +# ----------------------------------------------------------- +echo "$as_me:$LINENO: checking for OpenSSL" >&5 +echo $ECHO_N "checking for OpenSSL... $ECHO_C" >&6 + +# Check whether --with-openssl or --without-openssl was given. +if test "${with_openssl+set}" = set; then + withval="$with_openssl" + with_openssl_directory=${withval} +fi; + +if test "x$with_openssl_directory" != "x"; then + OPENSSL_LIBS="-lssl -lcrypto" + OPENSSL_INC="" + + if test "x$with_openssl_directory" != "xyes" && test x"${with_openssl_directory}" != "x"; then + OPENSSL_LIBS="-L$with_openssl_directory/lib $OPENSSL_LIBS" + OPENSSL_INC="-I$with_openssl_directory/include $OPENSSL_INC" + fi + + saved_LIBS="${LIBS}" + saved_CFLAGS="${CFLAGS}" + LIBS="${saved_LIBS} ${OPENSSL_LIBS}" + CFLAGS="${saved_CFLAGS} ${OPENSSL_INC}" + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + #include +int +main () +{ + CRYPTO_set_id_callback(NULL); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + + support_tls="yes" + support_crypto="yes" + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + support_tls="no" + +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + #include +int +main () +{ + EVP_sha512(); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_openssl_sha2="yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_openssl_sha2="no" + +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + + # Solaris disables greater than 128+ bit encryption in their OpenSSL + # implementation, presumably for export reasons. If 192bit AES + # is available, we assume that we're running with a 'non-export' + # openssl library. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + #include +int +main () +{ + EVP_aes_192_cbc(); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_openssl_export="no" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_openssl_export="yes" + +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + + LIBS="${saved_LIBS}" + CFLAGS="${saved_CFLAGS}" + + if test "$support_tls" = "yes"; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_OPENSSL 1 +_ACEOF + + +cat >>confdefs.h <<\_ACEOF +#define HAVE_TLS 1 +_ACEOF + + +cat >>confdefs.h <<\_ACEOF +#define HAVE_CRYPTO 1 +_ACEOF + + fi + + if test "$ac_cv_openssl_sha2" = "yes"; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_SHA2 1 +_ACEOF + + fi + + if test "$ac_cv_openssl_export" = "yes"; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_OPENSSL_EXPORT_LIBRARY 1 +_ACEOF + + fi +else + support_tls="no" + support_crypto="no" + OPENSSL_LIBS="" + OPENSSL_INC="" +fi + +echo "$as_me:$LINENO: result: $support_tls" >&5 +echo "${ECHO_T}$support_tls" >&6 + + + + +# ----------------------------------------------------------- +# Python and OpenSSL are using dlopen +# ----------------------------------------------------------- + +if test "$support_python" = "yes" -o "$support_tls" = "yes"; then + echo "$as_me:$LINENO: checking for library containing dlopen" >&5 +echo $ECHO_N "checking for library containing dlopen... $ECHO_C" >&6 +if test "${ac_cv_search_dlopen+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_func_search_save_LIBS=$LIBS +ac_cv_search_dlopen=no +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char dlopen (); +int +main () +{ +dlopen (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_search_dlopen="none required" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +if test "$ac_cv_search_dlopen" = no; then + for ac_lib in dl; do + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char dlopen (); +int +main () +{ +dlopen (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_search_dlopen="-l$ac_lib" +break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + done +fi +LIBS=$ac_func_search_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_search_dlopen" >&5 +echo "${ECHO_T}$ac_cv_search_dlopen" >&6 +if test "$ac_cv_search_dlopen" != no; then + test "$ac_cv_search_dlopen" = "none required" || LIBS="$ac_cv_search_dlopen $LIBS" + +fi + +fi + +# ------------------------------------------ +# Where to place working dir +# ------------------------------------------ +working_dir=`eval echo ${prefix}/var/bacula/working` + +# Check whether --with-working-dir or --without-working-dir was given. +if test "${with_working_dir+set}" = set; then + withval="$with_working_dir" + + if test "x$withval" != "xno" ; then + working_dir=$withval + fi + + +fi; + + + +# ------------------------------------------------------------------ +# If the user has not set archivedir, we set our default as /tmp +# ------------------------------------------------------------------ +archive_dir=/tmp + +# Check whether --with-archivedir or --without-archivedir was given. +if test "${with_archivedir+set}" = set; then + withval="$with_archivedir" + + if test "x$withval" != "xno" ; then + archivedir=$withval + fi + + +fi; + + + + + +# ------------------------------------------ +# Where to place scriptdir (script files) +# ------------------------------------------ +scriptdir=`eval echo ${sysconfdir}` + +# Check whether --with-scriptdir or --without-scriptdir was given. +if test "${with_scriptdir+set}" = set; then + withval="$with_scriptdir" + + if test "x$withval" != "xno" ; then + scriptdir=$withval + fi + + +fi; + + + + +# ------------------------------------------ +# Where to send dump email +# ------------------------------------------ +dump_email=root@localhost + +# Check whether --with-dump-email or --without-dump-email was given. +if test "${with_dump_email+set}" = set; then + withval="$with_dump_email" + + if test "x$withval" != "xno" ; then + dump_email=$withval + fi + + +fi; + + + +# ------------------------------------------ +# Where to send job email +# ------------------------------------------ +job_email=root@localhost + +# Check whether --with-job-email or --without-job-email was given. +if test "${with_job_email+set}" = set; then + withval="$with_job_email" + + if test "x$withval" != "xno" ; then + job_email=$withval + fi + + +fi; + + + +# ------------------------------------------ +# Where to find smtp host +# ------------------------------------------ +smtp_host=localhost + +# Check whether --with-smtp_host or --without-smtp_host was given. +if test "${with_smtp_host+set}" = set; then + withval="$with_smtp_host" + + if test "x$withval" != "xno" ; then + smtp_host=$withval + fi + + +fi; + + + + +# ------------------------------------ +# Where to place pid files +# ------------------------------------ +piddir=/var/run + +# Check whether --with-pid-dir or --without-pid-dir was given. +if test "${with_pid_dir+set}" = set; then + withval="$with_pid_dir" + + if test "x$withval" != "xno" ; then + piddir=$withval + fi + + +fi; + +cat >>confdefs.h <<_ACEOF +#define _PATH_BACULA_PIDDIR "$piddir" +_ACEOF + + + + +# ------------------------------------ +# Where to place subsys "lock file" +# ------------------------------------ +subsysdir=/var/run/subsys +if test -d /var/run/subsys; then + subsysdir=/var/run/subsys +elif test -d /var/lock/subsys; then + subsysdir=/var/lock/subsys +else + subsysdir=/var/run/subsys +fi + +# Check whether --with-subsys-dir or --without-subsys-dir was given. +if test "${with_subsys_dir+set}" = set; then + withval="$with_subsys_dir" + + if test "x$withval" != "xno" ; then + subsysdir=$withval + fi + + +fi; + + + + + +# ------------------------------------ +# Where to start assigning ports +# ------------------------------------ +baseport=9101 + +# Check whether --with-baseport or --without-baseport was given. +if test "${with_baseport+set}" = set; then + withval="$with_baseport" + + if test "x$withval" != "xno" ; then + baseport=$withval + fi + + +fi; + + +dir_port=`expr $baseport` +fd_port=`expr $baseport + 1` +sd_port=`expr $fd_port + 1` + + + + + + +# ------------------------------------------ +# Generate passwords +# ------------------------------------------ +dir_password= + +# Check whether --with-dir-password or --without-dir-password was given. +if test "${with_dir_password+set}" = set; then + withval="$with_dir_password" + + if test "x$withval" != "xno" ; then + dir_password=$withval + fi + + +fi; + +if test "x$dir_password" = "x" ; then + if test "x$OPENSSL" = "xnone" ; then + key=`autoconf/randpass 33` + else + key=`openssl rand -base64 33` + fi + dir_password=$key +fi + +fd_password= + +# Check whether --with-fd-password or --without-fd-password was given. +if test "${with_fd_password+set}" = set; then + withval="$with_fd_password" + + if test "x$withval" != "xno" ; then + fd_password=$withval + fi + + +fi; + +if test "x$fd_password" = "x" ; then + if test "x$OPENSSL" = "xnone" ; then + key=`autoconf/randpass 37` + else + key=`openssl rand -base64 33` + fi + fd_password=$key +fi + +sd_password= + +# Check whether --with-sd-password or --without-sd-password was given. +if test "${with_sd_password+set}" = set; then + withval="$with_sd_password" + + if test "x$withval" != "xno" ; then + sd_password=$withval + fi + + +fi; + +if test "x$sd_password" = "x" ; then + if test "x$OPENSSL" = "xnone" ; then + key=`autoconf/randpass 41` + else + key=`openssl rand -base64 33` + fi + sd_password=$key +fi + +mon_dir_password= + +# Check whether --with-mon-dir-password or --without-mon-dir-password was given. +if test "${with_mon_dir_password+set}" = set; then + withval="$with_mon_dir_password" + + if test "x$withval" != "xno" ; then + mon_dir_password=$withval + fi + + +fi; + +if test "x$mon_dir_password" = "x" ; then + if test "x$OPENSSL" = "xnone" ; then + key=`autoconf/randpass 33` + else + key=`openssl rand -base64 33` + fi + mon_dir_password=$key +fi + +mon_fd_password= + +# Check whether --with-mon-fd-password or --without-mon-fd-password was given. +if test "${with_mon_fd_password+set}" = set; then + withval="$with_mon_fd_password" + + if test "x$withval" != "xno" ; then + mon_fd_password=$withval + fi + + +fi; + +if test "x$mon_fd_password" = "x" ; then + if test "x$OPENSSL" = "xnone" ; then + key=`autoconf/randpass 37` + else + key=`openssl rand -base64 33` + fi + mon_fd_password=$key +fi + +mon_sd_password= + +# Check whether --with-mon-sd-password or --without-mon-sd-password was given. +if test "${with_mon_sd_password+set}" = set; then + withval="$with_mon_sd_password" + + if test "x$withval" != "xno" ; then + mon_sd_password=$withval + fi + + +fi; + +if test "x$mon_sd_password" = "x" ; then + if test "x$OPENSSL" = "xnone" ; then + key=`autoconf/randpass 41` + else + key=`openssl rand -base64 33` + fi + mon_sd_password=$key +fi + + + + + + + + +# +# Pickup any database name +# +db_name=bacula + +# Check whether --with-db_name or --without-db_name was given. +if test "${with_db_name+set}" = set; then + withval="$with_db_name" + + if test "x$withval" != "x" ; then + db_name=$withval + fi + + +fi; + + +db_user=bacula + +# Check whether --with-db_user or --without-db_user was given. +if test "${with_db_user+set}" = set; then + withval="$with_db_user" + + if test "x$withval" != "x" ; then + db_user=$withval + fi + + +fi; + + + +# +# Handle users and groups for each daemon +# +dir_user= + +# Check whether --with-dir_user or --without-dir_user was given. +if test "${with_dir_user+set}" = set; then + withval="$with_dir_user" + + if test "x$withval" != "x" ; then + dir_user=$withval + fi + + +fi; + +dir_group= + +# Check whether --with-dir_group or --without-dir_group was given. +if test "${with_dir_group+set}" = set; then + withval="$with_dir_group" + + if test "x$withval" != "x" ; then + dir_group=$withval + fi + + +fi; + +sd_user= + +# Check whether --with-sd_user or --without-sd_user was given. +if test "${with_sd_user+set}" = set; then + withval="$with_sd_user" + + if test "x$withval" != "x" ; then + sd_user=$withval + fi + + +fi; + +sd_group= + +# Check whether --with-sd_group or --without-sd_group was given. +if test "${with_sd_group+set}" = set; then + withval="$with_sd_group" + + if test "x$withval" != "x" ; then + sd_group=$withval + fi + + +fi; + +fd_user= + +# Check whether --with-fd_user or --without-fd_user was given. +if test "${with_fd_user+set}" = set; then + withval="$with_fd_user" + + if test "x$withval" != "x" ; then + fd_user=$withval + fi + + +fi; + +fd_group= + +# Check whether --with-fd_group or --without-fd_group was given. +if test "${with_fd_group+set}" = set; then + withval="$with_fd_group" + + if test "x$withval" != "x" ; then + fd_group=$withval + fi + + +fi; + + + + + + + + +# +# allow setting default executable permissions +# +SBINPERM=0754 + +# Check whether --with-sbin-perm or --without-sbin-perm was given. +if test "${with_sbin_perm+set}" = set; then + withval="$with_sbin_perm" + + if test "x$withval" != "x" ; then + SBINPERM=$withval + fi + + +fi; + + + +# ------------------------------------------------ +# Bacula check for various SQL database engines +# ------------------------------------------------ +SQL_LIB= + +db_found=no +echo "$as_me:$LINENO: checking for PostgreSQL support" >&5 +echo $ECHO_N "checking for PostgreSQL support... $ECHO_C" >&6 + +# Check whether --with-postgresql or --without-postgresql was given. +if test "${with_postgresql+set}" = set; then + withval="$with_postgresql" + + if test "$withval" != "no"; then + if test "$db_found" = "yes"; then + echo "$as_me:$LINENO: result: error" >&5 +echo "${ECHO_T}error" >&6 + { { echo "$as_me:$LINENO: error: \"You can configure for only one database.\"" >&5 +echo "$as_me: error: \"You can configure for only one database.\"" >&2;} + { (exit 1); exit 1; }; }; + fi + if test "$withval" = "yes"; then + PG_CONFIG=`which pg_config` + if test -n "$PG_CONFIG";then + POSTGRESQL_INCDIR=`"$PG_CONFIG" --includedir` + POSTGRESQL_LIBDIR=`"$PG_CONFIG" --libdir` + POSTGRESQL_BINDIR=`"$PG_CONFIG" --bindir` + elif 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 + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + { { echo "$as_me:$LINENO: error: Unable to find libpq-fe.h in standard locations" >&5 +echo "$as_me: error: Unable to find libpq-fe.h in standard locations" >&2;} + { (exit 1); exit 1; }; } + fi + elif 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 + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + { { echo "$as_me:$LINENO: error: Invalid PostgreSQL directory $withval - unable to find libpq-fe.h under $withval" >&5 +echo "$as_me: error: Invalid PostgreSQL directory $withval - unable to find libpq-fe.h under $withval" >&2;} + { (exit 1); exit 1; }; } + fi + POSTGRESQL_LFLAGS="-L$POSTGRESQL_LIBDIR -lpq" + echo "$as_me:$LINENO: checking for crypt" >&5 +echo $ECHO_N "checking for crypt... $ECHO_C" >&6 +if test "${ac_cv_func_crypt+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define crypt to an innocuous variant, in case declares crypt. + For example, HP-UX 11i declares gettimeofday. */ +#define crypt innocuous_crypt + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char crypt (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef crypt + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char crypt (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_crypt) || defined (__stub___crypt) +choke me +#else +char (*f) () = crypt; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != crypt; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_crypt=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_func_crypt=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_func_crypt" >&5 +echo "${ECHO_T}$ac_cv_func_crypt" >&6 +if test $ac_cv_func_crypt = yes; then + : +else + echo "$as_me:$LINENO: checking for crypt in -lcrypt" >&5 +echo $ECHO_N "checking for crypt in -lcrypt... $ECHO_C" >&6 +if test "${ac_cv_lib_crypt_crypt+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lcrypt $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char crypt (); +int +main () +{ +crypt (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_crypt_crypt=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_crypt_crypt=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_crypt_crypt" >&5 +echo "${ECHO_T}$ac_cv_lib_crypt_crypt" >&6 +if test $ac_cv_lib_crypt_crypt = yes; then + POSTGRESQL_LFLAGS="$POSTGRESQL_LFLAGS -lcrypt" +fi + +fi + + SQL_INCLUDE=-I$POSTGRESQL_INCDIR + SQL_LFLAGS=$POSTGRESQL_LFLAGS + SQL_BINDIR=$POSTGRESQL_BINDIR + SQL_LIB=$POSTGRESQL_LIBDIR/libpq.a + + cat >>confdefs.h <<\_ACEOF +#define HAVE_POSTGRESQL 1 +_ACEOF + + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + db_found=yes + support_postgresql=yes + db_type=PostgreSQL + DB_TYPE=postgresql + else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + fi + +else + + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + +fi; + + + + + + + +db_found=no +echo "$as_me:$LINENO: checking for MySQL support" >&5 +echo $ECHO_N "checking for MySQL support... $ECHO_C" >&6 + +# Check whether --with-mysql or --without-mysql was given. +if test "${with_mysql+set}" = set; then + withval="$with_mysql" + + 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 -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/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 + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + { { echo "$as_me:$LINENO: error: Unable to find mysql.h in standard locations" >&5 +echo "$as_me: error: Unable to find mysql.h in standard locations" >&2;} + { (exit 1); exit 1; }; } + 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 + else + MYSQL_LIBDIR=$withval/lib/mysql + # Solaris ... + if test -f $withval/lib/libmysqlclient_r.so; then + MYSQL_LIBDIR=$withval/lib + fi + 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 + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + { { echo "$as_me:$LINENO: error: Invalid MySQL directory $withval - unable to find mysql.h under $withval" >&5 +echo "$as_me: error: Invalid MySQL directory $withval - unable to find mysql.h under $withval" >&2;} + { (exit 1); exit 1; }; } + fi + fi + SQL_INCLUDE=-I$MYSQL_INCDIR + if test -f $MYSQL_LIBDIR/libmysqlclient_r.a \ + -o -f $MYSQL_LIBDIR/libmysqlclient_r.so; then + SQL_LFLAGS="-L$MYSQL_LIBDIR -lmysqlclient_r -lz" + cat >>confdefs.h <<\_ACEOF +#define HAVE_THREAD_SAFE_MYSQL 1 +_ACEOF + + fi + SQL_BINDIR=$MYSQL_BINDIR + SQL_LIB=$MYSQL_LIBDIR/libmysqlclient_r.a + + cat >>confdefs.h <<\_ACEOF +#define HAVE_MYSQL 1 +_ACEOF + + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + db_found=yes + support_mysql=yes + db_type=MySQL + DB_TYPE=mysql + + else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + fi + + +fi; + + +# Check whether --with-embedded-mysql or --without-embedded-mysql was given. +if test "${with_embedded_mysql+set}" = set; then + withval="$with_embedded_mysql" + + 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 + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + { { echo "$as_me:$LINENO: error: Unable to find mysql.h in standard locations" >&5 +echo "$as_me: error: Unable to find mysql.h in standard locations" >&2;} + { (exit 1); exit 1; }; } + 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 + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + { { echo "$as_me:$LINENO: error: Invalid MySQL directory $withval - unable to find mysql.h under $withval" >&5 +echo "$as_me: error: Invalid MySQL directory $withval - unable to find mysql.h under $withval" >&2;} + { (exit 1); exit 1; }; } + fi + fi + SQL_INCLUDE=-I$MYSQL_INCDIR + SQL_LFLAGS="-L$MYSQL_LIBDIR -lmysqld -lz -lm -lcrypt" + SQL_BINDIR=$MYSQL_BINDIR + SQL_LIB=$MYSQL_LIBDIR/libmysqld.a + + cat >>confdefs.h <<\_ACEOF +#define HAVE_MYSQL 1 +_ACEOF + + cat >>confdefs.h <<\_ACEOF +#define HAVE_EMBEDDED_MYSQL 1 +_ACEOF + + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + db_found=yes + support_mysql=yes + db_type=MySQL + DB_TYPE=mysql + + else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + fi + + +fi; + + + + + + + + + +db_found=no +echo "$as_me:$LINENO: checking for SQLite3 support" >&5 +echo $ECHO_N "checking for SQLite3 support... $ECHO_C" >&6 + +# Check whether --with-sqlite3 or --without-sqlite3 was given. +if test "${with_sqlite3+set}" = set; then + withval="$with_sqlite3" + + 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 + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + { { echo "$as_me:$LINENO: error: Unable to find sqlite3.h in standard locations" >&5 +echo "$as_me: error: Unable to find sqlite3.h in standard locations" >&2;} + { (exit 1); exit 1; }; } + 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 + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + { { echo "$as_me:$LINENO: error: Invalid SQLite3 directory $withval - unable to find sqlite3.h under $withval" >&5 +echo "$as_me: error: Invalid SQLite3 directory $withval - unable to find sqlite3.h under $withval" >&2;} + { (exit 1); exit 1; }; } + fi + fi + SQL_INCLUDE=-I$SQLITE_INCDIR + SQL_LFLAGS="-L$SQLITE_LIBDIR -lsqlite3" + SQL_BINDIR=$SQLITE_BINDIR + SQL_LIB=$SQLITE_LIBDIR/libsqlite3.a + + cat >>confdefs.h <<\_ACEOF +#define HAVE_SQLITE3 1 +_ACEOF + + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + db_found=yes + support_sqlite3=yes + db_type=SQLite3 + DB_TYPE=sqlite3 + + else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + fi + +else + + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + +fi; + + + + + + + +db_found=no +echo "$as_me:$LINENO: checking for SQLite support" >&5 +echo $ECHO_N "checking for SQLite support... $ECHO_C" >&6 + +# Check whether --with-sqlite or --without-sqlite was given. +if test "${with_sqlite+set}" = set; then + withval="$with_sqlite" + + if test "$withval" != "no"; then + if test "$withval" = "yes"; then + if test -f /usr/local/include/sqlite.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/sqlite.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/sqlite.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 + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + { { echo "$as_me:$LINENO: error: Unable to find sqlite.h in standard locations" >&5 +echo "$as_me: error: Unable to find sqlite.h in standard locations" >&2;} + { (exit 1); exit 1; }; } + fi + else + if test -f $withval/sqlite.h; then + SQLITE_INCDIR=$withval + SQLITE_LIBDIR=$withval + SQLITE_BINDIR=$withval + elif test -f $withval/include/sqlite.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 + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + { { echo "$as_me:$LINENO: error: Invalid SQLite directory $withval - unable to find sqlite.h under $withval" >&5 +echo "$as_me: error: Invalid SQLite directory $withval - unable to find sqlite.h under $withval" >&2;} + { (exit 1); exit 1; }; } + fi + fi + SQL_INCLUDE=-I$SQLITE_INCDIR + SQL_LFLAGS="-L$SQLITE_LIBDIR -lsqlite" + SQL_BINDIR=$SQLITE_BINDIR + SQL_LIB=$SQLITE_LIBDIR/libsqlite.a + + cat >>confdefs.h <<\_ACEOF +#define HAVE_SQLITE 1 +_ACEOF + + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + db_found=yes + support_sqlite=yes + db_type=SQLite + DB_TYPE=sqlite + + else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + fi + +else + + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + +fi; + + + + + + + + + +# ------------------------------------------- +# enable batch attribute DB insert (default on) +# ------------------------------------------- +support_batch_insert=no +A=`nm $SQL_LIB | grep pthread_mutex_lock` +pkg=$? +if test $pkg = 0; then + support_batch_insert=yes + # Check whether --enable-batch-insert or --disable-batch-insert was given. +if test "${enable_batch_insert+set}" = set; then + enableval="$enable_batch_insert" + if test x$enableval = xno; then + support_batch_insert=no + else + support_batch_insert=yes + fi +fi; +fi + +# Check if postgresql support batch mode +if test x$DB_TYPE = xpostgresql; then + A=`nm $SQL_LIB | grep PQputCopyData` + pkg=$? + if test $pkg != 0; then + support_batch_insert=no + fi +fi + +if test $support_batch_insert = yes ; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_BATCH_FILE_INSERT 1 +_ACEOF + +fi + + +cat >>confdefs.h <<\_ACEOF +#define PROTOTYPES 1 +_ACEOF + + +if test -z "$CFLAGS" -o "$CFLAGS" = "-g -O2"; then + if test -z "$CCOPTS"; then + CCOPTS='-g -O2 -Wall' + fi + CFLAGS="$CCOPTS" +fi + + + + +largefile_support="no" + + # Check whether --enable-largefile or --disable-largefile was given. +if test "${enable_largefile+set}" = set; then + enableval="$enable_largefile" + +fi; + if test "$enable_largefile" != no; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}getconf", so it can be a program name with args. +set dummy ${ac_tool_prefix}getconf; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_GETCONF+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$GETCONF"; then + ac_cv_prog_GETCONF="$GETCONF" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_GETCONF="${ac_tool_prefix}getconf" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +GETCONF=$ac_cv_prog_GETCONF +if test -n "$GETCONF"; then + echo "$as_me:$LINENO: result: $GETCONF" >&5 +echo "${ECHO_T}$GETCONF" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +fi +if test -z "$ac_cv_prog_GETCONF"; then + ac_ct_GETCONF=$GETCONF + # Extract the first word of "getconf", so it can be a program name with args. +set dummy getconf; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_ac_ct_GETCONF+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_GETCONF"; then + ac_cv_prog_ac_ct_GETCONF="$ac_ct_GETCONF" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_GETCONF="getconf" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +ac_ct_GETCONF=$ac_cv_prog_ac_ct_GETCONF +if test -n "$ac_ct_GETCONF"; then + echo "$as_me:$LINENO: result: $ac_ct_GETCONF" >&5 +echo "${ECHO_T}$ac_ct_GETCONF" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + GETCONF=$ac_ct_GETCONF +else + GETCONF="$ac_cv_prog_GETCONF" +fi + + echo "$as_me:$LINENO: checking for CFLAGS value to request large file support" >&5 +echo $ECHO_N "checking for CFLAGS value to request large file support... $ECHO_C" >&6 +if test "${ac_cv_sys_largefile_CFLAGS+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_sys_largefile_CFLAGS=`($GETCONF LFS_CFLAGS) 2>/dev/null` || { + ac_cv_sys_largefile_CFLAGS=no + case "$host_os" in + # IRIX 6.2 and later require cc -n32. + irix6.[2-9]* | irix6.1[0-9]* | irix[7-9].* | irix[1-9][0-9]*) + if test "$GCC" != yes; then + ac_cv_sys_largefile_CFLAGS=-n32 + fi + ac_save_CC="$CC" + CC="$CC $ac_cv_sys_largefile_CFLAGS" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_sys_largefile_CFLAGS=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CC="$ac_save_CC" + esac + } +fi +echo "$as_me:$LINENO: result: $ac_cv_sys_largefile_CFLAGS" >&5 +echo "${ECHO_T}$ac_cv_sys_largefile_CFLAGS" >&6 + echo "$as_me:$LINENO: checking for LDFLAGS value to request large file support" >&5 +echo $ECHO_N "checking for LDFLAGS value to request large file support... $ECHO_C" >&6 +if test "${ac_cv_sys_largefile_LDFLAGS+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_sys_largefile_LDFLAGS=`($GETCONF LFS_LDFLAGS) 2>/dev/null` || { + ac_cv_sys_largefile_LDFLAGS=no + + } +fi +echo "$as_me:$LINENO: result: $ac_cv_sys_largefile_LDFLAGS" >&5 +echo "${ECHO_T}$ac_cv_sys_largefile_LDFLAGS" >&6 + echo "$as_me:$LINENO: checking for LIBS value to request large file support" >&5 +echo $ECHO_N "checking for LIBS value to request large file support... $ECHO_C" >&6 +if test "${ac_cv_sys_largefile_LIBS+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_sys_largefile_LIBS=`($GETCONF LFS_LIBS) 2>/dev/null` || { + ac_cv_sys_largefile_LIBS=no + + } +fi +echo "$as_me:$LINENO: result: $ac_cv_sys_largefile_LIBS" >&5 +echo "${ECHO_T}$ac_cv_sys_largefile_LIBS" >&6 + + 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?*) + case "$ac_flag" in + no) ;; + ?*) + case "$CPPFLAGS" in + '') CPPFLAGS="$ac_flag" ;; + *) CPPFLAGS=$CPPFLAGS' '"$ac_flag" ;; + esac ;; + esac ;; + *) + case "$ac_flag" in + no) ;; + ?*) + case "$CFLAGS" in + '') CFLAGS="$ac_flag" ;; + *) CFLAGS=$CFLAGS' '"$ac_flag" ;; + esac ;; + esac ;; + esac + done + case "$ac_cv_sys_largefile_LDFLAGS" in + no) ;; + ?*) + case "$LDFLAGS" in + '') LDFLAGS="$ac_cv_sys_largefile_LDFLAGS" ;; + *) LDFLAGS=$LDFLAGS' '"$ac_cv_sys_largefile_LDFLAGS" ;; + esac ;; + esac + case "$ac_cv_sys_largefile_LIBS" in + no) ;; + ?*) + case "$LIBS" in + '') LIBS="$ac_cv_sys_largefile_LIBS" ;; + *) LIBS=$LIBS' '"$ac_cv_sys_largefile_LIBS" ;; + esac ;; + esac + echo "$as_me:$LINENO: checking for _FILE_OFFSET_BITS" >&5 +echo $ECHO_N "checking for _FILE_OFFSET_BITS... $ECHO_C" >&6 +if test "${ac_cv_sys_file_offset_bits+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_sys_file_offset_bits=no + ac_cv_sys_file_offset_bits=64 + for ac_flag in $ac_cv_sys_largefile_CFLAGS no; do + case "$ac_flag" in + -D_FILE_OFFSET_BITS) + ac_cv_sys_file_offset_bits=1 ;; + -D_FILE_OFFSET_BITS=*) + ac_cv_sys_file_offset_bits=`expr " $ac_flag" : '[^=]*=\(.*\)'` ;; + esac + done + +fi +echo "$as_me:$LINENO: result: $ac_cv_sys_file_offset_bits" >&5 +echo "${ECHO_T}$ac_cv_sys_file_offset_bits" >&6 + if test "$ac_cv_sys_file_offset_bits" != no; then + +cat >>confdefs.h <<_ACEOF +#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits +_ACEOF + + fi + echo "$as_me:$LINENO: checking for _LARGEFILE_SOURCE" >&5 +echo $ECHO_N "checking for _LARGEFILE_SOURCE... $ECHO_C" >&6 +if test "${ac_cv_sys_largefile_source+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_sys_largefile_source=no + ac_cv_sys_largefile_source=1 + for ac_flag in $ac_cv_sys_largefile_CFLAGS no; do + case "$ac_flag" in + -D_LARGEFILE_SOURCE) + ac_cv_sys_largefile_source=1 ;; + -D_LARGEFILE_SOURCE=*) + ac_cv_sys_largefile_source=`expr " $ac_flag" : '[^=]*=\(.*\)'` ;; + esac + done + +fi +echo "$as_me:$LINENO: result: $ac_cv_sys_largefile_source" >&5 +echo "${ECHO_T}$ac_cv_sys_largefile_source" >&6 + if test "$ac_cv_sys_largefile_source" != no; then + +cat >>confdefs.h <<_ACEOF +#define _LARGEFILE_SOURCE $ac_cv_sys_largefile_source +_ACEOF + + fi + echo "$as_me:$LINENO: checking for _LARGE_FILES" >&5 +echo $ECHO_N "checking for _LARGE_FILES... $ECHO_C" >&6 +if test "${ac_cv_sys_large_files+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_sys_large_files=no + ac_cv_sys_large_files=1 + for ac_flag in $ac_cv_sys_largefile_CFLAGS no; do + case "$ac_flag" in + -D_LARGE_FILES) + ac_cv_sys_large_files=1 ;; + -D_LARGE_FILES=*) + ac_cv_sys_large_files=`expr " $ac_flag" : '[^=]*=\(.*\)'` ;; + esac + done + +fi +echo "$as_me:$LINENO: result: $ac_cv_sys_large_files" >&5 +echo "${ECHO_T}$ac_cv_sys_large_files" >&6 + if test "$ac_cv_sys_large_files" != no; then + +cat >>confdefs.h <<_ACEOF +#define _LARGE_FILES $ac_cv_sys_large_files +_ACEOF + + fi + fi + + + +echo "$as_me:$LINENO: checking for X" >&5 +echo $ECHO_N "checking for X... $ECHO_C" >&6 + + +# Check whether --with-x or --without-x was given. +if test "${with_x+set}" = set; then + withval="$with_x" + +fi; +# $have_x is `yes', `no', `disabled', or empty when we do not yet know. +if test "x$with_x" = xno; then + # The user explicitly disabled X. + have_x=disabled +else + if test "x$x_includes" != xNONE && test "x$x_libraries" != xNONE; then + # Both variables are already set. + have_x=yes + else + if test "${ac_cv_have_x+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # One or both of the vars are not set, and there is no cached value. +ac_x_includes=no ac_x_libraries=no +rm -fr conftest.dir +if mkdir conftest.dir; then + cd conftest.dir + # Make sure to not put "make" in the Imakefile rules, since we grep it out. + cat >Imakefile <<'_ACEOF' +acfindx: + @echo 'ac_im_incroot="${INCROOT}"; ac_im_usrlibdir="${USRLIBDIR}"; ac_im_libdir="${LIBDIR}"' +_ACEOF + if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then + # GNU make sometimes prints "make[1]: Entering...", which would confuse us. + eval `${MAKE-make} acfindx 2>/dev/null | grep -v make` + # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR. + for ac_extension in a so sl; do + if test ! -f $ac_im_usrlibdir/libX11.$ac_extension && + test -f $ac_im_libdir/libX11.$ac_extension; then + ac_im_usrlibdir=$ac_im_libdir; break + fi + done + # Screen out bogus values from the imake configuration. They are + # bogus both because they are the default anyway, and because + # using them would break gcc on systems where it needs fixed includes. + case $ac_im_incroot in + /usr/include) ;; + *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes=$ac_im_incroot;; + esac + case $ac_im_usrlibdir in + /usr/lib | /lib) ;; + *) test -d "$ac_im_usrlibdir" && ac_x_libraries=$ac_im_usrlibdir ;; + esac + fi + cd .. + rm -fr conftest.dir +fi + +# Standard set of common directories for X headers. +# Check X11 before X11Rn because it is often a symlink to the current release. +ac_x_header_dirs=' +/usr/X11/include +/usr/X11R6/include +/usr/X11R5/include +/usr/X11R4/include + +/usr/include/X11 +/usr/include/X11R6 +/usr/include/X11R5 +/usr/include/X11R4 + +/usr/local/X11/include +/usr/local/X11R6/include +/usr/local/X11R5/include +/usr/local/X11R4/include + +/usr/local/include/X11 +/usr/local/include/X11R6 +/usr/local/include/X11R5 +/usr/local/include/X11R4 + +/usr/X386/include +/usr/x386/include +/usr/XFree86/include/X11 + +/usr/include +/usr/local/include +/usr/unsupported/include +/usr/athena/include +/usr/local/x11r5/include +/usr/lpp/Xamples/include + +/usr/openwin/include +/usr/openwin/share/include' + +if test "$ac_x_includes" = no; then + # Guess where to find include files, by looking for Xlib.h. + # First, try using that file with no special directory specified. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + # We can compile using X headers with no special include directory. +ac_x_includes= +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + for ac_dir in $ac_x_header_dirs; do + if test -r "$ac_dir/X11/Xlib.h"; then + ac_x_includes=$ac_dir + break + fi +done +fi +rm -f conftest.err conftest.$ac_ext +fi # $ac_x_includes = no + +if test "$ac_x_libraries" = no; then + # Check for the libraries. + # See if we find them without any special options. + # Don't add to $LIBS permanently. + ac_save_LIBS=$LIBS + LIBS="-lX11 $LIBS" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +XrmInitialize () + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + LIBS=$ac_save_LIBS +# We can link X programs with no special library path. +ac_x_libraries= +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +LIBS=$ac_save_LIBS +for ac_dir in `echo "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g` +do + # Don't even attempt the hair of trying to link an X program! + for ac_extension in a so sl; do + if test -r $ac_dir/libXt.$ac_extension; then + ac_x_libraries=$ac_dir + break 2 + fi + done +done +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi # $ac_x_libraries = no + +if test "$ac_x_includes" = no || test "$ac_x_libraries" = no; then + # Didn't find X anywhere. Cache the known absence of X. + ac_cv_have_x="have_x=no" +else + # Record where we found X for the cache. + ac_cv_have_x="have_x=yes \ + ac_x_includes=$ac_x_includes ac_x_libraries=$ac_x_libraries" +fi +fi + + fi + eval "$ac_cv_have_x" +fi # $with_x != no + +if test "$have_x" != yes; then + echo "$as_me:$LINENO: result: $have_x" >&5 +echo "${ECHO_T}$have_x" >&6 + no_x=yes +else + # If each of the values was on the command line, it overrides each guess. + test "x$x_includes" = xNONE && x_includes=$ac_x_includes + test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries + # Update the cache value to reflect the command line values. + ac_cv_have_x="have_x=yes \ + ac_x_includes=$x_includes ac_x_libraries=$x_libraries" + echo "$as_me:$LINENO: result: libraries $x_libraries, headers $x_includes" >&5 +echo "${ECHO_T}libraries $x_libraries, headers $x_includes" >&6 +fi + +if test "$no_x" = yes; then + # Not all programs may use this symbol, but it does not hurt to define it. + +cat >>confdefs.h <<\_ACEOF +#define X_DISPLAY_MISSING 1 +_ACEOF + + X_CFLAGS= X_PRE_LIBS= X_LIBS= X_EXTRA_LIBS= +else + if test -n "$x_includes"; then + X_CFLAGS="$X_CFLAGS -I$x_includes" + fi + + # It would also be nice to do this for all -L options, not just this one. + if test -n "$x_libraries"; then + X_LIBS="$X_LIBS -L$x_libraries" + # For Solaris; some versions of Sun CC require a space after -R and + # others require no space. Words are not sufficient . . . . + case `(uname -sr) 2>/dev/null` in + "SunOS 5"*) + echo "$as_me:$LINENO: checking whether -R must be followed by a space" >&5 +echo $ECHO_N "checking whether -R must be followed by a space... $ECHO_C" >&6 + ac_xsave_LIBS=$LIBS; LIBS="$LIBS -R$x_libraries" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_R_nospace=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_R_nospace=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test $ac_R_nospace = yes; then + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + X_LIBS="$X_LIBS -R$x_libraries" + else + LIBS="$ac_xsave_LIBS -R $x_libraries" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_R_space=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_R_space=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test $ac_R_space = yes; then + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + X_LIBS="$X_LIBS -R $x_libraries" + else + echo "$as_me:$LINENO: result: neither works" >&5 +echo "${ECHO_T}neither works" >&6 + fi + fi + LIBS=$ac_xsave_LIBS + esac + fi + + # Check for system-dependent libraries X programs must link with. + # Do this before checking for the system-independent R6 libraries + # (-lICE), since we may need -lsocket or whatever for X linking. + + if test "$ISC" = yes; then + X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl_s -linet" + else + # Martyn Johnson says this is needed for Ultrix, if the X + # libraries were built with DECnet support. And Karl Berry says + # the Alpha needs dnet_stub (dnet does not exist). + ac_xsave_LIBS="$LIBS"; LIBS="$LIBS $X_LIBS -lX11" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char XOpenDisplay (); +int +main () +{ +XOpenDisplay (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +echo "$as_me:$LINENO: checking for dnet_ntoa in -ldnet" >&5 +echo $ECHO_N "checking for dnet_ntoa in -ldnet... $ECHO_C" >&6 +if test "${ac_cv_lib_dnet_dnet_ntoa+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldnet $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char dnet_ntoa (); +int +main () +{ +dnet_ntoa (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_dnet_dnet_ntoa=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_dnet_dnet_ntoa=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_dnet_dnet_ntoa" >&5 +echo "${ECHO_T}$ac_cv_lib_dnet_dnet_ntoa" >&6 +if test $ac_cv_lib_dnet_dnet_ntoa = yes; then + X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet" +fi + + if test $ac_cv_lib_dnet_dnet_ntoa = no; then + echo "$as_me:$LINENO: checking for dnet_ntoa in -ldnet_stub" >&5 +echo $ECHO_N "checking for dnet_ntoa in -ldnet_stub... $ECHO_C" >&6 +if test "${ac_cv_lib_dnet_stub_dnet_ntoa+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldnet_stub $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char dnet_ntoa (); +int +main () +{ +dnet_ntoa (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_dnet_stub_dnet_ntoa=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_dnet_stub_dnet_ntoa=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5 +echo "${ECHO_T}$ac_cv_lib_dnet_stub_dnet_ntoa" >&6 +if test $ac_cv_lib_dnet_stub_dnet_ntoa = yes; then + X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub" +fi + + fi +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$ac_xsave_LIBS" + + # msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT, + # to get the SysV transport functions. + # Chad R. Larson says the Pyramis MIS-ES running DC/OSx (SVR4) + # needs -lnsl. + # The nsl library prevents programs from opening the X display + # on Irix 5.2, according to T.E. Dickey. + # The functions gethostbyname, getservbyname, and inet_addr are + # in -lbsd on LynxOS 3.0.1/i386, according to Lars Hecking. + echo "$as_me:$LINENO: checking for gethostbyname" >&5 +echo $ECHO_N "checking for gethostbyname... $ECHO_C" >&6 +if test "${ac_cv_func_gethostbyname+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define gethostbyname to an innocuous variant, in case declares gethostbyname. + For example, HP-UX 11i declares gettimeofday. */ +#define gethostbyname innocuous_gethostbyname + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char gethostbyname (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef gethostbyname + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char gethostbyname (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_gethostbyname) || defined (__stub___gethostbyname) +choke me +#else +char (*f) () = gethostbyname; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != gethostbyname; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_gethostbyname=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_func_gethostbyname=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_func_gethostbyname" >&5 +echo "${ECHO_T}$ac_cv_func_gethostbyname" >&6 + + if test $ac_cv_func_gethostbyname = no; then + echo "$as_me:$LINENO: checking for gethostbyname in -lnsl" >&5 +echo $ECHO_N "checking for gethostbyname in -lnsl... $ECHO_C" >&6 +if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lnsl $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char gethostbyname (); +int +main () +{ +gethostbyname (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_nsl_gethostbyname=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_nsl_gethostbyname=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_gethostbyname" >&5 +echo "${ECHO_T}$ac_cv_lib_nsl_gethostbyname" >&6 +if test $ac_cv_lib_nsl_gethostbyname = yes; then + X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl" +fi + + if test $ac_cv_lib_nsl_gethostbyname = no; then + echo "$as_me:$LINENO: checking for gethostbyname in -lbsd" >&5 +echo $ECHO_N "checking for gethostbyname in -lbsd... $ECHO_C" >&6 +if test "${ac_cv_lib_bsd_gethostbyname+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lbsd $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char gethostbyname (); +int +main () +{ +gethostbyname (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_bsd_gethostbyname=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_bsd_gethostbyname=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_bsd_gethostbyname" >&5 +echo "${ECHO_T}$ac_cv_lib_bsd_gethostbyname" >&6 +if test $ac_cv_lib_bsd_gethostbyname = yes; then + X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd" +fi + + fi + fi + + # lieder@skyler.mavd.honeywell.com says without -lsocket, + # socket/setsockopt and other routines are undefined under SCO ODT + # 2.0. But -lsocket is broken on IRIX 5.2 (and is not necessary + # on later versions), says Simon Leinen: it contains gethostby* + # variants that don't use the name server (or something). -lsocket + # must be given before -lnsl if both are needed. We assume that + # if connect needs -lnsl, so does gethostbyname. + echo "$as_me:$LINENO: checking for connect" >&5 +echo $ECHO_N "checking for connect... $ECHO_C" >&6 +if test "${ac_cv_func_connect+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define connect to an innocuous variant, in case declares connect. + For example, HP-UX 11i declares gettimeofday. */ +#define connect innocuous_connect + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char connect (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef connect + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char connect (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_connect) || defined (__stub___connect) +choke me +#else +char (*f) () = connect; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != connect; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_connect=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_func_connect=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_func_connect" >&5 +echo "${ECHO_T}$ac_cv_func_connect" >&6 + + if test $ac_cv_func_connect = no; then + echo "$as_me:$LINENO: checking for connect in -lsocket" >&5 +echo $ECHO_N "checking for connect in -lsocket... $ECHO_C" >&6 +if test "${ac_cv_lib_socket_connect+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsocket $X_EXTRA_LIBS $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char connect (); +int +main () +{ +connect (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_socket_connect=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_socket_connect=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_socket_connect" >&5 +echo "${ECHO_T}$ac_cv_lib_socket_connect" >&6 +if test $ac_cv_lib_socket_connect = yes; then + X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS" +fi + + fi + + # Guillermo Gomez says -lposix is necessary on A/UX. + echo "$as_me:$LINENO: checking for remove" >&5 +echo $ECHO_N "checking for remove... $ECHO_C" >&6 +if test "${ac_cv_func_remove+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define remove to an innocuous variant, in case declares remove. + For example, HP-UX 11i declares gettimeofday. */ +#define remove innocuous_remove + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char remove (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef remove + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char remove (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_remove) || defined (__stub___remove) +choke me +#else +char (*f) () = remove; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != remove; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_remove=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_func_remove=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_func_remove" >&5 +echo "${ECHO_T}$ac_cv_func_remove" >&6 + + if test $ac_cv_func_remove = no; then + echo "$as_me:$LINENO: checking for remove in -lposix" >&5 +echo $ECHO_N "checking for remove in -lposix... $ECHO_C" >&6 +if test "${ac_cv_lib_posix_remove+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lposix $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char remove (); +int +main () +{ +remove (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_posix_remove=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_posix_remove=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_posix_remove" >&5 +echo "${ECHO_T}$ac_cv_lib_posix_remove" >&6 +if test $ac_cv_lib_posix_remove = yes; then + X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix" +fi + + fi + + # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. + echo "$as_me:$LINENO: checking for shmat" >&5 +echo $ECHO_N "checking for shmat... $ECHO_C" >&6 +if test "${ac_cv_func_shmat+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define shmat to an innocuous variant, in case declares shmat. + For example, HP-UX 11i declares gettimeofday. */ +#define shmat innocuous_shmat + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char shmat (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef shmat + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char shmat (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_shmat) || defined (__stub___shmat) +choke me +#else +char (*f) () = shmat; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != shmat; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_shmat=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_func_shmat=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_func_shmat" >&5 +echo "${ECHO_T}$ac_cv_func_shmat" >&6 + + if test $ac_cv_func_shmat = no; then + echo "$as_me:$LINENO: checking for shmat in -lipc" >&5 +echo $ECHO_N "checking for shmat in -lipc... $ECHO_C" >&6 +if test "${ac_cv_lib_ipc_shmat+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lipc $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char shmat (); +int +main () +{ +shmat (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_ipc_shmat=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_ipc_shmat=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_ipc_shmat" >&5 +echo "${ECHO_T}$ac_cv_lib_ipc_shmat" >&6 +if test $ac_cv_lib_ipc_shmat = yes; then + X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc" +fi + + fi + fi + + # Check for libraries that X11R6 Xt/Xaw programs need. + ac_save_LDFLAGS=$LDFLAGS + test -n "$x_libraries" && LDFLAGS="$LDFLAGS -L$x_libraries" + # SM needs ICE to (dynamically) link under SunOS 4.x (so we have to + # check for ICE first), but we must link in the order -lSM -lICE or + # we get undefined symbols. So assume we have SM if we have ICE. + # These have to be linked with before -lX11, unlike the other + # libraries we check for below, so use a different variable. + # John Interrante, Karl Berry + echo "$as_me:$LINENO: checking for IceConnectionNumber in -lICE" >&5 +echo $ECHO_N "checking for IceConnectionNumber in -lICE... $ECHO_C" >&6 +if test "${ac_cv_lib_ICE_IceConnectionNumber+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lICE $X_EXTRA_LIBS $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char IceConnectionNumber (); +int +main () +{ +IceConnectionNumber (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_ICE_IceConnectionNumber=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_ICE_IceConnectionNumber=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5 +echo "${ECHO_T}$ac_cv_lib_ICE_IceConnectionNumber" >&6 +if test $ac_cv_lib_ICE_IceConnectionNumber = yes; then + X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE" +fi + + LDFLAGS=$ac_save_LDFLAGS + +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +for ac_header in \ + assert.h \ + fcntl.h \ + grp.h \ + pwd.h \ + libc.h \ + limits.h \ + stdarg.h \ + stdlib.h \ + stdint.h \ + string.h \ + strings.h \ + termios.h \ + termcap.h \ + term.h \ + unistd.h \ + sys/bitypes.h \ + sys/byteorder.h \ + sys/ioctl.h \ + sys/select.h \ + sys/socket.h \ + sys/sockio.h \ + sys/stat.h \ + sys/time.h \ + sys/types.h \ + arpa/nameser.h \ + resolv.h \ + mtio.h \ + sys/mtio.h \ + sys/tape.h \ + regex.h \ + +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_header_compiler=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + +echo "$as_me:$LINENO: checking for ANSI C header files" >&5 +echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 +if test "${ac_cv_header_stdc+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#include +#include + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_header_stdc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_header_stdc=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then + : +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then + : +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then + : +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + exit(2); + exit (0); +} +_ACEOF +rm -f conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_header_stdc=no +fi +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +fi +fi +echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 +echo "${ECHO_T}$ac_cv_header_stdc" >&6 +if test $ac_cv_header_stdc = yes; then + +cat >>confdefs.h <<\_ACEOF +#define STDC_HEADERS 1 +_ACEOF + +fi + +echo "$as_me:$LINENO: checking whether sys/types.h defines makedev" >&5 +echo $ECHO_N "checking whether sys/types.h defines makedev... $ECHO_C" >&6 +if test "${ac_cv_header_sys_types_h_makedev+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +return makedev(0, 0); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_header_sys_types_h_makedev=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_header_sys_types_h_makedev=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi +echo "$as_me:$LINENO: result: $ac_cv_header_sys_types_h_makedev" >&5 +echo "${ECHO_T}$ac_cv_header_sys_types_h_makedev" >&6 + +if test $ac_cv_header_sys_types_h_makedev = no; then +if test "${ac_cv_header_sys_mkdev_h+set}" = set; then + echo "$as_me:$LINENO: checking for sys/mkdev.h" >&5 +echo $ECHO_N "checking for sys/mkdev.h... $ECHO_C" >&6 +if test "${ac_cv_header_sys_mkdev_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: $ac_cv_header_sys_mkdev_h" >&5 +echo "${ECHO_T}$ac_cv_header_sys_mkdev_h" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking sys/mkdev.h usability" >&5 +echo $ECHO_N "checking sys/mkdev.h usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_header_compiler=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking sys/mkdev.h presence" >&5 +echo $ECHO_N "checking sys/mkdev.h presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: sys/mkdev.h: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: sys/mkdev.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/mkdev.h: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: sys/mkdev.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: sys/mkdev.h: present but cannot be compiled" >&5 +echo "$as_me: WARNING: sys/mkdev.h: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/mkdev.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: sys/mkdev.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/mkdev.h: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: sys/mkdev.h: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/mkdev.h: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: sys/mkdev.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/mkdev.h: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: sys/mkdev.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/mkdev.h: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: sys/mkdev.h: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for sys/mkdev.h" >&5 +echo $ECHO_N "checking for sys/mkdev.h... $ECHO_C" >&6 +if test "${ac_cv_header_sys_mkdev_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_header_sys_mkdev_h=$ac_header_preproc +fi +echo "$as_me:$LINENO: result: $ac_cv_header_sys_mkdev_h" >&5 +echo "${ECHO_T}$ac_cv_header_sys_mkdev_h" >&6 + +fi +if test $ac_cv_header_sys_mkdev_h = yes; then + +cat >>confdefs.h <<\_ACEOF +#define MAJOR_IN_MKDEV 1 +_ACEOF + +fi + + + + if test $ac_cv_header_sys_mkdev_h = no; then + if test "${ac_cv_header_sys_sysmacros_h+set}" = set; then + echo "$as_me:$LINENO: checking for sys/sysmacros.h" >&5 +echo $ECHO_N "checking for sys/sysmacros.h... $ECHO_C" >&6 +if test "${ac_cv_header_sys_sysmacros_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: $ac_cv_header_sys_sysmacros_h" >&5 +echo "${ECHO_T}$ac_cv_header_sys_sysmacros_h" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking sys/sysmacros.h usability" >&5 +echo $ECHO_N "checking sys/sysmacros.h usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_header_compiler=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking sys/sysmacros.h presence" >&5 +echo $ECHO_N "checking sys/sysmacros.h presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: sys/sysmacros.h: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: sys/sysmacros.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/sysmacros.h: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: sys/sysmacros.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: sys/sysmacros.h: present but cannot be compiled" >&5 +echo "$as_me: WARNING: sys/sysmacros.h: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/sysmacros.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: sys/sysmacros.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/sysmacros.h: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: sys/sysmacros.h: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/sysmacros.h: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: sys/sysmacros.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/sysmacros.h: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: sys/sysmacros.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/sysmacros.h: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: sys/sysmacros.h: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for sys/sysmacros.h" >&5 +echo $ECHO_N "checking for sys/sysmacros.h... $ECHO_C" >&6 +if test "${ac_cv_header_sys_sysmacros_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_header_sys_sysmacros_h=$ac_header_preproc +fi +echo "$as_me:$LINENO: result: $ac_cv_header_sys_sysmacros_h" >&5 +echo "${ECHO_T}$ac_cv_header_sys_sysmacros_h" >&6 + +fi +if test $ac_cv_header_sys_sysmacros_h = yes; then + +cat >>confdefs.h <<\_ACEOF +#define MAJOR_IN_SYSMACROS 1 +_ACEOF + +fi + + + fi +fi + + + + + + +ac_header_dirent=no +for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do + as_ac_Header=`echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_hdr that defines DIR" >&5 +echo $ECHO_N "checking for $ac_hdr that defines DIR... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include <$ac_hdr> + +int +main () +{ +if ((DIR *) 0) +return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_Header=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +eval "$as_ac_Header=no" +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_hdr" | $as_tr_cpp` 1 +_ACEOF + +ac_header_dirent=$ac_hdr; break +fi + +done +# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. +if test $ac_header_dirent = dirent.h; then + echo "$as_me:$LINENO: checking for library containing opendir" >&5 +echo $ECHO_N "checking for library containing opendir... $ECHO_C" >&6 +if test "${ac_cv_search_opendir+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_func_search_save_LIBS=$LIBS +ac_cv_search_opendir=no +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char opendir (); +int +main () +{ +opendir (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_search_opendir="none required" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +if test "$ac_cv_search_opendir" = no; then + for ac_lib in dir; do + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char opendir (); +int +main () +{ +opendir (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_search_opendir="-l$ac_lib" +break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + done +fi +LIBS=$ac_func_search_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5 +echo "${ECHO_T}$ac_cv_search_opendir" >&6 +if test "$ac_cv_search_opendir" != no; then + test "$ac_cv_search_opendir" = "none required" || LIBS="$ac_cv_search_opendir $LIBS" + +fi + +else + echo "$as_me:$LINENO: checking for library containing opendir" >&5 +echo $ECHO_N "checking for library containing opendir... $ECHO_C" >&6 +if test "${ac_cv_search_opendir+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_func_search_save_LIBS=$LIBS +ac_cv_search_opendir=no +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char opendir (); +int +main () +{ +opendir (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_search_opendir="none required" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +if test "$ac_cv_search_opendir" = no; then + for ac_lib in x; do + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char opendir (); +int +main () +{ +opendir (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_search_opendir="-l$ac_lib" +break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + done +fi +LIBS=$ac_func_search_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5 +echo "${ECHO_T}$ac_cv_search_opendir" >&6 +if test "$ac_cv_search_opendir" != no; then + test "$ac_cv_search_opendir" = "none required" || LIBS="$ac_cv_search_opendir $LIBS" + +fi + +fi + +echo "$as_me:$LINENO: checking whether stat file-mode macros are broken" >&5 +echo $ECHO_N "checking whether stat file-mode macros are broken... $ECHO_C" >&6 +if test "${ac_cv_header_stat_broken+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include + +#if defined(S_ISBLK) && defined(S_IFDIR) +# if S_ISBLK (S_IFDIR) +You lose. +# endif +#endif + +#if defined(S_ISBLK) && defined(S_IFCHR) +# if S_ISBLK (S_IFCHR) +You lose. +# endif +#endif + +#if defined(S_ISLNK) && defined(S_IFREG) +# if S_ISLNK (S_IFREG) +You lose. +# endif +#endif + +#if defined(S_ISSOCK) && defined(S_IFREG) +# if S_ISSOCK (S_IFREG) +You lose. +# endif +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "You lose" >/dev/null 2>&1; then + ac_cv_header_stat_broken=yes +else + ac_cv_header_stat_broken=no +fi +rm -f conftest* + +fi +echo "$as_me:$LINENO: result: $ac_cv_header_stat_broken" >&5 +echo "${ECHO_T}$ac_cv_header_stat_broken" >&6 +if test $ac_cv_header_stat_broken = yes; then + +cat >>confdefs.h <<\_ACEOF +#define STAT_MACROS_BROKEN 1 +_ACEOF + +fi + +echo "$as_me:$LINENO: checking for sys/wait.h that is POSIX.1 compatible" >&5 +echo $ECHO_N "checking for sys/wait.h that is POSIX.1 compatible... $ECHO_C" >&6 +if test "${ac_cv_header_sys_wait_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#ifndef WEXITSTATUS +# define WEXITSTATUS(stat_val) ((unsigned)(stat_val) >> 8) +#endif +#ifndef WIFEXITED +# define WIFEXITED(stat_val) (((stat_val) & 255) == 0) +#endif + +int +main () +{ + int s; + wait (&s); + s = WIFEXITED (s) ? WEXITSTATUS (s) : 1; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_header_sys_wait_h=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_header_sys_wait_h=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_header_sys_wait_h" >&5 +echo "${ECHO_T}$ac_cv_header_sys_wait_h" >&6 +if test $ac_cv_header_sys_wait_h = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_SYS_WAIT_H 1 +_ACEOF + +fi + +echo "$as_me:$LINENO: checking whether time.h and sys/time.h may both be included" >&5 +echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6 +if test "${ac_cv_header_time+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#include + +int +main () +{ +if ((struct tm *) 0) +return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_header_time=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_header_time=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_header_time" >&5 +echo "${ECHO_T}$ac_cv_header_time" >&6 +if test $ac_cv_header_time = yes; then + +cat >>confdefs.h <<\_ACEOF +#define TIME_WITH_SYS_TIME 1 +_ACEOF + +fi + + +echo "$as_me:$LINENO: checking for struct stat.st_blksize" >&5 +echo $ECHO_N "checking for struct stat.st_blksize... $ECHO_C" >&6 +if test "${ac_cv_member_struct_stat_st_blksize+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static struct stat ac_aggr; +if (ac_aggr.st_blksize) +return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_member_struct_stat_st_blksize=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static struct stat ac_aggr; +if (sizeof ac_aggr.st_blksize) +return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_member_struct_stat_st_blksize=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_member_struct_stat_st_blksize=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_blksize" >&5 +echo "${ECHO_T}$ac_cv_member_struct_stat_st_blksize" >&6 +if test $ac_cv_member_struct_stat_st_blksize = yes; then + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STAT_ST_BLKSIZE 1 +_ACEOF + + +cat >>confdefs.h <<\_ACEOF +#define HAVE_ST_BLKSIZE 1 +_ACEOF + +fi + + +echo "$as_me:$LINENO: checking for struct stat.st_blocks" >&5 +echo $ECHO_N "checking for struct stat.st_blocks... $ECHO_C" >&6 +if test "${ac_cv_member_struct_stat_st_blocks+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static struct stat ac_aggr; +if (ac_aggr.st_blocks) +return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_member_struct_stat_st_blocks=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static struct stat ac_aggr; +if (sizeof ac_aggr.st_blocks) +return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_member_struct_stat_st_blocks=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_member_struct_stat_st_blocks=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_blocks" >&5 +echo "${ECHO_T}$ac_cv_member_struct_stat_st_blocks" >&6 +if test $ac_cv_member_struct_stat_st_blocks = yes; then + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STAT_ST_BLOCKS 1 +_ACEOF + + +cat >>confdefs.h <<\_ACEOF +#define HAVE_ST_BLOCKS 1 +_ACEOF + +else + case $LIBOBJS in + "fileblocks.$ac_objext" | \ + *" fileblocks.$ac_objext" | \ + "fileblocks.$ac_objext "* | \ + *" fileblocks.$ac_objext "* ) ;; + *) LIBOBJS="$LIBOBJS fileblocks.$ac_objext" ;; +esac + +fi + + +echo "$as_me:$LINENO: checking whether struct tm is in sys/time.h or time.h" >&5 +echo $ECHO_N "checking whether struct tm is in sys/time.h or time.h... $ECHO_C" >&6 +if test "${ac_cv_struct_tm+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include + +int +main () +{ +struct tm *tp; tp->tm_sec; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_struct_tm=time.h +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_struct_tm=sys/time.h +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_struct_tm" >&5 +echo "${ECHO_T}$ac_cv_struct_tm" >&6 +if test $ac_cv_struct_tm = sys/time.h; then + +cat >>confdefs.h <<\_ACEOF +#define TM_IN_SYS_TIME 1 +_ACEOF + +fi + +echo "$as_me:$LINENO: checking for struct tm.tm_zone" >&5 +echo $ECHO_N "checking for struct tm.tm_zone... $ECHO_C" >&6 +if test "${ac_cv_member_struct_tm_tm_zone+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include <$ac_cv_struct_tm> + + +int +main () +{ +static struct tm ac_aggr; +if (ac_aggr.tm_zone) +return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_member_struct_tm_tm_zone=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include <$ac_cv_struct_tm> + + +int +main () +{ +static struct tm ac_aggr; +if (sizeof ac_aggr.tm_zone) +return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_member_struct_tm_tm_zone=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_member_struct_tm_tm_zone=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_member_struct_tm_tm_zone" >&5 +echo "${ECHO_T}$ac_cv_member_struct_tm_tm_zone" >&6 +if test $ac_cv_member_struct_tm_tm_zone = yes; then + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_TM_TM_ZONE 1 +_ACEOF + + +fi + +if test "$ac_cv_member_struct_tm_tm_zone" = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_TM_ZONE 1 +_ACEOF + +else + echo "$as_me:$LINENO: checking for tzname" >&5 +echo $ECHO_N "checking for tzname... $ECHO_C" >&6 +if test "${ac_cv_var_tzname+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#ifndef tzname /* For SGI. */ +extern char *tzname[]; /* RS6000 and others reject char **tzname. */ +#endif + +int +main () +{ +atoi(*tzname); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_var_tzname=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_var_tzname=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_var_tzname" >&5 +echo "${ECHO_T}$ac_cv_var_tzname" >&6 + if test $ac_cv_var_tzname = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_TZNAME 1 +_ACEOF + + fi +fi + + +echo "$as_me:$LINENO: checking for utime.h" >&5 +echo $ECHO_N "checking for utime.h... $ECHO_C" >&6 +if test "${ba_cv_header_utime_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +#include +#include +int +main () +{ +struct utimbuf foo + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ba_cv_header_utime_h=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ba_cv_header_utime_h=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ba_cv_header_utime_h" >&5 +echo "${ECHO_T}$ba_cv_header_utime_h" >&6 +test $ba_cv_header_utime_h = yes && +cat >>confdefs.h <<\_ACEOF +#define HAVE_UTIME_H 1 +_ACEOF + + +echo "$as_me:$LINENO: checking for socklen_t" >&5 +echo $ECHO_N "checking for socklen_t... $ECHO_C" >&6 +if test "${ba_cv_header_socklen_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +#include +#include +int +main () +{ +socklen_t x + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ba_cv_header_socklen_t=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ba_cv_header_socklen_t=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ba_cv_header_socklen_t" >&5 +echo "${ECHO_T}$ba_cv_header_socklen_t" >&6 +test $ba_cv_header_socklen_t = yes && cat >>confdefs.h <<\_ACEOF +#define HAVE_SOCKLEN_T 1 +_ACEOF + + +echo "$as_me:$LINENO: checking for bigendian" >&5 +echo $ECHO_N "checking for bigendian... $ECHO_C" >&6 +if test "${ba_cv_bigendian+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$cross_compiling" = yes; then + ba_cv_bigendian=no +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +main(){long a=1L; char *p=(char *)&a; exit(*p);} +_ACEOF +rm -f conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ba_cv_bigendian=yes +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ba_cv_bigendian=no +fi +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +fi +echo "$as_me:$LINENO: result: $ba_cv_bigendian" >&5 +echo "${ECHO_T}$ba_cv_bigendian" >&6 +test $ba_cv_bigendian = yes && cat >>confdefs.h <<\_ACEOF +#define HAVE_BIGENDIAN 1 +_ACEOF + + +ac_ext=cc +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + +echo "$as_me:$LINENO: checking for typeof" >&5 +echo $ECHO_N "checking for typeof... $ECHO_C" >&6 +if test "${ba_cv_have_typeof+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$cross_compiling" = yes; then + ba_cv_have_typeof=no +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +main(){char *a = 0; a = (typeof a)a;} +_ACEOF +rm -f conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ba_cv_have_typeof=yes +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ba_cv_have_typeof=no +fi +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +fi +echo "$as_me:$LINENO: result: $ba_cv_have_typeof" >&5 +echo "${ECHO_T}$ba_cv_have_typeof" >&6 +test $ba_cv_have_typeof = yes && +cat >>confdefs.h <<\_ACEOF +#define HAVE_TYPEOF 1 +_ACEOF + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5 +echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6 +if test "${ac_cv_c_const+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ +/* FIXME: Include the comments suggested by Paul. */ +#ifndef __cplusplus + /* Ultrix mips cc rejects this. */ + typedef int charset[2]; + const charset x; + /* SunOS 4.1.1 cc rejects this. */ + char const *const *ccp; + char **p; + /* NEC SVR4.0.2 mips cc rejects this. */ + struct point {int x, y;}; + static struct point const zero = {0,0}; + /* AIX XL C 1.02.0.0 rejects this. + It does not let you subtract one const X* pointer from another in + an arm of an if-expression whose if-part is not a constant + expression */ + const char *g = "string"; + ccp = &g + (g ? g-g : 0); + /* HPUX 7.0 cc rejects these. */ + ++ccp; + p = (char**) ccp; + ccp = (char const *const *) p; + { /* SCO 3.2v4 cc rejects this. */ + char *t; + char const *s = 0 ? (char *) 0 : (char const *) 0; + + *t++ = 0; + } + { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ + int x[] = {25, 17}; + const int *foo = &x[0]; + ++foo; + } + { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ + typedef const int *iptr; + iptr p = 0; + ++p; + } + { /* AIX XL C 1.02.0.0 rejects this saying + "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ + struct s { int j; const int *ap[3]; }; + struct s *b; b->j = 5; + } + { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ + const int foo = 10; + } +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_c_const=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_c_const=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5 +echo "${ECHO_T}$ac_cv_c_const" >&6 +if test $ac_cv_c_const = no; then + +cat >>confdefs.h <<\_ACEOF +#define const +_ACEOF + +fi + + + +echo "$as_me:$LINENO: checking how to get filesystem type" >&5 +echo $ECHO_N "checking how to get filesystem type... $ECHO_C" >&6 +fstype=no +# The order of these tests is important. +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + cat >>confdefs.h <<\_ACEOF +#define FSTYPE_STATVFS 1 +_ACEOF + fstype=SVR4 +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi +rm -f conftest.err conftest.$ac_ext +if test $fstype = no; then +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + cat >>confdefs.h <<\_ACEOF +#define FSTYPE_USG_STATFS 1 +_ACEOF + fstype=SVR3 +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi +rm -f conftest.err conftest.$ac_ext +fi +if test $fstype = no; then +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + cat >>confdefs.h <<\_ACEOF +#define FSTYPE_AIX_STATFS 1 +_ACEOF + fstype=AIX +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi +rm -f conftest.err conftest.$ac_ext +fi +if test $fstype = no; then +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + cat >>confdefs.h <<\_ACEOF +#define FSTYPE_MNTENT 1 +_ACEOF + fstype=4.3BSD +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi +rm -f conftest.err conftest.$ac_ext +fi +if test $fstype = no; then +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "f_type;" >/dev/null 2>&1; then + cat >>confdefs.h <<\_ACEOF +#define FSTYPE_STATFS 1 +_ACEOF + fstype=4.4BSD/OSF1 +fi +rm -f conftest* + +fi +if test $fstype = no; then +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + cat >>confdefs.h <<\_ACEOF +#define FSTYPE_GETMNT 1 +_ACEOF + fstype=Ultrix +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi +rm -f conftest.err conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $fstype" >&5 +echo "${ECHO_T}$fstype" >&6 + +if test "${ac_cv_header_sys_statvfs_h+set}" = set; then + echo "$as_me:$LINENO: checking for sys/statvfs.h" >&5 +echo $ECHO_N "checking for sys/statvfs.h... $ECHO_C" >&6 +if test "${ac_cv_header_sys_statvfs_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: $ac_cv_header_sys_statvfs_h" >&5 +echo "${ECHO_T}$ac_cv_header_sys_statvfs_h" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking sys/statvfs.h usability" >&5 +echo $ECHO_N "checking sys/statvfs.h usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_header_compiler=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking sys/statvfs.h presence" >&5 +echo $ECHO_N "checking sys/statvfs.h presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: sys/statvfs.h: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: sys/statvfs.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/statvfs.h: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: sys/statvfs.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: sys/statvfs.h: present but cannot be compiled" >&5 +echo "$as_me: WARNING: sys/statvfs.h: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/statvfs.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: sys/statvfs.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/statvfs.h: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: sys/statvfs.h: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/statvfs.h: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: sys/statvfs.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/statvfs.h: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: sys/statvfs.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/statvfs.h: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: sys/statvfs.h: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for sys/statvfs.h" >&5 +echo $ECHO_N "checking for sys/statvfs.h... $ECHO_C" >&6 +if test "${ac_cv_header_sys_statvfs_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_header_sys_statvfs_h=$ac_header_preproc +fi +echo "$as_me:$LINENO: result: $ac_cv_header_sys_statvfs_h" >&5 +echo "${ECHO_T}$ac_cv_header_sys_statvfs_h" >&6 + +fi +if test $ac_cv_header_sys_statvfs_h = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_SYS_STATVFS_H 1 +_ACEOF + +fi + + + +echo "$as_me:$LINENO: checking return type of signal handlers" >&5 +echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6 +if test "${ac_cv_type_signal+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#ifdef signal +# undef signal +#endif +#ifdef __cplusplus +extern "C" void (*signal (int, void (*)(int)))(int); +#else +void (*signal ()) (); +#endif + +int +main () +{ +int i; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_type_signal=void +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_type_signal=int +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_type_signal" >&5 +echo "${ECHO_T}$ac_cv_type_signal" >&6 + +cat >>confdefs.h <<_ACEOF +#define RETSIGTYPE $ac_cv_type_signal +_ACEOF + + + + echo "$as_me:$LINENO: checking for type of signal functions" >&5 +echo $ECHO_N "checking for type of signal functions... $ECHO_C" >&6 + if test "${bash_cv_signal_vintage+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ + + sigset_t ss; + struct sigaction sa; + sigemptyset(&ss); sigsuspend(&ss); + sigaction(SIGINT, &sa, (struct sigaction *) 0); + sigprocmask(SIG_BLOCK, &ss, (sigset_t *) 0); + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + bash_cv_signal_vintage="posix" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ + + int mask = sigmask(SIGINT); + sigsetmask(mask); sigblock(mask); sigpause(mask); + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + bash_cv_signal_vintage="4.2bsd" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + + #include + RETSIGTYPE foo() { } +int +main () +{ + + int mask = sigmask(SIGINT); + sigset(SIGINT, foo); sigrelse(SIGINT); + sighold(SIGINT); sigpause(SIGINT); + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + bash_cv_signal_vintage="svr3" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +bash_cv_signal_vintage="v7" + +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi + + echo "$as_me:$LINENO: result: $bash_cv_signal_vintage" >&5 +echo "${ECHO_T}$bash_cv_signal_vintage" >&6 + if test "$bash_cv_signal_vintage" = "posix"; then + cat >>confdefs.h <<\_ACEOF +#define HAVE_POSIX_SIGNALS 1 +_ACEOF + + elif test "$bash_cv_signal_vintage" = "4.2bsd"; then + cat >>confdefs.h <<\_ACEOF +#define HAVE_BSD_SIGNALS 1 +_ACEOF + + elif test "$bash_cv_signal_vintage" = "svr3"; then + cat >>confdefs.h <<\_ACEOF +#define HAVE_USG_SIGHOLD 1 +_ACEOF + + fi + +echo "$as_me:$LINENO: checking for mode_t" >&5 +echo $ECHO_N "checking for mode_t... $ECHO_C" >&6 +if test "${ac_cv_type_mode_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if ((mode_t *) 0) + return 0; +if (sizeof (mode_t)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_type_mode_t=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_type_mode_t=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_type_mode_t" >&5 +echo "${ECHO_T}$ac_cv_type_mode_t" >&6 +if test $ac_cv_type_mode_t = yes; then + : +else + +cat >>confdefs.h <<_ACEOF +#define mode_t int +_ACEOF + +fi + +echo "$as_me:$LINENO: checking for uid_t in sys/types.h" >&5 +echo $ECHO_N "checking for uid_t in sys/types.h... $ECHO_C" >&6 +if test "${ac_cv_type_uid_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "uid_t" >/dev/null 2>&1; then + ac_cv_type_uid_t=yes +else + ac_cv_type_uid_t=no +fi +rm -f conftest* + +fi +echo "$as_me:$LINENO: result: $ac_cv_type_uid_t" >&5 +echo "${ECHO_T}$ac_cv_type_uid_t" >&6 +if test $ac_cv_type_uid_t = no; then + +cat >>confdefs.h <<\_ACEOF +#define uid_t int +_ACEOF + + +cat >>confdefs.h <<\_ACEOF +#define gid_t int +_ACEOF + +fi + +echo "$as_me:$LINENO: checking for size_t" >&5 +echo $ECHO_N "checking for size_t... $ECHO_C" >&6 +if test "${ac_cv_type_size_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if ((size_t *) 0) + return 0; +if (sizeof (size_t)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_type_size_t=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_type_size_t=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5 +echo "${ECHO_T}$ac_cv_type_size_t" >&6 +if test $ac_cv_type_size_t = yes; then + : +else + +cat >>confdefs.h <<_ACEOF +#define size_t unsigned +_ACEOF + +fi + +echo "$as_me:$LINENO: checking for pid_t" >&5 +echo $ECHO_N "checking for pid_t... $ECHO_C" >&6 +if test "${ac_cv_type_pid_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if ((pid_t *) 0) + return 0; +if (sizeof (pid_t)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_type_pid_t=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_type_pid_t=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_type_pid_t" >&5 +echo "${ECHO_T}$ac_cv_type_pid_t" >&6 +if test $ac_cv_type_pid_t = yes; then + : +else + +cat >>confdefs.h <<_ACEOF +#define pid_t int +_ACEOF + +fi + +echo "$as_me:$LINENO: checking for off_t" >&5 +echo $ECHO_N "checking for off_t... $ECHO_C" >&6 +if test "${ac_cv_type_off_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if ((off_t *) 0) + return 0; +if (sizeof (off_t)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_type_off_t=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_type_off_t=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_type_off_t" >&5 +echo "${ECHO_T}$ac_cv_type_off_t" >&6 +if test $ac_cv_type_off_t = yes; then + : +else + +cat >>confdefs.h <<_ACEOF +#define off_t long +_ACEOF + +fi + +echo "$as_me:$LINENO: checking for ino_t" >&5 +echo $ECHO_N "checking for ino_t... $ECHO_C" >&6 +if test "${ac_cv_type_ino_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if ((ino_t *) 0) + return 0; +if (sizeof (ino_t)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_type_ino_t=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_type_ino_t=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_type_ino_t" >&5 +echo "${ECHO_T}$ac_cv_type_ino_t" >&6 +if test $ac_cv_type_ino_t = yes; then + : +else + +cat >>confdefs.h <<_ACEOF +#define ino_t unsigned long +_ACEOF + +fi + +echo "$as_me:$LINENO: checking for dev_t" >&5 +echo $ECHO_N "checking for dev_t... $ECHO_C" >&6 +if test "${ac_cv_type_dev_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if ((dev_t *) 0) + return 0; +if (sizeof (dev_t)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_type_dev_t=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_type_dev_t=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_type_dev_t" >&5 +echo "${ECHO_T}$ac_cv_type_dev_t" >&6 +if test $ac_cv_type_dev_t = yes; then + : +else + +cat >>confdefs.h <<_ACEOF +#define dev_t unsigned long +_ACEOF + +fi + +echo "$as_me:$LINENO: checking for daddr_t" >&5 +echo $ECHO_N "checking for daddr_t... $ECHO_C" >&6 +if test "${ac_cv_type_daddr_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if ((daddr_t *) 0) + return 0; +if (sizeof (daddr_t)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_type_daddr_t=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_type_daddr_t=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_type_daddr_t" >&5 +echo "${ECHO_T}$ac_cv_type_daddr_t" >&6 +if test $ac_cv_type_daddr_t = yes; then + : +else + +cat >>confdefs.h <<_ACEOF +#define daddr_t long +_ACEOF + +fi + +echo "$as_me:$LINENO: checking for major_t" >&5 +echo $ECHO_N "checking for major_t... $ECHO_C" >&6 +if test "${ac_cv_type_major_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if ((major_t *) 0) + return 0; +if (sizeof (major_t)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_type_major_t=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_type_major_t=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_type_major_t" >&5 +echo "${ECHO_T}$ac_cv_type_major_t" >&6 +if test $ac_cv_type_major_t = yes; then + : +else + +cat >>confdefs.h <<_ACEOF +#define major_t int +_ACEOF + +fi + +echo "$as_me:$LINENO: checking for minor_t" >&5 +echo $ECHO_N "checking for minor_t... $ECHO_C" >&6 +if test "${ac_cv_type_minor_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if ((minor_t *) 0) + return 0; +if (sizeof (minor_t)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_type_minor_t=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_type_minor_t=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_type_minor_t" >&5 +echo "${ECHO_T}$ac_cv_type_minor_t" >&6 +if test $ac_cv_type_minor_t = yes; then + : +else + +cat >>confdefs.h <<_ACEOF +#define minor_t int +_ACEOF + +fi + +echo "$as_me:$LINENO: checking for ssize_t" >&5 +echo $ECHO_N "checking for ssize_t... $ECHO_C" >&6 +if test "${ac_cv_type_ssize_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if ((ssize_t *) 0) + return 0; +if (sizeof (ssize_t)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_type_ssize_t=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_type_ssize_t=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_type_ssize_t" >&5 +echo "${ECHO_T}$ac_cv_type_ssize_t" >&6 +if test $ac_cv_type_ssize_t = yes; then + : +else + +cat >>confdefs.h <<_ACEOF +#define ssize_t int +_ACEOF + +fi + +echo "$as_me:$LINENO: checking for struct stat.st_blocks" >&5 +echo $ECHO_N "checking for struct stat.st_blocks... $ECHO_C" >&6 +if test "${ac_cv_member_struct_stat_st_blocks+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static struct stat ac_aggr; +if (ac_aggr.st_blocks) +return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_member_struct_stat_st_blocks=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static struct stat ac_aggr; +if (sizeof ac_aggr.st_blocks) +return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_member_struct_stat_st_blocks=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_member_struct_stat_st_blocks=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_blocks" >&5 +echo "${ECHO_T}$ac_cv_member_struct_stat_st_blocks" >&6 +if test $ac_cv_member_struct_stat_st_blocks = yes; then + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STAT_ST_BLOCKS 1 +_ACEOF + + +cat >>confdefs.h <<\_ACEOF +#define HAVE_ST_BLOCKS 1 +_ACEOF + +else + case $LIBOBJS in + "fileblocks.$ac_objext" | \ + *" fileblocks.$ac_objext" | \ + "fileblocks.$ac_objext "* | \ + *" fileblocks.$ac_objext "* ) ;; + *) LIBOBJS="$LIBOBJS fileblocks.$ac_objext" ;; +esac + +fi + + + +echo "$as_me:$LINENO: checking for struct stat.st_rdev" >&5 +echo $ECHO_N "checking for struct stat.st_rdev... $ECHO_C" >&6 +if test "${ac_cv_member_struct_stat_st_rdev+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static struct stat ac_aggr; +if (ac_aggr.st_rdev) +return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_member_struct_stat_st_rdev=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static struct stat ac_aggr; +if (sizeof ac_aggr.st_rdev) +return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_member_struct_stat_st_rdev=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_member_struct_stat_st_rdev=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_rdev" >&5 +echo "${ECHO_T}$ac_cv_member_struct_stat_st_rdev" >&6 +if test $ac_cv_member_struct_stat_st_rdev = yes; then + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STAT_ST_RDEV 1 +_ACEOF + + +cat >>confdefs.h <<\_ACEOF +#define HAVE_ST_RDEV 1 +_ACEOF + +fi + + +echo "$as_me:$LINENO: checking whether struct tm is in sys/time.h or time.h" >&5 +echo $ECHO_N "checking whether struct tm is in sys/time.h or time.h... $ECHO_C" >&6 +if test "${ac_cv_struct_tm+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include + +int +main () +{ +struct tm *tp; tp->tm_sec; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_struct_tm=time.h +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_struct_tm=sys/time.h +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_struct_tm" >&5 +echo "${ECHO_T}$ac_cv_struct_tm" >&6 +if test $ac_cv_struct_tm = sys/time.h; then + +cat >>confdefs.h <<\_ACEOF +#define TM_IN_SYS_TIME 1 +_ACEOF + +fi + +echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5 +echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6 +if test "${ac_cv_c_const+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ +/* FIXME: Include the comments suggested by Paul. */ +#ifndef __cplusplus + /* Ultrix mips cc rejects this. */ + typedef int charset[2]; + const charset x; + /* SunOS 4.1.1 cc rejects this. */ + char const *const *ccp; + char **p; + /* NEC SVR4.0.2 mips cc rejects this. */ + struct point {int x, y;}; + static struct point const zero = {0,0}; + /* AIX XL C 1.02.0.0 rejects this. + It does not let you subtract one const X* pointer from another in + an arm of an if-expression whose if-part is not a constant + expression */ + const char *g = "string"; + ccp = &g + (g ? g-g : 0); + /* HPUX 7.0 cc rejects these. */ + ++ccp; + p = (char**) ccp; + ccp = (char const *const *) p; + { /* SCO 3.2v4 cc rejects this. */ + char *t; + char const *s = 0 ? (char *) 0 : (char const *) 0; + + *t++ = 0; + } + { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ + int x[] = {25, 17}; + const int *foo = &x[0]; + ++foo; + } + { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ + typedef const int *iptr; + iptr p = 0; + ++p; + } + { /* AIX XL C 1.02.0.0 rejects this saying + "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ + struct s { int j; const int *ap[3]; }; + struct s *b; b->j = 5; + } + { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ + const int foo = 10; + } +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_c_const=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_c_const=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5 +echo "${ECHO_T}$ac_cv_c_const" >&6 +if test $ac_cv_c_const = no; then + +cat >>confdefs.h <<\_ACEOF +#define const +_ACEOF + +fi + + + +echo "$as_me:$LINENO: checking for char" >&5 +echo $ECHO_N "checking for char... $ECHO_C" >&6 +if test "${ac_cv_type_char+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if ((char *) 0) + return 0; +if (sizeof (char)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_type_char=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_type_char=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_type_char" >&5 +echo "${ECHO_T}$ac_cv_type_char" >&6 + +echo "$as_me:$LINENO: checking size of char" >&5 +echo $ECHO_N "checking size of char... $ECHO_C" >&6 +if test "${ac_cv_sizeof_char+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$ac_cv_type_char" = yes; then + # The cast to unsigned long works around a bug in the HP C Compiler + # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects + # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. + # This bug is HP SR number 8606223364. + if test "$cross_compiling" = yes; then + # Depending upon the size, compute the lo and hi bounds. +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static int test_array [1 - 2 * !(((long) (sizeof (char))) >= 0)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_lo=0 ac_mid=0 + while :; do + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static int test_array [1 - 2 * !(((long) (sizeof (char))) <= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_hi=$ac_mid; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_lo=`expr $ac_mid + 1` + if test $ac_lo -le $ac_mid; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid + 1` +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static int test_array [1 - 2 * !(((long) (sizeof (char))) < 0)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_hi=-1 ac_mid=-1 + while :; do + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static int test_array [1 - 2 * !(((long) (sizeof (char))) >= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_lo=$ac_mid; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_hi=`expr '(' $ac_mid ')' - 1` + if test $ac_mid -le $ac_hi; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid` +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_lo= ac_hi= +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +# Binary search between lo and hi bounds. +while test "x$ac_lo" != "x$ac_hi"; do + ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static int test_array [1 - 2 * !(((long) (sizeof (char))) <= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_hi=$ac_mid +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_lo=`expr '(' $ac_mid ')' + 1` +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +done +case $ac_lo in +?*) ac_cv_sizeof_char=$ac_lo;; +'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (char), 77 +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute sizeof (char), 77 +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } ;; +esac +else + if test "$cross_compiling" = yes; then + { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot run test program while cross compiling +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +long longval () { return (long) (sizeof (char)); } +unsigned long ulongval () { return (long) (sizeof (char)); } +#include +#include +int +main () +{ + + FILE *f = fopen ("conftest.val", "w"); + if (! f) + exit (1); + if (((long) (sizeof (char))) < 0) + { + long i = longval (); + if (i != ((long) (sizeof (char)))) + exit (1); + fprintf (f, "%ld\n", i); + } + else + { + unsigned long i = ulongval (); + if (i != ((long) (sizeof (char)))) + exit (1); + fprintf (f, "%lu\n", i); + } + exit (ferror (f) || fclose (f) != 0); + + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_sizeof_char=`cat conftest.val` +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +{ { echo "$as_me:$LINENO: error: cannot compute sizeof (char), 77 +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute sizeof (char), 77 +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +fi +rm -f conftest.val +else + ac_cv_sizeof_char=0 +fi +fi +echo "$as_me:$LINENO: result: $ac_cv_sizeof_char" >&5 +echo "${ECHO_T}$ac_cv_sizeof_char" >&6 +cat >>confdefs.h <<_ACEOF +#define SIZEOF_CHAR $ac_cv_sizeof_char +_ACEOF + + +echo "$as_me:$LINENO: checking for short int" >&5 +echo $ECHO_N "checking for short int... $ECHO_C" >&6 +if test "${ac_cv_type_short_int+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if ((short int *) 0) + return 0; +if (sizeof (short int)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_type_short_int=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_type_short_int=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_type_short_int" >&5 +echo "${ECHO_T}$ac_cv_type_short_int" >&6 + +echo "$as_me:$LINENO: checking size of short int" >&5 +echo $ECHO_N "checking size of short int... $ECHO_C" >&6 +if test "${ac_cv_sizeof_short_int+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$ac_cv_type_short_int" = yes; then + # The cast to unsigned long works around a bug in the HP C Compiler + # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects + # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. + # This bug is HP SR number 8606223364. + if test "$cross_compiling" = yes; then + # Depending upon the size, compute the lo and hi bounds. +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static int test_array [1 - 2 * !(((long) (sizeof (short int))) >= 0)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_lo=0 ac_mid=0 + while :; do + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static int test_array [1 - 2 * !(((long) (sizeof (short int))) <= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_hi=$ac_mid; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_lo=`expr $ac_mid + 1` + if test $ac_lo -le $ac_mid; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid + 1` +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static int test_array [1 - 2 * !(((long) (sizeof (short int))) < 0)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_hi=-1 ac_mid=-1 + while :; do + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static int test_array [1 - 2 * !(((long) (sizeof (short int))) >= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_lo=$ac_mid; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_hi=`expr '(' $ac_mid ')' - 1` + if test $ac_mid -le $ac_hi; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid` +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_lo= ac_hi= +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +# Binary search between lo and hi bounds. +while test "x$ac_lo" != "x$ac_hi"; do + ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static int test_array [1 - 2 * !(((long) (sizeof (short int))) <= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_hi=$ac_mid +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_lo=`expr '(' $ac_mid ')' + 1` +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +done +case $ac_lo in +?*) ac_cv_sizeof_short_int=$ac_lo;; +'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (short int), 77 +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute sizeof (short int), 77 +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } ;; +esac +else + if test "$cross_compiling" = yes; then + { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot run test program while cross compiling +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +long longval () { return (long) (sizeof (short int)); } +unsigned long ulongval () { return (long) (sizeof (short int)); } +#include +#include +int +main () +{ + + FILE *f = fopen ("conftest.val", "w"); + if (! f) + exit (1); + if (((long) (sizeof (short int))) < 0) + { + long i = longval (); + if (i != ((long) (sizeof (short int)))) + exit (1); + fprintf (f, "%ld\n", i); + } + else + { + unsigned long i = ulongval (); + if (i != ((long) (sizeof (short int)))) + exit (1); + fprintf (f, "%lu\n", i); + } + exit (ferror (f) || fclose (f) != 0); + + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_sizeof_short_int=`cat conftest.val` +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +{ { echo "$as_me:$LINENO: error: cannot compute sizeof (short int), 77 +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute sizeof (short int), 77 +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +fi +rm -f conftest.val +else + ac_cv_sizeof_short_int=0 +fi +fi +echo "$as_me:$LINENO: result: $ac_cv_sizeof_short_int" >&5 +echo "${ECHO_T}$ac_cv_sizeof_short_int" >&6 +cat >>confdefs.h <<_ACEOF +#define SIZEOF_SHORT_INT $ac_cv_sizeof_short_int +_ACEOF + + +echo "$as_me:$LINENO: checking for int" >&5 +echo $ECHO_N "checking for int... $ECHO_C" >&6 +if test "${ac_cv_type_int+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if ((int *) 0) + return 0; +if (sizeof (int)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_type_int=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_type_int=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_type_int" >&5 +echo "${ECHO_T}$ac_cv_type_int" >&6 + +echo "$as_me:$LINENO: checking size of int" >&5 +echo $ECHO_N "checking size of int... $ECHO_C" >&6 +if test "${ac_cv_sizeof_int+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$ac_cv_type_int" = yes; then + # The cast to unsigned long works around a bug in the HP C Compiler + # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects + # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. + # This bug is HP SR number 8606223364. + if test "$cross_compiling" = yes; then + # Depending upon the size, compute the lo and hi bounds. +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static int test_array [1 - 2 * !(((long) (sizeof (int))) >= 0)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_lo=0 ac_mid=0 + while :; do + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static int test_array [1 - 2 * !(((long) (sizeof (int))) <= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_hi=$ac_mid; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_lo=`expr $ac_mid + 1` + if test $ac_lo -le $ac_mid; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid + 1` +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static int test_array [1 - 2 * !(((long) (sizeof (int))) < 0)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_hi=-1 ac_mid=-1 + while :; do + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static int test_array [1 - 2 * !(((long) (sizeof (int))) >= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_lo=$ac_mid; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_hi=`expr '(' $ac_mid ')' - 1` + if test $ac_mid -le $ac_hi; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid` +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_lo= ac_hi= +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +# Binary search between lo and hi bounds. +while test "x$ac_lo" != "x$ac_hi"; do + ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static int test_array [1 - 2 * !(((long) (sizeof (int))) <= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_hi=$ac_mid +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_lo=`expr '(' $ac_mid ')' + 1` +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +done +case $ac_lo in +?*) ac_cv_sizeof_int=$ac_lo;; +'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (int), 77 +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute sizeof (int), 77 +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } ;; +esac +else + if test "$cross_compiling" = yes; then + { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot run test program while cross compiling +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +long longval () { return (long) (sizeof (int)); } +unsigned long ulongval () { return (long) (sizeof (int)); } +#include +#include +int +main () +{ + + FILE *f = fopen ("conftest.val", "w"); + if (! f) + exit (1); + if (((long) (sizeof (int))) < 0) + { + long i = longval (); + if (i != ((long) (sizeof (int)))) + exit (1); + fprintf (f, "%ld\n", i); + } + else + { + unsigned long i = ulongval (); + if (i != ((long) (sizeof (int)))) + exit (1); + fprintf (f, "%lu\n", i); + } + exit (ferror (f) || fclose (f) != 0); + + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_sizeof_int=`cat conftest.val` +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +{ { echo "$as_me:$LINENO: error: cannot compute sizeof (int), 77 +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute sizeof (int), 77 +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +fi +rm -f conftest.val +else + ac_cv_sizeof_int=0 +fi +fi +echo "$as_me:$LINENO: result: $ac_cv_sizeof_int" >&5 +echo "${ECHO_T}$ac_cv_sizeof_int" >&6 +cat >>confdefs.h <<_ACEOF +#define SIZEOF_INT $ac_cv_sizeof_int +_ACEOF + + +echo "$as_me:$LINENO: checking for long int" >&5 +echo $ECHO_N "checking for long int... $ECHO_C" >&6 +if test "${ac_cv_type_long_int+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if ((long int *) 0) + return 0; +if (sizeof (long int)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_type_long_int=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_type_long_int=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_type_long_int" >&5 +echo "${ECHO_T}$ac_cv_type_long_int" >&6 + +echo "$as_me:$LINENO: checking size of long int" >&5 +echo $ECHO_N "checking size of long int... $ECHO_C" >&6 +if test "${ac_cv_sizeof_long_int+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$ac_cv_type_long_int" = yes; then + # The cast to unsigned long works around a bug in the HP C Compiler + # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects + # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. + # This bug is HP SR number 8606223364. + if test "$cross_compiling" = yes; then + # Depending upon the size, compute the lo and hi bounds. +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static int test_array [1 - 2 * !(((long) (sizeof (long int))) >= 0)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_lo=0 ac_mid=0 + while :; do + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static int test_array [1 - 2 * !(((long) (sizeof (long int))) <= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_hi=$ac_mid; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_lo=`expr $ac_mid + 1` + if test $ac_lo -le $ac_mid; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid + 1` +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static int test_array [1 - 2 * !(((long) (sizeof (long int))) < 0)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_hi=-1 ac_mid=-1 + while :; do + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static int test_array [1 - 2 * !(((long) (sizeof (long int))) >= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_lo=$ac_mid; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_hi=`expr '(' $ac_mid ')' - 1` + if test $ac_mid -le $ac_hi; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid` +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_lo= ac_hi= +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +# Binary search between lo and hi bounds. +while test "x$ac_lo" != "x$ac_hi"; do + ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static int test_array [1 - 2 * !(((long) (sizeof (long int))) <= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_hi=$ac_mid +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_lo=`expr '(' $ac_mid ')' + 1` +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +done +case $ac_lo in +?*) ac_cv_sizeof_long_int=$ac_lo;; +'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (long int), 77 +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute sizeof (long int), 77 +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } ;; +esac +else + if test "$cross_compiling" = yes; then + { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot run test program while cross compiling +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +long longval () { return (long) (sizeof (long int)); } +unsigned long ulongval () { return (long) (sizeof (long int)); } +#include +#include +int +main () +{ + + FILE *f = fopen ("conftest.val", "w"); + if (! f) + exit (1); + if (((long) (sizeof (long int))) < 0) + { + long i = longval (); + if (i != ((long) (sizeof (long int)))) + exit (1); + fprintf (f, "%ld\n", i); + } + else + { + unsigned long i = ulongval (); + if (i != ((long) (sizeof (long int)))) + exit (1); + fprintf (f, "%lu\n", i); + } + exit (ferror (f) || fclose (f) != 0); + + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_sizeof_long_int=`cat conftest.val` +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +{ { echo "$as_me:$LINENO: error: cannot compute sizeof (long int), 77 +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute sizeof (long int), 77 +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +fi +rm -f conftest.val +else + ac_cv_sizeof_long_int=0 +fi +fi +echo "$as_me:$LINENO: result: $ac_cv_sizeof_long_int" >&5 +echo "${ECHO_T}$ac_cv_sizeof_long_int" >&6 +cat >>confdefs.h <<_ACEOF +#define SIZEOF_LONG_INT $ac_cv_sizeof_long_int +_ACEOF + + +echo "$as_me:$LINENO: checking for long long int" >&5 +echo $ECHO_N "checking for long long int... $ECHO_C" >&6 +if test "${ac_cv_type_long_long_int+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if ((long long int *) 0) + return 0; +if (sizeof (long long int)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_type_long_long_int=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_type_long_long_int=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_type_long_long_int" >&5 +echo "${ECHO_T}$ac_cv_type_long_long_int" >&6 + +echo "$as_me:$LINENO: checking size of long long int" >&5 +echo $ECHO_N "checking size of long long int... $ECHO_C" >&6 +if test "${ac_cv_sizeof_long_long_int+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$ac_cv_type_long_long_int" = yes; then + # The cast to unsigned long works around a bug in the HP C Compiler + # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects + # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. + # This bug is HP SR number 8606223364. + if test "$cross_compiling" = yes; then + # Depending upon the size, compute the lo and hi bounds. +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static int test_array [1 - 2 * !(((long) (sizeof (long long int))) >= 0)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_lo=0 ac_mid=0 + while :; do + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static int test_array [1 - 2 * !(((long) (sizeof (long long int))) <= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_hi=$ac_mid; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_lo=`expr $ac_mid + 1` + if test $ac_lo -le $ac_mid; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid + 1` +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static int test_array [1 - 2 * !(((long) (sizeof (long long int))) < 0)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_hi=-1 ac_mid=-1 + while :; do + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static int test_array [1 - 2 * !(((long) (sizeof (long long int))) >= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_lo=$ac_mid; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_hi=`expr '(' $ac_mid ')' - 1` + if test $ac_mid -le $ac_hi; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid` +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_lo= ac_hi= +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +# Binary search between lo and hi bounds. +while test "x$ac_lo" != "x$ac_hi"; do + ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static int test_array [1 - 2 * !(((long) (sizeof (long long int))) <= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_hi=$ac_mid +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_lo=`expr '(' $ac_mid ')' + 1` +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +done +case $ac_lo in +?*) ac_cv_sizeof_long_long_int=$ac_lo;; +'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (long long int), 77 +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute sizeof (long long int), 77 +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } ;; +esac +else + if test "$cross_compiling" = yes; then + { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot run test program while cross compiling +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +long longval () { return (long) (sizeof (long long int)); } +unsigned long ulongval () { return (long) (sizeof (long long int)); } +#include +#include +int +main () +{ + + FILE *f = fopen ("conftest.val", "w"); + if (! f) + exit (1); + if (((long) (sizeof (long long int))) < 0) + { + long i = longval (); + if (i != ((long) (sizeof (long long int)))) + exit (1); + fprintf (f, "%ld\n", i); + } + else + { + unsigned long i = ulongval (); + if (i != ((long) (sizeof (long long int)))) + exit (1); + fprintf (f, "%lu\n", i); + } + exit (ferror (f) || fclose (f) != 0); + + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_sizeof_long_long_int=`cat conftest.val` +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +{ { echo "$as_me:$LINENO: error: cannot compute sizeof (long long int), 77 +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute sizeof (long long int), 77 +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +fi +rm -f conftest.val +else + ac_cv_sizeof_long_long_int=0 +fi +fi +echo "$as_me:$LINENO: result: $ac_cv_sizeof_long_long_int" >&5 +echo "${ECHO_T}$ac_cv_sizeof_long_long_int" >&6 +cat >>confdefs.h <<_ACEOF +#define SIZEOF_LONG_LONG_INT $ac_cv_sizeof_long_long_int +_ACEOF + + +echo "$as_me:$LINENO: checking for int *" >&5 +echo $ECHO_N "checking for int *... $ECHO_C" >&6 +if test "${ac_cv_type_int_p+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if ((int * *) 0) + return 0; +if (sizeof (int *)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_type_int_p=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_type_int_p=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_type_int_p" >&5 +echo "${ECHO_T}$ac_cv_type_int_p" >&6 + +echo "$as_me:$LINENO: checking size of int *" >&5 +echo $ECHO_N "checking size of int *... $ECHO_C" >&6 +if test "${ac_cv_sizeof_int_p+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$ac_cv_type_int_p" = yes; then + # The cast to unsigned long works around a bug in the HP C Compiler + # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects + # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. + # This bug is HP SR number 8606223364. + if test "$cross_compiling" = yes; then + # Depending upon the size, compute the lo and hi bounds. +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static int test_array [1 - 2 * !(((long) (sizeof (int *))) >= 0)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_lo=0 ac_mid=0 + while :; do + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static int test_array [1 - 2 * !(((long) (sizeof (int *))) <= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_hi=$ac_mid; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_lo=`expr $ac_mid + 1` + if test $ac_lo -le $ac_mid; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid + 1` +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static int test_array [1 - 2 * !(((long) (sizeof (int *))) < 0)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_hi=-1 ac_mid=-1 + while :; do + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static int test_array [1 - 2 * !(((long) (sizeof (int *))) >= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_lo=$ac_mid; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_hi=`expr '(' $ac_mid ')' - 1` + if test $ac_mid -le $ac_hi; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid` +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_lo= ac_hi= +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +# Binary search between lo and hi bounds. +while test "x$ac_lo" != "x$ac_hi"; do + ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static int test_array [1 - 2 * !(((long) (sizeof (int *))) <= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_hi=$ac_mid +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_lo=`expr '(' $ac_mid ')' + 1` +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +done +case $ac_lo in +?*) ac_cv_sizeof_int_p=$ac_lo;; +'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (int *), 77 +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute sizeof (int *), 77 +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } ;; +esac +else + if test "$cross_compiling" = yes; then + { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot run test program while cross compiling +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +long longval () { return (long) (sizeof (int *)); } +unsigned long ulongval () { return (long) (sizeof (int *)); } +#include +#include +int +main () +{ + + FILE *f = fopen ("conftest.val", "w"); + if (! f) + exit (1); + if (((long) (sizeof (int *))) < 0) + { + long i = longval (); + if (i != ((long) (sizeof (int *)))) + exit (1); + fprintf (f, "%ld\n", i); + } + else + { + unsigned long i = ulongval (); + if (i != ((long) (sizeof (int *)))) + exit (1); + fprintf (f, "%lu\n", i); + } + exit (ferror (f) || fclose (f) != 0); + + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_sizeof_int_p=`cat conftest.val` +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +{ { echo "$as_me:$LINENO: error: cannot compute sizeof (int *), 77 +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute sizeof (int *), 77 +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +fi +rm -f conftest.val +else + ac_cv_sizeof_int_p=0 +fi +fi +echo "$as_me:$LINENO: result: $ac_cv_sizeof_int_p" >&5 +echo "${ECHO_T}$ac_cv_sizeof_int_p" >&6 +cat >>confdefs.h <<_ACEOF +#define SIZEOF_INT_P $ac_cv_sizeof_int_p +_ACEOF + + + +# Check for sys/types.h types +echo "$as_me:$LINENO: checking for u_int type" >&5 +echo $ECHO_N "checking for u_int type... $ECHO_C" >&6 +if test "${ac_cv_have_u_int+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + #include +int +main () +{ + u_int a; a = 1; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_have_u_int="yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_have_u_int="no" + +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +echo "$as_me:$LINENO: result: $ac_cv_have_u_int" >&5 +echo "${ECHO_T}$ac_cv_have_u_int" >&6 +if test "x$ac_cv_have_u_int" = "xyes" ; then + cat >>confdefs.h <<\_ACEOF +#define HAVE_U_INT 1 +_ACEOF + + have_u_int=1 +fi + +echo "$as_me:$LINENO: checking for intmax_t type" >&5 +echo $ECHO_N "checking for intmax_t type... $ECHO_C" >&6 +if test "${ac_cv_have_intmax_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + #include +int +main () +{ + intmax_t a; a = 1; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_have_intmax_t="yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + #include +int +main () +{ + intmax_t a; a = 1; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_have_intmax_t="yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_have_intmax_t="no" + +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + + +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + + +fi +echo "$as_me:$LINENO: result: $ac_cv_have_intmax_t" >&5 +echo "${ECHO_T}$ac_cv_have_intmax_t" >&6 +if test "x$ac_cv_have_intmax_t" = "xyes" ; then + cat >>confdefs.h <<\_ACEOF +#define HAVE_INTMAX_T 1 +_ACEOF + + have_intmax_t=1 +fi + + +echo "$as_me:$LINENO: checking for u_intmax_t type" >&5 +echo $ECHO_N "checking for u_intmax_t type... $ECHO_C" >&6 +if test "${ac_cv_have_u_intmax_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + #include +int +main () +{ + u_intmax_t a; a = 1; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_have_u_intmax_t="yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + #include +int +main () +{ + u_intmax_t a; a = 1; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_have_u_intmax_t="yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_have_u_intmax_t="no" + +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + + +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +echo "$as_me:$LINENO: result: $ac_cv_have_u_intmax_t" >&5 +echo "${ECHO_T}$ac_cv_have_u_intmax_t" >&6 +if test "x$ac_cv_have_u_intmax_t" = "xyes" ; then + cat >>confdefs.h <<\_ACEOF +#define HAVE_U_INTMAX_T 1 +_ACEOF + + have_u_intmax_t=1 +fi + + +echo "$as_me:$LINENO: checking for intXX_t types" >&5 +echo $ECHO_N "checking for intXX_t types... $ECHO_C" >&6 +if test "${ac_cv_have_intxx_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + #include +int +main () +{ + int8_t a; int16_t b; int32_t c; a = b = c = 1; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_have_intxx_t="yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_have_intxx_t="no" + +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +echo "$as_me:$LINENO: result: $ac_cv_have_intxx_t" >&5 +echo "${ECHO_T}$ac_cv_have_intxx_t" >&6 +if test "x$ac_cv_have_intxx_t" = "xyes" ; then + cat >>confdefs.h <<\_ACEOF +#define HAVE_INTXX_T 1 +_ACEOF + + have_intxx_t=1 +fi + +echo "$as_me:$LINENO: checking for int64_t type" >&5 +echo $ECHO_N "checking for int64_t type... $ECHO_C" >&6 +if test "${ac_cv_have_int64_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + #include +int +main () +{ + int64_t a; a = 1; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_have_int64_t="yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_have_int64_t="no" + +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +echo "$as_me:$LINENO: result: $ac_cv_have_int64_t" >&5 +echo "${ECHO_T}$ac_cv_have_int64_t" >&6 +if test "x$ac_cv_have_int64_t" = "xyes" ; then + cat >>confdefs.h <<\_ACEOF +#define HAVE_INT64_T 1 +_ACEOF + + have_int64_t=1 +fi + +echo "$as_me:$LINENO: checking for u_intXX_t types" >&5 +echo $ECHO_N "checking for u_intXX_t types... $ECHO_C" >&6 +if test "${ac_cv_have_u_intxx_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + #include +int +main () +{ + u_int8_t a; u_int16_t b; u_int32_t c; a = b = c = 1; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_have_u_intxx_t="yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_have_u_intxx_t="no" + +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +echo "$as_me:$LINENO: result: $ac_cv_have_u_intxx_t" >&5 +echo "${ECHO_T}$ac_cv_have_u_intxx_t" >&6 +if test "x$ac_cv_have_u_intxx_t" = "xyes" ; then + cat >>confdefs.h <<\_ACEOF +#define HAVE_U_INTXX_T 1 +_ACEOF + + have_u_intxx_t=1 +fi + +echo "$as_me:$LINENO: checking for u_int64_t types" >&5 +echo $ECHO_N "checking for u_int64_t types... $ECHO_C" >&6 +if test "${ac_cv_have_u_int64_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + #include +int +main () +{ + u_int64_t a; a = 1; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_have_u_int64_t="yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_have_u_int64_t="no" + +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +echo "$as_me:$LINENO: result: $ac_cv_have_u_int64_t" >&5 +echo "${ECHO_T}$ac_cv_have_u_int64_t" >&6 +if test "x$ac_cv_have_u_int64_t" = "xyes" ; then + cat >>confdefs.h <<\_ACEOF +#define HAVE_U_INT64_T 1 +_ACEOF + + have_u_int64_t=1 +fi + +if (test -z "$have_u_intxx_t" || test -z "$have_intxx_t" && \ + test "x$ac_cv_header_sys_bitypes_h" = "xyes") +then + echo "$as_me:$LINENO: checking for intXX_t and u_intXX_t types in sys/bitypes.h" >&5 +echo $ECHO_N "checking for intXX_t and u_intXX_t types in sys/bitypes.h... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + #include +int +main () +{ + int8_t a; int16_t b; int32_t c; + u_int8_t e; u_int16_t f; u_int32_t g; + a = b = c = e = f = g = 1; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cat >>confdefs.h <<\_ACEOF +#define HAVE_U_INTXX_T 1 +_ACEOF + + cat >>confdefs.h <<\_ACEOF +#define HAVE_INTXX_T 1 +_ACEOF + + cat >>confdefs.h <<\_ACEOF +#define HAVE_SYS_BITYPES_H 1 +_ACEOF + + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +if test -z "$have_u_intxx_t" ; then + echo "$as_me:$LINENO: checking for uintXX_t types" >&5 +echo $ECHO_N "checking for uintXX_t types... $ECHO_C" >&6 +if test "${ac_cv_have_uintxx_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + #include +int +main () +{ + uint8_t a; uint16_t b; + uint32_t c; a = b = c = 1; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_have_uintxx_t="yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_have_uintxx_t="no" + +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +echo "$as_me:$LINENO: result: $ac_cv_have_uintxx_t" >&5 +echo "${ECHO_T}$ac_cv_have_uintxx_t" >&6 + if test "x$ac_cv_have_uintxx_t" = "xyes" ; then + cat >>confdefs.h <<\_ACEOF +#define HAVE_UINTXX_T 1 +_ACEOF + + fi +fi + +if (test -z "$have_u_int64_t" || test -z "$have_int64_t" && \ + test "x$ac_cv_header_sys_bitypes_h" = "xyes") +then + echo "$as_me:$LINENO: checking for int64_t and u_int64_t types in sys/bitypes.h" >&5 +echo $ECHO_N "checking for int64_t and u_int64_t types in sys/bitypes.h... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + #include +int +main () +{ + int64_t a; u_int64_t b; + a = b = 1; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cat >>confdefs.h <<\_ACEOF +#define HAVE_U_INT64_T 1 +_ACEOF + + cat >>confdefs.h <<\_ACEOF +#define HAVE_INT64_T 1 +_ACEOF + + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +if (test -z "$have_uintxx_t" && \ + test "x$ac_cv_header_sys_bitypes_h" = "xyes") +then + echo "$as_me:$LINENO: checking for uintXX_t types in sys/bitypes.h" >&5 +echo $ECHO_N "checking for uintXX_t types in sys/bitypes.h... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + #include +int +main () +{ + uint8_t a; uint16_t b; + uint32_t c; a = b = c = 1; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cat >>confdefs.h <<\_ACEOF +#define HAVE_UINTXX_T 1 +_ACEOF + + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +fi + + + + + + + + + + + + + + + + + +for ac_func in \ + fork \ + getcwd \ + gethostname \ + getpid \ + gettimeofday \ + setpgid \ + setpgrp \ + setsid \ + signal \ + strerror \ + strncmp \ + strncpy \ + vfprintf \ + +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $ac_func + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +char (*f) () = $ac_func; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != $ac_func; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +eval "$as_ac_var=no" +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +else + echo 'configure: cannot find needed function.'; exit 1 + +fi +done + + + +for ac_func in fchdir +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $ac_func + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +char (*f) () = $ac_func; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != $ac_func; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +eval "$as_ac_var=no" +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + cat >>confdefs.h <<\_ACEOF +#define HAVE_FCHDIR 1 +_ACEOF + +fi +done + + +for ac_func in strtoll +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $ac_func + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +char (*f) () = $ac_func; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != $ac_func; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +eval "$as_ac_var=no" +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + cat >>confdefs.h <<\_ACEOF +#define HAVE_STRTOLL 1 +_ACEOF + +fi +done + + +for ac_func in posix_fadvise +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $ac_func + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +char (*f) () = $ac_func; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != $ac_func; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +eval "$as_ac_var=no" +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + +for ac_func in fdatasync +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $ac_func + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +char (*f) () = $ac_func; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != $ac_func; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +eval "$as_ac_var=no" +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + + +for ac_func in chflags +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $ac_func + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +char (*f) () = $ac_func; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != $ac_func; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +eval "$as_ac_var=no" +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + + + + + +for ac_func in snprintf vsnprintf gethostid fseeko +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $ac_func + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +char (*f) () = $ac_func; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != $ac_func; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +eval "$as_ac_var=no" +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + +echo "$as_me:$LINENO: checking for va_copy" >&5 +echo $ECHO_N "checking for va_copy... $ECHO_C" >&6 +if test "${ba_cv_va_copy+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +#include +void use_va_copy(va_list args){va_list args2; va_copy(args2,args); va_end(args2);} +void call_use_va_copy(int junk,...){va_list args; va_start(args,junk); use_va_copy(args); va_end(args);} + +int +main () +{ +call_use_va_copy(1,2,3) + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ba_cv_va_copy=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ba_cv_va_copy=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ba_cv_va_copy" >&5 +echo "${ECHO_T}$ba_cv_va_copy" >&6 +test $ba_cv_va_copy = yes && +cat >>confdefs.h <<\_ACEOF +#define HAVE_VA_COPY 1 +_ACEOF + + + + + + + +for ac_func in localtime_r readdir_r strerror_r gethostbyname_r +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $ac_func + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +char (*f) () = $ac_func; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != $ac_func; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +eval "$as_ac_var=no" +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + +# If resolver functions are not in libc check for -lnsl or -lresolv. +echo "$as_me:$LINENO: checking for gethostbyname_r" >&5 +echo $ECHO_N "checking for gethostbyname_r... $ECHO_C" >&6 +if test "${ac_cv_func_gethostbyname_r+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define gethostbyname_r to an innocuous variant, in case declares gethostbyname_r. + For example, HP-UX 11i declares gettimeofday. */ +#define gethostbyname_r innocuous_gethostbyname_r + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char gethostbyname_r (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef gethostbyname_r + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char gethostbyname_r (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_gethostbyname_r) || defined (__stub___gethostbyname_r) +choke me +#else +char (*f) () = gethostbyname_r; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != gethostbyname_r; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_gethostbyname_r=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_func_gethostbyname_r=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_func_gethostbyname_r" >&5 +echo "${ECHO_T}$ac_cv_func_gethostbyname_r" >&6 +if test $ac_cv_func_gethostbyname_r = yes; then + echo "$as_me:$LINENO: result: using libc's resolver" >&5 +echo "${ECHO_T}using libc's resolver" >&6 +else + +echo "$as_me:$LINENO: checking for gethostbyname_r in -lnsl" >&5 +echo $ECHO_N "checking for gethostbyname_r in -lnsl... $ECHO_C" >&6 +if test "${ac_cv_lib_nsl_gethostbyname_r+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lnsl $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char gethostbyname_r (); +int +main () +{ +gethostbyname_r (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_nsl_gethostbyname_r=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_nsl_gethostbyname_r=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_gethostbyname_r" >&5 +echo "${ECHO_T}$ac_cv_lib_nsl_gethostbyname_r" >&6 +if test $ac_cv_lib_nsl_gethostbyname_r = yes; then + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBNSL 1 +_ACEOF + + LIBS="-lnsl $LIBS" + +fi + + +echo "$as_me:$LINENO: checking for gethostbyname_r in -lresolv" >&5 +echo $ECHO_N "checking for gethostbyname_r in -lresolv... $ECHO_C" >&6 +if test "${ac_cv_lib_resolv_gethostbyname_r+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lresolv $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char gethostbyname_r (); +int +main () +{ +gethostbyname_r (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_resolv_gethostbyname_r=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_resolv_gethostbyname_r=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_resolv_gethostbyname_r" >&5 +echo "${ECHO_T}$ac_cv_lib_resolv_gethostbyname_r" >&6 +if test $ac_cv_lib_resolv_gethostbyname_r = yes; then + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBRESOLV 1 +_ACEOF + + LIBS="-lresolv $LIBS" + +fi + +fi + + + + + +for ac_func in inet_pton +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $ac_func + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +char (*f) () = $ac_func; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != $ac_func; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +eval "$as_ac_var=no" +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + cat >>confdefs.h <<\_ACEOF +#define HAVE_INET_PTON 1 +_ACEOF + +fi +done + + +for ac_func in inet_ntop +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $ac_func + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +char (*f) () = $ac_func; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != $ac_func; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +eval "$as_ac_var=no" +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + cat >>confdefs.h <<\_ACEOF +#define HAVE_INET_NTOP 1 +_ACEOF + +fi +done + + +for ac_func in gethostbyname2 +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $ac_func + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +char (*f) () = $ac_func; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != $ac_func; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +eval "$as_ac_var=no" +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + cat >>confdefs.h <<\_ACEOF +#define HAVE_GETHOSTBYNAME2 1 +_ACEOF + +fi +done + + +echo "$as_me:$LINENO: checking for struct sockaddr has a sa_len field" >&5 +echo $ECHO_N "checking for struct sockaddr has a sa_len field... $ECHO_C" >&6 +if test "${ac_cv_struct_sockaddr_sa_len+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +struct sockaddr s; s.sa_len; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_struct_sockaddr_sa_len=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_struct_sockaddr_sa_len=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_struct_sockaddr_sa_len" >&5 +echo "${ECHO_T}$ac_cv_struct_sockaddr_sa_len" >&6 + + if test $ac_cv_struct_sockaddr_sa_len = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_SA_LEN 1 +_ACEOF + + fi + + + + + +for ac_func in strftime +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $ac_func + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +char (*f) () = $ac_func; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != $ac_func; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +eval "$as_ac_var=no" +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +else + # strftime is in -lintl on SCO UNIX. +echo "$as_me:$LINENO: checking for strftime in -lintl" >&5 +echo $ECHO_N "checking for strftime in -lintl... $ECHO_C" >&6 +if test "${ac_cv_lib_intl_strftime+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lintl $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char strftime (); +int +main () +{ +strftime (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_intl_strftime=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_intl_strftime=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_intl_strftime" >&5 +echo "${ECHO_T}$ac_cv_lib_intl_strftime" >&6 +if test $ac_cv_lib_intl_strftime = yes; then + cat >>confdefs.h <<\_ACEOF +#define HAVE_STRFTIME 1 +_ACEOF + +LIBS="-lintl $LIBS" +fi + +fi +done + + +for ac_func in vprintf +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $ac_func + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +char (*f) () = $ac_func; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != $ac_func; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +eval "$as_ac_var=no" +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +echo "$as_me:$LINENO: checking for _doprnt" >&5 +echo $ECHO_N "checking for _doprnt... $ECHO_C" >&6 +if test "${ac_cv_func__doprnt+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define _doprnt to an innocuous variant, in case declares _doprnt. + For example, HP-UX 11i declares gettimeofday. */ +#define _doprnt innocuous__doprnt + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char _doprnt (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef _doprnt + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char _doprnt (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub__doprnt) || defined (__stub____doprnt) +choke me +#else +char (*f) () = _doprnt; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != _doprnt; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func__doprnt=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_func__doprnt=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_func__doprnt" >&5 +echo "${ECHO_T}$ac_cv_func__doprnt" >&6 +if test $ac_cv_func__doprnt = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_DOPRNT 1 +_ACEOF + +fi + +fi +done + + +# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works +# for constant arguments. Useless! +echo "$as_me:$LINENO: checking for working alloca.h" >&5 +echo $ECHO_N "checking for working alloca.h... $ECHO_C" >&6 +if test "${ac_cv_working_alloca_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +char *p = (char *) alloca (2 * sizeof (int)); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_working_alloca_h=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_working_alloca_h=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_working_alloca_h" >&5 +echo "${ECHO_T}$ac_cv_working_alloca_h" >&6 +if test $ac_cv_working_alloca_h = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_ALLOCA_H 1 +_ACEOF + +fi + +echo "$as_me:$LINENO: checking for alloca" >&5 +echo $ECHO_N "checking for alloca... $ECHO_C" >&6 +if test "${ac_cv_func_alloca_works+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifdef __GNUC__ +# define alloca __builtin_alloca +#else +# ifdef _MSC_VER +# include +# define alloca _alloca +# else +# if HAVE_ALLOCA_H +# include +# else +# ifdef _AIX + #pragma alloca +# else +# ifndef alloca /* predefined by HP cc +Olibcalls */ +char *alloca (); +# endif +# endif +# endif +# endif +#endif + +int +main () +{ +char *p = (char *) alloca (1); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_alloca_works=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_func_alloca_works=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_func_alloca_works" >&5 +echo "${ECHO_T}$ac_cv_func_alloca_works" >&6 + +if test $ac_cv_func_alloca_works = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_ALLOCA 1 +_ACEOF + +else + # The SVR3 libPW and SVR4 libucb both contain incompatible functions +# that cause trouble. Some versions do not even contain alloca or +# contain a buggy version. If you still want to use their alloca, +# use ar to extract alloca.o from them instead of compiling alloca.c. + +ALLOCA=alloca.$ac_objext + +cat >>confdefs.h <<\_ACEOF +#define C_ALLOCA 1 +_ACEOF + + +echo "$as_me:$LINENO: checking whether \`alloca.c' needs Cray hooks" >&5 +echo $ECHO_N "checking whether \`alloca.c' needs Cray hooks... $ECHO_C" >&6 +if test "${ac_cv_os_cray+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#if defined(CRAY) && ! defined(CRAY2) +webecray +#else +wenotbecray +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "webecray" >/dev/null 2>&1; then + ac_cv_os_cray=yes +else + ac_cv_os_cray=no +fi +rm -f conftest* + +fi +echo "$as_me:$LINENO: result: $ac_cv_os_cray" >&5 +echo "${ECHO_T}$ac_cv_os_cray" >&6 +if test $ac_cv_os_cray = yes; then + for ac_func in _getb67 GETB67 getb67; do + as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $ac_func + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +char (*f) () = $ac_func; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != $ac_func; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +eval "$as_ac_var=no" +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then + +cat >>confdefs.h <<_ACEOF +#define CRAY_STACKSEG_END $ac_func +_ACEOF + + break +fi + + done +fi + +echo "$as_me:$LINENO: checking stack direction for C alloca" >&5 +echo $ECHO_N "checking stack direction for C alloca... $ECHO_C" >&6 +if test "${ac_cv_c_stack_direction+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$cross_compiling" = yes; then + ac_cv_c_stack_direction=0 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +int +find_stack_direction () +{ + static char *addr = 0; + auto char dummy; + if (addr == 0) + { + addr = &dummy; + return find_stack_direction (); + } + else + return (&dummy > addr) ? 1 : -1; +} + +int +main () +{ + exit (find_stack_direction () < 0); +} +_ACEOF +rm -f conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_c_stack_direction=1 +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_c_stack_direction=-1 +fi +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +fi +echo "$as_me:$LINENO: result: $ac_cv_c_stack_direction" >&5 +echo "${ECHO_T}$ac_cv_c_stack_direction" >&6 + +cat >>confdefs.h <<_ACEOF +#define STACK_DIRECTION $ac_cv_c_stack_direction +_ACEOF + + +fi + +# getmntent is in -lsun on Irix 4, -lseq on Dynix/PTX, -lgen on Unixware. +echo "$as_me:$LINENO: checking for getmntent in -lsun" >&5 +echo $ECHO_N "checking for getmntent in -lsun... $ECHO_C" >&6 +if test "${ac_cv_lib_sun_getmntent+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsun $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char getmntent (); +int +main () +{ +getmntent (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_sun_getmntent=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_sun_getmntent=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_sun_getmntent" >&5 +echo "${ECHO_T}$ac_cv_lib_sun_getmntent" >&6 +if test $ac_cv_lib_sun_getmntent = yes; then + LIBS="-lsun $LIBS" +else + echo "$as_me:$LINENO: checking for getmntent in -lseq" >&5 +echo $ECHO_N "checking for getmntent in -lseq... $ECHO_C" >&6 +if test "${ac_cv_lib_seq_getmntent+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lseq $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char getmntent (); +int +main () +{ +getmntent (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_seq_getmntent=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_seq_getmntent=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_seq_getmntent" >&5 +echo "${ECHO_T}$ac_cv_lib_seq_getmntent" >&6 +if test $ac_cv_lib_seq_getmntent = yes; then + LIBS="-lseq $LIBS" +else + echo "$as_me:$LINENO: checking for getmntent in -lgen" >&5 +echo $ECHO_N "checking for getmntent in -lgen... $ECHO_C" >&6 +if test "${ac_cv_lib_gen_getmntent+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lgen $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char getmntent (); +int +main () +{ +getmntent (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_gen_getmntent=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_gen_getmntent=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_gen_getmntent" >&5 +echo "${ECHO_T}$ac_cv_lib_gen_getmntent" >&6 +if test $ac_cv_lib_gen_getmntent = yes; then + LIBS="-lgen $LIBS" +fi + +fi + +fi + + +for ac_func in getmntent +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $ac_func + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +char (*f) () = $ac_func; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != $ac_func; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +eval "$as_ac_var=no" +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + +echo "$as_me:$LINENO: checking whether closedir returns void" >&5 +echo $ECHO_N "checking whether closedir returns void... $ECHO_C" >&6 +if test "${ac_cv_func_closedir_void+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$cross_compiling" = yes; then + ac_cv_func_closedir_void=yes +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header_dirent> +#ifndef __cplusplus +int closedir (); +#endif + +int +main () +{ +exit (closedir (opendir (".")) != 0); + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_closedir_void=no +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_func_closedir_void=yes +fi +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +fi +echo "$as_me:$LINENO: result: $ac_cv_func_closedir_void" >&5 +echo "${ECHO_T}$ac_cv_func_closedir_void" >&6 +if test $ac_cv_func_closedir_void = yes; then + +cat >>confdefs.h <<\_ACEOF +#define CLOSEDIR_VOID 1 +_ACEOF + +fi + +echo "$as_me:$LINENO: checking whether setpgrp takes no argument" >&5 +echo $ECHO_N "checking whether setpgrp takes no argument... $ECHO_C" >&6 +if test "${ac_cv_func_setpgrp_void+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$cross_compiling" = yes; then + { { echo "$as_me:$LINENO: error: cannot check setpgrp when cross compiling" >&5 +echo "$as_me: error: cannot check setpgrp when cross compiling" >&2;} + { (exit 1); exit 1; }; } +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#if HAVE_UNISTD_H +# include +#endif + +int +main () +{ +/* If this system has a BSD-style setpgrp which takes arguments, + setpgrp(1, 1) will fail with ESRCH and return -1, in that case + exit successfully. */ + exit (setpgrp (1,1) == -1 ? 0 : 1); + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_setpgrp_void=no +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_func_setpgrp_void=yes +fi +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +fi +echo "$as_me:$LINENO: result: $ac_cv_func_setpgrp_void" >&5 +echo "${ECHO_T}$ac_cv_func_setpgrp_void" >&6 +if test $ac_cv_func_setpgrp_void = yes; then + +cat >>confdefs.h <<\_ACEOF +#define SETPGRP_VOID 1 +_ACEOF + +fi + # AC_FUNC_FNMATCH dnl use local version + + +echo "$as_me:$LINENO: checking for gettext in -lintl" >&5 +echo $ECHO_N "checking for gettext in -lintl... $ECHO_C" >&6 +if test "${ac_cv_lib_intl_gettext+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lintl $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char gettext (); +int +main () +{ +gettext (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_intl_gettext=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_intl_gettext=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_intl_gettext" >&5 +echo "${ECHO_T}$ac_cv_lib_intl_gettext" >&6 +if test $ac_cv_lib_intl_gettext = yes; then + LIBS="$LIBS -lintl" +fi + + + + +echo "$as_me:$LINENO: checking for getpwnam in -lsun" >&5 +echo $ECHO_N "checking for getpwnam in -lsun... $ECHO_C" >&6 +if test "${ac_cv_lib_sun_getpwnam+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsun $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char getpwnam (); +int +main () +{ +getpwnam (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_sun_getpwnam=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_sun_getpwnam=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_sun_getpwnam" >&5 +echo "${ECHO_T}$ac_cv_lib_sun_getpwnam" >&6 +if test $ac_cv_lib_sun_getpwnam = yes; then + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBSUN 1 +_ACEOF + + LIBS="-lsun $LIBS" + +fi + + + +for ac_header in zlib.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_header_compiler=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + +echo "$as_me:$LINENO: checking for deflate in -lz" >&5 +echo $ECHO_N "checking for deflate in -lz... $ECHO_C" >&6 +if test "${ac_cv_lib_z_deflate+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lz $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char deflate (); +int +main () +{ +deflate (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_z_deflate=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_z_deflate=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_z_deflate" >&5 +echo "${ECHO_T}$ac_cv_lib_z_deflate" >&6 +if test $ac_cv_lib_z_deflate = yes; then + FDLIBS="-lz" +fi + +have_zlib=no +if test x$FDLIBS = x-lz; then + cat >>confdefs.h <<\_ACEOF +#define HAVE_LIBZ 1 +_ACEOF + + have_zlib=yes +fi + +# +# Check for ACL libraries +# +have_acl=no +if test "${ac_cv_header_sys_acl_h+set}" = set; then + echo "$as_me:$LINENO: checking for sys/acl.h" >&5 +echo $ECHO_N "checking for sys/acl.h... $ECHO_C" >&6 +if test "${ac_cv_header_sys_acl_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: $ac_cv_header_sys_acl_h" >&5 +echo "${ECHO_T}$ac_cv_header_sys_acl_h" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking sys/acl.h usability" >&5 +echo $ECHO_N "checking sys/acl.h usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_header_compiler=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking sys/acl.h presence" >&5 +echo $ECHO_N "checking sys/acl.h presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: sys/acl.h: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: sys/acl.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/acl.h: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: sys/acl.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: sys/acl.h: present but cannot be compiled" >&5 +echo "$as_me: WARNING: sys/acl.h: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/acl.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: sys/acl.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/acl.h: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: sys/acl.h: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/acl.h: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: sys/acl.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/acl.h: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: sys/acl.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/acl.h: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: sys/acl.h: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for sys/acl.h" >&5 +echo $ECHO_N "checking for sys/acl.h... $ECHO_C" >&6 +if test "${ac_cv_header_sys_acl_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_header_sys_acl_h=$ac_header_preproc +fi +echo "$as_me:$LINENO: result: $ac_cv_header_sys_acl_h" >&5 +echo "${ECHO_T}$ac_cv_header_sys_acl_h" >&6 + +fi + + +echo "$as_me:$LINENO: checking for acl_get_file" >&5 +echo $ECHO_N "checking for acl_get_file... $ECHO_C" >&6 +if test "${ac_cv_func_acl_get_file+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define acl_get_file to an innocuous variant, in case declares acl_get_file. + For example, HP-UX 11i declares gettimeofday. */ +#define acl_get_file innocuous_acl_get_file + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char acl_get_file (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef acl_get_file + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char acl_get_file (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_acl_get_file) || defined (__stub___acl_get_file) +choke me +#else +char (*f) () = acl_get_file; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != acl_get_file; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_acl_get_file=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_func_acl_get_file=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_func_acl_get_file" >&5 +echo "${ECHO_T}$ac_cv_func_acl_get_file" >&6 +if test $ac_cv_func_acl_get_file = yes; then + have_acl=yes +else + echo "$as_me:$LINENO: checking for acl_get_file in -lacl" >&5 +echo $ECHO_N "checking for acl_get_file in -lacl... $ECHO_C" >&6 +if test "${ac_cv_lib_acl_acl_get_file+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lacl $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char acl_get_file (); +int +main () +{ +acl_get_file (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_acl_acl_get_file=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_acl_acl_get_file=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_acl_acl_get_file" >&5 +echo "${ECHO_T}$ac_cv_lib_acl_acl_get_file" >&6 +if test $ac_cv_lib_acl_acl_get_file = yes; then + have_acl=yes; FDLIBS="-lacl $FDLIBS" +else + echo "$as_me:$LINENO: checking for acltotext in -lsec" >&5 +echo $ECHO_N "checking for acltotext in -lsec... $ECHO_C" >&6 +if test "${ac_cv_lib_sec_acltotext+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsec $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char acltotext (); +int +main () +{ +acltotext (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_sec_acltotext=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_sec_acltotext=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_sec_acltotext" >&5 +echo "${ECHO_T}$ac_cv_lib_sec_acltotext" >&6 +if test $ac_cv_lib_sec_acltotext = yes; then + have_acl=yes; FDLIBS="-lsec $FDLIBS" +fi + + +fi + + +fi + +if test $have_acl = yes; then + cat >>confdefs.h <<\_ACEOF +#define HAVE_ACL 1 +_ACEOF + +fi + +PTHREAD_LIB="" +echo "$as_me:$LINENO: checking for pthread_create in -lpthread" >&5 +echo $ECHO_N "checking for pthread_create in -lpthread... $ECHO_C" >&6 +if test "${ac_cv_lib_pthread_pthread_create+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lpthread $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char pthread_create (); +int +main () +{ +pthread_create (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_pthread_pthread_create=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_pthread_pthread_create=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_pthread_pthread_create" >&5 +echo "${ECHO_T}$ac_cv_lib_pthread_pthread_create" >&6 +if test $ac_cv_lib_pthread_pthread_create = yes; then + PTHREAD_LIB="-lpthread" +else + echo "$as_me:$LINENO: checking for pthread_create in -lpthreads" >&5 +echo $ECHO_N "checking for pthread_create in -lpthreads... $ECHO_C" >&6 +if test "${ac_cv_lib_pthreads_pthread_create+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lpthreads $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char pthread_create (); +int +main () +{ +pthread_create (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_pthreads_pthread_create=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_pthreads_pthread_create=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_pthreads_pthread_create" >&5 +echo "${ECHO_T}$ac_cv_lib_pthreads_pthread_create" >&6 +if test $ac_cv_lib_pthreads_pthread_create = yes; then + PTHREAD_LIB="-lpthreads" +else + echo "$as_me:$LINENO: checking for pthread_create in -lc_r" >&5 +echo $ECHO_N "checking for pthread_create in -lc_r... $ECHO_C" >&6 +if test "${ac_cv_lib_c_r_pthread_create+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lc_r $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char pthread_create (); +int +main () +{ +pthread_create (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_c_r_pthread_create=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_c_r_pthread_create=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_c_r_pthread_create" >&5 +echo "${ECHO_T}$ac_cv_lib_c_r_pthread_create" >&6 +if test $ac_cv_lib_c_r_pthread_create = yes; then + PTHREAD_LIB="-lc_r" +else + echo "$as_me:$LINENO: checking for pthread_create" >&5 +echo $ECHO_N "checking for pthread_create... $ECHO_C" >&6 +if test "${ac_cv_func_pthread_create+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define pthread_create to an innocuous variant, in case declares pthread_create. + For example, HP-UX 11i declares gettimeofday. */ +#define pthread_create innocuous_pthread_create + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char pthread_create (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef pthread_create + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char pthread_create (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_pthread_create) || defined (__stub___pthread_create) +choke me +#else +char (*f) () = pthread_create; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != pthread_create; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_pthread_create=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_func_pthread_create=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_func_pthread_create" >&5 +echo "${ECHO_T}$ac_cv_func_pthread_create" >&6 + + +fi + + +fi + + +fi + + + +cat >>confdefs.h <<\_ACEOF +#define FDLIBS 1 +_ACEOF + + + +CFLAGS=${CFLAGS--O} + +if test x$have_gcc = xyes ; then + CPPFLAGS="$CPPFLAGS -fno-strict-aliasing -fno-exceptions -fno-rtti" + CFLAGS="$CFLAGS -fno-strict-aliasing -fno-exceptions -fno-rtti" +fi +LDFLAGS=${LDFLAGS--O} +DB_LIBS="${SQL_LFLAGS}" +CPPFLAGS="$CPPFLAGS" +CFLAGS="$CFLAGS" + + + + + + + + + + + + + + + + +OBJLIST= + + +lld="lld" +llu="llu" + +WCFLAGS= +WLDFLAGS= + +# +# Finally we set appropriate distribution specific +# variables and defaults +# +# PFILES are platform specific files +PFILES="platforms/Makefile" +PSCMD="ps -e" +WIN32= +MACOSX= +hostname=`uname -n | cut -d '.' -f 1` +if test x${hostname} = x ; then + hostname="localhost" +fi +case "$DISTNAME" in +aix) + DISTVER=`uname -r` + PSCMD="ps -e -o pid,comm" + PFILES="${PFILES} \ + platforms/aix/Makefile" + TAPEDRIVE="/dev/rmt0.1" + ;; +alpha) + DISTVER=`uname -r` + PTHREAD_LIB="-lpthread -lexc" + if test "${CC}" = "gcc" ; then + lld="lld" + llu="llu" + else + lld="ld" + llu="lu" + fi + TAPEDRIVE="/dev/nrmt0" + ;; +bsdi) + DISTVER=`uname -a |awk '{print $3}'` + TAPEDRIVE="/dev/nrmt0" + PTHREAD_LIB="-pthread" + CFLAGS="${CFLAGS} -pthread" + PSCMD="ps -ax -o pid,command" + lld="qd" + llu="qu" + PFILES="${PFILES} \ + platforms/bsdi/Makefile \ + platforms/bsdi/bacula-fd \ + platforms/bsdi/bacula-sd \ + platforms/bsdi/bacula-dir" + largefile_support="yes" + ;; +cygwin) + DISTVER=`uname -a |awk '{print $3}'` + TAPEDRIVE="/dev/nrst0" + WIN32=win32 + WCFLAGS="-mwindows" + WLDFLAGS="-mwindows" + ;; +darwin) + DISTVER=`uname -r` + TAPEDRIVE="/dev/nst0" + PSCMD="ps -e -o pid,command" + MACOSX=macosx + PFILES="${PFILES} \ + platforms/darwin/Makefile" + ;; +debian) + DISTVER=`cat /etc/debian_version` + TAPEDRIVE="/dev/nrst0" + PSCMD="ps -e -o pid,command" + ;; +freebsd) + DISTVER=`uname -a |awk '{print $3}'` + VER=`echo $DISTVER | cut -c 1` + if test x$VER = x4 ; then + PTHREAD_LIB="${PTHREAD_LIBS:--pthread}" + CFLAGS="${CFLAGS} ${PTHREAD_CFLAGS:--pthread}" + fi + lld="qd" + llu="qu" + TAPEDRIVE="/dev/nrsa0" + PSCMD="ps -ax -o pid,command" + PFILES="${PFILES} \ + platforms/freebsd/Makefile \ + platforms/freebsd/bacula-fd \ + platforms/freebsd/bacula-sd \ + platforms/freebsd/bacula-dir" + largefile_support="yes" + ;; +hpux) + PSCMD="UNIX95=1; ps -e -o pid,comm" + CFLAGS="${CFLAGS} -D_XOPEN_SOURCE_EXTENDED=1" + DISTVER=`uname -r` + TAPEDRIVE="/dev/rmt/0hnb" + PTHREAD_LIB="-lpthread" + cat >>confdefs.h <<\_ACEOF +#define _INCLUDE_LONGLONG 1 +_ACEOF + + ;; +irix) + DISTVER=`uname -r` + TAPEDRIVE="/dev/rmt/0cbn" + PSCMD="ps -e -o pid,comm" + PFILES="${PFILES} \ + platforms/irix/Makefile \ + platforms/irix/bacula-fd \ + platforms/irix/bacula-sd \ + platforms/irix/bacula-dir" + ;; +netbsd) + DISTVER=`uname -a |awk '{print $3}'` + lld="qd" + llu="qu" + TAPEDRIVE="/dev/nrst0" + PSCMD="ps -ax -o pid,command" + PTHREAD_LIB="-pthread" + CFLAGS="${CFLAGS} -pthread" + ;; +openbsd) + DISTVER=`uname -a |awk '{print $3}'` + lld="qd" + llu="qu" + TAPEDRIVE="/dev/nrst0" + PSCMD="ps -ax -o pid,command" + PTHREAD_LIB="-pthread" + CFLAGS="${CFLAGS} -pthread" + PFILES="${PFILES} \ + platforms/openbsd/Makefile \ + platforms/openbsd/bacula-fd \ + platforms/openbsd/bacula-sd \ + platforms/openbsd/bacula-dir" + ;; +redhat) + if test -f /etc/whitebox-release ; then + f=/etc/whitebox-release + else + f=/etc/redhat-release + fi + if test `cat $f | grep release |\ + cut -f 3 -d ' '`x = "Enterprise"x ; then + DISTVER="Enterprise "`cat $f | grep release |\ + cut -f 6 -d ' '` + else + DISTVER=`cat /etc/redhat-release | grep release |\ + cut -f 5 -d ' '` + fi + TAPEDRIVE="/dev/nst0" + PSCMD="ps -e -o pid,command" + PFILES="${PFILES} \ + platforms/redhat/Makefile \ + platforms/redhat/bacula-fd \ + platforms/redhat/bacula-sd \ + platforms/redhat/bacula-dir \ + platforms/redhat/bacula.spec \ + " + ;; +mandrake) + DISTVER=`cat /etc/mandrake-release | grep release |\ + cut -f 5 -d ' '` + TAPEDRIVE="/dev/nst0" + PSCMD="ps -e -o pid,command" + PFILES="${PFILES} \ + platforms/mandrake/Makefile \ + platforms/mandrake/bacula-fd \ + platforms/mandrake/bacula-sd \ + platforms/mandrake/bacula-dir \ + platforms/mandrake/bacula.spec \ + " + ;; +gentoo) + DISTVER=`awk '/version / {print $5}' < /etc/gentoo-release` + TAPEDRIVE="/dev/nst0" + PSCMD="ps -e -o pid,command" + PFILES="${PFILES} \ + platforms/gentoo/Makefile \ + platforms/gentoo/bacula-init \ + platforms/gentoo/bacula-fd \ + platforms/gentoo/bacula-sd \ + platforms/gentoo/bacula-dir" + ;; +slackware) + DISTVER=`cat /etc/slackware-version` + TAPEDRIVE="/dev/nst0" + PSCMD="ps -e -o pid,command" + PFILES="${PFILES} \ + platforms/slackware/Makefile \ + platforms/slackware/rc.bacula-fd \ + platforms/slackware/rc.bacula-sd \ + platforms/slackware/rc.bacula-dir\ + platforms/slackware/functions.bacula" + ;; +solaris) + DISTVER=`uname -r` + TAPEDRIVE="/dev/rmt/0cbn" + PSCMD="ps -e -o pid,comm" + PFILES="${PFILES} \ + platforms/solaris/Makefile \ + platforms/solaris/bacula-fd \ + platforms/solaris/bacula-sd \ + platforms/solaris/bacula-dir" + if test x$DISTVER = x5.6 ; then + cat >>confdefs.h <<\_ACEOF +#define HAVE_OLD_SOCKOPT 1 +_ACEOF + + fi + LIBS="$LIBS -lresolv" + ;; +suse) + DISTVER=`cat /etc/SuSE-release |grep VERSION|\ + cut -f 3 -d ' '` + TAPEDRIVE="/dev/nst0" + PSCMD="ps -e -o pid,command" + PFILES="${PFILES} \ + platforms/suse/Makefile \ + platforms/suse/bacula-fd \ + platforms/suse/bacula-sd \ + platforms/suse/bacula-dir \ + platforms/suse/bacula \ + platforms/suse/bacula.spec" + ;; +suse5) + DISTNAME=suse + DISTVER=5.x + TAPEDRIVE="/dev/nst0" + PSCMD="ps -e -o pid,command" + PFILES="${PFILES} \ + platforms/suse/Makefile \ + platforms/suse/bacula-fd \ + platforms/suse/bacula-sd \ + platforms/suse/bacula-dir" + ;; +unknown) + DISTVER=unknown + TAPEDRIVE="/dev/nst0" + ;; +*) + echo " === Something went wrong. Unknown DISTNAME $DISTNAME ===" + ;; +esac + + + +LIBS="$PTHREAD_LIB $LIBS" + +cat >>confdefs.h <<_ACEOF +#define lld "$lld" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define llu "$llu" +_ACEOF + + + + + + + + +MCOMMON=./autoconf/Make.common + + +if test "x${subsysdir}" = "x${sbindir}" ; then + echo " " + echo " " + echo "You have set both --sbindir and --with-subsys-dir" + echo " equal to: ${subsysdir} " + echo "This is not permitted. Please reconfigure." + echo " " + echo "Aborting configuration ..." + echo " " + echo " " + exit 1 +fi + + ac_config_files="$ac_config_files autoconf/Make.common Makefile manpages/Makefile scripts/startmysql scripts/stopmysql scripts/btraceback scripts/startit scripts/stopit scripts/bconsole scripts/gconsole scripts/bacula scripts/bacula-ctl-dir scripts/bacula-ctl-fd scripts/bacula-ctl-sd scripts/devel_bacula scripts/Makefile scripts/logrotate scripts/bacula.desktop.gnome1 scripts/bacula.desktop.gnome2 scripts/bacula.desktop.gnome1.consolehelper scripts/bacula.desktop.gnome2.consolehelper scripts/bacula.desktop.gnome1.xsu scripts/bacula.desktop.gnome2.xsu scripts/bgnome-console.console_apps scripts/mtx-changer scripts/disk-changer scripts/dvd-handler scripts/dvd-simulator scripts/bacula-tray-monitor.desktop scripts/logwatch/Makefile scripts/logwatch/logfile.bacula.conf scripts/wxconsole.console_apps scripts/wxconsole.desktop.consolehelper scripts/wxconsole.desktop.xsu scripts/bat.desktop scripts/bat.desktop.xsu scripts/bat.desktop.consolehelper scripts/bat.console_apps src/Makefile src/host.h src/console/Makefile src/console/bconsole.conf src/gnome2-console/Makefile src/gnome2-console/bgnome-console.conf src/qt-console/bat.conf src/qt-console/bat.pro src/qt-console/install_conf_file src/wx-console/Makefile src/wx-console/bwx-console.conf src/tray-monitor/Makefile src/tray-monitor/tray-monitor.conf src/dird/Makefile src/dird/bacula-dir.conf src/lib/Makefile src/stored/Makefile src/stored/bacula-sd.conf src/filed/Makefile src/filed/bacula-fd.conf src/cats/Makefile src/cats/make_catalog_backup src/cats/delete_catalog_backup src/cats/create_postgresql_database src/cats/update_postgresql_tables src/cats/make_postgresql_tables src/cats/grant_postgresql_privileges src/cats/drop_postgresql_tables src/cats/drop_postgresql_database src/cats/create_mysql_database src/cats/update_mysql_tables src/cats/make_mysql_tables src/cats/grant_mysql_privileges src/cats/drop_mysql_tables src/cats/drop_mysql_database src/cats/create_sqlite_database src/cats/update_sqlite_tables src/cats/make_sqlite_tables src/cats/grant_sqlite_privileges src/cats/drop_sqlite_tables src/cats/drop_sqlite_database src/cats/create_sqlite3_database src/cats/update_sqlite3_tables src/cats/make_sqlite3_tables src/cats/grant_sqlite3_privileges src/cats/drop_sqlite3_tables src/cats/drop_sqlite3_database src/cats/sqlite src/cats/mysql src/cats/create_bdb_database src/cats/update_bdb_tables src/cats/make_bdb_tables src/cats/grant_bdb_privileges src/cats/drop_bdb_tables src/cats/drop_bdb_database src/cats/create_bacula_database src/cats/update_bacula_tables src/cats/grant_bacula_privileges src/cats/make_bacula_tables src/cats/drop_bacula_tables src/cats/drop_bacula_database src/findlib/Makefile src/tools/Makefile po/Makefile.in $PFILES" + ac_config_commands="$ac_config_commands default" +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +{ + (set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n \ + "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" + ;; + esac; +} | + sed ' + t clear + : clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + : end' >>confcache +if diff $cache_file confcache >/dev/null 2>&1; then :; else + if test -w $cache_file; then + test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file" + cat confcache >$cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# VPATH may cause trouble with some makes, so we remove $(srcdir), +# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=/{ +s/:*\$(srcdir):*/:/; +s/:*\${srcdir}:*/:/; +s/:*@srcdir@:*/:/; +s/^\([^=]*=[ ]*\):*/\1/; +s/:*$//; +s/^[^=]*=[ ]*$//; +}' +fi + +DEFS=-DHAVE_CONFIG_H + +ac_libobjs= +ac_ltlibobjs= +for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_i=`echo "$ac_i" | + sed 's/\$U\././;s/\.o$//;s/\.obj$//'` + # 2. Add them. + ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" + ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo' +done +LIBOBJS=$ac_libobjs + +LTLIBOBJS=$ac_ltlibobjs + + + +: ${CONFIG_STATUS=./config.status} +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files $CONFIG_STATUS" +{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 +echo "$as_me: creating $CONFIG_STATUS" >&6;} +cat >$CONFIG_STATUS <<_ACEOF +#! $SHELL +# Generated by $as_me. +# Run this file to recreate the current configuration. +# Compiler output produced by configure, useful for debugging +# configure, is in config.log if it exists. + +debug=false +ac_cs_recheck=false +ac_cs_silent=false +SHELL=\${CONFIG_SHELL-$SHELL} +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +## --------------------- ## +## M4sh Initialization. ## +## --------------------- ## + +# Be Bourne compatible +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' +elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then + set -o posix +fi +DUALCASE=1; export DUALCASE # for MKS sh + +# Support unset when possible. +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + as_unset=unset +else + as_unset=false +fi + + +# Work around bugs in pre-3.0 UWIN ksh. +$as_unset ENV MAIL MAILPATH +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +for as_var in \ + LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ + LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ + LC_TELEPHONE LC_TIME +do + if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then + eval $as_var=C; export $as_var + else + $as_unset $as_var + fi +done + +# Required to use basename. +if expr a : '\(a\)' >/dev/null 2>&1; then + as_expr=expr +else + as_expr=false +fi + +if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + + +# Name of the executable. +as_me=`$as_basename "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)$' \| \ + . : '\(.\)' 2>/dev/null || +echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } + /^X\/\(\/\/\)$/{ s//\1/; q; } + /^X\/\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + + +# PATH needs CR, and LINENO needs CR and PATH. +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi + + + as_lineno_1=$LINENO + as_lineno_2=$LINENO + as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x$as_lineno_3" = "x$as_lineno_2" || { + # Find who we are. Look in the path if we contain no path at all + # relative or not. + case $0 in + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break +done + + ;; + esac + # We did not find ourselves, most probably we were run as `sh COMMAND' + # in which case we are not to be found in the path. + if test "x$as_myself" = x; then + as_myself=$0 + fi + if test ! -f "$as_myself"; then + { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5 +echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;} + { (exit 1); exit 1; }; } + fi + case $CONFIG_SHELL in + '') + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for as_base in sh bash ksh sh5; do + case $as_dir in + /*) + if ("$as_dir/$as_base" -c ' + as_lineno_1=$LINENO + as_lineno_2=$LINENO + as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then + $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } + $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } + CONFIG_SHELL=$as_dir/$as_base + export CONFIG_SHELL + exec "$CONFIG_SHELL" "$0" ${1+"$@"} + fi;; + esac + done +done +;; + esac + + # Create $as_me.lineno as a copy of $as_myself, but with $LINENO + # uniformly replaced by the line number. The first 'sed' inserts a + # line-number line before each line; the second 'sed' does the real + # work. The second script uses 'N' to pair each line-number line + # with the numbered line, and appends trailing '-' during + # substitution so that $LINENO is not a special case at line end. + # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the + # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) + sed '=' <$as_myself | + sed ' + N + s,$,-, + : loop + s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, + t loop + s,-$,, + s,^['$as_cr_digits']*\n,, + ' >$as_me.lineno && + chmod +x $as_me.lineno || + { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5 +echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;} + { (exit 1); exit 1; }; } + + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensible to this). + . ./$as_me.lineno + # Exit status is that of the last command. + exit +} + + +case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in + *c*,-n*) ECHO_N= ECHO_C=' +' ECHO_T=' ' ;; + *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; + *) ECHO_N= ECHO_C='\c' ECHO_T= ;; +esac + +if expr a : '\(a\)' >/dev/null 2>&1; then + as_expr=expr +else + as_expr=false +fi + +rm -f conf$$ conf$$.exe conf$$.file +echo >conf$$.file +if ln -s conf$$.file conf$$ 2>/dev/null; then + # We could just check for DJGPP; but this test a) works b) is more generic + # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). + if test -f conf$$.exe; then + # Don't use ln at all; we don't have any links + as_ln_s='cp -p' + else + as_ln_s='ln -s' + fi +elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.file + +if mkdir -p . 2>/dev/null; then + as_mkdir_p=: +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +as_executable_p="test -f" + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +# IFS +# We need space, tab and new line, in precisely that order. +as_nl=' +' +IFS=" $as_nl" + +# CDPATH. +$as_unset CDPATH + +exec 6>&1 + +# Open the log real soon, to keep \$[0] and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. Logging --version etc. is OK. +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Running $as_me. ## +_ASBOX +} >&5 +cat >&5 <<_CSEOF + +This file was extended by $as_me, which was +generated by GNU Autoconf 2.59. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +_CSEOF +echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5 +echo >&5 +_ACEOF + +# Files that config.status was made for. +if test -n "$ac_config_files"; then + echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS +fi + +if test -n "$ac_config_headers"; then + echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS +fi + +if test -n "$ac_config_links"; then + echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS +fi + +if test -n "$ac_config_commands"; then + echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS +fi + +cat >>$CONFIG_STATUS <<\_ACEOF + +ac_cs_usage="\ +\`$as_me' instantiates files from templates according to the +current configuration. + +Usage: $0 [OPTIONS] [FILE]... + + -h, --help print this help, then exit + -V, --version print version number, then exit + -q, --quiet do not print progress messages + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + --header=FILE[:TEMPLATE] + instantiate the configuration header FILE + +Configuration files: +$config_files + +Configuration headers: +$config_headers + +Configuration commands: +$config_commands + +Report bugs to ." +_ACEOF + +cat >>$CONFIG_STATUS <<_ACEOF +ac_cs_version="\\ +config.status +configured by $0, generated by GNU Autoconf 2.59, + with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" + +Copyright (C) 2003 Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." +srcdir=$srcdir +INSTALL="$INSTALL" +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +# If no file are specified by the user, then we need to provide default +# value. By we need to know if files were specified by the user. +ac_need_defaults=: +while test $# != 0 +do + case $1 in + --*=*) + ac_option=`expr "x$1" : 'x\([^=]*\)='` + ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'` + ac_shift=: + ;; + -*) + ac_option=$1 + ac_optarg=$2 + ac_shift=shift + ;; + *) # This is not an option, so the user has probably given explicit + # arguments. + ac_option=$1 + ac_need_defaults=false;; + esac + + case $ac_option in + # Handling of the options. +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --vers* | -V ) + echo "$ac_cs_version"; exit 0 ;; + --he | --h) + # Conflict between --help and --header + { { echo "$as_me:$LINENO: error: ambiguous option: $1 +Try \`$0 --help' for more information." >&5 +echo "$as_me: error: ambiguous option: $1 +Try \`$0 --help' for more information." >&2;} + { (exit 1); exit 1; }; };; + --help | --hel | -h ) + echo "$ac_cs_usage"; exit 0 ;; + --debug | --d* | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + CONFIG_FILES="$CONFIG_FILES $ac_optarg" + ac_need_defaults=false;; + --header | --heade | --head | --hea ) + $ac_shift + CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" + ac_need_defaults=false;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1 +Try \`$0 --help' for more information." >&5 +echo "$as_me: error: unrecognized option: $1 +Try \`$0 --help' for more information." >&2;} + { (exit 1); exit 1; }; } ;; + + *) ac_config_targets="$ac_config_targets $1" ;; + + esac + shift +done + +ac_configure_extra_args= + +if $ac_cs_silent; then + exec 6>/dev/null + ac_configure_extra_args="$ac_configure_extra_args --silent" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF +if \$ac_cs_recheck; then + echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 + exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion +fi + +_ACEOF + +cat >>$CONFIG_STATUS <<_ACEOF +# +# INIT-COMMANDS section. +# + +# Capture the value of obsolete ALL_LINGUAS because we need it to compute + # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it + # from automake. + eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' + # Capture the value of LINGUAS because we need it to compute CATALOGS. + LINGUAS="${LINGUAS-%UNSET%}" + + +_ACEOF + + + +cat >>$CONFIG_STATUS <<\_ACEOF +for ac_config_target in $ac_config_targets +do + case "$ac_config_target" in + # Handling of arguments. + "autoconf/Make.common" ) CONFIG_FILES="$CONFIG_FILES autoconf/Make.common" ;; + "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "manpages/Makefile" ) CONFIG_FILES="$CONFIG_FILES manpages/Makefile" ;; + "scripts/startmysql" ) CONFIG_FILES="$CONFIG_FILES scripts/startmysql" ;; + "scripts/stopmysql" ) CONFIG_FILES="$CONFIG_FILES scripts/stopmysql" ;; + "scripts/btraceback" ) CONFIG_FILES="$CONFIG_FILES scripts/btraceback" ;; + "scripts/startit" ) CONFIG_FILES="$CONFIG_FILES scripts/startit" ;; + "scripts/stopit" ) CONFIG_FILES="$CONFIG_FILES scripts/stopit" ;; + "scripts/bconsole" ) CONFIG_FILES="$CONFIG_FILES scripts/bconsole" ;; + "scripts/gconsole" ) CONFIG_FILES="$CONFIG_FILES scripts/gconsole" ;; + "scripts/bacula" ) CONFIG_FILES="$CONFIG_FILES scripts/bacula" ;; + "scripts/bacula-ctl-dir" ) CONFIG_FILES="$CONFIG_FILES scripts/bacula-ctl-dir" ;; + "scripts/bacula-ctl-fd" ) CONFIG_FILES="$CONFIG_FILES scripts/bacula-ctl-fd" ;; + "scripts/bacula-ctl-sd" ) CONFIG_FILES="$CONFIG_FILES scripts/bacula-ctl-sd" ;; + "scripts/devel_bacula" ) CONFIG_FILES="$CONFIG_FILES scripts/devel_bacula" ;; + "scripts/Makefile" ) CONFIG_FILES="$CONFIG_FILES scripts/Makefile" ;; + "scripts/logrotate" ) CONFIG_FILES="$CONFIG_FILES scripts/logrotate" ;; + "scripts/bacula.desktop.gnome1" ) CONFIG_FILES="$CONFIG_FILES scripts/bacula.desktop.gnome1" ;; + "scripts/bacula.desktop.gnome2" ) CONFIG_FILES="$CONFIG_FILES scripts/bacula.desktop.gnome2" ;; + "scripts/bacula.desktop.gnome1.consolehelper" ) CONFIG_FILES="$CONFIG_FILES scripts/bacula.desktop.gnome1.consolehelper" ;; + "scripts/bacula.desktop.gnome2.consolehelper" ) CONFIG_FILES="$CONFIG_FILES scripts/bacula.desktop.gnome2.consolehelper" ;; + "scripts/bacula.desktop.gnome1.xsu" ) CONFIG_FILES="$CONFIG_FILES scripts/bacula.desktop.gnome1.xsu" ;; + "scripts/bacula.desktop.gnome2.xsu" ) CONFIG_FILES="$CONFIG_FILES scripts/bacula.desktop.gnome2.xsu" ;; + "scripts/bgnome-console.console_apps" ) CONFIG_FILES="$CONFIG_FILES scripts/bgnome-console.console_apps" ;; + "scripts/mtx-changer" ) CONFIG_FILES="$CONFIG_FILES scripts/mtx-changer" ;; + "scripts/disk-changer" ) CONFIG_FILES="$CONFIG_FILES scripts/disk-changer" ;; + "scripts/dvd-handler" ) CONFIG_FILES="$CONFIG_FILES scripts/dvd-handler" ;; + "scripts/dvd-simulator" ) CONFIG_FILES="$CONFIG_FILES scripts/dvd-simulator" ;; + "scripts/bacula-tray-monitor.desktop" ) CONFIG_FILES="$CONFIG_FILES scripts/bacula-tray-monitor.desktop" ;; + "scripts/logwatch/Makefile" ) CONFIG_FILES="$CONFIG_FILES scripts/logwatch/Makefile" ;; + "scripts/logwatch/logfile.bacula.conf" ) CONFIG_FILES="$CONFIG_FILES scripts/logwatch/logfile.bacula.conf" ;; + "scripts/wxconsole.console_apps" ) CONFIG_FILES="$CONFIG_FILES scripts/wxconsole.console_apps" ;; + "scripts/wxconsole.desktop.consolehelper" ) CONFIG_FILES="$CONFIG_FILES scripts/wxconsole.desktop.consolehelper" ;; + "scripts/wxconsole.desktop.xsu" ) CONFIG_FILES="$CONFIG_FILES scripts/wxconsole.desktop.xsu" ;; + "scripts/bat.desktop" ) CONFIG_FILES="$CONFIG_FILES scripts/bat.desktop" ;; + "scripts/bat.desktop.xsu" ) CONFIG_FILES="$CONFIG_FILES scripts/bat.desktop.xsu" ;; + "scripts/bat.desktop.consolehelper" ) CONFIG_FILES="$CONFIG_FILES scripts/bat.desktop.consolehelper" ;; + "scripts/bat.console_apps" ) CONFIG_FILES="$CONFIG_FILES scripts/bat.console_apps" ;; + "src/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; + "src/host.h" ) CONFIG_FILES="$CONFIG_FILES src/host.h" ;; + "src/console/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/console/Makefile" ;; + "src/console/bconsole.conf" ) CONFIG_FILES="$CONFIG_FILES src/console/bconsole.conf" ;; + "src/gnome2-console/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/gnome2-console/Makefile" ;; + "src/gnome2-console/bgnome-console.conf" ) CONFIG_FILES="$CONFIG_FILES src/gnome2-console/bgnome-console.conf" ;; + "src/qt-console/bat.conf" ) CONFIG_FILES="$CONFIG_FILES src/qt-console/bat.conf" ;; + "src/qt-console/bat.pro" ) CONFIG_FILES="$CONFIG_FILES src/qt-console/bat.pro" ;; + "src/qt-console/install_conf_file" ) CONFIG_FILES="$CONFIG_FILES src/qt-console/install_conf_file" ;; + "src/wx-console/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/wx-console/Makefile" ;; + "src/wx-console/bwx-console.conf" ) CONFIG_FILES="$CONFIG_FILES src/wx-console/bwx-console.conf" ;; + "src/tray-monitor/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/tray-monitor/Makefile" ;; + "src/tray-monitor/tray-monitor.conf" ) CONFIG_FILES="$CONFIG_FILES src/tray-monitor/tray-monitor.conf" ;; + "src/dird/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/dird/Makefile" ;; + "src/dird/bacula-dir.conf" ) CONFIG_FILES="$CONFIG_FILES src/dird/bacula-dir.conf" ;; + "src/lib/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/lib/Makefile" ;; + "src/stored/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/stored/Makefile" ;; + "src/stored/bacula-sd.conf" ) CONFIG_FILES="$CONFIG_FILES src/stored/bacula-sd.conf" ;; + "src/filed/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/filed/Makefile" ;; + "src/filed/bacula-fd.conf" ) CONFIG_FILES="$CONFIG_FILES src/filed/bacula-fd.conf" ;; + "src/cats/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/cats/Makefile" ;; + "src/cats/make_catalog_backup" ) CONFIG_FILES="$CONFIG_FILES src/cats/make_catalog_backup" ;; + "src/cats/delete_catalog_backup" ) CONFIG_FILES="$CONFIG_FILES src/cats/delete_catalog_backup" ;; + "src/cats/create_postgresql_database" ) CONFIG_FILES="$CONFIG_FILES src/cats/create_postgresql_database" ;; + "src/cats/update_postgresql_tables" ) CONFIG_FILES="$CONFIG_FILES src/cats/update_postgresql_tables" ;; + "src/cats/make_postgresql_tables" ) CONFIG_FILES="$CONFIG_FILES src/cats/make_postgresql_tables" ;; + "src/cats/grant_postgresql_privileges" ) CONFIG_FILES="$CONFIG_FILES src/cats/grant_postgresql_privileges" ;; + "src/cats/drop_postgresql_tables" ) CONFIG_FILES="$CONFIG_FILES src/cats/drop_postgresql_tables" ;; + "src/cats/drop_postgresql_database" ) CONFIG_FILES="$CONFIG_FILES src/cats/drop_postgresql_database" ;; + "src/cats/create_mysql_database" ) CONFIG_FILES="$CONFIG_FILES src/cats/create_mysql_database" ;; + "src/cats/update_mysql_tables" ) CONFIG_FILES="$CONFIG_FILES src/cats/update_mysql_tables" ;; + "src/cats/make_mysql_tables" ) CONFIG_FILES="$CONFIG_FILES src/cats/make_mysql_tables" ;; + "src/cats/grant_mysql_privileges" ) CONFIG_FILES="$CONFIG_FILES src/cats/grant_mysql_privileges" ;; + "src/cats/drop_mysql_tables" ) CONFIG_FILES="$CONFIG_FILES src/cats/drop_mysql_tables" ;; + "src/cats/drop_mysql_database" ) CONFIG_FILES="$CONFIG_FILES src/cats/drop_mysql_database" ;; + "src/cats/create_sqlite_database" ) CONFIG_FILES="$CONFIG_FILES src/cats/create_sqlite_database" ;; + "src/cats/update_sqlite_tables" ) CONFIG_FILES="$CONFIG_FILES src/cats/update_sqlite_tables" ;; + "src/cats/make_sqlite_tables" ) CONFIG_FILES="$CONFIG_FILES src/cats/make_sqlite_tables" ;; + "src/cats/grant_sqlite_privileges" ) CONFIG_FILES="$CONFIG_FILES src/cats/grant_sqlite_privileges" ;; + "src/cats/drop_sqlite_tables" ) CONFIG_FILES="$CONFIG_FILES src/cats/drop_sqlite_tables" ;; + "src/cats/drop_sqlite_database" ) CONFIG_FILES="$CONFIG_FILES src/cats/drop_sqlite_database" ;; + "src/cats/create_sqlite3_database" ) CONFIG_FILES="$CONFIG_FILES src/cats/create_sqlite3_database" ;; + "src/cats/update_sqlite3_tables" ) CONFIG_FILES="$CONFIG_FILES src/cats/update_sqlite3_tables" ;; + "src/cats/make_sqlite3_tables" ) CONFIG_FILES="$CONFIG_FILES src/cats/make_sqlite3_tables" ;; + "src/cats/grant_sqlite3_privileges" ) CONFIG_FILES="$CONFIG_FILES src/cats/grant_sqlite3_privileges" ;; + "src/cats/drop_sqlite3_tables" ) CONFIG_FILES="$CONFIG_FILES src/cats/drop_sqlite3_tables" ;; + "src/cats/drop_sqlite3_database" ) CONFIG_FILES="$CONFIG_FILES src/cats/drop_sqlite3_database" ;; + "src/cats/sqlite" ) CONFIG_FILES="$CONFIG_FILES src/cats/sqlite" ;; + "src/cats/mysql" ) CONFIG_FILES="$CONFIG_FILES src/cats/mysql" ;; + "src/cats/create_bdb_database" ) CONFIG_FILES="$CONFIG_FILES src/cats/create_bdb_database" ;; + "src/cats/update_bdb_tables" ) CONFIG_FILES="$CONFIG_FILES src/cats/update_bdb_tables" ;; + "src/cats/make_bdb_tables" ) CONFIG_FILES="$CONFIG_FILES src/cats/make_bdb_tables" ;; + "src/cats/grant_bdb_privileges" ) CONFIG_FILES="$CONFIG_FILES src/cats/grant_bdb_privileges" ;; + "src/cats/drop_bdb_tables" ) CONFIG_FILES="$CONFIG_FILES src/cats/drop_bdb_tables" ;; + "src/cats/drop_bdb_database" ) CONFIG_FILES="$CONFIG_FILES src/cats/drop_bdb_database" ;; + "src/cats/create_bacula_database" ) CONFIG_FILES="$CONFIG_FILES src/cats/create_bacula_database" ;; + "src/cats/update_bacula_tables" ) CONFIG_FILES="$CONFIG_FILES src/cats/update_bacula_tables" ;; + "src/cats/grant_bacula_privileges" ) CONFIG_FILES="$CONFIG_FILES src/cats/grant_bacula_privileges" ;; + "src/cats/make_bacula_tables" ) CONFIG_FILES="$CONFIG_FILES src/cats/make_bacula_tables" ;; + "src/cats/drop_bacula_tables" ) CONFIG_FILES="$CONFIG_FILES src/cats/drop_bacula_tables" ;; + "src/cats/drop_bacula_database" ) CONFIG_FILES="$CONFIG_FILES src/cats/drop_bacula_database" ;; + "src/findlib/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/findlib/Makefile" ;; + "src/tools/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/tools/Makefile" ;; + "po/Makefile.in" ) CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; + "$PFILES" ) CONFIG_FILES="$CONFIG_FILES $PFILES" ;; + "default-1" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; + "default" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;; + "src/config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS src/config.h:autoconf/config.h.in" ;; + *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 +echo "$as_me: error: invalid argument: $ac_config_target" >&2;} + { (exit 1); exit 1; }; };; + esac +done + +# If the user did not use the arguments to specify the items to instantiate, +# then the envvar interface is used. Set only those that are not. +# We use the long form for the default assignment because of an extremely +# bizarre bug on SunOS 4.1.3. +if $ac_need_defaults; then + test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files + test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers + test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands +fi + +# Have a temporary directory for convenience. Make it in the build tree +# simply because there is no reason to put it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Create a temporary directory, and hook for its removal unless debugging. +$debug || +{ + trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 + trap '{ (exit 1); exit 1; }' 1 2 13 15 +} + +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` && + test -n "$tmp" && test -d "$tmp" +} || +{ + tmp=./confstat$$-$RANDOM + (umask 077 && mkdir $tmp) +} || +{ + echo "$me: cannot create a temporary directory in ." >&2 + { (exit 1); exit 1; } +} + +_ACEOF + +cat >>$CONFIG_STATUS <<_ACEOF + +# +# CONFIG_FILES section. +# + +# No need to generate the scripts if there are no CONFIG_FILES. +# This happens for instance when ./config.status config.h +if test -n "\$CONFIG_FILES"; then + # Protect against being on the right side of a sed subst in config.status. + sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g; + s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF +s,@SHELL@,$SHELL,;t t +s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t +s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t +s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t +s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t +s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t +s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t +s,@exec_prefix@,$exec_prefix,;t t +s,@prefix@,$prefix,;t t +s,@program_transform_name@,$program_transform_name,;t t +s,@bindir@,$bindir,;t t +s,@sbindir@,$sbindir,;t t +s,@libexecdir@,$libexecdir,;t t +s,@datadir@,$datadir,;t t +s,@sysconfdir@,$sysconfdir,;t t +s,@sharedstatedir@,$sharedstatedir,;t t +s,@localstatedir@,$localstatedir,;t t +s,@libdir@,$libdir,;t t +s,@includedir@,$includedir,;t t +s,@oldincludedir@,$oldincludedir,;t t +s,@infodir@,$infodir,;t t +s,@mandir@,$mandir,;t t +s,@build_alias@,$build_alias,;t t +s,@host_alias@,$host_alias,;t t +s,@target_alias@,$target_alias,;t t +s,@DEFS@,$DEFS,;t t +s,@ECHO_C@,$ECHO_C,;t t +s,@ECHO_N@,$ECHO_N,;t t +s,@ECHO_T@,$ECHO_T,;t t +s,@LIBS@,$LIBS,;t t +s,@BUILD_DIR@,$BUILD_DIR,;t t +s,@TOP_DIR@,$TOP_DIR,;t t +s,@TRUEPRG@,$TRUEPRG,;t t +s,@FALSEPRG@,$FALSEPRG,;t t +s,@VERSION@,$VERSION,;t t +s,@DATE@,$DATE,;t t +s,@LSMDATE@,$LSMDATE,;t t +s,@CC@,$CC,;t t +s,@CFLAGS@,$CFLAGS,;t t +s,@LDFLAGS@,$LDFLAGS,;t t +s,@CPPFLAGS@,$CPPFLAGS,;t t +s,@ac_ct_CC@,$ac_ct_CC,;t t +s,@EXEEXT@,$EXEEXT,;t t +s,@OBJEXT@,$OBJEXT,;t t +s,@CXX@,$CXX,;t t +s,@CXXFLAGS@,$CXXFLAGS,;t t +s,@ac_ct_CXX@,$ac_ct_CXX,;t t +s,@CPP@,$CPP,;t t +s,@EGREP@,$EGREP,;t t +s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t +s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t +s,@INSTALL_DATA@,$INSTALL_DATA,;t t +s,@RANLIB@,$RANLIB,;t t +s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t +s,@MV@,$MV,;t t +s,@RM@,$RM,;t t +s,@CP@,$CP,;t t +s,@SED@,$SED,;t t +s,@ECHO@,$ECHO,;t t +s,@CMP@,$CMP,;t t +s,@TBL@,$TBL,;t t +s,@AR@,$AR,;t t +s,@OPENSSL@,$OPENSSL,;t t +s,@MTX@,$MTX,;t t +s,@DD@,$DD,;t t +s,@MKISOFS@,$MKISOFS,;t t +s,@PYTHON@,$PYTHON,;t t +s,@GROWISOFS@,$GROWISOFS,;t t +s,@DVDRWMEDIAINFO@,$DVDRWMEDIAINFO,;t t +s,@DVDRWFORMAT@,$DVDRWFORMAT,;t t +s,@PKGCONFIG@,$PKGCONFIG,;t t +s,@QMAKE@,$QMAKE,;t t +s,@QMAKEQT4@,$QMAKEQT4,;t t +s,@WXCONFIG@,$WXCONFIG,;t t +s,@WXFLAGS@,$WXFLAGS,;t t +s,@CDRECORD@,$CDRECORD,;t t +s,@PIDOF@,$PIDOF,;t t +s,@AWK@,$AWK,;t t +s,@ARFLAGS@,$ARFLAGS,;t t +s,@MAKE_SHELL@,$MAKE_SHELL,;t t +s,@LOCAL_LIBS@,$LOCAL_LIBS,;t t +s,@LOCAL_CFLAGS@,$LOCAL_CFLAGS,;t t +s,@LOCAL_LDFLAGS@,$LOCAL_LDFLAGS,;t t +s,@LOCAL_DEFS@,$LOCAL_DEFS,;t t +s,@build@,$build,;t t +s,@build_cpu@,$build_cpu,;t t +s,@build_vendor@,$build_vendor,;t t +s,@build_os@,$build_os,;t t +s,@host@,$host,;t t +s,@host_cpu@,$host_cpu,;t t +s,@host_vendor@,$host_vendor,;t t +s,@host_os@,$host_os,;t t +s,@HAVE_SUN_OS_TRUE@,$HAVE_SUN_OS_TRUE,;t t +s,@HAVE_SUN_OS_FALSE@,$HAVE_SUN_OS_FALSE,;t t +s,@HAVE_OSF1_OS_TRUE@,$HAVE_OSF1_OS_TRUE,;t t +s,@HAVE_OSF1_OS_FALSE@,$HAVE_OSF1_OS_FALSE,;t t +s,@HAVE_AIX_OS_TRUE@,$HAVE_AIX_OS_TRUE,;t t +s,@HAVE_AIX_OS_FALSE@,$HAVE_AIX_OS_FALSE,;t t +s,@HAVE_HPUX_OS_TRUE@,$HAVE_HPUX_OS_TRUE,;t t +s,@HAVE_HPUX_OS_FALSE@,$HAVE_HPUX_OS_FALSE,;t t +s,@HAVE_LINUX_OS_TRUE@,$HAVE_LINUX_OS_TRUE,;t t +s,@HAVE_LINUX_OS_FALSE@,$HAVE_LINUX_OS_FALSE,;t t +s,@HAVE_FREEBSD_OS_TRUE@,$HAVE_FREEBSD_OS_TRUE,;t t +s,@HAVE_FREEBSD_OS_FALSE@,$HAVE_FREEBSD_OS_FALSE,;t t +s,@HAVE_NETBSD_OS_TRUE@,$HAVE_NETBSD_OS_TRUE,;t t +s,@HAVE_NETBSD_OS_FALSE@,$HAVE_NETBSD_OS_FALSE,;t t +s,@HAVE_OPENBSD_OS_TRUE@,$HAVE_OPENBSD_OS_TRUE,;t t +s,@HAVE_OPENBSD_OS_FALSE@,$HAVE_OPENBSD_OS_FALSE,;t t +s,@HAVE_BSDI_OS_TRUE@,$HAVE_BSDI_OS_TRUE,;t t +s,@HAVE_BSDI_OS_FALSE@,$HAVE_BSDI_OS_FALSE,;t t +s,@HAVE_SGI_OS_TRUE@,$HAVE_SGI_OS_TRUE,;t t +s,@HAVE_SGI_OS_FALSE@,$HAVE_SGI_OS_FALSE,;t t +s,@HAVE_IRIX_OS_TRUE@,$HAVE_IRIX_OS_TRUE,;t t +s,@HAVE_IRIX_OS_FALSE@,$HAVE_IRIX_OS_FALSE,;t t +s,@HAVE_DARWIN_OS_TRUE@,$HAVE_DARWIN_OS_TRUE,;t t +s,@HAVE_DARWIN_OS_FALSE@,$HAVE_DARWIN_OS_FALSE,;t t +s,@SET_MAKE@,$SET_MAKE,;t t +s,@MKINSTALLDIRS@,$MKINSTALLDIRS,;t t +s,@USE_NLS@,$USE_NLS,;t t +s,@MSGFMT@,$MSGFMT,;t t +s,@GMSGFMT@,$GMSGFMT,;t t +s,@XGETTEXT@,$XGETTEXT,;t t +s,@MSGMERGE@,$MSGMERGE,;t t +s,@INTL_MACOSX_LIBS@,$INTL_MACOSX_LIBS,;t t +s,@LIBICONV@,$LIBICONV,;t t +s,@LTLIBICONV@,$LTLIBICONV,;t t +s,@INTLLIBS@,$INTLLIBS,;t t +s,@LIBINTL@,$LIBINTL,;t t +s,@LTLIBINTL@,$LTLIBINTL,;t t +s,@POSUB@,$POSUB,;t t +s,@GLIBC2@,$GLIBC2,;t t +s,@ALLOCA@,$ALLOCA,;t t +s,@GLIBC21@,$GLIBC21,;t t +s,@HAVE_POSIX_PRINTF@,$HAVE_POSIX_PRINTF,;t t +s,@HAVE_ASPRINTF@,$HAVE_ASPRINTF,;t t +s,@HAVE_SNPRINTF@,$HAVE_SNPRINTF,;t t +s,@HAVE_WPRINTF@,$HAVE_WPRINTF,;t t +s,@INTLBISON@,$INTLBISON,;t t +s,@BUILD_INCLUDED_LIBINTL@,$BUILD_INCLUDED_LIBINTL,;t t +s,@USE_INCLUDED_LIBINTL@,$USE_INCLUDED_LIBINTL,;t t +s,@CATOBJEXT@,$CATOBJEXT,;t t +s,@DATADIRNAME@,$DATADIRNAME,;t t +s,@INSTOBJEXT@,$INSTOBJEXT,;t t +s,@GENCAT@,$GENCAT,;t t +s,@INTLOBJS@,$INTLOBJS,;t t +s,@INTL_LIBTOOL_SUFFIX_PREFIX@,$INTL_LIBTOOL_SUFFIX_PREFIX,;t t +s,@GNOME_INCLUDEDIR@,$GNOME_INCLUDEDIR,;t t +s,@GNOMEUI_LIBS@,$GNOMEUI_LIBS,;t t +s,@GNOME_LIBDIR@,$GNOME_LIBDIR,;t t +s,@GNOME_LIBS@,$GNOME_LIBS,;t t +s,@GNOME_DIR@,$GNOME_DIR,;t t +s,@BAT_DIR@,$BAT_DIR,;t t +s,@QWT_INC@,$QWT_INC,;t t +s,@QWT_LDFLAGS@,$QWT_LDFLAGS,;t t +s,@WXCONS_CPPFLAGS@,$WXCONS_CPPFLAGS,;t t +s,@WXCONS_LDFLAGS@,$WXCONS_LDFLAGS,;t t +s,@WX_DIR@,$WX_DIR,;t t +s,@TRAY_MONITOR_CPPFLAGS@,$TRAY_MONITOR_CPPFLAGS,;t t +s,@TRAY_MONITOR_LDFLAGS@,$TRAY_MONITOR_LDFLAGS,;t t +s,@TRAY_MONITOR_DIR@,$TRAY_MONITOR_DIR,;t t +s,@TTOOL_LDFLAGS@,$TTOOL_LDFLAGS,;t t +s,@STATIC_FD@,$STATIC_FD,;t t +s,@STATIC_SD@,$STATIC_SD,;t t +s,@STATIC_DIR@,$STATIC_DIR,;t t +s,@STATIC_CONS@,$STATIC_CONS,;t t +s,@STATIC_GNOME_CONS@,$STATIC_GNOME_CONS,;t t +s,@STATIC_WX_CONS@,$STATIC_WX_CONS,;t t +s,@ALL_DIRS@,$ALL_DIRS,;t t +s,@DIRD_DIR@,$DIRD_DIR,;t t +s,@DIR_TOOLS@,$DIR_TOOLS,;t t +s,@STORED_DIR@,$STORED_DIR,;t t +s,@CONS_INC@,$CONS_INC,;t t +s,@CONS_OBJ@,$CONS_OBJ,;t t +s,@CONS_SRC@,$CONS_SRC,;t t +s,@CONS_LIBS@,$CONS_LIBS,;t t +s,@CONS_LDFLAGS@,$CONS_LDFLAGS,;t t +s,@READLINE_SRC@,$READLINE_SRC,;t t +s,@PYTHON_LIBS@,$PYTHON_LIBS,;t t +s,@PYTHON_INCDIR@,$PYTHON_INCDIR,;t t +s,@OPENSSL_LIBS@,$OPENSSL_LIBS,;t t +s,@OPENSSL_INC@,$OPENSSL_INC,;t t +s,@working_dir@,$working_dir,;t t +s,@archivedir@,$archivedir,;t t +s,@scriptdir@,$scriptdir,;t t +s,@dump_email@,$dump_email,;t t +s,@job_email@,$job_email,;t t +s,@smtp_host@,$smtp_host,;t t +s,@piddir@,$piddir,;t t +s,@subsysdir@,$subsysdir,;t t +s,@baseport@,$baseport,;t t +s,@dir_port@,$dir_port,;t t +s,@fd_port@,$fd_port,;t t +s,@sd_port@,$sd_port,;t t +s,@dir_password@,$dir_password,;t t +s,@fd_password@,$fd_password,;t t +s,@sd_password@,$sd_password,;t t +s,@mon_dir_password@,$mon_dir_password,;t t +s,@mon_fd_password@,$mon_fd_password,;t t +s,@mon_sd_password@,$mon_sd_password,;t t +s,@db_name@,$db_name,;t t +s,@db_user@,$db_user,;t t +s,@dir_user@,$dir_user,;t t +s,@dir_group@,$dir_group,;t t +s,@sd_user@,$sd_user,;t t +s,@sd_group@,$sd_group,;t t +s,@fd_user@,$fd_user,;t t +s,@fd_group@,$fd_group,;t t +s,@SBINPERM@,$SBINPERM,;t t +s,@SQL_LFLAGS@,$SQL_LFLAGS,;t t +s,@SQL_INCLUDE@,$SQL_INCLUDE,;t t +s,@SQL_BINDIR@,$SQL_BINDIR,;t t +s,@cats@,$cats,;t t +s,@DB_TYPE@,$DB_TYPE,;t t +s,@GETCONF@,$GETCONF,;t t +s,@ac_ct_GETCONF@,$ac_ct_GETCONF,;t t +s,@X_CFLAGS@,$X_CFLAGS,;t t +s,@X_PRE_LIBS@,$X_PRE_LIBS,;t t +s,@X_LIBS@,$X_LIBS,;t t +s,@X_EXTRA_LIBS@,$X_EXTRA_LIBS,;t t +s,@LIBOBJS@,$LIBOBJS,;t t +s,@FDLIBS@,$FDLIBS,;t t +s,@DEBUG@,$DEBUG,;t t +s,@DINCLUDE@,$DINCLUDE,;t t +s,@DLIB@,$DLIB,;t t +s,@DB_LIBS@,$DB_LIBS,;t t +s,@WCFLAGS@,$WCFLAGS,;t t +s,@WLDFLAGS@,$WLDFLAGS,;t t +s,@WRAPLIBS@,$WRAPLIBS,;t t +s,@OBJLIST@,$OBJLIST,;t t +s,@hostname@,$hostname,;t t +s,@TAPEDRIVE@,$TAPEDRIVE,;t t +s,@PSCMD@,$PSCMD,;t t +s,@WIN32@,$WIN32,;t t +s,@MACOSX@,$MACOSX,;t t +s,@DISTNAME@,$DISTNAME,;t t +s,@DISTVER@,$DISTVER,;t t +s,@LTLIBOBJS@,$LTLIBOBJS,;t t +/@MCOMMON@/r $MCOMMON +s,@MCOMMON@,,;t t +CEOF + +_ACEOF + + cat >>$CONFIG_STATUS <<\_ACEOF + # Split the substitutions into bite-sized pieces for seds with + # small command number limits, like on Digital OSF/1 and HP-UX. + ac_max_sed_lines=48 + ac_sed_frag=1 # Number of current file. + ac_beg=1 # First line for current file. + ac_end=$ac_max_sed_lines # Line after last line for current file. + ac_more_lines=: + ac_sed_cmds= + while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag + else + sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag + fi + if test ! -s $tmp/subs.frag; then + ac_more_lines=false + else + # The purpose of the label and of the branching condition is to + # speed up the sed processing (if there are no `@' at all, there + # is no need to browse any of the substitutions). + # These are the two extra sed commands mentioned above. + (echo ':t + /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" + else + ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" + fi + ac_sed_frag=`expr $ac_sed_frag + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_lines` + fi + done + if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat + fi +fi # test -n "$CONFIG_FILES" + +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF +for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case $ac_file in + - | *:- | *:-:* ) # input from stdin + cat >$tmp/stdin + ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` + ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` + ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + * ) ac_file_in=$ac_file.in ;; + esac + + # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. + ac_dir=`(dirname "$ac_file") 2>/dev/null || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + { if $as_mkdir_p; then + mkdir -p "$ac_dir" + else + as_dir="$ac_dir" + as_dirs= + while test ! -d "$as_dir"; do + as_dirs="$as_dir $as_dirs" + as_dir=`(dirname "$as_dir") 2>/dev/null || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + done + test ! -n "$as_dirs" || mkdir $as_dirs + fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 +echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} + { (exit 1); exit 1; }; }; } + + ac_builddir=. + +if test "$ac_dir" != .; then + ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + # A "../" for each directory in $ac_dir_suffix. + ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` +else + ac_dir_suffix= ac_top_builddir= +fi + +case $srcdir in + .) # No --srcdir option. We are building in place. + ac_srcdir=. + if test -z "$ac_top_builddir"; then + ac_top_srcdir=. + else + ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` + fi ;; + [\\/]* | ?:[\\/]* ) # Absolute path. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir ;; + *) # Relative path. + ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_builddir$srcdir ;; +esac + +# Do not use `cd foo && pwd` to compute absolute paths, because +# the directories may not exist. +case `pwd` in +.) ac_abs_builddir="$ac_dir";; +*) + case "$ac_dir" in + .) ac_abs_builddir=`pwd`;; + [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; + *) ac_abs_builddir=`pwd`/"$ac_dir";; + esac;; +esac +case $ac_abs_builddir in +.) ac_abs_top_builddir=${ac_top_builddir}.;; +*) + case ${ac_top_builddir}. in + .) ac_abs_top_builddir=$ac_abs_builddir;; + [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; + *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; + esac;; +esac +case $ac_abs_builddir in +.) ac_abs_srcdir=$ac_srcdir;; +*) + case $ac_srcdir in + .) ac_abs_srcdir=$ac_abs_builddir;; + [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; + *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; + esac;; +esac +case $ac_abs_builddir in +.) ac_abs_top_srcdir=$ac_top_srcdir;; +*) + case $ac_top_srcdir in + .) ac_abs_top_srcdir=$ac_abs_builddir;; + [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; + *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; + esac;; +esac + + + case $INSTALL in + [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; + *) ac_INSTALL=$ac_top_builddir$INSTALL ;; + esac + + if test x"$ac_file" != x-; then + { echo "$as_me:$LINENO: creating $ac_file" >&5 +echo "$as_me: creating $ac_file" >&6;} + rm -f "$ac_file" + fi + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + if test x"$ac_file" = x-; then + configure_input= + else + configure_input="$ac_file. " + fi + configure_input=$configure_input"Generated from `echo $ac_file_in | + sed 's,.*/,,'` by configure." + + # First look for the input files in the build tree, otherwise in the + # src tree. + ac_file_inputs=`IFS=: + for f in $ac_file_in; do + case $f in + -) echo $tmp/stdin ;; + [\\/$]*) + # Absolute (can't be DOS-style, as IFS=:) + test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 +echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } + echo "$f";; + *) # Relative + if test -f "$f"; then + # Build tree + echo "$f" + elif test -f "$srcdir/$f"; then + # Source tree + echo "$srcdir/$f" + else + # /dev/null tree + { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 +echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } + fi;; + esac + done` || { (exit 1); exit 1; } +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF + sed "$ac_vpsub +$extrasub +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s,@configure_input@,$configure_input,;t t +s,@srcdir@,$ac_srcdir,;t t +s,@abs_srcdir@,$ac_abs_srcdir,;t t +s,@top_srcdir@,$ac_top_srcdir,;t t +s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t +s,@builddir@,$ac_builddir,;t t +s,@abs_builddir@,$ac_abs_builddir,;t t +s,@top_builddir@,$ac_top_builddir,;t t +s,@abs_top_builddir@,$ac_abs_top_builddir,;t t +s,@INSTALL@,$ac_INSTALL,;t t +" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out + rm -f $tmp/stdin + if test x"$ac_file" != x-; then + mv $tmp/out $ac_file + else + cat $tmp/out + rm -f $tmp/out + fi + +done +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF + +# +# CONFIG_HEADER section. +# + +# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where +# NAME is the cpp macro being defined and VALUE is the value it is being given. +# +# ac_d sets the value in "#define NAME VALUE" lines. +ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)' +ac_dB='[ ].*$,\1#\2' +ac_dC=' ' +ac_dD=',;t' +# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE". +ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' +ac_uB='$,\1#\2define\3' +ac_uC=' ' +ac_uD=',;t' + +for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case $ac_file in + - | *:- | *:-:* ) # input from stdin + cat >$tmp/stdin + ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` + ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` + ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + * ) ac_file_in=$ac_file.in ;; + esac + + test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5 +echo "$as_me: creating $ac_file" >&6;} + + # First look for the input files in the build tree, otherwise in the + # src tree. + ac_file_inputs=`IFS=: + for f in $ac_file_in; do + case $f in + -) echo $tmp/stdin ;; + [\\/$]*) + # Absolute (can't be DOS-style, as IFS=:) + test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 +echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } + # Do quote $f, to prevent DOS paths from being IFS'd. + echo "$f";; + *) # Relative + if test -f "$f"; then + # Build tree + echo "$f" + elif test -f "$srcdir/$f"; then + # Source tree + echo "$srcdir/$f" + else + # /dev/null tree + { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 +echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } + fi;; + esac + done` || { (exit 1); exit 1; } + # Remove the trailing spaces. + sed 's/[ ]*$//' $ac_file_inputs >$tmp/in + +_ACEOF + +# Transform confdefs.h into two sed scripts, `conftest.defines' and +# `conftest.undefs', that substitutes the proper values into +# config.h.in to produce config.h. The first handles `#define' +# templates, and the second `#undef' templates. +# And first: Protect against being on the right side of a sed subst in +# config.status. Protect against being in an unquoted here document +# in config.status. +rm -f conftest.defines conftest.undefs +# Using a here document instead of a string reduces the quoting nightmare. +# Putting comments in sed scripts is not portable. +# +# `end' is used to avoid that the second main sed command (meant for +# 0-ary CPP macros) applies to n-ary macro definitions. +# See the Autoconf documentation for `clear'. +cat >confdef2sed.sed <<\_ACEOF +s/[\\&,]/\\&/g +s,[\\$`],\\&,g +t clear +: clear +s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp +t end +s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp +: end +_ACEOF +# If some macros were called several times there might be several times +# the same #defines, which is useless. Nevertheless, we may not want to +# sort them, since we want the *last* AC-DEFINE to be honored. +uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines +sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs +rm -f confdef2sed.sed + +# This sed command replaces #undef with comments. This is necessary, for +# example, in the case of _POSIX_SOURCE, which is predefined and required +# on some systems where configure will not decide to define it. +cat >>conftest.undefs <<\_ACEOF +s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */, +_ACEOF + +# Break up conftest.defines because some shells have a limit on the size +# of here documents, and old seds have small limits too (100 cmds). +echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS +echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS +echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS +echo ' :' >>$CONFIG_STATUS +rm -f conftest.tail +while grep . conftest.defines >/dev/null +do + # Write a limited-size here document to $tmp/defines.sed. + echo ' cat >$tmp/defines.sed <>$CONFIG_STATUS + # Speed up: don't consider the non `#define' lines. + echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS + # Work around the forget-to-reset-the-flag bug. + echo 't clr' >>$CONFIG_STATUS + echo ': clr' >>$CONFIG_STATUS + sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS + echo 'CEOF + sed -f $tmp/defines.sed $tmp/in >$tmp/out + rm -f $tmp/in + mv $tmp/out $tmp/in +' >>$CONFIG_STATUS + sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail + rm -f conftest.defines + mv conftest.tail conftest.defines +done +rm -f conftest.defines +echo ' fi # grep' >>$CONFIG_STATUS +echo >>$CONFIG_STATUS + +# Break up conftest.undefs because some shells have a limit on the size +# of here documents, and old seds have small limits too (100 cmds). +echo ' # Handle all the #undef templates' >>$CONFIG_STATUS +rm -f conftest.tail +while grep . conftest.undefs >/dev/null +do + # Write a limited-size here document to $tmp/undefs.sed. + echo ' cat >$tmp/undefs.sed <>$CONFIG_STATUS + # Speed up: don't consider the non `#undef' + echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS + # Work around the forget-to-reset-the-flag bug. + echo 't clr' >>$CONFIG_STATUS + echo ': clr' >>$CONFIG_STATUS + sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS + echo 'CEOF + sed -f $tmp/undefs.sed $tmp/in >$tmp/out + rm -f $tmp/in + mv $tmp/out $tmp/in +' >>$CONFIG_STATUS + sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail + rm -f conftest.undefs + mv conftest.tail conftest.undefs +done +rm -f conftest.undefs + +cat >>$CONFIG_STATUS <<\_ACEOF + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + if test x"$ac_file" = x-; then + echo "/* Generated by configure. */" >$tmp/config.h + else + echo "/* $ac_file. Generated by configure. */" >$tmp/config.h + fi + cat $tmp/in >>$tmp/config.h + rm -f $tmp/in + if test x"$ac_file" != x-; then + if diff $ac_file $tmp/config.h >/dev/null 2>&1; then + { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 +echo "$as_me: $ac_file is unchanged" >&6;} + else + ac_dir=`(dirname "$ac_file") 2>/dev/null || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + { if $as_mkdir_p; then + mkdir -p "$ac_dir" + else + as_dir="$ac_dir" + as_dirs= + while test ! -d "$as_dir"; do + as_dirs="$as_dir $as_dirs" + as_dir=`(dirname "$as_dir") 2>/dev/null || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + done + test ! -n "$as_dirs" || mkdir $as_dirs + fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 +echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} + { (exit 1); exit 1; }; }; } + + rm -f $ac_file + mv $tmp/config.h $ac_file + fi + else + cat $tmp/config.h + rm -f $tmp/config.h + fi +done +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF + +# +# CONFIG_COMMANDS section. +# +for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue + ac_dest=`echo "$ac_file" | sed 's,:.*,,'` + ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'` + ac_dir=`(dirname "$ac_dest") 2>/dev/null || +$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_dest" : 'X\(//\)[^/]' \| \ + X"$ac_dest" : 'X\(//\)$' \| \ + X"$ac_dest" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$ac_dest" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + { if $as_mkdir_p; then + mkdir -p "$ac_dir" + else + as_dir="$ac_dir" + as_dirs= + while test ! -d "$as_dir"; do + as_dirs="$as_dir $as_dirs" + as_dir=`(dirname "$as_dir") 2>/dev/null || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + done + test ! -n "$as_dirs" || mkdir $as_dirs + fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 +echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} + { (exit 1); exit 1; }; }; } + + ac_builddir=. + +if test "$ac_dir" != .; then + ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + # A "../" for each directory in $ac_dir_suffix. + ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` +else + ac_dir_suffix= ac_top_builddir= +fi + +case $srcdir in + .) # No --srcdir option. We are building in place. + ac_srcdir=. + if test -z "$ac_top_builddir"; then + ac_top_srcdir=. + else + ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` + fi ;; + [\\/]* | ?:[\\/]* ) # Absolute path. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir ;; + *) # Relative path. + ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_builddir$srcdir ;; +esac + +# Do not use `cd foo && pwd` to compute absolute paths, because +# the directories may not exist. +case `pwd` in +.) ac_abs_builddir="$ac_dir";; +*) + case "$ac_dir" in + .) ac_abs_builddir=`pwd`;; + [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; + *) ac_abs_builddir=`pwd`/"$ac_dir";; + esac;; +esac +case $ac_abs_builddir in +.) ac_abs_top_builddir=${ac_top_builddir}.;; +*) + case ${ac_top_builddir}. in + .) ac_abs_top_builddir=$ac_abs_builddir;; + [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; + *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; + esac;; +esac +case $ac_abs_builddir in +.) ac_abs_srcdir=$ac_srcdir;; +*) + case $ac_srcdir in + .) ac_abs_srcdir=$ac_abs_builddir;; + [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; + *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; + esac;; +esac +case $ac_abs_builddir in +.) ac_abs_top_srcdir=$ac_top_srcdir;; +*) + case $ac_top_srcdir in + .) ac_abs_top_srcdir=$ac_abs_builddir;; + [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; + *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; + esac;; +esac + + + { echo "$as_me:$LINENO: executing $ac_dest commands" >&5 +echo "$as_me: executing $ac_dest commands" >&6;} + case $ac_dest in + default-1 ) + for ac_file in $CONFIG_FILES; do + # Support "outfile[:infile[:infile...]]" + case "$ac_file" in + *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + esac + # PO directories have a Makefile.in generated from Makefile.in.in. + case "$ac_file" in */Makefile.in) + # Adjust a relative srcdir. + ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` + ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" + ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` + # In autoconf-2.13 it is called $ac_given_srcdir. + # In autoconf-2.50 it is called $srcdir. + test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" + case "$ac_given_srcdir" in + .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; + /*) top_srcdir="$ac_given_srcdir" ;; + *) top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + # Treat a directory as a PO directory if and only if it has a + # POTFILES.in file. This allows packages to have multiple PO + # directories under different names or in different locations. + if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then + rm -f "$ac_dir/POTFILES" + test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" + cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" + POMAKEFILEDEPS="POTFILES.in" + # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend + # on $ac_dir but don't depend on user-specified configuration + # parameters. + if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then + # The LINGUAS file contains the set of available languages. + if test -n "$OBSOLETE_ALL_LINGUAS"; then + test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" + fi + ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` + # Hide the ALL_LINGUAS assigment from automake. + eval 'ALL_LINGUAS''=$ALL_LINGUAS_' + POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" + else + # The set of available languages was given in configure.in. + eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' + fi + # Compute POFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) + # Compute UPDATEPOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) + # Compute DUMMYPOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) + # Compute GMOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) + case "$ac_given_srcdir" in + .) srcdirpre= ;; + *) srcdirpre='$(srcdir)/' ;; + esac + POFILES= + UPDATEPOFILES= + DUMMYPOFILES= + GMOFILES= + for lang in $ALL_LINGUAS; do + POFILES="$POFILES $srcdirpre$lang.po" + UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" + DUMMYPOFILES="$DUMMYPOFILES $lang.nop" + GMOFILES="$GMOFILES $srcdirpre$lang.gmo" + done + # CATALOGS depends on both $ac_dir and the user's LINGUAS + # environment variable. + INST_LINGUAS= + if test -n "$ALL_LINGUAS"; then + for presentlang in $ALL_LINGUAS; do + useit=no + if test "%UNSET%" != "$LINGUAS"; then + desiredlanguages="$LINGUAS" + else + desiredlanguages="$ALL_LINGUAS" + fi + for desiredlang in $desiredlanguages; do + # Use the presentlang catalog if desiredlang is + # a. equal to presentlang, or + # b. a variant of presentlang (because in this case, + # presentlang can be used as a fallback for messages + # which are not translated in the desiredlang catalog). + case "$desiredlang" in + "$presentlang"*) useit=yes;; + esac + done + if test $useit = yes; then + INST_LINGUAS="$INST_LINGUAS $presentlang" + fi + done + fi + CATALOGS= + if test -n "$INST_LINGUAS"; then + for lang in $INST_LINGUAS; do + CATALOGS="$CATALOGS $lang.gmo" + done + fi + test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" + sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" + for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do + if test -f "$f"; then + case "$f" in + *.orig | *.bak | *~) ;; + *) cat "$f" >> "$ac_dir/Makefile" ;; + esac + fi + done + fi + ;; + esac + done ;; + default ) + ;; + esac +done +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF + +{ (exit 0); exit 0; } +_ACEOF +chmod +x $CONFIG_STATUS +ac_clean_files=$ac_clean_files_save + + +# configure is writing to config.log, and then calls config.status. +# config.status does its own redirection, appending to config.log. +# Unfortunately, on DOS this fails, as config.log is still kept open +# by configure, so config.status won't be able to write to it; its +# output is simply discarded. So we exec the FD to /dev/null, +# effectively closing config.log, so it can be properly (re)opened and +# appended to by config.status. When coming back to configure, we +# need to make the FD available again. +if test "$no_create" != yes; then + ac_cs_success=: + ac_config_status_args= + test "$silent" = yes && + ac_config_status_args="$ac_config_status_args --quiet" + exec 5>/dev/null + $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false + exec 5>>config.log + # Use ||, not &&, to avoid exiting from the if with $? = 1, which + # would make configure fail if this is the last instruction. + $ac_cs_success || { (exit 1); exit 1; } +fi + + +if test "${support_bat}" = "yes" ; then + if test "x$QMAKE" = "xnone" && test "x$QMAKEQT4" = "xnone"; then + echo "Could not find qmake or qmake-qt4 in $PATH. Check your Qt installation" + exit 1 + fi + + QMAKEBIN="qmake" + + if test "x$QMAKEQT4" != "xnone"; then + QMAKEBIN=qmake-qt4 + fi + + + + cd src/qt-console + chmod 755 install_conf_file build-depkgs-qt-console + echo "Creating bat Makefile" + $QMAKEBIN + cd ${BUILD_DIR} +fi + +echo "Doing make of dependencies" +${MAKE:-make} depend + +cd scripts +chmod 755 startmysql stopmysql bacula startit stopit btraceback mtx-changer +chmod 755 dvd-handler dvd-simulator +chmod 755 bconsole gconsole mtx-changer devel_bacula logrotate +cd .. + +c=src/cats + +chmod 755 $c/create_bacula_database $c/update_bacula_tables $c/make_bacula_tables +chmod 755 $c/grant_bacula_privileges $c/drop_bacula_tables $c/drop_bacula_database + +chmod 755 $c/create_bdb_database $c/update_bdb_tables $c/make_bdb_tables +chmod 755 $c/grant_bdb_privileges $c/drop_bdb_tables $c/drop_bdb_database + +chmod 755 $c/create_mysql_database $c/update_mysql_tables $c/make_mysql_tables +chmod 755 $c/grant_mysql_privileges $c/drop_mysql_tables $c/drop_mysql_database + +chmod 755 $c/create_sqlite_database $c/update_sqlite_tables $c/make_sqlite_tables +chmod 755 $c/grant_sqlite_privileges $c/drop_sqlite_tables $c/drop_sqlite_database + +chmod 755 $c/create_sqlite3_database $c/update_sqlite3_tables $c/make_sqlite3_tables +chmod 755 $c/grant_sqlite3_privileges $c/drop_sqlite3_tables $c/drop_sqlite3_database + +chmod 755 $c/create_postgresql_database $c/update_postgresql_tables $c/make_postgresql_tables +chmod 755 $c/grant_postgresql_privileges $c/drop_postgresql_tables $c/drop_postgresql_database + +chmod 755 $c/make_catalog_backup $c/delete_catalog_backup +chmod 755 $c/sqlite +chmod 755 $c/mysql + +chmod 755 src/win32/build-depkgs-mingw32 + + + +if test "x$ac_cv_sys_largefile_CFLAGS" != "xno" ; then + largefile_support="yes" +fi + +# +# A whole lot of hand springs to get the compiler version. +# This is because gcc changed the output in version 3.0 +# +CCVERSION=`${CC} --version | tr '\n' ' ' | cut -f 3 -d ' '` +if test "x${CCVERSION}" = "x" ; then + CCVERSION=`${CC} --version | tr '\n' ' ' | cut -f 1 -d ' '` +fi +CXXVERSION=`${CXX} --version | tr '\n' ' ' | cut -f 3 -d ' '` +if test x"${CXXVERSION}" = x ; then + CXXVERSION=`${CXX} --version | tr '\n' ' ' | cut -f 1 -d ' '` +fi + +if test "x${subsysdir}" = "x${sbindir}" ; then + echo " " + echo " " + echo "You have set --sbindir and --with-subsys-dir" + echo " both equal to: ${subsysdir} " + echo " This is not permitted. Please reconfigure." + echo " " + echo "Aborting configuration ..." + echo " " + echo " " + exit 1 +fi + +if test "x${db_type}" = "xInternal" ; then + echo " " + echo " " + echo "You have not specified either --enable-client-only or one of the" + echo " supported databases: MySQL, PostgreSQL, SQLite3 or SQLite." + echo " This is not permitted. Please reconfigure." + echo " " + echo "Aborting the configuration ..." + echo " " + echo " " + exit 1 +fi + +echo " +Configuration on `date`: + + Host: $host -- ${DISTNAME} ${DISTVER} + Bacula version: ${VERSION} (${DATE}) + Source code location: ${srcdir} + Install binaries: ${sbindir} + Install config files: ${sysconfdir} + Scripts directory: ${scriptdir} + Archive directory: ${archivedir} + Working directory: ${working_dir} + PID directory: ${piddir} + Subsys directory: ${subsysdir} + Man directory: ${mandir} + Data directory: ${datadir} + C Compiler: ${CC} ${CCVERSION} + C++ Compiler: ${CXX} ${CXXVERSION} + Compiler flags: ${WCFLAGS} ${CFLAGS} + Linker flags: ${WLDFLAGS} ${LDFLAGS} + Libraries: ${LIBS} + Statically Linked Tools: ${support_static_tools} + Statically Linked FD: ${support_static_fd} + Statically Linked SD: ${support_static_sd} + Statically Linked DIR: ${support_static_dir} + Statically Linked CONS: ${support_static_cons} + Database type: ${db_type} + Database lib: ${DB_LIBS} + Database name: ${db_name} + Database user: ${db_user} + + Job Output Email: ${job_email} + Traceback Email: ${dump_email} + SMTP Host Address: ${smtp_host} + + Director Port: ${dir_port} + File daemon Port: ${fd_port} + Storage daemon Port: ${sd_port} + + Director User: ${dir_user} + Director Group: ${dir_group} + Storage Daemon User: ${sd_user} + Storage DaemonGroup: ${sd_group} + File Daemon User: ${fd_user} + File Daemon Group: ${fd_group} + + SQL binaries Directory ${SQL_BINDIR} + + Large file support: $largefile_support + Bacula conio support: ${got_conio} ${CONS_LIBS} + readline support: ${got_readline} ${PRTREADLINE_SRC} + TCP Wrappers support: ${TCPW_MSG} ${WRAPLIBS} + TLS support: ${support_tls} + Encryption support: ${support_crypto} + ZLIB support: ${have_zlib} + enable-smartalloc: ${support_smartalloc} + bat support: ${support_bat} ${QWT_LDFLAGS} + enable-gnome: ${support_gnome} ${gnome_version} + enable-bwx-console: ${support_wx_console} ${wx_version} + enable-tray-monitor: ${support_tray_monitor} + client-only: ${build_client_only} + build-dird: ${build_dird} + build-stored: ${build_stored} + ACL support: ${have_acl} + Python support: ${support_python} ${PYTHON_LIBS} + Batch insert enabled: ${support_batch_insert} + + " > config.out + +cat config.out diff --git a/Branch-2.2/bacula/examples/AFS-README b/Branch-2.2/bacula/examples/AFS-README new file mode 100644 index 0000000000..233ede4897 --- /dev/null +++ b/Branch-2.2/bacula/examples/AFS-README @@ -0,0 +1,45 @@ +From: Lucas Mingarro +To: bacula-users@lists.sourceforge.net +Subject: [Bacula-users] OpenAFS with bacula + +Hi, + I'm using Bacula for backing up an AFS file set. I don't know if +anyone else is doing it, but here is my explaination about how Bacula +works with it. + +I'm using Bacula 1.26a on a RedHat Linux 7.1 on the Bacula Director +machine and RedHat Linux 7.1 and OpenAFS 1.26 on the Bacula client machine. + +First make a user bacula in your kas server an give him rl permission on +all volumes that you want to backup with Bacula. + +In order for bacula-fd to reads the files on your +AFS server you have to give the client a kerberos ticket with +the right privileges to read the volumes. Here my script to +obtain the ticket. + +I made a script that obtains the tiket and then runs bacula-fd, + +I put this script in /sbin/afs-bacula with permissions 700. +(See current directory for a copy) + +Then you have to change the bacula-fd start/stop script. +Replace the line + +daemon /usr/local/sbin/bacula-fd $2 -c /usr/local/etc/bacula-fd.conf + +with + +/sbin/afs_bacula daemon /usr/local/sbin/bacula-fd $2 -c \ + /usr/local/etc/bacula-fd.conf + + +Ok that's all. You've got a bacula-fd validated with the kerberos server. + +Lucas Mingarro +lucas@easytech.com.ar + +Note: Don't forget that kerberos tickets have a life time :) + +See: http://www.angelfire.com/hi/plutonic/afs-faq.html for FAQ on AFS. + diff --git a/Branch-2.2/bacula/examples/Write-DVD-with-UDF.txt b/Branch-2.2/bacula/examples/Write-DVD-with-UDF.txt new file mode 100644 index 0000000000..17aaf63a7e --- /dev/null +++ b/Branch-2.2/bacula/examples/Write-DVD-with-UDF.txt @@ -0,0 +1,75 @@ +From stephan.ebelt@net-linx.com Fri Apr 7 21:01:24 2006 +From: Stephan Ebelt +Subject: [Bacula-devel] DVD + packet writing + UDF + +Hello, + +is anyone using this approach in production? + +I do for about a week now. And it appears to be easier to setup and is, +in fact, quite media independent. (I actually gave up on trying the +growisofs/dvd-handler method - bacula constantly rejected most of my +media...) + +Here is how it works for me (all done with bacula 1.38.5 on FC4 with the +udftools package installed): + +1. load udf file system support (modprobe udf) + +2. create a packet writing device on top of the dvd drive (pktsetup + dvd-writer /dev/hdc) + +3. format a blank media with UDF file system (mkudffs --media-type=dvd + /dev/pktcdvd/dvd-writer), I tried with DVD-RAM, DVD+RW and CD-RW + media. All appear to work fine - at different speeds of course. + +4. mount the freshly formatted media (mount -t udf + /dev/pktcdvd/dvd-writer /mnt/dvd-writer -o noatime). Note that + 'noatime' makes the media living longer. + +5. configure the SD as it would write to hard disk: + + Device { + Name = DVD-Writer + Media Type = DVD + + ArchiveDevice = /mnt/dvd-writer + + LabelMedia = no # I want only one Volume per DVD + AutomaticMount = yes + RemovableMedia = yes + AlwaysOpen = no + } + +Now the whole thing can be automated further: steps 1, 2 and 5 are +one-time system setup. + +Step 3 would require some logic to determine whether a media really is +blank. I guess something the like is already in dvd-handler?. + +Step 4 should be automatic with 1.39.5+ (with the RequiresMount, +MountPoint, MountCommand... etc... options being more general). I havn't +tried this yet. + +I do not know how stable this is yet. I am a bit concerned because I +read in a older mail (from Nicolas Boichat, end of 2004) that he +considered packet-writing/UDF as not reliable enough at that time. + +However, the few restores I tried were all successful. Also I can read +the DVDs on at least one other computer. Maybe the UDF and pkcdvd code +matured in the meantime? I'll leave it running here and keep on testing... + +best regards, +Stephan + + + +------------------------------------------------------- +This SF.Net email is sponsored by xPML, a groundbreaking scripting language +that extends applications into web and mobile media. Attend the live webcast +and join the prime developer group breaking into this new coding territory! +http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642 +_______________________________________________ +Bacula-devel mailing list +Bacula-devel@lists.sourceforge.net +https://lists.sourceforge.net/lists/listinfo/bacula-devel diff --git a/Branch-2.2/bacula/examples/afs-bacula b/Branch-2.2/bacula/examples/afs-bacula new file mode 100755 index 0000000000..ebbb2c1b2c --- /dev/null +++ b/Branch-2.2/bacula/examples/afs-bacula @@ -0,0 +1,296 @@ +#!/usr/afsws/bin/pagsh +# +# Get a Kerbos authentication ticket for AFS for Bacula, then run +# the Bacula client. See AFS-README for documentation. +# +# NAME afs_bacula +# AUTHOR Lucas Mingarro +# PURPOSE Run an AFS authenticated program. +# Get a PAG, get the user's token, +# then exec user's command +# +TEXTDOMAIN=initscripts +TEXTDOMAINDIR=/etc/locale + +# Make sure umask is sane +umask 022 + +# First set up a default search path. +export PATH="/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin" + +# Get a sane screen width +[ -z "$COLUMNS" ] && COLUMNS=80 + +if [ -f /etc/sysconfig/i18n -a -z "$NOLOCALE" ] ; then + . /etc/sysconfig/i18n + if [ "$LANG" = "ja_JP.eucJP" -a "`/sbin/consoletype`" != "pty" ]; then + unset LANG + else + export LANG + fi +fi + +# Read in our configuration +if [ -z "$BOOTUP" ]; then + if [ -f /etc/sysconfig/init ]; then + . /etc/sysconfig/init + else + # This all seem confusing? Look in /etc/sysconfig/init, + # or in /usr/doc/initscripts-*/sysconfig.txt + BOOTUP=color + RES_COL=60 + MOVE_TO_COL="echo -en \\033[${RES_COL}G" + SETCOLOR_SUCCESS="echo -en \\033[1;32m" + SETCOLOR_FAILURE="echo -en \\033[1;31m" + SETCOLOR_WARNING="echo -en \\033[1;33m" + SETCOLOR_NORMAL="echo -en \\033[0;39m" + LOGLEVEL=1 + fi + if [ -x /sbin/consoletype ]; then + if [ "`consoletype`" = "serial" ]; then + BOOTUP=serial + MOVE_TO_COL= + SETCOLOR_SUCCESS= + SETCOLOR_FAILURE= + SETCOLOR_WARNING= + SETCOLOR_NORMAL= + fi + fi +fi + +if [ "$BOOTUP" != "verbose" ]; then + INITLOG_ARGS="-q" +else + INITLOG_ARGS= +fi + +# Check if $pid (could be plural) are running +checkpid() { + while [ "$1" ]; do + [ -d /proc/$1 ] && return 0 + shift + done + return 1 +} + + +# A function to start a program. +daemon() { + # Test syntax. + local gotbase= + local base= user= nice= bg= pid + nicelevel=0 + while [ "$1" != "${1##[-+]}" ]; do + case $1 in + '') echo $"$0: Usage: daemon [+/-nicelevel] {program}" + return 1;; + --check) + base=$2 + gotbase="yes" + shift 2 + ;; + --check=?*) + base=${1#--user=} + shift + ;; + --user) + user=$2 + shift 2 + ;; + --user=?*) + user=${1#--user=} + shift + ;; + [-+][0-9]*) + nice="nice -n $1" + shift + ;; + *) echo $"$0: Usage: daemon [+/-nicelevel] {program}" + return 1;; + esac + done + + # Save basename. + [ -z $gotbase ] && base=${1##*/} + + # See if it's already running. Look *only* at the pid file. + pidlist=`pidfileofproc $base` + + [ -n "$pid" ] && return + + # make sure it doesn't core dump anywhere; while this could mask + # problems with the daemon, it also closes some security problems + ulimit -S -c 0 >/dev/null 2>&1 + + # Echo daemon + [ "$BOOTUP" = "verbose" ] && echo -n " $base" + + # And start it up. + if [ -z "$user" ]; then + $nice initlog $INITLOG_ARGS -c "$*" + else + $nice initlog $INITLOG_ARGS -c "su - $user -c \"$*\"" && +success $"$base startup" || failure $"$base startup" + fi + [ $? = 0 ] && success $"$base startup" || failure $"$base startup" +} + + +# A function to find the pid of a program. Looks *only* at the pidfile +pidfileofproc() { + local base=${1##*/} + local pid + + # Test syntax. + if [ $# = 0 ] ; then + echo $"Usage: pidfileofproc {program}" + return 1 + fi + + # First try "/var/run/*.pid" files + if [ -f /var/run/${base}.pid ] ; then + read pid < /var/run/${base}.pid + for p in $line ; do + [ -z "${p//[0-9]/}" -a -d /proc/$p ] && +pid="$pid $p" + done + if [ -n "$pid" ] ; then + echo $pid + return 0 + fi + fi +} + +echo_success() { + [ "$BOOTUP" = "color" ] && $MOVE_TO_COL + echo -n "[ " + [ "$BOOTUP" = "color" ] && $SETCOLOR_SUCCESS + echo -n $"OK" + [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL + echo -n " ]" + echo -ne "\r" + return 0 +} + +echo_failure() { + [ "$BOOTUP" = "color" ] && $MOVE_TO_COL + echo -n "[" + [ "$BOOTUP" = "color" ] && $SETCOLOR_FAILURE + echo -n $"FAILED" + [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL + echo -n "]" + echo -ne "\r" + return 1 +} + +echo_passed() { + [ "$BOOTUP" = "color" ] && $MOVE_TO_COL + echo -n "[" + [ "$BOOTUP" = "color" ] && $SETCOLOR_WARNING + echo -n $"PASSED" + [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL + echo -n "]" + echo -ne "\r" + return 1 +} + +# Log that something succeeded +success() { + if [ -z "$IN_INITLOG" ]; then + initlog $INITLOG_ARGS -n $0 -s "$1" -e 1 + else + # silly hack to avoid EPIPE killing rc.sysinit + trap "" SIGPIPE + echo "$INITLOG_ARGS -n $0 -s \"$1\" -e 1" >&21 + trap - SIGPIPE + fi + [ "$BOOTUP" != "verbose" ] && echo_success + return 0 +} + +# Log that something failed +failure() { + rc=$? + if [ -z "$IN_INITLOG" ]; then + initlog $INITLOG_ARGS -n $0 -s "$1" -e 2 + else + trap "" SIGPIPE + echo "$INITLOG_ARGS -n $0 -s \"$1\" -e 2" >&21 + trap - SIGPIPE + fi + [ "$BOOTUP" != "verbose" ] && echo_failure + return $rc +} + +# Log that something passed, but may have had errors. Useful for fsck +passed() { + rc=$? + if [ -z "$IN_INITLOG" ]; then + initlog $INITLOG_ARGS -n $0 -s "$1" -e 1 + else + trap "" SIGPIPE + echo "$INITLOG_ARGS -n $0 -s \"$1\" -e 1" >&21 + trap - SIGPIPE + fi + [ "$BOOTUP" != "verbose" ] && echo_passed + return $rc +} + +# Run some action. Log its output. +action() { + STRING=$1 + echo -n "$STRING " + shift + initlog $INITLOG_ARGS -c "$*" && success $"$STRING" || failure $"$STRING" + rc=$? + echo + return $rc +} + +# returns OK if $1 contains $2 +strstr() { + [ "$1" = "$2" ] && return 0 + slice=${1#*$2*} + [ "$slice" = "$1" ] && return 1 + return 0 +} + +# Confirm whether we really want to run this service +confirm() { + local YES=$"yY" + local NO=$"nN" + local CONT=$"cC" + + while : ; do + echo -n $"Start service $1 (Y)es/(N)o/(C)ontinue? [Y] " + read answer + if strstr "$YES" "$answer" || [ "$answer" = "" ] ; then + return 0 + elif strstr "$CONT" "$answer" ; then + return 2 + elif strstr "$NO" "$answer" ; then + return 1 + fi + done +} + +# Here is the authentication with the kas server + +CMD=`basename ${0}` +PRINCIPAL='bacula' +passwordfile='/etc/security/afs_bacula.pw' +klog $PRINCIPAL -pipe < ${passwordfile} +command_line="$*" +command=`echo ${command_line} | awk '{print $1}'` +# Check if we can run the command. +# If we got this far, it is likely that the command name is correct +# but there may be a problem in accessing the command file. +# If there is an error, log it via syslog (logger) rather than ">&2" + + #if [ ! -x "${command}" ]; then + #M="error: unable to execute command ${command}" + #logger -i -t "${CMD}" "${M}" + #exit 1 + #fi +#fi +$command_line diff --git a/Branch-2.2/bacula/examples/autochangers/Sun-desktop-20Gb-4mm-autoloader b/Branch-2.2/bacula/examples/autochangers/Sun-desktop-20Gb-4mm-autoloader new file mode 100644 index 0000000000..4ffbda58c8 --- /dev/null +++ b/Branch-2.2/bacula/examples/autochangers/Sun-desktop-20Gb-4mm-autoloader @@ -0,0 +1,43 @@ +From: Lucas Mingarro +To: +Subject: [Bacula-users] Sun Desktop 20Gb 4mm autoloader +Date: Mon, 2 Dec 2002 15:42:43 -0300 (ART) + +Hi, + If you have an old Sun Desktop 20Gb 4mm autoloader (Archive Python +29279) and you want to make it work on Linux with Bacula here are my conf +files. + +I'm using Redhat Linux 7.1 with Bacula 1.26a. + +First add these lines to your stini.def + +manufacturer=ARCHIVE modepl = "Python 29279" { +scsi2logical=0 can-bsr can-partitions auto-lock +mode1 blocksize=0 compression=0 density=0x13 # /dev/nst0 DDS (61000 bpi) +mode2 blocksize=1024 compression=0 density=0x13 # /dev/nst0l DDS (61000 bpi) +mode3 blocksize=0 compression=1 density=0x24 # /dev/nst0m DDS-2 +mode4 blocksize=1024 compression=1 density=0x24 # /dev/nst0a DDS-2 +} + +and Python29279-autoloader.conf + +# +# This is the definition Lucas uses for a +# Sun Desktop 20Gb 4mm autoloader (Archive Python 29279) +# +Device { + Name = "Python 29279" + Media Type = "4mm" + Archive Device = /dev/nst0a + Auto Changer = Yes + Changer Device = /dev/sg0 + Changer Command = "/usr/local/etc/mtx-changer %c %o %S %a" + AutomaticMount = yes; # when device opened, read it + AlwaysOpen = no; +} + +Thats all +Good Luck + +Lucas Mingarro diff --git a/Branch-2.2/bacula/examples/autochangers/ak-mtx-changer.txt b/Branch-2.2/bacula/examples/autochangers/ak-mtx-changer.txt new file mode 100644 index 0000000000..671d2335ca --- /dev/null +++ b/Branch-2.2/bacula/examples/autochangers/ak-mtx-changer.txt @@ -0,0 +1,218 @@ +#!/bin/sh +# +# The use of this script for Totally Automating Tape usage is +# described in the Tips chapter of the manual. +# +# Bacula interface to mtx autoloader +# +# Created OCT/31/03 by Alexander Kuehn, derived from Ludwig Jaffe's script +# +# Works with the HP C1537A L708 DDS3 +# +#set -x +# these are the labels of the tapes in each virtual slot, not the slots! +labels="PSE-0001 PSE-0002 PSE-0003 PSE-0004 PSE-0005 PSE-0006 PSE-0007 PSE-0008 PSE-0009 PSE-0010 PSE-0011 PSE-0012" + +# who to send a mail to? +recipient=root@localhost +logfile=/var/log/mtx.log + +# Delay in seconds how often to check whether a new tape has been inserted +TAPEDELAY=10 # the default is every 10 seconds +echo `date` ":" $@ >>$logfile + +# change this if mt is not in the path (use different quotes!) +mt=`which mt` +grep=`which grep` +# +# how to run the console application? +console="/usr/local/sbin/console -c /usr/local/etc/console.conf" + +command="$1" + +#TAPEDRIVE0 holds the device/name of your 1st and only drive (Bacula supports only 1 drive currently) +#Read TAPEDRIVE from command line parameters +if [ -z "$2" ] ; then + TAPEDRIVE0=/dev/nsa0 +else + TAPEDRIVE0=$2 +fi + +#Read slot from command line parameters +if [ -z "$3" ] ; then + slot=`expr 1` +else + slot=`expr $3` +fi + +if [ -z "$command" ] ; then + echo "" + echo "The mtx-changer script for Bacula" + echo "---------------------------------" + echo "" + echo "usage: mtx-changer [slot]" + echo " mtx-changer" + echo "" + echo "Valid commands:" + echo "" + echo "unload Unloads a tape into the slot" + echo " from where it was loaded." + echo "load Loads a tape from the slot " + echo "list Lists full storage slots" + echo "loaded Gives slot from where the tape was loaded." + echo " 0 means the tape drive is empty." + echo "slots Gives Number of avialable slots." + echo "volumes List avialable slots and the label of the." + echo " tape in it (slot:volume)" + echo "Example:" + echo " mtx-changer load /dev/nst0 1 loads a tape from slot1" + echo " mtx-changer %a %o %S " + echo "" + exit 0 +fi + + +case "$command" in + unload) + # At first do mt -f /dev/st0 offline to unload the tape + # + # Check if you want to fool me + echo "unmount"|$console >/dev/null 2>/dev/null + echo "mtx-changer: Checking if drive is loaded before we unload. Request unload" >>$logfile + if $mt -f $TAPEDRIVE0 status >/dev/null 2>/dev/null ; then # mt says status ok + echo "mtx-changer: Doing mt -f $TAPEDRIVE0 rewoffl to rewind and unload the tape!" >>$logfile + $mt -f $TAPEDRIVE0 rewoffl + else + echo "mtx-changer: *** Don't fool me! *** The Drive $TAPEDRIVE0 is empty." >>$logfile + fi + exit 0 + ;; + + load) + #Let's check if drive is loaded before we load it + echo "mtx-changer: Checking if drive is loaded before we load. I Request loaded" >>$logfile + LOADEDVOL=`echo "status Storage"|$console|$grep $TAPEDRIVE0|grep ^Device|grep -v "not open."|grep -v "ERR="|grep -v "no Bacula volume is mounted"|sed -e s/^.*Volume\ //|cut -d\" -f2` +# if [ -z "$LOADEDVOL" ] ; then # this is wrong, becaus Bacula would try to use the tape if we mount it! +# LOADEDVOL=`echo "mount"|$console|$grep $TAPEDRIVE0|grep Device|grep -v "not open."|grep -v "ERR="|sed -e s/^.*Volume\ //|cut -d\" -f2` +# if [ -z "$LOADEDVOL" ] ; then +# echo "mtx-changer: The Drive $TAPEDRIVE0 is empty." >>$logfile +# else # restore state? +# if [ $LOADEDVOL = $3 ] ; then # requested Volume mounted -> exit +# echo "mtx-changer: *** Don't fool me! *** Tape $LOADEDVOL is already in drive $TAPEDRIVE0!" >>$logfile +# exit +# else # oops, wrong volume +# echo "unmount"|$console >/dev/null 2>/dev/null +# fi +# fi +# fi + if [ -z "$LOADEDVOL" ] ; then + echo "unmount"|$console >/dev/null 2>/dev/null + LOADEDVOL=0 + else + #Check if you want to fool me + if [ $LOADEDVOL = $3 ] ; then + echo "mtx-changer: *** Don't fool me! *** Tape $LOADEDVOL is already in drive $TAPEDRIVE0!" >>$logfile + exit + fi + echo "mtx-changer: The Drive $TAPEDRIVE0 is loaded with the tape $LOADEDVOL" >>$logfile + echo "mtx-changer: Unmounting..." >>$logfile + echo "unmount"|$console >/dev/null 2>/dev/null + fi + echo "mtx-changer: Unloading..." >>$logfile + echo "mtx-changer: Doing mt -f $TAPEDRIVE0 rewoffl to rewind and unload the tape!" >>$logfile + mt -f $TAPEDRIVE0 rewoffl 2>/dev/null + #Now we can load the drive as desired + echo "mtx-changer: Doing mtx -f $1 $2 $3" >>$logfile + # extract label for the mail + count=`expr 1` + for label in $labels ; do + if [ $slot -eq $count ] ; then volume=$label ; fi + count=`expr $count + 1` + done + + mail -s "Bacula needs volume $volume." $recipient </dev/null 2>/dev/null + while [ $? -ne 0 ] ; do + sleep $TAPEDELAY + $mt status >/dev/null 2>/dev/null + done + mail -s "Bacula says thank you." $recipient <>$logfile + echo "Loading finished." ; >>$logfile + echo "$slot" + exit 0 + ;; + + list) + echo "mtx-changer: Requested list" >>$logfile + LOADEDVOL=`echo "status Storage"|$console|$grep $TAPEDRIVE0|grep ^Device|grep -v "not open."|grep -v "ERR="|grep -v "no Bacula volume is mounted"|sed -e s/^.*Volume\ //|cut -d\" -f2` + if [ -z $LOADEDVOL ] ; then # try mounting + LOADEDVOL=`echo "mount"|$console|$grep $TAPEDRIVE0|grep Device|grep -v "not open."|grep -v "ERR="|sed -e s/^.*Volume\ //|cut -d\" -f2` + if [ -z $LOADEDVOL ] ; then # no luck + LOADEDVOL="_no_tape" + else # restore state + echo "unmount"|$console >/dev/null 2>/dev/null + fi + fi + count=`expr 1` + for label in $labels ; do + if [ "$label" != "$LOADEDVOL" ] ; then + printf "$count " + fi + count=`expr $count + 1` + done + printf "\n" + ;; + + loaded) + echo "mtx-changer: Request loaded, dev $TAPEDRIVE0" >>$logfile + LOADEDVOL=`echo "status Storage"|$console|$grep $TAPEDRIVE0|grep ^Device|grep -v "not open."|grep -v "ERR="|grep -v "no Bacula volume is mounted"|sed -e s/^.*Volume\ //|cut -d\" -f2` + if [ -z $LOADEDVOL ] ; then + LOADEDVOL=`echo "mount"|$console|$grep $TAPEDRIVE0|grep Device|grep -v "not open."|grep -v "ERR="|grep -v "no Bacula volume is mounted"|sed -e s/^.*Volume\ //|cut -d\" -f2` + if [ -z "$LOADEDVOL" ] ; then # no luck + echo "$TAPEDRIVE0 not mounted!" >>$logfile + else # restore state + echo "unmount"|$console >/dev/null 2>/dev/null + fi + fi + if [ -z "$LOADEDVOL" ] ; then + LOADEDVOL="_no_tape" >>$logfile + echo "0" + else + count=`expr 1` + for label in $labels ; do + if [ $LOADEDVOL = $label ] ; then echo $count ; fi + count=`expr $count + 1` + done + fi + exit 0 + ;; + + slots) + echo "mtx-changer: Request slots" >>$logfile + count=`expr 0` + for label in $labels ; do + count=`expr $count + 1` + done + echo $count + ;; + + volumes) + echo "mtx-changer: Request volumes" >>$logfile + count=`expr 1` + for label in $labels ; do + printf "$count:$label " + count=`expr $count + 1` + done + printf "\n" + ;; +esac diff --git a/Branch-2.2/bacula/examples/autochangers/bacula-barcodes b/Branch-2.2/bacula/examples/autochangers/bacula-barcodes new file mode 100644 index 0000000000..534101010a --- /dev/null +++ b/Branch-2.2/bacula/examples/autochangers/bacula-barcodes @@ -0,0 +1,53 @@ +# +# Bacula barcode simulation file +# used by ${PREFIX}/sbin/chio-bacula (FreeBSD) +# +# Contributed by Lars Koeller +# +# The volumenames are returned by the "changer list" command +# labeling in the console is done by "label barcodes" +# (then all volumes belog to the default pool). +# All Lines with an "#" at the bedinning are ignored +# +# !!!! If you export an tape and reinsert another one, +# !!!! don't forget to change the volume name in this file! +# +1:Volume1-100 +2:Volume1-101 +3:Volume1-102 +4:Volume1-103 +5:Volume1-104 +6:Volume1-105 +7:Volume1-106 +8:Volume1-107 +9:Volume1-108 +10:Volume1-109 +11:Volume1-110 +12:Volume1-111 +# +# Further volumes exported from the changer +# +# 36GB AIT2 tapes +#Volume1-100 +#Volume1-101 +#Volume1-102 +#Volume1-103 +#Volume1-104 +#Volume1-105 +#Volume1-106 +#Volume1-107 +#Volume1-108 +#Volume1-109 +#Volume1-110 +#Volume1-111 +#Volume1-112 +#Volume1-113 +#Volume1-114 +#Volume1-115 +# +# 50GB AIT2 tapes +#Volume2-200 +#Volume2-201 +#Volume2-202 +#Volume2-203 +#Volume2-204 diff --git a/Branch-2.2/bacula/examples/autochangers/chio-bacula b/Branch-2.2/bacula/examples/autochangers/chio-bacula new file mode 100644 index 0000000000..d988b0151a --- /dev/null +++ b/Branch-2.2/bacula/examples/autochangers/chio-bacula @@ -0,0 +1,138 @@ +#!/bin/sh +# +# Bacula interface to mtx autoloader +# (By Lars Koeller, lars+bacula@koellers.net) +# +# If you set in your Device resource +# +# Changer Command = "path-to-this-script/chio-bacula %c %o %S %a" +# you will have the following input to this script: +# +# chio-bacula "changer-device" "command" "slot" "archive-device" +# +# for example: +# +# chio-bacula /dev/sg0 load 1 /dev/nst0 (on a FreeBSD system) +# +# If you need to to an offline, refer to the drive as $4 +# e.g. mt -f $f offline +# +# Many changers need an offline after the unload. Also many +# changers need a sleep 60 after the mtx load. +# +# N.B. If you change the script, take care to return either +# the mtx exit code or a 0. If the script exits with a non-zero +# exit code, Bacula will assume the request failed. +# + +# This simulates a barcode reader in the changer. +# The labels of the virtual barcode reader are located in the BARCODE_FILE +SIMULATE_BARCODE=true +BARCODE_FILE=/usr/local/etc/bacula-barcodes + +me=$(basename $0) + +# Debug +echo "$me $@" > /dev/console + +if [ -z "$1" ] ; then + usage; +fi + +if [ -z "$2" ] ; then + usage; +fi + +MTX=/bin/chio +CHANGER=$1 +COMMAND=$2 +if [ ! -z "$3" ]; then + SLOT=$3 +fi +if [ ! -z "$4" ]; then + TAPE=$4 +else + TAPE=/dev/nrsa2 +fi + +# Time to wait for loading +SLEEP=20 +# What drive of the autochanger should be used primary +# At the moment bacula (1.31a) could not deal with more drives +DRIVE=1 + +usage() +{ + echo "" + echo "The $me script for bacula" + echo "--------------------------------------" + echo "" + echo "usage: $me [slot] [devicename of tapedrive]" + echo "" + echo "Valid commands:" + echo "" + echo "unload Unloads a tape into the slot" + echo " from where it was loaded." + echo "load Loads a tape from the slot " + echo " (slot-base is calculated to 1 as first slot)" + echo "list Lists full storage slots" + echo "loaded Gives slot from where the tape was loaded." + echo " 0 means the tape drive is empty." + echo "slots Gives Number of available slots." + echo "" + echo "Example:" + echo " mtx-changer /dev/changer load 1 loads a tape from slot 1" + echo "" + exit 2 +} + + +case ${COMMAND} in + unload) + # enable the following line if you need to eject the cartridge + #mt -f ${TAPE} off + #sleep 2 + ${MTX} -f ${CHANGER} return drive ${DRIVE} + ;; + + load) + ${MTX} -f ${CHANGER} move slot $((${SLOT}-1)) drive ${DRIVE} + rtn=$? + # Increase the sleep time if you have a slow device + sleep $SLEEP + exit $rtn + ;; + + list) + if [ "${SIMULATE_BARCODE}" = "true" ]; then + if [ -f "$BARCODE_FILE" ]; then + cat $BARCODE_FILE | grep -v "^#" + exit 0 + else + echo "Barcode file $BARCODE_FILE missing ... exiting!" + exit 1 + fi + else + ${MTX} -f ${CHANGER} status | grep "^slot .*: .*FULL>" | awk '{print $2}' | awk -F: '{print $1+1" "}' | tr -d "[\r\n]" + fi + ;; + + loaded) + # echo "Request loaded" + ${MTX} -f ${CHANGER} status -S > /tmp/mtx.$$ + rtn=$? + cat /tmp/mtx.$$ | grep "^drive ${DRIVE}: " | awk '{print $6+1}' | tr -d ">" + cat /tmp/mtx.$$ | grep "^drive ${DRIVE}: source: <>" | awk "{print 0}" + rm -f /tmp/mtx.$$ + exit $rtn + ;; + + slots) + # echo "Request slots" + ${MTX} -f ${CHANGER} status | grep "^slot " | tail -1 | awk '{print $2+1}' | tr -d ":" + ;; + + *) + usage + ;; +esac diff --git a/Branch-2.2/bacula/examples/autochangers/chio-changer b/Branch-2.2/bacula/examples/autochangers/chio-changer new file mode 100644 index 0000000000..60d1ed0990 --- /dev/null +++ b/Branch-2.2/bacula/examples/autochangers/chio-changer @@ -0,0 +1,125 @@ +#!/bin/sh +# +# Bacula interface to autoloader +# +# By Pascal Pederiva +# +# Known to work on FreeBSD 5.2 with a TZ875 changer. +# +# This script mimics mtx-changer with the following differences +# - it automatically stows the cartridge to the slot it came from when +# unloading. +# - a load will automatically unload the drive if there is a +# different cartridge loaded. +# - it uses chio instead of mtx (which is +# available as a package) +# +# If you set in your Device resource +# +# Changer Command = "path-to-this-script/chio-changer %c %o %S %a" +# you will have the following input to this script: +# +# chio-changer "changer-device" "command" "slot" "archive-device" +# +# for example: +# +# chio-changer /dev/sg0 load 1 /dev/nst0 (on a Linux system) +# +# If you need to to an offline, refer to the drive as $4 +# e.g. mt -f $4 offline +# +# Many changers need an offline after the unload. Also many +# changers need a sleep 60 after the chio load. +# +# N.B. If you change the script, take care to return either +# the chio exit code or a 0. If the script exits with a non-zero +# exit code, Bacula will assume the request failed. +# +# Examples: +# chio-changer load 1 ; load slot 1 into drive 0 (and unload old cartridge if necessary) +# chio-changer unload N ; unload drive into source slot (slot number is ignored) +# chio-changer loaded N ; Return loaded slot # +# chio-changer /dev/ch0 loaded N /dev/nsa0 ; has the same effect + + +#echo `date` "chio: $*" >>/tmp/changer + +# If the first parameter is not a device, assume it is a command +# and you want to use the default changer + +if [ -c $1 ]; then + CHANGER=$1 + shift +else + CHANGER=/dev/ch0 +fi + +COMMAND=$1 +ELEMENT=$2 +DRIVE=$3 + +MTX=chio + +############################################################################## + +case "$COMMAND" in + unload) + +# enable the following line if you need to eject the cartridge +# mt -f $DRIVE offline + SOURCE=`${MTX} status -S | grep drive | grep FULL | cut -d: -f 3 | tr -d '<>a-z '` + if [ ! -z "$SOURCE" ]; then + echo -n "Unloading Data Transfer Element into Storage Element $ELEMENT..." + ${MTX} -f $CHANGER move drive 0 slot $SOURCE + rtn=$? + echo "done" + else + echo "Storage Element $ELEMENT is Already Full" + fi + exit $rtn + ;; + + load) + if [ -z "$ELEMENT" ]; then + echo "ERROR: load reguired" + return 1 + fi + TARGET=$ELEMENT + if [ $TARGET -le 0 ]; then + TARGET=1 + fi + TARGET=`expr $TARGET - 1` + + SOURCE=`${MTX} status -S | grep drive | grep FULL | cut -d: -f 3 | tr -d '<>a-z '` + if [ ! -z "$SOURCE" ]; then + if [ "$SOURCE" != "$TARGET" ]; then + # Only unload if there is something different in the drive + ${MTX} -f $CHANGER move drive 0 slot $SOURCE + fi + fi + + if [ "$SOURCE" != "$TARGET" ]; then + ${MTX} -f $CHANGER move slot $TARGET drive 0 + rtn=$? + fi + exit $rtn + ;; + + list) + ${MTX} -f $CHANGER status slot | grep "FULL" | awk '{print $2+1":"}' + ;; + + loaded) + SOURCE=`${MTX} status -S | grep drive | grep FULL | cut -d: -f 3 | tr -d '<>a-z '` + rtn=$? + if [ -z "$SOURCE" ]; then + SOURCE=-1 + fi + echo `expr 1 + ${SOURCE}` + exit $rtn + ;; + + slots) + ${MTX} -f $CHANGER status slot | wc -l + ;; +esac diff --git a/Branch-2.2/bacula/examples/autochangers/chio-changer.Sony-TSL-SA300C b/Branch-2.2/bacula/examples/autochangers/chio-changer.Sony-TSL-SA300C new file mode 100755 index 0000000000..758e416ebe --- /dev/null +++ b/Branch-2.2/bacula/examples/autochangers/chio-changer.Sony-TSL-SA300C @@ -0,0 +1,151 @@ +#!/bin/sh +# +# Bacula interface to mtx autoloader +# (By Lars Köller, lars+bacula@koellers.net) +# +# Modified by Jesse D. Guardiani (jesse@wingnet.net) in Feb 2004 +# to be more error resistant and compatible with my 4 tape SONY +# AIT-1 TSL-SA300C autoloader. +# +# If you set in your Device resource +# +# Changer Command = "path-to-this-script/chio-bacula %c %o %S %a" +# you will have the following input to this script: +# +# chio-bacula "changer-device" "command" "slot" "archive-device" +# +# for example: +# +# chio-bacula /dev/ch0 load 1 /dev/nst0 (on a FreeBSD system) +# +# If you need to to an offline, refer to the drive as $4 +# e.g. mt -f $f offline +# +# Many changers need an offline after the unload. Also many +# changers need a sleep 60 after the mtx load. +# +# N.B. If you change the script, take care to return either +# the mtx exit code or a 0. If the script exits with a non-zero +# exit code, Bacula will assume the request failed. +# + +# This simulates a barcode reader in the changer. +# The labels of the virtual barcode reader are located in the BARCODE_FILE +SIMULATE_BARCODE=true +BARCODE_FILE=/usr/local/etc/bacula-barcodes + +me=$(basename $0) +fullpath_me=$0 + +# Debug +logger -p user.err "$fullpath_me $@" + +if [ -z "$1" ] ; then + usage; +fi + +if [ -z "$2" ] ; then + usage; +fi + +MTX=/bin/chio +CHANGER=$1 +COMMAND=$2 +if [ ! -z "$3" ]; then + SLOT=$3 +fi +if [ ! -z "$4" ]; then + TAPE=$4 +else + TAPE=/dev/nrsa1 +fi + +# Time to wait for loading +SLEEP=20 +# What drive of the autochanger should be used primary +# At the moment bacula (1.31a) could not deal with more than one drive +DRIVE=0 + +usage() +{ + echo "" + echo "The $me script for bacula" + echo "--------------------------------------" + echo "" + echo "usage: $me [slot] [devicename of tapedrive]" + echo "" + echo "Valid commands:" + echo "" + echo "unload Unloads a tape into the slot" + echo " from where it was loaded." + echo "load Loads a tape from the slot " + echo " (slot-base is calculated to 1 as first slot)" + echo "list Lists full storage slots" + echo "loaded Gives slot from where the tape was loaded." + echo " 0 means the tape drive is empty." + echo "slots Gives Number of aviable slots." + echo "" + echo "Example:" + echo " mtx-changer /dev/changer load 1 loads a tape from slot 1" + echo "" + exit 2 +} + + +case ${COMMAND} in + unload) + # enable the following line if you need to eject the cartridge + #mt -f ${TAPE} off + #sleep 2 + # If the changer is power cycled with a tape loaded in a drive + if [ `${fullpath_me} ${CHANGER} loaded` -gt 0 ]; then + free_slot=`${fullpath_me} ${CHANGER} loaded` + free_slot=`expr $free_slot - 1` + ${MTX} -f ${CHANGER} move drive ${DRIVE} slot $free_slot + fi + ;; + + load) + ${MTX} -f ${CHANGER} move slot $((${SLOT}-1)) drive ${DRIVE} + rtn=$? + # Increase the sleep time if you have a slow device + sleep $SLEEP + exit $rtn + ;; + + list) + if [ "${SIMULATE_BARCODE}" = "true" ]; then + if [ -f "$BARCODE_FILE" ]; then + cat $BARCODE_FILE | grep -v "^#" + exit 0 + else + echo "Barcode file $BARCODE_FILE missing ... exiting!" + exit 1 + fi + else + ${MTX} -f ${CHANGER} status | grep "^slot .*: .*FULL>" | awk '{print $2}' | awk -F: '{print $1+1" "}' | tr -d "[\r\n]" + fi + ;; + + loaded) + # echo "Request loaded" + ${MTX} -f ${CHANGER} status -S > /tmp/mtx.$$ + rtn=$? + cat /tmp/mtx.$$ | grep "^slot .: " | awk '{print $2+1}' | tr -d ":" + drive=`cat /tmp/mtx.$$ | grep "^drive .: "` + if [ -n "$drive" ]; then + echo 0 + fi + rm -f /tmp/mtx.$$ + exit $rtn + ;; + + slots) + # echo "Request slots" + ${MTX} -f ${CHANGER} status | grep "^slot " | tail -1 | awk '{print $2+1}' | tr -d ":" + ;; + + *) + usage + ;; +esac diff --git a/Branch-2.2/bacula/examples/autochangers/locking-mtx-changer b/Branch-2.2/bacula/examples/autochangers/locking-mtx-changer new file mode 100644 index 0000000000..c71169af39 --- /dev/null +++ b/Branch-2.2/bacula/examples/autochangers/locking-mtx-changer @@ -0,0 +1,161 @@ +#!/bin/ksh +# +# Bacula interface to mtx autoloader +# +# This script is not needed with Bacula version 1.38 or later +# since the Storage daemon automatically ensures that only one +# thread accesses the script at a time. +# +# +# $Id$ +# +# If you set in your Device resource +# +# Changer Command = "path-to-this-script/mtx-changer %c %o %S %a %d +# you will have the following input to this script: +# +# mtx-changer "changer-device" "command" "slot" "archive-device" "drive-index" +# $1 $2 $3 $4 $5 +# +# for example: +# +# mtx-changer /dev/sg0 load 1 /dev/nst0 0 (on a Linux system) +# +# If you need to an offline, refer to the drive as $4 +# e.g. mt -f $4 offline +# +# Many changers need an offline after the unload. Also many +# changers need a sleep 60 after the mtx load. +# +# N.B. If you change the script, take care to return either +# the mtx exit code or a 0. If the script exits with a non-zero +# exit code, Bacula will assume the request failed. +# + +MTX=/lysator/bin/mtx +LOCKDIR=/tmp + +if test $# -lt 2 ; then + echo "usage: mtx-changer ctl-device command slot archive-device drive" + echo " Insufficient number of arguments arguments given." + echo " Mimimum usage is first two arguments ..." + exit 1 +fi + +# Setup arguments +ctl=$1 +cmd="$2" +slot=$3 +device=$4 +# If drive not given, default to 0 +if test $# = 5 ; then + drive=$5 +else + drive=0 +fi + +wait_for_drive() { + while ! mt -f $1 status >/dev/null 2>/dev/null; do +# echo "Device $1 - not ready, retrying..." + sleep 5 + done +} + +LOCKFILE="${LOCKDIR}/mtx-changer:`echo $ctl | tr / _'" + +changer_lock() { + echo "$$" >$LOCKFILE.$$ + + while ! ln -n $LOCKFILE.$$ $LOCKFILE 2>/dev/null; do + echo "$0: changer lock busy, retrying in 30 seconds..." + sleep 30 + done + + rm $LOCKFILE.$$ +} + +changer_unlock() { + LOCKPID="`cat $LOCKFILE 2>/dev/null`" + if [ "$LOCKPID" != $$ ]; then + echo "$0: Invalid lock file (${LOCKFILE}) - not owned by us!" + exit 1 + fi + rm -f $LOCKFILE +} + + + +# +# Check for special cases where only 2 arguments are needed, +# all others are a minimum of 3 +case $cmd in + loaded) + ;; + unload) + ;; + list) + ;; + slots) + ;; + *) + if test $# -lt 3; then + echo "usage: mtx-changer ctl-device command slot archive-device drive" + echo " Insufficient number of arguments arguments given." + echo " Mimimum usage is first three arguments ..." + exit 1 + fi + ;; +esac + +changer_lock $ctl + +case $cmd in + unload) +# echo "Doing mtx -f $ctl unload $slot $drive" +# +# enable the following line if you need to eject the cartridge + mt -f $device offline + if test x$slot = x; then + ${MTX} -f $ctl unload + rtn=$? + else + ${MTX} -f $ctl unload $slot $drive + rtn=$? + fi + ;; + + load) +# echo "Doing mtx -f $ctl load $slot $drive" + ${MTX} -f $ctl load $slot $drive + rtn=$? + + wait_for_drive $device + changer_unlock $ctl + exit $rtn + ;; + + list) +# echo "Requested list" + ${MTX} -f $ctl status | tr ':=' ' ' | nawk '($1 == "Storage" && $2 == "Element" && $4 == "Full") { printf "%s:%s\n", $3, $6 }' + rtn=$? + ;; + + loaded) + ${MTX} -f $ctl status >/tmp/mtx.$$ + rtn=$? + cat /tmp/mtx.$$ | grep "^Data Transfer Element $drive:Full" | awk "{print \$7}" + cat /tmp/mtx.$$ | grep "^Data Transfer Element $drive:Empty" | awk "{print 0}" + rm -f /tmp/mtx.$$ + changer_unlock $ctl + exit $rtn + ;; + + slots) +# echo "Request slots" + ${MTX} -f $ctl status | grep " *Storage Changer" | awk "{print \$5}" + rtn=$? + ;; +esac + +changer_unlock $ctl +exit $rtn diff --git a/Branch-2.2/bacula/examples/autochangers/mtx-changer.Adic-Scalar-100 b/Branch-2.2/bacula/examples/autochangers/mtx-changer.Adic-Scalar-100 new file mode 100755 index 0000000000..8c09ba3c3d --- /dev/null +++ b/Branch-2.2/bacula/examples/autochangers/mtx-changer.Adic-Scalar-100 @@ -0,0 +1,1180 @@ +From bacula-users-admin@lists.sourceforge.net Wed Dec 10 15:04:47 2003 +Return-Path: +Received: from sc8-sf-mx1.sourceforge.net (lists.sourceforge.net + [66.35.250.206]) by matou.sibbald.com (8.11.6/8.11.6) with ESMTP id + hBAE4lY32735 for ; Wed, 10 Dec 2003 15:04:47 +0100 +Received: from sc8-sf-list2-b.sourceforge.net ([10.3.1.8] + helo=sc8-sf-list2.sourceforge.net) by sc8-sf-mx1.sourceforge.net with esmtp + (TLSv1:AES256-SHA:256) (Exim 4.24) id 1AU4wc-0007gs-Ls; Wed, 10 Dec 2003 + 06:04:02 -0800 +Received: from localhost.localdomain ([127.0.0.1] + helo=projects.sourceforge.net) by sc8-sf-list2.sourceforge.net with esmtp + (Exim 4.24) id 1AU4wc-0006AC-FQ; Wed, 10 Dec 2003 06:04:02 -0800 +Received: from sc8-sf-mx2-b.sourceforge.net ([10.3.1.12] + helo=sc8-sf-mx2.sourceforge.net) by sc8-sf-list2.sourceforge.net with esmtp + (Exim 4.24) id 1AU4vz-00068m-GL for bacula-users@lists.sourceforge.net; + Wed, 10 Dec 2003 06:03:23 -0800 +Received: from mta2.navair.navy.mil ([192.58.199.164]) by + sc8-sf-mx2.sourceforge.net with esmtp (Exim 4.24) id 1AU4vy-0006U5-2Q for + bacula-users@lists.sourceforge.net; Wed, 10 Dec 2003 06:03:22 -0800 +Received: by mta2.navair.navy.mil (Postfix, from userid 0) id EEB0B16C1FD; + Wed, 10 Dec 2003 09:03:10 -0500 (EST) +Received: from neim02.nawcad.navy.mil (neim02.nawcad.navy.mil + [140.229.37.205]) by mta2.navair.navy.mil (Postfix) with ESMTP id + 64D5116C2A9; Wed, 10 Dec 2003 09:03:10 -0500 (EST) +Received: by neim02.nawcad.navy.mil with Internet Mail Service + (5.5.2657.72) id ; Wed, 10 Dec 2003 09:02:18 -0500 +Message-ID: +From: "Kirkpatrick, Drew (ARINC)" +To: "'terry@mrtux.co.uk'" , bacula-users@lists.sourceforge.net +Subject: RE: [Bacula-users] Re: Autochanger setup +MIME-Version: 1.0 +X-Mailer: Internet Mail Service (5.5.2657.72) +Content-Type: text/plain; charset="ISO-8859-1" +X-Spam-Score: 0.0 (/) +X-Spam-Report: Spam Filtering performed by sourceforge.net. See + http://spamassassin.org/tag/ for more details. Report problems to + https://sf.net/tracker/?func=add&group_id=1&atid=200001 0.0 CLICK_BELOW + Asks you to click below +Sender: bacula-users-admin@lists.sourceforge.net +Errors-To: bacula-users-admin@lists.sourceforge.net +X-BeenThere: bacula-users@lists.sourceforge.net +X-Mailman-Version: 2.0.9-sf.net +Precedence: bulk +List-Unsubscribe: + , + +List-Id: Bacula user's email list for support and discussions + +List-Post: +List-Help: +List-Subscribe: + , + +List-Archive: + +Date: Wed, 10 Dec 2003 09:02:14 -0500 +X-Spam-Score: 0.0 (/) +X-Spam-Report: Spam Filtering performed by sourceforge.net. See + http://spamassassin.org/tag/ for more details. Report problems to + https://sf.net/tracker/?func=add&group_id=1&atid=200001 0.0 CLICK_BELOW + Asks you to click below +Status: RO +X-Status: F +X-Keywords: +X-UID: 76 +Content-Transfer-Encoding: 8bit + +So far this seems to be working for me, but it's not all quite finished :) + +Device { + Name = "firstTapeDrive" + Media Type = AIT3 + Archive Device = /dev/nst0 + Changer Device = /dev/sg3 + Changer Command = "/etc/bacula/mtx-changer %c %o %S %a" + AutoChanger = yes + Backward Space Record = no + RemovableMedia = yes + AlwaysOpen = yes + AutomaticMount = yes + LabelMedia = no +# HardwareEndOfMedium = no +} + + + +And here's the current version of my mtx-changer script (which changes +frequently as I figure out more of this stuff) + +**************************************************************************** +********************** + +#!/bin/bash + +# mtx-changer script modded to work with a Adic Scalar 100 better +# Drew Kirkpatrick, kirkpatricda@navair.navy.mil + + +echo "mtx-change called with: "$@ + + +AUTOLOADERDEV=$1 +DRIVE=0 +DRIVE_0_SEARCH="Data Transfer Element 0" +DRIVE_1_SEARCH="Data Transfer Element 1" +MTX=/usr/local/sbin/mtx + + + + +######################### Functions + + + + +# Take a single argument, a barcode number +# and returns the slot in which said tape +# should reside according to the +# tapeSlotMap file. That file is +# created using the setTapeSlotMap +# script +getSlotNum() +{ + if [ -z "$1" ] + then + echo getSlotNum"() called" \ + "without a parameter, error!!!" + exit 1 + fi + +# makes sure there is an entry in .tapeSlotMap file +# for that barcode number + found=`grep "$1" /etc/bacula/.tapeSlotMap | wc -l | awk '{print $1}'` + + if [ "$found" -ne 1 ] + then + echo "FATAL ERROR, in getSlotNum($1), error looking up" + echo "that barcode number. Found ($found) instances in the" + echo "tapeSlotMap file. There should be 1 instance. Do you" + echo "need to update this file with setTapeSlotMap script???" + exit 1 + fi + + slotNum=`grep "$1" /etc/bacula/.tapeSlotMap | awk '{print $1}'` + return $slotNum +} + + + + + + +# Take 1 arg, a 0 or 1 (or, how about the DRIVE var: ) +# for the drive it is interested in +# returns 1 if that drive has a tape loaded, and 0 if not +doesDriveGottaTape() +{ + if [ -z "$1" ] + then + echo "doesDriveGottaTape() called" \ + "without a parameter, error fool!!!" + exit 1 + else + case "$1" in + 0 ) + ANSWER=`${MTX} -f $AUTOLOADERDEV status | grep +"$DRIVE_0_SEARCH" \ + | awk '{sub("0:",""); print $4}'` + ;; + 1 ) + ANSWER=`${MTX} -f $AUTOLOADERDEV status | grep +"$DRIVE_1_SEARCH" \ + | awk '{sub("1:",""); print $4}'` + ;; + * ) + echo "Invalid drive num passed to +doesDriveGottaTape($1)" + exit 1 + ;; + esac + fi + + case "$ANSWER" in + Full ) + return 1 + ;; + Empty ) + return 0 + ;; + * ) + echo "Fatal error, invalid answer in doesDriveGottaTape(), +$ANSWER" + exit 1 + ;; + esac +} + + + + + + +# This handles 'correctly' unloading a drive to make sure it ends up +# in the slot it originaly came from. If you're moving/adding tapes +# please check the setTapeSlotMap script, and use accordingly +# to update the barcode->slot mappings. +# This function is needed because the Adic Scalar 100 +# doesn't seem to like returning a tape to it's original slot +# everytime. It seems to pick the first available, and I can't +# seem to figure out how to make it stop doing this. +# oh, and it takes 1 arg, the drive to unload +unloadDrive() +{ + if [ -z "$1" ] + then + echo "unloadDrive() called " \ + "without a parameter, error!!!" + exit 1 + fi + + +# double check to see if that drive does actually have a tape in it + doesDriveGottaTape "$1" + rtn=$? + if [ "$rtn" == 0 ] + then + echo "errrm, in unloadDrive($1), that drive " \ + "doesn't have a tape in it!!!" + return 0 + fi + + +# Get the barcode of the tape in the drive + case "$1" in + 0 ) + barcode=`${MTX} -f $AUTOLOADERDEV status | grep +"$DRIVE_0_SEARCH" | awk '{print $10}'` + ;; + 1 ) + barcode=`${MTX} -f $AUTOLOADERDEV status | grep +"$DRIVE_1_SEARCH" | awk '{print $10}'` + ;; + * ) + echo "ERROR, invalid drive num in unloadDrive($1)" + exit 1 + ;; + esac + +# return tape with barcode to which slot??? + getSlotNum "$barcode" + returnTo=$? + + +# unloading the tape now + ${MTX} -f $AUTOLOADERDEV unload $returnTo $1 + rtn=$? + if [ "$rtn" -ne 0 ] + then + echo "MTX came back with code ($rtn)" + echo "ERROR, in unloadDrive($1), mtx unload failed" + exit 1 + fi + return $rtn +} + + + + +# This handles loading tapes into drives +# It checks if there is currently a tape +# in the target drive, and if there is +# it unloads it prior to loading the new tape +# just in case bacula doesn't explicitly +# request this. +# This function take two args, the drive +# to load, and the tape slot to load from +loadDrive() +{ + if [ -z "$1" ] || [ -z "$2" ] + then + echo "loadDrive() not called " \ + "with the correct params, error!!!" + exit 1 + fi + +# Check to see if it already has a tape in it... + doesDriveGottaTape "$1" + rtn=$? + if [ "$rtn" == 1 ] + then + echo "Oops, in loadDrive() that drive" + echo "already has a tape. Unloading it now" + unloadDrive "$1" + fi + + +# You're now ready to load the drive + echo "Now loading tape in slot $2 into drive $1" + + ${MTX} -f $AUTOLOADERDEV load $2 $1 + rtn=$? + if [ "$rtn" -ne 0 ] + then + echo "MTX came back with code ($rtn)" + echo "ERROR, in loadDrive($1, $2), mtx load failed" + exit 1 + fi + return $rtn +} + + + + + +####################### End Functions + + + + +####################### Start Script + +# Changes the nst* device bacula passes to a number that mtx likes +if [ "$2" == load ] || [ "$2" == unload ] +then + echo "In mtx-changer drive selection code...." + case "$4" in + /dev/nst0 ) + DRIVE="0" + ;; + + /dev/nst1 ) + DRIVE="1" + ;; + + * ) + echo "Error, invalid drive for autoloader." + echo "Maybe you mispelled the drive name, or tried to" + echo "use a drive that doesn't exist" + echo "Only two drives handled in /etc/bacula/mtx-changer script" + exit 1 + ;; + esac +fi + + + + +case "$2" in + unload) + unloadDrive "$DRIVE" + rtn=$? + + sleep 35 + exit $rtn + ;; + + load) + loadDrive "$DRIVE" "$3" + rtn=$? + sleep 55 + exit $rtn + ;; + + list) + echo "Requested list, DREW YOU HAVEN'T IMPLEMENTED YET!!!!" + ${MTX} -f $1 status | grep " *Storage Element [0-9]*:.*Full" | \ + awk "{print \$3 \$4}" | sed "s/Full *\(:VolumeTag=\)*//" + + rtn=$? + echo "mtx-changer returning value: $rtn" + ;; + + loaded) + echo "Request loaded, DREW YOU HAVEN'T IMPLEMENTED YET!!!!" + ${MTX} -f $1 status >/tmp/mtx.$$ + rtn=$? + cat /tmp/mtx.$$ | grep "^Data Transfer Element 0:Full" | awk "{print +\$7}" + cat /tmp/mtx.$$ | grep "^Data Transfer Element 0:Empty" | awk "{print +0}" +# cat /tmp/mtx.$$ | grep "^Data Transfer Element 1:Full" | awk "{print +\$7}" +# cat /tmp/mtx.$$ | grep "^Data Transfer Element 1:Empty" | awk +"{print 0}" + rm -f /tmp/mtx.$$ + + echo "mtx-changer returning value: $rtn" + exit $rtn + ;; + + slots) + echo "Request slots, DREW YOU HAVEN'T IMPLEMENTED YET!!!!" + ${MTX} -f $1 status | grep " *Storage Changer" | awk "{print \$5}" + rtn=$? + echo "mtx-changer returning value: $rtn" + ;; +esac + + +**************************************************************************** +** + + + + + +Hope that helps. Sorry, it's kinda setup for our Adic, and for two drives. + + + +-Drew + + +-----Original Message----- +From: Terry [mailto:terry@mrtux.co.uk] +Sent: Wednesday, December 10, 2003 8:23 AM +To: bacula-users@lists.sourceforge.net +Subject: [Bacula-users] Re: Autochanger setup + + +bacula-users-request@lists.sourceforge.net wrote: + +>Send Bacula-users mailing list submissions to +> bacula-users@lists.sourceforge.net +> +>To subscribe or unsubscribe via the World Wide Web, visit +> https://lists.sourceforge.net/lists/listinfo/bacula-users +>or, via email, send a message with subject or body 'help' to +> bacula-users-request@lists.sourceforge.net +> +>You can reach the person managing the list at +> bacula-users-admin@lists.sourceforge.net +> +>When replying, please edit your Subject line so it is more specific +>than "Re: Contents of Bacula-users digest..." +> +> +>Today's Topics: +> +> 1. Two beta releases (Kern Sibbald) +> 2. Re: Current Volume "Cinta-0006" not acceptable +> because (Kern Sibbald) +> 3. Re: Jobs awaiting execution? (Kern Sibbald) +> 4. Re: Mount need for every job... me too (Gregory Brauer) +> 5. Importtant: BIG Problems with schedule / bacula doesn't do +Differnetial +> backups (Volker Sauer) +> 6. Re: Mount need for every job... me too (fixed!) (Gregory Brauer) +> +>--__--__-- +> +>Message: 1 +>From: Kern Sibbald +>To: bacula-announce +>Cc: bacula-users +>Organization: +>Date: 09 Dec 2003 22:11:47 +0100 +>Subject: [Bacula-users] Two beta releases +> +>Hello, +> +>I have just made two Beta releases. Unfortunately, I mistakenly put the +>1.32e-08Dec03 Windows binaries in main win-binaries section rather than +>win-binaries-beta. At this point, I won't change it because it would +>require a new upload, ... +> +>The 1.33-08Dec03 release is definitely a Beta release in the sense that +>version 1.33 is still under very active development. The main features +>of this release are: +>- all features in 1.32e-08Dec03 +>- update slots (marks any other Volumes in the same pool with the same +> Slot number as "not InChanger"). This permits retaining the Slot on +> Volumes not currently in the magazine. +>- update slots=,,, ... +> where slot1, slot2 are slot numbers you want updated from barcode +> information and slot-range is a slot-number1-slot-number2 (e.g. 3-5). +>- update slots[=...] scan +> causes the Storage daemon to read the volume label for each slot +> listed, or in the absence of a slot list, all slots occupied. +>- Automatic synchronization of clocks between DIR and FD so that there +> is no missed files due to timezone differences or shewed clocks. +>- A database upgrade is mandatory. +>- None of the daemons are compatible with version 1.32x, which means +> you must upgrade all or nothing. +>- NOTE! FreeBSD users must add: +> Two EOF = yes +> to each of their tape Device resources in the SD. I forgot to document +> this elsewhere!!!!! +> +>Release 1.32e-08Dec03 was meant to be an official 1.32e release with all +>the current patches and a few strategic updates from 1.33. In the end, I +>threw in *all* the updates from 1.33 except those that require a +>database upgrade or force a daemon incompatibility, or other operating +>incompatibility. +> +>I haven't made 1.32-08Dec03 an official release for three reasons: +>- I cannot test it in production because my production system is on +> release 1.33. +>- There is still a bit more documentation to do. +>- I added more of the 1.33 code than I originally planned, but some of +> it such as the new 10 job history for each daemon is so neat that I +> wanted to put it in your hands (one of the features not yet +> documented). +> +>That said, I think this is a very good release. I have HEAVILY tested it +>with my regression testing, and 95% of the code has been running in my +>production 1.33 system since 24 November. I encourage all of you to +>test it. Note, all of the daemons should be totally compatible with any +>other 1.32x release -- please send feedback. +> +>Once I finish the documentation and get some feedback on how it runs, +>I'll "officially" release it. +> +>As most of you know, from tomorrow morning, I will be out for one week +>and then a bit slow responding for a week or two. Thanks for all the +>well wishes I have received. +> +>Regards, Kern +> +> +> +> +> +> +>--__--__-- +> +>Message: 2 +>Subject: Re: [Bacula-users] Current Volume "Cinta-0006" not acceptable +> because +>From: Kern Sibbald +>To: Carlos Molina Molina +>Cc: Phil Stracchino , +> bacula-users +>Organization: +>Date: 09 Dec 2003 22:30:07 +0100 +> +> +>--=-HANNTFvbGW9Q5KQ00dee +>Content-Type: text/plain; charset=ISO-8859-1 +>Content-Transfer-Encoding: quoted-printable +> +>On Tue, 2003-12-09 at 19:03, Carlos Molina Molina wrote: +> +> +>>no, I haven't the volume.... but the only thing that I need from bacula i= +>> +>> +>t's=20 +> +> +>>that write in any volume +>>other thing it's that when finish it send this part of messages. I put "u= +>> +>> +>se=20 +> +> +>>any volume" +>>=20 +>>AZOG: Naboo-Backup.2003-12-09_14.12.07 Warning: Unexpected Client Job=20 +>>message: 2801 End Backup Job TermCode=3D84 JobFiles=3D56064 ReadBytes=3D1= +>> +>> +>501707569=20 +> +> +>>JobBytes=3D621946654 +>>=20 +>>AZOG: Naboo-Backup.2003-12-09_14.12.07 Fatal error: No Job status returne= +>> +>> +>d=20 +> +> +>>from FD. +>>=20 +>>What means??? +>> +>> +> +>I cannot comment on the tape Volume error messages, but the message +>listed above "Unexpected Client Job message ..." seems to me to come +>from the fact that you have upgraded that client (File daemon) to a more +>recent version of Bacula than you are running on your Director. Please +>check your version numbers. If they are both the same number they should +>work together. If not, you need to get them both on the same version. +> +>Be sure to read the ReleaseNotes on any upgrade to ensure you do any +>required database upgrading. +> +>Regards, Kern +> +> +> +> +>>Thank +>>=20 +>> +>> +>>>From: Phil Stracchino +>>>To: bacula-users@lists.sourceforge.net +>>>Subject: Re: [Bacula-users] Current Volume "Cinta-0006" not acceptable=20 +>>>because +>>>Date: Tue, 9 Dec 2003 12:56:43 -0500 +>>> +>>>On Tue, Dec 09, 2003 at 03:47:29PM +0000, Carlos Molina Molina wrote: +>>> +>>> +>>>>How I avoid this message???, The only solution it's that I erase the=20 +>>>> +>>>> +>>>tape +>>> +>>> +>>>>manually... +>>>> +>>>> +>>>>SDT-10000: Naboo-Backup.2003-12-09_12.38.04 Warning: mount.c:232=20 +>>>> +>>>> +>>>Director +>>> +>>> +>>>>wanted Volume "Cinta-0001". +>>>> Current Volume "Cinta-0006" not acceptable because: +>>>> 1997 Volume "Cinta-0006" not in catalog. +>>>>SDT-10000: Please mount Volume "Cinta-0001" on Storage Device=20 +>>>> +>>>> +>>>"SDT-10000" +>>> +>>> +>>>>for Job Naboo-Backup.2003-12-09_12.38.04 +>>>>Use "mount" command to release Job. +>>>> +>>>> +>>>Don't you have the volume it's asking for? +>>> +>>> +>>>-- +>>> .********* Fight Back! It may not be just YOUR life at risk. =20 +>>>*********. +>>> : phil stracchino : unix ronin : renaissance man : mystic zen biker ge= +>>> +>>> +>ek=20 +> +> +>>>: +>>> : alaric@caerllewys.net : alaric-ruthven@earthlink.net : phil@latt.ne= +>>> +>>> +>t =20 +> +> +>>>: +>>> : 2000 CBR929RR, 1991 VFR750F3 (foully murdered), 1986 VF500F (sold)= +>>> +>>> +> =20 +> +> +>>>: +>>> : Linux Now! ...Because friends don't let friends use Microsoft. = +>>> +>>> +> =20 +> +> +>>>: +>>> +>>> +>>>------------------------------------------------------- +>>>This SF.net email is sponsored by: SF.net Giveback Program. +>>>Does SourceForge.net help you be more productive? Does it +>>>help you create better code? SHARE THE LOVE, and help us help +>>>YOU! Click Here: http://sourceforge.net/donate/ +>>>_______________________________________________ +>>>Bacula-users mailing list +>>>Bacula-users@lists.sourceforge.net +>>>https://lists.sourceforge.net/lists/listinfo/bacula-users +>>> +>>> +>>=20 +>>_________________________________________________________________ +>>MSN Amor: busca tu =BD naranja http://latam.msn.com/amor/ +>>=20 +>>=20 +>>=20 +>>------------------------------------------------------- +>>This SF.net email is sponsored by: SF.net Giveback Program. +>>Does SourceForge.net help you be more productive? Does it +>>help you create better code? SHARE THE LOVE, and help us help +>>YOU! Click Here: http://sourceforge.net/donate/ +>>_______________________________________________ +>>Bacula-users mailing list +>>Bacula-users@lists.sourceforge.net +>>https://lists.sourceforge.net/lists/listinfo/bacula-users +>> +>> +> +>--=-HANNTFvbGW9Q5KQ00dee +>Content-Type: application/pgp-signature; name=signature.asc +>Content-Description: This is a digitally signed message part +> +>-----BEGIN PGP SIGNATURE----- +>Version: GnuPG v1.2.1 (GNU/Linux) +> +>iD8DBQA/1j7fNgfoSvWqwEgRAsEDAJ0aF6qvQVHiH0X4DCTwXQh3wux1gACfQLxl +>wKgzEjDQMg3v1vh4yS6kUys= +>=6xcc +>-----END PGP SIGNATURE----- +> +>--=-HANNTFvbGW9Q5KQ00dee-- +> +> +> +>--__--__-- +> +>Message: 3 +>Subject: Re: [Bacula-users] Jobs awaiting execution? +>From: Kern Sibbald +>To: Danie Theron +>Cc: bacula-users +>Organization: +>Date: 09 Dec 2003 22:39:39 +0100 +> +>Hello, +> +>Move up to version 1.32d or 1.32e. The job scheduler was totally +>rewritten between 1.31 and 1.32 and a number of bizarre little problems +>that some people (not me) were having totally went away. I suspect that +>they were pthreads related on non-Linux systems, but who knows ... +> +>Regards, Kern +> +>On Tue, 2003-12-09 at 12:09, Danie Theron wrote: +> +> +>>Hi +>> +>>I have recently split my backups into more manageable sets , and now it +>>seems they are not running automatically. Here is an output when I do a +>>"status" command : +>> +>>Last Job BackupCatalog.2003-12-09_01.10.00 finished at 09-Dec-2003 01:10 +>> Files=1 Bytes=43,308,017 Termination Status=OK +>>Console connected at 09-Dec-2003 19:06 +>>JobId 132 Job prometheus-rapstech.2003-12-09_19.00.03 is waiting +>>execution. +>>JobId 131 Job prometheus-consult-gis.2003-12-09_19.00.02 is waiting +>>execution. +>>JobId 130 Job prometheus-consult-documents.2003-12-09_19.00.01 is +>>waiting on max +>> Client jobs. +>>JobId 129 Job prometheus-system.2003-12-09_19.00.00 is running. +>>Level Type Scheduled Name +>>================================================================= +>>Incremental Backup 10-Dec-2003 19:00 prometheus-system +>>Incremental Backup 10-Dec-2003 19:00 prometheus-consult-documents +>>Incremental Backup 10-Dec-2003 19:00 prometheus-consult-gis +>>Incremental Backup 10-Dec-2003 19:00 prometheus-rapstech +>>Full Backup 10-Dec-2003 01:10 BackupCatalog +>>==== +>>Connecting to Storage daemon File at localhost:9103 +>> +>>prometheus-sd Version: 1.31a (02 Aug 2003) +>>Daemon started 08-Dec-2003 19:30, 3 Jobs run. +>>Last Job BackupCatalog.2003-12-09_01.10.00 finished at 09-Dec-2003 01:10 +>> Files=1 Bytes=43,308,119 Termination Status=OK +>>Device /data/server is mounted with Volume "backup" +>> Total Bytes=791,751,921 Blocks=12,274 Bytes/block=64,506 +>> Positioned at File=0 Block=9,351 +>>Device /data/server is not open. +>>Device /data/server is not open. +>>Device /data/server is not open. +>>Device /data/server is not open. +>>Full Backup job backup using Volume +>>"prometheus-system.2003-12-09_19.00.00" on d +>>evice /data/server +>> Files=15,341 Bytes=602,255,638 Bytes/sec=1,517,016 +>> FDReadSeqNo=134,036 in_msg=96746 out_msg=5 fd=6 +>> +>> +>>When I manually run a job it backups fine. +>> +>>Ta in advance +>>Daniel +>> +>> +>> +>>------------------------------------------------------- +>>This SF.net email is sponsored by: SF.net Giveback Program. +>>Does SourceForge.net help you be more productive? Does it +>>help you create better code? SHARE THE LOVE, and help us help +>>YOU! Click Here: http://sourceforge.net/donate/ +>>_______________________________________________ +>>Bacula-users mailing list +>>Bacula-users@lists.sourceforge.net +>>https://lists.sourceforge.net/lists/listinfo/bacula-users +>> +>> +> +> +> +>--__--__-- +> +>Message: 4 +>Date: Tue, 09 Dec 2003 14:57:32 -0800 +>From: Gregory Brauer +>To: bacula-users +>Subject: Re: [Bacula-users] Mount need for every job... me too +> +> +>I have looked at all of the comments in this thread, but I +>am also having this problem and cannot seem to fix it. +>I am using an autochanger that blocks waiting for me to type +>the "mount" command every time it autoloads a tape. It +>worked fine for me with 1.31, but has been doing this +>since I upgraded to 1.32d. Here are some excerpts from my +>configuration: +> +> +> From bacula-dir.conf: +> +>Storage { +> Autochanger = yes +> Name = "kiev AIT2 Autoloader" +> Address = kiev +> SDPort = 9103 +> Password = "yV3C5gZXhF/RrYadlwKWnwAbTV1oUCXVqUIrAaUjMov+" +> Device = "AIT2 Autoloader" +> MediaType = "AIT2" +>} +> +> +> From bacula-sd.conf: +> +>Device { +> Autochanger = yes +> Changer Device = /dev/sg0 +> Changer Command = "/etc/bacula/mtx-changer %c %o %S %a" +> Name = "AIT2 Autoloader" +> Media Type = "AIT2" +> Archive Device = /dev/nst0 +> Hardware end of medium = No; +> Automatic Mount = yes; +> Always Open = yes; +> Removable Media = yes; +>} +> +>I had tried this with both Always Open = yes, and no... it worked fine +>with "no" under 1.31. +> +> +>I have also noticed that every time bacula issues a "load slot" command, +>I get an error message saying mtx-changer exited 1. +> +> +>09-Dec-2003 14:42 kiev-sd: 3303 Issuing autochanger "load slot 15" command. +>09-Dec-2003 14:44 kiev-sd: 3992 Bad autochanger "load slot" status=1. +> +> +>But if I run mtx-changer manually from the command line, it always +>seems to exit 0, so I'm not sure where bacula is seeing this error. +> +> +>basic [root@kiev bacula]$ ./mtx-changer /dev/sg0 load 15 /dev/nst0 +>basic [root@kiev bacula]$ echo $status +>0 +> +> +>I have tried increasing my sleep time on load to arbitrarily high +>values, but that hasn't helped. +> +> +> load) +># echo "Doing mtx -f $1 load $3" +> ${MTX} -f $1 load $3 +> rtn=$? +># +># Increase the sleep time if you have a slow device +> #sleep 15 +> sleep 120 +> exit $rtn +> ;; +> +> +>What else can I check? +> +>Greg +> +> +> +>--__--__-- +> +>Message: 5 +>Date: Wed, 10 Dec 2003 00:48:19 +0100 +>From: Volker Sauer +>To: Kern Sibbald , +> bacula-users +>Subject: [Bacula-users] Importtant: BIG Problems with schedule / bacula +doesn't do Differnetial +> backups +> +>This is an OpenPGP/MIME signed message (RFC 2440 and 3156) +>--------------enig1AEBD91EBCB59C2EB43FEF98 +>Content-Type: text/plain; charset=us-ascii; format=flowed +>Content-Transfer-Encoding: 7bit +> +>Hallo Kern, +> +>as I already worried about in 2 other mails is now proven: +> +>Bacula doesn't do a diffential backup! +> +>My schedule is this: +> +>Schedule { +> Name = "WeeklyCycle" +> Run = Level=Full Pool=Full 1st tue at 2:00pm +> Run = Level=Differential Pool=Full 2nd-5th tue at 7:00pm +> Run = Level=Incremental Pool=Inc wed-mon at 7:00pm +>} +> +> +>and this is what list jobs says (I hope you can read that): +> +> +>| 55 | Zaphod | 2003-12-02 14:00:04 | B | F | +>504,634 | 20,669,282,940 | T | +>| 56 | Arthur | 2003-12-02 16:31:30 | B | F | +>380,719 | 15,498,385,751 | T | +>| 57 | Alexis | 2003-12-02 18:23:45 | B | F | +>167,710 | 5,157,651,432 | T | +>| 58 | BackupCatalog | 2003-12-02 19:23:13 | B | F | +> 1 | 404,663,640 | T | +>| 59 | ReminderIncCartridge | 2003-12-03 08:00:05 | D | F | +> 0 | 0 | T | +>| 60 | Zaphod | 2003-12-03 19:00:04 | B | I | +> 693 | 262,166,208 | T | +>| 61 | Arthur | 2003-12-03 19:12:57 | B | I | +> 314 | 889,290,521 | T | +>| 62 | Alexis | 2003-12-03 19:24:46 | B | I | +> 748 | 56,013,471 | T | +>| 63 | BackupCatalog | 2003-12-03 22:00:04 | B | F | +> 1 | 404,846,132 | T | +>| 64 | Zaphod | 2003-12-04 19:00:05 | B | I | +> 740 | 385,140,941 | T | +>| 65 | Arthur | 2003-12-04 19:16:03 | B | I | +> 441 | 904,698,439 | T | +>| 66 | Alexis | 2003-12-04 19:28:09 | B | I | +> 669 | 68,876,161 | T | +>| 67 | BackupCatalog | 2003-12-04 22:00:04 | B | F | +> 1 | 253,231,104 | E | +>| 68 | BackupCatalog | 0000-00-00 00:00:00 | B | I | +> 0 | 0 | C | +>| 69 | BackupCatalog | 0000-00-00 00:00:00 | B | I | +> 0 | 0 | C | +>| 70 | BackupCatalog | 2003-12-05 01:25:19 | B | I | +> 1 | 405,045,253 | T | +>| 71 | Zaphod | 2003-12-05 19:00:04 | B | I | +> 8,389 | 373,643,708 | T | +>| 72 | Arthur | 2003-12-05 19:13:59 | B | I | +> 6,904 | 1,007,785,097 | T | +>| 73 | Alexis | 2003-12-05 19:28:23 | B | I | +> 4,085 | 114,727,583 | T | +>| 74 | BackupCatalog | 2003-12-05 22:00:04 | B | F | +> 1 | 407,222,289 | T | +>| 75 | Zaphod | 2003-12-06 19:00:05 | B | I | +> 923 | 175,466,045 | T | +>| 76 | Arthur | 2003-12-06 19:14:01 | B | I | +> 1,872 | 516,372,637 | T | +>| 77 | Alexis | 2003-12-06 19:25:01 | B | I | +> 5,422 | 190,847,977 | T | +>| 78 | BackupCatalog | 2003-12-06 22:00:04 | B | F | +> 1 | 408,121,544 | T | +>| 79 | Zaphod | 2003-12-07 19:00:04 | B | I | +> 1,347 | 93,787,356 | T | +>| 80 | Arthur | 2003-12-07 19:12:06 | B | I | +> 705 | 496,647,729 | T | +>| 81 | Alexis | 2003-12-07 19:25:08 | B | I | +> 1,414 | 102,756,100 | T | +>| 82 | BackupCatalog | 2003-12-07 22:00:04 | B | F | +> 1 | 408,519,580 | T | +>| 83 | Zaphod | 2003-12-08 19:00:05 | B | I | +> 4,428 | 461,132,237 | T | +>| 84 | Arthur | 2003-12-08 19:15:59 | B | I | +> 307 | 384,713,540 | T | +>| 85 | Alexis | 2003-12-08 19:25:56 | B | I | +> 708 | 78,420,311 | T | +>| 86 | BackupCatalog | 2003-12-08 22:00:04 | B | F | +> 1 | 409,139,688 | T | +>| 87 | ReminderFullCartridge | 2003-12-09 06:00:05 | D | F | +> 0 | 0 | T | +>| 88 | Zaphod | 2003-12-09 19:00:05 | B | F | +>507,058 | 21,050,750,780 | T | +>| 89 | Arthur | 2003-12-09 21:27:07 | B | F | +>382,397 | 15,246,847,324 | T | +>| 90 | Alexis | 2003-12-09 23:18:30 | B | F | +>167,868 | 4,595,334,742 | T | +>| 91 | BackupCatalog | 2003-12-10 00:10:05 | B | F | +> 1 | 528,055,685 | T | +>+-------+-----------------------+---------------------+------+-------+----- +-----+----------------+-----------+ +>* +> +>Bacula did a FullBackup on December 2nd, which was the first Tuesday in +>this month. Correct. Then it did Incremenatial backups from 3rd until +>8th. Also correct. +>Yesterday, on December 9th - according to my schedule there should have +>been a differential backup!! But as you can see above, bacula did a Full +>backup - without reason, I think!! +>(This brings real big problems to my storage managment, because I don't +>have enough space for 4 Full-Backups a month. I urgently need diffential +>backups in the conecept) +>Could the cause be, that there's a pool change! Should the diffential +>backup better go to the inc-pool?? +> +>Please help!! +> +>Regards +>Volker +> +>P.S.: this is the job output of the jobs from Tue 9th, which should have +>been differential: +> +> +>z217-dir: Start Backup JobId 88, Job=Zaphod.2003-12-09_19.00.00 +>z217-sd: 3301 Issuing autochanger "loaded" command. +>z217-sd: Volume "F-6" previously written, moving to end of data. +>z217-sd: Ready to append to end of Volume at file=6. +>z217-sd: block.c:480 End of medium on device /dev/tape. Write of 64512 +>bytes got 32768. +>z217-sd: End of medium on Volume "F-6" Bytes=23,935,131,136 +>Blocks=371,020 at 09-Dec-2003 21:06. +>z217-sd: 3301 Issuing autochanger "loaded" command. +>z217-sd: 3302 Issuing autochanger "unload" command. +>z217-sd: 3303 Issuing autochanger "load slot 7" command. +>z217-sd: 3304 Autochanger "load slot 7" status is OK. +>z217-sd: Wrote label to prelabeled Volume "F-7" on device /dev/tape +>z217-sd: New volume "F-7" mounted on device /dev/tape at 09-Dec-2003 21:08. +>z217-dir: Bacula 1.32d (02Nov03): 09-Dec-2003 21:27 +>JobId: 88 +>Job: Zaphod.2003-12-09_19.00.00 +>Backup Level: Full +>Client: zaphod-fd +>FileSet: "Set Zaphod" 2003-11-21 16:32:26 +>Start time: 09-Dec-2003 19:00 +>End time: 09-Dec-2003 21:27 +>FD Files Written: 507,058 +>SD Files Written: 507,058 +>FD Bytes Written: 21,050,750,780 +>SD Bytes Written: 21,121,287,812 +>Rate: 2387.2 KB/s +>Software Compression: None +>Volume name(s): F-6|F-7 +>Volume Session Id: 14 +>Volume Session Time: 1070650983 +>Last Volume Bytes: 2,327,668,804 +>Non-fatal FD errors: 0 +>SD Errors: 0 +>FD termination status: OK +>SD termination status: OK +>Termination: Backup OK +> +>z217-dir: Begin pruning Jobs. +>z217-dir: No Jobs found to prune. +>z217-dir: Begin pruning Files. +>z217-dir: No Files found to prune. +>z217-dir: End auto prune. +> +> +> +>z217-dir: Start Backup JobId 89, Job=Arthur.2003-12-09_19.00.01 +>z217-dir: Bacula 1.32d (02Nov03): 09-Dec-2003 23:18 +>JobId: 89 +>Job: Arthur.2003-12-09_19.00.01 +>Backup Level: Full +>Client: z217-fd +>FileSet: "Set Arthur" 2003-11-21 18:47:14 +>Start time: 09-Dec-2003 21:27 +>End time: 09-Dec-2003 23:18 +>FD Files Written: 382,397 +>SD Files Written: 382,397 +>FD Bytes Written: 15,246,847,324 +>SD Bytes Written: 15,300,937,041 +>Rate: 2283.1 KB/s +>Software Compression: None +>Volume name(s): F-7 +>Volume Session Id: 15 +>Volume Session Time: 1070650983 +>Last Volume Bytes: 17,654,556,715 +>Non-fatal FD errors: 0 +>SD Errors: 0 +>FD termination status: OK +>SD termination status: OK +>Termination: Backup OK +> +>z217-dir: Begin pruning Jobs. +>z217-dir: No Jobs found to prune. +>z217-dir: Begin pruning Files. +>z217-dir: No Files found to prune. +>z217-dir: End auto prune. +> +> +> +>z217-dir: Start Backup JobId 90, Job=Alexis.2003-12-09_19.00.02 +>z217-dir: Bacula 1.32d (02Nov03): 10-Dec-2003 00:10 +>JobId: 90 +>Job: Alexis.2003-12-09_19.00.02 +>Backup Level: Full +>Client: alexis-fd +>FileSet: "Set Alexis" 2003-11-21 20:58:58 +>Start time: 09-Dec-2003 23:18 +>End time: 10-Dec-2003 00:10 +>FD Files Written: 167,868 +>SD Files Written: 167,868 +>FD Bytes Written: 4,595,334,742 +>SD Bytes Written: 4,616,435,343 +>Rate: 1487.2 KB/s +>Software Compression: None +>Volume name(s): F-7 +>Volume Session Id: 16 +>Volume Session Time: 1070650983 +>Last Volume Bytes: 22,280,313,500 +>Non-fatal FD errors: 0 +>SD Errors: 0 +>FD termination status: OK +>SD termination status: OK +>Termination: Backup OK +> +>z217-dir: Begin pruning Jobs. +>z217-dir: No Jobs found to prune. +>z217-dir: Begin pruning Files. +>z217-dir: No Files found to prune. +>z217-dir: End auto prune. +> +> +I'm trying to setup a surestore 12000e autochanger so far in my +bacula-sd.conf i have added this +Device { + Name = autochanger # + Media Type = DDS-2 + Archive Device = /dev/sa1 + AutomaticMount = yes; # when device opened, read it + AlwaysOpen = yes; + LabelMedia = yes; + RemovableMedia = yes; + Autochanger = yes; + Changer Device = /dev/pass0 #changer device +} +But i need to make an entry for the Changer Command = .I have +installed mtx but there are no sample files to be found or any +bacula samples for autochangers +Cheers Terry + + + + +------------------------------------------------------- +This SF.net email is sponsored by: SF.net Giveback Program. +Does SourceForge.net help you be more productive? Does it +help you create better code? SHARE THE LOVE, and help us help +YOU! Click Here: http://sourceforge.net/donate/ +_______________________________________________ +Bacula-users mailing list +Bacula-users@lists.sourceforge.net +https://lists.sourceforge.net/lists/listinfo/bacula-users + + +------------------------------------------------------- +This SF.net email is sponsored by: SF.net Giveback Program. +Does SourceForge.net help you be more productive? Does it +help you create better code? SHARE THE LOVE, and help us help +YOU! Click Here: http://sourceforge.net/donate/ +_______________________________________________ +Bacula-users mailing list +Bacula-users@lists.sourceforge.net +https://lists.sourceforge.net/lists/listinfo/bacula-users diff --git a/Branch-2.2/bacula/examples/autochangers/mtx-changer.Adic-Scalar-24 b/Branch-2.2/bacula/examples/autochangers/mtx-changer.Adic-Scalar-24 new file mode 100755 index 0000000000..9cdf6372f4 --- /dev/null +++ b/Branch-2.2/bacula/examples/autochangers/mtx-changer.Adic-Scalar-24 @@ -0,0 +1,117 @@ +#!/bin/sh +# +# Bacula interface to mtx autoloader +# +# $Id$ +# +# If you set in your Device resource +# +# Changer Command = "path-to-this-script/mtx-changer %c %o %S %a %d" +# you will have the following input to this script: +# +# mtx-changer "changer-device" "command" "slot" "archive-device" "drive-index" +# $1 $2 $3 $4 $5 +# +# for example: +# +# mtx-changer /dev/sg0 load 1 /dev/nst0 0 (on a Linux system) +# +# If you need to an offline, refer to the drive as $4 +# e.g. mt -f $4 offline +# +# Many changers need an offline after the unload. Also many +# changers need a sleep 60 after the mtx load. +# +# N.B. If you change the script, take care to return either +# the mtx exit code or a 0. If the script exits with a non-zero +# exit code, Bacula will assume the request failed. +# + +MTX=/usr/sbin/mtx + +if test $# -lt 2 ; then + echo "usage: mtx-changer ctl-device command slot archive-device drive" + echo " Insufficient number of arguments arguments given." + echo " Mimimum usage is first two arguments ..." + exit 1 +fi + +# Setup arguments +ctl=$1 +cmd="$2" +slot=$3 +device=$4 +# If drive not given, default to 0 +if test $# = 5 ; then + drive=$5 +else + drive=0 +fi + +${MTX} -f $1 inventory + +# +# Check for special cases where only 2 arguments are needed, +# all others are a minimum of 3 +case $cmd in + loaded) + ;; + unload) + ;; + list) + ;; + slots) + ;; + *) + if test $# -lt 3; then + echo "usage: mtx-changer ctl-device command slot archive-device drive" + echo " Insufficient number of arguments arguments given." + echo " Mimimum usage is first three arguments ..." + exit 1 + fi + ;; +esac + + +case $cmd in + unload) +# echo "Doing mtx -f $ctl unload $slot $drive" +# +# enable the following line if you need to eject the cartridge +# mt -f $device offline + if test x$slot = x; then + ${MTX} -f $ctl unload + else + ${MTX} -f $ctl unload $slot $drive + fi + ;; + + load) +# echo "Doing mtx -f $ctl load $slot $drive" + ${MTX} -f $ctl load $slot $drive + rtn=$? +# +# Increase the sleep time if you have a slow device + sleep 15 + exit $rtn + ;; + + list) +# echo "Requested list" + ${MTX} -f $ctl status | grep " *Storage Element [0-9]*:.*Full" | awk '{print $3 $4}' | sed "s/Full *\(:VolumeTag=\)*//" + ;; + + loaded) + ${MTX} -f $ctl status >/tmp/mtx.$$ + rtn=$? + cat /tmp/mtx.$$ | grep "^Data Transfer Element $drive:Full" | awk '{print $7}' + cat /tmp/mtx.$$ | grep "^Data Transfer Element $drive:Empty" | awk '{print 0}' + rm -f /tmp/mtx.$$ + exit $rtn + ;; + + slots) +# echo "Request slots" + ${MTX} -f $ctl status | grep " *Storage Changer" | awk '{print $5}' + ;; +esac diff --git a/Branch-2.2/bacula/examples/autochangers/mtx-changer.Sony-TSL-SA300C b/Branch-2.2/bacula/examples/autochangers/mtx-changer.Sony-TSL-SA300C new file mode 100755 index 0000000000..ef4783d7f0 --- /dev/null +++ b/Branch-2.2/bacula/examples/autochangers/mtx-changer.Sony-TSL-SA300C @@ -0,0 +1,40 @@ +#!/bin/sh +# +# Bacula interface to mtx autoloader +# +# This mtx-changer script was contributed by Fryderyk Wlostowski. +# It works with a Sony TLS-11000 changer, which needs +# the slot number to do an unload +# +# mtx-changer "changer-device" "command" "slot" +# +# +MTX=/opt/mtx1.2.17/sbin/mtx +case "$2" in + unload) +# echo "Doing mtx -f $1 $2" + NR_KASETY=`$MTX -f $1 status | grep "Empty" | tr " " "~" | tr ":" "~" | cut -d "~" -f 9` + $MTX -f $1 $2 $NR_KASETY + ;; + + load) +# echo "Doing mtx -f $1 $2 $3" + $MTX -f $1 $2 $3 + ;; + + list) +# echo "Requested list" + $MTX -f $1 status | grep "^[ ]*Storage Element [0-9]*:.*Full" | awk "{print \$3}" | sed "s/:.*$/ /g" | tr -d "[\r\n]" + ;; + + loaded) +# echo "Request loaded" + $MTX -f $1 status | grep "Empty" | tr " " "~" | tr ":" "~" | cut -d "~" -f 9 + echo 0 + ;; + + slots) +# echo "Request slots" + $MTX -f $1 status | grep "[ ]Storage Changer" | awk "{print \$5}" + ;; +esac diff --git a/Branch-2.2/bacula/examples/autochangers/mtx-changer.StorageTek-HPA4853 b/Branch-2.2/bacula/examples/autochangers/mtx-changer.StorageTek-HPA4853 new file mode 100755 index 0000000000..d2eacf96a2 --- /dev/null +++ b/Branch-2.2/bacula/examples/autochangers/mtx-changer.StorageTek-HPA4853 @@ -0,0 +1,137 @@ +#!/bin/sh +# +# Bacula interface to mtx autoloader +# +# Created JAN/23/02 by Ludwig Jaffe +# +# Works with the HP A4853 DLT Library +# and the Storagetek Timberwolf 9730 DLT Library +# +#TAPEDRIVE0 holds the device/name of your 1st and only DLT drive (Bacula supports only 1 drive currently) +# +#Read TAPEDRIVE from command line parameters +if [ -z "$4" ] ; then + TAPEDRIVE0=/dev/st0 +else + TAPEDRIVE0=$4 +fi + +#Delay in seconds the tape needs to load the tape. Needed to stop bacula from using the tape too early. +TAPEDELAY=65 #The StorageTek Timberwolf 9730 with DLT7000 needs approx. 50 seconds to load. 65 sec gives safety +MTXCHVERBOSE=1 +if [ -z "$1" ] ; then + echo "" + echo "The mtx-changer script for bacula" + echo "---------------------------------" + echo "" + echo "usage: mtx-changer [slot] [devicename of tapedrive]" + echo " mtx-changer" + echo "" + echo "Valid commands:" + echo "" + echo "unload Unloads a tape into the slot" + echo " from where it was loaded." + echo "load Loads a tape from the slot " + echo "list Lists full storage slots" + echo "loaded Gives slot from where the tape was loaded." + echo " 0 means the tape drive is empty." + echo "slots Gives Number of aviable slots." + echo "" + echo "Example:" + echo " mtx-changer /dev/changer load 1 loads a tape from slot1" + echo "" + exit +fi + + +case "$2" in + unload) +# At first do mt -f /dev/st0 offline to unload the tape because HP A4853 aka Timberwolf9730 +# refuses to unload the tape from the drive if the DLT streamer did not unloaded it!!! +# + #Check if you want to fool me + if [ $MTXCHVERBOSE -eq 1 ] ; then echo "mtx-changer: Checking if drive is loaded before we unload. I Request loaded" ; fi + mtx -f $1 status >/tmp/mtx.$$ + rm -f /tmp/mtxloaded + cat /tmp/mtx.$$ | grep "^Data Transfer Element 0:Full" | awk "{print \$7}" > /tmp/mtxloaded + rm -f /tmp/mtx.$$ + read LOADEDVOL /tmp/mtx.$$ + rm -f /tmp/mtxloaded + cat /tmp/mtx.$$ | grep "^Data Transfer Element 0:Full" | awk "{print \$7}" > /tmp/mtxloaded + rm -f /tmp/mtx.$$ + read LOADEDVOL /tmp/mtx.$$ + cat /tmp/mtx.$$ | grep "^Data Transfer Element 0:Full" | awk "{print \$7}" + cat /tmp/mtx.$$ | grep "^Data Transfer Element 0:Empty" | awk "{print 0}" + rm -f /tmp/mtx.$$ + ;; + + slots) + if [ $MTXCHVERBOSE -eq 1 ] ; then echo "mtx-changer: Request slots" ; fi + mtx -f $1 status | grep "[ ]Storage Changer" | awk "{print \$5}" + ;; +esac diff --git a/Branch-2.2/bacula/examples/autochangers/multiple-drive-changer.txt b/Branch-2.2/bacula/examples/autochangers/multiple-drive-changer.txt new file mode 100644 index 0000000000..e9fe18d41f --- /dev/null +++ b/Branch-2.2/bacula/examples/autochangers/multiple-drive-changer.txt @@ -0,0 +1,257 @@ +Date: Tue, 15 Feb 2005 17:36:06 +0100 +From: Mario Wolff +To: kern@sibbald.com +CC: bacula-devel +Subject: Re: Using multiple tapedrives as autochanger! + +Hi Kern! + +Kern Sibbald schrieb: + > Hello, + > + > There is a similar script named ak-mtx-changer.txt in the + > /examples/autochangers directory of the source tree. If you feel + > that your script brings something different, then I'll be happy to + > include it in the same directory. If that is the case, please put a + > small note in an email message to me with the script and I'll include it + > (I know you've already sent the script, but it saves me the time of + > searching for it, and I'm sure I've got the right one). + > + > Best regards, Kern + +As far as i understood the ak-mtx-changer.txt it's simply a +human-resource-changer!?! +In the past every single server had it's own DDS-3 Tape, since we switch + to a centralized networkbackup all these drives are unused. +Now i took 6 of these drives and placed it in large case on one +scsi-controller. Running bacula with multitape-changer these six drives +are used as one drive with a 6-Slot-Changer! + +Regards, +Mario + +PS: I've posted a deploy-script (deploy windows-fd from linux, automated + your hints) a few days ago over gmane to the devellist. This message +was never posted and i got no error message. Maybe problem with the size +(Windows-FD was attached!) ??? + +[pasted the hints once again for Kern!] + +Example: +bacula-dir.conf: + +# Definition of DDS tape storage device +Storage { + Name = Multitape + #Do not use "localhost" here + Address = mystorage # N.B. Use a fully qualified name here + SDPort = 9103 + Password = "strongsecret" # password for Storage daemon + Device = Multitape + Autochanger = yes + Media Type = DDS-3 +} + +bacula-sd.conf: +Device { + Name = Multitape # + Media Type = DDS-3 + Archive Device = /dev/tape + AutomaticMount = yes; # when device opened, read it + AlwaysOpen = yes; + RemovableMedia = yes; + RandomAccess = no; + # That's the magic!!! + Changer Command = "/etc/bacula/scripts/multitape-changer %c %o %S %a %d" + Changer Device = /dev/null + AutoChanger = yes +} + +Hints: +- Important to use a virtual name! multidrive-changer will create links! + (Archive Device = /dev/tape) +- It's a bash script not a sh script! +- SD must run as root or the multitape-changer must be called with sudo +to have write permission to the /dev dir! +- the default-config does an umount on tape-change! Don't switch this! +SD has to release the device-file! +- don't use your tapedrives directly anymore! SD does not know that +/dev/tape is /dev/nst0! +- don't remove the sleep 1 after getslot...! Without the sleep you will +get a "Operation not permitted" error! +- only tested with Debian/GNU-Linux-SID + +[end of paste] + + +--------------050209030507060501040304 +Content-Type: text/plain; + name="multitape-changer" +Content-Transfer-Encoding: 7bit +Content-Disposition: inline; + filename="multitape-changer" + +#!/bin/bash +# +# Bacula interface to use multiple drives as one tape-changer +# Arguments are copied from the mtx-script! Simply exchange +# the scriptname from demo-config +# +# If you set in your Device resource +# +# Changer Command = "path-to-this-script/multitape-changer %c %o %S %a %d" +# you will have the following input to this script: +# +# multitape-changer "changer-device" "command" "slot" "archive-device" "drive-index" +# $1 $2 $3 $4 $5 +# +# for example: +# +# multitape-changer /dev/sg0 load 1 /dev/nst0 0 (on a Linux system) +# +# Setup arguments +cmd="$2" +slot=$3 +DEVICE=${4:-/dev/tape} + +LABELDIR=/etc/bacula/tapelabel # where to find labelfiles +NULLDEVICE=/dev/null # if unmount link to this +SLOT01=/dev/nst0 # first slot +SLOT02=/dev/nst1 # second slot + # simply append more + +#get device for a given slotnumber +getdevice(){ + myslot=${1:-1} + if [ ${#myslot} -gt 2 ];then exit 1;fi + if [ ${#myslot} -eq 2 ];then + eval echo \$SLOT$myslot + return + else + eval echo \$SLOT0$myslot + return + fi +} + +#get name of labelfile for a given slot +getname(){ + myslot=${1:-1} + if [ ${#myslot} -gt 2 ];then exit 2;fi + if [ ${#myslot} -eq 2 ];then + echo SLOT$myslot + return + else + echo SLOT0$myslot + return + fi +} + +#how many tapes/slots to manage +getslots(){ + count=1 + while [ "$( getdevice $count )" ];do + count=$[ $count + 1 ] + done + echo $[ $count - 1 ] + return +} + +#get slot for a given device-file +getslot(){ + device=${1:-$NULLDEVICE} + if [ "$device" = "$NULLDEVICE" ];then + echo -en "0\n" + return + else + count=1 + slotdev=$( getdevice $count ) + while [ "$slotdev" ]; do + if [ "$slotdev" = "$device" ];then + echo -en "$count\n" + return + fi + count=$[ $count + 1 ] + slotdev=$( getdevice $count ) + done + exit 3 + fi +} + +if test $# -lt 2 ; then + echo "usage: multitape-changer ctl-device command slot archive-device drive" + echo " Insufficient number of arguments arguments given." + echo " Mimimum usage is first two arguments ..." + exit 4 +fi + +# +# Check for special cases where only 2 arguments are needed, +# all others are a minimum of 3 +case $cmd in + loaded) + ;; + unload) + ;; + list) + ;; + slots) + ;; + *) + if test $# -lt 3; then + echo "usage: multitape-changer ctl-device command slot archive-device drive" + echo " Insufficient number of arguments arguments given." + echo " Mimimum usage is first three arguments ..." + exit 5 + fi + ;; +esac + + +case $cmd in + unload) + if [ -e $DEVICE ];then + rm $DEVICE && ln -s $NULLDEVICE $DEVICE || exit 6 + else + ln -s $NULLDEVICE $DEVICE || exit 7 + fi + ;; + + load) + CURDEV=$( getdevice $slot ) + if [ -e $DEVICE ];then + rm $DEVICE && ln -s $CURDEV $DEVICE || exit 8 + else + ln -s $CURDEV $DEVICE || exit 9 + fi + ;; + + list) + slots=$( getslots ) + for slot in $( seq 1 $slots );do + labelfile=$LABELDIR/$( getname $slot ) + if [ -f "$labelfile" ];then + echo "$slot:$( head -n 1 $labelfile)" + else + echo "$slot:" + fi + done + exit 0 + ;; + + loaded) + if [ -e $DEVICE ];then + line=$( ls -la $DEVICE ) + fi + line=${line:-$NULLDEVICE} + getslot ${line##* } + sleep 1 + exit 0 + ;; + + slots) + getslots + exit 0 + ;; +esac + +--------------050209030507060501040304-- diff --git a/Branch-2.2/bacula/examples/autochangers/rc-chio-changer b/Branch-2.2/bacula/examples/autochangers/rc-chio-changer new file mode 100644 index 0000000000..7007842b48 --- /dev/null +++ b/Branch-2.2/bacula/examples/autochangers/rc-chio-changer @@ -0,0 +1,139 @@ +#!/bin/sh +# +# Bacula interface to chio autoloader +# (by Rudolf Cejka ) +# +# $Id$ +# +# If you set in your Device resource +# Changer Command = "path-to-this-script/chio-changer %c %o %S %a %d" +# you will have the following input to this script: +# chio-changer "changer-device" "command" "slot" "tape-device" "drive-index" +# $1 $2 $3 $4 $5 +# for example (on a FreeBSD system): +# chio-changer /dev/ch0 load 1 /dev/nsa0 0 +# +# If you change the script, take care to return either the chio exit +# code or a 0. If the script exits with a non-zero exit code, Bacula +# will assume the request failed. +# + +# Uncomment the following line, if you need to eject a tape before moving +# it from the drive. +#OFFLINE=yes + +# Uncomment the following line, if you need to wait for some time +# (in seconds) after (un)loading a tape. +#SLEEP=10 + +# Uncomment the following line, if you do not have a changer with volume +# reader. +#FAKE_BARCODES=/usr/local/etc/bacula-barcodes + +PROGNAME=`basename $0` + +usage() +{ + cat < [slot] [tape-device] [drive-index] + +Commands (): + unload Unloads a tape into the slot from where it was loaded. + load Loads a tape from the slot (1-based). + list Lists full storage slots. + loaded Gives slot from where the tape was loaded (0 = empty drive). + slots Gives number of available slots. + +Example: + ${PROGNAME} /dev/ch0 load 1 Loads a tape from first slot 1. + +EOF +} + +# Default settings +CHANGER=/dev/ch0 +TAPE=/dev/nsa0 +DRIVE=0 + +CHIO=/bin/chio +MT=/usr/bin/mt + +if [ $# -lt 2 ]; then + usage + exit 1 +fi + +if [ -n "$1" ]; then + CHANGER=$1; +fi +COMMAND=$2 +SLOT=$3 +if [ -n "$4" ]; then + TAPE=$4 +fi +if [ -n "$5" ]; then + DRIVE=$5 +fi + +case ${COMMAND} in +unload) + if [ "${OFFLINE}" = yes ]; then + ${MT} -f ${TAPE} offline + fi + if [ -n "${SLEEP}" ]; then + sleep ${SLEEP} + fi + if [ -z "${SLOT}" ]; then + ${CHIO} -f ${CHANGER} return drive ${DRIVE} + else + ${CHIO} -f ${CHANGER} move drive ${DRIVE} slot $((${SLOT} - 1)) + fi + if [ $? -ne 0 ]; then + # Try to unload the cartridge to the first free slot. + FREE=`${CHIO} -f ${CHANGER} status slot | \ + sed -ne '/FULL/d;s/^slot *\([0-9]*\):.*/\1/p' | head -1` + if [ -n "${FREE}" ]; then + ${CHIO} -f ${CHANGER} move drive ${DRIVE} slot ${FREE} + else + exit 1 + fi + fi + ;; +load) + ${CHIO} -f ${CHANGER} move slot $((${SLOT} - 1)) drive ${DRIVE} + RET=$? + if [ -n "${SLEEP}" ]; then + sleep ${SLEEP} + fi + exit ${RET} + ;; +list) + if [ -z "${FAKE_BARCODES}" ]; then + ${CHIO} -f ${CHANGER} status -v slot | \ + sed -ne 's/^slot *\([0-9]*:\).*FULL.*voltag.*<\(.*\):.*/\1\2/p' | \ + awk -F: '{print $1 + 1 ":" $2 }' + else + if [ -f "${FAKE_BARCODES}" ]; then + grep -v -e "^#" -e "^$" < ${FAKE_BARCODES} + else + echo "${PROGNAME}: Barcode file ${FAKE_BARCODES} is missing" + exit 1 + fi + fi + ;; +loaded) + FREE=`${CHIO} -f ${CHANGER} status slot | \ + sed -ne '/FULL/d;s/^slot *\([0-9]*\):.*/\1/p' | \ + awk 'BEGIN { n = 0 } { n = $1 + 1 ; exit } END { print n }'` + ${CHIO} -f ${CHANGER} status -S drive | \ + sed -ne 's/^drive *'${DRIVE}':.*FULL.*source.*<[^0-9]*\([0-9]*\)>.*/\1/p' \ + | awk 'BEGIN { n = 0 } { n = ($1 == "") ? '${FREE}' : $1 + 1 } \ + END { print n }' + ;; +slots) + ${CHIO} -f ${CHANGER} status | grep -c "^slot " + ;; +*) + usage + ;; +esac diff --git a/Branch-2.2/bacula/examples/autochangers/solaris-mtx-changer b/Branch-2.2/bacula/examples/autochangers/solaris-mtx-changer new file mode 100755 index 0000000000..6f68595859 --- /dev/null +++ b/Branch-2.2/bacula/examples/autochangers/solaris-mtx-changer @@ -0,0 +1,157 @@ +#!/bin/bash +# +# /bin/sh isn't always compatible so use /bin/bash +# +# Bacula interface to mtx autoloader +# +# $Id$ +# +# If you set in your Device resource +# +# Changer Command = "path-to-this-script/mtx-changer %c %o %S %a %d" +# you will have the following input to this script: +# +# mtx-changer "changer-device" "command" "slot" "archive-device" "drive-index" +# $1 $2 $3 $4 $5 +# +# for example: +# +# mtx-changer /dev/sg0 load 1 /dev/nst0 0 (on a Linux system) +# +# If you need to an offline, refer to the drive as $4 +# e.g. mt -f $4 offline +# +# Many changers need an offline after the unload. Also many +# changers need a sleep 60 after the mtx load. +# +# N.B. If you change the script, take care to return either +# the mtx exit code or a 0. If the script exits with a non-zero +# exit code, Bacula will assume the request failed. +# + +# Sun sed/awk etc are not sufficient, working versions are in /usr/xpg4/bin +export PATH="/usr/local/bin:/usr/sfw/bin:/usr/xpg4/bin:/usr/bin" + +MTX=mtx + + +# +# The purpose of this function to wait a maximum +# time for the drive. It will +# return as soon as the drive is ready, or after +# waiting a maximum of 180 seconds. +# Note, this is very system dependent, so if you are +# not running on Linux, you will probably need to +# re-write it. +# +# If you have a FreeBSD system, you might want to change +# the $(seq 180) to $(jot 180) -- tip from Brian McDonald +# +wait_for_drive() { + for i in $(seq 180); do # Wait max 180 seconds + if ( mt -f $1 status | grep 0x0 ) >/dev/null 2>&1; then + #echo "Device $1 READY" + break + fi + #echo "Device $1 - not ready, retry ${i}..." + sleep 1 + done +} + + +if test $# -lt 2 ; then + echo "usage: mtx-changer ctl-device command slot archive-device drive" + echo " Insufficient number of arguments arguments given." + echo " Mimimum usage is first two arguments ..." + exit 1 +fi + +# Setup arguments +ctl=$1 +cmd="$2" +slot=$3 +device=$4 +# If drive not given, default to 0 +if test $# = 5 ; then + drive=$5 +else + drive=0 +fi + +# +# Check for special cases where only 2 arguments are needed, +# all others are a minimum of 3 +case $cmd in + loaded) + ;; + unload) + ;; + list) + ;; + slots) + ;; + *) + if test $# -lt 3; then + echo "usage: mtx-changer ctl-device command slot archive-device drive" + echo " Insufficient number of arguments arguments given." + echo " Mimimum usage is first three arguments ..." + exit 1 + fi + ;; +esac + + +case $cmd in + unload) +# echo "Doing mtx -f $ctl unload $slot $drive" +# +# enable the following line if you need to eject the cartridge + #mt -f $device offline + mt -f $device rewoffl + if test x$slot = x; then + ${MTX} -f $ctl unload + else + ${MTX} -f $ctl unload $slot $drive + fi + ;; + + load) +# echo "Doing mtx -f $ctl load $slot $drive" + ${MTX} -f $ctl load $slot $drive + rtn=$? +# +# Increase the sleep time if you have a slow device +# or remove the sleep and add the following: + #sleep 15 + wait_for_drive $device + exit $rtn + ;; + + list) +# echo "Requested list" + # Some tape changers lose track of their inventory (well, mine does) so + # do one before trying to get a status out of it. + ${MTX} -f $ctl inventory + ${MTX} -f $ctl status | grep " *Storage Element [0-9]*:.*Full" | awk "{print \$3 \$4}" | sed "s/Full *\(:VolumeTag=\)*//" +# Comment out the previous line and add a line here +# to print "fake" barcodes. +# +# If you have a VXA PacketLoader and the above does not work, try +# turning it off and enabling the following line. +# ${MTX} -f $ctl status | grep " *Storage Element [0-9]*:.*Full" | sed "s/*Storage Element //" | sed "s/Full :VolumeTag=//" + ;; + + loaded) + ${MTX} -f $ctl status >/tmp/mtx.$$ + rtn=$? + cat /tmp/mtx.$$ | grep "^Data Transfer Element $drive:Full" | awk "{print \$7}" + cat /tmp/mtx.$$ | grep "^Data Transfer Element $drive:Empty" | awk "{print 0}" + rm -f /tmp/mtx.$$ + exit $rtn + ;; + + slots) +# echo "Request slots" + ${MTX} -f $ctl status | grep " *Storage Changer" | awk "{print \$5}" + ;; +esac diff --git a/Branch-2.2/bacula/examples/backup-acls.txt b/Branch-2.2/bacula/examples/backup-acls.txt new file mode 100644 index 0000000000..8aa1f4ff5b --- /dev/null +++ b/Branch-2.2/bacula/examples/backup-acls.txt @@ -0,0 +1,22 @@ +From: Volker Sauer +To: =?ISO-8859-1?Q?Daniel_Ch=E9nard?= +CC: Bacula users +Subject: Re: [Bacula-users] Bacula and the ACL +Date: Tue, 20 Jan 2004 23:32:52 +0100 + +You could use a script like that to dump the acls to a file which you +could restore with "setfacl --restore=" in case of a restore. + + +#!/bin/bash + +BACKUP_DIRS="/foo /bar" + +STORE_ACL=/root/acl-backup +umask 077 + +for i in $BACKUP_DIRS; do + cd $i + /usr/bin/getfacl -R --skip-base . >$STORE_ACL/${i//\//_} +done + diff --git a/Branch-2.2/bacula/examples/backup-every-other-week.txt b/Branch-2.2/bacula/examples/backup-every-other-week.txt new file mode 100644 index 0000000000..b26a456abc --- /dev/null +++ b/Branch-2.2/bacula/examples/backup-every-other-week.txt @@ -0,0 +1,76 @@ + +From: Robert L Mathews +To: +Subject: [Bacula-users] Making Backups Run Every Other Week +Date: Wed, 13 Aug 2003 10:04:23 -0700 + +In case anyone is interested, here's a tip I came up with. + +My backup policy is such that I need backups to run every other week. I +have two separate "offsite" tape pools, and a backup is made to each of +them on alternating weeks. + +Bacula's scheduler currently doesn't handle "every two weeks", and using +something like "the first and third weeks for backup A, and the second +and fourth weeks for backup B" means there will be no backup done on the +fifth week if the month contains one. Scheduling a backup for the fifth +week doesn't help; it means that the same backup would sometimes run +twice in a row, which ruins the alternating week scheme. + +I first thought of poking around the code to make the scheduler support +"every two weeks", and I someday may still do so. However, I found an +easier way to do this is in the meantime: with a RunBeforeJob line. + +What I do is schedule both jobs to run every single week. Then the job +that runs my "Offsite Backup A" has this line: + + RunBeforeJob = "/etc/bacula/two_week_script 'July 6 2003'" + +And the job with my "Offsite Backup B" has this one: + + RunBeforeJob = "/etc/bacula/two_week_script 'July 13 2003'" + +And two_week_script is the following Perl script: + +---------------- + +#!/usr/bin/perl -w + +use strict; +use constant SECONDS_IN_WEEK => 86400 * 7; +use constant SECONDS_IN_TWO_WEEKS => SECONDS_IN_WEEK * 2; + +# Calculate the elapsed seconds since the starting date, +# which must be in a format that /bin/date can understand +# Note that this relies on the GNU "%s" date extension +my $start_date = shift; +$start_date = `/bin/date -d '$start_date' +'%s'`; +chomp $start_date; +my $time_since_start_date = time - $start_date; + +# Now take those seconds modulo the number of seconds in +# two weeks. If we're in the second half of the two week +# period, exit with an error to stop the Bacula job. If +# we're in the first half, the script will terminate normally +# and the Bacula job will run. +if ($time_since_start_date % SECONDS_IN_TWO_WEEKS + >= SECONDS_IN_WEEK) +{ + exit 1; +} + +---------------- + +The result is that the script cancels the job that should not be run that +week, while allowing the other job to continue. + +This idea could be trivially changed to support running every three +weeks, every two months, every prime number of days, etc. + +Anyway, just a tip in case anyone else needs to schedule things in a way +that the scheduler doesn't currently support. It's pretty obvious that +this is the right way to do it now, but I puzzled over it for a little +while before coming up with this. + +-- +Robert L Mathews, Tiger Technologies diff --git a/Branch-2.2/bacula/examples/backup-to-cdwriter.txt b/Branch-2.2/bacula/examples/backup-to-cdwriter.txt new file mode 100644 index 0000000000..c0f85112d0 --- /dev/null +++ b/Branch-2.2/bacula/examples/backup-to-cdwriter.txt @@ -0,0 +1,813 @@ +From: "Johan Decock" +To: bacula-users@lists.sourceforge.net +Subject: Re: [Bacula-users] cdwriter +Date: Fri, 30 Jan 2004 17:11:34 +0100 + +I thought it would be easy to find them in the archives. I'll post them +again. I changed some things in them anyway in the mean time. I also +include the Director config. Then you see how they are to be used in +Runbefore- and RunafterJobs + +I'm interested in any remarks or improvements you might have. (I'm +still getting started in shell scripting) + + +# +# Default Bacula Director Configuration file +# +# The only thing that MUST be changed is to add one or more +# file or directory names in the Include directive of the +# FileSet resource. +# +# For Bacula release 1.32b (14 Oct 2003) -- mandrake (FiveStar) +# +# You might also want to change the default email address +# from root to your address. See the "mail" and "operator" +# directives in the Messages resource. +# + +Director { # define myself + Name = tosfeb33-dir + DIRport = 9101 # where we listen for UA connections + QueryFile = "/etc/bacula/query.sql" + WorkingDirectory = "/var/bacula/working" + PidDirectory = "/var/run" + Maximum Concurrent Jobs = 1 + Password = "abis" # Console password + Messages = Standard +} + +Job { + Name = "Tosfeb31AllHDD" + Type = Backup + Level = Full + Client = tosfeb31-fd + FileSet = "Tosfeb31All" + Schedule = "Weekdays" + Messages = Standard + Pool = HDD + Storage = HDdrive + RunBeforeJob = "/etc/bacula/prepare_DVDspool /mnt/backupdaily 1700000" + Write Bootstrap = "/var/bacula/working/Tosfeb31All.bsr" + Priority = 10 +} + +Job { + Name = "Tosfeb31AllUSB" + Type = Backup + Level = Full + Client = tosfeb31-fd + FileSet = "Tosfeb31All" + Schedule = "WeeklyUSB" + Messages = Standard + Pool = USB + Storage = USBdrive + Write Bootstrap = "/var/bacula/working/Tosfeb31All.bsr" + Priority = 10 +} + +Job { + Name = "Tosfeb31EssentialDVD" + Type = Backup + Level = Full + Client = tosfeb31-fd + FileSet = "Tosfeb31Essential" + Schedule = "MonthlyDVD" + Messages = Standard + Pool = DVD + Storage = DVDdrive + RunBeforeJob = "/etc/bacula/prepare_DVDspool /mnt/backupdaily 4700000" + Write Bootstrap = "/var/bacula/working/Tosfeb31Essential.bsr" + RunAfterJob = "/etc/bacula/inventorize_volumes %v" + Priority = 10 +} + +Job { + Name = "Tosfeb31AllCompressedDVD" + Type = Backup + Level = Full + Client = tosfeb31-fd + FileSet = "Tosfeb31AllCompressed" + Messages = Standard + Pool = DVD + Storage = DVDdrive + RunBeforeJob = "/etc/bacula/prepare_DVDspool /mnt/backupdaily 4700000" + Write Bootstrap = "/var/bacula/working/Tosfeb31Essential.bsr" + RunAfterJob = "/etc/bacula/inventorize_volumes %v" + Priority = 10 +} + +Job { + Name = "Tosfeb32AllHDD" + Type = Backup + Level = Full + Client = tosfeb32-fd + FileSet = "Tosfeb32All" + Schedule = "Weekdays" + Messages = Standard + Pool = HDD + Storage = HDdrive + Write Bootstrap = "/var/bacula/working/Tosfeb32All.bsr" + Priority = 20 +} + +Job { + Name = "Tosfeb32AllUSB" + Type = Backup + Level = Full + Client = tosfeb32-fd + FileSet = "Tosfeb32All" + Schedule = "WeeklyUSB" + Messages = Standard + Pool = USB + Storage = USBdrive + Write Bootstrap = "/var/bacula/working/Tosfeb32All.bsr" + Priority = 10 +} + +Job { + Name = "Tosfeb32EssentialDVD" + Type = Backup + Level = Full + Client = tosfeb32-fd + FileSet = "Tosfeb32Essential" + Schedule = "MonthlyDVD" + Messages = Standard + Pool = DVD + Storage = DVDdrive + Write Bootstrap = "/var/bacula/working/Tosfeb32System.bsr" + RunAfterJob = "/etc/bacula/inventorize_volumes %v" + Priority = 20 +} + +#Job { +# Name = "Tosfeb30System" +# Type = Backup +# Level = Full +# Client = tosfeb30-fd +# FileSet = "Tosfeb30System" +# Schedule = "WeeklyUSB" +# Messages = Standard +# Pool = USB +# Storage = USBdrive +# Write Bootstrap = "/etc/bacula/working/Tosfeb32System.bsr" +# Priority = 20 +#} + +Job { + Name = "Tosfeb33SystemHDD" + Type = Backup + Level = Full + Client = tosfeb33-fd + FileSet = "Tosfeb33System" + Schedule = "Weekdays" + Messages = Standard + Pool = HDD + Storage = HDdrive + Write Bootstrap = "/var/bacula/working/Tosfeb33System.bsr" + Priority = 30 +} + +Job { + Name = "Tosfeb33SystemUSB" + Type = Backup + Level = Full + Client = tosfeb33-fd + FileSet = "Tosfeb33System" + Schedule = "WeeklyUSB" + Messages = Standard + Pool = USB + Storage = USBdrive + Write Bootstrap = "/var/bacula/working/Tosfeb33All.bsr" + Priority = 30 +} + +Job { + Name = "Tosfeb33EssentialDVD" + Type = Backup + Level = Full + Client = tosfeb33-fd + FileSet = "Tosfeb33Essential" + Schedule = "MonthlyDVD" + Messages = Standard + Pool = DVD + Storage = DVDdrive + Write Bootstrap = "/var/bacula/working/Tosfeb33Essential.bsr" + RunAfterJob = "/etc/bacula/inventorize_volumes %v" + Priority = 30 +} + +Job { + Name = "BackupCatalogHDD" + Type = Backup + Level = Full + Client = tosfeb33-fd + FileSet="Catalog" + Schedule = "Weekdays" + Storage = HDdrive + Messages = Standard + Pool = HDD + # This creates an ASCII copy of the catalog + RunBeforeJob = "/etc/bacula/make_catalog_backup -u bacula" + # This deletes the copy of the catalog + RunAfterJob = "/etc/bacula/delete_catalog_backup" + Write Bootstrap = "/var/bacula/working/BackupCatalog.bsr" + Priority = 90 # run after main backup +} + +Job { + Name = "BackupCatalogUSB" + Type = Backup + Level = Full + Client = tosfeb33-fd + FileSet="Catalog" + Schedule = "WeeklyUSB" + Storage = USBdrive + Messages = Standard + Pool = USB + # This creates an ASCII copy of the catalog + RunBeforeJob = "/etc/bacula/make_catalog_backup -u bacula" + # This writes the volume file to the proper USB device + RunAfterJob = "/etc/bacula/write_to_USB %v" +# RunAfterJob = "/etc/bacula/delete_catalog_backup" + Write Bootstrap = "/var/bacula/working/BackupCatalog.bsr" + Priority = 90 # run after main backup +} + +Job { + Name = "BackupCatalogDVD" + Type = Backup + Level = Full + Client = tosfeb33-fd + FileSet="Catalog" + Schedule = "MonthlyDVD" + Storage = DVDdrive + Messages = Standard + Pool = DVD + # This creates an ASCII copy of the catalog + RunBeforeJob = "/etc/bacula/make_catalog_backup -u bacula" + # This writes the volume file to a DVD + RunAfterJob = "/etc/bacula/write_to_DVD %v" + Write Bootstrap = "/var/bacula/working/BackupCatalog.bsr" + Priority = 90 # run after main backup +} + +# Standard Restore template, to be changed by Console program +Job { + Name = "RestoreFiles" + Type = Restore + Client = tosfeb33-fd + FileSet="Full Set" + Storage = HDdrive + Messages = Standard + Pool = HDD + Where = /tmp/bacula-restores +} + +# List of files to be backed up +FileSet { + Name = "Full Set" + Include = signature=MD5 portable=yes { +# +# Put your list of files here, one per line or include an +# external list with: +# +# > /var/bacula/volumes +done + +exit 0 + + + +write_to_DVD: + +#!/bin/bash +# +# shell script to copy DVD volume files from /mnt/backupdaily to DVD+/-R(W) + +# The last volume was not added to the inventory list yet, so we do that first +/etc/bacula/inventorize_volumes $1 + +supermount -m=/mnt/cdrom disable + +umount /mnt/cdrom + +# another shell script run as a RunAfterJob has been putting the volume names into a text file +# now we retrieve those names and write them to DVD + +# this awk command produces a space delimited list of the lines of the text file and assigns it to $lines + +lines=`awk '{print $1}' /var/bacula/volumes` + +# now we can iterate over those volume names + +let "count=1" +for i in $lines ; do + if [ $count -le 1 ] ; then + # When creating a DVD with growisofs one needs to use -Z the first time + echo "Writing first volume file" $count + growisofs -Z /dev/scd0 -R -J /mnt/backupdaily/$i + else + # and -M the for the next volume files + echo "Writing another volume file" $count + growisofs -M /dev/scd0 -R -J /mnt/backupdaily/$i + fi + let count="$count+1" +# sleep 5 + ls -al /mnt/cdrom +# sleep 5 +done + +ls -al /mnt/backupdaily +mount /mnt/cdrom +ls -al /mnt/cdrom +umount /mnt/cdrom + +#supermount -m=/mnt/cdrom enable + +# This is run as a RunAfterJob of the catalog backup. It already had a RunAfterJob, so we execute that here +/etc/bacula/delete_catalog_backup + +exit 0 + + + + +This last one is to write to removable USB-storage. + +write_to_USB + +#!/bin/bash +# +# shell script to finalize USB backup + +volumename=$1 +echo " Creating mount points, if they don't exist" +if ! [ -d /mnt/usbdrv ] ; then + mkdir /mnt/usbdrv +fi +if ! [ -d /mnt/usbdrv/bacula ] ; then + mkdir /mnt/usbdrv/bacula +fi +if ! [ -d /mnt/usbdrv/misc ] ; then + mkdir /mnt/usbdrv/misc +fi + #unmount all mount points related to USB + +echo " Making sure no USB devices are mounted" +umount /mnt/usbdrv +umount /mnt/usbdrv/bacula +umount /mnt/usbdrv/misc +umount /mnt/removable +umount /mnt/removable2 +umount /mnt/removable3 + + #determine which /dev/sd? contains the right USBVolume for this backup + +echo " Determining whether the right USB device containing our USBVolume is present physically" + +found=nothing +for i in sda sdb sdc; do + sd=$i"1" + echo " Trying with $sd" + mount /dev/$sd /mnt/usbdrv/bacula -t ext2 + ls -al /mnt/usbdrv/bacula + + if [ -f /mnt/usbdrv/bacula/$volumename ] ; then + found=/dev/$i + fi + + umount /mnt/usbdrv/bacula +done + +echo +echo " Found: $found containing $volumename " +echo +if [ $found != nothing ] ; then + # mount /mnt/usbdrv/bacula and /mnt/usbdrv/misc on /dev/sd?1 and /dev/sd?5 respectively + mount $found"1" /mnt/usbdrv/bacula -t ext2 + mount $found"5" /mnt/usbdrv/misc -t vfat + + # copy Ghost images of Windows system drives, the contents of /etc/bacula/* + # and a text file with restore instructions to /mnt/usbdrv/misc + + echo " Copying Ghost image of TOSFEB31 to /mnt/usbdrv/misc" + cp -v /mnt/Ghost/PROD/TOSFEB31/SYSTEMAG.GHO /mnt/usbdrv/misc + echo " Copying Ghost image of TOSFEB32 to /mnt/usbdrv/misc" + cp -v /mnt/Ghost/PROD/TOSFEB32/COFTF32.GHO /mnt/usbdrv/misc + echo " Copying /etc/bacula to /mnt/usbdrv/misc" + cp -Rfv /etc/bacula/ /mnt/usbdrv/misc + echo " Copying Restore instructions to /mnt/usbdrv/misc" + cp -v /etc/bacula/How_To_Restore.txt /mnt/usbdrv/misc + + # copy the current USBVolume to /mnt/usbdrv/bacula overwriting the previous volume file + echo + echo " Copying Bacula USB-volume to /mnt/usbdrv/bacula" + +# cp -fv /mnt/spool/$volumename /mnt/usbdrv/bacula + + # give some feedback about what was done + + echo + echo " Directory contents of /mnt/usbdrv/bacula" + ls -al /mnt/usbdrv/bacula + echo + echo " Directory contents of /mnt/usbdrv/misc" + ls -al /mnt/usbdrv/misc + + # unmount /mnt/usbdrv/bacula and /mnt/usbdrv/misc + echo + echo " Unmounting /mnt/usbdrv/... mount points" + umount /mnt/usbdrv/bacula + umount /mnt/usbdrv/misc + +else + # send emails if correct medium is not present +# /usr/sbin/smtp + echo "hello" +fi + +# This is run as a RunAfterJob of the catalog backup. It already had a +# RunAfterJob, so we execute that here + +/etc/bacula/delete_catalog_backup + diff --git a/Branch-2.2/bacula/examples/client-backup b/Branch-2.2/bacula/examples/client-backup new file mode 100755 index 0000000000..e488b6f70f --- /dev/null +++ b/Branch-2.2/bacula/examples/client-backup @@ -0,0 +1,15 @@ +#!/bin/sh +# +# A small script to start a Backup job from any Client machine +# +# You may need to add a full path and possibly the console.conf location +# +# Assume we are in the binary directory +# +JOB="NightlySave" +# +./console -c console.conf <output-file +# +use warnings; +use strict; + +my $in; +$in .= $_ while (<>); + +sub options { + return "Options { ".join('; ',split(/\s+/, shift)) . " } "; +} + +sub file_lines { + return join($/, map {" File = $_"} split(/\n\s*/, shift)); +} + +$in =~ s/Include\s*=\s*((?:\w+=\w+\s+)*){\s*((?:.*?\n)+?)\s*}/ + "Include { " . + ( $1 ? options($1) : '' ) . "\n" . + file_lines($2) . + "\n }" /eg; + +$in =~ s/Exclude\s*=\s*{\s*}/ + "Exclude { }"/eg; + +$in =~ s/Exclude\s*=\s*{\s*((?:.*?\n)+?)\s*}/ + "Exclude {\n" . file_lines($1) . "\n }"/eg; + +print $in; diff --git a/Branch-2.2/bacula/examples/conf/gnome-console.conf b/Branch-2.2/bacula/examples/conf/gnome-console.conf new file mode 100644 index 0000000000..f5e70f153e --- /dev/null +++ b/Branch-2.2/bacula/examples/conf/gnome-console.conf @@ -0,0 +1,10 @@ +# +# Kern's Production Bacula User Agent Configuration File +# + +Director { + Name = HeadMan + DIRport = 9101 + address = "localhost" + Password = "" # Console password +} diff --git a/Branch-2.2/bacula/examples/conf/kernsconfig b/Branch-2.2/bacula/examples/conf/kernsconfig new file mode 100755 index 0000000000..c8edf8918e --- /dev/null +++ b/Branch-2.2/bacula/examples/conf/kernsconfig @@ -0,0 +1,17 @@ +#!/bin/sh +# +# This is Kern's configure script for a test Bacula +# +CFLAGS="-g -O2 -Wall" ./configure \ + --sbindir=$HOME/bacula/bin \ + --sysconfdir=$HOME/bacula/bin \ + --with-pid-dir=$HOME/bacula/bin/working \ + --with-subsys-dir=$HOME/bacula/bin/working \ + --enable-gnome \ + --enable-smartalloc \ + --with-mysql=$HOME/mysql \ + --with-working-dir=$HOME/bacula/working \ + --with-dump-email=$USER \ + --with-job-email=$USER + +exit 0 diff --git a/Branch-2.2/bacula/examples/conf/m4.Makefile b/Branch-2.2/bacula/examples/conf/m4.Makefile new file mode 100644 index 0000000000..38b3f4725e --- /dev/null +++ b/Branch-2.2/bacula/examples/conf/m4.Makefile @@ -0,0 +1,29 @@ +ETCDIR=/opt/bacula/etc +M4=/usr/ccs/bin/m4 +DIR=/opt/bacula/sbin/bacula-dir +FD=/opt/bacula/sbin/bacula-fd +SD=/opt/bacula/sbin/bacula-sd +BCON=/opt/bacula/sbin/bconsole + +all: $(ETCDIR)/bacula-dir.conf $(ETCDIR)/bacula-sd.conf \ + $(ETCDIR)/bacula-fd.conf $(ETCDIR)/bconsole.conf + +$(ETCDIR)/bacula-dir.conf: bacula-dir.conf bacula-defs.m4 + $(M4) bacula-dir.conf >$(ETCDIR)/bacula-dir.tmp && \ + $(DIR) -t -c $(ETCDIR)/bacula-dir.tmp && \ + mv $(ETCDIR)/bacula-dir.tmp $(ETCDIR)/bacula-dir.conf + +$(ETCDIR)/bacula-sd.conf: bacula-sd.conf bacula-defs.m4 + $(M4) bacula-sd.conf >$(ETCDIR)/bacula-sd.tmp && \ + $(SD) -t -c $(ETCDIR)/bacula-sd.tmp && \ + mv $(ETCDIR)/bacula-sd.tmp $(ETCDIR)/bacula-sd.conf + +$(ETCDIR)/bacula-fd.conf: bacula-fd.conf bacula-defs.m4 + $(M4) bacula-fd.conf >$(ETCDIR)/bacula-fd.tmp && \ + $(FD) -t -c $(ETCDIR)/bacula-fd.tmp && \ + mv $(ETCDIR)/bacula-fd.tmp $(ETCDIR)/bacula-fd.conf + +$(ETCDIR)/bconsole.conf: bconsole.conf bacula-defs.m4 + $(M4) bconsole.conf >$(ETCDIR)/bconsole.tmp && \ + $(BCON) -t -c $(ETCDIR)/bconsole.tmp && \ + mv $(ETCDIR)/bconsole.tmp $(ETCDIR)/bconsole.conf diff --git a/Branch-2.2/bacula/examples/conf/m4.additions b/Branch-2.2/bacula/examples/conf/m4.additions new file mode 100644 index 0000000000..e3acdb4e7f --- /dev/null +++ b/Branch-2.2/bacula/examples/conf/m4.additions @@ -0,0 +1,43 @@ +From: Marc Schoechlin +To: Peter Eriksson +Cc: bacula-users@lists.sourceforge.net +Subject: Re: [Bacula-users] RE: Feature Request : includes for config-files + +Hi ! + +On Fri, May 21, 2004 at 11:24:13AM +0200, Peter Eriksson wrote: + +> > I think that is the 99%-solution for this problem - +> > but I think many users would be happy with a 90%-solution, which +> > allows to store configuration-data in distributed files. +> +> Or you could do as I just did - generate the configuration +> files using a Makefile and the m4 macro processor... That way you +> don't have to reinvent the wheel again inside Bacula but can delegate +> the tasks to external programs. +> +> [See the attached files for details. They can be expanded +> a lot though, it's just a beginning] + +Many thanks for the files! + +I adopted this way now - and it works with good results :-) + +The different client-definitions can now be placed on distributed +locations. + +Look at the make-target below : +-- +$(ETCDIR)/bacula-dir.conf: bacula-dir.conf bacula-defs.m4 + cat bacula-dir.conf > $(ETCDIR)/bacula-dir.conf.tmp && \ + $(FIND) $(CUSTOMERS) -name "*.cfg" -exec cat {} >> $(ETCDIR)/bacula-dir.conf.tmp \; && \ + $(M4) $(ETCDIR)/bacula-dir.conf.tmp >$(ETCDIR)/bacula-dir.tmp && \ + $(DIR) -t -c $(ETCDIR)/bacula-dir.tmp && \ + mv $(ETCDIR)/bacula-dir.tmp $(ETCDIR)/bacula-dir.conf +-- + + +Best regards + +Marc Schoechlin + diff --git a/Branch-2.2/bacula/examples/conf/m4.bacula-dir.conf b/Branch-2.2/bacula/examples/conf/m4.bacula-dir.conf new file mode 100644 index 0000000000..14699c8364 --- /dev/null +++ b/Branch-2.2/bacula/examples/conf/m4.bacula-dir.conf @@ -0,0 +1,364 @@ +# bacula-dir.conf +# +# Default Bacula Director Configuration file +# +# WARNING: +# This file is generated from /opt/lysator/etc/bacula/bacula-dir.conf +# Edit the source file and then run 'make'. +# + +include(bacula-defs.m4) + +Director { # define myself + Name = Baccus + DIRport = 9101 # where we listen for UA connections + QueryFile = "/opt/bacula/etc/query.sql" + WorkingDirectory = "/var/bacula/working" + PidDirectory = "/var/run" + Maximum Concurrent Jobs = 10 + Password = "djUGGqG0ckdbbTp0J0cAnK6FqZC5YX5i6" # Console password + Messages = Standard +} + + +# Generic catalog service +Catalog { + Name = MyCatalog + dbname = bacula; user = bacula; password = "" +} + + + +JobDefs { + Name = "DefaultJob" + Type = Backup + Level = Incremental + Schedule = "WeeklyCycle" + Storage = "DLT-0" + Messages = Standard + Spool Data = yes + Pool = Default + Max Start Delay = 20h + Priority = 10 +} + + + +JobDefs { + Name = "InservitusJob" + Type = Backup + Level = Incremental + Schedule = "WeeklyCycle" + Storage = "DLT-1" + Messages = Standard + Spool Data = yes + Pool = Inservitus + Max Start Delay = 20h + Priority = 10 +} + +JobDefs { + Name = "LysdiskJob" + Type = Backup + Level = Incremental + Schedule = "WeeklyCycle" + Storage = "DLT-2" + Messages = Standard + Spool Data = yes + Pool = Lysdisk + Max Start Delay = 20h + Priority = 10 +} + +JobDefs { + Name = "ShermanJob" + Type = Backup + Level = Incremental + Schedule = "WeeklyCycle" + Storage = "DLT-3" + Messages = Standard + Spool Data = yes + Pool = Sherman + Max Start Delay = 20h + Priority = 10 +} + +# Backup the catalog database (after the nightly save) +Job { + Name = "BackupCatalog" + Client = Baccus + JobDefs = "DefaultJob" + Level = Full + FileSet="Catalog" + Schedule = "WeeklyCycleAfterBackup" + # This creates an ASCII copy of the catalog + RunBeforeJob = "/opt/bacula/etc/make_catalog_backup -u bacula" + # This deletes the copy of the catalog + RunAfterJob = "/opt/bacula/etc/delete_catalog_backup" + Write Bootstrap = "/var/bacula/working/BackupCatalog.bsr" + Priority = 11 # run after main backup +} + +# Standard Restore template, to be changed by Console program +Job { + Name = "Restore" + Type = Restore + Client = Baccus + FileSet="Baccus" + Storage = "DLT-0" + Pool = Default + Messages = Standard + Where = /tmp/bacula-restores +} + + +# Clients to backup -------------------------------------------------- + +#stalingrad +#hanna +#venom +#klorin +#britney +#sherman +#inservitus +#tokaimura +#u137 + +#elfwood +#hal +#sten +#sirius (skippa? Networkerservern...) + + +CLIENT(Baccus, baccus.ifm.liu.se, DefaultJob) +FileSet { + Name = "Baccus" + Include = signature=MD5 { + / + /usr + /var + /opt + } + + Exclude = { + /proc /tmp /var/tmp /devices /etc/mnttab /dev/fd /var/run + /export + } +} + + + +CLIENT(Stalingrad, stalingrad.lysator.liu.se, DefaultJob) +FileSet { + Name = "Stalingrad" + Include = signature=MD5 { + / + /cvsroot + } + Exclude = { + /proc /tmp /var/tmp /etc/mnttab /dev/fd /var/run /dev/shm + } +} + + + +CLIENT(Hanna, hanna.lysator.liu.se, DefaultJob) +FileSet { + Name = "Hanna" + Include = signature=MD5 { + / + /var + /local + /export/hanna + } + Exclude = { + /proc /tmp /var/tmp /devices /etc/mnttab /dev/fd /var/run + /export/hanna/mirror + /export/hanna/ftp/mirror + } +} + + +CLIENT(Venom, venom.lysator.liu.se, DefaultJob) +FileSet { + Name = "Venom" + Include = signature=MD5 { + / + /clone/dsk1 + /clone/dsk2 + /export/dsk1 + /export/dsk2 + } + Exclude = { + /proc /tmp /var/tmp /devices /etc/mnttab /dev/fd /var/run + } +} + + +CLIENT(Klorin, klorin.lysator.liu.se, DefaultJob) +FileSet { + Name = "Klorin" + Include = signature=MD5 { + / + /export/mdsk1 + } + Exclude = { + /proc /tmp /var/tmp /devices /etc/mnttab /dev/fd /var/run + } +} + + +CLIENT(Britney, britney.lysator.liu.se, DefaultJob) +FileSet { + Name = "Britney" + Include = signature=MD5 { + / + /export/dsk1 + /export/oldroot + /export/lysdisk1 + /export/lysdisk3 + /export/lysdisk4 + /export/lysdisk6 + /export/lysdisk7 + /export/lysdisk8 + /export/lysdisk9 + /export/lysdisk11 + } + Exclude = { + /proc /tmp /var/tmp /devices /etc/mnttab /dev/fd /var/run + } +} + + + +CLIENT(Sherman, sherman.lysator.liu.se, DefaultJob) +FileSet { + Name = "Sherman" + Include = signature=MD5 { + / + /web + /boot + /var/opt/mysql + } + Exclude = { + /proc /tmp /var/tmp /etc/mnttab /dev/fd /var/run + } +} + + + +CLIENT(U137, u137.lysator.liu.se, DefaultJob) +FileSet { + Name = "U137" + Include = signature=MD5 { + / + /export/dsk1 + /export/dsk2 + } + Exclude = { + /proc /tmp /var/tmp /etc/mnttab /dev/fd /var/run + } +} + + +CLIENT(Tokaimura, tokaimura.lysator.liu.se, DefaultJob) +FileSet { + Name = "Tokaimura" + Include = signature=MD5 { + / + /usr + /var + /opt + /export/mdsk + } + Exclude = { + /proc /tmp /var/tmp /devices /etc/mnttab /dev/fd /var/run + } +} + + +CLIENT(Inservitus, inservitus.lysator.liu.se, InservitusJob) +FileSet { + Name = "Inservitus" + Include = signature=MD5 { + / + /var + /export + /export/d1 + /export/d2 + /export/d3 + /export/home + } + Exclude = { + /proc /tmp /var/tmp /devices /etc/mnttab /dev/fd /var/run + /export/snapshot + /snapshot + } +} + + + +# +# When to do the backups, full backup on first sunday of the month, +# differential (i.e. incremental since full) every other sunday, +# and incremental backups other days +Schedule { + Name = "WeeklyCycle" + Run = Full 1st sun at 1:05 + Run = Differential 2nd-5th sun at 1:05 + Run = Incremental mon-sat at 1:05 +} + +# This schedule does the catalog. It starts after the WeeklyCycle +Schedule { + Name = "WeeklyCycleAfterBackup" + Run = Full sun-sat at 1:10 +} + +# This is the backup of the catalog +FileSet { + Name = "Catalog" + Include = signature=MD5 { + /var/bacula/working/bacula.sql + } +} + + +STORAGE(File-0, File, baccus.ifm.liu.se) +STORAGE(DLT-0, DLT7000, baccus.ifm.liu.se) +STORAGE(DLT-1, DLT7000, baccus.ifm.liu.se) +STORAGE(DLT-2, DLT7000, baccus.ifm.liu.se) +STORAGE(DLT-3, DLT7000, baccus.ifm.liu.se) +STORAGE(DLT-4, DLT7000, baccus.ifm.liu.se) +STORAGE(DLT-5, DLT7000, baccus.ifm.liu.se) + + + +# Reasonable message delivery -- send most everything to email address +# and to the console +Messages { + Name = Standard +# +# NOTE! If you send to two email or more email addresses, you will need +# to replace the %r in the from field (-f part) with a single valid +# email address in both the mailcommand and the operatorcommand. +# + mailcommand = "/opt/bacula/sbin/bsmtp -h ifm.liu.se -f \"\(Bacula\) bacula@ifm.liu.se\" -s \"Bacula: %t %e of %c %l\" %r" + operatorcommand = "/opt/bacula/sbin/bsmtp -h ifm.liu.se -f \"\(Bacula\) bacula@ifm.liu.se\" -s \"Bacula: Intervention needed for %j\" %r" + mail = peter@ifm.liu.se,backup-admin@lysator.liu.se = all, !skipped + operator = peter@ifm.liu.se,backup-admin@lysator.liu.se = mount + console = all, !skipped, !saved +# +# WARNING! the following will create a file that you must cycle from +# time to time as it will grow indefinitely. However, it will +# also keep all your messages if they scroll off the console. +# + append = "/var/bacula/working/log" = all, !skipped +} + + +# Define Pools -------------------------------------- +POOL(Default) +POOL(Inservitus) +POOL(Sherman) +POOL(Lysdisk) diff --git a/Branch-2.2/bacula/examples/conf/m4.bacula-fd.conf b/Branch-2.2/bacula/examples/conf/m4.bacula-fd.conf new file mode 100644 index 0000000000..070bce5a72 --- /dev/null +++ b/Branch-2.2/bacula/examples/conf/m4.bacula-fd.conf @@ -0,0 +1,31 @@ +# bacula-fd.conf +# +# Default Bacula File Daemon Configuration file +# +# WARNING: +# This file is generated from /opt/lysator/etc/bacula/bacula-dir.conf +# Edit the source file and then run 'make'. + +# +# List Directors who are permitted to contact this File daemon +# +Director { + Name = Baccus + Password = "ilF0PZoICjQ60R3E3dks08Rq36KK8cDGJUAaW" +} + +# +# "Global" File daemon configuration specifications +# +FileDaemon { # this is me + Name = Baccus + FDport = 9102 # where we listen for the director + WorkingDirectory = /var/bacula/working + Pid Directory = /var/run +} + +# Send all messages except skipped files back to Director +Messages { + Name = Standard + director = Baccus = all, !skipped +} diff --git a/Branch-2.2/bacula/examples/conf/m4.bacula-sd.conf b/Branch-2.2/bacula/examples/conf/m4.bacula-sd.conf new file mode 100644 index 0000000000..57e65ec416 --- /dev/null +++ b/Branch-2.2/bacula/examples/conf/m4.bacula-sd.conf @@ -0,0 +1,152 @@ +# bacula-sd.conf +# +# Default Bacula Storage Daemon Configuration file +# +# WARNING: +# This file is generated from /opt/lysator/etc/bacula/bacula-dir.conf +# Edit the source file and then run 'make'. +# + +Storage { # definition of myself + Name = Baccus + SDPort = 9103 # Director's port + WorkingDirectory = "/var/bacula/working" + Pid Directory = "/var/run" + Maximum Concurrent Jobs = 20 +} + +# +# List Directors who are permitted to contact Storage daemon +# +Director { + Name = Baccus + Password = "KLUwcp1ZTeIc0x265UPrpWW28t7d7cRXmhOqyHxRr" +} + +# +# Devices supported by this Storage daemon +# To connect, the Director's bacula-dir.conf must have the +# same Name and MediaType. +# + +Device { + Name = File-0 + Media Type = File + Archive Device = /var/bacula/storage/file-0 + LabelMedia = yes; # lets Bacula label unlabeled media + Random Access = Yes; + AutomaticMount = yes; # when device opened, read it + RemovableMedia = no; + AlwaysOpen = no; +} + +Device { + Name = DLT-0 + Media Type = DLT7000 + Archive Device = /dev/rmt/0cbn + AutomaticMount = yes; # when device opened, read it + AlwaysOpen = yes; + RemovableMedia = yes; + RandomAccess = no; + Autochanger = yes; + Changer Device = /dev/scsi/changer/c1t0d0 + Changer Command = "/opt/bacula/etc/mtx-changer %c %o %S %a %d" + Drive Index = 0 + Maximum Spool Size = 4gb + Maximum Job Spool Size = 1gb + Spool Directory = /var/bacula/spool/dlt-0 +} + +Device { + Name = DLT-1 + Media Type = DLT7000 + Archive Device = /dev/rmt/1cbn + AutomaticMount = yes; # when device opened, read it + AlwaysOpen = yes; + RemovableMedia = yes; + RandomAccess = no; + Autochanger = yes; + Changer Device = /dev/scsi/changer/c1t0d0 + Changer Command = "/opt/bacula/etc/mtx-changer %c %o %S %a %d" + Drive Index = 1 + Maximum Spool Size = 2gb + Maximum Job Spool Size = 1gb + Spool Directory = /var/bacula/spool/dlt-1 +} + +Device { + Name = DLT-2 + Media Type = DLT7000 + Archive Device = /dev/rmt/2cbn + AutomaticMount = yes; # when device opened, read it + AlwaysOpen = yes; + RemovableMedia = yes; + RandomAccess = no; + Autochanger = yes; + Changer Device = /dev/scsi/changer/c1t0d0 + Changer Command = "/opt/bacula/etc/mtx-changer %c %o %S %a %d" + Drive Index = 2 + Maximum Spool Size = 2gb + Maximum Job Spool Size = 1gb + Spool Directory = /var/bacula/spool/dlt-2 +} + +Device { + Name = DLT-3 + Media Type = DLT7000 + Archive Device = /dev/rmt/3cbn + AutomaticMount = yes; # when device opened, read it + AlwaysOpen = yes; + RemovableMedia = yes; + RandomAccess = no; + Autochanger = yes; + Changer Device = /dev/scsi/changer/c1t0d0 + Changer Command = "/opt/bacula/etc/mtx-changer %c %o %S %a %d" + Drive Index = 3 + Maximum Spool Size = 2gb + Maximum Job Spool Size = 1gb + Spool Directory = /var/bacula/spool/dlt-3 +} + +Device { + Name = DLT-4 + Media Type = DLT7000 + Archive Device = /dev/rmt/4cbn + AutomaticMount = yes; # when device opened, read it + AlwaysOpen = yes; + RemovableMedia = yes; + RandomAccess = no; + Autochanger = yes; + Changer Device = /dev/scsi/changer/c1t0d0 + Changer Command = "/opt/bacula/etc/mtx-changer %c %o %S %a %d" + Drive Index = 4 + Maximum Spool Size = 2gb + Maximum Job Spool Size = 1gb + Spool Directory = /var/bacula/spool/dlt-4 +} + +Device { + Name = DLT-5 + Media Type = DLT7000 + Archive Device = /dev/rmt/5cbn + AutomaticMount = yes; # when device opened, read it + AlwaysOpen = yes; + RemovableMedia = yes; + RandomAccess = no; + Autochanger = yes; + Changer Device = /dev/scsi/changer/c1t0d0 + Changer Command = "/opt/bacula/etc/mtx-changer %c %o %S %a %d" + Drive Index = 5 + Maximum Spool Size = 2gb + Maximum Job Spool Size = 1gb + Spool Directory = /var/bacula/spool/dlt-5 +} + +# +# Send all messages to the Director, +# mount messages also are sent to the email address +# +Messages { + Name = Standard + director = Baccus = all +} diff --git a/Branch-2.2/bacula/examples/conf/m4.email b/Branch-2.2/bacula/examples/conf/m4.email new file mode 100644 index 0000000000..7e8d5804f7 --- /dev/null +++ b/Branch-2.2/bacula/examples/conf/m4.email @@ -0,0 +1,28 @@ +From: Peter Eriksson +Reply-To: Peter Eriksson +Subject: Re: [Bacula-users] RE: Feature Request : includes for config-files +To: bacula-users@lists.sourceforge.net + +Marc Schoechlin writes: + +> I think that is the 99%-solution for this problem - +> but I think many users would be happy with a 90%-solution, which +> allows to store configuration-data in distributed files. + +Or you could do as I just did - generate the configuration +files using a Makefile and the m4 macro processor... That way you +don't have to reinvent the wheel again inside Bacula but can delegate +the tasks to external programs. + +[See the attached files for details. They can be expanded +a lot though, it's just a beginning] + +-- +Peter Eriksson Phone: +46 13 28 2786 +Computer Systems Manager/BOFH Cell/GSM: +46 705 18 2786 +Physics Department, Linköping University Room: Building F, F203 +SE-581 83 Linköping, Sweden http://www.ifm.liu.se/~peter + +See the files bacula-defs.m4 m4.bacula-dir.conf m4.bacula-fd.conf and +m4.bacula-sd.conf in this directory for the attachments to this +email. diff --git a/Branch-2.2/bacula/examples/conf/many-clients.txt b/Branch-2.2/bacula/examples/conf/many-clients.txt new file mode 100644 index 0000000000..d8dba6638c --- /dev/null +++ b/Branch-2.2/bacula/examples/conf/many-clients.txt @@ -0,0 +1,106 @@ +From: Dan Langille +To: bacula-devel@lists.sourceforge.net +Subject: [Bacula-devel] script for creating many client FDs +Date Tue, 2 Dec 2003 19:41:28 -0500 (EST) + +I created this script which may be useful to others. If you have to +create a bacula-fd.conf file for more than a few clients, it can become +time consuming, not to mention error prone. + +Here is the usage: + +$ sh client-build.sh +client-build.sh : usage client-build.sh DIRNAME DIRPASSWD CLIENTNAME +[CLIENTNAME...] + +Where DIRNAME is the director name which can contact this client + PASSWD is the passwd to be supplied by the director + CLIENTNAME is the name of the client file daemon + +The script creates ./tmp and places all output there. + +bacula-fd.conf.in is the template it uses for creating the client scripts +and it must reside in the same directory as the script. + +Enjoy +-- +Dan Langille - http://www.langille.org/ + +==== bacula-fd.conf.in template ====== +# +# Default Bacula File Daemon Configuration file +# +# For Bacula release 1.32b (14 Oct 2003) -- freebsd 4.8-STABLE +# +# There is not much to change here except perhaps the +# File daemon Name to +# + +# +# List Directors who are permitted to contact this File daemon +# +Director { + Name = @dir-name@ + Password = "@dir-password@" +} + +# +# "Global" File daemon configuration specifications +# +FileDaemon { + Name = @client-name@ + FDport = 9102 # where we listen for the director + WorkingDirectory = /var/db/bacula + Pid Directory = /var/run +} + +# Send all messages except skipped files back to Director +Messages { + Name = Standard + director = undef-dir = all, !skipped +} +=== end bacula-fd.conf.in template ======== + + +==== client-build.sh =========== +#!/bin/sh +# +# Copyright 2003 Dan Langille +# +# Use as you wish, but keep retain this copyright notice. +# Please forward improvements. +# +# usage client-build.sh DIRNAME DIRPASSWD CLIENTNAME [CLIENTNAME...] +# +# Where DIRNAME is the director name which can contact this client +# PASSWD is the passwd to be supplied by the director +# CLIENTNAME is the name of the client file daemon +# +# This script creates ./tmp and places all output there. +# +# bacula-fd.conf.in is the template it uses for creating the client scripts. +# + + +if [ $# -lt 3 ] +then + echo $0 : usage $0 DIRNAME DIRPASSWD CLIENTNAME [CLIENTNAME...] + exit 1 +fi + +mkdir -p ./tmp + +DIRNAME=$1 +DIRPASSWD=$2 + +shift 2 + +echo creating stuff for $DIRNAME with password $DIRPASSWD + +while [ $# -gt 0 ] ; do + CLIENT=$1 + shift + echo "creating config for " $CLIENT + sed "s/@dir-name@/undef-dir/;s/@dir-password@/password/;s/@client-name@/$CLIENT/" bacula-fd.conf.in > ./tmp/$CLIENT-bacula-fd.conf +done +=== end client-build.sh =============== diff --git a/Branch-2.2/bacula/examples/database/bacula-sqlite_2_mysqldump.sh b/Branch-2.2/bacula/examples/database/bacula-sqlite_2_mysqldump.sh new file mode 100755 index 0000000000..58f4dbf08f --- /dev/null +++ b/Branch-2.2/bacula/examples/database/bacula-sqlite_2_mysqldump.sh @@ -0,0 +1,23 @@ +#! /bin/sh +# +# bacula-sqlite_2_mysqldump.sh +# +# Convert a Bacula 1.36.2 Sqlite database to MySQL +# Originally Written by Nic Bellamy , Sept/Oct 2003. +# Modified by Silas Bennett , April 2006 for use with Bacula 1.36.2 +# + +if [ $1 = '-h' ] || [ $1 = '--help' ] ; then + echo `basename "$0"`" Usage:" + echo " "`basename $0`" takes a ASCII bacula sqlite database dump as an argument," + echo " and writes an SQL dump suitable for use with MySQL to STDOUT." + echo + echo " Example Use: "`basename $0`" bacula.sqlite.sql > bacula.mysql.sql" + echo " Example Use: "cat bacula.sqlite.sql | `basename $0`" - | mysql -p -u baculadb" + exit +fi + +# If $1 is '-' then cat will read /dev/stdin +cat $1 | +awk '/^INSERT INTO / && $3 != "NextId" && $3 != "Version" { print $0 }' | +sed '/^INSERT INTO [a-zA-Z]* VALUES(/s/(NULL)/(0)/g ; /^INSERT INTO [a-zA-Z]* VALUES(/s/(NULL,/(0,/g ; /^INSERT INTO [a-zA-Z]* VALUES(/s/,NULL,/,0,/g ; /^INSERT INTO [a-zA-Z]* VALUES(/s/,NULL,/,0,/g ; /^INSERT INTO [a-zA-Z]* VALUES(/s/,NULL)/,0)/g' diff --git a/Branch-2.2/bacula/examples/database/postgresql-dump.txt b/Branch-2.2/bacula/examples/database/postgresql-dump.txt new file mode 100644 index 0000000000..7c82c3f17e --- /dev/null +++ b/Branch-2.2/bacula/examples/database/postgresql-dump.txt @@ -0,0 +1,42 @@ +To: bacula-users@lists.sourceforge.net +Subject: Re: [Bacula-users] backup postgresql databases +From: Valtteri Vuorikoski +Date: 11 Mar 2004 14:56:13 +0000 + +Mathieu Arnold writes: + +> I was wondering if someone already had some script, or ways of doings scripts +> to backup (and maybe restore) pgsql databases. I'm balancing between taking a +> snapshot of the database directory and backuping that, dumping the datas into +> .sql.gz files, into .tgz files, or into a pipe letting bacula deal with the +> compression. + +Here's a quick shell script hack to dump all databases into separate tars +with pg_dump: + +do_pgsql() { + mkdir $dump_pg || exit 3 + psql -Atc 'select datname from pg_database where datistemplate=false' template1 postgres > $dump_pg/databases || exit 4 + + touch $dump_pg/dump.log + for d in `cat $dump_pg/databases` ; do + pg_dump -U postgres -Ft "$d" > $dump_pg/"$d.tar" >> $dump_pg/dump.log 2>&1 + [ "$retval" -eq 0 ] && retval=$? + done +} + +Set the variable dump_pg to point to the directly where you want the dump. Then +back it up and delete when you're done. + +You could probably use fs snapshots if you LOCK EXCLUSIVE all tables and CHECKPOINT +the transaction log, but as postgresql's relationship between files and tables is +not very transparent (such as with mysql), I think particularly partial restores +would end up being rather problematic. + +Backup/restore capability does not really appear to be postgresql's +forte, unfortunately. + +-- + Valtteri Vuorikoski + MagentaSites Oy + diff --git a/Branch-2.2/bacula/examples/database/postgresql-mysql-dump.txt b/Branch-2.2/bacula/examples/database/postgresql-mysql-dump.txt new file mode 100644 index 0000000000..68963f7aac --- /dev/null +++ b/Branch-2.2/bacula/examples/database/postgresql-mysql-dump.txt @@ -0,0 +1,99 @@ +From: Mathieu Arnold +To: bacula-users@lists.sourceforge.net +Subject: Re: [Bacula-users] backup postgresql databases +Date: Fri, 12 Mar 2004 22:31:58 +0100 + ++-Le 11/03/2004 15:20 +0100, Mathieu Arnold a dit : +| Hi, +| +| I was wondering if someone already had some script, or ways of doings +| scripts to backup (and maybe restore) pgsql databases. I'm balancing +| between taking a snapshot of the database directory and backuping that, +| dumping the datas into .sql.gz files, into .tgz files, or into a pipe +| letting bacula deal with the compression. +| +| Any ideas ? :) + +Thanks to all ppl I got answers from (many used awfully hard way to get +databases), I cooked up my scripts (I needed mysql too), and here they are : + +-------------------------------------------- +#!/bin/sh + +export TMPDIR="/usr/tmp/" +export TEMP="/usr/tmp/" +export SAVE="/usr/tmp/dumps/" +export LANG="C" + +pg_user=pgsql +pg_dbuser=pgsql +pg_template=template1 +exclude=template +host=plouf + +sed=/usr/bin/sed +pg_dump=/usr/local/bin/pg_dump +pg_dumpall=/usr/local/bin/pg_dumpall +psql=/usr/local/bin/psql + +gzip="| /usr/bin/gzip -nc9" +gzext=".gz" + +if [ ! -d $SAVE ] +then + mkdir $SAVE +else + rm -f $SAVE/$host-pgsql* +fi + +su - $pg_user -c "$pg_dumpall -g $gzip" > $SAVE/$host-pgsql$gzext + +for i in $($psql -l $pg_template $pg_dbuser|sed -e '1,4d' -e +'/rows)$/,/\eof/d' -e '/template/d' -e 's/ \([^ ]*\).*$/\1/') +do + su - $pg_user -c "$pg_dump -c -F p $i $gzip" > $SAVE/$host-pgsql-$i$gzext +done +-------------------------------------------- + +For those using complicate selects to get databases list, I advise psql -l +:) + +and for mysql : + +-------------------------------------------- +#!/bin/sh + +export TMPDIR="/usr/tmp/" +export TEMP="/usr/tmp/" +export SAVE="/usr/tmp/dumps/" +export LANG="C" + +my_user=root +my_passwd=password +host=plouf + +sed=/usr/bin/sed +mysql=/usr/local/bin/mysql +mysqldump=/usr/local/bin/mysqldump + +gzip="/usr/bin/gzip -nc9" +gzext=".gz" + +if [ ! -d $SAVE ] +then + mkdir $SAVE +else + rm -f $SAVE/$host-mysql* +fi + +for i in $($mysql -u $my_user -p$my_passwd -e 'show databases'|$sed '1d') +do + $mysqldump -u $my_user -p$my_passwd $i | $gzip > $SAVE/$host-mysql-$i$gzext +done +-------------------------------------------- + +maybe those scripts will save some ppl some time :) + +-- +Mathieu Arnold + diff --git a/Branch-2.2/bacula/examples/database/sqlite2pgsql b/Branch-2.2/bacula/examples/database/sqlite2pgsql new file mode 100755 index 0000000000..7423f3d594 --- /dev/null +++ b/Branch-2.2/bacula/examples/database/sqlite2pgsql @@ -0,0 +1,146 @@ +#!/bin/bash + +# Import an SQLite dump of a Bacula catalog into Postgres +# Designed for v1.63.3 (as found on Debian sarge) +# +# v0.5 +# +# Copyright (c) 2006 Russell Howe + +# 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. + +FILE=bacula.sql +# Tables, in order of size +TABLES=(File Filename Path Job Media Pool CDImages Counters Version Client FileSet JobMedia NextId UnsavedFiles BaseFiles) +# Tables, in insert order +TABLESINSERT=(Pool CDImages Client Counters FileSet Filename Job Media JobMedia NextId Path File UnsavedFiles Version BaseFiles) +DBNAME=bacula +LOGFILE="/var/tmp/sqlite2pgsql.$$.log" + +importdata() { + if [ "x" == "x$1" ]; then + echo "Error: importdata() called without an argument. Aborting." + exit 1 + fi + + SQLFILE="$1" + + if [ ! -r "$SQLFILE" ]; then + echo "Error: Cannot read from $SQLFILE. Aborting." + exit 1 + fi + + echo -n "Loading $SQLFILE into database $DBNAME..." + psql -d "$DBNAME" -f "$SQLFILE" || ( + echo "Failed to load $SQLFILE into database $DBNAME. psql exited with return code $?. Aborting." + exit 1 + ) +} + + +# Go through each of the table names, splitting the INSERT statements off +# into seperate files +for table in ${TABLES[@]}; do + SRC="$FILE.other" + if [ ! -f "$FILE.other" ]; then + SRC="$FILE" + fi + PATTERN="^INSERT INTO $table " + if [ ! -f "$FILE.data.$table" ]; then + echo -n "Separating $table table from database dump..." + + echo "BEGIN;" > "$FILE.data.$table.tmp" + grep "$PATTERN" "$SRC" >> "$FILE.data.$table.tmp" + echo "COMMIT;" >> "$FILE.data.$table.tmp" + + mv "$FILE.data.$table.tmp" "$FILE.data.$table" + echo "done. ($FILE.data.$table)" + echo -n "Stripping matched lines from the source file to speed up the next round..." + grep -v "$PATTERN" "$SRC" > "$FILE.other.tmp" + mv "$FILE.other.tmp" "$FILE.other" + echo "done." + else + echo "$FILE.data.$table already exists. Assuming this table has already been split" + echo "off from the main dump. Not regenerating." + fi +done + +echo "Seperating DDL statements from INSERT statements" + +grep -v "^INSERT" "$FILE.other" > "$FILE.ddl" +echo "DDL statements are now in $FILE.ddl" + +grep "^INSERT" "$FILE.other" > "$FILE.data.other" +echo "Any remaining INSERT statements are now in $FILE.data.other" + +echo "Fixing up datatypes used in the DDL..." + +sed -e 's/TINYINT/SMALLINT/g' \ + -e 's/DATETIME/TIMESTAMP/g' \ + -e 's/INTEGER UNSIGNED/INTEGER/g' \ + -e 's/BIGINT UNSIGNED/BIGINT/g' \ + -e 's/INTEGER AUTOINCREMENT/SERIAL/g' \ + -e s/\ DEFAULT\ \"\"/\ DEFAULT\ \'\'/g \ + -e s#\ TIMESTAMP\ DEFAULT\ 0#\ TIMESTAMP\ DEFAULT\ \'1/1/1970\'#g "$FILE.ddl" > "$FILE.ddl.postgres" + +echo "Fixing Pool table..." + +sed -e 's/,0,0);$/,NULL,NULL);/' "$FILE.data.Pool" > "$FILE.data.Pool.fixed" + +echo "Fixing removing entries from Job table which no longer have a Pool to link to" + +# Remove jobs which refer to nonexistent pools, and fix up invalid start and end times to be 1/1/1970 +grep -vE '([2589]|1[0-5]),[0-9]+,[0-9]+,[0-9]+\);' "$FILE.data.Job" \ + |sed -e s@^\\\(INSERT\ INTO\ Job\ VALUES\(\\\(\[^,\]\\\+,\\\)\\\{8\\\}\\\)0,@\\1NULL,@ \ + -e s@^\\\(INSERT\ INTO\ Job\ VALUES\(\\\(\[^,\]\\\+,\\\)\\\{9\\\}\\\)0,@\\1\NULL,@ \ + -e s@^\\\(INSERT\ INTO\ Job\ VALUES\(\\\(\[^,\]\\\+,\\\)\\\{17\\\}\\\)0,@\\1\NULL,@ \ + -e s@^\\\(INSERT\ INTO\ Job\ VALUES\(\\\(\[^,\]\\\+,\\\)\\\{18\\\}\\\)0,@\\1\NULL,@ \ + -e s@^\\\(INSERT\ INTO\ Job\ VALUES\(\\\(\[^,\]\\\+,\\\)\\\{5\\\}\\\)0,@\\1NULL,@ > "$FILE.data.Job.fixed" + +# Remove JobMedia entries which refer to nonexistent Jobs + +echo "Cleaning up the dump of the JobMedia table..." + +grep -vE 'INSERT INTO JobMedia VALUES\([0-9]+,([12589]|1[0-4]),' "$FILE.data.JobMedia" > "$FILE.data.JobMedia.fixed" + +# Remove File entries which refer to nonexistent Jobs + +echo "Cleaning up the dump of the File table..." + +grep -vE 'INSERT INTO File VALUES\([0-9]+,[0-9]+,([12589]|1[0-4]),' "$FILE.data.File" > "$FILE.data.File.fixed" + +echo "OK, we should be ready to import data into PostgreSQL now. DDL first..." +echo "This will probably fail the first time. You will have to edit $FILE.other" +echo "and rearrange the CREATE TABLE statements so that the tables are created" +echo "in the correct order." +echo "After editing $FILE.other, simply rerun this script and it will carry on" +echo "where it left off." + +importdata "$FILE.ddl.postgres" + +for table in ${TABLESINSERT[@]} other; do + IMPORTFILE="$FILE.data.$table" + if [ -f "$FILE.data.$table.fixed" ]; then + IMPORTFILE="$FILE.data.$table.fixed" + fi + importdata "$IMPORTFILE" 2>&1 |tee -a "$LOGFILE" +done + +echo "All done! Check $LOGFILE for errors." + diff --git a/Branch-2.2/bacula/examples/devices/DDS.conf b/Branch-2.2/bacula/examples/devices/DDS.conf new file mode 100644 index 0000000000..e0bcd0021b --- /dev/null +++ b/Branch-2.2/bacula/examples/devices/DDS.conf @@ -0,0 +1,10 @@ +# +# Device definition virtually any DDS drive +# +Device { + Name = "DDS-Drive" + Media Type = "4mm" + Archive Device = /dev/nst0 + AutomaticMount = yes; # when device opened, read it + AlwaysOpen = Yes; +} diff --git a/Branch-2.2/bacula/examples/devices/EXB-8200.conf b/Branch-2.2/bacula/examples/devices/EXB-8200.conf new file mode 100644 index 0000000000..08ed95b395 --- /dev/null +++ b/Branch-2.2/bacula/examples/devices/EXB-8200.conf @@ -0,0 +1,13 @@ +# +# Device definition for a VERY OLD Exabyte +# 8mm drive. It does not have a Hardware +# end of medium function. +# +Device { + Name = "Exabyte 8mm" + Media Type = "8mm" + Archive Device = /dev/nst1 + Hardware end of medium = No; + AutomaticMount = yes; # when device opened, read it + AlwaysOpen = Yes; +} diff --git a/Branch-2.2/bacula/examples/devices/EXB-8500.conf b/Branch-2.2/bacula/examples/devices/EXB-8500.conf new file mode 100644 index 0000000000..e557dda3de --- /dev/null +++ b/Branch-2.2/bacula/examples/devices/EXB-8500.conf @@ -0,0 +1,10 @@ +# +# Device definition for an 8mm drive. +# +Device { + Name = "Exabyte 8mm" + Media Type = "8mm" + Archive Device = /dev/nst1 + AutomaticMount = yes; # when device opened, read it + AlwaysOpen = Yes; +} diff --git a/Branch-2.2/bacula/examples/devices/HP-DLT80.conf b/Branch-2.2/bacula/examples/devices/HP-DLT80.conf new file mode 100644 index 0000000000..a194ea6547 --- /dev/null +++ b/Branch-2.2/bacula/examples/devices/HP-DLT80.conf @@ -0,0 +1,12 @@ +# +# This works for the HP DLT8000 drive (it is +# actually manufactured by Quantum). +# Nothing special +# +Device { + Name = "HP DLT 80" + Media Type = DLT8000 + Archive Device = /dev/nst0 + AutomaticMount = yes; # when device opened, read it + AlwaysOpen = yes; +} diff --git a/Branch-2.2/bacula/examples/devices/HP-autoloader.conf b/Branch-2.2/bacula/examples/devices/HP-autoloader.conf new file mode 100644 index 0000000000..79a9bb7292 --- /dev/null +++ b/Branch-2.2/bacula/examples/devices/HP-autoloader.conf @@ -0,0 +1,14 @@ +# +# This is the definition Kern uses for a +# HP Surestore DAT autoloader (dat 40x6e) +# +Device { + Name = "DAT-40x6e" + Media Type = DDS-4 + Archive Device = /dev/nst0 + Changer Device = /dev/sg0 + Changer Command = "/home/kern/bacula/bin/mtx-changer %c %o %S %a" + AutoChanger = yes + AutomaticMount = yes; # when device opened, read it + AlwaysOpen = yes; +} diff --git a/Branch-2.2/bacula/examples/devices/README b/Branch-2.2/bacula/examples/devices/README new file mode 100644 index 0000000000..a28860d1a3 --- /dev/null +++ b/Branch-2.2/bacula/examples/devices/README @@ -0,0 +1,17 @@ + +This directory contains example Device resource +definitions that are known to work for various +tape drives. + +In general, you can set the Name record +and the Media Type to anything you want, but +they must correspond with what you have in your +Director's config file. + +The Archive Device must be changed to agree +with your physical device depending on the system +and the drive. + +There are many other records that you might want +to add as well. + diff --git a/Branch-2.2/bacula/examples/devices/Sony-DDS.conf b/Branch-2.2/bacula/examples/devices/Sony-DDS.conf new file mode 100644 index 0000000000..e0bcd0021b --- /dev/null +++ b/Branch-2.2/bacula/examples/devices/Sony-DDS.conf @@ -0,0 +1,10 @@ +# +# Device definition virtually any DDS drive +# +Device { + Name = "DDS-Drive" + Media Type = "4mm" + Archive Device = /dev/nst0 + AutomaticMount = yes; # when device opened, read it + AlwaysOpen = Yes; +} diff --git a/Branch-2.2/bacula/examples/local_partitions b/Branch-2.2/bacula/examples/local_partitions new file mode 100644 index 0000000000..39461462a7 --- /dev/null +++ b/Branch-2.2/bacula/examples/local_partitions @@ -0,0 +1,21 @@ +#!/bin/sh +# +# A script to extract the local, permanently mounted, real, filesystems. +# Tested on Solaris, Linux, IRIX +# +# Written by: Peter Eriksson 2004-12-13 +# + +PATH=/bin:/usr/bin:/sbin:/usr/sbin +export PATH + +if [ -f /etc/fstab ]; then + awk '($1 ~ /^\/dev/ && $2 ~ /^\// && $4 !~ /noauto/) {print $2}' &2 + exit 1 +fi + +exit 0 diff --git a/Branch-2.2/bacula/examples/local_partitions.txt b/Branch-2.2/bacula/examples/local_partitions.txt new file mode 100644 index 0000000000..cbcbfced99 --- /dev/null +++ b/Branch-2.2/bacula/examples/local_partitions.txt @@ -0,0 +1,8 @@ +Date: Mon, 13 Dec 2004 11:52:51 +0100 (MET) +From: Peter Eriksson +To: kern@sibbald.com +Subject: A script to extract local partitions to backup +Please find enclosed a small script that perhaps could be included +in Bacula as an example for how to use the \| feature in FileSets. + +See: local_partitions in this directory for the script. diff --git a/Branch-2.2/bacula/examples/nagios/check_bacula_pools.sh b/Branch-2.2/bacula/examples/nagios/check_bacula_pools.sh new file mode 100644 index 0000000000..c745adb433 --- /dev/null +++ b/Branch-2.2/bacula/examples/nagios/check_bacula_pools.sh @@ -0,0 +1,159 @@ +#! /bin/sh +# Author : Ludovic Strappazon. l.strappazon@gmail.com +# Copyright 2004, Free Software Foundation Europe e.V. +# Any comment, advice or enhancement are welcome :-) + +PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin +MYSQL="/usr/bin/mysql -u bacula --password=mypassword" +TMP=/tmp +BACULA=/usr/local/bacula + +PROGNAME=`basename $0` +PROGPATH=`echo $0 | sed -e 's,[\\/][^\\/][^\\/]*$,,'` +STATUS="" + +. $PROGPATH/utils.sh + +print_usage() { + echo "Usage: $PROGNAME -P -M -w -c [-S]" +} + +print_help() { + echo "" + print_usage + echo "" + echo "This plugin checks the space available in the pool against the space required for the next scheduled backups" + echo "Example : $PROGNAME -P default -M LTO -w 20 -c 10 will check the default pool, return OK if (available space) > 1,20*(required space), WARNING if 1,20*(required space) > (available space) > 1,10*(required space), and CRITICAL else." + echo "" + echo "With the -S option, it will check the pool named Scratch and return WARNING instead of CRITICAL if the Scratch pool can save the situation." + echo "Example : $PROGNAME -P default -M LTO -w 20 -c 10 -S will check the default pool, return OK if (available space) > 1,20*(required space), WARNING if 1,20*(required space) > (available space) > 1,10*(required space) or if (available space in default and Scratch) > 1,10*(required space) > (available space in default), and CRITICAL else." + echo "" + echo "The evaluation of the space required is done by adding the biggest backups of the same level than the scheduled jobs" + echo "The available space is evaluated by the number of out of retention tapes and the average VolBytes of these Full tapes" + echo "" + echo "The Information Status are : \"Required, Available, Volume Errors\" and \"Will use Scratch pool\" if necessary." + echo "" + echo "I think this plugin should be used in passive mode, and ran by a RunAfterJob" + exit 3 +} + +NB_ARGS=$# +SCRATCH=0 +while getopts :P:M:w:c:hS OPTION +do + case $OPTION in + P) POOL="$OPTARG" + ;; + M) MEDIA_TYPE="$OPTARG" + ;; + S) SCRATCH=1 + ;; + w) WARNING="$OPTARG" + ;; + c) CRITICAL="$OPTARG" + ;; + h) print_help + exit 3 + ;; + *) print_usage + exit 3 + ;; + esac +done +shift $(($OPTIND - 1)) + +if [ "$NB_ARGS" -ne 8 -a "$NB_ARGS" -ne 9 ]; then + print_revision $PROGNAME 25/05/2005 + print_usage + exit 3 +fi + +LAST_CHECK=`ps -ef | grep check_ba[Cc]ula_pools.sh | awk {'print $5'} | uniq | wc -l` +if [ "$LAST_CHECK" -gt 1 ]; then + echo "The last check was not complete, you should increase the check_period." + exit 3 +fi + + NB_VOLUMES_OUT_OF_RETENTION=`$MYSQL << EOF +USE bacula +SELECT COUNT(MediaId) from Media, Pool where Media.PoolId=Pool.PoolId and Pool.Name="$POOL" AND LastWritten <> "0000-00-00 00:00:00" AND UNIX_TIMESTAMP()-UNIX_TIMESTAMP(LastWritten)>Media.VolRetention AND Inchanger = "1"; +EOF +` + NB_VOLUMES_OUT_OF_RETENTION=`echo $NB_VOLUMES_OUT_OF_RETENTION | cut -f 2 -d ' '` + +NB_VOLUMES_ERROR=`$MYSQL << EOF +USE bacula +SELECT COUNT(MediaId) from Media, Pool where Media.PoolId=Pool.PoolId and Pool.Name="$POOL" AND VolStatus="Error" AND Inchanger = "1"; +EOF +` +NB_VOLUMES_ERROR=`echo $NB_VOLUMES_ERROR | cut -f 2 -d ' '` + +AVERAGE_CAPA_VOLUME=`$MYSQL << EOF +USE bacula +SELECT SUM(VolBytes)/COUNT(MediaId) FROM Media where VolStatus="Full" AND MediaType="$MEDIA_TYPE"; +EOF +` +AVERAGE_CAPA_VOLUME=`echo $AVERAGE_CAPA_VOLUME | cut -f 2 -d ' ' | cut -f 1 -d '.'` + +CAPA_VOLUMES_APPEND=`$MYSQL << EOF +USE bacula +SELECT SUM("$AVERAGE_CAPA_VOLUME"-VolBytes) from Media, Pool where Media.PoolId=Pool.PoolId and Pool.Name="$POOL" AND (VolStatus = "Append" OR VolStatus = "Recycle" OR VolStatus = "Purge") AND Inchanger = "1" AND MediaType="$MEDIA_TYPE"; +EOF +` +CAPA_VOLUMES_APPEND=`echo $CAPA_VOLUMES_APPEND | cut -f 2 -d ' '` + +if [ $SCRATCH -eq 1 ] +then +CAPA_VOLUMES_SCRATCH=`$MYSQL << EOF +USE bacula +SELECT SUM("$AVERAGE_CAPA_VOLUME"-VolBytes) from Media, Pool where Media.PoolId=Pool.PoolId and Pool.Name="Scratch" AND VolStatus = "Append" AND Inchanger = "1" AND MediaType="$MEDIA_TYPE"; +EOF +` +CAPA_VOLUMES_SCRATCH=`echo $CAPA_VOLUMES_SCRATCH | cut -f 2 -d ' '` +else +CAPA_VOLUMES_SCRATCH=0 +fi + +echo "st +1 +q" | $BACULA/etc/bconsole | sed -n /Scheduled/,/Running/p | grep Backup | tr -s [:blank:] | tr '[:blank:]' '@' > ${TMP}/Scheduled.txt + +CAPA_REQUIRED=0 +for LINE in `cat ${TMP}/Scheduled.txt` +do + SCHEDULED_JOB=`echo $LINE | awk -F@ '{print $6}'` + LEVEL=`echo $LINE | awk -F@ '{print $1}' | cut -c 1` + +MAX_VOLUME_JOB_FOR_LEVEL=`$MYSQL << EOF +USE bacula +SELECT MAX(JobBytes) from Job, Pool where Level="$LEVEL" AND Job.Name="$SCHEDULED_JOB" AND Job.PoolId=Pool.PoolId AND Pool.Name="$POOL"; +EOF +` +MAX_VOLUME_JOB_FOR_LEVEL=`echo $MAX_VOLUME_JOB_FOR_LEVEL | cut -f 2 -d ' ' ` + +CAPA_REQUIRED=$[CAPA_REQUIRED+MAX_VOLUME_JOB_FOR_LEVEL] +done + +rm ${TMP}/Scheduled.txt + +CAPA_WARNING=`echo $[(WARNING+100)*CAPA_REQUIRED]/100 | bc | cut -f 1 -d '.'` +CAPA_CRITICAL=`echo $[(CRITICAL+100)*CAPA_REQUIRED]/100 | bc | cut -f 1 -d '.'` +CAPA_DISP=$[NB_VOLUMES_OUT_OF_RETENTION*AVERAGE_CAPA_VOLUME+CAPA_VOLUMES_APPEND] +CAPA_DISP_INCLUDING_SCRATCH=$[CAPA_DISP+CAPA_VOLUMES_SCRATCH] + +MESSAGE="Required : $[CAPA_REQUIRED/1000000000] Go, available : $[CAPA_DISP/1000000000] Go, Volumes Error : $NB_VOLUMES_ERROR" + +if [ "$CAPA_DISP" -gt $CAPA_WARNING ]; then + echo $MESSAGE + exit 0 +elif [ "$CAPA_DISP" -gt $CAPA_CRITICAL ];then + echo $MESSAGE + exit 1 +elif [ "$CAPA_DISP_INCLUDING_SCRATCH" -gt $CAPA_CRITICAL ];then + MESSAGE="${MESSAGE}. Will use Scratch Pool !" + echo $MESSAGE + exit 1 +else + exit 2 +fi +exit 3 diff --git a/Branch-2.2/bacula/examples/nagios/nagios.txt b/Branch-2.2/bacula/examples/nagios/nagios.txt new file mode 100644 index 0000000000..03af14010d --- /dev/null +++ b/Branch-2.2/bacula/examples/nagios/nagios.txt @@ -0,0 +1,205 @@ +Subject: RE: [Bacula-users] monitoring bacula with Nagios +From: "Julian Hein" +To: + +Hi, + +> Anyway: I would really like to write such a check_bacula +> plugin. I just +> don't know what I need to implement to achive a successful +> authentication. And maybe to get some infos out. Like current +> number of +> jobs, runtime or so. + +We are checking bacula with Nagios in two ways: First we check all servers if the neccessary services are running, like the fd on all bacula clients (windows & linux), directors, sd, etc. And the second check is to look in baculas mysql database if there is a successful job for every host within the last 24 hours: + + +1. Check if the fd is running +============================= + +Services: +--------- + +# bacula-fd linux +check_command check_spezial_procs_by_ssh!2:!1:!bacula-fd + +# bacula-sd +check_command check_spezial_procs_by_ssh!2:!1:!bacula-sd + +# bacula-dir +check_command check_spezial_procs_by_ssh!2:!1:!bacula-dir + +# bacula-fd windows +check_command check_nt_service!bacula + +Commands: +--------- + +# check for services by name with ssh +define command { + command_name check_spezial_procs_by_ssh + command_line $USER1$/check_by_ssh -t 60 -H $HOSTADDRESS$ -C "/opt/nagios/libexec/check_procs -w $ARG1$ -c $ARG2$ -C $ARG3$" +} + +# check for the bacula-fd on windows with nsclient +define command { + command_name check_nt_service + command_line $USER1$/check_nt -H $HOSTADDRESS$ -p portno. -s password -v SERVICESTATE -l $ARG1$ +} + +2. Is there a successful job in the database +============================================ + +Services: +--------- + +# bacula jobs +check_command check_bacula_by_ssh!27!1!1 + +Commands: +--------- +The name of our backup jobs have to match the hostname in Nagios. So we can check on the backup server, for a job called $HOSTNAME$: + +define command { + command_name check_bacula_by_ssh + command_line $USER1$/check_by_ssh -t 60 -H my.backup.server -C "/opt/nagios/libexec/check_bacula.pl -H $ARG1$ -w $ +ARG2$ -c $ARG3$ -j $HOSTNAME$" +} + +check_bacula.pl: +---------------- + +#!/usr/bin/perl -w +use strict; +use POSIX; +use File::Basename; +use DBI; +use Getopt::Long; +use vars qw( + $opt_help + $opt_job + $opt_critical + $opt_warning + $opt_hours + $opt_usage + $opt_version + $out + $sql + $date_start + $date_stop + $state + $count + ); + +sub print_help(); +sub print_usage(); +sub get_now(); +sub get_date; + +my $progname = basename($0); + +my %ERRORS = ( 'UNKNOWN' => '-1', + 'OK' => '0', + 'WARNING' => '1', + 'CRITICAL' => '2'); + +Getopt::Long::Configure('bundling'); +GetOptions + ( + "c=s" => \$opt_critical, "critical=s" => \$opt_critical, + "w=s" => \$opt_warning, "warning=s" => \$opt_warning, + "H=s" => \$opt_hours, "hours=s" => \$opt_hours, + "j=s" => \$opt_job, "job=s" => \$opt_job, + "h" => \$opt_help, "help" => \$opt_help, + "usage" => \$opt_usage, + "V" => \$opt_version, "version" => \$opt_version + ) || die "Try '$progname --help' for more information.\n"; + +sub print_help() { +print "\n"; +print "PRINT HELP...\n"; +print "\n"; +} + +sub print_usage() { + print "PRINT USAGE...\n"; + print "\n"; +} + +sub get_now() { + my $now = defined $_[0] ? $_[0] : time; + my $out = strftime("%Y-%m-%d %X", localtime($now)); + return($out); +} + +sub get_date { + my $day = shift; + my $now = defined $_[0] ? $_[0] : time; + my $new = $now - ((60*60*1) * $day); + my $out = strftime("%Y-%m-%d %X", localtime($new)); + return ($out); +} + +if ($opt_help) { + print_help(); + exit $ERRORS{'UNKNOWN'}; +} + +if ($opt_usage) { + print_usage(); + exit $ERRORS{'UNKNOWN'}; +} + +if ($opt_version) { + print "$progname 0.0.1\n"; + exit $ERRORS{'UNKNOWN'}; +} + + +if ($opt_job && $opt_warning && $opt_critical) { + my $dsn = "DBI:mysql:database=bacula;host=localhost"; + my $dbh = DBI->connect( $dsn,'root','' ) or die "Error connecting to: '$dsn': $DBI::errstr\n"; + + if ($opt_hours) + { + $date_stop = get_date($opt_hours); + } + else + { + $date_stop = '1970-01-01 01:00:00'; + } + + $date_start = get_now(); + + $sql = "SELECT count(*) as 'count' from Job where (Name='$opt_job') and (JobStatus='T') and (EndTime <> '') and ((EndTime <= '$date_start') and (EndTime >= '$date_stop'));"; + + my $sth = $dbh->prepare($sql) or die "Error preparing statemment",$dbh->errstr; + $sth->execute; + + while (my @row = $sth->fetchrow_array()) { + ($count) = @row; + } +$state = 'OK'; +if ($count<$opt_warning) { $state='WARNING' } +if ($count<$opt_critical) { $state='CRITICAL' } + +print "Bacula $state: Found $count successfull jobs\n"; +exit $ERRORS{$state}; + $dbh->disconnect(); +} + else { + print_usage(); + } + +Well, this script is not really finished, but it works for us. Maybe it is helpful for you. If somebody makes enhancements, I would be happy to recieve a copy. + +cu, +Julian + +-- +Julian Hein NETWAYS GmbH +Managing Director Deutschherrnstr. 47a +Fon.0911/92885-0 D-90429 Nürnberg +Fax.0911/92885-31 +jhein@netways.de www.netways.de + diff --git a/Branch-2.2/bacula/examples/nagios/nagios_plugin_check_bacula.tgz b/Branch-2.2/bacula/examples/nagios/nagios_plugin_check_bacula.tgz new file mode 100644 index 0000000000..e800236da5 Binary files /dev/null and b/Branch-2.2/bacula/examples/nagios/nagios_plugin_check_bacula.tgz differ diff --git a/Branch-2.2/bacula/examples/nagios/prepare_for_check_bacula b/Branch-2.2/bacula/examples/nagios/prepare_for_check_bacula new file mode 100755 index 0000000000..2c342c57c4 --- /dev/null +++ b/Branch-2.2/bacula/examples/nagios/prepare_for_check_bacula @@ -0,0 +1,32 @@ +#!/bin/sh +# +# This script prepares the source for compiling check_bacula +# +# It's more or less untested, though. +# Submitted by Arno Lehmann +# + +# Save configure +mv -uiv configure configure.without_check_bacula + +# Modify ./configure +sed -e 's/\(ac_config_files=".*$PFILES\)"/\1 src\/check_bacula\/Makefile"/' -e 's/\(^ *# Handling of arguments.*$\)/\1\n "src\/check_bacula\/Makefile" ) CONFIG_FILES="$CONFIG_FILES src\/check_bacula\/Makefile" ;;/' configure.without_check_bacula > configure +chmod a+x configure + +# extract check_bacula source +tar xzCf src examples/nagios/nagios_plugin_check_bacula.tgz + +echo "Now you can run ./configure with your usual options. Afterwards, use +'make' to create your binaries. Then you can run 'make' in +src/check_bacula to create that program. + +If you encounter problems, you'll have to setup the Bacula source manually. +The original configure script has been saved to configure.without_check_bacula + +Note that check_bacula does not support TLS and is an unsupported add-on to +Bacula. Even if it's not part of the core Bacula programs, questions can be +asked at the bacula-users mailing list. + +Bacula is a Trademark of Kern Sibbald. Bacula and the accompanying programs +are open source. See the LICENSE file for more information. +" diff --git a/Branch-2.2/bacula/examples/python/DirStartUp.py b/Branch-2.2/bacula/examples/python/DirStartUp.py new file mode 100644 index 0000000000..a6f3995600 --- /dev/null +++ b/Branch-2.2/bacula/examples/python/DirStartUp.py @@ -0,0 +1,102 @@ +# +# Bacula Python interface script for the Director +# + +# You must import both sys and bacula +import sys, bacula + +# This is the list of Bacula daemon events that you +# can receive. +class BaculaEvents(object): + def __init__(self): + # Called here when a new Bacula Events class is + # is created. Normally not used + noop = 1 + + def JobStart(self, job): + """ + Called here when a new job is started. If you want + to do anything with the Job, you must register + events you want to receive. + """ + events = JobEvents() # create instance of Job class + events.job = job # save Bacula's job pointer + job.set_events(events) # register events desired + sys.stderr = events # send error output to Bacula + sys.stdout = events # send stdout to Bacula + jobid = job.JobId; client = job.Client + numvols = job.NumVols + job.JobReport="Python Dir JobStart: JobId=%d Client=%s NumVols=%d\n" % (jobid,client,numvols) + + # Bacula Job is going to terminate + def JobEnd(self, job): + jobid = job.JobId + client = job.Client + job.JobReport="Python Dir JobEnd output: JobId=%d Status=%s Client=%s.\n" % (jobid, job.JobStatus, client) + + # Called here when the Bacula daemon is going to exit + def Exit(self, job): + print "Daemon exiting." + +bacula.set_events(BaculaEvents()) # register daemon events desired + +""" + There are the Job events that you can receive. +""" +class JobEvents(object): + def __init__(self): + # Called here when you instantiate the Job. Not + # normally used + noop = 1 + + def JobInit(self, job): + noop = 1 + if (job.JobId < 2): + startid = job.run("run kernsave") + job.JobReport = "Python started new Job: jobid=%d\n" % startid + print "name=%s version=%s conf=%s working=%s" % (bacula.Name, bacula.Version, bacula.ConfigFile, bacula.WorkingDir) + + def JobRun(self, job): + noop = 1 + + def NewVolume(self, job): + jobid = job.JobId + client = job.Client + numvol = job.NumVols; + print job.CatalogRes + job.JobReport = "JobId=%d Client=%s NumVols=%d" % (jobid, client, numvol) + job.JobReport="Python before New Volume set for Job.\n" + Vol = "TestA-%d" % numvol + job.JobReport = "Exists=%d TestA-%d" % (job.DoesVolumeExist(Vol), numvol) + job.VolumeName="TestA-%d" % numvol + job.JobReport="Python after New Volume set for Job.\n" + return 1 + + def VolumePurged(self, job): + noop = 1 + + # Pass output back to Bacula + def write(self, text): + self.job.write(text) + + # Open file to be backed up. file is the filename + # NOT YET IMPLEMENTED + def open(self, file): + print "Open %s called" % file + self.fd = open('m.py', 'rb') + jobid = self.job.JobId + print "Open: JobId=%d" % jobid + + # Read file data into Bacula memory buffer (mem) + # return length read. 0 => EOF, -1 => error + # NOT YET IMPLEMENTED + def read(self, mem): + print "Read called\n" + len = self.fd.readinto(mem) + print "Read %s bytes into mem.\n" % len + return len + + # Close file + # NOT YET IMPLEMENTED + def close(self): + self.fd.close() diff --git a/Branch-2.2/bacula/examples/python/FDStartUp.py b/Branch-2.2/bacula/examples/python/FDStartUp.py new file mode 100644 index 0000000000..4d53e33bfc --- /dev/null +++ b/Branch-2.2/bacula/examples/python/FDStartUp.py @@ -0,0 +1,74 @@ +# +# Bacula Python interface script for the File Daemon +# +# You must import both sys and bacula +import sys, bacula + +# This is the list of Bacula daemon events that you +# can receive. +class BaculaEvents(object): + def __init__(self): + # Called here when a new Bacula Events class is + # is created. Normally not used + noop = 1 + + def JobStart(self, job): + """ + Called here when a new job is started. If you want + to do anything with the Job, you must register + events you want to receive. + """ + events = JobEvents() # create instance of Job class + events.job = job # save Bacula's job pointer + job.set_events(events) # register events desired + sys.stderr = events # send error output to Bacula + sys.stdout = events # send stdout to Bacula + jobid = job.JobId + client = job.Client + job.JobReport="Python FD JobStart: JobId=%d Client=%s \n" % (jobid,client) + return 1 + + # Bacula Job is going to terminate + def JobEnd(self, job): + jobid = job.JobId + client = job.Client + job.JobReport="Python FD JobEnd output: JobId=%d Client=%s.\n" % (jobid, client) + + + # Called here when the Bacula daemon is going to exit + def Exit(self): + noop = 1 + +bacula.set_events(BaculaEvents()) # register daemon events desired + +""" + There are the Job events that you can receive. +""" +class JobEvents(object): + def __init__(self): + # Called here when you instantiate the Job. Not + # normally used + noop = 1 + + # Pass output back to Bacula + def write(self, text): + self.job.write(text) + + # Open file to be backed up. file is the filename + def Python_open(self, file): + print "Open %s called" % file + self.fd = open(file, 'rb') + jobid = self.job.JobId + print "Open: %s" % file + + # Read file data into Bacula memory buffer (mem) + # return length read. 0 => EOF, -1 => error + def Python_read(self, mem): + print "Read called\n" + len = self.fd.readinto(mem) + print "Read %s bytes into mem.\n" % len + return len + + # Close file + def Python_close(self): + self.fd.close() diff --git a/Branch-2.2/bacula/examples/python/SDStartUp.py b/Branch-2.2/bacula/examples/python/SDStartUp.py new file mode 100644 index 0000000000..1f08beda4c --- /dev/null +++ b/Branch-2.2/bacula/examples/python/SDStartUp.py @@ -0,0 +1,56 @@ +# +# Bacula Python interface script for the Storage Daemon +# +# You must import both sys and bacula +import sys, bacula + +# This is the list of Bacula daemon events that you +# can receive. +class BaculaEvents(object): + def __init__(self): + # Called here when a new Bacula Events class is + # is created. Normally not used + noop = 1 + + def JobStart(self, job): + """ + Called here when a new job is started. If you want + to do anything with the Job, you must register + events you want to receive. + """ + events = JobEvents() # create instance of Job class + events.job = job # save Bacula's job pointer + job.set_events(events) # register events desired + sys.stderr = events # send error output to Bacula + sys.stdout = events # send stdout to Bacula + jobid = job.JobId + client = job.Client + job.JobReport="Python SD JobStart: JobId=%d Client=%s \n" % (jobid,client) + return 1 + + # Bacula Job is going to terminate + def JobEnd(self, job): + jobid = job.JobId + client = job.Client + job.JobReport="Python SD JobEnd output: JobId=%d Client=%s.\n" % (jobid, client) +# print "Python SD JobEnd\n" + + + # Called here when the Bacula daemon is going to exit + def Exit(self): + noop = 1 + +bacula.set_events(BaculaEvents()) # register daemon events desired + +""" + There are the Job events that you can receive. +""" +class JobEvents(object): + def __init__(self): + # Called here when you instantiate the Job. Not + # normally used + noop = 1 + + # Pass output back to Bacula + def write(self, text): + self.job.write(text) diff --git a/Branch-2.2/bacula/examples/recover.pl b/Branch-2.2/bacula/examples/recover.pl new file mode 100755 index 0000000000..1476f424dd --- /dev/null +++ b/Branch-2.2/bacula/examples/recover.pl @@ -0,0 +1,2886 @@ +#!/usr/bin/perl -w + +=head1 NAME + +recover.pl - a script to provide an interface for restore files similar +to Legatto Networker's recover program. + +=cut + +use strict; +use Getopt::Std; +use DBI; +use Term::ReadKey; +use Term::ReadLine; +use Fcntl ':mode'; +use Time::ParseDate; +use Date::Format; +use Text::ParseWords; + +# Location of config file. +my $CONF_FILE = "$ENV{HOME}/.recoverrc"; +my $HIST_FILE = "$ENV{HOME}/.recover.hist"; + +######################################################################## +### Queries needed to gather files from directory. +######################################################################## + +my %queries = ( + 'postgres' => { + 'dir' => + "( + select + distinct on (name) + Filename.name, + Path.path, + File.lstat, + File.fileid, + File.fileindex, + Job.jobtdate - ? as visible, + Job.jobid + from + Path, + File, + Filename, + Job + where + clientid = ? and + Job.name = ? and + Job.jobtdate <= ? and + Path.path = ? and + File.pathid = Path.pathid and + Filename.filenameid = File.filenameid and + Filename.name != '' and + File.jobid = Job.jobid + order by + name, + jobid desc + ) + union + ( + select + distinct on (name) + substring(Path.path from ? + 1) as name, + substring(Path.path from 1 for ?) as path, + File.lstat, + File.fileid, + File.fileindex, + Job.jobtdate - ? as visible, + Job.jobid + from + Path, + File, + Filename, + Job + where + clientid = ? and + Job.name = ? and + Job.jobtdate <= ? and + File.jobid = Job.jobid and + Filename.name = '' and + Filename.filenameid = File.filenameid and + File.pathid = Path.pathid and + Path.path ~ ('^' || ? || '[^/]*/\$') + order by + name, + jobid desc + ) + order by + name + ", + 'sel' => + "( + select + distinct on (name) + Path.path || Filename.name as name, + File.fileid, + File.lstat, + File.fileindex, + Job.jobid + from + Path, + File, + Filename, + Job + where + clientid = ? and + Job.name = ? and + Job.jobtdate <= ? and + Job.jobtdate >= ? and + Path.path like ? || '%' and + File.pathid = Path.pathid and + Filename.filenameid = File.filenameid and + Filename.name != '' and + File.jobid = Job.jobid + order by + name, jobid desc + ) + union + ( + select + distinct on (name) + Path.path as name, + File.fileid, + File.lstat, + File.fileindex, + Job.jobid + from + Path, + File, + Filename, + Job + where + clientid = ? and + Job.name = ? and + Job.jobtdate <= ? and + Job.jobtdate >= ? and + File.jobid = Job.jobid and + Filename.name = '' and + Filename.filenameid = File.filenameid and + File.pathid = Path.pathid and + Path.path like ? || '%' + order by + name, jobid desc + ) + ", + 'cache' => + "select + distinct on (path, name) + Path.path, + Filename.name, + File.fileid, + File.lstat, + File.fileindex, + Job.jobtdate - ? as visible, + Job.jobid + from + Path, + File, + Filename, + Job + where + clientid = ? and + Job.name = ? and + Job.jobtdate <= ? and + Job.jobtdate >= ? and + File.pathid = Path.pathid and + File.filenameid = Filename.filenameid and + File.jobid = Job.jobid + order by + path, name, jobid desc + ", + 'ver' => + "select + Path.path, + Filename.name, + File.fileid, + File.fileindex, + File.lstat, + Job.jobtdate, + Job.jobid, + Job.jobtdate - ? as visible, + Media.volumename + from + Job, Path, Filename, File, JobMedia, Media + where + File.pathid = Path.pathid and + File.filenameid = Filename.filenameid and + File.jobid = Job.jobid and + File.Jobid = JobMedia.jobid and + File.fileindex >= JobMedia.firstindex and + File.fileindex <= JobMedia.lastindex and + Job.jobtdate <= ? and + JobMedia.mediaid = Media.mediaid and + Path.path = ? and + Filename.name = ? and + Job.clientid = ? and + Job.name = ? + order by job + " + }, + 'mysql' => { + 'dir' => + " + ( + select + distinct(Filename.name), + Path.path, + File.lstat, + File.fileid, + File.fileindex, + Job.jobtdate - ? as visible, + Job.jobid + from + Path, + File, + Filename, + Job + where + clientid = ? and + Job.name = ? and + Job.jobtdate <= ? and + Path.path = ? and + File.pathid = Path.pathid and + Filename.filenameid = File.filenameid and + Filename.name != '' and + File.jobid = Job.jobid + group by + name + order by + name, + jobid desc + ) + union + ( + select + distinct(substring(Path.path from ? + 1)) as name, + substring(Path.path from 1 for ?) as path, + File.lstat, + File.fileid, + File.fileindex, + Job.jobtdate - ? as visible, + Job.jobid + from + Path, + File, + Filename, + Job + where + clientid = ? and + Job.name = ? and + Job.jobtdate <= ? and + File.jobid = Job.jobid and + Filename.name = '' and + Filename.filenameid = File.filenameid and + File.pathid = Path.pathid and + Path.path rlike concat('^', ?, '[^/]*/\$') + group by + name + order by + name, + jobid desc + ) + order by + name + ", + 'sel' => + " + ( + select + distinct(concat(Path.path, Filename.name)) as name, + File.fileid, + File.lstat, + File.fileindex, + Job.jobid + from + Path, + File, + Filename, + Job + where + Job.clientid = ? and + Job.name = ? and + Job.jobtdate <= ? and + Job.jobtdate >= ? and + Path.path like concat(?, '%') and + File.pathid = Path.pathid and + Filename.filenameid = File.filenameid and + Filename.name != '' and + File.jobid = Job.jobid + group by + path, name + order by + name, + jobid desc + ) + union + ( + select + distinct(Path.path) as name, + File.fileid, + File.lstat, + File.fileindex, + Job.jobid + from + Path, + File, + Filename, + Job + where + Job.clientid = ? and + Job.name = ? and + Job.jobtdate <= ? and + Job.jobtdate >= ? and + File.jobid = Job.jobid and + Filename.name = '' and + Filename.filenameid = File.filenameid and + File.pathid = Path.pathid and + Path.path like concat(?, '%') + group by + path + order by + name, + jobid desc + ) + ", + 'cache' => + "select + distinct path, + Filename.name, + File.fileid, + File.lstat, + File.fileindex, + Job.jobtdate - ? as visible, + Job.jobid + from + Path, + File, + Filename, + Job + where + clientid = ? and + Job.name = ? and + Job.jobtdate <= ? and + Job.jobtdate >= ? and + File.pathid = Path.pathid and + File.filenameid = Filename.filenameid and + File.jobid = Job.jobid + group by + path, name + order by + path, name, jobid desc + ", + 'ver' => + "select + Path.path, + Filename.name, + File.fileid, + File.fileindex, + File.lstat, + Job.jobtdate, + Job.jobid, + Job.jobtdate - ? as visible, + Media.volumename + from + Job, Path, Filename, File, JobMedia, Media + where + File.pathid = Path.pathid and + File.filenameid = Filename.filenameid and + File.jobid = Job.jobid and + File.Jobid = JobMedia.jobid and + File.fileindex >= JobMedia.firstindex and + File.fileindex <= JobMedia.lastindex and + Job.jobtdate <= ? and + JobMedia.mediaid = Media.mediaid and + Path.path = ? and + Filename.name = ? and + Job.clientid = ? and + Job.name = ? + order by job + " + } +); + +############################################################################ +### Command lists for help and file completion +############################################################################ + +my %COMMANDS = ( + 'add' => '(add files) - Add files recursively to restore list', + 'bootstrap' => 'print bootstrap file', + 'cd' => '(cd dir) - Change working directory', + 'changetime', '(changetime date/time) - Change database view to date', + 'client' => '(client client-name) - change client to view', + 'debug' => 'toggle debug flag', + 'delete' => 'Remove files from restore list.', + 'help' => 'Display this list', + 'history', 'Print command history', + 'info', '(info files) - Print stat and tape information about files', + 'ls' => '(ls [opts] files) - List files in current directory', + 'pwd' => 'Print current working directory', + 'quit' => 'Exit program', + 'recover', 'Create table for bconsole to use in recover', + 'relocate', '(relocate dir) - specify new location for recovered files', + 'show', '(show item) - Display information about item', + 'verbose' => 'toggle verbose flag', + 'versions', '(versions files) - Show all versions of file on tape', + 'volumes', 'Show volumes needed for restore.' +); + +my %SHOW = ( + 'cache' => 'Display cached directories', + 'catalog' => 'Display name of current catalog from config file', + 'client' => 'Display current client', + 'clients' => 'Display clients available in this catalog', + 'restore' => 'Display information about pending restore', + 'volumes' => 'Show volumes needed for restore.' +); + +############################################################################## +### Read config and command line. +############################################################################## + +my %catalogs; +my $catalog; # Current catalog + +## Globals + +my %restore; +my $rnum = 0; +my $rbytes = 0; +my $debug = 0; +my $verbose = 0; +my $rtime; +my $cwd; +my $lwd; +my $files; +my $restore_to = '/'; +my $start_dir; +my $preload; +my $dircache = {}; +my $usecache = 1; + +=head1 SYNTAX + +B [B<-b> I] [B<-c> I B<-j> I] +[B<-i> I] [B<-p>] [B<-t> I] + +B [B<-h>] + +Most of the command line arguments can be specified in the init file +B<$HOME/.recoverrc> (see CONFIG FILE FORMAT below). The command +line arguments will override the options in the init file. If no +I is specified, the first one found in the init file will +be used. + +=head1 DESCRIPTION + +B will read the specified catalog and provide a shell like +environment from which a time based view of the specified client/jobname +and be exampled and selected for restoration. + +The command line option B<-b> specified the DBI compatible connect +script to use when connecting to the catalog database. The B<-c> and +B<-j> options specify the client and jobname respectively to view from +the catalog database. The B<-i> option will set the initial directory +you are viewing to the specified directory. if B<-i> is not specified, +it will default to /. You can set the initial time to view the catalog +from using the B<-t> option. + +The B<-p> option will pre-load the entire catalog into memory. This +could take a lot of memory, so use it with caution. + +The B<-d> option turns on debugging and the B<-v> option turns on +verbose output. + +By specifying a I, the default options for connecting to +the catalog database will be taken from the section of the init file +specified by that name. + +The B<-h> option will display this document. + +In order for this program to have a chance of not being painfully slow, +the following indexs should be added to your database. + +B + +B + +=cut + +my $vars = {}; +getopts("c:b:hi:j:pt:vd", $vars) || die "Usage: bad arguments\n"; + +if ($vars->{'h'}) { + system("perldoc $0"); + exit; +} + +$preload = $vars->{'p'} if ($vars->{'p'}); +$debug = $vars->{'d'} if ($vars->{'d'}); +$verbose = $vars->{'v'} if ($vars->{'v'}); + +# Set initial time to view the catalog + +if ($vars->{'t'}) { + $rtime = parsedate($vars->{'t'}, FUZZY => 1, PREFER_PAST => 1); +} +else { + $rtime = time(); +} + +my $dbconnect; +my $username = ""; +my $password = ""; +my $db; +my $client; +my $jobname; +my $jobs; +my $ftime; + +my $cstr; + +# Read config file (if available). + +&read_config($CONF_FILE); + +# Set defaults + +$catalog = $ARGV[0] if (@ARGV); + +if ($catalog) { + $cstr = ${catalogs{$catalog}}->{'client'} + if (${catalogs{$catalog}}->{'client'}); + + $jobname = $catalogs{$catalog}->{'jobname'} + if ($catalogs{$catalog}->{'jobname'}); + + $dbconnect = $catalogs{$catalog}->{'dbconnect'} + if ($catalogs{$catalog}->{'dbconnect'}); + + $username = $catalogs{$catalog}->{'username'} + if ($catalogs{$catalog}->{'username'}); + + $password = $catalogs{$catalog}->{'password'} + if ($catalogs{$catalog}->{'password'}); + + $start_dir = $catalogs{$catalog}->{'cd'} + if ($catalogs{$catalog}->{'cd'}); + + $preload = $catalogs{$catalog}->{'preload'} + if ($catalogs{$catalog}->{'preload'} && !defined($vars->{'p'})); + + $verbose = $catalogs{$catalog}->{'verbose'} + if ($catalogs{$catalog}->{'verbose'} && !defined($vars->{'v'})); + + $debug = $catalogs{$catalog}->{'debug'} + if ($catalogs{$catalog}->{'debug'} && !defined($vars->{'d'})); +} + +#### Command line overries config file + +$start_dir = $vars->{'i'} if ($vars->{'i'}); +$start_dir = '/' if (!$start_dir); + +$start_dir .= '/' if (substr($start_dir, length($start_dir) - 1, 1) ne '/'); + +if ($vars->{'b'}) { + $dbconnect = $vars->{'b'}; +} + +die "You must supply a db connect string.\n" if (!defined($dbconnect)); + +if ($dbconnect =~ /^dbi:Pg/) { + $db = 'postgres'; +} +elsif ($dbconnect =~ /^dbi:mysql/) { + $db = 'mysql'; +} +else { + die "Unknown database type specified in $dbconnect\n"; +} + +# Initialize database connection + +print STDERR "DBG: Connect using: $dbconnect\n" if ($debug); + +my $dbh = DBI->connect($dbconnect, $username, $password) || + die "Can't open bacula database\nDatabase connect string '$dbconnect'"; + +die "Client id required.\n" if (!($cstr || $vars->{'c'})); + +$cstr = $vars->{'c'} if ($vars->{'c'}); +$client = &lookup_client($cstr); + +# Set job information +$jobname = $vars->{'j'} if ($vars->{'j'}); + +die "You need to specify a job name.\n" if (!$jobname); + +&setjob; + +die "Failed to set client\n" if (!$client); + +# Prepare our query +my $dir_sth = $dbh->prepare($queries{$db}->{'dir'}) + || die "Can't prepare $queries{$db}->{'dir'}\n"; + +my $sel_sth = $dbh->prepare($queries{$db}->{'sel'}) + || die "Can't prepare $queries{$db}->{'sel'}\n"; + +my $ver_sth = $dbh->prepare($queries{$db}->{'ver'}) + || die "Can't prepare $queries{$db}->{'ver'}\n"; + +my $clients; + +# Initialize readline. +my $term = new Term::ReadLine('Bacula Recover'); +$term->ornaments(0); + +my $readline = $term->ReadLine; +my $tty_attribs = $term->Attribs; + +# Needed for base64 decode + +my @base64_digits = ( + 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', + 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', + 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', + 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', + '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/' +); +my @base64_map = (0) x 128; + +for (my $i=0; $i<64; $i++) { + $base64_map[ord($base64_digits[$i])] = $i; +} + +############################################################################## +### Support routines +############################################################################## + +=head1 FILES + +B<$HOME/.recoverrc> Configuration file for B. + +=head1 CONFIG FILE FORMAT + +The config file will allow you to specify the defaults for your +catalog(s). Each catalog definition starts with B<[>IB<]>. +Blank lines and lines starting with # are ignored. + +The first catalog specified will be used as the default catalog. + +All values are specified in I B<=> I format. You can +specify the following Is for each catalog. + +=cut + +sub read_config { + my $conf_file = shift; + my $c; + + # No nothing if config file can't be read. + + if (-r $conf_file) { + open(CONF, "<$conf_file") || die "$!: Can't open $conf_file\n"; + + while () { + chomp; + # Skip comments and blank links + next if (/^\s*#/); + next if (/^\s*$/); + + if (/^\[(\w+)\]$/) { + $c = $1; + $catalog = $c if (!$catalog); + + if ($catalogs{$c}) { + die "Duplicate catalog definition in $conf_file\n"; + } + + $catalogs{$c} = {}; + } + elsif (!$c) { + die "Conf file must start with catalog definition [catname]\n"; + } + else { + + if (/^(\w+)\s*=\s*(.*)/) { + my $item = $1; + my $value = $2; + +=head2 client + +The name of the default client to view when connecting to this +catalog. This can be changed later with the B command. + +=cut + + if ($item eq 'client') { + $catalogs{$c}->{'client'} = $value; + } + +=head2 dbconnect + +The DBI compatible database string to use to connect to this catalog. + +=over 4 + +=item B + +dbi:Pg:dbname=bacula;host=backuphost + +=back + +=cut + elsif ($item eq 'dbconnect') { + $catalogs{$c}->{'dbconnect'} = $value; + } + +=head2 jobname + +The name of the default job to view when connecting to the catalog. This +can be changed later with the B command. + +=cut + elsif ($item eq 'jobname') { + $catalogs{$c}->{'jobname'} = $value; + } + +=head2 password + +The password to use when connecing to the catalog database. + +=cut + elsif ($item eq 'password') { + $catalogs{$c}->{'password'} = $value; + } + +=head2 preload + +Set the preload flag. A preload flag of 1 or on will load the entire +catalog when recover.pl is start. This is a memory hog, so use with +caution. + +=cut + elsif ($item eq 'preload') { + + if ($value =~ /^(1|on)$/i) { + $catalogs{$c}->{'preload'} = 1; + } + elsif ($value =~ /^(0|off)$/i) { + $catalogs{$c}->{'preload'} = 0; + } + else { + die "$value: Unknown value for preload.\n"; + } + + } + +=head2 username + +The username to use when connecing to the catalog database. + +=cut + elsif ($item eq 'username') { + $catalogs{$c}->{'username'} = $value; + } + else { + die "Unknown opton $item in $conf_file.\n"; + } + + } + else { + die "Bad line $_ in $conf_file.\n"; + } + + } + + } + + close(CONF); + } + +} + +sub create_file_entry { + my $name = shift; + my $fileid = shift; + my $fileindex = shift; + my $jobid = shift; + my $visible = shift; + my $lstat = shift; + + print STDERR "DBG: name = $name\n" if ($debug); + print STDERR "DBG: fileid = $fileid\n" if ($debug); + print STDERR "DBG: fileindex = $fileindex\n" if ($debug); + print STDERR "DBG: jobid = $jobid\n" if ($debug); + print STDERR "DBG: visible = $visible\n" if ($debug); + print STDERR "DBG: lstat = $lstat\n" if ($debug); + + my $data = { + fileid => $fileid, + fileindex => $fileindex, + jobid => $jobid, + visible => ($visible >= 0) ? 1 : 0 + }; + + # decode file stat + my @stat = (); + + foreach my $s (split(' ', $lstat)) { + print STDERR "DBG: Add $s to stat array.\n" if ($debug); + push(@stat, from_base64($s)); + } + + $data->{'lstat'} = { + 'st_dev' => $stat[0], + 'st_ino' => $stat[1], + 'st_mode' => $stat[2], + 'st_nlink' => $stat[3], + 'st_uid' => $stat[4], + 'st_gid' => $stat[5], + 'st_rdev' => $stat[6], + 'st_size' => $stat[7], + 'st_blksize' => $stat[8], + 'st_blocks' => $stat[9], + 'st_atime' => $stat[10], + 'st_mtime' => $stat[11], + 'st_ctime' => $stat[12], + 'LinkFI' => $stat[13], + 'st_flags' => $stat[14], + 'data_stream' => $stat[15] + }; + + # Create mode string. + my $sstr = &mode2str($stat[2]); + $data->{'lstat'}->{'statstr'} = $sstr; + return $data; +} +# Read directory data, return hash reference. + +sub fetch_dir { + my $dir = shift; + + return $dircache->{$dir} if ($dircache->{$dir}); + + print "$dir not cached, fetching from database.\n" if ($verbose); + my $data = {}; + my $fmax = 0; + + my $dl = length($dir); + + print STDERR "? - 1: ftime = $ftime\n" if ($debug); + print STDERR "? - 2: client = $client\n" if ($debug); + print STDERR "? - 3: jobname = $jobname\n" if ($debug); + print STDERR "? - 4: rtime = $rtime\n" if ($debug); + print STDERR "? - 5: dir = $dir\n" if ($debug); + print STDERR "? - 6, 7: dl = $dl, $dl\n" if ($debug); + print STDERR "? - 8: ftime = $ftime\n" if ($debug); + print STDERR "? - 9: client = $client\n" if ($debug); + print STDERR "? - 10: jobname = $jobname\n" if ($debug); + print STDERR "? - 11: rtime = $rtime\n" if ($debug); + print STDERR "? - 12: dir = $dir\n" if ($debug); + + print STDERR "DBG: Execute - $queries{$db}->{'dir'}\n" if ($debug); + $dir_sth->execute( + $ftime, + $client, + $jobname, + $rtime, + $dir, + $dl, $dl, + $ftime, + $client, + $jobname, + $rtime, + $dir + ) || die "Can't execute $queries{$db}->{'dir'}\n"; + + while (my $ref = $dir_sth->fetchrow_hashref) { + my $file = $$ref{name}; + print STDERR "DBG: File $file found in database.\n" if ($debug); + my $l = length($file); + $fmax = $l if ($l > $fmax); + + $data->{$file} = &create_file_entry( + $file, + $ref->{'fileid'}, + $ref->{'fileindex'}, + $ref->{'jobid'}, + $ref->{'visible'}, + $ref->{'lstat'} + ); + } + + return undef if (!$fmax); + + $dircache->{$dir} = $data if ($usecache); + return $data; +} + +sub cache_catalog { + print "Loading entire catalog, please wait...\n"; + my $sth = $dbh->prepare($queries{$db}->{'cache'}) + || die "Can't prepare $queries{$db}->{'cache'}\n"; + print STDERR "DBG: Execute - $queries{$db}->{'cache'}\n" if ($debug); + $sth->execute($ftime, $client, $jobname, $rtime, $ftime) + || die "Can't execute $queries{$db}->{'cache'}\n"; + + print "Query complete, building catalog cache...\n" if ($verbose); + + while (my $ref = $sth->fetchrow_hashref) { + my $dir = $ref->{path}; + my $file = $ref->{name}; + print STDERR "DBG: File $dir$file found in database.\n" if ($debug); + + next if ($dir eq '/' and $file eq ''); # Skip data for / + + # Rearrange directory + + if ($file eq '' and $dir =~ m|(.*/)([^/]+/)$|) { + $dir = $1; + $file = $2; + } + + my $data = &create_file_entry( + $file, + $ref->{'fileid'}, + $ref->{'fileindex'}, + $ref->{'jobid'}, + $ref->{'visible'}, + $ref->{'lstat'} + ); + + $dircache->{$dir} = {} if (!$dircache->{$dir}); + $dircache->{$dir}->{$file} = $data; + } + + $sth->finish(); +} + +# Break a path up into dir and file. + +sub path_parts { + my $path = shift; + my $fqdir; + my $dir; + my $file; + + if (substr($path, 0, 1) eq '/') { + + # Find dir vs. file + if ($path =~ m|^(/.*/)([^/]*$)|) { + $fqdir = $dir = $1; + $file = $2; + } + else { # Must be in / + $fqdir = $dir = '/'; + $file = substr($path, 1); + } + + print STDERR "DBG: / Dir - $dir; file = $file\n" if ($debug); + } + # relative path + elsif ($path =~ m|^(.*/)([^/]*)$|) { + $fqdir = "$cwd$1"; + $dir = $1; + $file = $2; + print STDERR "DBG: Dir - $dir; file = $file\n" if ($debug); + } + # File is in our current directory. + else { + $fqdir = $cwd; + $dir = ''; + $file = $path; + print STDERR "DBG: Set dir to $dir\n" if ($debug); + } + + return ($fqdir, $dir, $file); +} + +sub lookup_client { + my $c = shift; + + if (!$clients) { + $clients = {}; + my $query = "select clientid, name from Client"; + my $sth = $dbh->prepare($query) || die "Can't prepare $query\n"; + $sth->execute || die "Can't execute $query\n"; + + while (my $ref = $sth->fetchrow_hashref) { + $clients->{$ref->{'name'}} = $ref->{'clientid'}; + } + + $sth->finish; + } + + if ($c !~ /^\d+$/) { + + if ($clients->{$c}) { + $c = $clients->{$c}; + } + else { + warn "Could not find client $c\n"; + $c = $client; + } + + } + + return $c; +} + +sub setjob { + + if (!$jobs) { + $jobs = {}; + my $query = "select distinct name from Job order by name"; + my $sth = $dbh->prepare($query) || die "Can't prepare $query\n"; + $sth->execute || die "Can't execute $query\n"; + + while (my $ref = $sth->fetchrow_hashref) { + $jobs->{$$ref{'name'}} = $$ref{'name'}; + } + + $sth->finish; + } + + my $query = "select + jobtdate + from + Job + where + jobtdate <= $rtime and + name = '$jobname' and + level = 'F' + order by jobtdate desc + limit 1 + "; + + my $sth = $dbh->prepare($query) || die "Can't prepare $query\n"; + $sth->execute || die "Can't execute $query\n"; + + if ($sth->rows == 1) { + my $ref = $sth->fetchrow_hashref; + $ftime = $$ref{jobtdate}; + } + else { + warn "Could not find full backup. Setting full time to 0.\n"; + $ftime = 0; + } + + $sth->finish; +} + +sub select_files { + my $mark = shift; + my $opts = shift; + my $dir = shift; + my @flist = @_; + + if (!@flist) { + + if ($cwd eq '/') { + my $finfo = &fetch_dir('/'); + @flist = keys %$finfo; + } + else { + @flist = ($cwd); + } + + } + + foreach my $f (@flist) { + $f =~ s|/+$||; + my $path = (substr($f, 0, 1) eq '/') ? $f : "$dir$f"; + my ($fqdir, $dir, $file) = &path_parts($path); + my $finfo = &fetch_dir($fqdir); + + if (!$finfo->{$file}) { + + if (!$finfo->{"$file/"}) { + warn "$f: File not found.\n"; + next; + } + + $file .= '/'; + } + + my $info = $finfo->{$file}; + + my $fid = $info->{'fileid'}; + my $fidx = $info->{'fileindex'}; + my $jid = $info->{'jobid'}; + my $size = $info->{'lstat'}->{'st_size'}; + + if ($opts->{'all'} || $info->{'visible'}) { + print STDERR "DBG: $file - $size bytes\n" + if ($debug); + + if ($mark) { + + if (!$restore{$fid}) { + print "Adding $fqdir$file\n" if (!$opts->{'quiet'}); + $restore{$fid} = [$jid, $fidx]; + $rnum++; + $rbytes += $size; + } + + } + else { + + if ($restore{$fid}) { + print "Removing $fqdir$file\n" if (!$opts->{'quiet'}); + delete $restore{$fid}; + $rnum--; + $rbytes -= $size; + } + + } + + if ($file =~ m|/$|) { + + # Use preloaded files if we already retrieved them. + if ($preload) { + my $newdir = "$dir$file"; + my $finfo = &fetch_dir($newdir); + &select_files($mark, $opts, $newdir, keys %$finfo); + next; + } + else { + my $newdir = "$fqdir$file"; + my $begin = ($opts->{'all'}) ? 0 : $ftime; + + print STDERR "DBG: Execute - $queries{$db}->{'sel'}\n" + if ($debug); + + $sel_sth->execute( + $client, + $jobname, + $rtime, + $begin, + $newdir, + $client, + $jobname, + $rtime, + $begin, + $newdir + ) || die "Can't execute $queries{$db}->{'sel'}\n"; + + while (my $ref = $sel_sth->fetchrow_hashref) { + my $file = $$ref{'name'}; + my $fid = $$ref{'fileid'}; + my $fidx = $$ref{'fileindex'}; + my $jid = $$ref{'jobid'}; + my @stat_enc = split(' ', $$ref{'lstat'}); + my $size = &from_base64($stat_enc[7]); + + if ($mark) { + + if (!$restore{$fid}) { + print "Adding $file\n" if (!$opts->{'quiet'}); + $restore{$fid} = [$jid, $fidx]; + $rnum++; + $rbytes += $size; + } + + } + else { + + if ($restore{$fid}) { + print "Removing $file\n" if (!$opts->{'quiet'}); + delete $restore{$fid}; + $rnum--; + $rbytes -= $size; + } + + } + + } + + } + + } + + } + + } + +} + +# Expand shell wildcards + +sub expand_files { + my $path = shift; + my ($fqdir, $dir, $file) = &path_parts($path); + my $finfo = &fetch_dir($fqdir); + return ($path) if (!$finfo); + + my $pat = "^$file\$"; + + # Add / for dir match + my $dpat = $file; + $dpat =~ s|/+$||; + $dpat = "^$dpat/\$"; + + my @match; + + $pat =~ s/\./\\./g; + $dpat =~ s/\./\\./g; + $pat =~ s/\?/./g; + $dpat =~ s/\?/./g; + $pat =~ s/\*/.*/g; + $dpat =~ s/\*/.*/g; + + foreach my $f (sort keys %$finfo) { + + if ($f =~ /$pat/) { + push (@match, ($fqdir eq $cwd) ? $f : "$fqdir$f"); + } + elsif ($f =~ /$dpat/) { + push (@match, ($fqdir eq $cwd) ? $f : "$fqdir$f"); + } + + } + + return ($path) if (!@match); + return @match; +} + +sub expand_dirs { + my $path = shift; + my ($fqdir, $dir, $file) = &path_parts($path, 1); + + print STDERR "Expand $path\n" if ($debug); + + my $finfo = &fetch_dir($fqdir); + return ($path) if (!$finfo); + + $file =~ s|/+$||; + + my $pat = "^$file/\$"; + my @match; + + $pat =~ s/\./\\./g; + $pat =~ s/\?/./g; + $pat =~ s/\*/.*/g; + + foreach my $f (sort keys %$finfo) { + print STDERR "Match $f to $pat\n" if ($debug); + push (@match, ($fqdir eq $cwd) ? $f : "$fqdir$f") if ($f =~ /$pat/); + } + + return ($path) if (!@match); + return @match; +} + +sub mode2str { + my $mode = shift; + my $sstr = ''; + + if (S_ISDIR($mode)) { + $sstr = 'd'; + } + elsif (S_ISCHR($mode)) { + $sstr = 'c'; + } + elsif (S_ISBLK($mode)) { + $sstr = 'b'; + } + elsif (S_ISREG($mode)) { + $sstr = '-'; + } + elsif (S_ISFIFO($mode)) { + $sstr = 'f'; + } + elsif (S_ISLNK($mode)) { + $sstr = 'l'; + } + elsif (S_ISSOCK($mode)) { + $sstr = 's'; + } + else { + $sstr = '?'; + } + + $sstr .= ($mode&S_IRUSR) ? 'r' : '-'; + $sstr .= ($mode&S_IWUSR) ? 'w' : '-'; + $sstr .= ($mode&S_IXUSR) ? + (($mode&S_ISUID) ? 's' : 'x') : + (($mode&S_ISUID) ? 'S' : '-'); + $sstr .= ($mode&S_IRGRP) ? 'r' : '-'; + $sstr .= ($mode&S_IWGRP) ? 'w' : '-'; + $sstr .= ($mode&S_IXGRP) ? + (($mode&S_ISGID) ? 's' : 'x') : + (($mode&S_ISGID) ? 'S' : '-'); + $sstr .= ($mode&S_IROTH) ? 'r' : '-'; + $sstr .= ($mode&S_IWOTH) ? 'w' : '-'; + $sstr .= ($mode&S_IXOTH) ? + (($mode&S_ISVTX) ? 't' : 'x') : + (($mode&S_ISVTX) ? 'T' : '-'); + + return $sstr; +} + +# Base 64 decoder +# Algorithm copied from bacula source + +sub from_base64 { + my $where = shift; + my $val = 0; + my $i = 0; + my $neg = 0; + + if (substr($where, 0, 1) eq '-') { + $neg = 1; + $where = substr($where, 1); + } + + while ($where ne '') { + $val <<= 6; + my $d = substr($where, 0, 1); + #print STDERR "\n$d - " . ord($d) . " - " . $base64_map[ord($d)] . "\n"; + $val += $base64_map[ord(substr($where, 0, 1))]; + $where = substr($where, 1); + } + + return $val; +} + +### Command completion code + +sub get_match { + my @m = @_; + my $r = ''; + + for (my $i = 0, my $matched = 1; $i < length($m[0]) && $matched; $i++) { + my $c = substr($m[0], $i, 1); + + for (my $j = 1; $j < @m; $j++) { + + if ($c ne substr($m[$j], $i, 1)) { + $matched = 0; + last; + } + + } + + $r .= $c if ($matched); + } + + return $r; +} + +sub complete { + my $text = shift; + my $line = shift; + my $start = shift; + my $end = shift; + + $tty_attribs->{'completion_append_character'} = ' '; + $tty_attribs->{completion_entry_function} = \&nocomplete; + print STDERR "\nDBG: text - $text; line - $line; start - $start; end = $end\n" + if ($debug); + + # Complete command if we are at start of line. + + if ($start == 0 || substr($line, 0, $start) =~ /^\s*$/) { + my @list = grep (/^$text/, sort keys %COMMANDS); + return () if (!@list); + my $match = (@list > 1) ? &get_match(@list) : ''; + return $match, @list; + } + else { + # Count arguments + my $cstr = $line; + $cstr =~ s/^\s+//; # Remove leading spaces + + my ($cmd, @args) = shellwords($cstr); + return () if (!defined($cmd)); + + # Complete dirs for cd + if ($cmd eq 'cd') { + return () if (@args > 1); + return &complete_files($text, 1); + } + # Complete files/dirs for info and ls + elsif ($cmd =~ /^(add|delete|info|ls|mark|unmark|versions)$/) { + return &complete_files($text, 0); + } + # Complete clients for client + elsif ($cmd eq 'client') { + return () if (@args > 2); + my $pat = $text; + $pat =~ s/\./\\./g; + my @flist; + + print STDERR "DBG: " . (@args) . " arguments found.\n" if ($debug); + + if (@args < 1 || (@args == 1 and $line =~ /[^\s]$/)) { + @flist = grep (/^$pat/, sort keys %$clients); + } + else { + @flist = grep (/^$pat/, sort keys %$jobs); + } + + return () if (!@flist); + my $match = (@flist > 1) ? &get_match(@flist) : ''; + + #return $match, map {s/ /\\ /g; $_} @flist; + return $match, @flist; + } + # Complete show options for show + elsif ($cmd eq 'show') { + return () if (@args > 1); + # attempt to suggest match. + my @list = grep (/^$text/, sort keys %SHOW); + return () if (!@list); + my $match = (@list > 1) ? &get_match(@list) : ''; + return $match, @list; + } + elsif ($cmd =~ /^(bsr|bootstrap|relocate)$/) { + $tty_attribs->{completion_entry_function} = + $tty_attribs->{filename_completion_function}; + } + + } + + return (); +} + +sub complete_files { + my $path = shift; + my $dironly = shift; + my $finfo; + my @flist; + + my ($fqdir, $dir, $pat) = &path_parts($path, 1); + + $pat =~ s/([.\[\]\\])/\\$1/g; + # First check for absolute name. + + $finfo = &fetch_dir($fqdir); + print STDERR "DBG: " . join(', ', keys %$finfo) . "\n" if ($debug); + return () if (!$finfo); # Nothing if dir not found. + + if ($dironly) { + @flist = grep (m|^$pat.*/$|, sort keys %$finfo); + } + else { + @flist = grep (/^$pat/, sort keys %$finfo); + } + + return undef if (!@flist); + + print STDERR "DBG: Files found\n" if ($debug); + + if (@flist == 1 && $flist[0] =~ m|/$|) { + $tty_attribs->{'completion_append_character'} = ''; + } + + @flist = map {s/ /\\ /g; ($fqdir eq $cwd) ? $_ : "$dir$_"} @flist; + my $match = (@flist > 1) ? &get_match(@flist) : ''; + + print STDERR "DBG: Dir - $dir; cwd - $cwd\n" if ($debug); + # Fill in dir if necessary. + return $match, @flist; +} + +sub nocomplete { + return (); +} + +# subroutine to create printf format for long listing of ls + +sub long_fmt { + my $flist = shift; + my $fmax = 0; + my $lmax = 0; + my $umax = 0; + my $gmax = 0; + my $smax = 0; + + foreach my $f (@$flist) { + my $file = $f->[0]; + my $info = $f->[1]; + my $lstat = $info->{'lstat'}; + + my $l = length($file); + $fmax = $l if ($l > $fmax); + + $l = length($lstat->{'st_nlink'}); + $lmax = $l if ($l > $lmax); + $l = length($lstat->{'st_uid'}); + $umax = $l if ($l > $umax); + $l = length($lstat->{'st_gid'}); + $gmax = $l if ($l > $gmax); + $l = length($lstat->{'st_size'}); + $smax = $l if ($l > $smax); + } + + return "%s %${lmax}d %${umax}d %${gmax}d %${smax}d %s %s\n"; +} + +sub print_by_cols { + my @list = @_; + my $l = @list; + my $w = $term->get_screen_size; + my @wds = (1); + my $m = $w/3 + 1; + my $max_cols = ($m < @list) ? $w : @list; + my $fpc = 1; + my $cols = 1; + + print STDERR "Need to print $l files\n" if ($debug); + + while($max_cols > 1) { + my $used = 0; + + # Initialize array of widths + @wds = 0 x $max_cols; + + for ($cols = 0; $cols < $max_cols && $used < $w; $cols++) { + my $cw = 0; + + for (my $j = $cols*$fpc; $j < ($cols + 1)*$fpc && $j < $l; $j++ ) { + my $fl = length($list[$j]->[0]); + $cw = $fl if ($fl > $cw); + } + + $wds[$cols] = $cw; + $used += $cw; + print STDERR "DBG: Total so far is $used\n" if ($debug); + + if ($used >= $w) { + $cols++; + last; + } + + $used += 3; + } + + print STDERR "DBG: $cols of $max_cols columns uses $used space.\n" + if ($debug); + + print STDERR "DBG: Print $fpc files per column\n" + if ($debug); + + last if ($used <= $w && $cols == $max_cols); + $fpc = int($l/$cols); + $fpc++ if ($l % $cols); + $max_cols = $cols - 1; + } + + if ($max_cols == 1) { + $cols = 1; + $fpc = $l; + } + + print STDERR "Print out $fpc rows with $cols columns\n" + if ($debug); + + for (my $i = 0; $i < $fpc; $i++) { + + for (my $j = $i; $j < $fpc*$cols; $j += $fpc) { + my $cw = $wds[($j - $i)/$fpc]; + my $fmt = "%s%-${cw}s"; + my $file; + my $r; + + if ($j < @list) { + $file = $list[$j]->[0]; + my $fdata = $list[$j]->[1]; + $r = ($restore{$fdata->{'fileid'}}) ? '+' : ' '; + } + else { + $file = ''; + $r = ' '; + } + + print ' ' if ($i != $j); + printf $fmt, $r, $file; + } + + print "\n"; + } + +} + +sub ls_date { + my $seconds = shift; + my $date; + + if (abs(time() - $seconds) > 15724800) { + $date = time2str('%b %e %Y', $seconds); + } + else { + $date = time2str('%b %e %R', $seconds); + } + + return $date; +} + +# subroutine to load entire bacula database. +=head1 SHELL + +Once running, B will present the user with a shell like +environment where file can be exampled and selected for recover. The +shell will provide command history and editing and if you have the +Gnu readline module installed on your system, it will also provide +command completion. When interacting with files, wildcards should work +as expected. + +The following commands are understood. + +=cut + +sub parse_command { + my $cstr = shift; + my @command; + my $cmd; + my @args; + + # Nop on blank or commented lines + return ('nop') if ($cstr =~ /^\s*$/); + return ('nop') if ($cstr =~ /^\s*#/); + + # Get rid of leading white space to make shellwords work better + $cstr =~ s/^\s*//; + + ($cmd, @args) = shellwords($cstr); + + if (!defined($cmd)) { + warn "Could not warse $cstr\n"; + return ('nop'); + } + +=head2 add [I] + +Mark I for recovery. If I is not specified, mark all +files in the current directory. B is an alias for this command. + +=cut + elsif ($cmd eq 'add' || $cmd eq 'mark') { + my $options = {}; + @ARGV = @args; + + # Parse ls options + my $vars = {}; + getopts("aq", $vars) || return ('error', 'Add: Usage add [-q|-a] files'); + $options->{'all'} = $vars->{'a'}; + $options->{'quiet'} =$vars->{'q'}; + + + @command = ('add', $options); + + foreach my $a (@ARGV) { + push(@command, &expand_files($a)); + } + + } + +=head2 bootstrap I + +Create a bootstrap file suitable for use with the bacula B +command. B is an alias for this command. + +=cut + elsif ($cmd eq 'bootstrap' || $cmd eq 'bsr') { + return ('error', 'bootstrap takes single argument (file to write to)') + if (@args != 1); + @command = ('bootstrap', $args[0]); + } + +=head2 cd I + +Allows you to set your current directory. This command understands . for +the current directory and .. for the parent. Also, cd - will change you +back to the previous directory you were in. + +=cut + elsif ($cmd eq 'cd') { + # Cd with no args goes to / + @args = ('/') if (!@args); + + if (@args != 1) { + return ('error', 'Bad cd. cd requires 1 and only 1 argument.'); + } + + my $todir = $args[0]; + + # cd - should cd to previous directory. It is handled later. + return ('cd', '-') if ($todir eq '-'); + + # Expand wilecards + my @e = expand_dirs($todir); + + if (@e > 1) { + return ('error', 'Bad cd. Wildcard expands to more than 1 dir.'); + } + + $todir = $e[0]; + + print STDERR "Initial target is $todir\n" if ($debug); + + # remove prepended . + + while ($todir =~ m|^\./(.*)|) { + $todir = $1; + $todir = '.' if (!$todir); + } + + # If only . is left, replace with current directory. + $todir = $cwd if ($todir eq '.'); + print STDERR "target after . processing is $todir\n" if ($debug); + + # Now deal with .. + my $prefix = $cwd; + + while ($todir =~ m|^\.\./(.*)|) { + $todir = $1; + print STDERR "DBG: ../ found, new todir - $todir\n" if ($debug); + $prefix =~ s|/[^/]*/$|/|; + } + + if ($todir eq '..') { + $prefix =~ s|/[^/]*/$|/|; + $todir = ''; + } + + print STDERR "target after .. processing is $todir\n" if ($debug); + print STDERR "DBG: Final prefix - $prefix\n" if ($debug); + + $todir = "$prefix$todir" if ($prefix ne $cwd); + + print STDERR "DBG: todir after .. handling - $todir\n" if ($debug); + + # Turn relative directories into absolute directories. + + if (substr($todir, 0, 1) ne '/') { + print STDERR "DBG: $todir has no leading /, prepend $cwd\n" if ($debug); + $todir = "$cwd$todir"; + } + + # Make sure we have a trailing / + + if (substr($todir, length($todir) - 1) ne '/') { + print STDERR "DBG: No trailing /, append /\n" if ($debug); + $todir .= '/'; + } + + @command = ('cd', $todir); + } + +=head2 changetime I + +This command changes the time used in generating the view of the +filesystem. Files that were backed up before the specified time +(optionally until the next full backup) will be the only files seen. + +The time can be specifed in almost any reasonable way. Here are a few +examples: + +=over 4 + +=item 1/1/2006 + +=item yesterday + +=item sunday + +=item 5 days ago + +=item last month + +=back + +=cut + elsif ($cmd eq 'changetime') { + @command = ($cmd, join(' ', @args)); + } + +=head2 client I I + +Specify the client and jobname to view. + +=cut + elsif ($cmd eq 'client') { + + if (@args != 2) { + return ('error', 'client takes a two arguments client-name job-name'); + } + + @command = ('client', @args); + } + +=head2 debug + +Toggle debug flag. + +=cut + elsif ($cmd eq 'debug') { + @command = ('debug'); + } + +=head2 delete [I] + +Un-mark file that were previous marked for recovery. If I is +not specified, mark all files in the current directory. B is an +alias for this command. + +=cut + elsif ($cmd eq 'delete' || $cmd eq 'unmark') { + @command = ('delete'); + + foreach my $a (@args) { + push(@command, &expand_files($a)); + } + + } + +=head2 help + +Show list of command with brief description of what they do. + +=cut + elsif ($cmd eq 'help') { + @command = ('help'); + } + +=head2 history + +Display command line history. B is an alias for this command. + +=cut + elsif ($cmd eq 'h' || $cmd eq 'history') { + @command = ('history'); + } + +=head2 info [I] + +Display information about the specified files. The format of the +information provided is reminiscent of the bootstrap file. + +=cut + elsif ($cmd eq 'info') { + push(@command, 'info'); + + foreach my $a (@args) { + push(@command, &expand_files($a)); + } + + } + +=head2 ls [I] + +This command will list the specified files (defaults to all files in +the current directory). Files are sorted alphabetically be default. It +understand the following options. + +=over 4 + +=item -a + +Causes ls to list files even if they are only on backups preceding the +closest full backup to the currently selected date/time. + +=item -l + +List files in long format (like unix ls command). + +=item -r + +reverse direction of sort. + +=item -S + +Sort files by size. + +=item -t + +Sort files by time + +=back + +=cut + elsif ($cmd eq 'ls' || $cmd eq 'dir' || $cmd eq 'll') { + my $options = {}; + @ARGV = @args; + + # Parse ls options + my $vars = {}; + getopts("altSr", $vars) || return ('error', 'Bad ls usage.'); + $options->{'all'} = $vars->{'a'}; + $options->{'long'} = $vars->{'l'}; + $options->{'long'} = 1 if ($cmd eq 'dir' || $cmd eq 'll'); + + $options->{'sort'} = 'time' if ($vars->{'t'}); + + return ('error', 'Only one sort at a time allowed.') + if ($options->{'sort'} && ($vars->{'S'})); + + $options->{'sort'} = 'size' if ($vars->{'S'}); + $options->{'sort'} = 'alpha' if (!$options->{'sort'}); + + $options->{'sort'} = 'r' . $options->{'sort'} if ($vars->{'r'}); + + @command = ('ls', $options); + + foreach my $a (@ARGV) { + push(@command, &expand_files($a)); + } + + } + +=head2 pwd + +Show current directory. + +=cut + elsif ($cmd eq 'pwd') { + @command = ('pwd'); + } + +=head2 quit + +Exit program. + +B, B and B are all aliases for this command. + +=cut + elsif ($cmd eq 'quit' || $cmd eq 'q' || $cmd eq 'exit' || $cmd eq 'x') { + @command = ('quit'); + } + +=head2 recover + +This command creates a table in the bacula catalog that case be used to +restore the selected files. It will also display the command to enter +into bconsole to start the restore. + +=cut + elsif ($cmd eq 'recover') { + @command = ('recover'); + } + +=head2 relocate I + +Specify the directory to restore files to. Defaults to /. + +=cut + elsif ($cmd eq 'relocate') { + return ('error', 'relocate required a single directory to relocate to') + if (@args != 1); + + my $todir = $args[0]; + $todir = `pwd` . $todir if (substr($todir, 0, 1) ne '/'); + @command = ('relocate', $todir); + } + +=head2 show I + +Show various information about B. The following items can be specified. + +=over 4 + +=item cache + +Display's a list of cached directories. + +=item catalog + +Displays the name of the catalog we are talking to. + +=item client + +Display current client and job named that are being viewed. + +=item restore + +Display the number of files and size to be restored. + +=item volumes + +Display the volumes that will be required to perform a restore on the +selected files. + +=back + +=cut + elsif ($cmd eq 'show') { + return ('error', 'show takes a single argument') if (@args != 1); + @command = ('show', $args[0]); + } + +=head2 verbose + +Toggle verbose flag. + +=cut + elsif ($cmd eq 'verbose') { + @command = ('verbose'); + } + +=head2 versions [I] + +View all version of specified files available from the current +time. B is an alias for this command. + +=cut + elsif ($cmd eq 'versions' || $cmd eq 'ver') { + push(@command, 'versions'); + + foreach my $a (@args) { + push(@command, &expand_files($a)); + } + + } + +=head2 volumes + +Display the volumes that will be required to perform a restore on the +selected files. + +=cut + elsif ($cmd eq 'volumes') { + @command = ('volumes'); + } + else { + @command = ('error', "$cmd: Unknown command"); + } + + return @command; +} + +############################################################################## +### Command processing +############################################################################## + +# Add files to restore list. + +sub cmd_add { + my $opts = shift; + my @flist = @_; + + my $save_rnum = $rnum; + &select_files(1, $opts, $cwd, @flist); + print "" . ($rnum - $save_rnum) . " files marked for restore\n"; +} + +sub cmd_bootstrap { + my $bsrfile = shift; + my %jobs; + my @media; + my %bootstrap; + + # Get list of job ids to restore from. + + foreach my $fid (keys %restore) { + $jobs{$restore{$fid}->[0]} = 1; + } + + my $jlist = join(', ', sort keys %jobs); + + if (!$jlist) { + print "Nothing to restore.\n"; + return; + } + + # Read in media info + + my $query = "select + Job.jobid, + volumename, + mediatype, + volsessionid, + volsessiontime, + firstindex, + lastindex, + startfile as volfile, + JobMedia.startblock, + JobMedia.endblock, + volindex + from + Job, + Media, + JobMedia + where + Job.jobid in ($jlist) and + Job.jobid = JobMedia.jobid and + JobMedia.mediaid = Media.mediaid + order by + volumename, + volsessionid, + volindex + "; + + my $sth = $dbh->prepare($query) || die "Can't prepare $query\n"; + $sth->execute || die "Can't execute $query\n"; + + while (my $ref = $sth->fetchrow_hashref) { + push(@media, { + 'jobid' => $ref->{'jobid'}, + 'volumename' => $ref->{'volumename'}, + 'mediatype' => $ref->{'mediatype'}, + 'volsessionid' => $ref->{'volsessionid'}, + 'volsessiontime' => $ref->{'volsessiontime'}, + 'firstindex' => $ref->{'firstindex'}, + 'lastindex' => $ref->{'lastindex'}, + 'volfile' => $ref->{'volfile'}, + 'startblock' => $ref->{'startblock'}, + 'endblock' => $ref->{'endblock'}, + 'volindex' => $ref->{'volindex'} + }); + } + +# Gather bootstrap info +# +# key - jobid.volumename.volumesession.volindex +# job +# name +# type +# session +# time +# file +# startblock +# endblock +# array of file indexes. + + for my $info (values %restore) { + my $jobid = $info->[0]; + my $fidx = $info->[1]; + + foreach my $m (@media) { + + if ($jobid == $m->{'jobid'} && $fidx >= $m->{'firstindex'} && $fidx <= $m->{'lastindex'}) { + my $key = "$jobid."; + $key .= "$m->{volumename}.$m->{volsessionid}.$m->{volindex}"; + + $bootstrap{$key} = { + 'job' => $jobid, + 'name' => $m->{'volumename'}, + 'type' => $m->{'mediatype'}, + 'session' => $m->{'volsessionid'}, + 'index' => $m->{'volindex'}, + 'time' => $m->{'volsessiontime'}, + 'file' => $m->{'volfile'}, + 'startblock' => $m->{'startblock'}, + 'endblock' => $m->{'endblock'} + } + if (!$bootstrap{$key}); + + $bootstrap{$key}->{'files'} = [] + if (!$bootstrap{$key}->{'files'}); + push(@{$bootstrap{$key}->{'files'}}, $fidx); + } + + } + + } + + # print bootstrap + + print STDERR "DBG: Keys = " . join(', ', keys %bootstrap) . "\n" + if ($debug); + + my @keys = sort { + return $bootstrap{$a}->{'time'} <=> $bootstrap{$b}->{'time'} + if ($bootstrap{$a}->{'time'} != $bootstrap{$b}->{'time'}); + return $bootstrap{$a}->{'name'} cmp $bootstrap{$b}->{'name'} + if ($bootstrap{$a}->{'name'} ne $bootstrap{$b}->{'name'}); + return $bootstrap{$a}->{'session'} <=> $bootstrap{$b}->{'session'} + if ($bootstrap{$a}->{'session'} != $bootstrap{$b}->{'session'}); + return $bootstrap{$a}->{'index'} <=> $bootstrap{$b}->{'index'}; + } keys %bootstrap; + + if (!open(BSR, ">$bsrfile")) { + warn "$bsrfile: $|\n"; + return; + } + + foreach my $key (@keys) { + my $info = $bootstrap{$key}; + print BSR "Volume=\"$info->{name}\"\n"; + print BSR "MediaType=\"$info->{type}\"\n"; + print BSR "VolSessionId=$info->{session}\n"; + print BSR "VolSessionTime=$info->{time}\n"; + print BSR "VolFile=$info->{file}\n"; + print BSR "VolBlock=$info->{startblock}-$info->{endblock}\n"; + + my @fids = sort { $a <=> $b} @{$bootstrap{$key}->{'files'}}; + my $first; + my $prev; + + for (my $i = 0; $i < @fids; $i++) { + $first = $fids[$i] if (!$first); + + if ($prev) { + + if ($fids[$i] != $prev + 1) { + print BSR "FileIndex=$first"; + print BSR "-$prev" if ($first != $prev); + print BSR "\n"; + $first = $fids[$i]; + } + + } + + $prev = $fids[$i]; + } + + print BSR "FileIndex=$first"; + print BSR "-$prev" if ($first != $prev); + print BSR "\n"; + print BSR "Count=" . (@fids) . "\n"; + } + + close(BSR); +} + +# Change directory + +sub cmd_cd { + my $dir = shift; + + my $save = $files; + + $dir = $lwd if ($dir eq '-' && defined($lwd)); + + if ($dir ne '-') { + $files = &fetch_dir($dir); + } + else { + warn "Previous director not defined.\n"; + } + + if ($files) { + $lwd = $cwd; + $cwd = $dir; + } + else { + print STDERR "Could not locate directory $dir\n"; + $files = $save; + } + + $cwd = '/' if (!$cwd); +} + +sub cmd_changetime { + my $tstr = shift; + + if (!$tstr) { + print "Time currently set to " . localtime($rtime) . "\n"; + return; + } + + my $newtime = parsedate($tstr, FUZZY => 1, PREFER_PAST => 1); + + if (defined($newtime)) { + print STDERR "Time evaluated to $newtime\n" if ($debug); + $rtime = $newtime; + print "Setting date/time to " . localtime($rtime) . "\n"; + &setjob; + + # Clean cache. + $dircache = {}; + &cache_catalog if ($preload); + + # Get directory based on new time. + $files = &fetch_dir($cwd); + } + else { + print STDERR "Could not parse $tstr as date/time\n"; + } + +} + +# Change client + +sub cmd_client { + my $c = shift; + $jobname = shift; # Set global job name + + # Lookup client id. + $client = &lookup_client($c); + + # Clear cache, we changed machines/jobs + $dircache = {}; + &cache_catalog if ($preload); + + # Find last full backup time. + &setjob; + + # Get current directory on new client. + $files = &fetch_dir($cwd); + + # Clear restore info + $rnum = 0; + $rbytes = 0; + %restore = (); +} + +sub cmd_debug { + $debug = 1 - $debug; +} + +sub cmd_delete { + my @flist = @_; + my $opts = {quiet=>1}; + + my $save_rnum = $rnum; + &select_files(0, $opts, $cwd, @flist); + print "" . ($save_rnum - $rnum) . " files un-marked for restore\n"; +} + +sub cmd_help { + + foreach my $h (sort keys %COMMANDS) { + printf "%-12s %s\n", $h, $COMMANDS{$h}; + } + +} + +sub cmd_history { + + foreach my $h ($term->GetHistory) { + print "$h\n"; + } + +} + +# Print catalog/tape info about files + +sub cmd_info { + my @flist = @_; + @flist = ($cwd) if (!@flist); + + foreach my $f (@flist) { + $f =~ s|/+$||; + my ($fqdir, $dir, $file) = &path_parts($f); + my $finfo = &fetch_dir($fqdir); + + if (!$finfo->{$file}) { + + if (!$finfo->{"$file/"}) { + warn "$f: File not found.\n"; + next; + } + + $file .= '/'; + } + + my $fileid = $finfo->{$file}->{fileid}; + my $fileindex = $finfo->{$file}->{fileindex}; + my $jobid = $finfo->{$file}->{jobid}; + + print "#$f -\n"; + print "#FileID : $finfo->{$file}->{fileid}\n"; + print "#JobID : $jobid\n"; + print "#Visible : $finfo->{$file}->{visible}\n"; + + my $query = "select + volumename, + mediatype, + volsessionid, + volsessiontime, + startfile, + JobMedia.startblock, + JobMedia.endblock + from + Job, + Media, + JobMedia + where + Job.jobid = $jobid and + Job.jobid = JobMedia.jobid and + $fileindex >= firstindex and + $fileindex <= lastindex and + JobMedia.mediaid = Media.mediaid + "; + + my $sth = $dbh->prepare($query) || die "Can't prepare $query\n"; + $sth->execute || die "Can't execute $query\n"; + + while (my $ref = $sth->fetchrow_hashref) { + print "Volume=\"$ref->{volumename}\"\n"; + print "MediaType=\"$ref->{mediatype}\"\n"; + print "VolSessionId=$ref->{volsessionid}\n"; + print "VolSessionTime=$ref->{volsessiontime}\n"; + print "VolFile=$ref->{startfile}\n"; + print "VolBlock=$ref->{startblock}-$ref->{endblock}\n"; + print "FileIndex=$finfo->{$file}->{fileindex}\n"; + print "Count=1\n"; + } + + $sth->finish; + } + +} + +# List files. + +sub cmd_ls { + my $opts = shift; + my @flist = @_; + my @keys; + + print STDERR "DBG: " . (@flist) . " files to list.\n" if ($debug); + + if (!@flist) { + @flist = keys %$files; + } + + # Sort files as specified. + + if ($opts->{sort} eq 'alpha') { + print STDERR "DBG: Sort by alpha\n" if ($debug); + @keys = sort @flist; + } + elsif ($opts->{sort} eq 'ralpha') { + print STDERR "DBG: Sort by reverse alpha\n" if ($debug); + @keys = sort {$b cmp $a} @flist; + } + elsif ($opts->{sort} eq 'time') { + print STDERR "DBG: Sort by time\n" if ($debug); + @keys = sort { + return $a cmp $b + if ($files->{$b}->{'lstat'}->{'st_mtime'} == + $files->{$a}->{'lstat'}->{'st_mtime'}); + $files->{$b}->{'lstat'}->{'st_mtime'} <=> + $files->{$a}->{'lstat'}->{'st_mtime'} + } @flist; + } + elsif ($opts->{sort} eq 'rtime') { + print STDERR "DBG: Sort by reverse time\n" if ($debug); + @keys = sort { + return $b cmp $a + if ($files->{$a}->{'lstat'}->{'st_mtime'} == + $files->{$b}->{'lstat'}->{'st_mtime'}); + $files->{$a}->{'lstat'}->{'st_mtime'} <=> + $files->{$b}->{'lstat'}->{'st_mtime'} + } @flist; + } + elsif ($opts->{sort} eq 'size') { + print STDERR "DBG: Sort by size\n" if ($debug); + @keys = sort { + return $a cmp $b + if ($files->{$a}->{'lstat'}->{'st_size'} == + $files->{$b}->{'lstat'}->{'st_size'}); + $files->{$b}->{'lstat'}->{'st_size'} <=> + $files->{$a}->{'lstat'}->{'st_size'} + } @flist; + } + elsif ($opts->{sort} eq 'rsize') { + print STDERR "DBG: Sort by reverse size\n" if ($debug); + @keys = sort { + return $b cmp $a + if ($files->{$a}->{'lstat'}->{'st_size'} == + $files->{$b}->{'lstat'}->{'st_size'}); + $files->{$a}->{'lstat'}->{'st_size'} <=> + $files->{$b}->{'lstat'}->{'st_size'} + } @flist; + } + else { + print STDERR "DBG: $opts->{sort}, no sort\n" if ($debug); + @keys = @flist; + } + + @flist = (); + + foreach my $f (@keys) { + print STDERR "DBG: list $f\n" if ($debug); + $f =~ s|/+$||; + my ($fqdir, $dir, $file) = &path_parts($f); + my $finfo = &fetch_dir($fqdir); + + if (!$finfo->{$file}) { + + if (!$finfo->{"$file/"}) { + warn "$f: File not found.\n"; + next; + } + + $file .= '/'; + } + + my $fdata = $finfo->{$file}; + + if ($opts->{'all'} || $fdata->{'visible'}) { + push(@flist, ["$dir$file", $fdata]); + } + + } + + if ($opts->{'long'}) { + my $lfmt = &long_fmt(\@flist) if ($opts->{'long'}); + + foreach my $f (@flist) { + my $file = $f->[0]; + my $fdata = $f->[1]; + my $r = ($restore{$fdata->{'fileid'}}) ? '+' : ' '; + my $lstat = $fdata->{'lstat'}; + + printf $lfmt, $lstat->{'statstr'}, $lstat->{'st_nlink'}, + $lstat->{'st_uid'}, $lstat->{'st_gid'}, $lstat->{'st_size'}, + ls_date($lstat->{'st_mtime'}), "$r$file"; + } + } + else { + &print_by_cols(@flist); + } + +} + +sub cmd_pwd { + print "$cwd\n"; +} + +# Create restore data for bconsole + +sub cmd_recover { + my $query = "create table recover (jobid int, fileindex int)"; + + $dbh->do($query) + || warn "Could not create recover table. Hope it's already there.\n"; + + if ($db eq 'postgres') { + $query = "COPY recover FROM STDIN"; + + $dbh->do($query) || die "Can't execute $query\n"; + + foreach my $finfo (values %restore) { + $dbh->pg_putline("$finfo->[0]\t$finfo->[1]\n"); + } + + $dbh->pg_endcopy; + } + else { + + foreach my $finfo (values %restore) { + $query = "insert into recover ( + 'jobid', 'fileindex' + ) + values ( + $finfo->[0], $finfo->[1] + )"; + $dbh->do($query) || die "Can't execute $query\n"; + } + + } + + $query = "GRANT all on recover to bacula"; + $dbh->do($query) || die "Can't execute $query\n"; + + $query = "select name from Client where clientid = $client"; + my $sth = $dbh->prepare($query) || die "Can't prepare $query\n"; + $sth->execute || die "Can't execute $query\n"; + + my $ref = $sth->fetchrow_hashref; + print "Restore prepared. Run bconsole and enter the following command\n"; + print "restore client=$$ref{name} where=$restore_to file=\?recover\n"; + $sth->finish; +} + +sub cmd_relocate { + $restore_to = shift; +} + +# Display information about recover's state + +sub cmd_show { + my $what = shift; + + if ($what eq 'clients') { + + foreach my $c (sort keys %$clients) { + print "$c\n"; + } + + } + elsif ($what eq 'catalog') { + print "$catalog\n"; + } + elsif ($what eq 'client') { + my $query = "select name from Client where clientid = $client"; + my $sth = $dbh->prepare($query) || die "Can't prepare $query\n"; + $sth->execute || die "Can't execute $query\n"; + + my $ref = $sth->fetchrow_hashref; + print "$$ref{name}; $jobname\n"; + $sth->finish; + } + elsif ($what eq 'cache') { + print "The following directories are cached\n"; + + foreach my $d (sort keys %$dircache) { + print "$d\n"; + } + + } + elsif ($what eq 'restore') { + print "There are $rnum files marked for restore.\n"; + + print STDERR "DBG: Bytes = $rbytes\n" if ($debug); + + if ($rbytes < 1024) { + print "The restore will require $rbytes bytes.\n"; + } + elsif ($rbytes < 1024*1024) { + my $rk = $rbytes/1024; + printf "The restore will require %.2f KB.\n", $rk; + } + elsif ($rbytes < 1024*1024*1024) { + my $rm = $rbytes/1024/1024; + printf "The restore will require %.2f MB.\n", $rm; + } + else { + my $rg = $rbytes/1024/1024/1024; + printf "The restore will require %.2f GB.\n", $rg; + } + + print "Restores will be placed in $restore_to\n"; + } + elsif ($what eq 'volumes') { + &cmd_volumes; + } + elsif ($what eq 'qinfo') { + my $dl = length($cwd); + print "? - 1: ftime = $ftime\n"; + print "? - 2: client = $client\n"; + print "? - 3: jobname = $jobname\n"; + print "? - 4: rtime = $rtime\n"; + print "? - 5: dir = $cwd\n"; + print "? - 6, 7: dl = $dl\n"; + print "? - 8: ftime = $ftime\n"; + print "? - 9: client = $client\n"; + print "? - 10: jobname = $jobname\n"; + print "? - 11: rtime = $rtime\n"; + print "? - 12: dir = $cwd\n"; + } + else { + warn "Don't know how to show $what\n"; + } + +} + +sub cmd_verbose { + $verbose = 1 - $verbose; +} + +sub cmd_versions { + my @flist = @_; + + @flist = ($cwd) if (!@flist); + + foreach my $f (@flist) { + my $path; + my $data = {}; + + print STDERR "DBG: Get versions for $f\n" if ($debug); + + $f =~ s|/+$||; + my ($fqdir, $dir, $file) = &path_parts($f); + my $finfo = &fetch_dir($fqdir); + + if (!$finfo->{$file}) { + + if (!$finfo->{"$file/"}) { + warn "$f: File not found.\n"; + next; + } + + $file .= '/'; + } + + if ($file =~ m|/$|) { + $path = "$fqdir$file"; + $file = ''; + } + else { + $path = $fqdir; + } + + print STDERR "DBG: Use $ftime, $path, $file, $client, $jobname\n" + if ($debug); + + $ver_sth->execute($ftime, $rtime, $path, $file, $client, $jobname) + || die "Can't execute $queries{$db}->{'ver'}\n"; + + # Gather stats + + while (my $ref = $ver_sth->fetchrow_hashref) { + my $f = "$ref->{name};$ref->{jobtdate}"; + $data->{$f} = &create_file_entry( + $f, + $ref->{'fileid'}, + $ref->{'fileindex'}, + $ref->{'jobid'}, + $ref->{'visible'}, + $ref->{'lstat'} + ); + + $data->{$f}->{'jobtdate'} = $ref->{'jobtdate'}; + $data->{$f}->{'volume'} = $ref->{'volumename'}; + } + + my @keys = sort { + $data->{$a}->{'jobtdate'} <=> + $data->{$b}->{'jobtdate'} + } keys %$data; + + my @list = (); + + foreach my $f (@keys) { + push(@list, [$file, $data->{$f}]); + } + + my $lfmt = &long_fmt(\@list); + print "\nVersions of \`$path$file' earlier than "; + print localtime($rtime) . ":\n\n"; + + foreach my $f (@keys) { + my $lstat = $data->{$f}->{'lstat'}; + printf $lfmt, $lstat->{'statstr'}, $lstat->{'st_nlink'}, + $lstat->{'st_uid'}, $lstat->{'st_gid'}, $lstat->{'st_size'}, + time2str('%c', $lstat->{'st_mtime'}), $file; + print "save time: " . localtime($data->{$f}->{'jobtdate'}) . "\n"; + print " location: $data->{$f}->{volume}\n\n"; + } + + } + +} + +# List volumes needed for restore. + +sub cmd_volumes { + my %media; + my @jobmedia; + my %volumes; + + # Get media. + my $query = "select mediaid, volumename from Media"; + my $sth = $dbh->prepare($query) || die "Can't prepare $query\n"; + + $sth->execute || die "Can't execute $query\n"; + + while (my $ref = $sth->fetchrow_hashref) { + $media{$$ref{'mediaid'}} = $$ref{'volumename'}; + } + + $sth->finish(); + + # Get media usage. + $query = "select mediaid, jobid, firstindex, lastindex from JobMedia"; + $sth = $dbh->prepare($query) || die "Can't prepare $query\n"; + + $sth->execute || die "Can't execute $query\n"; + + while (my $ref = $sth->fetchrow_hashref) { + push(@jobmedia, { + 'mediaid' => $$ref{'mediaid'}, + 'jobid' => $$ref{'jobid'}, + 'firstindex' => $$ref{'firstindex'}, + 'lastindex' => $$ref{'lastindex'} + }); + } + + $sth->finish(); + + # Find needed volumes + + foreach my $fileid (keys %restore) { + my ($jobid, $idx) = @{$restore{$fileid}}; + + foreach my $jm (@jobmedia) { + next if ($jm->{'jobid'}) != $jobid; + + if ($idx >= $jm->{'firstindex'} && $idx <= $jm->{'lastindex'}) { + $volumes{$media{$jm->{'mediaid'}}} = 1; + } + + } + + } + + print "The following volumes are needed for restore.\n"; + + foreach my $v (sort keys %volumes) { + print "$v\n"; + } + +} + +sub cmd_error { + my $msg = shift; + print STDERR "$msg\n"; +} + +############################################################################## +### Start of program +############################################################################## + +&cache_catalog if ($preload); + +print "Using $readline for command processing\n" if ($verbose); + +# Initialize command completion + +# Add binding for Perl readline. Issue warning. +if ($readline eq 'Term::ReadLine::Gnu') { + $term->ReadHistory($HIST_FILE); + print STDERR "DBG: FCD - $tty_attribs->{filename_completion_desired}\n" + if ($debug); + $tty_attribs->{attempted_completion_function} = \&complete; + $tty_attribs->{attempted_completion_function} = \&complete; + print STDERR "DBG: Quote chars = '$tty_attribs->{filename_quote_characters}'\n" if ($debug); +} +elsif ($readline eq 'Term::ReadLine::Perl') { + readline::rl_bind('TAB', 'ViComplete'); + warn "Command completion disabled. $readline is seriously broken\n"; +} +else { + warn "Can't deal with $readline, Command completion disabled.\n"; +} + +&cmd_cd($start_dir); + +while (defined($cstr = $term->readline('recover> '))) { + print "\n" if ($readline eq 'Term::ReadLine::Perl'); + my @command = parse_command($cstr); + last if ($command[0] eq 'quit'); + next if ($command[0] eq 'nop'); + + print STDERR "Execute $command[0] command.\n" if ($debug); + + my $cmd = \&{"cmd_$command[0]"}; + + # The following line will call the subroutine named cmd_ prepended to + # the name of the command returned by parse_command. + + &$cmd(@command[1..$#command]); +}; + +$dir_sth->finish(); +$sel_sth->finish(); +$ver_sth->finish(); +$dbh->disconnect(); + +print "\n" if (!defined($cstr)); + +$term->WriteHistory($HIST_FILE) if ($readline eq 'Term::ReadLine::Gnu'); + +=head1 DEPENDENCIES + +The following CPAN modules are required to run this program. + +DBI, Term::ReadKey, Time::ParseDate, Date::Format, Text::ParseWords + +Additionally, you will only get command line completion if you also have + +Term::ReadLine::Gnu + +=head1 AUTHOR + +Karl Hakimian + +=head1 LICENSE + +Copyright (C) 2006 Karl Hakimian + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 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, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +=cut diff --git a/Branch-2.2/bacula/examples/reports/bacula_mail_summary.sh b/Branch-2.2/bacula/examples/reports/bacula_mail_summary.sh new file mode 100755 index 0000000000..901f2efc93 --- /dev/null +++ b/Branch-2.2/bacula/examples/reports/bacula_mail_summary.sh @@ -0,0 +1,73 @@ +#!/bin/sh +# This script is to create a summary of the job notifications from bacula +# and send it to people who care. +# +# For it to work, you need to have all Bacula job report +# loggin to file, edit path for Your needs +# This should be run after all backup jobs have finished. +# Tested with bacula-1.38.0 + +# Some improvements by: Andrey Yakovlev (ISP Farlep) +# Contributed by Andrew J. Millar +# Patched by Andrey A. Yakovlev + +# Use awk to create the report, pass to column to be +# formatted nicely, then on to mail to be sent to +# people who care. + +EMAIL_LIST="freedom@kiev.farlep.net" + +LOG='/var/db/bacula/log' + + +#--------------------------------------------------------------------- + +awk -F\:\ 'BEGIN { + print "Client Status Type StartTime EndTime Files Bytes" + } + + /orion-dir: New file:/ { + print $3 + } + + /orion-dir: File:/ { + print $3 + } + + /Client/ { + CLIENT=$2; sub(/"/, "", CLIENT) ; sub(/".*$/, "", CLIENT) + } + /Backup Level/ { + TYPE=$2 ; sub(/,.*$/, "", TYPE) + } + /Start time/ { + STARTTIME=$2; sub(/.*-.*-.* /, "", STARTTIME) + } + /End time/ { + ENDTIME=$2; sub(/.*-.*-.* /, "", ENDTIME) + } + /Files Examined/ { + SDFILES=$2 + SDBYTES=0 + } + /SD Files Written/ { + SDFILES=$2 + } + /SD Bytes Written/ { + SDBYTES=$2 + } + /Termination/ { + TERMINATION=$2 ; + sub(/Backup/, "", TERMINATION) ; + gsub(/\*\*\*/, "", TERMINATION) ; + sub(/Verify OK/, "OK-Verify", TERMINATION) ; + sub(/y[ ]/, "y-", TERMINATION) ; + printf "%s %s %s %s %s %s %s \n", CLIENT,TERMINATION,TYPE,STARTTIME,ENDTIME,SDFILES,SDBYTES}' ${LOG} | \ + column -t -x | \ + mail -s "Bacula Summary for `date -v -1d +'%a, %F'`" ${EMAIL_LIST} +# +# Empty the LOG +cat ${LOG} > ${LOG}.old +cat /dev/null > ${LOG} +# +# That's all folks diff --git a/Branch-2.2/bacula/examples/reports/baculareport.pl b/Branch-2.2/bacula/examples/reports/baculareport.pl new file mode 100755 index 0000000000..bf014a0376 --- /dev/null +++ b/Branch-2.2/bacula/examples/reports/baculareport.pl @@ -0,0 +1,1161 @@ +#!/usr/bin/perl -w +# +# bacula report generation +# +# (C) Arno Lehmann 2005 +# IT-Service Lehmann +# + +# +# Usage: See funtion print_usage +# or use this script with option --help +# +# Version history: +# +# 0.2 publicly available, works reliable +# 0.3 increasing weight of No. of tapes in guess reliability +# and including tape capacity guessing when no volumes in subpool +# using default values from temp. table + +use strict; +use DBI; +use Getopt::Long; +use Math::BigInt; + +my $version="0.3"; +$0 =~ /.*\/([^\/]*)$/; +my $ME = $1; + +my $debug = 0; +my $db_host = ""; +my $db_user = "bacula"; +my $db_database = "mysql:bacula"; +my $db_pass = ""; + +my $do_usage = ""; +my $do_version = ""; + +my @temp_tables; + +my @the_pools; + +my $out_pooldetails = ""; +my $out_bargraph = 1; +my $out_bargraphlen = 70; +my $out_subpools = ""; +my $out_subpooldetails = ""; +my $out_subbargraph = ""; +my $out_cutmarks = ""; + +# This is the data we're interested in: +# In this array we have a hash reference to each Pool. +# A pool consists of a hash having +# Name +# Id +# BytesTotal +# VolumesTotal +# VolumesFull (This is State Full +# VolumesEmpty (This is Purged and Recycle) +# VolumesPartly (Append) +# VolumesAway (Archive, Read-Only) +# VolumesOther (Busy, Used) +# VolumesOff (Disabled, Error) +# VolumesCleaning +# BytesFree +# GuessReliability (This is the weighted average of the Reliability +# of all the Media Type Guesses in this Pool) +# MediaTypes is an array of references to hashes for collected +# information for all the Media Types in this pool. +# This has the same as the pools summary and adds +# MediaType The String +# AvgFullBytes (The Avg. Number of Bytes per full Volume) +# BytesFreeEmpty (The estimated Free Bytes on Empty Volumes) +# BytesFreePartly +# +# We use: $the_pools[0]->MediaTypes[0]->{MediaType} or +# $the_pools[1]->Id +# I hope you get the point. I hope I do. + +Getopt::Long::Configure("bundling"); +GetOptions("host=s"=>\$db_host, + "user|U=s"=>\$db_user, + "database|D=s"=>\$db_database, + "password|P=s"=>\$db_pass, + "debug=i"=>\$debug, + "help|h"=>\$do_usage, + "version|V"=>\$do_version, + "subpools|s"=>\$out_subpools, + "subpool-details"=>\$out_subpooldetails, + "pool-details|d"=>\$out_pooldetails, + "pool-bargraph!"=>\$out_bargraph, + "bar-length|l=i"=>\$out_bargraphlen, + "cutmarks|c"=>\$out_cutmarks, + "subpool-bargraph"=>\$out_subbargraph + ); + +debug_out(100, "I've got +host: $db_host +user: $db_user +database: $db_database +password: $db_pass +debug: $debug +help: $do_usage +version: $do_version +output requested: + pool details: $out_pooldetails + subpools: $out_subpools + subpool details: $out_subpooldetails + bargraph: $out_bargraph + subpool bargraph: $out_subbargraph + bar length: $out_bargraphlen + cutmarks: $out_cutmarks +I was called as $0 and am version $version. +Was that helpful?"); + +if ($do_usage) { + do_usage(); + exit 1; +} +if ($do_version) { + do_version(); + exit 1; +} + +$out_subpools = 1 if ($out_subpooldetails); +$out_subpools = 1 if ($out_subbargraph); +$out_bargraphlen = 70 if (15 > $out_bargraphlen); +$out_bargraphlen = 70 if (200 < $out_bargraphlen); +$out_bargraph = 1 if (! $out_pooldetails); + +debug_out(100, "Output options after dependencies: + pool details: $out_pooldetails + subpools: $out_subpools + subpool details: $out_subpooldetails + bargraph: $out_bargraph + subpool bargraph: $out_subbargraph + bar length: $out_bargraphlen + cutmarks: $out_cutmarks +"); + +my (undef, $min, $hour, $mday, $mon, $year) = localtime(); +$year += 1900; +$mon = sprintf("%02i", $mon+1); +$mday = sprintf("%02i", $mday); +$min = sprintf("%02i", $min); +$hour = sprintf("%02i", $hour); +print "bacula volume / pool status report $year-$mon-$mday $hour:$min\n", + "Volumes Are Full, Other, Append, Empty, aWay or X (error)\n"; +my $dbconn = "dbi:" . $db_database; +$dbconn .= "\@" . $db_host if $db_host; +debug_out(40, "DBI connect with $dbconn"); + +my $h_db = DBI->connect($dbconn, + $db_user, $db_pass, + { PrintError => 0, + AutoCommit => 1 } + ) || die DBI::errstr; +debug_out(10, "Have database connection $h_db"); + +debug_out(100, "creating temp tables..."); + +$h_db->do("CREATE TABLE alrep_M(PoolId INT(10) UNSIGNED,MediaType TINYBLOB)") || debug_abort(0, "Can't create temp table alrep_M - another script running?"); +unshift @temp_tables, "alrep_M"; +debug_out(45, "Table alrep_M created."); + + +debug_out(40, "All tables done."); + +debug_out(40, "Filling temp tables..."); +if ($h_db->do("INSERT INTO alrep_M SELECT Pool.PoolId,Media.MediaType FROM Pool,Media WHERE Pool.PoolId=Media.PoolId GROUP BY PoolId,MediaType")) { + debug_out(45, "PoolId-MediaType table populated."); +} else { + debug_abort(0, "Couldn't populate PoolId and MediaType table alrep_M."); +} + +debug_out(40, "All tables done."); + +debug_out(40, "Getting Pool Names."); +my $h_st = $h_db->prepare("SELECT Name,PoolId FROM Pool ORDER BY Name") || + debug_abort(0, "Couldn't get Pool Information.", $h_db->errstr()); +$h_st->execute() || debug_abort(0, "Couldn't query Pool information.", + $h_db->errstr()); +my $pools; +while ($pools=$h_st->fetchrow_hashref()) { + process_pool($pools->{Name}, $pools->{PoolId}) +} +debug_out(10, "All Pool data collected."); +debug_out(7, "Pools analyzed: $#the_pools."); +debug_out(10, "Going to print..."); + +my $pi; +for $pi (@the_pools) { + output_pool($pi); +} + +debug_out(10, "Program terminates normally."); +do_closedb(); +debug_out(10, "Finishing."); +exit 0; + +=pod + +=head1 NAME + +baculareport.pl - a script to produce some bacula reports out of +the catalog database. + +=head1 SYNTAX + +B B<--help>|B<-h> + +B B<--version>|B<-V> + +B [B<--host> I] [B<--user>|B<-U> I] +[B<--database>|B<-D> I] [B<--password>|B<-P> I] +[B<--debug> I] [B<--pool-details>|B<-d>] +[B<--pool-bargraph>|B<--nopool-bargraph>] [B<--subpools>|B<-s>] +[B<--subpool-details>] [B<--subpool-bargraph>] [B<--bar-length>|B<-l> +I] [B<--cutmarks>|B<-c>] + +The long options can be abbreviated, as long as they remain unique. +Short options (and values) can be grouped, for more information see +B. + +=head1 DESCRIPTION + +B accesses the catalog used by the backup program bacula +to produce some report about pool and volume usage. + +The command line options B<--host> I, B<--user> or B<-U> +I, B<--database> or B<-D> and B<--password> or B<-P> define the +database to query. See below for security considerations concerning +databse passwords. + +The I must be given in perl's B-syntax, as in +I. Currently, only MySQL is supported, though PostgreSQL +should work with only minor modifications to B. + +Output of reports is controlled using the command-line switches +B<--*pool*>, B<--bar-length> and B<--cutmarks> or there one-letter +equivalents. + +The report for a pool can contain a one-line overview of the volumes +in that pool, giving the numbers of volumes in different states, the +total bytes stored and an estimate of the available capacity. + +The estimated consists of a percentage describing the reliability of +this estimate and the guessed free capacity. + +A visual representation of the pools state represented as a bar graph, +together with the number of full, appendable and free volumes is the +default report. + +The length of this graph can be set with B<--bar-length> or B<-l> +I. + +As a pool can contain volumes of different media type, the report's +output can include the information about those collections of volumes +called subpools in Bs documentation. + +The subpool overview data presents the same information about the +volumes the pool details have, but includes the media type and excludes +the free capacity guess. + +Subpool details report the average amount of data on full volumes, +together with what is estimated to be available on appendable and empty +volumes. A measurement on the reliability of this estimate is given as a +percent value. See below in L<"CAPACITY GUESSING"> for more +information. + +Finally, a bar graph representing this subpools fill-level can be printed. +For easier overview it is scaled like the pools bargraph. + +B<--cutmarks> or B<-c> prints some marks above each pool report to +make cutting the report easier if you want to file it. + +Sample reports are in L<"SAMPLE REPORTS">. + +The B<--debug>-option activates debug output. Without understanding the +source code this will not be helpful. See below L<"DEBUG OUTPUT">. + +=head1 DATABASE ACCESS AND SECURITY + +baculareport.pl needs access to baculas catalog. This might introduce +a security risk if the database access password is published to people who +shouldn't know it, but need to create reports. + +The solution is to set up a database account which can only read from +baculas catalog. Use your favorite database administration tool for +this. + +Command line passing of the password is also not really secure - anybody +with sufficient access rights can read the command line etc. So, if you use this script on a multi-user machine, you are well advised to + +=over 4 + +=item 1. + +I, or + +=item 2. + +I + +=back + +This should limit security risks to a minimum. + +If B is used by your backup admin only, don't bother +- she has access to all your data anyway. (B) + +=head1 SAMPLE REPORTS + +The reports can be customized using the above explained command line switches. +Some examples are: + + bacula volume / pool status report 2005-01-18 23:40 + Volumes Are Full, Other, Append, Empty, aWay or X (error) + + Pool Diff + ######################################################---------------- + |0% |20% |40% |60% |80% 100%| + 48.38GB used Rel: 24% free 13.88GB + 17 F Volumes 3 A and 4 E Volumes + + Pool Full + #######################################------------------------------- + |0% |20% |40% |60% |80% 100%| + 310.66GB used Rel: 58% free 241.64GB + 43 F Volumes 2 A and 14 E Volumes + + Pool Incr + #######################################################--------------- + |0% |20% |40% |60% |80% 100%| + 28.51GB used Rel: 0% (def.) free 7.61GB + 0 F Volumes 3 A and 4 E Volumes + + Pool TMPDisk + Nothing to report. + +This is the sort of report you get when you use this script without +any special output options. After a short header, for all pools in +the catalog a graphic representation of its usage is +printed. Below that, you find some essential information: The +capacity used, a guess of the remaining capacity (see +L<"CAPACITY GUESSING"> below), and +an overview of the volumes: Here, in pool Incr we have no full +volumes, 3 appendable ones and 4 empty volumes. + +In this example, the pool TMPDisk does not contain anything which can +be reported. + +Following you have an example with all output options set. + + - - + Pool Incr + ###################################################---- + |0% |25% |50% |75% 100%| + 10 Volumes (2 F, 0 O, 2 A, 6 E, 0 W, 0 X) Total 59.64GB Rel: 29% avail.: 4.57GB + Details by Mediatype: + DDS1 (0 F, 0 O, 1 A, 4 E, 0 W, 0 X) Total 4.53GB + #### + |0% |25% |50% |75% 100%| + Avg, avail. Partly, Empty, Total, Rel.: N/A N/A N/A N/A 0% + DDS2 (0 F, 0 O, 0 A, 2 E, 0 W, 0 X) Total 0.00B + Avg, avail. Partly, Empty, Total, Rel.: N/A N/A N/A N/A 0% + DLTIV (2 F, 0 O, 1 A, 0 E, 0 W, 0 X) Total 55.11GB + #############################################---- + |0% |25% |50% |75% 100%| + Avg, avail. Partly, Empty, Total, Rel.: 19.89GB 4.57GB N/A 4.57GB 96% + - - + Pool TMPDisk + Nothing to report. + 1 Volumes (0 F, 0 O, 0 A, 1 E, 0 W, 0 X) Total 0.00B Rel: 0% avail.: 0.00B + Details by Mediatype: + File (0 F, 0 O, 0 A, 1 E, 0 W, 0 X) Total 0.00B + Nothing to report. + Avg, avail. Partly, Empty, Total, Rel.: N/A N/A N/A N/A 0% + +Cut marks are included for easier cutting in case you want to file the +printed report. Then, the length of the bar graphs was changed. + +More detail for the pools is shown: Not only the overwiev graphics, +but also a listing of the status of all media in this +pool, followed by the reliability of the guess of available +capacity and the probable available capacity itself. + +After this summary you find a similar report for all media types in +this pool. Here, the media type starts the details line. The next +line is a breakdown of the capacity inside this subpool: The +average capacity of the full volumes, followed by the probable +available capacity on appendable and empty volumes. Total is the +probable free capacity on these volumes, and Rel is the +reliability of the capacity guessing. + +Note that some of the items are not always displayed: A pool or +subpool with no bytes in it will not have a bar graph, and some of +the statistical data is marked as N/A for not available. + +The above output was generated with the following command: + +B<< C<< + baculareport.pl --password \ + --pool-bargraph --pool-details --subpools\ + --subpool-details --subpool-bargraph --bar-length 55\ + --cutmarks >> >> + +The following command would have given the same output: + +B<< C<< + baculareport.pl -P -csdl55\ + --subpool-d --subpool-b >> >> + +=head1 CAPACITY GUESSING + +For empty and appendable volumes, the average capacity of the full +volumes is used as the base for estimating what can be +stored. This usually depends heavily on the type of data to store, +and of course this works only with volumes of the same nominal +capacity. + +The reliability of all this guesswork is expressed based on the +standard deviation among the full volumes, scaled to percent. 100% +is a very reliable estimate (Note: NOT absolutely reliable!) while +a small percentage (from personal experience: below 60-70 percent) +means that you shouldn't rely on the reported available data storage. + +To determine the overall reliability in a pool, the reliabilites of +the subpools are weighted - a subpool with many volumes has a higer +influence on overall reliability. + +Keep in mind that the reported free capacities and reliabilities can +only be a help and don't rely on these figures alone. Keep enough +spare tapes available! + +Default capacities for some media types are included now. Consider this +feature a temporarily kludge - At the moment, there is a very simple +media capacity guessing implemented. Search for the function +`get_default_bytes' and modify it to your needs. + +In the future, I expect some nominal volume capacity knowledge inside +baculas catalog, and when this is available, that data will be used. + +Capacity estimates with defaults in the calculation are marked with +B<(def.)> after the reliability percentage. If you see B<0% (def.)> +only the defaults are used because no full tapes were available. + +=head1 DEBUG OUTPUT + +Debugging, or more generally verbose output, is activated by the +--debug command switch. + +The higher the level, the more output you get. + +Currently, levels 10 and up are real debugging output. Levels above +100 are not used. I + +The debug levels used are: + +=over 4 + +=item 1 + +Some warnings are printed. + +=item 10 + +Program Flow is reported. + +=item 15 + +More detailed Program flow, for example loops. + +=item 40 + +Database actions are printed. + +=item 45 + +Table actions are reported. + +=item 48 + +Even more database activity. + +=item 100 + +All internal state data is printed. Beware: This includes the database +password! + +=back + +=head1 BUGS + +Probably many. If you find one, notify the author. Better: notify me +how to correct it. + +Currently this script works only with MySQL and catalog version 8 +(probably older versions as well, but that is untested). + +=head1 AUTHOR + +Arno Lehmann al@its-lehmann.de + +=head1 LICENSE + +This is copyrighted work: (C) 2005 Arno Lehmann IT-Service Lehmann + +Use, modification and (re-)distribution are allowed provided this +license and the names of all contributing authors are included. + +No author or contributor gives any warranty on this script. If you +want to use it, you are all on your own. Please read the documentation, +and, if you feel unsure, read and understand the sourcecode. + +The terms and idea of the GNU GPL, version 2 or, at you option, any +later version, apply. See http://www.fsf.org. + +You can contact the author using the above email address. I will try to +answer any question concerning this script, but still - no promises! + +Bacula is (C) copyright 2000-2006 Free Software Foundation Europe e.V. See http://www.bacula.org. + +(Bacula consulting available.) + +=cut + +sub process_pool { + my %pool = (BytesTotal=>0, + VolumesTotal=>0, + VolumesFull=>0, + VolumesEmpty=>0, + VolumesPartly=>0, + VolumesAway=>0, + VolumesOther=>0, + VolumesOff=>0, + VolumesCleaning=>"Not counted", + BytesFree=>0, + GuessReliability=>0, + AvgFullUsesDefaults=>"" + ); + debug_out(10, "Working on Pool $pools->{Name}."); + $pool{Name} = shift; + $pool{Id} = shift; + my @subpools; + + debug_out(30, "Pool $pool{Name} is Id $pool{Id}."); + my $h_st = $h_db->prepare("SELECT MediaType FROM alrep_M WHERE + PoolId = $pool{Id} ORDER BY MediaType") || + debug_abort(0, + "Can't query Media table.", $h_st->errstr()); + $h_st->execute() || + debug_abort(0, + "Can't get Media Information", $h_st->errstr()); + while (my $mt=$h_st->fetchrow_hashref()) { +# In this loop, we process one media type in a pool + my %subpool = (MediaType=>$mt->{MediaType}); + debug_out(45, "Working on MediaType $mt->{MediaType}."); + my $h_qu = + $h_db->prepare("SELECT COUNT(*) AS Nr,SUM(VolBytes) AS Bytes," . + "STD(VolBytes) AS Std,AVG(VolBytes) AS Avg " . + "FROM Media WHERE (PoolId=$pool{Id}) AND " . + "(MediaType=" . $h_db->quote($mt->{MediaType}) . + ") AND (VolStatus=\'Full\')") + || debug_abort(0, + "Can't query Media Summary Information by MediaType.", + $h_db->errstr()); + debug_out(48, "Query active: ", $h_qu->{Active}?"Yes":"No"); + debug_out(45, "Now selecting Summary Information for $pool{Name}:$mt->{MediaType}:Full"); + debug_out(48, "Query: ", $h_qu->{Statement}, "Params: ", + $h_qu->{NUM_OF_PARAMS}, " Rows: ", $h_qu->rows); + $h_qu->execute(); + debug_out(48, "Result:", $h_qu->rows(), "Rows."); +# Don't know why, but otherwise the handle access +# methods result in a warning... + $^W = 0; + if (1 == $h_qu->rows()) { + if (my $qr = $h_qu->fetchrow_hashref) { + debug_out(45, "Got $qr->{Nr} and $qr->{Bytes}."); + $subpool{VolumesFull} = $qr->{Nr}; + $subpool{VolumesTotal} += $qr->{Nr}; + $subpool{BytesTotal} = $qr->{Bytes} if (defined($qr->{Bytes})); + if (defined($qr->{Bytes}) && (0 < $qr->{Bytes}) && + (0 < $qr->{Nr})) { + $subpool{AvgFullBytes} = int($qr->{Bytes} / $qr->{Nr}); + } else { + $subpool{AvgFullBytes} = get_default_bytes($mt->{MediaType}); + $subpool{AvgFullUsesDefaults} = 1; + } + if (defined($qr->{Std}) && + defined($qr->{Avg}) && + (0 < $qr->{Avg})) { +# $subpool{GuessReliability} = 100-(100*$qr->{Std}/$qr->{Avg}); + $subpool{GuessReliability} = + 100 - # 100 Percent minus... + ( 100 * # Percentage of + ( $qr->{Std}/$qr->{Avg} ) * # V + ( 1 - 1 / $qr->{Nr} ) # ... the more tapes + # the better the guess + ); + } else { + $subpool{GuessReliability} = 0; + } + } else { + debug_out(1, "Can't get Media Summary Information by MediaType.", + $h_qu->errstr()); + $subpool{VolumesFull} = 0; + $subpool{BytesTotal} = 0; + $subpool{GuessReliability} = 0; + $subpool{AvgFullBytes} = -1; + } + } else { + debug_out(45, "Got nothing: ", (defined($h_qu->errstr()))?$h_qu->errstr():"No error."); + } + $^W = 1; +# Here, Full Media are done + debug_out(15, "Full Media done. Now Empty ones."); + $h_qu = + $h_db->prepare("SELECT COUNT(*) AS Nr " . + "FROM Media WHERE (PoolId=$pool{Id}) AND " . + "(MediaType=" . $h_db->quote($mt->{MediaType}) . + ") AND ((VolStatus=\'Purged\') OR " . + "(VolStatus=\'Recycle\'))") + || debug_abort(0, + "Can't query Media Summary Information by MediaType.", + $h_db->errstr()); + debug_out(48, "Query active: ", $h_qu->{Active}?"Yes":"No"); + debug_out(45, "Now selecting Summary Information for $pool{Name}:$mt->{MediaType}:Recycle OR Purged"); + debug_out(48, "Query: ", $h_qu->{Statement}, "Params: ", + $h_qu->{NUM_OF_PARAMS}, " Rows: ", $h_qu->rows); + $h_qu->execute(); + debug_out(48, "Result:", $h_qu->rows(), "Rows."); +# Don't know why, but otherwise the handle access +# methods result in a warning... + $^W = 0; + if (1 == $h_qu->rows()) { + if (my $qr = $h_qu->fetchrow_hashref) { + debug_out(45, "Got $qr->{Nr} and $qr->{Bytes}."); + $subpool{VolumesEmpty} = $qr->{Nr}; + $subpool{VolumesTotal} += $qr->{Nr}; + if (($subpool{AvgFullBytes} > 0) && ($qr->{Nr} > 0)) { + $subpool{BytesFreeEmpty} = $qr->{Nr} * $subpool{AvgFullBytes}; + } else { + $subpool{BytesFreeEmpty} = -1; + } + } else { + debug_out(1, "Can't get Media Summary Information by MediaType.", + $h_qu->errstr()); + $subpool{VolumesEmpty} = 0; + $subpool{BytesFreeEmpty} = 0; + } + } else { + debug_out(45, "Got nothing: ", (defined($h_qu->errstr()))?$h_qu->errstr():"No error."); + } + $^W = 1; +# Here, Empty Volumes are processed. + + debug_out(15, "Empty Media done. Now Partly filled ones."); + $h_qu = + $h_db->prepare("SELECT COUNT(*) AS Nr,SUM(VolBytes) AS Bytes " . + "FROM Media WHERE (PoolId=$pool{Id}) AND " . + "(MediaType=" . $h_db->quote($mt->{MediaType}) . + ") AND (VolStatus=\'Append\')") + || debug_abort(0, + "Can't query Media Summary Information by MediaType.", + $h_db->errstr()); + debug_out(48, "Query active: ", $h_qu->{Active}?"Yes":"No"); + debug_out(45, "Now selecting Summary Information for $pool{Name}:$mt->{MediaType}:Append"); + debug_out(48, "Query: ", $h_qu->{Statement}, "Params: ", + $h_qu->{NUM_OF_PARAMS}, " Rows: ", $h_qu->rows); + $h_qu->execute(); + debug_out(48, "Result:", $h_qu->rows(), "Rows."); +# Don't know why, but otherwise the handle access +# methods result in a warning... + $^W = 0; + if (1 == $h_qu->rows()) { + if (my $qr = $h_qu->fetchrow_hashref) { + debug_out(45, "Got $qr->{Nr} and $qr->{Bytes}."); + $subpool{VolumesPartly} = $qr->{Nr}; + $subpool{VolumesTotal} += $qr->{Nr}; + $subpool{BytesTotal} += $qr->{Bytes}; + if (($subpool{AvgFullBytes} > 0) && ($qr->{Nr} > 0)) { + $subpool{BytesFreePartly} = $qr->{Nr} * $subpool{AvgFullBytes} - $qr->{Bytes}; + $subpool{BytesFreePartly} = $qr->{Nr} if $subpool{BytesFreePartly} < 1; + } else { + $subpool{BytesFreePartly} = -1; + } + } else { + debug_out(1, "Can't get Media Summary Information by MediaType.", + $h_qu->errstr()); + $subpool{VolumesPartly} = 0; + $subpool{BytesFreePartly} = 0; + } + } else { + debug_out(45, "Got nothing: ", (defined($h_qu->errstr()))?$h_qu->errstr():"No error."); + } + $^W = 1; +# Here, Partly filled volumes are done + + debug_out(15, "Partly Media done. Now Away ones."); + $h_qu = + $h_db->prepare("SELECT COUNT(*) AS Nr,SUM(VolBytes) AS Bytes " . + "FROM Media WHERE (PoolId=$pool{Id}) AND " . + "(MediaType=" . $h_db->quote($mt->{MediaType}) . + ") AND ((VolStatus=\'Archive\') OR " . + "(VolStatus=\'Read-Only\'))") + || debug_abort(0, + "Can't query Media Summary Information by MediaType.", + $h_db->errstr()); + debug_out(48, "Query active: ", $h_qu->{Active}?"Yes":"No"); + debug_out(45, "Now selecting Summary Information for $pool{Name}:$mt->{MediaType}:Recycle OR Purged"); + debug_out(48, "Query: ", $h_qu->{Statement}, "Params: ", + $h_qu->{NUM_OF_PARAMS}, " Rows: ", $h_qu->rows); + $h_qu->execute(); + debug_out(48, "Result:", $h_qu->rows(), "Rows."); +# Don't know why, but otherwise the handle access +# methods result in a warning... + $^W = 0; + if (1 == $h_qu->rows()) { + if (my $qr = $h_qu->fetchrow_hashref) { + debug_out(45, "Got $qr->{Nr} and $qr->{Bytes}."); + $subpool{VolumesAway} = $qr->{Nr}; + $subpool{VolumesTotal} += $qr->{Nr}; + $subpool{BytesTotal} += $qr->{Bytes}; + } else { + debug_out(1, "Can't get Media Summary Information by MediaType.", + $h_qu->errstr()); + $subpool{VolumesAway} = 0; + } + } else { + debug_out(45, "Got nothing: ", (defined($h_qu->errstr()))?$h_qu->errstr():"No error."); + } + $^W = 1; +# Here, Away Volumes are processed. + + debug_out(15, "Away Media done. Now Other ones."); + $h_qu = + $h_db->prepare("SELECT COUNT(*) AS Nr,SUM(VolBytes) AS Bytes " . + "FROM Media WHERE (PoolId=$pool{Id}) AND " . + "(MediaType=" . $h_db->quote($mt->{MediaType}) . + ") AND ((VolStatus=\'Busy\') OR " . + "(VolStatus=\'Used\'))") + || debug_abort(0, + "Can't query Media Summary Information by MediaType.", + $h_db->errstr()); + debug_out(48, "Query active: ", $h_qu->{Active}?"Yes":"No"); + debug_out(45, "Now selecting Summary Information for $pool{Name}:$mt->{MediaType}:Recycle OR Purged"); + debug_out(48, "Query: ", $h_qu->{Statement}, "Params: ", + $h_qu->{NUM_OF_PARAMS}, " Rows: ", $h_qu->rows); + $h_qu->execute(); + debug_out(48, "Result:", $h_qu->rows(), "Rows."); +# Don't know why, but otherwise the handle access +# methods result in a warning... + $^W = 0; + if (1 == $h_qu->rows()) { + if (my $qr = $h_qu->fetchrow_hashref) { + debug_out(45, "Got $qr->{Nr} and $qr->{Bytes}."); + $subpool{VolumesOther} = $qr->{Nr}; + $subpool{VolumesTotal} += $qr->{Nr}; + $subpool{BytesTotal} += $qr->{Bytes}; + } else { + debug_out(1, "Can't get Media Summary Information by MediaType.", + $h_qu->errstr()); + $subpool{VolumesOther} = 0; + } + } else { + debug_out(45, "Got nothing: ", (defined($h_qu->errstr()))?$h_qu->errstr():"No error."); + } + $^W = 1; +# Here, Other Volumes are processed. + + debug_out(15, "Other Media done. Now Off ones."); + $h_qu = + $h_db->prepare("SELECT COUNT(*) AS Nr,SUM(VolBytes) AS Bytes " . + "FROM Media WHERE (PoolId=$pool{Id}) AND " . + "(MediaType=" . $h_db->quote($mt->{MediaType}) . + ") AND ((VolStatus=\'Disabled\') OR " . + "(VolStatus=\'Error\'))") + || debug_abort(0, + "Can't query Media Summary Information by MediaType.", + $h_db->errstr()); + debug_out(48, "Query active: ", $h_qu->{Active}?"Yes":"No"); + debug_out(45, "Now selecting Summary Information for $pool{Name}:$mt->{MediaType}:Recycle OR Purged"); + debug_out(48, "Query: ", $h_qu->{Statement}, "Params: ", + $h_qu->{NUM_OF_PARAMS}, " Rows: ", $h_qu->rows); + $h_qu->execute(); + debug_out(48, "Result:", $h_qu->rows(), "Rows."); +# Don't know why, but otherwise the handle access +# methods result in a warning... + $^W = 0; + if (1 == $h_qu->rows()) { + if (my $qr = $h_qu->fetchrow_hashref) { + debug_out(45, "Got $qr->{Nr} and $qr->{Bytes}."); + $subpool{VolumesOff} = $qr->{Nr}; + $subpool{VolumesTotal} += $qr->{Nr}; + } else { + debug_out(1, "Can't get Media Summary Information by MediaType.", + $h_qu->errstr()); + $subpool{VolumesOff} = 0; + } + } else { + debug_out(45, "Got nothing: ", (defined($h_qu->errstr()))?$h_qu->errstr():"No error."); + } + $^W = 1; +# Here, Off Volumes are processed. + + if ((0 < $subpool{BytesFreeEmpty}) || + (0 < $subpool{BytesFreePartly})) { + debug_out(15, "We have a guess."); + $subpool{BytesFree} = 0; + $subpool{BytesFree} += $subpool{BytesFreeEmpty} if + (0 < $subpool{BytesFreeEmpty}); + $subpool{BytesFree} += $subpool{BytesFreePartly} if + (0 < $subpool{BytesFreePartly}); + } else { + debug_out(15, "Neither Empty nor Partly BytesFree available - no guess!"); + $subpool{BytesFree} = -1; + } + if ($subpool{AvgFullUsesDefaults}) { + debug_out(15, "Average Full Capacity calculation included defaults."); + $pool{AvgFullUsesDefaults} = 1; + } + $pool{BytesTotal} += $subpool{BytesTotal}; + $pool{VolumesTotal} += $subpool{VolumesTotal}; + $pool{VolumesFull} += $subpool{VolumesFull}; + $pool{VolumesEmpty} += $subpool{VolumesEmpty}; + $pool{VolumesPartly} += $subpool{VolumesPartly}; + $pool{VolumesAway} += $subpool{VolumesAway}; + $pool{VolumesOther} += $subpool{VolumesOther}; + $pool{VolumesOff} += $subpool{VolumesOff}; +# not counted! +# $pool{VolumesCleaning} += $subpool{VolumesCleaning}; + + $pool{BytesFree} += $subpool{BytesFree} if ($subpool{BytesFree} > 0); + + debug_out(10, "Now storing sub-pool with MediaType", $subpool{MediaType}); + push @subpools, \%subpool; + } + $pool{MediaTypes} = \@subpools; +# GuessReliability + my $allrels = 0; + my $subcnt = scalar(@{$pool{MediaTypes}}); + my $guess_includes_defaults = 0; + debug_out(10, "Summarizing Reliabilities from $subcnt sub-pools."); + foreach my $rel (@{$pool{MediaTypes}}) { + $allrels += $rel->{GuessReliability} * $rel->{VolumesTotal}; + } + debug_out(15, "We have $allrels summed/weighted reliabilites and $pool{VolumesTotal} Volumes."); + if ($pool{VolumesTotal} > 0) { + $pool{GuessReliability} = $allrels / $pool{VolumesTotal}; + } else { + $pool{GuessReliability} = "N/A"; + } + push @the_pools, \%pool; +} + +sub output_pool { + debug_out(10, "Printing pool data."); + my $pool = shift; + $pool->{GuessReliability} += 1000.0 if + (($pool->{GuessReliability} ne "N/A") && + $pool->{AvgFullUsesDefaults}); + printf((($out_cutmarks)?" -" . " " x ($out_bargraphlen - 6) . "-\n": + "\n") . + "Pool%15.15s%s\n", "$pool->{Name}", + ($debug>=5)?sprintf(" %5.9s", "(" . $pool->{Id} . ")"):""); + my $poolbarbytes = $pool->{BytesTotal} + $pool->{BytesFree}; + if ($out_bargraph) { + print bargraph($out_bargraphlen, 2, + $poolbarbytes, + $pool->{BytesTotal}, $pool->{BytesFree}); + } + if ($out_pooldetails) { + print(" $pool->{VolumesTotal} Volumes ($pool->{VolumesFull} F, ", + "$pool->{VolumesOther} O, $pool->{VolumesPartly} A, ", + "$pool->{VolumesEmpty} E, $pool->{VolumesAway} W, ", + "$pool->{VolumesOff} X) Total ", + human_readable("B", $pool->{BytesTotal}), + " Rel: ", human_readable("P", $pool->{GuessReliability}), + " avail.: ", human_readable("B", $pool->{BytesFree}), "\n"); + } else { + print bargraph_legend($out_bargraphlen, 2, + $pool->{BytesTotal} + $pool->{BytesFree}, + $pool->{BytesTotal}, $pool->{BytesFree}, + $pool->{VolumesFull}, $pool->{VolumesPartly}, + $pool->{VolumesEmpty}, $pool->{GuessReliability}); + } + if ($out_subpools) { + debug_out(10, "Printing details:", $#{$pool->{MediaTypes}}+1, "MediaTypes"); + if (0 < scalar($pool->{MediaTypes})) { + print " Details by Mediatype:\n"; + foreach my $i (@{$pool->{MediaTypes}}) { + debug_out(15, "Media Type $i->{MediaType}"); + $i->{GuessReliability} += 1000.0 if ($i->{AvgFullUsesDefaults}); + print(" $i->{MediaType} ($i->{VolumesFull} F, ", + "$i->{VolumesOther} O, $i->{VolumesPartly} A, ", + "$i->{VolumesEmpty} E, $i->{VolumesAway} W, " , + "$i->{VolumesOff} X) Total ", + human_readable("B", $i->{BytesTotal}), "\n"); + if ($out_subbargraph) { + print bargraph($out_bargraphlen - 3, 5, + $poolbarbytes, + $i->{BytesTotal}, + $i->{BytesFree}); + } + if ($out_subpooldetails) { + print " Avg, avail. Partly, Empty, Total, Rel.: ", + ($i->{AvgFullBytes} > 0)?human_readable("B", $i->{AvgFullBytes}):"N/A", " ", + ($i->{BytesFreePartly} > 0)?human_readable("B", $i->{BytesFreePartly}):"N/A", " ", + ($i->{BytesFreeEmpty} > 0)?human_readable("B", $i->{BytesFreeEmpty}):"N/A", " ", + ($i->{BytesFree} > 0)?human_readable("B", $i->{BytesFree}):"N/A", " ", + human_readable("P", $i->{GuessReliability}), "\n"; + } else { + print bargraph_legend($out_bargraphlen - 3, 5, + $poolbarbytes, + $i->{BytesTotal}, + $i->{BytesFree}, + $i->{VolumesFull}, + $i->{VolumesPartly}, + $i->{VolumesEmpty}, + $i->{GuessReliability} + ) if ($out_subbargraph); + } + } + } + } +} + +sub bargraph_legend { + debug_out(15, "bargraph_legend called with ", join(":", @_)); + my ($len, $pad, $b_all, $b_tot, $b_free, $v_total, $v_app, + $v_empty, $g_r) = @_; + if ((9 == scalar(@_)) && + defined($len) && ($len >= 0) && ($len =~ /^\d+$/) && + defined($pad) && ($pad >= 0) && ($pad =~ /^\d+$/) && + defined($b_all) && ($b_all =~ /^\d+$/) && + defined($b_tot) && ($b_tot =~ /^-?\d+$/) && + defined($b_free) && ($b_free =~ /^-?\d+$/) && + defined($v_total) && ($v_total =~ /^\d+$/) && + defined($v_app) && ($v_app =~ /^\d+$/) && + defined($v_empty) && ($v_empty =~ /^\d+$/) && + ($g_r =~ /^([+-]?)(?=\d|\.\d)\d*(\.\d*)?([Ee]([+-]?\d+))?/) + ) { + return "" if ( 0 == $b_all); + $b_tot = 0 if ($b_tot < 0); + $b_free = 0 if ($b_free < 0); + return "" if (0 == ($b_tot + $b_free)); + my ($ll, $lm); + my $l1 = human_readable("B", $b_tot) . " used "; + my $l2 = "Rel: " . human_readable("P", $g_r) . " free " . human_readable("B", $b_free); + $ll = $l1 . " " x ($len - length($l1) - length($l2)) . $l2; + $l1 = $v_total . " F Volumes "; + $l2 = $v_app . " A and " . $v_empty . " E Volumes"; + $lm = $l1 . " " x ($len - length($l1) - length($l2)) . $l2; + return " " x $pad . $ll . "\n" . + " " x $pad . $lm . "\n"; + } else { + debug_out(1, "bargraph_legend called without proper parameters"); + return ""; + } +} + +sub bargraph { + debug_out(15, "bargraph called with ", join(":", @_)); + my ($len, $pad, $p_all, $p_full, $p_empty) = @_; + if ((5 == scalar(@_)) && + defined($len) && ($len >= 0) && ($len =~ /^\d+$/) && + defined($pad) && ($pad >= 0) && ($pad =~ /^\d+$/) && + defined($p_full) && ($p_full =~ /^-?\d+$/) && + defined($p_empty) && ($p_empty =~ /^-?\d+$/) && + defined($p_all) && ($p_all >= $p_full + $p_empty) && + ($p_all =~ /^\d+$/) + ) { + $len = 12 if ($len < 12); + $p_full = 0 if ($p_full < 0); + $p_empty = 0 if ($p_empty < 0); + debug_out(15, "bargraph: len $len all $p_all full $p_full empty $p_empty"); + return " " x $pad . "Nothing to report.\n" if (0 == $p_all); + return "" if (0 == ($p_full + $p_empty)); + my $contperbox = $p_all / $len; + my $boxfull = sprintf("%u", ($p_full / $contperbox) + 0.5); + my $boxempty = sprintf("%u", ($p_empty / $contperbox) + 0.5); + my $boxnon = $len - $boxfull - $boxempty; + debug_out(15, "bargraph: output $boxfull $boxempty $boxnon"); + $contperbox = sprintf("%f", $len / 100.0); + my $leg = "|0%"; + my $ticks = sprintf("%u", ($len-12) / 12.5); + my $be = 0; + my $now = 4; + for my $i (1..$ticks) { + debug_out(15, "Tick loop. Previous pos: $now Previous Tick: ", $i-1); + my $pct = sprintf("%f", 100.0 / ($ticks+1.0) * $i); + $be = sprintf("%u", 0.5 + ($pct * $contperbox)); + debug_out(15, "Tick $i ($pct percent) goes to pos $be. Chars per Percent: $contperbox"); + my $bl = $be - $now; + debug_out(15, "Need $bl blanks to fill up."); + $leg .= " " x $bl . sprintf("|%2u%%", 0.5 + $pct); + $now = $be + 4; + } + debug_out(15, "Fillup... Now at pos $now and $contperbox char/pct."); + $be = $len - $now - 4; + $leg .= " " x $be . "100%|"; + return " " x $pad . "#" x $boxfull . "-" x $boxempty . + " " x $boxnon . "\n" . " " x $pad . "$leg\n"; + } else { + debug_out(1, "bargrahp called without proper parameters."); + return ""; + } +} + +sub human_readable { + debug_out(15, "human_readable called with ", join(":", @_)); + if (2 == scalar(@_)) { + debug_out(15, "2 Params - let's see what we've got."); + my ($t, $v) = @_; + SWITCH: for ($t) { + /B/ && do { + debug_out(15, "Working with Bytes."); + my $d = 'B'; + if ($v > 1024) { + $v /= 1024; + $d = 'kB'; + } + if ($v > 1024) { + $v /= 1024; + $d = 'MB'; + } + if ($v > 1024) { + $v /= 1024; + $d = 'GB'; + } + if ($v > 1024) { + $v /= 1024; + $d = 'TB'; + } + return sprintf("%0.2f%s", $v, $d); + last SWITCH; + }; + /P/ && do { + debug_out(15, "Working with Percent value."); + my $ret = $v; + if ($v =~ /^([+-]?)(?=\d|\.\d)\d*(\.\d*)?([Ee]([+-]?\d+))?/) { + if ($v >= 1000.0) { + $ret = " (def.)"; + $v -= 1000.0; + } else { + $ret = ""; + } + $ret = sprintf("%1.0f%%", $v) . $ret; + } + return $ret; + last SWITCH; + }; + return $v; + } + } else { + return join("", @_); + } +} + +sub get_default_bytes { + debug_out(15, "get_default_bytes called with ", join(":", @_)); + if (1 == scalar(@_)) { + debug_out(15, "1 Param - let's see what we've got."); + SWITCH: for (@_) { + /DDS/ && return 2000000000; + /DDS1/ && return 2000000000; + /DDS2/ && return 4000000000; + /DLTIV/ && return 20000000000; + /DC6525/ && return 525000000; + /File/ && return 128*1024*1024; + { + debug_out(0, "$_ is not a known Media Type. Assuming 1 kBytes"); + return 1024; + }; + }; + } else { + debug_out(0, "This is not right..."); + return 999; + } +} + +sub debug_out { + if ($debug >= shift) { + print "@_\n"; + } +} + +sub debug_abort { + debug_out(@_); + do_closedb(); + exit 1; +} + +sub do_closedb { + my $t; + debug_out(40, "Closing database connection..."); + while ($t=shift @temp_tables) { + debug_out(40, "Now dropping table $t"); + $h_db->do("DROP TABLE $t") || debug_out(0, "Can't drop $t."); + } + $h_db->disconnect(); + debug_out(40, "Database disconnected."); +} + +sub do_usage { + print< -M -w -c [-S]" +} + +print_help() { + echo "" + print_usage + echo "" + echo "This plugin checks the space available in the pool against the space required for the next scheduled backups" + echo "Example : $PROGNAME -P default -M LTO -w 20 -c 10 will check the default pool, return OK if (available space) > 1,20*(required space), WARNING if 1,20*(required space) > (available space) > 1,10*(required space), and CRITICAL else." + echo "" + echo "With the -S option, it will check the pool named Scratch and return WARNING instead of CRITICAL if the Scratch pool can save the situation." + echo "Example : $PROGNAME -P default -M LTO -w 20 -c 10 -S will check the default pool, return OK if (available space) > 1,20*(required space), WARNING if 1,20*(required space) > (available space) > 1,10*(required space) or if (available space in default and Scratch) > 1,10*(required space) > (available space in default), and CRITICAL else." + echo "" + echo "The evaluation of the space required is done by adding the biggest backups of the same level than the scheduled jobs" + echo "The available space is evaluated by the number of out of retention tapes and the average VolBytes of these Full tapes" + echo "" + echo "The Information Status are : \"Required, Available, Volume Errors\" and \"Will use Scratch pool\" if necessary." + echo "" + echo "I think this plugin should be used in passive mode, and ran by a RunAfterJob" + exit 3 +} + +NB_ARGS=$# +SCRATCH=0 +while getopts :P:M:w:c:hS OPTION +do + case $OPTION in + P) POOL="$OPTARG" + ;; + M) MEDIA_TYPE="$OPTARG" + ;; + S) SCRATCH=1 + ;; + w) WARNING="$OPTARG" + ;; + c) CRITICAL="$OPTARG" + ;; + h) print_help + exit 3 + ;; + *) print_usage + exit 3 + ;; + esac +done +shift $(($OPTIND - 1)) + +if [ "$NB_ARGS" -ne 8 -a "$NB_ARGS" -ne 9 ]; then + print_revision $PROGNAME 13/06/2006 + print_usage + exit 3 +fi + +LAST_CHECK=`ps -ef | grep check_ba[Cc]ula_pools.sh | awk {'print $5'} | uniq | wc -l` +if [ "$LAST_CHECK" -gt 1 ]; then + echo "The last check was not complete, you should increase the check_period." + exit 3 +fi + +NB_VOLUMES=`$MYSQL << EOF +USE bacula +SELECT COUNT(MediaId) from Media, Pool where Media.PoolId=Pool.PoolId and Pool.Name="$POOL" AND Inchanger = "1"; +EOF` + +NB_VOLUMES=`echo $NB_VOLUMES | cut -f 2 -d ' '` + +echo "st +1 +q" | $BACULA/etc/bconsole | sed -n /Scheduled/,/Running/p | grep Backup | tr -s [:blank:] | tr '[:blank:]' '@' > ${TMP}/Scheduled.txt + +CAPA_REQUIRED=0 +for LINE in `cat ${TMP}/Scheduled.txt` +do + SCHEDULED_JOB=`echo $LINE | awk -F@ '{print $6}'` + LEVEL=`echo $LINE | awk -F@ '{print $1}' | cut -c 1` + +MAX_VOLUME_JOB_FOR_LEVEL=`$MYSQL << EOF +USE bacula +SELECT MAX(JobBytes) from Job, Pool where Level="$LEVEL" AND Job.Name="$SCHEDULED_JOB" AND Job.PoolId=Pool.PoolId AND Pool.Name="$POOL"; +EOF +` +MAX_VOLUME_JOB_FOR_LEVEL=`echo $MAX_VOLUME_JOB_FOR_LEVEL | cut -f 2 -d ' ' ` + +CAPA_REQUIRED=$[CAPA_REQUIRED+MAX_VOLUME_JOB_FOR_LEVEL] +done + +rm ${TMP}/Scheduled.txt + + +if [ $NB_VOLUMES -gt 0 ] +then + + NB_VOLUMES_OUT_OF_RETENTION=`$MYSQL << EOF +USE bacula +SELECT COUNT(MediaId) from Media, Pool where Media.PoolId=Pool.PoolId and Pool.Name="$POOL" AND LastWritten <> "0000-00-00 00:00:00" AND UNIX_TIMESTAMP()-UNIX_TIMESTAMP(LastWritten)>Media.VolRetention AND Inchanger = "1"; +EOF +` + NB_VOLUMES_OUT_OF_RETENTION=`echo $NB_VOLUMES_OUT_OF_RETENTION | cut -f 2 -d ' '` + +NB_VOLUMES_ERROR=`$MYSQL << EOF +USE bacula +SELECT COUNT(MediaId) from Media, Pool where Media.PoolId=Pool.PoolId and Pool.Name="$POOL" AND VolStatus="Error" AND Inchanger = "1"; +EOF +` +NB_VOLUMES_ERROR=`echo $NB_VOLUMES_ERROR | cut -f 2 -d ' '` + +AVERAGE_CAPA_VOLUME=`$MYSQL << EOF +USE bacula +SELECT SUM(VolBytes)/COUNT(MediaId) FROM Media where VolStatus="Full" AND MediaType="$MEDIA_TYPE"; +EOF +` +AVERAGE_CAPA_VOLUME=`echo $AVERAGE_CAPA_VOLUME | cut -f 2 -d ' ' | cut -f 1 -d '.'` + +CAPA_VOLUMES_APPEND=`$MYSQL << EOF +USE bacula +SELECT SUM("$AVERAGE_CAPA_VOLUME"-VolBytes) from Media, Pool where Media.PoolId=Pool.PoolId and Pool.Name="$POOL" AND (VolStatus = "Append" OR VolStatus = "Recycle" OR VolStatus = "Purge") AND Inchanger = "1" AND MediaType="$MEDIA_TYPE"; +EOF +` +CAPA_VOLUMES_APPEND=`echo $CAPA_VOLUMES_APPEND | cut -f 2 -d ' '` + +if [ $SCRATCH -eq 1 ] +then +CAPA_VOLUMES_SCRATCH=`$MYSQL << EOF +USE bacula +SELECT SUM("$AVERAGE_CAPA_VOLUME"-VolBytes) from Media, Pool where Media.PoolId=Pool.PoolId and Pool.Name="Scratch" AND VolStatus = "Append" AND Inchanger = "1" AND MediaType="$MEDIA_TYPE"; +EOF +` +CAPA_VOLUMES_SCRATCH=`echo $CAPA_VOLUMES_SCRATCH | cut -f 2 -d ' '` +else +CAPA_VOLUMES_SCRATCH=0 +fi + +CAPA_WARNING=`echo $[(WARNING+100)*CAPA_REQUIRED]/100 | bc | cut -f 1 -d '.'` +CAPA_CRITICAL=`echo $[(CRITICAL+100)*CAPA_REQUIRED]/100 | bc | cut -f 1 -d '.'` +CAPA_DISP=$[NB_VOLUMES_OUT_OF_RETENTION*AVERAGE_CAPA_VOLUME+CAPA_VOLUMES_APPEND] +CAPA_DISP_INCLUDING_SCRATCH=$[CAPA_DISP+CAPA_VOLUMES_SCRATCH] + +MESSAGE="Required : $[CAPA_REQUIRED/1000000000] Go, available : $[CAPA_DISP/1000000000] Go, Volumes Error : $NB_VOLUMES_ERROR" + +if [ "$CAPA_DISP" -gt $CAPA_WARNING ]; then + echo $MESSAGE + exit 0 +elif [ "$CAPA_DISP" -gt $CAPA_CRITICAL ];then + echo $MESSAGE + exit 1 +elif [ "$CAPA_DISP_INCLUDING_SCRATCH" -gt $CAPA_CRITICAL ];then + MESSAGE="${MESSAGE}. Will use Scratch Pool !" + echo $MESSAGE + exit 1 +else + exit 2 +fi +exit 3 + +else + echo "No volume in pool ${POOL}" + if [ "$CAPA_REQUIRED" -gt 0 ] + then exit 2 + else exit 0 + fi +fi diff --git a/Branch-2.2/bacula/examples/reports/checkhost b/Branch-2.2/bacula/examples/reports/checkhost new file mode 100755 index 0000000000..b201798a28 --- /dev/null +++ b/Branch-2.2/bacula/examples/reports/checkhost @@ -0,0 +1,53 @@ +#!/usr/bin/perl + +use strict; +use Net::Ping; +use Net::Telnet (); +use Getopt::Long; +use IPC::Open2; + +# +# Check if a Bacula client is alive. By Phil Stracchino. +# +# Return values: +# -1 Program error or no host specified +# 0 Success, FD found and responding +# 1 Client alive but FD not listening +# 2 Client not found on network + +my $ret = -1; +my ($host, $p, $ret, $verbose); +GetOptions('verbose' => \$verbose, + 'v' => \$verbose); + +$host = shift || die "No host specified!\n"; + +$p = Net::Ping->new(); +if ($p->ping($host)) +{ + print "Host $host is alive\n" if ($verbose); + my $t = new Net::Telnet (Timeout => 10, + Port => 9102, + Prompt => '/bash\$ $/'); + if ($t->open($host)) + { + print "Bacula-FD listening on port 9102\n" if ($verbose); + $ret = 0; + } + else + { + print "Bacula-FD not found\n" if ($verbose); + $ret = 1; + } + $t->close; +} +else +{ + print "$host is unreachable\n" if ($verbose); + $ret = 2; +} +$p->close(); + +print "Returning value $ret\n" if ($verbose); + +exit ($ret); diff --git a/Branch-2.2/bacula/examples/reports/is_client_alive b/Branch-2.2/bacula/examples/reports/is_client_alive new file mode 100755 index 0000000000..3bd2504794 --- /dev/null +++ b/Branch-2.2/bacula/examples/reports/is_client_alive @@ -0,0 +1,21 @@ +#!/bin/sh +# +# Test if Bacula Client is alive +# exit 0 if specified client (arg1) is alive +# exit 1 if specified client (arg1) is NOT alive +# exit 2 if console could NOT connect to Director +# +OUTF=/tmp/client-${1}-alive +rm -f ${OUTF} +./console >/dev/null <<__EOD +@output /dev/null +messages +@output ${OUTF} +status client=${1} +messages +quit +__EOD +grep -s "Daemon started" ${OUTF} 2>&1 >/dev/null +rtn=$? +rm -f ${OUTF} +exit ${rtn} diff --git a/Branch-2.2/bacula/examples/reports/next_tape.sh b/Branch-2.2/bacula/examples/reports/next_tape.sh new file mode 100755 index 0000000000..d09f44a6f7 --- /dev/null +++ b/Branch-2.2/bacula/examples/reports/next_tape.sh @@ -0,0 +1,78 @@ +#!/bin/bash +# +# A script which kicks out messages if a new tape is required for the next job. +# It may be used as RunAfterJob script and it works fine for me. +# Maybe someone considers it useful or has some ideas to improve it. +# +# Contributed by Dirk grosse Osterhues +# +# select language: english (en) or german (de) +LANG="en" +# reciepient-address for notification +MAILTO_ADDR="your-email-address" +# bcc-address for notification +BCC_ADDR="email-address" +# directory for temp-files +TEMP_DIR="/tmp/bacula" +# bacula's console.conf +CONSOLE_CONF=/etc/bacula/bconsole.conf +############################################ + +# test if console.conf exists +if [ ! -f $CONSOLE_CONF ]; then + echo "You need to reconfigure varible \$CONSOLE_CONF" + exit 1 +fi +# get todays tape +director_output() { +/usr/sbin/bacula-console -c $CONSOLE_CONF <$TEMP_DIR/NEXT-TAPE-$YESTERDAY +fi +echo $TAPE_TODAY>$TEMP_DIR/NEXT-TAPE-$TODAY + +# definition of language-dependent variables +case $LANG in + de) + MAIL_SUBJECT="[Bacula] Bitte Tape wechslen!" + MAIL_BODY="Nachricht von Bacula-Backup-System auf $HOST:\ + \n\n Tape entfernen:\t\""$TAPE_YESTERDAY"\"\ + \n Tape einlegen: \t\""$TAPE_TODAY"\"" + ;; + en) + MAIL_SUBJECT="[Bacula] Please replace Tape tonight!" + MAIL_BODY="Message from bacula-backup-service on $HOST:\ + \n\n Remove Tape:\t\""$TAPE_YESTERDAY"\"\ + \n Insert Tape:\t\""$TAPE_TODAY"\"" + ;; +esac + +# send notification +if [ $TAPE_TODAY != $TAPE_YESTERDAY ] ; then + echo -e $MAIL_BODY | mail -a "X-Bacula: Tape-Notifier on $HOST" -s "`echo $MAIL_SUBJECT`" -b $BCC_ADDR $MAILTO_ADDR +fi + +# remove older temp-files +find $TEMP_DIR -type f -name NEXT-TAPE-\*| while read I; do + TAPE_FILE=${I##/tmp/bacula/} + if [ $TAPE_FILE ]; then + if [ $TAPE_FILE != NEXT-TAPE-$TODAY ] && [ $TAPE_FILE != NEXT-TAPE-$YESTERDAY ]; then + rm $TEMP_DIR/$TAPE_FILE + fi + fi +done diff --git a/Branch-2.2/bacula/examples/reports/pool-query.txt b/Branch-2.2/bacula/examples/reports/pool-query.txt new file mode 100644 index 0000000000..5e233546b1 --- /dev/null +++ b/Branch-2.2/bacula/examples/reports/pool-query.txt @@ -0,0 +1,108 @@ +From: Arno Lehmann +Organization: IT-Service Lehmann +Subject: [Bacula-users] Pool information +Date: Wed, 15 Dec 2004 23:00:50 +0100 + +Hi all, + +I've been playing around a bit and created a small SQL program which +tries to give some useful information on pool usage in bacula. + +It gives you information like this: ++--------+----+------------+---------+----------+------------+------+ +| Pool | Nr | GB_Total | Nr_Full | Nr_Avail | GB_Avail | V | ++--------+----+------------+---------+----------+------------+------+ +| D-Full | 10 | 130.002 | 5 | 4 | 90.364 | 87% | +| Diff | 5 | 16.217 | 2 | 3 | 12.773 | 52% | +| Full | 29 | 63.994 | 23 | 6 | 14.284 | 25% | +| Incr | 9 | 32.844 | 7 | 2 | 6.838 | 91% | +| QIC | 15 | 3.978 | 1 | 14 | 3.657 | 0% | ++--------+----+------------+---------+----------+------------+------+ +and doesn't break the catalog :-) +It's in no way optimized, but the impact on the database should not be +too big. + +Might be helpful sometimes, for example before a holiday. + +Here, it runs with MySQL 3.23.33. I'm not sure, but the function STD is +probably not ANSI-SQL. According to the MySQL manual, STDDEV is Oracles +version, so probably PostgreSQL has something similar... Implementing +Standard Deviation is otherwise quite inefficient, I'm afraid... + +If someone can improve or enhance the script - go on! + +Simply add this to he end of the query.sql file, usually found in +/etc/bacula under linux. + +Oh, and to make this as clearly as possible: +Anybody may use, modify, distribute or ignore this script without any +limitations. + +Arno + + +# 20 +:Show Pool usage +CREATE TABLE tempal_F(Pool TINYBLOB NOT NULL, + Nr_Full INTEGER NOT NULL,GB_Full DECIMAL(9,3) NOT NULL, + Cap_Avg DECIMAL(15,0),V DECIMAL(3,2)); +CREATE TABLE tempal_E(Pool TINYBLOB NOT NULL, + Nr_Empty INTEGER NOT NULL); +CREATE TABLE tempal_P(Pool TINYBLOB NOT NULL,Nr_Partly INTEGER NOT NULL, + GB_Partly DECIMAL(9,3) NOT NULL); +CREATE TABLE tempal_T(Pool TINYBLOB NOT NULL,Nr INTEGER NOT NULL, + GB_Total DECIMAL(9,3) NOT NULL); +INSERT INTO tempal_F + SELECT Pool.Name,COUNT(*),ROUND(SUM(VolBytes)/1024/1024/1024,3), + AVG(VolBytes),STD(VolBytes)/AVG(VolBytes) FROM Media,Pool + WHERE Media.VolStatus='Full' AND Media.PoolId=Pool.PoolId + GROUP BY Pool.PoolId; +INSERT INTO tempal_P + SELECT Pool.Name,COUNT(*),ROUND(SUM(VolBytes)/1024/1024/1024,3) + FROM Media,Pool + WHERE (Media.VolStatus='Append' OR Media.VolStatus='Busy') + AND Media.PoolId=Pool.PoolId + GROUP BY Pool.PoolId; +INSERT INTO tempal_E + SELECT Pool.Name,COUNT(*) + FROM Media,Pool + WHERE (Media.VolStatus='Recycle' OR Media.VolStatus='Purged') + AND Media.PoolId=Pool.PoolId + GROUP BY Pool.PoolId; +INSERT INTO tempal_T + SELECT Pool.Name AS Pool,COUNT(*), + ROUND(SUM(VolBytes)/1024/1024/1024,3) + FROM Media,Pool + WHERE (Media.VolStatus='Full' OR (Media.Volstatus='Archive') + OR (Media.Volstatus='Append') OR (Media.Volstatus='Read-Only') + OR (Media.Volstatus='Busy') OR (Media.Volstatus='Used') + OR (Media.VolStatus='Disabled') OR (Media.VolStatus='Error')) + AND Media.PoolId=Pool.PoolId + GROUP BY Pool.PoolId; +CREATE TABLE tempal_N(Note TINYBLOB); +INSERT INTO tempal_N + VALUES("Only Pools with full and appendable volumes are shown!"); +INSERT INTO tempal_N + VALUES("V is a measurement for the reliability of the *guess*"); +INSERT INTO tempal_N + VALUES("of average volume capacity."); +SELECT * FROM tempal_N; +DROP TABLE IF EXISTS tempal_N; +SELECT tempal_F.Pool,Nr+Nr_Empty AS Nr,LPAD(GB_Total,10,' ') AS GB_Total, + Nr_Full,Nr_Partly+Nr_Empty AS Nr_Avail, + LPAD(ROUND(GREATEST(0.0007,(Nr_Partly+Nr_Empty)* + (GB_Full/Nr_Full)-GB_Partly),3),10,' ') AS GB_Avail, + CONCAT(LPAD(ROUND( + 100-(100*(V+1/(Nr_Full*Nr_Full*Nr_Full))),0),3,' '),'%') + AS V + FROM tempal_P,tempal_F,tempal_T,tempal_E + WHERE tempal_F.Pool=tempal_T.Pool + AND tempal_F.Pool=tempal_P.Pool + AND tempal_E.Pool=tempal_T.Pool + GROUP BY Pool + ORDER BY Pool; +!DROP TABLE tempal_P,tempal_E,tempal_T,tempal_F; + +-- +IT-Service Lehmann al@its-lehmann.de +Arno Lehmann http://www.its-lehmann.de diff --git a/Branch-2.2/bacula/examples/reports/report.pl b/Branch-2.2/bacula/examples/reports/report.pl new file mode 100755 index 0000000000..7859d8f424 --- /dev/null +++ b/Branch-2.2/bacula/examples/reports/report.pl @@ -0,0 +1,116 @@ +#!/usr/bin/perl +# +# A bacula job report generator. +# It require MySQL 4.1.x or later +# +# If you have any comments question feel free to contact me, jb@soe.se +# +# /Jonas Björklund +# + +use DBI; + +$db_host = "localhost"; +$database = "bacula"; +$db_username = "bacula"; +$db_password = "bacula"; +$email = "$ARGV[0]"; +$from = "backup\@example.net"; +$when = "$ARGV[1]"; + +if (!@ARGV) { + print "\n report.pl email@hostname.com (TODAY|YESTERDAY|WEEK|MONTH)\n\n"; + exit; +} + + +if ($when eq "MONTH") { + $where = "StartTime > DATE_FORMAT(now() - INTERVAL 1 MONTH, '%Y-%m-%d')"; + $order = "ORDER BY StartTime DESC"; +} elsif ($when eq "WEEK") { + $where = "StartTime > DATE_FORMAT(now() - INTERVAL 7 DAY, '%Y-%m-%d')"; + $order = "ORDER BY StartTime DESC"; +} elsif ($when eq "YESTERDAY") { + $where = "StartTime > DATE_FORMAT(now() - INTERVAL 1 DAY, '%Y-%m-%d') AND StartTime < DATE_FORMAT(now(), '%Y-%m-%d')"; + $order = "ORDER BY JobStatus,Time DESC"; +} else { + $when = "TODAY"; + $where = "StartTime > curdate()"; + $order = "ORDER BY JobStatus,Time DESC"; +} + +$sqlquery = "SELECT JobStatus,Name,Level,JobBytes,JobFiles,DATE_FORMAT(StartTime, '%Y-%m-%d %H:%i') AS Start, TIMEDIFF(EndTime,StartTime) AS Time,PoolId + FROM Job WHERE + $where + $order"; + +$dbh = DBI->connect("DBI:mysql:database=$database:host=$db_host", $db_username,$db_password) or die; + +my $sth = $dbh->prepare("$sqlquery"); $sth->execute() or die "Can't execute SQL statement : $dbh->errstr"; +while(($jobstatus,$name,$level,$jobbytes,$jobfiles,$start,$time,$poolid) = $sth->fetchrow_array()) { + my $sth2 = $dbh->prepare("SELECT Name FROM Pool WHERE PoolId = $poolid"); $sth2->execute() or die "Can't execute SQL statement : $dbh->errstr"; + ($poolname) = $sth2->fetchrow_array(); + ($hours,$minutes,$seconds) = split(":", $time); + $seconds = sprintf("%.1f", $seconds + ($minutes * 60) + ($hours * 60 * 60)); + $time = sprintf("%.1f", ($seconds + ($minutes * 60) + ($hours * 60 * 60)) / 60); + $bytesANDfiles = sprintf "%7.0f/%d", $jobbytes/1024/1024,$jobfiles; + $kbs = 0; + if ($jobbytes != 0) { + $kbs = ($jobbytes/$seconds)/1024; + } + + $text .= sprintf "%s %18.18s %1s %14s %16s %5sm %4.0f %9.9s\n", $jobstatus,$name,$level,$bytesANDfiles,$start,$time,$kbs,$poolname; + $totalfiles = $totalfiles + $jobfiles; + $totalbytes = $totalbytes + $jobbytes; +} +$totalbytes = sprintf("%.1f",$totalbytes / 1024 / 1024 / 1024); + +my $sth = $dbh->prepare("SELECT count(*) FROM Job WHERE $where"); $sth->execute() or die "Can't execute SQL statement : $dbh->errstr"; +($count_total) = $sth->fetchrow_array(); +my $sth = $dbh->prepare("SELECT count(*) FROM Job WHERE $where AND JobStatus = 'T'"); $sth->execute() or die "Can't execute SQL statement : $dbh->errstr"; +($count_ok) = $sth->fetchrow_array(); +$count_fail = $count_total - $count_ok; +$counts = sprintf("%.1f", 100- (($count_fail/$count_total)*100)); + + +open(MAIL,"|/usr/lib/sendmail -f$from -t"); +print MAIL "From: $from\n"; +print MAIL "To: $email\n"; +print MAIL "Subject: Backup ($when) $counts% OK - Total $count_total jobs, $count_fail failed\n"; +print MAIL "\n"; +print MAIL "Total $count_total jobs - $count_ok jobs are OK.\n"; +print MAIL "Total $totalbytes GB / $totalfiles files\n"; +print MAIL "\n"; + +print MAIL "Status JobName Lvl MBytes/Files Start Time KB/s Pool\n"; +print MAIL "============================================================================\n"; +print MAIL $text; + +print MAIL "============================================================================\n"; +print MAIL < +To: bacula-users@lists.sourceforge.net +Subject: [Bacula-users] SSH tunneling mini-howto +Date: Tue, 13 Dec 2005 16:59:47 -0900 + +Here is an outline of the steps I took to get ssh tunneling to work for me. + +NOTES: +I modified to ssh-tunnel.sh file from CVS because: +1) I didn't need director->client communications encrypted. My main reason +for using SSH tunneling was so the clients in the DMZ could get back through +the firewall to connect to the storage server. +2) There was a bug in the method it used to get the PID of the tunnel. +It used 'cut -d" " -f1' The problem was that ps sometimes has a leading space +in front of the PID if PID < 10,000, so cut would return a blank PID. +Instead I used awk '{ print $1 }' and that worked even with leading spaces. +3) I also took out ssh's 'v' option for production work +4) I added '> /dev/null 2> /dev/null' because for some reason ssh wasn't fully +disconnecting from the terminal, thus the ssh-tunnel script would actually +hang the job +5) I changed it to exit with the status of the SSH command, so the job would +fail right away if the tunnel didn't go up. +6) The $CLIENT is now specified on the command line so it can be specified in +the Run Before Job directive. As a result, you must specify the client when +you start *and* stop the tunnel. + +OK, on to the how to: + +1. I placed the attached script in /usr/local/bacula/scripts + +2. I modified bacula-dir.conf to have a second Storage directive entry that +referenced the same storage resource in bacula-sd.conf. (Based on a recent +e-mail, might this be dangerous? Testing will tell.) + +The modified Storage entry looked like this: + +Storage { + Name = herodotus-sd-ops + Address = localhost + SDPort = 9103 + Password = "Apassword" + Device = AdicFastStor22 + Media Type = DLT8000 + Autochanger = yes + Maximum Concurrent Jobs = 30 +} + +The Address is set to localhost, because when the tunnel is up, the client +will connect to localhost:9103 in order to connect to the Storage director. + +3. In the client configuration, each client that uses this configuration has +these lines added: + +Run Before Job =3D "/usr/local/bacula/scripts/ssh-tunnel start FQDN" +Run After Job =3D "/usr/local/bacula/scripts/ssh-tunnel stop FQDN" + +=46QDN =3D fully qualifed domain name (i.e. full host name) + +And their storage is set to "herodotus-sd-ops" (in our case, OPS is the name +of our DMZ). + +4. Now, ssh keys must be created in order for all this to go on unattended. + +At the prompt, type: + +ssh -b 2048 -t dsa + +(if you want less bit strength, you can use a number less than 2048) + +When asked where to save the key, specify a location, or accept the default +Just remember the location, because you will have to put it in the script +(replace "/usr/local/bacula/ssh/id_dsa" with your file's location). Make +sure the user as which bacula runs can read the file. + +When asked for a password, leave that blank also as this will be running +unattended. + +After it generates the key, it will save a file called id_dsa, and in that +same directory, there will be a file called id_dsa.pub, which is your public +SSH key. + +On your backup client, create a user ('bacula' is probably a good choice). +In that user's home directory, create a directory named '.ssh' (note the +leading dot). In that directory, copy the id_dsa.pub file you create +earlier. Once that file is in that user's directory copy it to a file name +"authorized_keys" in that same directory. If you're not doing this as the +user, make sure the directory and files a owned by that user. And for good +measure make sure only the user can read them. + +5. Now, the test. Your keys are generated. They are in place on the client. +You've pointed your script to your private key's file (id_dsa). Now, at the +prompt on your server type: + +location_of_script/ssh-tunnel start client.host.name + +then type + +echo $? + +That should be 0, which will mean everything went well. + +If you need to debug, remove the redirection on the ssh command and add 'v' to +the switches for verbose output. + +If the test went well, reload your modified config, and try running a job. If +all goes well, the job report will look like it always does, save notices at +the top and bottom letting you know that the tunnel went up and down. + +I've also gotten this to work on a Windows box using CopSSH (and OpenSSH +server for Windows), so this isn't a Unix-only solution. + +The script is in /examples/ssh-tunnel.sh diff --git a/Branch-2.2/bacula/examples/ssh-tunnel.sh b/Branch-2.2/bacula/examples/ssh-tunnel.sh new file mode 100755 index 0000000000..2e08444866 --- /dev/null +++ b/Branch-2.2/bacula/examples/ssh-tunnel.sh @@ -0,0 +1,41 @@ +#!/bin/sh +# script for creating / stopping a ssh-tunnel to a backupclient +# Stephan Holl +# Modified by Joshua Kugler +# +# + +# variables +USER=bacula +CLIENT=$2 +LOCAL=your.backup.server.host.name +SSH=/usr/bin/ssh + +case "$1" in + start) + # create ssh-tunnel + echo "Starting SSH-tunnel to $CLIENT..." + $SSH -fnCN2 -o PreferredAuthentications=publickey -i /usr/local/bacula/ssh/id_dsa -l $USER -R 9101:$LOCAL:9101 -R 9103:$LOCAL:9103 $CLIENT > /dev/null 2> /dev/null + exit $? + ;; + + stop) + # remove tunnel + echo "Stopping SSH-tunnel to $CLIENT..." + # find PID killem + PID=`ps ax | grep "ssh -fnCN2 -o PreferredAuthentications=publickey -i /usr/local/bacula/ssh/id_dsa" | grep "$CLIENT" | awk '{ print $1 }'` + kill $PID + exit $? + ;; + *) + # usage: + echo " " + echo " Start SSH-tunnel to client-host" + echo " to bacula-director and storage-daemon" + echo " " + echo " USAGE:" + echo " ssh-tunnel.sh {start|stop} client.fqdn" + echo "" + exit 1 + ;; +esac diff --git a/Branch-2.2/bacula/examples/upgrade-win32-client.txt b/Branch-2.2/bacula/examples/upgrade-win32-client.txt new file mode 100644 index 0000000000..ef110a6c95 --- /dev/null +++ b/Branch-2.2/bacula/examples/upgrade-win32-client.txt @@ -0,0 +1,75 @@ +From: "Michel Meyers" +To: "bacula-users" +Subject: [Bacula-users] Script for pushing new clients to Windows boxes +Date: Mon, 2 Feb 2004 16:10:48 +0100 + +Hello, + +Some of you may remember my document on how to remotely push a Win32 bacula +client onto a WinNT/2k/XP box. Well, I've written a script to do it for me +and thought I'd share it with you: +- ---------------------------------------------------------------- +#!/bin/bash +# +# Remote Win32 client upgrade script +# written by Michel Meyers (last update 2006-09-25 11:34) +# +# WARNING: Make sure that no bacula-fd.conf exists in the source directory! +# You will destroy/overwrite all your client's configs if you don't +# be careful with this. +# +# The upgrade function does the following: +# - Shutdown Bacula service on remote machine +# - Wait 30 seconds (to allow proper shutdown) +# - Mount C: drive of remote box +# - Copy new client to remote machine +# - Unmount C; +# - Startup the new Bacula service +# +# To upgrade a machine append the following at the bottom of this file: +# +# SERVERNAME= +# USERNAME= +# PASSWORD= +# upgrade + +upgrade() { +net rpc -S $SERVERNAME -U $USERNAME%"$PASSWORD" service stop bacula +sleep 30 +smbmount //$SERVERNAME/c$ /mnt -o username=$USERNAME,password="$PASSWORD" +cp /home/michel/winbacula/bin/* /mnt/bacula/bin +umount /mnt +net rpc -S $SERVERNAME -U $USERNAME%"$PASSWORD" service start bacula +} + +SERVERNAME=xerxes +USERNAME=administrator +PASSWORD=secret +upgrade + +SERVERNAME=shodan +USERNAME=teh_one +PASSWORD="" +upgrade +- ---------------------------------------------------------------- + +It should be pretty self-explanatory. I'm not good at shell programming and +I don't know whether there's any notion of arrays or 'for' loops that could +make it cleaner so I simply wrote a function which references some variables +and then call that repeatedly (once per machine). You can of course change +the values according to your system and liking (if 30 secs seem to much for +you, just reduce the value after sleep, make sure to check on the paths and +mountpoint /mnt may not be usable on your system, ...) + +Note: The requirements are the same as described in my other document +(Samba-TNG clients among others, otherwise you'll be missing rpcclient). + +Update 2006-09-25: Samba-TNG is no longer required, the 'net' command from +Samba 3 works for starting and stopping services. Paths may need to be +updated with quotation marks as the new Bacula Win32 Installer no longer +installs into C:\bacula but into 'C:\Program Files\bacula' (on English +Windows versions). + + +Enjoy! + diff --git a/Branch-2.2/bacula/examples/vm/bacula.data b/Branch-2.2/bacula/examples/vm/bacula.data new file mode 100644 index 0000000000..a316f7ee9a --- /dev/null +++ b/Branch-2.2/bacula/examples/vm/bacula.data @@ -0,0 +1,2 @@ +Bacula Data Tape + diff --git a/Branch-2.2/bacula/examples/vm/blabela.exec b/Branch-2.2/bacula/examples/vm/blabela.exec new file mode 100644 index 0000000000..5ffa6d4795 --- /dev/null +++ b/Branch-2.2/bacula/examples/vm/blabela.exec @@ -0,0 +1,83 @@ +/* REXX ****************************************************/ +/* BLABELA EXEC -- Example VM procedure for labeling tapes */ +/* to be used with Bacula in ANSI label */ +/* mode. */ +/* */ +/* Author: David Boyes */ +/* */ +/* Prereq: Tape drive attached at virtual addr */ +/* 181 (TAP1). */ +/* */ +/* Blank tape inserted in drive. */ +/* */ +/* External file BACULA DATA (used as a */ +/* dummy input file for MOVEFILE, since */ +/* MOVEFILE insists on having a real file */ +/* for input if we want actual output */ +/* by the CMS OS sim routines). */ +/* */ +/* Usage: BLABELA volumeid ownerid */ +/* */ +/* where: */ +/* */ +/* volumeid = ANSI volume id to be */ +/* written in VOL1 label and made */ +/* visible to the library automation */ +/* and other OSes. */ +/* */ +/* ownerid = local userid to "own" the */ +/* tape from the TMS viewpoint. Used */ +/* to validate mount requests and for */ +/* TMS housekeeping purposes. */ +/* */ +/* Maintenance Log: */ +/* */ +/* 16 Feb 2005 -- DB: Created procedure and released to */ +/* Bacula development list. */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/***********************************************************/ + +/***********************************************************/ +/* Parse command line arguments */ +/***********************************************************/ + +arg volser owner + +/***********************************************************/ +/* Rewind tape and write ANSI VOL1 label and logical EOT */ +/***********************************************************/ + +'TAPE REW (TAP1' +'TAPE WVOL1' volser owner '( TAP1 AL' +'TAPE WTM 2' + +/***********************************************************/ +/* Rewind tape and write Bacula ANSI label signature file */ +/* (HDR1 file containing BACULA.DATA FID as 1st file on */ +/* tape). Note that for some reason the LABELDEF command */ +/* requires FIDs longer than 8 chars to be passed via the */ +/* program stack, even if it would not cause the resulting */ +/* command to exceed the 255 char maximum. This is (IMHO) */ +/* an APARable bug, but c'est la vie. */ +/***********************************************************/ + +'TAPE REW ( TAP1' +'SET CMSTYPE HT' /* supress output to hide prompt for FID */ +'FILEDEF INMOVE DISK BACULA DATA A' +'FILEDEF OUTMOVE TAP1 AL ( RECFM F LRECL 80' +queue "BACULA.DATA" +'LABELDEF OUTMOVE FID ? VOLID' volser 'VOLSEQ 1 FSEQ 1' +'MOVEFILE' +'SET CMSTYPE RT' /* resume normal console output */ + +/***********************************************************/ +/* Print nice exit message and exit */ +/***********************************************************/ + +say "Labeled ANSI" volser "for use with Bacula." +exit diff --git a/Branch-2.2/bacula/examples/vm/blabeli.exec b/Branch-2.2/bacula/examples/vm/blabeli.exec new file mode 100644 index 0000000000..16d678e71b --- /dev/null +++ b/Branch-2.2/bacula/examples/vm/blabeli.exec @@ -0,0 +1,83 @@ +/* REXX ****************************************************/ +/* BLABELI EXEC -- Example VM procedure for labeling tapes */ +/* to be used with Bacula in IBM SL label */ +/* mode. */ +/* */ +/* Author: David Boyes */ +/* */ +/* Prereq: Tape drive attached at virtual addr */ +/* 181 (TAP1). */ +/* */ +/* Blank tape inserted in drive. */ +/* */ +/* External file BACULA DATA (used as a */ +/* dummy input file for MOVEFILE, since */ +/* MOVEFILE insists on having a real file */ +/* for input if we want actual output */ +/* by the CMS OS sim routines). */ +/* */ +/* Usage: BLABELI volumeid ownerid */ +/* */ +/* where: */ +/* */ +/* volumeid = IBM SL volume id to be */ +/* written in VOL1 label and made */ +/* visible to the library automation */ +/* and other OSes. */ +/* */ +/* ownerid = local userid to "own" the */ +/* tape from the TMS viewpoint. Used */ +/* to validate mount requests and for */ +/* TMS housekeeping purposes. */ +/* */ +/* Maintenance Log: */ +/* */ +/* 16 Feb 2005 -- DB: Created procedure and released to */ +/* Bacula development list. */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/***********************************************************/ + +/***********************************************************/ +/* Parse command line arguments */ +/***********************************************************/ + +arg volser owner + +/***********************************************************/ +/* Rewind tape and write IBM VOL1 label and logical EOT */ +/***********************************************************/ + +'TAPE REW (TAP1' +'TAPE WVOL1' volser owner '( TAP1 SL' +'TAPE WTM 2' + +/***********************************************************/ +/* Rewind tape and write Bacula IBM label signature file */ +/* (HDR1 file containing BACULA.DATA FID as 1st file on */ +/* tape). Note that for some reason the LABELDEF command */ +/* requires FIDs longer than 8 chars to be passed via the */ +/* program stack, even if it would not cause the resulting */ +/* command to exceed the 255 char maximum. This is (IMHO) */ +/* an APARable bug, but c'est la vie. */ +/***********************************************************/ + +'TAPE REW ( TAP1' +'SET CMSTYPE HT' /* supress output to hide prompt for FID */ +'FILEDEF INMOVE DISK BACULA DATA A' +'FILEDEF OUTMOVE TAP1 SL ( RECFM F LRECL 80' +queue "BACULA.DATA" +'LABELDEF OUTMOVE FID ? VOLID' volser 'VOLSEQ 1 FSEQ 1' +'MOVEFILE' +'SET CMSTYPE RT' /* resume normal console output */ + +/***********************************************************/ +/* Print nice exit message and exit */ +/***********************************************************/ + +say "Labeled IBM SL" volser "for use with Bacula." +exit diff --git a/Branch-2.2/bacula/examples/vm/tape-label-tools.txt b/Branch-2.2/bacula/examples/vm/tape-label-tools.txt new file mode 100644 index 0000000000..5ef734074a --- /dev/null +++ b/Branch-2.2/bacula/examples/vm/tape-label-tools.txt @@ -0,0 +1,27 @@ +From: David Boyes +To: "'kern@sibbald.com'" , +Cc: "'bacula-devel'" +Subject: RE: [Bacula-devel] ANSI label tape creation tools for VM +Date: Thu, 17 Feb 2005 11:03:26 -0500 + +I don't seem to have a way to update the CVS (nor really a lot of +experience with *update* access to the beastie), so appended below are +some example scripts to use on a z/VM system to create labeled tapes +suitable for use with the ANSI label support in Bacula. I suggest that +we put these in the "examples" section of the tree as contributed tools +-- I'll leave it to your discretion as to where/how to tag these. + +I'm finishing up the documentation and packaging for my z/VM tape mount +helper daemon and mtx-changer variant, so you may want to think about +where those should go as well. + +File BLABELA EXEC is the script for creating ANSI labeled tapes with the +proper signature. + +File BLABELI EXEC is a variation of the above script for creating IBM SL +label tapes with the proper signature. + +File BACULA.DATA is a dummy file required by the annoying fact that the +OS simulation routines in CMS require an actual file as input to the OS +sim file creation utility (grr). + diff --git a/Branch-2.2/bacula/examples/vm/vmbacula.tgz b/Branch-2.2/bacula/examples/vm/vmbacula.tgz new file mode 100644 index 0000000000..0309fff572 Binary files /dev/null and b/Branch-2.2/bacula/examples/vm/vmbacula.tgz differ diff --git a/Branch-2.2/bacula/examples/vm/vmbacula.txt b/Branch-2.2/bacula/examples/vm/vmbacula.txt new file mode 100644 index 0000000000..f706054c3c --- /dev/null +++ b/Branch-2.2/bacula/examples/vm/vmbacula.txt @@ -0,0 +1,28 @@ +Tape Mount Client/Server for z/VM + +This package provides a simple Linux client and a VM disconnected +virtual machine allowing Linux applications to mount and manage +tapes hosted by a z/VM systems. + +The tools were written to support running Bacula, a open-source +file level backup tool, as a Linux appliance running in a z/VM +virtual machine, however they are general purpose enough to +employ with other applications with some minor thought. The +application consists of a Perl script to run within the Linux +guest, and a REXX/CMS Pipelines-based server to interact with a +CMS-based tape management system. + +This package contains only the support for basic VM tape +operations, and does not include support for the popular +commercial TMS systems such as CA-VM:Tape or others. A +commercially supported version is available for a fee from Sine +Nomine and includes detailed documentation, 24x7 support, and +additional features. Please contact Sine Nomine at info (at) +sinenomine.net for information and pricing for the full +commercial version of the software. + + +This software is distributed according to the Artistic License. +Please send bugs or suggestions to deb390 (at) sinenomine.net. + +Web site: http://sinenomine.net/vm/tapemount diff --git a/Branch-2.2/bacula/kernstodo b/Branch-2.2/bacula/kernstodo new file mode 100644 index 0000000000..d840d86f2d --- /dev/null +++ b/Branch-2.2/bacula/kernstodo @@ -0,0 +1,1796 @@ + Kern's ToDo List + 16 July 2007 + + +Document: +- !!! Cannot restore two jobs a the same time that were + written simultaneously unless they were totally spooled. +- Document cleaning up the spool files: + db, pid, state, bsr, mail, conmsg, spool +- Document the multiple-drive-changer.txt script. +- Pruning with Admin job. +- Does WildFile match against full name? Doc. +- %d and %v only valid on Director, not for ClientRunBefore/After. +- During tests with the 260 char fix code, I found one problem: + if the system "sees" a long path once, it seems to forget it's + working drive (e.g. c:\), which will lead to a problem during + the next job (create bootstrap file will fail). Here is the + workaround: specify absolute working and pid directory in + bacula-fd.conf (e.g. c:\bacula\working instead of + \bacula\working). +- Document techniques for restoring large numbers of files. +- Document setting my.cnf to big file usage. +- Add example of proper index output to doc. show index from File; +- Correct the Include syntax in the m4.xxx files in examples/conf +- Document JobStatus and Termination codes. +- Fix the error with the "DVI file can't be opened" while + building the French PDF. +- Document more DVD stuff +- Doc + { "JobErrors", "i"}, + { "JobFiles", "i"}, + { "SDJobFiles", "i"}, + { "SDErrors", "i"}, + { "FDJobStatus","s"}, + { "SDJobStatus","s"}, +- Document all the little details of setting up certificates for + the Bacula data encryption code. +- Document more precisely how to use master keys -- especially + for disaster recovery. + +Professional Needs: +- Migration from other vendors + - Date change + - Path change +- Filesystem types +- Backup conf/exe (all daemons) +- Backup up system state +- Detect state change of system (verify) +- Synthetic Full, Diff, Inc (Virtual, Reconstructed) +- SD to SD +- Modules for Databases, Exchange, ... +- Novell NSS backup http://www.novell.com/coolsolutions/tools/18952.html +- Compliance norms that compare restored code hash code. +- When glibc crash, get address with + info symbol 0x809780c +- How to sync remote offices. +- Exchange backup: + http://www.microsoft.com/technet/itshowcase/content/exchbkup.mspx +- David's priorities + Copypools + Extract capability (#25) + Continued enhancement of bweb + Threshold triggered migration jobs (not currently in list, but will be + needed ASAP) + Client triggered backups + Complete rework of the scheduling system (not in list) + Performance and usage instrumentation (not in list) + See email of 21Aug2007 for details. + +Priority: +- Erabt if min_block_size > max_block_size +- KIWI +- Implement wait on multiple objects + - Multiple max times + - pthread signal + - socket input ready +- Implement SDErrors (must return from SD) +- Implement USB keyboard support in rescue CD. +- Implement continue spooling while despooling. +- Remove all install temp files in Win32 PLUGINSDIR. +- Audit retention periods to make sure everything is 64 bit. +- Use E'xxx' to escape PostgreSQL strings. +- No where in restore causes kaboom. +- Performance: multiple spool files for a single job. +- Performance: despool attributes when despooling data (problem + multiplexing Dir connection). +- Make restore use the in-use volume reservation algorithm. +- Look at mincore: http://insights.oetiker.ch/linux/fadvise.html +- Unicode input http://en.wikipedia.org/wiki/Byte_Order_Mark +- Add TLS to bat (should be done). +- When Pool specifies Storage command override does not work. +- Implement wait_for_sysop() message display in wait_for_device(), which + now prints warnings too often. +- Ensure that each device in an Autochanger has a different + Device Index. +- Add Catalog = to Pool resource so that pools will exist + in only one catalog -- currently Pools are "global". +- Look at sg_logs -a /dev/sg0 for getting soft errors. +- btape "test" command with Offline on Unmount = yes + + This test is essential to Bacula. + + I'm going to write one record in file 0, + two records in file 1, + and three records in file 2 + + 02-Feb 11:00 btape: ABORTING due to ERROR in dev.c:715 + dev.c:714 Bad call to rewind. Device "LTO" (/dev/nst0) not open + 02-Feb 11:00 btape: Fatal Error because: Bacula interrupted by signal 11: Segmentation violation + Kaboom! btape, btape got signal 11. Attempting traceback. + +- Encryption -- email from Landon + > The backup encryption algorithm is currently not configurable, and is + > set to AES_128_CBC in src/filed/backup.c. The encryption code + > supports a number of different ciphers (as well as adding arbitrary + > new ones) -- only a small bit of code would be required to map a + > configuration string value to a CRYPTO_CIPHER_* value, if anyone is + > interested in implementing this functionality. + +- Why doesn't @"xxx abc" work in a conf file? +- Figure out some way to "automatically" backup conf changes. +- Add the OS version back to the Win32 client info. +- Restarted jobs have a NULL in the from field. +- Modify SD status command to indicate when the SD is writing + to a DVD (the device is not open -- see bug #732). +- Look at the possibility of adding "SET NAMES UTF8" for MySQL, + and possibly changing the blobs into varchar. +- Ensure that the SD re-reads the Media record if the JobFiles + does not match -- it may have been updated by another job. +- Look at moving the Storage directive from the Job to the + Pool in the default conf files. +- Doc items +- Test Volume compatibility between machine architectures +- Encryption documentation +- Wrong jobbytes with query 12 (todo) +- Bare-metal recovery Windows (todo) + + +Projects: +- Pool enhancements + - Access Mode = Read-Only, Read-Write, Unavailable, Destroyed, Offsite + - Pool Type = Copy + - Maximum number of scratch volumes + - Maximum File size + - Next Pool (already have) + - Reclamation threshold + - Reclamation Pool + - Reuse delay (after all files purged from volume before it can be used) + - Copy Pool = xx, yyy (or multiple lines). + - Catalog = xxx + - Allow pool selection during restore. + +- Average tape size from Eric + SELECT COALESCE(media_avg_size.volavg,0) * count(Media.MediaId) AS volmax, GROUP BY Media.MediaType, Media.PoolId, media_avg_size.volavg + count(Media.MediaId) AS volnum, + sum(Media.VolBytes) AS voltotal, + Media.PoolId AS PoolId, + Media.MediaType AS MediaType + FROM Media + LEFT JOIN (SELECT avg(Media.VolBytes) AS volavg, + Media.MediaType AS MediaType + FROM Media + WHERE Media.VolStatus = 'Full' + GROUP BY Media.MediaType + ) AS media_avg_size ON (Media.MediaType = media_avg_size.MediaType) + GROUP BY Media.MediaType, Media.PoolId, media_avg_size.volavg +- GUI + - Admin + - Management reports + - Add doc for bweb -- especially Installation + - Look at Webmin + http://www.orangecrate.com/modules.php?name=News&file=article&sid=501 +- Performance + - Despool attributes in separate thread + - Database speedups + - Embedded MySQL + - Check why restore repeatedly sends Rechdrs between + each data chunk -- according to James Harper 9Jan07. +- Features + - Better scheduling + - Full at least once a month, ... + - Cancel Inc if Diff/Full running + - More intelligent re-run + - New/deleted file backup + - FD plugins + - Incremental backup -- rsync, Stow + + +For next release: +- Try to fix bscan not working with multiple DVD volumes bug #912. +- Look at mondo/mindi +- Don't restore Solaris Door files: + #define S_IFDOOR in st_mode. + see: http://docs.sun.com/app/docs/doc/816-5173/6mbb8ae23?a=view#indexterm-360 +- Make Bacula by default not backup tmpfs, procfs, sysfs, ... +- Fix hardlinked immutable files when linking a second file, the + immutable flag must be removed prior to trying to link it. +- Implement Python event for backing up/restoring a file. +- Change dbcheck to tell users to use native tools for fixing + broken databases, and to ensure they have the proper indexes. +- add udev rules for Bacula devices. +- If a job terminates, the DIR connection can close before the + Volume info is updated, leaving the File count wrong. +- Look at why SIGPIPE during connection can cause seg fault in + writing the daemon message, when Dir dropped to bacula:bacula +- Look at zlib 32 => 64 problems. +- Possibly turn on St. Bernard code. +- Fix bextract to restore ACLs, or better yet, use common routines. +- Do we migrate appendable Volumes? +- Remove queue.c code. +- Print warning message if LANG environment variable does not specify + UTF-8. +- New dot commands from Arno. + .show device=xxx lists information from one storage device, including + devices (I'm not even sure that information exists in the DIR...) + .move eject device=xxx mostly the same as 'unmount xxx' but perhaps with + better machine-readable output like "Ok" or "Error busy" + .move eject device=xxx toslot=yyy the same as above, but with a new + target slot. The catalog should be updated accordingly. + .move transfer device=xxx fromslot=yyy toslot=zzz + +Low priority: +- Article: http://www.heise.de/open/news/meldung/83231 +- Article: http://www.golem.de/0701/49756.html +- Article: http://lwn.net/Articles/209809/ +- Article: http://www.onlamp.com/pub/a/onlamp/2004/01/09/bacula.html +- Article: http://www.linuxdevcenter.com/pub/a/linux/2005/04/07/bacula.html +- Article: http://www.osreviews.net/reviews/admin/bacula +- Article: http://www.debianhelp.co.uk/baculaweb.htm +- Article: +- Wikis mentioning Bacula + http://wiki.finkproject.org/index.php/Admin:Backups + http://wiki.linuxquestions.org/wiki/Bacula + http://www.openpkg.org/product/packages/?package=bacula + http://www.iterating.com/products/Bacula + http://net-snmp.sourceforge.net/wiki/index.php/Net-snmp_extensions + http://www.section6.net/wiki/index.php/Using_Bacula_for_Tape_Backups + http://bacula.darwinports.com/ + http://wiki.mandriva.com/en/Releases/Corporate/Server_4/Notes#Bacula + http://en.wikipedia.org/wiki/Bacula + +- Bacula Wikis + http://www.devco.net/pubwiki/Bacula/ + http://paramount.ind.wpi.edu/wiki/doku.php + http://gentoo-wiki.com/HOWTO_Backup + http://www.georglutz.de/wiki/Bacula + http://www.clarkconnect.com/wiki/index.php?title=Modules_-_LAN_Backup/Recovery + http://linuxwiki.de/Bacula (in German) + +- Possibly allow SD to spool even if a tape is not mounted. +- It appears to me that you have run into some sort of race + condition where two threads want to use the same Volume and they + were both given access. Normally that is no problem. However, + one thread wanted the particular Volume in drive 0, but it was + loaded into drive 1 so it decided to unload it from drive 1 and + then loaded it into drive 0, while the second thread went on + thinking that the Volume could be used in drive 1 not realizing + that in between time, it was loaded in drive 0. + I'll look at the code to see if there is some way we can avoid + this kind of problem. Probably the best solution is to make the + first thread simply start using the Volume in drive 1 rather than + transferring it to drive 0. +- Fix re-read of last block to check if job has actually written + a block, and check if block was written by a different job + (i.e. multiple simultaneous jobs writing). +- Figure out how to configure query.sql. Suggestion to use m4: + == changequote.m4 === + changequote(`[',`]')dnl + ==== query.sql.in === + :List next 20 volumes to expire + SELECT + Pool.Name AS PoolName, + Media.VolumeName, + Media.VolStatus, + Media.MediaType, + ifdef([MySQL], + [ FROM_UNIXTIME(UNIX_TIMESTAMP(Media.LastWritten) Media.VolRetention) AS Expire, ])dnl + ifdef([PostgreSQL], + [ media.lastwritten + interval '1 second' * media.volretention as expire, ])dnl + Media.LastWritten + FROM Pool + LEFT JOIN Media + ON Media.PoolId=Pool.PoolId + WHERE Media.LastWritten>0 + ORDER BY Expire + LIMIT 20; + ==== + Command: m4 -DmySQL changequote.m4 query.sql.in >query.sql + + The problem is that it requires m4, which is not present on all machines + at ./configure time. +- Given all the problems with FIFOs, I think the solution is to do something a + little different, though I will look at the code and see if there is not some + simple solution (i.e. some bug that was introduced). What might be a better + solution would be to use a FIFO as a sort of "key" to tell Bacula to read and + write data to a program rather than the FIFO. For example, suppose you + create a FIFO named: + + /home/kern/my-fifo + + Then, I could imagine if you backup and restore this file with a direct + reference as is currently done for fifos, instead, during backup Bacula will + execute: + + /home/kern/my-fifo.backup + + and read the data that my-fifo.backup writes to stdout. For restore, Bacula + will execute: + + /home/kern/my-fifo.restore + + and send the data backed up to stdout. These programs can either be an + executable or a shell script and they need only read/write to stdin/stdout. + + I think this would give a lot of flexibility to the user without making any + significant changes to Bacula. + + +==== SQL +# get null file +select FilenameId from Filename where Name=''; +# Get list of all directories referenced in a Backup. +select Path.Path from Path,File where File.JobId=nnn and + File.FilenameId=(FilenameId-from-above) and File.PathId=Path.PathId + order by Path.Path ASC; + +- Look into using Dart for testing + http://public.kitware.com/Dart/HTML/Index.shtml + +- Look into replacing autotools with cmake + http://www.cmake.org/HTML/Index.html + +=== Migration from David === +What I'd like to see: + +Job { + Name = "-migrate" + Type = Migrate + Messages = Standard + Pool = Default + Migration Selection Type = LowestUtil | OldestVol | PoolOccupancy | +Client | PoolResidence | Volume | JobName | SQLquery + Migration Selection Pattern = "regexp" + Next Pool = +} + +There should be no need for a Level (migration is always Full, since you +don't calculate differential/incremental differences for migration), +Storage should be determined by the volume types in the pool, and Client +is really a selection issue. Migration should always occur to the +NextPool defined in the pool definition. If no nextpool is defined, the +job should end with a reason of "no place to go". If Next Pool statement +is present, we override the check in the pool definition and use the +pool specified. + +Here's how I'd define Migration Selection Types: + +With Regexes: +Client -- Migrate data from selected client only. Migration Selection +Pattern regexp provides pattern to select client names, eg ^FS00* makes +all client names starting with FS00 eligible for migration. + +Jobname -- Migration all jobs matching name. Migration Selection Pattern +regexp provides pattern to select jobnames existing in pool. + +Volume -- Migrate all data on specified volumes. Migration Selection +Pattern regexp provides selection criteria for volumes to be migrated. +Volumes must exist in pool to be eligible for migration. + + +With Regex optional: +LowestUtil -- Identify the volume in the pool with the least data on it +and empty it. No Migration Selection Pattern required. + +OldestVol -- Identify the LRU volume with data written, and empty it. No +Migration Selection Pattern required. + +PoolOccupancy -- if pool occupancy exceeds , migrate volumes +(starting with most full volumes) until pool occupancy drops below +. Pool highmig and lowmig values are in pool definition, no +Migration Selection Pattern required. + + +No regex: +SQLQuery -- Migrate all jobuids returned by the supplied SQL query. +Migration Selection Pattern contains SQL query to execute; should return +a list of 1 or more jobuids to migrate. + +PoolResidence -- Migrate data sitting in pool for longer than +PoolResidence value in pool definition. Migration Selection Pattern +optional; if specified, override value in pool definition (value in +minutes). + + +[ possibly a Python event -- kes ] +=== +- Mount on an Autochanger with no tape in the drive causes: + Automatically selected Storage: LTO-changer + Enter autochanger drive[0]: 0 + 3301 Issuing autochanger "loaded drive 0" command. + 3302 Autochanger "loaded drive 0", result: nothing loaded. + 3301 Issuing autochanger "loaded drive 0" command. + 3302 Autochanger "loaded drive 0", result: nothing loaded. + 3902 Cannot mount Volume on Storage Device "LTO-Drive1" (/dev/nst0) because: + Couldn't rewind device "LTO-Drive1" (/dev/nst0): ERR=dev.c:678 Rewind error on "LTO-Drive1" (/dev/nst0). ERR=No medium found. + 3905 Device "LTO-Drive1" (/dev/nst0) open but no Bacula volume is mounted. + If this is not a blank tape, try unmounting and remounting the Volume. +- If Drive 0 is blocked, and drive 1 is set "Autoselect=no", drive 1 will + be used. +- Autochanger did not change volumes. + select * from Storage; + +-----------+-------------+-------------+ + | StorageId | Name | AutoChanger | + +-----------+-------------+-------------+ + | 1 | LTO-changer | 0 | + +-----------+-------------+-------------+ + 05-May 03:50 roxie-sd: 3302 Autochanger "loaded drive 0", result is Slot 11. + 05-May 03:50 roxie-sd: Tibs.2006-05-05_03.05.02 Warning: Director wanted Volume "LT + Current Volume "LT0-002" not acceptable because: + 1997 Volume "LT0-002" not in catalog. + 05-May 03:50 roxie-sd: Tibs.2006-05-05_03.05.02 Error: Autochanger Volume "LT0-002" + Setting InChanger to zero in catalog. + 05-May 03:50 roxie-dir: Tibs.2006-05-05_03.05.02 Error: Unable to get Media record + + 05-May 03:50 roxie-sd: Tibs.2006-05-05_03.05.02 Fatal error: Error getting Volume i + 05-May 03:50 roxie-sd: Tibs.2006-05-05_03.05.02 Fatal error: Job 530 canceled. + 05-May 03:50 roxie-sd: Tibs.2006-05-05_03.05.02 Fatal error: spool.c:249 Fatal appe + 05-May 03:49 Tibs: Tibs.2006-05-05_03.05.02 Fatal error: c:\cygwin\home\kern\bacula + , got + (missing) + llist volume=LTO-002 + MediaId: 6 + VolumeName: LTO-002 + Slot: 0 + PoolId: 1 + MediaType: LTO-2 + FirstWritten: 2006-05-05 03:11:54 + LastWritten: 2006-05-05 03:50:23 + LabelDate: 2005-12-26 16:52:40 + VolJobs: 1 + VolFiles: 0 + VolBlocks: 1 + VolMounts: 0 + VolBytes: 206 + VolErrors: 0 + VolWrites: 0 + VolCapacityBytes: 0 + VolStatus: + Recycle: 1 + VolRetention: 31,536,000 + VolUseDuration: 0 + MaxVolJobs: 0 + MaxVolFiles: 0 + MaxVolBytes: 0 + InChanger: 0 + EndFile: 0 + EndBlock: 0 + VolParts: 0 + LabelType: 0 + StorageId: 1 + + Note VolStatus is blank!!!!! + llist volume=LTO-003 + MediaId: 7 + VolumeName: LTO-003 + Slot: 12 + PoolId: 1 + MediaType: LTO-2 + FirstWritten: 0000-00-00 00:00:00 + LastWritten: 0000-00-00 00:00:00 + LabelDate: 2005-12-26 16:52:40 + VolJobs: 0 + VolFiles: 0 + VolBlocks: 0 + VolMounts: 0 + VolBytes: 1 + VolErrors: 0 + VolWrites: 0 + VolCapacityBytes: 0 + VolStatus: Append + Recycle: 1 + VolRetention: 31,536,000 + VolUseDuration: 0 + MaxVolJobs: 0 + MaxVolFiles: 0 + MaxVolBytes: 0 + InChanger: 0 + EndFile: 0 + EndBlock: 0 + VolParts: 0 + LabelType: 0 + StorageId: 1 +=== + mount + Automatically selected Storage: LTO-changer + Enter autochanger drive[0]: 0 + 3301 Issuing autochanger "loaded drive 0" command. + 3302 Autochanger "loaded drive 0", result: nothing loaded. + 3301 Issuing autochanger "loaded drive 0" command. + 3302 Autochanger "loaded drive 0", result: nothing loaded. + 3902 Cannot mount Volume on Storage Device "LTO-Drive1" (/dev/nst0) because: + Couldn't rewind device "LTO-Drive1" (/dev/nst0): ERR=dev.c:678 Rewind error on "LTO-Drive1" (/dev/nst0). ERR=No medium found. + + 3905 Device "LTO-Drive1" (/dev/nst0) open but no Bacula volume is mounted. + If this is not a blank tape, try unmounting and remounting the Volume. + +- http://www.dwheeler.com/essays/commercial-floss.html +- Add VolumeLock to prevent all but lock holder (SD) from updating + the Volume data (with the exception of VolumeState). +- The btape fill command does not seem to use the Autochanger +- Make Windows installer default to system disk drive. +- Look at using ioctl(FIOBMAP, ...) on Linux, and + DeviceIoControl(..., FSCTL_QUERY_ALLOCATED_RANGES, ...) on + Win32 for sparse files. + http://www.flexhex.com/docs/articles/sparse-files.phtml + http://www.informatik.uni-frankfurt.de/~loizides/reiserfs/fibmap.html +- Directive: at "command" +- Command: pycmd "command" generates "command" event. How to + attach to a specific job? +- Integrate Christopher's St. Bernard code. +- run_cmd() returns int should return JobId_t +- get_next_jobid_from_list() returns int should return JobId_t +- Document export LDFLAGS=-L/usr/lib64 +- Don't attempt to restore from "Disabled" Volumes. +- Network error on Win32 should set Win32 error code. +- What happens when you rename a Disk Volume? +- Job retention period in a Pool (and hence Volume). The job would + then be migrated. +- Look at -D_FORTIFY_SOURCE=2 +- Add Win32 FileSet definition somewhere +- Look at fixing restore status stats in SD. +- Look at using ioctl(FIMAP) and FIGETBSZ for sparse files. + http://www.informatik.uni-frankfurt.de/~loizides/reiserfs/fibmap.html +- Implement a mode that says when a hard read error is + encountered, read many times (as it currently does), and if the + block cannot be read, skip to the next block, and try again. If + that fails, skip to the next file and try again, ... +- Add level table: + create table LevelType (LevelType binary(1), LevelTypeLong tinyblob); + insert into LevelType (LevelType,LevelTypeLong) values + ("F","Full"), + ("D","Diff"), + ("I","Inc"); +- Show files/second in client status output. +- Add a recursive mark command (rmark) to restore. +- "Minimum Job Interval = nnn" sets minimum interval between Jobs + of the same level and does not permit multiple simultaneous + running of that Job (i.e. lets any previous invocation finish + before doing Interval testing). +- Look at simplifying File exclusions. +- New directive "Delete purged Volumes" +- new pool XXX with ScratchPoolId = MyScratchPool's PoolId and + let it fill itself, and RecyclePoolId = XXX's PoolId so I can + see if it become stable and I just have to supervise + MyScratchPool +- If I want to remove this pool, I set RecyclePoolId = MyScratchPool's + PoolId, and when it is empty remove it. +- Figure out how to recycle Scratch volumes back to the Scratch Pool. +- Add Volume=SCRTCH +- Allow Check Labels to be used with Bacula labels. +- "Resuming" a failed backup (lost line for example) by using the + failed backup as a sort of "base" job. +- Look at NDMP +- Email to the user when the tape is about to need changing x + days before it needs changing. +- Command to show next tape that will be used for a job even + if the job is not scheduled. +- From: Arunav Mandal + 1. When jobs are running and bacula for some reason crashes or if I do a + restart it remembers and jobs it was running before it crashed or restarted + as of now I loose all jobs if I restart it. + + 2. When spooling and in the midway if client is disconnected for instance a + laptop bacula completely discard the spool. It will be nice if it can write + that spool to tape so there will be some backups for that client if not all. + + 3. We have around 150 clients machines it will be nice to have a option to + upgrade all the client machines bacula version automatically. + + 4. Atleast one connection should be reserved for the bconsole so at heavy load + I should connect to the director via bconsole which at sometimes I can't + + 5. Another most important feature that is missing, say at 10am I manually + started backup of client abc and it was a full backup since client abc has + no backup history and at 10.30am bacula again automatically started backup of + client abc as that was in the schedule. So now we have 2 multiple Full + backups of the same client and if we again try to start a full backup of + client backup abc bacula won't complain. That should be fixed. + +- Fix bpipe.c so that it does not modify results pointer. + ***FIXME*** calling sequence should be changed. +- For Windows disaster recovery see http://unattended.sf.net/ +- regardless of the retention period, Bacula will not prune the + last Full, Diff, or Inc File data until a month after the + retention period for the last Full backup that was done. +- update volume=xxx --- add status=Full +- Remove old spool files on startup. +- Exclude SD spool/working directory. +- Refuse to prune last valid Full backup. Same goes for Catalog. +- Python: + - Make a callback when Rerun failed levels is called. + - Give Python program access to Scheduled jobs. + - Add setting Volume State via Python. + - Python script to save with Python, not save, save with Bacula. + - Python script to do backup. + - What events? + - Change the Priority, Client, Storage, JobStatus (error) + at the start of a job. +- Why is SpoolDirectory = /home/bacula/spool; not reported + as an error when writing a DVD? +- Make bootstrap file handle multiple MediaTypes (SD) +- Remove all old Device resource code in Dir and code to pass it + back in SD -- better, rework it to pass back device statistics. +- Check locking of resources -- be sure to lock devices where previously + resources were locked. +- The last part is left in the spool dir. + + +- In restore don't compare byte count on a raw device -- directory + entry does not contain bytes. +=== rate design + jcr->last_rate + jcr->last_runtime + MA = (last_MA * 3 + rate) / 4 + rate = (bytes - last_bytes) / (runtime - last_runtime) +- Max Vols limit in Pool off by one? +- Implement Files/Bytes,... stats for restore job. +- Implement Total Bytes Written, ... for restore job. +- Despool attributes simultaneously with data in a separate + thread, rejoined at end of data spooling. +- 7. Implement new Console commands to allow offlining/reserving drives, + and possibly manipulating the autochanger (much asked for). +- Add start/end date editing in messages (%t %T, %e?) ... +- Add ClientDefs similar to JobDefs. +- Print more info when bextract -p accepts a bad block. +- Fix FD JobType to be set before RunBeforeJob in FD. +- Look at adding full Volume and Pool information to a Volume + label so that bscan can get *all* the info. +- If the user puts "Purge Oldest Volume = yes" or "Recycle Oldest Volume = yes" + and there is only one volume in the pool, refuse to do it -- otherwise + he fills the Volume, then immediately starts reusing it. +- Implement copies and stripes. +- Add history file to console. +- Each file on tape creates a JobMedia record. Peter has 4 million + files spread over 10000 tape files and four tapes. A restore takes + 16 hours to build the restore list. +- Add and option to check if the file size changed during backup. +- Make sure SD deletes spool files on error exit. +- Delete old spool files when SD starts. +- When labeling tapes, if you enter 000026, Bacula uses + the tape index rather than the Volume name 000026. +- Add offline tape command to Bacula console. +- Bug: + Enter MediaId or Volume name: 32 + Enter new Volume name: DLT-20Dec04 + Automatically selected Pool: Default + Connecting to Storage daemon DLTDrive at 192.168.68.104:9103 ... + Sending relabel command from "DLT-28Jun03" to "DLT-20Dec04" ... + block.c:552 Write error at 0:0 on device /dev/nst0. ERR=Bad file descriptor. + Error writing final EOF to tape. This tape may not be readable. + dev.c:1207 ioctl MTWEOF error on /dev/nst0. ERR=Permission denied. + askdir.c:219 NULL Volume name. This shouldn't happen!!! + 3912 Failed to label Volume: ERR=dev.c:1207 ioctl MTWEOF error on /dev/nst0. ERR=Permission denied. + Label command failed for Volume DLT-20Dec04. + Do not forget to mount the drive!!! +- Bug: if a job is manually scheduled to run later, it does not appear + in any status report and cannot be cancelled. + +==== Keeping track of deleted/new files ==== +- To mark files as deleted, run essentially a Verify to disk, and + when a file is found missing (MarkId != JobId), then create + a new File record with FileIndex == -1. This could be done + by the FD at the same time as the backup. + + My "trick" for keeping track of deletions is the following. + Assuming the user turns on this option, after all the files + have been backed up, but before the job has terminated, the + FD will make a pass through all the files and send their + names to the DIR (*exactly* the same as what a Verify job + currently does). This will probably be done at the same + time the files are being sent to the SD avoiding a second + pass. The DIR will then compare that to what is stored in + the catalog. Any files in the catalog but not in what the + FD sent will receive a catalog File entry that indicates + that at that point in time the file was deleted. This + either transmitted to the FD or simultaneously computed in + the FD, so that the FD can put a record on the tape that + indicates that the file has been deleted at this point. + A delete file entry could potentially be one with a FileIndex + of 0 or perhaps -1 (need to check if FileIndex is used for + some other thing as many of the Bacula fields are "overloaded" + in the SD). + + During a restore, any file initially picked up by some + backup (Full, ...) then subsequently having a File entry + marked "delete" will be removed from the tree, so will not + be restored. If a file with the same name is later OK it + will be inserted in the tree -- this already happens. All + will be consistent except for possible changes during the + running of the FD. + + Since I'm on the subject, some of you may be wondering what + the utility of the in memory tree is if you are going to + restore everything (at least it comes up from time to time + on the list). Well, it is still *very* useful because it + allows only the last item found for a particular filename + (full path) to be entered into the tree, and thus if a file + is backed up 10 times, only the last copy will be restored. + I recently (last Friday) restored a complete directory, and + the Full and all the Differential and Incremental backups + spanned 3 Volumes. The first Volume was not even mounted + because all the files had been updated and hence backed up + since the Full backup was made. In this case, the tree + saved me a *lot* of time. + + Make sure this information is stored on the tape too so + that it can be restored directly from the tape. + + All the code (with the exception of formally generating and + saving the delete file entries) already exists in the Verify + Catalog command. It explicitly recognizes added/deleted files since + the last InitCatalog. It is more or less a "simple" matter of + taking that code and adapting it slightly to work for backups. + + Comments from Martin Simmons (I think they are all covered): + Ok, that should cover the basics. There are few issues though: + + - Restore will depend on the catalog. I think it is better to include the + extra data in the backup as well, so it can be seen by bscan and bextract. + + - I'm not sure if it will preserve multiple hard links to the same inode. Or + maybe adding or removing links will cause the data to be dumped again? + + - I'm not sure if it will handle renamed directories. Possibly it will work + by dumping the whole tree under a renamed directory? + + - It remains to be seen how the backup performance of the DIR's will be + affected when comparing the catalog for a large filesystem. + +==== +From David: +How about introducing a Type = MgmtPolicy job type? That job type would +be responsible for scanning the Bacula environment looking for specific +conditions, and submitting the appropriate jobs for implementing said +policy, eg: + +Job { + Name = "Migration-Policy" + Type = MgmtPolicy + Policy Selection Job Type = Migrate + Scope = " " + Threshold = " " + Job Template = +} + +Where is any legal job keyword, is a comparison +operator (=,<,>,!=, logical operators AND/OR/NOT) and is a +appropriate regexp. I could see an argument for Scope and Threshold +being SQL queries if we want to support full flexibility. The +Migration-Policy job would then get scheduled as frequently as a site +felt necessary (suggested default: every 15 minutes). + +Example: + +Job { + Name = "Migration-Policy" + Type = MgmtPolicy + Policy Selection Job Type = Migration + Scope = "Pool=*" + Threshold = "Migration Selection Type = LowestUtil" + Job Template = "MigrationTemplate" +} + +would select all pools for examination and generate a job based on +MigrationTemplate to automatically select the volume with the lowest +usage and migrate it's contents to the nextpool defined for that pool. + +This policy abstraction would be really handy for adjusting the behavior +of Bacula according to site-selectable criteria (one thing that pops +into mind is Amanda's ability to automatically adjust backup levels +depending on various criteria). + + +===== + +Regression tests: +- Add Pool/Storage override regression test. +- Add delete JobId to regression. +- Add a regression test for dbcheck. +- New test to add bscan to four-concurrent-jobs regression, + i.e. after the four-concurrent jobs zap the + database as is done in the bscan-test, then use bscan to + restore the database, do a restore and compare with the + original. +- Add restore of specific JobId to regression (item 3 + on the restore prompt) +- Add IPv6 to regression +- Add database test to regression. Test each function like delete, + purge, ... + +- AntiVir can slow down backups on Win32 systems. +- Win32 systems with FAT32 can be much slower than NTFS for + more than 1000 files per directory. + + +1.37 Possibilities: +- A HOLD command to stop all jobs from starting. +- A PAUSE command to pause all running jobs ==> release the + drive. +- Media Type = LTO,LTO-2,LTO-3 + Media Type Read = LTO,LTO2,LTO3 + Media Type Write = LTO2, LTO3 + +=== From Carsten Menke + +Following is a list of what I think in the situations where I'm faced with, +could be a usefull enhancement to bacula, which I'm certain other users will +benefit from as well. + +1. NextJob/NextJobs Directive within a Job Resource in the form of + NextJobs = job1,job2. + + Why: + I currently solved the problem with running multiple jobs each after each + by setting the Max Wait Time for a job to 8 hours, and give + the jobs different Priorities. However, there scenarios where + 1 Job is directly depending on another job, so if the former job fails, + the job after it needn't to be run + while maybe other jobs should run despite of that + +Example: + A Backup Job and a Verify job, if the backup job fails there is no need to run + the verify job, as the backup job already failed. However, one may like + to backup the Catalog to disk despite of that the main backup job failed. + +Notes: + I see that this is related to the Event Handlers which are on the ToDo + list, also it is maybe a good idea to check for the return value and + execute different actions based on the return value + + +3. offline capability to bconsole + + Why: + Currently I use a script which I execute within the last Job via the + RunAfterJob Directive, to release and eject the tape. + So I have to call bconsole "release=Storage-Name" and afterwards + mt -f /dev/nst0 eject to get the tape out. + + If I have multiple Storage Devices, than these may not be /dev/nst0 and + I have to modify the script or call it with parameters etc. + This would actually not be needed, as everything is already defined + in bacula-sd.conf and if I can invoke bconsole with the + storage name via $1 in the script than I'm done and information is + not duplicated. + +4. %s for Storage Name added to the chars being substituted in "RunAfterJob" + + Why: + + For the reason mentioned in 3. to have the ability to call a + script with /scripts/foobar %s and in the script use $1 + to pass the Storage Name to bconsole + +5. Setting Volume State within a Job Resource + + Why: + Instead of using "Maximum Volume Jobs" in the Pool Resource, + I would have the possibilty to define + in a Job Resource that after this certain job is run, the Volume State + should be set to "Volume State = Used", this give more flexibility (IMHO). + +6. Localization of Bacula Messages + + Why: + Unfortunatley many,many people I work with don't speak english very well. + So if at least the Reporting messages would be localized then they + would understand that they have to change the tape,etc. etc. + + I volunteer to do the german translations, and if I can convince my wife also + french and Morre (western african language). + +7. OK, this is evil, probably bound to security risks and maybe not possible + due to the design of bacula. + + Implementation of Backtics ( `command` ) for shell comand execution to + the "Label Format" Directive. + +Why: + + Currently I have defined BACULA_DAY_OF_WEEK="day1|day2..." resulting in + Label Format = "HolyBackup-${BACULA_DAY_OF_WEEK[${WeekDay}]}". If I could + use backticks than I could use "Label Format = HolyBackup-`date +%A` to have + the localized name for the day of the week appended to the + format string. Then I have the tape labeled automatically with weekday + name in the correct language. +========== +- Yes, that is surely the case. I probably should turn those into Warning + errors. In addition, you just made me think that it might not be bad to + add an option to check the file size after backing up the file and + report if it changes. This would be done as an option because it would + add extra overhead. + + Kern, good idea. If you do do that, mention in the output: file + shrunk, or file expanded, just to make it obvious to the user + (without having to the refer to file size), just how the file size + changed. + + Would this option be for all file, or just one file? Or a fileset? +- Make output from status use html table tags for nicely + presenting in a browser. +- Can one write tapes faster with 8192 byte block sizes? +- Document security problems with the same password for everyone in + rpm and Win32 releases. +- Browse generations of files. +- I've seen an error when my catalog's File table fills up. I + then have to recreate the File table with a larger maximum row + size. Relevant information is at + http://dev.mysql.com/doc/mysql/en/Full_table.html ; I think the + "Installing and Configuring MySQL" chapter should talk a bit + about this potential problem, and recommend a solution. +- For Solaris must use POSIX awk. +- Want speed of writing to tape while despooling. +- Supported autochanger: +OS: Linux +Man.: HP +Media: LTO-2 +Model: SSL1016 +Slots: 16 +Cap: 200GB +- Supported drive: + Wangtek 6525ES (SCSI-1 QIC drive, 525MB), under Linux 2.4.something, + bacula 1.36.0/1 works with blocksize 16k INSIDE bacula-sd.conf. +- Add regex from http://www.pcre.org to Bacula for Win32. +- Use only shell tools no make in CDROM package. +- Include within include does it work? +- Implement a Pool of type Cleaning? +- Implement VolReadTime and VolWriteTime in SD +- Modify Backing up Your Database to include a bootstrap file. +- Think about making certain database errors fatal. +- Look at correcting the time jump in the scheduler for daylight + savings time changes. +- Add a "real" timer to network connections. +- Promote to Full = Time period +- Check dates entered by user for correctness (month/day/... ranges) +- Compress restore Volume listing by date and first file. +- Look at patches/bacula_db.b2z postgresql that loops during restore. + See Gregory Wright. +- Perhaps add read/write programs and/or plugins to FileSets. +- How to handle backing up portables ... +- Add some sort of guaranteed Interval for upgrading jobs. +- Can we write the state file after every job terminates? On Win32 + the system crashes and the state file is not updated. +- Limit bandwidth + +Documentation to do: (any release a little bit at a time) +- Doc to do unmount before removing magazine. +- Alternative to static linking "ldd prog" save all binaries listed, + restore them and point LD_LIBRARY_PATH to them. +- Document add "/dev/null 2>&1" to the bacula-fd command line +- Document query file format. +- Add more documentation for bsr files. +- Document problems with Verify and pruning. +- Document how to use multiple databases. +- VXA drives have a "cleaning required" + indicator, but Exabyte recommends preventive cleaning after every 75 + hours of operation. + From Phil: + In this context, it should be noted that Exabyte has a command-line + vxatool utility available for free download. (The current version is + vxatool-3.72.) It can get diagnostic info, read, write and erase tapes, + test the drive, unload tapes, change drive settings, flash new firmware, + etc. + Of particular interest in this context is that vxatool -i will + report, among other details, the time since last cleaning in tape motion + minutes. This information can be retrieved (and settings changed, for + that matter) through the generic-SCSI device even when Bacula has the + regular tape device locked. (Needless to say, I don't recommend + changing tape settings while a job is running.) +- Lookup HP cleaning recommendations. +- Lookup HP tape replacement recommendations (see trouble shooting autochanger) +- Document doing table repair + + +=================================== +- Add macro expansions in JobDefs. + Run Before Job = "SomeFile %{Level} %{Client}" + Write Bootstrap="/some/dir/%{JobName}_%{Client}.bsr" +- Use non-blocking network I/O but if no data is available, use + select(). +- Use gather write() for network I/O. +- Autorestart on crash. +- Add bandwidth limiting. +- Add acks every once and a while from the SD to keep + the line from timing out. +- When an error in input occurs and conio beeps, you can back + up through the prompt. +- Detect fixed tape block mode during positioning by looking at + block numbers in btape "test". Possibly adjust in Bacula. +- Fix list volumes to output volume retention in some other + units, perhaps via a directive. +- Allow Simultaneous Priorities = yes => run up to Max concurrent jobs even + with multiple priorities. +- If you use restore replace=never, the directory attributes for + non-existent directories will not be restored properly. + +- see lzma401.zip in others directory for new compression + algorithm/library. +- Allow the user to select JobType for manual pruning/purging. +- bscan does not put first of two volumes back with all info in + bscan-test. +- Implement the FreeBSD nodump flag in chflags. +- Figure out how to make named console messages go only to that + console and to the non-restricted console (new console class?). +- Make restricted console prompt for password if *ask* is set or + perhaps if password is undefined. +- Implement "from ISO-date/time every x hours/days/weeks/months" in + schedules. + +==== from Marc Schoechlin +- the help-command should be more verbose + (it should explain the paramters of the different + commands in detail) + -> its time-comsuming to consult the manual anytime + you need a special parameter + -> maybe its more easy to maintain this, if the + descriptions of that commands are outsourced to + a ceratin-file +- the cd-command should allow complete paths + i.e. cd /foo/bar/foo/bar + -> if a customer mails me the path to a certain file, + its faster to enter the specified directory +- if the password is not configured in bconsole.conf + you should be asked for it. + -> sometimes you like to do restore on a customer-machine + which shouldnt know the password for bacula. + -> adding the password to the file favours admins + to forget to remove the password after usage + -> security-aspects + the protection of that file is less important +- long-listed-output of commands should be scrollable + like the unix more/less-command does + -> if someone runs 200 and more machines, the lists could + be a little long and complex +- command-output should be shown column by column + to reduce scrolling and to increase clarity + -> see last item +- lsmark should list the selected files with full + paths +- wildcards for selecting and file and directories would be nice +- any actions should be interuptable with STRG+C +- command-expansion would be pretty cool +==== +- When the replace Never option is set, new directory permissions + are not restored. See bug 213. To fix this requires creating a + list of newly restored directories so that those directory + permissions *can* be restored. +- Add prune all command +- Document fact that purge can destroy a part of a restore by purging + one volume while others remain valid -- perhaps mark Jobs. +- Add multiple-media-types.txt +- look at mxt-changer.html +- Make ? do a help command (no return needed). +- Implement restore directory. +- Document streams and how to implement them. +- Try not to re-backup a file if a new hard link is added. +- Add feature to backup hard links only, but not the data. +- Fix stream handling to be simpler. +- Add Priority and Bootstrap to Run a Job. +- Eliminate Restore "Run Restore Job" prompt by allowing new "run command + to be issued" +- Remove View FileSet button from Run a Job dialog. +- Handle prompt for restore job at end of Restore command. +- Add display of total selected files to Restore window. +- Add tree pane to left of window. +- Add progress meter. +- Max wait time or max run time causes seg fault -- see runtime-bug.txt +- Add message to user to check for fixed block size when the forward + space test fails in btape. +- When unmarking a directory check if all files below are unmarked and + then remove the + flag -- in the restore tree. +- Possibly implement: Action = Unmount Device="TapeDrive1" in Admin jobs. +- Setup lrrd graphs: (http://www.linpro.no/projects/lrrd/) Mike Acar. +- Revisit the question of multiple Volumes (disk) on a single device. +- Add a block copy option to bcopy. +- Finish work on Gnome restore GUI. +- Fix "llist jobid=xx" where no fileset or client exists. +- For each job type (Admin, Restore, ...) require only the really necessary + fields.- Pass Director resource name as an option to the Console. +- Add a "batch" mode to the Console (no unsolicited queries, ...). +- Add a .list all files in the restore tree (probably also a list all files) + Do both a long and short form. +- Allow browsing the catalog to see all versions of a file (with + stat data on each file). +- Restore attributes of directory if replace=never set but directory + did not exist. +- Use SHA1 on authentication if possible. +- See comtest-xxx.zip for Windows code to talk to USB. +- Add John's appended files: + Appended = { /files/server/logs/http/*log } + and such files would be treated as follows.On a FULL backup, they would + be backed up like any other file.On an INCREMENTAL backup, where a + previous INCREMENTAL or FULL was already in thecatalogue and the length + of the file wasgreater than the length of the last backup, only thedata + added since the last backup will be dumped.On an INCREMENTAL backup, if + the length of the file is less than thelength of the file with the same + name last backed up, the completefile is dumped.On Windows systems, with + creation date of files, we can be evensmarter about this and not count + entirely upon the length.On a restore, the full and all incrementals + since it will beapplied in sequence to restore the file. +- Check new HAVE_WIN32 open bits. +- Check if the tape has moved before writing. +- Handling removable disks -- see below: +- Keep track of tape use time, and report when cleaning is necessary. +- Add FromClient and ToClient keywords on restore command (or + BackupClient RestoreClient). +- Implement a JobSet, which groups any number of jobs. If the + JobSet is started, all the jobs are started together. + Allow Pool, Level, and Schedule overrides. +- Enhance cancel to timeout BSOCK packets after a specific delay. +- Do scheduling by UTC using gmtime_r() in run_conf, scheduler, and + ua_status.!!! Thanks to Alan Brown for this tip. +- Look at updating Volume Jobs so that Max Volume Jobs = 1 will work + correctly for multiple simultaneous jobs. +- Correct code so that FileSet MD5 is calculated for < and | filename + generation. +- Implement the Media record flag that indicates that the Volume does disk + addressing. +- Implement VolAddr, which is used when Volume is addressed like a disk, + and form it from VolFile and VolBlock. +- Make multiple restore jobs for multiple media types specifying + the proper storage type. +- Fix fast block rejection (stored/read_record.c:118). It passes a null + pointer (rec) to try_repositioning(). +- Look at extracting Win data from BackupRead. +- Implement RestoreJobRetention? Maybe better "JobRetention" in a Job, + which would take precidence over the Catalog "JobRetention". +- Implement Label Format in Add and Label console commands. +- Possibly up network buffers to 65K. Put on variable. +- Put email tape request delays on one or more variables. User wants + to cancel the job after a certain time interval. Maximum Mount Wait? +- Job, Client, Device, Pool, or Volume? + Is it possible to make this a directive which is *optional* in multiple + resources, like Level? If so, I think I'd make it an optional directive + in Job, Client, and Pool, with precedence such that Job overrides Client + which in turn overrides Pool. + +- New Storage specifications: + - Want to write to multiple storage devices simultaneously + - Want to write to multiple storage devices sequentially (in one job) + - Want to read/write simultaneously + - Key is MediaType -- it must match + + Passed to SD as a sort of BSR record called Storage Specification + Record or SSR. + SSR + Next -> Next SSR + MediaType -> Next MediaType + Pool -> Next Pool + Device -> Next Device + Job Resource + Allow multiple Storage specifications + New flags + One Archive = yes + One Device = yes + One Storage = yes + One MediaType = yes + One Pool = yes + Storage + Allow Multiple Pool specifications (note, Pool currently + in Job resource). + Allow Multiple MediaType specifications in Dir conf + Allow Multiple Device specifications in Dir conf + Perhaps keep this in a single SSR + Tie a Volume to a specific device by using a MediaType that + is contained in only one device. + In SD allow Device to have Multiple MediaTypes + +- Ideas from Jerry Scharf: + First let's point out some big pluses that bacula has for this + it's open source + more importantly it's active. Thank you so much for that + even more important, it's not flaky + it has an open access catalog, opening many possibilities + it's pushing toward heterogeneous systems capability + big things: + Macintosh file client + macs are an interesting niche, but I fear a server is a rathole + working bare iron recovery for windows + the option for inc/diff backups not reset on fileset revision + a) use both change and inode update time against base time + b) do the full catalog check (expensive but accurate) + sizing guide (how much system is needed to back up N systems/files) + consultants on using bacula in building a disaster recovery system + an integration guide + or how to get at fancy things that one could do with bacula + logwatch code for bacula logs (or similar) + linux distro inclusion of bacula (brings good and bad, but necessary) + win2k/XP server capability (icky but you asked) + support for Oracle database ?? +=== +- Look at adding SQL server and Exchange support for Windows. +- Make dev->file and dev->block_num signed integers so that -1 can + be an invalid value which happens with BSR. +- Create VolAddr for disk files in place of VolFile and VolBlock. This + is needed to properly specify ranges. +- Add progress of files/bytes to SD and FD. +- Print warning message if FileId > 4 billion +- do a "messages" before the first prompt in Console +- Client does not show busy during Estimate command. +- Implement Console mtx commands. +- Implement a Mount Command and an Unmount Command where + the users could specify a system command to be performed + to do the mount, after which Bacula could attempt to + read the device. This is for Removeable media such as a CDROM. + - Most likely, this mount command would be invoked explicitly + by the user using the current Console "mount" and "unmount" + commands -- the Storage Daemon would do the right thing + depending on the exact nature of the device. + - As with tape drives, when Bacula wanted a new removable + disk mounted, it would unmount the old one, and send a message + to the user, who would then use "mount" as described above + once he had actually inserted the disk. +- Implement dump/print label to UA +- Spool to disk only when the tape is full, then when a tape is hung move + it to tape. +- bextract is sending everything to the log file ****FIXME**** +- Allow multiple Storage specifications (or multiple names on + a single Storage specification) in the Job record. Thus a job + can be backed up to a number of storage devices. +- Implement some way for the File daemon to contact the Director + to start a job or pass its DHCP obtained IP number. +- Implement a query tape prompt/replace feature for a console +- Copy console @ code to gnome2-console +- Make tree walk routines like cd, ls, ... more user friendly + by handling spaces better. +- Make sure that Bacula rechecks the tape after the 20 min wait. +- Set IO_NOWAIT on Bacula TCP/IP packets. +- Try doing a raw partition backup and restore by mounting a + Windows partition. +- From Lars Kellers: + Yes, it would allow to highly automatic the request for new tapes. If a + tape is empty, bacula reads the barcodes (native or simulated), and if + an unused tape is found, it runs the label command with all the + necessary parameters. + + By the way can bacula automatically "move" an empty/purged volume say + in the "short" pool to the "long" pool if this pool runs out of volume + space? +- What to do about "list files job=xxx". +- Look at how fuser works and /proc/PID/fd that is how Nic found the + file descriptor leak in Bacula. +- Implement WrapCounters in Counters. +- Add heartbeat from FD to SD if hb interval expires. +- Can we dynamically change FileSets? +- If pool specified to label command and Label Format is specified, + automatically generate the Volume name. +- Why can't SQL do the filename sort for restore? +- Add ExhautiveRestoreSearch +- Look at the possibility of loading only the necessary + data into the restore tree (i.e. do it one directory at a + time as the user walks through the tree). +- Possibly use the hash code if the user selects all for a restore command. +- Fix "restore all" to bypass building the tree. +- Prohibit backing up archive device (findlib/find_one.c:128) +- Implement Release Device in the Job resource to unmount a drive. +- Implement Acquire Device in the Job resource to mount a drive, + be sure this works with admin jobs so that the user can get + prompted to insert the correct tape. Possibly some way to say to + run the job but don't save the files. +- Make things like list where a file is saved case independent for + Windows. +- Use autochanger to handle multiple devices. +- Implement a Recycle command +- Start working on Base jobs. +- Implement UnsavedFiles DB record. +- From Phil Stracchino: + It would probably be a per-client option, and would be called + something like, say, "Automatically purge obsoleted jobs". What it + would do is, when you successfully complete a Differential backup of a + client, it would automatically purge all Incremental backups for that + client that are rendered redundant by that Differential. Likewise, + when a Full backup on a client completed, it would automatically purge + all Differential and Incremental jobs obsoleted by that Full backup. + This would let people minimize the number of tapes they're keeping on + hand without having to master the art of retention times. +- When doing a Backup send all attributes back to the Director, who + would then figure out what files have been deleted. +- Currently in mount.c:236 the SD simply creates a Volume. It should have + explicit permission to do so. It should also mark the tape in error + if there is an error. +- Cancel waiting for Client connect in SD if FD goes away. + +- Implement timeout in response() when it should come quickly. +- Implement a Slot priority (loaded/not loaded). +- Implement "vacation" Incremental only saves. +- Implement create "FileSet"? +- Add prefixlinks to where or not where absolute links to FD. +- Issue message to mount a new tape before the rewind. +- Simplified client job initiation for portables. +- If SD cannot open a drive, make it periodically retry. +- Add more of the config info to the tape label. + +- Refine SD waiting output: + Device is being positioned + > Device is being positioned for append + > Device is being positioned to file x + > +- Figure out some way to estimate output size and to avoid splitting + a backup across two Volumes -- this could be useful for writing CDROMs + where you really prefer not to have it split -- not serious. +- Have SD compute MD5 or SHA1 and compare to what FD computes. +- Make VolumeToCatalog calculate an MD5 or SHA1 from the + actual data on the Volume and compare it. +- Implement Bacula plugins -- design API +- Make bcopy read through bad tape records. +- Program files (i.e. execute a program to read/write files). + Pass read date of last backup, size of file last time. +- Add Signature type to File DB record. +- CD into subdirectory when open()ing files for backup to + speed up things. Test with testfind(). +- Priority job to go to top of list. +- Why are save/restore of device different sizes (sparse?) Yup! Fix it. +- Implement some way for the Console to dynamically create a job. +- Solaris -I on tar for include list +- Need a verbose mode in restore, perhaps to bsr. +- bscan without -v is too quiet -- perhaps show jobs. +- Add code to reject whole blocks if not wanted on restore. +- Check if we can increase Bacula FD priorty in Win2000 +- Make sure the MaxVolFiles is fully implemented in SD +- Check if both CatalogFiles and UseCatalog are set to SD. +- Possibly add email to Watchdog if drive is unmounted too + long and a job is waiting on the drive. +- After unmount, if restore job started, ask to mount. +- Add UA rc and history files. +- put termcap (used by console) in ./configure and + allow -with-termcap-dir. +- Fix Autoprune for Volumes to respect need for full save. +- Compare tape to Client files (attributes, or attributes and data) +- Make all database Ids 64 bit. +- Allow console commands to detach or run in background. +- Add SD message variables to control operator wait time + - Maximum Operator Wait + - Minimum Message Interval + - Maximum Message Interval +- Send Operator message when cannot read tape label. +- Verify level=Volume (scan only), level=Data (compare of data to file). + Verify level=Catalog, level=InitCatalog +- Events file +- Add keyword search to show command in Console. +- Events : tape has more than xxx bytes. +- Complete code in Bacula Resources -- this will permit + reading a new config file at any time. +- Handle ctl-c in Console +- Implement script driven addition of File daemon to config files. +- Think about how to make Bacula work better with File (non-tape) archives. +- Write Unix emulator for Windows. +- Put memory utilization in Status output of each daemon + if full status requested or if some level of debug on. +- Make database type selectable by .conf files i.e. at runtime +- Set flag for uname -a. Add to Volume label. +- Restore files modified after date +- SET LD_RUN_PATH=$HOME/mysql/lib/mysql +- Remove duplicate fields from jcr (e.g. jcr.level and jcr.jr.Level, ...). +- Timout a job or terminate if link goes down, or reopen link and query. +- Concept of precious tapes (cannot be reused). +- Make bcopy copy with a single tape drive. +- Permit changing ownership during restore. + +- From Phil: + > My suggestion: Add a feature on the systray menu-icon menu to request + > an immediate backup now. This would be useful for laptop users who may + > not be on the network when the regular scheduled backup is run. + > + > My wife's suggestion: Add a setting to the win32 client to allow it to + > shut down the machine after backup is complete (after, of course, + > displaying a "System will shut down in one minute, click here to cancel" + > warning dialog). This would be useful for sites that want user + > woorkstations to be shut down overnight to save power. + > + +- Autolabel should be specified by DIR instead of SD. +- Storage daemon + - Add media capacity + - AutoScan (check checksum of tape) + - Format command = "format /dev/nst0" + - MaxRewindTime + - MinRewindTime + - MaxBufferSize + - Seek resolution (usually corresponds to buffer size) + - EODErrorCode=ENOSPC or code + - Partial Read error code + - Partial write error code + - Nonformatted read error + - Nonformatted write error + - WriteProtected error + - IOTimeout + - OpenRetries + - OpenTimeout + - IgnoreCloseErrors=yes + - Tape=yes + - NoRewind=yes +- Pool + - Maxwrites + - Recycle period +- Job + - MaxWarnings + - MaxErrors (job?) +===== +- FD sends unsaved file list to Director at end of job (see + RFC below). +- File daemon should build list of files skipped, and then + at end of save retry and report any errors. +- Write a Storage daemon that uses pipes and + standard Unix programs to write to the tape. + See afbackup. +- Need something that monitors the JCR queue and + times out jobs by asking the deamons where they are. +- Enhance Jmsg code to permit buffering and saving to disk. +- device driver = "xxxx" for drives. +- Verify from Volume +- Ensure that /dev/null works +- Need report class for messages. Perhaps + report resource where report=group of messages +- enhance scan_attrib and rename scan_jobtype, and + fill in code for "since" option +- Director needs a time after which the report status is sent + anyway -- or better yet, a retry time for the job. +- Don't reschedule a job if previous incarnation is still running. +- Some way to automatically backup everything is needed???? +- Need a structure for pending actions: + - buffered messages + - termination status (part of buffered msgs?) +- Drive management + Read, Write, Clean, Delete +- Login to Bacula; Bacula users with different permissions: + owner, group, user, quotas +- Store info on each file system type (probably in the job header on tape. + This could be the output of df; or perhaps some sort of /etc/mtab record. + +========= ideas =============== +From: "Jerry K. Schieffer" +To: +Subject: RE: [Bacula-users] future large programming jobs +Date: Thu, 26 Feb 2004 11:34:54 -0600 + +I noticed the subject thread and thought I would offer the following +merely as sources of ideas, i.e. something to think about, not even as +strong as a request. In my former life (before retiring) I often +dealt with backups and storage management issues/products as a +developer and as a consultant. I am currently migrating my personal +network from amanda to bacula specifically because of the ability to +cross media boundaries during storing backups. +Are you familiar with the commercial product called ADSM (I think IBM +now sells it under the Tivoli label)? It has a couple of interesting +ideas that may apply to the following topics. + +1. Migration: Consider that when you need to restore a system, there +may be pressure to hurry. If all the information for a single client +can eventually end up on the same media (and in chronological order), +the restore is facillitated by not having to search past information +from other clients. ADSM has the concept of "client affinity" that +may be associated with it's storage pools. It seems to me that this +concept (as an optional feature) might fit in your architecture for +migration. + +ADSM also has the concept of defining one or more storage pools as +"copy pools" (almost mirrors, but only in the sense of contents). +These pools provide the ability to have duplicte data stored both +onsite and offsite. The copy process can be scheduled to be handled +by their storage manager during periods when there is no backup +activity. Again, the migration process might be a place to consider +implementing something like this. + +> +> It strikes me that it would be very nice to be able to do things +like +> have the Job(s) backing up the machines run, and once they have all +> completed, start a migration job to copy the data from disks Volumes +to +> a tape library and then to offsite storage. Maybe this can already +be +> done with some careful scheduling and Job prioritzation; the events +> mechanism described below would probably make it very easy. + +This is the goal. In the first step (before events), you simply +schedule +the Migration to tape later. + +2. Base jobs: In ADSM, each copy of each stored file is tracked in +the database. Once a file (unique by path and metadata such as dates, +size, ownership, etc.) is in a copy pool, no more copies are made. In +other words, when you start ADSM, it begins like your concept of a +base job. After that it is in the "incremental" mode. You can +configure the number of "generations" of files to be retained, plus a +retention date after which even old generations are purged. The +database tracks the contents of media and projects the percentage of +each volume that is valid. When the valid content of a volume drops +below a configured percentage, the valid data are migrated to another +volume and the old volume is marked as empty. Note, this requires +ADSM to have an idea of the contents of a client, i.e. marking the +database when an existing file was deleted, but this would solve your +issue of restoring a client without restoring deleted files. + +This is pretty far from what bacula now does, but if you are going to +rip things up for Base jobs,..... +Also, the benefits of this are huge for very large shops, especially +with media robots, but are a pain for shops with manual media +mounting. + +> +> Base jobs sound pretty useful, but I'm not dying for them. + +Nobody is dying for them, but when you see what it does, you will die +without it. + +3. Restoring deleted files: Since I think my comments in (2) above +have low probability of implementation, I'll also suggest that you +could approach the issue of deleted files by a mechanism of having the +fd report to the dir, a list of all files on the client for every +backup job. The dir could note in the database entry for each file +the date that the file was seen. Then if a restore as of date X takes +place, only files that exist from before X until after X would be +restored. Probably the major cost here is the extra date container in +each row of the files table. + +Thanks for "listening". I hope some of this helps. If you want to +contact me, please send me an email - I read some but not all of the +mailing list traffic and might miss a reply there. + +Please accept my compliments for bacula. It is doing a great job for +me!! I sympathize with you in the need to wrestle with excelence in +execution vs. excelence in feature inclusion. + +Regards, +Jerry Schieffer + +============================== + +Longer term to do: +- Design at hierarchial storage for Bacula. Migration and Clone. +- Implement FSM (File System Modules). +- Audit M_ error codes to ensure they are correct and consistent. +- Add variable break characters to lex analyzer. + Either a bit mask or a string of chars so that + the caller can change the break characters. +- Make a single T_BREAK to replace T_COMMA, etc. +- Ensure that File daemon and Storage daemon can + continue a save if the Director goes down (this + is NOT currently the case). Must detect socket error, + buffer messages for later. +- Enhance time/duration input to allow multiple qualifiers e.g. 3d2h +- Add ability to backup to two Storage devices (two SD sessions) at + the same time -- e.g. onsite, offsite. +- Add the ability to consolidate old backup sets (basically do a restore + to tape and appropriately update the catalog). Compress Volume sets. + Might need to spool via file is only one drive is available. +- Compress or consolidate Volumes of old possibly deleted files. Perhaps + someway to do so with every volume that has less than x% valid + files. + + +Migration: Move a backup from one Volume to another +Clone: Copy a backup -- two Volumes + + +====================================================== + Base Jobs design +It is somewhat like a Full save becomes an incremental since +the Base job (or jobs) plus other non-base files. +Need: +- A Base backup is same as Full backup, just different type. +- New BaseFiles table that contains: + BaseId - index + BaseJobId - Base JobId referenced for this FileId (needed ???) + JobId - JobId currently running + FileId - File not backed up, exists in Base Job + FileIndex - FileIndex from Base Job. + i.e. for each base file that exists but is not saved because + it has not changed, the File daemon sends the JobId, BaseId, + FileId, FileIndex back to the Director who creates the DB entry. +- To initiate a Base save, the Director sends the FD + the FileId, and full filename for each file in the Base. +- When the FD finds a Base file, he requests the Director to + send him the full File entry (stat packet plus MD5), or + conversely, the FD sends it to the Director and the Director + says yes or no. This can be quite rapid if the FileId is kept + by the FD for each Base Filename. +- It is probably better to have the comparison done by the FD + despite the fact that the File entry must be sent across the + network. +- An alternative would be to send the FD the whole File entry + from the start. The disadvantage is that it requires a lot of + space. The advantage is that it requires less communications + during the save. +- The Job record must be updated to indicate that one or more + Bases were used. +- At end of Job, FD returns: + 1. Count of base files/bytes not written to tape (i.e. matches) + 2. Count of base file that were saved i.e. had changed. +- No tape record would be written for a Base file that matches, in the + same way that no tape record is written for Incremental jobs where + the file is not saved because it is unchanged. +- On a restore, all the Base file records must explicitly be + found from the BaseFile tape. I.e. for each Full save that is marked + to have one or more Base Jobs, search the BaseFile for all occurrences + of JobId. +- An optimization might be to make the BaseFile have: + JobId + BaseId + FileId + plus + FileIndex + This would avoid the need to explicitly fetch each File record for + the Base job. The Base Job record will be fetched to get the + VolSessionId and VolSessionTime. +========================================================= + + +========================================================== + Unsaved File design +For each Incremental job that is run, there may be files that +were found but not saved because they were locked (this applies +only to Windows). Such a system could send back to the Director +a list of Unsaved files. +Need: +- New UnSavedFiles table that contains: + JobId + PathId + FilenameId +- Then in the next Incremental job, the list of Unsaved Files will be + feed to the FD, who will ensure that they are explicitly chosen even + if standard date/time check would not have selected them. +============================================================= + + +===== + Multiple drive autochanger data: see Alan Brown + mtx -f xxx unloadStorage Element 1 is Already Full(drive 0 was empty) + Unloading Data Transfer Element into Storage Element 1...source Element + Address 480 is Empty + + (drive 0 was empty and so was slot 1) + > mtx -f xxx load 15 0 + no response, just returns to the command prompt when complete. + > mtx -f xxx status Storage Changer /dev/changer:2 Drives, 60 Slots ( 2 Import/Export ) + Data Transfer Element 0:Full (Storage Element 15 Loaded):VolumeTag = HX001 + Data Transfer Element 1:Empty + Storage Element 1:Empty + Storage Element 2:Full :VolumeTag=HX002 + Storage Element 3:Full :VolumeTag=HX003 + Storage Element 4:Full :VolumeTag=HX004 + Storage Element 5:Full :VolumeTag=HX005 + Storage Element 6:Full :VolumeTag=HX006 + Storage Element 7:Full :VolumeTag=HX007 + Storage Element 8:Full :VolumeTag=HX008 + Storage Element 9:Full :VolumeTag=HX009 + Storage Element 10:Full :VolumeTag=HX010 + Storage Element 11:Empty + Storage Element 12:Empty + Storage Element 13:Empty + Storage Element 14:Empty + Storage Element 15:Empty + Storage Element 16:Empty.... + Storage Element 28:Empty + Storage Element 29:Full :VolumeTag=CLNU01L1 + Storage Element 30:Empty.... + Storage Element 57:Empty + Storage Element 58:Full :VolumeTag=NEX261L2 + Storage Element 59 IMPORT/EXPORT:Empty + Storage Element 60 IMPORT/EXPORT:Empty + $ mtx -f xxx unload + Unloading Data Transfer Element into Storage Element 15...done + + (just to verify it remembers where it came from, however it can be + overrriden with mtx unload {slotnumber} to go to any storage slot.) + Configuration wise: + There needs to be a table of drive # to devices somewhere - If there are + multiple changers or drives there may not be a 1:1 correspondance between + changer drive number and system device name - and depending on the way the + drives are hooked up to scsi busses, they may not be linearly numbered + from an offset point either.something like + + Autochanger drives = 2 + Autochanger drive 0 = /dev/nst1 + Autochanger drive 1 = /dev/nst2 + IMHO, it would be _safest_ to use explicit mtx unload commands at all + times, not just for multidrive changers. For a 1 drive changer, that's + just: + + mtx load xx 0 + mtx unload xx 0 + + MTX's manpage (1.2.15): + unload [] [ ] + Unloads media from drive into slot + . If is omitted, defaults to + drive 0 (as do all commands). If is + omitted, defaults to the slot that the drive was + loaded from. Note that there's currently no way + to say 'unload drive 1's media to the slot it + came from', other than to explicitly use that + slot number as the destination.AB +==== + +==== +SCSI info: +FreeBSD +undef# camcontrol devlist + at scbus0 target 2 lun 0 (pass0,sa0) + at scbus0 target 4 lun 0 (pass1,sa1) + at scbus0 target 4 lun 1 (pass2) + +tapeinfo -f /dev/sg0 with a bad tape in drive 1: +[kern@rufus mtx-1.2.17kes]$ ./tapeinfo -f /dev/sg0 +Product Type: Tape Drive +Vendor ID: 'HP ' +Product ID: 'C5713A ' +Revision: 'H107' +Attached Changer: No +TapeAlert[3]: Hard Error: Uncorrectable read/write error. +TapeAlert[20]: Clean Now: The tape drive neads cleaning NOW. +MinBlock:1 +MaxBlock:16777215 +SCSI ID: 5 +SCSI LUN: 0 +Ready: yes +BufferedMode: yes +Medium Type: Not Loaded +Density Code: 0x26 +BlockSize: 0 +DataCompEnabled: yes +DataCompCapable: yes +DataDeCompEnabled: yes +CompType: 0x20 +DeCompType: 0x0 +Block Position: 0 +===== + +==== + Handling removable disks + + From: Karl Cunningham + + My backups are only to hard disk these days, in removable bays. This is my + idea of how a backup to hard disk would work more smoothly. Some of these + things Bacula does already, but I mention them for completeness. If others + have better ways to do this, I'd like to hear about it. + + 1. Accommodate several disks, rotated similar to how tapes are. Identified + by partition volume ID or perhaps by the name of a subdirectory. + 2. Abort & notify the admin if the wrong disk is in the bay. + 3. Write backups to different subdirectories for each machine to be backed + up. + 4. Volumes (files) get created as needed in the proper subdirectory, one + for each backup. + 5. When a disk is recycled, remove or zero all old backup files. This is + important as the disk being recycled may be close to full. This may be + better done manually since the backup files for many machines may be + scattered in many subdirectories. +==== + + +=== Done +- Why the heck doesn't bacula drop root priviledges before connecting to + the DB? +- Look at using posix_fadvise(2) for backups -- see bug #751. + Possibly add the code at findlib/bfile.c:795 +/* TCP socket options */ +#define TCP_KEEPIDLE 4 /* Start keeplives after this period */ +- Fix bnet_connect() code to set a timer and to use time to + measure the time. +- Implement 4th argument to make_catalog_backup that passes hostname. +- Test FIFO backup/restore -- make regression +- Please mount volume "xxx" on Storage device ... should also list + Pool and MediaType in case user needs to create a new volume. +- On restore add Restore Client, Original Client. +01-Apr 00:42 rufus-dir: Start Backup JobId 55, Job=kernsave.2007-04-01_00.42.48 +01-Apr 00:42 rufus-sd: Python SD JobStart: JobId=55 Client=Rufus +01-Apr 00:42 rufus-dir: Created new Volume "Full0001" in catalog. +01-Apr 00:42 rufus-dir: Using Device "File" +01-Apr 00:42 rufus-sd: kernsave.2007-04-01_00.42.48 Warning: Device "File" (/tmp) not configured to autolabel Volumes. +01-Apr 00:42 rufus-sd: kernsave.2007-04-01_00.42.48 Warning: Device "File" (/tmp) not configured to autolabel Volumes. +01-Apr 00:42 rufus-sd: Please mount Volume "Full0001" on Storage Device "File" (/tmp) for Job kernsave.2007-04-01_00.42.48 +01-Apr 00:44 rufus-sd: Wrote label to prelabeled Volume "Full0001" on device "File" (/tmp) +- Check if gnome-console works with TLS. +- the director seg faulted when I omitted the pool directive from a + job resource. I was experimenting and thought it redundant that I had + specified Pool, Full Backup Pool. and Differential Backup Pool. but + apparently not. This happened when I removed the pool directive and + started the director. +- Add Where: client:/.... to restore job report. +- Ensure that moving a purged Volume in ua_purge.c to the RecyclePool + does the right thing. +- FD-SD quick disconnect +- Building the in memory restore tree is slow. diff --git a/Branch-2.2/bacula/manpages/Makefile.in b/Branch-2.2/bacula/manpages/Makefile.in new file mode 100644 index 0000000000..7a85308d24 --- /dev/null +++ b/Branch-2.2/bacula/manpages/Makefile.in @@ -0,0 +1,49 @@ +# +# +@MCOMMON@ + +.PHONY: dummy + +MAN8 = bacula.8 bacula-dir.8 bacula-fd.8 bacula-sd.8 \ + bconsole.8 bcopy.8 bextract.8 bls.8 bscan.8 btape.8 \ + btraceback.8 dbcheck.8 + +MAN1 = bacula-bgnome-console.1 bacula-tray-monitor.1 \ + bacula-bwxconsole.1 bsmtp.1 bat.1 + +all: + +nothing: + +depend: + +install: + $(MKDIR) $(DESTDIR)/$(mandir)/man8 + for I in ${MAN8}; \ + do ($(RMF) $$I.gz; gzip -c $$I >$$I.gz; \ + $(INSTALL_DATA) $$I.gz $(DESTDIR)$(mandir)/man8/$$I.gz; \ + rm -f $$I.gz); \ + done + $(MKDIR) $(DESTDIR)/$(mandir)/man1 + for I in ${MAN1}; \ + do ($(RMF) $$I.gz; gzip -c $$I >$$I.gz; \ + $(INSTALL_DATA) $$I.gz $(DESTDIR)$(mandir)/man1/$$I.gz; \ + rm -f $$I.gz); \ + done + +uninstall: + for I in ${MAN8}; \ + do (rm -f $(DESTDIR)$(mandir)/man8/$$I.gz); \ + done + for I in ${MAN1}; \ + do (rm -f $(DESTDIR)$(mandir)/man1/$$I.gz); \ + done + +clean: dummy + $(RMF) *~ 1 2 3 *.bak + @find . -name .#* -exec $(RMF) {} \; + +depend: + +distclean: clean + $(RMF) Makefile diff --git a/Branch-2.2/bacula/manpages/bacula-bgnome-console.1 b/Branch-2.2/bacula/manpages/bacula-bgnome-console.1 new file mode 100644 index 0000000000..daf85c6c83 --- /dev/null +++ b/Branch-2.2/bacula/manpages/bacula-bgnome-console.1 @@ -0,0 +1,45 @@ +.\" Hey, EMACS: -*- nroff -*- +.\" First parameter, NAME, should be all caps +.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection +.\" other parameters are allowed: see man(7), man(1) +.TH BGNOME\-CONSOLE 1 "April 24, 2007" "Kern Sibbald" "Network backup, recovery and verification" +.\" Please adjust this date whenever revising the manpage. +.\" +.\" Some roff macros, for reference: +.\" .nh disable hyphenation +.\" .hy enable hyphenation +.\" .ad l left justify +.\" .ad b justify to both left and right margins +.\" .nf disable filling +.\" .fi enable filling +.\" .br insert line break +.\" .sp insert n+1 empty lines +.\" for manpage-specific macros, see man(7) +.SH NAME + bgnome\-console \- Bacula's management Console, GUI version. +.br +.SH DESCRIPTION +This manual page documents briefly the +.B bgnome\-console +command, the Gnome GUI version of the Bacula administration console. +.sp 2 +.PP +.\" TeX users may be more comfortable with the \fB\fP and +.\" \fI\fP escape sequences to invoke bold face and italics, +.\" respectively. +The Console allows the administrator or user to communicate with the +Bacula Director. This is the Gnome version. It will also run under KDE. +.PP +This Gnome GUI interface is for the moment far from complete but is quite +functional, having all the capabilities of the shell Console plus a number +of GUI extensions that make interaction easier with point and click. +.BR +.SH SEE ALSO +.BR bacula\-dir (8), +.BR bls (1), +.BR bextract (1). +.br +.SH AUTHOR +This manual page was written by Jose Luis Tallon +.nh +. diff --git a/Branch-2.2/bacula/manpages/bacula-bwxconsole.1 b/Branch-2.2/bacula/manpages/bacula-bwxconsole.1 new file mode 100644 index 0000000000..e4ad3b5194 --- /dev/null +++ b/Branch-2.2/bacula/manpages/bacula-bwxconsole.1 @@ -0,0 +1,45 @@ +.\" Hey, EMACS: -*- nroff -*- +.\" First parameter, NAME, should be all caps +.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection +.\" other parameters are allowed: see man(7), man(1) +.TH BWX-CONSOLE 1 "24 April 2007" "Kern Sibbald" "Network backup, recovery and verification" +.\" Please adjust this date whenever revising the manpage. +.\" +.SH NAME + bwx-console \- Bacula's management Console +.SH SYNOPSIS +.B bwx-console +.RI [options] +.br +.SH DESCRIPTION +This manual page documents briefly the +.B bwx-console +command, the wxWidgets version of the Bacula administration console. +.PP +.SH OPTIONS +bwx-console [\-s] [\-c config_file] [\-d debug_level] [-t] +.TP +.B \-c +Specify configuration file. +.TP +.B \-d +Set debug level to \fInn\fP. +.TP +.B \-s +No signals. +.TP +.B \-t +Test config mode: read configuration and exit. +.TP +.B \-? +Show version and usage of program. +.SH SEE ALSO +.BR bacula-dir (8), +.BR bacula-bgnome-console (1) +.BR bls (1), +.BR bextract (1). +.br +.SH AUTHOR +This manual page was written by Jose Luis Tallon +.nh +. diff --git a/Branch-2.2/bacula/manpages/bacula-dir.8 b/Branch-2.2/bacula/manpages/bacula-dir.8 new file mode 100644 index 0000000000..08b3b8315b --- /dev/null +++ b/Branch-2.2/bacula/manpages/bacula-dir.8 @@ -0,0 +1,69 @@ +.\" Hey, EMACS: -*- nroff -*- +.\" First parameter, NAME, should be all caps +.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection +.\" other parameters are allowed: see man(7), man(1) +.TH BACULA\-DIR 8 "26 May 2006" "Kern Sibbald" "Network backup, recovery&verification" +.\" Please adjust this date whenever revising the manpage. +.\" +.SH NAME +.B bacula\-dir +\- Bacula Director +.SH SYNOPSIS +.B bacula\-dir +.RI [ options ] +.br +.SH DESCRIPTION +This manual page documents briefly the +.B bacula\-dir +command. +.br +Bacula's Director Daemon acts as the controller of the +network backup system: it is responsible for scheduling and +coordinating backups across the network. +.SH OPTIONS +.TP +.BI \-c +Change location to read \fIbacula-dir.conf\fP from (default $CWD) +.TP +.BI \-u +Set the username/uid to run as. +.TP +.BI \-g +Set the group/gid to run as. +.SH TCP-WRAPPERS CONFIGURATION +Tcpwrappers looks for the service name of the bacula daemons in +.I hosts.allow +, and the service names of these daemons is configured to be different from the +binary. +The service names are configured to be +.B %hostname%-%component% +rather than +.B bacula-dir +(As defined in the bacula-dir.conf.in file) + + +So the hosts.allow entry has to match +.B %hostname%-%component% +(servername-dir for example) instead of bacula-%component% + +.B WARNING: +This means that if the hosts.allow file has the entry: + +.B bacula-dir: ALL + +you will not be able to run bconsole to connect to the local director! + +The entry would have to read: + +.B server-dir: ALL + +and this will allow the console to connect to the director. +(The process running is bacula-dir.) +.SH SEE ALSO +.BR bacula-fd (8), +.BR bacula-sd (8). + +.SH AUTHOR +This manual page was written by Jose Luis Tallon +.nh +. diff --git a/Branch-2.2/bacula/manpages/bacula-fd.8 b/Branch-2.2/bacula/manpages/bacula-fd.8 new file mode 100644 index 0000000000..0d6423aa98 --- /dev/null +++ b/Branch-2.2/bacula/manpages/bacula-fd.8 @@ -0,0 +1,40 @@ +.\" Hey, EMACS: -*- nroff -*- +.\" First parameter, NAME, should be all caps +.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection +.\" other parameters are allowed: see man(7), man(1) +.TH BACULA\-FD 8 "26 May 2006" "Kern Sibbald" "Network backup, recovery & verification" +.\" Please adjust this date whenever revising the manpage. +.\" +.SH NAME +.B bacula\-fd +\- Bacula's File Daemon +.SH SYNOPSIS +.B bacula\-fd +.RI [ options ] +.br +.SH DESCRIPTION +This manual page documents briefly the +.B bacula +command. +.br +Bacula's File Daemon acts as the interface between the Bacula +network backup system and the filesystems to be backed up: it is +responsible for reading/writing/verifying the files to be +backup'd/verified/restored. Network transfer can optionally be +compressed. +.SH OPTIONS +.TP +.BI \-c\ config +Change location to read \fIbacula\-fd.conf\fP from (default $CWD) +.TP +.BI \-u\ user +Set the username/uid to run as. +.TP +.BI \-g\ group +Set the group/gid to run as. +.SH SEE ALSO +.BR bacula\-dir (8), +.BR bacula\-sd (8). +.br +.SH AUTHOR +This manual page was written by Jose Luis Tallon . diff --git a/Branch-2.2/bacula/manpages/bacula-sd.8 b/Branch-2.2/bacula/manpages/bacula-sd.8 new file mode 100644 index 0000000000..d765f639c3 --- /dev/null +++ b/Branch-2.2/bacula/manpages/bacula-sd.8 @@ -0,0 +1,40 @@ +.\" Hey, EMACS: -*- nroff -*- +.\" First parameter, NAME, should be all caps +.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection +.\" other parameters are allowed: see man(7), man(1) +.TH BACULA\-SD 8 "26 May 2006" "Kern Sibbald" "Network backup, recovery & verification" +.\" Please adjust this date whenever revising the manpage. +.\" +.SH NAME +.B bacula\-sd +\- Bacula's Storage Daemon +.SH SYNOPSIS +.B bacula\-sd +.RI [ options ] +.br +.SH DESCRIPTION +This manual page documents briefly the +.B bacula\-sd +command. +.br +Bacula's Storage Daemon acts as the interface between the Bacula +network backup system and a tape drive/autochanger or filesystem where +the backups will be stored. +.SH OPTIONS +.TP +.B \-c\ config +Change location to read \fIbacula\-sd.conf\fP from (default $CWD) +.TP +.BI \-u\ user +Set the username/uid to run as. +.TP +.BI \-g\ group +Set the group/gid to run as. +.SH SEE ALSO +.BR bacula\-dir (8), +.BR bacula\-fd (8). +.br +.SH AUTHOR +This manual page was written by Jose Luis Tallon +.nh +. diff --git a/Branch-2.2/bacula/manpages/bacula-tray-monitor.1 b/Branch-2.2/bacula/manpages/bacula-tray-monitor.1 new file mode 100644 index 0000000000..23f431d831 --- /dev/null +++ b/Branch-2.2/bacula/manpages/bacula-tray-monitor.1 @@ -0,0 +1,42 @@ +.\" Hey, EMACS: -*- nroff -*- +.\" First parameter, NAME, should be all caps +.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection +.\" other parameters are allowed: see man(7), man(1) +.TH BACULA-TRAY-MONITOR 1 "May 10, 2006" "Kern Sibbald" "Network backup, recovery and verification" +.\" Please adjust this date whenever revising the manpage. +.\" +.SH NAME + bacula-tray-monitor \- Bacula's 'System Tray' monitor +.SH SYNOPSIS +.B bacula-tray-monitor +.RI [options] +.br +.SH DESCRIPTION +This manual page documents briefly the +.B bacula-tray-monitor +command, a simple monitor for the 'system tray' in KDE/GNOME +.PP +.SH OPTIONS +bacula-tray-monitor [\-c config_file] [\-d debug_level] [-t] +.TP +.B \-c +Specify configuration file. +.TP +.B \-d +Set debug level to \fInn\fP. +.TP +.B \-t +Test config mode: read configuration and exit. +.TP +.B \-? +Show version and usage of program. +.SH SEE ALSO +.BR bacula-dir (8), +.BR bacula-wxconsole (1) +.BR bls (1), +.BR bextract (1). +.br +.SH AUTHOR +This manual page was written by Jose Luis Tallon +.nh +. diff --git a/Branch-2.2/bacula/manpages/bacula.8 b/Branch-2.2/bacula/manpages/bacula.8 new file mode 100644 index 0000000000..a05d5a7bd2 --- /dev/null +++ b/Branch-2.2/bacula/manpages/bacula.8 @@ -0,0 +1,129 @@ +.\" manual page [] for Bacula +.\" SH section heading +.\" SS subsection heading +.\" LP paragraph +.\" IP indented paragraph +.\" TP hanging label +.TH Bacula 8 "The Network Backup Solution" +.SH NAME +Bacula \- The Network Backup Solution +.SH SYNOPSIS +.B bacula-dir \- Director +.br +.B bacula-fd \- File daemon or Client +.br +.B bacula-sd \- Storage daemon +.br +.B bconsole \- Console to control Bacula +.br +.B wx-console \- GUI Console +.br +.SH DESCRIPTION +.LP +Bacula is a set of computer programs that permits you (or the +system administrator) to manage backup, recovery, and +verification of computer data across a network of computers of +different kinds. In technical terms, it is a network +Client/Server based backup program. Bacula is relatively easy to +use and efficient, while offering many advanced storage +management features that make it easy to find and recover lost or +damaged files. Due to its modular design, Bacula is scalable +from small single computer systems to systems consisting of +hundreds of computers located over a large network. + +.LP +Bacula Director service consists of the program that supervises +all the backup, restore, verify and archive operations. The +system administrator uses the Bacula Director to schedule backups +and to recover files. For more details see the Director Services +Daemon Design Document in the Bacula Developer's Guild. The +Director runs as a daemon or a service (i.e. in the background). + +.LP +Bacula Console services is the program that allows the +administrator or user to communicate with the Bacula Director +(see above). Currently, the Bacula Console is available in three +versions. The first and simplest is to run the Console program +in a shell window (i.e. TTY interface). Most system +administrators will find this completely adequate. The second +version is a GNOME GUI interface that for the moment (07 October +2005) is far from complete, but quite functional as it has most +the capabilities of the shell Console. The third version is a +wxWidgets GUI with an interactive file restore. It also has most +of the capabilities of the shell console, allows command +completion with tabulation, and gives you instant help about the +command you are typing. + +.LP +Bacula File services (or Client program) is the software program +that is installed on the machine to be backed up. It is specific +to the operating system on which it runs and is responsible for +providing the file attributes and data when requested by the +Director. The File services are also responsible for the file +system dependent part of restoring the file attributes and data +during a recovery operation. For more details see the File +Services Daemon Design Document in the Bacula Developer's Guide. +This program runs as a daemon on the machine to be backed up, and +in some of the documentation, the File daemon is referred to as +the Client (for example in Bacula's configuration file). In +addition to Unix/Linux File daemons, there is a Windows File +daemon (normally distributed in binary format). The Windows File +daemon runs on all currently known Windows versions (98, Me, +NT, 2K, 2003, XP). + +.LP +Bacula Storage services consist of the software programs that +perform the storage and recovery of the file attributes and data +to the physical backup media or volumes. In other words, the +Storage daemon is responsible for reading and writing your tapes +(or other storage media, e.g. files). For more details see the +Storage Services Daemon Design Document in the Bacula Developer's +Guild. The Storage services runs as a daemon on the machine that +has the backup device (usually a tape drive). + +.LP +Catalog services are comprised of the software programs +responsible for maintaining the file indexes and volume databases +for all files backed up. The Catalog services permit the System +Administrator or user to quickly locate and restore any desired +file. The Catalog services sets Bacula apart from simple backup +programs like tar and bru, because the catalog maintains a record +of all Volumes used, all Jobs run, and all Files saved, +permitting efficicient restoration and Volume management. Bacula +currently supports three different databases, MySQL, PostgreSQL, +and SQLite, one of which must be chosen when building Bacula. + +.SH OPTIONS +See the HTML/PDF documentation at: +.br + +.br +for details of the command line options. + + +.SH CONFIGURATION +Each daemon has its own configuration file which must be +tailored for each particular installation. Please see the HTML/PDF +documentation for the details. + +.SH SEE ALSO +The HTML manual installed on your system (typically found in +.br +/usr/share/doc/bacula-) or the online manual at: +.br + + +.SH BUGS +See + +.SH AUTHOR +Kern Sibbald +.SS Current maintainer +Kern Sibbald +.SS Contributors +An enormous list of past and former persons who have devoted +their time and energy to this project -- thanks. + +.SH COPYRIGHT +Bacula is distributed under a modified GPL version 2.0, as described in the +file LICENSE included with the source distribution. diff --git a/Branch-2.2/bacula/manpages/bat.1 b/Branch-2.2/bacula/manpages/bat.1 new file mode 100644 index 0000000000..5dc3106033 --- /dev/null +++ b/Branch-2.2/bacula/manpages/bat.1 @@ -0,0 +1,46 @@ +.\" Hey, EMACS: -*- nroff -*- +.\" First parameter, NAME, should be all caps +.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection +.\" other parameters are allowed: see man(7), man(1) +.TH BAT 1 "24 April 2007" "Kern Sibbald" "Network backup, recovery and verification" +.\" Please adjust this date whenever revising the manpage. +.\" +.SH NAME + bat \- Bacula Administration Tool Console +.SH SYNOPSIS +.B bat +.RI [options] +.br +.SH DESCRIPTION +This manual page documents briefly the +.B bat +command, the Qt4 version of the Bacula Administration Tool console. +This is a GUI program that has similar features to the bconsole program, +but it is graphical oriented. +.PP +.SH OPTIONS +bat [\-s] [\-c config_file] [\-d debug_level] [-t] +.TP +.B \-c +Specify configuration file. Default is bat.conf. +.TP +.B \-d +Set debug level to \fInn\fP. +.TP +.B \-s +No signals. Used in debugging only. +.TP +.B \-t +Test config mode: read configuration and exit. +.TP +.B \-? +Show version and usage of program. +.SH SEE ALSO +.BR bacula-dir (8), +.BR bacula-bgnome-console (1) +.BR bacula-bwx-console (1) +.BR bls (1), +.BR bextract (1). +.br +.SH AUTHOR +This manual page was written by Kern Sibbald. diff --git a/Branch-2.2/bacula/manpages/bconsole.8 b/Branch-2.2/bacula/manpages/bconsole.8 new file mode 100644 index 0000000000..1ea6eeb802 --- /dev/null +++ b/Branch-2.2/bacula/manpages/bconsole.8 @@ -0,0 +1,43 @@ +.\" Hey, EMACS: -*- nroff -*- +.\" First parameter, NAME, should be all caps +.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection +.\" other parameters are allowed: see man(7), man(1) +.TH CONSOLE 8 "26 May 2006" "Kern Sibbald" "Network backup, recovery and verification" +.\" Please adjust this date whenever revising the manpage. +.\" +.SH NAME + bconsole \- Bacula's management Console +.SH SYNOPSIS +.B bconsole +.RI [options] +.br +.SH DESCRIPTION +This manual page documents briefly the +.B bconsole +command. +.PP +.SH OPTIONS +.TP +.BI \-c\ config +Specify configuration file. +.TP +.BI \-d\ nn +Set debug level to \fInn\fP. +.TP +.B \-s +No signals. +.TP +.B \-t +Test config mode: read configuration and exit. +.TP +.B \-? +Show version and usage of program. +.SH SEE ALSO +.BR bacula\-dir (8), +.BR bls (1), +.BR bextract (1). +.br +.SH AUTHOR +This manual page was written by Jose Luis Tallon +.nh +. diff --git a/Branch-2.2/bacula/manpages/bcopy.8 b/Branch-2.2/bacula/manpages/bcopy.8 new file mode 100644 index 0000000000..914dea5730 --- /dev/null +++ b/Branch-2.2/bacula/manpages/bcopy.8 @@ -0,0 +1,57 @@ +.\" Hey, EMACS: -*- nroff -*- +.\" First parameter, NAME, should be all caps +.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection +.\" other parameters are allowed: see man(7), man(1) +.TH BCOPY 8 "26 May 2006" "Kern Sibbald" "Network backup, recovery and verification" +.\" Please adjust this date whenever revising the manpage. +.\" +.SH NAME + bcopy \- Bacula's 'Copy from tape' +.SH SYNOPSIS +.B bcopy +.RI [ options ] +.I input-archive +.I output-archive +.br +.SH DESCRIPTION +This manual page documents briefly the +.B bcopy +command. +.PP +.\" TeX users may be more comfortable with the \fB\fP and +.\" \fI\fP escape sequences to invode bold face and italics, +.\" respectively. +.SH OPTIONS +A summary of options is included below. +.TP +.B \-? +Show version and usage of program. +.TP +.BI \-b\ bootstrap +Specify a bootstrap file. +.TP +.BI \-c\ config +Specify configuration file. +.TP +.BI \-d\ nn +Set debug level to \fInn\fP. +.TP +.BI \-i\ input +Specify input Volume names (separated by '|') +.TP +.BI \-o\ output +Specify output Volume names (separated by '|') +.TP +.BI \-w\ directory +Specify working directory (default \fI/tmp\fP). +.TP +.B \-v +Set verbose mode. +.SH SEE ALSO +.BR bls (1), +.BR bextract (1). +.br +.SH AUTHOR +This manual page was written by Jose Luis Tallon +.nh +. diff --git a/Branch-2.2/bacula/manpages/bextract.8 b/Branch-2.2/bacula/manpages/bextract.8 new file mode 100644 index 0000000000..0095ebd0ae --- /dev/null +++ b/Branch-2.2/bacula/manpages/bextract.8 @@ -0,0 +1,54 @@ +.\" Hey, EMACS: -*- nroff -*- +.\" First parameter, NAME, should be all caps +.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection +.\" other parameters are allowed: see man(7), man(1) +.TH BEXTRACT 8 "26 May 2006" "Kern Sibbald" "Network backup, recovery and verification" +.\" Please adjust this date whenever revising the manpage. +.\" +.SH NAME + bextract \- Bacula's 'Extract from tape' +.SH SYNOPSIS +.B bextract +.RI [ options ] +.I bacula-archive-device-name +.I output-directory +.br +.SH DESCRIPTION +This manual page documents briefly the +.B bextract +command. +.PP +.\" TeX users may be more comfortable with the \fB\fP and +.\" \fI\fP escape sequences to invode bold face and italics, +.\" respectively. +.SH OPTIONS +A summary of options is included below. +.TP +.B \-? +Show version and usage of program. +.TP +.BI \-b\ bootstrap +Specify a bootstrap file. +.TP +.BI \-c\ config +Specify configuration file. +.TP +.BI \-d\ nn +Set debug level to \fInn\fP. +.TP +.BI \-e\ file +Specify exclude list. +.TP +.BI \-i\ file +Specify include list. +.TP +.BI \-V\ volume-name +Specify volume names. +.SH SEE ALSO +.BR bls (1), +.BR bextract (1). +.br +.SH AUTHOR +This manual page was written by Jose Luis Tallon +.nh +. diff --git a/Branch-2.2/bacula/manpages/bls.8 b/Branch-2.2/bacula/manpages/bls.8 new file mode 100644 index 0000000000..897dd6d39d --- /dev/null +++ b/Branch-2.2/bacula/manpages/bls.8 @@ -0,0 +1,81 @@ +.\" Hey, EMACS: -*- nroff -*- +.\" First parameter, NAME, should be all caps +.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection +.\" other parameters are allowed: see man(7), man(1) +.TH BLS 8 "26 May 2006" "Kern Sibbald" "Network backup, recovery and verification" +.\" Please adjust this date whenever revising the manpage. +.\" +.\" Some roff macros, for reference: +.\" .nh disable hyphenation +.\" .hy enable hyphenation +.\" .ad l left justify +.\" .ad b justify to both left and right margins +.\" .nf disable filling +.\" .fi enable filling +.\" .br insert line break +.\" .sp insert n+1 empty lines +.\" for manpage-specific macros, see man(7) +.SH NAME + bls \- Bacula's 'Tape LS' +.SH SYNOPSIS +.B bls +.RI [ options ] +.I +.br +.SH DESCRIPTION +This manual page documents briefly the +.B bls +command. +.PP +.\" TeX users may be more comfortable with the \fB\fP and +.\" \fI\fP escape sequences to invode bold face and italics, +.\" respectively. +.SH OPTIONS +A summary of options is included below. +.TP +.B \-? +Show version and usage of program. +.TP +.BI \-b\ bootstrap +Specify a bootstrap file. +.TP +.BI \-c\ config +Specify configuration file. +.TP +.BI \-d\ nn +Set debug level to \fInn\fP. +.TP +.BI \-e\ +Specify exclude list file +.TP +.BI \-i\ +Specify include list file +.TP +.BI \-j +List jobs +.TP +.BI \-k +List blocks +.TP +.I (no \-j or \-k option) +List saved files +.TP +.BI -L +Dump label +.TP +.BI \-p +Proceed despite errors +.TP +.BI \-V\ volumes +Specify volume names (separated by '|'). +.TP +.B \-v +Set verbose mode. +.SH SEE ALSO +.BR bscan (8), +.BR bextract (8). +.br +.SH AUTHOR +This manual page was written by Jose Luis Tallon +.nh +. diff --git a/Branch-2.2/bacula/manpages/bscan.8 b/Branch-2.2/bacula/manpages/bscan.8 new file mode 100644 index 0000000000..3d9d6c323a --- /dev/null +++ b/Branch-2.2/bacula/manpages/bscan.8 @@ -0,0 +1,90 @@ +.\" Hey, EMACS: -*- nroff -*- +.\" First parameter, NAME, should be all caps +.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection +.\" other parameters are allowed: see man(7), man(1) +.TH BSCAN 8 "26 May 2006" "Kern Sibbald" "Network backup, recovery and verification" +.\" Please adjust this date whenever revising the manpage. +.\" +.SH NAME + bscan \- Bacula's 'Scan tape' +.SH SYNOPSIS +.B bscan +.RI [ options ] +.I bacula-archive +.br +.SH DESCRIPTION +.LP +The purpose of bscan is to read (scan) a Bacula Volume and to recreate +or update the database contents with the information found on the Volume. +This is done in a non-destructive way. This permits restoring database +entries that have been lost by pruning, purging, deleting, or a database +corruption problem. + +.LP +Normally, it should not be necessary to run the bscan command because +the database is self maintaining, and most corrupted databases can be +repaired by the tools provided by the database vendors. +In addition, if you have maintained bootstrap files during backups, you +should be able to recover all your data from the bootstrap file +without needed an up to date catalog. + +.B bscan +command. +.PP +.\" TeX users may be more comfortable with the \fB\fP and +.\" \fI\fP escape sequences to invode bold face and italics, +.\" respectively. +.SH OPTIONS +A summary of options is included below. +.TP +.B \-? +Show version and usage of program. +.TP +.BI \-b\ bootstrap +Specify a bootstrap file. +.TP +.BI \-c\ config +Specify configuration file. +.TP +.BI \-d\ nn +Set debug level to \fInn\fP. +.TP +.B \-m +Update media info in database. +.TP +.BI \-n\ name +Specify the database name (default: \fIbacula\fP) +.TP +.BI \-u\ username +Specify database username (default: \fIbacula\fP) +.TP +.BI \-p\ password +Specify database password (default: \fInone\fP) +.TP +.BI \-h\ host +Specify database host (default: \fINULL\fP) +.TP +.B \-r +List records. +.TP +.B \-s +Synchronize or store in Database. +.TP +.B \-v +Verbose output mode. +.TP +.BI \-V\ volume +Specify volume names (separated by '|') +.TP +.BI \-w\ dir +Specify working directory (default from conf file) +.SH SEE ALSO +.BR bls (8), +.BR bextract (8). +.br +.SH AUTHOR +This manual page was written by Jose Luis Tallon +.nh +, +for the Debian GNU/Linux system (but may be used by others). + diff --git a/Branch-2.2/bacula/manpages/bsmtp.1 b/Branch-2.2/bacula/manpages/bsmtp.1 new file mode 100644 index 0000000000..08bb30cc15 --- /dev/null +++ b/Branch-2.2/bacula/manpages/bsmtp.1 @@ -0,0 +1,63 @@ +.\" Hey, EMACS: -*- nroff -*- +.TH BACULA\-SMTP 1 "26 May 2006" "Kern Sibbald" "Network backup" +.\" Please adjust this date whenever revising the manpage. +.SH NAME + bsmtp \- Bacula's SMTP (mail delivery program) +.SH DESCRIPTION +bsmtp is a simple mail transport program that permits more flexibility +than the standard mail programs typically found on Unix systems. It can even +be used on Windows machines. + +It is called: + +Usage: bsmtp [-f from] [-h mailhost] [-s subject] [-c copy] [recipient ...] + -c set the Cc: field + -dnn set debug level to nn + -f set the From: field + -h use mailhost:port as the bsmtp server + -s set the Subject: field + -? print this message. + +If the -f option is not specified, bsmtp will use your userid. If +the option is not specified bsmtp will use the value in the environment +variable bsmtpSERVER or if there is none localhost. By default +port 25 is used. + +recipients is a space separated list of email recipients. + +The body of the email message is read from standard input. + +An example of the use of bsmtp would be to put the following statement +in the Messages resource of your bacula-dir.conf file. Note, these +commands should appear on a single line each. + + mailcommand = "/home/bacula/bin/bsmtp -h mail.domain.com -f \"\(Bacula\) %r\" + -s \"Bacula: %t %e of %c %l\" %r" + operatorcommand = "/home/bacula/bin/bsmtp -h mail.domain.com -f \"\(Bacula\) %r\" + -s \"Bacula: Intervention needed for %j\" %r" + +Where you replace home/bacula/bin with the path to your Bacula +binary directory, and you replace mail.domain.com with the fully +qualified name of your bsmtp (email) server, which normally listens on port + +It is HIGHLY recommended that you test one or two cases by hand to make sure +that the mailhost that you specified is correct and that it will accept +your email requests. Since bsmtp always uses a TCP connection rather +than writing in the spool file, you may find that your from address is +being rejected because it does not contain a valid domain, or because your +message is caught in your spam filtering rules. Generally, you should specify +a fully qualified domain name in the from field, and depending on +whether your bsmtp gateway is Exim or Sendmail, you may need to modify the +syntax of the from part of the message. Please test. + +When running bsmtp by hand, you will need to terminate the message by +entering a ctl-d in column 1 of the last line. + +If you are getting incorrect dates (e.g. 1970) and you are +running with a non-English language setting, you might try adding +a LANG="en_US" immediately before the bsmtp call. +.br +.SH AUTHOR +This manual page was written by Jose Luis Tallon +.nh +. diff --git a/Branch-2.2/bacula/manpages/btape.8 b/Branch-2.2/bacula/manpages/btape.8 new file mode 100644 index 0000000000..721873b10c --- /dev/null +++ b/Branch-2.2/bacula/manpages/btape.8 @@ -0,0 +1,134 @@ +.\" Hey, EMACS: -*- nroff -*- +.\" First parameter, NAME, should be all caps +.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection +.\" other parameters are allowed: see man(7), man(1) +.TH BTAPE 8 "26 May 2006" "Kern Sibbald" "Network backup, recovery and verification" +.\" Please adjust this date whenever revising the manpage. +.\" +.SH NAME + btape \- Bacula's Tape interface test program +.SH SYNOPSIS +.B btape +.RI [ options ] +.I device-name +.br +.SH DESCRIPTION +This manual page documents briefly the +.B btape +command. +.PP +.\" TeX users may be more comfortable with the \fB\fP and +.\" \fI\fP escape sequences to invode bold face and italics, +.\" respectively. +.SH OPTIONS +A summary of options is included below. +.TP +.B \-? +Show summary of options and commands. +.TP +.BI \-b\ bootstrap +Specify a bootstrap file. +.TP +.BI \-c\ config +Specify configuration file. +.TP +.BI \-d\ nn +Set debug level to \fInn\fP. +.TP +.B \-t +Open the default tape device. +.TP +.B \-s +Turn off signals. +.sp 3 +.SH COMMANDS +.TP +.B bsf +backspace file +.TP +.B bsr +backspace record +.TP +.B bfill +fill tape using Bacula writes +.TP +.B cap +list device capabilities +.TP +.B clear +clear tape errors +.TP +.B eod +go to end of Bacula data for append +.TP +.B eom +go to the physical end of medium +.TP +.B fill +fill tape, write onto second volume +.TP +.B unfill +read filled tape +.TP +.B fsf +forward space a file +.TP +.B fsr +forward space a record +.TP +.B help +print this reference +.TP +.B label +write a Bacula label to the tape +.TP +.B load +load a tape +.TP +.B quit +quit btape +.TP +.B rawfill +use write() to fill tape +.TP +.B readlabel +read and print the Bacula tape label +.TP +.B rectest +test record handling functions +.TP +.B rewind +rewind the tape +.TP +.B scan +read() tape block by block to EOT and report +.TP +.B scanblocks +Bacula read block by block to EOT and report +.TP +.B status +print tape status +.TP +.B test +General test Bacula tape functions +.TP +.B weof +write an EOF on the tape +.TP +.B wr +write a single Bacula block +.TP +.B rr +read a single record +.TP +.B qfill +quick fill command +.br +.SH SEE ALSO +.BR bscan (1), +.BR bextract (1). +.br +.SH AUTHOR +This manual page was written by Jose Luis Tallon +.nh +. diff --git a/Branch-2.2/bacula/manpages/btraceback.8 b/Branch-2.2/bacula/manpages/btraceback.8 new file mode 100644 index 0000000000..e560490160 --- /dev/null +++ b/Branch-2.2/bacula/manpages/btraceback.8 @@ -0,0 +1,11 @@ +.\" Hey, EMACS: -*- nroff -*- +.TH BTRACEBACK 8 "26 May 2006" "Kern Sibbald" "Network backup" +.\" Please adjust this date whenever revising the manpage. +.SH NAME + btraceback \- Produce a traceback on the event of a 'Kaboom' +.SH DESCRIPTION +.br +.SH AUTHOR +This manual page was written by Jose Luis Tallon +.nh +. diff --git a/Branch-2.2/bacula/manpages/dbcheck.8 b/Branch-2.2/bacula/manpages/dbcheck.8 new file mode 100644 index 0000000000..79107cc079 --- /dev/null +++ b/Branch-2.2/bacula/manpages/dbcheck.8 @@ -0,0 +1,186 @@ +.\" Hey, EMACS: -*- nroff -*- +.\" First parameter, NAME, should be all caps +.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection +.\" other parameters are allowed: see man(7), man(1) +.TH DBCHECK 8 "26 May 2006" "Kern Sibbald" "Network backup, recovery and verification" +.\" Please adjust this date whenever revising the manpage. +.\" +.SH NAME + dbcheck \- Bacula's Catalog Database Check/Clean program +.SH SYNOPSIS +.B bcopy +.RI [ options ] +.I working-directory +.I bacula-database +.I user +.I password +.br +.SH DESCRIPTION +This manual page documents briefly the +.B dbcheck +command. +.PP +dbcheck will not repair your database if it is broken. Please see your +vendor's instructions for fixing broken database. + +dbcheck is a simple program that will search for logical +inconsistencies in the Bacula tables in your database, and optionally fix them. +It is a database maintenance routine, in the sense that it can +detect and remove unused rows, but it is not a database repair +routine. To repair a database, see the tools furnished by the +database vendor. Normally dbcheck should never need to be run, +but if Bacula has crashed or you have a lot of Clients, Pools, or +Jobs that you have removed, it could be useful. + +It is called: + +Usage: dbcheck [-c config] [-C catalog name] [-d debug_level] [] + -b batch mode + -C catalog name in the director conf file + -c director conf filename + -dnn set debug level to nn + -f fix inconsistencies + -v verbose + -? print this message + +If the -c option is given with the Director's conf file, there is no +need to enter any of the command line arguments, in particular the working +directory as dbcheck will read them from the file. + +If the -f option is specified, dbcheck will repair (fix) the +inconsistencies it finds. Otherwise, it will report only. + +If the -b option is specified, dbcheck will run in batch mode, and +it will proceed to examine and fix (if -f is set) all programmed inconsistency +checks. If the -b option is not specified, dbcheck will enter +interactive mode and prompt with the following: + +Hello, this is the database check/correct program. +Please select the function you want to perform. + 1) Toggle modify database flag + 2) Toggle verbose flag + 3) Repair bad Filename records + 4) Repair bad Path records + 5) Eliminate duplicate Filename records + 6) Eliminate duplicate Path records + 7) Eliminate orphaned Jobmedia records + 8) Eliminate orphaned File records + 9) Eliminate orphaned Path records + 10) Eliminate orphaned Filename records + 11) Eliminate orphaned FileSet records + 12) Eliminate orphaned Client records + 13) Eliminate orphaned Job records + 14) Eliminate all Admin records + 15) Eliminate all Restore records + 16) All (3-15) + 17) Quit +Select function number: + +By entering 1 or 2, you can toggle the modify database flag (-f option) and +the verbose flag (-v). It can be helpful and reassuring to turn off the modify +database flag, then select one or more of the consistency checks (items 3 +through 9) to see what will be done, then toggle the modify flag on and re-run +the check. + +The inconsistencies examined are the following: + +.BR + Duplicate filename records. This can happen if you accidentally run two + copies of Bacula at the same time, and they are both adding filenames + simultaneously. It is a rare occurrence, but will create an inconsistent + database. If this is the case, you will receive error messages during Jobs + warning of duplicate database records. If you are not getting these error + messages, there is no reason to run this check. + +.BR +Repair bad Filename records. This checks and corrects filenames that + have a trailing slash. They should not. + +.BR +Repair bad Path records. This checks and corrects path names that do + not have a trailing slash. They should. + +.BR +Duplicate path records. This can happen if you accidentally run two + copies of Bacula at the same time, and they are both adding filenames + simultaneously. It is a rare occurrence, but will create an inconsistent + database. See the item above for why this occurs and how you know it is + happening. + +.BR +Orphaned JobMedia records. This happens when a Job record is deleted + (perhaps by a user issued SQL statement), but the corresponding JobMedia + record (one for each Volume used in the Job) was not deleted. Normally, this + should not happen, and even if it does, these records generally do not take + much space in your database. However, by running this check, you can + eliminate any such orphans. + +.BR +Orphaned File records. This happens when a Job record is deleted + (perhaps by a user issued SQL statement), but the corresponding File record + (one for each Volume used in the Job) was not deleted. Note, searching for + these records can be {\bf very} time consuming (i.e. it may take hours) for a + large database. Normally this should not happen as Bacula takes care to + prevent it. Just the same, this check can remove any orphaned File records. + It is recommended that you run this once a year since orphaned File records + can take a large amount of space in your database. You might + want to ensure that you have indexes on JobId, FilenameId, and + PathId for the File table in your catalog before running this + command. + +.BR +Orphaned Path records. This condition happens any time a directory is + deleted from your system and all associated Job records have been purged. + During standard purging (or pruning) of Job records, Bacula does not check + for orphaned Path records. As a consequence, over a period of time, old + unused Path records will tend to accumulate and use space in your database. + This check will eliminate them. It is recommended that you run this + check at least once a year. + +.BR +Orphaned Filename records. This condition happens any time a file is + deleted from your system and all associated Job records have been purged. + This can happen quite frequently as there are quite a large number of files + that are created and then deleted. In addition, if you do a system update or + delete an entire directory, there can be a very large number of Filename + records that remain in the catalog but are no longer used. + + During standard purging (or pruning) of Job records, Bacula does not check + for orphaned Filename records. As a consequence, over a period of time, old + unused Filename records will accumulate and use space in your database. This + check will eliminate them. It is strongly recommended that you run this check + at least once a year, and for large database (more than 200 Megabytes), it is + probably better to run this once every 6 months. + +.BR +Orphaned Client records. These records can remain in the database long + after you have removed a client. + +.BR +Orphaned Job records. If no client is defined for a job or you do not + run a job for a long time, you can accumulate old job records. This option + allow you to remove jobs that are not attached to any client (and thus + useless). + +.BR +All Admin records. This command will remove all Admin records, + regardless of their age. + +.BR +All Restore records. This command will remove all Restore records, + regardless of their age. + +By the way, I personally run dbcheck only where I have messed up +my database due to a bug in developing Bacula code, so normally +you should never need to run dbcheck inspite of the +recommendations given above, which are given so that users don't +waste their time running dbcheck too often. + +.SH SEE ALSO +.BR bls (1), +.BR bextract (1). +.br +.SH AUTHOR +This manual page was written by Jose Luis Tallon +.nh +. diff --git a/Branch-2.2/bacula/patches/1.34.6/1.34.6-ACL.patch b/Branch-2.2/bacula/patches/1.34.6/1.34.6-ACL.patch new file mode 100644 index 0000000000..58d61d7039 --- /dev/null +++ b/Branch-2.2/bacula/patches/1.34.6/1.34.6-ACL.patch @@ -0,0 +1,28 @@ + +This patch fixes a bug where the enable_acl=yes flag was not +being properly received by the File daemon. +It can be applied to version 1.34.6 with the following: + + cd + patch -p0 <1.34.6-ACL.patch + make + make install + ... + +Index: src/filed/job.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/filed/job.c,v +retrieving revision 1.78 +diff -u -r1.78 job.c +--- src/filed/job.c 12 Jun 2004 12:38:16 -0000 1.78 ++++ src/filed/job.c 15 Oct 2004 07:20:28 -0000 +@@ -833,6 +833,9 @@ + case 'k': + fo->flags |= FO_KEEPATIME; + break; ++ case 'A': ++ fo->flags |= FO_ACL; ++ break; + case 'V': /* verify options */ + /* Copy Verify Options */ + for (j=0; *p && *p != ':'; p++) { diff --git a/Branch-2.2/bacula/patches/1.34.6/1.34.6-block.patch b/Branch-2.2/bacula/patches/1.34.6/1.34.6-block.patch new file mode 100644 index 0000000000..71934bec3a --- /dev/null +++ b/Branch-2.2/bacula/patches/1.34.6/1.34.6-block.patch @@ -0,0 +1,108 @@ + +In some cases, Bacula will get an error +on a tape and not be able to write and EOF mark. In this +case, the tape will no longer be readable. When this happens, +Bacula tries to plunge on but gets into lots of trouble. +This patch should fix that by immediately marking the Job +in error, and by avoiding running through code that doesn't +make any sense after a fatal error. + +Apply the patch to Bacula 1.34.6 (possibly earlier versions) +with: + + cd + patch -p0 <1.34.6-block.patch + make + make install + ... + +Index: src/stored/block.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/stored/block.c,v +retrieving revision 1.74.2.1 +diff -u -r1.74.2.1 block.c +--- src/stored/block.c 20 Jun 2004 11:43:04 -0000 1.74.2.1 ++++ src/stored/block.c 23 Aug 2004 19:02:10 -0000 +@@ -356,7 +356,7 @@ + /* Create a jobmedia record for this job */ + if (!dir_create_jobmedia_record(jcr)) { + dev->dev_errno = EIO; +- Jmsg(jcr, M_ERROR, 0, _("Could not create JobMedia record for Volume=\"%s\" Job=%s\n"), ++ Jmsg(jcr, M_FATAL, 0, _("Could not create JobMedia record for Volume=\"%s\" Job=%s\n"), + jcr->VolCatInfo.VolCatName, jcr->Job); + set_new_volume_parameters(jcr, dev); + stat = 0; +@@ -372,7 +372,11 @@ + } + + if (!write_block_to_dev(dcr, block)) { +- stat = fixup_device_block_write_error(jcr, dev, block); ++ if (job_canceled(jcr)) { ++ stat = 0; ++ } else { ++ stat = fixup_device_block_write_error(jcr, dev, block); ++ } + } + + bail_out: +@@ -393,7 +397,7 @@ + ssize_t stat = 0; + uint32_t wlen; /* length to write */ + int hit_max1, hit_max2; +- bool ok; ++ bool ok = true; + DEVICE *dev = dcr->dev; + JCR *jcr = dcr->jcr; + +@@ -463,9 +467,9 @@ + edit_uint64_with_commas(max_cap, ed1), dev->dev_name); + block->write_failed = true; + if (weof_dev(dev, 1) != 0) { /* end tape */ +- Jmsg(jcr, M_ERROR, 0, "%s", dev->errmsg); ++ Jmsg(jcr, M_FATAL, 0, "%s", dev->errmsg); + dev->VolCatInfo.VolCatErrors++; +- } ++ } + /* Don't do update after second EOF or file count will be wrong */ + Dmsg0(100, "dir_update_volume_info\n"); + dev->VolCatInfo.VolCatFiles = dev->file; +@@ -485,7 +489,7 @@ + + if (dev_state(dev, ST_TAPE) && weof_dev(dev, 1) != 0) { /* write eof */ + /* Write EOF */ +- Jmsg(jcr, M_ERROR, 0, "%s", dev->errmsg); ++ Jmsg(jcr, M_FATAL, 0, "%s", dev->errmsg); + block->write_failed = true; + dev->VolCatInfo.VolCatErrors++; + dev->state |= (ST_EOF | ST_EOT | ST_WEOT); +@@ -559,18 +563,18 @@ + block->write_failed = true; + if (weof_dev(dev, 1) != 0) { /* end the tape */ + dev->VolCatInfo.VolCatErrors++; +- Jmsg(jcr, M_ERROR, 0, "%s", dev->errmsg); ++ Jmsg(jcr, M_FATAL, 0, "%s", dev->errmsg); ++ ok = false; + } + Dmsg0(100, "dir_update_volume_info\n"); + dev->VolCatInfo.VolCatFiles = dev->file; + dir_update_volume_info(jcr, dev, 0); +- if (dev_cap(dev, CAP_TWOEOF) && weof_dev(dev, 1) != 0) { /* end the tape */ ++ if (ok && dev_cap(dev, CAP_TWOEOF) && weof_dev(dev, 1) != 0) { /* end the tape */ + dev->VolCatInfo.VolCatErrors++; + Jmsg(jcr, M_ERROR, 0, "%s", dev->errmsg); + } + dev->state |= (ST_EOF | ST_EOT | ST_WEOT); + +- ok = true; + #define CHECK_LAST_BLOCK + #ifdef CHECK_LAST_BLOCK + /* +@@ -580,7 +584,7 @@ + * then re-read it and verify that the block number is + * correct. + */ +- if (dev->state & ST_TAPE && dev_cap(dev, CAP_BSR)) { ++ if (ok && dev->state & ST_TAPE && dev_cap(dev, CAP_BSR)) { + + /* Now back up over what we wrote and read the last block */ + if (!bsf_dev(dev, 1)) { diff --git a/Branch-2.2/bacula/patches/1.34.6/1.34.6-deadlock.patch b/Branch-2.2/bacula/patches/1.34.6/1.34.6-deadlock.patch new file mode 100644 index 0000000000..bfe31a4317 --- /dev/null +++ b/Branch-2.2/bacula/patches/1.34.6/1.34.6-deadlock.patch @@ -0,0 +1,83 @@ + + This patch fixes two problems: 1. A deadlock between the job + queue scheduler and the watchdog thread. 2. A bad initialization + of the watchdog queue which could cause memory corruption. It also + reduces the watchdog granularity from 1 second to 10 seconds. + + Apply the patch to Bacula 1.34.6 (probably any 1.34.x version) with: + + cd + patch -p0 <1.34.6-deadlock.patch + make + ... + + +Index: src/dird/jobq.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/dird/jobq.c,v +retrieving revision 1.19 +diff -u -r1.19 jobq.c +--- src/dird/jobq.c 1 Jun 2004 20:10:04 -0000 1.19 ++++ src/dird/jobq.c 9 Aug 2004 06:08:08 -0000 +@@ -501,8 +501,10 @@ + jcr->db = NULL; + } + Dmsg1(300, "====== Termination job=%d\n", jcr->JobId); ++ V(jq->mutex); /* release internal job queue lock */ + free_jcr(jcr); + free(je); /* release job entry */ ++ P(jq->mutex); /* acquire internal job queue lock */ + } + /* + * If any job in the wait queue can be run, +Index: src/lib/watchdog.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/lib/watchdog.c,v +retrieving revision 1.27 +diff -u -r1.27 watchdog.c +--- src/lib/watchdog.c 1 Apr 2004 16:37:01 -0000 1.27 ++++ src/lib/watchdog.c 9 Aug 2004 06:08:08 -0000 +@@ -32,11 +32,12 @@ + + /* Exported globals */ + time_t watchdog_time = 0; /* this has granularity of SLEEP_TIME */ ++time_t watchdog_sleep_time = 10; /* examine things every 10 seconds */ + +-#define SLEEP_TIME 1 /* examine things every second */ + + /* Forward referenced functions */ +-static void *watchdog_thread(void *arg); ++void *watchdog_thread(void *arg); ++ + static void wd_lock(); + static void wd_unlock(); + +@@ -71,8 +72,8 @@ + Emsg1(M_ABORT, 0, _("Unable to initialize watchdog lock. ERR=%s\n"), + strerror(errstat)); + } +- wd_queue = new dlist(wd_queue, &dummy->link); +- wd_inactive = new dlist(wd_inactive, &dummy->link); ++ wd_queue = new dlist(dummy, &dummy->link); ++ wd_inactive = new dlist(dummy, &dummy->link); + + if ((stat = pthread_create(&wd_tid, NULL, watchdog_thread, NULL)) != 0) { + return stat; +@@ -214,7 +215,7 @@ + return ret; + } + +-static void *watchdog_thread(void *arg) ++void *watchdog_thread(void *arg) + { + Dmsg0(400, "NicB-reworked watchdog thread entered\n"); + +@@ -259,7 +260,7 @@ + } + wd_unlock(); + unlock_jcr_chain(); +- bmicrosleep(SLEEP_TIME, 0); ++ bmicrosleep(watchdog_sleep_time, 0); + } + + Dmsg0(400, "NicB-reworked watchdog thread exited\n"); diff --git a/Branch-2.2/bacula/patches/1.34.6/1.34.6-duration.patch b/Branch-2.2/bacula/patches/1.34.6/1.34.6-duration.patch new file mode 100644 index 0000000000..70c550481e --- /dev/null +++ b/Branch-2.2/bacula/patches/1.34.6/1.34.6-duration.patch @@ -0,0 +1,692 @@ + + Patch to allow more natural input of time durations. + Permitted form is "1 day 2 hours 5 sec" with and without + spaces. The different duration specifications (day, hour, ...) + can be in any order. + Apply to version 1.34.6 with: + + cd + patch -p0 <1.34.6-duration.patch + make + ... + +Index: src/dird/ua_cmds.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/dird/ua_cmds.c,v +retrieving revision 1.112 +diff -u -r1.112 ua_cmds.c +--- src/dird/ua_cmds.c 8 Jun 2004 08:44:04 -0000 1.112 ++++ src/dird/ua_cmds.c 5 Aug 2004 19:58:51 -0000 +@@ -682,7 +682,7 @@ + + static void update_volretention(UAContext *ua, char *val, MEDIA_DBR *mr) + { +- char ed1[50]; ++ char ed1[150]; + POOLMEM *query; + if (!duration_to_utime(val, &mr->VolRetention)) { + bsendmsg(ua, _("Invalid retention period specified: %s\n"), val); +@@ -694,7 +694,7 @@ + if (!db_sql_query(ua->db, query, NULL, NULL)) { + bsendmsg(ua, "%s", db_strerror(ua->db)); + } else { +- bsendmsg(ua, _("New retention seconds is: %s\n"), ++ bsendmsg(ua, _("New retention period is: %s\n"), + edit_utime(mr->VolRetention, ed1)); + } + free_pool_memory(query); +@@ -702,7 +702,7 @@ + + static void update_voluseduration(UAContext *ua, char *val, MEDIA_DBR *mr) + { +- char ed1[50]; ++ char ed1[150]; + POOLMEM *query; + + if (!duration_to_utime(val, &mr->VolUseDuration)) { +@@ -851,7 +851,7 @@ + MEDIA_DBR mr; + POOL_DBR pr; + POOLMEM *query; +- char ed1[30]; ++ char ed1[130]; + bool done = false; + char *kw[] = { + N_("VolStatus"), /* 0 */ +@@ -943,7 +943,7 @@ + update_volstatus(ua, ua->cmd, &mr); + break; + case 1: /* Retention */ +- bsendmsg(ua, _("Current retention seconds is: %s\n"), ++ bsendmsg(ua, _("Current retention period is: %s\n"), + edit_utime(mr.VolRetention, ed1)); + if (!get_cmd(ua, _("Enter Volume Retention period: "))) { + return 0; +Index: src/dird/ua_select.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/dird/ua_select.c,v +retrieving revision 1.50 +diff -u -r1.50 ua_select.c +--- src/dird/ua_select.c 5 Jun 2004 10:15:55 -0000 1.50 ++++ src/dird/ua_select.c 5 Aug 2004 19:58:52 -0000 +@@ -38,7 +38,7 @@ + */ + int confirm_retention(UAContext *ua, utime_t *ret, char *msg) + { +- char ed1[30]; ++ char ed1[130]; + + for ( ;; ) { + bsendmsg(ua, _("The current %s retention period is: %s\n"), +Index: src/lib/edit.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/lib/edit.c,v +retrieving revision 1.17 +diff -u -r1.17 edit.c +--- src/lib/edit.c 10 Jun 2004 09:45:41 -0000 1.17 ++++ src/lib/edit.c 5 Aug 2004 19:58:54 -0000 +@@ -3,7 +3,7 @@ + * + * Kern Sibbald, December MMII + * +- * Version $Id$ ++ * Version $Id$ + */ + + /* +@@ -77,7 +77,6 @@ + } + + +- + /* + * Edit an integer number with commas, the supplied buffer + * must be at least 27 bytes long. The incoming number +@@ -85,7 +84,21 @@ + */ + char *edit_uint64_with_commas(uint64_t val, char *buf) + { +- sprintf(buf, "%" llu, val); ++ /* ++ * Replacement for sprintf(buf, "%" llu, val) ++ */ ++ char mbuf[50]; ++ mbuf[sizeof(mbuf)-1] = 0; ++ int i = sizeof(mbuf)-2; /* edit backward */ ++ if (val == 0) { ++ mbuf[i--] = '0'; ++ } else { ++ while (val != 0) { ++ mbuf[i--] = "0123456789"[val%10]; ++ val /= 10; ++ } ++ } ++ strcpy(buf, &mbuf[i+1]); + return add_commas(buf, buf); + } + +@@ -96,7 +109,21 @@ + */ + char *edit_uint64(uint64_t val, char *buf) + { +- sprintf(buf, "%" llu, val); ++ /* ++ * Replacement for sprintf(buf, "%" llu, val) ++ */ ++ char mbuf[50]; ++ mbuf[sizeof(mbuf)-1] = 0; ++ int i = sizeof(mbuf)-2; /* edit backward */ ++ if (val == 0) { ++ mbuf[i--] = '0'; ++ } else { ++ while (val != 0) { ++ mbuf[i--] = "0123456789"[val%10]; ++ val /= 10; ++ } ++ } ++ strcpy(buf, &mbuf[i+1]); + return buf; + } + +@@ -104,9 +131,10 @@ + * Given a string "str", separate the integer part into + * str, and the modifier into mod. + */ +-static bool get_modifier(char *str, char *mod, int mod_len) ++static bool get_modifier(char *str, char *num, int num_len, char *mod, int mod_len) + { +- int i, len; ++ int i, len, num_begin, num_end, mod_begin, mod_end; ++ + /* + * Look for modifier by walking back looking for the first + * space or digit. +@@ -114,36 +142,50 @@ + strip_trailing_junk(str); + len = strlen(str); + +- /* Find beginning of the modifier */ +- for (i=len; i > 0; i--) { +- if (!B_ISALPHA(str[i-1])) { ++ for (i=0; i (num_end - num_begin + 1)) { ++ num_len = num_end - num_begin + 1; ++ } ++ if (num_len == 0) { + return false; + } +- +- /* Move modifier to its location */ +- bstrncpy(mod, &str[i], mod_len); +- Dmsg2(200, "in=%s mod=%s:\n", str, mod); +- +- /* Backup over any spaces in front of modifier */ +- for ( ; i > 0; i--) { +- if (B_ISSPACE(str[i-1])) { +- continue; ++ for ( ; i (mod_end - mod_begin + 1)) { ++ mod_len = mod_end - mod_begin + 1; ++ } ++ Dmsg5(900, "str=%s: num_beg=%d num_end=%d mod_beg=%d mod_end=%d\n", ++ str, num_begin, num_end, mod_begin, mod_end); ++ bstrncpy(num, &str[num_begin], num_len); ++ bstrncpy(mod, &str[mod_begin], mod_len); ++ if (!is_a_number(num)) { + return false; + } ++ bstrncpy(str, &str[mod_end], len); ++ + return true; + } + +@@ -155,8 +197,9 @@ + int duration_to_utime(char *str, utime_t *value) + { + int i, mod_len; +- double val; ++ double val, total = 0.0; + char mod_str[20]; ++ char num_str[50]; + /* + * The "n" = mins and months appears before minutes so that m maps + * to months. These "kludges" make it compatible with pre 1.31 +@@ -167,26 +210,33 @@ + static const int32_t mult[] = {60, 1, 60*60*24*30, 60, + 60*60, 60*60*24, 60*60*24*7, 60*60*24*91, 60*60*24*365}; + +- if (!get_modifier(str, mod_str, sizeof(mod_str))) { +- return 0; +- } +- /* Now find the multiplier corresponding to the modifier */ +- mod_len = strlen(mod_str); +- for (i=0; mod[i]; i++) { +- if (strncasecmp(mod_str, mod[i], mod_len) == 0) { +- break; ++ while (*str) { ++ if (!get_modifier(str, num_str, sizeof(num_str), mod_str, sizeof(mod_str))) { ++ return 0; ++ } ++ /* Now find the multiplier corresponding to the modifier */ ++ mod_len = strlen(mod_str); ++ if (mod_len == 0) { ++ i = 1; /* assume seconds */ ++ } else { ++ for (i=0; mod[i]; i++) { ++ if (strncasecmp(mod_str, mod[i], mod_len) == 0) { ++ break; ++ } ++ } ++ if (mod[i] == NULL) { ++ i = 1; /* no modifier, assume secs */ ++ } ++ } ++ Dmsg2(900, "str=%s: mult=%d\n", num_str, mult[i]); ++ errno = 0; ++ val = strtod(num_str, NULL); ++ if (errno != 0 || val < 0) { ++ return 0; + } ++ total += val * mult[i]; + } +- if (mod[i] == NULL) { +- i = 1; /* no modifier, assume 1 */ +- } +- Dmsg2(200, "str=%s: mult=%d\n", str, mult[i]); +- errno = 0; +- val = strtod(str, NULL); +- if (errno != 0 || val < 0) { +- return 0; +- } +- *value = (utime_t)(val * mult[i]); ++ *value = (utime_t)total; + return 1; + } + +@@ -195,32 +245,33 @@ + */ + char *edit_utime(utime_t val, char *buf) + { +- char mybuf[30]; ++ char mybuf[200]; + static const int32_t mult[] = {60*60*24*365, 60*60*24*30, 60*60*24, 60*60, 60}; + static const char *mod[] = {"year", "month", "day", "hour", "min"}; + int i; + uint32_t times; ++ int buf_len = 50; + + *buf = 0; + for (i=0; i<5; i++) { + times = (uint32_t)(val / mult[i]); + if (times > 0) { + val = val - (utime_t)times * mult[i]; +- sprintf(mybuf, "%d %s%s ", times, mod[i], times>1?"s":""); +- strcat(buf, mybuf); ++ bsnprintf(mybuf, sizeof(mybuf), "%d %s%s ", times, mod[i], times>1?"s":""); ++ bstrncat(buf, mybuf, buf_len); + } + } + if (val == 0 && strlen(buf) == 0) { +- strcat(buf, "0 secs"); ++ bstrncat(buf, "0 secs", buf_len); + } else if (val != 0) { +- sprintf(mybuf, "%d sec%s", (uint32_t)val, val>1?"s":""); +- strcat(buf, mybuf); ++ bsnprintf(mybuf, sizeof(mybuf), "%d sec%s", (uint32_t)val, val>1?"s":""); ++ bstrncat(buf, mybuf, buf_len); + } + return buf; + } + + /* +- * Convert a size size in bytes to uint64_t ++ * Convert a size in bytes to uint64_t + * Returns 0: if error + 1: if OK, and value stored in value + */ +@@ -229,6 +280,7 @@ + int i, mod_len; + double val; + char mod_str[20]; ++ char num_str[50]; + static const char *mod[] = {"*", "k", "kb", "m", "mb", "g", "gb", NULL}; /* first item * not used */ + const int64_t mult[] = {1, /* byte */ + 1024, /* kilobyte */ +@@ -238,7 +290,7 @@ + 1073741824, /* gigabyte */ + 1000000000}; /* gb gigabyte */ + +- if (!get_modifier(str, mod_str, sizeof(mod_str))) { ++ if (!get_modifier(str, num_str, sizeof(num_str), mod_str, sizeof(mod_str))) { + return 0; + } + /* Now find the multiplier corresponding to the modifier */ +@@ -251,9 +303,9 @@ + if (mod[i] == NULL) { + i = 0; /* no modifier found, assume 1 */ + } +- Dmsg2(200, "str=%s: mult=%d\n", str, mult[i]); ++ Dmsg2(900, "str=%s: mult=%d\n", str, mult[i]); + errno = 0; +- val = strtod(str, NULL); ++ val = strtod(num_str, NULL); + if (errno != 0 || val < 0) { + return 0; + } +@@ -265,7 +317,7 @@ + * Check if specified string is a number or not. + * Taken from SQLite, cool, thanks. + */ +-int is_a_number(const char *n) ++bool is_a_number(const char *n) + { + bool digit_seen = false; + +@@ -291,7 +343,7 @@ + /* + * Check if the specified string is an integer + */ +-int is_an_integer(const char *n) ++bool is_an_integer(const char *n) + { + bool digit_seen = false; + while (B_ISDIGIT(*n)) { +Index: src/lib/protos.h +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/lib/protos.h,v +retrieving revision 1.77 +diff -u -r1.77 protos.h +--- src/lib/protos.h 12 Jun 2004 07:51:26 -0000 1.77 ++++ src/lib/protos.h 5 Aug 2004 19:58:54 -0000 +@@ -26,99 +26,99 @@ + struct JCR; + + /* attr.c */ +-ATTR *new_attr(); +-void free_attr(ATTR *attr); +-int unpack_attributes_record(JCR *jcr, int32_t stream, char *rec, ATTR *attr); +-void build_attr_output_fnames(JCR *jcr, ATTR *attr); +-void print_ls_output(JCR *jcr, ATTR *attr); ++ATTR *new_attr(); ++void free_attr(ATTR *attr); ++int unpack_attributes_record(JCR *jcr, int32_t stream, char *rec, ATTR *attr); ++void build_attr_output_fnames(JCR *jcr, ATTR *attr); ++void print_ls_output(JCR *jcr, ATTR *attr); + + /* base64.c */ +-void base64_init (void); +-int to_base64 (intmax_t value, char *where); +-int from_base64 (intmax_t *value, char *where); +-int bin_to_base64 (char *buf, char *bin, int len); ++void base64_init (void); ++int to_base64 (intmax_t value, char *where); ++int from_base64 (intmax_t *value, char *where); ++int bin_to_base64 (char *buf, char *bin, int len); + + /* bsys.c */ +-char *bstrncpy (char *dest, const char *src, int maxlen); +-char *bstrncat (char *dest, const char *src, int maxlen); +-void *b_malloc (const char *file, int line, size_t size); ++char *bstrncpy (char *dest, const char *src, int maxlen); ++char *bstrncat (char *dest, const char *src, int maxlen); ++void *b_malloc (const char *file, int line, size_t size); + #ifndef DEBUG +-void *bmalloc (size_t size); ++void *bmalloc (size_t size); + #endif +-void *brealloc (void *buf, size_t size); +-void *bcalloc (size_t size1, size_t size2); +-int bsnprintf (char *str, int32_t size, const char *format, ...); +-int bvsnprintf (char *str, int32_t size, const char *format, va_list ap); +-int pool_sprintf (char *pool_buf, const char *fmt, ...); +-void create_pid_file (char *dir, const char *progname, int port); +-int delete_pid_file (char *dir, const char *progname, int port); +-void drop (char *uid, char *gid); +-int bmicrosleep (time_t sec, long usec); +-char *bfgets (char *s, int size, FILE *fd); +-void make_unique_filename (POOLMEM **name, int Id, char *what); ++void *brealloc (void *buf, size_t size); ++void *bcalloc (size_t size1, size_t size2); ++int bsnprintf (char *str, int32_t size, const char *format, ...); ++int bvsnprintf (char *str, int32_t size, const char *format, va_list ap); ++int pool_sprintf (char *pool_buf, const char *fmt, ...); ++void create_pid_file (char *dir, const char *progname, int port); ++int delete_pid_file (char *dir, const char *progname, int port); ++void drop (char *uid, char *gid); ++int bmicrosleep (time_t sec, long usec); ++char *bfgets (char *s, int size, FILE *fd); ++void make_unique_filename (POOLMEM **name, int Id, char *what); + #ifndef HAVE_STRTOLL +-long long int strtoll (const char *ptr, char **endptr, int base); ++long long int strtoll (const char *ptr, char **endptr, int base); + #endif + void read_state_file(char *dir, const char *progname, int port); + + /* bnet.c */ +-int32_t bnet_recv (BSOCK *bsock); +-int bnet_send (BSOCK *bsock); +-int bnet_fsend (BSOCK *bs, const char *fmt, ...); +-int bnet_set_buffer_size (BSOCK *bs, uint32_t size, int rw); +-int bnet_sig (BSOCK *bs, int sig); +-int bnet_ssl_server (BSOCK *bsock, char *password, int ssl_need, int ssl_has); +-int bnet_ssl_client (BSOCK *bsock, char *password, int ssl_need); +-BSOCK * bnet_connect (JCR *jcr, int retry_interval, +- int max_retry_time, const char *name, char *host, char *service, +- int port, int verbose); +-void bnet_close (BSOCK *bsock); +-BSOCK * init_bsock (JCR *jcr, int sockfd, const char *who, char *ip, +- int port, struct sockaddr_in *client_addr); +-BSOCK * dup_bsock (BSOCK *bsock); +-void term_bsock (BSOCK *bsock); +-char * bnet_strerror (BSOCK *bsock); +-char * bnet_sig_to_ascii (BSOCK *bsock); +-int bnet_wait_data (BSOCK *bsock, int sec); +-int bnet_wait_data_intr (BSOCK *bsock, int sec); +-int bnet_despool_to_bsock (BSOCK *bsock, void update(ssize_t size), ssize_t size); +-int is_bnet_stop (BSOCK *bsock); +-int is_bnet_error (BSOCK *bsock); +-void bnet_suppress_error_messages(BSOCK *bsock, bool flag); ++int32_t bnet_recv (BSOCK *bsock); ++int bnet_send (BSOCK *bsock); ++int bnet_fsend (BSOCK *bs, const char *fmt, ...); ++int bnet_set_buffer_size (BSOCK *bs, uint32_t size, int rw); ++int bnet_sig (BSOCK *bs, int sig); ++int bnet_ssl_server (BSOCK *bsock, char *password, int ssl_need, int ssl_has); ++int bnet_ssl_client (BSOCK *bsock, char *password, int ssl_need); ++BSOCK * bnet_connect (JCR *jcr, int retry_interval, ++ int max_retry_time, const char *name, char *host, char *service, ++ int port, int verbose); ++void bnet_close (BSOCK *bsock); ++BSOCK * init_bsock (JCR *jcr, int sockfd, const char *who, char *ip, ++ int port, struct sockaddr_in *client_addr); ++BSOCK * dup_bsock (BSOCK *bsock); ++void term_bsock (BSOCK *bsock); ++char * bnet_strerror (BSOCK *bsock); ++char * bnet_sig_to_ascii (BSOCK *bsock); ++int bnet_wait_data (BSOCK *bsock, int sec); ++int bnet_wait_data_intr (BSOCK *bsock, int sec); ++int bnet_despool_to_bsock (BSOCK *bsock, void update(ssize_t size), ssize_t size); ++int is_bnet_stop (BSOCK *bsock); ++int is_bnet_error (BSOCK *bsock); ++void bnet_suppress_error_messages(BSOCK *bsock, bool flag); + + /* bget_msg.c */ +-int bget_msg(BSOCK *sock); ++int bget_msg(BSOCK *sock); + + /* bpipe.c */ +-BPIPE * open_bpipe(char *prog, int wait, const char *mode); +-int close_wpipe(BPIPE *bpipe); +-int close_bpipe(BPIPE *bpipe); ++BPIPE * open_bpipe(char *prog, int wait, const char *mode); ++int close_wpipe(BPIPE *bpipe); ++int close_bpipe(BPIPE *bpipe); + + /* cram-md5.c */ + int cram_md5_get_auth(BSOCK *bs, char *password, int ssl_need); + int cram_md5_auth(BSOCK *bs, char *password, int ssl_need); + void hmac_md5(uint8_t* text, int text_len, uint8_t* key, +- int key_len, uint8_t *hmac); ++ int key_len, uint8_t *hmac); + + /* crc32.c */ + + uint32_t bcrc32(uint8_t *buf, int len); + + /* daemon.c */ +-void daemon_start (); ++void daemon_start (); + + /* edit.c */ +-uint64_t str_to_uint64(char *str); +-int64_t str_to_int64(char *str); +-char * edit_uint64_with_commas (uint64_t val, char *buf); +-char * add_commas (char *val, char *buf); +-char * edit_uint64 (uint64_t val, char *buf); +-int duration_to_utime (char *str, utime_t *value); +-int size_to_uint64(char *str, int str_len, uint64_t *rtn_value); +-char *edit_utime (utime_t val, char *buf); +-int is_a_number (const char *num); +-int is_an_integer (const char *n); +-bool is_name_valid (char *name, POOLMEM **msg); ++uint64_t str_to_uint64(char *str); ++int64_t str_to_int64(char *str); ++char * edit_uint64_with_commas (uint64_t val, char *buf); ++char * add_commas (char *val, char *buf); ++char * edit_uint64 (uint64_t val, char *buf); ++int duration_to_utime (char *str, utime_t *value); ++int size_to_uint64(char *str, int str_len, uint64_t *rtn_value); ++char *edit_utime (utime_t val, char *buf); ++bool is_a_number (const char *num); ++bool is_an_integer (const char *n); ++bool is_name_valid (char *name, POOLMEM **msg); + + /* jcr.c (most definitions are in src/jcr.h) */ + void init_last_jobs_list(); +@@ -132,36 +132,36 @@ + + + /* lex.c */ +-LEX * lex_close_file (LEX *lf); +-LEX * lex_open_file (LEX *lf, const char *fname, LEX_ERROR_HANDLER *scan_error); +-int lex_get_char (LEX *lf); +-void lex_unget_char (LEX *lf); +-const char * lex_tok_to_str (int token); +-int lex_get_token (LEX *lf, int expect); ++LEX * lex_close_file (LEX *lf); ++LEX * lex_open_file (LEX *lf, const char *fname, LEX_ERROR_HANDLER *scan_error); ++int lex_get_char (LEX *lf); ++void lex_unget_char (LEX *lf); ++const char * lex_tok_to_str (int token); ++int lex_get_token (LEX *lf, int expect); + + /* message.c */ +-void my_name_is (int argc, char *argv[], const char *name); +-void init_msg (JCR *jcr, MSGS *msg); +-void term_msg (void); +-void close_msg (JCR *jcr); +-void add_msg_dest (MSGS *msg, int dest, int type, char *where, char *dest_code); +-void rem_msg_dest (MSGS *msg, int dest, int type, char *where); +-void Jmsg (JCR *jcr, int type, int level, const char *fmt, ...); +-void dispatch_message (JCR *jcr, int type, int level, char *buf); +-void init_console_msg (char *wd); +-void free_msgs_res (MSGS *msgs); +-void dequeue_messages (JCR *jcr); +-void set_trace (int trace_flag); +-void set_exit_on_error (int value); ++void my_name_is (int argc, char *argv[], const char *name); ++void init_msg (JCR *jcr, MSGS *msg); ++void term_msg (void); ++void close_msg (JCR *jcr); ++void add_msg_dest (MSGS *msg, int dest, int type, char *where, char *dest_code); ++void rem_msg_dest (MSGS *msg, int dest, int type, char *where); ++void Jmsg (JCR *jcr, int type, int level, const char *fmt, ...); ++void dispatch_message (JCR *jcr, int type, int level, char *buf); ++void init_console_msg (char *wd); ++void free_msgs_res (MSGS *msgs); ++void dequeue_messages (JCR *jcr); ++void set_trace (int trace_flag); ++void set_exit_on_error (int value); + + /* bnet_server.c */ +-void bnet_thread_server(char *bind_addr, int port, int max_clients, workq_t *client_wq, +- void *handle_client_request(void *bsock)); +-void bnet_stop_thread_server(pthread_t tid); +-void bnet_server (int port, void handle_client_request(BSOCK *bsock)); +-int net_connect (int port); +-BSOCK * bnet_bind (int port); +-BSOCK * bnet_accept (BSOCK *bsock, char *who); ++void bnet_thread_server(char *bind_addr, int port, int max_clients, workq_t *client_wq, ++ void *handle_client_request(void *bsock)); ++void bnet_stop_thread_server(pthread_t tid); ++void bnet_server (int port, void handle_client_request(BSOCK *bsock)); ++int net_connect (int port); ++BSOCK * bnet_bind (int port); ++BSOCK * bnet_accept (BSOCK *bsock, char *who); + + /* idcache.c */ + char *getuser(uid_t uid); +@@ -171,41 +171,41 @@ + + + /* signal.c */ +-void init_signals (void terminate(int sig)); +-void init_stack_dump (void); ++void init_signals (void terminate(int sig)); ++void init_stack_dump (void); + + /* scan.c */ +-void strip_trailing_junk (char *str); +-void strip_trailing_slashes (char *dir); +-bool skip_spaces (char **msg); +-bool skip_nonspaces (char **msg); +-int fstrsch (char *a, char *b); +-char *next_arg(char **s); +-int parse_args(POOLMEM *cmd, POOLMEM **args, int *argc, +- char **argk, char **argv, int max_args); +-void split_path_and_filename(const char *fname, POOLMEM **path, +- int *pnl, POOLMEM **file, int *fnl); +-int bsscanf(const char *buf, const char *fmt, ...); ++void strip_trailing_junk (char *str); ++void strip_trailing_slashes (char *dir); ++bool skip_spaces (char **msg); ++bool skip_nonspaces (char **msg); ++int fstrsch (char *a, char *b); ++char *next_arg(char **s); ++int parse_args(POOLMEM *cmd, POOLMEM **args, int *argc, ++ char **argk, char **argv, int max_args); ++void split_path_and_filename(const char *fname, POOLMEM **path, ++ int *pnl, POOLMEM **file, int *fnl); ++int bsscanf(const char *buf, const char *fmt, ...); + + + /* util.c */ +-int is_buf_zero (char *buf, int len); +-void lcase (char *str); +-void bash_spaces (char *str); +-void unbash_spaces (char *str); +-char * encode_time (time_t time, char *buf); +-char * encode_mode (mode_t mode, char *buf); +-int do_shell_expansion (char *name, int name_len); +-void jobstatus_to_ascii (int JobStatus, char *msg, int maxlen); +-int pm_strcat (POOLMEM **pm, const char *str); +-int pm_strcpy (POOLMEM **pm, const char *str); +-int run_program (char *prog, int wait, POOLMEM *results); +-char * job_type_to_str (int type); +-char * job_status_to_str (int stat); +-char * job_level_to_str (int level); +-void make_session_key (char *key, char *seed, int mode); +-POOLMEM *edit_job_codes(JCR *jcr, char *omsg, char *imsg, const char *to); +-void set_working_directory(char *wd); ++int is_buf_zero (char *buf, int len); ++void lcase (char *str); ++void bash_spaces (char *str); ++void unbash_spaces (char *str); ++char * encode_time (time_t time, char *buf); ++char * encode_mode (mode_t mode, char *buf); ++int do_shell_expansion (char *name, int name_len); ++void jobstatus_to_ascii (int JobStatus, char *msg, int maxlen); ++int pm_strcat (POOLMEM **pm, const char *str); ++int pm_strcpy (POOLMEM **pm, const char *str); ++int run_program (char *prog, int wait, POOLMEM *results); ++char * job_type_to_str (int type); ++char * job_status_to_str (int stat); ++char * job_level_to_str (int level); ++void make_session_key (char *key, char *seed, int mode); ++POOLMEM *edit_job_codes(JCR *jcr, char *omsg, char *imsg, const char *to); ++void set_working_directory(char *wd); + + + /* watchdog.c */ diff --git a/Branch-2.2/bacula/patches/1.34.6/1.34.6-find.patch b/Branch-2.2/bacula/patches/1.34.6/1.34.6-find.patch new file mode 100644 index 0000000000..8acd2e36ac --- /dev/null +++ b/Branch-2.2/bacula/patches/1.34.6/1.34.6-find.patch @@ -0,0 +1,48 @@ + + This patch fixes a problem where the Options are not properly passed + from the last Option group to the NULL option group -- i.e. some of + the files do not get the correct options. + + Apply to Bacula 1.34.6 with: + + cd + patch -p0 <1.34.6-find.patch + make + ... + +Index: src/findlib/find.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/findlib/find.c,v +retrieving revision 1.18 +diff -u -r1.18 find.c +--- src/findlib/find.c 9 Jun 2004 11:52:24 -0000 1.18 ++++ src/findlib/find.c 6 Aug 2004 13:25:52 -0000 +@@ -160,10 +160,10 @@ + + for (j=0; jopts_list.size(); j++) { + findFOPTS *fo = (findFOPTS *)incexe->opts_list.get(j); ++ ff->flags = fo->flags; ++ ff->GZIP_level = fo->GZIP_level; + for (k=0; kwild.size(); k++) { + if (fnmatch((char *)fo->wild.get(k), ff->fname, 0) == 0) { +- ff->flags = fo->flags; +- ff->GZIP_level = fo->GZIP_level; + if (ff->flags & FO_EXCLUDE) { + return false; /* reject file */ + } +@@ -205,7 +205,6 @@ + case FT_NOFOLLOW: + case FT_NOSTAT: + case FT_NOCHG: +- case FT_DIRNOCHG: + case FT_ISARCH: + case FT_NORECURSE: + case FT_NOFSCHG: +@@ -222,6 +221,7 @@ + case FT_RAW: + case FT_FIFO: + case FT_SPEC: ++ case FT_DIRNOCHG: + if (accept_file(ff)) { + return ff->callback(ff, hpkt); + } else { diff --git a/Branch-2.2/bacula/patches/1.34.6/1.34.6-gnome-console-Makefile.in.patch b/Branch-2.2/bacula/patches/1.34.6/1.34.6-gnome-console-Makefile.in.patch new file mode 100644 index 0000000000..aec11b212f --- /dev/null +++ b/Branch-2.2/bacula/patches/1.34.6/1.34.6-gnome-console-Makefile.in.patch @@ -0,0 +1,25 @@ +--- Makefile.in 2004-07-29 15:29:56.000000000 -0400 ++++ gnome-console-Makefile.in 2004-08-01 14:22:04.000000000 -0400 +@@ -12,7 +12,7 @@ + # top dir + topdir = ../.. + # this dir relative to top dir +-thisdir = src/gnome2-console ++thisdir = src/gnome-console + + DEBUG=@DEBUG@ + +@@ -26,10 +26,9 @@ + + + # +-CONSSRCS = console.c console_conf.c authenticate.c support.c interface.c callbacks.c \ +- restore.c +-CONSOBJS = console.o console_conf.o authenticate.o support.o interface.o callbacks.o \ +- restore.o ++CONSSRCS = console.c console_conf.c authenticate.c support.c interface.c callbacks.c ++ ++CONSOBJS = console.o console_conf.o authenticate.o support.o interface.o callbacks.o + + # these are the objects that are changed by the .configure process + EXTRAOBJS = @OBJLIST@ diff --git a/Branch-2.2/bacula/patches/1.34.6/1.34.6-poll.patch b/Branch-2.2/bacula/patches/1.34.6/1.34.6-poll.patch new file mode 100644 index 0000000000..846c08fff1 --- /dev/null +++ b/Branch-2.2/bacula/patches/1.34.6/1.34.6-poll.patch @@ -0,0 +1,64 @@ + +This patch fixes two bugs: +1. It ignores an device open failure if polling. +2. It disables the insanity check on reading the + tape label while polling. Normally the check + doesn't allow the label to be read more than 100 + times. + +Apply the patch to version 1.34.6 (possibly earlier versions) with: + + cd + patch -p0 <1.34.6-poll.patch + make + ... + +Index: src/stored/label.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/stored/label.c,v +retrieving revision 1.42.2.1 +diff -u -r1.42.2.1 label.c +--- src/stored/label.c 20 Jun 2004 11:43:04 -0000 1.42.2.1 ++++ src/stored/label.c 2 Sep 2004 12:21:00 -0000 +@@ -74,8 +74,8 @@ + * Cancel Job if too many label errors + * => we are in a loop + */ +- if (jcr->label_errors++ > 100) { +- Jmsg(jcr, M_FATAL, 0, "%s", jcr->errmsg); ++ if (!dev->poll && jcr->label_errors++ > 100) { ++ Jmsg(jcr, M_FATAL, 0, "Too many tries: %s", jcr->errmsg); + } + return jcr->label_status = VOL_NAME_ERROR; + } +@@ -157,8 +157,8 @@ + * Cancel Job if too many label errors + * => we are in a loop + */ +- if (jcr->label_errors++ > 100) { +- Jmsg(jcr, M_FATAL, 0, "%s", jcr->errmsg); ++ if (!dev->poll && jcr->label_errors++ > 100) { ++ Jmsg(jcr, M_FATAL, 0, "Too many tries: %s", jcr->errmsg); + } + return jcr->label_status = VOL_NAME_ERROR; + } +Index: src/stored/mount.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/stored/mount.c,v +retrieving revision 1.59.2.1 +diff -u -r1.59.2.1 mount.c +--- src/stored/mount.c 20 Jun 2004 11:43:04 -0000 1.59.2.1 ++++ src/stored/mount.c 2 Sep 2004 12:21:00 -0000 +@@ -154,7 +154,11 @@ + + /* Ensure the device is open */ + if (!open_device(jcr, dev)) { +- return 0; ++ if (dev->poll) { ++ goto mount_next_vol; ++ } else { ++ return 0; ++ } + } + + /* diff --git a/Branch-2.2/bacula/patches/1.34.6/1.34.6-pool.patch b/Branch-2.2/bacula/patches/1.34.6/1.34.6-pool.patch new file mode 100644 index 0000000000..ba6521a6c0 --- /dev/null +++ b/Branch-2.2/bacula/patches/1.34.6/1.34.6-pool.patch @@ -0,0 +1,58 @@ + + This patch fixes a bug where Inc, Diff, and Full Pool overrides + would incorrectly override a Pool= on the Run card. The patch + also includes the Pool actually used in the Job Report. + + Apply the patch to version 1.34.6 with: + + cd + patch -p0 <1.34.6-pool.patch + make + ... + +Index: src/dird/scheduler.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/dird/scheduler.c,v +retrieving revision 1.24 +diff -u -r1.24 scheduler.c +--- src/dird/scheduler.c 13 Mar 2004 09:30:10 -0000 1.24 ++++ src/dird/scheduler.c 11 Aug 2004 07:38:51 -0000 +@@ -147,15 +147,6 @@ + if (run->pool) { + jcr->pool = run->pool; /* override pool */ + } +- if (run->full_pool) { +- jcr->pool = run->full_pool; /* override full pool */ +- } +- if (run->inc_pool) { +- jcr->pool = run->inc_pool; /* override inc pool */ +- } +- if (run->dif_pool) { +- jcr->pool = run->dif_pool; /* override dif pool */ +- } + if (run->storage) { + jcr->store = run->storage; /* override storage */ + } +Index: src/dird/backup.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/dird/backup.c,v +retrieving revision 1.65 +diff -u -r1.65 backup.c +--- src/dird/backup.c 19 Apr 2004 14:27:00 -0000 1.65 ++++ src/dird/backup.c 11 Aug 2004 07:38:52 -0000 +@@ -468,6 +468,7 @@ + Backup Level: %s%s\n\ + Client: %s\n\ + FileSet: \"%s\" %s\n\ ++Pool: \"%s\"\n\ + Start time: %s\n\ + End time: %s\n\ + FD Files Written: %s\n\ +@@ -491,6 +492,7 @@ + level_to_str(jcr->JobLevel), since, + jcr->client->hdr.name, + jcr->fileset->hdr.name, fsr->cCreateTime, ++ jcr->pool->hdr.name, + sdt, + edt, + edit_uint64_with_commas(jcr->jr.JobFiles, ec1), diff --git a/Branch-2.2/bacula/patches/1.34.6/1.34.6-resched.patch b/Branch-2.2/bacula/patches/1.34.6/1.34.6-resched.patch new file mode 100644 index 0000000000..9e8a448881 --- /dev/null +++ b/Branch-2.2/bacula/patches/1.34.6/1.34.6-resched.patch @@ -0,0 +1,65 @@ + + This patch fixes two bugs in the job queue scheduling: + 1. It clears the SD status when rescheduling a job so that + the correct status will be displayed by the Director. + 2. When starting a reschedule thread, it decrements the jcr + use_count so that the job will not become a zombie. + + Apply it to 1.34.6 (possibly to earlier versions with): + + cd + patch -p0 <1.34.6-resched.patch + make + ... + +Index: src/dird/jobq.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/dird/jobq.c,v +retrieving revision 1.19 +diff -u -r1.19 jobq.c +--- src/dird/jobq.c 1 Jun 2004 20:10:04 -0000 1.19 ++++ src/dird/jobq.c 1 Sep 2004 17:22:51 -0000 +@@ -160,11 +160,11 @@ + Dmsg0(300, "Enter sched_wait.\n"); + free(arg); + time_t wtime = jcr->sched_time - time(NULL); ++ set_jcr_job_status(jcr, JS_WaitStartTime); + /* Wait until scheduled time arrives */ + if (wtime > 0 && verbose) { + Jmsg(jcr, M_INFO, 0, _("Job %s waiting %d seconds for scheduled start time.\n"), + jcr->Job, wtime); +- set_jcr_job_status(jcr, JS_WaitStartTime); + } + /* Check every 30 seconds if canceled */ + while (wtime > 0) { +@@ -217,10 +217,10 @@ + sched_pkt = (wait_pkt *)malloc(sizeof(wait_pkt)); + sched_pkt->jcr = jcr; + sched_pkt->jq = jq; ++ jcr->use_count--; /* release our use of jcr */ + stat = pthread_create(&id, &jq->attr, sched_wait, (void *)sched_pkt); + if (stat != 0) { /* thread not created */ + Jmsg1(jcr, M_ERROR, 0, "pthread_thread_create: ERR=%s\n", strerror(stat)); +- jcr->use_count--; /* release jcr */ + } + return stat; + } +@@ -465,6 +465,7 @@ + Dmsg2(300, "Rescheduled Job %s to re-run in %d seconds.\n", jcr->Job, + (int)jcr->job->RescheduleInterval); + jcr->JobStatus = JS_Created; /* force new status */ ++ jcr->SDJobStatus = 0; + dird_free_jcr(jcr); /* partial cleanup old stuff */ + if (jcr->JobBytes == 0) { + Dmsg1(300, "Requeue job=%d\n", jcr->JobId); +@@ -501,8 +502,10 @@ + jcr->db = NULL; + } + Dmsg1(300, "====== Termination job=%d\n", jcr->JobId); ++ V(jq->mutex); /* release internal job queue lock */ + free_jcr(jcr); + free(je); /* release job entry */ ++ P(jq->mutex); /* acquire internal job queue lock */ + } + /* + * If any job in the wait queue can be run, diff --git a/Branch-2.2/bacula/patches/1.34.6/1.34.6-slots.patch b/Branch-2.2/bacula/patches/1.34.6/1.34.6-slots.patch new file mode 100644 index 0000000000..31c21e5e7e --- /dev/null +++ b/Branch-2.2/bacula/patches/1.34.6/1.34.6-slots.patch @@ -0,0 +1,25 @@ + + This patch eliminates unwanted output (some 5000 lines) when doing + an "update slots" command. + Apply to version 1.34.6 with: + + cd + patch -p0 <1.34.6-slots.patch + make + ... + +Index: src/dird/ua_label.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/dird/ua_label.c,v +retrieving revision 1.34 +diff -u -r1.34 ua_label.c +--- src/dird/ua_label.c 10 Jun 2004 13:08:01 -0000 1.34 ++++ src/dird/ua_label.c 5 Aug 2004 20:05:27 -0000 +@@ -255,7 +255,6 @@ + db_lock(ua->db); + db_make_inchanger_unique(ua->jcr, ua->db, &mr); + db_unlock(ua->db); +- bsendmsg(ua, _("No VolName for Slot=%d set InChanger to zero.\n"), i); + } + } + diff --git a/Branch-2.2/bacula/patches/1.34.6/patches-1.34.6 b/Branch-2.2/bacula/patches/1.34.6/patches-1.34.6 new file mode 100644 index 0000000000..abd08bcef7 --- /dev/null +++ b/Branch-2.2/bacula/patches/1.34.6/patches-1.34.6 @@ -0,0 +1,61 @@ + +Note: the patches listed here are not in their order of creation. + +1.34.6-block.patch: + In some cases, Bacula will get an error + on a tape and not be able to write and EOF mark. In this + case, the tape will no longer be readable. When this happens, + Bacula tries to plunge on but gets into lots of trouble. + This patch should fix that by immediately marking the Job + in error, and by avoiding running through code that doesn't + make any sense after a fatal error. + +1.34.6-deadlock.patch: + This patch fixes two problems: 1. A deadlock between the job + queue scheduler and the watchdog thread. 2. A bad initialization + of the watchdog queue which could cause memory corruption. It also + reduces the watchdog granularity from 1 second to 10 seconds. + +1.34.6-duration.patch: + Patch to allow more natural input of time durations. + Permitted form is "1 day 2 hours 5 sec" with and without + spaces. The different duration specifications (day, hour, ...) + can be in any order. + +1.34.6-find.patch: + This patch fixes a problem where the Options are not properly passed + from the last Option group to the NULL option group -- i.e. some of + the files do not get the correct options. + +1.34.6-gnome-console-Makefile.in.patch: + This patch fixes an error in the Gnome 1.4 Makefile. + +1.34.6-poll.patch: + This patch fixes two bugs: + 1. It ignores an device open failure if polling. + 2. It disables the insanity check on reading the + tape label while polling. Normally the check + doesn't allow the label to be read more than 100 + times. + +1.34.6-pool.patch: + This patch fixes a bug where Inc, Diff, and Full Pool overrides + would incorrectly override a Pool= on the Run card. The patch + also includes the Pool actually used in the Job Report. + +1.34.6-resched.patch: + This patch fixes two bugs in the job queue scheduling: + 1. It clears the SD status when rescheduling a job so that + the correct status will be displayed by the Director. + 2. When starting a reschedule thread, it decrements the jcr + use_count so that the job will not become a zombie. + +1.34.6-slots.patch: + This patch eliminates unwanted output (some 5000 lines) when doing + an "update slots" command. + +15Oct03 +1.34.6-ACL.patch: + This patch fixes a bug where the enable_acl=yes flag was not + being properly received by the File daemon. + diff --git a/Branch-2.2/bacula/patches/1.36.0/1.36.0-autochanger.patch b/Branch-2.2/bacula/patches/1.36.0/1.36.0-autochanger.patch new file mode 100644 index 0000000000..64e562810d --- /dev/null +++ b/Branch-2.2/bacula/patches/1.36.0/1.36.0-autochanger.patch @@ -0,0 +1,41 @@ + + This patch should fix a problem where the autochanger thinks + a Volume is in the current magazine and loops a few times then + gives up. + + Apply it to version 1.36.0 with the following: + + cd + patch -p0 <1.36.0-autochanger.patch + make + make install + +Index: src/stored/autochanger.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/stored/autochanger.c,v +retrieving revision 1.23 +diff -u -r1.23 autochanger.c +--- src/stored/autochanger.c 19 Sep 2004 18:56:27 -0000 1.23 ++++ src/stored/autochanger.c 21 Nov 2004 22:23:26 -0000 +@@ -52,10 +52,11 @@ + { + JCR *jcr = dcr->jcr; + DEVICE *dev = dcr->dev; +- int slot = dcr->VolCatInfo.Slot; ++ int slot; + int drive = jcr->device->drive_index; + int rtn_stat = -1; /* error status */ + ++ slot = dcr->VolCatInfo.InChanger ? dcr->VolCatInfo.Slot : 0; + /* + * Handle autoloaders here. If we cannot autoload it, we + * will return FALSE to ask the sysop. +@@ -65,7 +66,7 @@ + return 0; /* For user, bail out right now */ + } + if (dir_find_next_appendable_volume(dcr)) { +- slot = dcr->VolCatInfo.Slot; ++ slot = dcr->VolCatInfo.InChanger ? dcr->VolCatInfo.Slot : 0; + } else { + slot = 0; + } diff --git a/Branch-2.2/bacula/patches/1.36.0/1.36.0-autochanger2.patch b/Branch-2.2/bacula/patches/1.36.0/1.36.0-autochanger2.patch new file mode 100644 index 0000000000..6a1d505411 --- /dev/null +++ b/Branch-2.2/bacula/patches/1.36.0/1.36.0-autochanger2.patch @@ -0,0 +1,111 @@ + + This patch fixes an autochanger problem where Bacula was trying + to access a Volume that was not in the autochanger. You *must* + also apply patch 1.36.0-autochanger.patch for this patch to work + correctly. This patch will probably also correct some problems + introduced with version 1.36 (dcrs) that make update slots + fail. + + Apply it to 1.36.0 with: + + cd + patch -p0 <1.36.0-autochanger2.patch + make + make install + ... + +Index: src/stored/dircmd.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/stored/dircmd.c,v +retrieving revision 1.79 +diff -u -r1.79 dircmd.c +--- src/stored/dircmd.c 21 Nov 2004 13:10:16 -0000 1.79 ++++ src/stored/dircmd.c 24 Nov 2004 11:46:45 -0000 +@@ -78,6 +78,7 @@ + static void label_volume_if_ok(JCR *jcr, DEVICE *dev, char *oldname, + char *newname, char *poolname, + int Slot, int relabel); ++static bool try_autoload_device(JCR *jcr, int slot, const char *VolName); + + struct s_cmds { + const char *cmd; +@@ -373,21 +374,11 @@ + DCR *dcr = jcr->dcr; + int label_status; + ++ dcr->dev = dev; + steal_device_lock(dev, &hold, BST_WRITING_LABEL); + +- bstrncpy(dcr->VolumeName, newname, sizeof(dcr->VolumeName)); +- dcr->VolCatInfo.Slot = slot; +- if (autoload_device(dcr, 0, dir) < 0) { /* autoload if possible */ +- goto bail_out; +- } +- +- /* Ensure that the device is open -- autoload_device() closes it */ +- for ( ; !(dev->state & ST_OPENED); ) { +- if (open_dev(dev, dcr->VolumeName, OPEN_READ_WRITE) < 0) { +- bnet_fsend(dir, _("3910 Unable to open device %s. ERR=%s\n"), +- dev_name(dev), strerror_dev(dev)); +- goto bail_out; +- } ++ if (!try_autoload_device(jcr, slot, newname)) { ++ goto bail_out; /* error */ + } + + /* See what we have for a Volume */ +@@ -845,22 +836,12 @@ + BSOCK *dir = jcr->dir_bsock; + bsteal_lock_t hold; + DCR *dcr = jcr->dcr; +- ++ ++ dcr->dev = dev; + steal_device_lock(dev, &hold, BST_WRITING_LABEL); + +- dcr->VolumeName[0] = 0; +- dcr->VolCatInfo.Slot = Slot; +- if (autoload_device(dcr, 0, dir) < 0) { /* autoload if possible */ +- goto bail_out; +- } +- +- /* Ensure that the device is open -- autoload_device() closes it */ +- for ( ; !dev_state(dev, ST_OPENED); ) { +- if (open_dev(dev, dcr->VolumeName, OPEN_READ_WRITE) < 0) { +- bnet_fsend(dir, _("3910 Unable to open device \"%s\". ERR=%s\n"), +- dev_name(dev), strerror_dev(dev)); +- goto bail_out; +- } ++ if (!try_autoload_device(jcr, Slot, "")) { ++ goto bail_out; /* error */ + } + + dev->state &= ~ST_LABEL; /* force read of label */ +@@ -880,3 +861,27 @@ + give_back_device_lock(dev, &hold); + return; + } ++ ++static bool try_autoload_device(JCR *jcr, int slot, const char *VolName) ++{ ++ DCR *dcr = jcr->dcr; ++ BSOCK *dir = jcr->dir_bsock; ++ DEVICE *dev = dcr->dev; ++ ++ bstrncpy(dcr->VolumeName, VolName, sizeof(dcr->VolumeName)); ++ dcr->VolCatInfo.Slot = slot; ++ dcr->VolCatInfo.InChanger = slot > 0; ++ if (autoload_device(dcr, 0, dir) < 0) { /* autoload if possible */ ++ return false; ++ } ++ ++ /* Ensure that the device is open -- autoload_device() closes it */ ++ for ( ; !(dev->state & ST_OPENED); ) { ++ if (open_dev(dev, dcr->VolumeName, OPEN_READ_WRITE) < 0) { ++ bnet_fsend(dir, _("3910 Unable to open device %s. ERR=%s\n"), ++ dev_name(dev), strerror_dev(dev)); ++ return false; ++ } ++ } ++ return true; ++} diff --git a/Branch-2.2/bacula/patches/1.36.0/1.36.0-cancel.patch b/Branch-2.2/bacula/patches/1.36.0/1.36.0-cancel.patch new file mode 100644 index 0000000000..2b5cbc7343 --- /dev/null +++ b/Branch-2.2/bacula/patches/1.36.0/1.36.0-cancel.patch @@ -0,0 +1,25 @@ + + This patch fixes a bug in the FD when running with /lib/tls pthreads. + Apply it to version 1.36.0 with: + + cd + patch -p0 <1.36.0-cancel.patch + make + make install + ... + +Index: src/lib/jcr.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/lib/jcr.c,v +retrieving revision 1.60 +diff -u -r1.60 jcr.c +--- src/lib/jcr.c 1 Sep 2004 19:44:29 -0000 1.60 ++++ src/lib/jcr.c 15 Nov 2004 11:32:46 -0000 +@@ -191,6 +191,7 @@ + Dmsg0(400, "Enter new_jcr\n"); + jcr = (JCR *)malloc(size); + memset(jcr, 0, size); ++ jcr->my_thread_id = pthread_self(); + jcr->msg_queue = New(dlist(item, &item->link)); + jcr->job_end_push.init(1, false); + jcr->sched_time = time(NULL); diff --git a/Branch-2.2/bacula/patches/1.36.0/1.36.0-jobdefs.patch b/Branch-2.2/bacula/patches/1.36.0/1.36.0-jobdefs.patch new file mode 100644 index 0000000000..0bb2f151e9 --- /dev/null +++ b/Branch-2.2/bacula/patches/1.36.0/1.36.0-jobdefs.patch @@ -0,0 +1,51 @@ + + This patch fixes JobDefs so that if a Storage resource is + specified in a Job, it is not overridden by the JobDefs. + Apply to 1.36.0 with: + + cd + patch -p0 <1.36.0-jobdefs.patch + make + make install + ... + + +Index: src/dird/backup.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/dird/backup.c,v +retrieving revision 1.73 +diff -u -r1.73 backup.c +--- src/dird/backup.c 11 Nov 2004 07:55:05 -0000 1.73 ++++ src/dird/backup.c 11 Nov 2004 17:21:19 -0000 +@@ -448,6 +448,7 @@ + Client: %s\n\ + FileSet: \"%s\" %s\n\ + Pool: \"%s\"\n\ ++Storage: \"%s\"\n\ + Start time: %s\n\ + End time: %s\n\ + FD Files Written: %s\n\ +@@ -472,6 +473,7 @@ + jcr->client->hdr.name, + jcr->fileset->hdr.name, fsr->cCreateTime, + jcr->pool->hdr.name, ++ jcr->store->hdr.name, + sdt, + edt, + edit_uint64_with_commas(jcr->jr.JobFiles, ec1), +Index: src/dird/dird.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/dird/dird.c,v +retrieving revision 1.70 +diff -u -r1.70 dird.c +--- src/dird/dird.c 22 Sep 2004 19:51:05 -0000 1.70 ++++ src/dird/dird.c 11 Nov 2004 17:21:19 -0000 +@@ -495,7 +495,7 @@ + /* Handle Storage alists specifically */ + JOB *jobdefs = job->jobdefs; + for (i=0; i < MAX_STORE; i++) { +- if (jobdefs->storage[i]) { ++ if (jobdefs->storage[i] && !job->storage[i]) { + STORE *st; + job->storage[i] = New(alist(10, not_owned_by_alist)); + foreach_alist(st, jobdefs->storage[i]) { diff --git a/Branch-2.2/bacula/patches/1.36.0/1.36.0-jobid-restore.patch b/Branch-2.2/bacula/patches/1.36.0/1.36.0-jobid-restore.patch new file mode 100644 index 0000000000..d4d7b60bef --- /dev/null +++ b/Branch-2.2/bacula/patches/1.36.0/1.36.0-jobid-restore.patch @@ -0,0 +1,65 @@ + + This patch fixes a restore to permit specifying both a JobId and + a filename or list of files to be restored. Apply to 1.36.0 with: + + cd + patch -p0 <1.36.0-jobid-restore.patch + make + make install + ... + +Index: src/dird/sql_cmds.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/dird/sql_cmds.c,v +retrieving revision 1.43 +diff -u -r1.43 sql_cmds.c +--- src/dird/sql_cmds.c 1 Sep 2004 19:44:28 -0000 1.43 ++++ src/dird/sql_cmds.c 10 Nov 2004 20:38:46 -0000 +@@ -340,4 +340,16 @@ + "AND Path.PathId=File.PathId " + "AND Filename.FilenameId=File.FilenameId " + "ORDER BY Job.StartTime DESC LIMIT 1"; +- ++ ++const char *uar_jobids_fileindex = ++ "SELECT Job.JobId, File.FileIndex FROM Job,File,Path,Filename,Client " ++ "WHERE Job.JobId IN (%s) " ++ "AND Job.JobId=File.JobId " ++ "AND Job.StartTime<'%s' " ++ "AND Path.Path='%s' " ++ "AND Filename.Name='%s' " ++ "AND Client.Name='%s' " ++ "AND Job.ClientId=Client.ClientId " ++ "AND Path.PathId=File.PathId " ++ "AND Filename.FilenameId=File.FilenameId " ++ "ORDER BY Job.StartTime DESC LIMIT 1"; +Index: src/dird/ua_restore.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/dird/ua_restore.c,v +retrieving revision 1.84 +diff -u -r1.84 ua_restore.c +--- src/dird/ua_restore.c 15 Oct 2004 17:09:04 -0000 1.84 ++++ src/dird/ua_restore.c 10 Nov 2004 20:38:46 -0000 +@@ -48,7 +48,7 @@ + extern char *uar_inc, *uar_list_temp, *uar_sel_jobid_temp; + extern char *uar_sel_all_temp1, *uar_sel_fileset, *uar_mediatype; + extern char *uar_jobid_fileindex, *uar_dif, *uar_sel_all_temp; +-extern char *uar_count_files; ++extern char *uar_count_files, *uar_jobids_fileindex; + + + struct NAME_LIST { +@@ -632,7 +632,12 @@ + { + strip_trailing_junk(file); + split_path_and_filename(rx, file); +- Mmsg(rx->query, uar_jobid_fileindex, date, rx->path, rx->fname, rx->ClientName); ++ if (*rx->JobIds == 0) { ++ Mmsg(rx->query, uar_jobid_fileindex, date, rx->path, rx->fname, rx->ClientName); ++ } else { ++ Mmsg(rx->query, uar_jobids_fileindex, rx->JobIds, date, ++ rx->path, rx->fname, rx->ClientName); ++ } + rx->found = false; + /* Find and insert jobid and File Index */ + if (!db_sql_query(ua->db, rx->query, jobid_fileindex_handler, (void *)rx)) { diff --git a/Branch-2.2/bacula/patches/1.36.0/1.36.0-list.patch b/Branch-2.2/bacula/patches/1.36.0/1.36.0-list.patch new file mode 100644 index 0000000000..3afd69a024 --- /dev/null +++ b/Branch-2.2/bacula/patches/1.36.0/1.36.0-list.patch @@ -0,0 +1,149 @@ + + This patch corrects a Bacula crash after a "list nextvol" followed + by "list media". + It can be applied to 1.36.0 with: + + cd + patch -p0 <1.36.0-list.patch + make + make install + + +Index: src/dird/ua_output.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/dird/ua_output.c,v +retrieving revision 1.47 +diff -u -r1.47 ua_output.c +--- src/dird/ua_output.c 19 Sep 2004 18:56:24 -0000 1.47 ++++ src/dird/ua_output.c 13 Nov 2004 10:26:08 -0000 +@@ -42,11 +42,11 @@ + extern FILE *con_fd; + extern brwlock_t con_lock; + +- + /* Imported functions */ + + /* Forward referenced functions */ + static int do_list_cmd(UAContext *ua, const char *cmd, e_list_type llist); ++static bool list_nextvol(UAContext *ua); + + /* + * Turn auto display of console messages on/off +@@ -401,58 +401,7 @@ + /* List next volume */ + } else if (strcasecmp(ua->argk[i], _("nextvol")) == 0 || + strcasecmp(ua->argk[i], _("nextvolume")) == 0) { +- JOB *job; +- JCR *jcr = ua->jcr; +- POOL *pool; +- RUN *run; +- time_t runtime; +- bool found = false; +- +- i = find_arg_with_value(ua, "job"); +- if (i <= 0) { +- if ((job = select_job_resource(ua)) == NULL) { +- return 1; +- } +- } else { +- job = (JOB *)GetResWithName(R_JOB, ua->argv[i]); +- if (!job) { +- Jmsg(jcr, M_ERROR, 0, _("%s is not a job name.\n"), ua->argv[i]); +- if ((job = select_job_resource(ua)) == NULL) { +- return 1; +- } +- } +- } +- for (run=NULL; (run = find_next_run(run, job, runtime)); ) { +- pool = run ? run->pool : NULL; +- if (!complete_jcr_for_job(jcr, job, pool)) { +- return 1; +- } +- +- if (!find_next_volume_for_append(jcr, &mr, 0)) { +- bsendmsg(ua, _("Could not find next Volume.\n")); +- if (jcr->db) { +- db_close_database(jcr, jcr->db); +- jcr->db = NULL; +- } +- return 1; +- } else { +- bsendmsg(ua, _("The next Volume to be used by Job \"%s\" will be %s\n"), +- job->hdr.name, mr.VolumeName); +- found = true; +- } +- if (jcr->db) { +- db_close_database(jcr, jcr->db); +- jcr->db = NULL; +- } +- } +- if (jcr->db) { +- db_close_database(jcr, jcr->db); +- jcr->db = NULL; +- } +- if (!found) { +- bsendmsg(ua, _("Could not find next Volume.\n")); +- } +- return 1; ++ list_nextvol(ua); + } else { + bsendmsg(ua, _("Unknown list keyword: %s\n"), NPRT(ua->argk[i])); + } +@@ -460,6 +409,57 @@ + return 1; + } + ++static bool list_nextvol(UAContext *ua) ++{ ++ JOB *job; ++ JCR *jcr = ua->jcr; ++ POOL *pool; ++ RUN *run; ++ time_t runtime; ++ bool found = false; ++ MEDIA_DBR mr; ++ ++ memset(&mr, 0, sizeof(mr)); ++ int i = find_arg_with_value(ua, "job"); ++ if (i <= 0) { ++ if ((job = select_job_resource(ua)) == NULL) { ++ return false; ++ } ++ } else { ++ job = (JOB *)GetResWithName(R_JOB, ua->argv[i]); ++ if (!job) { ++ Jmsg(jcr, M_ERROR, 0, _("%s is not a job name.\n"), ua->argv[i]); ++ if ((job = select_job_resource(ua)) == NULL) { ++ return false; ++ } ++ } ++ } ++ for (run=NULL; (run = find_next_run(run, job, runtime)); ) { ++ pool = run ? run->pool : NULL; ++ if (!complete_jcr_for_job(jcr, job, pool)) { ++ return false; ++ } ++ ++ if (!find_next_volume_for_append(jcr, &mr, 0)) { ++ bsendmsg(ua, _("Could not find next Volume.\n")); ++ } else { ++ bsendmsg(ua, _("The next Volume to be used by Job \"%s\" will be %s\n"), ++ job->hdr.name, mr.VolumeName); ++ found = true; ++ } ++ if (jcr->db && jcr->db != ua->db) { ++ db_close_database(jcr, jcr->db); ++ jcr->db = NULL; ++ } ++ } ++ if (!found) { ++ bsendmsg(ua, _("Could not find next Volume.\n")); ++ return false; ++ } ++ return true; ++} ++ ++ + /* + * For a given job, we examine all his run records + * to see if it is scheduled today or tomorrow. diff --git a/Branch-2.2/bacula/patches/1.36.0/1.36.0-sd-block.patch b/Branch-2.2/bacula/patches/1.36.0/1.36.0-sd-block.patch new file mode 100644 index 0000000000..c6a6757806 --- /dev/null +++ b/Branch-2.2/bacula/patches/1.36.0/1.36.0-sd-block.patch @@ -0,0 +1,30 @@ + + This patch will keep the SD from blocking simultaneous Jobs during + a tape mount. + + Apply it to 1.36.0 with: + + cd + patch -p0 <1.36.0-sd-block.patch + make + ... + +Index: src/stored/acquire.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/stored/acquire.c,v +retrieving revision 1.74 +diff -u -r1.74 acquire.c +--- src/stored/acquire.c 16 Oct 2004 11:51:32 -0000 1.74 ++++ src/stored/acquire.c 25 Oct 2004 16:12:46 -0000 +@@ -339,7 +339,10 @@ + + if (do_mount || recycle) { + Dmsg0(190, "Do mount_next_write_vol\n"); +- if (!mount_next_write_volume(dcr, release)) { ++ V(mutex); /* don't lock everything during mount */ ++ bool mounted = mount_next_write_volume(dcr, release); ++ P(mutex); /* re-lock */ ++ if (!mounted) { + if (!job_canceled(jcr)) { + /* Reduce "noise" -- don't print if job canceled */ + Jmsg(jcr, M_FATAL, 0, _("Could not ready device \"%s\" for append.\n"), diff --git a/Branch-2.2/bacula/patches/1.36.0/1.36.0-tree.patch b/Branch-2.2/bacula/patches/1.36.0/1.36.0-tree.patch new file mode 100644 index 0000000000..070cfcef36 --- /dev/null +++ b/Branch-2.2/bacula/patches/1.36.0/1.36.0-tree.patch @@ -0,0 +1,25 @@ + + This patch fixes (hopefully) a segment fault in restore when an + empty path is found for a file. + Apply it to 1.36.0 with: + + cd + patch -p0 <1.36.0-tree.patch + make + make install + +Index: src/lib/tree.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/lib/tree.c,v +retrieving revision 1.18 +diff -u -r1.18 tree.c +--- src/lib/tree.c 16 Jul 2004 07:23:40 -0000 1.18 ++++ src/lib/tree.c 21 Nov 2004 16:03:53 -0000 +@@ -87,6 +87,7 @@ + } + Dmsg2(400, "count=%d size=%d\n", count, size); + malloc_buf(root, size); ++ root->cached_path_len = -1; + root->cached_path = get_pool_memory(PM_FNAME); + root->type = TN_ROOT; + root->fname = ""; diff --git a/Branch-2.2/bacula/patches/1.36.0/1.36.0-verify-2.patch b/Branch-2.2/bacula/patches/1.36.0/1.36.0-verify-2.patch new file mode 100644 index 0000000000..6c5d342326 --- /dev/null +++ b/Branch-2.2/bacula/patches/1.36.0/1.36.0-verify-2.patch @@ -0,0 +1,47 @@ + + This patch fixes the calculation for the total number of files + to be restored or verified by not double counting files that are + split across a tape file or across tapes. + + To apply this patch, you must first have applied 1.36.0-verify.patch. + + Apply it with: + + cd + patch -p0 <1.36.0-verify-2.patch + make + make install + ... + +Index: src/dird/bsr.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/dird/bsr.c,v +retrieving revision 1.16 +diff -u -r1.16 bsr.c +--- src/dird/bsr.c 29 Oct 2004 22:11:43 -0000 1.16 ++++ src/dird/bsr.c 4 Nov 2004 10:37:37 -0000 +@@ -238,6 +238,8 @@ + { + uint32_t count = 0; + uint32_t total_count = 0; ++ uint32_t LastIndex = 0; ++ bool first = true; + if (bsr) { + /* + * For a given volume, loop over all the JobMedia records. +@@ -273,6 +275,15 @@ + fprintf(fd, "Count=%u\n", count); + } + total_count += count; ++ /* If the same file is present on two tapes or in two files ++ * on a tape, it is a continuation, and should not be treated ++ * twice in the totals. ++ */ ++ if (!first && LastIndex == bsr->VolParams[i].FirstIndex) { ++ total_count--; ++ } ++ first = false; ++ LastIndex = bsr->VolParams[i].LastIndex; + } + write_bsr(ua, bsr->next, fd); + } diff --git a/Branch-2.2/bacula/patches/1.36.0/1.36.0-verify.patch b/Branch-2.2/bacula/patches/1.36.0/1.36.0-verify.patch new file mode 100644 index 0000000000..4a4c5442db --- /dev/null +++ b/Branch-2.2/bacula/patches/1.36.0/1.36.0-verify.patch @@ -0,0 +1,159 @@ + + This patch fixes, at least partially, a Verify error where + the count of files expected did not agree with the count + found. There are still some cases where the expected count + exceeds the found probably due to the same directory being + examined multiple times. + + Apply the patch to 1.36.0 with: + + cd + patch -p0 <1.36.0-verify.patch + make + make install + + +Index: src/dird/bsr.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/dird/bsr.c,v +retrieving revision 1.15 +diff -u -r1.15 bsr.c +--- src/dird/bsr.c 24 Sep 2004 15:53:00 -0000 1.15 ++++ src/dird/bsr.c 29 Oct 2004 22:05:24 -0000 +@@ -34,7 +34,7 @@ + #include "dird.h" + + /* Forward referenced functions */ +-static int write_bsr(UAContext *ua, RBSR *bsr, FILE *fd); ++static uint32_t write_bsr(UAContext *ua, RBSR *bsr, FILE *fd); + void print_bsr(UAContext *ua, RBSR *bsr); + + +@@ -178,11 +178,11 @@ + /* + * Write the bootstrap records to file + */ +-int write_bsr_file(UAContext *ua, RBSR *bsr) ++uint32_t write_bsr_file(UAContext *ua, RBSR *bsr) + { + FILE *fd; + POOLMEM *fname = get_pool_memory(PM_MESSAGE); +- int count = 0;; ++ uint32_t count = 0;; + bool err; + + Mmsg(fname, "%s/restore.bsr", working_directory); +@@ -234,9 +234,10 @@ + return count; + } + +-static int write_bsr(UAContext *ua, RBSR *bsr, FILE *fd) ++static uint32_t write_bsr(UAContext *ua, RBSR *bsr, FILE *fd) + { + uint32_t count = 0; ++ uint32_t total_count = 0; + if (bsr) { + /* + * For a given volume, loop over all the JobMedia records. +@@ -271,10 +272,11 @@ + if (count) { + fprintf(fd, "Count=%u\n", count); + } ++ total_count += count; + } + write_bsr(ua, bsr->next, fd); + } +- return count; ++ return total_count; + } + + void print_bsr(UAContext *ua, RBSR *bsr) +Index: src/dird/protos.h +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/dird/protos.h,v +retrieving revision 1.54 +diff -u -r1.54 protos.h +--- src/dird/protos.h 24 Sep 2004 12:30:14 -0000 1.54 ++++ src/dird/protos.h 29 Oct 2004 22:05:24 -0000 +@@ -44,7 +44,7 @@ + RBSR *new_bsr(); + void free_bsr(RBSR *bsr); + int complete_bsr(UAContext *ua, RBSR *bsr); +-int write_bsr_file(UAContext *ua, RBSR *bsr); ++uint32_t write_bsr_file(UAContext *ua, RBSR *bsr); + void add_findex(RBSR *bsr, uint32_t JobId, int32_t findex); + RBSR_FINDEX *new_findex(); + +@@ -62,7 +62,7 @@ + + /* fd_cmds.c */ + extern int connect_to_file_daemon(JCR *jcr, int retry_interval, +- int max_retry_time, int verbose); ++ int max_retry_time, int verbose); + extern int send_include_list(JCR *jcr); + extern int send_exclude_list(JCR *jcr); + extern int send_bootstrap_file(JCR *jcr); +@@ -70,7 +70,7 @@ + extern int get_attributes_and_put_in_catalog(JCR *jcr); + extern int get_attributes_and_compare_to_catalog(JCR *jcr, JobId_t JobId); + extern int put_file_into_catalog(JCR *jcr, long file_index, char *fname, +- char *link, char *attr, int stream); ++ char *link, char *attr, int stream); + extern void get_level_since_time(JCR *jcr, char *since, int since_len); + extern int send_run_before_and_after_commands(JCR *jcr); + +@@ -97,7 +97,7 @@ + + /* msgchan.c */ + extern bool connect_to_storage_daemon(JCR *jcr, int retry_interval, +- int max_retry_time, int verbose); ++ int max_retry_time, int verbose); + extern int start_storage_daemon_job(JCR *jcr); + extern int start_storage_daemon_message_thread(JCR *jcr); + extern int bget_dirmsg(BSOCK *bs); +@@ -149,28 +149,28 @@ + void free_ua_context(UAContext *ua); + + /* ua_select.c */ +-STORE *select_storage_resource(UAContext *ua); +-JOB *select_job_resource(UAContext *ua); +-JOB *select_restore_job_resource(UAContext *ua); +-CLIENT *select_client_resource(UAContext *ua); ++STORE *select_storage_resource(UAContext *ua); ++JOB *select_job_resource(UAContext *ua); ++JOB *select_restore_job_resource(UAContext *ua); ++CLIENT *select_client_resource(UAContext *ua); + FILESET *select_fileset_resource(UAContext *ua); +-int select_pool_and_media_dbr(UAContext *ua, POOL_DBR *pr, MEDIA_DBR *mr); +-int select_media_dbr(UAContext *ua, MEDIA_DBR *mr); +-bool select_pool_dbr(UAContext *ua, POOL_DBR *pr); +-int select_client_dbr(UAContext *ua, CLIENT_DBR *cr); +- +-void start_prompt(UAContext *ua, const char *msg); +-void add_prompt(UAContext *ua, const char *prompt); +-int do_prompt(UAContext *ua, const char *automsg, const char *msg, char *prompt, int max_prompt); +-CAT *get_catalog_resource(UAContext *ua); ++int select_pool_and_media_dbr(UAContext *ua, POOL_DBR *pr, MEDIA_DBR *mr); ++int select_media_dbr(UAContext *ua, MEDIA_DBR *mr); ++bool select_pool_dbr(UAContext *ua, POOL_DBR *pr); ++int select_client_dbr(UAContext *ua, CLIENT_DBR *cr); ++ ++void start_prompt(UAContext *ua, const char *msg); ++void add_prompt(UAContext *ua, const char *prompt); ++int do_prompt(UAContext *ua, const char *automsg, const char *msg, char *prompt, int max_prompt); ++CAT *get_catalog_resource(UAContext *ua); + STORE *get_storage_resource(UAContext *ua, int use_default); +-int get_media_type(UAContext *ua, char *MediaType, int max_media); +-bool get_pool_dbr(UAContext *ua, POOL_DBR *pr); +-int get_client_dbr(UAContext *ua, CLIENT_DBR *cr); ++int get_media_type(UAContext *ua, char *MediaType, int max_media); ++bool get_pool_dbr(UAContext *ua, POOL_DBR *pr); ++int get_client_dbr(UAContext *ua, CLIENT_DBR *cr); + POOL *get_pool_resource(UAContext *ua); + POOL *select_pool_resource(UAContext *ua); + CLIENT *get_client_resource(UAContext *ua); +-int get_job_dbr(UAContext *ua, JOB_DBR *jr); ++int get_job_dbr(UAContext *ua, JOB_DBR *jr); + + int find_arg_keyword(UAContext *ua, const char **list); + int find_arg(UAContext *ua, const char *keyword); diff --git a/Branch-2.2/bacula/patches/1.36.0/patches-1.36.0 b/Branch-2.2/bacula/patches/1.36.0/patches-1.36.0 new file mode 100644 index 0000000000..c1f190b0b3 --- /dev/null +++ b/Branch-2.2/bacula/patches/1.36.0/patches-1.36.0 @@ -0,0 +1,47 @@ + +25Oct04 1.36.0-sd-block.patch + This patch will keep the SD from blocking simultaneous Jobs during + a tape mount. + +30Oct04 1.36.0-verify.patch + This patch fixes, at least partially, a Verify error where + the count of files expected did not agree with the count + found. There are still some cases where the expected count + exceeds the found probably due to the same directory being + examined multiple times. + +04Nov04 1.36.0-verify-2.patch + This patch fixes the calculation for the total number of files + to be restored or verified by not double counting files that are + split across a tape file or across tapes. + To apply this patch, you must first have applied 1.36.0-verify.patch. + +10Nov04 1.36.0-jobid-restore.patch + This patch fixes a restore to permit specifying both a JobId and + a filename or list of files to be restored. Apply to 1.36.0 with: + +11Nov04 1.36.0-jobdefs.patch + This patch fixes JobDefs so that if a Storage resource is + specified in a Job, it is not overridden by the JobDefs. + +13Nov04 1.36.0-list.patch + This patch corrects a Bacula crash after a "list nextvol" followed + by "list media". + +21Nov04 1.36.0-tree.patch + This patch fixes (hopefully) a segment fault in restore when an + empty path is found for a file. + +21Nov04 1.36.0-autochanger.patch + This patch should fix a problem where the autochanger thinks + a Volume is in the current magazine and loops a few times then + gives up. + +24Nov04 1.36.0-autochanger2.patch + This patch fixes an autochanger problem where Bacula was trying + to access a Volume that was not in the autochanger. You *must* + also apply patch 1.36.0-autochanger.patch for this patch to work + correctly. This patch will probably also correct some problems + introduced with version 1.36 (dcrs) that make update slots + fail. + diff --git a/Branch-2.2/bacula/patches/1.36.1/1.36.1-acl.patch b/Branch-2.2/bacula/patches/1.36.1/1.36.1-acl.patch new file mode 100644 index 0000000000..3c0b907fc0 --- /dev/null +++ b/Branch-2.2/bacula/patches/1.36.1/1.36.1-acl.patch @@ -0,0 +1,70 @@ + + This patch fixes some typos with ACL checking that results + in the incorrect name being used for the check. + This could lead to security problems with unwanted + access by restricted consoles. + Apply the patch to 1.36.1 with: + + cd + patch -p0 <1.36.1-acl.patch + make + ... + + + +Index: src/dird/ua_run.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/dird/ua_run.c,v +retrieving revision 1.58 +diff -u -r1.58 ua_run.c +--- src/dird/ua_run.c 8 Nov 2004 21:12:12 -0000 1.58 ++++ src/dird/ua_run.c 30 Jan 2005 16:41:09 -0000 +@@ -325,12 +330,13 @@ + pool = job->pool; /* use default */ + } + if (!pool) { +- return 1; +- } else if (!acl_access_ok(ua, Pool_ACL, store->hdr.name)) { ++ return 0; ++ } else if (!acl_access_ok(ua, Pool_ACL, pool->hdr.name)) { + bsendmsg(ua, _("No authorization. Pool \"%s\".\n"), + pool->hdr.name); +- return 1; ++ return 0; + } ++ Dmsg1(200, "Using pool\n", pool->hdr.name); + + if (client_name) { + client = (CLIENT *)GetResWithName(R_CLIENT, client_name); +@@ -344,12 +350,13 @@ + client = job->client; /* use default */ + } + if (!client) { +- return 1; +- } else if (!acl_access_ok(ua, Client_ACL, store->hdr.name)) { ++ return 0; ++ } else if (!acl_access_ok(ua, Client_ACL, client->hdr.name)) { + bsendmsg(ua, _("No authorization. Client \"%s\".\n"), + client->hdr.name); +- return 1; ++ return 0; + } ++ Dmsg1(200, "Using client=%s\n", client->hdr.name); + + if (fileset_name) { + fileset = (FILESET *)GetResWithName(R_FILESET, fileset_name); +@@ -361,11 +368,11 @@ + fileset = job->fileset; /* use default */ + } + if (!fileset) { +- return 1; +- } else if (!acl_access_ok(ua, FileSet_ACL, store->hdr.name)) { ++ return 0; ++ } else if (!acl_access_ok(ua, FileSet_ACL, fileset->hdr.name)) { + bsendmsg(ua, _("No authorization. FileSet \"%s\".\n"), + fileset->hdr.name); +- return 1; ++ return 0; + } + + if (verify_job_name) { diff --git a/Branch-2.2/bacula/patches/1.36.1/1.36.1-fileset.patch b/Branch-2.2/bacula/patches/1.36.1/1.36.1-fileset.patch new file mode 100644 index 0000000000..99104c13ee --- /dev/null +++ b/Branch-2.2/bacula/patches/1.36.1/1.36.1-fileset.patch @@ -0,0 +1,160 @@ + + This patch should correct a seg fault in the FD that occurs + at the end of a job when the job uses old style include/excludes. + Apply the patch to version 1.36.1 with: + + cd + patch -p0 <1.36.1-fileset.patch + make + make install + ... + +Index: src/findlib/match.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/findlib/match.c,v +retrieving revision 1.21 +diff -u -r1.21 match.c +--- src/findlib/match.c 21 Dec 2004 16:18:37 -0000 1.21 ++++ src/findlib/match.c 24 Dec 2004 10:17:29 -0000 +@@ -10,7 +10,7 @@ + * + */ + /* +- Copyright (C) 2001-2004 Kern Sibbald and John Walker ++ Copyright (C) 2001-2004 Kern Sibbald + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as +@@ -74,19 +74,21 @@ + free(inc); + inc = next_inc; + } ++ ff->included_files_list = NULL; + + for (exc=ff->excluded_files_list; exc; ) { + next_exc = exc->next; + free(exc); + exc = next_exc; + } ++ ff->excluded_files_list = NULL; + + for (exc=ff->excluded_paths_list; exc; ) { + next_exc = exc->next; + free(exc); + exc = next_exc; + } +- ++ ff->excluded_paths_list = NULL; + } + + /* +@@ -111,42 +113,42 @@ + if (prefixed) { + for (rp=fname; *rp && *rp != ' '; rp++) { + switch (*rp) { +- case 'a': /* alway replace */ +- case '0': /* no option */ ++ case 'a': /* alway replace */ ++ case '0': /* no option */ + break; +- case 'f': ++ case 'f': + inc->options |= FO_MULTIFS; + break; +- case 'h': /* no recursion */ ++ case 'h': /* no recursion */ + inc->options |= FO_NO_RECURSION; + break; +- case 'M': /* MD5 */ ++ case 'M': /* MD5 */ + inc->options |= FO_MD5; + break; +- case 'n': ++ case 'n': + inc->options |= FO_NOREPLACE; + break; +- case 'p': /* use portable data format */ ++ case 'p': /* use portable data format */ + inc->options |= FO_PORTABLE; + break; +- case 'r': /* read fifo */ ++ case 'r': /* read fifo */ + inc->options |= FO_READFIFO; + break; +- case 'S': ++ case 'S': + inc->options |= FO_SHA1; + break; +- case 's': ++ case 's': + inc->options |= FO_SPARSE; + break; +- case 'm': ++ case 'm': + inc->options |= FO_MTIMEONLY; + break; +- case 'k': ++ case 'k': + inc->options |= FO_KEEPATIME; + break; +- case 'V': /* verify options */ ++ case 'V': /* verify options */ + /* Copy Verify Options */ +- for (j=0; *rp && *rp != ':'; rp++) { ++ for (j=0; *rp && *rp != ':'; rp++) { + inc->VerifyOpts[j] = *rp; + if (j < (int)sizeof(inc->VerifyOpts) - 1) { + j++; +@@ -154,19 +156,19 @@ + } + inc->VerifyOpts[j] = 0; + break; +- case 'w': ++ case 'w': + inc->options |= FO_IF_NEWER; + break; +- case 'A': ++ case 'A': + inc->options |= FO_ACL; + break; +- case 'Z': /* gzip compression */ ++ case 'Z': /* gzip compression */ + inc->options |= FO_GZIP; +- inc->level = *++rp - '0'; +- Dmsg1(200, "Compression level=%d\n", inc->level); ++ inc->level = *++rp - '0'; ++ Dmsg1(200, "Compression level=%d\n", inc->level); + break; + default: +- Emsg1(M_ERROR, 0, "Unknown include/exclude option: %c\n", *rp); ++ Emsg1(M_ERROR, 0, "Unknown include/exclude option: %c\n", *rp); + break; + } + } +@@ -199,7 +201,7 @@ + /* Convert any \'s into /'s */ + for (p=inc->fname; *p; p++) { + if (*p == '\\') { +- *p = '/'; ++ *p = '/'; + } + } + #endif +@@ -249,7 +251,7 @@ + /* Convert any \'s into /'s */ + for (char *p=exc->fname; *p; p++) { + if (*p == '\\') { +- *p = '/'; ++ *p = '/'; + } + } + #endif +@@ -329,7 +331,7 @@ + } + for ( ; exc; exc=exc->next ) { + if (fnmatch(exc->fname, file, fnmode|FNM_PATHNAME) == 0) { +- Dmsg2(900, "Match exc pat=%s: file=%s:\n", exc->fname, file); ++ Dmsg2(900, "Match exc pat=%s: file=%s:\n", exc->fname, file); + return 1; + } + Dmsg2(900, "No match exc pat=%s: file=%s:\n", exc->fname, file); diff --git a/Branch-2.2/bacula/patches/1.36.1/1.36.1-pool.patch b/Branch-2.2/bacula/patches/1.36.1/1.36.1-pool.patch new file mode 100644 index 0000000000..bbe1a00c4d --- /dev/null +++ b/Branch-2.2/bacula/patches/1.36.1/1.36.1-pool.patch @@ -0,0 +1,152 @@ + + This patch should hold jobs in the Director's start queue if + more than one simultaneous backup job wants to use the same + Storage device with two different Pools (i.e. 2 Volumes). + Apply the patch to version 1.36.1 with: + + cd + patch -p0 <1.36.1-pool.patch + make + make install + ... + +Index: src/dird/jobq.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/dird/jobq.c,v +retrieving revision 1.25 +retrieving revision 1.26 +diff -u -r1.25 -r1.26 +--- src/dird/jobq.c 24 Sep 2004 12:30:14 -0000 1.25 ++++ src/dird/jobq.c 3 Dec 2004 21:00:18 -0000 1.26 +@@ -10,7 +10,7 @@ + * + * Kern Sibbald, July MMIII + * +- * Version $Id$ ++ * Version $Id$ + * + * This code was adapted from the Bacula workq, which was + * adapted from "Programming with POSIX Threads", by +@@ -40,6 +40,7 @@ + #include "bacula.h" + #include "dird.h" + ++extern JCR *jobs; + + /* Forward referenced functions */ + extern "C" void *jobq_server(void *arg); +@@ -47,6 +48,8 @@ + + static int start_server(jobq_t *jq); + ++ ++ + /* + * Initialize a job queue + * +@@ -544,6 +547,7 @@ + for ( ; je; ) { + /* je is current job item on the queue, jn is the next one */ + JCR *jcr = je->jcr; ++ bool skip_this_jcr = false; + jobq_item_t *jn = (jobq_item_t *)jq->waiting_jobs->next(je); + Dmsg3(300, "Examining Job=%d JobPri=%d want Pri=%d\n", + jcr->JobId, jcr->JobPriority, Priority); +@@ -560,14 +564,40 @@ + jcr->store->MaxConcurrentJobs = 1; + } else { + set_jcr_job_status(jcr, JS_WaitStoreRes); +- je = jn; ++ je = jn; /* point to next waiting job */ + continue; + } ++ /* We are not doing a Restore or Verify */ ++ } else if (jcr->store->NumConcurrentJobs == 0 && ++ jcr->store->NumConcurrentJobs < jcr->store->MaxConcurrentJobs) { ++ /* Simple case, first job */ ++ jcr->store->NumConcurrentJobs = 1; + } else if (jcr->store->NumConcurrentJobs < jcr->store->MaxConcurrentJobs) { +- jcr->store->NumConcurrentJobs++; +- } else { ++ /* ++ * At this point, we already have at least one Job running ++ * for this Storage daemon, so we must ensure that there ++ * is no Volume conflict. In general, it should be OK, if ++ * all Jobs pull from the same Pool, so we check the Pools. ++ */ ++ JCR *njcr; ++ lock_jcr_chain(); ++ for (njcr=jobs; njcr; njcr=njcr->next) { ++ if (njcr->JobId == 0 || njcr == jcr) { ++ continue; ++ } ++ if (njcr->pool != jcr->pool) { ++ skip_this_jcr = true; ++ break; ++ } ++ } ++ unlock_jcr_chain(); ++ if (!skip_this_jcr) { ++ jcr->store->NumConcurrentJobs++; ++ } ++ } ++ if (skip_this_jcr) { + set_jcr_job_status(jcr, JS_WaitStoreRes); +- je = jn; ++ je = jn; /* point to next waiting job */ + continue; + } + +@@ -580,7 +610,7 @@ + jcr->store->MaxConcurrentJobs = jcr->saveMaxConcurrentJobs; + } + set_jcr_job_status(jcr, JS_WaitClientRes); +- je = jn; ++ je = jn; /* point to next waiting job */ + continue; + } + if (jcr->job->NumConcurrentJobs < jcr->job->MaxConcurrentJobs) { +@@ -593,7 +623,7 @@ + } + jcr->client->NumConcurrentJobs--; + set_jcr_job_status(jcr, JS_WaitJobRes); +- je = jn; ++ je = jn; /* Point to next waiting job */ + continue; + } + /* Got all locks, now remove it from wait queue and append it +@@ -603,7 +633,7 @@ + jq->waiting_jobs->remove(je); + jq->ready_jobs->append(je); + Dmsg1(300, "moved JobId=%d from wait to ready queue\n", je->jcr->JobId); +- je = jn; ++ je = jn; /* Point to next waiting job */ + } /* end for loop */ + break; + } /* end while loop */ +Index: src/lib/jcr.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/lib/jcr.c,v +retrieving revision 1.61 +retrieving revision 1.62 +diff -u -r1.61 -r1.62 +--- src/lib/jcr.c 15 Nov 2004 22:43:33 -0000 1.61 ++++ src/lib/jcr.c 3 Dec 2004 21:00:19 -0000 1.62 +@@ -3,7 +3,7 @@ + * + * Kern E. Sibbald, December 2000 + * +- * Version $Id$ ++ * Version $Id$ + * + * These routines are thread safe. + * +@@ -43,7 +43,7 @@ + dlist *last_jobs = NULL; + const int max_last_jobs = 10; + +-static JCR *jobs = NULL; /* pointer to JCR chain */ ++JCR *jobs = NULL; /* pointer to JCR chain */ + static brwlock_t lock; /* lock for last jobs and JCR chain */ + + void init_last_jobs_list() diff --git a/Branch-2.2/bacula/patches/1.36.1/1.36.1-reload.patch b/Branch-2.2/bacula/patches/1.36.1/1.36.1-reload.patch new file mode 100644 index 0000000000..022ee33b59 --- /dev/null +++ b/Branch-2.2/bacula/patches/1.36.1/1.36.1-reload.patch @@ -0,0 +1,50 @@ + This patch fixes Bacula so that it does not exit if there + is a syntax error in its conf file during a reload command. + Apply the patch to 1.36.1 with: + + cd + patch -p0 <1.36.1-reload.patch + make + make install + +--- ../branch-1.36.1/src/dird/dird.c 2004-11-11 18:30:32.000000000 +0100 ++++ src/dird/dird.c 2004-12-21 18:15:10.625754501 +0100 +@@ -372,6 +375,7 @@ + JCR *jcr; + int njobs = 0; /* number of running jobs */ + int table, rtable; ++ bool ok; + + if (already_here) { + abort(); /* Oops, recursion -> die */ +@@ -396,16 +400,17 @@ + reload_table[table].res_table = save_config_resources(); + Dmsg1(100, "Saved old config in table %d\n", table); + +- parse_config(configfile); ++ ok = parse_config(configfile, 0); /* no exit on error */ + + Dmsg0(100, "Reloaded config file\n"); +- if (!check_resources()) { ++ if (!ok || !check_resources()) { + rtable = find_free_reload_table_entry(); /* save new, bad table */ + if (rtable < 0) { + Jmsg(NULL, M_ERROR, 0, _("Please correct configuration file: %s\n"), configfile); + Jmsg(NULL, M_ERROR_TERM, 0, _("Out of reload table entries. Giving up.\n")); + } else { + Jmsg(NULL, M_ERROR, 0, _("Please correct configuration file: %s\n"), configfile); ++ Jmsg(NULL, M_ERROR, 0, _("Resetting previous configuration.\n")); + } + reload_table[rtable].res_table = save_config_resources(); + /* Now restore old resoure values */ +@@ -465,8 +470,8 @@ + job = (JOB *)GetNextRes(R_JOB, NULL); + director = (DIRRES *)GetNextRes(R_DIRECTOR, NULL); + if (!director) { +- Jmsg(NULL, M_FATAL, 0, _("No Director resource defined in %s\n\ +-Without that I don't know who I am :-(\n"), configfile); ++ Jmsg(NULL, M_FATAL, 0, _("No Director resource defined in %s\n" ++"Without that I don't know who I am :-(\n"), configfile); + OK = false; + } else { + set_working_directory(director->working_directory); diff --git a/Branch-2.2/bacula/patches/1.36.1/1.36.1-slots.patch b/Branch-2.2/bacula/patches/1.36.1/1.36.1-slots.patch new file mode 100644 index 0000000000..7042082787 --- /dev/null +++ b/Branch-2.2/bacula/patches/1.36.1/1.36.1-slots.patch @@ -0,0 +1,28 @@ + + This patch should fix "update slots" with two different magazines + in different pools by checking the pool when zapping the InChanger. + Apply to 1.36.1 with: + + cd + patch -p0 <1.36.1-slots.patch + make + make install + + +Index: src/cats/sql_update.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/cats/sql_update.c,v +retrieving revision 1.52 +diff -u -r1.52 sql_update.c +--- src/cats/sql_update.c 17 Nov 2004 22:48:21 -0000 1.52 ++++ src/cats/sql_update.c 3 Dec 2004 21:11:09 -0000 +@@ -389,7 +389,8 @@ + { + if (mr->InChanger != 0 && mr->Slot != 0) { + Mmsg(mdb->cmd, "UPDATE Media SET InChanger=0 WHERE " +- "Slot=%d AND MediaId!=%u", mr->Slot, mr->MediaId); ++ "Slot=%d AND PoolId=%u AND MediaId!=%u", ++ mr->Slot, mr->PoolId, mr->MediaId); + Dmsg1(400, "%s\n", mdb->cmd); + UPDATE_DB(jcr, mdb, mdb->cmd); + } diff --git a/Branch-2.2/bacula/patches/1.36.1/1.36.1-spool.patch b/Branch-2.2/bacula/patches/1.36.1/1.36.1-spool.patch new file mode 100644 index 0000000000..899d7552b9 --- /dev/null +++ b/Branch-2.2/bacula/patches/1.36.1/1.36.1-spool.patch @@ -0,0 +1,28 @@ + + This patch fixes the despooling size printed in the Job + report. Previously, it reported the total size for the + device. This patch makes it report the size for the job. + Apply the patch to 1.36.1 with: + + cd + patch -p0 <1.36.1-spool.patch + make + make install + ... + +Index: src/stored/spool.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/stored/spool.c,v +retrieving revision 1.22 +diff -u -r1.22 spool.c +--- src/stored/spool.c 16 Oct 2004 11:51:32 -0000 1.22 ++++ src/stored/spool.c 18 Dec 2004 20:39:02 -0000 +@@ -201,7 +201,7 @@ + Dmsg0(100, "Despooling data\n"); + Jmsg(jcr, M_INFO, 0, _("%s spooled data to Volume. Despooling %s bytes ...\n"), + commit?"Committing":"Writing", +- edit_uint64_with_commas(jcr->dcr->dev->spool_size, ec1)); ++ edit_uint64_with_commas(jcr->dcr->spool_size, ec1)); + dcr->spooling = false; + lock_device(dcr->dev); + dcr->dev_locked = true; diff --git a/Branch-2.2/bacula/patches/1.36.1/1.36.1-store.patch b/Branch-2.2/bacula/patches/1.36.1/1.36.1-store.patch new file mode 100644 index 0000000000..8b0a926a16 --- /dev/null +++ b/Branch-2.2/bacula/patches/1.36.1/1.36.1-store.patch @@ -0,0 +1,802 @@ + This patch fixes a problem with overriding storage daemon + specifications. Previously they were not always honored. + This implements more uniform handling. It also eliminates + an orphaned buffer situation using JobDefs. + Apply to version 1.36.1 with: + + cd + patch -p0 <1.36.1-store.patch + make + make install + ... + +Index: src/dird/job.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/dird/job.c,v +retrieving revision 1.92 +diff -u -r1.92 job.c +--- src/dird/job.c 21 Nov 2004 13:10:15 -0000 1.92 ++++ src/dird/job.c 21 Dec 2004 13:04:08 -0000 +@@ -4,10 +4,10 @@ + * + * Kern Sibbald, October MM + * +- * Version $Id$ ++ * Version $Id$ + */ + /* +- Copyright (C) 2000-2004 Kern Sibbald and John Walker ++ Copyright (C) 2000-2004 Kern Sibbald + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as +@@ -344,7 +344,7 @@ + if (!ua->jcr->storage[0]) { + copy_storage(ua->jcr, jcr); + } else { +- ua->jcr->store = jcr->store; ++ set_storage(ua->jcr, jcr->store); + } + if (!connect_to_storage_daemon(ua->jcr, 10, SDConnectTimeout, 1)) { + bsendmsg(ua, _("Failed to connect to Storage daemon.\n")); +@@ -724,6 +724,12 @@ + if (jcr->term_wait_inited) { + pthread_cond_destroy(&jcr->term_wait); + } ++ /* Delete lists setup to hold storage pointers */ ++ for (int i=0; istorage[i]) { ++ delete jcr->storage[i]; ++ } ++ } + jcr->job_end_push.destroy(); + Dmsg0(200, "End dird free_jcr\n"); + } +@@ -749,10 +755,17 @@ + break; + } + jcr->JobPriority = job->Priority; ++ /* Copy storage definitions -- deleted in dir_free_jcr above */ + for (int i=0; istorage[i] = job->storage[i]; ++ STORE *st; ++ if (job->storage[i]) { ++ jcr->storage[i] = New(alist(10, not_owned_by_alist)); ++ foreach_alist(st, job->storage[i]) { ++ jcr->storage[i]->append(st); ++ } ++ } + } +- if (!jcr->store && jcr->storage[0]) { ++ if (jcr->storage[0]) { + jcr->store = (STORE *)jcr->storage[0]->first(); + } + jcr->client = job->client; +@@ -805,6 +818,9 @@ + for (int i=0; i < MAX_STORE; i++) { + if (old_jcr->storage[i]) { + STORE *st; ++ if (old_jcr->storage[i]) { ++ delete old_jcr->storage[i]; ++ } + new_jcr->storage[i] = New(alist(10, not_owned_by_alist)); + foreach_alist(st, old_jcr->storage[i]) { + new_jcr->storage[i]->append(st); +@@ -817,3 +833,10 @@ + } + } + } ++ ++/* Set storage override */ ++void set_storage(JCR *jcr, STORE *store) ++{ ++ jcr->store = store; ++ jcr->storage[0]->prepend(store); ++} +Index: src/dird/msgchan.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/dird/msgchan.c,v +retrieving revision 1.32 +diff -u -r1.32 msgchan.c +--- src/dird/msgchan.c 29 Sep 2004 19:58:17 -0000 1.32 ++++ src/dird/msgchan.c 21 Dec 2004 13:04:08 -0000 +@@ -13,10 +13,10 @@ + * Create a thread to interact with the Storage daemon + * who returns a job status and requests Catalog services, etc. + * +- * Version $Id$ ++ * Version $Id$ + */ + /* +- Copyright (C) 2000-2004 Kern Sibbald and John Walker ++ Copyright (C) 2000-2004 Kern Sibbald + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as +@@ -64,10 +64,9 @@ + int max_retry_time, int verbose) + { + BSOCK *sd; +- STORE *store = jcr->store; +- if (!store) { +- jcr->store = store = (STORE *)jcr->storage[0]->first(); +- } ++ STORE *store; ++ ++ store = (STORE *)jcr->storage[0]->first(); + + /* + * Open message channel with the Storage daemon +@@ -94,13 +93,13 @@ + */ + int start_storage_daemon_job(JCR *jcr) + { +- int status; ++ int status = 0; + STORE *storage; + BSOCK *sd; + char auth_key[100]; + POOL_MEM device_name, pool_name, pool_type, media_type; ++ int i; + +- storage = jcr->store; + sd = jcr->store_bsock; + /* + * Now send JobId and permissions, and get back the authorization key. +@@ -139,23 +138,29 @@ + /* + * Send use device = xxx media = yyy pool = zzz + */ +- pm_strcpy(device_name, storage->dev_name); +- pm_strcpy(media_type, storage->media_type); +- pm_strcpy(pool_type, jcr->pool->pool_type); +- pm_strcpy(pool_name, jcr->pool->hdr.name); +- bash_spaces(device_name); +- bash_spaces(media_type); +- bash_spaces(pool_type); +- bash_spaces(pool_name); +- bnet_fsend(sd, use_device, device_name.c_str(), +- media_type.c_str(), pool_name.c_str(), pool_type.c_str()); +- Dmsg1(110, ">stored: %s", sd->msg); +- status = response(jcr, sd, OK_device, "Use Device", NO_DISPLAY); +- if (!status) { +- pm_strcpy(pool_type, sd->msg); /* save message */ +- Jmsg(jcr, M_FATAL, 0, _("\n" +- " Storage daemon didn't accept Device \"%s\" because:\n %s"), +- device_name.c_str(), pool_type.c_str()/* sd->msg */); ++ ++ for (i=0; i < MAX_STORE; i++) { ++ if (jcr->storage[i]) { ++ storage = (STORE *)jcr->storage[i]->first(); ++ pm_strcpy(device_name, storage->dev_name); ++ pm_strcpy(media_type, storage->media_type); ++ pm_strcpy(pool_type, jcr->pool->pool_type); ++ pm_strcpy(pool_name, jcr->pool->hdr.name); ++ bash_spaces(device_name); ++ bash_spaces(media_type); ++ bash_spaces(pool_type); ++ bash_spaces(pool_name); ++ bnet_fsend(sd, use_device, device_name.c_str(), ++ media_type.c_str(), pool_name.c_str(), pool_type.c_str()); ++ Dmsg1(110, ">stored: %s", sd->msg); ++ status = response(jcr, sd, OK_device, "Use Device", NO_DISPLAY); ++ if (!status) { ++ pm_strcpy(pool_type, sd->msg); /* save message */ ++ Jmsg(jcr, M_FATAL, 0, _("\n" ++ " Storage daemon didn't accept Device \"%s\" because:\n %s"), ++ device_name.c_str(), pool_type.c_str()/* sd->msg */); ++ } ++ } + } + return status; + } +Index: src/dird/protos.h +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/dird/protos.h,v +retrieving revision 1.56 +diff -u -r1.56 protos.h +--- src/dird/protos.h 17 Nov 2004 22:48:22 -0000 1.56 ++++ src/dird/protos.h 21 Dec 2004 13:04:08 -0000 +@@ -1,7 +1,7 @@ + /* + * Director external function prototypes + * +- * Version $Id$ ++ * Version $Id$ + */ + /* + Copyright (C) 2000-2004 Kern Sibbald and John Walker +@@ -62,7 +62,7 @@ + + /* fd_cmds.c */ + extern int connect_to_file_daemon(JCR *jcr, int retry_interval, +- int max_retry_time, int verbose); ++ int max_retry_time, int verbose); + extern int send_include_list(JCR *jcr); + extern int send_exclude_list(JCR *jcr); + extern int send_bootstrap_file(JCR *jcr); +@@ -70,7 +70,7 @@ + extern int get_attributes_and_put_in_catalog(JCR *jcr); + extern int get_attributes_and_compare_to_catalog(JCR *jcr, JobId_t JobId); + extern int put_file_into_catalog(JCR *jcr, long file_index, char *fname, +- char *link, char *attr, int stream); ++ char *link, char *attr, int stream); + extern void get_level_since_time(JCR *jcr, char *since, int since_len); + extern int send_run_before_and_after_commands(JCR *jcr); + +@@ -91,13 +91,14 @@ + extern int cancel_job(UAContext *ua, JCR *jcr); + extern void init_jcr_job_record(JCR *jcr); + extern void copy_storage(JCR *new_jcr, JCR *old_jcr); ++extern void set_storage(JCR *jcr, STORE *store); + + /* mountreq.c */ + extern void mount_request(JCR *jcr, BSOCK *bs, char *buf); + + /* msgchan.c */ + extern bool connect_to_storage_daemon(JCR *jcr, int retry_interval, +- int max_retry_time, int verbose); ++ int max_retry_time, int verbose); + extern int start_storage_daemon_job(JCR *jcr); + extern int start_storage_daemon_message_thread(JCR *jcr); + extern int bget_dirmsg(BSOCK *bs); +@@ -149,28 +150,28 @@ + void free_ua_context(UAContext *ua); + + /* ua_select.c */ +-STORE *select_storage_resource(UAContext *ua); +-JOB *select_job_resource(UAContext *ua); +-JOB *select_restore_job_resource(UAContext *ua); +-CLIENT *select_client_resource(UAContext *ua); ++STORE *select_storage_resource(UAContext *ua); ++JOB *select_job_resource(UAContext *ua); ++JOB *select_restore_job_resource(UAContext *ua); ++CLIENT *select_client_resource(UAContext *ua); + FILESET *select_fileset_resource(UAContext *ua); +-int select_pool_and_media_dbr(UAContext *ua, POOL_DBR *pr, MEDIA_DBR *mr); +-int select_media_dbr(UAContext *ua, MEDIA_DBR *mr); +-bool select_pool_dbr(UAContext *ua, POOL_DBR *pr); +-int select_client_dbr(UAContext *ua, CLIENT_DBR *cr); +- +-void start_prompt(UAContext *ua, const char *msg); +-void add_prompt(UAContext *ua, const char *prompt); +-int do_prompt(UAContext *ua, const char *automsg, const char *msg, char *prompt, int max_prompt); +-CAT *get_catalog_resource(UAContext *ua); ++int select_pool_and_media_dbr(UAContext *ua, POOL_DBR *pr, MEDIA_DBR *mr); ++int select_media_dbr(UAContext *ua, MEDIA_DBR *mr); ++bool select_pool_dbr(UAContext *ua, POOL_DBR *pr); ++int select_client_dbr(UAContext *ua, CLIENT_DBR *cr); ++ ++void start_prompt(UAContext *ua, const char *msg); ++void add_prompt(UAContext *ua, const char *prompt); ++int do_prompt(UAContext *ua, const char *automsg, const char *msg, char *prompt, int max_prompt); ++CAT *get_catalog_resource(UAContext *ua); + STORE *get_storage_resource(UAContext *ua, int use_default); +-int get_media_type(UAContext *ua, char *MediaType, int max_media); +-bool get_pool_dbr(UAContext *ua, POOL_DBR *pr); +-int get_client_dbr(UAContext *ua, CLIENT_DBR *cr); ++int get_media_type(UAContext *ua, char *MediaType, int max_media); ++bool get_pool_dbr(UAContext *ua, POOL_DBR *pr); ++int get_client_dbr(UAContext *ua, CLIENT_DBR *cr); + POOL *get_pool_resource(UAContext *ua); + POOL *select_pool_resource(UAContext *ua); + CLIENT *get_client_resource(UAContext *ua); +-int get_job_dbr(UAContext *ua, JOB_DBR *jr); ++int get_job_dbr(UAContext *ua, JOB_DBR *jr); + + int find_arg_keyword(UAContext *ua, const char **list); + int find_arg(UAContext *ua, const char *keyword); +@@ -190,3 +191,6 @@ + + /* ua_purge.c */ + int purge_jobs_from_volume(UAContext *ua, MEDIA_DBR *mr); ++ ++/* ua_run.c */ ++extern int run_cmd(UAContext *ua, const char *cmd); +Index: src/dird/scheduler.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/dird/scheduler.c,v +retrieving revision 1.27 +diff -u -r1.27 scheduler.c +--- src/dird/scheduler.c 3 Oct 2004 19:47:34 -0000 1.27 ++++ src/dird/scheduler.c 21 Dec 2004 13:04:08 -0000 +@@ -10,7 +10,7 @@ + * Version $Id$ + */ + /* +- Copyright (C) 2000-2004 Kern Sibbald and John Walker ++ Copyright (C) 2000-2004 Kern Sibbald + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as +@@ -157,7 +157,7 @@ + jcr->dif_pool = run->dif_pool; /* override dif pool */ + } + if (run->storage) { +- jcr->store = run->storage; /* override storage */ ++ set_storage(jcr, run->storage); /* override storage */ + } + if (run->msgs) { + jcr->messages = run->msgs; /* override messages */ +Index: src/dird/ua.h +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/dird/ua.h,v +retrieving revision 1.23 +diff -u -r1.23 ua.h +--- src/dird/ua.h 18 Jun 2004 10:07:41 -0000 1.23 ++++ src/dird/ua.h 21 Dec 2004 13:04:08 -0000 +@@ -3,7 +3,7 @@ + * + * Kern Sibbald, August MMI + * +- * Version $Id$ ++ * Version $Id$ + */ + /* + Copyright (C) 2000-2004 Kern Sibbald and John Walker +@@ -48,6 +48,7 @@ + bool automount; /* if set, mount after label */ + bool quit; /* if set, quit */ + bool verbose; /* set for normal UA verbosity */ ++ bool batch; /* set for non-interactive mode */ + uint32_t pint32_val; /* positive integer */ + int32_t int32_val; /* positive/negative */ + }; +Index: src/dird/ua_cmds.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/dird/ua_cmds.c,v +retrieving revision 1.127 +diff -u -r1.127 ua_cmds.c +--- src/dird/ua_cmds.c 4 Oct 2004 20:34:01 -0000 1.127 ++++ src/dird/ua_cmds.c 21 Dec 2004 13:04:10 -0000 +@@ -4,7 +4,7 @@ + * + * Kern Sibbald, September MM + * +- * Version $Id$ ++ * Version $Id$ + */ + + /* +@@ -52,7 +52,6 @@ + extern int gui_cmd(UAContext *ua, const char *cmd); + extern int sqlquerycmd(UAContext *ua, const char *cmd); + extern int querycmd(UAContext *ua, const char *cmd); +-extern int run_cmd(UAContext *ua, const char *cmd); + extern int retentioncmd(UAContext *ua, const char *cmd); + extern int prunecmd(UAContext *ua, const char *cmd); + extern int purgecmd(UAContext *ua, const char *cmd); +@@ -1195,7 +1194,7 @@ + BSOCK *sd; + JCR *jcr = ua->jcr; + +- jcr->store = store; ++ set_storage(jcr, store); + /* Try connecting for up to 15 seconds */ + bsendmsg(ua, _("Connecting to Storage daemon %s at %s:%d\n"), + store->hdr.name, store->address, store->SDport); +@@ -1254,8 +1253,10 @@ + /* Count Storage items */ + LockRes(); + store = NULL; +- for (i=0; (store = (STORE *)GetNextRes(R_STORAGE, (RES *)store)); i++) +- { } ++ i = 0; ++ foreach_res(store, R_STORAGE) { ++ i++; ++ } + unique_store = (STORE **) malloc(i * sizeof(STORE)); + /* Find Unique Storage address/port */ + store = (STORE *)GetNextRes(R_STORAGE, NULL); +@@ -1286,8 +1287,10 @@ + /* Count Client items */ + LockRes(); + client = NULL; +- for (i=0; (client = (CLIENT *)GetNextRes(R_CLIENT, (RES *)client)); i++) +- { } ++ i = 0; ++ foreach_res(client, R_CLIENT) { ++ i++; ++ } + unique_client = (CLIENT **) malloc(i * sizeof(CLIENT)); + /* Find Unique Client address/port */ + client = (CLIENT *)GetNextRes(R_CLIENT, NULL); +@@ -1841,7 +1844,7 @@ + Dmsg2(120, "Found storage, MediaType=%s DevName=%s\n", + store->media_type, store->dev_name); + +- jcr->store = store; ++ set_storage(jcr, store); + if (!connect_to_storage_daemon(jcr, 10, SDConnectTimeout, 1)) { + bsendmsg(ua, _("Failed to connect to Storage daemon.\n")); + return; +Index: src/dird/ua_label.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/dird/ua_label.c,v +retrieving revision 1.38 +diff -u -r1.38 ua_label.c +--- src/dird/ua_label.c 17 Aug 2004 14:40:09 -0000 1.38 ++++ src/dird/ua_label.c 21 Dec 2004 13:04:10 -0000 +@@ -8,7 +8,7 @@ + */ + + /* +- Copyright (C) 2000-2004 Kern Sibbald and John Walker ++ Copyright (C) 2000-2004 Kern Sibbald + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as +@@ -170,7 +170,7 @@ + if (!store) { + return 1; + } +- ua->jcr->store = store; ++ set_storage(ua->jcr, store); + + scan = find_arg(ua, _("scan")) >= 0; + +@@ -296,7 +296,7 @@ + if (!store) { + return 1; + } +- ua->jcr->store = store; ++ set_storage(ua->jcr, store); + + if (!relabel && find_arg_keyword(ua, barcode_keyword) >= 0) { + label_from_barcodes(ua); +Index: src/dird/ua_run.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/dird/ua_run.c,v +retrieving revision 1.58 +diff -u -r1.58 ua_run.c +--- src/dird/ua_run.c 8 Nov 2004 21:12:12 -0000 1.58 ++++ src/dird/ua_run.c 21 Dec 2004 13:04:11 -0000 +@@ -4,11 +4,11 @@ + * + * Kern Sibbald, December MMI + * +- * Version $Id$ ++ * Version $Id$ + */ + + /* +- Copyright (C) 2001-2004 Kern Sibbald and John Walker ++ Copyright (C) 2001-2004 Kern Sibbald + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as +@@ -42,6 +42,9 @@ + * For Restore Jobs + * run jobid=nn + * ++ * Returns: 0 on error ++ * JobId if OK ++ * + */ + int run_cmd(UAContext *ua, const char *cmd) + { +@@ -101,7 +104,7 @@ + catalog_name = NULL; + + for (i=1; iargc; i++) { +- Dmsg2(200, "Doing arg %d = %s\n", i, ua->argk[i]); ++ Dmsg2(800, "Doing arg %d = %s\n", i, ua->argk[i]); + kw_ok = false; + /* Keep looking until we find a good keyword */ + for (j=0; !kw_ok && kw[j]; j++) { +@@ -111,12 +114,12 @@ + bsendmsg(ua, _("Value missing for keyword %s\n"), ua->argk[i]); + return 1; + } +- Dmsg1(200, "Got keyword=%s\n", kw[j]); ++ Dmsg1(800, "Got keyword=%s\n", kw[j]); + switch (j) { + case 0: /* job */ + if (job_name) { + bsendmsg(ua, _("Job name specified twice.\n")); +- return 1; ++ return 0; + } + job_name = ua->argv[i]; + kw_ok = true; +@@ -124,7 +127,7 @@ + case 1: /* JobId */ + if (jid) { + bsendmsg(ua, _("JobId specified twice.\n")); +- return 1; ++ return 0; + } + jid = ua->argv[i]; + kw_ok = true; +@@ -133,7 +136,7 @@ + case 3: /* fd */ + if (client_name) { + bsendmsg(ua, _("Client specified twice.\n")); +- return 1; ++ return 0; + } + client_name = ua->argv[i]; + kw_ok = true; +@@ -141,7 +144,7 @@ + case 4: /* fileset */ + if (fileset_name) { + bsendmsg(ua, _("FileSet specified twice.\n")); +- return 1; ++ return 0; + } + fileset_name = ua->argv[i]; + kw_ok = true; +@@ -149,7 +152,7 @@ + case 5: /* level */ + if (level_name) { + bsendmsg(ua, _("Level specified twice.\n")); +- return 1; ++ return 0; + } + level_name = ua->argv[i]; + kw_ok = true; +@@ -158,7 +161,7 @@ + case 7: /* sd */ + if (store_name) { + bsendmsg(ua, _("Storage specified twice.\n")); +- return 1; ++ return 0; + } + store_name = ua->argv[i]; + kw_ok = true; +@@ -166,7 +169,7 @@ + case 8: /* pool */ + if (pool_name) { + bsendmsg(ua, _("Pool specified twice.\n")); +- return 1; ++ return 0; + } + pool_name = ua->argv[i]; + kw_ok = true; +@@ -174,7 +177,7 @@ + case 9: /* where */ + if (where) { + bsendmsg(ua, _("Where specified twice.\n")); +- return 1; ++ return 0; + } + where = ua->argv[i]; + kw_ok = true; +@@ -182,7 +185,7 @@ + case 10: /* bootstrap */ + if (bootstrap) { + bsendmsg(ua, _("Bootstrap specified twice.\n")); +- return 1; ++ return 0; + } + bootstrap = ua->argv[i]; + kw_ok = true; +@@ -190,7 +193,7 @@ + case 11: /* replace */ + if (replace) { + bsendmsg(ua, _("Replace specified twice.\n")); +- return 1; ++ return 0; + } + replace = ua->argv[i]; + kw_ok = true; +@@ -198,7 +201,7 @@ + case 12: /* When */ + if (when) { + bsendmsg(ua, _("When specified twice.\n")); +- return 1; ++ return 0; + } + when = ua->argv[i]; + kw_ok = true; +@@ -206,7 +209,7 @@ + case 13: /* Priority */ + if (Priority) { + bsendmsg(ua, _("Priority specified twice.\n")); +- return 1; ++ return 0; + } + Priority = atoi(ua->argv[i]); + if (Priority <= 0) { +@@ -221,7 +224,7 @@ + case 15: /* Verify Job */ + if (verify_job_name) { + bsendmsg(ua, _("Verify Job specified twice.\n")); +- return 1; ++ return 0; + } + verify_job_name = ua->argv[i]; + kw_ok = true; +@@ -255,21 +258,22 @@ + Dmsg1(200, "Set jobname=%s\n", job_name); + } else { + bsendmsg(ua, _("Invalid keyword: %s\n"), ua->argk[i]); +- return 1; ++ return 0; + } + } + } /* end argc loop */ + +- Dmsg0(200, "Done scan.\n"); ++ Dmsg0(800, "Done scan.\n"); + + CAT *catalog = NULL; + if (catalog_name != NULL) { + catalog = (CAT *)GetResWithName(R_CATALOG, catalog_name); + if (catalog == NULL) { + bsendmsg(ua, _("Catalog \"%s\" not found\n"), catalog_name); +- return 1; ++ return 0; + } + } ++ Dmsg1(200, "Using catalog=%s\n", catalog_name); + + if (job_name) { + /* Find Job */ +@@ -287,11 +291,11 @@ + job = select_job_resource(ua); + } + if (!job) { +- return 1; ++ return 0; + } else if (!acl_access_ok(ua, Job_ACL, job->hdr.name)) { + bsendmsg(ua, _("No authorization. Job \"%s\".\n"), + job->hdr.name); +- return 1; ++ return 0; + } + + if (store_name) { +@@ -310,8 +314,9 @@ + } else if (!acl_access_ok(ua, Storage_ACL, store->hdr.name)) { + bsendmsg(ua, _("No authorization. Storage \"%s\".\n"), + store->hdr.name); +- return 1; ++ return 0; + } ++ Dmsg1(200, "Using storage=%s\n", store->hdr.name); + + if (pool_name) { + pool = (POOL *)GetResWithName(R_POOL, pool_name); +@@ -325,12 +330,13 @@ + pool = job->pool; /* use default */ + } + if (!pool) { +- return 1; ++ return 0; + } else if (!acl_access_ok(ua, Pool_ACL, store->hdr.name)) { + bsendmsg(ua, _("No authorization. Pool \"%s\".\n"), + pool->hdr.name); +- return 1; ++ return 0; + } ++ Dmsg1(200, "Using pool\n", pool->hdr.name); + + if (client_name) { + client = (CLIENT *)GetResWithName(R_CLIENT, client_name); +@@ -344,12 +350,13 @@ + client = job->client; /* use default */ + } + if (!client) { +- return 1; ++ return 0; + } else if (!acl_access_ok(ua, Client_ACL, store->hdr.name)) { + bsendmsg(ua, _("No authorization. Client \"%s\".\n"), + client->hdr.name); +- return 1; ++ return 0; + } ++ Dmsg1(200, "Using client=%s\n", client->hdr.name); + + if (fileset_name) { + fileset = (FILESET *)GetResWithName(R_FILESET, fileset_name); +@@ -361,11 +368,11 @@ + fileset = job->fileset; /* use default */ + } + if (!fileset) { +- return 1; ++ return 0; + } else if (!acl_access_ok(ua, FileSet_ACL, store->hdr.name)) { + bsendmsg(ua, _("No authorization. FileSet \"%s\".\n"), + fileset->hdr.name); +- return 1; ++ return 0; + } + + if (verify_job_name) { +@@ -386,7 +393,7 @@ + set_jcr_defaults(jcr, job); + + jcr->verify_job = verify_job; +- jcr->store = store; ++ set_storage(jcr, store); + jcr->client = client; + jcr->fileset = fileset; + jcr->pool = pool; +@@ -460,7 +467,7 @@ + } + + /* Run without prompting? */ +- if (find_arg(ua, _("yes")) > 0) { ++ if (ua->batch || find_arg(ua, _("yes")) > 0) { + goto start_job; + } + +@@ -701,7 +708,7 @@ + /* Storage */ + store = select_storage_resource(ua); + if (store) { +- jcr->store = store; ++ set_storage(jcr, store); + goto try_again; + } + break; +@@ -847,7 +854,7 @@ + } else { + bsendmsg(ua, _("Job started. JobId=%u\n"), JobId); + } +- return 1; ++ return JobId; + } + + bail_out: +Index: src/dird/ua_server.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/dird/ua_server.c,v +retrieving revision 1.35 +diff -u -r1.35 ua_server.c +--- src/dird/ua_server.c 19 Sep 2004 18:56:24 -0000 1.35 ++++ src/dird/ua_server.c 21 Dec 2004 13:04:11 -0000 +@@ -99,6 +99,15 @@ + { + JCR *jcr; + jcr = new_jcr(sizeof(JCR), dird_free_jcr); ++ /* ++ * The job and defaults are not really used, but ++ * we set them up to ensure that everything is correctly ++ * initialized. ++ */ ++ LockRes(); ++ jcr->job = (JOB *)GetNextRes(R_JOB, NULL); ++ set_jcr_defaults(jcr, jcr->job); ++ UnlockRes(); + jcr->sd_auth_key = bstrdup("dummy"); /* dummy Storage daemon key */ + create_unique_job_name(jcr, base_name); + jcr->sched_time = jcr->start_time; +@@ -106,20 +115,6 @@ + jcr->JobLevel = L_NONE; + jcr->JobStatus = JS_Running; + jcr->JobId = 0; +- /* +- * None of these are really defined for control JCRs, so we +- * simply take the first of each one. This ensures that there +- * will be no null pointer references. +- */ +- LockRes(); +- jcr->job = (JOB *)GetNextRes(R_JOB, NULL); +- jcr->messages = (MSGS *)GetNextRes(R_MSGS, NULL); +- jcr->client = (CLIENT *)GetNextRes(R_CLIENT, NULL); +- jcr->pool = (POOL *)GetNextRes(R_POOL, NULL); +- jcr->catalog = (CAT *)GetNextRes(R_CATALOG, NULL); +- jcr->store = (STORE *)GetNextRes(R_STORAGE, NULL); +- jcr->fileset = (FILESET *)GetNextRes(R_FILESET, NULL); +- UnlockRes(); + return jcr; + } + +Index: src/dird/ua_status.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/dird/ua_status.c,v +retrieving revision 1.61 +diff -u -r1.61 ua_status.c +--- src/dird/ua_status.c 19 Sep 2004 18:56:25 -0000 1.61 ++++ src/dird/ua_status.c 21 Dec 2004 13:04:12 -0000 +@@ -282,7 +282,7 @@ + { + BSOCK *sd; + +- ua->jcr->store = store; ++ set_storage(ua->jcr, store); + /* Try connecting for up to 15 seconds */ + bsendmsg(ua, _("Connecting to Storage daemon %s at %s:%d\n"), + store->hdr.name, store->address, store->SDport); diff --git a/Branch-2.2/bacula/patches/1.36.1/1.36.1-truncate.patch b/Branch-2.2/bacula/patches/1.36.1/1.36.1-truncate.patch new file mode 100644 index 0000000000..a66a1e5a12 --- /dev/null +++ b/Branch-2.2/bacula/patches/1.36.1/1.36.1-truncate.patch @@ -0,0 +1,24 @@ + + This patch fixes a bug where a tape gets "truncated" after + doing a restore. The number of files in the catalog do not + agree with what Bacula thinks is on tape, then the tape is + marked in error. + Apply this patch to version 1.36.1 with: + + cd + patch -p0 <1.36.1-truncate.patch + make + ... + + +--- src/stored/read_record.c.orig 2004-09-29 21:11:17.000000000 +0200 ++++ src/stored/read_record.c 2005-02-15 13:22:12.723140229 +0100 +@@ -266,7 +266,7 @@ + Dmsg2(300, "Current postion (file:block) %d:%d\n", + dev->file, dev->block_num); + jcr->bsr->mount_next_volume = false; +- dev->state |= ST_EOT; ++// dev->state |= ST_EOT; + rec->Block = 0; + return 1; + } diff --git a/Branch-2.2/bacula/patches/1.36.1/patches-1.36.1 b/Branch-2.2/bacula/patches/1.36.1/patches-1.36.1 new file mode 100644 index 0000000000..1a41d7c87f --- /dev/null +++ b/Branch-2.2/bacula/patches/1.36.1/patches-1.36.1 @@ -0,0 +1,40 @@ + +03Dec04 1.36.1-pool.patch + This patch should hold jobs in the Director's start queue if + more than one simultaneous backup job wants to use the same + Storage device with two different Pools (i.e. 2 Volumes). + +03Dec04 1.16.1-slots.patch + This patch should fix "update slots" with two different magazines + in different pools by checking the pool when zapping the InChanger. + +18Dec04 1.36.1-spool.patch + This patch fixes the despooling size printed in the Job + report. Previously, it reported the total size for the + device. This patch makes it report the size for the job. + +21Dec04 1.36.1-store.patch + This patch fixes a problem with overriding storage daemon + specifications. Previously they were not always honored. + This implements more uniform handling. It also eliminates + an orphaned buffer situation using JobDefs. + +21Dec04 1.36.1-reload.patch + This patch fixes Bacula so that it does not exit if there + is a syntax error in its conf file during a reload command. + +24Dec04 1.36.1-fileset.patch + This patch should correct a seg fault in the FD that occurs + at the end of a job when the job uses old style include/excludes. + +30Jan05 1.36.1-acl.patch + This patch fixes some typos with ACL checking that results + in the incorrect name being used for the check. + This could lead to security problems with unwanted + access by restricted consoles. + +15Feb05 1.36.1-truncate.patch + This patch fixes a bug where a tape gets "truncated" after + doing a restore. The number of files in the catalog do not + agree with what Bacula thinks is on tape, then the tape is + marked in error. diff --git a/Branch-2.2/bacula/patches/1.36.2/1.36.2-console.patch b/Branch-2.2/bacula/patches/1.36.2/1.36.2-console.patch new file mode 100644 index 0000000000..b46228f4e8 --- /dev/null +++ b/Branch-2.2/bacula/patches/1.36.2/1.36.2-console.patch @@ -0,0 +1,32 @@ + + This patch causes the output directed to a file to be + flushed after every line. This is a bit overkill, IMO, but + a user complained about it. + + Apply to 1.36.2 with: + + cd + patch -p0 <1.36.2-console.patch + make + ... + +Index: src/console/console.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/console/console.c,v +retrieving revision 1.53.6.1 +diff -u -b -r1.53.6.1 console.c +--- src/console/console.c 25 Feb 2005 09:47:06 -0000 1.53.6.1 ++++ src/console/console.c 16 Mar 2005 11:36:43 -0000 +@@ -748,10 +748,11 @@ + } + #else + fputs(buf, output); ++ fflush(output); + if (tee) { + fputs(buf, stdout); + } +- if (output == stdout || tee) { ++ if (output != stdout || tee) { + fflush(stdout); + } + #endif diff --git a/Branch-2.2/bacula/patches/1.36.2/1.36.2-level.patch b/Branch-2.2/bacula/patches/1.36.2/1.36.2-level.patch new file mode 100644 index 0000000000..33caf01abf --- /dev/null +++ b/Branch-2.2/bacula/patches/1.36.2/1.36.2-level.patch @@ -0,0 +1,56 @@ + + This patch should fix a problem with th %l editing in the + client (FD) where it edited nothing. With this fix, it should + edit "since". + Apply the patch to 1.36.2 with: + + cd + patch -p0 <1.36.2-level.patch + make + ... + +Index: src/version.h +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/version.h,v +retrieving revision 1.403.2.5 +retrieving revision 1.403.2.5.2.1 +diff -u -r1.403.2.5 -r1.403.2.5.2.1 +--- src/version.h 27 Feb 2005 21:54:02 -0000 1.403.2.5 ++++ src/version.h 4 Mar 2005 09:14:15 -0000 1.403.2.5.2.1 +@@ -1,8 +1,8 @@ + /* */ + #undef VERSION + #define VERSION "1.36.2" +-#define BDATE "28 February 2005" +-#define LSMDATE "28Feb05" ++#define BDATE "04 March 2005" ++#define LSMDATE "04Mar05" + + /* Debug flags */ + #undef DEBUG +Index: src/filed/job.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/filed/job.c,v +retrieving revision 1.91.4.2 +retrieving revision 1.91.4.2.2.1 +diff -u -r1.91.4.2 -r1.91.4.2.2.1 +--- src/filed/job.c 25 Feb 2005 09:47:06 -0000 1.91.4.2 ++++ src/filed/job.c 4 Mar 2005 09:14:16 -0000 1.91.4.2.2.1 +@@ -3,7 +3,7 @@ + * + * Kern Sibbald, October MM + * +- * Version $Id$ ++ * Version $Id$ + * + */ + /* +@@ -1139,7 +1139,7 @@ + buf = get_memory(dir->msglen+1); + utime_t since_time, adj; + btime_t his_time, bt_start, rt=0, bt_adj=0; +- if (jcr->JobLevel == 0) { ++ if (jcr->JobLevel == L_NONE) { + jcr->JobLevel = L_SINCE; /* if no other job level set, do it now */ + } + if (sscanf(dir->msg, "level = since_utime %s mtime_only=%d", diff --git a/Branch-2.2/bacula/patches/1.36.2/1.36.2-netbsd.patch b/Branch-2.2/bacula/patches/1.36.2/1.36.2-netbsd.patch new file mode 100644 index 0000000000..33a0354f9f --- /dev/null +++ b/Branch-2.2/bacula/patches/1.36.2/1.36.2-netbsd.patch @@ -0,0 +1,47 @@ + + This patch corrects a compile problem because of no statfs() + on NetBSD. The patch was submitted by kardel with bug 258. + + Apply the patch to version 1.36.2 with: + + cd + patch -p0 <1.36.2-netbsd.patch + make + ... + +Index: src/findlib/fstype.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/findlib/fstype.c,v +retrieving revision 1.7.2.2 +diff -u -r1.7.2.2 fstype.c +--- src/findlib/fstype.c 25 Feb 2005 09:47:06 -0000 1.7.2.2 ++++ src/findlib/fstype.c 15 Mar 2005 14:01:44 -0000 +@@ -61,7 +61,6 @@ + */ + #if defined(HAVE_DARWIN_OS) \ + || defined(HAVE_FREEBSD_OS ) \ +- || defined(HAVE_NETBSD_OS) \ + || defined(HAVE_OPENBSD_OS) + + #include +@@ -77,7 +76,20 @@ + Dmsg1(50, "statfs() failed for \"%s\"\n", fname); + return false; + } ++#elif defined(HAVE_NETBSD_OS) ++#include ++#include + ++bool fstype(const char *fname, char *fs, int fslen) ++{ ++ struct statvfs st; ++ if (statvfs(fname, &st) == 0) { ++ bstrncpy(fs, st.f_fstypename, fslen); ++ return true; ++ } ++ Dmsg1(50, "statfs() failed for \"%s\"\n", fname); ++ return false; ++} + #elif defined(HAVE_HPUX_OS) \ + || defined(HAVE_IRIX_OS) + diff --git a/Branch-2.2/bacula/patches/1.36.2/1.36.2-pool.patch b/Branch-2.2/bacula/patches/1.36.2/1.36.2-pool.patch new file mode 100644 index 0000000000..eeb7d4079c --- /dev/null +++ b/Branch-2.2/bacula/patches/1.36.2/1.36.2-pool.patch @@ -0,0 +1,26 @@ + + This patch corrects a problem preventing multiple + simultaneous jobs from different pools. + Apply to 1.36.2 with: + + cd + patch -p0 <1.36.2-pool.patch + make + ... + +Index: src/dird/jobq.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/dird/jobq.c,v +retrieving revision 1.25.4.2 +diff -u -r1.25.4.2 jobq.c +--- src/dird/jobq.c 15 Feb 2005 11:51:03 -0000 1.25.4.2 ++++ src/dird/jobq.c 4 Mar 2005 13:16:19 -0000 +@@ -584,7 +584,7 @@ + if (njcr->JobId == 0 || njcr == jcr) { + continue; + } +- if (njcr->pool != jcr->pool) { ++ if (njcr->store == jcr->store && njcr->pool != jcr->pool) { + skip_this_jcr = true; + break; + } diff --git a/Branch-2.2/bacula/patches/1.36.2/1.36.2-reschedule.patch b/Branch-2.2/bacula/patches/1.36.2/1.36.2-reschedule.patch new file mode 100644 index 0000000000..320dfaa2f7 --- /dev/null +++ b/Branch-2.2/bacula/patches/1.36.2/1.36.2-reschedule.patch @@ -0,0 +1,85 @@ + This patch should fix a Segfault bug when a job is rescheduled. + The storage pointers were being released when they should not + have been. + + Apply the patch with: + + patch -p0 <1.36.2-reschedule.patch + make + ... + +Index: src/dird/dird.h +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/dird/dird.h,v +retrieving revision 1.7 +diff -u -r1.7 dird.h +--- src/dird/dird.h 19 Apr 2004 14:27:00 -0000 1.7 ++++ src/dird/dird.h 18 Mar 2005 17:39:38 -0000 +@@ -45,3 +45,4 @@ + + /* From job.c */ + void dird_free_jcr(JCR *jcr); ++void dird_free_jcr_pointers(JCR *jcr); +Index: src/dird/job.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/dird/job.c,v +retrieving revision 1.92.2.2 +diff -u -r1.92.2.2 job.c +--- src/dird/job.c 27 Feb 2005 21:53:28 -0000 1.92.2.2 ++++ src/dird/job.c 18 Mar 2005 17:39:38 -0000 +@@ -676,15 +676,9 @@ + } + } + +-/* +- * Free the Job Control Record if no one is still using it. +- * Called from main free_jcr() routine in src/lib/jcr.c so +- * that we can do our Director specific cleanup of the jcr. +- */ +-void dird_free_jcr(JCR *jcr) ++/* Called directly from job rescheduling */ ++void dird_free_jcr_pointers(JCR *jcr) + { +- Dmsg0(200, "Start dird free_jcr\n"); +- + if (jcr->sd_auth_key) { + free(jcr->sd_auth_key); + jcr->sd_auth_key = NULL; +@@ -723,7 +717,21 @@ + } + if (jcr->term_wait_inited) { + pthread_cond_destroy(&jcr->term_wait); ++ jcr->term_wait_inited = false; + } ++} ++ ++/* ++ * Free the Job Control Record if no one is still using it. ++ * Called from main free_jcr() routine in src/lib/jcr.c so ++ * that we can do our Director specific cleanup of the jcr. ++ */ ++void dird_free_jcr(JCR *jcr) ++{ ++ Dmsg0(200, "Start dird free_jcr\n"); ++ ++ dird_free_jcr_pointers(jcr); ++ + /* Delete lists setup to hold storage pointers */ + for (int i=0; istorage[i]) { +Index: src/dird/jobq.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/dird/jobq.c,v +retrieving revision 1.25.4.2 +diff -u -r1.25.4.2 jobq.c +--- src/dird/jobq.c 15 Feb 2005 11:51:03 -0000 1.25.4.2 ++++ src/dird/jobq.c 18 Mar 2005 17:39:38 -0000 +@@ -481,7 +481,7 @@ + bstrftime(dt, sizeof(dt), time(NULL)); + Jmsg(jcr, M_INFO, 0, _("Rescheduled Job %s at %s to re-run in %d seconds.\n"), + jcr->Job, dt, (int)jcr->job->RescheduleInterval); +- dird_free_jcr(jcr); /* partial cleanup old stuff */ ++ dird_free_jcr_pointers(jcr); /* partial cleanup old stuff */ + jcr->JobStatus = JS_WaitStartTime; + jcr->SDJobStatus = 0; + if (jcr->JobBytes == 0) { diff --git a/Branch-2.2/bacula/patches/1.36.2/1.36.2-restore-speed.patch b/Branch-2.2/bacula/patches/1.36.2/1.36.2-restore-speed.patch new file mode 100644 index 0000000000..4acae6c998 --- /dev/null +++ b/Branch-2.2/bacula/patches/1.36.2/1.36.2-restore-speed.patch @@ -0,0 +1,120 @@ + + This patch will fix a subtle bug that was introduced in 1.36.2 + which causes Bacula to be very slow restoring a few files. This + is because it reads completely to the end of the Volume rather + than stopping when all the files on the Volume are loaded. The + introduction of the bug was caused by a patch that fixed + Bacula truncating tapes after a restore. + + Apply the patch to 1.36.2 with the following: + + cd + patch -p0 <1.36.2-restore-speed.patch + make + ... + + Note that all source files will be rebuilt during the make. + +Index: src/jcr.h +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/jcr.h,v +retrieving revision 1.76.4.1 +diff -u -u -b -r1.76.4.1 jcr.h +--- src/jcr.h 27 Feb 2005 21:53:28 -0000 1.76.4.1 ++++ src/jcr.h 17 Mar 2005 14:14:18 -0000 +@@ -243,6 +243,7 @@ + + /* Parmaters for Open Read Session */ + BSR *bsr; /* Bootstrap record -- has everything */ ++ bool mount_next_volume; /* set to cause next volume mount */ + uint32_t read_VolSessionId; + uint32_t read_VolSessionTime; + uint32_t read_StartFile; +Index: src/stored/read_record.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/stored/read_record.c,v +retrieving revision 1.47.4.1 +diff -u -u -b -r1.47.4.1 read_record.c +--- src/stored/read_record.c 15 Feb 2005 11:51:04 -0000 1.47.4.1 ++++ src/stored/read_record.c 17 Mar 2005 14:14:18 -0000 +@@ -5,13 +5,16 @@ + * archive. It uses a callback to pass you each record in turn, + * as well as a callback for mounting the next tape. It takes + * care of reading blocks, applying the bsr, ... ++ * Note, this routine is really the heart of the restore routines, ++ * and we are *really* bit pushing here so be careful about making ++ * any modifications. + * + * Kern E. Sibbald, August MMII + * +- * Version $Id$ ++ * Version $Id$ + */ + /* +- Copyright (C) 2000-2004 Kern Sibbald and John Walker ++ Copyright (C) 2000-2005 Kern Sibbald + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as +@@ -57,6 +60,7 @@ + + recs = New(dlist(rec, &rec->link)); + position_to_first_file(jcr, dev); ++ jcr->mount_next_volume = false; + + for ( ; ok && !done; ) { + if (job_canceled(jcr)) { +@@ -66,12 +70,11 @@ + if (!read_block_from_device(dcr, CHECK_BLOCK_NUMBERS)) { + if (dev->at_eot()) { + DEV_RECORD *trec = new_record(); +- + Jmsg(jcr, M_INFO, 0, "End of Volume at file %u on device %s, Volume \"%s\"\n", + dev->file, dev_name(dev), dcr->VolumeName); + if (!mount_cb(dcr)) { + Jmsg(jcr, M_INFO, 0, "End of all volumes.\n"); +- ok = false; ++ ok = false; /* Stop everything */ + /* + * Create EOT Label so that Media record may + * be properly updated because this is the last +@@ -81,8 +84,13 @@ + trec->File = dev->file; + ok = record_cb(dcr, trec); + free_record(trec); ++ if (jcr->mount_next_volume) { ++ jcr->mount_next_volume = false; ++ dev->state &= ~ST_EOT; ++ } + break; + } ++ jcr->mount_next_volume = false; + /* + * We just have a new tape up, now read the label (first record) + * and pass it off to the callback routine, then continue +@@ -113,10 +121,10 @@ + display_tape_error_status(jcr, dev); + if (forge_on || jcr->ignore_label_errors) { + fsr_dev(dev, 1); /* try skipping bad record */ +- Dmsg0(000, "Did fsr\n"); ++ Pmsg0(000, "Did fsr\n"); + continue; /* try to continue */ + } +- ok = false; ++ ok = false; /* stop everything */ + break; + } + } +@@ -259,7 +267,11 @@ + Dmsg2(300, "Current postion (file:block) %d:%d\n", + dev->file, dev->block_num); + jcr->bsr->mount_next_volume = false; +-// dev->state |= ST_EOT; ++ if (!dev->at_eot()) { ++ /* Set EOT flag to force mount of next Volume */ ++ jcr->mount_next_volume = true; ++ dev->state |= ST_EOT; ++ } + rec->Block = 0; + return 1; + } diff --git a/Branch-2.2/bacula/patches/1.36.2/1.36.2-store.patch b/Branch-2.2/bacula/patches/1.36.2/1.36.2-store.patch new file mode 100644 index 0000000000..4bf000c8d8 --- /dev/null +++ b/Branch-2.2/bacula/patches/1.36.2/1.36.2-store.patch @@ -0,0 +1,29 @@ + + This patch fails a job if no Storage resource is specified and + the job attempts to call the SD. + + Apply the patch to 1.36.2 with: + + cd + patch -p0 <1.36.2-store.patch + make + ... + +Index: src/dird/msgchan.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/dird/msgchan.c,v +retrieving revision 1.32.4.1 +diff -u -r1.32.4.1 msgchan.c +--- src/dird/msgchan.c 14 Feb 2005 10:02:21 -0000 1.32.4.1 ++++ src/dird/msgchan.c 18 Mar 2005 15:40:53 -0000 +@@ -66,6 +66,10 @@ + BSOCK *sd; + STORE *store; + ++ if (!jcr->storage[0]) { ++ Jmsg(jcr, M_FATAL, 0, _("Attempt to contact the Storage daemon with no Storage resource.\n")); ++ return false; ++ } + store = (STORE *)jcr->storage[0]->first(); + + /* diff --git a/Branch-2.2/bacula/patches/1.36.2/1.36.2-tray-monitor-memleak.patch b/Branch-2.2/bacula/patches/1.36.2/1.36.2-tray-monitor-memleak.patch new file mode 100644 index 0000000000..54f384612e --- /dev/null +++ b/Branch-2.2/bacula/patches/1.36.2/1.36.2-tray-monitor-memleak.patch @@ -0,0 +1,92 @@ + + This patch should fix memory leaks in tray-monitor. + Apply the patch to 1.36.2 with: + + cd /src/tray-monitor + patch -p0 <1.36.2-tray-monitor-memleak.patch + make + ... + +Index: tray-monitor.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/tray-monitor/tray-monitor.c,v +retrieving revision 1.19 +diff -r1.19 tray-monitor.c +36a37,38 +> #define TRAY_DEBUG_MEMORY 0 +> +50d51 +< static POOLMEM *args; +135a137,157 +> int sm_line = 0; +> +> #if TRAY_DEBUG_MEMORY +> gpointer smt_malloc(gsize n_bytes) { +> return sm_malloc("GLib", sm_line, n_bytes); +> } +> +> gpointer smt_realloc(gpointer mem, gsize n_bytes) { +> return sm_realloc("GLib", sm_line, mem, n_bytes); +> } +> +> gpointer smt_calloc(gsize n_blocks, +> gsize n_block_bytes) { +> return sm_calloc("GLib", sm_line, n_blocks, n_block_bytes); +> } +> +> void smt_free(gpointer mem) { +> sm_free("Glib", sm_line, mem); +> } +> #endif +> +142a165,175 +> #if TRAY_DEBUG_MEMORY +> GMemVTable smvtable; +> smvtable.malloc = &smt_malloc; +> smvtable.realloc = &smt_realloc; +> smvtable.free = &smt_free; +> smvtable.calloc = &smt_calloc; +> smvtable.try_malloc = NULL; +> smvtable.try_realloc = NULL; +> g_mem_set_vtable(&smvtable); +> #endif +> +154d186 +< args = get_pool_memory(PM_FNAME); +255c287 +< g_assert((xpm_generic_var[i] = (char*)g_malloc(strlen(xpm_generic[i])*sizeof(char)))); +--- +> g_assert((xpm_generic_var[i] = (char*)g_malloc((strlen(xpm_generic[i])+1)*sizeof(char)))); +412a445,448 +> +> g_source_remove(timerTag); +> +> sm_line = 0; +422d457 +< free_pool_memory(args); +429a465,468 +> +> gtk_object_destroy(GTK_OBJECT(window)); +> gtk_object_destroy(GTK_OBJECT(mTrayMenu)); +> term_msg(); +430a470,473 +> #if TRAY_DEBUG_MEMORY +> sm_dump(false); +> #endif +> +534c577,581 +< GtkTextBuffer *newbuffer = gtk_text_buffer_new(NULL); +--- +> sm_line++; +> #if TRAY_DEBUG_MEMORY +> printf("sm_line=%d\n", sm_line); +> #endif +> GtkTextBuffer *newbuffer; +546a594,595 +> newbuffer = gtk_text_buffer_new(NULL); +> +558a608,609 +> g_slist_free(list); +> +963a1015 +> g_object_unref(G_OBJECT(pixbuf)); diff --git a/Branch-2.2/bacula/patches/1.36.2/1.36.2-win32-drive.patch b/Branch-2.2/bacula/patches/1.36.2/1.36.2-win32-drive.patch new file mode 100644 index 0000000000..373f04ee6e --- /dev/null +++ b/Branch-2.2/bacula/patches/1.36.2/1.36.2-win32-drive.patch @@ -0,0 +1,32 @@ + + This patch will prevent the Win32 FD from printing an error message + when it attempts to restore the permissions for a drive (which Win32 + doesn't permit). The error is harmless in any case. + Apply the patch to 1.36.2 with + + cd + patch -p0 <1.36.2-win32-drive.patch + make + ... + + +Index: src/findlib/create_file.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/findlib/create_file.c,v +retrieving revision 1.34 +diff -u -r1.34 create_file.c +--- src/findlib/create_file.c 27 Jul 2004 21:00:33 -0000 1.34 ++++ src/findlib/create_file.c 9 Mar 2005 17:52:50 -0000 +@@ -271,6 +271,12 @@ + if ((bopen(bfd, attr->ofname, O_WRONLY|O_BINARY, 0)) < 0) { + berrno be; + be.set_errno(bfd->berrno); ++#ifdef HAVE_WIN32 ++ /* Check for trying to create a drive, if so, skip */ ++ if (attr->ofname[1] == ':' && attr->ofname[2] == '/' && attr->ofname[3] == 0) { ++ return CF_SKIP; ++ } ++#endif + Jmsg2(jcr, M_ERROR, 0, _("Could not open %s: ERR=%s\n"), + attr->ofname, be.strerror()); + return CF_ERROR; diff --git a/Branch-2.2/bacula/patches/1.36.2/1.36.2-wx-console-bugfixes.diff b/Branch-2.2/bacula/patches/1.36.2/1.36.2-wx-console-bugfixes.diff new file mode 100644 index 0000000000..26e385a32f --- /dev/null +++ b/Branch-2.2/bacula/patches/1.36.2/1.36.2-wx-console-bugfixes.diff @@ -0,0 +1,123 @@ +Index: CHANGELOG +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/wx-console/CHANGELOG,v +retrieving revision 1.42.8.2 +retrieving revision 1.42 +diff -r1.42.8.2 -r1.42 +1,9d0 +< 24-03-2005 : +< - wxbMainFrame : Fix a bug with GTK+-1.2 which caused wx-console to crash +< when starting. +< - wxbRestorePanel : Fix a major bug which caused wx-console to enter in an +< infinite loop which allocate a lot of memory and could make the system crash. +< +< 10-03-2005 : +< - wxbMainFrame : Fix bug #0000221 (Debian 292517) +< +Index: wxbmainframe.cpp +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/wx-console/wxbmainframe.cpp,v +retrieving revision 1.30.6.2 +retrieving revision 1.30 +diff -r1.30.6.2 -r1.30 +7c7 +< * Version $Id$ +--- +> * Version $Id$ +210,211d209 +< lockedbyconsole = false; +< +317a316,317 +> lockedbyconsole = false; +> +650,651c650,651 +< if (res == -1) { //Cancel pressed +< Send(".\n"); +--- +> if (res == -1) { +> Send("\n"); +Index: wxbrestorepanel.cpp +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/wx-console/wxbrestorepanel.cpp,v +retrieving revision 1.40.8.1 +retrieving revision 1.40 +diff -r1.40.8.1 -r1.40 +7c7 +< * Version $Id$ +--- +> * Version $Id$ +411c411 +< markWhenCommandDone = false; +--- +> markWhenListingDone = false; +1987a1988 +> AddPendingEvent(event); +1996a1998 +> AddPendingEvent(event); +2002a2005 +> AddPendingEvent(event); +2015a2019 +> AddPendingEvent(event); +2024c2028 +< markWhenCommandDone = false; +--- +> markWhenListingDone = false; +2028c2032 +< if (markWhenCommandDone) { +--- +> if (markWhenListingDone) { +2041a2046 +> csprint("Tree marked", CS_DEBUG); +2044c2049 +< markWhenCommandDone = !markWhenCommandDone; +--- +> markWhenListingDone = !markWhenListingDone; +2045a2051 +> AddPendingEvent(event); +2049d2054 +< markWhenCommandDone = false; +2051,2054c2056 +< if (markWhenCommandDone) { +< CmdMark(event.GetItem(), NULL, 0); +< tree->Refresh(); +< } +--- +> //event.Skip(); +2065a2068 +> AddPendingEvent(event); +2080a2084 +> AddPendingEvent(event); +2095a2100 +> AddPendingEvent(event); +2105a2111,2112 +> AddPendingEvent(event); +> //event.Skip(); +2125c2132 +< +--- +> +2140a2148,2149 +> AddPendingEvent(event); +> //event.Skip(); +2176a2186 +> AddPendingEvent(event); +2212a2223 +> AddPendingEvent(event); +2241a2253 +> AddPendingEvent(event); +2270a2283 +> AddPendingEvent(event); +Index: wxbrestorepanel.h +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/wx-console/wxbrestorepanel.h,v +retrieving revision 1.19.10.1 +retrieving revision 1.19 +diff -r1.19.10.1 -r1.19 +7c7 +< * Version $Id$ +--- +> * Version $Id$ +154c154 +< bool markWhenCommandDone; //If an item should be (un)marked after the current listing/marking is done +--- +> bool markWhenListingDone; diff --git a/Branch-2.2/bacula/patches/1.36.2/patches-1.36.2 b/Branch-2.2/bacula/patches/1.36.2/patches-1.36.2 new file mode 100644 index 0000000000..05e2c48713 --- /dev/null +++ b/Branch-2.2/bacula/patches/1.36.2/patches-1.36.2 @@ -0,0 +1,47 @@ + +04Mar05 1.36.2-level.patch + This patch should fix a problem with th %l editing in the + client (FD) where it edited nothing. With this fix, it should + edit "since". + +04Mar05 1.36.2-pool.patch + This patch corrects a problem preventing multiple + simultaneous jobs from different pools. + +09Mar05 1.36.2-win32-drive.patch + This patch will prevent the Win32 FD from printing an error message + when it attempts to restore the permissions for a drive (which Win32 + doesn't permit). The error is harmless in any case. + +15Mar05 1.36.2-netbsd.patch + This patch corrects a compile problem because of no statfs() + on NetBSD. The patch was submitted by kardel with bug 258. + +16Mar05 1.36.2-console.patch + This patch causes the output directed to a file to be + flushed after every line. This is a bit overkill, IMO, but + a user complained about it. + +17Mar05 1.36.2-restore-speed.patch + This patch will fix a subtle bug that was introduced in 1.36.2 + which causes Bacula to be very slow restoring a few files. This + is because it reads completely to the end of the Volume rather + than stopping when all the files on the Volume are loaded. The + introduction of the bug was caused by a patch that fixed + Bacula truncating tapes after a restore. + Note that all source files will be rebuilt during the make. + +18Mar05 1.36.2-store.patch + This patch fails a job if no Storage resource is specified and + the job attempts to call the SD. + +18Mar05 1.36.2-reschedule.patch + This patch should fix a Segfault bug when a job is rescheduled. + The storage pointers were being released when they should not + have been. + +24Mar05 1.36.2-wx-console-bugfixes.patch + Major wx-console fixes (see src/wx-console/CHANGELOG for details). + +28Mar05 1.36.2-tray-monitor-memleak.patch + This patch should fix memory leaks in tray-monitor. diff --git a/Branch-2.2/bacula/patches/1.36.3/1.36.3-tray-monitor-fix-broken-pipe.diff b/Branch-2.2/bacula/patches/1.36.3/1.36.3-tray-monitor-fix-broken-pipe.diff new file mode 100644 index 0000000000..4725dfa0b3 --- /dev/null +++ b/Branch-2.2/bacula/patches/1.36.3/1.36.3-tray-monitor-fix-broken-pipe.diff @@ -0,0 +1,22 @@ +Index: src/tray-monitor/tray-monitor.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/tray-monitor/tray-monitor.c,v +retrieving revision 1.21 +diff -r1.21 tray-monitor.c +455c455,468 +< writecmd(&items[i], "quit"); +--- +> switch (items[i].type) { +> case R_DIRECTOR: +> trayMessage("Disconnecting from Director %s:%d\n", ((DIRRES*)items[i].resource)->address, ((DIRRES*)items[i].resource)->DIRport); +> break; +> case R_CLIENT: +> trayMessage("Disconnecting from Client %s:%d\n", ((CLIENT*)items[i].resource)->address, ((CLIENT*)items[i].resource)->FDport); +> break; +> case R_STORAGE: +> trayMessage("Disconnecting from Storage %s:%d\n", ((STORE*)items[i].resource)->address, ((STORE*)items[i].resource)->SDport); +> break; +> default: +> break; +> } +> //writecmd(&items[i], "quit"); diff --git a/Branch-2.2/bacula/patches/1.36.3/1.36.3-wx-console-fix-dir-alignment.diff b/Branch-2.2/bacula/patches/1.36.3/1.36.3-wx-console-fix-dir-alignment.diff new file mode 100644 index 0000000000..253fdea837 --- /dev/null +++ b/Branch-2.2/bacula/patches/1.36.3/1.36.3-wx-console-fix-dir-alignment.diff @@ -0,0 +1,48 @@ +Index: src/wx-console/wxbrestorepanel.cpp +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/wx-console/wxbrestorepanel.cpp,v +retrieving revision 1.40.8.1 +diff -u -r1.40.8.1 wxbrestorepanel.cpp +--- src/wx-console/wxbrestorepanel.cpp 24 Mar 2005 14:52:55 -0000 1.40.8.1 ++++ src/wx-console/wxbrestorepanel.cpp 5 May 2005 18:45:05 -0000 +@@ -1469,23 +1469,29 @@ + wxString* wxbRestorePanel::ParseList(wxString line) { + /* See ls_output in dird/ua_tree.c */ + +- //drwxrwxrwx 1 root root 0 2004-04-03 14:35:21 f:/tocd/NVSU 1.00.00/ +- //+ 10 + ++ + 8 + + 8 ++ 8 + + 19 + *+ -> +- //0 12 15 24 32 42 62 +- ++ //drwxrwxrwx 111 root root 0 2004-04-03 14:35:21 f:/tocd/NVSU 1.00.00/ ++ //+ 10 + +i+ + 8 + + 8 ++ 8 + + 19 + *+ -> ++ //0 12 i+15 i+24 i+32 i+42 i+62 ++ ++ int i; ++ + if (line.Length() < 63) + return NULL; + + wxString* ret = new wxString[9]; + + ret[0] = line.Mid(0, 10).Trim(); +- ret[1] = line.Mid(12, 2).Trim(); +- ret[2] = line.Mid(15, 8).Trim(); +- ret[3] = line.Mid(24, 8).Trim(); +- ret[4] = line.Mid(32, 8).Trim(); +- ret[5] = line.Mid(42, 19).Trim(); +- ret[6] = line.Mid(62, 1); +- ret[7] = line.Mid(63).Trim(); ++ ++ /* Column 1 has a variable width */ ++ i = line.find(' ', 14) - 14; ++ ret[1] = line.Mid(12, 2+i).Trim(); ++ ++ ret[2] = line.Mid(15+i, 8).Trim(); ++ ret[3] = line.Mid(24+i, 8).Trim(); ++ ret[4] = line.Mid(32+i, 8).Trim(); ++ ret[5] = line.Mid(42+i, 19).Trim(); ++ ret[6] = line.Mid(62+i, 1); ++ ret[7] = line.Mid(63+i).Trim(); + + if (ret[6] == " ") ret[6] = ""; + diff --git a/Branch-2.2/bacula/patches/1.36.3/patches-1.36.3 b/Branch-2.2/bacula/patches/1.36.3/patches-1.36.3 new file mode 100644 index 0000000000..fced06c28f --- /dev/null +++ b/Branch-2.2/bacula/patches/1.36.3/patches-1.36.3 @@ -0,0 +1,5 @@ +05May05 1.36.3-wx-console-fix-dir-alignment.diff + Fix a problem when link count for a file is greater than 99 (bug #304). + +25Apr05 1.36.3-tray-monitor-fix-broken-pipe.diff + Fix broken pipe when closing bacula-tray-monitor (bug #292). diff --git a/Branch-2.2/bacula/patches/1.38.x/1.38.1-to-1.38.2.patch b/Branch-2.2/bacula/patches/1.38.x/1.38.1-to-1.38.2.patch new file mode 100644 index 0000000000..be37702df5 --- /dev/null +++ b/Branch-2.2/bacula/patches/1.38.x/1.38.1-to-1.38.2.patch @@ -0,0 +1,8098 @@ + + This patch fixes the following bugs: + +- Fix crash in tray-monitor when daemon disconnects. Bug #479. +- Fix bnet-server bug found on OpenBSD. Bug #486 (bug originator + says that this patch does not fix his problem) +- Fix cancel failure bug. Bug #481 +- Fix failure when Pool name has spaces. Bug #487 +- Fix SD crash in autochanger code. Mutex failure. Bug #488 +- Fix a couple of free()s in src/filed/acl.c +- Fix memory overrun in bfile.c in building OS X resource + fork filename. Bug #489 +- Add Pool name to SD status output. +- Add Python install dir for Solaris to configure. Bug #492 + +This patch is applied to Bacula source version 1.38.1 and will +produce Bacula source version 1.38.2. Apply it with: + + cd + ./configure (your options) if not already done + patch -p0 <1.38.1-to-1.38.2.patch + make + make install + +Index: ChangeLog +=================================================================== +RCS file: /cvsroot/bacula/bacula/ChangeLog,v +retrieving revision 1.154.2.7 +retrieving revision 1.154.2.8 +diff -u -r1.154.2.7 -r1.154.2.8 +--- ChangeLog 15 Nov 2005 09:27:19 -0000 1.154.2.7 ++++ ChangeLog 22 Nov 2005 10:50:54 -0000 1.154.2.8 +@@ -1,4 +1,15 @@ + ++Changes to 1.38.2: ++- Fix crash in tray-monitor when daemon disconnects. Bug #479. ++- Fix bnet-server bug found on OpenBSD. Bug #486 ++- Fix cancel failure bug. Bug #481 ++- Fix failure when Pool name has spaces. Bug #487 ++- Fix SD crash in autochanger code. Mutex failure. Bug #488 ++- Fix a couple of free()s in src/filed/acl.c ++- Fix memory overrun in bfile.c in building OS X resource ++ fork filename. Bug #489 ++- Add Pool name to SD status output. ++- Add Python install dir for Solaris to configure. Bug #492 + + Changes to 1.38.1: + - Apply SunOS patch for ACLs submitted by David Duchscher. +Index: ReleaseNotes +=================================================================== +RCS file: /cvsroot/bacula/bacula/ReleaseNotes,v +retrieving revision 1.147.2.9 +retrieving revision 1.147.2.10 +diff -u -r1.147.2.9 -r1.147.2.10 +--- ReleaseNotes 15 Nov 2005 09:27:19 -0000 1.147.2.9 ++++ ReleaseNotes 22 Nov 2005 10:50:54 -0000 1.147.2.10 +@@ -1,10 +1,22 @@ + +- Release Notes for Bacula 1.38.1 ++ Release Notes for Bacula 1.38.2 + + Bacula code: Total files = 420 Total lines = 138,440 (*.h *.c *.in) + 20,440 additional lines of code since version 1.36.3 + +-Changes since 1.38.0: ++Changes to 1.38.2: ++- Fix crash in tray-monitor when daemon disconnects. Bug #479. ++- Fix bnet-server bug found on OpenBSD. Bug #486 ++- Fix cancel failure bug. Bug #481 ++- Fix failure when Pool name has spaces. Bug #487 ++- Fix SD crash in autochanger code. Mutex failure. Bug #488 ++- Fix a couple of free()s in src/filed/acl.c ++- Fix memory overrun in bfile.c in building OS X resource ++ fork filename. Bug #489 ++- Add Pool name to SD status output. ++- Add Python install dir for Solaris to configure. Bug #492 ++ ++Changes to 1.38.1: + - Corrected ACL for Solaris (David Duchscher and Attila Fulop). + - Add bacula_mail_summary.sh to examples directory. It makes + a single email summary of any number of jobs. Submitted +Index: configure +=================================================================== +RCS file: /cvsroot/bacula/bacula/configure,v +retrieving revision 1.203.2.5 +retrieving revision 1.203.2.6 +diff -u -r1.203.2.5 -r1.203.2.6 +--- configure 13 Nov 2005 10:51:17 -0000 1.203.2.5 ++++ configure 22 Nov 2005 10:50:54 -0000 1.203.2.6 +@@ -14948,7 +14948,7 @@ + PYTHON_LIBS= + if test "$withval" != "no"; then + if test "$withval" = "yes"; then +- for python_root in /usr /usr/local; do ++ for python_root in /usr /usr/local /usr/sfw; do + if test -f $python_root/include/python2.2/Python.h; then + PYTHON_INCDIR=-I$python_root/include/python2.2 + PYTHON_LIBS="-L$python_root/lib/python2.2/config -lpython2.2" +Index: kernstodo +=================================================================== +RCS file: /cvsroot/bacula/bacula/kernstodo,v +retrieving revision 1.570.2.6 +retrieving revision 1.570.2.7 +diff -u -r1.570.2.6 -r1.570.2.7 +--- kernstodo 4 Nov 2005 09:16:49 -0000 1.570.2.6 ++++ kernstodo 22 Nov 2005 10:50:55 -0000 1.570.2.7 +@@ -1,5 +1,5 @@ + Kern's ToDo List +- 03 November 2005 ++ 21 November 2005 + + Major development: + Project Developer +@@ -7,8 +7,6 @@ + Version 1.37 Kern (see below) + ======================================================== + +-Final items for 1.37 before release: +- + Document: + - Does ClientRunAfterJob fail the job on a bad return code? + - Document cleaning up the spool files: +@@ -18,6 +16,8 @@ + - Does WildFile match against full name? Doc. + + For 1.39: ++- Make sure that all do_prompt() calls in Dir check for ++ -1 (error) and -2 (cancel) returns. + - Look at -D_FORTIFY_SOURCE=2 + - Add Win32 FileSet definition somewhere + - Look at fixing restore status stats in SD. +@@ -27,6 +27,12 @@ + encountered, read many times (as it currently does), and if the + block cannot be read, skip to the next block, and try again. If + that fails, skip to the next file and try again, ... ++- Add level table: ++ create table LevelType (LevelType binary(1), LevelTypeLong tinyblob); ++ insert into LevelType (LevelType,LevelTypeLong) values ++ ("F","Full"), ++ ("D","Diff"), ++ ("I","Inc"); + - Add ACL to restore only to original location. + - Add a recursive mark command (rmark) to restore. + - "Minimum Job Interval = nnn" sets minimum interval between Jobs +@@ -1246,219 +1252,4 @@ + ==== + + +-=== Done +-- Save mount point for directories not traversed with onefs=yes. +-- Add seconds to start and end times in the Job report output. +-- if 2 concurrent backups are attempted on the same tape +- drive (autoloader) into different tape pools, one of them will exit +- fatally instead of halting until the drive is idle +-- Update StartTime if job held in Job Queue. +-- Look at www.nu2.nu/pebuilder as a helper for full windows +- bare metal restore. (done by Scott) +-- Fix orphanned buffers: +- Orphaned buffer: 24 bytes allocated at line 808 of rufus-dir job.c +- Orphaned buffer: 40 bytes allocated at line 45 of rufus-dir alist.c +-- Implement Preben's suggestion to add +- File System Types = ext2, ext3 +- to FileSets, thus simplifying backup of *all* local partitions. +-- Try to open a device on each Job if it was not opened +- when the SD started. +-- Add dump of VolSessionId/Time and FileIndex with bls. +-- If Bacula does not find the right tape in the Autochanger, +- then mark the tape in error and move on rather than asking +- for operator intervention. +-- Cancel command should include JobId in list of Jobs. +-- Add performance testing hooks +-- Bootstrap from JobMedia records. +-- Implement WildFile and WildDir to solve problem of +- saving only *.doc files. +-- Fix +- Please use the "label" command to create a new Volume for: +- Storage: DDS-4-changer +- Media type: +- Pool: Default +- label +- The defined Storage resources are: +-- Copy Changer Device and Changer Command from Autochanger +- to Device resource in SD if none given in Device resource. +-- 1. Automatic use of more than one drive in an autochanger (done) +-- 2. Automatic selection of the correct drive for each Job (i.e. +- selects a drive with an appropriate Volume for the Job) (done) +-- 6. Allow multiple simultaneous Jobs referencing the same pool write +- to several tapes (some new directive(s) are are probably needed for +- this) (done) +-- Locking (done) +-- Key on Storage rather than Pool (done) +-- Allow multiple drives to use same Pool (change jobq.c DIR) (done). +-- Synchronize multiple drives so that not more +- than one loads a tape and any time (done) +-- 4. Use Changer Device and Changer Command specified in the +- Autochanger resource, if none is found in the Device resource. +- You can continue to specify them in the Device resource if you want +- or need them to be different for each device. +-- 5. Implement a new Device directive (perhaps "Autoselect = yes/no") +- that can allow a Device be part of an Autochanger, and hence the changer +- script protected, but if set to no, will prevent the Device from being +- automatically selected from the changer. This allows the device to +- be directly accessed through its Device name, but not through the +- AutoChanger name. +-#6 Select one from among Multiple Storage Devices for Job +-#5 Events that call a Python program +- (Implemented in Dir/SD) +-- Make sure the Device name is in the Query packet returned. +-- Don't start a second file job if one is already running. +-- Implement EOF/EOV labels for ANSI labels +-- Implement IBM labels. +-- When Python creates a new label, the tape is immediately +- recycled and no label created. This happens when using +- autolabeling -- even when Python doesn't generate the name. +-- Scratch Pool where the volumes can be re-assigned to any Pool. +-- 28-Mar 23:19 rufus-sd: acquire.c:379 Device "DDS-4" (/dev/nst0) +- is busy reading. Job 6 canceled. +-- Remove separate thread for opening devices in SD. On the other +- hand, don't block waiting for open() for devices. +-- Fix code to either handle updating NumVol or to calculate it in +- Dir next_vol.c +-- Ensure that you cannot exclude a directory or a file explicitly +- Included with File. +-#4 Embedded Python Scripting +- (Implemented in Dir/SD/FD) +-- Add Python writable variable for changing the Priority, +- Client, Storage, JobStatus (error), ... +-- SD Python +- - Solicit Events +-- Add disk seeking on restore; turn off seek on tapes. +- stored/match_bsr.c +-- Look at dird_conf.c:1000: warning: `int size' +- might be used uninitialized in this function +-- Indicate when a Job is purged/pruned during restore. +-- Implement some way to turn off automatic pruning in Jobs. +-- Implement a way an Admin Job can prune, possibly multiple +- clients -- Python script? +-- Look at Preben's acl.c error handling code. +-- SD crashes after a tape restore then doing a backup. +-- If drive is opened read/write, close it and re-open +- read-only if doing a restore, and vice-versa. +-- Windows restore: +- data-fd: RestoreFiles.2004-12-07_15.56.42 Error: +- > ..\findlib\../../findlib/create_file.c:275 Could not open e:/: ERR=Der +- > Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen +- > Prozess verwendet wird. +- Restore restores all files, but then fails at the end trying +- to set the attributes of e: +- from failed jobs.- Resolve the problem between Device name and Archive name, +- and fix SD messages. +-- Tell the "restore" user when browsing is no longer possible. +-- Add a restore directory-x +-- Write non-optimized bsrs from the JobMedia and Media records, +- even after Files are pruned. +-- Delete Stripe and Copy from VolParams to save space. +-- Fix option 2 of restore -- list where file is backed up -- require Client, +- then list last 20 backups. +-- Finish implementation of passing all Storage and Device needs to +- the SD. +-- Move test for max wait time exceeded in job.c up -- Peter's idea. +-## Consider moving docs to their own project. +-## Move rescue to its own project. +-- Add client version to the Client name line that prints in +- the Job report. +-- Fix the Rescue CDROM. +-- By the way: on page http://www.bacula.org/?page=tapedrives , at the +- bottom, the link to "Tape Testing Chapter" is broken. It goes to +- /html-manual/... while the others point to /rel-manual/... +-- Device resource needs the "name" of the SD. +-- Specify a single directory to restore. +-- Implement MediaType keyword in bsr? +-- Add a date and time stamp at the beginning of every line in the +- Job report (Volker Sauer). +-- Add level to estimate command. +-- Add "limit=n" for "list jobs" +-- Make bootstrap filename unique. +-- Make Dmsg look at global before calling subroutine. +-- From Chris Hull: +- it seems to be complaining about 12:00pm which should be a valid 12 +- hour time. I changed the time to 11:59am and everything works fine. +- Also 12:00am works fine. 0:00pm also works (which I don't think +- should). None of the values 12:00pm - 12:59pm work for that matter. +-- Require restore via the restore command or make a restore Job +- get the bootstrap file. +-- Implement Maximum Job Spool Size +-- Fix 3993 error in SD. It forgets to look at autochanger +- resource for device command, ... +-- 3. Prevent two drives requesting the same Volume in any given +- autochanger, by checking if a Volume is mounted on another drive +- in an Autochanger. +-- Upgrade to MySQL 4.1.12 See: +- http://dev.mysql.com/doc/mysql/en/Server_SQL_mode.html +-- Add # Job Level date to bsr file +-- Implement "PreferMountedVolumes = yes|no" in Job resource. +-## Integrate web-bacula into a new Bacula project with +- bimagemgr. +-- Cleaning tapes should have Status "Cleaning" rather than append. +-- Make sure that Python has access to Client address/port so that +- it can check if Clients are alive. +-- Review all items in "restore". +-- Fix PostgreSQL GROUP BY problems in restore. +-- Fix PostgreSQL sql problems in bugs. +-- After rename +- 04-Jul 13:01 MainSD: Rufus.2005-07-04_01.05.02 Warning: Director wanted Volume +- "DLT-13Feb04". +- Current Volume "DLT-04Jul05" not acceptable because: +- 1997 Volume "DLT-13Feb04" not in catalog. +- 04-Jul 13:01 MainSD: Please mount Volume "DLT-04Jul05" on Storage Device +- "HP DLT 80" (/dev/nst0) for Job Rufus.2005-07-04_01.05.02 +-## Create a new GUI chapter explaining all the GUI programs. +-- Make "update slots" when pointing to Autochanger, remove +- all Volumes from other drives. "update slots all-drives"? +- No, this is done by modifying mtx-changer to list what is +- in the drives. +-- Finish TLS implementation. +-- Port limiting -m in iptables to prevent DoS attacks +- could cause broken pipes on Bacula. +-6. Build and test the Volume Shadow Copy (VSS) for Win32. +-- Allow cancel of unknown Job +-- State not saved when closing Win32 FD by icon +-- bsr-opt-test fails. bsr deleted. Fix. +-- Move Python daemon variables from Job to Bacula object. +- WorkingDir, ConfigFile +-- Document that Bootstrap files can be written with cataloging +- turned off. +-- Document details of ANSI/IBM labels +-- OS linux 2.4 +- 1) ADIC, DLT, FastStor 4000, 7*20GB +-- Linux Sony LIB-D81, AIT-3 library works. +-- Doc the following +- to activate, check or disable the hardware compression feature on my +- exb-8900 i use the exabyte "MammothTool" you can get it here: +- http://www.exabyte.com/support/online/downloads/index.cfm +- There is a solaris version of this tool. With option -C 0 or 1 you can +- disable or activate compression. Start this tool without any options for +- a small reference. +-- Document Heartbeat Interval in the dealing with firewalls section. +-- Document new CDROM directory. +-- On Win32 working directory must have drive letter ???? +-- On Win32 working directory must be writable by SYSTEM to +- do restores. +-- Document that ChangerDevice is used for Alert command. +-- Add better documentation on how restores can be done +-8. Take one more try at making DVD writing work (no go) +-7. Write a bacula-web document +-- Why isn't the DEVICE structure defined when doing +- a reservation? +-- Multi-drive changer seems to only use drive 0 +- Multiple drives don't seem to be opened. +-- My database is growing +-- Call GetLastError() in the berrno constructor rather +- than delaying until strerror. +-- Tape xxx in drive 0, requested in drive 1 +-- The mount command does not work with drives other than 0. +-- A mount should cause the SD to re-examine what Slot is +- loaded. +-- The SD locks on to the first available drive then +- wants a Volume that is released but in another drive -- +- chaos. +-- Run the regression scripts on Solaris and FreeBSD +-- Figure out how to package gui, and rescue programs. +-- Add a .dir command to restore tree code to eliminate the problem +-- Mount after manually unloading changer causes hang in SD +-- Fix JobACL with restore by JobId. ++=== Done -- see kernsdone +Index: kes-1.38 +=================================================================== +RCS file: /cvsroot/bacula/bacula/kes-1.38,v +retrieving revision 1.1.2.13 +retrieving revision 1.1.2.14 +diff -u -r1.1.2.13 -r1.1.2.14 +--- kes-1.38 14 Nov 2005 20:20:38 -0000 1.1.2.13 ++++ kes-1.38 22 Nov 2005 10:50:55 -0000 1.1.2.14 +@@ -3,6 +3,20 @@ + + General: + ++Changes to 1.38.2: ++20Oct05 ++- Fix crash in tray-monitor when daemon disconnects. Bug #479. ++- Fix bnet-server bug found on OpenBSD. Bug #486 (bug originator ++ says this does not fix *his* bug). ++- Fix cancel failure bug. Bug #481 ++- Fix failure when Pool name has spaces. Bug #487 ++- Fix SD crash in autochanger code. Mutex failure. Bug #488 ++- Fix a couple of free()s in src/filed/acl.c ++- Fix memory overrun in bfile.c in building OS X resource ++ fork filename. Bug #489 ++- Add Pool name to SD status output. ++- Add Python install dir for Solaris to configure. Bug #492 ++ + Changes to 1.38.1: + 14Oct05 + - Apply SunOS patch for ACLs submitted by David Duchscher. +Index: projects +=================================================================== +RCS file: /cvsroot/bacula/bacula/projects,v +retrieving revision 1.12.2.3 +retrieving revision 1.12.2.4 +diff -u -r1.12.2.3 -r1.12.2.4 +--- projects 10 Nov 2005 20:25:27 -0000 1.12.2.3 ++++ projects 22 Nov 2005 10:50:55 -0000 1.12.2.4 +@@ -228,7 +228,175 @@ + + Why: Performance enhancement. + ++Item 13: Let Bacula log tape usage and handle drive cleaning cycles. ++ Date: November 11, 2005 ++ Origin: Arno Lehmann ++ Status: ++ ++ What: Make Bacula manage tape life cycle information and drive ++ cleaning cycles. ++ ++ Why: Both parts of this project are important when operating backups. ++ We need to know which tapes need replacement, and we need to ++ make sure the drives are cleaned when necessary. While many ++ tape libraries and even autoloaders can handle all this ++ automatically, support by Bacula can be helpful for smaller ++ (older) libraries and single drives. Also, checking drive ++ status during operation can prevent some failures (as I had to ++ learn the hard way...) ++ ++ Notes: First, Bacula could (and even does, to some limited extent) ++ record tape and drive usage. For tapes, the number of mounts, ++ the amount of data, and the time the tape has actually been ++ running could be recorded. Data fields for Read and Write time ++ and Nmber of mounts already exist in the catalog (I'm not sure ++ if VolBytes is the sum of all bytes ever written to that volume ++ by Bacula). This information can be important when determining ++ which media to replace. For the tape drives known to Bacula, ++ similar information is interesting to determine the device ++ status and expected life time: Time it's been Reading and ++ Writing, number of tape Loads / Unloads / Errors. This ++ information is not yet recorded as far as I know. ++ ++ The next step would be implementing drive cleaning setup. ++ Bacula already has knowledge about cleaning tapes. Once it has ++ some information about cleaning cycles (measured in drive run ++ time, number of tapes used, or calender days, for example) it ++ can automatically execute tape cleaning (with an autochanger, ++ obviously) or ask for operator assistence loading a cleaning ++ tape. ++ ++ The next step would be to implement TAPEALERT checks not only ++ when changing tapes and only sending he information to the ++ administrator, but rather checking after each tape error, ++ checking on a regular basis (for example after each tape file), ++ and also before unloading and after loading a new tape. Then, ++ depending on the drives TAPEALERT state and the know drive ++ cleaning state Bacula could automatically schedule later ++ cleaning, clean immediately, or inform the operator. ++ ++ Implementing this would perhaps require another catalog change ++ and perhaps major changes in SD code and the DIR-SD protocoll, ++ so I'd only consider this worth implementing if it would ++ actually be used or even needed by many people. ++ ++Item 14: Merging of multiple backups into a single one. (Also called Synthetic ++ Backup or Consolidation). ++ ++ Origin: Marc Cousin and Eric Bollengier ++ Date: 15 November 2005 ++ Status: Depends on first implementing project Item 1 (Migration). ++ ++ What: A merged backup is a backup made without connecting to the Client. ++ It would be a Merge of existing backups into a single backup. ++ In effect, it is like a restore but to the backup medium. ++ ++ For instance, say that last sunday we made a full backup. Then ++ all week long, we created incremental backups, in order to do ++ them fast. Now comes sunday again, and we need another full. ++ The merged backup makes it possible to do instead an incremental ++ backup (during the night for instance), and then create a merged ++ backup during the day, by using the full and incrementals from ++ the week. The merged backup will be exactly like a full made ++ sunday night on the tape, but the production interruption on the ++ Client will be minimal, as the Client will only have to send ++ incrementals. ++ ++ In fact, if it's done correctly, you could merge all the ++ Incrementals into single Incremental, or all the Incrementals ++ and the last Differential into a new Differential, or the Full, ++ last differential and all the Incrementals into a new Full ++ backup. And there is no need to involve the Client. ++ ++ Why: The benefit is that : ++ - the Client just does an incremental ; ++ - the merged backup on tape is just as a single full backup, ++ and can be restored very fast. ++ ++ This is also a way of reducing the backup data since the old ++ data can then be pruned (or not) from the catalog, possibly ++ allowing older volumes to be recycled ++ ++Item 15: Automatic disabling of devices ++ Date: 2005-11-11 ++ Origin: Peter Eriksson ++ Status: ++ ++ What: After a configurable amount of fatal errors with a tape drive ++ Bacula should automatically disable further use of a certain ++ tape drive. There should also be "disable"/"enable" commands in ++ the "bconsole" tool. ++ ++ Why: On a multi-drive jukebox there is a possibility of tape drives ++ going bad during large backups (needing a cleaning tape run, ++ tapes getting stuck). It would be advantageous if Bacula would ++ automatically disable further use of a problematic tape drive ++ after a configurable amount of errors has occured. ++ ++ An example: I have a multi-drive jukebox (6 drives, 380+ slots) ++ where tapes occasionally get stuck inside the drive. Bacula will ++ notice that the "mtx-changer" command will fail and then fail ++ any backup jobs trying to use that drive. However, it will still ++ keep on trying to run new jobs using that drive and fail - ++ forever, and thus failing lots and lots of jobs... Since we have ++ many drives Bacula could have just automatically disabled ++ further use of that drive and used one of the other ones ++ instead. ++ ++ ++Item 16: Directive/mode to backup only file changes, not entire file ++ Date: 11 November 2005 ++ Origin: Joshua Kugler ++ Marek Bajon ++ Status: RFC ++ ++ What: Currently when a file changes, the entire file will be backed up in ++ the next incremental or full backup. To save space on the tapes ++ it would be nice to have a mode whereby only the changes to the ++ file would be backed up when it is changed. ++ ++ Why: This would save lots of space when backing up large files such as ++ logs, mbox files, Outlook PST files and the like. ++ ++ Notes: This would require the usage of disk-based volumes as comparing ++ files would not be feasible using a tape drive. ++ ++Item 17: Quick release of FD-SD connection ++ Origin: Frank Volf (frank at deze dot org) ++ Date: 17 november 2005 ++ Status: ++ ++ What: In the bacula implementation a backup is finished after all data ++ and attributes are succesfully written to storage. When using a ++ tape backup it is very annoying that a backup can take a day, ++ simply because the current tape (or whatever) is full and the ++ administrator has not put a new one in. During that time the ++ system cannot be taken off-line, because there is still an open ++ session between the storage daemon and the file daemon on the ++ client. ++ ++ Although this is a very good strategey for making "safe backups" ++ This can be annoying for e.g. laptops, that must remain ++ connected until the bacukp is completed. ++ ++ Using a new feature called "migration" it will be possible to ++ spool first to harddisk (using a special 'spool' migration ++ scheme) and then migrate the backup to tape. ++ ++ There is still the problem of getting the attributes committed. ++ If it takes a very long time to do, with the current code, the ++ job has not terminated, and the File daemon is not freed up. The ++ Storage daemon should release the File daemon as soon as all the ++ file data and all the attributes have been sent to it (the SD). ++ Currently the SD waits until everything is on tape and all the ++ attributes are transmitted to the Director before signalling ++ completion to the FD. I don't think I would have any problem ++ changing this. The reason is that even if the FD reports back to ++ the Dir that all is OK, the job will not terminate until the SD ++ has done the same thing -- so in a way keeping the SD-FD link ++ open to the very end is not really very productive ... + ++ Why: Makes backup of laptops much easier. + + + ============= Empty RFC form =========== +@@ -245,33 +413,4 @@ + ============== End RFC form ============== + + +-Items completed for release 1.38.0: +-#4 Embedded Python Scripting (implemented in all Daemons) +-#5 Events that call a Python program (Implemented in all +- daemons, but more cleanup work to be done). +-#6 Select one from among Multiple Storage Devices for Job. +- This is already implemented in 1.37. +-#7 Single Job Writing to Multiple Storage Devices. This is +- currently implemented with a Clone feature. +-#- Full multiple drive Autochanger support (done in 1.37) +-#- Built in support for communications encryption (TLS) +- done by Landon Fuller. +-# Support for Unicode characters +- (via UTF-8) on Win32 machines thanks to Thorsten Engel. +-Item 8: Break the one-to-one Relationship between a Job and a +- Specific Storage Device (or Devices if #10 is implemented). +- +-Completed items from last year's list: +-Item 1: Multiple simultaneous Jobs. (done) +-Item 3: Write the bscan program -- also write a bcopy program (done). +-Item 5: Implement Label templates (done). +-Item 6: Write a regression script (done) +-Item 9: Add SSL to daemon communications (done by Landon Fuller) +-Item 10: Define definitive tape format (done) +-Item 3: GUI for interactive restore. Partially Implemented in 1.34 +- Note, there is now a complete Webmin plugin, a partial +- GNOME console, and an excellent wx-console GUI. +-Item 4: GUI for interactive backup +-Item 2: Job Data Spooling. +- Done: Regular expression matching. +-Item 10: New daemon communication protocol (this has been dropped). ++Items completed for release 1.38.0 -- see kernsdone +Index: autoconf/configure.in +=================================================================== +RCS file: /cvsroot/bacula/bacula/autoconf/configure.in,v +retrieving revision 1.184.2.4 +retrieving revision 1.184.2.5 +diff -u -r1.184.2.4 -r1.184.2.5 +--- autoconf/configure.in 13 Nov 2005 10:51:17 -0000 1.184.2.4 ++++ autoconf/configure.in 22 Nov 2005 10:50:55 -0000 1.184.2.5 +@@ -604,7 +604,7 @@ + PYTHON_LIBS= + if test "$withval" != "no"; then + if test "$withval" = "yes"; then +- for python_root in /usr /usr/local; do ++ for python_root in /usr /usr/local /usr/sfw; do + if test -f $python_root/include/python2.2/Python.h; then + PYTHON_INCDIR=-I$python_root/include/python2.2 + PYTHON_LIBS="-L$python_root/lib/python2.2/config -lpython2.2" +Index: patches/1.38.1-to-1.38.2.patch +=================================================================== +RCS file: patches/1.38.1-to-1.38.2.patch +diff -N patches/1.38.1-to-1.38.2.patch +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ patches/1.38.1-to-1.38.2.patch 22 Nov 2005 10:52:49 -0000 1.1.2.3 +@@ -0,0 +1,6901 @@ ++ ++ This patch fixes the following bugs: ++ ++- Fix crash in tray-monitor when daemon disconnects. Bug #479. ++- Fix bnet-server bug found on OpenBSD. Bug #486 (bug originator ++ says that this patch does not fix his problem) ++- Fix cancel failure bug. Bug #481 ++- Fix failure when Pool name has spaces. Bug #487 ++- Fix SD crash in autochanger code. Mutex failure. Bug #488 ++- Fix a couple of free()s in src/filed/acl.c ++- Fix memory overrun in bfile.c in building OS X resource ++ fork filename. Bug #489 ++- Add Pool name to SD status output. ++- Add Python install dir for Solaris to configure. Bug #492 ++ ++This patch is applied to Bacula source version 1.38.1 and will ++produce Bacula source version 1.38.2. Apply it with: ++ ++ cd ++ ./configure (your options) if not already done ++ patch -p0 <1.38.1-to-1.38.2.patch ++ make ++ make install ++ ++Index: ChangeLog ++=================================================================== ++RCS file: /cvsroot/bacula/bacula/ChangeLog,v ++retrieving revision 1.154.2.7 ++retrieving revision 1.154.2.8 ++diff -u -r1.154.2.7 -r1.154.2.8 ++--- ChangeLog 15 Nov 2005 09:27:19 -0000 1.154.2.7 +++++ ChangeLog 22 Nov 2005 10:50:54 -0000 1.154.2.8 ++@@ -1,4 +1,15 @@ ++ +++Changes to 1.38.2: +++- Fix crash in tray-monitor when daemon disconnects. Bug #479. +++- Fix bnet-server bug found on OpenBSD. Bug #486 +++- Fix cancel failure bug. Bug #481 +++- Fix failure when Pool name has spaces. Bug #487 +++- Fix SD crash in autochanger code. Mutex failure. Bug #488 +++- Fix a couple of free()s in src/filed/acl.c +++- Fix memory overrun in bfile.c in building OS X resource +++ fork filename. Bug #489 +++- Add Pool name to SD status output. +++- Add Python install dir for Solaris to configure. Bug #492 ++ ++ Changes to 1.38.1: ++ - Apply SunOS patch for ACLs submitted by David Duchscher. ++Index: ReleaseNotes ++=================================================================== ++RCS file: /cvsroot/bacula/bacula/ReleaseNotes,v ++retrieving revision 1.147.2.9 ++retrieving revision 1.147.2.10 ++diff -u -r1.147.2.9 -r1.147.2.10 ++--- ReleaseNotes 15 Nov 2005 09:27:19 -0000 1.147.2.9 +++++ ReleaseNotes 22 Nov 2005 10:50:54 -0000 1.147.2.10 ++@@ -1,10 +1,22 @@ ++ ++- Release Notes for Bacula 1.38.1 +++ Release Notes for Bacula 1.38.2 ++ ++ Bacula code: Total files = 420 Total lines = 138,440 (*.h *.c *.in) ++ 20,440 additional lines of code since version 1.36.3 ++ ++-Changes since 1.38.0: +++Changes to 1.38.2: +++- Fix crash in tray-monitor when daemon disconnects. Bug #479. +++- Fix bnet-server bug found on OpenBSD. Bug #486 +++- Fix cancel failure bug. Bug #481 +++- Fix failure when Pool name has spaces. Bug #487 +++- Fix SD crash in autochanger code. Mutex failure. Bug #488 +++- Fix a couple of free()s in src/filed/acl.c +++- Fix memory overrun in bfile.c in building OS X resource +++ fork filename. Bug #489 +++- Add Pool name to SD status output. +++- Add Python install dir for Solaris to configure. Bug #492 +++ +++Changes to 1.38.1: ++ - Corrected ACL for Solaris (David Duchscher and Attila Fulop). ++ - Add bacula_mail_summary.sh to examples directory. It makes ++ a single email summary of any number of jobs. Submitted ++Index: configure ++=================================================================== ++RCS file: /cvsroot/bacula/bacula/configure,v ++retrieving revision 1.203.2.5 ++retrieving revision 1.203.2.6 ++diff -u -r1.203.2.5 -r1.203.2.6 ++--- configure 13 Nov 2005 10:51:17 -0000 1.203.2.5 +++++ configure 22 Nov 2005 10:50:54 -0000 1.203.2.6 ++@@ -14948,7 +14948,7 @@ ++ PYTHON_LIBS= ++ if test "$withval" != "no"; then ++ if test "$withval" = "yes"; then ++- for python_root in /usr /usr/local; do +++ for python_root in /usr /usr/local /usr/sfw; do ++ if test -f $python_root/include/python2.2/Python.h; then ++ PYTHON_INCDIR=-I$python_root/include/python2.2 ++ PYTHON_LIBS="-L$python_root/lib/python2.2/config -lpython2.2" ++Index: kernstodo ++=================================================================== ++RCS file: /cvsroot/bacula/bacula/kernstodo,v ++retrieving revision 1.570.2.6 ++retrieving revision 1.570.2.7 ++diff -u -r1.570.2.6 -r1.570.2.7 ++--- kernstodo 4 Nov 2005 09:16:49 -0000 1.570.2.6 +++++ kernstodo 22 Nov 2005 10:50:55 -0000 1.570.2.7 ++@@ -1,5 +1,5 @@ ++ Kern's ToDo List ++- 03 November 2005 +++ 21 November 2005 ++ ++ Major development: ++ Project Developer ++@@ -7,8 +7,6 @@ ++ Version 1.37 Kern (see below) ++ ======================================================== ++ ++-Final items for 1.37 before release: ++- ++ Document: ++ - Does ClientRunAfterJob fail the job on a bad return code? ++ - Document cleaning up the spool files: ++@@ -18,6 +16,8 @@ ++ - Does WildFile match against full name? Doc. ++ ++ For 1.39: +++- Make sure that all do_prompt() calls in Dir check for +++ -1 (error) and -2 (cancel) returns. ++ - Look at -D_FORTIFY_SOURCE=2 ++ - Add Win32 FileSet definition somewhere ++ - Look at fixing restore status stats in SD. ++@@ -27,6 +27,12 @@ ++ encountered, read many times (as it currently does), and if the ++ block cannot be read, skip to the next block, and try again. If ++ that fails, skip to the next file and try again, ... +++- Add level table: +++ create table LevelType (LevelType binary(1), LevelTypeLong tinyblob); +++ insert into LevelType (LevelType,LevelTypeLong) values +++ ("F","Full"), +++ ("D","Diff"), +++ ("I","Inc"); ++ - Add ACL to restore only to original location. ++ - Add a recursive mark command (rmark) to restore. ++ - "Minimum Job Interval = nnn" sets minimum interval between Jobs ++@@ -1246,219 +1252,4 @@ ++ ==== ++ ++ ++-=== Done ++-- Save mount point for directories not traversed with onefs=yes. ++-- Add seconds to start and end times in the Job report output. ++-- if 2 concurrent backups are attempted on the same tape ++- drive (autoloader) into different tape pools, one of them will exit ++- fatally instead of halting until the drive is idle ++-- Update StartTime if job held in Job Queue. ++-- Look at www.nu2.nu/pebuilder as a helper for full windows ++- bare metal restore. (done by Scott) ++-- Fix orphanned buffers: ++- Orphaned buffer: 24 bytes allocated at line 808 of rufus-dir job.c ++- Orphaned buffer: 40 bytes allocated at line 45 of rufus-dir alist.c ++-- Implement Preben's suggestion to add ++- File System Types = ext2, ext3 ++- to FileSets, thus simplifying backup of *all* local partitions. ++-- Try to open a device on each Job if it was not opened ++- when the SD started. ++-- Add dump of VolSessionId/Time and FileIndex with bls. ++-- If Bacula does not find the right tape in the Autochanger, ++- then mark the tape in error and move on rather than asking ++- for operator intervention. ++-- Cancel command should include JobId in list of Jobs. ++-- Add performance testing hooks ++-- Bootstrap from JobMedia records. ++-- Implement WildFile and WildDir to solve problem of ++- saving only *.doc files. ++-- Fix ++- Please use the "label" command to create a new Volume for: ++- Storage: DDS-4-changer ++- Media type: ++- Pool: Default ++- label ++- The defined Storage resources are: ++-- Copy Changer Device and Changer Command from Autochanger ++- to Device resource in SD if none given in Device resource. ++-- 1. Automatic use of more than one drive in an autochanger (done) ++-- 2. Automatic selection of the correct drive for each Job (i.e. ++- selects a drive with an appropriate Volume for the Job) (done) ++-- 6. Allow multiple simultaneous Jobs referencing the same pool write ++- to several tapes (some new directive(s) are are probably needed for ++- this) (done) ++-- Locking (done) ++-- Key on Storage rather than Pool (done) ++-- Allow multiple drives to use same Pool (change jobq.c DIR) (done). ++-- Synchronize multiple drives so that not more ++- than one loads a tape and any time (done) ++-- 4. Use Changer Device and Changer Command specified in the ++- Autochanger resource, if none is found in the Device resource. ++- You can continue to specify them in the Device resource if you want ++- or need them to be different for each device. ++-- 5. Implement a new Device directive (perhaps "Autoselect = yes/no") ++- that can allow a Device be part of an Autochanger, and hence the changer ++- script protected, but if set to no, will prevent the Device from being ++- automatically selected from the changer. This allows the device to ++- be directly accessed through its Device name, but not through the ++- AutoChanger name. ++-#6 Select one from among Multiple Storage Devices for Job ++-#5 Events that call a Python program ++- (Implemented in Dir/SD) ++-- Make sure the Device name is in the Query packet returned. ++-- Don't start a second file job if one is already running. ++-- Implement EOF/EOV labels for ANSI labels ++-- Implement IBM labels. ++-- When Python creates a new label, the tape is immediately ++- recycled and no label created. This happens when using ++- autolabeling -- even when Python doesn't generate the name. ++-- Scratch Pool where the volumes can be re-assigned to any Pool. ++-- 28-Mar 23:19 rufus-sd: acquire.c:379 Device "DDS-4" (/dev/nst0) ++- is busy reading. Job 6 canceled. ++-- Remove separate thread for opening devices in SD. On the other ++- hand, don't block waiting for open() for devices. ++-- Fix code to either handle updating NumVol or to calculate it in ++- Dir next_vol.c ++-- Ensure that you cannot exclude a directory or a file explicitly ++- Included with File. ++-#4 Embedded Python Scripting ++- (Implemented in Dir/SD/FD) ++-- Add Python writable variable for changing the Priority, ++- Client, Storage, JobStatus (error), ... ++-- SD Python ++- - Solicit Events ++-- Add disk seeking on restore; turn off seek on tapes. ++- stored/match_bsr.c ++-- Look at dird_conf.c:1000: warning: `int size' ++- might be used uninitialized in this function ++-- Indicate when a Job is purged/pruned during restore. ++-- Implement some way to turn off automatic pruning in Jobs. ++-- Implement a way an Admin Job can prune, possibly multiple ++- clients -- Python script? ++-- Look at Preben's acl.c error handling code. ++-- SD crashes after a tape restore then doing a backup. ++-- If drive is opened read/write, close it and re-open ++- read-only if doing a restore, and vice-versa. ++-- Windows restore: ++- data-fd: RestoreFiles.2004-12-07_15.56.42 Error: ++- > ..\findlib\../../findlib/create_file.c:275 Could not open e:/: ERR=Der ++- > Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen ++- > Prozess verwendet wird. ++- Restore restores all files, but then fails at the end trying ++- to set the attributes of e: ++- from failed jobs.- Resolve the problem between Device name and Archive name, ++- and fix SD messages. ++-- Tell the "restore" user when browsing is no longer possible. ++-- Add a restore directory-x ++-- Write non-optimized bsrs from the JobMedia and Media records, ++- even after Files are pruned. ++-- Delete Stripe and Copy from VolParams to save space. ++-- Fix option 2 of restore -- list where file is backed up -- require Client, ++- then list last 20 backups. ++-- Finish implementation of passing all Storage and Device needs to ++- the SD. ++-- Move test for max wait time exceeded in job.c up -- Peter's idea. ++-## Consider moving docs to their own project. ++-## Move rescue to its own project. ++-- Add client version to the Client name line that prints in ++- the Job report. ++-- Fix the Rescue CDROM. ++-- By the way: on page http://www.bacula.org/?page=tapedrives , at the ++- bottom, the link to "Tape Testing Chapter" is broken. It goes to ++- /html-manual/... while the others point to /rel-manual/... ++-- Device resource needs the "name" of the SD. ++-- Specify a single directory to restore. ++-- Implement MediaType keyword in bsr? ++-- Add a date and time stamp at the beginning of every line in the ++- Job report (Volker Sauer). ++-- Add level to estimate command. ++-- Add "limit=n" for "list jobs" ++-- Make bootstrap filename unique. ++-- Make Dmsg look at global before calling subroutine. ++-- From Chris Hull: ++- it seems to be complaining about 12:00pm which should be a valid 12 ++- hour time. I changed the time to 11:59am and everything works fine. ++- Also 12:00am works fine. 0:00pm also works (which I don't think ++- should). None of the values 12:00pm - 12:59pm work for that matter. ++-- Require restore via the restore command or make a restore Job ++- get the bootstrap file. ++-- Implement Maximum Job Spool Size ++-- Fix 3993 error in SD. It forgets to look at autochanger ++- resource for device command, ... ++-- 3. Prevent two drives requesting the same Volume in any given ++- autochanger, by checking if a Volume is mounted on another drive ++- in an Autochanger. ++-- Upgrade to MySQL 4.1.12 See: ++- http://dev.mysql.com/doc/mysql/en/Server_SQL_mode.html ++-- Add # Job Level date to bsr file ++-- Implement "PreferMountedVolumes = yes|no" in Job resource. ++-## Integrate web-bacula into a new Bacula project with ++- bimagemgr. ++-- Cleaning tapes should have Status "Cleaning" rather than append. ++-- Make sure that Python has access to Client address/port so that ++- it can check if Clients are alive. ++-- Review all items in "restore". ++-- Fix PostgreSQL GROUP BY problems in restore. ++-- Fix PostgreSQL sql problems in bugs. ++-- After rename ++- 04-Jul 13:01 MainSD: Rufus.2005-07-04_01.05.02 Warning: Director wanted Volume ++- "DLT-13Feb04". ++- Current Volume "DLT-04Jul05" not acceptable because: ++- 1997 Volume "DLT-13Feb04" not in catalog. ++- 04-Jul 13:01 MainSD: Please mount Volume "DLT-04Jul05" on Storage Device ++- "HP DLT 80" (/dev/nst0) for Job Rufus.2005-07-04_01.05.02 ++-## Create a new GUI chapter explaining all the GUI programs. ++-- Make "update slots" when pointing to Autochanger, remove ++- all Volumes from other drives. "update slots all-drives"? ++- No, this is done by modifying mtx-changer to list what is ++- in the drives. ++-- Finish TLS implementation. ++-- Port limiting -m in iptables to prevent DoS attacks ++- could cause broken pipes on Bacula. ++-6. Build and test the Volume Shadow Copy (VSS) for Win32. ++-- Allow cancel of unknown Job ++-- State not saved when closing Win32 FD by icon ++-- bsr-opt-test fails. bsr deleted. Fix. ++-- Move Python daemon variables from Job to Bacula object. ++- WorkingDir, ConfigFile ++-- Document that Bootstrap files can be written with cataloging ++- turned off. ++-- Document details of ANSI/IBM labels ++-- OS linux 2.4 ++- 1) ADIC, DLT, FastStor 4000, 7*20GB ++-- Linux Sony LIB-D81, AIT-3 library works. ++-- Doc the following ++- to activate, check or disable the hardware compression feature on my ++- exb-8900 i use the exabyte "MammothTool" you can get it here: ++- http://www.exabyte.com/support/online/downloads/index.cfm ++- There is a solaris version of this tool. With option -C 0 or 1 you can ++- disable or activate compression. Start this tool without any options for ++- a small reference. ++-- Document Heartbeat Interval in the dealing with firewalls section. ++-- Document new CDROM directory. ++-- On Win32 working directory must have drive letter ???? ++-- On Win32 working directory must be writable by SYSTEM to ++- do restores. ++-- Document that ChangerDevice is used for Alert command. ++-- Add better documentation on how restores can be done ++-8. Take one more try at making DVD writing work (no go) ++-7. Write a bacula-web document ++-- Why isn't the DEVICE structure defined when doing ++- a reservation? ++-- Multi-drive changer seems to only use drive 0 ++- Multiple drives don't seem to be opened. ++-- My database is growing ++-- Call GetLastError() in the berrno constructor rather ++- than delaying until strerror. ++-- Tape xxx in drive 0, requested in drive 1 ++-- The mount command does not work with drives other than 0. ++-- A mount should cause the SD to re-examine what Slot is ++- loaded. ++-- The SD locks on to the first available drive then ++- wants a Volume that is released but in another drive -- ++- chaos. ++-- Run the regression scripts on Solaris and FreeBSD ++-- Figure out how to package gui, and rescue programs. ++-- Add a .dir command to restore tree code to eliminate the problem ++-- Mount after manually unloading changer causes hang in SD ++-- Fix JobACL with restore by JobId. +++=== Done -- see kernsdone ++Index: kes-1.38 ++=================================================================== ++RCS file: /cvsroot/bacula/bacula/kes-1.38,v ++retrieving revision 1.1.2.13 ++retrieving revision 1.1.2.14 ++diff -u -r1.1.2.13 -r1.1.2.14 ++--- kes-1.38 14 Nov 2005 20:20:38 -0000 1.1.2.13 +++++ kes-1.38 22 Nov 2005 10:50:55 -0000 1.1.2.14 ++@@ -3,6 +3,20 @@ ++ ++ General: ++ +++Changes to 1.38.2: +++20Oct05 +++- Fix crash in tray-monitor when daemon disconnects. Bug #479. +++- Fix bnet-server bug found on OpenBSD. Bug #486 (bug originator +++ says this does not fix *his* bug). +++- Fix cancel failure bug. Bug #481 +++- Fix failure when Pool name has spaces. Bug #487 +++- Fix SD crash in autochanger code. Mutex failure. Bug #488 +++- Fix a couple of free()s in src/filed/acl.c +++- Fix memory overrun in bfile.c in building OS X resource +++ fork filename. Bug #489 +++- Add Pool name to SD status output. +++- Add Python install dir for Solaris to configure. Bug #492 +++ ++ Changes to 1.38.1: ++ 14Oct05 ++ - Apply SunOS patch for ACLs submitted by David Duchscher. ++Index: projects ++=================================================================== ++RCS file: /cvsroot/bacula/bacula/projects,v ++retrieving revision 1.12.2.3 ++retrieving revision 1.12.2.4 ++diff -u -r1.12.2.3 -r1.12.2.4 ++--- projects 10 Nov 2005 20:25:27 -0000 1.12.2.3 +++++ projects 22 Nov 2005 10:50:55 -0000 1.12.2.4 ++@@ -228,7 +228,175 @@ ++ ++ Why: Performance enhancement. ++ +++Item 13: Let Bacula log tape usage and handle drive cleaning cycles. +++ Date: November 11, 2005 +++ Origin: Arno Lehmann +++ Status: +++ +++ What: Make Bacula manage tape life cycle information and drive +++ cleaning cycles. +++ +++ Why: Both parts of this project are important when operating backups. +++ We need to know which tapes need replacement, and we need to +++ make sure the drives are cleaned when necessary. While many +++ tape libraries and even autoloaders can handle all this +++ automatically, support by Bacula can be helpful for smaller +++ (older) libraries and single drives. Also, checking drive +++ status during operation can prevent some failures (as I had to +++ learn the hard way...) +++ +++ Notes: First, Bacula could (and even does, to some limited extent) +++ record tape and drive usage. For tapes, the number of mounts, +++ the amount of data, and the time the tape has actually been +++ running could be recorded. Data fields for Read and Write time +++ and Nmber of mounts already exist in the catalog (I'm not sure +++ if VolBytes is the sum of all bytes ever written to that volume +++ by Bacula). This information can be important when determining +++ which media to replace. For the tape drives known to Bacula, +++ similar information is interesting to determine the device +++ status and expected life time: Time it's been Reading and +++ Writing, number of tape Loads / Unloads / Errors. This +++ information is not yet recorded as far as I know. +++ +++ The next step would be implementing drive cleaning setup. +++ Bacula already has knowledge about cleaning tapes. Once it has +++ some information about cleaning cycles (measured in drive run +++ time, number of tapes used, or calender days, for example) it +++ can automatically execute tape cleaning (with an autochanger, +++ obviously) or ask for operator assistence loading a cleaning +++ tape. +++ +++ The next step would be to implement TAPEALERT checks not only +++ when changing tapes and only sending he information to the +++ administrator, but rather checking after each tape error, +++ checking on a regular basis (for example after each tape file), +++ and also before unloading and after loading a new tape. Then, +++ depending on the drives TAPEALERT state and the know drive +++ cleaning state Bacula could automatically schedule later +++ cleaning, clean immediately, or inform the operator. +++ +++ Implementing this would perhaps require another catalog change +++ and perhaps major changes in SD code and the DIR-SD protocoll, +++ so I'd only consider this worth implementing if it would +++ actually be used or even needed by many people. +++ +++Item 14: Merging of multiple backups into a single one. (Also called Synthetic +++ Backup or Consolidation). +++ +++ Origin: Marc Cousin and Eric Bollengier +++ Date: 15 November 2005 +++ Status: Depends on first implementing project Item 1 (Migration). +++ +++ What: A merged backup is a backup made without connecting to the Client. +++ It would be a Merge of existing backups into a single backup. +++ In effect, it is like a restore but to the backup medium. +++ +++ For instance, say that last sunday we made a full backup. Then +++ all week long, we created incremental backups, in order to do +++ them fast. Now comes sunday again, and we need another full. +++ The merged backup makes it possible to do instead an incremental +++ backup (during the night for instance), and then create a merged +++ backup during the day, by using the full and incrementals from +++ the week. The merged backup will be exactly like a full made +++ sunday night on the tape, but the production interruption on the +++ Client will be minimal, as the Client will only have to send +++ incrementals. +++ +++ In fact, if it's done correctly, you could merge all the +++ Incrementals into single Incremental, or all the Incrementals +++ and the last Differential into a new Differential, or the Full, +++ last differential and all the Incrementals into a new Full +++ backup. And there is no need to involve the Client. +++ +++ Why: The benefit is that : +++ - the Client just does an incremental ; +++ - the merged backup on tape is just as a single full backup, +++ and can be restored very fast. +++ +++ This is also a way of reducing the backup data since the old +++ data can then be pruned (or not) from the catalog, possibly +++ allowing older volumes to be recycled +++ +++Item 15: Automatic disabling of devices +++ Date: 2005-11-11 +++ Origin: Peter Eriksson +++ Status: +++ +++ What: After a configurable amount of fatal errors with a tape drive +++ Bacula should automatically disable further use of a certain +++ tape drive. There should also be "disable"/"enable" commands in +++ the "bconsole" tool. +++ +++ Why: On a multi-drive jukebox there is a possibility of tape drives +++ going bad during large backups (needing a cleaning tape run, +++ tapes getting stuck). It would be advantageous if Bacula would +++ automatically disable further use of a problematic tape drive +++ after a configurable amount of errors has occured. +++ +++ An example: I have a multi-drive jukebox (6 drives, 380+ slots) +++ where tapes occasionally get stuck inside the drive. Bacula will +++ notice that the "mtx-changer" command will fail and then fail +++ any backup jobs trying to use that drive. However, it will still +++ keep on trying to run new jobs using that drive and fail - +++ forever, and thus failing lots and lots of jobs... Since we have +++ many drives Bacula could have just automatically disabled +++ further use of that drive and used one of the other ones +++ instead. +++ +++ +++Item 16: Directive/mode to backup only file changes, not entire file +++ Date: 11 November 2005 +++ Origin: Joshua Kugler +++ Marek Bajon +++ Status: RFC +++ +++ What: Currently when a file changes, the entire file will be backed up in +++ the next incremental or full backup. To save space on the tapes +++ it would be nice to have a mode whereby only the changes to the +++ file would be backed up when it is changed. +++ +++ Why: This would save lots of space when backing up large files such as +++ logs, mbox files, Outlook PST files and the like. +++ +++ Notes: This would require the usage of disk-based volumes as comparing +++ files would not be feasible using a tape drive. +++ +++Item 17: Quick release of FD-SD connection +++ Origin: Frank Volf (frank at deze dot org) +++ Date: 17 november 2005 +++ Status: +++ +++ What: In the bacula implementation a backup is finished after all data +++ and attributes are succesfully written to storage. When using a +++ tape backup it is very annoying that a backup can take a day, +++ simply because the current tape (or whatever) is full and the +++ administrator has not put a new one in. During that time the +++ system cannot be taken off-line, because there is still an open +++ session between the storage daemon and the file daemon on the +++ client. +++ +++ Although this is a very good strategey for making "safe backups" +++ This can be annoying for e.g. laptops, that must remain +++ connected until the bacukp is completed. +++ +++ Using a new feature called "migration" it will be possible to +++ spool first to harddisk (using a special 'spool' migration +++ scheme) and then migrate the backup to tape. +++ +++ There is still the problem of getting the attributes committed. +++ If it takes a very long time to do, with the current code, the +++ job has not terminated, and the File daemon is not freed up. The +++ Storage daemon should release the File daemon as soon as all the +++ file data and all the attributes have been sent to it (the SD). +++ Currently the SD waits until everything is on tape and all the +++ attributes are transmitted to the Director before signalling +++ completion to the FD. I don't think I would have any problem +++ changing this. The reason is that even if the FD reports back to +++ the Dir that all is OK, the job will not terminate until the SD +++ has done the same thing -- so in a way keeping the SD-FD link +++ open to the very end is not really very productive ... ++ +++ Why: Makes backup of laptops much easier. ++ ++ ++ ============= Empty RFC form =========== ++@@ -245,33 +413,4 @@ ++ ============== End RFC form ============== ++ ++ ++-Items completed for release 1.38.0: ++-#4 Embedded Python Scripting (implemented in all Daemons) ++-#5 Events that call a Python program (Implemented in all ++- daemons, but more cleanup work to be done). ++-#6 Select one from among Multiple Storage Devices for Job. ++- This is already implemented in 1.37. ++-#7 Single Job Writing to Multiple Storage Devices. This is ++- currently implemented with a Clone feature. ++-#- Full multiple drive Autochanger support (done in 1.37) ++-#- Built in support for communications encryption (TLS) ++- done by Landon Fuller. ++-# Support for Unicode characters ++- (via UTF-8) on Win32 machines thanks to Thorsten Engel. ++-Item 8: Break the one-to-one Relationship between a Job and a ++- Specific Storage Device (or Devices if #10 is implemented). ++- ++-Completed items from last year's list: ++-Item 1: Multiple simultaneous Jobs. (done) ++-Item 3: Write the bscan program -- also write a bcopy program (done). ++-Item 5: Implement Label templates (done). ++-Item 6: Write a regression script (done) ++-Item 9: Add SSL to daemon communications (done by Landon Fuller) ++-Item 10: Define definitive tape format (done) ++-Item 3: GUI for interactive restore. Partially Implemented in 1.34 ++- Note, there is now a complete Webmin plugin, a partial ++- GNOME console, and an excellent wx-console GUI. ++-Item 4: GUI for interactive backup ++-Item 2: Job Data Spooling. ++- Done: Regular expression matching. ++-Item 10: New daemon communication protocol (this has been dropped). +++Items completed for release 1.38.0 -- see kernsdone ++Index: autoconf/configure.in ++=================================================================== ++RCS file: /cvsroot/bacula/bacula/autoconf/configure.in,v ++retrieving revision 1.184.2.4 ++retrieving revision 1.184.2.5 ++diff -u -r1.184.2.4 -r1.184.2.5 ++--- autoconf/configure.in 13 Nov 2005 10:51:17 -0000 1.184.2.4 +++++ autoconf/configure.in 22 Nov 2005 10:50:55 -0000 1.184.2.5 ++@@ -604,7 +604,7 @@ ++ PYTHON_LIBS= ++ if test "$withval" != "no"; then ++ if test "$withval" = "yes"; then ++- for python_root in /usr /usr/local; do +++ for python_root in /usr /usr/local /usr/sfw; do ++ if test -f $python_root/include/python2.2/Python.h; then ++ PYTHON_INCDIR=-I$python_root/include/python2.2 ++ PYTHON_LIBS="-L$python_root/lib/python2.2/config -lpython2.2" ++Index: patches/1.38.1-to-1.38.2.patch ++=================================================================== ++RCS file: patches/1.38.1-to-1.38.2.patch ++diff -N patches/1.38.1-to-1.38.2.patch ++--- /dev/null 1 Jan 1970 00:00:00 -0000 +++++ patches/1.38.1-to-1.38.2.patch 22 Nov 2005 10:50:55 -0000 1.1.2.2 ++@@ -0,0 +1,5704 @@ +++ +++ This patch fixes the following bugs: +++ +++- Fix crash in tray-monitor when daemon disconnects. Bug #479. +++- Fix bnet-server bug found on OpenBSD. Bug #486 (bug originator +++ says that this patch does not fix his problem) +++- Fix cancel failure bug. Bug #481 +++- Fix failure when Pool name has spaces. Bug #487 +++- Fix SD crash in autochanger code. Mutex failure. Bug #488 +++- Fix a couple of free()s in src/filed/acl.c +++- Fix memory overrun in bfile.c in building OS X resource +++ fork filename. Bug #489 +++- Add Pool name to SD status output. +++- Add Python install dir for Solaris to configure. Bug #492 +++ +++This patch is applied to Bacula source version 1.38.1 and will +++produce Bacula source version 1.38.2. Apply it with: +++ +++ cd +++ ./configure (your options) if not already done +++ patch -p0 <1.38.1-to-1.38.2.patch +++ make +++ make install +++ +++? osx_finder.patch +++Index: ChangeLog +++=================================================================== +++RCS file: /cvsroot/bacula/bacula/ChangeLog,v +++retrieving revision 1.154.2.7 +++diff -u -r1.154.2.7 ChangeLog +++--- ChangeLog 15 Nov 2005 09:27:19 -0000 1.154.2.7 ++++++ ChangeLog 22 Nov 2005 10:42:14 -0000 +++@@ -1,4 +1,14 @@ +++ ++++Changes to 1.38.2: ++++- Fix crash in tray-monitor when daemon disconnects. Bug #479. ++++- Fix bnet-server bug found on OpenBSD. Bug #486 ++++- Fix cancel failure bug. Bug #481 ++++- Fix failure when Pool name has spaces. Bug #487 ++++- Fix SD crash in autochanger code. Mutex failure. Bug #488 ++++- Fix a couple of free()s in src/filed/acl.c ++++- Fix memory overrun in bfile.c in building OS X resource ++++ fork filename. Bug #489 ++++- Add Pool name to SD status output. +++ +++ Changes to 1.38.1: +++ - Apply SunOS patch for ACLs submitted by David Duchscher. +++Index: ReleaseNotes +++=================================================================== +++RCS file: /cvsroot/bacula/bacula/ReleaseNotes,v +++retrieving revision 1.147.2.9 +++diff -u -r1.147.2.9 ReleaseNotes +++--- ReleaseNotes 15 Nov 2005 09:27:19 -0000 1.147.2.9 ++++++ ReleaseNotes 22 Nov 2005 10:42:15 -0000 +++@@ -1,10 +1,21 @@ +++ +++- Release Notes for Bacula 1.38.1 ++++ Release Notes for Bacula 1.38.2 +++ +++ Bacula code: Total files = 420 Total lines = 138,440 (*.h *.c *.in) +++ 20,440 additional lines of code since version 1.36.3 +++ +++-Changes since 1.38.0: ++++Changes to 1.38.2: ++++- Fix crash in tray-monitor when daemon disconnects. Bug #479. ++++- Fix bnet-server bug found on OpenBSD. Bug #486 ++++- Fix cancel failure bug. Bug #481 ++++- Fix failure when Pool name has spaces. Bug #487 ++++- Fix SD crash in autochanger code. Mutex failure. Bug #488 ++++- Fix a couple of free()s in src/filed/acl.c ++++- Fix memory overrun in bfile.c in building OS X resource ++++ fork filename. Bug #489 ++++- Add Pool name to SD status output. ++++ ++++Changes to 1.38.1: +++ - Corrected ACL for Solaris (David Duchscher and Attila Fulop). +++ - Add bacula_mail_summary.sh to examples directory. It makes +++ a single email summary of any number of jobs. Submitted +++Index: configure +++=================================================================== +++RCS file: /cvsroot/bacula/bacula/configure,v +++retrieving revision 1.203.2.5 +++diff -u -r1.203.2.5 configure +++--- configure 13 Nov 2005 10:51:17 -0000 1.203.2.5 ++++++ configure 22 Nov 2005 10:42:19 -0000 +++@@ -14948,7 +14948,7 @@ +++ PYTHON_LIBS= +++ if test "$withval" != "no"; then +++ if test "$withval" = "yes"; then +++- for python_root in /usr /usr/local; do ++++ for python_root in /usr /usr/local /usr/sfw; do +++ if test -f $python_root/include/python2.2/Python.h; then +++ PYTHON_INCDIR=-I$python_root/include/python2.2 +++ PYTHON_LIBS="-L$python_root/lib/python2.2/config -lpython2.2" +++Index: kernstodo +++=================================================================== +++RCS file: /cvsroot/bacula/bacula/kernstodo,v +++retrieving revision 1.570.2.6 +++diff -u -r1.570.2.6 kernstodo +++--- kernstodo 4 Nov 2005 09:16:49 -0000 1.570.2.6 ++++++ kernstodo 22 Nov 2005 10:42:20 -0000 +++@@ -1,5 +1,5 @@ +++ Kern's ToDo List +++- 03 November 2005 ++++ 21 November 2005 +++ +++ Major development: +++ Project Developer +++@@ -7,8 +7,6 @@ +++ Version 1.37 Kern (see below) +++ ======================================================== +++ +++-Final items for 1.37 before release: +++- +++ Document: +++ - Does ClientRunAfterJob fail the job on a bad return code? +++ - Document cleaning up the spool files: +++@@ -18,6 +16,8 @@ +++ - Does WildFile match against full name? Doc. +++ +++ For 1.39: ++++- Make sure that all do_prompt() calls in Dir check for ++++ -1 (error) and -2 (cancel) returns. +++ - Look at -D_FORTIFY_SOURCE=2 +++ - Add Win32 FileSet definition somewhere +++ - Look at fixing restore status stats in SD. +++@@ -27,6 +27,12 @@ +++ encountered, read many times (as it currently does), and if the +++ block cannot be read, skip to the next block, and try again. If +++ that fails, skip to the next file and try again, ... ++++- Add level table: ++++ create table LevelType (LevelType binary(1), LevelTypeLong tinyblob); ++++ insert into LevelType (LevelType,LevelTypeLong) values ++++ ("F","Full"), ++++ ("D","Diff"), ++++ ("I","Inc"); +++ - Add ACL to restore only to original location. +++ - Add a recursive mark command (rmark) to restore. +++ - "Minimum Job Interval = nnn" sets minimum interval between Jobs +++@@ -1246,219 +1252,4 @@ +++ ==== +++ +++ +++-=== Done +++-- Save mount point for directories not traversed with onefs=yes. +++-- Add seconds to start and end times in the Job report output. +++-- if 2 concurrent backups are attempted on the same tape +++- drive (autoloader) into different tape pools, one of them will exit +++- fatally instead of halting until the drive is idle +++-- Update StartTime if job held in Job Queue. +++-- Look at www.nu2.nu/pebuilder as a helper for full windows +++- bare metal restore. (done by Scott) +++-- Fix orphanned buffers: +++- Orphaned buffer: 24 bytes allocated at line 808 of rufus-dir job.c +++- Orphaned buffer: 40 bytes allocated at line 45 of rufus-dir alist.c +++-- Implement Preben's suggestion to add +++- File System Types = ext2, ext3 +++- to FileSets, thus simplifying backup of *all* local partitions. +++-- Try to open a device on each Job if it was not opened +++- when the SD started. +++-- Add dump of VolSessionId/Time and FileIndex with bls. +++-- If Bacula does not find the right tape in the Autochanger, +++- then mark the tape in error and move on rather than asking +++- for operator intervention. +++-- Cancel command should include JobId in list of Jobs. +++-- Add performance testing hooks +++-- Bootstrap from JobMedia records. +++-- Implement WildFile and WildDir to solve problem of +++- saving only *.doc files. +++-- Fix +++- Please use the "label" command to create a new Volume for: +++- Storage: DDS-4-changer +++- Media type: +++- Pool: Default +++- label +++- The defined Storage resources are: +++-- Copy Changer Device and Changer Command from Autochanger +++- to Device resource in SD if none given in Device resource. +++-- 1. Automatic use of more than one drive in an autochanger (done) +++-- 2. Automatic selection of the correct drive for each Job (i.e. +++- selects a drive with an appropriate Volume for the Job) (done) +++-- 6. Allow multiple simultaneous Jobs referencing the same pool write +++- to several tapes (some new directive(s) are are probably needed for +++- this) (done) +++-- Locking (done) +++-- Key on Storage rather than Pool (done) +++-- Allow multiple drives to use same Pool (change jobq.c DIR) (done). +++-- Synchronize multiple drives so that not more +++- than one loads a tape and any time (done) +++-- 4. Use Changer Device and Changer Command specified in the +++- Autochanger resource, if none is found in the Device resource. +++- You can continue to specify them in the Device resource if you want +++- or need them to be different for each device. +++-- 5. Implement a new Device directive (perhaps "Autoselect = yes/no") +++- that can allow a Device be part of an Autochanger, and hence the changer +++- script protected, but if set to no, will prevent the Device from being +++- automatically selected from the changer. This allows the device to +++- be directly accessed through its Device name, but not through the +++- AutoChanger name. +++-#6 Select one from among Multiple Storage Devices for Job +++-#5 Events that call a Python program +++- (Implemented in Dir/SD) +++-- Make sure the Device name is in the Query packet returned. +++-- Don't start a second file job if one is already running. +++-- Implement EOF/EOV labels for ANSI labels +++-- Implement IBM labels. +++-- When Python creates a new label, the tape is immediately +++- recycled and no label created. This happens when using +++- autolabeling -- even when Python doesn't generate the name. +++-- Scratch Pool where the volumes can be re-assigned to any Pool. +++-- 28-Mar 23:19 rufus-sd: acquire.c:379 Device "DDS-4" (/dev/nst0) +++- is busy reading. Job 6 canceled. +++-- Remove separate thread for opening devices in SD. On the other +++- hand, don't block waiting for open() for devices. +++-- Fix code to either handle updating NumVol or to calculate it in +++- Dir next_vol.c +++-- Ensure that you cannot exclude a directory or a file explicitly +++- Included with File. +++-#4 Embedded Python Scripting +++- (Implemented in Dir/SD/FD) +++-- Add Python writable variable for changing the Priority, +++- Client, Storage, JobStatus (error), ... +++-- SD Python +++- - Solicit Events +++-- Add disk seeking on restore; turn off seek on tapes. +++- stored/match_bsr.c +++-- Look at dird_conf.c:1000: warning: `int size' +++- might be used uninitialized in this function +++-- Indicate when a Job is purged/pruned during restore. +++-- Implement some way to turn off automatic pruning in Jobs. +++-- Implement a way an Admin Job can prune, possibly multiple +++- clients -- Python script? +++-- Look at Preben's acl.c error handling code. +++-- SD crashes after a tape restore then doing a backup. +++-- If drive is opened read/write, close it and re-open +++- read-only if doing a restore, and vice-versa. +++-- Windows restore: +++- data-fd: RestoreFiles.2004-12-07_15.56.42 Error: +++- > ..\findlib\../../findlib/create_file.c:275 Could not open e:/: ERR=Der +++- > Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen +++- > Prozess verwendet wird. +++- Restore restores all files, but then fails at the end trying +++- to set the attributes of e: +++- from failed jobs.- Resolve the problem between Device name and Archive name, +++- and fix SD messages. +++-- Tell the "restore" user when browsing is no longer possible. +++-- Add a restore directory-x +++-- Write non-optimized bsrs from the JobMedia and Media records, +++- even after Files are pruned. +++-- Delete Stripe and Copy from VolParams to save space. +++-- Fix option 2 of restore -- list where file is backed up -- require Client, +++- then list last 20 backups. +++-- Finish implementation of passing all Storage and Device needs to +++- the SD. +++-- Move test for max wait time exceeded in job.c up -- Peter's idea. +++-## Consider moving docs to their own project. +++-## Move rescue to its own project. +++-- Add client version to the Client name line that prints in +++- the Job report. +++-- Fix the Rescue CDROM. +++-- By the way: on page http://www.bacula.org/?page=tapedrives , at the +++- bottom, the link to "Tape Testing Chapter" is broken. It goes to +++- /html-manual/... while the others point to /rel-manual/... +++-- Device resource needs the "name" of the SD. +++-- Specify a single directory to restore. +++-- Implement MediaType keyword in bsr? +++-- Add a date and time stamp at the beginning of every line in the +++- Job report (Volker Sauer). +++-- Add level to estimate command. +++-- Add "limit=n" for "list jobs" +++-- Make bootstrap filename unique. +++-- Make Dmsg look at global before calling subroutine. +++-- From Chris Hull: +++- it seems to be complaining about 12:00pm which should be a valid 12 +++- hour time. I changed the time to 11:59am and everything works fine. +++- Also 12:00am works fine. 0:00pm also works (which I don't think +++- should). None of the values 12:00pm - 12:59pm work for that matter. +++-- Require restore via the restore command or make a restore Job +++- get the bootstrap file. +++-- Implement Maximum Job Spool Size +++-- Fix 3993 error in SD. It forgets to look at autochanger +++- resource for device command, ... +++-- 3. Prevent two drives requesting the same Volume in any given +++- autochanger, by checking if a Volume is mounted on another drive +++- in an Autochanger. +++-- Upgrade to MySQL 4.1.12 See: +++- http://dev.mysql.com/doc/mysql/en/Server_SQL_mode.html +++-- Add # Job Level date to bsr file +++-- Implement "PreferMountedVolumes = yes|no" in Job resource. +++-## Integrate web-bacula into a new Bacula project with +++- bimagemgr. +++-- Cleaning tapes should have Status "Cleaning" rather than append. +++-- Make sure that Python has access to Client address/port so that +++- it can check if Clients are alive. +++-- Review all items in "restore". +++-- Fix PostgreSQL GROUP BY problems in restore. +++-- Fix PostgreSQL sql problems in bugs. +++-- After rename +++- 04-Jul 13:01 MainSD: Rufus.2005-07-04_01.05.02 Warning: Director wanted Volume +++- "DLT-13Feb04". +++- Current Volume "DLT-04Jul05" not acceptable because: +++- 1997 Volume "DLT-13Feb04" not in catalog. +++- 04-Jul 13:01 MainSD: Please mount Volume "DLT-04Jul05" on Storage Device +++- "HP DLT 80" (/dev/nst0) for Job Rufus.2005-07-04_01.05.02 +++-## Create a new GUI chapter explaining all the GUI programs. +++-- Make "update slots" when pointing to Autochanger, remove +++- all Volumes from other drives. "update slots all-drives"? +++- No, this is done by modifying mtx-changer to list what is +++- in the drives. +++-- Finish TLS implementation. +++-- Port limiting -m in iptables to prevent DoS attacks +++- could cause broken pipes on Bacula. +++-6. Build and test the Volume Shadow Copy (VSS) for Win32. +++-- Allow cancel of unknown Job +++-- State not saved when closing Win32 FD by icon +++-- bsr-opt-test fails. bsr deleted. Fix. +++-- Move Python daemon variables from Job to Bacula object. +++- WorkingDir, ConfigFile +++-- Document that Bootstrap files can be written with cataloging +++- turned off. +++-- Document details of ANSI/IBM labels +++-- OS linux 2.4 +++- 1) ADIC, DLT, FastStor 4000, 7*20GB +++-- Linux Sony LIB-D81, AIT-3 library works. +++-- Doc the following +++- to activate, check or disable the hardware compression feature on my +++- exb-8900 i use the exabyte "MammothTool" you can get it here: +++- http://www.exabyte.com/support/online/downloads/index.cfm +++- There is a solaris version of this tool. With option -C 0 or 1 you can +++- disable or activate compression. Start this tool without any options for +++- a small reference. +++-- Document Heartbeat Interval in the dealing with firewalls section. +++-- Document new CDROM directory. +++-- On Win32 working directory must have drive letter ???? +++-- On Win32 working directory must be writable by SYSTEM to +++- do restores. +++-- Document that ChangerDevice is used for Alert command. +++-- Add better documentation on how restores can be done +++-8. Take one more try at making DVD writing work (no go) +++-7. Write a bacula-web document +++-- Why isn't the DEVICE structure defined when doing +++- a reservation? +++-- Multi-drive changer seems to only use drive 0 +++- Multiple drives don't seem to be opened. +++-- My database is growing +++-- Call GetLastError() in the berrno constructor rather +++- than delaying until strerror. +++-- Tape xxx in drive 0, requested in drive 1 +++-- The mount command does not work with drives other than 0. +++-- A mount should cause the SD to re-examine what Slot is +++- loaded. +++-- The SD locks on to the first available drive then +++- wants a Volume that is released but in another drive -- +++- chaos. +++-- Run the regression scripts on Solaris and FreeBSD +++-- Figure out how to package gui, and rescue programs. +++-- Add a .dir command to restore tree code to eliminate the problem +++-- Mount after manually unloading changer causes hang in SD +++-- Fix JobACL with restore by JobId. ++++=== Done -- see kernsdone +++Index: kes-1.38 +++=================================================================== +++RCS file: /cvsroot/bacula/bacula/kes-1.38,v +++retrieving revision 1.1.2.13 +++diff -u -r1.1.2.13 kes-1.38 +++--- kes-1.38 14 Nov 2005 20:20:38 -0000 1.1.2.13 ++++++ kes-1.38 22 Nov 2005 10:42:20 -0000 +++@@ -3,6 +3,19 @@ +++ +++ General: +++ ++++Changes to 1.38.2: ++++20Oct05 ++++- Fix crash in tray-monitor when daemon disconnects. Bug #479. ++++- Fix bnet-server bug found on OpenBSD. Bug #486 (bug originator ++++ says this does not fix *his* bug). ++++- Fix cancel failure bug. Bug #481 ++++- Fix failure when Pool name has spaces. Bug #487 ++++- Fix SD crash in autochanger code. Mutex failure. Bug #488 ++++- Fix a couple of free()s in src/filed/acl.c ++++- Fix memory overrun in bfile.c in building OS X resource ++++ fork filename. Bug #489 ++++- Add Pool name to SD status output. ++++ +++ Changes to 1.38.1: +++ 14Oct05 +++ - Apply SunOS patch for ACLs submitted by David Duchscher. +++Index: projects +++=================================================================== +++RCS file: /cvsroot/bacula/bacula/projects,v +++retrieving revision 1.12.2.3 +++diff -u -r1.12.2.3 projects +++--- projects 10 Nov 2005 20:25:27 -0000 1.12.2.3 ++++++ projects 22 Nov 2005 10:42:20 -0000 +++@@ -228,7 +228,175 @@ +++ +++ Why: Performance enhancement. +++ ++++Item 13: Let Bacula log tape usage and handle drive cleaning cycles. ++++ Date: November 11, 2005 ++++ Origin: Arno Lehmann ++++ Status: ++++ ++++ What: Make Bacula manage tape life cycle information and drive ++++ cleaning cycles. ++++ ++++ Why: Both parts of this project are important when operating backups. ++++ We need to know which tapes need replacement, and we need to ++++ make sure the drives are cleaned when necessary. While many ++++ tape libraries and even autoloaders can handle all this ++++ automatically, support by Bacula can be helpful for smaller ++++ (older) libraries and single drives. Also, checking drive ++++ status during operation can prevent some failures (as I had to ++++ learn the hard way...) ++++ ++++ Notes: First, Bacula could (and even does, to some limited extent) ++++ record tape and drive usage. For tapes, the number of mounts, ++++ the amount of data, and the time the tape has actually been ++++ running could be recorded. Data fields for Read and Write time ++++ and Nmber of mounts already exist in the catalog (I'm not sure ++++ if VolBytes is the sum of all bytes ever written to that volume ++++ by Bacula). This information can be important when determining ++++ which media to replace. For the tape drives known to Bacula, ++++ similar information is interesting to determine the device ++++ status and expected life time: Time it's been Reading and ++++ Writing, number of tape Loads / Unloads / Errors. This ++++ information is not yet recorded as far as I know. ++++ ++++ The next step would be implementing drive cleaning setup. ++++ Bacula already has knowledge about cleaning tapes. Once it has ++++ some information about cleaning cycles (measured in drive run ++++ time, number of tapes used, or calender days, for example) it ++++ can automatically execute tape cleaning (with an autochanger, ++++ obviously) or ask for operator assistence loading a cleaning ++++ tape. ++++ ++++ The next step would be to implement TAPEALERT checks not only ++++ when changing tapes and only sending he information to the ++++ administrator, but rather checking after each tape error, ++++ checking on a regular basis (for example after each tape file), ++++ and also before unloading and after loading a new tape. Then, ++++ depending on the drives TAPEALERT state and the know drive ++++ cleaning state Bacula could automatically schedule later ++++ cleaning, clean immediately, or inform the operator. ++++ ++++ Implementing this would perhaps require another catalog change ++++ and perhaps major changes in SD code and the DIR-SD protocoll, ++++ so I'd only consider this worth implementing if it would ++++ actually be used or even needed by many people. ++++ ++++Item 14: Merging of multiple backups into a single one. (Also called Synthetic ++++ Backup or Consolidation). ++++ ++++ Origin: Marc Cousin and Eric Bollengier ++++ Date: 15 November 2005 ++++ Status: Depends on first implementing project Item 1 (Migration). ++++ ++++ What: A merged backup is a backup made without connecting to the Client. ++++ It would be a Merge of existing backups into a single backup. ++++ In effect, it is like a restore but to the backup medium. ++++ ++++ For instance, say that last sunday we made a full backup. Then ++++ all week long, we created incremental backups, in order to do ++++ them fast. Now comes sunday again, and we need another full. ++++ The merged backup makes it possible to do instead an incremental ++++ backup (during the night for instance), and then create a merged ++++ backup during the day, by using the full and incrementals from ++++ the week. The merged backup will be exactly like a full made ++++ sunday night on the tape, but the production interruption on the ++++ Client will be minimal, as the Client will only have to send ++++ incrementals. ++++ ++++ In fact, if it's done correctly, you could merge all the ++++ Incrementals into single Incremental, or all the Incrementals ++++ and the last Differential into a new Differential, or the Full, ++++ last differential and all the Incrementals into a new Full ++++ backup. And there is no need to involve the Client. ++++ ++++ Why: The benefit is that : ++++ - the Client just does an incremental ; ++++ - the merged backup on tape is just as a single full backup, ++++ and can be restored very fast. ++++ ++++ This is also a way of reducing the backup data since the old ++++ data can then be pruned (or not) from the catalog, possibly ++++ allowing older volumes to be recycled ++++ ++++Item 15: Automatic disabling of devices ++++ Date: 2005-11-11 ++++ Origin: Peter Eriksson ++++ Status: ++++ ++++ What: After a configurable amount of fatal errors with a tape drive ++++ Bacula should automatically disable further use of a certain ++++ tape drive. There should also be "disable"/"enable" commands in ++++ the "bconsole" tool. ++++ ++++ Why: On a multi-drive jukebox there is a possibility of tape drives ++++ going bad during large backups (needing a cleaning tape run, ++++ tapes getting stuck). It would be advantageous if Bacula would ++++ automatically disable further use of a problematic tape drive ++++ after a configurable amount of errors has occured. ++++ ++++ An example: I have a multi-drive jukebox (6 drives, 380+ slots) ++++ where tapes occasionally get stuck inside the drive. Bacula will ++++ notice that the "mtx-changer" command will fail and then fail ++++ any backup jobs trying to use that drive. However, it will still ++++ keep on trying to run new jobs using that drive and fail - ++++ forever, and thus failing lots and lots of jobs... Since we have ++++ many drives Bacula could have just automatically disabled ++++ further use of that drive and used one of the other ones ++++ instead. ++++ ++++ ++++Item 16: Directive/mode to backup only file changes, not entire file ++++ Date: 11 November 2005 ++++ Origin: Joshua Kugler ++++ Marek Bajon ++++ Status: RFC ++++ ++++ What: Currently when a file changes, the entire file will be backed up in ++++ the next incremental or full backup. To save space on the tapes ++++ it would be nice to have a mode whereby only the changes to the ++++ file would be backed up when it is changed. ++++ ++++ Why: This would save lots of space when backing up large files such as ++++ logs, mbox files, Outlook PST files and the like. ++++ ++++ Notes: This would require the usage of disk-based volumes as comparing ++++ files would not be feasible using a tape drive. ++++ ++++Item 17: Quick release of FD-SD connection ++++ Origin: Frank Volf (frank at deze dot org) ++++ Date: 17 november 2005 ++++ Status: ++++ ++++ What: In the bacula implementation a backup is finished after all data ++++ and attributes are succesfully written to storage. When using a ++++ tape backup it is very annoying that a backup can take a day, ++++ simply because the current tape (or whatever) is full and the ++++ administrator has not put a new one in. During that time the ++++ system cannot be taken off-line, because there is still an open ++++ session between the storage daemon and the file daemon on the ++++ client. ++++ ++++ Although this is a very good strategey for making "safe backups" ++++ This can be annoying for e.g. laptops, that must remain ++++ connected until the bacukp is completed. ++++ ++++ Using a new feature called "migration" it will be possible to ++++ spool first to harddisk (using a special 'spool' migration ++++ scheme) and then migrate the backup to tape. ++++ ++++ There is still the problem of getting the attributes committed. ++++ If it takes a very long time to do, with the current code, the ++++ job has not terminated, and the File daemon is not freed up. The ++++ Storage daemon should release the File daemon as soon as all the ++++ file data and all the attributes have been sent to it (the SD). ++++ Currently the SD waits until everything is on tape and all the ++++ attributes are transmitted to the Director before signalling ++++ completion to the FD. I don't think I would have any problem ++++ changing this. The reason is that even if the FD reports back to ++++ the Dir that all is OK, the job will not terminate until the SD ++++ has done the same thing -- so in a way keeping the SD-FD link ++++ open to the very end is not really very productive ... +++ ++++ Why: Makes backup of laptops much easier. +++ +++ +++ ============= Empty RFC form =========== +++@@ -245,33 +413,4 @@ +++ ============== End RFC form ============== +++ +++ +++-Items completed for release 1.38.0: +++-#4 Embedded Python Scripting (implemented in all Daemons) +++-#5 Events that call a Python program (Implemented in all +++- daemons, but more cleanup work to be done). +++-#6 Select one from among Multiple Storage Devices for Job. +++- This is already implemented in 1.37. +++-#7 Single Job Writing to Multiple Storage Devices. This is +++- currently implemented with a Clone feature. +++-#- Full multiple drive Autochanger support (done in 1.37) +++-#- Built in support for communications encryption (TLS) +++- done by Landon Fuller. +++-# Support for Unicode characters +++- (via UTF-8) on Win32 machines thanks to Thorsten Engel. +++-Item 8: Break the one-to-one Relationship between a Job and a +++- Specific Storage Device (or Devices if #10 is implemented). +++- +++-Completed items from last year's list: +++-Item 1: Multiple simultaneous Jobs. (done) +++-Item 3: Write the bscan program -- also write a bcopy program (done). +++-Item 5: Implement Label templates (done). +++-Item 6: Write a regression script (done) +++-Item 9: Add SSL to daemon communications (done by Landon Fuller) +++-Item 10: Define definitive tape format (done) +++-Item 3: GUI for interactive restore. Partially Implemented in 1.34 +++- Note, there is now a complete Webmin plugin, a partial +++- GNOME console, and an excellent wx-console GUI. +++-Item 4: GUI for interactive backup +++-Item 2: Job Data Spooling. +++- Done: Regular expression matching. +++-Item 10: New daemon communication protocol (this has been dropped). ++++Items completed for release 1.38.0 -- see kernsdone +++Index: autoconf/configure.in +++=================================================================== +++RCS file: /cvsroot/bacula/bacula/autoconf/configure.in,v +++retrieving revision 1.184.2.4 +++diff -u -r1.184.2.4 configure.in +++--- autoconf/configure.in 13 Nov 2005 10:51:17 -0000 1.184.2.4 ++++++ autoconf/configure.in 22 Nov 2005 10:42:21 -0000 +++@@ -604,7 +604,7 @@ +++ PYTHON_LIBS= +++ if test "$withval" != "no"; then +++ if test "$withval" = "yes"; then +++- for python_root in /usr /usr/local; do ++++ for python_root in /usr /usr/local /usr/sfw; do +++ if test -f $python_root/include/python2.2/Python.h; then +++ PYTHON_INCDIR=-I$python_root/include/python2.2 +++ PYTHON_LIBS="-L$python_root/lib/python2.2/config -lpython2.2" +++Index: patches/1.38.1-to-1.38.2.patch +++=================================================================== +++RCS file: patches/1.38.1-to-1.38.2.patch +++diff -N patches/1.38.1-to-1.38.2.patch +++--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++++ patches/1.38.1-to-1.38.2.patch 22 Nov 2005 10:42:22 -0000 +++@@ -0,0 +1,4586 @@ ++++ ++++ This patch fixes the following bugs: ++++ ++++- Fix crash in tray-monitor when daemon disconnects. Bug #479. ++++- Fix bnet-server bug found on OpenBSD. Bug #486 (bug originator ++++ says that this patch does not fix his problem) ++++- Fix cancel failure bug. Bug #481 ++++- Fix failure when Pool name has spaces. Bug #487 ++++- Fix SD crash in autochanger code. Mutex failure. Bug #488 ++++- Fix a couple of free()s in src/filed/acl.c ++++- Fix memory overrun in bfile.c in building OS X resource ++++ fork filename. Bug #489 ++++ ++++This patch is applied to Bacula source version 1.38.1 and will ++++produce Bacula source version 1.38.2. Apply it with: ++++ ++++ cd ++++ ./configure (your options) if not already done ++++ patch -p0 <1.38.1-to-1.38.2.patch ++++ make ++++ make install ++++ ++++? osx_finder.patch ++++Index: ChangeLog ++++=================================================================== ++++RCS file: /cvsroot/bacula/bacula/ChangeLog,v ++++retrieving revision 1.154.2.7 ++++diff -u -r1.154.2.7 ChangeLog ++++--- ChangeLog 15 Nov 2005 09:27:19 -0000 1.154.2.7 +++++++ ChangeLog 21 Nov 2005 18:19:03 -0000 ++++@@ -1,4 +1,14 @@ ++++ +++++Changes to 1.38.2: +++++- Fix crash in tray-monitor when daemon disconnects. Bug #479. +++++- Fix bnet-server bug found on OpenBSD. Bug #486 +++++- Fix cancel failure bug. Bug #481 +++++- Fix failure when Pool name has spaces. Bug #487 +++++- Fix SD crash in autochanger code. Mutex failure. Bug #488 +++++- Fix a couple of free()s in src/filed/acl.c +++++- Fix memory overrun in bfile.c in building OS X resource +++++ fork filename. Bug #489 +++++- Add Pool name to SD status output. ++++ ++++ Changes to 1.38.1: ++++ - Apply SunOS patch for ACLs submitted by David Duchscher. ++++Index: ReleaseNotes ++++=================================================================== ++++RCS file: /cvsroot/bacula/bacula/ReleaseNotes,v ++++retrieving revision 1.147.2.9 ++++diff -u -r1.147.2.9 ReleaseNotes ++++--- ReleaseNotes 15 Nov 2005 09:27:19 -0000 1.147.2.9 +++++++ ReleaseNotes 21 Nov 2005 18:19:04 -0000 ++++@@ -1,10 +1,21 @@ ++++ ++++- Release Notes for Bacula 1.38.1 +++++ Release Notes for Bacula 1.38.2 ++++ ++++ Bacula code: Total files = 420 Total lines = 138,440 (*.h *.c *.in) ++++ 20,440 additional lines of code since version 1.36.3 ++++ ++++-Changes since 1.38.0: +++++Changes to 1.38.2: +++++- Fix crash in tray-monitor when daemon disconnects. Bug #479. +++++- Fix bnet-server bug found on OpenBSD. Bug #486 +++++- Fix cancel failure bug. Bug #481 +++++- Fix failure when Pool name has spaces. Bug #487 +++++- Fix SD crash in autochanger code. Mutex failure. Bug #488 +++++- Fix a couple of free()s in src/filed/acl.c +++++- Fix memory overrun in bfile.c in building OS X resource +++++ fork filename. Bug #489 +++++- Add Pool name to SD status output. +++++ +++++Changes to 1.38.1: ++++ - Corrected ACL for Solaris (David Duchscher and Attila Fulop). ++++ - Add bacula_mail_summary.sh to examples directory. It makes ++++ a single email summary of any number of jobs. Submitted ++++Index: kernstodo ++++=================================================================== ++++RCS file: /cvsroot/bacula/bacula/kernstodo,v ++++retrieving revision 1.570.2.6 ++++diff -u -r1.570.2.6 kernstodo ++++--- kernstodo 4 Nov 2005 09:16:49 -0000 1.570.2.6 +++++++ kernstodo 21 Nov 2005 18:19:04 -0000 ++++@@ -1,5 +1,5 @@ ++++ Kern's ToDo List ++++- 03 November 2005 +++++ 21 November 2005 ++++ ++++ Major development: ++++ Project Developer ++++@@ -7,8 +7,6 @@ ++++ Version 1.37 Kern (see below) ++++ ======================================================== ++++ ++++-Final items for 1.37 before release: ++++- ++++ Document: ++++ - Does ClientRunAfterJob fail the job on a bad return code? ++++ - Document cleaning up the spool files: ++++@@ -18,6 +16,8 @@ ++++ - Does WildFile match against full name? Doc. ++++ ++++ For 1.39: +++++- Make sure that all do_prompt() calls in Dir check for +++++ -1 (error) and -2 (cancel) returns. ++++ - Look at -D_FORTIFY_SOURCE=2 ++++ - Add Win32 FileSet definition somewhere ++++ - Look at fixing restore status stats in SD. ++++@@ -27,6 +27,12 @@ ++++ encountered, read many times (as it currently does), and if the ++++ block cannot be read, skip to the next block, and try again. If ++++ that fails, skip to the next file and try again, ... +++++- Add level table: +++++ create table LevelType (LevelType binary(1), LevelTypeLong tinyblob); +++++ insert into LevelType (LevelType,LevelTypeLong) values +++++ ("F","Full"), +++++ ("D","Diff"), +++++ ("I","Inc"); ++++ - Add ACL to restore only to original location. ++++ - Add a recursive mark command (rmark) to restore. ++++ - "Minimum Job Interval = nnn" sets minimum interval between Jobs ++++@@ -1246,219 +1252,4 @@ ++++ ==== ++++ ++++ ++++-=== Done ++++-- Save mount point for directories not traversed with onefs=yes. ++++-- Add seconds to start and end times in the Job report output. ++++-- if 2 concurrent backups are attempted on the same tape ++++- drive (autoloader) into different tape pools, one of them will exit ++++- fatally instead of halting until the drive is idle ++++-- Update StartTime if job held in Job Queue. ++++-- Look at www.nu2.nu/pebuilder as a helper for full windows ++++- bare metal restore. (done by Scott) ++++-- Fix orphanned buffers: ++++- Orphaned buffer: 24 bytes allocated at line 808 of rufus-dir job.c ++++- Orphaned buffer: 40 bytes allocated at line 45 of rufus-dir alist.c ++++-- Implement Preben's suggestion to add ++++- File System Types = ext2, ext3 ++++- to FileSets, thus simplifying backup of *all* local partitions. ++++-- Try to open a device on each Job if it was not opened ++++- when the SD started. ++++-- Add dump of VolSessionId/Time and FileIndex with bls. ++++-- If Bacula does not find the right tape in the Autochanger, ++++- then mark the tape in error and move on rather than asking ++++- for operator intervention. ++++-- Cancel command should include JobId in list of Jobs. ++++-- Add performance testing hooks ++++-- Bootstrap from JobMedia records. ++++-- Implement WildFile and WildDir to solve problem of ++++- saving only *.doc files. ++++-- Fix ++++- Please use the "label" command to create a new Volume for: ++++- Storage: DDS-4-changer ++++- Media type: ++++- Pool: Default ++++- label ++++- The defined Storage resources are: ++++-- Copy Changer Device and Changer Command from Autochanger ++++- to Device resource in SD if none given in Device resource. ++++-- 1. Automatic use of more than one drive in an autochanger (done) ++++-- 2. Automatic selection of the correct drive for each Job (i.e. ++++- selects a drive with an appropriate Volume for the Job) (done) ++++-- 6. Allow multiple simultaneous Jobs referencing the same pool write ++++- to several tapes (some new directive(s) are are probably needed for ++++- this) (done) ++++-- Locking (done) ++++-- Key on Storage rather than Pool (done) ++++-- Allow multiple drives to use same Pool (change jobq.c DIR) (done). ++++-- Synchronize multiple drives so that not more ++++- than one loads a tape and any time (done) ++++-- 4. Use Changer Device and Changer Command specified in the ++++- Autochanger resource, if none is found in the Device resource. ++++- You can continue to specify them in the Device resource if you want ++++- or need them to be different for each device. ++++-- 5. Implement a new Device directive (perhaps "Autoselect = yes/no") ++++- that can allow a Device be part of an Autochanger, and hence the changer ++++- script protected, but if set to no, will prevent the Device from being ++++- automatically selected from the changer. This allows the device to ++++- be directly accessed through its Device name, but not through the ++++- AutoChanger name. ++++-#6 Select one from among Multiple Storage Devices for Job ++++-#5 Events that call a Python program ++++- (Implemented in Dir/SD) ++++-- Make sure the Device name is in the Query packet returned. ++++-- Don't start a second file job if one is already running. ++++-- Implement EOF/EOV labels for ANSI labels ++++-- Implement IBM labels. ++++-- When Python creates a new label, the tape is immediately ++++- recycled and no label created. This happens when using ++++- autolabeling -- even when Python doesn't generate the name. ++++-- Scratch Pool where the volumes can be re-assigned to any Pool. ++++-- 28-Mar 23:19 rufus-sd: acquire.c:379 Device "DDS-4" (/dev/nst0) ++++- is busy reading. Job 6 canceled. ++++-- Remove separate thread for opening devices in SD. On the other ++++- hand, don't block waiting for open() for devices. ++++-- Fix code to either handle updating NumVol or to calculate it in ++++- Dir next_vol.c ++++-- Ensure that you cannot exclude a directory or a file explicitly ++++- Included with File. ++++-#4 Embedded Python Scripting ++++- (Implemented in Dir/SD/FD) ++++-- Add Python writable variable for changing the Priority, ++++- Client, Storage, JobStatus (error), ... ++++-- SD Python ++++- - Solicit Events ++++-- Add disk seeking on restore; turn off seek on tapes. ++++- stored/match_bsr.c ++++-- Look at dird_conf.c:1000: warning: `int size' ++++- might be used uninitialized in this function ++++-- Indicate when a Job is purged/pruned during restore. ++++-- Implement some way to turn off automatic pruning in Jobs. ++++-- Implement a way an Admin Job can prune, possibly multiple ++++- clients -- Python script? ++++-- Look at Preben's acl.c error handling code. ++++-- SD crashes after a tape restore then doing a backup. ++++-- If drive is opened read/write, close it and re-open ++++- read-only if doing a restore, and vice-versa. ++++-- Windows restore: ++++- data-fd: RestoreFiles.2004-12-07_15.56.42 Error: ++++- > ..\findlib\../../findlib/create_file.c:275 Could not open e:/: ERR=Der ++++- > Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen ++++- > Prozess verwendet wird. ++++- Restore restores all files, but then fails at the end trying ++++- to set the attributes of e: ++++- from failed jobs.- Resolve the problem between Device name and Archive name, ++++- and fix SD messages. ++++-- Tell the "restore" user when browsing is no longer possible. ++++-- Add a restore directory-x ++++-- Write non-optimized bsrs from the JobMedia and Media records, ++++- even after Files are pruned. ++++-- Delete Stripe and Copy from VolParams to save space. ++++-- Fix option 2 of restore -- list where file is backed up -- require Client, ++++- then list last 20 backups. ++++-- Finish implementation of passing all Storage and Device needs to ++++- the SD. ++++-- Move test for max wait time exceeded in job.c up -- Peter's idea. ++++-## Consider moving docs to their own project. ++++-## Move rescue to its own project. ++++-- Add client version to the Client name line that prints in ++++- the Job report. ++++-- Fix the Rescue CDROM. ++++-- By the way: on page http://www.bacula.org/?page=tapedrives , at the ++++- bottom, the link to "Tape Testing Chapter" is broken. It goes to ++++- /html-manual/... while the others point to /rel-manual/... ++++-- Device resource needs the "name" of the SD. ++++-- Specify a single directory to restore. ++++-- Implement MediaType keyword in bsr? ++++-- Add a date and time stamp at the beginning of every line in the ++++- Job report (Volker Sauer). ++++-- Add level to estimate command. ++++-- Add "limit=n" for "list jobs" ++++-- Make bootstrap filename unique. ++++-- Make Dmsg look at global before calling subroutine. ++++-- From Chris Hull: ++++- it seems to be complaining about 12:00pm which should be a valid 12 ++++- hour time. I changed the time to 11:59am and everything works fine. ++++- Also 12:00am works fine. 0:00pm also works (which I don't think ++++- should). None of the values 12:00pm - 12:59pm work for that matter. ++++-- Require restore via the restore command or make a restore Job ++++- get the bootstrap file. ++++-- Implement Maximum Job Spool Size ++++-- Fix 3993 error in SD. It forgets to look at autochanger ++++- resource for device command, ... ++++-- 3. Prevent two drives requesting the same Volume in any given ++++- autochanger, by checking if a Volume is mounted on another drive ++++- in an Autochanger. ++++-- Upgrade to MySQL 4.1.12 See: ++++- http://dev.mysql.com/doc/mysql/en/Server_SQL_mode.html ++++-- Add # Job Level date to bsr file ++++-- Implement "PreferMountedVolumes = yes|no" in Job resource. ++++-## Integrate web-bacula into a new Bacula project with ++++- bimagemgr. ++++-- Cleaning tapes should have Status "Cleaning" rather than append. ++++-- Make sure that Python has access to Client address/port so that ++++- it can check if Clients are alive. ++++-- Review all items in "restore". ++++-- Fix PostgreSQL GROUP BY problems in restore. ++++-- Fix PostgreSQL sql problems in bugs. ++++-- After rename ++++- 04-Jul 13:01 MainSD: Rufus.2005-07-04_01.05.02 Warning: Director wanted Volume ++++- "DLT-13Feb04". ++++- Current Volume "DLT-04Jul05" not acceptable because: ++++- 1997 Volume "DLT-13Feb04" not in catalog. ++++- 04-Jul 13:01 MainSD: Please mount Volume "DLT-04Jul05" on Storage Device ++++- "HP DLT 80" (/dev/nst0) for Job Rufus.2005-07-04_01.05.02 ++++-## Create a new GUI chapter explaining all the GUI programs. ++++-- Make "update slots" when pointing to Autochanger, remove ++++- all Volumes from other drives. "update slots all-drives"? ++++- No, this is done by modifying mtx-changer to list what is ++++- in the drives. ++++-- Finish TLS implementation. ++++-- Port limiting -m in iptables to prevent DoS attacks ++++- could cause broken pipes on Bacula. ++++-6. Build and test the Volume Shadow Copy (VSS) for Win32. ++++-- Allow cancel of unknown Job ++++-- State not saved when closing Win32 FD by icon ++++-- bsr-opt-test fails. bsr deleted. Fix. ++++-- Move Python daemon variables from Job to Bacula object. ++++- WorkingDir, ConfigFile ++++-- Document that Bootstrap files can be written with cataloging ++++- turned off. ++++-- Document details of ANSI/IBM labels ++++-- OS linux 2.4 ++++- 1) ADIC, DLT, FastStor 4000, 7*20GB ++++-- Linux Sony LIB-D81, AIT-3 library works. ++++-- Doc the following ++++- to activate, check or disable the hardware compression feature on my ++++- exb-8900 i use the exabyte "MammothTool" you can get it here: ++++- http://www.exabyte.com/support/online/downloads/index.cfm ++++- There is a solaris version of this tool. With option -C 0 or 1 you can ++++- disable or activate compression. Start this tool without any options for ++++- a small reference. ++++-- Document Heartbeat Interval in the dealing with firewalls section. ++++-- Document new CDROM directory. ++++-- On Win32 working directory must have drive letter ???? ++++-- On Win32 working directory must be writable by SYSTEM to ++++- do restores. ++++-- Document that ChangerDevice is used for Alert command. ++++-- Add better documentation on how restores can be done ++++-8. Take one more try at making DVD writing work (no go) ++++-7. Write a bacula-web document ++++-- Why isn't the DEVICE structure defined when doing ++++- a reservation? ++++-- Multi-drive changer seems to only use drive 0 ++++- Multiple drives don't seem to be opened. ++++-- My database is growing ++++-- Call GetLastError() in the berrno constructor rather ++++- than delaying until strerror. ++++-- Tape xxx in drive 0, requested in drive 1 ++++-- The mount command does not work with drives other than 0. ++++-- A mount should cause the SD to re-examine what Slot is ++++- loaded. ++++-- The SD locks on to the first available drive then ++++- wants a Volume that is released but in another drive -- ++++- chaos. ++++-- Run the regression scripts on Solaris and FreeBSD ++++-- Figure out how to package gui, and rescue programs. ++++-- Add a .dir command to restore tree code to eliminate the problem ++++-- Mount after manually unloading changer causes hang in SD ++++-- Fix JobACL with restore by JobId. +++++=== Done -- see kernsdone ++++Index: kes-1.38 ++++=================================================================== ++++RCS file: /cvsroot/bacula/bacula/kes-1.38,v ++++retrieving revision 1.1.2.13 ++++diff -u -r1.1.2.13 kes-1.38 ++++--- kes-1.38 14 Nov 2005 20:20:38 -0000 1.1.2.13 +++++++ kes-1.38 21 Nov 2005 18:19:04 -0000 ++++@@ -3,6 +3,19 @@ ++++ ++++ General: ++++ +++++Changes to 1.38.2: +++++20Oct05 +++++- Fix crash in tray-monitor when daemon disconnects. Bug #479. +++++- Fix bnet-server bug found on OpenBSD. Bug #486 (bug originator +++++ says this does not fix *his* bug). +++++- Fix cancel failure bug. Bug #481 +++++- Fix failure when Pool name has spaces. Bug #487 +++++- Fix SD crash in autochanger code. Mutex failure. Bug #488 +++++- Fix a couple of free()s in src/filed/acl.c +++++- Fix memory overrun in bfile.c in building OS X resource +++++ fork filename. Bug #489 +++++- Add Pool name to SD status output. +++++ ++++ Changes to 1.38.1: ++++ 14Oct05 ++++ - Apply SunOS patch for ACLs submitted by David Duchscher. ++++Index: projects ++++=================================================================== ++++RCS file: /cvsroot/bacula/bacula/projects,v ++++retrieving revision 1.12.2.3 ++++diff -u -r1.12.2.3 projects ++++--- projects 10 Nov 2005 20:25:27 -0000 1.12.2.3 +++++++ projects 21 Nov 2005 18:19:05 -0000 ++++@@ -228,7 +228,175 @@ ++++ ++++ Why: Performance enhancement. ++++ +++++Item 13: Let Bacula log tape usage and handle drive cleaning cycles. +++++ Date: November 11, 2005 +++++ Origin: Arno Lehmann +++++ Status: +++++ +++++ What: Make Bacula manage tape life cycle information and drive +++++ cleaning cycles. +++++ +++++ Why: Both parts of this project are important when operating backups. +++++ We need to know which tapes need replacement, and we need to +++++ make sure the drives are cleaned when necessary. While many +++++ tape libraries and even autoloaders can handle all this +++++ automatically, support by Bacula can be helpful for smaller +++++ (older) libraries and single drives. Also, checking drive +++++ status during operation can prevent some failures (as I had to +++++ learn the hard way...) +++++ +++++ Notes: First, Bacula could (and even does, to some limited extent) +++++ record tape and drive usage. For tapes, the number of mounts, +++++ the amount of data, and the time the tape has actually been +++++ running could be recorded. Data fields for Read and Write time +++++ and Nmber of mounts already exist in the catalog (I'm not sure +++++ if VolBytes is the sum of all bytes ever written to that volume +++++ by Bacula). This information can be important when determining +++++ which media to replace. For the tape drives known to Bacula, +++++ similar information is interesting to determine the device +++++ status and expected life time: Time it's been Reading and +++++ Writing, number of tape Loads / Unloads / Errors. This +++++ information is not yet recorded as far as I know. +++++ +++++ The next step would be implementing drive cleaning setup. +++++ Bacula already has knowledge about cleaning tapes. Once it has +++++ some information about cleaning cycles (measured in drive run +++++ time, number of tapes used, or calender days, for example) it +++++ can automatically execute tape cleaning (with an autochanger, +++++ obviously) or ask for operator assistence loading a cleaning +++++ tape. +++++ +++++ The next step would be to implement TAPEALERT checks not only +++++ when changing tapes and only sending he information to the +++++ administrator, but rather checking after each tape error, +++++ checking on a regular basis (for example after each tape file), +++++ and also before unloading and after loading a new tape. Then, +++++ depending on the drives TAPEALERT state and the know drive +++++ cleaning state Bacula could automatically schedule later +++++ cleaning, clean immediately, or inform the operator. +++++ +++++ Implementing this would perhaps require another catalog change +++++ and perhaps major changes in SD code and the DIR-SD protocoll, +++++ so I'd only consider this worth implementing if it would +++++ actually be used or even needed by many people. +++++ +++++Item 14: Merging of multiple backups into a single one. (Also called Synthetic +++++ Backup or Consolidation). +++++ +++++ Origin: Marc Cousin and Eric Bollengier +++++ Date: 15 November 2005 +++++ Status: Depends on first implementing project Item 1 (Migration). +++++ +++++ What: A merged backup is a backup made without connecting to the Client. +++++ It would be a Merge of existing backups into a single backup. +++++ In effect, it is like a restore but to the backup medium. +++++ +++++ For instance, say that last sunday we made a full backup. Then +++++ all week long, we created incremental backups, in order to do +++++ them fast. Now comes sunday again, and we need another full. +++++ The merged backup makes it possible to do instead an incremental +++++ backup (during the night for instance), and then create a merged +++++ backup during the day, by using the full and incrementals from +++++ the week. The merged backup will be exactly like a full made +++++ sunday night on the tape, but the production interruption on the +++++ Client will be minimal, as the Client will only have to send +++++ incrementals. +++++ +++++ In fact, if it's done correctly, you could merge all the +++++ Incrementals into single Incremental, or all the Incrementals +++++ and the last Differential into a new Differential, or the Full, +++++ last differential and all the Incrementals into a new Full +++++ backup. And there is no need to involve the Client. +++++ +++++ Why: The benefit is that : +++++ - the Client just does an incremental ; +++++ - the merged backup on tape is just as a single full backup, +++++ and can be restored very fast. +++++ +++++ This is also a way of reducing the backup data since the old +++++ data can then be pruned (or not) from the catalog, possibly +++++ allowing older volumes to be recycled +++++ +++++Item 15: Automatic disabling of devices +++++ Date: 2005-11-11 +++++ Origin: Peter Eriksson +++++ Status: +++++ +++++ What: After a configurable amount of fatal errors with a tape drive +++++ Bacula should automatically disable further use of a certain +++++ tape drive. There should also be "disable"/"enable" commands in +++++ the "bconsole" tool. +++++ +++++ Why: On a multi-drive jukebox there is a possibility of tape drives +++++ going bad during large backups (needing a cleaning tape run, +++++ tapes getting stuck). It would be advantageous if Bacula would +++++ automatically disable further use of a problematic tape drive +++++ after a configurable amount of errors has occured. +++++ +++++ An example: I have a multi-drive jukebox (6 drives, 380+ slots) +++++ where tapes occasionally get stuck inside the drive. Bacula will +++++ notice that the "mtx-changer" command will fail and then fail +++++ any backup jobs trying to use that drive. However, it will still +++++ keep on trying to run new jobs using that drive and fail - +++++ forever, and thus failing lots and lots of jobs... Since we have +++++ many drives Bacula could have just automatically disabled +++++ further use of that drive and used one of the other ones +++++ instead. +++++ +++++ +++++Item 16: Directive/mode to backup only file changes, not entire file +++++ Date: 11 November 2005 +++++ Origin: Joshua Kugler +++++ Marek Bajon +++++ Status: RFC +++++ +++++ What: Currently when a file changes, the entire file will be backed up in +++++ the next incremental or full backup. To save space on the tapes +++++ it would be nice to have a mode whereby only the changes to the +++++ file would be backed up when it is changed. +++++ +++++ Why: This would save lots of space when backing up large files such as +++++ logs, mbox files, Outlook PST files and the like. +++++ +++++ Notes: This would require the usage of disk-based volumes as comparing +++++ files would not be feasible using a tape drive. +++++ +++++Item 17: Quick release of FD-SD connection +++++ Origin: Frank Volf (frank at deze dot org) +++++ Date: 17 november 2005 +++++ Status: +++++ +++++ What: In the bacula implementation a backup is finished after all data +++++ and attributes are succesfully written to storage. When using a +++++ tape backup it is very annoying that a backup can take a day, +++++ simply because the current tape (or whatever) is full and the +++++ administrator has not put a new one in. During that time the +++++ system cannot be taken off-line, because there is still an open +++++ session between the storage daemon and the file daemon on the +++++ client. +++++ +++++ Although this is a very good strategey for making "safe backups" +++++ This can be annoying for e.g. laptops, that must remain +++++ connected until the bacukp is completed. +++++ +++++ Using a new feature called "migration" it will be possible to +++++ spool first to harddisk (using a special 'spool' migration +++++ scheme) and then migrate the backup to tape. +++++ +++++ There is still the problem of getting the attributes committed. +++++ If it takes a very long time to do, with the current code, the +++++ job has not terminated, and the File daemon is not freed up. The +++++ Storage daemon should release the File daemon as soon as all the +++++ file data and all the attributes have been sent to it (the SD). +++++ Currently the SD waits until everything is on tape and all the +++++ attributes are transmitted to the Director before signalling +++++ completion to the FD. I don't think I would have any problem +++++ changing this. The reason is that even if the FD reports back to +++++ the Dir that all is OK, the job will not terminate until the SD +++++ has done the same thing -- so in a way keeping the SD-FD link +++++ open to the very end is not really very productive ... ++++ +++++ Why: Makes backup of laptops much easier. ++++ ++++ ++++ ============= Empty RFC form =========== ++++@@ -245,33 +413,4 @@ ++++ ============== End RFC form ============== ++++ ++++ ++++-Items completed for release 1.38.0: ++++-#4 Embedded Python Scripting (implemented in all Daemons) ++++-#5 Events that call a Python program (Implemented in all ++++- daemons, but more cleanup work to be done). ++++-#6 Select one from among Multiple Storage Devices for Job. ++++- This is already implemented in 1.37. ++++-#7 Single Job Writing to Multiple Storage Devices. This is ++++- currently implemented with a Clone feature. ++++-#- Full multiple drive Autochanger support (done in 1.37) ++++-#- Built in support for communications encryption (TLS) ++++- done by Landon Fuller. ++++-# Support for Unicode characters ++++- (via UTF-8) on Win32 machines thanks to Thorsten Engel. ++++-Item 8: Break the one-to-one Relationship between a Job and a ++++- Specific Storage Device (or Devices if #10 is implemented). ++++- ++++-Completed items from last year's list: ++++-Item 1: Multiple simultaneous Jobs. (done) ++++-Item 3: Write the bscan program -- also write a bcopy program (done). ++++-Item 5: Implement Label templates (done). ++++-Item 6: Write a regression script (done) ++++-Item 9: Add SSL to daemon communications (done by Landon Fuller) ++++-Item 10: Define definitive tape format (done) ++++-Item 3: GUI for interactive restore. Partially Implemented in 1.34 ++++- Note, there is now a complete Webmin plugin, a partial ++++- GNOME console, and an excellent wx-console GUI. ++++-Item 4: GUI for interactive backup ++++-Item 2: Job Data Spooling. ++++- Done: Regular expression matching. ++++-Item 10: New daemon communication protocol (this has been dropped). +++++Items completed for release 1.38.0 -- see kernsdone ++++Index: patches/1.38.1-to-1.38.2.patch ++++=================================================================== ++++RCS file: patches/1.38.1-to-1.38.2.patch ++++diff -N patches/1.38.1-to-1.38.2.patch ++++--- /dev/null 1 Jan 1970 00:00:00 -0000 +++++++ patches/1.38.1-to-1.38.2.patch 21 Nov 2005 18:19:05 -0000 ++++@@ -0,0 +1,3528 @@ +++++ +++++ This patch fixes the following bugs: +++++ +++++- Fix crash in tray-monitor when daemon disconnects. Bug #479. +++++- Fix bnet-server bug found on OpenBSD. Bug #486 (bug originator +++++ says that this patch does not fix his problem) +++++- Fix cancel failure bug. Bug #481 +++++- Fix failure when Pool name has spaces. Bug #487 +++++- Fix SD crash in autochanger code. Mutex failure. Bug #488 +++++- Fix a couple of free()s in src/filed/acl.c +++++- Fix memory overrun in bfile.c in building OS X resource +++++ fork filename. Bug #489 +++++ +++++This patch is applied to Bacula source version 1.38.1 and will +++++produce Bacula source version 1.38.2. Apply it with: +++++ +++++ cd +++++ ./configure (your options) if not already done +++++ patch -p0 <1.38.1-to-1.38.2.patch +++++ make +++++ make install +++++ +++++? osx_finder.patch +++++Index: ChangeLog +++++=================================================================== +++++RCS file: /cvsroot/bacula/bacula/ChangeLog,v +++++retrieving revision 1.154.2.7 +++++diff -u -r1.154.2.7 ChangeLog +++++--- ChangeLog 15 Nov 2005 09:27:19 -0000 1.154.2.7 ++++++++ ChangeLog 21 Nov 2005 13:17:56 -0000 +++++@@ -1,4 +1,14 @@ +++++ ++++++Changes to 1.38.2: ++++++- Fix crash in tray-monitor when daemon disconnects. Bug #479. ++++++- Fix bnet-server bug found on OpenBSD. Bug #486 ++++++- Fix cancel failure bug. Bug #481 ++++++- Fix failure when Pool name has spaces. Bug #487 ++++++- Fix SD crash in autochanger code. Mutex failure. Bug #488 ++++++- Fix a couple of free()s in src/filed/acl.c ++++++- Fix memory overrun in bfile.c in building OS X resource ++++++ fork filename. Bug #489 ++++++- Add Pool name to SD status output. +++++ +++++ Changes to 1.38.1: +++++ - Apply SunOS patch for ACLs submitted by David Duchscher. +++++Index: ReleaseNotes +++++=================================================================== +++++RCS file: /cvsroot/bacula/bacula/ReleaseNotes,v +++++retrieving revision 1.147.2.9 +++++diff -u -r1.147.2.9 ReleaseNotes +++++--- ReleaseNotes 15 Nov 2005 09:27:19 -0000 1.147.2.9 ++++++++ ReleaseNotes 21 Nov 2005 13:17:57 -0000 +++++@@ -1,10 +1,21 @@ +++++ +++++- Release Notes for Bacula 1.38.1 ++++++ Release Notes for Bacula 1.38.2 +++++ +++++ Bacula code: Total files = 420 Total lines = 138,440 (*.h *.c *.in) +++++ 20,440 additional lines of code since version 1.36.3 +++++ +++++-Changes since 1.38.0: ++++++Changes to 1.38.2: ++++++- Fix crash in tray-monitor when daemon disconnects. Bug #479. ++++++- Fix bnet-server bug found on OpenBSD. Bug #486 ++++++- Fix cancel failure bug. Bug #481 ++++++- Fix failure when Pool name has spaces. Bug #487 ++++++- Fix SD crash in autochanger code. Mutex failure. Bug #488 ++++++- Fix a couple of free()s in src/filed/acl.c ++++++- Fix memory overrun in bfile.c in building OS X resource ++++++ fork filename. Bug #489 ++++++- Add Pool name to SD status output. ++++++ ++++++Changes to 1.38.1: +++++ - Corrected ACL for Solaris (David Duchscher and Attila Fulop). +++++ - Add bacula_mail_summary.sh to examples directory. It makes +++++ a single email summary of any number of jobs. Submitted +++++Index: kernstodo +++++=================================================================== +++++RCS file: /cvsroot/bacula/bacula/kernstodo,v +++++retrieving revision 1.570.2.6 +++++diff -u -r1.570.2.6 kernstodo +++++--- kernstodo 4 Nov 2005 09:16:49 -0000 1.570.2.6 ++++++++ kernstodo 21 Nov 2005 13:17:57 -0000 +++++@@ -1,5 +1,5 @@ +++++ Kern's ToDo List +++++- 03 November 2005 ++++++ 21 November 2005 +++++ +++++ Major development: +++++ Project Developer +++++@@ -7,8 +7,6 @@ +++++ Version 1.37 Kern (see below) +++++ ======================================================== +++++ +++++-Final items for 1.37 before release: +++++- +++++ Document: +++++ - Does ClientRunAfterJob fail the job on a bad return code? +++++ - Document cleaning up the spool files: +++++@@ -18,6 +16,8 @@ +++++ - Does WildFile match against full name? Doc. +++++ +++++ For 1.39: ++++++- Make sure that all do_prompt() calls in Dir check for ++++++ -1 (error) and -2 (cancel) returns. +++++ - Look at -D_FORTIFY_SOURCE=2 +++++ - Add Win32 FileSet definition somewhere +++++ - Look at fixing restore status stats in SD. +++++@@ -27,6 +27,12 @@ +++++ encountered, read many times (as it currently does), and if the +++++ block cannot be read, skip to the next block, and try again. If +++++ that fails, skip to the next file and try again, ... ++++++- Add level table: ++++++ create table LevelType (LevelType binary(1), LevelTypeLong tinyblob); ++++++ insert into LevelType (LevelType,LevelTypeLong) values ++++++ ("F","Full"), ++++++ ("D","Diff"), ++++++ ("I","Inc"); +++++ - Add ACL to restore only to original location. +++++ - Add a recursive mark command (rmark) to restore. +++++ - "Minimum Job Interval = nnn" sets minimum interval between Jobs +++++@@ -1246,219 +1252,4 @@ +++++ ==== +++++ +++++ +++++-=== Done +++++-- Save mount point for directories not traversed with onefs=yes. +++++-- Add seconds to start and end times in the Job report output. +++++-- if 2 concurrent backups are attempted on the same tape +++++- drive (autoloader) into different tape pools, one of them will exit +++++- fatally instead of halting until the drive is idle +++++-- Update StartTime if job held in Job Queue. +++++-- Look at www.nu2.nu/pebuilder as a helper for full windows +++++- bare metal restore. (done by Scott) +++++-- Fix orphanned buffers: +++++- Orphaned buffer: 24 bytes allocated at line 808 of rufus-dir job.c +++++- Orphaned buffer: 40 bytes allocated at line 45 of rufus-dir alist.c +++++-- Implement Preben's suggestion to add +++++- File System Types = ext2, ext3 +++++- to FileSets, thus simplifying backup of *all* local partitions. +++++-- Try to open a device on each Job if it was not opened +++++- when the SD started. +++++-- Add dump of VolSessionId/Time and FileIndex with bls. +++++-- If Bacula does not find the right tape in the Autochanger, +++++- then mark the tape in error and move on rather than asking +++++- for operator intervention. +++++-- Cancel command should include JobId in list of Jobs. +++++-- Add performance testing hooks +++++-- Bootstrap from JobMedia records. +++++-- Implement WildFile and WildDir to solve problem of +++++- saving only *.doc files. +++++-- Fix +++++- Please use the "label" command to create a new Volume for: +++++- Storage: DDS-4-changer +++++- Media type: +++++- Pool: Default +++++- label +++++- The defined Storage resources are: +++++-- Copy Changer Device and Changer Command from Autochanger +++++- to Device resource in SD if none given in Device resource. +++++-- 1. Automatic use of more than one drive in an autochanger (done) +++++-- 2. Automatic selection of the correct drive for each Job (i.e. +++++- selects a drive with an appropriate Volume for the Job) (done) +++++-- 6. Allow multiple simultaneous Jobs referencing the same pool write +++++- to several tapes (some new directive(s) are are probably needed for +++++- this) (done) +++++-- Locking (done) +++++-- Key on Storage rather than Pool (done) +++++-- Allow multiple drives to use same Pool (change jobq.c DIR) (done). +++++-- Synchronize multiple drives so that not more +++++- than one loads a tape and any time (done) +++++-- 4. Use Changer Device and Changer Command specified in the +++++- Autochanger resource, if none is found in the Device resource. +++++- You can continue to specify them in the Device resource if you want +++++- or need them to be different for each device. +++++-- 5. Implement a new Device directive (perhaps "Autoselect = yes/no") +++++- that can allow a Device be part of an Autochanger, and hence the changer +++++- script protected, but if set to no, will prevent the Device from being +++++- automatically selected from the changer. This allows the device to +++++- be directly accessed through its Device name, but not through the +++++- AutoChanger name. +++++-#6 Select one from among Multiple Storage Devices for Job +++++-#5 Events that call a Python program +++++- (Implemented in Dir/SD) +++++-- Make sure the Device name is in the Query packet returned. +++++-- Don't start a second file job if one is already running. +++++-- Implement EOF/EOV labels for ANSI labels +++++-- Implement IBM labels. +++++-- When Python creates a new label, the tape is immediately +++++- recycled and no label created. This happens when using +++++- autolabeling -- even when Python doesn't generate the name. +++++-- Scratch Pool where the volumes can be re-assigned to any Pool. +++++-- 28-Mar 23:19 rufus-sd: acquire.c:379 Device "DDS-4" (/dev/nst0) +++++- is busy reading. Job 6 canceled. +++++-- Remove separate thread for opening devices in SD. On the other +++++- hand, don't block waiting for open() for devices. +++++-- Fix code to either handle updating NumVol or to calculate it in +++++- Dir next_vol.c +++++-- Ensure that you cannot exclude a directory or a file explicitly +++++- Included with File. +++++-#4 Embedded Python Scripting +++++- (Implemented in Dir/SD/FD) +++++-- Add Python writable variable for changing the Priority, +++++- Client, Storage, JobStatus (error), ... +++++-- SD Python +++++- - Solicit Events +++++-- Add disk seeking on restore; turn off seek on tapes. +++++- stored/match_bsr.c +++++-- Look at dird_conf.c:1000: warning: `int size' +++++- might be used uninitialized in this function +++++-- Indicate when a Job is purged/pruned during restore. +++++-- Implement some way to turn off automatic pruning in Jobs. +++++-- Implement a way an Admin Job can prune, possibly multiple +++++- clients -- Python script? +++++-- Look at Preben's acl.c error handling code. +++++-- SD crashes after a tape restore then doing a backup. +++++-- If drive is opened read/write, close it and re-open +++++- read-only if doing a restore, and vice-versa. +++++-- Windows restore: +++++- data-fd: RestoreFiles.2004-12-07_15.56.42 Error: +++++- > ..\findlib\../../findlib/create_file.c:275 Could not open e:/: ERR=Der +++++- > Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen +++++- > Prozess verwendet wird. +++++- Restore restores all files, but then fails at the end trying +++++- to set the attributes of e: +++++- from failed jobs.- Resolve the problem between Device name and Archive name, +++++- and fix SD messages. +++++-- Tell the "restore" user when browsing is no longer possible. +++++-- Add a restore directory-x +++++-- Write non-optimized bsrs from the JobMedia and Media records, +++++- even after Files are pruned. +++++-- Delete Stripe and Copy from VolParams to save space. +++++-- Fix option 2 of restore -- list where file is backed up -- require Client, +++++- then list last 20 backups. +++++-- Finish implementation of passing all Storage and Device needs to +++++- the SD. +++++-- Move test for max wait time exceeded in job.c up -- Peter's idea. +++++-## Consider moving docs to their own project. +++++-## Move rescue to its own project. +++++-- Add client version to the Client name line that prints in +++++- the Job report. +++++-- Fix the Rescue CDROM. +++++-- By the way: on page http://www.bacula.org/?page=tapedrives , at the +++++- bottom, the link to "Tape Testing Chapter" is broken. It goes to +++++- /html-manual/... while the others point to /rel-manual/... +++++-- Device resource needs the "name" of the SD. +++++-- Specify a single directory to restore. +++++-- Implement MediaType keyword in bsr? +++++-- Add a date and time stamp at the beginning of every line in the +++++- Job report (Volker Sauer). +++++-- Add level to estimate command. +++++-- Add "limit=n" for "list jobs" +++++-- Make bootstrap filename unique. +++++-- Make Dmsg look at global before calling subroutine. +++++-- From Chris Hull: +++++- it seems to be complaining about 12:00pm which should be a valid 12 +++++- hour time. I changed the time to 11:59am and everything works fine. +++++- Also 12:00am works fine. 0:00pm also works (which I don't think +++++- should). None of the values 12:00pm - 12:59pm work for that matter. +++++-- Require restore via the restore command or make a restore Job +++++- get the bootstrap file. +++++-- Implement Maximum Job Spool Size +++++-- Fix 3993 error in SD. It forgets to look at autochanger +++++- resource for device command, ... +++++-- 3. Prevent two drives requesting the same Volume in any given +++++- autochanger, by checking if a Volume is mounted on another drive +++++- in an Autochanger. +++++-- Upgrade to MySQL 4.1.12 See: +++++- http://dev.mysql.com/doc/mysql/en/Server_SQL_mode.html +++++-- Add # Job Level date to bsr file +++++-- Implement "PreferMountedVolumes = yes|no" in Job resource. +++++-## Integrate web-bacula into a new Bacula project with +++++- bimagemgr. +++++-- Cleaning tapes should have Status "Cleaning" rather than append. +++++-- Make sure that Python has access to Client address/port so that +++++- it can check if Clients are alive. +++++-- Review all items in "restore". +++++-- Fix PostgreSQL GROUP BY problems in restore. +++++-- Fix PostgreSQL sql problems in bugs. +++++-- After rename +++++- 04-Jul 13:01 MainSD: Rufus.2005-07-04_01.05.02 Warning: Director wanted Volume +++++- "DLT-13Feb04". +++++- Current Volume "DLT-04Jul05" not acceptable because: +++++- 1997 Volume "DLT-13Feb04" not in catalog. +++++- 04-Jul 13:01 MainSD: Please mount Volume "DLT-04Jul05" on Storage Device +++++- "HP DLT 80" (/dev/nst0) for Job Rufus.2005-07-04_01.05.02 +++++-## Create a new GUI chapter explaining all the GUI programs. +++++-- Make "update slots" when pointing to Autochanger, remove +++++- all Volumes from other drives. "update slots all-drives"? +++++- No, this is done by modifying mtx-changer to list what is +++++- in the drives. +++++-- Finish TLS implementation. +++++-- Port limiting -m in iptables to prevent DoS attacks +++++- could cause broken pipes on Bacula. +++++-6. Build and test the Volume Shadow Copy (VSS) for Win32. +++++-- Allow cancel of unknown Job +++++-- State not saved when closing Win32 FD by icon +++++-- bsr-opt-test fails. bsr deleted. Fix. +++++-- Move Python daemon variables from Job to Bacula object. +++++- WorkingDir, ConfigFile +++++-- Document that Bootstrap files can be written with cataloging +++++- turned off. +++++-- Document details of ANSI/IBM labels +++++-- OS linux 2.4 +++++- 1) ADIC, DLT, FastStor 4000, 7*20GB +++++-- Linux Sony LIB-D81, AIT-3 library works. +++++-- Doc the following +++++- to activate, check or disable the hardware compression feature on my +++++- exb-8900 i use the exabyte "MammothTool" you can get it here: +++++- http://www.exabyte.com/support/online/downloads/index.cfm +++++- There is a solaris version of this tool. With option -C 0 or 1 you can +++++- disable or activate compression. Start this tool without any options for +++++- a small reference. +++++-- Document Heartbeat Interval in the dealing with firewalls section. +++++-- Document new CDROM directory. +++++-- On Win32 working directory must have drive letter ???? +++++-- On Win32 working directory must be writable by SYSTEM to +++++- do restores. +++++-- Document that ChangerDevice is used for Alert command. +++++-- Add better documentation on how restores can be done +++++-8. Take one more try at making DVD writing work (no go) +++++-7. Write a bacula-web document +++++-- Why isn't the DEVICE structure defined when doing +++++- a reservation? +++++-- Multi-drive changer seems to only use drive 0 +++++- Multiple drives don't seem to be opened. +++++-- My database is growing +++++-- Call GetLastError() in the berrno constructor rather +++++- than delaying until strerror. +++++-- Tape xxx in drive 0, requested in drive 1 +++++-- The mount command does not work with drives other than 0. +++++-- A mount should cause the SD to re-examine what Slot is +++++- loaded. +++++-- The SD locks on to the first available drive then +++++- wants a Volume that is released but in another drive -- +++++- chaos. +++++-- Run the regression scripts on Solaris and FreeBSD +++++-- Figure out how to package gui, and rescue programs. +++++-- Add a .dir command to restore tree code to eliminate the problem +++++-- Mount after manually unloading changer causes hang in SD +++++-- Fix JobACL with restore by JobId. ++++++=== Done -- see kernsdone +++++Index: kes-1.38 +++++=================================================================== +++++RCS file: /cvsroot/bacula/bacula/kes-1.38,v +++++retrieving revision 1.1.2.13 +++++diff -u -r1.1.2.13 kes-1.38 +++++--- kes-1.38 14 Nov 2005 20:20:38 -0000 1.1.2.13 ++++++++ kes-1.38 21 Nov 2005 13:17:57 -0000 +++++@@ -3,6 +3,18 @@ +++++ +++++ General: +++++ ++++++Changes to 1.38.2: ++++++20Oct05 ++++++- Fix crash in tray-monitor when daemon disconnects. Bug #479. ++++++- Fix bnet-server bug found on OpenBSD. Bug #486 ++++++- Fix cancel failure bug. Bug #481 ++++++- Fix failure when Pool name has spaces. Bug #487 ++++++- Fix SD crash in autochanger code. Mutex failure. Bug #488 ++++++- Fix a couple of free()s in src/filed/acl.c ++++++- Fix memory overrun in bfile.c in building OS X resource ++++++ fork filename. Bug #489 ++++++- Add Pool name to SD status output. ++++++ +++++ Changes to 1.38.1: +++++ 14Oct05 +++++ - Apply SunOS patch for ACLs submitted by David Duchscher. +++++Index: projects +++++=================================================================== +++++RCS file: /cvsroot/bacula/bacula/projects,v +++++retrieving revision 1.12.2.3 +++++diff -u -r1.12.2.3 projects +++++--- projects 10 Nov 2005 20:25:27 -0000 1.12.2.3 ++++++++ projects 21 Nov 2005 13:17:58 -0000 +++++@@ -228,7 +228,175 @@ +++++ +++++ Why: Performance enhancement. +++++ ++++++Item 13: Let Bacula log tape usage and handle drive cleaning cycles. ++++++ Date: November 11, 2005 ++++++ Origin: Arno Lehmann ++++++ Status: ++++++ ++++++ What: Make Bacula manage tape life cycle information and drive ++++++ cleaning cycles. ++++++ ++++++ Why: Both parts of this project are important when operating backups. ++++++ We need to know which tapes need replacement, and we need to ++++++ make sure the drives are cleaned when necessary. While many ++++++ tape libraries and even autoloaders can handle all this ++++++ automatically, support by Bacula can be helpful for smaller ++++++ (older) libraries and single drives. Also, checking drive ++++++ status during operation can prevent some failures (as I had to ++++++ learn the hard way...) ++++++ ++++++ Notes: First, Bacula could (and even does, to some limited extent) ++++++ record tape and drive usage. For tapes, the number of mounts, ++++++ the amount of data, and the time the tape has actually been ++++++ running could be recorded. Data fields for Read and Write time ++++++ and Nmber of mounts already exist in the catalog (I'm not sure ++++++ if VolBytes is the sum of all bytes ever written to that volume ++++++ by Bacula). This information can be important when determining ++++++ which media to replace. For the tape drives known to Bacula, ++++++ similar information is interesting to determine the device ++++++ status and expected life time: Time it's been Reading and ++++++ Writing, number of tape Loads / Unloads / Errors. This ++++++ information is not yet recorded as far as I know. ++++++ ++++++ The next step would be implementing drive cleaning setup. ++++++ Bacula already has knowledge about cleaning tapes. Once it has ++++++ some information about cleaning cycles (measured in drive run ++++++ time, number of tapes used, or calender days, for example) it ++++++ can automatically execute tape cleaning (with an autochanger, ++++++ obviously) or ask for operator assistence loading a cleaning ++++++ tape. ++++++ ++++++ The next step would be to implement TAPEALERT checks not only ++++++ when changing tapes and only sending he information to the ++++++ administrator, but rather checking after each tape error, ++++++ checking on a regular basis (for example after each tape file), ++++++ and also before unloading and after loading a new tape. Then, ++++++ depending on the drives TAPEALERT state and the know drive ++++++ cleaning state Bacula could automatically schedule later ++++++ cleaning, clean immediately, or inform the operator. ++++++ ++++++ Implementing this would perhaps require another catalog change ++++++ and perhaps major changes in SD code and the DIR-SD protocoll, ++++++ so I'd only consider this worth implementing if it would ++++++ actually be used or even needed by many people. ++++++ ++++++Item 14: Merging of multiple backups into a single one. (Also called Synthetic ++++++ Backup or Consolidation). ++++++ ++++++ Origin: Marc Cousin and Eric Bollengier ++++++ Date: 15 November 2005 ++++++ Status: Depends on first implementing project Item 1 (Migration). ++++++ ++++++ What: A merged backup is a backup made without connecting to the Client. ++++++ It would be a Merge of existing backups into a single backup. ++++++ In effect, it is like a restore but to the backup medium. ++++++ ++++++ For instance, say that last sunday we made a full backup. Then ++++++ all week long, we created incremental backups, in order to do ++++++ them fast. Now comes sunday again, and we need another full. ++++++ The merged backup makes it possible to do instead an incremental ++++++ backup (during the night for instance), and then create a merged ++++++ backup during the day, by using the full and incrementals from ++++++ the week. The merged backup will be exactly like a full made ++++++ sunday night on the tape, but the production interruption on the ++++++ Client will be minimal, as the Client will only have to send ++++++ incrementals. ++++++ ++++++ In fact, if it's done correctly, you could merge all the ++++++ Incrementals into single Incremental, or all the Incrementals ++++++ and the last Differential into a new Differential, or the Full, ++++++ last differential and all the Incrementals into a new Full ++++++ backup. And there is no need to involve the Client. ++++++ ++++++ Why: The benefit is that : ++++++ - the Client just does an incremental ; ++++++ - the merged backup on tape is just as a single full backup, ++++++ and can be restored very fast. ++++++ ++++++ This is also a way of reducing the backup data since the old ++++++ data can then be pruned (or not) from the catalog, possibly ++++++ allowing older volumes to be recycled ++++++ ++++++Item 15: Automatic disabling of devices ++++++ Date: 2005-11-11 ++++++ Origin: Peter Eriksson ++++++ Status: ++++++ ++++++ What: After a configurable amount of fatal errors with a tape drive ++++++ Bacula should automatically disable further use of a certain ++++++ tape drive. There should also be "disable"/"enable" commands in ++++++ the "bconsole" tool. ++++++ ++++++ Why: On a multi-drive jukebox there is a possibility of tape drives ++++++ going bad during large backups (needing a cleaning tape run, ++++++ tapes getting stuck). It would be advantageous if Bacula would ++++++ automatically disable further use of a problematic tape drive ++++++ after a configurable amount of errors has occured. ++++++ ++++++ An example: I have a multi-drive jukebox (6 drives, 380+ slots) ++++++ where tapes occasionally get stuck inside the drive. Bacula will ++++++ notice that the "mtx-changer" command will fail and then fail ++++++ any backup jobs trying to use that drive. However, it will still ++++++ keep on trying to run new jobs using that drive and fail - ++++++ forever, and thus failing lots and lots of jobs... Since we have ++++++ many drives Bacula could have just automatically disabled ++++++ further use of that drive and used one of the other ones ++++++ instead. ++++++ ++++++ ++++++Item 16: Directive/mode to backup only file changes, not entire file ++++++ Date: 11 November 2005 ++++++ Origin: Joshua Kugler ++++++ Marek Bajon ++++++ Status: RFC ++++++ ++++++ What: Currently when a file changes, the entire file will be backed up in ++++++ the next incremental or full backup. To save space on the tapes ++++++ it would be nice to have a mode whereby only the changes to the ++++++ file would be backed up when it is changed. ++++++ ++++++ Why: This would save lots of space when backing up large files such as ++++++ logs, mbox files, Outlook PST files and the like. ++++++ ++++++ Notes: This would require the usage of disk-based volumes as comparing ++++++ files would not be feasible using a tape drive. ++++++ ++++++Item 17: Quick release of FD-SD connection ++++++ Origin: Frank Volf (frank at deze dot org) ++++++ Date: 17 november 2005 ++++++ Status: ++++++ ++++++ What: In the bacula implementation a backup is finished after all data ++++++ and attributes are succesfully written to storage. When using a ++++++ tape backup it is very annoying that a backup can take a day, ++++++ simply because the current tape (or whatever) is full and the ++++++ administrator has not put a new one in. During that time the ++++++ system cannot be taken off-line, because there is still an open ++++++ session between the storage daemon and the file daemon on the ++++++ client. ++++++ ++++++ Although this is a very good strategey for making "safe backups" ++++++ This can be annoying for e.g. laptops, that must remain ++++++ connected until the bacukp is completed. ++++++ ++++++ Using a new feature called "migration" it will be possible to ++++++ spool first to harddisk (using a special 'spool' migration ++++++ scheme) and then migrate the backup to tape. ++++++ ++++++ There is still the problem of getting the attributes committed. ++++++ If it takes a very long time to do, with the current code, the ++++++ job has not terminated, and the File daemon is not freed up. The ++++++ Storage daemon should release the File daemon as soon as all the ++++++ file data and all the attributes have been sent to it (the SD). ++++++ Currently the SD waits until everything is on tape and all the ++++++ attributes are transmitted to the Director before signalling ++++++ completion to the FD. I don't think I would have any problem ++++++ changing this. The reason is that even if the FD reports back to ++++++ the Dir that all is OK, the job will not terminate until the SD ++++++ has done the same thing -- so in a way keeping the SD-FD link ++++++ open to the very end is not really very productive ... +++++ ++++++ Why: Makes backup of laptops much easier. +++++ +++++ +++++ ============= Empty RFC form =========== +++++@@ -245,33 +413,4 @@ +++++ ============== End RFC form ============== +++++ +++++ +++++-Items completed for release 1.38.0: +++++-#4 Embedded Python Scripting (implemented in all Daemons) +++++-#5 Events that call a Python program (Implemented in all +++++- daemons, but more cleanup work to be done). +++++-#6 Select one from among Multiple Storage Devices for Job. +++++- This is already implemented in 1.37. +++++-#7 Single Job Writing to Multiple Storage Devices. This is +++++- currently implemented with a Clone feature. +++++-#- Full multiple drive Autochanger support (done in 1.37) +++++-#- Built in support for communications encryption (TLS) +++++- done by Landon Fuller. +++++-# Support for Unicode characters +++++- (via UTF-8) on Win32 machines thanks to Thorsten Engel. +++++-Item 8: Break the one-to-one Relationship between a Job and a +++++- Specific Storage Device (or Devices if #10 is implemented). +++++- +++++-Completed items from last year's list: +++++-Item 1: Multiple simultaneous Jobs. (done) +++++-Item 3: Write the bscan program -- also write a bcopy program (done). +++++-Item 5: Implement Label templates (done). +++++-Item 6: Write a regression script (done) +++++-Item 9: Add SSL to daemon communications (done by Landon Fuller) +++++-Item 10: Define definitive tape format (done) +++++-Item 3: GUI for interactive restore. Partially Implemented in 1.34 +++++- Note, there is now a complete Webmin plugin, a partial +++++- GNOME console, and an excellent wx-console GUI. +++++-Item 4: GUI for interactive backup +++++-Item 2: Job Data Spooling. +++++- Done: Regular expression matching. +++++-Item 10: New daemon communication protocol (this has been dropped). ++++++Items completed for release 1.38.0 -- see kernsdone +++++Index: patches/1.38.1-to-1.38.2.patch +++++=================================================================== +++++RCS file: patches/1.38.1-to-1.38.2.patch +++++diff -N patches/1.38.1-to-1.38.2.patch +++++--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++++++ patches/1.38.1-to-1.38.2.patch 21 Nov 2005 13:17:58 -0000 +++++@@ -0,0 +1,2471 @@ ++++++ ++++++ This patch fixes the following bugs: ++++++ ++++++- Fix crash in tray-monitor when daemon disconnects. Bug #479. ++++++- Fix bnet-server bug found on OpenBSD. Bug #486 (bug originator ++++++ says that this patch does not fix his problem) ++++++- Fix cancel failure bug. Bug #481 ++++++- Fix failure when Pool name has spaces. Bug #487 ++++++- Fix SD crash in autochanger code. Mutex failure. Bug #488 ++++++- Fix a couple of free()s in src/filed/acl.c ++++++- Fix memory overrun in bfile.c in building OS X resource ++++++ fork filename. Bug #489 ++++++ ++++++This patch is applied to Bacula source version 1.38.1 and will ++++++produce Bacula source version 1.38.2. Apply it with: ++++++ ++++++ cd ++++++ ./configure (your options) if not already done ++++++ patch -p0 <1.38.1-to-1.38.2.patch ++++++ make ++++++ make install ++++++ ++++++? osx_finder.patch ++++++Index: ChangeLog ++++++=================================================================== ++++++RCS file: /cvsroot/bacula/bacula/ChangeLog,v ++++++retrieving revision 1.154.2.7 ++++++diff -u -r1.154.2.7 ChangeLog ++++++--- ChangeLog 15 Nov 2005 09:27:19 -0000 1.154.2.7 +++++++++ ChangeLog 21 Nov 2005 13:12:58 -0000 ++++++@@ -1,4 +1,14 @@ ++++++ +++++++Changes to 1.38.2: +++++++- Fix crash in tray-monitor when daemon disconnects. Bug #479. +++++++- Fix bnet-server bug found on OpenBSD. Bug #486 +++++++- Fix cancel failure bug. Bug #481 +++++++- Fix failure when Pool name has spaces. Bug #487 +++++++- Fix SD crash in autochanger code. Mutex failure. Bug #488 +++++++- Fix a couple of free()s in src/filed/acl.c +++++++- Fix memory overrun in bfile.c in building OS X resource +++++++ fork filename. Bug #489 +++++++- Add Pool name to SD status output. ++++++ ++++++ Changes to 1.38.1: ++++++ - Apply SunOS patch for ACLs submitted by David Duchscher. ++++++Index: ReleaseNotes ++++++=================================================================== ++++++RCS file: /cvsroot/bacula/bacula/ReleaseNotes,v ++++++retrieving revision 1.147.2.9 ++++++diff -u -r1.147.2.9 ReleaseNotes ++++++--- ReleaseNotes 15 Nov 2005 09:27:19 -0000 1.147.2.9 +++++++++ ReleaseNotes 21 Nov 2005 13:12:59 -0000 ++++++@@ -1,10 +1,21 @@ ++++++ ++++++- Release Notes for Bacula 1.38.1 +++++++ Release Notes for Bacula 1.38.2 ++++++ ++++++ Bacula code: Total files = 420 Total lines = 138,440 (*.h *.c *.in) ++++++ 20,440 additional lines of code since version 1.36.3 ++++++ ++++++-Changes since 1.38.0: +++++++Changes to 1.38.2: +++++++- Fix crash in tray-monitor when daemon disconnects. Bug #479. +++++++- Fix bnet-server bug found on OpenBSD. Bug #486 +++++++- Fix cancel failure bug. Bug #481 +++++++- Fix failure when Pool name has spaces. Bug #487 +++++++- Fix SD crash in autochanger code. Mutex failure. Bug #488 +++++++- Fix a couple of free()s in src/filed/acl.c +++++++- Fix memory overrun in bfile.c in building OS X resource +++++++ fork filename. Bug #489 +++++++- Add Pool name to SD status output. +++++++ +++++++Changes to 1.38.1: ++++++ - Corrected ACL for Solaris (David Duchscher and Attila Fulop). ++++++ - Add bacula_mail_summary.sh to examples directory. It makes ++++++ a single email summary of any number of jobs. Submitted ++++++Index: kernstodo ++++++=================================================================== ++++++RCS file: /cvsroot/bacula/bacula/kernstodo,v ++++++retrieving revision 1.570.2.6 ++++++diff -u -r1.570.2.6 kernstodo ++++++--- kernstodo 4 Nov 2005 09:16:49 -0000 1.570.2.6 +++++++++ kernstodo 21 Nov 2005 13:13:00 -0000 ++++++@@ -1,5 +1,5 @@ ++++++ Kern's ToDo List ++++++- 03 November 2005 +++++++ 21 November 2005 ++++++ ++++++ Major development: ++++++ Project Developer ++++++@@ -7,8 +7,6 @@ ++++++ Version 1.37 Kern (see below) ++++++ ======================================================== ++++++ ++++++-Final items for 1.37 before release: ++++++- ++++++ Document: ++++++ - Does ClientRunAfterJob fail the job on a bad return code? ++++++ - Document cleaning up the spool files: ++++++@@ -18,6 +16,8 @@ ++++++ - Does WildFile match against full name? Doc. ++++++ ++++++ For 1.39: +++++++- Make sure that all do_prompt() calls in Dir check for +++++++ -1 (error) and -2 (cancel) returns. ++++++ - Look at -D_FORTIFY_SOURCE=2 ++++++ - Add Win32 FileSet definition somewhere ++++++ - Look at fixing restore status stats in SD. ++++++@@ -27,6 +27,12 @@ ++++++ encountered, read many times (as it currently does), and if the ++++++ block cannot be read, skip to the next block, and try again. If ++++++ that fails, skip to the next file and try again, ... +++++++- Add level table: +++++++ create table LevelType (LevelType binary(1), LevelTypeLong tinyblob); +++++++ insert into LevelType (LevelType,LevelTypeLong) values +++++++ ("F","Full"), +++++++ ("D","Diff"), +++++++ ("I","Inc"); ++++++ - Add ACL to restore only to original location. ++++++ - Add a recursive mark command (rmark) to restore. ++++++ - "Minimum Job Interval = nnn" sets minimum interval between Jobs ++++++@@ -1246,219 +1252,4 @@ ++++++ ==== ++++++ ++++++ ++++++-=== Done ++++++-- Save mount point for directories not traversed with onefs=yes. ++++++-- Add seconds to start and end times in the Job report output. ++++++-- if 2 concurrent backups are attempted on the same tape ++++++- drive (autoloader) into different tape pools, one of them will exit ++++++- fatally instead of halting until the drive is idle ++++++-- Update StartTime if job held in Job Queue. ++++++-- Look at www.nu2.nu/pebuilder as a helper for full windows ++++++- bare metal restore. (done by Scott) ++++++-- Fix orphanned buffers: ++++++- Orphaned buffer: 24 bytes allocated at line 808 of rufus-dir job.c ++++++- Orphaned buffer: 40 bytes allocated at line 45 of rufus-dir alist.c ++++++-- Implement Preben's suggestion to add ++++++- File System Types = ext2, ext3 ++++++- to FileSets, thus simplifying backup of *all* local partitions. ++++++-- Try to open a device on each Job if it was not opened ++++++- when the SD started. ++++++-- Add dump of VolSessionId/Time and FileIndex with bls. ++++++-- If Bacula does not find the right tape in the Autochanger, ++++++- then mark the tape in error and move on rather than asking ++++++- for operator intervention. ++++++-- Cancel command should include JobId in list of Jobs. ++++++-- Add performance testing hooks ++++++-- Bootstrap from JobMedia records. ++++++-- Implement WildFile and WildDir to solve problem of ++++++- saving only *.doc files. ++++++-- Fix ++++++- Please use the "label" command to create a new Volume for: ++++++- Storage: DDS-4-changer ++++++- Media type: ++++++- Pool: Default ++++++- label ++++++- The defined Storage resources are: ++++++-- Copy Changer Device and Changer Command from Autochanger ++++++- to Device resource in SD if none given in Device resource. ++++++-- 1. Automatic use of more than one drive in an autochanger (done) ++++++-- 2. Automatic selection of the correct drive for each Job (i.e. ++++++- selects a drive with an appropriate Volume for the Job) (done) ++++++-- 6. Allow multiple simultaneous Jobs referencing the same pool write ++++++- to several tapes (some new directive(s) are are probably needed for ++++++- this) (done) ++++++-- Locking (done) ++++++-- Key on Storage rather than Pool (done) ++++++-- Allow multiple drives to use same Pool (change jobq.c DIR) (done). ++++++-- Synchronize multiple drives so that not more ++++++- than one loads a tape and any time (done) ++++++-- 4. Use Changer Device and Changer Command specified in the ++++++- Autochanger resource, if none is found in the Device resource. ++++++- You can continue to specify them in the Device resource if you want ++++++- or need them to be different for each device. ++++++-- 5. Implement a new Device directive (perhaps "Autoselect = yes/no") ++++++- that can allow a Device be part of an Autochanger, and hence the changer ++++++- script protected, but if set to no, will prevent the Device from being ++++++- automatically selected from the changer. This allows the device to ++++++- be directly accessed through its Device name, but not through the ++++++- AutoChanger name. ++++++-#6 Select one from among Multiple Storage Devices for Job ++++++-#5 Events that call a Python program ++++++- (Implemented in Dir/SD) ++++++-- Make sure the Device name is in the Query packet returned. ++++++-- Don't start a second file job if one is already running. ++++++-- Implement EOF/EOV labels for ANSI labels ++++++-- Implement IBM labels. ++++++-- When Python creates a new label, the tape is immediately ++++++- recycled and no label created. This happens when using ++++++- autolabeling -- even when Python doesn't generate the name. ++++++-- Scratch Pool where the volumes can be re-assigned to any Pool. ++++++-- 28-Mar 23:19 rufus-sd: acquire.c:379 Device "DDS-4" (/dev/nst0) ++++++- is busy reading. Job 6 canceled. ++++++-- Remove separate thread for opening devices in SD. On the other ++++++- hand, don't block waiting for open() for devices. ++++++-- Fix code to either handle updating NumVol or to calculate it in ++++++- Dir next_vol.c ++++++-- Ensure that you cannot exclude a directory or a file explicitly ++++++- Included with File. ++++++-#4 Embedded Python Scripting ++++++- (Implemented in Dir/SD/FD) ++++++-- Add Python writable variable for changing the Priority, ++++++- Client, Storage, JobStatus (error), ... ++++++-- SD Python ++++++- - Solicit Events ++++++-- Add disk seeking on restore; turn off seek on tapes. ++++++- stored/match_bsr.c ++++++-- Look at dird_conf.c:1000: warning: `int size' ++++++- might be used uninitialized in this function ++++++-- Indicate when a Job is purged/pruned during restore. ++++++-- Implement some way to turn off automatic pruning in Jobs. ++++++-- Implement a way an Admin Job can prune, possibly multiple ++++++- clients -- Python script? ++++++-- Look at Preben's acl.c error handling code. ++++++-- SD crashes after a tape restore then doing a backup. ++++++-- If drive is opened read/write, close it and re-open ++++++- read-only if doing a restore, and vice-versa. ++++++-- Windows restore: ++++++- data-fd: RestoreFiles.2004-12-07_15.56.42 Error: ++++++- > ..\findlib\../../findlib/create_file.c:275 Could not open e:/: ERR=Der ++++++- > Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen ++++++- > Prozess verwendet wird. ++++++- Restore restores all files, but then fails at the end trying ++++++- to set the attributes of e: ++++++- from failed jobs.- Resolve the problem between Device name and Archive name, ++++++- and fix SD messages. ++++++-- Tell the "restore" user when browsing is no longer possible. ++++++-- Add a restore directory-x ++++++-- Write non-optimized bsrs from the JobMedia and Media records, ++++++- even after Files are pruned. ++++++-- Delete Stripe and Copy from VolParams to save space. ++++++-- Fix option 2 of restore -- list where file is backed up -- require Client, ++++++- then list last 20 backups. ++++++-- Finish implementation of passing all Storage and Device needs to ++++++- the SD. ++++++-- Move test for max wait time exceeded in job.c up -- Peter's idea. ++++++-## Consider moving docs to their own project. ++++++-## Move rescue to its own project. ++++++-- Add client version to the Client name line that prints in ++++++- the Job report. ++++++-- Fix the Rescue CDROM. ++++++-- By the way: on page http://www.bacula.org/?page=tapedrives , at the ++++++- bottom, the link to "Tape Testing Chapter" is broken. It goes to ++++++- /html-manual/... while the others point to /rel-manual/... ++++++-- Device resource needs the "name" of the SD. ++++++-- Specify a single directory to restore. ++++++-- Implement MediaType keyword in bsr? ++++++-- Add a date and time stamp at the beginning of every line in the ++++++- Job report (Volker Sauer). ++++++-- Add level to estimate command. ++++++-- Add "limit=n" for "list jobs" ++++++-- Make bootstrap filename unique. ++++++-- Make Dmsg look at global before calling subroutine. ++++++-- From Chris Hull: ++++++- it seems to be complaining about 12:00pm which should be a valid 12 ++++++- hour time. I changed the time to 11:59am and everything works fine. ++++++- Also 12:00am works fine. 0:00pm also works (which I don't think ++++++- should). None of the values 12:00pm - 12:59pm work for that matter. ++++++-- Require restore via the restore command or make a restore Job ++++++- get the bootstrap file. ++++++-- Implement Maximum Job Spool Size ++++++-- Fix 3993 error in SD. It forgets to look at autochanger ++++++- resource for device command, ... ++++++-- 3. Prevent two drives requesting the same Volume in any given ++++++- autochanger, by checking if a Volume is mounted on another drive ++++++- in an Autochanger. ++++++-- Upgrade to MySQL 4.1.12 See: ++++++- http://dev.mysql.com/doc/mysql/en/Server_SQL_mode.html ++++++-- Add # Job Level date to bsr file ++++++-- Implement "PreferMountedVolumes = yes|no" in Job resource. ++++++-## Integrate web-bacula into a new Bacula project with ++++++- bimagemgr. ++++++-- Cleaning tapes should have Status "Cleaning" rather than append. ++++++-- Make sure that Python has access to Client address/port so that ++++++- it can check if Clients are alive. ++++++-- Review all items in "restore". ++++++-- Fix PostgreSQL GROUP BY problems in restore. ++++++-- Fix PostgreSQL sql problems in bugs. ++++++-- After rename ++++++- 04-Jul 13:01 MainSD: Rufus.2005-07-04_01.05.02 Warning: Director wanted Volume ++++++- "DLT-13Feb04". ++++++- Current Volume "DLT-04Jul05" not acceptable because: ++++++- 1997 Volume "DLT-13Feb04" not in catalog. ++++++- 04-Jul 13:01 MainSD: Please mount Volume "DLT-04Jul05" on Storage Device ++++++- "HP DLT 80" (/dev/nst0) for Job Rufus.2005-07-04_01.05.02 ++++++-## Create a new GUI chapter explaining all the GUI programs. ++++++-- Make "update slots" when pointing to Autochanger, remove ++++++- all Volumes from other drives. "update slots all-drives"? ++++++- No, this is done by modifying mtx-changer to list what is ++++++- in the drives. ++++++-- Finish TLS implementation. ++++++-- Port limiting -m in iptables to prevent DoS attacks ++++++- could cause broken pipes on Bacula. ++++++-6. Build and test the Volume Shadow Copy (VSS) for Win32. ++++++-- Allow cancel of unknown Job ++++++-- State not saved when closing Win32 FD by icon ++++++-- bsr-opt-test fails. bsr deleted. Fix. ++++++-- Move Python daemon variables from Job to Bacula object. ++++++- WorkingDir, ConfigFile ++++++-- Document that Bootstrap files can be written with cataloging ++++++- turned off. ++++++-- Document details of ANSI/IBM labels ++++++-- OS linux 2.4 ++++++- 1) ADIC, DLT, FastStor 4000, 7*20GB ++++++-- Linux Sony LIB-D81, AIT-3 library works. ++++++-- Doc the following ++++++- to activate, check or disable the hardware compression feature on my ++++++- exb-8900 i use the exabyte "MammothTool" you can get it here: ++++++- http://www.exabyte.com/support/online/downloads/index.cfm ++++++- There is a solaris version of this tool. With option -C 0 or 1 you can ++++++- disable or activate compression. Start this tool without any options for ++++++- a small reference. ++++++-- Document Heartbeat Interval in the dealing with firewalls section. ++++++-- Document new CDROM directory. ++++++-- On Win32 working directory must have drive letter ???? ++++++-- On Win32 working directory must be writable by SYSTEM to ++++++- do restores. ++++++-- Document that ChangerDevice is used for Alert command. ++++++-- Add better documentation on how restores can be done ++++++-8. Take one more try at making DVD writing work (no go) ++++++-7. Write a bacula-web document ++++++-- Why isn't the DEVICE structure defined when doing ++++++- a reservation? ++++++-- Multi-drive changer seems to only use drive 0 ++++++- Multiple drives don't seem to be opened. ++++++-- My database is growing ++++++-- Call GetLastError() in the berrno constructor rather ++++++- than delaying until strerror. ++++++-- Tape xxx in drive 0, requested in drive 1 ++++++-- The mount command does not work with drives other than 0. ++++++-- A mount should cause the SD to re-examine what Slot is ++++++- loaded. ++++++-- The SD locks on to the first available drive then ++++++- wants a Volume that is released but in another drive -- ++++++- chaos. ++++++-- Run the regression scripts on Solaris and FreeBSD ++++++-- Figure out how to package gui, and rescue programs. ++++++-- Add a .dir command to restore tree code to eliminate the problem ++++++-- Mount after manually unloading changer causes hang in SD ++++++-- Fix JobACL with restore by JobId. +++++++=== Done -- see kernsdone ++++++Index: kes-1.38 ++++++=================================================================== ++++++RCS file: /cvsroot/bacula/bacula/kes-1.38,v ++++++retrieving revision 1.1.2.13 ++++++diff -u -r1.1.2.13 kes-1.38 ++++++--- kes-1.38 14 Nov 2005 20:20:38 -0000 1.1.2.13 +++++++++ kes-1.38 21 Nov 2005 13:13:00 -0000 ++++++@@ -3,6 +3,18 @@ ++++++ ++++++ General: ++++++ +++++++Changes to 1.38.2: +++++++20Oct05 +++++++- Fix crash in tray-monitor when daemon disconnects. Bug #479. +++++++- Fix bnet-server bug found on OpenBSD. Bug #486 +++++++- Fix cancel failure bug. Bug #481 +++++++- Fix failure when Pool name has spaces. Bug #487 +++++++- Fix SD crash in autochanger code. Mutex failure. Bug #488 +++++++- Fix a couple of free()s in src/filed/acl.c +++++++- Fix memory overrun in bfile.c in building OS X resource +++++++ fork filename. Bug #489 +++++++- Add Pool name to SD status output. +++++++ ++++++ Changes to 1.38.1: ++++++ 14Oct05 ++++++ - Apply SunOS patch for ACLs submitted by David Duchscher. ++++++Index: projects ++++++=================================================================== ++++++RCS file: /cvsroot/bacula/bacula/projects,v ++++++retrieving revision 1.12.2.3 ++++++diff -u -r1.12.2.3 projects ++++++--- projects 10 Nov 2005 20:25:27 -0000 1.12.2.3 +++++++++ projects 21 Nov 2005 13:13:00 -0000 ++++++@@ -228,7 +228,175 @@ ++++++ ++++++ Why: Performance enhancement. ++++++ +++++++Item 13: Let Bacula log tape usage and handle drive cleaning cycles. +++++++ Date: November 11, 2005 +++++++ Origin: Arno Lehmann +++++++ Status: +++++++ +++++++ What: Make Bacula manage tape life cycle information and drive +++++++ cleaning cycles. +++++++ +++++++ Why: Both parts of this project are important when operating backups. +++++++ We need to know which tapes need replacement, and we need to +++++++ make sure the drives are cleaned when necessary. While many +++++++ tape libraries and even autoloaders can handle all this +++++++ automatically, support by Bacula can be helpful for smaller +++++++ (older) libraries and single drives. Also, checking drive +++++++ status during operation can prevent some failures (as I had to +++++++ learn the hard way...) +++++++ +++++++ Notes: First, Bacula could (and even does, to some limited extent) +++++++ record tape and drive usage. For tapes, the number of mounts, +++++++ the amount of data, and the time the tape has actually been +++++++ running could be recorded. Data fields for Read and Write time +++++++ and Nmber of mounts already exist in the catalog (I'm not sure +++++++ if VolBytes is the sum of all bytes ever written to that volume +++++++ by Bacula). This information can be important when determining +++++++ which media to replace. For the tape drives known to Bacula, +++++++ similar information is interesting to determine the device +++++++ status and expected life time: Time it's been Reading and +++++++ Writing, number of tape Loads / Unloads / Errors. This +++++++ information is not yet recorded as far as I know. +++++++ +++++++ The next step would be implementing drive cleaning setup. +++++++ Bacula already has knowledge about cleaning tapes. Once it has +++++++ some information about cleaning cycles (measured in drive run +++++++ time, number of tapes used, or calender days, for example) it +++++++ can automatically execute tape cleaning (with an autochanger, +++++++ obviously) or ask for operator assistence loading a cleaning +++++++ tape. +++++++ +++++++ The next step would be to implement TAPEALERT checks not only +++++++ when changing tapes and only sending he information to the +++++++ administrator, but rather checking after each tape error, +++++++ checking on a regular basis (for example after each tape file), +++++++ and also before unloading and after loading a new tape. Then, +++++++ depending on the drives TAPEALERT state and the know drive +++++++ cleaning state Bacula could automatically schedule later +++++++ cleaning, clean immediately, or inform the operator. +++++++ +++++++ Implementing this would perhaps require another catalog change +++++++ and perhaps major changes in SD code and the DIR-SD protocoll, +++++++ so I'd only consider this worth implementing if it would +++++++ actually be used or even needed by many people. +++++++ +++++++Item 14: Merging of multiple backups into a single one. (Also called Synthetic +++++++ Backup or Consolidation). +++++++ +++++++ Origin: Marc Cousin and Eric Bollengier +++++++ Date: 15 November 2005 +++++++ Status: Depends on first implementing project Item 1 (Migration). +++++++ +++++++ What: A merged backup is a backup made without connecting to the Client. +++++++ It would be a Merge of existing backups into a single backup. +++++++ In effect, it is like a restore but to the backup medium. +++++++ +++++++ For instance, say that last sunday we made a full backup. Then +++++++ all week long, we created incremental backups, in order to do +++++++ them fast. Now comes sunday again, and we need another full. +++++++ The merged backup makes it possible to do instead an incremental +++++++ backup (during the night for instance), and then create a merged +++++++ backup during the day, by using the full and incrementals from +++++++ the week. The merged backup will be exactly like a full made +++++++ sunday night on the tape, but the production interruption on the +++++++ Client will be minimal, as the Client will only have to send +++++++ incrementals. +++++++ +++++++ In fact, if it's done correctly, you could merge all the +++++++ Incrementals into single Incremental, or all the Incrementals +++++++ and the last Differential into a new Differential, or the Full, +++++++ last differential and all the Incrementals into a new Full +++++++ backup. And there is no need to involve the Client. +++++++ +++++++ Why: The benefit is that : +++++++ - the Client just does an incremental ; +++++++ - the merged backup on tape is just as a single full backup, +++++++ and can be restored very fast. +++++++ +++++++ This is also a way of reducing the backup data since the old +++++++ data can then be pruned (or not) from the catalog, possibly +++++++ allowing older volumes to be recycled +++++++ +++++++Item 15: Automatic disabling of devices +++++++ Date: 2005-11-11 +++++++ Origin: Peter Eriksson +++++++ Status: +++++++ +++++++ What: After a configurable amount of fatal errors with a tape drive +++++++ Bacula should automatically disable further use of a certain +++++++ tape drive. There should also be "disable"/"enable" commands in +++++++ the "bconsole" tool. +++++++ +++++++ Why: On a multi-drive jukebox there is a possibility of tape drives +++++++ going bad during large backups (needing a cleaning tape run, +++++++ tapes getting stuck). It would be advantageous if Bacula would +++++++ automatically disable further use of a problematic tape drive +++++++ after a configurable amount of errors has occured. +++++++ +++++++ An example: I have a multi-drive jukebox (6 drives, 380+ slots) +++++++ where tapes occasionally get stuck inside the drive. Bacula will +++++++ notice that the "mtx-changer" command will fail and then fail +++++++ any backup jobs trying to use that drive. However, it will still +++++++ keep on trying to run new jobs using that drive and fail - +++++++ forever, and thus failing lots and lots of jobs... Since we have +++++++ many drives Bacula could have just automatically disabled +++++++ further use of that drive and used one of the other ones +++++++ instead. +++++++ +++++++ +++++++Item 16: Directive/mode to backup only file changes, not entire file +++++++ Date: 11 November 2005 +++++++ Origin: Joshua Kugler +++++++ Marek Bajon +++++++ Status: RFC +++++++ +++++++ What: Currently when a file changes, the entire file will be backed up in +++++++ the next incremental or full backup. To save space on the tapes +++++++ it would be nice to have a mode whereby only the changes to the +++++++ file would be backed up when it is changed. +++++++ +++++++ Why: This would save lots of space when backing up large files such as +++++++ logs, mbox files, Outlook PST files and the like. +++++++ +++++++ Notes: This would require the usage of disk-based volumes as comparing +++++++ files would not be feasible using a tape drive. +++++++ +++++++Item 17: Quick release of FD-SD connection +++++++ Origin: Frank Volf (frank at deze dot org) +++++++ Date: 17 november 2005 +++++++ Status: +++++++ +++++++ What: In the bacula implementation a backup is finished after all data +++++++ and attributes are succesfully written to storage. When using a +++++++ tape backup it is very annoying that a backup can take a day, +++++++ simply because the current tape (or whatever) is full and the +++++++ administrator has not put a new one in. During that time the +++++++ system cannot be taken off-line, because there is still an open +++++++ session between the storage daemon and the file daemon on the +++++++ client. +++++++ +++++++ Although this is a very good strategey for making "safe backups" +++++++ This can be annoying for e.g. laptops, that must remain +++++++ connected until the bacukp is completed. +++++++ +++++++ Using a new feature called "migration" it will be possible to +++++++ spool first to harddisk (using a special 'spool' migration +++++++ scheme) and then migrate the backup to tape. +++++++ +++++++ There is still the problem of getting the attributes committed. +++++++ If it takes a very long time to do, with the current code, the +++++++ job has not terminated, and the File daemon is not freed up. The +++++++ Storage daemon should release the File daemon as soon as all the +++++++ file data and all the attributes have been sent to it (the SD). +++++++ Currently the SD waits until everything is on tape and all the +++++++ attributes are transmitted to the Director before signalling +++++++ completion to the FD. I don't think I would have any problem +++++++ changing this. The reason is that even if the FD reports back to +++++++ the Dir that all is OK, the job will not terminate until the SD +++++++ has done the same thing -- so in a way keeping the SD-FD link +++++++ open to the very end is not really very productive ... ++++++ +++++++ Why: Makes backup of laptops much easier. ++++++ ++++++ ++++++ ============= Empty RFC form =========== ++++++@@ -245,33 +413,4 @@ ++++++ ============== End RFC form ============== ++++++ ++++++ ++++++-Items completed for release 1.38.0: ++++++-#4 Embedded Python Scripting (implemented in all Daemons) ++++++-#5 Events that call a Python program (Implemented in all ++++++- daemons, but more cleanup work to be done). ++++++-#6 Select one from among Multiple Storage Devices for Job. ++++++- This is already implemented in 1.37. ++++++-#7 Single Job Writing to Multiple Storage Devices. This is ++++++- currently implemented with a Clone feature. ++++++-#- Full multiple drive Autochanger support (done in 1.37) ++++++-#- Built in support for communications encryption (TLS) ++++++- done by Landon Fuller. ++++++-# Support for Unicode characters ++++++- (via UTF-8) on Win32 machines thanks to Thorsten Engel. ++++++-Item 8: Break the one-to-one Relationship between a Job and a ++++++- Specific Storage Device (or Devices if #10 is implemented). ++++++- ++++++-Completed items from last year's list: ++++++-Item 1: Multiple simultaneous Jobs. (done) ++++++-Item 3: Write the bscan program -- also write a bcopy program (done). ++++++-Item 5: Implement Label templates (done). ++++++-Item 6: Write a regression script (done) ++++++-Item 9: Add SSL to daemon communications (done by Landon Fuller) ++++++-Item 10: Define definitive tape format (done) ++++++-Item 3: GUI for interactive restore. Partially Implemented in 1.34 ++++++- Note, there is now a complete Webmin plugin, a partial ++++++- GNOME console, and an excellent wx-console GUI. ++++++-Item 4: GUI for interactive backup ++++++-Item 2: Job Data Spooling. ++++++- Done: Regular expression matching. ++++++-Item 10: New daemon communication protocol (this has been dropped). +++++++Items completed for release 1.38.0 -- see kernsdone ++++++Index: patches/1.38.1-to-1.38.2.patch ++++++=================================================================== ++++++RCS file: patches/1.38.1-to-1.38.2.patch ++++++diff -N patches/1.38.1-to-1.38.2.patch ++++++--- /dev/null 1 Jan 1970 00:00:00 -0000 +++++++++ patches/1.38.1-to-1.38.2.patch 21 Nov 2005 13:13:01 -0000 ++++++@@ -0,0 +1,1414 @@ +++++++ +++++++ This patch fixes the following bugs: +++++++ +++++++- Fix crash in tray-monitor when daemon disconnects. Bug #479. +++++++- Fix bnet-server bug found on OpenBSD. Bug #486 (bug originator +++++++ says that this patch does not fix his problem) +++++++- Fix cancel failure bug. Bug #481 +++++++- Fix failure when Pool name has spaces. Bug #487 +++++++- Fix SD crash in autochanger code. Mutex failure. Bug #488 +++++++- Fix a couple of free()s in src/filed/acl.c +++++++- Fix memory overrun in bfile.c in building OS X resource +++++++ fork filename. Bug #489 +++++++ +++++++This patch is applied to Bacula source version 1.38.1 and will +++++++produce Bacula source version 1.38.2. Apply it with: +++++++ +++++++ cd +++++++ ./configure (your options) if not already done +++++++ patch -p0 <1.38.1-to-1.38.2.patch +++++++ make +++++++ make install +++++++ +++++++? osx_finder.patch +++++++Index: kernstodo +++++++=================================================================== +++++++RCS file: /cvsroot/bacula/bacula/kernstodo,v +++++++retrieving revision 1.570.2.6 +++++++diff -u -r1.570.2.6 kernstodo +++++++--- kernstodo 4 Nov 2005 09:16:49 -0000 1.570.2.6 ++++++++++ kernstodo 21 Nov 2005 13:06:36 -0000 +++++++@@ -1,5 +1,5 @@ +++++++ Kern's ToDo List +++++++- 03 November 2005 ++++++++ 21 November 2005 +++++++ +++++++ Major development: +++++++ Project Developer +++++++@@ -7,8 +7,6 @@ +++++++ Version 1.37 Kern (see below) +++++++ ======================================================== +++++++ +++++++-Final items for 1.37 before release: +++++++- +++++++ Document: +++++++ - Does ClientRunAfterJob fail the job on a bad return code? +++++++ - Document cleaning up the spool files: +++++++@@ -18,6 +16,8 @@ +++++++ - Does WildFile match against full name? Doc. +++++++ +++++++ For 1.39: ++++++++- Make sure that all do_prompt() calls in Dir check for ++++++++ -1 (error) and -2 (cancel) returns. +++++++ - Look at -D_FORTIFY_SOURCE=2 +++++++ - Add Win32 FileSet definition somewhere +++++++ - Look at fixing restore status stats in SD. +++++++@@ -27,6 +27,12 @@ +++++++ encountered, read many times (as it currently does), and if the +++++++ block cannot be read, skip to the next block, and try again. If +++++++ that fails, skip to the next file and try again, ... ++++++++- Add level table: ++++++++ create table LevelType (LevelType binary(1), LevelTypeLong tinyblob); ++++++++ insert into LevelType (LevelType,LevelTypeLong) values ++++++++ ("F","Full"), ++++++++ ("D","Diff"), ++++++++ ("I","Inc"); +++++++ - Add ACL to restore only to original location. +++++++ - Add a recursive mark command (rmark) to restore. +++++++ - "Minimum Job Interval = nnn" sets minimum interval between Jobs +++++++@@ -1246,219 +1252,4 @@ +++++++ ==== +++++++ +++++++ +++++++-=== Done +++++++-- Save mount point for directories not traversed with onefs=yes. +++++++-- Add seconds to start and end times in the Job report output. +++++++-- if 2 concurrent backups are attempted on the same tape +++++++- drive (autoloader) into different tape pools, one of them will exit +++++++- fatally instead of halting until the drive is idle +++++++-- Update StartTime if job held in Job Queue. +++++++-- Look at www.nu2.nu/pebuilder as a helper for full windows +++++++- bare metal restore. (done by Scott) +++++++-- Fix orphanned buffers: +++++++- Orphaned buffer: 24 bytes allocated at line 808 of rufus-dir job.c +++++++- Orphaned buffer: 40 bytes allocated at line 45 of rufus-dir alist.c +++++++-- Implement Preben's suggestion to add +++++++- File System Types = ext2, ext3 +++++++- to FileSets, thus simplifying backup of *all* local partitions. +++++++-- Try to open a device on each Job if it was not opened +++++++- when the SD started. +++++++-- Add dump of VolSessionId/Time and FileIndex with bls. +++++++-- If Bacula does not find the right tape in the Autochanger, +++++++- then mark the tape in error and move on rather than asking +++++++- for operator intervention. +++++++-- Cancel command should include JobId in list of Jobs. +++++++-- Add performance testing hooks +++++++-- Bootstrap from JobMedia records. +++++++-- Implement WildFile and WildDir to solve problem of +++++++- saving only *.doc files. +++++++-- Fix +++++++- Please use the "label" command to create a new Volume for: +++++++- Storage: DDS-4-changer +++++++- Media type: +++++++- Pool: Default +++++++- label +++++++- The defined Storage resources are: +++++++-- Copy Changer Device and Changer Command from Autochanger +++++++- to Device resource in SD if none given in Device resource. +++++++-- 1. Automatic use of more than one drive in an autochanger (done) +++++++-- 2. Automatic selection of the correct drive for each Job (i.e. +++++++- selects a drive with an appropriate Volume for the Job) (done) +++++++-- 6. Allow multiple simultaneous Jobs referencing the same pool write +++++++- to several tapes (some new directive(s) are are probably needed for +++++++- this) (done) +++++++-- Locking (done) +++++++-- Key on Storage rather than Pool (done) +++++++-- Allow multiple drives to use same Pool (change jobq.c DIR) (done). +++++++-- Synchronize multiple drives so that not more +++++++- than one loads a tape and any time (done) +++++++-- 4. Use Changer Device and Changer Command specified in the +++++++- Autochanger resource, if none is found in the Device resource. +++++++- You can continue to specify them in the Device resource if you want +++++++- or need them to be different for each device. +++++++-- 5. Implement a new Device directive (perhaps "Autoselect = yes/no") +++++++- that can allow a Device be part of an Autochanger, and hence the changer +++++++- script protected, but if set to no, will prevent the Device from being +++++++- automatically selected from the changer. This allows the device to +++++++- be directly accessed through its Device name, but not through the +++++++- AutoChanger name. +++++++-#6 Select one from among Multiple Storage Devices for Job +++++++-#5 Events that call a Python program +++++++- (Implemented in Dir/SD) +++++++-- Make sure the Device name is in the Query packet returned. +++++++-- Don't start a second file job if one is already running. +++++++-- Implement EOF/EOV labels for ANSI labels +++++++-- Implement IBM labels. +++++++-- When Python creates a new label, the tape is immediately +++++++- recycled and no label created. This happens when using +++++++- autolabeling -- even when Python doesn't generate the name. +++++++-- Scratch Pool where the volumes can be re-assigned to any Pool. +++++++-- 28-Mar 23:19 rufus-sd: acquire.c:379 Device "DDS-4" (/dev/nst0) +++++++- is busy reading. Job 6 canceled. +++++++-- Remove separate thread for opening devices in SD. On the other +++++++- hand, don't block waiting for open() for devices. +++++++-- Fix code to either handle updating NumVol or to calculate it in +++++++- Dir next_vol.c +++++++-- Ensure that you cannot exclude a directory or a file explicitly +++++++- Included with File. +++++++-#4 Embedded Python Scripting +++++++- (Implemented in Dir/SD/FD) +++++++-- Add Python writable variable for changing the Priority, +++++++- Client, Storage, JobStatus (error), ... +++++++-- SD Python +++++++- - Solicit Events +++++++-- Add disk seeking on restore; turn off seek on tapes. +++++++- stored/match_bsr.c +++++++-- Look at dird_conf.c:1000: warning: `int size' +++++++- might be used uninitialized in this function +++++++-- Indicate when a Job is purged/pruned during restore. +++++++-- Implement some way to turn off automatic pruning in Jobs. +++++++-- Implement a way an Admin Job can prune, possibly multiple +++++++- clients -- Python script? +++++++-- Look at Preben's acl.c error handling code. +++++++-- SD crashes after a tape restore then doing a backup. +++++++-- If drive is opened read/write, close it and re-open +++++++- read-only if doing a restore, and vice-versa. +++++++-- Windows restore: +++++++- data-fd: RestoreFiles.2004-12-07_15.56.42 Error: +++++++- > ..\findlib\../../findlib/create_file.c:275 Could not open e:/: ERR=Der +++++++- > Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen +++++++- > Prozess verwendet wird. +++++++- Restore restores all files, but then fails at the end trying +++++++- to set the attributes of e: +++++++- from failed jobs.- Resolve the problem between Device name and Archive name, +++++++- and fix SD messages. +++++++-- Tell the "restore" user when browsing is no longer possible. +++++++-- Add a restore directory-x +++++++-- Write non-optimized bsrs from the JobMedia and Media records, +++++++- even after Files are pruned. +++++++-- Delete Stripe and Copy from VolParams to save space. +++++++-- Fix option 2 of restore -- list where file is backed up -- require Client, +++++++- then list last 20 backups. +++++++-- Finish implementation of passing all Storage and Device needs to +++++++- the SD. +++++++-- Move test for max wait time exceeded in job.c up -- Peter's idea. +++++++-## Consider moving docs to their own project. +++++++-## Move rescue to its own project. +++++++-- Add client version to the Client name line that prints in +++++++- the Job report. +++++++-- Fix the Rescue CDROM. +++++++-- By the way: on page http://www.bacula.org/?page=tapedrives , at the +++++++- bottom, the link to "Tape Testing Chapter" is broken. It goes to +++++++- /html-manual/... while the others point to /rel-manual/... +++++++-- Device resource needs the "name" of the SD. +++++++-- Specify a single directory to restore. +++++++-- Implement MediaType keyword in bsr? +++++++-- Add a date and time stamp at the beginning of every line in the +++++++- Job report (Volker Sauer). +++++++-- Add level to estimate command. +++++++-- Add "limit=n" for "list jobs" +++++++-- Make bootstrap filename unique. +++++++-- Make Dmsg look at global before calling subroutine. +++++++-- From Chris Hull: +++++++- it seems to be complaining about 12:00pm which should be a valid 12 +++++++- hour time. I changed the time to 11:59am and everything works fine. +++++++- Also 12:00am works fine. 0:00pm also works (which I don't think +++++++- should). None of the values 12:00pm - 12:59pm work for that matter. +++++++-- Require restore via the restore command or make a restore Job +++++++- get the bootstrap file. +++++++-- Implement Maximum Job Spool Size +++++++-- Fix 3993 error in SD. It forgets to look at autochanger +++++++- resource for device command, ... +++++++-- 3. Prevent two drives requesting the same Volume in any given +++++++- autochanger, by checking if a Volume is mounted on another drive +++++++- in an Autochanger. +++++++-- Upgrade to MySQL 4.1.12 See: +++++++- http://dev.mysql.com/doc/mysql/en/Server_SQL_mode.html +++++++-- Add # Job Level date to bsr file +++++++-- Implement "PreferMountedVolumes = yes|no" in Job resource. +++++++-## Integrate web-bacula into a new Bacula project with +++++++- bimagemgr. +++++++-- Cleaning tapes should have Status "Cleaning" rather than append. +++++++-- Make sure that Python has access to Client address/port so that +++++++- it can check if Clients are alive. +++++++-- Review all items in "restore". +++++++-- Fix PostgreSQL GROUP BY problems in restore. +++++++-- Fix PostgreSQL sql problems in bugs. +++++++-- After rename +++++++- 04-Jul 13:01 MainSD: Rufus.2005-07-04_01.05.02 Warning: Director wanted Volume +++++++- "DLT-13Feb04". +++++++- Current Volume "DLT-04Jul05" not acceptable because: +++++++- 1997 Volume "DLT-13Feb04" not in catalog. +++++++- 04-Jul 13:01 MainSD: Please mount Volume "DLT-04Jul05" on Storage Device +++++++- "HP DLT 80" (/dev/nst0) for Job Rufus.2005-07-04_01.05.02 +++++++-## Create a new GUI chapter explaining all the GUI programs. +++++++-- Make "update slots" when pointing to Autochanger, remove +++++++- all Volumes from other drives. "update slots all-drives"? +++++++- No, this is done by modifying mtx-changer to list what is +++++++- in the drives. +++++++-- Finish TLS implementation. +++++++-- Port limiting -m in iptables to prevent DoS attacks +++++++- could cause broken pipes on Bacula. +++++++-6. Build and test the Volume Shadow Copy (VSS) for Win32. +++++++-- Allow cancel of unknown Job +++++++-- State not saved when closing Win32 FD by icon +++++++-- bsr-opt-test fails. bsr deleted. Fix. +++++++-- Move Python daemon variables from Job to Bacula object. +++++++- WorkingDir, ConfigFile +++++++-- Document that Bootstrap files can be written with cataloging +++++++- turned off. +++++++-- Document details of ANSI/IBM labels +++++++-- OS linux 2.4 +++++++- 1) ADIC, DLT, FastStor 4000, 7*20GB +++++++-- Linux Sony LIB-D81, AIT-3 library works. +++++++-- Doc the following +++++++- to activate, check or disable the hardware compression feature on my +++++++- exb-8900 i use the exabyte "MammothTool" you can get it here: +++++++- http://www.exabyte.com/support/online/downloads/index.cfm +++++++- There is a solaris version of this tool. With option -C 0 or 1 you can +++++++- disable or activate compression. Start this tool without any options for +++++++- a small reference. +++++++-- Document Heartbeat Interval in the dealing with firewalls section. +++++++-- Document new CDROM directory. +++++++-- On Win32 working directory must have drive letter ???? +++++++-- On Win32 working directory must be writable by SYSTEM to +++++++- do restores. +++++++-- Document that ChangerDevice is used for Alert command. +++++++-- Add better documentation on how restores can be done +++++++-8. Take one more try at making DVD writing work (no go) +++++++-7. Write a bacula-web document +++++++-- Why isn't the DEVICE structure defined when doing +++++++- a reservation? +++++++-- Multi-drive changer seems to only use drive 0 +++++++- Multiple drives don't seem to be opened. +++++++-- My database is growing +++++++-- Call GetLastError() in the berrno constructor rather +++++++- than delaying until strerror. +++++++-- Tape xxx in drive 0, requested in drive 1 +++++++-- The mount command does not work with drives other than 0. +++++++-- A mount should cause the SD to re-examine what Slot is +++++++- loaded. +++++++-- The SD locks on to the first available drive then +++++++- wants a Volume that is released but in another drive -- +++++++- chaos. +++++++-- Run the regression scripts on Solaris and FreeBSD +++++++-- Figure out how to package gui, and rescue programs. +++++++-- Add a .dir command to restore tree code to eliminate the problem +++++++-- Mount after manually unloading changer causes hang in SD +++++++-- Fix JobACL with restore by JobId. ++++++++=== Done -- see kernsdone +++++++Index: kes-1.38 +++++++=================================================================== +++++++RCS file: /cvsroot/bacula/bacula/kes-1.38,v +++++++retrieving revision 1.1.2.13 +++++++diff -u -r1.1.2.13 kes-1.38 +++++++--- kes-1.38 14 Nov 2005 20:20:38 -0000 1.1.2.13 ++++++++++ kes-1.38 21 Nov 2005 13:06:36 -0000 +++++++@@ -3,6 +3,17 @@ +++++++ +++++++ General: +++++++ ++++++++Changes after release of 1.38.1: ++++++++20Oct05 ++++++++- Fix crash in tray-monitor when daemon disconnects. Bug #479. ++++++++- Fix bnet-server bug found on OpenBSD. Bug #486 ++++++++- Fix cancel failure bug. Bug #481 ++++++++- Fix failure when Pool name has spaces. Bug #487 ++++++++- Fix SD crash in autochanger code. Mutex failure. Bug #488 ++++++++- Fix a couple of free()s in src/filed/acl.c ++++++++- Fix memory overrun in bfile.c in building OS X resource ++++++++ fork filename. Bug #489 ++++++++ +++++++ Changes to 1.38.1: +++++++ 14Oct05 +++++++ - Apply SunOS patch for ACLs submitted by David Duchscher. +++++++Index: projects +++++++=================================================================== +++++++RCS file: /cvsroot/bacula/bacula/projects,v +++++++retrieving revision 1.12.2.3 +++++++diff -u -r1.12.2.3 projects +++++++--- projects 10 Nov 2005 20:25:27 -0000 1.12.2.3 ++++++++++ projects 21 Nov 2005 13:06:37 -0000 +++++++@@ -228,7 +228,175 @@ +++++++ +++++++ Why: Performance enhancement. +++++++ ++++++++Item 13: Let Bacula log tape usage and handle drive cleaning cycles. ++++++++ Date: November 11, 2005 ++++++++ Origin: Arno Lehmann ++++++++ Status: ++++++++ ++++++++ What: Make Bacula manage tape life cycle information and drive ++++++++ cleaning cycles. ++++++++ ++++++++ Why: Both parts of this project are important when operating backups. ++++++++ We need to know which tapes need replacement, and we need to ++++++++ make sure the drives are cleaned when necessary. While many ++++++++ tape libraries and even autoloaders can handle all this ++++++++ automatically, support by Bacula can be helpful for smaller ++++++++ (older) libraries and single drives. Also, checking drive ++++++++ status during operation can prevent some failures (as I had to ++++++++ learn the hard way...) ++++++++ ++++++++ Notes: First, Bacula could (and even does, to some limited extent) ++++++++ record tape and drive usage. For tapes, the number of mounts, ++++++++ the amount of data, and the time the tape has actually been ++++++++ running could be recorded. Data fields for Read and Write time ++++++++ and Nmber of mounts already exist in the catalog (I'm not sure ++++++++ if VolBytes is the sum of all bytes ever written to that volume ++++++++ by Bacula). This information can be important when determining ++++++++ which media to replace. For the tape drives known to Bacula, ++++++++ similar information is interesting to determine the device ++++++++ status and expected life time: Time it's been Reading and ++++++++ Writing, number of tape Loads / Unloads / Errors. This ++++++++ information is not yet recorded as far as I know. ++++++++ ++++++++ The next step would be implementing drive cleaning setup. ++++++++ Bacula already has knowledge about cleaning tapes. Once it has ++++++++ some information about cleaning cycles (measured in drive run ++++++++ time, number of tapes used, or calender days, for example) it ++++++++ can automatically execute tape cleaning (with an autochanger, ++++++++ obviously) or ask for operator assistence loading a cleaning ++++++++ tape. ++++++++ ++++++++ The next step would be to implement TAPEALERT checks not only ++++++++ when changing tapes and only sending he information to the ++++++++ administrator, but rather checking after each tape error, ++++++++ checking on a regular basis (for example after each tape file), ++++++++ and also before unloading and after loading a new tape. Then, ++++++++ depending on the drives TAPEALERT state and the know drive ++++++++ cleaning state Bacula could automatically schedule later ++++++++ cleaning, clean immediately, or inform the operator. ++++++++ ++++++++ Implementing this would perhaps require another catalog change ++++++++ and perhaps major changes in SD code and the DIR-SD protocoll, ++++++++ so I'd only consider this worth implementing if it would ++++++++ actually be used or even needed by many people. ++++++++ ++++++++Item 14: Merging of multiple backups into a single one. (Also called Synthetic ++++++++ Backup or Consolidation). ++++++++ ++++++++ Origin: Marc Cousin and Eric Bollengier ++++++++ Date: 15 November 2005 ++++++++ Status: Depends on first implementing project Item 1 (Migration). ++++++++ ++++++++ What: A merged backup is a backup made without connecting to the Client. ++++++++ It would be a Merge of existing backups into a single backup. ++++++++ In effect, it is like a restore but to the backup medium. ++++++++ ++++++++ For instance, say that last sunday we made a full backup. Then ++++++++ all week long, we created incremental backups, in order to do ++++++++ them fast. Now comes sunday again, and we need another full. ++++++++ The merged backup makes it possible to do instead an incremental ++++++++ backup (during the night for instance), and then create a merged ++++++++ backup during the day, by using the full and incrementals from ++++++++ the week. The merged backup will be exactly like a full made ++++++++ sunday night on the tape, but the production interruption on the ++++++++ Client will be minimal, as the Client will only have to send ++++++++ incrementals. ++++++++ ++++++++ In fact, if it's done correctly, you could merge all the ++++++++ Incrementals into single Incremental, or all the Incrementals ++++++++ and the last Differential into a new Differential, or the Full, ++++++++ last differential and all the Incrementals into a new Full ++++++++ backup. And there is no need to involve the Client. ++++++++ ++++++++ Why: The benefit is that : ++++++++ - the Client just does an incremental ; ++++++++ - the merged backup on tape is just as a single full backup, ++++++++ and can be restored very fast. ++++++++ ++++++++ This is also a way of reducing the backup data since the old ++++++++ data can then be pruned (or not) from the catalog, possibly ++++++++ allowing older volumes to be recycled ++++++++ ++++++++Item 15: Automatic disabling of devices ++++++++ Date: 2005-11-11 ++++++++ Origin: Peter Eriksson ++++++++ Status: ++++++++ ++++++++ What: After a configurable amount of fatal errors with a tape drive ++++++++ Bacula should automatically disable further use of a certain ++++++++ tape drive. There should also be "disable"/"enable" commands in ++++++++ the "bconsole" tool. ++++++++ ++++++++ Why: On a multi-drive jukebox there is a possibility of tape drives ++++++++ going bad during large backups (needing a cleaning tape run, ++++++++ tapes getting stuck). It would be advantageous if Bacula would ++++++++ automatically disable further use of a problematic tape drive ++++++++ after a configurable amount of errors has occured. ++++++++ ++++++++ An example: I have a multi-drive jukebox (6 drives, 380+ slots) ++++++++ where tapes occasionally get stuck inside the drive. Bacula will ++++++++ notice that the "mtx-changer" command will fail and then fail ++++++++ any backup jobs trying to use that drive. However, it will still ++++++++ keep on trying to run new jobs using that drive and fail - ++++++++ forever, and thus failing lots and lots of jobs... Since we have ++++++++ many drives Bacula could have just automatically disabled ++++++++ further use of that drive and used one of the other ones ++++++++ instead. ++++++++ ++++++++ ++++++++Item 16: Directive/mode to backup only file changes, not entire file ++++++++ Date: 11 November 2005 ++++++++ Origin: Joshua Kugler ++++++++ Marek Bajon ++++++++ Status: RFC ++++++++ ++++++++ What: Currently when a file changes, the entire file will be backed up in ++++++++ the next incremental or full backup. To save space on the tapes ++++++++ it would be nice to have a mode whereby only the changes to the ++++++++ file would be backed up when it is changed. ++++++++ ++++++++ Why: This would save lots of space when backing up large files such as ++++++++ logs, mbox files, Outlook PST files and the like. ++++++++ ++++++++ Notes: This would require the usage of disk-based volumes as comparing ++++++++ files would not be feasible using a tape drive. ++++++++ ++++++++Item 17: Quick release of FD-SD connection ++++++++ Origin: Frank Volf (frank at deze dot org) ++++++++ Date: 17 november 2005 ++++++++ Status: ++++++++ ++++++++ What: In the bacula implementation a backup is finished after all data ++++++++ and attributes are succesfully written to storage. When using a ++++++++ tape backup it is very annoying that a backup can take a day, ++++++++ simply because the current tape (or whatever) is full and the ++++++++ administrator has not put a new one in. During that time the ++++++++ system cannot be taken off-line, because there is still an open ++++++++ session between the storage daemon and the file daemon on the ++++++++ client. ++++++++ ++++++++ Although this is a very good strategey for making "safe backups" ++++++++ This can be annoying for e.g. laptops, that must remain ++++++++ connected until the bacukp is completed. ++++++++ ++++++++ Using a new feature called "migration" it will be possible to ++++++++ spool first to harddisk (using a special 'spool' migration ++++++++ scheme) and then migrate the backup to tape. ++++++++ ++++++++ There is still the problem of getting the attributes committed. ++++++++ If it takes a very long time to do, with the current code, the ++++++++ job has not terminated, and the File daemon is not freed up. The ++++++++ Storage daemon should release the File daemon as soon as all the ++++++++ file data and all the attributes have been sent to it (the SD). ++++++++ Currently the SD waits until everything is on tape and all the ++++++++ attributes are transmitted to the Director before signalling ++++++++ completion to the FD. I don't think I would have any problem ++++++++ changing this. The reason is that even if the FD reports back to ++++++++ the Dir that all is OK, the job will not terminate until the SD ++++++++ has done the same thing -- so in a way keeping the SD-FD link ++++++++ open to the very end is not really very productive ... +++++++ ++++++++ Why: Makes backup of laptops much easier. +++++++ +++++++ +++++++ ============= Empty RFC form =========== +++++++@@ -245,33 +413,4 @@ +++++++ ============== End RFC form ============== +++++++ +++++++ +++++++-Items completed for release 1.38.0: +++++++-#4 Embedded Python Scripting (implemented in all Daemons) +++++++-#5 Events that call a Python program (Implemented in all +++++++- daemons, but more cleanup work to be done). +++++++-#6 Select one from among Multiple Storage Devices for Job. +++++++- This is already implemented in 1.37. +++++++-#7 Single Job Writing to Multiple Storage Devices. This is +++++++- currently implemented with a Clone feature. +++++++-#- Full multiple drive Autochanger support (done in 1.37) +++++++-#- Built in support for communications encryption (TLS) +++++++- done by Landon Fuller. +++++++-# Support for Unicode characters +++++++- (via UTF-8) on Win32 machines thanks to Thorsten Engel. +++++++-Item 8: Break the one-to-one Relationship between a Job and a +++++++- Specific Storage Device (or Devices if #10 is implemented). +++++++- +++++++-Completed items from last year's list: +++++++-Item 1: Multiple simultaneous Jobs. (done) +++++++-Item 3: Write the bscan program -- also write a bcopy program (done). +++++++-Item 5: Implement Label templates (done). +++++++-Item 6: Write a regression script (done) +++++++-Item 9: Add SSL to daemon communications (done by Landon Fuller) +++++++-Item 10: Define definitive tape format (done) +++++++-Item 3: GUI for interactive restore. Partially Implemented in 1.34 +++++++- Note, there is now a complete Webmin plugin, a partial +++++++- GNOME console, and an excellent wx-console GUI. +++++++-Item 4: GUI for interactive backup +++++++-Item 2: Job Data Spooling. +++++++- Done: Regular expression matching. +++++++-Item 10: New daemon communication protocol (this has been dropped). ++++++++Items completed for release 1.38.0 -- see kernsdone +++++++Index: patches/1.38.1-to-1.38.2.patch +++++++=================================================================== +++++++RCS file: patches/1.38.1-to-1.38.2.patch +++++++diff -N patches/1.38.1-to-1.38.2.patch +++++++--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++++++++ patches/1.38.1-to-1.38.2.patch 21 Nov 2005 13:06:37 -0000 +++++++@@ -0,0 +1,412 @@ ++++++++ ++++++++ This patch fixes the following bugs: ++++++++ ++++++++- Fix crash in tray-monitor when daemon disconnects. Bug #479. ++++++++- Fix bnet-server bug found on OpenBSD. Bug #486 (bug originator ++++++++ says that this patch does not fix his problem) ++++++++- Fix cancel failure bug. Bug #481 ++++++++- Fix failure when Pool name has spaces. Bug #487 ++++++++- Fix SD crash in autochanger code. Mutex failure. Bug #488 ++++++++- Fix a couple of free()s in src/filed/acl.c ++++++++- Fix memory overrun in bfile.c in building OS X resource ++++++++ fork filename. Bug #489 ++++++++ ++++++++This patch is applied to Bacula source version 1.38.1 and will ++++++++produce Bacula source version 1.38.2. Apply it with: ++++++++ ++++++++ cd ++++++++ ./configure (your options) if not already done ++++++++ patch -p0 <1.38.1-to-1.38.2.patch ++++++++ make ++++++++ make install ++++++++ ++++++++Index: kes-1.38 ++++++++=================================================================== ++++++++RCS file: /cvsroot/bacula/bacula/kes-1.38,v ++++++++retrieving revision 1.1.2.13 ++++++++diff -u -r1.1.2.13 kes-1.38 ++++++++--- kes-1.38 14 Nov 2005 20:20:38 -0000 1.1.2.13 +++++++++++ kes-1.38 21 Nov 2005 12:53:36 -0000 ++++++++@@ -3,6 +3,17 @@ ++++++++ ++++++++ General: ++++++++ +++++++++Changes after release of 1.38.1: +++++++++20Oct05 +++++++++- Fix crash in tray-monitor when daemon disconnects. Bug #479. +++++++++- Fix bnet-server bug found on OpenBSD. Bug #486 +++++++++- Fix cancel failure bug. Bug #481 +++++++++- Fix failure when Pool name has spaces. Bug #487 +++++++++- Fix SD crash in autochanger code. Mutex failure. Bug #488 +++++++++- Fix a couple of free()s in src/filed/acl.c +++++++++- Fix memory overrun in bfile.c in building OS X resource +++++++++ fork filename. Bug #489 +++++++++ ++++++++ Changes to 1.38.1: ++++++++ 14Oct05 ++++++++ - Apply SunOS patch for ACLs submitted by David Duchscher. ++++++++Index: src/version.h ++++++++=================================================================== ++++++++RCS file: /cvsroot/bacula/bacula/src/version.h,v ++++++++retrieving revision 1.554.2.14 ++++++++diff -u -r1.554.2.14 version.h ++++++++--- src/version.h 14 Nov 2005 14:21:58 -0000 1.554.2.14 +++++++++++ src/version.h 21 Nov 2005 12:53:37 -0000 ++++++++@@ -3,9 +3,9 @@ ++++++++ */ ++++++++ ++++++++ #undef VERSION ++++++++-#define VERSION "1.38.1" ++++++++-#define BDATE "14 November 2005" ++++++++-#define LSMDATE "14Nov05" +++++++++#define VERSION "1.38.2" +++++++++#define BDATE "20 November 2005" +++++++++#define LSMDATE "20Nov05" ++++++++ ++++++++ /* Debug flags */ ++++++++ #undef DEBUG ++++++++Index: src/dird/catreq.c ++++++++=================================================================== ++++++++RCS file: /cvsroot/bacula/bacula/src/dird/catreq.c,v ++++++++retrieving revision 1.77.2.1 ++++++++diff -u -r1.77.2.1 catreq.c ++++++++--- src/dird/catreq.c 26 Oct 2005 14:02:04 -0000 1.77.2.1 +++++++++++ src/dird/catreq.c 21 Nov 2005 12:53:37 -0000 ++++++++@@ -10,7 +10,7 @@ ++++++++ * Basic tasks done here: ++++++++ * Handle Catalog services. ++++++++ * ++++++++- * Version $Id$ +++++++++ * Version $Id$ ++++++++ */ ++++++++ /* ++++++++ Copyright (C) 2001-2005 Kern Sibbald ++++++++@@ -117,6 +117,7 @@ ++++++++ if (sscanf(bs->msg, Find_media, &Job, &index, &pool_name, &mr.MediaType) == 4) { ++++++++ memset(&pr, 0, sizeof(pr)); ++++++++ bstrncpy(pr.Name, pool_name, sizeof(pr.Name)); +++++++++ unbash_spaces(pr.Name); ++++++++ ok = db_get_pool_record(jcr, jcr->db, &pr); ++++++++ if (ok) { ++++++++ mr.PoolId = pr.PoolId; ++++++++Index: src/dird/ua_restore.c ++++++++=================================================================== ++++++++RCS file: /cvsroot/bacula/bacula/src/dird/ua_restore.c,v ++++++++retrieving revision 1.101.2.1 ++++++++diff -u -r1.101.2.1 ua_restore.c ++++++++--- src/dird/ua_restore.c 26 Oct 2005 14:02:04 -0000 1.101.2.1 +++++++++++ src/dird/ua_restore.c 21 Nov 2005 12:53:37 -0000 ++++++++@@ -10,7 +10,7 @@ ++++++++ * ++++++++ * Kern Sibbald, July MMII ++++++++ * ++++++++- * Version $Id$ +++++++++ * Version $Id$ ++++++++ */ ++++++++ /* ++++++++ Copyright (C) 2002-2005 Kern Sibbald ++++++++@@ -573,6 +573,7 @@ ++++++++ } ++++++++ return 2; ++++++++ +++++++++ case -2: /* Period entered to cancel */ ++++++++ case 11: /* Cancel or quit */ ++++++++ return 0; ++++++++ } ++++++++Index: src/dird/ua_run.c ++++++++=================================================================== ++++++++RCS file: /cvsroot/bacula/bacula/src/dird/ua_run.c,v ++++++++retrieving revision 1.71 ++++++++diff -u -r1.71 ua_run.c ++++++++--- src/dird/ua_run.c 10 Aug 2005 16:35:19 -0000 1.71 +++++++++++ src/dird/ua_run.c 21 Nov 2005 12:53:38 -0000 ++++++++@@ -851,6 +851,8 @@ ++++++++ bsendmsg(ua, _("You must set the bootstrap file to NULL to be able to specify a JobId.\n")); ++++++++ } ++++++++ goto try_again; +++++++++ case -1: /* error or cancel */ +++++++++ goto bail_out; ++++++++ default: ++++++++ goto try_again; ++++++++ } ++++++++Index: src/dird/ua_select.c ++++++++=================================================================== ++++++++RCS file: /cvsroot/bacula/bacula/src/dird/ua_select.c,v ++++++++retrieving revision 1.65.2.1 ++++++++diff -u -r1.65.2.1 ua_select.c ++++++++--- src/dird/ua_select.c 12 Nov 2005 17:30:52 -0000 1.65.2.1 +++++++++++ src/dird/ua_select.c 21 Nov 2005 12:53:39 -0000 ++++++++@@ -4,7 +4,7 @@ ++++++++ * ++++++++ * Kern Sibbald, October MMI ++++++++ * ++++++++- * Version $Id$ +++++++++ * Version $Id$ ++++++++ */ ++++++++ /* ++++++++ Copyright (C) 2001-2005 Kern Sibbald ++++++++@@ -149,7 +149,9 @@ ++++++++ } ++++++++ } ++++++++ UnlockRes(); ++++++++- do_prompt(ua, _("Storage"), _("Select Storage resource"), name, sizeof(name)); +++++++++ if (do_prompt(ua, _("Storage"), _("Select Storage resource"), name, sizeof(name)) < 0) { +++++++++ return NULL; +++++++++ } ++++++++ store = (STORE *)GetResWithName(R_STORAGE, name); ++++++++ return store; ++++++++ } ++++++++@@ -170,7 +172,9 @@ ++++++++ } ++++++++ } ++++++++ UnlockRes(); ++++++++- do_prompt(ua, _("FileSet"), _("Select FileSet resource"), name, sizeof(name)); +++++++++ if (do_prompt(ua, _("FileSet"), _("Select FileSet resource"), name, sizeof(name)) < 0) { +++++++++ return NULL; +++++++++ } ++++++++ fs = (FILESET *)GetResWithName(R_FILESET, name); ++++++++ return fs; ++++++++ } ++++++++@@ -202,7 +206,9 @@ ++++++++ } ++++++++ } ++++++++ UnlockRes(); ++++++++- do_prompt(ua, _("Catalog"), _("Select Catalog resource"), name, sizeof(name)); +++++++++ if (do_prompt(ua, _("Catalog"), _("Select Catalog resource"), name, sizeof(name)) < 0) { +++++++++ return NULL; +++++++++ } ++++++++ catalog = (CAT *)GetResWithName(R_CATALOG, name); ++++++++ } ++++++++ return catalog; ++++++++@@ -225,7 +231,9 @@ ++++++++ } ++++++++ } ++++++++ UnlockRes(); ++++++++- do_prompt(ua, _("Job"), _("Select Job resource"), name, sizeof(name)); +++++++++ if (do_prompt(ua, _("Job"), _("Select Job resource"), name, sizeof(name)) < 0) { +++++++++ return NULL; +++++++++ } ++++++++ job = (JOB *)GetResWithName(R_JOB, name); ++++++++ return job; ++++++++ } ++++++++@@ -246,7 +254,9 @@ ++++++++ } ++++++++ } ++++++++ UnlockRes(); ++++++++- do_prompt(ua, _("Job"), _("Select Restore Job"), name, sizeof(name)); +++++++++ if (do_prompt(ua, _("Job"), _("Select Restore Job"), name, sizeof(name)) < 0) { +++++++++ return NULL; +++++++++ } ++++++++ job = (JOB *)GetResWithName(R_JOB, name); ++++++++ return job; ++++++++ } ++++++++@@ -269,7 +279,9 @@ ++++++++ } ++++++++ } ++++++++ UnlockRes(); ++++++++- do_prompt(ua, _("Client"), _("Select Client (File daemon) resource"), name, sizeof(name)); +++++++++ if (do_prompt(ua, _("Client"), _("Select Client (File daemon) resource"), name, sizeof(name)) < 0) { +++++++++ return NULL; +++++++++ } ++++++++ client = (CLIENT *)GetResWithName(R_CLIENT, name); ++++++++ return client; ++++++++ } ++++++++@@ -551,7 +563,9 @@ ++++++++ } ++++++++ } ++++++++ UnlockRes(); ++++++++- do_prompt(ua, _("Pool"), _("Select Pool resource"), name, sizeof(name)); +++++++++ if (do_prompt(ua, _("Pool"), _("Select Pool resource"), name, sizeof(name)) < 0) { +++++++++ return NULL; +++++++++ } ++++++++ pool = (POOL *)GetResWithName(R_POOL, name); ++++++++ return pool; ++++++++ } ++++++++@@ -673,12 +687,16 @@ ++++++++ * Returns: -1 on error ++++++++ * index base 0 on success, and choice ++++++++ * is copied to prompt if not NULL +++++++++ * prompt is set to the chosen prompt item string ++++++++ */ ++++++++ int do_prompt(UAContext *ua, const char *automsg, const char *msg, char *prompt, int max_prompt) ++++++++ { ++++++++ int i, item; ++++++++ char pmsg[MAXSTRING]; ++++++++ +++++++++ if (prompt) { +++++++++ *prompt = 0; +++++++++ } ++++++++ if (ua->num_prompts == 2) { ++++++++ item = 1; ++++++++ if (prompt) { ++++++++@@ -698,15 +716,11 @@ ++++++++ bsendmsg(ua, "%6d: %s\n", i, ua->prompt[i]); ++++++++ } ++++++++ ++++++++- if (prompt) { ++++++++- *prompt = 0; ++++++++- } ++++++++- ++++++++ for ( ;; ) { ++++++++ /* First item is the prompt string, not the items */ ++++++++ if (ua->num_prompts == 1) { ++++++++ bsendmsg(ua, _("Selection is empty!\n")); ++++++++- item = 0; /* list is empty ! */ +++++++++ item = -1; /* list is empty ! */ ++++++++ break; ++++++++ } ++++++++ if (ua->num_prompts == 2) { ++++++++@@ -741,7 +755,7 @@ ++++++++ free(ua->prompt[i]); ++++++++ } ++++++++ ua->num_prompts = 0; ++++++++- return item - 1; +++++++++ return item>0 ? item-1 : item; ++++++++ } ++++++++ ++++++++ ++++++++Index: src/dird/ua_update.c ++++++++=================================================================== ++++++++RCS file: /cvsroot/bacula/bacula/src/dird/ua_update.c,v ++++++++retrieving revision 1.7 ++++++++diff -u -r1.7 ua_update.c ++++++++--- src/dird/ua_update.c 28 Aug 2005 12:22:02 -0000 1.7 +++++++++++ src/dird/ua_update.c 21 Nov 2005 12:53:39 -0000 ++++++++@@ -590,7 +590,7 @@ ++++++++ update_all_vols_from_pool(ua); ++++++++ return 1; ++++++++ default: /* Done or error */ ++++++++- bsendmsg(ua, _("Selection done.\n")); +++++++++ bsendmsg(ua, _("Selection terminated.\n")); ++++++++ return 1; ++++++++ } ++++++++ } ++++++++Index: src/filed/acl.c ++++++++=================================================================== ++++++++RCS file: /cvsroot/bacula/bacula/src/filed/acl.c,v ++++++++retrieving revision 1.10.2.1 ++++++++diff -u -r1.10.2.1 acl.c ++++++++--- src/filed/acl.c 14 Nov 2005 20:20:38 -0000 1.10.2.1 +++++++++++ src/filed/acl.c 21 Nov 2005 12:53:39 -0000 ++++++++@@ -26,7 +26,7 @@ ++++++++ * ++++++++ * Written by Preben 'Peppe' Guldberg, December MMIV ++++++++ * ++++++++- * Version $Id$ +++++++++ * Version $Id$ ++++++++ */ ++++++++ /* ++++++++ Copyright (C) 2004-2005 Kern Sibbald ++++++++@@ -140,7 +140,7 @@ ++++++++ ++++++++ if ((acl_text = acl_get(jcr->last_fname)) != NULL) { ++++++++ len = pm_strcpy(jcr->acl_text, acl_text); ++++++++- free(acl_text); +++++++++ actuallyfree(acl_text); ++++++++ return len; ++++++++ } ++++++++ return -1; ++++++++@@ -270,7 +270,7 @@ ++++++++ if ((n = getacl(jcr->last_fname, n, acls)) > 0) { ++++++++ if ((acl_text = acltostr(n, acls, FORM_SHORT)) != NULL) { ++++++++ len = pm_strcpy(jcr->acl_text, acl_text); ++++++++- free(acl_text); +++++++++ actuallyfree(acl_text); ++++++++ return len; ++++++++ } ++++++++ } ++++++++Index: src/findlib/bfile.c ++++++++=================================================================== ++++++++RCS file: /cvsroot/bacula/bacula/src/findlib/bfile.c,v ++++++++retrieving revision 1.40 ++++++++diff -u -r1.40 bfile.c ++++++++--- src/findlib/bfile.c 10 Aug 2005 16:35:19 -0000 1.40 +++++++++++ src/findlib/bfile.c 21 Nov 2005 12:53:39 -0000 ++++++++@@ -623,13 +623,10 @@ ++++++++ int bopen_rsrc(BFILE *bfd, const char *fname, int flags, mode_t mode) ++++++++ { ++++++++ POOLMEM *rsrc_fname; ++++++++- size_t fname_len; ++++++++ ++++++++- fname_len = strlen(fname); ++++++++ rsrc_fname = get_pool_memory(PM_FNAME); ++++++++- bstrncpy(rsrc_fname, fname, fname_len + 1); ++++++++- bstrncpy(rsrc_fname + fname_len, _PATH_RSRCFORKSPEC, ++++++++- strlen(_PATH_RSRCFORKSPEC) + 1); +++++++++ pm_strcpy(rsrc_fname, fname); +++++++++ pm_strcat(rsrc_fname, _PATH_RSRCFORKSPEC); ++++++++ bopen(bfd, rsrc_fname, flags, mode); ++++++++ free_pool_memory(rsrc_fname); ++++++++ return bfd->fid; ++++++++Index: src/lib/bnet_server.c ++++++++=================================================================== ++++++++RCS file: /cvsroot/bacula/bacula/src/lib/bnet_server.c,v ++++++++retrieving revision 1.39 ++++++++diff -u -r1.39 bnet_server.c ++++++++--- src/lib/bnet_server.c 18 Aug 2005 15:37:40 -0000 1.39 +++++++++++ src/lib/bnet_server.c 21 Nov 2005 12:53:39 -0000 ++++++++@@ -153,7 +153,6 @@ ++++++++ /* Error, get out */ ++++++++ foreach_dlist(fd_ptr, &sockfds) { ++++++++ close(fd_ptr->fd); ++++++++- free((void *)fd_ptr); ++++++++ } ++++++++ Emsg1(M_FATAL, 0, _("Error in select: %s\n"), be.strerror()); ++++++++ break; ++++++++Index: src/stored/autochanger.c ++++++++=================================================================== ++++++++RCS file: /cvsroot/bacula/bacula/src/stored/autochanger.c,v ++++++++retrieving revision 1.47.2.3 ++++++++diff -u -r1.47.2.3 autochanger.c ++++++++--- src/stored/autochanger.c 12 Nov 2005 17:30:53 -0000 1.47.2.3 +++++++++++ src/stored/autochanger.c 21 Nov 2005 12:53:39 -0000 ++++++++@@ -4,7 +4,7 @@ ++++++++ * ++++++++ * Kern Sibbald, August MMII ++++++++ * ++++++++- * Version $Id$ +++++++++ * Version $Id$ ++++++++ */ ++++++++ /* ++++++++ Copyright (C) 2002-2005 Kern Sibbald ++++++++@@ -163,6 +163,7 @@ ++++++++ rtn_stat = -1; /* hard error */ ++++++++ } ++++++++ Dmsg2(400, "load slot %d status=%d\n", slot, status); +++++++++ unlock_changer(dcr); ++++++++ } else { ++++++++ status = 0; /* we got what we want */ ++++++++ dev->Slot = slot; /* set currently loaded slot */ ++++++++@@ -174,7 +175,6 @@ ++++++++ } else { ++++++++ rtn_stat = 0; /* no changer found */ ++++++++ } ++++++++- unlock_changer(dcr); ++++++++ free_pool_memory(changer); ++++++++ return rtn_stat; ++++++++ ++++++++Index: src/tray-monitor/tray-monitor.c ++++++++=================================================================== ++++++++RCS file: /cvsroot/bacula/bacula/src/tray-monitor/tray-monitor.c,v ++++++++retrieving revision 1.25.2.1 ++++++++diff -u -r1.25.2.1 tray-monitor.c ++++++++--- src/tray-monitor/tray-monitor.c 1 Oct 2005 10:20:18 -0000 1.25.2.1 +++++++++++ src/tray-monitor/tray-monitor.c 21 Nov 2005 12:53:39 -0000 ++++++++@@ -4,7 +4,7 @@ ++++++++ * ++++++++ * Nicolas Boichat, August MMIV ++++++++ * ++++++++- * Version $Id$ +++++++++ * Version $Id$ ++++++++ */ ++++++++ ++++++++ /* ++++++++@@ -881,7 +881,7 @@ ++++++++ } ++++++++ ++++++++ if (item->D_sock == NULL) { ++++++++- g_slist_append(*list, (void *)_("Cannot connect to daemon.\n")); +++++++++ g_slist_append(*list, g_string_new(_("Cannot connect to daemon.\n"))); ++++++++ changeStatusMessage(item, _("Cannot connect to daemon.")); ++++++++ item->state = error; ++++++++ item->oldstate = error; +++++++Index: patches/patches-1.38.0 +++++++=================================================================== +++++++RCS file: patches/patches-1.38.0 +++++++diff -N patches/patches-1.38.0 +++++++Index: patches/patches-1.38.1 +++++++=================================================================== +++++++RCS file: patches/patches-1.38.1 +++++++diff -N patches/patches-1.38.1 +++++++--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++++++++ patches/patches-1.38.1 21 Nov 2005 13:06:37 -0000 +++++++@@ -0,0 +1,14 @@ ++++++++20Nov05 1.38.1-to-1.38.2.patch ++++++++ This patch fixes the following bugs: ++++++++ ++++++++- Fix crash in tray-monitor when daemon disconnects. Bug #479. ++++++++- Fix bnet-server bug found on OpenBSD. Bug #486 (bug originator ++++++++ says this patch does not fix his problem) ++++++++- Fix cancel failure bug. Bug #481 ++++++++- Fix failure when Pool name has spaces. Bug #487 ++++++++- Fix SD crash in autochanger code. Mutex failure. Bug #488 ++++++++- Fix a couple of free()s in src/filed/acl.c ++++++++- Fix memory overrun in bfile.c in building OS X resource ++++++++ fork filename. Bug #489 ++++++++ ++++++++ +++++++Index: src/version.h +++++++=================================================================== +++++++RCS file: /cvsroot/bacula/bacula/src/version.h,v +++++++retrieving revision 1.554.2.14 +++++++diff -u -r1.554.2.14 version.h +++++++--- src/version.h 14 Nov 2005 14:21:58 -0000 1.554.2.14 ++++++++++ src/version.h 21 Nov 2005 13:06:37 -0000 +++++++@@ -3,9 +3,9 @@ +++++++ */ +++++++ +++++++ #undef VERSION +++++++-#define VERSION "1.38.1" +++++++-#define BDATE "14 November 2005" +++++++-#define LSMDATE "14Nov05" ++++++++#define VERSION "1.38.2" ++++++++#define BDATE "20 November 2005" ++++++++#define LSMDATE "20Nov05" +++++++ +++++++ /* Debug flags */ +++++++ #undef DEBUG +++++++Index: src/dird/catreq.c +++++++=================================================================== +++++++RCS file: /cvsroot/bacula/bacula/src/dird/catreq.c,v +++++++retrieving revision 1.77.2.1 +++++++diff -u -r1.77.2.1 catreq.c +++++++--- src/dird/catreq.c 26 Oct 2005 14:02:04 -0000 1.77.2.1 ++++++++++ src/dird/catreq.c 21 Nov 2005 13:06:37 -0000 +++++++@@ -10,7 +10,7 @@ +++++++ * Basic tasks done here: +++++++ * Handle Catalog services. +++++++ * +++++++- * Version $Id$ ++++++++ * Version $Id$ +++++++ */ +++++++ /* +++++++ Copyright (C) 2001-2005 Kern Sibbald +++++++@@ -117,6 +117,7 @@ +++++++ if (sscanf(bs->msg, Find_media, &Job, &index, &pool_name, &mr.MediaType) == 4) { +++++++ memset(&pr, 0, sizeof(pr)); +++++++ bstrncpy(pr.Name, pool_name, sizeof(pr.Name)); ++++++++ unbash_spaces(pr.Name); +++++++ ok = db_get_pool_record(jcr, jcr->db, &pr); +++++++ if (ok) { +++++++ mr.PoolId = pr.PoolId; +++++++Index: src/dird/ua_restore.c +++++++=================================================================== +++++++RCS file: /cvsroot/bacula/bacula/src/dird/ua_restore.c,v +++++++retrieving revision 1.101.2.1 +++++++diff -u -r1.101.2.1 ua_restore.c +++++++--- src/dird/ua_restore.c 26 Oct 2005 14:02:04 -0000 1.101.2.1 ++++++++++ src/dird/ua_restore.c 21 Nov 2005 13:06:37 -0000 +++++++@@ -10,7 +10,7 @@ +++++++ * +++++++ * Kern Sibbald, July MMII +++++++ * +++++++- * Version $Id$ ++++++++ * Version $Id$ +++++++ */ +++++++ /* +++++++ Copyright (C) 2002-2005 Kern Sibbald +++++++@@ -573,6 +573,7 @@ +++++++ } +++++++ return 2; +++++++ ++++++++ case -2: /* Period entered to cancel */ +++++++ case 11: /* Cancel or quit */ +++++++ return 0; +++++++ } +++++++Index: src/dird/ua_run.c +++++++=================================================================== +++++++RCS file: /cvsroot/bacula/bacula/src/dird/ua_run.c,v +++++++retrieving revision 1.71 +++++++diff -u -r1.71 ua_run.c +++++++--- src/dird/ua_run.c 10 Aug 2005 16:35:19 -0000 1.71 ++++++++++ src/dird/ua_run.c 21 Nov 2005 13:06:38 -0000 +++++++@@ -851,6 +851,8 @@ +++++++ bsendmsg(ua, _("You must set the bootstrap file to NULL to be able to specify a JobId.\n")); +++++++ } +++++++ goto try_again; ++++++++ case -1: /* error or cancel */ ++++++++ goto bail_out; +++++++ default: +++++++ goto try_again; +++++++ } +++++++Index: src/dird/ua_select.c +++++++=================================================================== +++++++RCS file: /cvsroot/bacula/bacula/src/dird/ua_select.c,v +++++++retrieving revision 1.65.2.1 +++++++diff -u -r1.65.2.1 ua_select.c +++++++--- src/dird/ua_select.c 12 Nov 2005 17:30:52 -0000 1.65.2.1 ++++++++++ src/dird/ua_select.c 21 Nov 2005 13:06:38 -0000 +++++++@@ -4,7 +4,7 @@ +++++++ * +++++++ * Kern Sibbald, October MMI +++++++ * +++++++- * Version $Id$ ++++++++ * Version $Id$ +++++++ */ +++++++ /* +++++++ Copyright (C) 2001-2005 Kern Sibbald +++++++@@ -149,7 +149,9 @@ +++++++ } +++++++ } +++++++ UnlockRes(); +++++++- do_prompt(ua, _("Storage"), _("Select Storage resource"), name, sizeof(name)); ++++++++ if (do_prompt(ua, _("Storage"), _("Select Storage resource"), name, sizeof(name)) < 0) { ++++++++ return NULL; ++++++++ } +++++++ store = (STORE *)GetResWithName(R_STORAGE, name); +++++++ return store; +++++++ } +++++++@@ -170,7 +172,9 @@ +++++++ } +++++++ } +++++++ UnlockRes(); +++++++- do_prompt(ua, _("FileSet"), _("Select FileSet resource"), name, sizeof(name)); ++++++++ if (do_prompt(ua, _("FileSet"), _("Select FileSet resource"), name, sizeof(name)) < 0) { ++++++++ return NULL; ++++++++ } +++++++ fs = (FILESET *)GetResWithName(R_FILESET, name); +++++++ return fs; +++++++ } +++++++@@ -202,7 +206,9 @@ +++++++ } +++++++ } +++++++ UnlockRes(); +++++++- do_prompt(ua, _("Catalog"), _("Select Catalog resource"), name, sizeof(name)); ++++++++ if (do_prompt(ua, _("Catalog"), _("Select Catalog resource"), name, sizeof(name)) < 0) { ++++++++ return NULL; ++++++++ } +++++++ catalog = (CAT *)GetResWithName(R_CATALOG, name); +++++++ } +++++++ return catalog; +++++++@@ -225,7 +231,9 @@ +++++++ } +++++++ } +++++++ UnlockRes(); +++++++- do_prompt(ua, _("Job"), _("Select Job resource"), name, sizeof(name)); ++++++++ if (do_prompt(ua, _("Job"), _("Select Job resource"), name, sizeof(name)) < 0) { ++++++++ return NULL; ++++++++ } +++++++ job = (JOB *)GetResWithName(R_JOB, name); +++++++ return job; +++++++ } +++++++@@ -246,7 +254,9 @@ +++++++ } +++++++ } +++++++ UnlockRes(); +++++++- do_prompt(ua, _("Job"), _("Select Restore Job"), name, sizeof(name)); ++++++++ if (do_prompt(ua, _("Job"), _("Select Restore Job"), name, sizeof(name)) < 0) { ++++++++ return NULL; ++++++++ } +++++++ job = (JOB *)GetResWithName(R_JOB, name); +++++++ return job; +++++++ } +++++++@@ -269,7 +279,9 @@ +++++++ } +++++++ } +++++++ UnlockRes(); +++++++- do_prompt(ua, _("Client"), _("Select Client (File daemon) resource"), name, sizeof(name)); ++++++++ if (do_prompt(ua, _("Client"), _("Select Client (File daemon) resource"), name, sizeof(name)) < 0) { ++++++++ return NULL; ++++++++ } +++++++ client = (CLIENT *)GetResWithName(R_CLIENT, name); +++++++ return client; +++++++ } +++++++@@ -551,7 +563,9 @@ +++++++ } +++++++ } +++++++ UnlockRes(); +++++++- do_prompt(ua, _("Pool"), _("Select Pool resource"), name, sizeof(name)); ++++++++ if (do_prompt(ua, _("Pool"), _("Select Pool resource"), name, sizeof(name)) < 0) { ++++++++ return NULL; ++++++++ } +++++++ pool = (POOL *)GetResWithName(R_POOL, name); +++++++ return pool; +++++++ } +++++++@@ -673,12 +687,16 @@ +++++++ * Returns: -1 on error +++++++ * index base 0 on success, and choice +++++++ * is copied to prompt if not NULL ++++++++ * prompt is set to the chosen prompt item string +++++++ */ +++++++ int do_prompt(UAContext *ua, const char *automsg, const char *msg, char *prompt, int max_prompt) +++++++ { +++++++ int i, item; +++++++ char pmsg[MAXSTRING]; +++++++ ++++++++ if (prompt) { ++++++++ *prompt = 0; ++++++++ } +++++++ if (ua->num_prompts == 2) { +++++++ item = 1; +++++++ if (prompt) { +++++++@@ -698,15 +716,11 @@ +++++++ bsendmsg(ua, "%6d: %s\n", i, ua->prompt[i]); +++++++ } +++++++ +++++++- if (prompt) { +++++++- *prompt = 0; +++++++- } +++++++- +++++++ for ( ;; ) { +++++++ /* First item is the prompt string, not the items */ +++++++ if (ua->num_prompts == 1) { +++++++ bsendmsg(ua, _("Selection is empty!\n")); +++++++- item = 0; /* list is empty ! */ ++++++++ item = -1; /* list is empty ! */ +++++++ break; +++++++ } +++++++ if (ua->num_prompts == 2) { +++++++@@ -741,7 +755,7 @@ +++++++ free(ua->prompt[i]); +++++++ } +++++++ ua->num_prompts = 0; +++++++- return item - 1; ++++++++ return item>0 ? item-1 : item; +++++++ } +++++++ +++++++ +++++++Index: src/dird/ua_update.c +++++++=================================================================== +++++++RCS file: /cvsroot/bacula/bacula/src/dird/ua_update.c,v +++++++retrieving revision 1.7 +++++++diff -u -r1.7 ua_update.c +++++++--- src/dird/ua_update.c 28 Aug 2005 12:22:02 -0000 1.7 ++++++++++ src/dird/ua_update.c 21 Nov 2005 13:06:38 -0000 +++++++@@ -590,7 +590,7 @@ +++++++ update_all_vols_from_pool(ua); +++++++ return 1; +++++++ default: /* Done or error */ +++++++- bsendmsg(ua, _("Selection done.\n")); ++++++++ bsendmsg(ua, _("Selection terminated.\n")); +++++++ return 1; +++++++ } +++++++ } +++++++Index: src/filed/acl.c +++++++=================================================================== +++++++RCS file: /cvsroot/bacula/bacula/src/filed/acl.c,v +++++++retrieving revision 1.10.2.1 +++++++diff -u -r1.10.2.1 acl.c +++++++--- src/filed/acl.c 14 Nov 2005 20:20:38 -0000 1.10.2.1 ++++++++++ src/filed/acl.c 21 Nov 2005 13:06:38 -0000 +++++++@@ -26,7 +26,7 @@ +++++++ * +++++++ * Written by Preben 'Peppe' Guldberg, December MMIV +++++++ * +++++++- * Version $Id$ ++++++++ * Version $Id$ +++++++ */ +++++++ /* +++++++ Copyright (C) 2004-2005 Kern Sibbald +++++++@@ -140,7 +140,7 @@ +++++++ +++++++ if ((acl_text = acl_get(jcr->last_fname)) != NULL) { +++++++ len = pm_strcpy(jcr->acl_text, acl_text); +++++++- free(acl_text); ++++++++ actuallyfree(acl_text); +++++++ return len; +++++++ } +++++++ return -1; +++++++@@ -270,7 +270,7 @@ +++++++ if ((n = getacl(jcr->last_fname, n, acls)) > 0) { +++++++ if ((acl_text = acltostr(n, acls, FORM_SHORT)) != NULL) { +++++++ len = pm_strcpy(jcr->acl_text, acl_text); +++++++- free(acl_text); ++++++++ actuallyfree(acl_text); +++++++ return len; +++++++ } +++++++ } +++++++Index: src/findlib/bfile.c +++++++=================================================================== +++++++RCS file: /cvsroot/bacula/bacula/src/findlib/bfile.c,v +++++++retrieving revision 1.40 +++++++diff -u -r1.40 bfile.c +++++++--- src/findlib/bfile.c 10 Aug 2005 16:35:19 -0000 1.40 ++++++++++ src/findlib/bfile.c 21 Nov 2005 13:06:38 -0000 +++++++@@ -623,13 +623,10 @@ +++++++ int bopen_rsrc(BFILE *bfd, const char *fname, int flags, mode_t mode) +++++++ { +++++++ POOLMEM *rsrc_fname; +++++++- size_t fname_len; +++++++ +++++++- fname_len = strlen(fname); +++++++ rsrc_fname = get_pool_memory(PM_FNAME); +++++++- bstrncpy(rsrc_fname, fname, fname_len + 1); +++++++- bstrncpy(rsrc_fname + fname_len, _PATH_RSRCFORKSPEC, +++++++- strlen(_PATH_RSRCFORKSPEC) + 1); ++++++++ pm_strcpy(rsrc_fname, fname); ++++++++ pm_strcat(rsrc_fname, _PATH_RSRCFORKSPEC); +++++++ bopen(bfd, rsrc_fname, flags, mode); +++++++ free_pool_memory(rsrc_fname); +++++++ return bfd->fid; +++++++Index: src/lib/bnet_server.c +++++++=================================================================== +++++++RCS file: /cvsroot/bacula/bacula/src/lib/bnet_server.c,v +++++++retrieving revision 1.39 +++++++diff -u -r1.39 bnet_server.c +++++++--- src/lib/bnet_server.c 18 Aug 2005 15:37:40 -0000 1.39 ++++++++++ src/lib/bnet_server.c 21 Nov 2005 13:06:38 -0000 +++++++@@ -153,7 +153,6 @@ +++++++ /* Error, get out */ +++++++ foreach_dlist(fd_ptr, &sockfds) { +++++++ close(fd_ptr->fd); +++++++- free((void *)fd_ptr); +++++++ } +++++++ Emsg1(M_FATAL, 0, _("Error in select: %s\n"), be.strerror()); +++++++ break; +++++++Index: src/stored/autochanger.c +++++++=================================================================== +++++++RCS file: /cvsroot/bacula/bacula/src/stored/autochanger.c,v +++++++retrieving revision 1.47.2.3 +++++++diff -u -r1.47.2.3 autochanger.c +++++++--- src/stored/autochanger.c 12 Nov 2005 17:30:53 -0000 1.47.2.3 ++++++++++ src/stored/autochanger.c 21 Nov 2005 13:06:38 -0000 +++++++@@ -4,7 +4,7 @@ +++++++ * +++++++ * Kern Sibbald, August MMII +++++++ * +++++++- * Version $Id$ ++++++++ * Version $Id$ +++++++ */ +++++++ /* +++++++ Copyright (C) 2002-2005 Kern Sibbald +++++++@@ -163,6 +163,7 @@ +++++++ rtn_stat = -1; /* hard error */ +++++++ } +++++++ Dmsg2(400, "load slot %d status=%d\n", slot, status); ++++++++ unlock_changer(dcr); +++++++ } else { +++++++ status = 0; /* we got what we want */ +++++++ dev->Slot = slot; /* set currently loaded slot */ +++++++@@ -174,7 +175,6 @@ +++++++ } else { +++++++ rtn_stat = 0; /* no changer found */ +++++++ } +++++++- unlock_changer(dcr); +++++++ free_pool_memory(changer); +++++++ return rtn_stat; +++++++ +++++++Index: src/stored/status.c +++++++=================================================================== +++++++RCS file: /cvsroot/bacula/bacula/src/stored/status.c,v +++++++retrieving revision 1.44.2.1 +++++++diff -u -r1.44.2.1 status.c +++++++--- src/stored/status.c 6 Oct 2005 07:04:13 -0000 1.44.2.1 ++++++++++ src/stored/status.c 21 Nov 2005 13:06:39 -0000 +++++++@@ -264,6 +264,7 @@ +++++++ bool found = false; +++++++ int bps, sec; +++++++ JCR *jcr; ++++++++ DCR *dcr; +++++++ char JobName[MAX_NAME_LENGTH]; +++++++ char b1[30], b2[30], b3[30]; +++++++ +++++++@@ -273,7 +274,8 @@ +++++++ bnet_fsend(user, _("%s Job %s waiting for Client connection.\n"), +++++++ job_type_to_str(jcr->JobType), jcr->Job); +++++++ } +++++++- if (jcr->dcr && jcr->dcr->device) { ++++++++ dcr = jcr->dcr; ++++++++ if (dcr && dcr->device) { +++++++ bstrncpy(JobName, jcr->Job, sizeof(JobName)); +++++++ /* There are three periods after the Job name */ +++++++ char *p; +++++++@@ -282,13 +284,16 @@ +++++++ *p = 0; +++++++ } +++++++ } +++++++- bnet_fsend(user, _("%s %s job %s JobId=%d Volume=\"%s\" device=\"%s\"\n"), ++++++++ bnet_fsend(user, _("%s %s job %s JobId=%d Volume=\"%s\"\n" ++++++++ " pool=\"%s\" device=\"%s\"\n"), +++++++ job_level_to_str(jcr->JobLevel), +++++++ job_type_to_str(jcr->JobType), +++++++ JobName, +++++++ jcr->JobId, +++++++- jcr->dcr->VolumeName, +++++++- jcr->dcr->device->device_name); ++++++++ dcr->VolumeName, ++++++++ dcr->pool_name, ++++++++ dcr->dev?dcr->dev->print_name(): ++++++++ dcr->device->device_name); +++++++ sec = time(NULL) - jcr->run_time; +++++++ if (sec <= 0) { +++++++ sec = 1; +++++++Index: src/stored/stored_conf.c +++++++=================================================================== +++++++RCS file: /cvsroot/bacula/bacula/src/stored/stored_conf.c,v +++++++retrieving revision 1.76 +++++++diff -u -r1.76 stored_conf.c +++++++--- src/stored/stored_conf.c 9 Sep 2005 09:40:04 -0000 1.76 ++++++++++ src/stored/stored_conf.c 21 Nov 2005 13:06:39 -0000 +++++++@@ -222,16 +222,16 @@ +++++++ res->res_dev.hdr.name, +++++++ res->res_dev.media_type, res->res_dev.device_name, +++++++ res->res_dev.label_type); +++++++- sendit(sock, " rew_wait=%d min_bs=%d max_bs=%d\n", ++++++++ sendit(sock, " rew_wait=%d min_bs=%d max_bs=%d chgr_wait=%d\n", +++++++ res->res_dev.max_rewind_wait, res->res_dev.min_block_size, +++++++- res->res_dev.max_block_size); ++++++++ res->res_dev.max_block_size, res->res_dev.max_changer_wait); +++++++ sendit(sock, " max_jobs=%d max_files=%" lld " max_size=%" lld "\n", +++++++ res->res_dev.max_volume_jobs, res->res_dev.max_volume_files, +++++++ res->res_dev.max_volume_size); +++++++ sendit(sock, " max_file_size=%" lld " capacity=%" lld "\n", +++++++ res->res_dev.max_file_size, res->res_dev.volume_capacity); +++++++- sendit(sock, " spool_directory=%s\n", NPRT(res->res_dev.spool_directory)); +++++++- sendit(sock, " max_spool_size=%" lld " max_job_spool_size=%" lld "\n", ++++++++ sendit(sock, " spool_directory=%s\n", NPRT(res->res_dev.spool_directory)); ++++++++ sendit(sock, " max_spool_size=%" lld " max_job_spool_size=%" lld "\n", +++++++ res->res_dev.max_spool_size, res->res_dev.max_job_spool_size); +++++++ if (res->res_dev.changer_res) { +++++++ sendit(sock, " changer=%p\n", res->res_dev.changer_res); +++++++Index: src/tray-monitor/tray-monitor.c +++++++=================================================================== +++++++RCS file: /cvsroot/bacula/bacula/src/tray-monitor/tray-monitor.c,v +++++++retrieving revision 1.25.2.1 +++++++diff -u -r1.25.2.1 tray-monitor.c +++++++--- src/tray-monitor/tray-monitor.c 1 Oct 2005 10:20:18 -0000 1.25.2.1 ++++++++++ src/tray-monitor/tray-monitor.c 21 Nov 2005 13:06:39 -0000 +++++++@@ -4,7 +4,7 @@ +++++++ * +++++++ * Nicolas Boichat, August MMIV +++++++ * +++++++- * Version $Id$ ++++++++ * Version $Id$ +++++++ */ +++++++ +++++++ /* +++++++@@ -881,7 +881,7 @@ +++++++ } +++++++ +++++++ if (item->D_sock == NULL) { +++++++- g_slist_append(*list, (void *)_("Cannot connect to daemon.\n")); ++++++++ g_slist_append(*list, g_string_new(_("Cannot connect to daemon.\n"))); +++++++ changeStatusMessage(item, _("Cannot connect to daemon.")); +++++++ item->state = error; +++++++ item->oldstate = error; ++++++Index: patches/patches-1.38.0 ++++++=================================================================== ++++++RCS file: patches/patches-1.38.0 ++++++diff -N patches/patches-1.38.0 ++++++Index: patches/patches-1.38.1 ++++++=================================================================== ++++++RCS file: patches/patches-1.38.1 ++++++diff -N patches/patches-1.38.1 ++++++--- /dev/null 1 Jan 1970 00:00:00 -0000 +++++++++ patches/patches-1.38.1 21 Nov 2005 13:13:01 -0000 ++++++@@ -0,0 +1,14 @@ +++++++20Nov05 1.38.1-to-1.38.2.patch +++++++ This patch fixes the following bugs: +++++++ +++++++- Fix crash in tray-monitor when daemon disconnects. Bug #479. +++++++- Fix bnet-server bug found on OpenBSD. Bug #486 (bug originator +++++++ says this patch does not fix his problem) +++++++- Fix cancel failure bug. Bug #481 +++++++- Fix failure when Pool name has spaces. Bug #487 +++++++- Fix SD crash in autochanger code. Mutex failure. Bug #488 +++++++- Fix a couple of free()s in src/filed/acl.c +++++++- Fix memory overrun in bfile.c in building OS X resource +++++++ fork filename. Bug #489 +++++++ +++++++ ++++++Index: src/version.h ++++++=================================================================== ++++++RCS file: /cvsroot/bacula/bacula/src/version.h,v ++++++retrieving revision 1.554.2.14 ++++++diff -u -r1.554.2.14 version.h ++++++--- src/version.h 14 Nov 2005 14:21:58 -0000 1.554.2.14 +++++++++ src/version.h 21 Nov 2005 13:13:01 -0000 ++++++@@ -3,9 +3,9 @@ ++++++ */ ++++++ ++++++ #undef VERSION ++++++-#define VERSION "1.38.1" ++++++-#define BDATE "14 November 2005" ++++++-#define LSMDATE "14Nov05" +++++++#define VERSION "1.38.2" +++++++#define BDATE "20 November 2005" +++++++#define LSMDATE "20Nov05" ++++++ ++++++ /* Debug flags */ ++++++ #undef DEBUG ++++++Index: src/dird/catreq.c ++++++=================================================================== ++++++RCS file: /cvsroot/bacula/bacula/src/dird/catreq.c,v ++++++retrieving revision 1.77.2.1 ++++++diff -u -r1.77.2.1 catreq.c ++++++--- src/dird/catreq.c 26 Oct 2005 14:02:04 -0000 1.77.2.1 +++++++++ src/dird/catreq.c 21 Nov 2005 13:13:01 -0000 ++++++@@ -10,7 +10,7 @@ ++++++ * Basic tasks done here: ++++++ * Handle Catalog services. ++++++ * ++++++- * Version $Id$ +++++++ * Version $Id$ ++++++ */ ++++++ /* ++++++ Copyright (C) 2001-2005 Kern Sibbald ++++++@@ -117,6 +117,7 @@ ++++++ if (sscanf(bs->msg, Find_media, &Job, &index, &pool_name, &mr.MediaType) == 4) { ++++++ memset(&pr, 0, sizeof(pr)); ++++++ bstrncpy(pr.Name, pool_name, sizeof(pr.Name)); +++++++ unbash_spaces(pr.Name); ++++++ ok = db_get_pool_record(jcr, jcr->db, &pr); ++++++ if (ok) { ++++++ mr.PoolId = pr.PoolId; ++++++Index: src/dird/ua_restore.c ++++++=================================================================== ++++++RCS file: /cvsroot/bacula/bacula/src/dird/ua_restore.c,v ++++++retrieving revision 1.101.2.1 ++++++diff -u -r1.101.2.1 ua_restore.c ++++++--- src/dird/ua_restore.c 26 Oct 2005 14:02:04 -0000 1.101.2.1 +++++++++ src/dird/ua_restore.c 21 Nov 2005 13:13:01 -0000 ++++++@@ -10,7 +10,7 @@ ++++++ * ++++++ * Kern Sibbald, July MMII ++++++ * ++++++- * Version $Id$ +++++++ * Version $Id$ ++++++ */ ++++++ /* ++++++ Copyright (C) 2002-2005 Kern Sibbald ++++++@@ -409,7 +409,7 @@ ++++++ } ++++++ done = true; ++++++ switch (do_prompt(ua, "", _("Select item: "), NULL, 0)) { ++++++- case -1: /* error */ +++++++ case -1: /* error or cancel */ ++++++ return 0; ++++++ case 0: /* list last 20 Jobs run */ ++++++ gui_save = ua->jcr->gui; ++++++Index: src/dird/ua_run.c ++++++=================================================================== ++++++RCS file: /cvsroot/bacula/bacula/src/dird/ua_run.c,v ++++++retrieving revision 1.71 ++++++diff -u -r1.71 ua_run.c ++++++--- src/dird/ua_run.c 10 Aug 2005 16:35:19 -0000 1.71 +++++++++ src/dird/ua_run.c 21 Nov 2005 13:13:02 -0000 ++++++@@ -851,6 +851,8 @@ ++++++ bsendmsg(ua, _("You must set the bootstrap file to NULL to be able to specify a JobId.\n")); ++++++ } ++++++ goto try_again; +++++++ case -1: /* error or cancel */ +++++++ goto bail_out; ++++++ default: ++++++ goto try_again; ++++++ } ++++++Index: src/dird/ua_select.c ++++++=================================================================== ++++++RCS file: /cvsroot/bacula/bacula/src/dird/ua_select.c,v ++++++retrieving revision 1.65.2.1 ++++++diff -u -r1.65.2.1 ua_select.c ++++++--- src/dird/ua_select.c 12 Nov 2005 17:30:52 -0000 1.65.2.1 +++++++++ src/dird/ua_select.c 21 Nov 2005 13:13:02 -0000 ++++++@@ -4,7 +4,7 @@ ++++++ * ++++++ * Kern Sibbald, October MMI ++++++ * ++++++- * Version $Id$ +++++++ * Version $Id$ ++++++ */ ++++++ /* ++++++ Copyright (C) 2001-2005 Kern Sibbald ++++++@@ -149,7 +149,9 @@ ++++++ } ++++++ } ++++++ UnlockRes(); ++++++- do_prompt(ua, _("Storage"), _("Select Storage resource"), name, sizeof(name)); +++++++ if (do_prompt(ua, _("Storage"), _("Select Storage resource"), name, sizeof(name)) < 0) { +++++++ return NULL; +++++++ } ++++++ store = (STORE *)GetResWithName(R_STORAGE, name); ++++++ return store; ++++++ } ++++++@@ -170,7 +172,9 @@ ++++++ } ++++++ } ++++++ UnlockRes(); ++++++- do_prompt(ua, _("FileSet"), _("Select FileSet resource"), name, sizeof(name)); +++++++ if (do_prompt(ua, _("FileSet"), _("Select FileSet resource"), name, sizeof(name)) < 0) { +++++++ return NULL; +++++++ } ++++++ fs = (FILESET *)GetResWithName(R_FILESET, name); ++++++ return fs; ++++++ } ++++++@@ -202,7 +206,9 @@ ++++++ } ++++++ } ++++++ UnlockRes(); ++++++- do_prompt(ua, _("Catalog"), _("Select Catalog resource"), name, sizeof(name)); +++++++ if (do_prompt(ua, _("Catalog"), _("Select Catalog resource"), name, sizeof(name)) < 0) { +++++++ return NULL; +++++++ } ++++++ catalog = (CAT *)GetResWithName(R_CATALOG, name); ++++++ } ++++++ return catalog; ++++++@@ -225,7 +231,9 @@ ++++++ } ++++++ } ++++++ UnlockRes(); ++++++- do_prompt(ua, _("Job"), _("Select Job resource"), name, sizeof(name)); +++++++ if (do_prompt(ua, _("Job"), _("Select Job resource"), name, sizeof(name)) < 0) { +++++++ return NULL; +++++++ } ++++++ job = (JOB *)GetResWithName(R_JOB, name); ++++++ return job; ++++++ } ++++++@@ -246,7 +254,9 @@ ++++++ } ++++++ } ++++++ UnlockRes(); ++++++- do_prompt(ua, _("Job"), _("Select Restore Job"), name, sizeof(name)); +++++++ if (do_prompt(ua, _("Job"), _("Select Restore Job"), name, sizeof(name)) < 0) { +++++++ return NULL; +++++++ } ++++++ job = (JOB *)GetResWithName(R_JOB, name); ++++++ return job; ++++++ } ++++++@@ -269,7 +279,9 @@ ++++++ } ++++++ } ++++++ UnlockRes(); ++++++- do_prompt(ua, _("Client"), _("Select Client (File daemon) resource"), name, sizeof(name)); +++++++ if (do_prompt(ua, _("Client"), _("Select Client (File daemon) resource"), name, sizeof(name)) < 0) { +++++++ return NULL; +++++++ } ++++++ client = (CLIENT *)GetResWithName(R_CLIENT, name); ++++++ return client; ++++++ } ++++++@@ -551,7 +563,9 @@ ++++++ } ++++++ } ++++++ UnlockRes(); ++++++- do_prompt(ua, _("Pool"), _("Select Pool resource"), name, sizeof(name)); +++++++ if (do_prompt(ua, _("Pool"), _("Select Pool resource"), name, sizeof(name)) < 0) { +++++++ return NULL; +++++++ } ++++++ pool = (POOL *)GetResWithName(R_POOL, name); ++++++ return pool; ++++++ } ++++++@@ -673,12 +687,16 @@ ++++++ * Returns: -1 on error ++++++ * index base 0 on success, and choice ++++++ * is copied to prompt if not NULL +++++++ * prompt is set to the chosen prompt item string ++++++ */ ++++++ int do_prompt(UAContext *ua, const char *automsg, const char *msg, char *prompt, int max_prompt) ++++++ { ++++++ int i, item; ++++++ char pmsg[MAXSTRING]; ++++++ +++++++ if (prompt) { +++++++ *prompt = 0; +++++++ } ++++++ if (ua->num_prompts == 2) { ++++++ item = 1; ++++++ if (prompt) { ++++++@@ -698,15 +716,11 @@ ++++++ bsendmsg(ua, "%6d: %s\n", i, ua->prompt[i]); ++++++ } ++++++ ++++++- if (prompt) { ++++++- *prompt = 0; ++++++- } ++++++- ++++++ for ( ;; ) { ++++++ /* First item is the prompt string, not the items */ ++++++ if (ua->num_prompts == 1) { ++++++ bsendmsg(ua, _("Selection is empty!\n")); ++++++- item = 0; /* list is empty ! */ +++++++ item = -1; /* list is empty ! */ ++++++ break; ++++++ } ++++++ if (ua->num_prompts == 2) { ++++++@@ -741,7 +755,7 @@ ++++++ free(ua->prompt[i]); ++++++ } ++++++ ua->num_prompts = 0; ++++++- return item - 1; +++++++ return item>0 ? item-1 : item; ++++++ } ++++++ ++++++ ++++++Index: src/dird/ua_update.c ++++++=================================================================== ++++++RCS file: /cvsroot/bacula/bacula/src/dird/ua_update.c,v ++++++retrieving revision 1.7 ++++++diff -u -r1.7 ua_update.c ++++++--- src/dird/ua_update.c 28 Aug 2005 12:22:02 -0000 1.7 +++++++++ src/dird/ua_update.c 21 Nov 2005 13:13:02 -0000 ++++++@@ -590,7 +590,7 @@ ++++++ update_all_vols_from_pool(ua); ++++++ return 1; ++++++ default: /* Done or error */ ++++++- bsendmsg(ua, _("Selection done.\n")); +++++++ bsendmsg(ua, _("Selection terminated.\n")); ++++++ return 1; ++++++ } ++++++ } ++++++Index: src/filed/acl.c ++++++=================================================================== ++++++RCS file: /cvsroot/bacula/bacula/src/filed/acl.c,v ++++++retrieving revision 1.10.2.1 ++++++diff -u -r1.10.2.1 acl.c ++++++--- src/filed/acl.c 14 Nov 2005 20:20:38 -0000 1.10.2.1 +++++++++ src/filed/acl.c 21 Nov 2005 13:13:02 -0000 ++++++@@ -26,7 +26,7 @@ ++++++ * ++++++ * Written by Preben 'Peppe' Guldberg, December MMIV ++++++ * ++++++- * Version $Id$ +++++++ * Version $Id$ ++++++ */ ++++++ /* ++++++ Copyright (C) 2004-2005 Kern Sibbald ++++++@@ -140,7 +140,7 @@ ++++++ ++++++ if ((acl_text = acl_get(jcr->last_fname)) != NULL) { ++++++ len = pm_strcpy(jcr->acl_text, acl_text); ++++++- free(acl_text); +++++++ actuallyfree(acl_text); ++++++ return len; ++++++ } ++++++ return -1; ++++++@@ -270,7 +270,7 @@ ++++++ if ((n = getacl(jcr->last_fname, n, acls)) > 0) { ++++++ if ((acl_text = acltostr(n, acls, FORM_SHORT)) != NULL) { ++++++ len = pm_strcpy(jcr->acl_text, acl_text); ++++++- free(acl_text); +++++++ actuallyfree(acl_text); ++++++ return len; ++++++ } ++++++ } ++++++Index: src/findlib/bfile.c ++++++=================================================================== ++++++RCS file: /cvsroot/bacula/bacula/src/findlib/bfile.c,v ++++++retrieving revision 1.40 ++++++diff -u -r1.40 bfile.c ++++++--- src/findlib/bfile.c 10 Aug 2005 16:35:19 -0000 1.40 +++++++++ src/findlib/bfile.c 21 Nov 2005 13:13:02 -0000 ++++++@@ -623,13 +623,10 @@ ++++++ int bopen_rsrc(BFILE *bfd, const char *fname, int flags, mode_t mode) ++++++ { ++++++ POOLMEM *rsrc_fname; ++++++- size_t fname_len; ++++++ ++++++- fname_len = strlen(fname); ++++++ rsrc_fname = get_pool_memory(PM_FNAME); ++++++- bstrncpy(rsrc_fname, fname, fname_len + 1); ++++++- bstrncpy(rsrc_fname + fname_len, _PATH_RSRCFORKSPEC, ++++++- strlen(_PATH_RSRCFORKSPEC) + 1); +++++++ pm_strcpy(rsrc_fname, fname); +++++++ pm_strcat(rsrc_fname, _PATH_RSRCFORKSPEC); ++++++ bopen(bfd, rsrc_fname, flags, mode); ++++++ free_pool_memory(rsrc_fname); ++++++ return bfd->fid; ++++++Index: src/lib/bnet_server.c ++++++=================================================================== ++++++RCS file: /cvsroot/bacula/bacula/src/lib/bnet_server.c,v ++++++retrieving revision 1.39 ++++++diff -u -r1.39 bnet_server.c ++++++--- src/lib/bnet_server.c 18 Aug 2005 15:37:40 -0000 1.39 +++++++++ src/lib/bnet_server.c 21 Nov 2005 13:13:03 -0000 ++++++@@ -153,7 +153,6 @@ ++++++ /* Error, get out */ ++++++ foreach_dlist(fd_ptr, &sockfds) { ++++++ close(fd_ptr->fd); ++++++- free((void *)fd_ptr); ++++++ } ++++++ Emsg1(M_FATAL, 0, _("Error in select: %s\n"), be.strerror()); ++++++ break; ++++++Index: src/stored/autochanger.c ++++++=================================================================== ++++++RCS file: /cvsroot/bacula/bacula/src/stored/autochanger.c,v ++++++retrieving revision 1.47.2.3 ++++++diff -u -r1.47.2.3 autochanger.c ++++++--- src/stored/autochanger.c 12 Nov 2005 17:30:53 -0000 1.47.2.3 +++++++++ src/stored/autochanger.c 21 Nov 2005 13:13:03 -0000 ++++++@@ -4,7 +4,7 @@ ++++++ * ++++++ * Kern Sibbald, August MMII ++++++ * ++++++- * Version $Id$ +++++++ * Version $Id$ ++++++ */ ++++++ /* ++++++ Copyright (C) 2002-2005 Kern Sibbald ++++++@@ -163,6 +163,7 @@ ++++++ rtn_stat = -1; /* hard error */ ++++++ } ++++++ Dmsg2(400, "load slot %d status=%d\n", slot, status); +++++++ unlock_changer(dcr); ++++++ } else { ++++++ status = 0; /* we got what we want */ ++++++ dev->Slot = slot; /* set currently loaded slot */ ++++++@@ -174,7 +175,6 @@ ++++++ } else { ++++++ rtn_stat = 0; /* no changer found */ ++++++ } ++++++- unlock_changer(dcr); ++++++ free_pool_memory(changer); ++++++ return rtn_stat; ++++++ ++++++Index: src/stored/status.c ++++++=================================================================== ++++++RCS file: /cvsroot/bacula/bacula/src/stored/status.c,v ++++++retrieving revision 1.44.2.1 ++++++diff -u -r1.44.2.1 status.c ++++++--- src/stored/status.c 6 Oct 2005 07:04:13 -0000 1.44.2.1 +++++++++ src/stored/status.c 21 Nov 2005 13:13:03 -0000 ++++++@@ -264,6 +264,7 @@ ++++++ bool found = false; ++++++ int bps, sec; ++++++ JCR *jcr; +++++++ DCR *dcr; ++++++ char JobName[MAX_NAME_LENGTH]; ++++++ char b1[30], b2[30], b3[30]; ++++++ ++++++@@ -273,7 +274,8 @@ ++++++ bnet_fsend(user, _("%s Job %s waiting for Client connection.\n"), ++++++ job_type_to_str(jcr->JobType), jcr->Job); ++++++ } ++++++- if (jcr->dcr && jcr->dcr->device) { +++++++ dcr = jcr->dcr; +++++++ if (dcr && dcr->device) { ++++++ bstrncpy(JobName, jcr->Job, sizeof(JobName)); ++++++ /* There are three periods after the Job name */ ++++++ char *p; ++++++@@ -282,13 +284,16 @@ ++++++ *p = 0; ++++++ } ++++++ } ++++++- bnet_fsend(user, _("%s %s job %s JobId=%d Volume=\"%s\" device=\"%s\"\n"), +++++++ bnet_fsend(user, _("%s %s job %s JobId=%d Volume=\"%s\"\n" +++++++ " pool=\"%s\" device=\"%s\"\n"), ++++++ job_level_to_str(jcr->JobLevel), ++++++ job_type_to_str(jcr->JobType), ++++++ JobName, ++++++ jcr->JobId, ++++++- jcr->dcr->VolumeName, ++++++- jcr->dcr->device->device_name); +++++++ dcr->VolumeName, +++++++ dcr->pool_name, +++++++ dcr->dev?dcr->dev->print_name(): +++++++ dcr->device->device_name); ++++++ sec = time(NULL) - jcr->run_time; ++++++ if (sec <= 0) { ++++++ sec = 1; ++++++Index: src/stored/stored_conf.c ++++++=================================================================== ++++++RCS file: /cvsroot/bacula/bacula/src/stored/stored_conf.c,v ++++++retrieving revision 1.76 ++++++diff -u -r1.76 stored_conf.c ++++++--- src/stored/stored_conf.c 9 Sep 2005 09:40:04 -0000 1.76 +++++++++ src/stored/stored_conf.c 21 Nov 2005 13:13:04 -0000 ++++++@@ -222,16 +222,16 @@ ++++++ res->res_dev.hdr.name, ++++++ res->res_dev.media_type, res->res_dev.device_name, ++++++ res->res_dev.label_type); ++++++- sendit(sock, " rew_wait=%d min_bs=%d max_bs=%d\n", +++++++ sendit(sock, " rew_wait=%d min_bs=%d max_bs=%d chgr_wait=%d\n", ++++++ res->res_dev.max_rewind_wait, res->res_dev.min_block_size, ++++++- res->res_dev.max_block_size); +++++++ res->res_dev.max_block_size, res->res_dev.max_changer_wait); ++++++ sendit(sock, " max_jobs=%d max_files=%" lld " max_size=%" lld "\n", ++++++ res->res_dev.max_volume_jobs, res->res_dev.max_volume_files, ++++++ res->res_dev.max_volume_size); ++++++ sendit(sock, " max_file_size=%" lld " capacity=%" lld "\n", ++++++ res->res_dev.max_file_size, res->res_dev.volume_capacity); ++++++- sendit(sock, " spool_directory=%s\n", NPRT(res->res_dev.spool_directory)); ++++++- sendit(sock, " max_spool_size=%" lld " max_job_spool_size=%" lld "\n", +++++++ sendit(sock, " spool_directory=%s\n", NPRT(res->res_dev.spool_directory)); +++++++ sendit(sock, " max_spool_size=%" lld " max_job_spool_size=%" lld "\n", ++++++ res->res_dev.max_spool_size, res->res_dev.max_job_spool_size); ++++++ if (res->res_dev.changer_res) { ++++++ sendit(sock, " changer=%p\n", res->res_dev.changer_res); ++++++Index: src/tray-monitor/tray-monitor.c ++++++=================================================================== ++++++RCS file: /cvsroot/bacula/bacula/src/tray-monitor/tray-monitor.c,v ++++++retrieving revision 1.25.2.1 ++++++diff -u -r1.25.2.1 tray-monitor.c ++++++--- src/tray-monitor/tray-monitor.c 1 Oct 2005 10:20:18 -0000 1.25.2.1 +++++++++ src/tray-monitor/tray-monitor.c 21 Nov 2005 13:13:04 -0000 ++++++@@ -4,7 +4,7 @@ ++++++ * ++++++ * Nicolas Boichat, August MMIV ++++++ * ++++++- * Version $Id$ +++++++ * Version $Id$ ++++++ */ ++++++ ++++++ /* ++++++@@ -881,7 +881,7 @@ ++++++ } ++++++ ++++++ if (item->D_sock == NULL) { ++++++- g_slist_append(*list, (void *)_("Cannot connect to daemon.\n")); +++++++ g_slist_append(*list, g_string_new(_("Cannot connect to daemon.\n"))); ++++++ changeStatusMessage(item, _("Cannot connect to daemon.")); ++++++ item->state = error; ++++++ item->oldstate = error; +++++Index: patches/patches-1.38.0 +++++=================================================================== +++++RCS file: patches/patches-1.38.0 +++++diff -N patches/patches-1.38.0 +++++Index: patches/patches-1.38.1 +++++=================================================================== +++++RCS file: patches/patches-1.38.1 +++++diff -N patches/patches-1.38.1 +++++--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++++++ patches/patches-1.38.1 21 Nov 2005 13:17:58 -0000 +++++@@ -0,0 +1,14 @@ ++++++20Nov05 1.38.1-to-1.38.2.patch ++++++ This patch fixes the following bugs: ++++++ ++++++- Fix crash in tray-monitor when daemon disconnects. Bug #479. ++++++- Fix bnet-server bug found on OpenBSD. Bug #486 (bug originator ++++++ says this patch does not fix his problem) ++++++- Fix cancel failure bug. Bug #481 ++++++- Fix failure when Pool name has spaces. Bug #487 ++++++- Fix SD crash in autochanger code. Mutex failure. Bug #488 ++++++- Fix a couple of free()s in src/filed/acl.c ++++++- Fix memory overrun in bfile.c in building OS X resource ++++++ fork filename. Bug #489 ++++++ ++++++ +++++Index: src/version.h +++++=================================================================== +++++RCS file: /cvsroot/bacula/bacula/src/version.h,v +++++retrieving revision 1.554.2.14 +++++diff -u -r1.554.2.14 version.h +++++--- src/version.h 14 Nov 2005 14:21:58 -0000 1.554.2.14 ++++++++ src/version.h 21 Nov 2005 13:17:58 -0000 +++++@@ -3,9 +3,9 @@ +++++ */ +++++ +++++ #undef VERSION +++++-#define VERSION "1.38.1" +++++-#define BDATE "14 November 2005" +++++-#define LSMDATE "14Nov05" ++++++#define VERSION "1.38.2" ++++++#define BDATE "20 November 2005" ++++++#define LSMDATE "20Nov05" +++++ +++++ /* Debug flags */ +++++ #undef DEBUG +++++Index: src/dird/catreq.c +++++=================================================================== +++++RCS file: /cvsroot/bacula/bacula/src/dird/catreq.c,v +++++retrieving revision 1.77.2.1 +++++diff -u -r1.77.2.1 catreq.c +++++--- src/dird/catreq.c 26 Oct 2005 14:02:04 -0000 1.77.2.1 ++++++++ src/dird/catreq.c 21 Nov 2005 13:17:59 -0000 +++++@@ -10,7 +10,7 @@ +++++ * Basic tasks done here: +++++ * Handle Catalog services. +++++ * +++++- * Version $Id$ ++++++ * Version $Id$ +++++ */ +++++ /* +++++ Copyright (C) 2001-2005 Kern Sibbald +++++@@ -117,6 +117,7 @@ +++++ if (sscanf(bs->msg, Find_media, &Job, &index, &pool_name, &mr.MediaType) == 4) { +++++ memset(&pr, 0, sizeof(pr)); +++++ bstrncpy(pr.Name, pool_name, sizeof(pr.Name)); ++++++ unbash_spaces(pr.Name); +++++ ok = db_get_pool_record(jcr, jcr->db, &pr); +++++ if (ok) { +++++ mr.PoolId = pr.PoolId; +++++Index: src/dird/ua_restore.c +++++=================================================================== +++++RCS file: /cvsroot/bacula/bacula/src/dird/ua_restore.c,v +++++retrieving revision 1.101.2.1 +++++diff -u -r1.101.2.1 ua_restore.c +++++--- src/dird/ua_restore.c 26 Oct 2005 14:02:04 -0000 1.101.2.1 ++++++++ src/dird/ua_restore.c 21 Nov 2005 13:17:59 -0000 +++++@@ -10,7 +10,7 @@ +++++ * +++++ * Kern Sibbald, July MMII +++++ * +++++- * Version $Id$ ++++++ * Version $Id$ +++++ */ +++++ /* +++++ Copyright (C) 2002-2005 Kern Sibbald +++++@@ -409,7 +409,7 @@ +++++ } +++++ done = true; +++++ switch (do_prompt(ua, "", _("Select item: "), NULL, 0)) { +++++- case -1: /* error */ ++++++ case -1: /* error or cancel */ +++++ return 0; +++++ case 0: /* list last 20 Jobs run */ +++++ gui_save = ua->jcr->gui; +++++Index: src/dird/ua_run.c +++++=================================================================== +++++RCS file: /cvsroot/bacula/bacula/src/dird/ua_run.c,v +++++retrieving revision 1.71 +++++diff -u -r1.71 ua_run.c +++++--- src/dird/ua_run.c 10 Aug 2005 16:35:19 -0000 1.71 ++++++++ src/dird/ua_run.c 21 Nov 2005 13:17:59 -0000 +++++@@ -851,6 +851,8 @@ +++++ bsendmsg(ua, _("You must set the bootstrap file to NULL to be able to specify a JobId.\n")); +++++ } +++++ goto try_again; ++++++ case -1: /* error or cancel */ ++++++ goto bail_out; +++++ default: +++++ goto try_again; +++++ } +++++Index: src/dird/ua_select.c +++++=================================================================== +++++RCS file: /cvsroot/bacula/bacula/src/dird/ua_select.c,v +++++retrieving revision 1.65.2.1 +++++diff -u -r1.65.2.1 ua_select.c +++++--- src/dird/ua_select.c 12 Nov 2005 17:30:52 -0000 1.65.2.1 ++++++++ src/dird/ua_select.c 21 Nov 2005 13:17:59 -0000 +++++@@ -4,7 +4,7 @@ +++++ * +++++ * Kern Sibbald, October MMI +++++ * +++++- * Version $Id$ ++++++ * Version $Id$ +++++ */ +++++ /* +++++ Copyright (C) 2001-2005 Kern Sibbald +++++@@ -149,7 +149,9 @@ +++++ } +++++ } +++++ UnlockRes(); +++++- do_prompt(ua, _("Storage"), _("Select Storage resource"), name, sizeof(name)); ++++++ if (do_prompt(ua, _("Storage"), _("Select Storage resource"), name, sizeof(name)) < 0) { ++++++ return NULL; ++++++ } +++++ store = (STORE *)GetResWithName(R_STORAGE, name); +++++ return store; +++++ } +++++@@ -170,7 +172,9 @@ +++++ } +++++ } +++++ UnlockRes(); +++++- do_prompt(ua, _("FileSet"), _("Select FileSet resource"), name, sizeof(name)); ++++++ if (do_prompt(ua, _("FileSet"), _("Select FileSet resource"), name, sizeof(name)) < 0) { ++++++ return NULL; ++++++ } +++++ fs = (FILESET *)GetResWithName(R_FILESET, name); +++++ return fs; +++++ } +++++@@ -202,7 +206,9 @@ +++++ } +++++ } +++++ UnlockRes(); +++++- do_prompt(ua, _("Catalog"), _("Select Catalog resource"), name, sizeof(name)); ++++++ if (do_prompt(ua, _("Catalog"), _("Select Catalog resource"), name, sizeof(name)) < 0) { ++++++ return NULL; ++++++ } +++++ catalog = (CAT *)GetResWithName(R_CATALOG, name); +++++ } +++++ return catalog; +++++@@ -225,7 +231,9 @@ +++++ } +++++ } +++++ UnlockRes(); +++++- do_prompt(ua, _("Job"), _("Select Job resource"), name, sizeof(name)); ++++++ if (do_prompt(ua, _("Job"), _("Select Job resource"), name, sizeof(name)) < 0) { ++++++ return NULL; ++++++ } +++++ job = (JOB *)GetResWithName(R_JOB, name); +++++ return job; +++++ } +++++@@ -246,7 +254,9 @@ +++++ } +++++ } +++++ UnlockRes(); +++++- do_prompt(ua, _("Job"), _("Select Restore Job"), name, sizeof(name)); ++++++ if (do_prompt(ua, _("Job"), _("Select Restore Job"), name, sizeof(name)) < 0) { ++++++ return NULL; ++++++ } +++++ job = (JOB *)GetResWithName(R_JOB, name); +++++ return job; +++++ } +++++@@ -269,7 +279,9 @@ +++++ } +++++ } +++++ UnlockRes(); +++++- do_prompt(ua, _("Client"), _("Select Client (File daemon) resource"), name, sizeof(name)); ++++++ if (do_prompt(ua, _("Client"), _("Select Client (File daemon) resource"), name, sizeof(name)) < 0) { ++++++ return NULL; ++++++ } +++++ client = (CLIENT *)GetResWithName(R_CLIENT, name); +++++ return client; +++++ } +++++@@ -551,7 +563,9 @@ +++++ } +++++ } +++++ UnlockRes(); +++++- do_prompt(ua, _("Pool"), _("Select Pool resource"), name, sizeof(name)); ++++++ if (do_prompt(ua, _("Pool"), _("Select Pool resource"), name, sizeof(name)) < 0) { ++++++ return NULL; ++++++ } +++++ pool = (POOL *)GetResWithName(R_POOL, name); +++++ return pool; +++++ } +++++@@ -673,12 +687,16 @@ +++++ * Returns: -1 on error +++++ * index base 0 on success, and choice +++++ * is copied to prompt if not NULL ++++++ * prompt is set to the chosen prompt item string +++++ */ +++++ int do_prompt(UAContext *ua, const char *automsg, const char *msg, char *prompt, int max_prompt) +++++ { +++++ int i, item; +++++ char pmsg[MAXSTRING]; +++++ ++++++ if (prompt) { ++++++ *prompt = 0; ++++++ } +++++ if (ua->num_prompts == 2) { +++++ item = 1; +++++ if (prompt) { +++++@@ -698,15 +716,11 @@ +++++ bsendmsg(ua, "%6d: %s\n", i, ua->prompt[i]); +++++ } +++++ +++++- if (prompt) { +++++- *prompt = 0; +++++- } +++++- +++++ for ( ;; ) { +++++ /* First item is the prompt string, not the items */ +++++ if (ua->num_prompts == 1) { +++++ bsendmsg(ua, _("Selection is empty!\n")); +++++- item = 0; /* list is empty ! */ ++++++ item = -1; /* list is empty ! */ +++++ break; +++++ } +++++ if (ua->num_prompts == 2) { +++++@@ -741,7 +755,7 @@ +++++ free(ua->prompt[i]); +++++ } +++++ ua->num_prompts = 0; +++++- return item - 1; ++++++ return item>0 ? item-1 : item; +++++ } +++++ +++++ +++++Index: src/dird/ua_update.c +++++=================================================================== +++++RCS file: /cvsroot/bacula/bacula/src/dird/ua_update.c,v +++++retrieving revision 1.7 +++++diff -u -r1.7 ua_update.c +++++--- src/dird/ua_update.c 28 Aug 2005 12:22:02 -0000 1.7 ++++++++ src/dird/ua_update.c 21 Nov 2005 13:17:59 -0000 +++++@@ -590,7 +590,7 @@ +++++ update_all_vols_from_pool(ua); +++++ return 1; +++++ default: /* Done or error */ +++++- bsendmsg(ua, _("Selection done.\n")); ++++++ bsendmsg(ua, _("Selection terminated.\n")); +++++ return 1; +++++ } +++++ } +++++Index: src/filed/acl.c +++++=================================================================== +++++RCS file: /cvsroot/bacula/bacula/src/filed/acl.c,v +++++retrieving revision 1.10.2.1 +++++diff -u -r1.10.2.1 acl.c +++++--- src/filed/acl.c 14 Nov 2005 20:20:38 -0000 1.10.2.1 ++++++++ src/filed/acl.c 21 Nov 2005 13:17:59 -0000 +++++@@ -26,7 +26,7 @@ +++++ * +++++ * Written by Preben 'Peppe' Guldberg, December MMIV +++++ * +++++- * Version $Id$ ++++++ * Version $Id$ +++++ */ +++++ /* +++++ Copyright (C) 2004-2005 Kern Sibbald +++++@@ -140,7 +140,7 @@ +++++ +++++ if ((acl_text = acl_get(jcr->last_fname)) != NULL) { +++++ len = pm_strcpy(jcr->acl_text, acl_text); +++++- free(acl_text); ++++++ actuallyfree(acl_text); +++++ return len; +++++ } +++++ return -1; +++++@@ -270,7 +270,7 @@ +++++ if ((n = getacl(jcr->last_fname, n, acls)) > 0) { +++++ if ((acl_text = acltostr(n, acls, FORM_SHORT)) != NULL) { +++++ len = pm_strcpy(jcr->acl_text, acl_text); +++++- free(acl_text); ++++++ actuallyfree(acl_text); +++++ return len; +++++ } +++++ } +++++Index: src/findlib/bfile.c +++++=================================================================== +++++RCS file: /cvsroot/bacula/bacula/src/findlib/bfile.c,v +++++retrieving revision 1.40 +++++diff -u -r1.40 bfile.c +++++--- src/findlib/bfile.c 10 Aug 2005 16:35:19 -0000 1.40 ++++++++ src/findlib/bfile.c 21 Nov 2005 13:17:59 -0000 +++++@@ -623,13 +623,10 @@ +++++ int bopen_rsrc(BFILE *bfd, const char *fname, int flags, mode_t mode) +++++ { +++++ POOLMEM *rsrc_fname; +++++- size_t fname_len; +++++ +++++- fname_len = strlen(fname); +++++ rsrc_fname = get_pool_memory(PM_FNAME); +++++- bstrncpy(rsrc_fname, fname, fname_len + 1); +++++- bstrncpy(rsrc_fname + fname_len, _PATH_RSRCFORKSPEC, +++++- strlen(_PATH_RSRCFORKSPEC) + 1); ++++++ pm_strcpy(rsrc_fname, fname); ++++++ pm_strcat(rsrc_fname, _PATH_RSRCFORKSPEC); +++++ bopen(bfd, rsrc_fname, flags, mode); +++++ free_pool_memory(rsrc_fname); +++++ return bfd->fid; +++++Index: src/lib/bnet_server.c +++++=================================================================== +++++RCS file: /cvsroot/bacula/bacula/src/lib/bnet_server.c,v +++++retrieving revision 1.39 +++++diff -u -r1.39 bnet_server.c +++++--- src/lib/bnet_server.c 18 Aug 2005 15:37:40 -0000 1.39 ++++++++ src/lib/bnet_server.c 21 Nov 2005 13:18:00 -0000 +++++@@ -153,7 +153,6 @@ +++++ /* Error, get out */ +++++ foreach_dlist(fd_ptr, &sockfds) { +++++ close(fd_ptr->fd); +++++- free((void *)fd_ptr); +++++ } +++++ Emsg1(M_FATAL, 0, _("Error in select: %s\n"), be.strerror()); +++++ break; +++++Index: src/stored/autochanger.c +++++=================================================================== +++++RCS file: /cvsroot/bacula/bacula/src/stored/autochanger.c,v +++++retrieving revision 1.47.2.3 +++++diff -u -r1.47.2.3 autochanger.c +++++--- src/stored/autochanger.c 12 Nov 2005 17:30:53 -0000 1.47.2.3 ++++++++ src/stored/autochanger.c 21 Nov 2005 13:18:00 -0000 +++++@@ -4,7 +4,7 @@ +++++ * +++++ * Kern Sibbald, August MMII +++++ * +++++- * Version $Id$ ++++++ * Version $Id$ +++++ */ +++++ /* +++++ Copyright (C) 2002-2005 Kern Sibbald +++++@@ -163,6 +163,7 @@ +++++ rtn_stat = -1; /* hard error */ +++++ } +++++ Dmsg2(400, "load slot %d status=%d\n", slot, status); ++++++ unlock_changer(dcr); +++++ } else { +++++ status = 0; /* we got what we want */ +++++ dev->Slot = slot; /* set currently loaded slot */ +++++@@ -174,7 +175,6 @@ +++++ } else { +++++ rtn_stat = 0; /* no changer found */ +++++ } +++++- unlock_changer(dcr); +++++ free_pool_memory(changer); +++++ return rtn_stat; +++++ +++++Index: src/stored/status.c +++++=================================================================== +++++RCS file: /cvsroot/bacula/bacula/src/stored/status.c,v +++++retrieving revision 1.44.2.1 +++++diff -u -r1.44.2.1 status.c +++++--- src/stored/status.c 6 Oct 2005 07:04:13 -0000 1.44.2.1 ++++++++ src/stored/status.c 21 Nov 2005 13:18:00 -0000 +++++@@ -264,6 +264,7 @@ +++++ bool found = false; +++++ int bps, sec; +++++ JCR *jcr; ++++++ DCR *dcr; +++++ char JobName[MAX_NAME_LENGTH]; +++++ char b1[30], b2[30], b3[30]; +++++ +++++@@ -273,7 +274,8 @@ +++++ bnet_fsend(user, _("%s Job %s waiting for Client connection.\n"), +++++ job_type_to_str(jcr->JobType), jcr->Job); +++++ } +++++- if (jcr->dcr && jcr->dcr->device) { ++++++ dcr = jcr->dcr; ++++++ if (dcr && dcr->device) { +++++ bstrncpy(JobName, jcr->Job, sizeof(JobName)); +++++ /* There are three periods after the Job name */ +++++ char *p; +++++@@ -282,13 +284,16 @@ +++++ *p = 0; +++++ } +++++ } +++++- bnet_fsend(user, _("%s %s job %s JobId=%d Volume=\"%s\" device=\"%s\"\n"), ++++++ bnet_fsend(user, _("%s %s job %s JobId=%d Volume=\"%s\"\n" ++++++ " pool=\"%s\" device=\"%s\"\n"), +++++ job_level_to_str(jcr->JobLevel), +++++ job_type_to_str(jcr->JobType), +++++ JobName, +++++ jcr->JobId, +++++- jcr->dcr->VolumeName, +++++- jcr->dcr->device->device_name); ++++++ dcr->VolumeName, ++++++ dcr->pool_name, ++++++ dcr->dev?dcr->dev->print_name(): ++++++ dcr->device->device_name); +++++ sec = time(NULL) - jcr->run_time; +++++ if (sec <= 0) { +++++ sec = 1; +++++Index: src/stored/stored_conf.c +++++=================================================================== +++++RCS file: /cvsroot/bacula/bacula/src/stored/stored_conf.c,v +++++retrieving revision 1.76 +++++diff -u -r1.76 stored_conf.c +++++--- src/stored/stored_conf.c 9 Sep 2005 09:40:04 -0000 1.76 ++++++++ src/stored/stored_conf.c 21 Nov 2005 13:18:00 -0000 +++++@@ -222,16 +222,16 @@ +++++ res->res_dev.hdr.name, +++++ res->res_dev.media_type, res->res_dev.device_name, +++++ res->res_dev.label_type); +++++- sendit(sock, " rew_wait=%d min_bs=%d max_bs=%d\n", ++++++ sendit(sock, " rew_wait=%d min_bs=%d max_bs=%d chgr_wait=%d\n", +++++ res->res_dev.max_rewind_wait, res->res_dev.min_block_size, +++++- res->res_dev.max_block_size); ++++++ res->res_dev.max_block_size, res->res_dev.max_changer_wait); +++++ sendit(sock, " max_jobs=%d max_files=%" lld " max_size=%" lld "\n", +++++ res->res_dev.max_volume_jobs, res->res_dev.max_volume_files, +++++ res->res_dev.max_volume_size); +++++ sendit(sock, " max_file_size=%" lld " capacity=%" lld "\n", +++++ res->res_dev.max_file_size, res->res_dev.volume_capacity); +++++- sendit(sock, " spool_directory=%s\n", NPRT(res->res_dev.spool_directory)); +++++- sendit(sock, " max_spool_size=%" lld " max_job_spool_size=%" lld "\n", ++++++ sendit(sock, " spool_directory=%s\n", NPRT(res->res_dev.spool_directory)); ++++++ sendit(sock, " max_spool_size=%" lld " max_job_spool_size=%" lld "\n", +++++ res->res_dev.max_spool_size, res->res_dev.max_job_spool_size); +++++ if (res->res_dev.changer_res) { +++++ sendit(sock, " changer=%p\n", res->res_dev.changer_res); +++++Index: src/tray-monitor/tray-monitor.c +++++=================================================================== +++++RCS file: /cvsroot/bacula/bacula/src/tray-monitor/tray-monitor.c,v +++++retrieving revision 1.25.2.1 +++++diff -u -r1.25.2.1 tray-monitor.c +++++--- src/tray-monitor/tray-monitor.c 1 Oct 2005 10:20:18 -0000 1.25.2.1 ++++++++ src/tray-monitor/tray-monitor.c 21 Nov 2005 13:18:00 -0000 +++++@@ -4,7 +4,7 @@ +++++ * +++++ * Nicolas Boichat, August MMIV +++++ * +++++- * Version $Id$ ++++++ * Version $Id$ +++++ */ +++++ +++++ /* +++++@@ -881,7 +881,7 @@ +++++ } +++++ +++++ if (item->D_sock == NULL) { +++++- g_slist_append(*list, (void *)_("Cannot connect to daemon.\n")); ++++++ g_slist_append(*list, g_string_new(_("Cannot connect to daemon.\n"))); +++++ changeStatusMessage(item, _("Cannot connect to daemon.")); +++++ item->state = error; +++++ item->oldstate = error; ++++Index: patches/patches-1.38.0 ++++=================================================================== ++++RCS file: patches/patches-1.38.0 ++++diff -N patches/patches-1.38.0 ++++Index: patches/patches-1.38.1 ++++=================================================================== ++++RCS file: patches/patches-1.38.1 ++++diff -N patches/patches-1.38.1 ++++--- /dev/null 1 Jan 1970 00:00:00 -0000 +++++++ patches/patches-1.38.1 21 Nov 2005 18:19:05 -0000 ++++@@ -0,0 +1,14 @@ +++++20Nov05 1.38.1-to-1.38.2.patch +++++ This patch fixes the following bugs: +++++ +++++- Fix crash in tray-monitor when daemon disconnects. Bug #479. +++++- Fix bnet-server bug found on OpenBSD. Bug #486 (bug originator +++++ says this patch does not fix his problem) +++++- Fix cancel failure bug. Bug #481 +++++- Fix failure when Pool name has spaces. Bug #487 +++++- Fix SD crash in autochanger code. Mutex failure. Bug #488 +++++- Fix a couple of free()s in src/filed/acl.c +++++- Fix memory overrun in bfile.c in building OS X resource +++++ fork filename. Bug #489 +++++ +++++ ++++Index: src/version.h ++++=================================================================== ++++RCS file: /cvsroot/bacula/bacula/src/version.h,v ++++retrieving revision 1.554.2.14 ++++diff -u -r1.554.2.14 version.h ++++--- src/version.h 14 Nov 2005 14:21:58 -0000 1.554.2.14 +++++++ src/version.h 21 Nov 2005 18:19:06 -0000 ++++@@ -3,9 +3,9 @@ ++++ */ ++++ ++++ #undef VERSION ++++-#define VERSION "1.38.1" ++++-#define BDATE "14 November 2005" ++++-#define LSMDATE "14Nov05" +++++#define VERSION "1.38.2" +++++#define BDATE "20 November 2005" +++++#define LSMDATE "20Nov05" ++++ ++++ /* Debug flags */ ++++ #undef DEBUG ++++Index: src/dird/catreq.c ++++=================================================================== ++++RCS file: /cvsroot/bacula/bacula/src/dird/catreq.c,v ++++retrieving revision 1.77.2.1 ++++diff -u -r1.77.2.1 catreq.c ++++--- src/dird/catreq.c 26 Oct 2005 14:02:04 -0000 1.77.2.1 +++++++ src/dird/catreq.c 21 Nov 2005 18:19:06 -0000 ++++@@ -10,7 +10,7 @@ ++++ * Basic tasks done here: ++++ * Handle Catalog services. ++++ * ++++- * Version $Id$ +++++ * Version $Id$ ++++ */ ++++ /* ++++ Copyright (C) 2001-2005 Kern Sibbald ++++@@ -117,6 +117,7 @@ ++++ if (sscanf(bs->msg, Find_media, &Job, &index, &pool_name, &mr.MediaType) == 4) { ++++ memset(&pr, 0, sizeof(pr)); ++++ bstrncpy(pr.Name, pool_name, sizeof(pr.Name)); +++++ unbash_spaces(pr.Name); ++++ ok = db_get_pool_record(jcr, jcr->db, &pr); ++++ if (ok) { ++++ mr.PoolId = pr.PoolId; ++++Index: src/dird/ua_restore.c ++++=================================================================== ++++RCS file: /cvsroot/bacula/bacula/src/dird/ua_restore.c,v ++++retrieving revision 1.101.2.1 ++++diff -u -r1.101.2.1 ua_restore.c ++++--- src/dird/ua_restore.c 26 Oct 2005 14:02:04 -0000 1.101.2.1 +++++++ src/dird/ua_restore.c 21 Nov 2005 18:19:06 -0000 ++++@@ -10,7 +10,7 @@ ++++ * ++++ * Kern Sibbald, July MMII ++++ * ++++- * Version $Id$ +++++ * Version $Id$ ++++ */ ++++ /* ++++ Copyright (C) 2002-2005 Kern Sibbald ++++@@ -409,7 +409,7 @@ ++++ } ++++ done = true; ++++ switch (do_prompt(ua, "", _("Select item: "), NULL, 0)) { ++++- case -1: /* error */ +++++ case -1: /* error or cancel */ ++++ return 0; ++++ case 0: /* list last 20 Jobs run */ ++++ gui_save = ua->jcr->gui; ++++Index: src/dird/ua_run.c ++++=================================================================== ++++RCS file: /cvsroot/bacula/bacula/src/dird/ua_run.c,v ++++retrieving revision 1.71 ++++diff -u -r1.71 ua_run.c ++++--- src/dird/ua_run.c 10 Aug 2005 16:35:19 -0000 1.71 +++++++ src/dird/ua_run.c 21 Nov 2005 18:19:06 -0000 ++++@@ -851,6 +851,8 @@ ++++ bsendmsg(ua, _("You must set the bootstrap file to NULL to be able to specify a JobId.\n")); ++++ } ++++ goto try_again; +++++ case -1: /* error or cancel */ +++++ goto bail_out; ++++ default: ++++ goto try_again; ++++ } ++++Index: src/dird/ua_select.c ++++=================================================================== ++++RCS file: /cvsroot/bacula/bacula/src/dird/ua_select.c,v ++++retrieving revision 1.65.2.1 ++++diff -u -r1.65.2.1 ua_select.c ++++--- src/dird/ua_select.c 12 Nov 2005 17:30:52 -0000 1.65.2.1 +++++++ src/dird/ua_select.c 21 Nov 2005 18:19:06 -0000 ++++@@ -4,7 +4,7 @@ ++++ * ++++ * Kern Sibbald, October MMI ++++ * ++++- * Version $Id$ +++++ * Version $Id$ ++++ */ ++++ /* ++++ Copyright (C) 2001-2005 Kern Sibbald ++++@@ -149,7 +149,9 @@ ++++ } ++++ } ++++ UnlockRes(); ++++- do_prompt(ua, _("Storage"), _("Select Storage resource"), name, sizeof(name)); +++++ if (do_prompt(ua, _("Storage"), _("Select Storage resource"), name, sizeof(name)) < 0) { +++++ return NULL; +++++ } ++++ store = (STORE *)GetResWithName(R_STORAGE, name); ++++ return store; ++++ } ++++@@ -170,7 +172,9 @@ ++++ } ++++ } ++++ UnlockRes(); ++++- do_prompt(ua, _("FileSet"), _("Select FileSet resource"), name, sizeof(name)); +++++ if (do_prompt(ua, _("FileSet"), _("Select FileSet resource"), name, sizeof(name)) < 0) { +++++ return NULL; +++++ } ++++ fs = (FILESET *)GetResWithName(R_FILESET, name); ++++ return fs; ++++ } ++++@@ -202,7 +206,9 @@ ++++ } ++++ } ++++ UnlockRes(); ++++- do_prompt(ua, _("Catalog"), _("Select Catalog resource"), name, sizeof(name)); +++++ if (do_prompt(ua, _("Catalog"), _("Select Catalog resource"), name, sizeof(name)) < 0) { +++++ return NULL; +++++ } ++++ catalog = (CAT *)GetResWithName(R_CATALOG, name); ++++ } ++++ return catalog; ++++@@ -225,7 +231,9 @@ ++++ } ++++ } ++++ UnlockRes(); ++++- do_prompt(ua, _("Job"), _("Select Job resource"), name, sizeof(name)); +++++ if (do_prompt(ua, _("Job"), _("Select Job resource"), name, sizeof(name)) < 0) { +++++ return NULL; +++++ } ++++ job = (JOB *)GetResWithName(R_JOB, name); ++++ return job; ++++ } ++++@@ -246,7 +254,9 @@ ++++ } ++++ } ++++ UnlockRes(); ++++- do_prompt(ua, _("Job"), _("Select Restore Job"), name, sizeof(name)); +++++ if (do_prompt(ua, _("Job"), _("Select Restore Job"), name, sizeof(name)) < 0) { +++++ return NULL; +++++ } ++++ job = (JOB *)GetResWithName(R_JOB, name); ++++ return job; ++++ } ++++@@ -269,7 +279,9 @@ ++++ } ++++ } ++++ UnlockRes(); ++++- do_prompt(ua, _("Client"), _("Select Client (File daemon) resource"), name, sizeof(name)); +++++ if (do_prompt(ua, _("Client"), _("Select Client (File daemon) resource"), name, sizeof(name)) < 0) { +++++ return NULL; +++++ } ++++ client = (CLIENT *)GetResWithName(R_CLIENT, name); ++++ return client; ++++ } ++++@@ -551,7 +563,9 @@ ++++ } ++++ } ++++ UnlockRes(); ++++- do_prompt(ua, _("Pool"), _("Select Pool resource"), name, sizeof(name)); +++++ if (do_prompt(ua, _("Pool"), _("Select Pool resource"), name, sizeof(name)) < 0) { +++++ return NULL; +++++ } ++++ pool = (POOL *)GetResWithName(R_POOL, name); ++++ return pool; ++++ } ++++@@ -673,12 +687,16 @@ ++++ * Returns: -1 on error ++++ * index base 0 on success, and choice ++++ * is copied to prompt if not NULL +++++ * prompt is set to the chosen prompt item string ++++ */ ++++ int do_prompt(UAContext *ua, const char *automsg, const char *msg, char *prompt, int max_prompt) ++++ { ++++ int i, item; ++++ char pmsg[MAXSTRING]; ++++ +++++ if (prompt) { +++++ *prompt = 0; +++++ } ++++ if (ua->num_prompts == 2) { ++++ item = 1; ++++ if (prompt) { ++++@@ -698,15 +716,11 @@ ++++ bsendmsg(ua, "%6d: %s\n", i, ua->prompt[i]); ++++ } ++++ ++++- if (prompt) { ++++- *prompt = 0; ++++- } ++++- ++++ for ( ;; ) { ++++ /* First item is the prompt string, not the items */ ++++ if (ua->num_prompts == 1) { ++++ bsendmsg(ua, _("Selection is empty!\n")); ++++- item = 0; /* list is empty ! */ +++++ item = -1; /* list is empty ! */ ++++ break; ++++ } ++++ if (ua->num_prompts == 2) { ++++@@ -741,7 +755,7 @@ ++++ free(ua->prompt[i]); ++++ } ++++ ua->num_prompts = 0; ++++- return item - 1; +++++ return item>0 ? item-1 : item; ++++ } ++++ ++++ ++++Index: src/dird/ua_update.c ++++=================================================================== ++++RCS file: /cvsroot/bacula/bacula/src/dird/ua_update.c,v ++++retrieving revision 1.7 ++++diff -u -r1.7 ua_update.c ++++--- src/dird/ua_update.c 28 Aug 2005 12:22:02 -0000 1.7 +++++++ src/dird/ua_update.c 21 Nov 2005 18:19:06 -0000 ++++@@ -590,7 +590,7 @@ ++++ update_all_vols_from_pool(ua); ++++ return 1; ++++ default: /* Done or error */ ++++- bsendmsg(ua, _("Selection done.\n")); +++++ bsendmsg(ua, _("Selection terminated.\n")); ++++ return 1; ++++ } ++++ } ++++Index: src/filed/acl.c ++++=================================================================== ++++RCS file: /cvsroot/bacula/bacula/src/filed/acl.c,v ++++retrieving revision 1.10.2.1 ++++diff -u -r1.10.2.1 acl.c ++++--- src/filed/acl.c 14 Nov 2005 20:20:38 -0000 1.10.2.1 +++++++ src/filed/acl.c 21 Nov 2005 18:19:07 -0000 ++++@@ -26,7 +26,7 @@ ++++ * ++++ * Written by Preben 'Peppe' Guldberg, December MMIV ++++ * ++++- * Version $Id$ +++++ * Version $Id$ ++++ */ ++++ /* ++++ Copyright (C) 2004-2005 Kern Sibbald ++++@@ -140,7 +140,7 @@ ++++ ++++ if ((acl_text = acl_get(jcr->last_fname)) != NULL) { ++++ len = pm_strcpy(jcr->acl_text, acl_text); ++++- free(acl_text); +++++ actuallyfree(acl_text); ++++ return len; ++++ } ++++ return -1; ++++@@ -270,7 +270,7 @@ ++++ if ((n = getacl(jcr->last_fname, n, acls)) > 0) { ++++ if ((acl_text = acltostr(n, acls, FORM_SHORT)) != NULL) { ++++ len = pm_strcpy(jcr->acl_text, acl_text); ++++- free(acl_text); +++++ actuallyfree(acl_text); ++++ return len; ++++ } ++++ } ++++Index: src/findlib/bfile.c ++++=================================================================== ++++RCS file: /cvsroot/bacula/bacula/src/findlib/bfile.c,v ++++retrieving revision 1.40 ++++diff -u -r1.40 bfile.c ++++--- src/findlib/bfile.c 10 Aug 2005 16:35:19 -0000 1.40 +++++++ src/findlib/bfile.c 21 Nov 2005 18:19:07 -0000 ++++@@ -623,13 +623,10 @@ ++++ int bopen_rsrc(BFILE *bfd, const char *fname, int flags, mode_t mode) ++++ { ++++ POOLMEM *rsrc_fname; ++++- size_t fname_len; ++++ ++++- fname_len = strlen(fname); ++++ rsrc_fname = get_pool_memory(PM_FNAME); ++++- bstrncpy(rsrc_fname, fname, fname_len + 1); ++++- bstrncpy(rsrc_fname + fname_len, _PATH_RSRCFORKSPEC, ++++- strlen(_PATH_RSRCFORKSPEC) + 1); +++++ pm_strcpy(rsrc_fname, fname); +++++ pm_strcat(rsrc_fname, _PATH_RSRCFORKSPEC); ++++ bopen(bfd, rsrc_fname, flags, mode); ++++ free_pool_memory(rsrc_fname); ++++ return bfd->fid; ++++Index: src/lib/bnet_server.c ++++=================================================================== ++++RCS file: /cvsroot/bacula/bacula/src/lib/bnet_server.c,v ++++retrieving revision 1.39 ++++diff -u -r1.39 bnet_server.c ++++--- src/lib/bnet_server.c 18 Aug 2005 15:37:40 -0000 1.39 +++++++ src/lib/bnet_server.c 21 Nov 2005 18:19:07 -0000 ++++@@ -153,7 +153,6 @@ ++++ /* Error, get out */ ++++ foreach_dlist(fd_ptr, &sockfds) { ++++ close(fd_ptr->fd); ++++- free((void *)fd_ptr); ++++ } ++++ Emsg1(M_FATAL, 0, _("Error in select: %s\n"), be.strerror()); ++++ break; ++++Index: src/stored/autochanger.c ++++=================================================================== ++++RCS file: /cvsroot/bacula/bacula/src/stored/autochanger.c,v ++++retrieving revision 1.47.2.3 ++++diff -u -r1.47.2.3 autochanger.c ++++--- src/stored/autochanger.c 12 Nov 2005 17:30:53 -0000 1.47.2.3 +++++++ src/stored/autochanger.c 21 Nov 2005 18:19:07 -0000 ++++@@ -4,7 +4,7 @@ ++++ * ++++ * Kern Sibbald, August MMII ++++ * ++++- * Version $Id$ +++++ * Version $Id$ ++++ */ ++++ /* ++++ Copyright (C) 2002-2005 Kern Sibbald ++++@@ -163,6 +163,7 @@ ++++ rtn_stat = -1; /* hard error */ ++++ } ++++ Dmsg2(400, "load slot %d status=%d\n", slot, status); +++++ unlock_changer(dcr); ++++ } else { ++++ status = 0; /* we got what we want */ ++++ dev->Slot = slot; /* set currently loaded slot */ ++++@@ -174,7 +175,6 @@ ++++ } else { ++++ rtn_stat = 0; /* no changer found */ ++++ } ++++- unlock_changer(dcr); ++++ free_pool_memory(changer); ++++ return rtn_stat; ++++ ++++Index: src/stored/status.c ++++=================================================================== ++++RCS file: /cvsroot/bacula/bacula/src/stored/status.c,v ++++retrieving revision 1.44.2.1 ++++diff -u -r1.44.2.1 status.c ++++--- src/stored/status.c 6 Oct 2005 07:04:13 -0000 1.44.2.1 +++++++ src/stored/status.c 21 Nov 2005 18:19:08 -0000 ++++@@ -264,6 +264,7 @@ ++++ bool found = false; ++++ int bps, sec; ++++ JCR *jcr; +++++ DCR *dcr; ++++ char JobName[MAX_NAME_LENGTH]; ++++ char b1[30], b2[30], b3[30]; ++++ ++++@@ -273,7 +274,8 @@ ++++ bnet_fsend(user, _("%s Job %s waiting for Client connection.\n"), ++++ job_type_to_str(jcr->JobType), jcr->Job); ++++ } ++++- if (jcr->dcr && jcr->dcr->device) { +++++ dcr = jcr->dcr; +++++ if (dcr && dcr->device) { ++++ bstrncpy(JobName, jcr->Job, sizeof(JobName)); ++++ /* There are three periods after the Job name */ ++++ char *p; ++++@@ -282,13 +284,16 @@ ++++ *p = 0; ++++ } ++++ } ++++- bnet_fsend(user, _("%s %s job %s JobId=%d Volume=\"%s\" device=\"%s\"\n"), +++++ bnet_fsend(user, _("%s %s job %s JobId=%d Volume=\"%s\"\n" +++++ " pool=\"%s\" device=\"%s\"\n"), ++++ job_level_to_str(jcr->JobLevel), ++++ job_type_to_str(jcr->JobType), ++++ JobName, ++++ jcr->JobId, ++++- jcr->dcr->VolumeName, ++++- jcr->dcr->device->device_name); +++++ dcr->VolumeName, +++++ dcr->pool_name, +++++ dcr->dev?dcr->dev->print_name(): +++++ dcr->device->device_name); ++++ sec = time(NULL) - jcr->run_time; ++++ if (sec <= 0) { ++++ sec = 1; ++++Index: src/stored/stored_conf.c ++++=================================================================== ++++RCS file: /cvsroot/bacula/bacula/src/stored/stored_conf.c,v ++++retrieving revision 1.76 ++++diff -u -r1.76 stored_conf.c ++++--- src/stored/stored_conf.c 9 Sep 2005 09:40:04 -0000 1.76 +++++++ src/stored/stored_conf.c 21 Nov 2005 18:19:08 -0000 ++++@@ -222,16 +222,16 @@ ++++ res->res_dev.hdr.name, ++++ res->res_dev.media_type, res->res_dev.device_name, ++++ res->res_dev.label_type); ++++- sendit(sock, " rew_wait=%d min_bs=%d max_bs=%d\n", +++++ sendit(sock, " rew_wait=%d min_bs=%d max_bs=%d chgr_wait=%d\n", ++++ res->res_dev.max_rewind_wait, res->res_dev.min_block_size, ++++- res->res_dev.max_block_size); +++++ res->res_dev.max_block_size, res->res_dev.max_changer_wait); ++++ sendit(sock, " max_jobs=%d max_files=%" lld " max_size=%" lld "\n", ++++ res->res_dev.max_volume_jobs, res->res_dev.max_volume_files, ++++ res->res_dev.max_volume_size); ++++ sendit(sock, " max_file_size=%" lld " capacity=%" lld "\n", ++++ res->res_dev.max_file_size, res->res_dev.volume_capacity); ++++- sendit(sock, " spool_directory=%s\n", NPRT(res->res_dev.spool_directory)); ++++- sendit(sock, " max_spool_size=%" lld " max_job_spool_size=%" lld "\n", +++++ sendit(sock, " spool_directory=%s\n", NPRT(res->res_dev.spool_directory)); +++++ sendit(sock, " max_spool_size=%" lld " max_job_spool_size=%" lld "\n", ++++ res->res_dev.max_spool_size, res->res_dev.max_job_spool_size); ++++ if (res->res_dev.changer_res) { ++++ sendit(sock, " changer=%p\n", res->res_dev.changer_res); ++++Index: src/tray-monitor/tray-monitor.c ++++=================================================================== ++++RCS file: /cvsroot/bacula/bacula/src/tray-monitor/tray-monitor.c,v ++++retrieving revision 1.25.2.1 ++++diff -u -r1.25.2.1 tray-monitor.c ++++--- src/tray-monitor/tray-monitor.c 1 Oct 2005 10:20:18 -0000 1.25.2.1 +++++++ src/tray-monitor/tray-monitor.c 21 Nov 2005 18:19:08 -0000 ++++@@ -4,7 +4,7 @@ ++++ * ++++ * Nicolas Boichat, August MMIV ++++ * ++++- * Version $Id$ +++++ * Version $Id$ ++++ */ ++++ ++++ /* ++++@@ -881,7 +881,7 @@ ++++ } ++++ ++++ if (item->D_sock == NULL) { ++++- g_slist_append(*list, (void *)_("Cannot connect to daemon.\n")); +++++ g_slist_append(*list, g_string_new(_("Cannot connect to daemon.\n"))); ++++ changeStatusMessage(item, _("Cannot connect to daemon.")); ++++ item->state = error; ++++ item->oldstate = error; +++Index: patches/patches-1.38.0 +++=================================================================== +++RCS file: patches/patches-1.38.0 +++diff -N patches/patches-1.38.0 +++Index: patches/patches-1.38.1 +++=================================================================== +++RCS file: patches/patches-1.38.1 +++diff -N patches/patches-1.38.1 +++--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++++ patches/patches-1.38.1 22 Nov 2005 10:42:22 -0000 +++@@ -0,0 +1,14 @@ ++++20Nov05 1.38.1-to-1.38.2.patch ++++ This patch fixes the following bugs: ++++ ++++- Fix crash in tray-monitor when daemon disconnects. Bug #479. ++++- Fix bnet-server bug found on OpenBSD. Bug #486 (bug originator ++++ says this patch does not fix his problem) ++++- Fix cancel failure bug. Bug #481 ++++- Fix failure when Pool name has spaces. Bug #487 ++++- Fix SD crash in autochanger code. Mutex failure. Bug #488 ++++- Fix a couple of free()s in src/filed/acl.c ++++- Fix memory overrun in bfile.c in building OS X resource ++++ fork filename. Bug #489 ++++ ++++ +++Index: src/version.h +++=================================================================== +++RCS file: /cvsroot/bacula/bacula/src/version.h,v +++retrieving revision 1.554.2.14 +++diff -u -r1.554.2.14 version.h +++--- src/version.h 14 Nov 2005 14:21:58 -0000 1.554.2.14 ++++++ src/version.h 22 Nov 2005 10:42:22 -0000 +++@@ -3,9 +3,9 @@ +++ */ +++ +++ #undef VERSION +++-#define VERSION "1.38.1" +++-#define BDATE "14 November 2005" +++-#define LSMDATE "14Nov05" ++++#define VERSION "1.38.2" ++++#define BDATE "20 November 2005" ++++#define LSMDATE "20Nov05" +++ +++ /* Debug flags */ +++ #undef DEBUG +++Index: src/dird/catreq.c +++=================================================================== +++RCS file: /cvsroot/bacula/bacula/src/dird/catreq.c,v +++retrieving revision 1.77.2.1 +++diff -u -r1.77.2.1 catreq.c +++--- src/dird/catreq.c 26 Oct 2005 14:02:04 -0000 1.77.2.1 ++++++ src/dird/catreq.c 22 Nov 2005 10:42:22 -0000 +++@@ -10,7 +10,7 @@ +++ * Basic tasks done here: +++ * Handle Catalog services. +++ * +++- * Version $Id$ ++++ * Version $Id$ +++ */ +++ /* +++ Copyright (C) 2001-2005 Kern Sibbald +++@@ -117,6 +117,7 @@ +++ if (sscanf(bs->msg, Find_media, &Job, &index, &pool_name, &mr.MediaType) == 4) { +++ memset(&pr, 0, sizeof(pr)); +++ bstrncpy(pr.Name, pool_name, sizeof(pr.Name)); ++++ unbash_spaces(pr.Name); +++ ok = db_get_pool_record(jcr, jcr->db, &pr); +++ if (ok) { +++ mr.PoolId = pr.PoolId; +++Index: src/dird/ua_restore.c +++=================================================================== +++RCS file: /cvsroot/bacula/bacula/src/dird/ua_restore.c,v +++retrieving revision 1.101.2.1 +++diff -u -r1.101.2.1 ua_restore.c +++--- src/dird/ua_restore.c 26 Oct 2005 14:02:04 -0000 1.101.2.1 ++++++ src/dird/ua_restore.c 22 Nov 2005 10:42:23 -0000 +++@@ -10,7 +10,7 @@ +++ * +++ * Kern Sibbald, July MMII +++ * +++- * Version $Id$ ++++ * Version $Id$ +++ */ +++ /* +++ Copyright (C) 2002-2005 Kern Sibbald +++@@ -409,7 +409,7 @@ +++ } +++ done = true; +++ switch (do_prompt(ua, "", _("Select item: "), NULL, 0)) { +++- case -1: /* error */ ++++ case -1: /* error or cancel */ +++ return 0; +++ case 0: /* list last 20 Jobs run */ +++ gui_save = ua->jcr->gui; +++Index: src/dird/ua_run.c +++=================================================================== +++RCS file: /cvsroot/bacula/bacula/src/dird/ua_run.c,v +++retrieving revision 1.71 +++diff -u -r1.71 ua_run.c +++--- src/dird/ua_run.c 10 Aug 2005 16:35:19 -0000 1.71 ++++++ src/dird/ua_run.c 22 Nov 2005 10:42:23 -0000 +++@@ -851,6 +851,8 @@ +++ bsendmsg(ua, _("You must set the bootstrap file to NULL to be able to specify a JobId.\n")); +++ } +++ goto try_again; ++++ case -1: /* error or cancel */ ++++ goto bail_out; +++ default: +++ goto try_again; +++ } +++Index: src/dird/ua_select.c +++=================================================================== +++RCS file: /cvsroot/bacula/bacula/src/dird/ua_select.c,v +++retrieving revision 1.65.2.1 +++diff -u -r1.65.2.1 ua_select.c +++--- src/dird/ua_select.c 12 Nov 2005 17:30:52 -0000 1.65.2.1 ++++++ src/dird/ua_select.c 22 Nov 2005 10:42:23 -0000 +++@@ -4,7 +4,7 @@ +++ * +++ * Kern Sibbald, October MMI +++ * +++- * Version $Id$ ++++ * Version $Id$ +++ */ +++ /* +++ Copyright (C) 2001-2005 Kern Sibbald +++@@ -149,7 +149,9 @@ +++ } +++ } +++ UnlockRes(); +++- do_prompt(ua, _("Storage"), _("Select Storage resource"), name, sizeof(name)); ++++ if (do_prompt(ua, _("Storage"), _("Select Storage resource"), name, sizeof(name)) < 0) { ++++ return NULL; ++++ } +++ store = (STORE *)GetResWithName(R_STORAGE, name); +++ return store; +++ } +++@@ -170,7 +172,9 @@ +++ } +++ } +++ UnlockRes(); +++- do_prompt(ua, _("FileSet"), _("Select FileSet resource"), name, sizeof(name)); ++++ if (do_prompt(ua, _("FileSet"), _("Select FileSet resource"), name, sizeof(name)) < 0) { ++++ return NULL; ++++ } +++ fs = (FILESET *)GetResWithName(R_FILESET, name); +++ return fs; +++ } +++@@ -202,7 +206,9 @@ +++ } +++ } +++ UnlockRes(); +++- do_prompt(ua, _("Catalog"), _("Select Catalog resource"), name, sizeof(name)); ++++ if (do_prompt(ua, _("Catalog"), _("Select Catalog resource"), name, sizeof(name)) < 0) { ++++ return NULL; ++++ } +++ catalog = (CAT *)GetResWithName(R_CATALOG, name); +++ } +++ return catalog; +++@@ -225,7 +231,9 @@ +++ } +++ } +++ UnlockRes(); +++- do_prompt(ua, _("Job"), _("Select Job resource"), name, sizeof(name)); ++++ if (do_prompt(ua, _("Job"), _("Select Job resource"), name, sizeof(name)) < 0) { ++++ return NULL; ++++ } +++ job = (JOB *)GetResWithName(R_JOB, name); +++ return job; +++ } +++@@ -246,7 +254,9 @@ +++ } +++ } +++ UnlockRes(); +++- do_prompt(ua, _("Job"), _("Select Restore Job"), name, sizeof(name)); ++++ if (do_prompt(ua, _("Job"), _("Select Restore Job"), name, sizeof(name)) < 0) { ++++ return NULL; ++++ } +++ job = (JOB *)GetResWithName(R_JOB, name); +++ return job; +++ } +++@@ -269,7 +279,9 @@ +++ } +++ } +++ UnlockRes(); +++- do_prompt(ua, _("Client"), _("Select Client (File daemon) resource"), name, sizeof(name)); ++++ if (do_prompt(ua, _("Client"), _("Select Client (File daemon) resource"), name, sizeof(name)) < 0) { ++++ return NULL; ++++ } +++ client = (CLIENT *)GetResWithName(R_CLIENT, name); +++ return client; +++ } +++@@ -551,7 +563,9 @@ +++ } +++ } +++ UnlockRes(); +++- do_prompt(ua, _("Pool"), _("Select Pool resource"), name, sizeof(name)); ++++ if (do_prompt(ua, _("Pool"), _("Select Pool resource"), name, sizeof(name)) < 0) { ++++ return NULL; ++++ } +++ pool = (POOL *)GetResWithName(R_POOL, name); +++ return pool; +++ } +++@@ -673,12 +687,16 @@ +++ * Returns: -1 on error +++ * index base 0 on success, and choice +++ * is copied to prompt if not NULL ++++ * prompt is set to the chosen prompt item string +++ */ +++ int do_prompt(UAContext *ua, const char *automsg, const char *msg, char *prompt, int max_prompt) +++ { +++ int i, item; +++ char pmsg[MAXSTRING]; +++ ++++ if (prompt) { ++++ *prompt = 0; ++++ } +++ if (ua->num_prompts == 2) { +++ item = 1; +++ if (prompt) { +++@@ -698,15 +716,11 @@ +++ bsendmsg(ua, "%6d: %s\n", i, ua->prompt[i]); +++ } +++ +++- if (prompt) { +++- *prompt = 0; +++- } +++- +++ for ( ;; ) { +++ /* First item is the prompt string, not the items */ +++ if (ua->num_prompts == 1) { +++ bsendmsg(ua, _("Selection is empty!\n")); +++- item = 0; /* list is empty ! */ ++++ item = -1; /* list is empty ! */ +++ break; +++ } +++ if (ua->num_prompts == 2) { +++@@ -741,7 +755,7 @@ +++ free(ua->prompt[i]); +++ } +++ ua->num_prompts = 0; +++- return item - 1; ++++ return item>0 ? item-1 : item; +++ } +++ +++ +++Index: src/dird/ua_update.c +++=================================================================== +++RCS file: /cvsroot/bacula/bacula/src/dird/ua_update.c,v +++retrieving revision 1.7 +++diff -u -r1.7 ua_update.c +++--- src/dird/ua_update.c 28 Aug 2005 12:22:02 -0000 1.7 ++++++ src/dird/ua_update.c 22 Nov 2005 10:42:23 -0000 +++@@ -590,7 +590,7 @@ +++ update_all_vols_from_pool(ua); +++ return 1; +++ default: /* Done or error */ +++- bsendmsg(ua, _("Selection done.\n")); ++++ bsendmsg(ua, _("Selection terminated.\n")); +++ return 1; +++ } +++ } +++Index: src/filed/acl.c +++=================================================================== +++RCS file: /cvsroot/bacula/bacula/src/filed/acl.c,v +++retrieving revision 1.10.2.1 +++diff -u -r1.10.2.1 acl.c +++--- src/filed/acl.c 14 Nov 2005 20:20:38 -0000 1.10.2.1 ++++++ src/filed/acl.c 22 Nov 2005 10:42:23 -0000 +++@@ -26,7 +26,7 @@ +++ * +++ * Written by Preben 'Peppe' Guldberg, December MMIV +++ * +++- * Version $Id$ ++++ * Version $Id$ +++ */ +++ /* +++ Copyright (C) 2004-2005 Kern Sibbald +++@@ -140,7 +140,7 @@ +++ +++ if ((acl_text = acl_get(jcr->last_fname)) != NULL) { +++ len = pm_strcpy(jcr->acl_text, acl_text); +++- free(acl_text); ++++ actuallyfree(acl_text); +++ return len; +++ } +++ return -1; +++@@ -270,7 +270,7 @@ +++ if ((n = getacl(jcr->last_fname, n, acls)) > 0) { +++ if ((acl_text = acltostr(n, acls, FORM_SHORT)) != NULL) { +++ len = pm_strcpy(jcr->acl_text, acl_text); +++- free(acl_text); ++++ actuallyfree(acl_text); +++ return len; +++ } +++ } +++Index: src/findlib/bfile.c +++=================================================================== +++RCS file: /cvsroot/bacula/bacula/src/findlib/bfile.c,v +++retrieving revision 1.40 +++diff -u -r1.40 bfile.c +++--- src/findlib/bfile.c 10 Aug 2005 16:35:19 -0000 1.40 ++++++ src/findlib/bfile.c 22 Nov 2005 10:42:24 -0000 +++@@ -623,13 +623,10 @@ +++ int bopen_rsrc(BFILE *bfd, const char *fname, int flags, mode_t mode) +++ { +++ POOLMEM *rsrc_fname; +++- size_t fname_len; +++ +++- fname_len = strlen(fname); +++ rsrc_fname = get_pool_memory(PM_FNAME); +++- bstrncpy(rsrc_fname, fname, fname_len + 1); +++- bstrncpy(rsrc_fname + fname_len, _PATH_RSRCFORKSPEC, +++- strlen(_PATH_RSRCFORKSPEC) + 1); ++++ pm_strcpy(rsrc_fname, fname); ++++ pm_strcat(rsrc_fname, _PATH_RSRCFORKSPEC); +++ bopen(bfd, rsrc_fname, flags, mode); +++ free_pool_memory(rsrc_fname); +++ return bfd->fid; +++Index: src/lib/bnet_server.c +++=================================================================== +++RCS file: /cvsroot/bacula/bacula/src/lib/bnet_server.c,v +++retrieving revision 1.39 +++diff -u -r1.39 bnet_server.c +++--- src/lib/bnet_server.c 18 Aug 2005 15:37:40 -0000 1.39 ++++++ src/lib/bnet_server.c 22 Nov 2005 10:42:24 -0000 +++@@ -153,7 +153,6 @@ +++ /* Error, get out */ +++ foreach_dlist(fd_ptr, &sockfds) { +++ close(fd_ptr->fd); +++- free((void *)fd_ptr); +++ } +++ Emsg1(M_FATAL, 0, _("Error in select: %s\n"), be.strerror()); +++ break; +++Index: src/stored/autochanger.c +++=================================================================== +++RCS file: /cvsroot/bacula/bacula/src/stored/autochanger.c,v +++retrieving revision 1.47.2.3 +++diff -u -r1.47.2.3 autochanger.c +++--- src/stored/autochanger.c 12 Nov 2005 17:30:53 -0000 1.47.2.3 ++++++ src/stored/autochanger.c 22 Nov 2005 10:42:24 -0000 +++@@ -4,7 +4,7 @@ +++ * +++ * Kern Sibbald, August MMII +++ * +++- * Version $Id$ ++++ * Version $Id$ +++ */ +++ /* +++ Copyright (C) 2002-2005 Kern Sibbald +++@@ -163,6 +163,7 @@ +++ rtn_stat = -1; /* hard error */ +++ } +++ Dmsg2(400, "load slot %d status=%d\n", slot, status); ++++ unlock_changer(dcr); +++ } else { +++ status = 0; /* we got what we want */ +++ dev->Slot = slot; /* set currently loaded slot */ +++@@ -174,7 +175,6 @@ +++ } else { +++ rtn_stat = 0; /* no changer found */ +++ } +++- unlock_changer(dcr); +++ free_pool_memory(changer); +++ return rtn_stat; +++ +++Index: src/stored/status.c +++=================================================================== +++RCS file: /cvsroot/bacula/bacula/src/stored/status.c,v +++retrieving revision 1.44.2.1 +++diff -u -r1.44.2.1 status.c +++--- src/stored/status.c 6 Oct 2005 07:04:13 -0000 1.44.2.1 ++++++ src/stored/status.c 22 Nov 2005 10:42:24 -0000 +++@@ -264,6 +264,7 @@ +++ bool found = false; +++ int bps, sec; +++ JCR *jcr; ++++ DCR *dcr; +++ char JobName[MAX_NAME_LENGTH]; +++ char b1[30], b2[30], b3[30]; +++ +++@@ -273,7 +274,8 @@ +++ bnet_fsend(user, _("%s Job %s waiting for Client connection.\n"), +++ job_type_to_str(jcr->JobType), jcr->Job); +++ } +++- if (jcr->dcr && jcr->dcr->device) { ++++ dcr = jcr->dcr; ++++ if (dcr && dcr->device) { +++ bstrncpy(JobName, jcr->Job, sizeof(JobName)); +++ /* There are three periods after the Job name */ +++ char *p; +++@@ -282,13 +284,16 @@ +++ *p = 0; +++ } +++ } +++- bnet_fsend(user, _("%s %s job %s JobId=%d Volume=\"%s\" device=\"%s\"\n"), ++++ bnet_fsend(user, _("%s %s job %s JobId=%d Volume=\"%s\"\n" ++++ " pool=\"%s\" device=\"%s\"\n"), +++ job_level_to_str(jcr->JobLevel), +++ job_type_to_str(jcr->JobType), +++ JobName, +++ jcr->JobId, +++- jcr->dcr->VolumeName, +++- jcr->dcr->device->device_name); ++++ dcr->VolumeName, ++++ dcr->pool_name, ++++ dcr->dev?dcr->dev->print_name(): ++++ dcr->device->device_name); +++ sec = time(NULL) - jcr->run_time; +++ if (sec <= 0) { +++ sec = 1; +++Index: src/stored/stored_conf.c +++=================================================================== +++RCS file: /cvsroot/bacula/bacula/src/stored/stored_conf.c,v +++retrieving revision 1.76 +++diff -u -r1.76 stored_conf.c +++--- src/stored/stored_conf.c 9 Sep 2005 09:40:04 -0000 1.76 ++++++ src/stored/stored_conf.c 22 Nov 2005 10:42:24 -0000 +++@@ -222,16 +222,16 @@ +++ res->res_dev.hdr.name, +++ res->res_dev.media_type, res->res_dev.device_name, +++ res->res_dev.label_type); +++- sendit(sock, " rew_wait=%d min_bs=%d max_bs=%d\n", ++++ sendit(sock, " rew_wait=%d min_bs=%d max_bs=%d chgr_wait=%d\n", +++ res->res_dev.max_rewind_wait, res->res_dev.min_block_size, +++- res->res_dev.max_block_size); ++++ res->res_dev.max_block_size, res->res_dev.max_changer_wait); +++ sendit(sock, " max_jobs=%d max_files=%" lld " max_size=%" lld "\n", +++ res->res_dev.max_volume_jobs, res->res_dev.max_volume_files, +++ res->res_dev.max_volume_size); +++ sendit(sock, " max_file_size=%" lld " capacity=%" lld "\n", +++ res->res_dev.max_file_size, res->res_dev.volume_capacity); +++- sendit(sock, " spool_directory=%s\n", NPRT(res->res_dev.spool_directory)); +++- sendit(sock, " max_spool_size=%" lld " max_job_spool_size=%" lld "\n", ++++ sendit(sock, " spool_directory=%s\n", NPRT(res->res_dev.spool_directory)); ++++ sendit(sock, " max_spool_size=%" lld " max_job_spool_size=%" lld "\n", +++ res->res_dev.max_spool_size, res->res_dev.max_job_spool_size); +++ if (res->res_dev.changer_res) { +++ sendit(sock, " changer=%p\n", res->res_dev.changer_res); +++Index: src/tray-monitor/tray-monitor.c +++=================================================================== +++RCS file: /cvsroot/bacula/bacula/src/tray-monitor/tray-monitor.c,v +++retrieving revision 1.25.2.1 +++diff -u -r1.25.2.1 tray-monitor.c +++--- src/tray-monitor/tray-monitor.c 1 Oct 2005 10:20:18 -0000 1.25.2.1 ++++++ src/tray-monitor/tray-monitor.c 22 Nov 2005 10:42:24 -0000 +++@@ -4,7 +4,7 @@ +++ * +++ * Nicolas Boichat, August MMIV +++ * +++- * Version $Id$ ++++ * Version $Id$ +++ */ +++ +++ /* +++@@ -881,7 +881,7 @@ +++ } +++ +++ if (item->D_sock == NULL) { +++- g_slist_append(*list, (void *)_("Cannot connect to daemon.\n")); ++++ g_slist_append(*list, g_string_new(_("Cannot connect to daemon.\n"))); +++ changeStatusMessage(item, _("Cannot connect to daemon.")); +++ item->state = error; +++ item->oldstate = error; +++Index: updatedb/kes-1.38 +++=================================================================== +++RCS file: updatedb/kes-1.38 +++diff -N updatedb/kes-1.38 +++--- updatedb/kes-1.38 3 Nov 2005 14:54:28 -0000 1.1.2.1 ++++++ /dev/null 1 Jan 1970 00:00:00 -0000 +++@@ -1,19 +0,0 @@ +++- Technical notes on version 1.38 +++- Kern Sibbald +++- +++-General: +++- +++-Changes to 1.38.0: +++-- Modify configure.in to add execute option to sqlite3 catalog +++- scripts. +++-- Create update_xxx_table_8_to_9 scripts for updatedb +++-- Fix wrong variable in bpipe.c debug output reported by user. +++-- Fix improper placement of encode_and_send_attributes() in +++- FD backup.c causing first file of non-portable Win32 backup +++- to have wrong stream. Reported by Thorsten. +++-- Move the -lcrypt for PostgreSQL after the PostgreSQL libs in +++- autoconf/bacula-macros/db.m4 as suggested by user. Fixes bug #457. +++-- Remove @STATIC_CONS@ from tray-monitor Makefile as suggested +++- by user. Fixes bug #456. +++- +++-Released 1.38.0 (28Oct05): 31 October 2005 ++Index: patches/patches-1.38.0 ++=================================================================== ++RCS file: patches/patches-1.38.0 ++diff -N patches/patches-1.38.0 ++Index: patches/patches-1.38.1 ++=================================================================== ++RCS file: patches/patches-1.38.1 ++diff -N patches/patches-1.38.1 ++--- /dev/null 1 Jan 1970 00:00:00 -0000 +++++ patches/patches-1.38.1 22 Nov 2005 10:50:55 -0000 1.1.2.2 ++@@ -0,0 +1,14 @@ +++20Nov05 1.38.1-to-1.38.2.patch +++ This patch fixes the following bugs: +++ +++- Fix crash in tray-monitor when daemon disconnects. Bug #479. +++- Fix bnet-server bug found on OpenBSD. Bug #486 (bug originator +++ says this patch does not fix his problem) +++- Fix cancel failure bug. Bug #481 +++- Fix failure when Pool name has spaces. Bug #487 +++- Fix SD crash in autochanger code. Mutex failure. Bug #488 +++- Fix a couple of free()s in src/filed/acl.c +++- Fix memory overrun in bfile.c in building OS X resource +++ fork filename. Bug #489 +++ +++ ++Index: src/version.h ++=================================================================== ++RCS file: /cvsroot/bacula/bacula/src/version.h,v ++retrieving revision 1.554.2.14 ++retrieving revision 1.554.2.15 ++diff -u -r1.554.2.14 -r1.554.2.15 ++--- src/version.h 14 Nov 2005 14:21:58 -0000 1.554.2.14 +++++ src/version.h 22 Nov 2005 10:50:55 -0000 1.554.2.15 ++@@ -1,11 +1,11 @@ ++ /* ++- * Version $Id$ +++ * Version $Id$ ++ */ ++ ++ #undef VERSION ++-#define VERSION "1.38.1" ++-#define BDATE "14 November 2005" ++-#define LSMDATE "14Nov05" +++#define VERSION "1.38.2" +++#define BDATE "20 November 2005" +++#define LSMDATE "20Nov05" ++ ++ /* Debug flags */ ++ #undef DEBUG ++Index: src/dird/catreq.c ++=================================================================== ++RCS file: /cvsroot/bacula/bacula/src/dird/catreq.c,v ++retrieving revision 1.77.2.1 ++retrieving revision 1.77.2.2 ++diff -u -r1.77.2.1 -r1.77.2.2 ++--- src/dird/catreq.c 26 Oct 2005 14:02:04 -0000 1.77.2.1 +++++ src/dird/catreq.c 22 Nov 2005 10:50:55 -0000 1.77.2.2 ++@@ -10,7 +10,7 @@ ++ * Basic tasks done here: ++ * Handle Catalog services. ++ * ++- * Version $Id$ +++ * Version $Id$ ++ */ ++ /* ++ Copyright (C) 2001-2005 Kern Sibbald ++@@ -117,6 +117,7 @@ ++ if (sscanf(bs->msg, Find_media, &Job, &index, &pool_name, &mr.MediaType) == 4) { ++ memset(&pr, 0, sizeof(pr)); ++ bstrncpy(pr.Name, pool_name, sizeof(pr.Name)); +++ unbash_spaces(pr.Name); ++ ok = db_get_pool_record(jcr, jcr->db, &pr); ++ if (ok) { ++ mr.PoolId = pr.PoolId; ++Index: src/dird/ua_restore.c ++=================================================================== ++RCS file: /cvsroot/bacula/bacula/src/dird/ua_restore.c,v ++retrieving revision 1.101.2.1 ++retrieving revision 1.101.2.2 ++diff -u -r1.101.2.1 -r1.101.2.2 ++--- src/dird/ua_restore.c 26 Oct 2005 14:02:04 -0000 1.101.2.1 +++++ src/dird/ua_restore.c 22 Nov 2005 10:50:55 -0000 1.101.2.2 ++@@ -10,7 +10,7 @@ ++ * ++ * Kern Sibbald, July MMII ++ * ++- * Version $Id$ +++ * Version $Id$ ++ */ ++ /* ++ Copyright (C) 2002-2005 Kern Sibbald ++@@ -409,7 +409,7 @@ ++ } ++ done = true; ++ switch (do_prompt(ua, "", _("Select item: "), NULL, 0)) { ++- case -1: /* error */ +++ case -1: /* error or cancel */ ++ return 0; ++ case 0: /* list last 20 Jobs run */ ++ gui_save = ua->jcr->gui; ++Index: src/dird/ua_run.c ++=================================================================== ++RCS file: /cvsroot/bacula/bacula/src/dird/ua_run.c,v ++retrieving revision 1.71 ++retrieving revision 1.71.2.1 ++diff -u -r1.71 -r1.71.2.1 ++--- src/dird/ua_run.c 10 Aug 2005 16:35:19 -0000 1.71 +++++ src/dird/ua_run.c 22 Nov 2005 10:50:55 -0000 1.71.2.1 ++@@ -4,7 +4,7 @@ ++ * ++ * Kern Sibbald, December MMI ++ * ++- * Version $Id$ +++ * Version $Id$ ++ */ ++ /* ++ Copyright (C) 2001-2005 Kern Sibbald ++@@ -851,6 +851,8 @@ ++ bsendmsg(ua, _("You must set the bootstrap file to NULL to be able to specify a JobId.\n")); ++ } ++ goto try_again; +++ case -1: /* error or cancel */ +++ goto bail_out; ++ default: ++ goto try_again; ++ } ++Index: src/dird/ua_select.c ++=================================================================== ++RCS file: /cvsroot/bacula/bacula/src/dird/ua_select.c,v ++retrieving revision 1.65.2.1 ++retrieving revision 1.65.2.2 ++diff -u -r1.65.2.1 -r1.65.2.2 ++--- src/dird/ua_select.c 12 Nov 2005 17:30:52 -0000 1.65.2.1 +++++ src/dird/ua_select.c 22 Nov 2005 10:50:55 -0000 1.65.2.2 ++@@ -4,7 +4,7 @@ ++ * ++ * Kern Sibbald, October MMI ++ * ++- * Version $Id$ +++ * Version $Id$ ++ */ ++ /* ++ Copyright (C) 2001-2005 Kern Sibbald ++@@ -149,7 +149,9 @@ ++ } ++ } ++ UnlockRes(); ++- do_prompt(ua, _("Storage"), _("Select Storage resource"), name, sizeof(name)); +++ if (do_prompt(ua, _("Storage"), _("Select Storage resource"), name, sizeof(name)) < 0) { +++ return NULL; +++ } ++ store = (STORE *)GetResWithName(R_STORAGE, name); ++ return store; ++ } ++@@ -170,7 +172,9 @@ ++ } ++ } ++ UnlockRes(); ++- do_prompt(ua, _("FileSet"), _("Select FileSet resource"), name, sizeof(name)); +++ if (do_prompt(ua, _("FileSet"), _("Select FileSet resource"), name, sizeof(name)) < 0) { +++ return NULL; +++ } ++ fs = (FILESET *)GetResWithName(R_FILESET, name); ++ return fs; ++ } ++@@ -202,7 +206,9 @@ ++ } ++ } ++ UnlockRes(); ++- do_prompt(ua, _("Catalog"), _("Select Catalog resource"), name, sizeof(name)); +++ if (do_prompt(ua, _("Catalog"), _("Select Catalog resource"), name, sizeof(name)) < 0) { +++ return NULL; +++ } ++ catalog = (CAT *)GetResWithName(R_CATALOG, name); ++ } ++ return catalog; ++@@ -225,7 +231,9 @@ ++ } ++ } ++ UnlockRes(); ++- do_prompt(ua, _("Job"), _("Select Job resource"), name, sizeof(name)); +++ if (do_prompt(ua, _("Job"), _("Select Job resource"), name, sizeof(name)) < 0) { +++ return NULL; +++ } ++ job = (JOB *)GetResWithName(R_JOB, name); ++ return job; ++ } ++@@ -246,7 +254,9 @@ ++ } ++ } ++ UnlockRes(); ++- do_prompt(ua, _("Job"), _("Select Restore Job"), name, sizeof(name)); +++ if (do_prompt(ua, _("Job"), _("Select Restore Job"), name, sizeof(name)) < 0) { +++ return NULL; +++ } ++ job = (JOB *)GetResWithName(R_JOB, name); ++ return job; ++ } ++@@ -269,7 +279,9 @@ ++ } ++ } ++ UnlockRes(); ++- do_prompt(ua, _("Client"), _("Select Client (File daemon) resource"), name, sizeof(name)); +++ if (do_prompt(ua, _("Client"), _("Select Client (File daemon) resource"), name, sizeof(name)) < 0) { +++ return NULL; +++ } ++ client = (CLIENT *)GetResWithName(R_CLIENT, name); ++ return client; ++ } ++@@ -551,7 +563,9 @@ ++ } ++ } ++ UnlockRes(); ++- do_prompt(ua, _("Pool"), _("Select Pool resource"), name, sizeof(name)); +++ if (do_prompt(ua, _("Pool"), _("Select Pool resource"), name, sizeof(name)) < 0) { +++ return NULL; +++ } ++ pool = (POOL *)GetResWithName(R_POOL, name); ++ return pool; ++ } ++@@ -673,12 +687,16 @@ ++ * Returns: -1 on error ++ * index base 0 on success, and choice ++ * is copied to prompt if not NULL +++ * prompt is set to the chosen prompt item string ++ */ ++ int do_prompt(UAContext *ua, const char *automsg, const char *msg, char *prompt, int max_prompt) ++ { ++ int i, item; ++ char pmsg[MAXSTRING]; ++ +++ if (prompt) { +++ *prompt = 0; +++ } ++ if (ua->num_prompts == 2) { ++ item = 1; ++ if (prompt) { ++@@ -698,15 +716,11 @@ ++ bsendmsg(ua, "%6d: %s\n", i, ua->prompt[i]); ++ } ++ ++- if (prompt) { ++- *prompt = 0; ++- } ++- ++ for ( ;; ) { ++ /* First item is the prompt string, not the items */ ++ if (ua->num_prompts == 1) { ++ bsendmsg(ua, _("Selection is empty!\n")); ++- item = 0; /* list is empty ! */ +++ item = -1; /* list is empty ! */ ++ break; ++ } ++ if (ua->num_prompts == 2) { ++@@ -741,7 +755,7 @@ ++ free(ua->prompt[i]); ++ } ++ ua->num_prompts = 0; ++- return item - 1; +++ return item>0 ? item-1 : item; ++ } ++ ++ ++Index: src/dird/ua_update.c ++=================================================================== ++RCS file: /cvsroot/bacula/bacula/src/dird/ua_update.c,v ++retrieving revision 1.7 ++retrieving revision 1.7.2.1 ++diff -u -r1.7 -r1.7.2.1 ++--- src/dird/ua_update.c 28 Aug 2005 12:22:02 -0000 1.7 +++++ src/dird/ua_update.c 22 Nov 2005 10:50:55 -0000 1.7.2.1 ++@@ -5,7 +5,7 @@ ++ * ++ * Kern Sibbald, September MM ++ * ++- * Version $Id$ +++ * Version $Id$ ++ */ ++ /* ++ Copyright (C) 2000-2005 Kern Sibbald ++@@ -590,7 +590,7 @@ ++ update_all_vols_from_pool(ua); ++ return 1; ++ default: /* Done or error */ ++- bsendmsg(ua, _("Selection done.\n")); +++ bsendmsg(ua, _("Selection terminated.\n")); ++ return 1; ++ } ++ } ++Index: src/filed/acl.c ++=================================================================== ++RCS file: /cvsroot/bacula/bacula/src/filed/acl.c,v ++retrieving revision 1.10.2.1 ++retrieving revision 1.10.2.2 ++diff -u -r1.10.2.1 -r1.10.2.2 ++--- src/filed/acl.c 14 Nov 2005 20:20:38 -0000 1.10.2.1 +++++ src/filed/acl.c 22 Nov 2005 10:50:55 -0000 1.10.2.2 ++@@ -26,7 +26,7 @@ ++ * ++ * Written by Preben 'Peppe' Guldberg, December MMIV ++ * ++- * Version $Id$ +++ * Version $Id$ ++ */ ++ /* ++ Copyright (C) 2004-2005 Kern Sibbald ++@@ -140,7 +140,7 @@ ++ ++ if ((acl_text = acl_get(jcr->last_fname)) != NULL) { ++ len = pm_strcpy(jcr->acl_text, acl_text); ++- free(acl_text); +++ actuallyfree(acl_text); ++ return len; ++ } ++ return -1; ++@@ -270,7 +270,7 @@ ++ if ((n = getacl(jcr->last_fname, n, acls)) > 0) { ++ if ((acl_text = acltostr(n, acls, FORM_SHORT)) != NULL) { ++ len = pm_strcpy(jcr->acl_text, acl_text); ++- free(acl_text); +++ actuallyfree(acl_text); ++ return len; ++ } ++ } ++Index: src/findlib/bfile.c ++=================================================================== ++RCS file: /cvsroot/bacula/bacula/src/findlib/bfile.c,v ++retrieving revision 1.40 ++retrieving revision 1.40.2.1 ++diff -u -r1.40 -r1.40.2.1 ++--- src/findlib/bfile.c 10 Aug 2005 16:35:19 -0000 1.40 +++++ src/findlib/bfile.c 22 Nov 2005 10:50:55 -0000 1.40.2.1 ++@@ -5,7 +5,7 @@ ++ * ++ * Kern Sibbald, April MMIII ++ * ++- * Version $Id$ +++ * Version $Id$ ++ * ++ */ ++ /* ++@@ -623,13 +623,10 @@ ++ int bopen_rsrc(BFILE *bfd, const char *fname, int flags, mode_t mode) ++ { ++ POOLMEM *rsrc_fname; ++- size_t fname_len; ++ ++- fname_len = strlen(fname); ++ rsrc_fname = get_pool_memory(PM_FNAME); ++- bstrncpy(rsrc_fname, fname, fname_len + 1); ++- bstrncpy(rsrc_fname + fname_len, _PATH_RSRCFORKSPEC, ++- strlen(_PATH_RSRCFORKSPEC) + 1); +++ pm_strcpy(rsrc_fname, fname); +++ pm_strcat(rsrc_fname, _PATH_RSRCFORKSPEC); ++ bopen(bfd, rsrc_fname, flags, mode); ++ free_pool_memory(rsrc_fname); ++ return bfd->fid; ++Index: src/lib/bnet_server.c ++=================================================================== ++RCS file: /cvsroot/bacula/bacula/src/lib/bnet_server.c,v ++retrieving revision 1.39 ++retrieving revision 1.39.2.1 ++diff -u -r1.39 -r1.39.2.1 ++--- src/lib/bnet_server.c 18 Aug 2005 15:37:40 -0000 1.39 +++++ src/lib/bnet_server.c 22 Nov 2005 10:50:55 -0000 1.39.2.1 ++@@ -16,7 +16,7 @@ ++ * Originally written by Kern Sibbald for inclusion in apcupsd, ++ * but heavily modified for Bacula ++ * ++- * Version $Id$ +++ * Version $Id$ ++ */ ++ ++ #include "bacula.h" ++@@ -153,7 +153,6 @@ ++ /* Error, get out */ ++ foreach_dlist(fd_ptr, &sockfds) { ++ close(fd_ptr->fd); ++- free((void *)fd_ptr); ++ } ++ Emsg1(M_FATAL, 0, _("Error in select: %s\n"), be.strerror()); ++ break; ++Index: src/stored/autochanger.c ++=================================================================== ++RCS file: /cvsroot/bacula/bacula/src/stored/autochanger.c,v ++retrieving revision 1.47.2.3 ++retrieving revision 1.47.2.4 ++diff -u -r1.47.2.3 -r1.47.2.4 ++--- src/stored/autochanger.c 12 Nov 2005 17:30:53 -0000 1.47.2.3 +++++ src/stored/autochanger.c 22 Nov 2005 10:50:55 -0000 1.47.2.4 ++@@ -4,7 +4,7 @@ ++ * ++ * Kern Sibbald, August MMII ++ * ++- * Version $Id$ +++ * Version $Id$ ++ */ ++ /* ++ Copyright (C) 2002-2005 Kern Sibbald ++@@ -163,6 +163,7 @@ ++ rtn_stat = -1; /* hard error */ ++ } ++ Dmsg2(400, "load slot %d status=%d\n", slot, status); +++ unlock_changer(dcr); ++ } else { ++ status = 0; /* we got what we want */ ++ dev->Slot = slot; /* set currently loaded slot */ ++@@ -174,7 +175,6 @@ ++ } else { ++ rtn_stat = 0; /* no changer found */ ++ } ++- unlock_changer(dcr); ++ free_pool_memory(changer); ++ return rtn_stat; ++ ++Index: src/stored/status.c ++=================================================================== ++RCS file: /cvsroot/bacula/bacula/src/stored/status.c,v ++retrieving revision 1.44.2.1 ++retrieving revision 1.44.2.2 ++diff -u -r1.44.2.1 -r1.44.2.2 ++--- src/stored/status.c 6 Oct 2005 07:04:13 -0000 1.44.2.1 +++++ src/stored/status.c 22 Nov 2005 10:50:55 -0000 1.44.2.2 ++@@ -3,7 +3,7 @@ ++ * ++ * Kern Sibbald, May MMIII ++ * ++- * Version $Id$ +++ * Version $Id$ ++ * ++ */ ++ /* ++@@ -264,6 +264,7 @@ ++ bool found = false; ++ int bps, sec; ++ JCR *jcr; +++ DCR *dcr; ++ char JobName[MAX_NAME_LENGTH]; ++ char b1[30], b2[30], b3[30]; ++ ++@@ -273,7 +274,8 @@ ++ bnet_fsend(user, _("%s Job %s waiting for Client connection.\n"), ++ job_type_to_str(jcr->JobType), jcr->Job); ++ } ++- if (jcr->dcr && jcr->dcr->device) { +++ dcr = jcr->dcr; +++ if (dcr && dcr->device) { ++ bstrncpy(JobName, jcr->Job, sizeof(JobName)); ++ /* There are three periods after the Job name */ ++ char *p; ++@@ -282,13 +284,16 @@ ++ *p = 0; ++ } ++ } ++- bnet_fsend(user, _("%s %s job %s JobId=%d Volume=\"%s\" device=\"%s\"\n"), +++ bnet_fsend(user, _("%s %s job %s JobId=%d Volume=\"%s\"\n" +++ " pool=\"%s\" device=\"%s\"\n"), ++ job_level_to_str(jcr->JobLevel), ++ job_type_to_str(jcr->JobType), ++ JobName, ++ jcr->JobId, ++- jcr->dcr->VolumeName, ++- jcr->dcr->device->device_name); +++ dcr->VolumeName, +++ dcr->pool_name, +++ dcr->dev?dcr->dev->print_name(): +++ dcr->device->device_name); ++ sec = time(NULL) - jcr->run_time; ++ if (sec <= 0) { ++ sec = 1; ++Index: src/stored/stored_conf.c ++=================================================================== ++RCS file: /cvsroot/bacula/bacula/src/stored/stored_conf.c,v ++retrieving revision 1.76 ++retrieving revision 1.76.2.1 ++diff -u -r1.76 -r1.76.2.1 ++--- src/stored/stored_conf.c 9 Sep 2005 09:40:04 -0000 1.76 +++++ src/stored/stored_conf.c 22 Nov 2005 10:50:55 -0000 1.76.2.1 ++@@ -3,7 +3,7 @@ ++ * ++ * Kern Sibbald, March MM ++ * ++- * Version $Id$ +++ * Version $Id$ ++ */ ++ /* ++ Copyright (C) 2000-2005 Kern Sibbald ++@@ -222,16 +222,16 @@ ++ res->res_dev.hdr.name, ++ res->res_dev.media_type, res->res_dev.device_name, ++ res->res_dev.label_type); ++- sendit(sock, " rew_wait=%d min_bs=%d max_bs=%d\n", +++ sendit(sock, " rew_wait=%d min_bs=%d max_bs=%d chgr_wait=%d\n", ++ res->res_dev.max_rewind_wait, res->res_dev.min_block_size, ++- res->res_dev.max_block_size); +++ res->res_dev.max_block_size, res->res_dev.max_changer_wait); ++ sendit(sock, " max_jobs=%d max_files=%" lld " max_size=%" lld "\n", ++ res->res_dev.max_volume_jobs, res->res_dev.max_volume_files, ++ res->res_dev.max_volume_size); ++ sendit(sock, " max_file_size=%" lld " capacity=%" lld "\n", ++ res->res_dev.max_file_size, res->res_dev.volume_capacity); ++- sendit(sock, " spool_directory=%s\n", NPRT(res->res_dev.spool_directory)); ++- sendit(sock, " max_spool_size=%" lld " max_job_spool_size=%" lld "\n", +++ sendit(sock, " spool_directory=%s\n", NPRT(res->res_dev.spool_directory)); +++ sendit(sock, " max_spool_size=%" lld " max_job_spool_size=%" lld "\n", ++ res->res_dev.max_spool_size, res->res_dev.max_job_spool_size); ++ if (res->res_dev.changer_res) { ++ sendit(sock, " changer=%p\n", res->res_dev.changer_res); ++Index: src/tray-monitor/tray-monitor.c ++=================================================================== ++RCS file: /cvsroot/bacula/bacula/src/tray-monitor/tray-monitor.c,v ++retrieving revision 1.25.2.1 ++retrieving revision 1.25.2.2 ++diff -u -r1.25.2.1 -r1.25.2.2 ++--- src/tray-monitor/tray-monitor.c 1 Oct 2005 10:20:18 -0000 1.25.2.1 +++++ src/tray-monitor/tray-monitor.c 22 Nov 2005 10:50:55 -0000 1.25.2.2 ++@@ -4,7 +4,7 @@ ++ * ++ * Nicolas Boichat, August MMIV ++ * ++- * Version $Id$ +++ * Version $Id$ ++ */ ++ ++ /* ++@@ -881,7 +881,7 @@ ++ } ++ ++ if (item->D_sock == NULL) { ++- g_slist_append(*list, (void *)_("Cannot connect to daemon.\n")); +++ g_slist_append(*list, g_string_new(_("Cannot connect to daemon.\n"))); ++ changeStatusMessage(item, _("Cannot connect to daemon.")); ++ item->state = error; ++ item->oldstate = error; ++Index: updatedb/kes-1.38 ++=================================================================== ++RCS file: updatedb/kes-1.38 ++diff -N updatedb/kes-1.38 ++--- updatedb/kes-1.38 3 Nov 2005 14:54:28 -0000 1.1.2.1 +++++ /dev/null 1 Jan 1970 00:00:00 -0000 ++@@ -1,19 +0,0 @@ ++- Technical notes on version 1.38 ++- Kern Sibbald ++- ++-General: ++- ++-Changes to 1.38.0: ++-- Modify configure.in to add execute option to sqlite3 catalog ++- scripts. ++-- Create update_xxx_table_8_to_9 scripts for updatedb ++-- Fix wrong variable in bpipe.c debug output reported by user. ++-- Fix improper placement of encode_and_send_attributes() in ++- FD backup.c causing first file of non-portable Win32 backup ++- to have wrong stream. Reported by Thorsten. ++-- Move the -lcrypt for PostgreSQL after the PostgreSQL libs in ++- autoconf/bacula-macros/db.m4 as suggested by user. Fixes bug #457. ++-- Remove @STATIC_CONS@ from tray-monitor Makefile as suggested ++- by user. Fixes bug #456. ++- ++-Released 1.38.0 (28Oct05): 31 October 2005 +Index: patches/patches-1.38.0 +=================================================================== +RCS file: patches/patches-1.38.0 +diff -N patches/patches-1.38.0 +Index: patches/patches-1.38.1 +=================================================================== +RCS file: patches/patches-1.38.1 +diff -N patches/patches-1.38.1 +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ patches/patches-1.38.1 22 Nov 2005 10:50:55 -0000 1.1.2.2 +@@ -0,0 +1,14 @@ ++20Nov05 1.38.1-to-1.38.2.patch ++ This patch fixes the following bugs: ++ ++- Fix crash in tray-monitor when daemon disconnects. Bug #479. ++- Fix bnet-server bug found on OpenBSD. Bug #486 (bug originator ++ says this patch does not fix his problem) ++- Fix cancel failure bug. Bug #481 ++- Fix failure when Pool name has spaces. Bug #487 ++- Fix SD crash in autochanger code. Mutex failure. Bug #488 ++- Fix a couple of free()s in src/filed/acl.c ++- Fix memory overrun in bfile.c in building OS X resource ++ fork filename. Bug #489 ++ ++ +Index: src/version.h +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/version.h,v +retrieving revision 1.554.2.14 +retrieving revision 1.554.2.15 +diff -u -r1.554.2.14 -r1.554.2.15 +--- src/version.h 14 Nov 2005 14:21:58 -0000 1.554.2.14 ++++ src/version.h 22 Nov 2005 10:50:55 -0000 1.554.2.15 +@@ -1,11 +1,11 @@ + /* +- * Version $Id$ ++ * Version $Id$ + */ + + #undef VERSION +-#define VERSION "1.38.1" +-#define BDATE "14 November 2005" +-#define LSMDATE "14Nov05" ++#define VERSION "1.38.2" ++#define BDATE "20 November 2005" ++#define LSMDATE "20Nov05" + + /* Debug flags */ + #undef DEBUG +Index: src/dird/catreq.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/dird/catreq.c,v +retrieving revision 1.77.2.1 +retrieving revision 1.77.2.2 +diff -u -r1.77.2.1 -r1.77.2.2 +--- src/dird/catreq.c 26 Oct 2005 14:02:04 -0000 1.77.2.1 ++++ src/dird/catreq.c 22 Nov 2005 10:50:55 -0000 1.77.2.2 +@@ -10,7 +10,7 @@ + * Basic tasks done here: + * Handle Catalog services. + * +- * Version $Id$ ++ * Version $Id$ + */ + /* + Copyright (C) 2001-2005 Kern Sibbald +@@ -117,6 +117,7 @@ + if (sscanf(bs->msg, Find_media, &Job, &index, &pool_name, &mr.MediaType) == 4) { + memset(&pr, 0, sizeof(pr)); + bstrncpy(pr.Name, pool_name, sizeof(pr.Name)); ++ unbash_spaces(pr.Name); + ok = db_get_pool_record(jcr, jcr->db, &pr); + if (ok) { + mr.PoolId = pr.PoolId; +Index: src/dird/ua_restore.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/dird/ua_restore.c,v +retrieving revision 1.101.2.1 +retrieving revision 1.101.2.2 +diff -u -r1.101.2.1 -r1.101.2.2 +--- src/dird/ua_restore.c 26 Oct 2005 14:02:04 -0000 1.101.2.1 ++++ src/dird/ua_restore.c 22 Nov 2005 10:50:55 -0000 1.101.2.2 +@@ -10,7 +10,7 @@ + * + * Kern Sibbald, July MMII + * +- * Version $Id$ ++ * Version $Id$ + */ + /* + Copyright (C) 2002-2005 Kern Sibbald +@@ -409,7 +409,7 @@ + } + done = true; + switch (do_prompt(ua, "", _("Select item: "), NULL, 0)) { +- case -1: /* error */ ++ case -1: /* error or cancel */ + return 0; + case 0: /* list last 20 Jobs run */ + gui_save = ua->jcr->gui; +Index: src/dird/ua_run.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/dird/ua_run.c,v +retrieving revision 1.71 +retrieving revision 1.71.2.1 +diff -u -r1.71 -r1.71.2.1 +--- src/dird/ua_run.c 10 Aug 2005 16:35:19 -0000 1.71 ++++ src/dird/ua_run.c 22 Nov 2005 10:50:55 -0000 1.71.2.1 +@@ -4,7 +4,7 @@ + * + * Kern Sibbald, December MMI + * +- * Version $Id$ ++ * Version $Id$ + */ + /* + Copyright (C) 2001-2005 Kern Sibbald +@@ -851,6 +851,8 @@ + bsendmsg(ua, _("You must set the bootstrap file to NULL to be able to specify a JobId.\n")); + } + goto try_again; ++ case -1: /* error or cancel */ ++ goto bail_out; + default: + goto try_again; + } +Index: src/dird/ua_select.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/dird/ua_select.c,v +retrieving revision 1.65.2.1 +retrieving revision 1.65.2.2 +diff -u -r1.65.2.1 -r1.65.2.2 +--- src/dird/ua_select.c 12 Nov 2005 17:30:52 -0000 1.65.2.1 ++++ src/dird/ua_select.c 22 Nov 2005 10:50:55 -0000 1.65.2.2 +@@ -4,7 +4,7 @@ + * + * Kern Sibbald, October MMI + * +- * Version $Id$ ++ * Version $Id$ + */ + /* + Copyright (C) 2001-2005 Kern Sibbald +@@ -149,7 +149,9 @@ + } + } + UnlockRes(); +- do_prompt(ua, _("Storage"), _("Select Storage resource"), name, sizeof(name)); ++ if (do_prompt(ua, _("Storage"), _("Select Storage resource"), name, sizeof(name)) < 0) { ++ return NULL; ++ } + store = (STORE *)GetResWithName(R_STORAGE, name); + return store; + } +@@ -170,7 +172,9 @@ + } + } + UnlockRes(); +- do_prompt(ua, _("FileSet"), _("Select FileSet resource"), name, sizeof(name)); ++ if (do_prompt(ua, _("FileSet"), _("Select FileSet resource"), name, sizeof(name)) < 0) { ++ return NULL; ++ } + fs = (FILESET *)GetResWithName(R_FILESET, name); + return fs; + } +@@ -202,7 +206,9 @@ + } + } + UnlockRes(); +- do_prompt(ua, _("Catalog"), _("Select Catalog resource"), name, sizeof(name)); ++ if (do_prompt(ua, _("Catalog"), _("Select Catalog resource"), name, sizeof(name)) < 0) { ++ return NULL; ++ } + catalog = (CAT *)GetResWithName(R_CATALOG, name); + } + return catalog; +@@ -225,7 +231,9 @@ + } + } + UnlockRes(); +- do_prompt(ua, _("Job"), _("Select Job resource"), name, sizeof(name)); ++ if (do_prompt(ua, _("Job"), _("Select Job resource"), name, sizeof(name)) < 0) { ++ return NULL; ++ } + job = (JOB *)GetResWithName(R_JOB, name); + return job; + } +@@ -246,7 +254,9 @@ + } + } + UnlockRes(); +- do_prompt(ua, _("Job"), _("Select Restore Job"), name, sizeof(name)); ++ if (do_prompt(ua, _("Job"), _("Select Restore Job"), name, sizeof(name)) < 0) { ++ return NULL; ++ } + job = (JOB *)GetResWithName(R_JOB, name); + return job; + } +@@ -269,7 +279,9 @@ + } + } + UnlockRes(); +- do_prompt(ua, _("Client"), _("Select Client (File daemon) resource"), name, sizeof(name)); ++ if (do_prompt(ua, _("Client"), _("Select Client (File daemon) resource"), name, sizeof(name)) < 0) { ++ return NULL; ++ } + client = (CLIENT *)GetResWithName(R_CLIENT, name); + return client; + } +@@ -551,7 +563,9 @@ + } + } + UnlockRes(); +- do_prompt(ua, _("Pool"), _("Select Pool resource"), name, sizeof(name)); ++ if (do_prompt(ua, _("Pool"), _("Select Pool resource"), name, sizeof(name)) < 0) { ++ return NULL; ++ } + pool = (POOL *)GetResWithName(R_POOL, name); + return pool; + } +@@ -673,12 +687,16 @@ + * Returns: -1 on error + * index base 0 on success, and choice + * is copied to prompt if not NULL ++ * prompt is set to the chosen prompt item string + */ + int do_prompt(UAContext *ua, const char *automsg, const char *msg, char *prompt, int max_prompt) + { + int i, item; + char pmsg[MAXSTRING]; + ++ if (prompt) { ++ *prompt = 0; ++ } + if (ua->num_prompts == 2) { + item = 1; + if (prompt) { +@@ -698,15 +716,11 @@ + bsendmsg(ua, "%6d: %s\n", i, ua->prompt[i]); + } + +- if (prompt) { +- *prompt = 0; +- } +- + for ( ;; ) { + /* First item is the prompt string, not the items */ + if (ua->num_prompts == 1) { + bsendmsg(ua, _("Selection is empty!\n")); +- item = 0; /* list is empty ! */ ++ item = -1; /* list is empty ! */ + break; + } + if (ua->num_prompts == 2) { +@@ -741,7 +755,7 @@ + free(ua->prompt[i]); + } + ua->num_prompts = 0; +- return item - 1; ++ return item>0 ? item-1 : item; + } + + +Index: src/dird/ua_update.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/dird/ua_update.c,v +retrieving revision 1.7 +retrieving revision 1.7.2.1 +diff -u -r1.7 -r1.7.2.1 +--- src/dird/ua_update.c 28 Aug 2005 12:22:02 -0000 1.7 ++++ src/dird/ua_update.c 22 Nov 2005 10:50:55 -0000 1.7.2.1 +@@ -5,7 +5,7 @@ + * + * Kern Sibbald, September MM + * +- * Version $Id$ ++ * Version $Id$ + */ + /* + Copyright (C) 2000-2005 Kern Sibbald +@@ -590,7 +590,7 @@ + update_all_vols_from_pool(ua); + return 1; + default: /* Done or error */ +- bsendmsg(ua, _("Selection done.\n")); ++ bsendmsg(ua, _("Selection terminated.\n")); + return 1; + } + } +Index: src/filed/acl.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/filed/acl.c,v +retrieving revision 1.10.2.1 +retrieving revision 1.10.2.2 +diff -u -r1.10.2.1 -r1.10.2.2 +--- src/filed/acl.c 14 Nov 2005 20:20:38 -0000 1.10.2.1 ++++ src/filed/acl.c 22 Nov 2005 10:50:55 -0000 1.10.2.2 +@@ -26,7 +26,7 @@ + * + * Written by Preben 'Peppe' Guldberg, December MMIV + * +- * Version $Id$ ++ * Version $Id$ + */ + /* + Copyright (C) 2004-2005 Kern Sibbald +@@ -140,7 +140,7 @@ + + if ((acl_text = acl_get(jcr->last_fname)) != NULL) { + len = pm_strcpy(jcr->acl_text, acl_text); +- free(acl_text); ++ actuallyfree(acl_text); + return len; + } + return -1; +@@ -270,7 +270,7 @@ + if ((n = getacl(jcr->last_fname, n, acls)) > 0) { + if ((acl_text = acltostr(n, acls, FORM_SHORT)) != NULL) { + len = pm_strcpy(jcr->acl_text, acl_text); +- free(acl_text); ++ actuallyfree(acl_text); + return len; + } + } +Index: src/findlib/bfile.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/findlib/bfile.c,v +retrieving revision 1.40 +retrieving revision 1.40.2.1 +diff -u -r1.40 -r1.40.2.1 +--- src/findlib/bfile.c 10 Aug 2005 16:35:19 -0000 1.40 ++++ src/findlib/bfile.c 22 Nov 2005 10:50:55 -0000 1.40.2.1 +@@ -5,7 +5,7 @@ + * + * Kern Sibbald, April MMIII + * +- * Version $Id$ ++ * Version $Id$ + * + */ + /* +@@ -623,13 +623,10 @@ + int bopen_rsrc(BFILE *bfd, const char *fname, int flags, mode_t mode) + { + POOLMEM *rsrc_fname; +- size_t fname_len; + +- fname_len = strlen(fname); + rsrc_fname = get_pool_memory(PM_FNAME); +- bstrncpy(rsrc_fname, fname, fname_len + 1); +- bstrncpy(rsrc_fname + fname_len, _PATH_RSRCFORKSPEC, +- strlen(_PATH_RSRCFORKSPEC) + 1); ++ pm_strcpy(rsrc_fname, fname); ++ pm_strcat(rsrc_fname, _PATH_RSRCFORKSPEC); + bopen(bfd, rsrc_fname, flags, mode); + free_pool_memory(rsrc_fname); + return bfd->fid; +Index: src/lib/bnet_server.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/lib/bnet_server.c,v +retrieving revision 1.39 +retrieving revision 1.39.2.1 +diff -u -r1.39 -r1.39.2.1 +--- src/lib/bnet_server.c 18 Aug 2005 15:37:40 -0000 1.39 ++++ src/lib/bnet_server.c 22 Nov 2005 10:50:55 -0000 1.39.2.1 +@@ -16,7 +16,7 @@ + * Originally written by Kern Sibbald for inclusion in apcupsd, + * but heavily modified for Bacula + * +- * Version $Id$ ++ * Version $Id$ + */ + + #include "bacula.h" +@@ -153,7 +153,6 @@ + /* Error, get out */ + foreach_dlist(fd_ptr, &sockfds) { + close(fd_ptr->fd); +- free((void *)fd_ptr); + } + Emsg1(M_FATAL, 0, _("Error in select: %s\n"), be.strerror()); + break; +Index: src/stored/autochanger.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/stored/autochanger.c,v +retrieving revision 1.47.2.3 +retrieving revision 1.47.2.4 +diff -u -r1.47.2.3 -r1.47.2.4 +--- src/stored/autochanger.c 12 Nov 2005 17:30:53 -0000 1.47.2.3 ++++ src/stored/autochanger.c 22 Nov 2005 10:50:55 -0000 1.47.2.4 +@@ -4,7 +4,7 @@ + * + * Kern Sibbald, August MMII + * +- * Version $Id$ ++ * Version $Id$ + */ + /* + Copyright (C) 2002-2005 Kern Sibbald +@@ -163,6 +163,7 @@ + rtn_stat = -1; /* hard error */ + } + Dmsg2(400, "load slot %d status=%d\n", slot, status); ++ unlock_changer(dcr); + } else { + status = 0; /* we got what we want */ + dev->Slot = slot; /* set currently loaded slot */ +@@ -174,7 +175,6 @@ + } else { + rtn_stat = 0; /* no changer found */ + } +- unlock_changer(dcr); + free_pool_memory(changer); + return rtn_stat; + +Index: src/stored/status.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/stored/status.c,v +retrieving revision 1.44.2.1 +retrieving revision 1.44.2.2 +diff -u -r1.44.2.1 -r1.44.2.2 +--- src/stored/status.c 6 Oct 2005 07:04:13 -0000 1.44.2.1 ++++ src/stored/status.c 22 Nov 2005 10:50:55 -0000 1.44.2.2 +@@ -3,7 +3,7 @@ + * + * Kern Sibbald, May MMIII + * +- * Version $Id$ ++ * Version $Id$ + * + */ + /* +@@ -264,6 +264,7 @@ + bool found = false; + int bps, sec; + JCR *jcr; ++ DCR *dcr; + char JobName[MAX_NAME_LENGTH]; + char b1[30], b2[30], b3[30]; + +@@ -273,7 +274,8 @@ + bnet_fsend(user, _("%s Job %s waiting for Client connection.\n"), + job_type_to_str(jcr->JobType), jcr->Job); + } +- if (jcr->dcr && jcr->dcr->device) { ++ dcr = jcr->dcr; ++ if (dcr && dcr->device) { + bstrncpy(JobName, jcr->Job, sizeof(JobName)); + /* There are three periods after the Job name */ + char *p; +@@ -282,13 +284,16 @@ + *p = 0; + } + } +- bnet_fsend(user, _("%s %s job %s JobId=%d Volume=\"%s\" device=\"%s\"\n"), ++ bnet_fsend(user, _("%s %s job %s JobId=%d Volume=\"%s\"\n" ++ " pool=\"%s\" device=\"%s\"\n"), + job_level_to_str(jcr->JobLevel), + job_type_to_str(jcr->JobType), + JobName, + jcr->JobId, +- jcr->dcr->VolumeName, +- jcr->dcr->device->device_name); ++ dcr->VolumeName, ++ dcr->pool_name, ++ dcr->dev?dcr->dev->print_name(): ++ dcr->device->device_name); + sec = time(NULL) - jcr->run_time; + if (sec <= 0) { + sec = 1; +Index: src/stored/stored_conf.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/stored/stored_conf.c,v +retrieving revision 1.76 +retrieving revision 1.76.2.1 +diff -u -r1.76 -r1.76.2.1 +--- src/stored/stored_conf.c 9 Sep 2005 09:40:04 -0000 1.76 ++++ src/stored/stored_conf.c 22 Nov 2005 10:50:55 -0000 1.76.2.1 +@@ -3,7 +3,7 @@ + * + * Kern Sibbald, March MM + * +- * Version $Id$ ++ * Version $Id$ + */ + /* + Copyright (C) 2000-2005 Kern Sibbald +@@ -222,16 +222,16 @@ + res->res_dev.hdr.name, + res->res_dev.media_type, res->res_dev.device_name, + res->res_dev.label_type); +- sendit(sock, " rew_wait=%d min_bs=%d max_bs=%d\n", ++ sendit(sock, " rew_wait=%d min_bs=%d max_bs=%d chgr_wait=%d\n", + res->res_dev.max_rewind_wait, res->res_dev.min_block_size, +- res->res_dev.max_block_size); ++ res->res_dev.max_block_size, res->res_dev.max_changer_wait); + sendit(sock, " max_jobs=%d max_files=%" lld " max_size=%" lld "\n", + res->res_dev.max_volume_jobs, res->res_dev.max_volume_files, + res->res_dev.max_volume_size); + sendit(sock, " max_file_size=%" lld " capacity=%" lld "\n", + res->res_dev.max_file_size, res->res_dev.volume_capacity); +- sendit(sock, " spool_directory=%s\n", NPRT(res->res_dev.spool_directory)); +- sendit(sock, " max_spool_size=%" lld " max_job_spool_size=%" lld "\n", ++ sendit(sock, " spool_directory=%s\n", NPRT(res->res_dev.spool_directory)); ++ sendit(sock, " max_spool_size=%" lld " max_job_spool_size=%" lld "\n", + res->res_dev.max_spool_size, res->res_dev.max_job_spool_size); + if (res->res_dev.changer_res) { + sendit(sock, " changer=%p\n", res->res_dev.changer_res); +Index: src/tray-monitor/tray-monitor.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/tray-monitor/tray-monitor.c,v +retrieving revision 1.25.2.1 +retrieving revision 1.25.2.2 +diff -u -r1.25.2.1 -r1.25.2.2 +--- src/tray-monitor/tray-monitor.c 1 Oct 2005 10:20:18 -0000 1.25.2.1 ++++ src/tray-monitor/tray-monitor.c 22 Nov 2005 10:50:55 -0000 1.25.2.2 +@@ -4,7 +4,7 @@ + * + * Nicolas Boichat, August MMIV + * +- * Version $Id$ ++ * Version $Id$ + */ + + /* +@@ -881,7 +881,7 @@ + } + + if (item->D_sock == NULL) { +- g_slist_append(*list, (void *)_("Cannot connect to daemon.\n")); ++ g_slist_append(*list, g_string_new(_("Cannot connect to daemon.\n"))); + changeStatusMessage(item, _("Cannot connect to daemon.")); + item->state = error; + item->oldstate = error; +Index: updatedb/kes-1.38 +=================================================================== +RCS file: updatedb/kes-1.38 +diff -N updatedb/kes-1.38 +--- updatedb/kes-1.38 3 Nov 2005 14:54:28 -0000 1.1.2.1 ++++ /dev/null 1 Jan 1970 00:00:00 -0000 +@@ -1,19 +0,0 @@ +- Technical notes on version 1.38 +- Kern Sibbald +- +-General: +- +-Changes to 1.38.0: +-- Modify configure.in to add execute option to sqlite3 catalog +- scripts. +-- Create update_xxx_table_8_to_9 scripts for updatedb +-- Fix wrong variable in bpipe.c debug output reported by user. +-- Fix improper placement of encode_and_send_attributes() in +- FD backup.c causing first file of non-portable Win32 backup +- to have wrong stream. Reported by Thorsten. +-- Move the -lcrypt for PostgreSQL after the PostgreSQL libs in +- autoconf/bacula-macros/db.m4 as suggested by user. Fixes bug #457. +-- Remove @STATIC_CONS@ from tray-monitor Makefile as suggested +- by user. Fixes bug #456. +- +-Released 1.38.0 (28Oct05): 31 October 2005 diff --git a/Branch-2.2/bacula/patches/1.38.x/1.38.10-dvd-eof.patch b/Branch-2.2/bacula/patches/1.38.x/1.38.10-dvd-eof.patch new file mode 100644 index 0000000000..26cb3a7831 --- /dev/null +++ b/Branch-2.2/bacula/patches/1.38.x/1.38.10-dvd-eof.patch @@ -0,0 +1,35 @@ +Index: src/stored/block.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/stored/block.c,v +retrieving revision 1.116.2.3 +diff -u -u -b -r1.116.2.3 block.c +--- src/stored/block.c 24 Mar 2006 16:35:23 -0000 1.116.2.3 ++++ src/stored/block.c 12 Jun 2006 16:19:27 -0000 +@@ -9,7 +9,7 @@ + * + */ + /* +- Copyright (C) 2001-2005 Kern Sibbald ++ Copyright (C) 2001-2006 Kern Sibbald + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License +@@ -910,13 +910,12 @@ + Dmsg3(100, "Tests : %d %d %d\n", (dev->VolCatInfo.VolCatParts > 0), + ((dev->file_addr-dev->part_start) == dev->part_size), + (dev->part <= dev->VolCatInfo.VolCatParts));*/ +- /* Check for part file end */ +- if ((dev->num_parts > 0) && +- ((dev->file_addr-dev->part_start) == dev->part_size) && +- (dev->part < dev->num_parts)) { ++ /* Check for DVD part file end */ ++ if (dev->at_eof() && dev->is_dvd() && dev->num_parts > 0 && ++ dev->part < dev->num_parts) { + if (dvd_open_next_part(dcr) < 0) { +- Jmsg2(dcr->jcr, M_FATAL, 0, _("Unable to open device next part %s: ERR=%s\n"), +- dev->print_name(), strerror_dev(dev)); ++ Jmsg3(dcr->jcr, M_FATAL, 0, _("Unable to open device part=%d %s: ERR=%s\n"), ++ dev->part, dev->print_name(), strerror_dev(dev)); + dev->dev_errno = EIO; + return false; + } diff --git a/Branch-2.2/bacula/patches/1.38.x/1.38.10-scheduler.patch b/Branch-2.2/bacula/patches/1.38.x/1.38.10-scheduler.patch new file mode 100644 index 0000000000..292c4d6535 --- /dev/null +++ b/Branch-2.2/bacula/patches/1.38.x/1.38.10-scheduler.patch @@ -0,0 +1,28 @@ + + This patch should correct the FreeBSD mutex crash that happens in + the Director after a sudden clock shift or after the "reload" command. + Apply it to 1.38.10 (will not work with prior version) with: + + cd + patch -p0 <1.38.10-scheduler.patch + make + make install + ... + + + +Index: src/dird/scheduler.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/dird/scheduler.c,v +retrieving revision 1.33.2.2 +diff -u -r1.33.2.2 scheduler.c +--- src/dird/scheduler.c 4 Jun 2006 12:24:39 -0000 1.33.2.2 ++++ src/dird/scheduler.c 24 Jun 2006 17:25:58 -0000 +@@ -151,6 +151,7 @@ + free(next_job); + } + schedules_invalidated = false; ++ unlock_jobs(); + goto again; + } + unlock_jobs(); diff --git a/Branch-2.2/bacula/patches/1.38.x/1.38.6-script.patch b/Branch-2.2/bacula/patches/1.38.x/1.38.6-script.patch new file mode 100644 index 0000000000..7bce5fdf33 --- /dev/null +++ b/Branch-2.2/bacula/patches/1.38.x/1.38.6-script.patch @@ -0,0 +1,63 @@ + + This patch fixes a bug in the bacula start/stop script where + the binary directory is used rather than the scripts directory. + Apply the patch to version 1.38.6 with: + + cd + patch -p0 <1.38.6-script.patch + make Makefiles + make install + ... + +Index: scripts/bacula.in +=================================================================== +RCS file: /cvsroot/bacula/bacula/scripts/bacula.in,v +retrieving revision 1.13.2.3 +diff -u -r1.13.2.3 bacula.in +--- scripts/bacula.in 28 Mar 2006 16:42:19 -0000 1.13.2.3 ++++ scripts/bacula.in 29 Mar 2006 16:24:51 -0000 +@@ -13,25 +13,22 @@ + # easier to "steal" this code for the development + # environment where they are different. + # +-BACFDBIN=@sbindir@ + BACFDCFG=@sysconfdir@ +-BACSDBIN=@sbindir@ + BACSDCFG=@sysconfdir@ +-BACDIRBIN=@sbindir@ + BACDIRCFG=@sysconfdir@ + + case "$1" in + start) +- [ -x ${BACSDBIN}/bacula-ctl-sd ] && ${BACSDBIN}/bacula-ctl-sd $1 $2 +- [ -x ${BACFDBIN}/bacula-ctl-fd ] && ${BACFDBIN}/bacula-ctl-fd $1 $2 +- [ -x ${BACDIRBIN}/bacula-ctl-dir ] && ${BACDIRBIN}/bacula-ctl-dir $1 $2 ++ [ -x ${BACSDCFG}/bacula-ctl-sd ] && ${BACSDCFG}/bacula-ctl-sd $1 $2 ++ [ -x ${BACFDCFG}/bacula-ctl-fd ] && ${BACFDCFG}/bacula-ctl-fd $1 $2 ++ [ -x ${BACDIRCFG}/bacula-ctl-dir ] && ${BACDIRCFG}/bacula-ctl-dir $1 $2 + ;; + + stop) + # Stop the FD first so that SD will fail jobs and update catalog +- [ -x ${BACFDBIN}/bacula-ctl-fd ] && ${BACFDBIN}/bacula-ctl-fd $1 $2 +- [ -x ${BACSDBIN}/bacula-ctl-sd ] && ${BACSDBIN}/bacula-ctl-sd $1 $2 +- [ -x ${BACDIRBIN}/bacula-ctl-dir ] && ${BACDIRBIN}/bacula-ctl-dir $1 $2 ++ [ -x ${BACFDCFG}/bacula-ctl-fd ] && ${BACFDCFG}/bacula-ctl-fd $1 $2 ++ [ -x ${BACSDCFG}/bacula-ctl-sd ] && ${BACSDCFG}/bacula-ctl-sd $1 $2 ++ [ -x ${BACDIRCFG}/bacula-ctl-dir ] && ${BACDIRCFG}/bacula-ctl-dir $1 $2 + echo + sleep 6 + ;; +@@ -42,9 +39,9 @@ + ;; + + status) +- [ -x ${BACSDBIN}/bacula-ctl-sd ] && ${BACSDBIN}/bacula-ctl-sd status +- [ -x ${BACFDBIN}/bacula-ctl-fd ] && ${BACFDBIN}/bacula-ctl-fd status +- [ -x ${BACDIRBIN}/bacula-ctl-dir ] && ${BACDIRBIN}/bacula-ctl-dir status ++ [ -x ${BACSDCFG}/bacula-ctl-sd ] && ${BACSDCFG}/bacula-ctl-sd status ++ [ -x ${BACFDCFG}/bacula-ctl-fd ] && ${BACFDCFG}/bacula-ctl-fd status ++ [ -x ${BACDIRCFG}/bacula-ctl-dir ] && ${BACDIRCFG}/bacula-ctl-dir status + ;; + + *) diff --git a/Branch-2.2/bacula/patches/1.38.x/1.38.7-mysql.patch b/Branch-2.2/bacula/patches/1.38.x/1.38.7-mysql.patch new file mode 100644 index 0000000000..43e18a1353 --- /dev/null +++ b/Branch-2.2/bacula/patches/1.38.x/1.38.7-mysql.patch @@ -0,0 +1,34 @@ + +This patch (thanks to Frank Sweetser) should fix the timeout problem +users are experiencing with MySQL versions greater than 5.0.13. +It can be applied to Bacula version 1.38.7 (and possibly 1.38.5 and 1.38.6) +with: + + cd + patch -p0 <1.38.7-mysql.patch + make + make install + +Index: src/cats/mysql.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/cats/mysql.c,v +retrieving revision 1.37.2.2 +diff -u -r1.37.2.2 mysql.c +--- src/cats/mysql.c 4 Mar 2006 11:10:17 -0000 1.37.2.2 ++++ src/cats/mysql.c 7 Apr 2006 14:10:23 -0000 +@@ -132,7 +132,6 @@ + mysql_server_init(0, NULL, NULL); + #endif + mysql_init(&(mdb->mysql)); +- mdb->mysql.reconnect = 1; /* so connection does not timeout */ + Dmsg0(50, "mysql_init done\n"); + /* If connection fails, try at 5 sec intervals for 30 seconds. */ + for (int retry=0; retry < 6; retry++) { +@@ -153,6 +152,7 @@ + bmicrosleep(5,0); + } + ++ mdb->mysql.reconnect = 1; /* so connection does not timeout */ + Dmsg0(50, "mysql_real_connect done\n"); + Dmsg3(50, "db_user=%s db_name=%s db_password=%s\n", mdb->db_user, mdb->db_name, + mdb->db_password==NULL?"(NULL)":mdb->db_password); diff --git a/Branch-2.2/bacula/patches/1.38.x/patches-1.38.1 b/Branch-2.2/bacula/patches/1.38.x/patches-1.38.1 new file mode 100644 index 0000000000..8e815b0886 --- /dev/null +++ b/Branch-2.2/bacula/patches/1.38.x/patches-1.38.1 @@ -0,0 +1,14 @@ +20Nov05 1.38.1-to-1.38.2.patch + This patch fixes the following bugs: + +- Fix crash in tray-monitor when daemon disconnects. Bug #479. +- Fix bnet-server bug found on OpenBSD. Bug #486 (bug originator + says this patch does not fix his problem) +- Fix cancel failure bug. Bug #481 +- Fix failure when Pool name has spaces. Bug #487 +- Fix SD crash in autochanger code. Mutex failure. Bug #488 +- Fix a couple of free()s in src/filed/acl.c +- Fix memory overrun in bfile.c in building OS X resource + fork filename. Bug #489 + + diff --git a/Branch-2.2/bacula/patches/2.0.x/2.0.1-restart.patch b/Branch-2.2/bacula/patches/2.0.x/2.0.1-restart.patch new file mode 100644 index 0000000000..80353b3539 --- /dev/null +++ b/Branch-2.2/bacula/patches/2.0.x/2.0.1-restart.patch @@ -0,0 +1,43 @@ + + This patch should fix the Job restart on error bug that promotes + an Incremental backup to a Full backup. + + Apply it to version 2.0.1 (perhaps to 2.0.0) with: + + cd + patch -p0 <2.0.1-restart.patch + make + ... + make install + +Index: src/dird/job.c +=================================================================== +RCS file: /cvsroot/bacula/bacula/src/dird/job.c,v +retrieving revision 1.148.2.2 +diff -u -r1.148.2.2 job.c +--- src/dird/job.c 12 Jan 2007 09:58:04 -0000 1.148.2.2 ++++ src/dird/job.c 17 Jan 2007 15:29:25 -0000 +@@ -852,11 +852,6 @@ + free_pool_memory(jcr->fname); + jcr->fname = NULL; + } +- if (jcr->stime) { +- Dmsg0(200, "Free JCR stime\n"); +- free_pool_memory(jcr->stime); +- jcr->stime = NULL; +- } + if (jcr->RestoreBootstrap) { + free(jcr->RestoreBootstrap); + jcr->RestoreBootstrap = NULL; +@@ -889,6 +884,11 @@ + pthread_cond_destroy(&jcr->term_wait); + jcr->term_wait_inited = false; + } ++ if (jcr->stime) { ++ Dmsg0(200, "Free JCR stime\n"); ++ free_pool_memory(jcr->stime); ++ jcr->stime = NULL; ++ } + if (jcr->fname) { + Dmsg0(200, "Free JCR fname\n"); + free_pool_memory(jcr->fname); diff --git a/Branch-2.2/bacula/patches/2.0.x/2.0.3-ampm.patch b/Branch-2.2/bacula/patches/2.0.x/2.0.3-ampm.patch new file mode 100644 index 0000000000..d811507d43 --- /dev/null +++ b/Branch-2.2/bacula/patches/2.0.x/2.0.3-ampm.patch @@ -0,0 +1,86 @@ +This patch should resolve some problems with handling of am/pm +in schedules as reported by bug #808. + +According to the NIST (US National Institute of Standards and Technology), +12am and 12pm are ambiguous and can be defined to anything. However, +12:01am is the same as 00:01 and 12:01pm is the same as 12:01, so Bacula +defines 12am as 00:00 (midnight) and 12pm as 12:00 (noon). You can avoid +this abiguity (confusion) by using 24 hour time specifications (i.e. no +am/pm). This is the definition in Bacula version 2.0.3 and later. + +Apply it to version 2.0.3 with: + + cd + patch -p0 <2.0.3-ampm.patch + make + ... + make install + +Index: src/dird/run_conf.c +=================================================================== +--- src/dird/run_conf.c (revision 4349) ++++ src/dird/run_conf.c (working copy) +@@ -339,6 +339,7 @@ + for ( ; token != T_EOL; (token = lex_get_token(lc, T_ALL))) { + int len; + bool pm = false; ++ bool am = false; + switch (token) { + case T_NUMBER: + state = s_mday; +@@ -434,6 +435,7 @@ + if (!have_hour) { + clear_bits(0, 23, lrun.hour); + } ++// Dmsg1(000, "s_time=%s\n", lc->str); + p = strchr(lc->str, ':'); + if (!p) { + scan_err0(lc, _("Time logic error.\n")); +@@ -441,20 +443,19 @@ + } + *p++ = 0; /* separate two halves */ + code = atoi(lc->str); /* pick up hour */ ++ code2 = atoi(p); /* pick up minutes */ + len = strlen(p); +- if (len > 2 && p[len-1] == 'm') { +- if (p[len-2] == 'a') { +- pm = false; +- } else if (p[len-2] == 'p') { +- pm = true; +- } else { +- scan_err0(lc, _("Bad time specification.")); +- /* NOT REACHED */ +- } +- } else { +- pm = false; ++ if (len >= 2) { ++ p += 2; + } +- code2 = atoi(p); /* pick up minutes */ ++ if (strcasecmp(p, "pm") == 0) { ++ pm = true; ++ } else if (strcasecmp(p, "am") == 0) { ++ am = true; ++ } else if (len != 2) { ++ scan_err0(lc, _("Bad time specification.")); ++ /* NOT REACHED */ ++ } + /* + * Note, according to NIST, 12am and 12pm are ambiguous and + * can be defined to anything. However, 12:01am is the same +@@ -467,13 +468,14 @@ + code += 12; + } + /* am */ +- } else if (code == 12) { ++ } else if (am && code == 12) { + code -= 12; + } + if (code < 0 || code > 23 || code2 < 0 || code2 > 59) { + scan_err0(lc, _("Bad time specification.")); + /* NOT REACHED */ + } ++// Dmsg2(000, "hour=%d min=%d\n", code, code2); + set_bit(code, lrun.hour); + lrun.minute = code2; + have_hour = true; diff --git a/Branch-2.2/bacula/patches/2.0.x/2.0.3-maxbyteslist.patch b/Branch-2.2/bacula/patches/2.0.x/2.0.3-maxbyteslist.patch new file mode 100644 index 0000000000..ecb97b22df --- /dev/null +++ b/Branch-2.2/bacula/patches/2.0.x/2.0.3-maxbyteslist.patch @@ -0,0 +1,32 @@ + + This patch adds the MaxVolBytes to the output of a "show pools" command. + It fixes bug #814. Apply it to Bacula version 2.0.3 with: + + cd + patch -p0 <2.0.3-maxbyteslist.patch + make + ... + make install + + +Index: src/dird/dird_conf.c +=================================================================== +--- src/dird/dird_conf.c (revision 4349) ++++ src/dird/dird_conf.c (working copy) +@@ -844,10 +844,13 @@ + NPRT(res->res_pool.label_format)); + sendit(sock, _(" CleaningPrefix=%s LabelType=%d\n"), + NPRT(res->res_pool.cleaning_prefix), res->res_pool.LabelType); +- sendit(sock, _(" RecyleOldest=%d PurgeOldest=%d MaxVolJobs=%d MaxVolFiles=%d\n"), ++ sendit(sock, _(" RecyleOldest=%d PurgeOldest=%d\n"), + res->res_pool.recycle_oldest_volume, +- res->res_pool.purge_oldest_volume, +- res->res_pool.MaxVolJobs, res->res_pool.MaxVolFiles); ++ res->res_pool.purge_oldest_volume); ++ sendit(sock, _(" MaxVolJobs=%d MaxVolFiles=%d MaxVolBytes=%s\n"), ++ res->res_pool.MaxVolJobs, ++ res->res_pool.MaxVolFiles, ++ edit_uint64(res->res_pool.MaxVolFiles, ed1)); + sendit(sock, _(" MigTime=%s MigHiBytes=%s MigLoBytes=%s\n"), + edit_utime(res->res_pool.MigrationTime, ed1, sizeof(ed1)), + edit_uint64(res->res_pool.MigrationHighBytes, ed2), diff --git a/Branch-2.2/bacula/patches/2.0.x/2.0.3-maxwaittime.patch b/Branch-2.2/bacula/patches/2.0.x/2.0.3-maxwaittime.patch new file mode 100644 index 0000000000..5ed6b29ca7 --- /dev/null +++ b/Branch-2.2/bacula/patches/2.0.x/2.0.3-maxwaittime.patch @@ -0,0 +1,137 @@ + +This patch should fix the logic error in checking for the MaxWaitTime of +a job in src/dird/job.c. It fixes bug #802. + +Apply it to Bacula version 2.0.3 with: + + cd + patch -p0 <2.0.3-maxwaittime.patch + make + ... + make install + + + +Index: src/dird/job.c +=================================================================== +--- src/dird/job.c (revision 4349) ++++ src/dird/job.c (working copy) +@@ -481,7 +481,6 @@ + static bool job_check_maxwaittime(JCR *control_jcr, JCR *jcr) + { + bool cancel = false; +- bool ok_to_cancel = false; + JOB *job = jcr->job; + + if (job_canceled(jcr)) { +@@ -493,69 +492,18 @@ + } + if (jcr->JobLevel == L_FULL && job->FullMaxWaitTime != 0 && + (watchdog_time - jcr->start_time) >= job->FullMaxWaitTime) { +- ok_to_cancel = true; ++ cancel = true; + } else if (jcr->JobLevel == L_DIFFERENTIAL && job->DiffMaxWaitTime != 0 && + (watchdog_time - jcr->start_time) >= job->DiffMaxWaitTime) { +- ok_to_cancel = true; ++ cancel = true; + } else if (jcr->JobLevel == L_INCREMENTAL && job->IncMaxWaitTime != 0 && + (watchdog_time - jcr->start_time) >= job->IncMaxWaitTime) { +- ok_to_cancel = true; ++ cancel = true; + } else if (job->MaxWaitTime != 0 && + (watchdog_time - jcr->start_time) >= job->MaxWaitTime) { +- ok_to_cancel = true; +- } +- if (!ok_to_cancel) { +- return false; +- } +- +-/* +- * I don't see the need for all this -- kes 17Dec06 +- */ +-#ifdef xxx +- Dmsg3(800, "Job %d (%s): MaxWaitTime of %d seconds exceeded, " +- "checking status\n", +- jcr->JobId, jcr->Job, job->MaxWaitTime); +- switch (jcr->JobStatus) { +- case JS_Created: +- case JS_Blocked: +- case JS_WaitFD: +- case JS_WaitSD: +- case JS_WaitStoreRes: +- case JS_WaitClientRes: +- case JS_WaitJobRes: +- case JS_WaitPriority: +- case JS_WaitMaxJobs: +- case JS_WaitStartTime: + cancel = true; +- Dmsg0(200, "JCR blocked in #1\n"); +- break; +- case JS_Running: +- Dmsg0(800, "JCR running, checking SD status\n"); +- switch (jcr->SDJobStatus) { +- case JS_WaitMount: +- case JS_WaitMedia: +- case JS_WaitFD: +- cancel = true; +- Dmsg0(800, "JCR blocked in #2\n"); +- break; +- default: +- Dmsg0(800, "JCR not blocked in #2\n"); +- break; +- } +- break; +- case JS_Terminated: +- case JS_ErrorTerminated: +- case JS_Canceled: +- case JS_FatalError: +- Dmsg0(800, "JCR already dead in #3\n"); +- break; +- default: +- Jmsg1(jcr, M_ERROR, 0, _("Unhandled job status code %d\n"), +- jcr->JobStatus); + } +- Dmsg3(800, "MaxWaitTime result: %scancel JCR %p (%s)\n", +- cancel ? "" : "do not ", jcr, jcr->Job); +-#endif ++ + return cancel; + } + +@@ -574,36 +522,6 @@ + return false; + } + +-#ifdef xxx +- switch (jcr->JobStatus) { +- case JS_Created: +- case JS_Running: +- case JS_Blocked: +- case JS_WaitFD: +- case JS_WaitSD: +- case JS_WaitStoreRes: +- case JS_WaitClientRes: +- case JS_WaitJobRes: +- case JS_WaitPriority: +- case JS_WaitMaxJobs: +- case JS_WaitStartTime: +- case JS_Differences: +- cancel = true; +- break; +- case JS_Terminated: +- case JS_ErrorTerminated: +- case JS_Canceled: +- case JS_FatalError: +- cancel = false; +- break; +- default: +- Jmsg1(jcr, M_ERROR, 0, _("Unhandled job status code %d\n"), +- jcr->JobStatus); +- } +- +- Dmsg3(200, "MaxRunTime result: %scancel JCR %p (%s)\n", +- cancel ? "" : "do not ", jcr, jcr->Job); +-#endif + return true; + } + diff --git a/Branch-2.2/bacula/patches/2.0.x/2.0.3-scheduler-next-hour.patch b/Branch-2.2/bacula/patches/2.0.x/2.0.3-scheduler-next-hour.patch new file mode 100644 index 0000000000..115e86b469 --- /dev/null +++ b/Branch-2.2/bacula/patches/2.0.x/2.0.3-scheduler-next-hour.patch @@ -0,0 +1,88 @@ + + This patch should fix bug #812 where the DST time shift was + incorrectly handled. This patch was submitted by Martin Simmons. + Apply it to Bacula version 2.0.3 with: + + cd + patch -p0 <2.0.3-scheduler-next-hour.patch + make + ... + make install + +Index: src/dird/scheduler.c +=================================================================== +--- src/dird/scheduler.c (revision 4445) ++++ src/dird/scheduler.c (working copy) +@@ -175,11 +175,11 @@ + } + /* Recheck at least once per minute */ + bmicrosleep((next_check_secs < twait)?next_check_secs:twait, 0); +- /* Attempt to handle clock shift from/to daylight savings time ++ /* Attempt to handle clock shift (but not daylight savings time changes) + * we allow a skew of 10 seconds before invalidating everything. + */ + now = time(NULL); +- if (now < prev+10 || now > (prev+next_check_secs+10)) { ++ if (now < prev-10 || now > (prev+next_check_secs+10)) { + schedules_invalidated = true; + } + } +@@ -284,6 +284,9 @@ + wom = mday / 7; + woy = tm_woy(now); /* get week of year */ + ++ Dmsg7(dbglvl, "now = %x: h=%d m=%d md=%d wd=%d wom=%d woy=%d\n", ++ now, hour, month, mday, wday, wom, woy); ++ + /* + * Compute values for next hour from now. + * We do this to be sure we don't miss a job while +@@ -299,6 +302,9 @@ + nh_wom = nh_mday / 7; + nh_woy = tm_woy(now); /* get week of year */ + ++ Dmsg7(dbglvl, "nh = %x: h=%d m=%d md=%d wd=%d wom=%d woy=%d\n", ++ next_hour, nh_hour, nh_month, nh_mday, nh_wday, nh_wom, nh_woy); ++ + /* Loop through all jobs */ + LockRes(); + foreach_res(job, R_JOB) { +@@ -351,24 +357,20 @@ + + Dmsg3(dbglvl, "run@%p: run_now=%d run_nh=%d\n", run, run_now, run_nh); + +- /* find time (time_t) job is to be run */ +- (void)localtime_r(&now, &tm); /* reset tm structure */ +- tm.tm_min = run->minute; /* set run minute */ +- tm.tm_sec = 0; /* zero secs */ +- if (run_now) { +- runtime = mktime(&tm); +- add_job(job, run, now, runtime); +- } +- /* If job is to be run in the next hour schedule it */ +- if (run_nh) { +- /* Set correct values */ +- tm.tm_hour = nh_hour; +- tm.tm_mday = nh_mday + 1; /* fixup because we biased for tests above */ +- tm.tm_mon = nh_month; +- tm.tm_year = nh_year; +- runtime = mktime(&tm); +- add_job(job, run, now, runtime); +- } ++ if (run_now || run_nh) { ++ /* find time (time_t) job is to be run */ ++ (void)localtime_r(&now, &tm); /* reset tm structure */ ++ tm.tm_min = run->minute; /* set run minute */ ++ tm.tm_sec = 0; /* zero secs */ ++ runtime = mktime(&tm); ++ if (run_now) { ++ add_job(job, run, now, runtime); ++ } ++ /* If job is to be run in the next hour schedule it */ ++ if (run_nh) { ++ add_job(job, run, now, runtime + 3600); ++ } ++ } + } + } + UnlockRes(); diff --git a/Branch-2.2/bacula/patches/2.0.x/2.0.3-tls-disconnect.patch b/Branch-2.2/bacula/patches/2.0.x/2.0.3-tls-disconnect.patch new file mode 100644 index 0000000000..e634cb0d09 --- /dev/null +++ b/Branch-2.2/bacula/patches/2.0.x/2.0.3-tls-disconnect.patch @@ -0,0 +1,50 @@ + +This patch should fix the spurious connection drops that fail jobs +as reported in bug #888. +Apply it to version 2.0.3 (possibly earlier versions of 2.0) with: + + cd + patch -p0 <2.0.3-tls-disconnect.patch + make + ... + make install + +Index: src/lib/tls.c +=================================================================== +--- src/lib/tls.c (revision 4668) ++++ src/lib/tls.c (working copy) +@@ -540,14 +540,6 @@ + * The first time to initiate the shutdown handshake, and the second to + * receive the peer's reply. + * +- * However, it is valid to close the SSL connection after the initial +- * shutdown notification is sent to the peer, without waiting for the +- * peer's reply, as long as you do not plan to re-use that particular +- * SSL connection object. +- * +- * Because we do not re-use SSL connection objects, I do not bother +- * calling SSL_shutdown a second time. +- * + * In addition, if the underlying socket is blocking, SSL_shutdown() + * will not return until the current stage of the shutdown process has + * completed or an error has occured. By setting the socket blocking +@@ -560,6 +552,10 @@ + flags = bnet_set_blocking(bsock); + + err = SSL_shutdown(bsock->tls->openssl); ++ if (err == 0) { ++ /* Finish up the closing */ ++ err = SSL_shutdown(bsock->tls->openssl); ++ } + + switch (SSL_get_error(bsock->tls->openssl, err)) { + case SSL_ERROR_NONE: +@@ -574,8 +570,6 @@ + break; + } + +- /* Restore saved flags */ +- bnet_restore_blocking(bsock, flags); + } + + /* Does all the manual labor for tls_bsock_readn() and tls_bsock_writen() */ diff --git a/Branch-2.2/bacula/patches/2.0.x/2.0.3-verify.patch b/Branch-2.2/bacula/patches/2.0.x/2.0.3-verify.patch new file mode 100644 index 0000000000..e239584028 --- /dev/null +++ b/Branch-2.2/bacula/patches/2.0.x/2.0.3-verify.patch @@ -0,0 +1,141 @@ +This patch should fix the problem reported in bug #803 where a Verify +job select the JobId to verified at schedule time rather than at runtime. +This makes it difficult or impossible to schedule a verify just after +a backup. + +Apply this patch to Bacula version 2.0.3 (probably 2.0.2 as well) with: + + cd + patch -p0 <2.0.3-verify.patch + make + ... + make install + +Index: src/dird/verify.c +=================================================================== +--- src/dird/verify.c (revision 4353) ++++ src/dird/verify.c (working copy) +@@ -1,22 +1,7 @@ + /* +- * +- * Bacula Director -- verify.c -- responsible for running file verification +- * +- * Kern Sibbald, October MM +- * +- * Basic tasks done here: +- * Open DB +- * Open connection with File daemon and pass him commands +- * to do the verify. +- * When the File daemon sends the attributes, compare them to +- * what is in the DB. +- * +- * Version $Id$ +- */ +-/* + Bacula® - The Network Backup Solution + +- Copyright (C) 2000-2006 Free Software Foundation Europe e.V. ++ Copyright (C) 2000-2007 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. +@@ -40,6 +25,21 @@ + (FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zürich, + Switzerland, email:ftf@fsfeurope.org. + */ ++/* ++ * ++ * Bacula Director -- verify.c -- responsible for running file verification ++ * ++ * Kern Sibbald, October MM ++ * ++ * Basic tasks done here: ++ * Open DB ++ * Open connection with File daemon and pass him commands ++ * to do the verify. ++ * When the File daemon sends the attributes, compare them to ++ * what is in the DB. ++ * ++ * Version $Id$ ++ */ + + + #include "bacula.h" +@@ -66,6 +66,22 @@ + */ + bool do_verify_init(JCR *jcr) + { ++ return true; ++} ++ ++ ++/* ++ * Do a verification of the specified files against the Catlaog ++ * ++ * Returns: false on failure ++ * true on success ++ */ ++bool do_verify(JCR *jcr) ++{ ++ const char *level; ++ BSOCK *fd; ++ int stat; ++ char ed1[100]; + JOB_DBR jr; + JobId_t verify_jobid = 0; + const char *Name; +@@ -74,12 +90,16 @@ + + memset(&jcr->previous_jr, 0, sizeof(jcr->previous_jr)); + +- Dmsg1(9, "bdird: created client %s record\n", jcr->client->hdr.name); +- + /* +- * Find JobId of last job that ran. E.g. +- * for VERIFY_CATALOG we want the JobId of the last INIT. +- * for VERIFY_VOLUME_TO_CATALOG, we want the JobId of the ++ * Find JobId of last job that ran. Note, we do this when ++ * the job actually starts running, not at schedule time, ++ * so that we find the last job that terminated before ++ * this job runs rather than before it is scheduled. This ++ * permits scheduling a Backup and Verify at the same time, ++ * but with the Verify at a lower priority. ++ * ++ * For VERIFY_CATALOG we want the JobId of the last INIT. ++ * For VERIFY_VOLUME_TO_CATALOG, we want the JobId of the + * last backup Job. + */ + if (jcr->JobLevel == L_VERIFY_CATALOG || +@@ -89,7 +109,7 @@ + if (jcr->verify_job && + (jcr->JobLevel == L_VERIFY_VOLUME_TO_CATALOG || + jcr->JobLevel == L_VERIFY_DISK_TO_CATALOG)) { +- Name = jcr->verify_job->hdr.name; ++ Name = jcr->verify_job->name(); + } else { + Name = NULL; + } +@@ -149,23 +169,7 @@ + jcr->fileset = jcr->verify_job->fileset; + } + Dmsg2(100, "ClientId=%u JobLevel=%c\n", jcr->previous_jr.ClientId, jcr->JobLevel); +- return true; +-} + +- +-/* +- * Do a verification of the specified files against the Catlaog +- * +- * Returns: false on failure +- * true on success +- */ +-bool do_verify(JCR *jcr) +-{ +- const char *level; +- BSOCK *fd; +- int stat; +- char ed1[100]; +- + if (!db_update_job_start_record(jcr, jcr->db, &jcr->jr)) { + Jmsg(jcr, M_FATAL, 0, "%s", db_strerror(jcr->db)); + return false; diff --git a/Branch-2.2/bacula/patches/2.2.7-fpformat.patch b/Branch-2.2/bacula/patches/2.2.7-fpformat.patch new file mode 100644 index 0000000000..c022627abd --- /dev/null +++ b/Branch-2.2/bacula/patches/2.2.7-fpformat.patch @@ -0,0 +1,120 @@ + + This patch fixes a float point editing bug introduced in 2.2.7 (I think) + causing the rate fields to be formated incorrectly (actually trunctated). + This fixes bug #1036. + + Apply it to version 2.2.7 with: + + cd + patch -p0 <2.2.7-fpformat.patch + ./configure + make + ... + make install + + +Index: src/lib/bsnprintf.c +=================================================================== +--- src/lib/bsnprintf.c (revision 6183) ++++ src/lib/bsnprintf.c (working copy) +@@ -16,7 +16,7 @@ + /* + Bacula® - The Network Backup Solution + +- Copyright (C) 2005-2007 Free Software Foundation Europe e.V. ++ Copyright (C) 2005-2008 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. +@@ -566,11 +566,11 @@ + return result; + } + +-static long round(LDOUBLE value) ++static int64_t round(LDOUBLE value) + { +- long intpart; ++ int64_t intpart; + +- intpart = (long)value; ++ intpart = (int64_t)value; + value = value - intpart; + if (value >= 0.5) + intpart++; +@@ -584,8 +584,8 @@ + int signvalue = 0; + LDOUBLE ufvalue; + #ifndef HAVE_FCVT +- char iconvert[25]; +- char fconvert[25]; ++ char iconvert[311]; ++ char fconvert[311]; + #else + char iconvert[311]; + char fconvert[311]; +@@ -602,6 +602,7 @@ + int caps = 0; + int64_t intpart; + int64_t fracpart; ++ const char *cvt_str; + + /* + * AIX manpage says the default is 0, but Solaris says the default +@@ -625,7 +626,7 @@ + #endif + + #ifndef HAVE_FCVT +- intpart = (long)ufvalue; ++ intpart = (int64_t)ufvalue; + + /* + * Sorry, we only support 9 digits past the decimal because of our +@@ -645,28 +646,30 @@ + } + + #ifdef DEBUG_SNPRINTF +- printf("fmtfp: %g %d.%d min=%d max=%d\n", ++ printf("fmtfp: %g %lld.%lld min=%d max=%d\n", + (double)fvalue, intpart, fracpart, min, max); + #endif + + /* Convert integer part */ ++ cvt_str = caps ? "0123456789ABCDEF" : "0123456789abcdef"; + do { +- iconvert[iplace++] = +- (caps ? "0123456789ABCDEF" : "0123456789abcdef")[intpart % 10]; ++ iconvert[iplace++] = cvt_str[(int)(intpart % 10)]; + intpart = (intpart / 10); +- } while (intpart && (iplace < (int)sizeof(iplace))); +- if (iplace == (int)sizeof(iplace)) { ++ } while (intpart && (iplace < (int)sizeof(iconvert))); ++ ++ if (iplace == (int)sizeof(fconvert)) { + iplace--; + } + iconvert[iplace] = 0; + + /* Convert fractional part */ ++ cvt_str = caps ? "0123456789ABCDEF" : "0123456789abcdef"; + do { +- fconvert[fplace++] = +- (caps ? "0123456789ABCDEF" : "0123456789abcdef")[fracpart % 10]; ++ fconvert[fplace++] = cvt_str[fracpart % 10]; + fracpart = (fracpart / 10); +- } while (fracpart && (fplace < (int)sizeof(fplace))); +- if (fplace == (int)sizeof(fplace)) { ++ } while (fracpart && (fplace < (int)sizeof(fconvert))); ++ ++ if (fplace == (int)sizeof(fconvert)) { + fplace--; + } + fconvert[fplace] = 0; +@@ -825,7 +828,7 @@ + NULL + }; + double fp_nums[] = { -1.5, 134.21, 91340.2, 341.1234, 0203.9, 0.96, 0.996, +- 0.9996, 1.996, 4.136, 6442452944.1234, 0 ++ 0.9996, 1.996, 4.136, 6442452944.1234, 0, 23365.5 + }; + #endif + char *int_fmt[] = { diff --git a/Branch-2.2/bacula/patches/2.2.7-jobdefs-migtype.patch b/Branch-2.2/bacula/patches/2.2.7-jobdefs-migtype.patch new file mode 100644 index 0000000000..c636dd68ba --- /dev/null +++ b/Branch-2.2/bacula/patches/2.2.7-jobdefs-migtype.patch @@ -0,0 +1,56 @@ + + This patch permits to use migration options with JobDefs. + This patch fixes bug #1028. + + Apply the patch to 2.2.7 (and possibly any 2.2.x version with): + + cd + patch -p0 <2.2.7-jobdefs-migtype.patch + ./configure + make + ... + make install + +Index: src/dird/dird.c +=================================================================== +--- src/dird/dird.c (revision 6183) ++++ src/dird/dird.c (working copy) +@@ -58,6 +58,7 @@ + void store_jobtype(LEX *lc, RES_ITEM *item, int index, int pass); + void store_level(LEX *lc, RES_ITEM *item, int index, int pass); + void store_replace(LEX *lc, RES_ITEM *item, int index, int pass); ++void store_migtype(LEX *lc, RES_ITEM *item, int index, int pass); + void init_device_resources(); + + static char *runjob = NULL; +@@ -698,6 +699,7 @@ + job_items[i].handler == store_jobtype || + job_items[i].handler == store_level || + job_items[i].handler == store_pint || ++ job_items[i].handler == store_migtype || + job_items[i].handler == store_replace) { + def_ivalue = (int *)((char *)(job->jobdefs) + offset); + Dmsg5(400, "Job \"%s\", field \"%s\" def_ivalue=%d item %d offset=%u\n", +Index: src/dird/dird_conf.c +=================================================================== +--- src/dird/dird_conf.c (revision 6183) ++++ src/dird/dird_conf.c (working copy) +@@ -74,8 +74,8 @@ + void store_level(LEX *lc, RES_ITEM *item, int index, int pass); + void store_replace(LEX *lc, RES_ITEM *item, int index, int pass); + void store_acl(LEX *lc, RES_ITEM *item, int index, int pass); ++void store_migtype(LEX *lc, RES_ITEM *item, int index, int pass); + static void store_device(LEX *lc, RES_ITEM *item, int index, int pass); +-static void store_migtype(LEX *lc, RES_ITEM *item, int index, int pass); + static void store_runscript(LEX *lc, RES_ITEM *item, int index, int pass); + static void store_runscript_when(LEX *lc, RES_ITEM *item, int index, int pass); + static void store_runscript_cmd(LEX *lc, RES_ITEM *item, int index, int pass); +@@ -1548,7 +1548,7 @@ + * Store JobType (backup, verify, restore) + * + */ +-static void store_migtype(LEX *lc, RES_ITEM *item, int index, int pass) ++void store_migtype(LEX *lc, RES_ITEM *item, int index, int pass) + { + int token, i; + diff --git a/Branch-2.2/bacula/patches/2.2.7-mysql-batch-timeout.patch b/Branch-2.2/bacula/patches/2.2.7-mysql-batch-timeout.patch new file mode 100644 index 0000000000..fafb85d1e1 --- /dev/null +++ b/Branch-2.2/bacula/patches/2.2.7-mysql-batch-timeout.patch @@ -0,0 +1,30 @@ + + This patch fixes bug #1034 about Temporary MySQL table 'batch' + disappears if MySQL connection times out. + + Apply the patch to 2.2.7 (and possibly any 2.2.x version with): + + cd + patch -p0 <2.2.7-mysql-batch-timeout.patch + ./configure + make + ... + make install + + + +Index: src/cats/mysql.c +=================================================================== +--- src/cats/mysql.c (révision 6192) ++++ src/cats/mysql.c (copie de travail) +@@ -205,6 +205,10 @@ + Dmsg3(100, "opendb ref=%d connected=%d db=%p\n", mdb->ref_count, + mdb->connected, mdb->db); + ++ /* Set connection timeout to 8 days specialy for batch mode */ ++ sql_query(mdb, "SET wait_timeout=691200"); ++ sql_query(mdb, "SET interactive_timeout=691200"); ++ + V(mutex); + return 1; + } diff --git a/Branch-2.2/bacula/patches/2.2.7-old-postgresql.patch b/Branch-2.2/bacula/patches/2.2.7-old-postgresql.patch new file mode 100644 index 0000000000..d13b11865d --- /dev/null +++ b/Branch-2.2/bacula/patches/2.2.7-old-postgresql.patch @@ -0,0 +1,26 @@ + + If you have an old version of PostgreSQL, for example, + version 7.3 or older, it may not properly build with the current + Bacula release due to incompatible changes in the PostgreSQL + header files between version. Only in the case that build fails, + you might try applying this patch with: + + cd + patch -p1 <2.2.7-old-postgresql.patch + ./configure + make + ... + make install + + +diff -uNr bacula-2.2.7/src/cats/postgresql.c bacula-2.2.7-fixed/src/cats/postgresql.c +--- bacula-2.2.7/src/cats/postgresql.c 2007-12-08 04:54:55.000000000 -0500 ++++ bacula-2.2.7-fixed/src/cats/postgresql.c 2007-12-29 08:34:10.000000000 -0500 +@@ -47,7 +47,6 @@ + #ifdef HAVE_POSTGRESQL + + #include "postgres_ext.h" /* needed for NAMEDATALEN */ +-#include "pg_config_manual.h" /* get NAMEDATALEN on version 8.3 or later */ + + /* ----------------------------------------------------------------------- + * diff --git a/Branch-2.2/bacula/patches/2.2.7-reserve.patch b/Branch-2.2/bacula/patches/2.2.7-reserve.patch new file mode 100644 index 0000000000..42daad1280 --- /dev/null +++ b/Branch-2.2/bacula/patches/2.2.7-reserve.patch @@ -0,0 +1,1467 @@ + + This patch has a number of cleanups and improvements to the SD + reservations system. It should fix a number of problems with + dual drive autochangers as well ensure that volume use durations + and max volume jobs are better respected. + + Apply it to version 2.2.7 (possibly some earlier versions) with: + + cd + patch -p1 <2.2.7-reserve.patch + ./configure + make + ... + make install + + +diff -ur k1/src/lib/message.c k3/src/lib/message.c +--- k1/src/lib/message.c 2007-10-19 13:47:58.000000000 +0200 ++++ k3/src/lib/message.c 2007-12-22 19:13:00.000000000 +0100 +@@ -54,6 +54,7 @@ + int verbose = 0; /* increase User messages */ + /* Keep debug level set to zero by default */ + int debug_level = 0; /* debug level */ ++bool dbg_timestamp = false; /* print timestamp in debug output */ + time_t daemon_start_time = 0; /* Daemon start time */ + const char *version = VERSION " (" BDATE ")"; + char my_name[30]; /* daemon name is stored here */ +diff -ur k1/src/lib/message.h k3/src/lib/message.h +--- k1/src/lib/message.h 2007-10-03 13:36:47.000000000 +0200 ++++ k3/src/lib/message.h 2007-12-22 19:13:06.000000000 +0100 +@@ -154,6 +154,7 @@ + extern DLL_IMP_EXP sql_escape p_sql_escape; + + extern DLL_IMP_EXP int debug_level; ++extern DLL_IMP_EXP bool dbg_timestamp; /* print timestamp in debug output */ + extern DLL_IMP_EXP int verbose; + extern DLL_IMP_EXP char my_name[]; + extern DLL_IMP_EXP const char * working_directory; +diff -ur k1/src/stored/acquire.c k3/src/stored/acquire.c +--- k1/src/stored/acquire.c 2007-09-14 11:49:06.000000000 +0200 ++++ k3/src/stored/acquire.c 2007-12-22 19:12:23.000000000 +0100 +@@ -30,7 +30,7 @@ + * + * Kern Sibbald, August MMII + * +- * Version $Id: acquire.c 5552 2007-09-14 09:49:06Z kerns $ ++ * Version $Id: acquire.c 6081 2007-12-21 14:11:40Z kerns $ + */ + + #include "bacula.h" /* pull in global headers */ +@@ -38,6 +38,7 @@ + + /* Forward referenced functions */ + static void attach_dcr_to_dev(DCR *dcr); ++static bool is_suitable_volume_mounted(DCR *dcr); + + + /********************************************************************* +@@ -316,9 +317,9 @@ + */ + DCR *acquire_device_for_append(DCR *dcr) + { +- bool release = false; +- bool recycle = false; + bool do_mount = false; ++ bool release = false; ++ bool have_vol; + DEVICE *dev = dcr->dev; + JCR *jcr = dcr->jcr; + +@@ -337,6 +338,11 @@ + goto get_out; + } + ++ /* ++ * have_vol defines whether or not mount_next_write_volume should ++ * ask the Director again about what Volume to use. ++ */ ++ have_vol = is_suitable_volume_mounted(dcr); + if (dev->can_append()) { + Dmsg0(190, "device already in append.\n"); + /* +@@ -351,25 +357,11 @@ + * dcr->VolumeName is what we pass into the routines, or + * get back from the subroutines. + */ +- bstrncpy(dcr->VolumeName, dev->VolHdr.VolumeName, sizeof(dcr->VolumeName)); +- if (!dir_get_volume_info(dcr, GET_VOL_INFO_FOR_WRITE) && ++ if (!have_vol && + !(dir_find_next_appendable_volume(dcr) && + strcmp(dev->VolHdr.VolumeName, dcr->VolumeName) == 0)) { /* wrong tape mounted */ +- Dmsg2(190, "Wrong tape mounted: %s. wants:%s\n", dev->VolHdr.VolumeName, +- dcr->VolumeName); +- /* Release volume reserved by dir_find_next_appendable_volume() */ +- if (dcr->VolumeName[0]) { +- volume_unused(dcr); +- } +- if (dev->num_writers != 0) { +- Jmsg3(jcr, M_FATAL, 0, _("Wanted to append to Volume \"%s\", but device %s is busy writing on \"%s\" .\n"), +- dcr->VolumeName, dev->print_name(), dev->VolHdr.VolumeName); +- Dmsg3(200, "Wanted to append to Volume \"%s\", but device %s is busy writing on \"%s\" .\n", +- dcr->VolumeName, dev->print_name(), dev->VolHdr.VolumeName); +- goto get_out; +- } + /* Wrong tape mounted, release it, then fall through to get correct one */ +- Dmsg0(190, "Wrong tape mounted, release and try mount.\n"); ++ Dmsg0(50, "Wrong tape mounted, release and try mount.\n"); + release = true; + do_mount = true; + } else { +@@ -378,14 +370,17 @@ + * we do not need to do mount_next_write_volume(), unless + * we need to recycle the tape. + */ +- recycle = strcmp(dcr->VolCatInfo.VolCatStatus, "Recycle") == 0; +- Dmsg1(190, "Correct tape mounted. recycle=%d\n", recycle); +- if (recycle && dev->num_writers != 0) { ++ do_mount = strcmp(dcr->VolCatInfo.VolCatStatus, "Recycle") == 0; ++ Dmsg2(190, "jid=%u Correct tape mounted. recycle=%d\n", ++ (uint32_t)jcr->JobId, do_mount); ++#ifdef xxx ++ if (do_mount && dev->num_writers != 0) { + Jmsg(jcr, M_FATAL, 0, _("Cannot recycle volume \"%s\"" + " on device %s because it is in use by another job.\n"), + dev->VolHdr.VolumeName, dev->print_name()); + goto get_out; + } ++#endif + if (dev->num_writers == 0) { + memcpy(&dev->VolCatInfo, &dcr->VolCatInfo, sizeof(dev->VolCatInfo)); + } +@@ -415,21 +410,23 @@ + } + } else { + /* Not already in append mode, so mount the device */ +- Dmsg0(190, "Not in append mode, try mount.\n"); ++ Dmsg2(190, "jid=%u Not in append mode, try mount have_vol=%d\n", ++ (uint32_t)jcr->JobId, have_vol); ++ + ASSERT(dev->num_writers == 0); + do_mount = true; + } + +- if (do_mount || recycle) { +- Dmsg0(190, "Do mount_next_write_vol\n"); +- bool mounted = mount_next_write_volume(dcr, release); ++ if (do_mount || !have_vol) { ++ Dmsg1(190, "jid=%u Do mount_next_write_vol\n", (uint32_t)jcr->JobId); ++ bool mounted = mount_next_write_volume(dcr, have_vol, release); + if (!mounted) { + if (!job_canceled(jcr)) { + /* Reduce "noise" -- don't print if job canceled */ + Jmsg(jcr, M_FATAL, 0, _("Could not ready device %s for append.\n"), + dev->print_name()); +- Dmsg1(200, "Could not ready device %s for append.\n", +- dev->print_name()); ++ Dmsg2(200, "jid=%u Could not ready device %s for append.\n", ++ (uint32_t)jcr->JobId, dev->print_name()); + } + goto get_out; + } +@@ -441,11 +438,12 @@ + jcr->NumWriteVolumes = 1; + } + dev->VolCatInfo.VolCatJobs++; /* increment number of jobs on vol */ +- dir_update_volume_info(dcr, false); /* send Volume info to Director */ ++ dir_update_volume_info(dcr, false, false); /* send Volume info to Director */ + dev->dlock(); + if (dcr->reserved_device) { + dev->reserved_device--; +- Dmsg2(100, "Dec reserve=%d dev=%s\n", dev->reserved_device, dev->print_name()); ++ Dmsg3(100, "jid=%u Dec reserve=%d dev=%s\n", (uint32_t)jcr->JobId, ++ dev->reserved_device, dev->print_name()); + dcr->reserved_device = false; + } + dev->dunblock(DEV_LOCKED); +@@ -458,7 +456,8 @@ + dev->dlock(); + if (dcr->reserved_device) { + dev->reserved_device--; +- Dmsg2(100, "Dec reserve=%d dev=%s\n", dev->reserved_device, dev->print_name()); ++ Dmsg3(100, "jid=%u Dec reserve=%d dev=%s\n", (uint32_t)jcr->JobId, ++ dev->reserved_device, dev->print_name()); + dcr->reserved_device = false; + } + dev->dunblock(DEV_LOCKED); +@@ -466,6 +465,18 @@ + } + + ++static bool is_suitable_volume_mounted(DCR *dcr) ++{ ++ DEVICE *dev = dcr->dev; ++ ++ /* Volume mounted? */ ++ if (dev->VolHdr.VolumeName[0] == 0) { ++ return false; /* no */ ++ } ++ bstrncpy(dcr->VolumeName, dev->VolHdr.VolumeName, sizeof(dcr->VolumeName)); ++ return dir_get_volume_info(dcr, GET_VOL_INFO_FOR_WRITE); ++} ++ + /* + * This job is done, so release the device. From a Unix standpoint, + * the device remains open. +@@ -496,7 +507,7 @@ + if (dev->can_read()) { + dev->clear_read(); /* clear read bit */ + Dmsg0(100, "dir_update_vol_info. Release0\n"); +- dir_update_volume_info(dcr, false); /* send Volume info to Director */ ++ dir_update_volume_info(dcr, false, false); /* send Volume info to Director */ + + } else if (dev->num_writers > 0) { + /* +@@ -522,7 +533,7 @@ + dev->VolCatInfo.VolCatFiles = dev->file; /* set number of files */ + /* Note! do volume update before close, which zaps VolCatInfo */ + Dmsg0(100, "dir_update_vol_info. Release0\n"); +- dir_update_volume_info(dcr, false); /* send Volume info to Director */ ++ dir_update_volume_info(dcr, false, false); /* send Volume info to Director */ + } + } + +@@ -621,7 +632,12 @@ + if (dcr->attached_to_dev) { + detach_dcr_from_dev(dcr); + } +- dcr->max_job_spool_size = dev->device->max_job_spool_size; ++ /* Use job spoolsize prior to device spoolsize */ ++ if (jcr->spool_size) { ++ dcr->max_job_spool_size = jcr->spool_size; ++ } else { ++ dcr->max_job_spool_size = dev->device->max_job_spool_size; ++ } + dcr->device = dev->device; + dcr->dev = dev; + attach_dcr_to_dev(dcr); +diff -ur k1/src/stored/askdir.c k3/src/stored/askdir.c +--- k1/src/stored/askdir.c 2007-09-09 12:03:23.000000000 +0200 ++++ k3/src/stored/askdir.c 2007-12-22 19:11:50.000000000 +0100 +@@ -31,7 +31,7 @@ + * + * Kern Sibbald, December 2000 + * +- * Version $Id: askdir.c 5503 2007-09-09 10:03:23Z kerns $ ++ * Version $Id: askdir.c 5852 2007-11-04 19:57:42Z kerns $ + */ + + #include "bacula.h" /* pull in global headers */ +@@ -42,7 +42,7 @@ + static char Get_Vol_Info[] = "CatReq Job=%s GetVolInfo VolName=%s write=%d\n"; + static char Update_media[] = "CatReq Job=%s UpdateMedia VolName=%s" + " VolJobs=%u VolFiles=%u VolBlocks=%u VolBytes=%s VolMounts=%u" +- " VolErrors=%u VolWrites=%u MaxVolBytes=%s EndTime=%d VolStatus=%s" ++ " VolErrors=%u VolWrites=%u MaxVolBytes=%s EndTime=%s VolStatus=%s" + " Slot=%d relabel=%d InChanger=%d VolReadTime=%s VolWriteTime=%s" + " VolFirstWritten=%s VolParts=%u\n"; + static char Create_job_media[] = "CatReq Job=%s CreateJobMedia" +@@ -98,7 +98,7 @@ + } else { + pm_strcpy(ChangerName, "*"); + } +- ok =bnet_fsend(dir, Device_update, ++ ok = dir->fsend(Device_update, + jcr->Job, + dev_name.c_str(), + dev->can_append()!=0, +@@ -125,7 +125,7 @@ + pm_strcpy(MediaType, device->media_type); + bash_spaces(MediaType); + /* This is mostly to indicate that we are here */ +- ok = bnet_fsend(dir, Device_update, ++ ok = dir->fsend(Device_update, + jcr->Job, + dev_name.c_str(), /* Changer name */ + 0, 0, 0, /* append, read, num_writers */ +@@ -148,7 +148,7 @@ + */ + bool dir_send_job_status(JCR *jcr) + { +- return bnet_fsend(jcr->dir_bsock, Job_status, jcr->Job, jcr->JobStatus); ++ return jcr->dir_bsock->fsend(Job_status, jcr->Job, jcr->JobStatus); + } + + /* +@@ -179,7 +179,7 @@ + return false; + } + memset(&vol, 0, sizeof(vol)); +- Dmsg1(100, "msg); ++ Dmsg1(100, "msg); + n = sscanf(dir->msg, OK_media, vol.VolCatName, + &vol.VolCatJobs, &vol.VolCatFiles, + &vol.VolCatBlocks, &vol.VolCatBytes, +@@ -191,7 +191,8 @@ + &vol.EndFile, &vol.EndBlock, &vol.VolCatParts, + &vol.LabelType, &vol.VolMediaId); + if (n != 22) { +- Dmsg3(100, "Bad response from Dir fields=%d, len=%d: %s", n, dir->msglen, dir->msg); ++ Dmsg3(100, "Bad response from Dir fields=%d, len=%d: %s", ++ n, dir->msglen, dir->msg); + Mmsg(jcr->errmsg, _("Error getting Volume info: %s"), dir->msg); + return false; + } +@@ -226,7 +227,7 @@ + bash_spaces(dcr->VolCatInfo.VolCatName); + dir->fsend(Get_Vol_Info, jcr->Job, dcr->VolCatInfo.VolCatName, + writing==GET_VOL_INFO_FOR_WRITE?1:0); +- Dmsg1(100, ">dird: %s\n", dir->msg); ++ Dmsg1(100, ">dird %s", dir->msg); + unbash_spaces(dcr->VolCatInfo.VolCatName); + bool ok = do_get_volume_info(dcr); + V(vol_info_mutex); +@@ -253,7 +254,9 @@ + BSOCK *dir = jcr->dir_bsock; + bool found = false; + +- Dmsg0(200, "dir_find_next_appendable_volume\n"); ++ Dmsg2(200, "dir_find_next_appendable_volume: reserved=%d Vol=%s\n", ++ dcr->reserved_device, dcr->VolumeName); ++ + /* + * Try the twenty oldest or most available volumes. Note, + * the most available could already be mounted on another +@@ -268,7 +271,7 @@ + dir->fsend(Find_media, jcr->Job, vol_index, dcr->pool_name, dcr->media_type); + unbash_spaces(dcr->media_type); + unbash_spaces(dcr->pool_name); +- Dmsg1(100, ">dird: %s", dir->msg); ++ Dmsg1(100, ">dird %s", dir->msg); + bool ok = do_get_volume_info(dcr); + if (ok) { + if (!is_volume_in_use(dcr)) { +@@ -311,14 +314,13 @@ + * back to the director. The information comes from the + * dev record. + */ +-bool dir_update_volume_info(DCR *dcr, bool label) ++bool dir_update_volume_info(DCR *dcr, bool label, bool update_LastWritten) + { + JCR *jcr = dcr->jcr; + BSOCK *dir = jcr->dir_bsock; + DEVICE *dev = dcr->dev; +- time_t LastWritten = time(NULL); + VOLUME_CAT_INFO *vol = &dev->VolCatInfo; +- char ed1[50], ed2[50], ed3[50], ed4[50], ed5[50]; ++ char ed1[50], ed2[50], ed3[50], ed4[50], ed5[50], ed6[50]; + int InChanger; + bool ok = false; + POOL_MEM VolumeName; +@@ -341,21 +343,25 @@ + if (label) { + bstrncpy(vol->VolCatStatus, "Append", sizeof(vol->VolCatStatus)); + } ++// if (update_LastWritten) { ++ vol->VolLastWritten = time(NULL); ++// } + pm_strcpy(VolumeName, vol->VolCatName); + bash_spaces(VolumeName); + InChanger = vol->InChanger; +- bnet_fsend(dir, Update_media, jcr->Job, ++ dir->fsend(Update_media, jcr->Job, + VolumeName.c_str(), vol->VolCatJobs, vol->VolCatFiles, + vol->VolCatBlocks, edit_uint64(vol->VolCatBytes, ed1), + vol->VolCatMounts, vol->VolCatErrors, + vol->VolCatWrites, edit_uint64(vol->VolCatMaxBytes, ed2), +- LastWritten, vol->VolCatStatus, vol->Slot, label, ++ edit_uint64(vol->VolLastWritten, ed6), ++ vol->VolCatStatus, vol->Slot, label, + InChanger, /* bool in structure */ + edit_int64(vol->VolReadTime, ed3), + edit_int64(vol->VolWriteTime, ed4), + edit_uint64(vol->VolFirstWritten, ed5), + vol->VolCatParts); +- Dmsg1(100, ">dird: %s", dir->msg); ++ Dmsg1(100, ">dird %s", dir->msg); + + /* Do not lock device here because it may be locked from label */ + if (!do_get_volume_info(dcr)) { +@@ -364,7 +370,7 @@ + vol->VolCatName, jcr->errmsg); + goto bail_out; + } +- Dmsg1(420, "get_volume_info(): %s", dir->msg); ++ Dmsg1(420, "get_volume_info() %s", dir->msg); + /* Update dev Volume info in case something changed (e.g. expired) */ + dev->VolCatInfo = dcr->VolCatInfo; + ok = true; +@@ -393,20 +399,20 @@ + } + + dcr->WroteVol = false; +- bnet_fsend(dir, Create_job_media, jcr->Job, ++ dir->fsend(Create_job_media, jcr->Job, + dcr->VolFirstIndex, dcr->VolLastIndex, + dcr->StartFile, dcr->EndFile, + dcr->StartBlock, dcr->EndBlock, + dcr->Copy, dcr->Stripe, + edit_uint64(dcr->VolMediaId, ed1)); +- Dmsg1(100, ">dird: %s", dir->msg); ++ Dmsg1(100, ">dird %s", dir->msg); + if (bnet_recv(dir) <= 0) { + Dmsg0(190, "create_jobmedia error bnet_recv\n"); + Jmsg(jcr, M_FATAL, 0, _("Error creating JobMedia record: ERR=%s\n"), +- bnet_strerror(dir)); ++ dir->bstrerror()); + return false; + } +- Dmsg1(100, "msg); ++ Dmsg1(100, "msg); + if (strcmp(dir->msg, OK_create) != 0) { + Dmsg1(130, "Bad response from Dir: %s\n", dir->msg); + Jmsg(jcr, M_FATAL, 0, _("Error creating JobMedia record: %s\n"), dir->msg); +@@ -429,9 +435,10 @@ + return true; + #endif + +- dir->msglen = sprintf(dir->msg, FileAttributes, jcr->Job); +- dir->msg = check_pool_memory_size(dir->msg, dir->msglen + +- sizeof(DEV_RECORD) + rec->data_len); ++ dir->msg = check_pool_memory_size(dir->msg, sizeof(FileAttributes) + ++ MAX_NAME_LENGTH + sizeof(DEV_RECORD) + rec->data_len + 1); ++ dir->msglen = bsnprintf(dir->msg, sizeof(FileAttributes) + ++ MAX_NAME_LENGTH + 1, FileAttributes, jcr->Job); + ser_begin(dir->msg + dir->msglen, 0); + ser_uint32(rec->VolSessionId); + ser_uint32(rec->VolSessionTime); +@@ -440,8 +447,8 @@ + ser_uint32(rec->data_len); + ser_bytes(rec->data, rec->data_len); + dir->msglen = ser_length(dir->msg); +- Dmsg1(1800, ">dird: %s\n", dir->msg); /* Attributes */ +- return bnet_send(dir); ++ Dmsg1(1800, ">dird %s\n", dir->msg); /* Attributes */ ++ return dir->send(); + } + + +diff -ur k1/src/stored/bcopy.c k3/src/stored/bcopy.c +--- k1/src/stored/bcopy.c 2007-12-03 20:27:38.000000000 +0100 ++++ k3/src/stored/bcopy.c 2007-12-22 19:10:29.000000000 +0100 +@@ -32,7 +32,7 @@ + * Kern E. Sibbald, October 2002 + * + * +- * Version $Id: bcopy.c 6017 2007-12-03 19:27:38Z kerns $ ++ * Version $Id: bcopy.c 6016 2007-12-03 19:27:21Z kerns $ + */ + + #include "bacula.h" +@@ -42,6 +42,7 @@ + int generate_daemon_event(JCR *jcr, const char *event) { return 1; } + + /* Forward referenced functions */ ++static void get_session_record(DEVICE *dev, DEV_RECORD *rec, SESSION_LABEL *sessrec); + static bool record_cb(DCR *dcr, DEV_RECORD *rec); + + +@@ -52,10 +53,11 @@ + static JCR *out_jcr; /* output jcr */ + static BSR *bsr = NULL; + static const char *wd = "/tmp"; +-static int list_records = 0; ++static bool list_records = false; + static uint32_t records = 0; + static uint32_t jobs = 0; + static DEV_BLOCK *out_block; ++static SESSION_LABEL sessrec; + + #define CONFIG_FILE "bacula-sd.conf" + char *configfile = NULL; +@@ -73,7 +75,7 @@ + "Usage: bcopy [-d debug_level] \n" + " -b bootstrap specify a bootstrap file\n" + " -c specify configuration file\n" +-" -d set debug level to nn\n" ++" -d set debug level to \n" + " -i specify input Volume names (separated by |)\n" + " -o specify output Volume names (separated by |)\n" + " -p proceed inspite of errors\n" +@@ -113,9 +115,14 @@ + break; + + case 'd': /* debug level */ +- debug_level = atoi(optarg); +- if (debug_level <= 0) +- debug_level = 1; ++ if (*optarg == 't') { ++ dbg_timestamp = true; ++ } else { ++ debug_level = atoi(optarg); ++ if (debug_level <= 0) { ++ debug_level = 1; ++ } ++ } + break; + + case 'i': /* input Volume name */ +@@ -201,6 +208,7 @@ + out_block = out_jcr->dcr->block; + + ok = read_records(in_jcr->dcr, record_cb, mount_next_read_volume); ++ + if (ok || out_dev->can_write()) { + if (!write_block_to_device(out_jcr->dcr)) { + Pmsg0(000, _("Write of last block failed.\n")); +@@ -233,6 +241,7 @@ + * + */ + if (rec->FileIndex < 0) { ++ get_session_record(in_dcr->dev, rec, &sessrec); + + if (verbose > 1) { + dump_label_record(in_dcr->dev, rec, 1); +@@ -294,10 +303,46 @@ + return true; + } + ++static void get_session_record(DEVICE *dev, DEV_RECORD *rec, SESSION_LABEL *sessrec) ++{ ++ const char *rtype; ++ memset(sessrec, 0, sizeof(sessrec)); ++ switch (rec->FileIndex) { ++ case PRE_LABEL: ++ rtype = _("Fresh Volume Label"); ++ break; ++ case VOL_LABEL: ++ rtype = _("Volume Label"); ++ unser_volume_label(dev, rec); ++ break; ++ case SOS_LABEL: ++ rtype = _("Begin Job Session"); ++ unser_session_label(sessrec, rec); ++ break; ++ case EOS_LABEL: ++ rtype = _("End Job Session"); ++ unser_session_label(sessrec, rec); ++ break; ++ case 0: ++ case EOM_LABEL: ++ rtype = _("End of Medium"); ++ break; ++ default: ++ rtype = _("Unknown"); ++ break; ++ } ++ Dmsg5(10, "%s Record: VolSessionId=%d VolSessionTime=%d JobId=%d DataLen=%d\n", ++ rtype, rec->VolSessionId, rec->VolSessionTime, rec->Stream, rec->data_len); ++ if (verbose) { ++ Pmsg5(-1, _("%s Record: VolSessionId=%d VolSessionTime=%d JobId=%d DataLen=%d\n"), ++ rtype, rec->VolSessionId, rec->VolSessionTime, rec->Stream, rec->data_len); ++ } ++} ++ + + /* Dummies to replace askdir.c */ + bool dir_find_next_appendable_volume(DCR *dcr) { return 1;} +-bool dir_update_volume_info(DCR *dcr, bool relabel) { return 1; } ++bool dir_update_volume_info(DCR *dcr, bool relabel, bool update_LastWritten) { return 1; } + bool dir_create_jobmedia_record(DCR *dcr) { return 1; } + bool dir_ask_sysop_to_create_appendable_volume(DCR *dcr) { return 1; } + bool dir_update_file_attributes(DCR *dcr, DEV_RECORD *rec) { return 1;} +diff -ur k1/src/stored/bextract.c k3/src/stored/bextract.c +--- k1/src/stored/bextract.c 2007-10-03 13:36:47.000000000 +0200 ++++ k3/src/stored/bextract.c 2007-12-22 19:10:20.000000000 +0100 +@@ -4,7 +4,7 @@ + * + * Kern E. Sibbald, MM + * +- * Version $Id: bextract.c 5713 2007-10-03 11:36:47Z kerns $ ++ * Version $Id: bextract.c 5852 2007-11-04 19:57:42Z kerns $ + * + */ + /* +@@ -79,7 +79,7 @@ + "Usage: bextract \n" + " -b specify a bootstrap file\n" + " -c specify a configuration file\n" +-" -d set debug level to nn\n" ++" -d set debug level to \n" + " -e exclude list\n" + " -i include list\n" + " -p proceed inspite of I/O errors\n" +@@ -126,9 +126,14 @@ + break; + + case 'd': /* debug level */ +- debug_level = atoi(optarg); +- if (debug_level <= 0) +- debug_level = 1; ++ if (*optarg == 't') { ++ dbg_timestamp = true; ++ } else { ++ debug_level = atoi(optarg); ++ if (debug_level <= 0) { ++ debug_level = 1; ++ } ++ } + break; + + case 'e': /* exclude list */ +@@ -476,7 +481,7 @@ + + /* Dummies to replace askdir.c */ + bool dir_find_next_appendable_volume(DCR *dcr) { return 1;} +-bool dir_update_volume_info(DCR *dcr, bool relabel) { return 1; } ++bool dir_update_volume_info(DCR *dcr, bool relabel, bool update_LastWritten) { return 1; } + bool dir_create_jobmedia_record(DCR *dcr) { return 1; } + bool dir_ask_sysop_to_create_appendable_volume(DCR *dcr) { return 1; } + bool dir_update_file_attributes(DCR *dcr, DEV_RECORD *rec) { return 1;} +diff -ur k1/src/stored/block.c k3/src/stored/block.c +--- k1/src/stored/block.c 2007-10-03 13:36:47.000000000 +0200 ++++ k3/src/stored/block.c 2007-12-22 19:12:33.000000000 +0100 +@@ -32,7 +32,7 @@ + * Kern Sibbald, March MMI + * added BB02 format October MMII + * +- * Version $Id: block.c 5713 2007-10-03 11:36:47Z kerns $ ++ * Version $Id: block.c 5852 2007-11-04 19:57:42Z kerns $ + * + */ + +@@ -746,7 +746,7 @@ + dev->VolCatInfo.VolCatParts = dev->num_dvd_parts; + } + +- if (!dir_update_volume_info(dcr, false)) { ++ if (!dir_update_volume_info(dcr, false, true)) { + ok = false; + } + Dmsg1(100, "dir_update_volume_info terminate writing -- %s\n", ok?"OK":"ERROR"); +@@ -798,7 +798,7 @@ + return false; + } + dev->VolCatInfo.VolCatFiles = dev->file; +- if (!dir_update_volume_info(dcr, false)) { ++ if (!dir_update_volume_info(dcr, false, false)) { + Dmsg0(190, "Error from update_vol_info.\n"); + terminate_writing_volume(dcr); + dev->dev_errno = EIO; +@@ -856,7 +856,7 @@ + + dev->VolCatInfo.VolCatParts = dev->num_dvd_parts; + +- if (!dir_update_volume_info(dcr, false)) { ++ if (!dir_update_volume_info(dcr, false, false)) { + Dmsg0(190, "Error from update_vol_info.\n"); + dev->dev_errno = EIO; + return false; +diff -ur k1/src/stored/bls.c k3/src/stored/bls.c +--- k1/src/stored/bls.c 2007-10-03 13:36:47.000000000 +0200 ++++ k3/src/stored/bls.c 2007-12-22 19:10:57.000000000 +0100 +@@ -31,7 +31,7 @@ + * + * Kern Sibbald, MM + * +- * Version $Id: bls.c 5713 2007-10-03 11:36:47Z kerns $ ++ * Version $Id: bls.c 5852 2007-11-04 19:57:42Z kerns $ + */ + + #include "bacula.h" +@@ -79,7 +79,7 @@ + "Usage: bls [options] \n" + " -b specify a bootstrap file\n" + " -c specify a config file\n" +-" -d specify debug level\n" ++" -d set debug level to \n" + " -e exclude list\n" + " -i include list\n" + " -j list jobs\n" +@@ -130,9 +130,14 @@ + break; + + case 'd': /* debug level */ +- debug_level = atoi(optarg); +- if (debug_level <= 0) +- debug_level = 1; ++ if (*optarg == 't') { ++ dbg_timestamp = true; ++ } else { ++ debug_level = atoi(optarg); ++ if (debug_level <= 0) { ++ debug_level = 1; ++ } ++ } + break; + + case 'e': /* exclude list */ +@@ -440,7 +445,7 @@ + + /* Dummies to replace askdir.c */ + bool dir_find_next_appendable_volume(DCR *dcr) { return 1;} +-bool dir_update_volume_info(DCR *dcr, bool relabel) { return 1; } ++bool dir_update_volume_info(DCR *dcr, bool relabel, bool update_LastWritten) { return 1; } + bool dir_create_jobmedia_record(DCR *dcr) { return 1; } + bool dir_ask_sysop_to_create_appendable_volume(DCR *dcr) { return 1; } + bool dir_update_file_attributes(DCR *dcr, DEV_RECORD *rec) { return 1;} +diff -ur k1/src/stored/bscan.c k3/src/stored/bscan.c +--- k1/src/stored/bscan.c 2007-10-03 13:36:47.000000000 +0200 ++++ k3/src/stored/bscan.c 2007-12-22 19:11:05.000000000 +0100 +@@ -34,7 +34,7 @@ + * Kern E. Sibbald, December 2001 + * + * +- * Version $Id: bscan.c 5713 2007-10-03 11:36:47Z kerns $ ++ * Version $Id: bscan.c 5852 2007-11-04 19:57:42Z kerns $ + */ + + #include "bacula.h" +@@ -116,7 +116,7 @@ + "Usage: bscan [ options ] \n" + " -b bootstrap specify a bootstrap file\n" + " -c specify configuration file\n" +-" -d set debug level to nn\n" ++" -d set debug level to \n" + " -m update media info in database\n" + " -n specify the database name (default bacula)\n" + " -u specify database user name (default bacula)\n" +@@ -166,9 +166,14 @@ + break; + + case 'd': /* debug level */ +- debug_level = atoi(optarg); +- if (debug_level <= 0) +- debug_level = 1; ++ if (*optarg == 't') { ++ dbg_timestamp = true; ++ } else { ++ debug_level = atoi(optarg); ++ if (debug_level <= 0) { ++ debug_level = 1; ++ } ++ } + break; + + case 'h': +@@ -1271,7 +1276,7 @@ + + /* Dummies to replace askdir.c */ + bool dir_find_next_appendable_volume(DCR *dcr) { return 1;} +-bool dir_update_volume_info(DCR *dcr, bool relabel) { return 1; } ++bool dir_update_volume_info(DCR *dcr, bool relabel, bool update_LastWritten) { return 1; } + bool dir_create_jobmedia_record(DCR *dcr) { return 1; } + bool dir_ask_sysop_to_create_appendable_volume(DCR *dcr) { return 1; } + bool dir_update_file_attributes(DCR *dcr, DEV_RECORD *rec) { return 1;} +diff -ur k1/src/stored/btape.c k3/src/stored/btape.c +--- k1/src/stored/btape.c 2007-06-07 16:46:43.000000000 +0200 ++++ k3/src/stored/btape.c 2007-12-22 19:11:14.000000000 +0100 +@@ -37,7 +37,7 @@ + * Note, this program reads stored.conf, and will only + * talk to devices that are configured. + * +- * Version $Id: btape.c 4992 2007-06-07 14:46:43Z kerns $ ++ * Version $Id: btape.c 5852 2007-11-04 19:57:42Z kerns $ + * + */ + +@@ -220,9 +220,13 @@ + break; + + case 'd': /* set debug level */ +- debug_level = atoi(optarg); +- if (debug_level <= 0) { +- debug_level = 1; ++ if (*optarg == 't') { ++ dbg_timestamp = true; ++ } else { ++ debug_level = atoi(optarg); ++ if (debug_level <= 0) { ++ debug_level = 1; ++ } + } + break; + +@@ -2598,7 +2602,7 @@ + "Usage: btape \n" + " -b specify bootstrap file\n" + " -c set configuration file to file\n" +-" -d set debug level to nn\n" ++" -d set debug level to \n" + " -p proceed inspite of I/O errors\n" + " -s turn off signals\n" + " -v be verbose\n" +@@ -2644,7 +2648,7 @@ + bool dir_update_file_attributes(DCR *dcr, DEV_RECORD *rec) { return 1;} + bool dir_send_job_status(JCR *jcr) {return 1;} + +-bool dir_update_volume_info(DCR *dcr, bool relabel) ++bool dir_update_volume_info(DCR *dcr, bool relabel, bool update_LastWritten) + { + return 1; + } +diff -ur k1/src/stored/dev.c k3/src/stored/dev.c +--- k1/src/stored/dev.c 2007-12-02 19:03:17.000000000 +0100 ++++ k3/src/stored/dev.c 2007-12-22 19:11:57.000000000 +0100 +@@ -47,7 +47,7 @@ + * daemon. More complicated coding (double buffering, writer + * thread, ...) is left for a later version. + * +- * Version $Id: dev.c 6011 2007-12-02 18:03:17Z kerns $ ++ * Version $Id: dev.c 5999 2007-11-29 21:36:36Z ricozz $ + */ + + /* +@@ -89,7 +89,7 @@ + /* Forward referenced functions */ + void set_os_device_parameters(DCR *dcr); + static bool dev_get_os_pos(DEVICE *dev, struct mtget *mt_stat); +-static char *mode_to_str(int mode); ++static const char *mode_to_str(int mode); + + /* + * Allocate and initialize the DEVICE structure +@@ -490,7 +490,7 @@ + Mmsg2(errmsg, _("Could not open: %s, ERR=%s\n"), archive_name.c_str(), + be.bstrerror()); + Dmsg1(100, "open failed: %s", errmsg); +- Emsg0(M_FATAL, 0, errmsg); ++ Jmsg1(NULL, M_WARNING, 0, "%s", errmsg); + } else { + dev_errno = 0; + file = 0; +@@ -2468,7 +2468,7 @@ + mt_stat->mt_fileno >= 0; + } + +-static char *modes[] = { ++static const char *modes[] = { + "CREATE_READ_WRITE", + "OPEN_READ_WRITE", + "OPEN_READ_ONLY", +@@ -2476,7 +2476,7 @@ + }; + + +-static char *mode_to_str(int mode) ++static const char *mode_to_str(int mode) + { + static char buf[100]; + if (mode < 1 || mode > 4) { +diff -ur k1/src/stored/dev.h k3/src/stored/dev.h +--- k1/src/stored/dev.h 2007-09-09 12:03:23.000000000 +0200 ++++ k3/src/stored/dev.h 2007-12-22 19:12:14.000000000 +0100 +@@ -31,7 +31,7 @@ + * + * Kern Sibbald, MM + * +- * Version $Id: dev.h 5503 2007-09-09 10:03:23Z kerns $ ++ * Version $Id: dev.h 5852 2007-11-04 19:57:42Z kerns $ + * + */ + +@@ -158,6 +158,7 @@ + btime_t VolWriteTime; /* time spent writing this Volume */ + int64_t VolMediaId; /* MediaId */ + utime_t VolFirstWritten; /* Time of first write */ ++ utime_t VolLastWritten; /* Time of last write */ + bool InChanger; /* Set if vol in current magazine */ + char VolCatStatus[20]; /* Volume status */ + char VolCatName[MAX_NAME_LENGTH]; /* Desired volume to mount */ +@@ -473,8 +474,9 @@ + class VOLRES { + public: + dlink link; +- char *vol_name; +- DEVICE *dev; ++ char *vol_name; /* Volume name */ ++ DEVICE *dev; /* Pointer to device to which we are attached */ ++ bool released; /* set when the Volume can be released */ + }; + + +diff -ur k1/src/stored/device.c k3/src/stored/device.c +--- k1/src/stored/device.c 2007-06-29 14:12:26.000000000 +0200 ++++ k3/src/stored/device.c 2007-12-22 19:11:23.000000000 +0100 +@@ -53,7 +53,7 @@ + * + * Kern Sibbald, MM, MMI + * +- * Version $Id: device.c 5114 2007-06-29 12:12:26Z kerns $ ++ * Version $Id: device.c 5852 2007-11-04 19:57:42Z kerns $ + */ + + #include "bacula.h" /* pull in global headers */ +@@ -122,7 +122,8 @@ + edit_uint64_with_commas(dev->VolCatInfo.VolCatBlocks, b2), + bstrftime(dt, sizeof(dt), time(NULL))); + +- if (!mount_next_write_volume(dcr, 1)) { ++ /* Called with have_vol=false, release=true */ ++ if (!mount_next_write_volume(dcr, false, true)) { + free_block(label_blk); + dcr->block = block; + dev->dlock(); +@@ -131,7 +132,7 @@ + dev->dlock(); /* lock again */ + + dev->VolCatInfo.VolCatJobs++; /* increment number of jobs on vol */ +- dir_update_volume_info(dcr, false); /* send Volume info to Director */ ++ dir_update_volume_info(dcr, false, false); /* send Volume info to Director */ + + Jmsg(jcr, M_INFO, 0, _("New volume \"%s\" mounted on device %s at %s.\n"), + dcr->VolumeName, dev->print_name(), bstrftime(dt, sizeof(dt), time(NULL))); +diff -ur k1/src/stored/dvd.c k3/src/stored/dvd.c +--- k1/src/stored/dvd.c 2007-06-07 16:46:43.000000000 +0200 ++++ k3/src/stored/dvd.c 2007-12-22 19:26:23.000000000 +0100 +@@ -1,16 +1,7 @@ + /* +- * +- * dvd.c -- Routines specific to DVD devices (and +- * possibly other removable hard media). +- * +- * Nicolas Boichat, MMV +- * +- * Version $Id: dvd.c 4992 2007-06-07 14:46:43Z kerns $ +- */ +-/* + Bacula® - The Network Backup Solution + +- Copyright (C) 2005-2006 Free Software Foundation Europe e.V. ++ Copyright (C) 2005-2007 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. +@@ -34,6 +25,15 @@ + (FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zürich, + Switzerland, email:ftf@fsfeurope.org. + */ ++/* ++ * ++ * dvd.c -- Routines specific to DVD devices (and ++ * possibly other removable hard media). ++ * ++ * Nicolas Boichat, MMV ++ * ++ * Version $Id: dvd.c 5852 2007-11-04 19:57:42Z kerns $ ++ */ + + #include "bacula.h" + #include "stored.h" +@@ -686,7 +686,7 @@ + dcr->VolCatInfo.VolCatBytes = 0; + + /* Update catalog */ +- if (!dir_update_volume_info(dcr, false)) { ++ if (!dir_update_volume_info(dcr, false, true)) { + return false; + } + +diff -ur k1/src/stored/job.c k3/src/stored/job.c +--- k1/src/stored/job.c 2007-09-29 00:01:16.000000000 +0200 ++++ k3/src/stored/job.c 2007-12-22 19:11:41.000000000 +0100 +@@ -30,7 +30,7 @@ + * + * Kern Sibbald, MM + * +- * Version $Id: job.c 5686 2007-09-28 22:01:16Z kerns $ ++ * Version $Id: job.c 5697 2007-09-30 17:40:08Z ricozz $ + * + */ + +@@ -49,9 +49,13 @@ + /* Requests from the Director daemon */ + static char jobcmd[] = "JobId=%d job=%127s job_name=%127s client_name=%127s " + "type=%d level=%d FileSet=%127s NoAttr=%d SpoolAttr=%d FileSetMD5=%127s " ++ "SpoolData=%d WritePartAfterJob=%d PreferMountedVols=%d SpoolSize=%s\n"; ++static char oldjobcmd[] = "JobId=%d job=%127s job_name=%127s client_name=%127s " ++ "type=%d level=%d FileSet=%127s NoAttr=%d SpoolAttr=%d FileSetMD5=%127s " + "SpoolData=%d WritePartAfterJob=%d PreferMountedVols=%d\n"; + + ++ + /* Responses sent to Director daemon */ + static char OKjob[] = "3000 OK Job SDid=%u SDtime=%u Authorization=%s\n"; + static char BAD_job[] = "3915 Bad Job command. stat=%d CMD: %s\n"; +@@ -73,6 +77,7 @@ + { + int JobId; + char auth_key[100]; ++ char spool_size[30]; + char seed[100]; + BSOCK *dir = jcr->dir_bsock; + POOL_MEM job_name, client_name, job, fileset_name, fileset_md5; +@@ -85,17 +90,26 @@ + * Get JobId and permissions from Director + */ + Dmsg1(100, "msg); ++ bstrncpy(spool_size, "0", sizeof(spool_size)); + stat = sscanf(dir->msg, jobcmd, &JobId, job.c_str(), job_name.c_str(), + client_name.c_str(), + &JobType, &level, fileset_name.c_str(), &no_attributes, +- &spool_attributes, fileset_md5.c_str(), &spool_data, ++ &spool_attributes, fileset_md5.c_str(), &spool_data, ++ &write_part_after_job, &PreferMountedVols, spool_size); ++ if (stat != 14) { ++ /* Try old version */ ++ stat = sscanf(dir->msg, oldjobcmd, &JobId, job.c_str(), job_name.c_str(), ++ client_name.c_str(), ++ &JobType, &level, fileset_name.c_str(), &no_attributes, ++ &spool_attributes, fileset_md5.c_str(), &spool_data, + &write_part_after_job, &PreferMountedVols); +- if (stat != 13) { +- pm_strcpy(jcr->errmsg, dir->msg); +- dir->fsend(BAD_job, stat, jcr->errmsg); +- Dmsg1(100, ">dird: %s", dir->msg); +- set_jcr_job_status(jcr, JS_ErrorTerminated); +- return false; ++ if (stat != 13) { ++ pm_strcpy(jcr->errmsg, dir->msg); ++ dir->fsend(BAD_job, stat, jcr->errmsg); ++ Dmsg1(100, ">dird: %s", dir->msg); ++ set_jcr_job_status(jcr, JS_ErrorTerminated); ++ return false; ++ } + } + /* + * Since this job could be rescheduled, we +@@ -125,6 +139,7 @@ + jcr->no_attributes = no_attributes; + jcr->spool_attributes = spool_attributes; + jcr->spool_data = spool_data; ++ jcr->spool_size = str_to_int64(spool_size); + jcr->write_part_after_job = write_part_after_job; + jcr->fileset_md5 = get_pool_memory(PM_NAME); + pm_strcpy(jcr->fileset_md5, fileset_md5); +diff -ur k1/src/stored/label.c k3/src/stored/label.c +--- k1/src/stored/label.c 2007-10-03 13:36:47.000000000 +0200 ++++ k3/src/stored/label.c 2007-12-22 19:10:49.000000000 +0100 +@@ -32,7 +32,7 @@ + * Kern Sibbald, MM + * + * +- * Version $Id: label.c 5713 2007-10-03 11:36:47Z kerns $ ++ * Version $Id: label.c 5852 2007-11-04 19:57:42Z kerns $ + */ + + #include "bacula.h" /* pull in global headers */ +@@ -505,7 +505,7 @@ + } + Dmsg0(150, "dir_update_vol_info. Set Append\n"); + bstrncpy(dev->VolCatInfo.VolCatStatus, "Append", sizeof(dev->VolCatInfo.VolCatStatus)); +- if (!dir_update_volume_info(dcr, true)) { /* indicate doing relabel */ ++ if (!dir_update_volume_info(dcr, true, true)) { /* indicate doing relabel */ + return false; + } + if (recycle) { +@@ -716,7 +716,7 @@ + } + break; + default: +- Jmsg1(jcr, M_ABORT, 0, _("Bad session label = %d\n"), label); ++ Jmsg1(jcr, M_ABORT, 0, _("Bad Volume session label = %d\n"), label); + break; + } + create_session_label(dcr, rec, label); +diff -ur k1/src/stored/mount.c k3/src/stored/mount.c +--- k1/src/stored/mount.c 2007-09-14 11:49:06.000000000 +0200 ++++ k3/src/stored/mount.c 2007-12-22 19:11:30.000000000 +0100 +@@ -32,7 +32,7 @@ + * + * Kern Sibbald, August MMII + * +- * Version $Id: mount.c 5552 2007-09-14 09:49:06Z kerns $ ++ * Version $Id: mount.c 5852 2007-11-04 19:57:42Z kerns $ + */ + + #include "bacula.h" /* pull in global headers */ +@@ -60,7 +60,7 @@ + * impossible to get the requested Volume. + * + */ +-bool mount_next_write_volume(DCR *dcr, bool release) ++bool mount_next_write_volume(DCR *dcr, bool have_vol, bool release) + { + int retry = 0; + bool ask = false, recycle, autochanger; +@@ -108,12 +108,16 @@ + * in dcr->VolCatInfo + */ + Dmsg0(200, "Before dir_find_next_appendable_volume.\n"); +- while (!dir_find_next_appendable_volume(dcr)) { +- Dmsg0(200, "not dir_find_next\n"); +- if (!dir_ask_sysop_to_create_appendable_volume(dcr)) { +- return false; ++ if (!have_vol) { ++ while (!dir_find_next_appendable_volume(dcr)) { ++ Dmsg0(200, "not dir_find_next\n"); ++ if (!dir_ask_sysop_to_create_appendable_volume(dcr)) { ++ return false; ++ } ++ Dmsg0(200, "Again dir_find_next_append...\n"); + } +- Dmsg0(200, "Again dir_find_next_append...\n"); ++ } else { ++ have_vol = false; /* set false for next pass if any */ + } + if (job_canceled(jcr)) { + return false; +@@ -144,7 +148,7 @@ + * If we autochanged to correct Volume or (we have not just + * released the Volume AND we can automount) we go ahead + * and read the label. If there is no tape in the drive, +- * we will err, recurse and ask the operator the next time. ++ * we will fail, recurse and ask the operator the next time. + */ + if (!release && dev->is_tape() && dev->has_cap(CAP_AUTOMOUNT)) { + Dmsg0(150, "(1)Ask=0\n"); +@@ -432,7 +436,7 @@ + } + dev->VolCatInfo.VolCatMounts++; /* Update mounts */ + Dmsg1(150, "update volinfo mounts=%d\n", dev->VolCatInfo.VolCatMounts); +- if (!dir_update_volume_info(dcr, false)) { ++ if (!dir_update_volume_info(dcr, false, false)) { + return false; + } + +@@ -519,7 +523,7 @@ + Dmsg0(150, "dir_update_vol_info. Set Append\n"); + /* Copy Director's info into the device info */ + dev->VolCatInfo = dcr->VolCatInfo; /* structure assignment */ +- if (!dir_update_volume_info(dcr, true)) { /* indicate tape labeled */ ++ if (!dir_update_volume_info(dcr, true, true)) { /* indicate tape labeled */ + return try_error; + } + Jmsg(dcr->jcr, M_INFO, 0, _("Labeled new Volume \"%s\" on device %s.\n"), +@@ -552,7 +556,7 @@ + dev->VolCatInfo = dcr->VolCatInfo; /* structure assignment */ + bstrncpy(dev->VolCatInfo.VolCatStatus, "Error", sizeof(dev->VolCatInfo.VolCatStatus)); + Dmsg0(150, "dir_update_vol_info. Set Error.\n"); +- dir_update_volume_info(dcr, false); ++ dir_update_volume_info(dcr, false, false); + } + + /* +@@ -570,7 +574,7 @@ + dcr->VolCatInfo.InChanger = false; + dev->VolCatInfo.InChanger = false; + Dmsg0(400, "update vol info in mount\n"); +- dir_update_volume_info(dcr, true); /* set new status */ ++ dir_update_volume_info(dcr, true, false); /* set new status */ + } + + /* +@@ -588,6 +592,7 @@ + /* + * First erase all memory of the current volume + */ ++ free_volume(dev); + dev->block_num = dev->file = 0; + dev->EndBlock = dev->EndFile = 0; + memset(&dev->VolCatInfo, 0, sizeof(dev->VolCatInfo)); +diff -ur k1/src/stored/protos.h k3/src/stored/protos.h +--- k1/src/stored/protos.h 2007-06-28 13:57:03.000000000 +0200 ++++ k3/src/stored/protos.h 2007-12-22 19:12:43.000000000 +0100 +@@ -28,7 +28,7 @@ + /* + * Protypes for stored -- Kern Sibbald MM + * +- * Version $Id: protos.h 5112 2007-06-28 11:57:03Z kerns $ ++ * Version $Id: protos.h 5852 2007-11-04 19:57:42Z kerns $ + */ + + /* From stored.c */ +@@ -49,7 +49,7 @@ + }; + bool dir_get_volume_info(DCR *dcr, enum get_vol_info_rw); + bool dir_find_next_appendable_volume(DCR *dcr); +-bool dir_update_volume_info(DCR *dcr, bool label); ++bool dir_update_volume_info(DCR *dcr, bool label, bool update_LastWritten); + bool dir_ask_sysop_to_create_appendable_volume(DCR *dcr); + bool dir_ask_sysop_to_mount_volume(DCR *dcr); + bool dir_update_file_attributes(DCR *dcr, DEV_RECORD *rec); +@@ -182,7 +182,7 @@ + bool is_this_bsr_done(BSR *bsr, DEV_RECORD *rec); + + /* From mount.c */ +-bool mount_next_write_volume(DCR *dcr, bool release); ++bool mount_next_write_volume(DCR *dcr, bool have_vol, bool release); + bool mount_next_read_volume(DCR *dcr); + void mark_volume_in_error(DCR *dcr); + +diff -ur k1/src/stored/record.c k3/src/stored/record.c +--- k1/src/stored/record.c 2007-06-07 16:46:43.000000000 +0200 ++++ k3/src/stored/record.c 2007-12-22 19:12:06.000000000 +0100 +@@ -1,14 +1,4 @@ + /* +- * +- * record.c -- tape record handling functions +- * +- * Kern Sibbald, April MMI +- * added BB02 format October MMII +- * +- * Version $Id: record.c 4992 2007-06-07 14:46:43Z kerns $ +- * +- */ +-/* + Bacula® - The Network Backup Solution + + Copyright (C) 2001-2006 Free Software Foundation Europe e.V. +@@ -35,6 +25,16 @@ + (FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zürich, + Switzerland, email:ftf@fsfeurope.org. + */ ++/* ++ * ++ * record.c -- tape record handling functions ++ * ++ * Kern Sibbald, April MMI ++ * added BB02 format October MMII ++ * ++ * Version $Id: record.c 6014 2007-12-03 18:14:27Z kerns $ ++ * ++ */ + + + #include "bacula.h" +@@ -254,7 +254,7 @@ + ASSERT(block->buf_len >= block->binbuf); + + Dmsg6(890, "write_record_to_block() FI=%s SessId=%d Strm=%s len=%d\n" +-"rem=%d remainder=%d\n", ++ "rem=%d remainder=%d\n", + FI_to_ascii(buf1, rec->FileIndex), rec->VolSessionId, + stream_to_ascii(buf2, rec->Stream, rec->FileIndex), rec->data_len, + remlen, rec->remainder); +@@ -365,7 +365,7 @@ + if (!sm_check_rtn(__FILE__, __LINE__, False)) { + /* We damaged a buffer */ + Dmsg6(0, "Damaged block FI=%s SessId=%d Strm=%s len=%d\n" +-"rem=%d remainder=%d\n", ++ "rem=%d remainder=%d\n", + FI_to_ascii(buf1, rec->FileIndex), rec->VolSessionId, + stream_to_ascii(buf2, rec->Stream, rec->FileIndex), rec->data_len, + remlen, rec->remainder); +diff -ur k1/src/stored/reserve.c k3/src/stored/reserve.c +--- k1/src/stored/reserve.c 2007-08-04 18:46:32.000000000 +0200 ++++ k3/src/stored/reserve.c 2007-12-22 19:09:56.000000000 +0100 +@@ -212,11 +212,11 @@ + if (dev) { + len = Mmsg(msg, "%s on device %s\n", vol->vol_name, dev->print_name()); + sendit(msg.c_str(), len, arg); +- len = Mmsg(msg, " Reader=%d writers=%d reserved=%d\n", dev->can_read()?1:0, +- dev->num_writers, dev->reserved_device); ++ len = Mmsg(msg, " Reader=%d writers=%d reserved=%d released=%d\n", ++ dev->can_read()?1:0, dev->num_writers, dev->reserved_device, vol->released); + sendit(msg.c_str(), len, arg); + } else { +- len = Mmsg(msg, "%s no dev\n", vol->vol_name); ++ len = Mmsg(msg, "%s no device. released=%d\n", vol->vol_name, vol->released); + sendit(msg.c_str(), len, arg); + } + } +@@ -292,11 +292,11 @@ + * already exist and are correctly programmed and will need no changes -- use + * counts are always very tricky. + * +- * The old code had a concept of "reserving" a Volume, but it needs to be changed ++ * The old code had a concept of "reserving" a Volume, but was changed + * to reserving and using a drive. A volume is must be attached to (owned by) a + * drive and can move from drive to drive or be unused given certain specific + * conditions of the drive. The key is that the drive must "own" the Volume. +- * The old code has the job (dcr) owning the volume (more or less). The job is ++ * The old code had the job (dcr) owning the volume (more or less). The job was + * to change the insertion and removal of the volumes from the list to be based + * on the drive rather than the job. + * +@@ -329,13 +329,14 @@ + * because it was probably inserted by another job. + */ + if (strcmp(vol->vol_name, VolumeName) == 0) { ++ Dmsg1(dbglvl, "OK, vol=%s on device.\n", VolumeName); + goto get_out; /* Volume already on this device */ + } else { +- Dmsg3(dbglvl, "jid=%u reserve_vol free vol=%s at %p\n", ++ Dmsg3(dbglvl, "jid=%u reserve_vol free vol=%s at %p\n", + (int)dcr->jcr->JobId, vol->vol_name, vol->vol_name); +- debug_list_volumes("reserve_vol free"); + vol_list->remove(vol); + free_vol_item(vol); ++ debug_list_volumes("reserve_vol free"); + } + } + +@@ -378,12 +379,16 @@ + Dmsg4(dbglvl, "jid=%u Volume busy could not swap vol=%s from dev=%s to %s\n", + jid(), VolumeName, vol->dev->print_name(), dev->print_name()); + vol = NULL; /* device busy */ ++ goto get_out; + } + } + } + dev->vol = vol; + + get_out: ++ if (vol) { ++ vol->released = false; ++ } + debug_list_volumes("end new volume"); + unlock_volumes(); + return vol; +@@ -462,6 +467,7 @@ + * explicitly read in this drive. This allows the SD to remember + * where the tapes are or last were. + */ ++ dev->vol->released = true; + if (dev->is_tape() || dev->is_autochanger()) { + return true; + } else { +@@ -837,6 +843,7 @@ + dlist *temp_vol_list, *save_vol_list; + VOLRES *vol = NULL; + lock_volumes(); ++ Dmsg0(dbglvl, "lock volumes\n"); + + /* + * Create a temporary copy of the volume list. We do this, +@@ -1122,6 +1129,26 @@ + */ + if (dcr->volume_in_use && !rctx.PreferMountedVols) { + rctx.PreferMountedVols = true; ++ if (dcr->VolumeName[0]) { ++ volume_unused(dcr); ++ } ++ goto bail_out; ++ } ++ /* ++ * Note. Under some circumstances, the Director can hand us ++ * a Volume name that is no the same as the one on the current ++ * drive, and in that case, the call above to find the next ++ * volume will fail because in attempting to reserve the Volume ++ * the code will realize that we already have a tape mounted, ++ * and it will fail. This *should* only happen if there are ++ * writers, thus the following test. In that case, we simply ++ * bail out, and continue waiting, rather than plunging on ++ * and hoping that the operator can resolve the problem. ++ */ ++ if (dcr->dev->num_writers != 0) { ++ if (dcr->VolumeName[0]) { ++ volume_unused(dcr); ++ } + goto bail_out; + } + } +@@ -1270,6 +1297,51 @@ + return ok; + } + ++static int is_pool_ok(DCR *dcr) ++{ ++ DEVICE *dev = dcr->dev; ++ JCR *jcr = dcr->jcr; ++ ++ /* Now check if we want the same Pool and pool type */ ++ if (strcmp(dev->pool_name, dcr->pool_name) == 0 && ++ strcmp(dev->pool_type, dcr->pool_type) == 0) { ++ /* OK, compatible device */ ++ Dmsg1(dbglvl, "OK dev: %s num_writers=0, reserved, pool matches\n", dev->print_name()); ++ return 1; ++ } else { ++ /* Drive Pool not suitable for us */ ++ Mmsg(jcr->errmsg, _( ++"3608 JobId=%u wants Pool=\"%s\" but have Pool=\"%s\" nreserve=%d on drive %s.\n"), ++ (uint32_t)jcr->JobId, dcr->pool_name, dev->pool_name, ++ dev->reserved_device, dev->print_name()); ++ queue_reserve_message(jcr); ++ Dmsg2(dbglvl, "failed: busy num_writers=0, reserved, pool=%s wanted=%s\n", ++ dev->pool_name, dcr->pool_name); ++ } ++ return 0; ++} ++ ++static bool is_max_jobs_ok(DCR *dcr) ++{ ++ DEVICE *dev = dcr->dev; ++ JCR *jcr = dcr->jcr; ++ ++ Dmsg4(dbglvl, "MaxJobs=%d Jobs=%d reserves=%d Vol=%s\n", ++ dcr->VolCatInfo.VolCatMaxJobs, ++ dcr->VolCatInfo.VolCatJobs, dev->reserved_device, ++ dcr->VolumeName); ++ if (dcr->VolCatInfo.VolCatMaxJobs > 0 && dcr->VolCatInfo.VolCatMaxJobs <= ++ (dcr->VolCatInfo.VolCatJobs + dev->reserved_device)) { ++ /* Max Job Vols depassed or already reserved */ ++ Mmsg(jcr->errmsg, _("3610 JobId=%u Volume max jobs exceeded on drive %s.\n"), ++ (uint32_t)jcr->JobId, dev->print_name()); ++ queue_reserve_message(jcr); ++ Dmsg1(dbglvl, "reserve dev failed: %s", jcr->errmsg); ++ return false; /* wait */ ++ } ++ return true; ++} ++ + /* + * Returns: 1 if drive can be reserved + * 0 if we should wait +@@ -1285,6 +1357,11 @@ + rctx.PreferMountedVols, rctx.exact_match, rctx.suitable_device, + rctx.autochanger_only, rctx.any_drive); + ++ /* Check for max jobs on this Volume */ ++ if (!is_max_jobs_ok(dcr)) { ++ return 0; ++ } ++ + /* setting any_drive overrides PreferMountedVols flag */ + if (!rctx.any_drive) { + /* +@@ -1374,32 +1451,10 @@ + if (dev->num_writers == 0) { + /* Now check if there are any reservations on the drive */ + if (dev->reserved_device) { +- /* Now check if we want the same Pool and pool type */ +- if (strcmp(dev->pool_name, dcr->pool_name) == 0 && +- strcmp(dev->pool_type, dcr->pool_type) == 0) { +- /* OK, compatible device */ +- Dmsg2(dbglvl, "jid=%u OK dev: %s num_writers=0, reserved, pool matches\n", +- jcr->JobId, dev->print_name()); +- return 1; +- } else { +- /* Drive Pool not suitable for us */ +- Mmsg(jcr->errmsg, _( +-"3608 JobId=%u wants Pool=\"%s\" but have Pool=\"%s\" nreserve=%d on drive %s.\n"), +- jcr->JobId, dcr->pool_name, dev->pool_name, +- dev->reserved_device, dev->print_name()); +- queue_reserve_message(jcr); +- Dmsg3(dbglvl, "jid=%u failed: busy num_writers=0, reserved, pool=%s wanted=%s\n", +- (int)jcr->JobId, dev->pool_name, dcr->pool_name); +- return 0; /* wait */ +- } ++ return is_pool_ok(dcr); + } else if (dev->can_append()) { +- /* Device in append mode, check if changing pool */ +- if (strcmp(dev->pool_name, dcr->pool_name) == 0 && +- strcmp(dev->pool_type, dcr->pool_type) == 0) { +- Dmsg2(dbglvl, "jid=%u OK dev: %s num_writers=0, can_append, pool matches.\n", +- jcr->JobId, dev->print_name()); +- /* OK, compatible device */ +- return 1; ++ if (is_pool_ok(dcr)) { ++ return 1; + } else { + /* Changing pool, unload old tape if any in drive */ + Dmsg1(dbglvl, "jid=%u OK dev: num_writers=0, not reserved, pool change, unload changer\n", +@@ -1419,22 +1474,7 @@ + * available if pool is the same). + */ + if (dev->can_append() || dev->num_writers > 0) { +- /* Yes, now check if we want the same Pool and pool type */ +- if (strcmp(dev->pool_name, dcr->pool_name) == 0 && +- strcmp(dev->pool_type, dcr->pool_type) == 0) { +- Dmsg2(dbglvl, "jid=%u OK dev: %s num_writers>=0, can_append, pool matches.\n", +- jcr->JobId, dev->print_name()); +- /* OK, compatible device */ +- return 1; +- } else { +- /* Drive Pool not suitable for us */ +- Mmsg(jcr->errmsg, _("3609 JobId=%u wants Pool=\"%s\" but has Pool=\"%s\" on drive %s.\n"), +- jcr->JobId, dcr->pool_name, dev->pool_name, dev->print_name()); +- queue_reserve_message(jcr); +- Dmsg3(dbglvl, "jid=%u failed: busy num_writers>0, can_append, pool=%s wanted=%s\n", +- (int)jcr->JobId, dev->pool_name, dcr->pool_name); +- return 0; /* wait */ +- } ++ return is_pool_ok(dcr); + } else { + Pmsg1(000, _("Logic error!!!! JobId=%u Should not get here.\n"), (int)jcr->JobId); + Mmsg(jcr->errmsg, _("3910 JobId=%u Logic error!!!! drive %s Should not get here.\n"), diff --git a/Branch-2.2/bacula/patches/2.2.x/2.2.0-restore.patch b/Branch-2.2/bacula/patches/2.2.x/2.2.0-restore.patch new file mode 100644 index 0000000000..4cccf12c8c --- /dev/null +++ b/Branch-2.2/bacula/patches/2.2.x/2.2.0-restore.patch @@ -0,0 +1,322 @@ +Index: fd_cmds.c +=================================================================== +--- fd_cmds.c (.../tags/Release-2.2.0/bacula/src/stored) (revision 5508) ++++ fd_cmds.c (.../branches/Branch-2.2/bacula/src/stored) (revision 5508) +@@ -1,18 +1,4 @@ + /* +- * This file handles commands from the File daemon. +- * +- * Kern Sibbald, MM +- * +- * We get here because the Director has initiated a Job with +- * the Storage daemon, then done the same with the File daemon, +- * then when the Storage daemon receives a proper connection from +- * the File daemon, control is passed here to handle the +- * subsequent File daemon commands. +- * +- * Version $Id$ +- * +- */ +-/* + Bacula® - The Network Backup Solution + + Copyright (C) 2000-2007 Free Software Foundation Europe e.V. +@@ -39,6 +25,20 @@ + (FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zürich, + Switzerland, email:ftf@fsfeurope.org. + */ ++/* ++ * This file handles commands from the File daemon. ++ * ++ * Kern Sibbald, MM ++ * ++ * We get here because the Director has initiated a Job with ++ * the Storage daemon, then done the same with the File daemon, ++ * then when the Storage daemon receives a proper connection from ++ * the File daemon, control is passed here to handle the ++ * subsequent File daemon commands. ++ * ++ * Version $Id$ ++ * ++ */ + + #include "bacula.h" + #include "stored.h" +@@ -120,7 +120,7 @@ + + dir->set_jcr(jcr); + Dmsg1(120, "Start run Job=%s\n", jcr->Job); +- bnet_fsend(dir, Job_start, jcr->Job); ++ dir->fsend(Job_start, jcr->Job); + jcr->start_time = time(NULL); + jcr->run_time = jcr->start_time; + set_jcr_job_status(jcr, JS_Running); +@@ -130,9 +130,9 @@ + dequeue_messages(jcr); /* send any queued messages */ + set_jcr_job_status(jcr, JS_Terminated); + generate_daemon_event(jcr, "JobEnd"); +- bnet_fsend(dir, Job_end, jcr->Job, jcr->JobStatus, jcr->JobFiles, ++ dir->fsend(Job_end, jcr->Job, jcr->JobStatus, jcr->JobFiles, + edit_uint64(jcr->JobBytes, ec1)); +- bnet_sig(dir, BNET_EOD); /* send EOD to Director daemon */ ++ dir->signal(BNET_EOD); /* send EOD to Director daemon */ + return; + } + +@@ -150,7 +150,7 @@ + int stat; + + /* Read command coming from the File daemon */ +- stat = bnet_recv(fd); ++ stat = fd->recv(); + if (is_bnet_stop(fd)) { /* hardeof or error */ + break; /* connection terminated */ + } +@@ -171,11 +171,11 @@ + } + if (!found) { /* command not found */ + Dmsg1(110, "msg); +- bnet_fsend(fd, ferrmsg); ++ fd->fsend(ferrmsg); + break; + } + } +- bnet_sig(fd, BNET_TERMINATE); /* signal to FD job is done */ ++ fd->signal(BNET_TERMINATE); /* signal to FD job is done */ + } + + /* +@@ -195,10 +195,10 @@ + return true; + } else { + bnet_suppress_error_messages(fd, 1); /* ignore errors at this point */ +- bnet_fsend(fd, ERROR_append); ++ fd->fsend(ERROR_append); + } + } else { +- bnet_fsend(fd, NOT_opened); ++ fd->fsend(NOT_opened); + } + return false; + } +@@ -209,11 +209,11 @@ + + Dmsg1(120, "storemsg); + if (!jcr->session_opened) { +- bnet_fsend(fd, NOT_opened); ++ fd->fsend(NOT_opened); + return false; + } + set_jcr_job_status(jcr, JS_Terminated); +- return bnet_fsend(fd, OK_end); ++ return fd->fsend(OK_end); + } + + +@@ -227,14 +227,14 @@ + + Dmsg1(120, "Append open session: %s", fd->msg); + if (jcr->session_opened) { +- bnet_fsend(fd, NO_open); ++ fd->fsend(NO_open); + return false; + } + + jcr->session_opened = true; + + /* Send "Ticket" to File Daemon */ +- bnet_fsend(fd, OK_open, jcr->VolSessionId); ++ fd->fsend(OK_open, jcr->VolSessionId); + Dmsg1(110, ">filed: %s", fd->msg); + + return true; +@@ -251,14 +251,14 @@ + + Dmsg1(120, "msg); + if (!jcr->session_opened) { +- bnet_fsend(fd, NOT_opened); ++ fd->fsend(NOT_opened); + return false; + } + /* Send final statistics to File daemon */ +- bnet_fsend(fd, OK_close, jcr->JobStatus); ++ fd->fsend(OK_close, jcr->JobStatus); + Dmsg1(120, ">filed: %s", fd->msg); + +- bnet_sig(fd, BNET_EOD); /* send EOD to File daemon */ ++ fd->signal(BNET_EOD); /* send EOD to File daemon */ + + jcr->session_opened = false; + return true; +@@ -279,7 +279,7 @@ + Dmsg1(120, "msg); + return do_read_data(jcr); + } else { +- bnet_fsend(fd, NOT_opened); ++ fd->fsend(NOT_opened); + return false; + } + } +@@ -296,7 +296,7 @@ + + Dmsg1(120, "%s\n", fd->msg); + if (jcr->session_opened) { +- bnet_fsend(fd, NO_open); ++ fd->fsend(NO_open); + return false; + } + +@@ -304,7 +304,7 @@ + &jcr->read_VolSessionTime, &jcr->read_StartFile, &jcr->read_EndFile, + &jcr->read_StartBlock, &jcr->read_EndBlock) == 7) { + if (jcr->session_opened) { +- bnet_fsend(fd, NOT_opened); ++ fd->fsend(NOT_opened); + return false; + } + Dmsg4(100, "read_open_session got: JobId=%d Vol=%s VolSessId=%ld VolSessT=%ld\n", +@@ -319,7 +319,7 @@ + jcr->JobType = JT_RESTORE; + + /* Send "Ticket" to File Daemon */ +- bnet_fsend(fd, OK_open, jcr->VolSessionId); ++ fd->fsend(OK_open, jcr->VolSessionId); + Dmsg1(110, ">filed: %s", fd->msg); + + return true; +@@ -357,7 +357,7 @@ + goto bail_out; + } + Dmsg0(10, "=== Bootstrap file ===\n"); +- while (bnet_recv(sock) >= 0) { ++ while (sock->recv() >= 0) { + Dmsg1(10, "%s", sock->msg); + fputs(sock->msg, bs); + } +@@ -378,10 +378,10 @@ + free_pool_memory(jcr->RestoreBootstrap); + jcr->RestoreBootstrap = NULL; + if (!ok) { +- bnet_fsend(sock, ERROR_bootstrap); ++ sock->fsend(ERROR_bootstrap); + return false; + } +- return bnet_fsend(sock, OK_bootstrap); ++ return sock->fsend(OK_bootstrap); + } + + +@@ -395,14 +395,14 @@ + + Dmsg1(120, "Read close session: %s\n", fd->msg); + if (!jcr->session_opened) { +- bnet_fsend(fd, NOT_opened); ++ fd->fsend(NOT_opened); + return false; + } +- /* Send final statistics to File daemon */ +- bnet_fsend(fd, OK_close); ++ /* Send final close msg to File daemon */ ++ fd->fsend(OK_close, jcr->JobStatus); + Dmsg1(160, ">filed: %s\n", fd->msg); + +- bnet_sig(fd, BNET_EOD); /* send EOD to File daemon */ ++ fd->signal(BNET_EOD); /* send EOD to File daemon */ + + jcr->session_opened = false; + return true; +Index: stored_conf.c +=================================================================== +--- stored_conf.c (.../tags/Release-2.2.0/bacula/src/stored) (revision 5508) ++++ stored_conf.c (.../branches/Branch-2.2/bacula/src/stored) (revision 5508) +@@ -75,7 +75,7 @@ + {"piddirectory", store_dir, ITEM(res_store.pid_directory), 0, ITEM_REQUIRED, 0}, + {"subsysdirectory", store_dir, ITEM(res_store.subsys_directory), 0, 0, 0}, + {"scriptsdirectory", store_dir, ITEM(res_store.scripts_directory), 0, 0, 0}, +- {"maximumconcurrentjobs", store_pint, ITEM(res_store.max_concurrent_jobs), 0, ITEM_DEFAULT, 10}, ++ {"maximumconcurrentjobs", store_pint, ITEM(res_store.max_concurrent_jobs), 0, ITEM_DEFAULT, 20}, + {"heartbeatinterval", store_time, ITEM(res_store.heartbeat_interval), 0, ITEM_DEFAULT, 0}, + {"tlsenable", store_bit, ITEM(res_store.tls_enable), 1, 0, 0}, + {"tlsrequire", store_bit, ITEM(res_store.tls_require), 1, 0, 0}, +Index: bscan.c +=================================================================== +--- bscan.c (.../tags/Release-2.2.0/bacula/src/stored) (revision 5508) ++++ bscan.c (.../branches/Branch-2.2/bacula/src/stored) (revision 5508) +@@ -120,7 +120,7 @@ + " -m update media info in database\n" + " -n specify the database name (default bacula)\n" + " -u specify database user name (default bacula)\n" +-" -P specify database password (default none)\n" + " -h specify database host (default NULL)\n" + " -p proceed inspite of I/O errors\n" + " -r list records\n" +@@ -326,6 +326,7 @@ + mdcr->StartFile = dcr->StartFile; + mdcr->EndBlock = dcr->EndBlock; + mdcr->EndFile = dcr->EndFile; ++ mdcr->VolMediaId = dcr->VolMediaId; + mjcr->read_dcr->VolLastIndex = dcr->VolLastIndex; + if (!create_jobmedia_record(db, mjcr)) { + Pmsg2(000, _("Could not create JobMedia record for Volume=%s Job=%s\n"), +@@ -476,6 +477,7 @@ + dcr->VolFirstIndex = dcr->FileIndex = 0; + dcr->StartBlock = dcr->EndBlock = 0; + dcr->StartFile = dcr->EndFile = 0; ++ dcr->VolMediaId = 0; + } + + Pmsg1(000, _("VOL_LABEL: OK for Volume: %s\n"), mr.VolumeName); +@@ -1177,6 +1179,7 @@ + + dcr->EndBlock = dev->EndBlock; + dcr->EndFile = dev->EndFile; ++ dcr->VolMediaId = dev->VolCatInfo.VolMediaId; + + memset(&jmr, 0, sizeof(jmr)); + jmr.JobId = mjcr->JobId; +Index: askdir.c +=================================================================== +--- askdir.c (.../tags/Release-2.2.0/bacula/src/stored) (revision 5508) ++++ askdir.c (.../branches/Branch-2.2/bacula/src/stored) (revision 5508) +@@ -398,7 +398,7 @@ + dcr->StartFile, dcr->EndFile, + dcr->StartBlock, dcr->EndBlock, + dcr->Copy, dcr->Stripe, +- edit_uint64(dcr->dev->VolCatInfo.VolMediaId, ed1)); ++ edit_uint64(dcr->VolMediaId, ed1)); + Dmsg1(100, ">dird: %s", dir->msg); + if (bnet_recv(dir) <= 0) { + Dmsg0(190, "create_jobmedia error bnet_recv\n"); +Index: dev.h +=================================================================== +--- dev.h (.../tags/Release-2.2.0/bacula/src/stored) (revision 5508) ++++ dev.h (.../branches/Branch-2.2/bacula/src/stored) (revision 5508) +@@ -447,6 +447,7 @@ + uint32_t StartFile; /* Start write file */ + uint32_t StartBlock; /* Start write block */ + uint32_t EndBlock; /* Ending block written */ ++ int64_t VolMediaId; /* MediaId */ + int64_t job_spool_size; /* Current job spool size */ + int64_t max_job_spool_size; /* Max job spool size */ + char VolumeName[MAX_NAME_LENGTH]; /* Volume name */ +Index: block.c +=================================================================== +--- block.c (.../tags/Release-2.2.0/bacula/src/stored) (revision 5508) ++++ block.c (.../branches/Branch-2.2/bacula/src/stored) (revision 5508) +@@ -611,6 +611,7 @@ + dev->block_num = dcr->EndBlock; + dev->file = dcr->EndFile; + } ++ dcr->VolMediaId = dev->VolCatInfo.VolMediaId; + if (dcr->VolFirstIndex == 0 && block->FirstIndex > 0) { + dcr->VolFirstIndex = block->FirstIndex; + } +@@ -1098,6 +1099,7 @@ + dev->block_num = dcr->EndBlock; + dev->file = dcr->EndFile; + } ++ dcr->VolMediaId = dev->VolCatInfo.VolMediaId; + dev->file_addr += block->read_len; + dev->file_size += block->read_len; + diff --git a/Branch-2.2/bacula/patches/2.2.x/2.2.1-restore.patch b/Branch-2.2/bacula/patches/2.2.x/2.2.1-restore.patch new file mode 100644 index 0000000000..255058475c --- /dev/null +++ b/Branch-2.2/bacula/patches/2.2.x/2.2.1-restore.patch @@ -0,0 +1,117 @@ +Index: fd_cmds.c +=================================================================== +--- fd_cmds.c (.../tags/Release-2.2.1/bacula/src/stored) (revision 5508) ++++ fd_cmds.c (.../branches/Branch-2.2/bacula/src/stored) (revision 5508) +@@ -1,18 +1,4 @@ + /* +- * This file handles commands from the File daemon. +- * +- * Kern Sibbald, MM +- * +- * We get here because the Director has initiated a Job with +- * the Storage daemon, then done the same with the File daemon, +- * then when the Storage daemon receives a proper connection from +- * the File daemon, control is passed here to handle the +- * subsequent File daemon commands. +- * +- * Version $Id$ +- * +- */ +-/* + Bacula® - The Network Backup Solution + + Copyright (C) 2000-2007 Free Software Foundation Europe e.V. +@@ -39,6 +25,20 @@ + (FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zürich, + Switzerland, email:ftf@fsfeurope.org. + */ ++/* ++ * This file handles commands from the File daemon. ++ * ++ * Kern Sibbald, MM ++ * ++ * We get here because the Director has initiated a Job with ++ * the Storage daemon, then done the same with the File daemon, ++ * then when the Storage daemon receives a proper connection from ++ * the File daemon, control is passed here to handle the ++ * subsequent File daemon commands. ++ * ++ * Version $Id$ ++ * ++ */ + + #include "bacula.h" + #include "stored.h" +Index: bscan.c +=================================================================== +--- bscan.c (.../tags/Release-2.2.1/bacula/src/stored) (revision 5508) ++++ bscan.c (.../branches/Branch-2.2/bacula/src/stored) (revision 5508) +@@ -326,6 +326,7 @@ + mdcr->StartFile = dcr->StartFile; + mdcr->EndBlock = dcr->EndBlock; + mdcr->EndFile = dcr->EndFile; ++ mdcr->VolMediaId = dcr->VolMediaId; + mjcr->read_dcr->VolLastIndex = dcr->VolLastIndex; + if (!create_jobmedia_record(db, mjcr)) { + Pmsg2(000, _("Could not create JobMedia record for Volume=%s Job=%s\n"), +@@ -476,6 +477,7 @@ + dcr->VolFirstIndex = dcr->FileIndex = 0; + dcr->StartBlock = dcr->EndBlock = 0; + dcr->StartFile = dcr->EndFile = 0; ++ dcr->VolMediaId = 0; + } + + Pmsg1(000, _("VOL_LABEL: OK for Volume: %s\n"), mr.VolumeName); +@@ -1177,6 +1179,7 @@ + + dcr->EndBlock = dev->EndBlock; + dcr->EndFile = dev->EndFile; ++ dcr->VolMediaId = dev->VolCatInfo.VolMediaId; + + memset(&jmr, 0, sizeof(jmr)); + jmr.JobId = mjcr->JobId; +Index: askdir.c +=================================================================== +--- askdir.c (.../tags/Release-2.2.1/bacula/src/stored) (revision 5508) ++++ askdir.c (.../branches/Branch-2.2/bacula/src/stored) (revision 5508) +@@ -398,7 +398,7 @@ + dcr->StartFile, dcr->EndFile, + dcr->StartBlock, dcr->EndBlock, + dcr->Copy, dcr->Stripe, +- edit_uint64(dcr->dev->VolCatInfo.VolMediaId, ed1)); ++ edit_uint64(dcr->VolMediaId, ed1)); + Dmsg1(100, ">dird: %s", dir->msg); + if (bnet_recv(dir) <= 0) { + Dmsg0(190, "create_jobmedia error bnet_recv\n"); +Index: dev.h +=================================================================== +--- dev.h (.../tags/Release-2.2.1/bacula/src/stored) (revision 5508) ++++ dev.h (.../branches/Branch-2.2/bacula/src/stored) (revision 5508) +@@ -447,6 +447,7 @@ + uint32_t StartFile; /* Start write file */ + uint32_t StartBlock; /* Start write block */ + uint32_t EndBlock; /* Ending block written */ ++ int64_t VolMediaId; /* MediaId */ + int64_t job_spool_size; /* Current job spool size */ + int64_t max_job_spool_size; /* Max job spool size */ + char VolumeName[MAX_NAME_LENGTH]; /* Volume name */ +Index: block.c +=================================================================== +--- block.c (.../tags/Release-2.2.1/bacula/src/stored) (revision 5508) ++++ block.c (.../branches/Branch-2.2/bacula/src/stored) (revision 5508) +@@ -611,6 +611,7 @@ + dev->block_num = dcr->EndBlock; + dev->file = dcr->EndFile; + } ++ dcr->VolMediaId = dev->VolCatInfo.VolMediaId; + if (dcr->VolFirstIndex == 0 && block->FirstIndex > 0) { + dcr->VolFirstIndex = block->FirstIndex; + } +@@ -1098,6 +1099,7 @@ + dev->block_num = dcr->EndBlock; + dev->file = dcr->EndFile; + } ++ dcr->VolMediaId = dev->VolCatInfo.VolMediaId; + dev->file_addr += block->read_len; + dev->file_size += block->read_len; + diff --git a/Branch-2.2/bacula/patches/2.2.x/2.2.2-restore.patch b/Branch-2.2/bacula/patches/2.2.x/2.2.2-restore.patch new file mode 100644 index 0000000000..c061e4cf3c --- /dev/null +++ b/Branch-2.2/bacula/patches/2.2.x/2.2.2-restore.patch @@ -0,0 +1,117 @@ +Index: fd_cmds.c +=================================================================== +--- fd_cmds.c (.../tags/Release-2.2.2/bacula/src/stored) (revision 5508) ++++ fd_cmds.c (.../branches/Branch-2.2/bacula/src/stored) (revision 5508) +@@ -1,18 +1,4 @@ + /* +- * This file handles commands from the File daemon. +- * +- * Kern Sibbald, MM +- * +- * We get here because the Director has initiated a Job with +- * the Storage daemon, then done the same with the File daemon, +- * then when the Storage daemon receives a proper connection from +- * the File daemon, control is passed here to handle the +- * subsequent File daemon commands. +- * +- * Version $Id$ +- * +- */ +-/* + Bacula® - The Network Backup Solution + + Copyright (C) 2000-2007 Free Software Foundation Europe e.V. +@@ -39,6 +25,20 @@ + (FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zürich, + Switzerland, email:ftf@fsfeurope.org. + */ ++/* ++ * This file handles commands from the File daemon. ++ * ++ * Kern Sibbald, MM ++ * ++ * We get here because the Director has initiated a Job with ++ * the Storage daemon, then done the same with the File daemon, ++ * then when the Storage daemon receives a proper connection from ++ * the File daemon, control is passed here to handle the ++ * subsequent File daemon commands. ++ * ++ * Version $Id$ ++ * ++ */ + + #include "bacula.h" + #include "stored.h" +Index: bscan.c +=================================================================== +--- bscan.c (.../tags/Release-2.2.2/bacula/src/stored) (revision 5508) ++++ bscan.c (.../branches/Branch-2.2/bacula/src/stored) (revision 5508) +@@ -326,6 +326,7 @@ + mdcr->StartFile = dcr->StartFile; + mdcr->EndBlock = dcr->EndBlock; + mdcr->EndFile = dcr->EndFile; ++ mdcr->VolMediaId = dcr->VolMediaId; + mjcr->read_dcr->VolLastIndex = dcr->VolLastIndex; + if (!create_jobmedia_record(db, mjcr)) { + Pmsg2(000, _("Could not create JobMedia record for Volume=%s Job=%s\n"), +@@ -476,6 +477,7 @@ + dcr->VolFirstIndex = dcr->FileIndex = 0; + dcr->StartBlock = dcr->EndBlock = 0; + dcr->StartFile = dcr->EndFile = 0; ++ dcr->VolMediaId = 0; + } + + Pmsg1(000, _("VOL_LABEL: OK for Volume: %s\n"), mr.VolumeName); +@@ -1177,6 +1179,7 @@ + + dcr->EndBlock = dev->EndBlock; + dcr->EndFile = dev->EndFile; ++ dcr->VolMediaId = dev->VolCatInfo.VolMediaId; + + memset(&jmr, 0, sizeof(jmr)); + jmr.JobId = mjcr->JobId; +Index: askdir.c +=================================================================== +--- askdir.c (.../tags/Release-2.2.2/bacula/src/stored) (revision 5508) ++++ askdir.c (.../branches/Branch-2.2/bacula/src/stored) (revision 5508) +@@ -398,7 +398,7 @@ + dcr->StartFile, dcr->EndFile, + dcr->StartBlock, dcr->EndBlock, + dcr->Copy, dcr->Stripe, +- edit_uint64(dcr->dev->VolCatInfo.VolMediaId, ed1)); ++ edit_uint64(dcr->VolMediaId, ed1)); + Dmsg1(100, ">dird: %s", dir->msg); + if (bnet_recv(dir) <= 0) { + Dmsg0(190, "create_jobmedia error bnet_recv\n"); +Index: dev.h +=================================================================== +--- dev.h (.../tags/Release-2.2.2/bacula/src/stored) (revision 5508) ++++ dev.h (.../branches/Branch-2.2/bacula/src/stored) (revision 5508) +@@ -447,6 +447,7 @@ + uint32_t StartFile; /* Start write file */ + uint32_t StartBlock; /* Start write block */ + uint32_t EndBlock; /* Ending block written */ ++ int64_t VolMediaId; /* MediaId */ + int64_t job_spool_size; /* Current job spool size */ + int64_t max_job_spool_size; /* Max job spool size */ + char VolumeName[MAX_NAME_LENGTH]; /* Volume name */ +Index: block.c +=================================================================== +--- block.c (.../tags/Release-2.2.2/bacula/src/stored) (revision 5508) ++++ block.c (.../branches/Branch-2.2/bacula/src/stored) (revision 5508) +@@ -611,6 +611,7 @@ + dev->block_num = dcr->EndBlock; + dev->file = dcr->EndFile; + } ++ dcr->VolMediaId = dev->VolCatInfo.VolMediaId; + if (dcr->VolFirstIndex == 0 && block->FirstIndex > 0) { + dcr->VolFirstIndex = block->FirstIndex; + } +@@ -1098,6 +1099,7 @@ + dev->block_num = dcr->EndBlock; + dev->file = dcr->EndFile; + } ++ dcr->VolMediaId = dev->VolCatInfo.VolMediaId; + dev->file_addr += block->read_len; + dev->file_size += block->read_len; + diff --git a/Branch-2.2/bacula/patches/2.2.x/2.2.3-migrate-vol.patch b/Branch-2.2/bacula/patches/2.2.x/2.2.3-migrate-vol.patch new file mode 100644 index 0000000000..cdb0a366cb --- /dev/null +++ b/Branch-2.2/bacula/patches/2.2.x/2.2.3-migrate-vol.patch @@ -0,0 +1,28 @@ + This patch corrects a bug where the last volume of a migration + job is incorrectly found producing an error. This fixes bug #936. + Apply the patch to 2.2.3 (and possibly earlier 2.2.x versions) with: + + cd + patch -p0 <2.2.3-migrate-vol.patch + ./configure (your options) + make + ... + make install + +Index: src/dird/migrate.c +=================================================================== +--- src/dird/migrate.c (revision 5507) ++++ src/dird/migrate.c (working copy) +@@ -1098,8 +1098,10 @@ + if (mig_jcr->VolumeName[0]) { + /* Find last volume name. Multiple vols are separated by | */ + char *p = strrchr(mig_jcr->VolumeName, '|'); +- if (!p) { +- p = mig_jcr->VolumeName; ++ if (p) { ++ p++; /* skip | */ ++ } else { ++ p = mig_jcr->VolumeName; /* no |, take full name */ + } + bstrncpy(mr.VolumeName, p, sizeof(mr.VolumeName)); + if (!db_get_media_record(jcr, jcr->db, &mr)) { diff --git a/Branch-2.2/bacula/patches/2.2.x/2.2.3-tls.patch b/Branch-2.2/bacula/patches/2.2.x/2.2.3-tls.patch new file mode 100644 index 0000000000..c65132e48a --- /dev/null +++ b/Branch-2.2/bacula/patches/2.2.x/2.2.3-tls.patch @@ -0,0 +1,43 @@ + + This patch was supplied by Landon Fuller and corrects a bug that + caused high CPU usage when connecting from bconsole to the Director. + This fixes bug #944. + + Apply this patch to version 2.2.3 (it should work with any 2.2.x + version with: + + cd + patch -p0 <2.2.3-tls.patch + ./configure (your options) + make + ... + make install + +Index: src/lib/tls.c +=================================================================== +--- src/lib/tls.c (revision 5507) ++++ src/lib/tls.c (working copy) +@@ -622,13 +622,21 @@ + break; + + case SSL_ERROR_WANT_READ: ++ /* If we timeout on a select, this will be unset */ ++ FD_SET((unsigned)bsock->m_fd, &fdset); ++ tv.tv_sec = 10; ++ tv.tv_usec = 0; ++ /* Block until we can read */ ++ select(fdmax, &fdset, NULL, NULL, &tv); ++ break; ++ + case SSL_ERROR_WANT_WRITE: + /* If we timeout on a select, this will be unset */ + FD_SET((unsigned)bsock->m_fd, &fdset); + tv.tv_sec = 10; + tv.tv_usec = 0; +- /* Block until we can read or write */ +- select(fdmax, NULL, &fdset, &fdset, &tv); ++ /* Block until we can write */ ++ select(fdmax, NULL, &fdset, NULL, &tv); + break; + + case SSL_ERROR_ZERO_RETURN: diff --git a/Branch-2.2/bacula/patches/2.2.x/2.2.4-ansi-label.patch b/Branch-2.2/bacula/patches/2.2.x/2.2.4-ansi-label.patch new file mode 100644 index 0000000000..d68e618aca --- /dev/null +++ b/Branch-2.2/bacula/patches/2.2.x/2.2.4-ansi-label.patch @@ -0,0 +1,77 @@ + + This patch fixes bug #954. + WEOF on non-appendable error when trying to label a tape with ANSI labels turned on. + + Apply it to version 2.2.4 (possibly earlier versions with): + + cd + patch -p0 <2.2.4-verify.patch + ./configure (your options) + make + ... + make install + +Index: block.c +=================================================================== +--- src/stored/block.c (revision 5615) ++++ src/stored/block.c (revision 5615) +@@ -273,6 +273,7 @@ + dev->dev_errno = EIO; + Mmsg4(dev->errmsg, _("Volume data error at %u:%u! Wanted ID: \"%s\", got \"%s\". Buffer discarded.\n"), + dev->file, dev->block_num, BLKHDR2_ID, Id); ++ Dmsg1(50, "%s", dev->errmsg); + if (block->read_errors == 0 || verbose >= 2) { + Jmsg(jcr, M_ERROR, 0, "%s", dev->errmsg); + } +@@ -1008,8 +1009,19 @@ + dev->set_ateof(); + return false; /* return eof */ + } ++ + /* Continue here for successful read */ ++ + block->read_len = stat; /* save length read */ ++ if (dev->at_eof() && block->read_len == 80 && ++ (dcr->VolCatInfo.LabelType != B_BACULA_LABEL || ++ dcr->device->label_type != B_BACULA_LABEL)) { ++ /* ***FIXME*** should check label */ ++ Dmsg2(100, "Ignore 80 byte ANSI label at %u:%u\n", dev->file, dev->block_num); ++ dev->clear_eof(); ++ goto reread; /* skip ANSI/IBM label */ ++ } ++ + if (block->read_len < BLKHDR2_LENGTH) { + dev->dev_errno = EIO; + Mmsg4(dev->errmsg, _("Volume data error at %u:%u! Very short block of %d bytes on device %s discarded.\n"), + +Index: label.c +=================================================================== +--- src/stored/label.c (revision 5602) ++++ src/stored/label.c (working copy) +@@ -119,7 +119,6 @@ + bstrncpy(dev->VolHdr.Id, "**error**", sizeof(dev->VolHdr.Id)); + + /* Read ANSI/IBM label if so requested */ +- + want_ansi_label = dcr->VolCatInfo.LabelType != B_BACULA_LABEL || + dcr->device->label_type != B_BACULA_LABEL; + if (want_ansi_label || dev->has_cap(CAP_CHECKLABELS)) { +@@ -344,6 +343,9 @@ + } + } + ++ /* Temporarily mark in append state to enable writing */ ++ dev->set_append(); ++ + /* Create PRE_LABEL or VOL_LABEL if DVD */ + create_volume_label(dev, VolName, PoolName, dvdnow); + +@@ -364,8 +366,6 @@ + create_volume_label_record(dcr, dcr->rec); + dcr->rec->Stream = 0; + +- /* Temporarily mark in append state to enable writing */ +- dev->set_append(); + if (!write_record_to_block(dcr->block, dcr->rec)) { + Dmsg2(130, "Bad Label write on %s: ERR=%s\n", dev->print_name(), dev->print_errmsg()); + goto bail_out; diff --git a/Branch-2.2/bacula/patches/2.2.x/2.2.4-lost-block.patch b/Branch-2.2/bacula/patches/2.2.x/2.2.4-lost-block.patch new file mode 100644 index 0000000000..fbf7122a31 --- /dev/null +++ b/Branch-2.2/bacula/patches/2.2.x/2.2.4-lost-block.patch @@ -0,0 +1,30 @@ + + This patch fixes a race condition where a Job is terminating at the same + time that another job reaches the end of Volume. In that case, sometimes + the last block or two are not written to the Volume. This seems to be + relatively rare, but does result in data loss. This fixes bug #964. + + Apply the patch to Bacula version 2.2.4 (or possibly any previous 2.2.x + version) with: + + cd + patch -p0 <2.2.4-lost-block.patch + ./configure (your options) + make + ... + make install + + +Index: src/stored/append.c +=================================================================== +--- src/stored/append.c (revision 5602) ++++ src/stored/append.c (working copy) +@@ -287,7 +287,7 @@ + * Check if we can still write. This may not be the case + * if we are at the end of the tape or we got a fatal I/O error. + */ +- if (dev->can_write()) { ++ if (ok || dev->can_write()) { + if (!write_session_label(dcr, EOS_LABEL)) { + Jmsg1(jcr, M_FATAL, 0, _("Error writting end session label. ERR=%s\n"), + dev->bstrerror()); diff --git a/Branch-2.2/bacula/patches/2.2.x/2.2.4-parse-command.patch b/Branch-2.2/bacula/patches/2.2.x/2.2.4-parse-command.patch new file mode 100644 index 0000000000..312dd29efe --- /dev/null +++ b/Branch-2.2/bacula/patches/2.2.x/2.2.4-parse-command.patch @@ -0,0 +1,28 @@ + + This patch resolves a command parser issue + causing a director segfault when using something + like "run job 1 2" + + Apply to version 2.2.4 (and perhaps older 2.2.x versions) with + + cd + patch -p0 <2.2.4-parse-command.patch + ./configure (your options) + make + ... + make install + + +Index: src/dird/ua_run.c +=================================================================== +--- src/dird/ua_run.c (révision 5616) ++++ src/dird/ua_run.c (copie de travail) +@@ -933,7 +933,7 @@ + /* Note, yes and run have no value, so do not fail */ + if (!ua->argv[i] && j != YES_POS /*yes*/) { + ua->send_msg(_("Value missing for keyword %s\n"), ua->argk[i]); +- return true; ++ return false; + } + Dmsg1(800, "Got keyword=%s\n", NPRT(kw[j])); + switch (j) { diff --git a/Branch-2.2/bacula/patches/2.2.x/2.2.4-poll-mount.patch b/Branch-2.2/bacula/patches/2.2.x/2.2.4-poll-mount.patch new file mode 100644 index 0000000000..a4676e942f --- /dev/null +++ b/Branch-2.2/bacula/patches/2.2.x/2.2.4-poll-mount.patch @@ -0,0 +1,27 @@ + + This patch resolves bug #908 where a tape is not properly mounted + (recognized) during a poll. + + Apply to version 2.2.4 (and perhaps older 2.2.x versions) with + + cd + patch -p0 <2.2.4-poll-mount.patch + ./configure (your options) + make + ... + make install + +Index: src/stored/dev.c +=================================================================== +--- src/stored/dev.c (revision 5553) ++++ src/stored/dev.c (working copy) +@@ -1844,7 +1844,8 @@ + + /* Clean up device packet so it can be reused */ + clear_opened(); +- state &= ~(ST_LABEL|ST_READ|ST_APPEND|ST_EOT|ST_WEOT|ST_EOF); ++ state &= ~(ST_LABEL|ST_READ|ST_APPEND|ST_EOT|ST_WEOT|ST_EOF| ++ ST_MOUNTED|ST_MEDIA|ST_SHORT|ST_FREESPACE_OK|ST_PART_SPOOLED); + label_type = B_BACULA_LABEL; + file = block_num = 0; + file_size = 0; diff --git a/Branch-2.2/bacula/patches/2.2.x/2.2.4-replace.patch b/Branch-2.2/bacula/patches/2.2.x/2.2.4-replace.patch new file mode 100644 index 0000000000..58e4e5109f --- /dev/null +++ b/Branch-2.2/bacula/patches/2.2.x/2.2.4-replace.patch @@ -0,0 +1,24 @@ + + This patch resolves bug #969 where the user can't change the + replace option in the restore menu + + Apply to version 2.2.4 (and perhaps older 2.2.x versions) with + + cd + patch -p0 <2.2.4-replace.patch + ./configure (your options) + make + ... + make install + +--- src/dird/ua_run.c (révision 5721) ++++ src/dird/ua_run.c (copie de travail) +@@ -424,6 +424,7 @@ + } + opt = do_prompt(ua, "", _("Select replace option"), NULL, 0); + if (opt >= 0) { ++ rc.replace = ReplaceOptions[opt].name; + jcr->replace = ReplaceOptions[opt].token; + } + goto try_again; + diff --git a/Branch-2.2/bacula/patches/2.2.x/2.2.4-restore.patch b/Branch-2.2/bacula/patches/2.2.x/2.2.4-restore.patch new file mode 100644 index 0000000000..3ef991e3b7 --- /dev/null +++ b/Branch-2.2/bacula/patches/2.2.x/2.2.4-restore.patch @@ -0,0 +1,49 @@ + + This patch resolves bug #955 where the director segfault when + where= option isn't specified anywhere. + + Apply to version 2.2.4 (and perhaps older 2.2.x versions) with + + cd + patch -p0 <2.2.4-restore.patch + ./configure (your options) + make + ... + make install + + +Index: src/dird/restore.c +=================================================================== +--- src/dird/restore.c (revision 5601) ++++ src/dird/restore.c (working copy) +@@ -173,7 +173,7 @@ + } + + /* Send restore command */ +- char replace, *where, *cmd=NULL; ++ char replace, *where, *cmd; + char empty = '\0'; + + if (jcr->replace != 0) { +@@ -183,8 +183,6 @@ + } else { + replace = REPLACE_ALWAYS; /* always replace */ + } +- +- where = ∅ /* default */ + + if (jcr->RegexWhere) { + where = jcr->RegexWhere; /* override */ +@@ -199,7 +197,11 @@ + } else if (jcr->job->RestoreWhere) { + where = jcr->job->RestoreWhere; /* no override take from job */ + cmd = restorecmd; +- } ++ ++ } else { /* nothing was specified */ ++ where = ∅ /* use default */ ++ cmd = restorecmd; ++ } + + jcr->prefix_links = jcr->job->PrefixLinks; + diff --git a/Branch-2.2/bacula/patches/2.2.x/2.2.4-sd-auth-fail.patch b/Branch-2.2/bacula/patches/2.2.x/2.2.4-sd-auth-fail.patch new file mode 100644 index 0000000000..2e506e7884 --- /dev/null +++ b/Branch-2.2/bacula/patches/2.2.x/2.2.4-sd-auth-fail.patch @@ -0,0 +1,159 @@ + + This patch applies to Bacula version 2.2.4 (possibly earlier 2.2.x versions) + and fixes a Storage daemon authentication problem with the FD. This fixes + bug #953. The patch also adds a bit of additional debug code and significantly + strengthens the SD session key. + + Apply it to 2.2.4 with: + + cd + patch -p0 <2.2.4-sd-auth-fail.patch + make + ... + make install + + +Index: src/stored/job.c +=================================================================== +--- src/stored/job.c (revision 5602) ++++ src/stored/job.c (working copy) +@@ -73,6 +73,7 @@ + { + int JobId; + char auth_key[100]; ++ char seed[100]; + BSOCK *dir = jcr->dir_bsock; + POOL_MEM job_name, client_name, job, fileset_name, fileset_md5; + int JobType, level, spool_attributes, no_attributes, spool_data; +@@ -91,7 +92,7 @@ + &write_part_after_job, &PreferMountedVols); + if (stat != 13) { + pm_strcpy(jcr->errmsg, dir->msg); +- bnet_fsend(dir, BAD_job, stat, jcr->errmsg); ++ dir->fsend(BAD_job, stat, jcr->errmsg); + Dmsg1(100, ">dird: %s", dir->msg); + set_jcr_job_status(jcr, JS_ErrorTerminated); + return false; +@@ -134,9 +135,10 @@ + /* + * Pass back an authorization key for the File daemon + */ +- make_session_key(auth_key, NULL, 1); +- bnet_fsend(dir, OKjob, jcr->VolSessionId, jcr->VolSessionTime, auth_key); +- Dmsg1(100, ">dird: %s", dir->msg); ++ bsnprintf(seed, sizeof(seed), "%p%d", jcr, JobId); ++ make_session_key(auth_key, seed, 1); ++ dir->fsend(OKjob, jcr->VolSessionId, jcr->VolSessionTime, auth_key); ++ Dmsg2(100, ">dird jid=%u: %s", (uint32_t)jcr->JobId, dir->msg); + jcr->sd_auth_key = bstrdup(auth_key); + memset(auth_key, 0, sizeof(auth_key)); + generate_daemon_event(jcr, "JobStart"); +@@ -169,17 +171,18 @@ + timeout.tv_nsec = tv.tv_usec * 1000; + timeout.tv_sec = tv.tv_sec + me->client_wait; + +- Dmsg2(100, "%s waiting %d sec for FD to contact SD\n", +- jcr->Job, (int)me->client_wait); ++ Dmsg3(050, "%s waiting %d sec for FD to contact SD key=%s\n", ++ jcr->Job, (int)me->client_wait, jcr->sd_auth_key); ++ + /* + * Wait for the File daemon to contact us to start the Job, + * when he does, we will be released, unless the 30 minutes + * expires. + */ + P(mutex); +- for ( ; !job_canceled(jcr); ) { ++ while ( !jcr->authenticated && !job_canceled(jcr) ) { + errstat = pthread_cond_timedwait(&jcr->job_start_wait, &mutex, &timeout); +- if (errstat == 0 || errstat == ETIMEDOUT) { ++ if (errstat == ETIMEDOUT || errstat == EINVAL || errstat == EPERM) { + break; + } + } +@@ -195,7 +198,7 @@ + } + + /* +- * After receiving a connection (in job.c) if it is ++ * After receiving a connection (in dircmd.c) if it is + * from the File daemon, this routine is called. + */ + void handle_filed_connection(BSOCK *fd, char *job_name) +@@ -204,8 +207,8 @@ + + bmicrosleep(0, 50000); /* wait 50 millisecs */ + if (!(jcr=get_jcr_by_full_name(job_name))) { +- Jmsg1(NULL, M_FATAL, 0, _("Job name not found: %s\n"), job_name); +- Dmsg1(100, "Job name not found: %s\n", job_name); ++ Jmsg1(NULL, M_FATAL, 0, _("FD connect failed: Job name not found: %s\n"), job_name); ++ Dmsg1(3, "**** Job \"%s\" not found", job_name); + return; + } + +@@ -216,7 +219,7 @@ + + if (jcr->authenticated) { + Jmsg2(jcr, M_FATAL, 0, _("Hey!!!! JobId %u Job %s already authenticated.\n"), +- jcr->JobId, jcr->Job); ++ (uint32_t)jcr->JobId, jcr->Job); + free_jcr(jcr); + return; + } +@@ -229,7 +232,7 @@ + Jmsg(jcr, M_FATAL, 0, _("Unable to authenticate File daemon\n")); + } else { + jcr->authenticated = true; +- Dmsg1(110, "OK Authentication Job %s\n", jcr->Job); ++ Dmsg2(110, "OK Authentication jid=%u Job %s\n", (uint32_t)jcr->JobId, jcr->Job); + } + + if (!jcr->authenticated) { +@@ -274,9 +277,9 @@ + } + ok = dir_update_device(jcr, device->dev); + if (ok) { +- ok = bnet_fsend(dir, OK_query); ++ ok = dir->fsend(OK_query); + } else { +- bnet_fsend(dir, NO_query); ++ dir->fsend(NO_query); + } + return ok; + } +@@ -289,9 +292,9 @@ + } + ok = dir_update_changer(jcr, changer); + if (ok) { +- ok = bnet_fsend(dir, OK_query); ++ ok = dir->fsend(OK_query); + } else { +- bnet_fsend(dir, NO_query); ++ dir->fsend(NO_query); + } + return ok; + } +@@ -299,12 +302,12 @@ + /* If we get here, the device/autochanger was not found */ + unbash_spaces(dir->msg); + pm_strcpy(jcr->errmsg, dir->msg); +- bnet_fsend(dir, NO_device, dev_name.c_str()); ++ dir->fsend(NO_device, dev_name.c_str()); + Dmsg1(100, ">dird: %s\n", dir->msg); + } else { + unbash_spaces(dir->msg); + pm_strcpy(jcr->errmsg, dir->msg); +- bnet_fsend(dir, BAD_query, jcr->errmsg); ++ dir->fsend(BAD_query, jcr->errmsg); + Dmsg1(100, ">dird: %s\n", dir->msg); + } + +@@ -322,7 +325,7 @@ + { + Dmsg1(900, "stored_free_jcr JobId=%u\n", jcr->JobId); + if (jcr->file_bsock) { +- bnet_close(jcr->file_bsock); ++ jcr->file_bsock->close(); + jcr->file_bsock = NULL; + } + if (jcr->job_name) { diff --git a/Branch-2.2/bacula/patches/2.2.x/2.2.4-sql.patch b/Branch-2.2/bacula/patches/2.2.x/2.2.4-sql.patch new file mode 100644 index 0000000000..24de09994c --- /dev/null +++ b/Branch-2.2/bacula/patches/2.2.x/2.2.4-sql.patch @@ -0,0 +1,476 @@ + + This patch fixes several problems: it fixes incorrect or incomplete error + messages; it fixes a problem opening the SQLite3 database when multiple + simultaneous jobs were running; it fixes a bug with certain versions of + MySQL where batch inserts failed because of table name character case + (upper/lower) differences. + + It can be applied to version 2.2.4 (and possibly earlier 2.2.x versions) + with: + + cd + patch -p0 <2.2.4-sql.patch + ./configure (your options) + make + ... + make install + + + +Index: src/cats/sql.c +=================================================================== +--- src/cats/sql.c (revision 5687) ++++ src/cats/sql.c (working copy) +@@ -115,7 +115,6 @@ + + bacula_db_version = 0; + if (!db_sql_query(mdb, query, int_handler, (void *)&bacula_db_version)) { +- Mmsg(mdb->errmsg, "Database not created or server not running.\n"); + Jmsg(jcr, M_FATAL, 0, "%s", mdb->errmsg); + return false; + } +Index: src/cats/sqlite.c +=================================================================== +--- src/cats/sqlite.c (revision 5687) ++++ src/cats/sqlite.c (working copy) +@@ -148,6 +148,7 @@ + int len; + struct stat statbuf; + int errstat; ++ int retry = 0; + + P(mutex); + if (mdb->connected) { +@@ -157,8 +158,9 @@ + mdb->connected = FALSE; + + if ((errstat=rwl_init(&mdb->lock)) != 0) { ++ berrno be; + Mmsg1(&mdb->errmsg, _("Unable to initialize DB lock. ERR=%s\n"), +- strerror(errstat)); ++ be.bstrerror(errstat)); + V(mutex); + return 0; + } +@@ -178,28 +180,28 @@ + return 0; + } + ++ for (mdb->db=NULL; !mdb->db && retry++ < 10; ) { + #ifdef HAVE_SQLITE3 +- int stat = sqlite3_open(db_name, &mdb->db); +- if (stat != SQLITE_OK) { +- mdb->sqlite_errmsg = (char *)sqlite3_errmsg(mdb->db); +- sqlite3_close(mdb->db); +- mdb->db = NULL; +- } else { +- mdb->sqlite_errmsg = NULL; +- } +-#ifdef SQLITE3_INIT_QUERY +- db_sql_query(mdb, SQLITE3_INIT_QUERY, NULL, NULL); +-#endif +- ++ int stat = sqlite3_open(db_name, &mdb->db); ++ if (stat != SQLITE_OK) { ++ mdb->sqlite_errmsg = (char *)sqlite3_errmsg(mdb->db); ++ sqlite3_close(mdb->db); ++ mdb->db = NULL; ++ } else { ++ mdb->sqlite_errmsg = NULL; ++ } + #else +- mdb->db = sqlite_open( +- db_name, /* database name */ +- 644, /* mode */ +- &mdb->sqlite_errmsg); /* error message */ ++ mdb->db = sqlite_open( ++ db_name, /* database name */ ++ 644, /* mode */ ++ &mdb->sqlite_errmsg); /* error message */ + #endif + +- Dmsg0(300, "sqlite_open\n"); +- ++ Dmsg0(300, "sqlite_open\n"); ++ if (!mdb->db) { ++ bmicrosleep(1, 0); ++ } ++ } + if (mdb->db == NULL) { + Mmsg2(&mdb->errmsg, _("Unable to open Database=%s. ERR=%s\n"), + db_name, mdb->sqlite_errmsg ? mdb->sqlite_errmsg : _("unknown")); +@@ -209,10 +211,6 @@ + } + mdb->connected = true; + free(db_name); +- if (!check_tables_version(jcr, mdb)) { +- V(mutex); +- return 0; +- } + + /* set busy handler to wait when we use mult_db_connections = 1 */ + #ifdef HAVE_SQLITE3 +@@ -221,6 +219,16 @@ + sqlite_busy_handler(mdb->db, my_busy_handler, NULL); + #endif + ++#if defined(HAVE_SQLITE3) && defined(SQLITE3_INIT_QUERY) ++ db_sql_query(mdb, SQLITE3_INIT_QUERY, NULL, NULL); ++#endif ++ ++ if (!check_tables_version(jcr, mdb)) { ++ V(mutex); ++ return 0; ++ } ++ ++ + V(mutex); + return 1; + } +@@ -448,16 +456,20 @@ + return mdb->fields[mdb->field++]; + } + +-char *my_sqlite_batch_lock_query = "BEGIN"; +-char *my_sqlite_batch_unlock_query = "COMMIT"; +-char *my_sqlite_batch_fill_path_query = "INSERT INTO Path (Path) " +- " SELECT DISTINCT Path FROM batch " +- " EXCEPT SELECT Path FROM Path "; ++#ifdef HAVE_BATCH_FILE_INSERT ++const char *my_sqlite_batch_lock_query = "BEGIN"; ++const char *my_sqlite_batch_unlock_query = "COMMIT"; + +-char *my_sqlite_batch_fill_filename_query = "INSERT INTO Filename (Name) " +- " SELECT DISTINCT Name FROM batch " +- " EXCEPT SELECT Name FROM Filename "; ++const char *my_sqlite_batch_fill_path_query = ++ "INSERT INTO Path (Path)" ++ " SELECT DISTINCT Path FROM batch" ++ " EXCEPT SELECT Path FROM Path"; + ++const char *my_sqlite_batch_fill_filename_query = ++ "INSERT INTO Filename (Name)" ++ " SELECT DISTINCT Name FROM batch " ++ " EXCEPT SELECT Name FROM Filename"; ++#endif /* HAVE_BATCH_FILE_INSERT */ + + + #endif /* HAVE_SQLITE */ +Index: src/cats/cats.h +=================================================================== +--- src/cats/cats.h (revision 5687) ++++ src/cats/cats.h (working copy) +@@ -187,10 +187,10 @@ + int my_sqlite_query(B_DB *mdb, const char *cmd); + void my_sqlite_field_seek(B_DB *mdb, int field); + SQL_FIELD *my_sqlite_fetch_field(B_DB *mdb); +-extern char* my_sqlite_batch_lock_query; +-extern char* my_sqlite_batch_unlock_query; +-extern char* my_sqlite_batch_fill_filename_query; +-extern char* my_sqlite_batch_fill_path_query; ++extern const char* my_sqlite_batch_lock_query; ++extern const char* my_sqlite_batch_unlock_query; ++extern const char* my_sqlite_batch_fill_filename_query; ++extern const char* my_sqlite_batch_fill_path_query; + + + #else +@@ -317,10 +317,10 @@ + int my_sqlite_query(B_DB *mdb, const char *cmd); + void my_sqlite_field_seek(B_DB *mdb, int field); + SQL_FIELD *my_sqlite_fetch_field(B_DB *mdb); +-extern char* my_sqlite_batch_lock_query; +-extern char* my_sqlite_batch_unlock_query; +-extern char* my_sqlite_batch_fill_filename_query; +-extern char* my_sqlite_batch_fill_path_query; ++extern const char* my_sqlite_batch_lock_query; ++extern const char* my_sqlite_batch_unlock_query; ++extern const char* my_sqlite_batch_fill_filename_query; ++extern const char* my_sqlite_batch_fill_path_query; + + + #else +@@ -398,11 +398,11 @@ + #define sql_batch_fill_path_query my_mysql_batch_fill_path_query + + +-extern char* my_mysql_batch_lock_path_query; +-extern char* my_mysql_batch_lock_filename_query; +-extern char* my_mysql_batch_unlock_tables_query; +-extern char* my_mysql_batch_fill_filename_query; +-extern char* my_mysql_batch_fill_path_query; ++extern const char* my_mysql_batch_lock_path_query; ++extern const char* my_mysql_batch_lock_filename_query; ++extern const char* my_mysql_batch_unlock_tables_query; ++extern const char* my_mysql_batch_fill_filename_query; ++extern const char* my_mysql_batch_fill_path_query; + extern void my_mysql_free_result(B_DB *mdb); + + #else +@@ -486,11 +486,11 @@ + int my_postgresql_batch_insert(JCR *jcr, B_DB *mdb, ATTR_DBR *ar); + char *my_postgresql_copy_escape(char *dest, char *src, size_t len); + +-extern char* my_pg_batch_lock_path_query; +-extern char* my_pg_batch_lock_filename_query; +-extern char* my_pg_batch_unlock_tables_query; +-extern char* my_pg_batch_fill_filename_query; +-extern char* my_pg_batch_fill_path_query; ++extern const char* my_pg_batch_lock_path_query; ++extern const char* my_pg_batch_lock_filename_query; ++extern const char* my_pg_batch_unlock_tables_query; ++extern const char* my_pg_batch_fill_filename_query; ++extern const char* my_pg_batch_fill_path_query; + + /* "Generic" names for easier conversion */ + #define sql_store_result(x) ((x)->result) +Index: src/cats/mysql.c +=================================================================== +--- src/cats/mysql.c (revision 5687) ++++ src/cats/mysql.c (working copy) +@@ -149,8 +149,9 @@ + } + + if ((errstat=rwl_init(&mdb->lock)) != 0) { ++ berrno be; + Mmsg1(&mdb->errmsg, _("Unable to initialize DB lock. ERR=%s\n"), +- strerror(errstat)); ++ be.bstrerror(errstat)); + V(mutex); + return 0; + } +@@ -403,33 +404,27 @@ + db_unlock(mdb); + } + +-char *my_mysql_batch_lock_path_query = "LOCK TABLES Path write, " +- " batch write, " +- " Path as p write "; ++#ifdef HAVE_BATCH_FILE_INSERT ++const char *my_mysql_batch_lock_path_query = ++ "LOCK TABLES Path write, batch write, Path as p write"; + + +-char *my_mysql_batch_lock_filename_query = "LOCK TABLES Filename write, " +- " batch write, " +- " Filename as f write "; ++const char *my_mysql_batch_lock_filename_query = ++ "LOCK TABLES Filename write, batch write, Filename as f write"; + +-char *my_mysql_batch_unlock_tables_query = "UNLOCK TABLES"; ++const char *my_mysql_batch_unlock_tables_query = "UNLOCK TABLES"; + +-char *my_mysql_batch_fill_path_query = "INSERT INTO Path (Path) " +- " SELECT a.Path FROM " +- " (SELECT DISTINCT Path " +- " FROM batch) AS a " +- " WHERE NOT EXISTS " +- " (SELECT Path " +- " FROM Path AS p " +- " WHERE p.Path = a.Path) "; ++const char *my_mysql_batch_fill_path_query = ++ "INSERT INTO Path (Path) " ++ "SELECT a.Path FROM " ++ "(SELECT DISTINCT Path FROM batch) AS a WHERE NOT EXISTS " ++ "(SELECT Path FROM Path AS p WHERE p.Path = a.Path)"; + +-char *my_mysql_batch_fill_filename_query = "INSERT INTO Filename (Name) " +- " SELECT a.Name FROM " +- " (SELECT DISTINCT Name " +- " FROM batch) AS a " +- " WHERE NOT EXISTS " +- " (SELECT Name " +- " FROM Filename AS f " +- " WHERE f.Name = a.Name) "; ++const char *my_mysql_batch_fill_filename_query = ++ "INSERT INTO Filename (Name) " ++ "SELECT a.Name FROM " ++ "(SELECT DISTINCT Name FROM batch) AS a WHERE NOT EXISTS " ++ "(SELECT Name FROM Filename AS f WHERE f.Name = a.Name)"; ++#endif /* HAVE_BATCH_FILE_INSERT */ + + #endif /* HAVE_MYSQL */ +Index: src/cats/sql_create.c +=================================================================== +--- src/cats/sql_create.c (revision 5687) ++++ src/cats/sql_create.c (working copy) +@@ -668,6 +668,8 @@ + * }; + */ + ++#ifdef HAVE_BATCH_FILE_INSERT ++ + /* All sql_batch_* functions are used to do bulk batch insert in File/Filename/Path + * tables. This code can be activated by adding "#define HAVE_BATCH_FILE_INSERT 1" + * in baconfig.h +@@ -690,13 +692,13 @@ + + db_lock(mdb); + ok = db_sql_query(mdb, +- " CREATE TEMPORARY TABLE batch " +- " (fileindex integer, " +- " jobid integer, " +- " path blob, " +- " name blob, " +- " lstat tinyblob, " +- " md5 tinyblob) ",NULL, NULL); ++ "CREATE TEMPORARY TABLE batch (" ++ "FileIndex integer," ++ "JobId integer," ++ "Path blob," ++ "Name blob," ++ "LStat tinyblob," ++ "MD5 tinyblob)",NULL, NULL); + db_unlock(mdb); + return ok; + } +@@ -746,7 +748,6 @@ + return true; + } + +-#ifdef HAVE_BATCH_FILE_INSERT + /* + * Returns 1 if OK + * 0 if failed +@@ -794,7 +795,7 @@ + + if (!db_sql_query(jcr->db_batch,sql_batch_fill_filename_query, NULL,NULL)) { + Jmsg(jcr,M_FATAL,0,"Can't fill Filename table %s\n",jcr->db_batch->errmsg); +- QUERY_DB(jcr, jcr->db_batch, sql_batch_unlock_tables_query); ++ db_sql_query(jcr->db_batch, sql_batch_unlock_tables_query, NULL, NULL); + return false; + } + +@@ -804,12 +805,12 @@ + } + + if (!db_sql_query(jcr->db_batch, +- " INSERT INTO File (FileIndex, JobId, PathId, FilenameId, LStat, MD5)" +- " SELECT batch.FileIndex, batch.JobId, Path.PathId, " +- " Filename.FilenameId,batch.LStat, batch.MD5 " +- " FROM batch " +- " JOIN Path ON (batch.Path = Path.Path) " +- " JOIN Filename ON (batch.Name = Filename.Name) ", ++ "INSERT INTO File (FileIndex, JobId, PathId, FilenameId, LStat, MD5)" ++ "SELECT batch.FileIndex, batch.JobId, Path.PathId, " ++ "Filename.FilenameId,batch.LStat, batch.MD5 " ++ "FROM batch " ++ "JOIN Path ON (batch.Path = Path.Path) " ++ "JOIN Filename ON (batch.Name = Filename.Name)", + NULL,NULL)) + { + Jmsg(jcr, M_FATAL, 0, "Can't fill File table %s\n", jcr->db_batch->errmsg); +@@ -845,19 +846,24 @@ + mdb->db_port, + mdb->db_socket, + 1 /* multi_db = true */); ++ if (!jcr->db_batch) { ++ Mmsg1(&mdb->errmsg, _("Could not init batch database: \"%s\".\n"), ++ jcr->db->db_name); ++ Jmsg1(jcr, M_FATAL, 0, "%s", mdb->errmsg); ++ return false; ++ } + +- if (!jcr->db_batch || !db_open_database(jcr, jcr->db_batch)) { +- Jmsg(jcr, M_FATAL, 0, _("Could not open database \"%s\".\n"), +- jcr->db->db_name); +- if (jcr->db_batch) { +- Jmsg(jcr, M_FATAL, 0, "%s", db_strerror(jcr->db_batch)); +- } ++ if (!db_open_database(jcr, jcr->db_batch)) { ++ Mmsg2(&mdb->errmsg, _("Could not open database \"%s\": ERR=%s\n"), ++ jcr->db->db_name, db_strerror(jcr->db_batch)); ++ Jmsg1(jcr, M_FATAL, 0, "%s", mdb->errmsg); + return false; + } + + if (!sql_batch_start(jcr, jcr->db_batch)) { +- Jmsg(jcr, M_FATAL, 0, +- "Can't start batch mode %s", db_strerror(jcr->db_batch)); ++ Mmsg1(&mdb->errmsg, ++ "Can't start batch mode: ERR=%s", db_strerror(jcr->db_batch)); ++ Jmsg1(jcr, M_FATAL, 0, "%s", mdb->errmsg); + return false; + } + Dmsg3(100, "initdb ref=%d connected=%d db=%p\n", jcr->db_batch->ref_count, +@@ -870,10 +876,10 @@ + */ + if (!(ar->Stream == STREAM_UNIX_ATTRIBUTES || + ar->Stream == STREAM_UNIX_ATTRIBUTES_EX)) { +- Mmsg1(&bdb->errmsg, _("Attempt to put non-attributes into catalog. Stream=%d\n"), ++ Mmsg1(&mdb->errmsg, _("Attempt to put non-attributes into catalog. Stream=%d\n"), + ar->Stream); +- Jmsg(jcr, M_ERROR, 0, "%s", bdb->errmsg); +- return 0; ++ Jmsg(jcr, M_FATAL, 0, "%s", mdb->errmsg); ++ return false; + } + + split_path_and_file(jcr, bdb, ar->fname); +Index: src/cats/postgresql.c +=================================================================== +--- src/cats/postgresql.c (revision 5687) ++++ src/cats/postgresql.c (working copy) +@@ -605,13 +605,13 @@ + Dmsg0(500, "my_postgresql_batch_start started\n"); + + if (my_postgresql_query(mdb, +- " CREATE TEMPORARY TABLE batch " +- " (fileindex int, " +- " jobid int, " +- " path varchar, " +- " name varchar, " +- " lstat varchar, " +- " md5 varchar)") == 1) ++ "CREATE TEMPORARY TABLE batch (" ++ "fileindex int," ++ "jobid int," ++ "path varchar," ++ "name varchar," ++ "lstat varchar," ++ "md5 varchar)") == 1) + { + Dmsg0(500, "my_postgresql_batch_start failed\n"); + return 1; +@@ -785,22 +785,29 @@ + return dest; + } + +-char *my_pg_batch_lock_path_query = "BEGIN; LOCK TABLE Path IN SHARE ROW EXCLUSIVE MODE"; ++#ifdef HAVE_BATCH_FILE_INSERT ++const char *my_pg_batch_lock_path_query = ++ "BEGIN; LOCK TABLE Path IN SHARE ROW EXCLUSIVE MODE"; + + +-char *my_pg_batch_lock_filename_query = "BEGIN; LOCK TABLE Filename IN SHARE ROW EXCLUSIVE MODE"; ++const char *my_pg_batch_lock_filename_query = ++ "BEGIN; LOCK TABLE Filename IN SHARE ROW EXCLUSIVE MODE"; + +-char *my_pg_batch_unlock_tables_query = "COMMIT"; ++const char *my_pg_batch_unlock_tables_query = "COMMIT"; + +-char *my_pg_batch_fill_path_query = "INSERT INTO Path (Path) " +- " SELECT a.Path FROM " +- " (SELECT DISTINCT Path FROM batch) AS a " +- " WHERE NOT EXISTS (SELECT Path FROM Path WHERE Path = a.Path) "; ++const char *my_pg_batch_fill_path_query = ++ "INSERT INTO Path (Path) " ++ "SELECT a.Path FROM " ++ "(SELECT DISTINCT Path FROM batch) AS a " ++ "WHERE NOT EXISTS (SELECT Path FROM Path WHERE Path = a.Path) "; + + +-char *my_pg_batch_fill_filename_query = "INSERT INTO Filename (Name) " +- " SELECT a.Name FROM " +- " (SELECT DISTINCT Name FROM batch) as a " +- " WHERE NOT EXISTS " +- " (SELECT Name FROM Filename WHERE Name = a.Name)"; ++const char *my_pg_batch_fill_filename_query = ++ "INSERT INTO Filename (Name) " ++ "SELECT a.Name FROM " ++ "(SELECT DISTINCT Name FROM batch) as a " ++ "WHERE NOT EXISTS " ++ "(SELECT Name FROM Filename WHERE Name = a.Name)"; ++#endif /* HAVE_BATCH_FILE_INSERT */ ++ + #endif /* HAVE_POSTGRESQL */ diff --git a/Branch-2.2/bacula/patches/2.2.x/2.2.4-verify.patch b/Branch-2.2/bacula/patches/2.2.x/2.2.4-verify.patch new file mode 100644 index 0000000000..21e9af3442 --- /dev/null +++ b/Branch-2.2/bacula/patches/2.2.x/2.2.4-verify.patch @@ -0,0 +1,75 @@ + This patch fixes bug #958 A Verify catalog Job that has differences reports Verify OK. + + Apply it to version 2.2.4 (possibly earlier versions with): + + cd + patch -p0 <2.2.4-verify.patch + ./configure (your options) + make + ... + make install + +Index: src/dird/verify.c +=================================================================== +--- src/dird/verify.c (revision 5553) ++++ src/dird/verify.c (working copy) +@@ -332,13 +332,10 @@ + } + + stat = wait_for_job_termination(jcr); +- if (stat == JS_Terminated) { +- verify_cleanup(jcr, stat); +- return true; +- } ++ verify_cleanup(jcr, stat); ++ return true; + + bail_out: +- verify_cleanup(jcr, JS_ErrorTerminated); + return false; + } + +@@ -421,7 +418,7 @@ + jobstatus_to_ascii(jcr->FDJobStatus, fd_term_msg, sizeof(fd_term_msg)); + if (jcr->JobLevel == L_VERIFY_VOLUME_TO_CATALOG) { + jobstatus_to_ascii(jcr->SDJobStatus, sd_term_msg, sizeof(sd_term_msg)); +- Jmsg(jcr, msg_type, 0, _("Bacula %s %s (%s): %s\n" ++ Jmsg(jcr, msg_type, 0, _("Bacula %s %s (%s): %s\n" + " Build OS: %s %s %s\n" + " JobId: %d\n" + " Job: %s\n" +@@ -456,7 +453,7 @@ + sd_term_msg, + term_msg); + } else { +- Jmsg(jcr, msg_type, 0, _("Bacula %s %s (%s): %s\n" ++ Jmsg(jcr, msg_type, 0, _("Bacula %s %s (%s): %s\n" + " Build: %s %s %s\n" + " JobId: %d\n" + " Job: %s\n" +@@ -750,7 +747,9 @@ + stat = JS_Differences; + } + free_pool_memory(fname); +- set_jcr_job_status(jcr, stat); ++ if (!job_canceled(jcr)) { ++ jcr->JobStatus = stat; ++ } + return stat == JS_Terminated; + } + +Index: src/lib/jcr.c +=================================================================== +--- src/lib/jcr.c (revision 5553) ++++ src/lib/jcr.c (working copy) +@@ -614,9 +614,8 @@ + /* Override more minor status */ + jcr->JobStatus = JobStatus; + break; +- default: +- break; + } ++ break; + default: + jcr->JobStatus = JobStatus; + } diff --git a/Branch-2.2/bacula/patches/2.2.x/2.2.5-deamon.patch b/Branch-2.2/bacula/patches/2.2.x/2.2.5-deamon.patch new file mode 100644 index 0000000000..6e82f1ea87 --- /dev/null +++ b/Branch-2.2/bacula/patches/2.2.x/2.2.5-deamon.patch @@ -0,0 +1,40 @@ + + This patch fixes the default behavior of a non-DEVELOPER version of Bacula + to close STDIN, STDOUT, and STDERR so that an ssh that starts bacula + will not hang. It also fixes a crash in bat when bat is executed and + cannot connect to the Director (e.g. it is not running). + This patch fixes bugs #991 and #993. + + Apply this fix to Bacula version 2.2.5 with: + + cd + patch -p0 <2.2.5-daemon.patch + ./configure (your options) + make + ... + make install + + +Index: src/lib/message.c +=================================================================== +--- src/lib/message.c (revision 5744) ++++ src/lib/message.c (working copy) +@@ -52,7 +52,8 @@ + */ + const char *working_directory = NULL; /* working directory path stored here */ + int verbose = 0; /* increase User messages */ +-int debug_level = 1; /* debug level */ ++/* Keep debug level set to zero by default */ ++int debug_level = 0; /* debug level */ + time_t daemon_start_time = 0; /* Daemon start time */ + const char *version = VERSION " (" BDATE ")"; + char my_name[30]; /* daemon name is stored here */ +@@ -1338,7 +1339,7 @@ + jcr = get_jcr_from_tsd(); + } + /* If no jcr or dequeuing send to daemon to avoid recursion */ +- if (!jcr || jcr->dequeuing) { ++ if ((jcr && !jcr->msg_queue) || !jcr || jcr->dequeuing) { + /* jcr==NULL => daemon message, safe to send now */ + Jmsg(jcr, item->type, item->mtime, "%s", item->msg); + free(item); diff --git a/Branch-2.2/bacula/patches/2.2.x/2.2.5-hb.patch b/Branch-2.2/bacula/patches/2.2.x/2.2.5-hb.patch new file mode 100644 index 0000000000..b8d81c879d --- /dev/null +++ b/Branch-2.2/bacula/patches/2.2.x/2.2.5-hb.patch @@ -0,0 +1,186 @@ + + This patch fixes bug #947 where a large number of emails were generated + because the heartbeat interval was small and the tape in the drive did + not correspond to the one wanted by Bacula. + + Apply the patch to version 2.2.5 (and probably any 2.2.x version) with: + + cd + ./configure + patch -p0 <2.2.5-hb.patch + make + ... + make install + + +Index: src/stored/wait.c +=================================================================== +--- src/stored/wait.c (revision 5814) ++++ src/stored/wait.c (working copy) +@@ -40,9 +40,8 @@ + #include "bacula.h" /* pull in global headers */ + #include "stored.h" /* pull in Storage Deamon headers */ + +-//static bool double_jcr_wait_time(JCR *jcr); ++const int dbglvl = 400; + +- + /* + * Wait for SysOp to mount a tape on a specific device + * +@@ -62,7 +61,7 @@ + JCR *jcr = dcr->jcr; + + dev->dlock(); +- Dmsg1(100, "Enter blocked=%s\n", dev->print_blocked()); ++ Dmsg1(dbglvl, "Enter blocked=%s\n", dev->print_blocked()); + unmounted = is_device_unmounted(dev); + + dev->poll = false; +@@ -84,27 +83,28 @@ + } + + if (!unmounted) { +- Dmsg1(400, "blocked=%s\n", dev->print_blocked()); ++ Dmsg1(dbglvl, "blocked=%s\n", dev->print_blocked()); + dev->dev_prev_blocked = dev->blocked(); + dev->set_blocked(BST_WAITING_FOR_SYSOP); /* indicate waiting for mount */ + } + + for ( ; !job_canceled(jcr); ) { +- time_t now, start; ++ time_t now, start, total_waited; + + gettimeofday(&tv, &tz); + timeout.tv_nsec = tv.tv_usec * 1000; + timeout.tv_sec = tv.tv_sec + add_wait; + +- Dmsg4(400, "I'm going to sleep on device %s. HB=%d wait=%d add_wait=%d\n", +- dev->print_name(), (int)me->heartbeat_interval, dev->wait_sec, add_wait); ++ Dmsg4(dbglvl, "I'm going to sleep on device %s. HB=%d rem_wait=%d add_wait=%d\n", ++ dev->print_name(), (int)me->heartbeat_interval, dev->rem_wait_sec, add_wait); + start = time(NULL); + /* Wait required time */ + stat = pthread_cond_timedwait(&dev->wait_next_vol, &dev->m_mutex, &timeout); +- Dmsg2(400, "Wokeup from sleep on device stat=%d blocked=%s\n", stat, ++ Dmsg2(dbglvl, "Wokeup from sleep on device stat=%d blocked=%s\n", stat, + dev->print_blocked()); + + now = time(NULL); ++ total_waited = now - first_start; + dev->rem_wait_sec -= (now - start); + + /* Note, this always triggers the first time. We want that. */ +@@ -113,7 +113,7 @@ + /* send heartbeats */ + if (jcr->file_bsock) { + jcr->file_bsock->signal(BNET_HEARTBEAT); +- Dmsg0(400, "Send heartbeat to FD.\n"); ++ Dmsg0(dbglvl, "Send heartbeat to FD.\n"); + } + if (jcr->dir_bsock) { + jcr->dir_bsock->signal(BNET_HEARTBEAT); +@@ -131,7 +131,7 @@ + + + if (dev->rem_wait_sec <= 0) { /* on exceeding wait time return */ +- Dmsg0(400, "Exceed wait time.\n"); ++ Dmsg0(dbglvl, "Exceed wait time.\n"); + stat = W_TIMEOUT; + break; + } +@@ -142,8 +142,8 @@ + unmounted = is_device_unmounted(dev); + + if (!unmounted && dev->vol_poll_interval && +- (now - first_start >= dev->vol_poll_interval)) { +- Dmsg1(400, "In wait blocked=%s\n", dev->print_blocked()); ++ (total_waited >= dev->vol_poll_interval)) { ++ Dmsg1(dbglvl, "poll return in wait blocked=%s\n", dev->print_blocked()); + dev->poll = true; /* returning a poll event */ + stat = W_POLL; + break; +@@ -152,6 +152,7 @@ + * Check if user mounted the device while we were waiting + */ + if (dev->blocked() == BST_MOUNT) { /* mount request ? */ ++ Dmsg0(dbglvl, "Mounted return.\n"); + stat = W_MOUNT; + break; + } +@@ -160,30 +161,39 @@ + * If we did not timeout, then some event happened, so + * return to check if state changed. + */ +- if (stat != 0) { ++ if (stat != ETIMEDOUT) { ++ berrno be; ++ Dmsg2(dbglvl, "Wake return. stat=%d. ERR=%s\n", stat, be.bstrerror(stat)); + stat = W_WAKE; /* someone woke us */ + break; + } + + /* + * At this point, we know we woke up because of a timeout, +- * that was due to a heartbeat, so we just update +- * the wait counters and continue. ++ * that was due to a heartbeat, because any other reason would ++ * have caused us to return, so update the wait counters and continue. + */ +- add_wait = dev->wait_sec - (now - start); ++ add_wait = dev->rem_wait_sec; ++ if (me->heartbeat_interval && add_wait > me->heartbeat_interval) { ++ add_wait = me->heartbeat_interval; ++ } ++ /* If the user did not unmount the tape and we are polling, ensure ++ * that we poll at the correct interval. ++ */ ++ if (!unmounted && dev->vol_poll_interval && ++ add_wait > dev->vol_poll_interval - total_waited) { ++ add_wait = dev->vol_poll_interval - total_waited; ++ } + if (add_wait < 0) { + add_wait = 0; + } +- if (me->heartbeat_interval && add_wait > me->heartbeat_interval) { +- add_wait = me->heartbeat_interval; +- } + } + + if (!unmounted) { + dev->set_blocked(dev->dev_prev_blocked); /* restore entry state */ +- Dmsg1(400, "set %s\n", dev->print_blocked()); ++ Dmsg1(dbglvl, "set %s\n", dev->print_blocked()); + } +- Dmsg1(400, "Exit blocked=%s\n", dev->print_blocked()); ++ Dmsg1(dbglvl, "Exit blocked=%s\n", dev->print_blocked()); + dev->dunlock(); + return stat; + } +@@ -209,7 +219,7 @@ + const int max_wait_time = 1 * 60; /* wait 1 minute */ + char ed1[50]; + +- Dmsg0(100, "Enter wait_for_device\n"); ++ Dmsg0(dbglvl, "Enter wait_for_device\n"); + P(device_release_mutex); + + if (++retries % 5 == 0) { +@@ -222,14 +232,14 @@ + timeout.tv_nsec = tv.tv_usec * 1000; + timeout.tv_sec = tv.tv_sec + max_wait_time; + +- Dmsg1(100, "JobId=%u going to wait for a device.\n", (uint32_t)jcr->JobId); ++ Dmsg0(dbglvl, "Going to wait for a device.\n"); + + /* Wait required time */ + stat = pthread_cond_timedwait(&wait_device_release, &device_release_mutex, &timeout); +- Dmsg2(100, "JobId=%u wokeup from sleep on device stat=%d\n", (uint32_t)jcr->JobId, stat); ++ Dmsg1(dbglvl, "Wokeup from sleep on device stat=%d\n", stat); + + V(device_release_mutex); +- Dmsg2(100, "JobId=%u return from wait_device ok=%d\n", (uint32_t)jcr->JobId, ok); ++ Dmsg1(dbglvl, "Return from wait_device ok=%d\n", ok); + return ok; + } + diff --git a/Branch-2.2/bacula/patches/2.2.x/2.2.5-lastwritten.patch b/Branch-2.2/bacula/patches/2.2.x/2.2.5-lastwritten.patch new file mode 100644 index 0000000000..c5373bcfec --- /dev/null +++ b/Branch-2.2/bacula/patches/2.2.x/2.2.5-lastwritten.patch @@ -0,0 +1,41 @@ + + This bug fixes the LastWritten field which was updated during + a restore (or a reading migration) + This fixes bug #982 + + This patch applies to Bacula version 2.2.5 (and previous versions), + and can be applied with the following: + + cd + patch -p0 <2.2.5-lastwritten.patch + ./configure (your options) + make + ... + make install + + + +Index: src/dird/catreq.c +=================================================================== +--- src/dird/catreq.c (révision 5789) ++++ src/dird/catreq.c (copie de travail) +@@ -266,6 +266,11 @@ + } + } + Dmsg2(400, "Update media: BefVolJobs=%u After=%u\n", mr.VolJobs, sdmr.VolJobs); ++ /* Check if the volume has been written by the job, ++ * and update the LastWritten field if needed */ ++ if (mr.VolBlocks != sdmr.VolBlocks) { ++ mr.LastWritten = sdmr.LastWritten; ++ } + /* Copy updated values to original media record */ + mr.VolJobs = sdmr.VolJobs; + mr.VolFiles = sdmr.VolFiles; +@@ -274,7 +279,6 @@ + mr.VolMounts = sdmr.VolMounts; + mr.VolErrors = sdmr.VolErrors; + mr.VolWrites = sdmr.VolWrites; +- mr.LastWritten = sdmr.LastWritten; + mr.Slot = sdmr.Slot; + mr.InChanger = sdmr.InChanger; + mr.VolReadTime = sdmr.VolReadTime; diff --git a/Branch-2.2/bacula/patches/2.2.x/2.2.5-nextvol.patch b/Branch-2.2/bacula/patches/2.2.x/2.2.5-nextvol.patch new file mode 100644 index 0000000000..27bf0d5641 --- /dev/null +++ b/Branch-2.2/bacula/patches/2.2.x/2.2.5-nextvol.patch @@ -0,0 +1,29 @@ + + This bug fixes the warning message that prints each time an automatic + Volume name is created. This fixes bug #979 + + This patch applies to Bacula version 2.2.5 (not to previous versions), + and can be applied with the following: + + cd + patch -p0 <2.2.5-newvol.patch + ./configure (your options) + make + ... + make install + + + +Index: src/dird/newvol.c +=================================================================== +--- src/dird/newvol.c (revision 5717) ++++ src/dird/newvol.c (working copy) +@@ -124,7 +124,7 @@ + mr->VolumeName[0] = 0; + bstrncpy(name, pr->LabelFormat, sizeof(name)); + ctx.value = 0; +- Mmsg(query, "SELECT MAX(MediaId) FROM Media,POOL WHERE Pool.PoolId=%s", ++ Mmsg(query, "SELECT MAX(MediaId) FROM Media,Pool WHERE Pool.PoolId=%s", + edit_int64(pr->PoolId, ed1)); + if (!db_sql_query(jcr->db, query.c_str(), db_int64_handler, (void *)&ctx)) { + Jmsg(jcr, M_WARNING, 0, _("SQL failed, but ignored. ERR=%s\n"), db_strerror(jcr->db)); diff --git a/Branch-2.2/bacula/patches/2.2.x/2.2.5-postgresql-errors.patch b/Branch-2.2/bacula/patches/2.2.x/2.2.5-postgresql-errors.patch new file mode 100644 index 0000000000..fb52b80dd2 --- /dev/null +++ b/Branch-2.2/bacula/patches/2.2.x/2.2.5-postgresql-errors.patch @@ -0,0 +1,28 @@ + After a sql error, the error message that is printed + is incorrect and does not include the postgresql error message. + It fixes #989 + + This patch applies to Bacula version 2.2.5 (and previous versions), + and can be applied with the following: + + cd + patch -p0 <2.2.5-postgresql-errors.patch + ./configure (your options) + make + ... + make install + + +Index: src/cats/cats.h +=================================================================== +--- src/cats/cats.h (révision 5763) ++++ src/cats/cats.h (copie de travail) +@@ -498,7 +498,7 @@ + #define sql_fetch_row(x) my_postgresql_fetch_row(x) + #define sql_query(x, y) my_postgresql_query((x), (y)) + #define sql_close(x) PQfinish((x)->db) +-#define sql_strerror(x) PQresultErrorMessage((x)->result) ++#define sql_strerror(x) PQerrorMessage((x)->db) + #define sql_num_rows(x) ((unsigned) PQntuples((x)->result)) + #define sql_data_seek(x, i) my_postgresql_data_seek((x), (i)) + #define sql_affected_rows(x) ((unsigned) atoi(PQcmdTuples((x)->result))) diff --git a/Branch-2.2/bacula/patches/2.2.x/2.2.5-tray-monitor.patch b/Branch-2.2/bacula/patches/2.2.x/2.2.5-tray-monitor.patch new file mode 100644 index 0000000000..542aea74d0 --- /dev/null +++ b/Branch-2.2/bacula/patches/2.2.x/2.2.5-tray-monitor.patch @@ -0,0 +1,25 @@ + + This patch activates the Close button in the tray monitor window. + It fixes bug #986. + + Apply it to Bacula version 2.2.5 with: + + cd + patch -p0 <2.2.5-tray-monitor.patch + make + ... + make install + +Index: src/tray-monitor/tray-monitor.c +=================================================================== +--- src/tray-monitor/tray-monitor.c (revision 5717) ++++ src/tray-monitor/tray-monitor.c (working copy) +@@ -478,7 +478,7 @@ + gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, FALSE, 0); + + button = new_image_button("gtk-close", _("Close")); +-// g_signal_connect_swapped(G_OBJECT(button), "clicked", G_CALLBACK(gtk_widget_hide), G_OBJECT(window)); ++ g_signal_connect_swapped(G_OBJECT(button), "clicked", G_CALLBACK(gtk_widget_hide), G_OBJECT(window)); + gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, FALSE, 0); + + gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); diff --git a/Branch-2.2/bacula/patches/2.2.x/2.2.5-verify-loop.patch b/Branch-2.2/bacula/patches/2.2.x/2.2.5-verify-loop.patch new file mode 100644 index 0000000000..9016cfe297 --- /dev/null +++ b/Branch-2.2/bacula/patches/2.2.x/2.2.5-verify-loop.patch @@ -0,0 +1,33 @@ + + This patch fixes bug #1003 where putting the message output from + a Verify job into the catalog results in a recursive loop. The problem + seems to show up only with postgresql (to be verified). + + Apply it to version 2.2.5 (or probably any previous 2.2.x version) with + + cd + ./configure not necessary if already configured + patch -p0 <2.2.5-verify-loop.patch + make + ... + make install + + +Index: src/dird/verify.c +=================================================================== +--- src/dird/verify.c (revision 5814) ++++ src/dird/verify.c (working copy) +@@ -767,11 +767,11 @@ + return 1; + } + if (!jcr->fn_printed) { +- Jmsg(jcr, M_INFO, 0, _("\nThe following files are in the Catalog but not on %s:\n"), ++ Qmsg(jcr, M_INFO, 0, _("\nThe following files are in the Catalog but not on %s:\n"), + jcr->JobLevel == L_VERIFY_VOLUME_TO_CATALOG ? "the Volume(s)" : "disk"); + jcr->fn_printed = true; + } +- Jmsg(jcr, M_INFO, 0, " %s%s\n", row[0]?row[0]:"", row[1]?row[1]:""); ++ Qmsg(jcr, M_INFO, 0, " %s%s\n", row[0]?row[0]:"", row[1]?row[1]:""); + return 0; + } + diff --git a/Branch-2.2/bacula/patches/2.2.x/2.2.6-add.patch b/Branch-2.2/bacula/patches/2.2.x/2.2.6-add.patch new file mode 100644 index 0000000000..67e53bdcdc --- /dev/null +++ b/Branch-2.2/bacula/patches/2.2.x/2.2.6-add.patch @@ -0,0 +1,35 @@ + + This patch fixes the infinite loop when trying to increase the + maximum number of volumes in a Pool during the add command. + This patch fixes bug #1008. + + It can be applied to Bacula version 2.2.6 (and probably earlier + 2.2.x versions) with: + + cd + ./configure + patch -p0 <2.2.6-add.patch + make + ... + make install + +Index: src/dird/ua_cmds.c +=================================================================== +--- src/dird/ua_cmds.c (revision 5901) ++++ src/dird/ua_cmds.c (working copy) +@@ -244,12 +244,10 @@ + + while (pr.MaxVols > 0 && pr.NumVols >= pr.MaxVols) { + ua->warning_msg(_("Pool already has maximum volumes=%d\n"), pr.MaxVols); +- for (;;) { +- if (!get_pint(ua, _("Enter new maximum (zero for unlimited): "))) { +- return 1; +- } +- pr.MaxVols = ua->pint32_val; ++ if (!get_pint(ua, _("Enter new maximum (zero for unlimited): "))) { ++ return 1; + } ++ pr.MaxVols = ua->pint32_val; + } + + /* Get media type */ diff --git a/Branch-2.2/bacula/patches/2.2.x/2.2.6-backup-restore-socket.patch b/Branch-2.2/bacula/patches/2.2.x/2.2.6-backup-restore-socket.patch new file mode 100644 index 0000000000..fb9156bf42 --- /dev/null +++ b/Branch-2.2/bacula/patches/2.2.x/2.2.6-backup-restore-socket.patch @@ -0,0 +1,30 @@ + + This patch fixes bug #1015 where bacula failed to restore acl to a socket + because Bacula no longer restores sockets. + + This fix will tell to bacula-fd to skip all socket file. + + Apply it to version 2.2.6 (or probably any previous 2.2.x version) with + + cd + ./configure not necessary if already configured + patch -p0 < 2.2.6-backup-restore-socket.patch + make + ... + make install + +Index: src/filed/backup.c +=================================================================== +--- src/filed/backup.c (révision 5882) ++++ src/filed/backup.c (copie de travail) +@@ -279,6 +279,10 @@ + break; + case FT_SPEC: + Dmsg1(130, "FT_SPEC saving: %s\n", ff_pkt->fname); ++ if (S_ISSOCK(ff_pkt->statp.st_mode)) { ++ Jmsg(jcr, M_SKIPPED, 1, _(" Socket file skipped: %s\n"), ff_pkt->fname); ++ return 1; ++ } + break; + case FT_RAW: + Dmsg1(130, "FT_RAW saving: %s\n", ff_pkt->fname); diff --git a/Branch-2.2/bacula/patches/2.2.x/2.2.6-bcopy.patch b/Branch-2.2/bacula/patches/2.2.x/2.2.6-bcopy.patch new file mode 100644 index 0000000000..a02dec4bda --- /dev/null +++ b/Branch-2.2/bacula/patches/2.2.x/2.2.6-bcopy.patch @@ -0,0 +1,78 @@ + + This patch fixes bcopy so that it produces correct Volumes. + It fixes bug #1022. + + Apply this patch to version 2.2.6 and possibly any 2.2.x version with: + + cd + patch -p0 2.2.6-bcopy.patch + ./configure + make + ... + make install + + +Index: src/stored/bcopy.c +=================================================================== +--- src/stored/bcopy.c (revision 6010) ++++ src/stored/bcopy.c (working copy) +@@ -89,6 +89,7 @@ + char *iVolumeName = NULL; + char *oVolumeName = NULL; + bool ignore_label_errors = false; ++ bool ok; + + setlocale(LC_ALL, ""); + bindtextdomain("bacula", LOCALEDIR); +@@ -199,9 +200,11 @@ + } + out_block = out_jcr->dcr->block; + +- read_records(in_jcr->dcr, record_cb, mount_next_read_volume); +- if (!write_block_to_device(out_jcr->dcr)) { +- Pmsg0(000, _("Write of last block failed.\n")); ++ ok = read_records(in_jcr->dcr, record_cb, mount_next_read_volume); ++ if (ok || out_dev->can_write()) { ++ if (!write_block_to_device(out_jcr->dcr)) { ++ Pmsg0(000, _("Write of last block failed.\n")); ++ } + } + + Pmsg2(000, _("%u Jobs copied. %u records copied.\n"), jobs, records); +@@ -253,6 +256,7 @@ + out_dev->print_name(), out_dev->bstrerror()); + Jmsg(out_jcr, M_FATAL, 0, _("Cannot fixup device error. %s\n"), + out_dev->bstrerror()); ++ return false; + } + } + if (!write_block_to_device(out_jcr->dcr)) { +@@ -260,8 +264,9 @@ + out_dev->print_name(), out_dev->bstrerror()); + Jmsg(out_jcr, M_FATAL, 0, _("Cannot fixup device error. %s\n"), + out_dev->bstrerror()); ++ return false; + } +- break; ++ return true; + case EOM_LABEL: + Pmsg0(000, _("EOM label not copied.\n")); + return true; +@@ -269,7 +274,7 @@ + Pmsg0(000, _("EOT label not copied.\n")); + return true; + default: +- break; ++ return true; + } + } + +@@ -283,7 +288,7 @@ + out_dev->print_name(), out_dev->bstrerror()); + Jmsg(out_jcr, M_FATAL, 0, _("Cannot fixup device error. %s\n"), + out_dev->bstrerror()); +- break; ++ return false; + } + } + return true; diff --git a/Branch-2.2/bacula/patches/2.2.x/2.2.6-dvdwrite_trialfix.patch b/Branch-2.2/bacula/patches/2.2.x/2.2.6-dvdwrite_trialfix.patch new file mode 100644 index 0000000000..044d09ec92 --- /dev/null +++ b/Branch-2.2/bacula/patches/2.2.x/2.2.6-dvdwrite_trialfix.patch @@ -0,0 +1,28 @@ + This patch should fix #1016 when there are more than one "part" to write. + Instead of each part being stored on disk, written to DVD, then deleted from + disk, all parts are written to disk, and only the last is written and deleted + from disk. + + Apply it to 2.2.6 (and possibly previous 2.2.x versions) with: + + cd + patch -p0 <2.2.6-dvdwrite_trialfix.patch + ./configure + make + ... + make install + + +Index: src/stored/dev.c +=================================================================== +--- src/stored/dev.c (revision 5996) ++++ src/stored/dev.c (working copy) +@@ -1856,7 +1856,7 @@ + /* Clean up device packet so it can be reused */ + clear_opened(); + state &= ~(ST_LABEL|ST_READ|ST_APPEND|ST_EOT|ST_WEOT|ST_EOF| +- ST_MOUNTED|ST_MEDIA|ST_SHORT|ST_FREESPACE_OK|ST_PART_SPOOLED); ++ ST_MOUNTED|ST_MEDIA|ST_SHORT); + label_type = B_BACULA_LABEL; + file = block_num = 0; + file_size = 0; diff --git a/Branch-2.2/bacula/patches/2.2.x/2.2.6-mac-build.patch b/Branch-2.2/bacula/patches/2.2.x/2.2.6-mac-build.patch new file mode 100644 index 0000000000..a1b95c7e9b --- /dev/null +++ b/Branch-2.2/bacula/patches/2.2.x/2.2.6-mac-build.patch @@ -0,0 +1,312 @@ + This patch should fix the Mac OS X build problem on the latest + Darwin, where sys/types.h was not included correctly (apparently + due to a change in the Mac headers). The solution was to explicitly + ensure that it is defined for the ./configure. + This patch fixes bug #1020. + + This patch also has a rebuild of configure that includes the Debian + qt4 kludge (look for alternate qt4 names). + + Apply it to 2.2.6 (and possibly previous 2.2.x versions) with: + + cd + patch -p0 <2.2.6-mac-build.patch + ./configure + make + ... + make install + + +Index: configure +=================================================================== +--- configure (revision 5979) ++++ configure (working copy) +@@ -309,7 +309,7 @@ + # include + #endif" + +-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir archivedir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS BUILD_DIR TOP_DIR TRUEPRG FALSEPRG VERSION DATE LSMDATE CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX CPP EGREP INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA RANLIB ac_ct_RANLIB MV RM CP SED ECHO CMP TBL AR OPENSSL MTX DD MKISOFS PYTHON GROWISOFS DVDRWMEDIAINFO DVDRWFORMAT PKGCONFIG WXCONFIG WXFLAGS CDRECORD PIDOF AWK ARFLAGS MAKE_SHELL LOCAL_LIBS LOCAL_CFLAGS LOCAL_LDFLAGS LOCAL_DEFS build build_cpu build_vendor build_os host host_cpu host_vendor host_os HAVE_SUN_OS_TRUE HAVE_SUN_OS_FALSE HAVE_OSF1_OS_TRUE HAVE_OSF1_OS_FALSE HAVE_AIX_OS_TRUE HAVE_AIX_OS_FALSE HAVE_HPUX_OS_TRUE HAVE_HPUX_OS_FALSE HAVE_LINUX_OS_TRUE HAVE_LINUX_OS_FALSE HAVE_FREEBSD_OS_TRUE HAVE_FREEBSD_OS_FALSE HAVE_NETBSD_OS_TRUE HAVE_NETBSD_OS_FALSE HAVE_OPENBSD_OS_TRUE HAVE_OPENBSD_OS_FALSE HAVE_BSDI_OS_TRUE HAVE_BSDI_OS_FALSE HAVE_SGI_OS_TRUE HAVE_SGI_OS_FALSE HAVE_IRIX_OS_TRUE HAVE_IRIX_OS_FALSE HAVE_DARWIN_OS_TRUE HAVE_DARWIN_OS_FALSE SET_MAKE MKINSTALLDIRS USE_NLS MSGFMT GMSGFMT XGETTEXT MSGMERGE INTL_MACOSX_LIBS LIBICONV LTLIBICONV INTLLIBS LIBINTL LTLIBINTL POSUB GLIBC2 ALLOCA GLIBC21 HAVE_POSIX_PRINTF HAVE_ASPRINTF HAVE_SNPRINTF HAVE_WPRINTF INTLBISON BUILD_INCLUDED_LIBINTL USE_INCLUDED_LIBINTL CATOBJEXT DATADIRNAME INSTOBJEXT GENCAT INTLOBJS INTL_LIBTOOL_SUFFIX_PREFIX GNOME_INCLUDEDIR GNOMEUI_LIBS GNOME_LIBDIR GNOME_LIBS GNOME_DIR BAT_DIR QWT_INC QWT_LDFLAGS WXCONS_CPPFLAGS WXCONS_LDFLAGS WX_DIR TRAY_MONITOR_CPPFLAGS TRAY_MONITOR_LDFLAGS TRAY_MONITOR_DIR TTOOL_LDFLAGS STATIC_FD STATIC_SD STATIC_DIR STATIC_CONS STATIC_GNOME_CONS STATIC_WX_CONS ALL_DIRS DIRD_DIR DIR_TOOLS STORED_DIR CONS_INC CONS_OBJ CONS_SRC CONS_LIBS CONS_LDFLAGS READLINE_SRC PYTHON_LIBS PYTHON_INCDIR OPENSSL_LIBS OPENSSL_INC working_dir scriptdir dump_email job_email smtp_host piddir subsysdir baseport dir_port fd_port sd_port dir_password fd_password sd_password mon_dir_password mon_fd_password mon_sd_password db_name db_user dir_user dir_group sd_user sd_group fd_user fd_group SBINPERM SQL_LFLAGS SQL_INCLUDE SQL_BINDIR cats DB_TYPE GETCONF ac_ct_GETCONF X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS LIBOBJS FDLIBS DEBUG DINCLUDE DLIB DB_LIBS WCFLAGS WLDFLAGS WRAPLIBS OBJLIST hostname TAPEDRIVE PSCMD WIN32 MACOSX DISTNAME DISTVER LTLIBOBJS' ++ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS BUILD_DIR TOP_DIR TRUEPRG FALSEPRG VERSION DATE LSMDATE CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX CPP EGREP INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA RANLIB ac_ct_RANLIB MV RM CP SED ECHO CMP TBL AR OPENSSL MTX DD MKISOFS PYTHON GROWISOFS DVDRWMEDIAINFO DVDRWFORMAT PKGCONFIG QMAKE QMAKEQT4 WXCONFIG WXFLAGS CDRECORD PIDOF AWK ARFLAGS MAKE_SHELL LOCAL_LIBS LOCAL_CFLAGS LOCAL_LDFLAGS LOCAL_DEFS build build_cpu build_vendor build_os host host_cpu host_vendor host_os HAVE_SUN_OS_TRUE HAVE_SUN_OS_FALSE HAVE_OSF1_OS_TRUE HAVE_OSF1_OS_FALSE HAVE_AIX_OS_TRUE HAVE_AIX_OS_FALSE HAVE_HPUX_OS_TRUE HAVE_HPUX_OS_FALSE HAVE_LINUX_OS_TRUE HAVE_LINUX_OS_FALSE HAVE_FREEBSD_OS_TRUE HAVE_FREEBSD_OS_FALSE HAVE_NETBSD_OS_TRUE HAVE_NETBSD_OS_FALSE HAVE_OPENBSD_OS_TRUE HAVE_OPENBSD_OS_FALSE HAVE_BSDI_OS_TRUE HAVE_BSDI_OS_FALSE HAVE_SGI_OS_TRUE HAVE_SGI_OS_FALSE HAVE_IRIX_OS_TRUE HAVE_IRIX_OS_FALSE HAVE_DARWIN_OS_TRUE HAVE_DARWIN_OS_FALSE SET_MAKE MKINSTALLDIRS USE_NLS MSGFMT GMSGFMT XGETTEXT MSGMERGE INTL_MACOSX_LIBS LIBICONV LTLIBICONV INTLLIBS LIBINTL LTLIBINTL POSUB GLIBC2 ALLOCA GLIBC21 HAVE_POSIX_PRINTF HAVE_ASPRINTF HAVE_SNPRINTF HAVE_WPRINTF INTLBISON BUILD_INCLUDED_LIBINTL USE_INCLUDED_LIBINTL CATOBJEXT DATADIRNAME INSTOBJEXT GENCAT INTLOBJS INTL_LIBTOOL_SUFFIX_PREFIX GNOME_INCLUDEDIR GNOMEUI_LIBS GNOME_LIBDIR GNOME_LIBS GNOME_DIR BAT_DIR QWT_INC QWT_LDFLAGS WXCONS_CPPFLAGS WXCONS_LDFLAGS WX_DIR TRAY_MONITOR_CPPFLAGS TRAY_MONITOR_LDFLAGS TRAY_MONITOR_DIR TTOOL_LDFLAGS STATIC_FD STATIC_SD STATIC_DIR STATIC_CONS STATIC_GNOME_CONS STATIC_WX_CONS ALL_DIRS DIRD_DIR DIR_TOOLS STORED_DIR CONS_INC CONS_OBJ CONS_SRC CONS_LIBS CONS_LDFLAGS READLINE_SRC PYTHON_LIBS PYTHON_INCDIR OPENSSL_LIBS OPENSSL_INC working_dir scriptdir dump_email job_email smtp_host piddir subsysdir baseport dir_port fd_port sd_port dir_password fd_password sd_password mon_dir_password mon_fd_password mon_sd_password db_name db_user dir_user dir_group sd_user sd_group fd_user fd_group SBINPERM SQL_LFLAGS SQL_INCLUDE SQL_BINDIR cats DB_TYPE GETCONF ac_ct_GETCONF X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS LIBOBJS FDLIBS DEBUG DINCLUDE DLIB DB_LIBS WCFLAGS WLDFLAGS WRAPLIBS OBJLIST hostname TAPEDRIVE PSCMD WIN32 MACOSX DISTNAME DISTVER LTLIBOBJS' + ac_subst_files='MCOMMON' + + # Initialize some variables set by options. +@@ -350,8 +350,6 @@ + infodir='${prefix}/info' + mandir='${prefix}/man' + +-archivedir='/tmp' +- + ac_prev= + for ac_option + do +@@ -546,13 +544,6 @@ + | --sbi=* | --sb=*) + sbindir=$ac_optarg ;; + +- -archivedir | --archivedir | --archivedi | --archived | --archive | --archiv \ +- | --archi | --arch | --arc | --ar | --a) +- ac_prev=archivedir ;; +- -archivedir=* | --archivedir=* | --archivedi=* | --archived=* | --archive=* \ +- | --archiv=* | --archi=* | --arch=* | --arc=* | --ar=* | --a=*) +- archivedir=$ac_optarg ;; +- + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ +@@ -676,7 +667,7 @@ + done + + # Be sure to have absolute paths. +-for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir archivedir \ ++for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ + localstatedir libdir includedir oldincludedir infodir mandir + do + eval ac_val=$`echo $ac_var` +@@ -852,7 +843,6 @@ + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --infodir=DIR info documentation [PREFIX/info] + --mandir=DIR man documentation [PREFIX/man] +- --archivedir=DIR archive destination for disk-based backups [/tmp] + _ACEOF + + cat <<\_ACEOF +@@ -4116,7 +4106,87 @@ + echo "${ECHO_T}no" >&6 + fi + ++# Extract the first word of "qmake", so it can be a program name with args. ++set dummy qmake; ac_word=$2 ++echo "$as_me:$LINENO: checking for $ac_word" >&5 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 ++if test "${ac_cv_path_QMAKE+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ case $QMAKE in ++ [\\/]* | ?:[\\/]*) ++ ac_cv_path_QMAKE="$QMAKE" # Let the user override the test with a path. ++ ;; ++ *) ++ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_path_QMAKE="$as_dir/$ac_word$ac_exec_ext" ++ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done + ++ test -z "$ac_cv_path_QMAKE" && ac_cv_path_QMAKE="none" ++ ;; ++esac ++fi ++QMAKE=$ac_cv_path_QMAKE ++ ++if test -n "$QMAKE"; then ++ echo "$as_me:$LINENO: result: $QMAKE" >&5 ++echo "${ECHO_T}$QMAKE" >&6 ++else ++ echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++fi ++ ++# Extract the first word of "qmake-qt4", so it can be a program name with args. ++set dummy qmake-qt4; ac_word=$2 ++echo "$as_me:$LINENO: checking for $ac_word" >&5 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 ++if test "${ac_cv_path_QMAKEQT4+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ case $QMAKEQT4 in ++ [\\/]* | ?:[\\/]*) ++ ac_cv_path_QMAKEQT4="$QMAKEQT4" # Let the user override the test with a path. ++ ;; ++ *) ++ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_path_QMAKEQT4="$as_dir/$ac_word$ac_exec_ext" ++ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++ ++ test -z "$ac_cv_path_QMAKEQT4" && ac_cv_path_QMAKEQT4="none" ++ ;; ++esac ++fi ++QMAKEQT4=$ac_cv_path_QMAKEQT4 ++ ++if test -n "$QMAKEQT4"; then ++ echo "$as_me:$LINENO: result: $QMAKEQT4" >&5 ++echo "${ECHO_T}$QMAKEQT4" >&6 ++else ++ echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++fi ++ ++ + if test "x$WXCONFIG" = x; then + WXCONFIG=wx-config + fi +@@ -6776,8 +6846,8 @@ + # ------------------------------------------------------------------ + # If the user has not set --archivedir, we set our default as /tmp + # ------------------------------------------------------------------ +-if test x$archivedir = x'/tmp' ; then +- archivedir=/tmp ++if test x$archivedir = x'${archivedir}' ; then ++ archivedir=${archivedir} + fi + archivedir=`eval echo ${archivedir}` + +@@ -19273,6 +19343,9 @@ + + + ++ ++ ++ + for ac_header in \ + assert.h \ + fcntl.h \ +@@ -19284,6 +19357,7 @@ + stdlib.h \ + stdint.h \ + string.h \ ++ strings.h \ + termios.h \ + termcap.h \ + term.h \ +@@ -19292,9 +19366,11 @@ + sys/byteorder.h \ + sys/ioctl.h \ + sys/select.h \ ++ sys/socket.h \ + sys/sockio.h \ ++ sys/stat.h \ + sys/time.h \ +- sys/socket.h \ ++ sys/types.h \ + arpa/nameser.h \ + resolv.h \ + mtio.h \ +@@ -31173,7 +31249,6 @@ + s,@program_transform_name@,$program_transform_name,;t t + s,@bindir@,$bindir,;t t + s,@sbindir@,$sbindir,;t t +-s,@archivedir@,$archivedir,;t t + s,@libexecdir@,$libexecdir,;t t + s,@datadir@,$datadir,;t t + s,@sysconfdir@,$sysconfdir,;t t +@@ -31233,6 +31308,8 @@ + s,@DVDRWMEDIAINFO@,$DVDRWMEDIAINFO,;t t + s,@DVDRWFORMAT@,$DVDRWFORMAT,;t t + s,@PKGCONFIG@,$PKGCONFIG,;t t ++s,@QMAKE@,$QMAKE,;t t ++s,@QMAKEQT4@,$QMAKEQT4,;t t + s,@WXCONFIG@,$WXCONFIG,;t t + s,@WXFLAGS@,$WXFLAGS,;t t + s,@CDRECORD@,$CDRECORD,;t t +@@ -32122,10 +32199,23 @@ + + + if test "${support_bat}" = "yes" ; then ++ if test "x$QMAKE" = "xnone" && test "x$QMAKEQT4" = "xnone"; then ++ echo "Could not find qmake or qmake-qt4 in $PATH. Check your Qt installation" ++ exit 1 ++ fi ++ ++ QMAKEBIN="qmake" ++ ++ if test "x$QMAKEQT4" != "xnone"; then ++ QMAKEBIN=qmake-qt4 ++ fi ++ ++ ++ + cd src/qt-console + chmod 755 install_conf_file build-depkgs-qt-console + echo "Creating bat Makefile" +- qmake ++ $QMAKEBIN + cd ${BUILD_DIR} + fi + +Index: src/bc_types.h +=================================================================== +--- src/bc_types.h (revision 5979) ++++ src/bc_types.h (working copy) +@@ -62,7 +62,7 @@ + + #ifndef HAVE_INTXX_T + # if (SIZEOF_CHAR == 1) +-typedef char int8_t; ++typedef signed char int8_t; + # else + # error "8 bit int type not found." + # endif +Index: patches/2.2.6-queued-msg.patch +=================================================================== +--- patches/2.2.6-queued-msg.patch (revision 0) ++++ patches/2.2.6-queued-msg.patch (revision 0) +@@ -0,0 +1,25 @@ ++ This patch should ensure that queued messages to the console are ++ displayed as soon as possible. It should fix bug 1007, but has been ++ reported not to work. ++ ++ Apply it to version 2.2.6 (or any prior 2.2.x) with: ++ ++ cd ++ ./configure ++ patch -p0 <2.2.6-queued-msg.patch ++ make ++ ... ++ make install ++ ++Index: src/dird/ua_server.c ++=================================================================== ++--- src/dird/ua_server.c (revision 5979) +++++ src/dird/ua_server.c (working copy) ++@@ -146,6 +146,7 @@ ++ } else { ++ do_a_command(ua, ua->cmd); ++ } +++ dequeue_messages(ua->jcr); ++ if (!ua->quit) { ++ if (console_msg_pending && acl_access_ok(ua, Command_ACL, "messages", 8)) { ++ if (ua->auto_display_messages) { +Index: autoconf/configure.in +=================================================================== +--- autoconf/configure.in (revision 5979) ++++ autoconf/configure.in (working copy) +@@ -1394,6 +1394,7 @@ + stdlib.h \ + stdint.h \ + string.h \ ++ strings.h \ + termios.h \ + termcap.h \ + term.h \ +@@ -1402,9 +1403,11 @@ + sys/byteorder.h \ + sys/ioctl.h \ + sys/select.h \ ++ sys/socket.h \ + sys/sockio.h \ ++ sys/stat.h \ + sys/time.h \ +- sys/socket.h \ ++ sys/types.h \ + arpa/nameser.h \ + resolv.h \ + mtio.h \ diff --git a/Branch-2.2/bacula/patches/2.2.x/2.2.6-maxconcurrentjobs.patch b/Branch-2.2/bacula/patches/2.2.x/2.2.6-maxconcurrentjobs.patch new file mode 100644 index 0000000000..fa8f04a1bb --- /dev/null +++ b/Branch-2.2/bacula/patches/2.2.x/2.2.6-maxconcurrentjobs.patch @@ -0,0 +1,134 @@ + + This patch corrects a problem where the maximum concurrent storage + jobs counter gets out of sync during restore jobs causing jobs to + "wait on max Storage jobs". This patch fixes bug #1009. + + Apply this patch to 2.2.6 and probably any 2.2.x version with the + following: + + cd + patch -p0 <2.2.6-maxconcurrentjobs.patch + ./configure + make + ... + make install + + +Index: src/dird/jobq.c +=================================================================== +--- src/dird/jobq.c (revision 6019) ++++ src/dird/jobq.c (working copy) +@@ -1,23 +1,4 @@ + /* +- * Bacula job queue routines. +- * +- * This code consists of three queues, the waiting_jobs +- * queue, where jobs are initially queued, the ready_jobs +- * queue, where jobs are placed when all the resources are +- * allocated and they can immediately be run, and the +- * running queue where jobs are placed when they are +- * running. +- * +- * Kern Sibbald, July MMIII +- * +- * Version $Id$ +- * +- * This code was adapted from the Bacula workq, which was +- * adapted from "Programming with POSIX Threads", by +- * David R. Butenhof +- * +- */ +-/* + Bacula® - The Network Backup Solution + + Copyright (C) 2003-2007 Free Software Foundation Europe e.V. +@@ -44,6 +25,25 @@ + (FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zürich, + Switzerland, email:ftf@fsfeurope.org. + */ ++/* ++ * Bacula job queue routines. ++ * ++ * This code consists of three queues, the waiting_jobs ++ * queue, where jobs are initially queued, the ready_jobs ++ * queue, where jobs are placed when all the resources are ++ * allocated and they can immediately be run, and the ++ * running queue where jobs are placed when they are ++ * running. ++ * ++ * Kern Sibbald, July MMIII ++ * ++ * Version $Id$ ++ * ++ * This code was adapted from the Bacula workq, which was ++ * adapted from "Programming with POSIX Threads", by ++ * David R. Butenhof ++ * ++ */ + + #include "bacula.h" + #include "dird.h" +@@ -453,6 +453,7 @@ + } + } + jq->running_jobs->append(je); ++// set_jcr_in_tsd(jcr); + Dmsg1(2300, "Took jobid=%d from ready and appended to run\n", jcr->JobId); + + /* Release job queue lock */ +@@ -682,14 +683,13 @@ + jcr->acquired_resource_locks = false; + if (jcr->rstore) { + Dmsg1(200, "Rstore=%s\n", jcr->rstore->name()); +- if (jcr->rstore->NumConcurrentJobs == 0 && +- jcr->rstore->NumConcurrentJobs < jcr->rstore->MaxConcurrentJobs) { +- /* Simple case, first job */ ++ /* ++ * Let only one Restore/Verify job run at a time regardless ++ * of MaxConcurrentjobs. ++ */ ++ if (jcr->rstore->NumConcurrentJobs == 0) { + jcr->rstore->NumConcurrentJobs = 1; + Dmsg0(200, "Set rncj=1\n"); +- } else if (jcr->rstore->NumConcurrentJobs < jcr->rstore->MaxConcurrentJobs) { +- jcr->rstore->NumConcurrentJobs++; +- Dmsg1(200, "Inc rncj=%d\n", jcr->rstore->NumConcurrentJobs); + } else { + Dmsg1(200, "Fail rncj=%d\n", jcr->rstore->NumConcurrentJobs); + set_jcr_job_status(jcr, JS_WaitStoreRes); +@@ -700,7 +700,7 @@ + if (jcr->wstore) { + Dmsg1(200, "Wstore=%s\n", jcr->wstore->name()); + if (jcr->rstore == jcr->wstore) { /* deadlock */ +- jcr->rstore->NumConcurrentJobs--; /* back out rstore */ ++ jcr->rstore->NumConcurrentJobs = 0; /* back out rstore */ + Jmsg(jcr, M_FATAL, 0, _("Job canceled. Attempt to read and write same device.\n" + " Read storage \"%s\" (From %s) -- Write storage \"%s\" (From %s)\n"), + jcr->rstore->name(), jcr->rstore_source, jcr->wstore->name(), jcr->wstore_source); +@@ -716,7 +716,7 @@ + jcr->wstore->NumConcurrentJobs++; + Dmsg1(200, "Inc wncj=%d\n", jcr->wstore->NumConcurrentJobs); + } else if (jcr->rstore) { +- jcr->rstore->NumConcurrentJobs--; /* back out rstore */ ++ jcr->rstore->NumConcurrentJobs = 0; /* back out rstore */ + Dmsg1(200, "Fail wncj=%d\n", jcr->wstore->NumConcurrentJobs); + skip_this_jcr = true; + } else { +@@ -738,7 +738,7 @@ + Dmsg1(200, "Dec wncj=%d\n", jcr->wstore->NumConcurrentJobs); + } + if (jcr->rstore) { +- jcr->rstore->NumConcurrentJobs--; ++ jcr->rstore->NumConcurrentJobs = 0; + Dmsg1(200, "Dec rncj=%d\n", jcr->rstore->NumConcurrentJobs); + } + set_jcr_job_status(jcr, JS_WaitClientRes); +@@ -753,7 +753,7 @@ + Dmsg1(200, "Dec wncj=%d\n", jcr->wstore->NumConcurrentJobs); + } + if (jcr->rstore) { +- jcr->rstore->NumConcurrentJobs--; ++ jcr->rstore->NumConcurrentJobs = 0; + Dmsg1(200, "Dec rncj=%d\n", jcr->rstore->NumConcurrentJobs); + } + jcr->client->NumConcurrentJobs--; diff --git a/Branch-2.2/bacula/patches/2.2.x/2.2.6-maxruntime.patch b/Branch-2.2/bacula/patches/2.2.x/2.2.6-maxruntime.patch new file mode 100644 index 0000000000..decd466b0d --- /dev/null +++ b/Branch-2.2/bacula/patches/2.2.x/2.2.6-maxruntime.patch @@ -0,0 +1,34 @@ + This patch fixes bug #1012 where the job is canceled because + of Max Run Time exceeded when the job has not yet started. + + Apply it to 2.2.6 or any prior 2.2.x version with: + + cd + patch -p0 <2.2.6-maxruntime.patch + ./configure + make + ... + make install + + +Index: src/dird/job.c +=================================================================== +--- src/dird/job.c (revision 5979) ++++ src/dird/job.c (working copy) +@@ -556,7 +556,7 @@ + */ + static bool job_check_maxruntime(JCR *control_jcr, JCR *jcr) + { +- if (jcr->job->MaxRunTime == 0 || job_canceled(jcr)) { ++ if (jcr->job->MaxRunTime == 0 || job_canceled(jcr) || jcr->JobStatus == JS_Created) { + return false; + } + if ((watchdog_time - jcr->start_time) < jcr->job->MaxRunTime) { +@@ -931,6 +931,7 @@ + { + jcr->job = job; + jcr->JobType = job->JobType; ++ jcr->JobStatus = JS_Created; + switch (jcr->JobType) { + case JT_ADMIN: + case JT_RESTORE: diff --git a/Branch-2.2/bacula/patches/2.2.x/2.2.6-queued-msg.patch b/Branch-2.2/bacula/patches/2.2.x/2.2.6-queued-msg.patch new file mode 100644 index 0000000000..1a51e97fab --- /dev/null +++ b/Branch-2.2/bacula/patches/2.2.x/2.2.6-queued-msg.patch @@ -0,0 +1,25 @@ + This patch should ensure that queued messages to the console are + displayed as soon as possible. It should fix bug 1007, but has been + reported not to work. + + Apply it to version 2.2.6 (or any prior 2.2.x) with: + + cd + ./configure + patch -p0 <2.2.6-queued-msg.patch + make + ... + make install + +Index: src/dird/ua_server.c +=================================================================== +--- src/dird/ua_server.c (revision 5979) ++++ src/dird/ua_server.c (working copy) +@@ -146,6 +146,7 @@ + } else { + do_a_command(ua, ua->cmd); + } ++ dequeue_messages(ua->jcr); + if (!ua->quit) { + if (console_msg_pending && acl_access_ok(ua, Command_ACL, "messages", 8)) { + if (ua->auto_display_messages) { diff --git a/Branch-2.2/bacula/patches/2.2.x/2.2.6-scratch.patch b/Branch-2.2/bacula/patches/2.2.x/2.2.6-scratch.patch new file mode 100644 index 0000000000..d6da1cd01e --- /dev/null +++ b/Branch-2.2/bacula/patches/2.2.x/2.2.6-scratch.patch @@ -0,0 +1,29 @@ + + This patch prevents the "status dir" command from trying to use a scratch + volume and possibly moving it from one pool to another. This patch fixes + bug #1019. + + Apply the patch to 2.2.6 (and possibly any 2.2.x version with): + + cd + patch -p0 <2.2.6-scratch.patch + ./configure + make + ... + make install + + + +Index: src/dird/next_vol.c +=================================================================== +--- src/dird/next_vol.c (revision 5999) ++++ src/dird/next_vol.c (working copy) +@@ -97,7 +97,7 @@ + prune_volumes(jcr, InChanger, mr); + } + ok = recycle_oldest_purged_volume(jcr, InChanger, mr); +- if (!ok) { ++ if (!ok && create) { + Dmsg4(050, "after prune volumes_vol ok=%d index=%d InChanger=%d Vstat=%s\n", + ok, index, InChanger, mr->VolStatus); + /* diff --git a/Branch-2.2/bacula/patches/2.2.x/2.2.6-status.patch b/Branch-2.2/bacula/patches/2.2.x/2.2.6-status.patch new file mode 100644 index 0000000000..961846374e --- /dev/null +++ b/Branch-2.2/bacula/patches/2.2.x/2.2.6-status.patch @@ -0,0 +1,46 @@ + This patch fixes the status command to include the formating string for + JS_AttrInsterting. It fixes bug #1021. + + Apply it to version 2.2.6 (and possibly earlier versions) with: + + cd + patch -p0 <2.2.6-status.patch + ./configure + make + ... + make install + + +Index: src/dird/ua_status.c +=================================================================== +--- src/dird/ua_status.c (revision 5979) ++++ src/dird/ua_status.c (working copy) +@@ -636,6 +636,12 @@ + case JS_WaitPriority: + msg = _("is waiting for higher priority jobs to finish"); + break; ++ case JS_AttrDespooling: ++ msg = _("SD despooling Attributes"); ++ break; ++ case JS_AttrInserting: ++ msg = _("Dir inserting Attributes"); ++ break; + + default: + emsg = (char *)get_pool_memory(PM_FNAME); +@@ -673,8 +679,14 @@ + Mmsg(emsg, _("is waiting for Client %s to connect to Storage %s"), + jcr->client->name(), jcr->wstore->name()); + } +- msg = emsg; ++ msg = emsg; ++ break; ++ case JS_AttrDespooling: ++ msg = _("SD despooling Attributes"); + break; ++ case JS_AttrInserting: ++ msg = _("Dir inserting Attributes"); ++ break; + } + switch (jcr->JobType) { + case JT_ADMIN: diff --git a/Branch-2.2/bacula/patches/2.2.x/2.2.6-verify-vol.patch b/Branch-2.2/bacula/patches/2.2.x/2.2.6-verify-vol.patch new file mode 100644 index 0000000000..264d108842 --- /dev/null +++ b/Branch-2.2/bacula/patches/2.2.x/2.2.6-verify-vol.patch @@ -0,0 +1,51 @@ + + This patch eliminates spurious output to the console during a VerifyVolume + job that contains encrypted data. + It fixes bug #1024. + + Apply this patch to Bacula version 2.2.6 and previous 2.2.x versions with: + + cd + patch -p0 <2.2.6-verify-vol.patch + ./configure + make + ... + make install + + +Index: src/filed/verify_vol.c +=================================================================== +--- src/filed/verify_vol.c (revision 6010) ++++ src/filed/verify_vol.c (working copy) +@@ -211,19 +211,6 @@ + } + break; + +- /* Data streams to ignore */ +- case STREAM_ENCRYPTED_SESSION_DATA: +- case STREAM_FILE_DATA: +- case STREAM_SPARSE_DATA: +- case STREAM_WIN32_DATA: +- case STREAM_WIN32_GZIP_DATA: +- case STREAM_GZIP_DATA: +- case STREAM_SPARSE_GZIP_DATA: +- case STREAM_SIGNED_DIGEST: +- +- /* Do nothing */ +- break; +- + case STREAM_MD5_DIGEST: + bin_to_base64(digest, sizeof(digest), (char *)sd->msg, CRYPTO_DIGEST_MD5_SIZE, true); + Dmsg2(400, "send inx=%d MD5=%s\n", jcr->JobFiles, digest); +@@ -256,9 +243,10 @@ + Dmsg2(20, "bfiled>bdird: SHA512 len=%d: msg=%s\n", dir->msglen, dir->msg); + break; + ++ /* Ignore everything else */ + default: +- Pmsg2(0, "None of above!!! stream=%d data=%s\n", stream,sd->msg); + break; ++ + } /* end switch */ + } /* end while bnet_get */ + set_jcr_job_status(jcr, JS_Terminated); diff --git a/Branch-2.2/bacula/patches/README b/Branch-2.2/bacula/patches/README new file mode 100644 index 0000000000..ccf85a2627 --- /dev/null +++ b/Branch-2.2/bacula/patches/README @@ -0,0 +1,26 @@ + +This directory contains patches to the *previous* released version +of Bacula. As they are developed, they will be put into this directory +so that they are all in one place, and you can easily find all +the patches that exist at a particular time. + +When a new official version of Bacula is released (for example 1.36.0), +the patches for the previous release (for example 1.34) will be +placed in a subdirectory, and patches for the new version will +go into the main directory. + +The file "patches-version" (for example "patches-1.34.6") will +contain a summary of each of the patches and when it was created, +so that you can easily see the order and the purpose of each patch. +Sometimes there may be dependencies between the patches -- i.e. a +later patch needs a prior patch to be applied first. I'll try to +note those, but cannot guarantee it. + + +It contains also interesting/experimental patches from users. For examples, + - SpoolSize defined per job (backup tunning) + - fix for maxwaittime option + - new maxschedruntime option + - etc.. + +You can find them on testing sub-directory. diff --git a/Branch-2.2/bacula/patches/dvd+rw-tools-5.21.4.10.8.bacula.patch b/Branch-2.2/bacula/patches/dvd+rw-tools-5.21.4.10.8.bacula.patch new file mode 100644 index 0000000000..92e9b0568f --- /dev/null +++ b/Branch-2.2/bacula/patches/dvd+rw-tools-5.21.4.10.8.bacula.patch @@ -0,0 +1,86 @@ +diff -u dvd+rw-tools-5.21.4.10.8/growisofs.c dvd+rw-tools-5.22/growisofs.c +--- dvd+rw-tools-5.21.4.10.8/growisofs.c 2004-08-25 01:02:29.000000000 +0200 ++++ dvd+rw-tools-5.22/growisofs.c 2005-10-16 22:48:02.000000000 +0200 +@@ -315,12 +315,17 @@ + * - Linux: fix for kernel version 2.6>=8, 2.6.8 itself is deficient, + * but the problem can be worked around by installing this version + * set-root-uid; ++ * 5.22: (by Nicolas Boichat, Bacula project) ++ * - Allow session to cross 4GB boundary regardless of medium type ++ * (don't need to have a DL media) ++ * - Add a -F option (used instead of -M or -Z), which displays next_session ++ * offset and capacity (free space = next_session - capacity). + */ + #define PRINT_VERSION(cmd) do { \ + char *s=strrchr((cmd),'/'); \ + s ? s++ : (s=(cmd)); \ + printf ("* %.*sgrowisofs by ,"\ +- " version 5.21,\n",(int)(s-(cmd)),(cmd)); \ ++ " version 5.22,\n",(int)(s-(cmd)),(cmd)); \ + } while (0) + + #define _LARGEFILE_SOURCE +@@ -1720,6 +1725,18 @@ + else in_device = argv[++i]; + dev_found = 'Z'; + } ++ else if (argv[i][1] == 'F') ++ { if (len > 2) in_device = argv[i]+2; ++ else in_device = argv[++i]; ++ dev_found = 'F'; ++ dry_run = 1; /* NEVER write anything with -F */ ++ } ++ else if (!strncmp(opt,"-free-space",11)) ++ { if (len > 11) in_device = opt+11; ++ else in_device = argv[++i]; ++ dev_found = 'F'; ++ dry_run = 1; /* NEVER write anything with -F */ ++ } + else if (!strcmp(opt,"-poor-man")) + { if (poor_man<0) poor_man = 1; + continue; +@@ -1908,7 +1925,9 @@ + fprintf (stderr," you most likely want to use -Z option.\n"), + exit (FATAL_START(errno)); + +- if (dev_found == 'M') ++ if ((dev_found == 'M') || ++ ((dev_found == 'F') && !(mmc_profile&0x10000)) && (the_buffer[0] || the_buffer[1] || the_buffer[2])) ++ /* -F : The medium is not blank, there is a fs on it (the_buffer[0,1 or 2] != 0), so compute next_session. */ + { if (memcmp (the_buffer,"\1CD001",6)) + fprintf (stderr,":-( %s doesn't look like isofs...\n", + in_device), exit(FATAL_START(EMEDIUMTYPE)); +@@ -1932,7 +1951,7 @@ + exit(FATAL_START(EINVAL)); + } + else if (next_session > (0x200000-0x5000)) /* 4GB/2K-40MB/2K */ +- if ((mmc_profile&0xFFFF)!=0x2B || !no_4gb_check) ++ if (!no_4gb_check) + fprintf (stderr,":-( next session would cross 4GB " + "boundary, aborting...\n"), + exit (FATAL_START(ENOSPC)); +@@ -1974,7 +1993,7 @@ + exit (FATAL_START(EINVAL)); + + if (imgfd<0) +- { if (mkisofs_argc==1) ++ { if ((mkisofs_argc==1) && (dev_found != 'F')) + fprintf (stderr,"%s: no mkisofs options specified, " + "aborting...\n",argv[0]), + exit (FATAL_START(EINVAL)); +@@ -2114,6 +2133,15 @@ + } + } + ++ if (dev_found == 'F') { ++ off64_t capacity = 0; ++ printf("next_session=%lld\n", next_session*CD_BLOCK); ++ if (ioctl_handle!=INVALID_HANDLE) ++ capacity = get_capacity (ioctl_handle); ++ printf("capacity=%lld\n", capacity); ++ exit(0); ++ } ++ + if (imgfd>=0) + { quiet--; + if (builtin_dd (imgfd,out_fd,next_session*CD_BLOCK) < 0) diff --git a/Branch-2.2/bacula/patches/dvd+rw-tools-6.1.bacula.patch b/Branch-2.2/bacula/patches/dvd+rw-tools-6.1.bacula.patch new file mode 100644 index 0000000000..6785f7fb71 --- /dev/null +++ b/Branch-2.2/bacula/patches/dvd+rw-tools-6.1.bacula.patch @@ -0,0 +1,85 @@ +--- dvd+rw-tools-6.1.old/growisofs.c 2006-01-26 22:16:54.000000000 +0100 ++++ dvd+rw-tools-6.1/growisofs.c 2006-02-15 00:00:44.000000000 +0100 +@@ -355,12 +355,17 @@ + * - Treat only x73xx OPC errors as fatal; + * - Fix typo in -speed scaling code; + * - permit tracksize to be not divisible by 32KB in DAO mode; ++ * 6.1.1: (by Nicolas Boichat, Bacula project) ++ * - Allow session to cross 4GB boundary regardless of medium type ++ * (don't need to have a DL media) ++ * - Add a -F option (used instead of -M or -Z), which displays next_session ++ * offset and capacity (free space = next_session - capacity). + */ + #define PRINT_VERSION(cmd) do { \ + char *s=strrchr((cmd),'/'); \ + s ? s++ : (s=(cmd)); \ + printf ("* %.*sgrowisofs by ,"\ +- " version 6.1,\n",(int)(s-(cmd)),(cmd)); \ ++ " version 6.1.1,\n",(int)(s-(cmd)),(cmd)); \ + } while (0) + + #define _LARGEFILE_SOURCE +@@ -2329,6 +2334,18 @@ + else in_device = argv[++i]; + dev_found = 'Z'; + } ++ else if (argv[i][1] == 'F') ++ { if (len > 2) in_device = argv[i]+2; ++ else in_device = argv[++i]; ++ dev_found = 'F'; ++ dry_run = 1; /* NEVER write anything with -F */ ++ } ++ else if (!strncmp(opt,"-free-space",11)) ++ { if (len > 11) in_device = opt+11; ++ else in_device = argv[++i]; ++ dev_found = 'F'; ++ dry_run = 1; /* NEVER write anything with -F */ ++ } + else if (!strcmp(opt,"-poor-man")) + { if (poor_man<0) poor_man = 1; + continue; +@@ -2542,7 +2559,9 @@ + fprintf (stderr," you most likely want to use -Z option.\n"), + exit (FATAL_START(errno)); + +- if (dev_found == 'M') ++ if ((dev_found == 'M') || ++ ((dev_found == 'F') && !(mmc_profile&0x10000)) && (saved_descriptors[0].type[0] || saved_descriptors[0].type[1] || saved_descriptors[0].type[2])) ++ /* -F : The medium is not blank, there is a fs on it (the_buffer[0,1 or 2] != 0), so compute next_session. */ + { if (memcmp (saved_descriptors[0].type,"\1CD001",6)) + fprintf (stderr,":-( %s doesn't look like isofs...\n", + in_device), exit(FATAL_START(EMEDIUMTYPE)); +@@ -2565,7 +2584,7 @@ + exit(FATAL_START(EINVAL)); + } + else if (next_session > (0x200000-0x5000)) /* 4GB/2K-40MB/2K */ +- if ((mmc_profile&0xFFFF)!=0x2B || !no_4gb_check) ++ if (!no_4gb_check) + fprintf (stderr,":-( next session would cross 4GB " + "boundary, aborting...\n"), + exit (FATAL_START(ENOSPC)); +@@ -2608,7 +2627,7 @@ + exit (FATAL_START(EINVAL)); + + if (imgfd<0) +- { if (mkisofs_argc==1) ++ { if ((mkisofs_argc==1) && (dev_found != 'F')) + fprintf (stderr,"%s: no mkisofs options specified, " + "aborting...\n",argv[0]), + exit (FATAL_START(EINVAL)); +@@ -2880,6 +2899,15 @@ + } + } + ++ if (dev_found == 'F') { ++ off64_t capacity = 0; ++ printf("next_session=%lld\n", next_session*CD_BLOCK); ++ if (ioctl_handle!=INVALID_HANDLE) ++ capacity = get_capacity (ioctl_handle); ++ printf("capacity=%lld\n", capacity); ++ exit(0); ++ } ++ + if (imgfd>=0) + { quiet--; + if (builtin_dd (imgfd,out_fd,next_session*CD_BLOCK) < 0) diff --git a/Branch-2.2/bacula/patches/testing/batch-bench.ods b/Branch-2.2/bacula/patches/testing/batch-bench.ods new file mode 100644 index 0000000000..ac1bba6991 Binary files /dev/null and b/Branch-2.2/bacula/patches/testing/batch-bench.ods differ diff --git a/Branch-2.2/bacula/patches/testing/batch-insert.readme b/Branch-2.2/bacula/patches/testing/batch-insert.readme new file mode 100644 index 0000000000..c17fed9c9b --- /dev/null +++ b/Branch-2.2/bacula/patches/testing/batch-insert.readme @@ -0,0 +1,40 @@ +From: Eric Bollengier + +This patch allow you to use Batch insert mode with all database. +It have tested this with postgresql 8.1 and mysql 4.1 and sqlite. +You have to add to src/baconfig.h +#define HAVE_BATCH_FILE_INSERT 1 + +and you MUST change some indexes. + +mysql) + +ALTER TABLE Filename DROP INDEX Name; +ALTER TABLE Filename ADD UNIQUE (Name(255)); + +ALTER TABLE Path DROP INDEX Path; +ALTER TABLE Path ADD UNIQUE (Path(255)); + +postgresql) + +DROP INDEX filename_name_idx; +CREATE UNIQUE INDEX filename_name_idx on filename (name); + +DROP INDEX path_name_idx; +CREATE UNIQUE INDEX path_name_idx on path (path); + +sqlite) + +drop index inx2; +drop index inx1; +CREATE UNIQUE INDEX path_name_idx on path (path); +CREATE UNIQUE INDEX filename_name_idx on filename (name); + +$Log$ +Revision 1.2 2007/01/01 16:52:05 ricozz +ebl add #define in readme +ebl works with 2.0.0 + +Revision 1.1 2006/12/20 18:47:42 ricozz +ebl works with 1.39.30 + diff --git a/Branch-2.2/bacula/patches/testing/bregsed.c b/Branch-2.2/bacula/patches/testing/bregsed.c new file mode 100644 index 0000000000..5499a23da5 --- /dev/null +++ b/Branch-2.2/bacula/patches/testing/bregsed.c @@ -0,0 +1,156 @@ +/* + * Test program for testing regular expressions. + * + * Kern Sibbald, MMVI + * + */ +/* + Bacula® - The Network Backup Solution + + Copyright (C) 2006-2006 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 two of the GNU General Public + License as published by the Free Software Foundation and included + 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 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 John Walker. + The licensor of Bacula is the Free Software Foundation Europe + (FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zürich, + Switzerland, email:ftf@fsfeurope.org. +*/ + +/* + * If you define BACULA_REGEX, bregex will be built with the + * Bacula bregex library, which is the same code that we + * use on Win32, thus using Linux, you can test your Win32 + * expressions. Otherwise, this program will link with the + * system library routines. + */ +//#define BACULA_REGEX + +#include "bacula.h" +#include +#include "lib/breg.h" + + +static void usage() +{ + fprintf(stderr, +"\n" +"Usage: bregex [-d debug_level] -f -e /test/test2/\n" +" -f specify file of data to be matched\n" +" -e specify expression\n" +" -? print this message.\n" +"\n"); + + exit(1); +} + + +int main(int argc, char *const *argv) +{ + regex_t preg; + char prbuf[500]; + char *fname = NULL; + char *expr = NULL; + int rc, ch; + char data[1000]; + char pat[500]; + FILE *fd; + bool match_only = true; + int lineno; + bool no_linenos = false; + + + setlocale(LC_ALL, ""); + bindtextdomain("bacula", LOCALEDIR); + textdomain("bacula"); + + while ((ch = getopt(argc, argv, "d:f:e:")) != -1) { + switch (ch) { + case 'd': /* set debug level */ + debug_level = atoi(optarg); + if (debug_level <= 0) { + debug_level = 1; + } + break; + + case 'f': /* data */ + fname = optarg; + break; + + case 'e': + expr = optarg; + break; + + case '?': + default: + usage(); + + } + } + argc -= optind; + argv += optind; + + if (!fname) { + printf("A data file must be specified.\n"); + usage(); + } + + if (!expr) { + printf("An expression must be specified.\n"); + usage(); + } + + OSDependentInit(); + + BREGEXP *reg; + + reg = new_bregexp(expr); + + if (!reg) { + printf("Can't use %s as 'sed' expression\n", expr); + exit (1); + } + + fd = fopen(fname, "r"); + if (!fd) { + printf(_("Could not open data file: %s\n"), fname); + exit(1); + } + + while (fgets(data, sizeof(data)-1, fd)) { + strip_trailing_newline(data); + reg->replace(data); + printf("%s\n", reg->result); + } + fclose(fd); + free_bregexp(reg); + exit(0); +} +/* + TODO: + - ajout /g + + - tests + * test avec /i (visiblement il ne marche pas sur bregexp.c) + * test avec un sed et faire un diff + * test avec une boucle pour voir les fuites + * tester les cas possibles pour la compilation d'une expression + - manque le depart, le milieu, la fin, utilise des groupes sans + reference... + +*/ diff --git a/Branch-2.2/bacula/patches/testing/bug_897.patch b/Branch-2.2/bacula/patches/testing/bug_897.patch new file mode 100644 index 0000000000..97665960c0 --- /dev/null +++ b/Branch-2.2/bacula/patches/testing/bug_897.patch @@ -0,0 +1,133 @@ +Index: src/filed/job.c +=================================================================== +--- src/filed/job.c (revision 5235) ++++ src/filed/job.c (working copy) +@@ -266,9 +266,6 @@ + bnet_sig(jcr->store_bsock, BNET_TERMINATE); + } + +- /* Run the after job */ +- run_scripts(jcr, jcr->RunScripts, "ClientAfterJob"); +- + generate_daemon_event(jcr, "JobEnd"); + + dequeue_messages(jcr); /* send any queued messages */ +@@ -1321,7 +1318,25 @@ + return bnet_fsend(dir, OKstore); + } + ++static void job_end(JCR *jcr) ++{ ++ char ed1[50], ed2[50]; + ++ /* Inform Storage daemon that we are done */ ++ if (jcr->store_bsock) { ++ bnet_sig(jcr->store_bsock, BNET_TERMINATE); ++ } ++ ++ /* Run the after job */ ++ run_scripts(jcr, jcr->RunScripts, "ClientAfterJob"); ++ ++ bnet_fsend(jcr->dir_bsock, EndJob, jcr->JobStatus, jcr->JobFiles, ++ edit_uint64(jcr->ReadBytes, ed1), ++ edit_uint64(jcr->JobBytes, ed2), jcr->Errors, (int)jcr->VSS, ++ jcr->pki_encrypt); ++ Dmsg1(110, "End FD msg: %s\n", jcr->dir_bsock->msg); ++} ++ + /* + * Do a backup. + */ +@@ -1331,15 +1346,13 @@ + BSOCK *sd = jcr->store_bsock; + int ok = 0; + int SDJobStatus; +- char ed1[50], ed2[50]; +- bool bDoVSS = false; + + #if defined(WIN32_VSS) + // capture state here, if client is backed up by multiple directors + // and one enables vss and the other does not then enable_vss can change + // between here and where its evaluated after the job completes. +- bDoVSS = g_pVSSClient && enable_vss; +- if (bDoVSS) { ++ jcr->VSS = g_pVSSClient && enable_vss; ++ if (jcr->VSS) { + /* Run only one at a time */ + P(vss_mutex); + } +@@ -1395,7 +1408,7 @@ + + #if defined(WIN32_VSS) + /* START VSS ON WIN 32 */ +- if (bDoVSS) { ++ if (jcr->VSS) { + if (g_pVSSClient->InitializeForBackup()) { + /* tell vss which drives to snapshot */ + char szWinDriveLetters[27]; +@@ -1488,7 +1501,7 @@ + #if defined(WIN32_VSS) + /* STOP VSS ON WIN 32 */ + /* tell vss to close the backup session */ +- if (bDoVSS) { ++ if (jcr->VSS) { + if (g_pVSSClient->CloseBackup()) { + /* inform user about writer states */ + for (int i=0; i<(int)g_pVSSClient->GetWriterCount(); i++) { +@@ -1504,12 +1517,8 @@ + } + #endif + +- bnet_fsend(dir, EndJob, jcr->JobStatus, jcr->JobFiles, +- edit_uint64(jcr->ReadBytes, ed1), +- edit_uint64(jcr->JobBytes, ed2), jcr->Errors, (int)bDoVSS, +- jcr->pki_encrypt); +- Dmsg1(110, "End FD msg: %s\n", dir->msg); +- ++ job_end(jcr); ++ + return 0; /* return and stop command loop */ + } + +@@ -1585,12 +1594,7 @@ + + bnet_sig(dir, BNET_EOD); + +- /* Send termination status back to Dir */ +- bnet_fsend(dir, EndJob, jcr->JobStatus, jcr->JobFiles, +- edit_uint64(jcr->ReadBytes, ed1), +- edit_uint64(jcr->JobBytes, ed2), jcr->Errors, 0, +- jcr->pki_encrypt); +- Dmsg1(110, "End FD msg: %s\n", dir->msg); ++ job_end(jcr); + + /* Inform Director that we are done */ + bnet_sig(dir, BNET_TERMINATE); +@@ -1696,13 +1700,9 @@ + if (jcr->Errors) { + set_jcr_job_status(jcr, JS_ErrorTerminated); + } +- /* Send termination status back to Dir */ +- bnet_fsend(dir, EndJob, jcr->JobStatus, jcr->JobFiles, +- edit_uint64(jcr->ReadBytes, ed1), +- edit_uint64(jcr->JobBytes, ed2), jcr->Errors, 0, +- jcr->pki_encrypt); +- Dmsg1(110, "End FD msg: %s\n", dir->msg); + ++ job_end(jcr); ++ + /* Inform Director that we are done */ + bnet_sig(dir, BNET_TERMINATE); + +Index: src/jcr.h +=================================================================== +--- src/jcr.h (revision 5235) ++++ src/jcr.h (working copy) +@@ -297,6 +297,7 @@ + int32_t pki_session_encoded_size; /* Size of DER-encoded pki_session */ + POOLMEM *crypto_buf; /* Encryption/Decryption buffer */ + DIRRES* director; /* Director resource */ ++ bool VSS; /* VSS used by FD */ + #endif /* FILE_DAEMON */ + + diff --git a/Branch-2.2/bacula/patches/testing/clientrunbeforejob_can_generate_include_exclude_list.patch b/Branch-2.2/bacula/patches/testing/clientrunbeforejob_can_generate_include_exclude_list.patch new file mode 100644 index 0000000000..5e1d3d6239 --- /dev/null +++ b/Branch-2.2/bacula/patches/testing/clientrunbeforejob_can_generate_include_exclude_list.patch @@ -0,0 +1,46 @@ +--- bacula/src/dird/backup.c 2007-02-20 14:28:55.000000000 +0100 ++++ bacula.org/src/dird/backup.c 2007-02-20 14:27:54.000000000 +0100 +@@ -171,18 +171,6 @@ + set_jcr_job_status(jcr, JS_Running); + fd = jcr->file_bsock; + +- if (!send_include_list(jcr)) { +- goto bail_out; +- } +- +- if (!send_exclude_list(jcr)) { +- goto bail_out; +- } +- +- if (!send_level_command(jcr)) { +- goto bail_out; +- } +- + /* + * send Storage daemon address to the File daemon + */ +@@ -205,10 +193,24 @@ + goto bail_out; + } + ++ /* setup job */ ++ ++ if (!send_level_command(jcr)) { ++ goto bail_out; ++ } ++ + if (!send_runscripts_commands(jcr)) { + goto bail_out; + } + ++ if (!send_include_list(jcr)) { ++ goto bail_out; ++ } ++ ++ if (!send_exclude_list(jcr)) { ++ goto bail_out; ++ } ++ + /* + * We re-update the job start record so that the start + * time is set after the run before job. This avoids diff --git a/Branch-2.2/bacula/patches/testing/clientrunbeforejob_can_generate_include_exclude_list.readme b/Branch-2.2/bacula/patches/testing/clientrunbeforejob_can_generate_include_exclude_list.readme new file mode 100644 index 0000000000..fae53c16b5 --- /dev/null +++ b/Branch-2.2/bacula/patches/testing/clientrunbeforejob_can_generate_include_exclude_list.readme @@ -0,0 +1,16 @@ +From: Eric Bollengier + +This patch allow you to create include/exclude file list +with ClientRunBeforeJob command. + +Job { +... + ClientRunBeforeJob = "gen_exclude.pl /tmp/lst.exc" +} + +FileSet { +... + Include { + File="\\| | +| FD | | PROXY | | | PROXY | (3) +-------+-------+ +| +-------> <-+---> | | ++--------+ (6) +-^-----+ (2) | | +-------v-------+ + /-\ | | | (7) | | + | | | +-----> STORAGE | + | | | | | | + Initiate backup | | +-------+ +---------------+ + --------------+ | + (1) Network + + +(1) & (2) BEGIN Backup +(3) Bconsole like - Run command +(4) & (5) DIR -> (PROX <-> PROX) -> FD connection (fileset, storage..) +(6) & (7) FD -> (PROX <-> PROX) -> SD + + + +Bconsole : + - Ajouter l'historique dans la bconsole + - Ajouter une commande pour bloquer un drive + +Sauvegarde SAN : + - Avoir un SD sur chaque FD + - Avoir une serie de script qui : + * bascule le lecteur en local + * lance le SD + * le script de mtx doit faire ses demandes au director sur + un autochanger commun + +Gestion des stats : + - Ajouter la gestion des stats dans le client et le sd + - Ajouter un M_STATS dans la gestion des messages + - générer un format simple UNIXSTAMP|label|unit|value + - possibilité d'ajouter ça dans la base de donnée ou dans rrd + + +TODO +---- + +bweb : + + - Ajouter la liste des fichiers (quand il n'y en a pas trop) + - Ajouter la liste des medias qui vont expirer ? + - Ajouter un mode qui compte le nombre de fichier sous bfileview + - Integrer brestore en mode javascript + o ajouter une api + .ls_dir(jobid,pathid) + .ls_file(jobid,pathid) + .get_pathid(jobid,"/") + .genbsr (fileid, fileid, fileid, fileid, fileid...) + +bacula : + + - Faire un test de non regression avec pleins d'erreur + o pb inclusion (distante, locale) + o pb exclusion (distante, locale) + o pb execution de commande + - Utiliser PQescapeStringConn a la place de PQescapeString + - Utiliser la lib pcre + - Rendre les scripts bacula-ctl-xxx LSB + x Pouvoir utiliser les uid numeriques dans le backup des acl + - Avoir un script qui dump la configuration pour faire + des bug reports + - modifier l'organisation de la table version (pour pouvoir ajouter + les versions de bweb par exemple) + diff --git a/Branch-2.2/bacula/patches/testing/maxschedruntime.patch b/Branch-2.2/bacula/patches/testing/maxschedruntime.patch new file mode 100644 index 0000000000..1c122a4aea --- /dev/null +++ b/Branch-2.2/bacula/patches/testing/maxschedruntime.patch @@ -0,0 +1,305 @@ +Index: src/dird/getmsg.c +=================================================================== +--- src/dird/getmsg.c (révision 4696) ++++ src/dird/getmsg.c (copie de travail) +@@ -70,6 +70,33 @@ + + static char OK_msg[] = "1000 OK\n"; + ++ ++void set_jcr_sd_job_status(JCR *jcr, int SDJobStatus) ++{ ++ bool set_waittime=false; ++ Dmsg2(800, "set_jcr_sd_job_status(%s, %c)\n", jcr->Job, SDJobStatus); ++ /* if wait state is new, we keep current time for watchdog MaxWaitTime */ ++ switch (SDJobStatus) { ++ case JS_WaitMedia: ++ case JS_WaitMount: ++ case JS_WaitMaxJobs: ++ set_waittime = true; ++ default: ++ break; ++ } ++ ++ if (job_waiting(jcr)) { ++ set_waittime = false; ++ } ++ ++ if (set_waittime) { ++ /* set it before JobStatus */ ++ Dmsg0(800, "Setting wait_time\n"); ++ jcr->wait_time = time(NULL); ++ } ++ jcr->SDJobStatus = SDJobStatus; ++} ++ + /* + * Get a message + * Call appropriate processing routine +@@ -230,7 +257,7 @@ + int JobStatus; + char Job[MAX_NAME_LENGTH]; + if (sscanf(bs->msg, Job_status, &Job, &JobStatus) == 2) { +- jcr->SDJobStatus = JobStatus; /* current status */ ++ set_jcr_sd_job_status(jcr,JobStatus); /* current status */ + } else { + Emsg1(M_ERROR, 0, _("Malformed message: %s\n"), bs->msg); + } +Index: src/dird/job.c +=================================================================== +--- src/dird/job.c (révision 4696) ++++ src/dird/job.c (copie de travail) +@@ -41,8 +41,9 @@ + static void *job_thread(void *arg); + static void job_monitor_watchdog(watchdog_t *self); + static void job_monitor_destructor(watchdog_t *self); +-static bool job_check_maxwaittime(JCR *control_jcr, JCR *jcr); +-static bool job_check_maxruntime(JCR *control_jcr, JCR *jcr); ++static bool job_check_maxwaittime(JCR *jcr); ++static bool job_check_maxruntime(JCR *jcr); ++static bool job_check_maxschedruntime(JCR *jcr); + + /* Imported subroutines */ + extern void term_scheduler(); +@@ -250,6 +251,11 @@ + Jmsg(jcr, M_FATAL, 0, _("Job canceled because max start delay time exceeded.\n")); + } + ++ if (job_check_maxschedruntime(jcr)) { ++ set_jcr_job_status(jcr, JS_Canceled); ++ Jmsg(jcr, M_FATAL, 0, _("Job canceled because max sched run time exceeded.\n")); ++ } ++ + /* TODO : check if it is used somewhere */ + if (jcr->job->RunScripts == NULL) { + Dmsg0(200, "Warning, job->RunScripts is empty\n"); +@@ -450,15 +456,20 @@ + } + + /* check MaxWaitTime */ +- if (job_check_maxwaittime(control_jcr, jcr)) { ++ if (job_check_maxwaittime(jcr)) { + set_jcr_job_status(jcr, JS_Canceled); + Jmsg(jcr, M_FATAL, 0, _("Max wait time exceeded. Job canceled.\n")); + cancel = true; + /* check MaxRunTime */ +- } else if (job_check_maxruntime(control_jcr, jcr)) { ++ } else if (job_check_maxruntime(jcr)) { + set_jcr_job_status(jcr, JS_Canceled); + Jmsg(jcr, M_FATAL, 0, _("Max run time exceeded. Job canceled.\n")); + cancel = true; ++ /* check MaxSchedRunTime */ ++ } else if (job_check_maxschedruntime(jcr)) { ++ set_jcr_job_status(jcr, JS_Canceled); ++ Jmsg(jcr, M_FATAL, 0, _("Max sched run time exceeded. Job canceled.\n")); ++ cancel = true; + } + + if (cancel) { +@@ -479,29 +490,30 @@ + * Check if the maxwaittime has expired and it is possible + * to cancel the job. + */ +-static bool job_check_maxwaittime(JCR *control_jcr, JCR *jcr) ++static bool job_check_maxwaittime(JCR *jcr) + { + bool cancel = false; + JOB *job = jcr->job; + +- if (job_canceled(jcr)) { +- return false; /* already canceled */ ++ if (!job_waiting(jcr)) { ++ return false; + } + if (job->MaxWaitTime == 0 && job->FullMaxWaitTime == 0 && + job->IncMaxWaitTime == 0 && job->DiffMaxWaitTime == 0) { + return false; + } ++ Dmsg3(20, "check maxwaittime %u - %u >= %u\n", watchdog_time, jcr->wait_time, job->MaxWaitTime); + if (jcr->JobLevel == L_FULL && job->FullMaxWaitTime != 0 && +- (watchdog_time - jcr->start_time) >= job->FullMaxWaitTime) { ++ (watchdog_time - jcr->wait_time) >= job->FullMaxWaitTime) { + cancel = true; + } else if (jcr->JobLevel == L_DIFFERENTIAL && job->DiffMaxWaitTime != 0 && +- (watchdog_time - jcr->start_time) >= job->DiffMaxWaitTime) { ++ (watchdog_time - jcr->wait_time) >= job->DiffMaxWaitTime) { + cancel = true; + } else if (jcr->JobLevel == L_INCREMENTAL && job->IncMaxWaitTime != 0 && +- (watchdog_time - jcr->start_time) >= job->IncMaxWaitTime) { ++ (watchdog_time - jcr->wait_time) >= job->IncMaxWaitTime) { + cancel = true; + } else if (job->MaxWaitTime != 0 && +- (watchdog_time - jcr->start_time) >= job->MaxWaitTime) { ++ (watchdog_time - jcr->wait_time) >= job->MaxWaitTime) { + cancel = true; + } + +@@ -512,7 +524,7 @@ + * Check if maxruntime has expired and if the job can be + * canceled. + */ +-static bool job_check_maxruntime(JCR *control_jcr, JCR *jcr) ++static bool job_check_maxruntime(JCR *jcr) + { + if (jcr->job->MaxRunTime == 0 || job_canceled(jcr)) { + return false; +@@ -527,6 +539,24 @@ + } + + /* ++ * Check if MaxSchedRunTime has expired and if the job can be ++ * canceled. ++ */ ++static bool job_check_maxschedruntime(JCR *jcr) ++{ ++ if (jcr->job->MaxSchedRunTime == 0 || job_canceled(jcr)) { ++ return false; ++ } ++ if ((watchdog_time - jcr->sched_time) < jcr->job->MaxSchedRunTime) { ++ Dmsg3(200, "Job %p (%s) with MaxSchedRunTime %d not expired\n", ++ jcr, jcr->Job, jcr->job->MaxSchedRunTime); ++ return false; ++ } ++ ++ return true; ++} ++ ++/* + * Get or create a Pool record with the given name. + * Returns: 0 on error + * poolid if OK +Index: src/dird/dird_conf.c +=================================================================== +--- src/dird/dird_conf.c (révision 4696) ++++ src/dird/dird_conf.c (copie de travail) +@@ -281,6 +281,7 @@ + {"writebootstrap",store_dir, ITEM(res_job.WriteBootstrap), 0, 0, 0}, + {"writeverifylist",store_dir, ITEM(res_job.WriteVerifyList), 0, 0, 0}, + {"replace", store_replace, ITEM(res_job.replace), 0, ITEM_DEFAULT, REPLACE_ALWAYS}, ++ {"maxschedruntime", store_time, ITEM(res_job.MaxSchedRunTime), 0, 0, 0}, + {"maxruntime", store_time, ITEM(res_job.MaxRunTime), 0, 0, 0}, + {"fullmaxwaittime", store_time, ITEM(res_job.FullMaxWaitTime), 0, 0, 0}, + {"incrementalmaxwaittime", store_time, ITEM(res_job.IncMaxWaitTime), 0, 0, 0}, +@@ -627,6 +628,15 @@ + if (res->res_job.WriteBootstrap) { + sendit(sock, _(" --> WriteBootstrap=%s\n"), NPRT(res->res_job.WriteBootstrap)); + } ++ if (res->res_job.MaxRunTime) { ++ sendit(sock, _(" --> MaxRunTime=%u\n"), res->res_job.MaxRunTime); ++ } ++ if (res->res_job.MaxWaitTime) { ++ sendit(sock, _(" --> MaxWaitTime=%u\n"), res->res_job.MaxWaitTime); ++ } ++ if (res->res_job.MaxStartDelay) { ++ sendit(sock, _(" --> MaxStartDelay=%u\n"), res->res_job.MaxStartDelay); ++ } + if (res->res_job.storage) { + STORE *store; + foreach_alist(store, res->res_job.storage) { +Index: src/dird/dird_conf.h +=================================================================== +--- src/dird/dird_conf.h (révision 4696) ++++ src/dird/dird_conf.h (copie de travail) +@@ -371,6 +371,7 @@ + char *WriteVerifyList; /* List of changed files */ + }; + int replace; /* How (overwrite, ..) */ ++ utime_t MaxSchedRunTime; /* max run time in seconds from Scheduled time*/ + utime_t MaxRunTime; /* max run time in seconds */ + utime_t MaxWaitTime; /* max blocking time in seconds */ + utime_t FullMaxWaitTime; /* Max Full job wait time */ +Index: src/jcr.h +=================================================================== +--- src/jcr.h (révision 4696) ++++ src/jcr.h (copie de travail) +@@ -105,6 +105,22 @@ + jcr->JobStatus == JS_ErrorTerminated || \ + jcr->JobStatus == JS_FatalError) + ++#define job_waiting(jcr) \ ++ (jcr->JobStatus == JS_WaitFD || \ ++ jcr->JobStatus == JS_WaitSD || \ ++ jcr->JobStatus == JS_WaitMedia || \ ++ jcr->JobStatus == JS_WaitMount || \ ++ jcr->JobStatus == JS_WaitStoreRes || \ ++ jcr->JobStatus == JS_WaitJobRes || \ ++ jcr->JobStatus == JS_WaitClientRes|| \ ++ jcr->JobStatus == JS_WaitMaxJobs || \ ++ jcr->JobStatus == JS_WaitPriority || \ ++ jcr->SDJobStatus == JS_WaitMedia || \ ++ jcr->SDJobStatus == JS_WaitMount || \ ++ jcr->SDJobStatus == JS_WaitMaxJobs) ++ ++ ++ + #define foreach_jcr(jcr) \ + for (jcr=jcr_walk_start(); jcr; (jcr=jcr_walk_next(jcr)) ) + +@@ -166,6 +182,7 @@ + time_t start_time; /* when job actually started */ + time_t run_time; /* used for computing speed */ + time_t end_time; /* job end time */ ++ time_t wait_time; /* when job have started to wait */ + POOLMEM *client_name; /* client name */ + POOLMEM *RestoreBootstrap; /* Bootstrap file to restore */ + POOLMEM *stime; /* start time for incremental/differential */ +Index: src/lib/jcr.c +=================================================================== +--- src/lib/jcr.c (révision 4696) ++++ src/lib/jcr.c (copie de travail) +@@ -546,18 +546,54 @@ + + void set_jcr_job_status(JCR *jcr, int JobStatus) + { ++ bool set_waittime=false; ++ Dmsg2(800, "set_jcr_job_status(%s, %c)\n", jcr->Job, JobStatus); ++ /* if wait state is new, we keep current time for watchdog MaxWaitTime */ ++ switch (JobStatus) { ++ case JS_WaitFD: ++ case JS_WaitSD: ++ case JS_WaitMedia: ++ case JS_WaitMount: ++ case JS_WaitStoreRes: ++ case JS_WaitJobRes: ++ case JS_WaitClientRes: ++ case JS_WaitMaxJobs: ++ case JS_WaitPriority: ++ set_waittime = true; ++ default: ++ break; ++ } ++ ++ switch (jcr->JobStatus) { + /* + * For a set of errors, ... keep the current status + * so it isn't lost. For all others, set it. + */ +- switch (jcr->JobStatus) { + case JS_ErrorTerminated: + case JS_Error: + case JS_FatalError: + case JS_Differences: + case JS_Canceled: + break; ++ /* ++ * For a set of Wait situation, keep old time. ++ */ ++ case JS_WaitFD: ++ case JS_WaitSD: ++ case JS_WaitMedia: ++ case JS_WaitMount: ++ case JS_WaitStoreRes: ++ case JS_WaitJobRes: ++ case JS_WaitClientRes: ++ case JS_WaitMaxJobs: ++ case JS_WaitPriority: ++ set_waittime = false; /* keep old time */ + default: ++ if (set_waittime) { ++ /* set it before JobStatus */ ++ Dmsg0(800, "Setting wait_time\n"); ++ jcr->wait_time = time(NULL); ++ } + jcr->JobStatus = JobStatus; + } + } diff --git a/Branch-2.2/bacula/patches/testing/project-restore-attributes-only.patch b/Branch-2.2/bacula/patches/testing/project-restore-attributes-only.patch new file mode 100644 index 0000000000..3a89e3228a --- /dev/null +++ b/Branch-2.2/bacula/patches/testing/project-restore-attributes-only.patch @@ -0,0 +1,69 @@ +diff -Naur cvs/src/baconfig.h my/src/baconfig.h +--- cvs/src/baconfig.h 2006-12-30 17:01:49.000000000 +0100 ++++ my/src/baconfig.h 2006-12-30 17:01:34.000000000 +0100 +@@ -571,10 +571,12 @@ + * Replace codes needed in both file routines and non-file routines + * Job replace codes -- in "replace" + */ +-#define REPLACE_ALWAYS 'a' +-#define REPLACE_IFNEWER 'w' +-#define REPLACE_NEVER 'n' +-#define REPLACE_IFOLDER 'o' ++#define REPLACE_ALWAYS 'a' ++#define REPLACE_IFNEWER 'w' ++#define REPLACE_NEVER 'n' ++#define REPLACE_IFOLDER 'o' ++#define REPLACE_ATTR_ALWAYS 'r' ++#define REPLACE_ATTR_IFEXISTS 's' + + /* This probably should be done on a machine by machine basis, but it works */ + /* This is critical for the smartalloc routines to properly align memory */ +diff -Naur cvs/src/dird/dird_conf.c my/src/dird/dird_conf.c +--- cvs/src/dird/dird_conf.c 2006-12-22 20:47:00.000000000 +0100 ++++ my/src/dird/dird_conf.c 2006-12-30 17:30:42.000000000 +0100 +@@ -467,6 +467,8 @@ + {"ifnewer", REPLACE_IFNEWER}, + {"ifolder", REPLACE_IFOLDER}, + {"never", REPLACE_NEVER}, ++ {"attributes", REPLACE_ATTR_ALWAYS}, ++ {"attributesifexists", REPLACE_ATTR_IFEXISTS}, + {NULL, 0} + }; + +diff -Naur cvs/src/filed/restore.c my/src/filed/restore.c +--- cvs/src/filed/restore.c 2006-12-21 13:53:48.000000000 +0100 ++++ my/src/filed/restore.c 2006-12-30 17:22:29.000000000 +0100 +@@ -383,6 +383,12 @@ + extract = true; + } + #endif ++ if (jcr->replace == REPLACE_ATTR_ALWAYS || ++ jcr->replace == REPLACE_ATTR_IFEXISTS) ++ { ++ extract = false; /* we just want attributes */ ++ } ++ + if (!extract) { + /* set attributes now because file will not be extracted */ + set_attributes(jcr, attr, &bfd); +diff -Naur cvs/src/findlib/create_file.c my/src/findlib/create_file.c +--- cvs/src/findlib/create_file.c 2006-12-20 20:48:59.000000000 +0100 ++++ my/src/findlib/create_file.c 2006-12-30 17:29:17.000000000 +0100 +@@ -135,9 +135,17 @@ + Qmsg(jcr, M_SKIPPED, 0, _("File skipped. Already exists: %s\n"), attr->ofname); + return CF_SKIP; + ++ case REPLACE_ATTR_ALWAYS: ++ return CF_CREATED; ++ + case REPLACE_ALWAYS: + break; + } ++ } else { /* File doesn't exists anymore */ ++ if (replace == REPLACE_ATTR_IFEXISTS) { ++ Qmsg(jcr, M_SKIPPED, 0, _("File skipped. Doesn't exists anymore: %s\n"), attr->ofname); ++ return CF_SKIP; ++ } + } + switch (attr->type) { + case FT_RAW: /* raw device to be written */ diff --git a/Branch-2.2/bacula/patches/testing/project-restore-attributes-only.readme b/Branch-2.2/bacula/patches/testing/project-restore-attributes-only.readme new file mode 100644 index 0000000000..ae5368ca85 --- /dev/null +++ b/Branch-2.2/bacula/patches/testing/project-restore-attributes-only.readme @@ -0,0 +1,10 @@ +From: Eric Bollengier + +This patch implements the restore attributes only project. +To use it, you can select replace = attributes|attributesifexists +when you run your restore job. + +$Log$ +Revision 1.1 2006/12/30 17:18:33 ricozz +ebl Works with 1.39.35 + diff --git a/Branch-2.2/bacula/patches/testing/real_maxwaittime.patch b/Branch-2.2/bacula/patches/testing/real_maxwaittime.patch new file mode 100644 index 0000000000..e25a45db72 --- /dev/null +++ b/Branch-2.2/bacula/patches/testing/real_maxwaittime.patch @@ -0,0 +1,198 @@ +Index: src/dird/getmsg.c +=================================================================== +--- src/dird/getmsg.c (révision 4696) ++++ src/dird/getmsg.c (copie de travail) +@@ -70,6 +70,33 @@ + + static char OK_msg[] = "1000 OK\n"; + ++ ++void set_jcr_sd_job_status(JCR *jcr, int SDJobStatus) ++{ ++ bool set_waittime=false; ++ Dmsg2(800, "set_jcr_sd_job_status(%s, %c)\n", jcr->Job, SDJobStatus); ++ /* if wait state is new, we keep current time for watchdog MaxWaitTime */ ++ switch (SDJobStatus) { ++ case JS_WaitMedia: ++ case JS_WaitMount: ++ case JS_WaitMaxJobs: ++ set_waittime = true; ++ default: ++ break; ++ } ++ ++ if (job_waiting(jcr)) { ++ set_waittime = false; ++ } ++ ++ if (set_waittime) { ++ /* set it before JobStatus */ ++ Dmsg0(800, "Setting wait_time\n"); ++ jcr->wait_time = time(NULL); ++ } ++ jcr->SDJobStatus = SDJobStatus; ++} ++ + /* + * Get a message + * Call appropriate processing routine +@@ -230,7 +257,7 @@ + int JobStatus; + char Job[MAX_NAME_LENGTH]; + if (sscanf(bs->msg, Job_status, &Job, &JobStatus) == 2) { +- jcr->SDJobStatus = JobStatus; /* current status */ ++ set_jcr_sd_job_status(jcr,JobStatus); /* current status */ + } else { + Emsg1(M_ERROR, 0, _("Malformed message: %s\n"), bs->msg); + } +Index: src/dird/job.c +=================================================================== +--- src/dird/job.c (révision 4696) ++++ src/dird/job.c (copie de travail) +@@ -484,24 +484,25 @@ + bool cancel = false; + JOB *job = jcr->job; + +- if (job_canceled(jcr)) { +- return false; /* already canceled */ ++ if (!job_waiting(jcr)) { ++ return false; + } + if (job->MaxWaitTime == 0 && job->FullMaxWaitTime == 0 && + job->IncMaxWaitTime == 0 && job->DiffMaxWaitTime == 0) { + return false; + } ++ Dmsg3(20, "check maxwaittime %u - %u >= %u\n", watchdog_time, jcr->wait_time, job->MaxWaitTime); + if (jcr->JobLevel == L_FULL && job->FullMaxWaitTime != 0 && +- (watchdog_time - jcr->start_time) >= job->FullMaxWaitTime) { ++ (watchdog_time - jcr->wait_time) >= job->FullMaxWaitTime) { + cancel = true; + } else if (jcr->JobLevel == L_DIFFERENTIAL && job->DiffMaxWaitTime != 0 && +- (watchdog_time - jcr->start_time) >= job->DiffMaxWaitTime) { ++ (watchdog_time - jcr->wait_time) >= job->DiffMaxWaitTime) { + cancel = true; + } else if (jcr->JobLevel == L_INCREMENTAL && job->IncMaxWaitTime != 0 && +- (watchdog_time - jcr->start_time) >= job->IncMaxWaitTime) { ++ (watchdog_time - jcr->wait_time) >= job->IncMaxWaitTime) { + cancel = true; + } else if (job->MaxWaitTime != 0 && +- (watchdog_time - jcr->start_time) >= job->MaxWaitTime) { ++ (watchdog_time - jcr->wait_time) >= job->MaxWaitTime) { + cancel = true; + } + +Index: src/dird/dird_conf.c +=================================================================== +--- src/dird/dird_conf.c (révision 4696) ++++ src/dird/dird_conf.c (copie de travail) +@@ -627,6 +627,15 @@ + if (res->res_job.WriteBootstrap) { + sendit(sock, _(" --> WriteBootstrap=%s\n"), NPRT(res->res_job.WriteBootstrap)); + } ++ if (res->res_job.MaxRunTime) { ++ sendit(sock, _(" --> MaxRunTime=%u\n"), res->res_job.MaxRunTime); ++ } ++ if (res->res_job.MaxWaitTime) { ++ sendit(sock, _(" --> MaxWaitTime=%u\n"), res->res_job.MaxWaitTime); ++ } ++ if (res->res_job.MaxStartDelay) { ++ sendit(sock, _(" --> MaxStartDelay=%u\n"), res->res_job.MaxStartDelay); ++ } + if (res->res_job.storage) { + STORE *store; + foreach_alist(store, res->res_job.storage) { +Index: src/jcr.h +=================================================================== +--- src/jcr.h (révision 4696) ++++ src/jcr.h (copie de travail) +@@ -105,6 +105,22 @@ + jcr->JobStatus == JS_ErrorTerminated || \ + jcr->JobStatus == JS_FatalError) + ++#define job_waiting(jcr) \ ++ (jcr->JobStatus == JS_WaitFD || \ ++ jcr->JobStatus == JS_WaitSD || \ ++ jcr->JobStatus == JS_WaitMedia || \ ++ jcr->JobStatus == JS_WaitMount || \ ++ jcr->JobStatus == JS_WaitStoreRes || \ ++ jcr->JobStatus == JS_WaitJobRes || \ ++ jcr->JobStatus == JS_WaitClientRes|| \ ++ jcr->JobStatus == JS_WaitMaxJobs || \ ++ jcr->JobStatus == JS_WaitPriority || \ ++ jcr->SDJobStatus == JS_WaitMedia || \ ++ jcr->SDJobStatus == JS_WaitMount || \ ++ jcr->SDJobStatus == JS_WaitMaxJobs) ++ ++ ++ + #define foreach_jcr(jcr) \ + for (jcr=jcr_walk_start(); jcr; (jcr=jcr_walk_next(jcr)) ) + +@@ -166,6 +182,7 @@ + time_t start_time; /* when job actually started */ + time_t run_time; /* used for computing speed */ + time_t end_time; /* job end time */ ++ time_t wait_time; /* when job have started to wait */ + POOLMEM *client_name; /* client name */ + POOLMEM *RestoreBootstrap; /* Bootstrap file to restore */ + POOLMEM *stime; /* start time for incremental/differential */ +Index: src/lib/jcr.c +=================================================================== +--- src/lib/jcr.c (révision 4696) ++++ src/lib/jcr.c (copie de travail) +@@ -546,18 +546,54 @@ + + void set_jcr_job_status(JCR *jcr, int JobStatus) + { ++ bool set_waittime=false; ++ Dmsg2(800, "set_jcr_job_status(%s, %c)\n", jcr->Job, JobStatus); ++ /* if wait state is new, we keep current time for watchdog MaxWaitTime */ ++ switch (JobStatus) { ++ case JS_WaitFD: ++ case JS_WaitSD: ++ case JS_WaitMedia: ++ case JS_WaitMount: ++ case JS_WaitStoreRes: ++ case JS_WaitJobRes: ++ case JS_WaitClientRes: ++ case JS_WaitMaxJobs: ++ case JS_WaitPriority: ++ set_waittime = true; ++ default: ++ break; ++ } ++ ++ switch (jcr->JobStatus) { + /* + * For a set of errors, ... keep the current status + * so it isn't lost. For all others, set it. + */ +- switch (jcr->JobStatus) { + case JS_ErrorTerminated: + case JS_Error: + case JS_FatalError: + case JS_Differences: + case JS_Canceled: + break; ++ /* ++ * For a set of Wait situation, keep old time. ++ */ ++ case JS_WaitFD: ++ case JS_WaitSD: ++ case JS_WaitMedia: ++ case JS_WaitMount: ++ case JS_WaitStoreRes: ++ case JS_WaitJobRes: ++ case JS_WaitClientRes: ++ case JS_WaitMaxJobs: ++ case JS_WaitPriority: ++ set_waittime = false; /* keep old time */ + default: ++ if (set_waittime) { ++ /* set it before JobStatus */ ++ Dmsg0(800, "Setting wait_time\n"); ++ jcr->wait_time = time(NULL); ++ } + jcr->JobStatus = JobStatus; + } + } diff --git a/Branch-2.2/bacula/patches/testing/resubst.c b/Branch-2.2/bacula/patches/testing/resubst.c new file mode 100644 index 0000000000..5bba54d34e --- /dev/null +++ b/Branch-2.2/bacula/patches/testing/resubst.c @@ -0,0 +1,197 @@ +#include "bacula.h" +#include "bregex.h" + +/* s/toto(.)/titi$1/ + * toto est beau => titi est beau + * + */ + +/* re_match() + * compute_dest_len() + * check_pool_size() + * edit() + */ + +typedef struct { + char *subst; + char *motif; + int nmatch; + regex_t preg; +} breg_t ; + +breg_t *breg_new(char *regexp) +{ + Dmsg0(500, "breg: creating new breg_t object\n"); + RUNSCRIPT *cmd = (RUNSCRIPT *)malloc(sizeof(RUNSCRIPT)); + memset(cmd, 0, sizeof(RUNSCRIPT)); + cmd->reset_default(); + + return cmd; + +} + + +int compute_dest_len(char *fname, char *subst, + regmatch_t *pmatch, int nmatch) +{ + int len=0; + char *p; + int no; + + if (!fname || !subst || !pmatch || !nmatch) { + return 0; + } + + /* match failed ? */ + if (pmatch[0].rm_so < 0) { + return 0; + } + + for (p = subst++; *p ; p = subst++) { + /* match $1 \1 back references */ + if ((*p == '$' || *p == '\\') && ('0' <= *subst && *subst <= '9')) { + no = *subst++ - '0'; + + /* we check if the back reference exists */ + if (no < nmatch && pmatch[no].rm_so >= 0 && pmatch[no].rm_eo >= 0) { + len += pmatch[no].rm_eo - pmatch[no].rm_so; + } else { + return 0; /* back reference missing or reference number > nmatch */ + } + } else { + len++; + } + } + + /* $0 is replaced by subst */ + len -= pmatch[0].rm_eo - pmatch[0].rm_so; + len += strlen(fname) + 1; + + return len; +} + +/* /toto/titi/ + * preg + * subst + */ +bool extract_regexp(char *motif, regex_t *preg, POOLMEM **subst) +{ + if (!motif || !preg || !subst) { + return false; + } + /* extract 1st part */ + POOLMEM *dest = bstrdup(motif); + char sep = motif[0]; + char *search = motif + 1; + char *replace; + bool ok = false; + bool found_motif = false; + + while (*search && !ok) { + if (*search == sep && *dest == '\\') { + *dest++ = *++search; /* we skip separator */ + + } else if (*search == sep) { + *dest++ = '\0'; + if (found_motif) { /* already have found motif */ + ok = true; + } else { + replace = dest; /* get replaced string */ + found_motif = true; + } + } else { + *dest++ = *search++; + } + } + *dest = '\0'; /* in case of */ + + if (!ok || !found_motif) { + /* bad regexp */ + free(dest); + return false; + } + + + + + /* rechercher le 1er car sans \ devant */ + /* compiler la re dans preg */ + /* extraire le subst */ + /* verifier le nombre de reference */ +} + +/* dest is long enough */ +char *edit_subst(char *fname, char *subst, regmatch_t *pmatch, char *dest) +{ + int i; + char *p; + int no; + int len; + + /* il faut recopier fname dans dest + * on recopie le debut fname -> pmatch[0].rm_so + */ + + for (i = 0; i < pmatch[0].rm_so ; i++) { + dest[i] = fname[i]; + } + + /* on recopie le motif de remplacement (avec tous les $x) */ + + for (p = subst++; *p ; p = subst++) { + /* match $1 \1 back references */ + if ((*p == '$' || *p == '\\') && ('0' <= *subst && *subst <= '9')) { + no = *subst++ - '0'; + + len = pmatch[no].rm_eo - pmatch[no].rm_so; + bstrncpy(dest + i, fname + pmatch[no].rm_so, len); + i += len; + + } else { + dest[i++] = *p; + } + } + + strcpy(dest + i, fname + pmatch[0].rm_eo); + + return dest; +} + +/* return jcr->subst_fname or fname */ +char *fname_subst(JCR *jcr, char *fname) +{ + /* in JCR */ + regex_t preg; + char *pat="$"; + char *subst=".old"; + char *dest=NULL; + + int rc = regcomp(&preg, pat, REG_EXTENDED); + if (rc != 0) { + char prbuf[500]; + regerror(rc, &preg, prbuf, sizeof(prbuf)); + printf("Regex compile error: %s\n", prbuf); + return fname; + } + + const int nmatch = 30; + regmatch_t pmatch[nmatch]; + rc = regexec(&preg, fname, nmatch, pmatch, 0); + + if (!rc) { + char prbuf[500]; + regerror(rc, &preg, prbuf, sizeof(prbuf)); + printf("Regex error: %s\n", prbuf); + return fname; + } + + int len = compute_dest_len(fname, subst, + pmatch, nmatch); + + if (len) { + dest = (char *)malloc(len); + edit_subst(fname, subst, pmatch, dest); + } + + return dest; +} diff --git a/Branch-2.2/bacula/patches/testing/spoolsize_per_job.patch b/Branch-2.2/bacula/patches/testing/spoolsize_per_job.patch new file mode 100644 index 0000000000..e909573b1f --- /dev/null +++ b/Branch-2.2/bacula/patches/testing/spoolsize_per_job.patch @@ -0,0 +1,159 @@ +Index: src/dird/msgchan.c +=================================================================== +--- src/dird/msgchan.c (revision 5108) ++++ src/dird/msgchan.c (working copy) +@@ -51,7 +51,7 @@ + /* Commands sent to Storage daemon */ + static char jobcmd[] = "JobId=%s job=%s job_name=%s client_name=%s " + "type=%d level=%d FileSet=%s NoAttr=%d SpoolAttr=%d FileSetMD5=%s " +- "SpoolData=%d WritePartAfterJob=%d PreferMountedVols=%d\n"; ++ "SpoolData=%d SpoolSize=%s WritePartAfterJob=%d PreferMountedVols=%d\n"; + static char use_storage[] = "use storage=%s media_type=%s pool_name=%s " + "pool_type=%s append=%d copy=%d stripe=%d\n"; + static char use_device[] = "use device=%s\n"; +@@ -157,7 +157,7 @@ + POOL_MEM job_name, client_name, fileset_name; + int copy = 0; + int stripe = 0; +- char ed1[30]; ++ char ed1[30], ed2[30]; + + sd = jcr->store_bsock; + /* +@@ -186,8 +186,9 @@ + job_name.c_str(), client_name.c_str(), + jcr->JobType, jcr->JobLevel, + fileset_name.c_str(), !jcr->pool->catalog_files, +- jcr->job->SpoolAttributes, jcr->fileset->MD5, jcr->spool_data, +- jcr->write_part_after_job, jcr->job->PreferMountedVolumes); ++ jcr->job->SpoolAttributes, jcr->fileset->MD5, jcr->spool_data, ++ edit_int64(jcr->spool_size, ed2), jcr->write_part_after_job, ++ jcr->job->PreferMountedVolumes); + Dmsg1(100, ">stored: %s\n", sd->msg); + if (bget_dirmsg(sd) > 0) { + Dmsg1(100, "msg); +Index: src/dird/job.c +=================================================================== +--- src/dird/job.c (revision 5108) ++++ src/dird/job.c (working copy) +@@ -927,6 +927,7 @@ + jcr->fileset = job->fileset; + jcr->messages = job->messages; + jcr->spool_data = job->spool_data; ++ jcr->spool_size = job->spool_size; + jcr->write_part_after_job = job->write_part_after_job; + if (jcr->RestoreBootstrap) { + free(jcr->RestoreBootstrap); +Index: src/dird/dird_conf.c +=================================================================== +--- src/dird/dird_conf.c (revision 5108) ++++ src/dird/dird_conf.c (working copy) +@@ -295,6 +295,7 @@ + {"enabled", store_bool, ITEM(res_job.enabled), 0, ITEM_DEFAULT, true}, + {"spoolattributes",store_bool, ITEM(res_job.SpoolAttributes), 0, ITEM_DEFAULT, false}, + {"spooldata", store_bool, ITEM(res_job.spool_data), 0, ITEM_DEFAULT, false}, ++ {"spoolsize", store_size, ITEM(res_job.spool_size), 0, 0, 0}, + {"rerunfailedlevels", store_bool, ITEM(res_job.rerun_failed_levels), 0, ITEM_DEFAULT, false}, + {"prefermountedvolumes", store_bool, ITEM(res_job.PreferMountedVolumes), 0, ITEM_DEFAULT, true}, + {"runbeforejob", store_short_runscript, ITEM(res_job.RunScripts), 0, 0, 0}, +@@ -600,6 +601,9 @@ + res->res_job.RescheduleOnError, res->res_job.RescheduleTimes, + edit_uint64_with_commas(res->res_job.RescheduleInterval, ed1), + res->res_job.spool_data, res->res_job.write_part_after_job); ++ if (res->res_job.spool_size) { ++ sendit(sock, _(" SpoolSize=%s\n"), edit_uint64(res->res_job.spool_size, ed1)); ++ } + if (res->res_job.JobType == JT_MIGRATE) { + sendit(sock, _(" SelectionType=%d\n"), res->res_job.selection_type); + } +Index: src/dird/dird_conf.h +=================================================================== +--- src/dird/dird_conf.h (revision 5108) ++++ src/dird/dird_conf.h (working copy) +@@ -380,6 +380,7 @@ + utime_t RescheduleInterval; /* Reschedule interval */ + utime_t JobRetention; /* job retention period in seconds */ + uint32_t MaxConcurrentJobs; /* Maximum concurrent jobs */ ++ int64_t spool_size; /* Size of spool file for this job */ + int RescheduleTimes; /* Number of times to reschedule job */ + bool RescheduleOnError; /* Set to reschedule on error */ + bool PrefixLinks; /* prefix soft links with Where path */ +Index: src/stored/job.c +=================================================================== +--- src/stored/job.c (revision 5108) ++++ src/stored/job.c (working copy) +@@ -49,7 +49,7 @@ + /* Requests from the Director daemon */ + static char jobcmd[] = "JobId=%d job=%127s job_name=%127s client_name=%127s " + "type=%d level=%d FileSet=%127s NoAttr=%d SpoolAttr=%d FileSetMD5=%127s " +- "SpoolData=%d WritePartAfterJob=%d PreferMountedVols=%d\n"; ++ "SpoolData=%d SpoolSize=%s WritePartAfterJob=%d PreferMountedVols=%d\n"; + + + /* Responses sent to Director daemon */ +@@ -73,6 +73,7 @@ + { + int JobId; + char auth_key[100]; ++ char spool_size[30]; + BSOCK *dir = jcr->dir_bsock; + POOL_MEM job_name, client_name, job, fileset_name, fileset_md5; + int JobType, level, spool_attributes, no_attributes, spool_data; +@@ -87,9 +88,9 @@ + stat = sscanf(dir->msg, jobcmd, &JobId, job.c_str(), job_name.c_str(), + client_name.c_str(), + &JobType, &level, fileset_name.c_str(), &no_attributes, +- &spool_attributes, fileset_md5.c_str(), &spool_data, ++ &spool_attributes, fileset_md5.c_str(), &spool_data, spool_size, + &write_part_after_job, &PreferMountedVols); +- if (stat != 13) { ++ if (stat != 14) { + pm_strcpy(jcr->errmsg, dir->msg); + bnet_fsend(dir, BAD_job, stat, jcr->errmsg); + Dmsg1(100, ">dird: %s", dir->msg); +@@ -124,6 +125,7 @@ + jcr->no_attributes = no_attributes; + jcr->spool_attributes = spool_attributes; + jcr->spool_data = spool_data; ++ jcr->spool_size = str_to_int64(spool_size); + jcr->write_part_after_job = write_part_after_job; + jcr->fileset_md5 = get_pool_memory(PM_NAME); + pm_strcpy(jcr->fileset_md5, fileset_md5); +Index: src/stored/acquire.c +=================================================================== +--- src/stored/acquire.c (revision 5108) ++++ src/stored/acquire.c (working copy) +@@ -609,7 +609,12 @@ + if (dcr->attached_to_dev) { + detach_dcr_from_dev(dcr); + } +- dcr->max_job_spool_size = dev->device->max_job_spool_size; ++ /* Use job spoolsize prior to device spoolsize*/ ++ if (jcr->spool_size) { ++ dcr->max_job_spool_size = jcr->spool_size; ++ } else { ++ dcr->max_job_spool_size = dev->device->max_job_spool_size; ++ } + dcr->device = dev->device; + dcr->dev = dev; + attach_dcr_to_dev(dcr); +Index: src/jcr.h +=================================================================== +--- src/jcr.h (revision 5108) ++++ src/jcr.h (working copy) +@@ -246,6 +246,7 @@ + int replace; /* Replace option */ + int NumVols; /* Number of Volume used in pool */ + int reschedule_count; /* Number of times rescheduled */ ++ int64_t spool_size; /* Spool size for this job */ + bool spool_data; /* Spool data in SD */ + bool acquired_resource_locks; /* set if resource locks acquired */ + bool term_wait_inited; /* Set when cond var inited */ +@@ -323,6 +324,7 @@ + bool spool_attributes; /* set if spooling attributes */ + bool no_attributes; /* set if no attributes wanted */ + bool spool_data; /* set to spool data */ ++ int64_t spool_size; /* Spool size for this job */ + int CurVol; /* Current Volume count */ + DIRRES* director; /* Director resource */ + alist *write_store; /* list of write storage devices sent by DIR */ diff --git a/Branch-2.2/bacula/patches/testing/spoolsize_per_job.readme b/Branch-2.2/bacula/patches/testing/spoolsize_per_job.readme new file mode 100644 index 0000000000..cdc86d84b5 --- /dev/null +++ b/Branch-2.2/bacula/patches/testing/spoolsize_per_job.readme @@ -0,0 +1,7 @@ +From: Eric Bollengier + +Add Job { SpoolSize = 10G } option +This is very useful for big backup + +You must upgrade SD and DIR at the same time. + diff --git a/Branch-2.2/bacula/platforms/Makefile.in b/Branch-2.2/bacula/platforms/Makefile.in new file mode 100644 index 0000000000..d0808e9768 --- /dev/null +++ b/Branch-2.2/bacula/platforms/Makefile.in @@ -0,0 +1,106 @@ +# +# This is the makefile template for the platform directory +# which contains general platform installation. +# +# 15 November 2001 -- Kern Sibbald +# +# for Bacula release @VERSION@ (@DATE@) -- @DISTNAME@ +# + + +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL = @INSTALL@ + +SUBDIRS = freebsd redhat solaris unknown openbsd irix gentoo \ + darwin aix bsdi mandrake slackware alpha + +MAKE = make + +DISTNAME=@DISTNAME@ +DISTVER=@DISTVER@ + +all: + @for subdir in ${SUBDIRS}; do \ + if [ -f $${subdir}/Makefile ]; then \ + (cd $${subdir}; $(MAKE) DESTDIR=$(DESTDIR);) \ + fi; \ + done + + +install: install-autostart + +install-autostart: + @if test x$(DISTNAME) != x ; then \ + (cd $(DISTNAME); \ + $(MAKE) DESTDIR=$(DESTDIR) "DISTNAME=$(DISTNAME)" "DISTVER=$(DISTVER)" $@) \ + fi + +install-autostart-dir: + @if test x$(DISTNAME) != x ; then \ + (cd $(DISTNAME); \ + $(MAKE) DESTDIR=$(DESTDIR) "DISTNAME=$(DISTNAME)" "DISTVER=$(DISTVER)" $@) \ + fi + +install-autostart-fd: + @if test x$(DISTNAME) != x ; then \ + (cd $(DISTNAME); \ + $(MAKE) DESTDIR=$(DESTDIR) "DISTNAME=$(DISTNAME)" "DISTVER=$(DISTVER)" $@) \ + fi + +install-autostart-sd: + @if test x$(DISTNAME) != x ; then \ + (cd $(DISTNAME); \ + $(MAKE) DESTDIR=$(DESTDIR) "DISTNAME=$(DISTNAME)" "DISTVER=$(DISTVER)" $@) \ + fi + +uninstall: uninstall-autostart + +uninstall-autostart: + @if test x$(DISTNAME) != x ; then \ + (cd $(DISTNAME); \ + $(MAKE) DESTDIR=$(DESTDIR) "DISTNAME=$(DISTNAME)" "DISTVER=$(DISTVER)" $@) \ + fi + +uninstall-autostart-dir: + @if test x$(DISTNAME) != x ; then \ + (cd $(DISTNAME); \ + $(MAKE) DESTDIR=$(DESTDIR) "DISTNAME=$(DISTNAME)" "DISTVER=$(DISTVER)" $@) \ + fi + +uninstall-autostart-fd: + @if test x$(DISTNAME) != x ; then \ + (cd $(DISTNAME); \ + $(MAKE) DESTDIR=$(DESTDIR) "DISTNAME=$(DISTNAME)" "DISTVER=$(DISTVER)" $@) \ + fi + +uninstall-autostart-sd: + @if test x$(DISTNAME) != x ; then \ + (cd $(DISTNAME); \ + $(MAKE) DESTDIR=$(DESTDIR) "DISTNAME=$(DISTNAME)" "DISTVER=$(DISTVER)" $@) \ + fi + +depend: + +clean: + @for subdir in ${SUBDIRS}; do \ + if [ -f $${subdir}/Makefile ]; then \ + (cd $${subdir}; $(MAKE) clean) \ + fi; \ + done + rm -f 1 2 3 + +distclean: + @rm -f Makefile + @for subdir in ${SUBDIRS}; do \ + if [ -f $${subdir}/Makefile ]; then \ + (cd $${subdir}; $(MAKE) distclean) \ + fi; \ + done + +devclean: + @rm -f Makefile + @for subdir in ${SUBDIRS}; do \ + if [ -f $${subdir}/Makefile ]; then \ + (cd $${subdir}; $(MAKE) devclean) \ + fi; \ + done diff --git a/Branch-2.2/bacula/platforms/README b/Branch-2.2/bacula/platforms/README new file mode 100644 index 0000000000..e8d215291f --- /dev/null +++ b/Branch-2.2/bacula/platforms/README @@ -0,0 +1,5 @@ + +This directory, /platforms, contains the platform +specific installation files. Files that are common to all +platforms are in this directory, and files that are specific +to a particular platform are contained in subdirectories. diff --git a/Branch-2.2/bacula/platforms/aix/Makefile.in b/Branch-2.2/bacula/platforms/aix/Makefile.in new file mode 100644 index 0000000000..0f66af0576 --- /dev/null +++ b/Branch-2.2/bacula/platforms/aix/Makefile.in @@ -0,0 +1,83 @@ +# +# This file is used as the template to create the +# Makefile for the AXI specific installation. +# +# 1 March 2003 -- Kern Sibbald +# +# for Bacula release @VERSION@ (@DATE@) -- @DISTNAME@ +# + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ + +nothing: + +install: install-autostart + +install-autostart: install-autostart-fd install-autostart-sd install-autostart-dir + + +install-autostart-fd: + @rm -f /etc/rc0.d/K20bacula-fd + @rm -f /etc/rc1.d/S99bacula-fd + @rm -f /etc/rc2.d/S99bacula-fd + @$(INSTALL_PROGRAM) -m 744 bacula-fd /etc/init.d/bacula-fd + # set symlinks for script at startup and shutdown + @ln -f -s /etc/init.d/bacula-fd /etc/rc0.d/K20bacula-fd + @ln -f -s /etc/init.d/bacula-fd /etc/rc1.d/S99bacula-fd + @ln -f -s /etc/init.d/bacula-fd /etc/rc2.d/S99bacula-fd + + +install-autostart-sd: + @rm -f /etc/rc0.d/K20bacula-sd + @rm -f /etc/rc1.d/S99bacula-sd + @rm -f /etc/rc2.d/S99bacula-sd + @$(INSTALL_PROGRAM) -m 744 bacula-sd /etc/rc.d/init.d/bacula-sd + # set symlinks for script at startup and shutdown + @ln -f -s /etc/init.d/bacula-sd /etc/rc0.d/K20bacula-sd + @ln -f -s /etc/init.d/bacula-sd /etc/rc1.d/S99bacula-sd + @ln -f -s /etc/init.d/bacula-sd /etc/rc2.d/S99bacula-sd + + +install-autostart-dir: + @rm -f /etc/rc0.d/K20bacula-dir + @rm -f /etc/rc1.d/S99bacula-dir + @rm -f /etc/rc2.d/S99bacula-dir + @$(INSTALL_PROGRAM) -m 744 bacula-dir /etc/rc.d/init.d/bacula-dir + # set symlinks for script at startup and shutdown + @ln -f -s /etc/init.d/bacula-dir /etc/rc0.d/K20bacula-dir + @ln -f -s /etc/init.d/bacula-dir /etc/rc1.d/S99bacula-dir + @ln -f -s /etc/init.d/bacula-dir /etc/rc2.d/S99bacula-dir + + +uninstall: uninstall-autostart + +uninstall-autostart: uninstall-autostart-fd uninstall-autostart-sd uninstall-autostart-dir + +uninstall-autostart-fd: + @rm -f /etc/rc0.d/K20bacula-fd + @rm -f /etc/rc1.d/S99bacula-fd + @rm -f /etc/rc2.d/S99bacula-fd + @rm -f /etc/rc.d/init.d/bacula-fd + + +uninstall-autostart-sd: + @rm -f /etc/rc0.d/K20bacula-sd + @rm -f /etc/rc1.d/S99bacula-sd + @rm -f /etc/rc2.d/S99bacula-sd + @rm -f /etc/rc.d/init.d/bacula-sd + +uninstall-autostart-dir: + @rm -f /etc/rc0.d/K20bacula-dir + @rm -f /etc/rc1.d/S99bacula-dir + @rm -f /etc/rc2.d/S99bacula-dir + @rm -f /etc/rc.d/init.d/bacula-dir + +clean: + @rm -f bacula-sd bacula-fd bacula-dir + +distclean: clean + @rm -f Makefile bacula-*.spec + +devclean: clean + @rm -f Makefile bacula-*.spec diff --git a/Branch-2.2/bacula/platforms/alpha/Makefile.in b/Branch-2.2/bacula/platforms/alpha/Makefile.in new file mode 100644 index 0000000000..a4c5c047f2 --- /dev/null +++ b/Branch-2.2/bacula/platforms/alpha/Makefile.in @@ -0,0 +1,46 @@ +# +# This file is used as the template to create the +# Makefile for the Tru64 specific installation. +# +# 28 May 2004 -- Kern Sibbald +# +# for Bacula release @VERSION@ (@DATE@) -- @DISTNAME@ +# + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ + +nothing: + +install: install-autostart + +install-autostart: install-autostart-fd + + +install-autostart-fd: + @rm -f /sbin/rc0.d/K20bacula-fd + @rm -f /sbin/rc3.d/S99bacula-fd + @$(INSTALL_PROGRAM) -m 744 bacula-fd /sbin/init.d/bacula-fd + # set symlinks for script at startup and shutdown + @ln -f -s /sbin/init.d/bacula-fd /sbin/rc0.d/K20bacula-fd + @ln -f -s /sbin/init.d/bacula-fd /sbin/rc3.d/S99bacula-fd + + +uninstall: uninstall-autostart + +uninstall-autostart: uninstall-autostart-fd + +uninstall-autostart-fd: + @rm -f /sbin/rc0.d/K20bacula-fd + @rm -f /sbin/rc3.d/S99bacula-fd + @rm -f /sbin/init.d/bacula-fd + + +clean: + @rm -f bacula-fd + +distclean: clean + @rm -f Makefile + +devclean: clean + @rm -f Makefile diff --git a/Branch-2.2/bacula/platforms/alpha/bacula-fd.in b/Branch-2.2/bacula/platforms/alpha/bacula-fd.in new file mode 100644 index 0000000000..97fc249613 --- /dev/null +++ b/Branch-2.2/bacula/platforms/alpha/bacula-fd.in @@ -0,0 +1,39 @@ +#!/bin/sh +# +# bacula This shell script takes care of starting and stopping +# the bacula File daemon. +# +# chkconfig: 2345 90 9 +# description: It comes by night and sucks the vital essence from your computers. +# +# for Bacula release @VERSION@ (@DATE@) -- @DISTNAME@ +# + +case "$1" in + start) + echo "Starting the Bacula File daemon: " + /sbin/bacula-fd $2 -c /etc/bacula/bacula-fd.conf + RETVAL=$? + echo +## [ $RETVAL -eq 0 ] && touch @subsysdir@/bacula-fd + ;; + stop) + echo "Stopping the Bacula File daemon: " +# killproc @sbindir@/bacula-fd + ID=`ps -ef | grep -F bacula-fd | grep -Fv grep | awk '{print $2}'` + [ -n "$ID" ] && kill $ID + RETVAL=$? + echo +## [ $RETVAL -eq 0 ] && rm -f @subsysdir@/bacula-fd + ;; + restart) + $0 stop + sleep 5 + $0 start + ;; + *) + echo "Usage: $0 {start|stop|restart}" + exit 1 + ;; +esac +exit 0 diff --git a/Branch-2.2/bacula/platforms/bsdi/Makefile.in b/Branch-2.2/bacula/platforms/bsdi/Makefile.in new file mode 100644 index 0000000000..483686bee3 --- /dev/null +++ b/Branch-2.2/bacula/platforms/bsdi/Makefile.in @@ -0,0 +1,138 @@ +# +# This file is used as the template to create the +# Makefile for the Solaris specific installation. +# +# 15 November 2001 -- Kern Sibbald +# +# for Bacula release @VERSION@ (@DATE@) -- @DISTNAME@ +# + +VPATH = @srcdir@ +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +SED = /usr/bin/sed + +nothing: + +install: install-autostart + +install-autostart: install-autostart-fd install-autostart-sd install-autostart-dir + + +install-autostart-fd: + @echo "FreeBSD platform installation" + $(INSTALL_PROGRAM) -m 744 bacula-fd /etc/rc.bacula-fd + @-today="`date +%Y%m%d%H%M`"; \ + grep -q /etc/rc.bacula-fd /etc/rc.local; \ + if [ $$? -eq 0 ]; then \ + echo "/etc/rc.local already patched"; \ + else \ + rm -f /etc/rc.local.$$today; \ + cp -p /etc/rc.local /etc/rc.local.$$today; \ + ( echo "Start the Bacula File daemon. Do not remove the 'TAG_BACULA_FD' text"; \ + echo "if [ -x /etc/rc.bacula-fd ]; then # TAG_BACULA_FD"; \ + echo " /etc/rc.bacula-fd start # TAG_BACULA_FD"; \ + echo "fi # TAG_BACULA_FD"; \ + ) >> /etc/rc.local; \ + echo ""; \ + fi + + +install-autostart-sd: + @echo "FreeBSD platform installation" + $(INSTALL_PROGRAM) -m 744 bacula-sd /etc/rc.bacula-sd + @-today="`date +%Y%m%d%H%M`"; \ + grep -q /etc/rc.bacula-sd /etc/rc.local; \ + if [ $$? -eq 0 ]; then \ + echo "/etc/rc.local already patched"; \ + else \ + rm -f /etc/rc.local.$$today; \ + cp -p /etc/rc.local /etc/rc.local.$$today; \ + ( echo "Start the Bacula Storage daemon. Do not remove the 'TAG_BACULA_SD' text"; \ + echo "if [ -x /etc/rc.bacula-fd ]; then # TAG_BACULA_SD"; \ + echo " /etc/rc.bacula-fd start # TAG_BACULA_SD"; \ + echo "fi # TAG_BACULA_SD"; \ + ) >> /etc/rc.local; \ + echo ""; \ + fi + +install-autostart-dir: + @echo "FreeBSD platform installation" + $(INSTALL_PROGRAM) -m 744 bacula-dir /etc/rc.bacula-dir + @-today="`date +%Y%m%d%H%M`"; \ + grep -q /etc/rc.bacula-dir /etc/rc.local; \ + if [ $$? -eq 0 ]; then \ + echo "/etc/rc.local already patched"; \ + else \ + rm -f /etc/rc.local.$$today; \ + cp -p /etc/rc.local /etc/rc.local.$$today; \ + ( echo "Start the Bacula Director. Do not remove the 'TAG_BACULA_DIR' text"; \ + echo "if [ -x /etc/rc.bacula-dir ]; then # TAG_BACULA_DIR"; \ + echo " /etc/rc.bacula-dir start # TAG_BACULA_DIR"; \ + echo "fi # TAG_BACULA_DIR"; \ + ) >> /etc/rc.local; \ + echo ""; \ + fi + + +uninstall: uninstall-autostart + +uninstall-autostart: uninstall-autostart-fd uninstall-autostart-sd uninstall-autostart-dir + +uninstall-autostart-fd: + @echo "FreeBSD platform uninstall" + rm -f /etc/rc.bacula-fd + @-today="`date +%Y%m%d%H%M`"; \ + for f in /etc/rc.local ; do \ + grep -q '# TAG_BACULA_FD' $$f; \ + if [ $$? -eq 0 ]; then \ + echo "removing Bacula lines from $$f"; \ + rm -f $$f.$$today; \ + cp -p $$f $$f.$$today; \ + $(SED) -e '/TAG_BACULA_FD/d;' \ + < $$f.$$today > $$f; \ + chmod 644 $$f; \ + fi; \ + done + + +uninstall-autostart-sd: + @echo "FreeBSD platform uninstall" + rm -f /etc/rc.bacula-sd + @-today="`date +%Y%m%d%H%M`"; \ + for f in /etc/rc.local ; do \ + grep -q '# TAG_BACULA_SD' $$f; \ + if [ $$? -eq 0 ]; then \ + echo "removing Bacula lines from $$f"; \ + rm -f $$f.$$today; \ + cp -p $$f $$f.$$today; \ + $(SED) -e '/TAG_BACULA_SD/d;' \ + < $$f.$$today > $$f; \ + chmod 644 $$f; \ + fi; \ + done + +uninstall-autostart-dir: + @echo "FreeBSD platform uninstall" + rm -f /etc/rc.bacula-dir + @-today="`date +%Y%m%d%H%M`"; \ + for f in /etc/rc.local ; do \ + grep -q '# TAG_BACULA_DIR' $$f; \ + if [ $$? -eq 0 ]; then \ + echo "removing Bacula lines from $$f"; \ + rm -f $$f.$$today; \ + cp -p $$f $$f.$$today; \ + $(SED) -e '/TAG_BACULA_DIR/d;' \ + < $$f.$$today > $$f; \ + chmod 644 $$f; \ + fi; \ + done + +clean: + @rm -f bacula-sd bacula-fd bacula-dir + +distclean: clean + @rm -f Makefile bacula-*.spec + +devclean: clean + @rm -f Makefile bacula-*.spec diff --git a/Branch-2.2/bacula/platforms/bsdi/bacula-dir.in b/Branch-2.2/bacula/platforms/bsdi/bacula-dir.in new file mode 100755 index 0000000000..e7e76b1618 --- /dev/null +++ b/Branch-2.2/bacula/platforms/bsdi/bacula-dir.in @@ -0,0 +1,38 @@ +#! /bin/sh +# +# bacula This shell script takes care of starting and stopping +# the bacula Director daemon +# +# chkconfig: 2345 90 9 +# description: It comes by night and sucks the vital essence from your computers. +# +# For Bacula release @VERSION@ (@DATE@) -- @DISTNAME@ +# + +RETVAL=0 +case "$1" in + start) + echo "Starting the Bacula Director: " + @sbindir@/bacula-dir $2 -c @sysconfdir@/bacula-dir.conf + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && touch @subsysdir@/bacula-dir + ;; + stop) + echo "Stopping the Director daemon: " +# killproc @sbindir@/bacula-dir + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && rm -f @subsysdir@/bacula-dir + ;; + restart) + $0 stop + sleep 5 + $0 start + ;; + *) + echo "Usage: $0 {start|stop|restart}" + exit 1 + ;; +esac +exit 0 diff --git a/Branch-2.2/bacula/platforms/bsdi/bacula-fd.in b/Branch-2.2/bacula/platforms/bsdi/bacula-fd.in new file mode 100755 index 0000000000..54f17b9a96 --- /dev/null +++ b/Branch-2.2/bacula/platforms/bsdi/bacula-fd.in @@ -0,0 +1,37 @@ +#! /bin/sh +# +# bacula This shell script takes care of starting and stopping +# the bacula File daemon. +# +# chkconfig: 2345 90 9 +# description: It comes by night and sucks the vital essence from your computers. +# +# For Bacula release @VERSION@ (@DATE@) -- @DISTNAME@ +# + +case "$1" in + start) + echo "Starting the Bacula File daemon: " + @sbindir@/bacula-fd $2 -c @sysconfdir@/bacula-fd.conf + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && touch @subsysdir@/bacula-fd + ;; + stop) + echo "Stopping the Bacula File daemon: " +# killproc @sbindir@/bacula-fd + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && rm -f @subsysdir@/bacula-fd + ;; + restart) + $0 stop + sleep 5 + $0 start + ;; + *) + echo "Usage: $0 {start|stop|restart}" + exit 1 + ;; +esac +exit 0 diff --git a/Branch-2.2/bacula/platforms/bsdi/bacula-sd.in b/Branch-2.2/bacula/platforms/bsdi/bacula-sd.in new file mode 100755 index 0000000000..fb55fb47cf --- /dev/null +++ b/Branch-2.2/bacula/platforms/bsdi/bacula-sd.in @@ -0,0 +1,37 @@ +#! /bin/sh +# +# bacula This shell script takes care of starting and stopping +# the bacula Storage daemon. +# +# chkconfig: 2345 90 9 +# description: It comes by night and sucks the vital essence from your computers. +# +# For Bacula release @VERSION@ (@DATE@) -- @DISTNAME@ +# + +case "$1" in + start) + echo "Starting the Bacula Storage daemon: " + @sbindir@/bacula-sd $2 -c @sysconfdir@/bacula-sd.conf + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && touch @subsysdir@/bacula-sd + ;; + stop) + echo "Stopping the Bacula Storage daemon: " +# killproc @sbindir@/bacula-sd + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && rm -f @subsysdir@/bacula-sd + ;; + restart) + $0 stop + sleep 5 + $0 start + ;; + *) + echo "Usage: $0 {start|stop|restart}" + exit 1 + ;; +esac +exit 0 diff --git a/Branch-2.2/bacula/platforms/contrib-rpm/README b/Branch-2.2/bacula/platforms/contrib-rpm/README new file mode 100644 index 0000000000..498ac9bc7d --- /dev/null +++ b/Branch-2.2/bacula/platforms/contrib-rpm/README @@ -0,0 +1,61 @@ +README file for bacula third party rpm contributors + +Sun Jul 16 2006 +D. Scott Barninger + +This document outlines the procedures to create rpm packages for +bacula for platforms supported in the rpm spec file but not published +on sourceforge. Contributors wishing to build and supply such rpm +packages for release on the sourceforge project page should read this +documentation. Contributors should contact either Kern Sibbald +or Scott Barninger . + +The general requirements to have contrib rpm packages published on the project +page are: + +1. Packages must be created using the current released source rpm and the +shell script build_rpm.sh in this directory. +2. The packager must sign all rpm packages with his/her personal gpg key +and supply a copy of the public key as both a text file and as an rpm +using the spec file rpmkey.spec in this directory. +3. No modifications to either the bacula source code or spec file are +permitted without consulting the project admins. +4. There will be only one sanctioned packager for a given distribution. +5. Contributors who submit two or more successful releases may be given +release permissions to release their files directly to sourceforge. Prior to +that you will need to coordinate the upload of your files to sourceforge with +Kern or Scott to get them posted to the project page. + +How to create an rpmkey package: + +1. Create a plaintext copy of your gpg public key in a file named yourname.asc +where yourname is in the form first initial and last name, ie. sbarninger.asc +2. Edit the rpmkey.spec file and edit the line + %define pubkeyname yourname +replacing yourname with your name as in step 1 above. +3. Edit the rpmkey.spec file and edit the line + Packager: Your Name +inserting your name and email information. +4. Copy your key file to your SOURCES directory and the spec file to your SPECS +directory and create an rpm package. +5. Both the key text file and the rpm will be published on sourceforge in your +release package rpms-contrib-yourname. + +How to build a release: +1. Copy the file build_rpm.sh to a temporary working directory and open it in a +text editor. Examine and edit the configuration section of the script to match +your platform and build options. Set permissions on the script to 755. +3. Download the srpm you wish to build to the same directory. +4. Execute the script by ./build_rpm.sh + +The script will build all the necessary packages, move them into the current +working directory, rename them for your platform, and sign them with your key. + +Note: you must have a file named .rpmmacros in your home directory containing +at least the following 2 lines: + +%_signature gpg +%_gpg_name Your Name + +The name and email information in the above line must correspond to the information +in the key used to sign the packages when you generated the key. diff --git a/Branch-2.2/bacula/platforms/contrib-rpm/build_rpm.sh b/Branch-2.2/bacula/platforms/contrib-rpm/build_rpm.sh new file mode 100755 index 0000000000..c36f7218d7 --- /dev/null +++ b/Branch-2.2/bacula/platforms/contrib-rpm/build_rpm.sh @@ -0,0 +1,185 @@ +#!/bin/bash + +# shell script to build bacula rpm release +# copy this script into a working directory with the src rpm to build and execute +# 19 Aug 2006 D. Scott Barninger + +# Copyright (C) 2006 Free Software Foundation Europe e.V. +# licensed under GPL-v2 + +# signing rpms +# Make sure you have a .rpmmacros file in your home directory containing the following: +# +# %_signature gpg +# %_gpg_name Your Name +# +# the %_gpg_name information must match your key + + +# usage: ./build_rpm.sh + +########################################################################################### +# script configuration section + +VERSION=2.2.8 +RELEASE=1 + +# build platform for spec +# set to one of rh7,rh8,rh9,fc1,fc3,fc4,fc5,fc6,fc7,fc8,wb3,rhel3,rhel4,rhel5,centos3,centos4,centos5,sl3, sl4,sl5,su9,su10,su102,su103,mdk,mdv +PLATFORM=su102 + +# platform designator for file names +# for RedHat/Fedora set to one of rh7,rh8,rh9,fc1,fc3,fc4,fc5,fc6,fc7,fc8 OR +# for RHEL3/clones wb3, rhel3, sl3 & centos3 set to el3 OR +# for RHEL4/clones rhel4, sl4 & centos4 set to el4 OR +# for RHEL5/clones rhel5, sl5 & centos5 set to el5 OR +# for SuSE set to su90, su91, su92, su100 or su101 or su102 or su103 OR +# for Mandrake set to 101mdk or 20060mdk +FILENAME=su102 + +# MySQL version +# set to empty (for MySQL 3), 4 or 5 +MYSQL=5 + +# building wxconsole +# set to 1 to build wxconsole package else set 0 +WXCONSOLE=0 + +# building bat +# set to 1 to build bat package else set 0 +BAT=0 + +# enter your name and email address here +PACKAGER="Your Name " + +# enter the full path to your RPMS output directory +RPMDIR=/usr/src/packages/RPMS/i586 + +# enter the full path to your rpm BUILD directory +RPMBUILD=/usr/src/packages/BUILD + +# enter your arch string here (i386, i586, i686, x86_64) +ARCH=i586 + +# if the src rpm is not in the current working directory enter the directory location +# with trailing slash where it is found. +SRPMDIR= + +# set to 1 to sign packages, 0 not to sign if you want to sign on another machine. +SIGN=1 + +# to save the bacula-updatedb package set to 1, else 0 +# only one updatedb package is required per release so normally this should be 0 +# for all contrib packagers +SAVEUPDATEDB=0 + +# to override your language shell variable uncomment and edit this +# export LANG=en_US.UTF-8 + +# Make no changes below this point without consensus + +############################################################################################ + +SRPM=${SRPMDIR}bacula-$VERSION-$RELEASE.src.rpm + +echo Building MySQL packages for "$PLATFORM"... +sleep 2 +if [ "$WXCONSOLE" = "1" ]; then +rpmbuild --rebuild --define "build_${PLATFORM} 1" \ +--define "build_mysql${MYSQL} 1" \ +--define "contrib_packager ${PACKAGER}" \ +--define "build_python 1" \ +--define "build_wxconsole 1" \ +${SRPM} +else +rpmbuild --rebuild --define "build_${PLATFORM} 1" \ +--define "build_mysql${MYSQL} 1" \ +--define "build_python 1" \ +--define "contrib_packager ${PACKAGER}" ${SRPM} +fi +rm -rf ${RPMBUILD}/* + +echo Building PostgreSQL packages for "$PLATFORM"... +sleep 2 +if [ "$BAT" = "1" ]; then +rpmbuild --rebuild --define "build_${PLATFORM} 1" \ +--define "build_postgresql 1" \ +--define "contrib_packager ${PACKAGER}" \ +--define "build_python 1" \ +--define "build_bat 1" \ +--define "nobuild_gconsole 1" ${SRPM} +else +rpmbuild --rebuild --define "build_${PLATFORM} 1" \ +--define "build_postgresql 1" \ +--define "contrib_packager ${PACKAGER}" \ +--define "build_python 1" \ +--define "nobuild_gconsole 1" ${SRPM} +fi +rm -rf ${RPMBUILD}/* + +echo Building SQLite packages for "$PLATFORM"... +sleep 2 +rpmbuild --rebuild --define "build_${PLATFORM} 1" \ +--define "build_sqlite 1" \ +--define "contrib_packager ${PACKAGER}" \ +--define "build_python 1" \ +--define "nobuild_gconsole 1" ${SRPM} +rm -rf ${RPMBUILD}/* + +# delete the updatedb package and any debuginfo packages built +rm -f ${RPMDIR}/bacula*debug* +if [ "$SAVEUPDATEDB" = "1" ]; then + mv -f ${RPMDIR}/bacula-updatedb* ./; +else + rm -f ${RPMDIR}/bacula-updatedb*; +fi + +# copy files to cwd and rename files to final upload names + +mv -f ${RPMDIR}/bacula-mysql-${VERSION}-${RELEASE}.${ARCH}.rpm \ +./bacula-mysql-${VERSION}-${RELEASE}.${FILENAME}.${ARCH}.rpm + +mv -f ${RPMDIR}/bacula-postgresql-${VERSION}-${RELEASE}.${ARCH}.rpm \ +./bacula-postgresql-${VERSION}-${RELEASE}.${FILENAME}.${ARCH}.rpm + +mv -f ${RPMDIR}/bacula-sqlite-${VERSION}-${RELEASE}.${ARCH}.rpm \ +./bacula-sqlite-${VERSION}-${RELEASE}.${FILENAME}.${ARCH}.rpm + +mv -f ${RPMDIR}/bacula-mtx-${VERSION}-${RELEASE}.${ARCH}.rpm \ +./bacula-mtx-${VERSION}-${RELEASE}.${FILENAME}.${ARCH}.rpm + +mv -f ${RPMDIR}/bacula-client-${VERSION}-${RELEASE}.${ARCH}.rpm \ +./bacula-client-${VERSION}-${RELEASE}.${FILENAME}.${ARCH}.rpm + +mv -f ${RPMDIR}/bacula-gconsole-${VERSION}-${RELEASE}.${ARCH}.rpm \ +./bacula-gconsole-${VERSION}-${RELEASE}.${FILENAME}.${ARCH}.rpm + +mv -f ${RPMDIR}/bacula-wxconsole-${VERSION}-${RELEASE}.${ARCH}.rpm \ +./bacula-wxconsole-${VERSION}-${RELEASE}.${FILENAME}.${ARCH}.rpm + +mv -f ${RPMDIR}/bacula-bat-${VERSION}-${RELEASE}.${ARCH}.rpm \ +./bacula-bat-${VERSION}-${RELEASE}.${FILENAME}.${ARCH}.rpm + +# now sign the packages +if [ "$SIGN" = "1" ]; then + echo Ready to sign packages...; + sleep 2; + rpm --addsign ./*.rpm; +fi + +echo +echo Finished. +echo +ls + +# changelog +# 16 Jul 2006 initial release +# 05 Aug 2006 add python support +# 06 Aug 2006 add remote source directory, add switch for signing, refine file names +# 19 Aug 2006 add $LANG override to config section per request Felix Schwartz +# 27 Jan 2007 add fc6 target +# 29 Apr 2007 add sl3 & sl4 target and bat package +# 06 May 2007 add fc7 target +# 15 Sep 2007 add rhel5 and clones +# 10 Nov 2007 add su103 +# 12 Jan 2008 add fc8 diff --git a/Branch-2.2/bacula/platforms/contrib-rpm/rpm_wizard.sh b/Branch-2.2/bacula/platforms/contrib-rpm/rpm_wizard.sh new file mode 100755 index 0000000000..5ad266db63 --- /dev/null +++ b/Branch-2.2/bacula/platforms/contrib-rpm/rpm_wizard.sh @@ -0,0 +1,117 @@ +#!/bin/sh + +# shell script wizard to build bacula rpm using gnome dialogs +# requires zenity to be installed +# 30 Jul 2006 D. Scott Barninger + +# Copyright (C) 2006 Free Software Foundation Europe e.V. +# licensed under GPL-v2 + +# usage ./rpm_wizard.sh + +# check for zenity +HAVE_ZENITY=`which zenity` +if [ -z $HAVE_ZENITY ]; +then + echo You need zenity installed to run this script; + exit; +fi + +zenity --question --text "Bacula rpm rebuilding wizard. Do you wish to continue?" + +RESULT="$?" +if [ "$RESULT" = "1" ]; +then + exit; +fi + +# get packager name and email adddress +PACKAGER=`zenity --text-info --editable --height=25 --width=300 --title="Enter Your Name "` + +# get location of src rpm +SELECTED_FILE=`zenity --file-selection --title "Choose SRPM file to rebuild"` + +RESULT="$?" +if [ "$RESULT" = "1" ]; +then + exit; +fi + +# select build platform +PLATFORM=`zenity --title "Select Platform" --text "Please choose a build platform." --list --radiolist --column "Select" --column "Platform" False rh7 False rh8 False rh9 False fc1 False fc3 False fc4 False fc5 False fc6 False fc7 False fc8 False wb3 False rhel3 False rhel4 False rhel5 False centos3 False centos4 False centos5 False sl3 False sl4 False sl5 False su9 False su10 False su102 False su103 False mdk False mdv` + +RESULT="$?" +if [ "$RESULT" = "1" ]; +then + exit; +fi + +# select database support +DATABASE=`zenity --title "Select Database" --text "Please choose database support." --list --radiolist --column "Select" --column "Database" False sqlite False mysql False mysql4 False mysql5 False postgresql False client_only` + +RESULT="$?" +if [ "$RESULT" = "1" ]; +then + exit; +fi + +# select other build options +OPTIONS=`zenity --title "Select Options" --text "Please choose other options." --list --checklist --column "Select" --column "Other" False build_bat False build_wxconsole False nobuild_gconsole False build_x86_64 False build_python` + +RESULT="$?" +if [ "$RESULT" = "1" ]; +then + exit; +fi + +OPTION1=`echo $OPTIONS|cut --delimiter=\| -f1` +OPTION2=`echo $OPTIONS|cut --delimiter=\| -f2` +OPTION3=`echo $OPTIONS|cut --delimiter=\| -f3` +OPTION4=`echo $OPTIONS|cut --delimiter=\| -f4` +OPTION5=`echo $OPTIONS|cut --delimiter=\| -f5` + +# construct rpmbuild command +COMMAND="rpmbuild --rebuild --define 'build_$PLATFORM 1' --define 'build_$DATABASE 1' --define 'contrib_packager ${PACKAGER}'" + +if [ ! -z $OPTION1 ]; +then + COMMAND="${COMMAND} --define '$OPTION1 1'"; +fi +if [ ! -z $OPTION2 ]; +then + COMMAND="${COMMAND} --define '$OPTION2 1'"; +fi +if [ ! -z $OPTION3 ]; +then + COMMAND="${COMMAND} --define '$OPTION3 1'"; +fi +if [ ! -z $OPTION4 ]; +then + COMMAND="${COMMAND} --define '$OPTION4 1'"; +fi +if [ ! -z $OPTION5 ]; +then + COMMAND="${COMMAND} --define '$OPTION5 1'"; +fi + +COMMAND="${COMMAND} ${SELECTED_FILE}" + +zenity --question --text "Ready to rebuild the src rpm with $COMMAND. Do you wish to continue?" + +RESULT="$?" +if [ "$RESULT" = "1" ]; +then + exit; +fi + +# execute the build +echo $COMMAND | sh + +# ChangeLog +# 30 Jul 2006 initial release +# 05 Aug 2006 add option for build_python +# 27 Jan 2007 add fc6 +# 29 Apr 2007 add sl3 & sl4 target and bat option +# 06 May 2007 add fc7 target +# 10 Nov 2007 add rhel5 and su103 targets +# 12 Jan 2008 add fc8 target diff --git a/Branch-2.2/bacula/platforms/contrib-rpm/rpmkey.spec b/Branch-2.2/bacula/platforms/contrib-rpm/rpmkey.spec new file mode 100644 index 0000000000..81183a1abb --- /dev/null +++ b/Branch-2.2/bacula/platforms/contrib-rpm/rpmkey.spec @@ -0,0 +1,51 @@ +# rpm public key package +# Copyright (C) 2006 Free Software Foundation Europe e.V. +# +# + +# replace the string yournam with your name +# first initial and lastname, ie. sbarninger +%define pubkeyname yourname + +# replace below with your name and email address +Packager: Your Name + +Summary: The %{pubkeyname} rpm public key +Name: rpmkey-%{pubkeyname} +Version: 0.1 +Release: 1 +License: GPL v2 +Group: System/Packages +Source0: %{pubkeyname}.asc +BuildArch: noarch +BuildRoot: %{_tmppath}/%{name}-root + +%define gpgkeypath /etc/bacula/pubkeys + +%description +The %{pubkeyname} rpm public key. If you trust %{pubkeyname} component +and you want to import this key to the RPM database, then install this +RPM. After installing this package you may import the key into your rpm +database, as root: + +rpm --import %{gpgkeypath}/%{pubkeyname}.asc + +%prep +%setup -c -T a1 + +%build + +%install +mkdir -p %{buildroot}%{gpgkeypath} +cp -a %{SOURCE0} %{buildroot}%{gpgkeypath}/ + +%files +%defattr(-, root, root) +%{gpgkeypath}/%{pubkeyname}.asc + + +%changelog +* Sat Aug 19 2006 D. Scott Barninger . +# Modified for Debian GNU/Linux by Ian Murdock . +# Customized for Bacula by Jose Luis Tallon +# Modified RJM 2-12-03 to fix errors with pidfile name +# +PATH=/sbin:/bin:/usr/sbin:/usr/bin +DAEMON=/usr/sbin/bacula-dir +NAME="bacula-dir" +PORT=9101 +DESC="Bacula Director" +ARGS="-c /etc/bacula/bacula-dir.conf -u bacula -g bacula" + +test -f $DAEMON || exit 0 + +set -e + +if [ -n "`getent services bacula-dir`" ]; then + PORT=`getent services bacula-dir | awk '{ gsub("/tcp","",$2); print $2; }'` +fi + +PIDFILE=/var/run/bacula/$NAME.$PORT.pid + +case "$1" in + start) + if [ -f /etc/bacula/do_not_run ]; then + echo "Not starting $DESC: disabled via /etc/bacula/do_not_run" + exit 0 + fi + + echo -n "Starting $DESC: " + start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- $ARGS + echo "$NAME." + ;; + + stop) + echo -n "Stopping $DESC: " + start-stop-daemon --oknodo --stop --quiet --pidfile $PIDFILE --exec $DAEMON + echo "$NAME." + ;; + + restart|force-reload) + echo -n "Restarting $DESC: " + start-stop-daemon --stop --quiet --pidfile $PIDFILE --exec $DAEMON + sleep 1 + start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- $ARGS + echo "$NAME." + ;; + *) + N=/etc/init.d/$NAME + # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2 + echo "Usage: $N {start|stop|restart|force-reload}" >&2 + exit 1 + ;; +esac + +exit 0 diff --git a/Branch-2.2/bacula/platforms/freebsd/Makefile.in b/Branch-2.2/bacula/platforms/freebsd/Makefile.in new file mode 100644 index 0000000000..2e8c110769 --- /dev/null +++ b/Branch-2.2/bacula/platforms/freebsd/Makefile.in @@ -0,0 +1,138 @@ +# +# This file is used as the template to create the +# Makefile for the Solaris specific installation. +# +# 15 November 2001 -- Kern Sibbald +# +# for Bacula release @VERSION@ (@DATE@) -- @DISTNAME@ +# + +VPATH = @srcdir@ +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +SED = /usr/bin/sed + +nothing: + +install: install-autostart + +install-autostart: install-autostart-fd install-autostart-sd install-autostart-dir + + +install-autostart-fd: + @echo "FreeBSD platform installation" + $(INSTALL_PROGRAM) -m 744 bacula-fd /etc/rc.bacula-fd + @-today="`date +%Y%m%d%H%M`"; \ + grep -q /etc/rc.bacula-fd /etc/rc.conf; \ + if [ $$? -eq 0 ]; then \ + echo "/etc/rc.conf already patched"; \ + else \ + rm -f /etc/rc.conf.$$today; \ + cp -p /etc/rc.conf /etc/rc.conf.$$today; \ + ( echo "Start the Bacula File daemon. Do not remove the 'TAG_BACULA_FD' text"; \ + echo "if [ -x /etc/rc.bacula-fd ]; then # TAG_BACULA_FD"; \ + echo " /etc/rc.bacula-fd start # TAG_BACULA_FD"; \ + echo "fi # TAG_BACULA_FD"; \ + ) >> /etc/rc.conf; \ + echo ""; \ + fi + + +install-autostart-sd: + @echo "FreeBSD platform installation" + $(INSTALL_PROGRAM) -m 744 bacula-sd /etc/rc.bacula-sd + @-today="`date +%Y%m%d%H%M`"; \ + grep -q /etc/rc.bacula-sd /etc/rc.conf; \ + if [ $$? -eq 0 ]; then \ + echo "/etc/rc.conf already patched"; \ + else \ + rm -f /etc/rc.conf.$$today; \ + cp -p /etc/rc.conf /etc/rc.conf.$$today; \ + ( echo "Start the Bacula Storage daemon. Do not remove the 'TAG_BACULA_SD' text"; \ + echo "if [ -x /etc/rc.bacula-sd ]; then # TAG_BACULA_SD"; \ + echo " /etc/rc.bacula-sd start # TAG_BACULA_SD"; \ + echo "fi # TAG_BACULA_SD"; \ + ) >> /etc/rc.conf; \ + echo ""; \ + fi + +install-autostart-dir: + @echo "FreeBSD platform installation" + $(INSTALL_PROGRAM) -m 744 bacula-dir /etc/rc.bacula-dir + @-today="`date +%Y%m%d%H%M`"; \ + grep -q /etc/rc.bacula-dir /etc/rc.conf; \ + if [ $$? -eq 0 ]; then \ + echo "/etc/rc.conf already patched"; \ + else \ + rm -f /etc/rc.conf.$$today; \ + cp -p /etc/rc.conf /etc/rc.conf.$$today; \ + ( echo "Start the Bacula Director. Do not remove the 'TAG_BACULA_DIR' text"; \ + echo "if [ -x /etc/rc.bacula-dir ]; then # TAG_BACULA_DIR"; \ + echo " /etc/rc.bacula-dir start # TAG_BACULA_DIR"; \ + echo "fi # TAG_BACULA_DIR"; \ + ) >> /etc/rc.conf; \ + echo ""; \ + fi + + +uninstall: uninstall-autostart + +uninstall-autostart: uninstall-autostart-fd uninstall-autostart-sd uninstall-autostart-dir + +uninstall-autostart-fd: + @echo "FreeBSD platform uninstall" + rm -f /etc/rc.bacula-fd + @-today="`date +%Y%m%d%H%M`"; \ + for f in /etc/rc.conf ; do \ + grep -q '# TAG_BACULA_FD' $$f; \ + if [ $$? -eq 0 ]; then \ + echo "removing Bacula lines from $$f"; \ + rm -f $$f.$$today; \ + cp -p $$f $$f.$$today; \ + $(SED) -e '/TAG_BACULA_FD/d;' \ + < $$f.$$today > $$f; \ + chmod 644 $$f; \ + fi; \ + done + + +uninstall-autostart-sd: + @echo "FreeBSD platform uninstall" + rm -f /etc/rc.bacula-sd + @-today="`date +%Y%m%d%H%M`"; \ + for f in /etc/rc.conf ; do \ + grep -q '# TAG_BACULA_SD' $$f; \ + if [ $$? -eq 0 ]; then \ + echo "removing Bacula lines from $$f"; \ + rm -f $$f.$$today; \ + cp -p $$f $$f.$$today; \ + $(SED) -e '/TAG_BACULA_SD/d;' \ + < $$f.$$today > $$f; \ + chmod 644 $$f; \ + fi; \ + done + +uninstall-autostart-dir: + @echo "FreeBSD platform uninstall" + rm -f /etc/rc.bacula-dir + @-today="`date +%Y%m%d%H%M`"; \ + for f in /etc/rc.conf ; do \ + grep -q '# TAG_BACULA_DIR' $$f; \ + if [ $$? -eq 0 ]; then \ + echo "removing Bacula lines from $$f"; \ + rm -f $$f.$$today; \ + cp -p $$f $$f.$$today; \ + $(SED) -e '/TAG_BACULA_DIR/d;' \ + < $$f.$$today > $$f; \ + chmod 644 $$f; \ + fi; \ + done + +clean: + @rm -f bacula-sd bacula-fd bacula-dir + +distclean: clean + @rm -f Makefile bacula-*.spec + +devclean: clean + @rm -f Makefile bacula-*.spec diff --git a/Branch-2.2/bacula/platforms/freebsd/bacula-dir.in b/Branch-2.2/bacula/platforms/freebsd/bacula-dir.in new file mode 100755 index 0000000000..e7e76b1618 --- /dev/null +++ b/Branch-2.2/bacula/platforms/freebsd/bacula-dir.in @@ -0,0 +1,38 @@ +#! /bin/sh +# +# bacula This shell script takes care of starting and stopping +# the bacula Director daemon +# +# chkconfig: 2345 90 9 +# description: It comes by night and sucks the vital essence from your computers. +# +# For Bacula release @VERSION@ (@DATE@) -- @DISTNAME@ +# + +RETVAL=0 +case "$1" in + start) + echo "Starting the Bacula Director: " + @sbindir@/bacula-dir $2 -c @sysconfdir@/bacula-dir.conf + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && touch @subsysdir@/bacula-dir + ;; + stop) + echo "Stopping the Director daemon: " +# killproc @sbindir@/bacula-dir + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && rm -f @subsysdir@/bacula-dir + ;; + restart) + $0 stop + sleep 5 + $0 start + ;; + *) + echo "Usage: $0 {start|stop|restart}" + exit 1 + ;; +esac +exit 0 diff --git a/Branch-2.2/bacula/platforms/freebsd/bacula-fd.in b/Branch-2.2/bacula/platforms/freebsd/bacula-fd.in new file mode 100755 index 0000000000..54f17b9a96 --- /dev/null +++ b/Branch-2.2/bacula/platforms/freebsd/bacula-fd.in @@ -0,0 +1,37 @@ +#! /bin/sh +# +# bacula This shell script takes care of starting and stopping +# the bacula File daemon. +# +# chkconfig: 2345 90 9 +# description: It comes by night and sucks the vital essence from your computers. +# +# For Bacula release @VERSION@ (@DATE@) -- @DISTNAME@ +# + +case "$1" in + start) + echo "Starting the Bacula File daemon: " + @sbindir@/bacula-fd $2 -c @sysconfdir@/bacula-fd.conf + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && touch @subsysdir@/bacula-fd + ;; + stop) + echo "Stopping the Bacula File daemon: " +# killproc @sbindir@/bacula-fd + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && rm -f @subsysdir@/bacula-fd + ;; + restart) + $0 stop + sleep 5 + $0 start + ;; + *) + echo "Usage: $0 {start|stop|restart}" + exit 1 + ;; +esac +exit 0 diff --git a/Branch-2.2/bacula/platforms/freebsd/bacula-sd.in b/Branch-2.2/bacula/platforms/freebsd/bacula-sd.in new file mode 100755 index 0000000000..fb55fb47cf --- /dev/null +++ b/Branch-2.2/bacula/platforms/freebsd/bacula-sd.in @@ -0,0 +1,37 @@ +#! /bin/sh +# +# bacula This shell script takes care of starting and stopping +# the bacula Storage daemon. +# +# chkconfig: 2345 90 9 +# description: It comes by night and sucks the vital essence from your computers. +# +# For Bacula release @VERSION@ (@DATE@) -- @DISTNAME@ +# + +case "$1" in + start) + echo "Starting the Bacula Storage daemon: " + @sbindir@/bacula-sd $2 -c @sysconfdir@/bacula-sd.conf + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && touch @subsysdir@/bacula-sd + ;; + stop) + echo "Stopping the Bacula Storage daemon: " +# killproc @sbindir@/bacula-sd + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && rm -f @subsysdir@/bacula-sd + ;; + restart) + $0 stop + sleep 5 + $0 start + ;; + *) + echo "Usage: $0 {start|stop|restart}" + exit 1 + ;; +esac +exit 0 diff --git a/Branch-2.2/bacula/platforms/freebsd/pthreads-fix.txt b/Branch-2.2/bacula/platforms/freebsd/pthreads-fix.txt new file mode 100644 index 0000000000..3dda1308ac --- /dev/null +++ b/Branch-2.2/bacula/platforms/freebsd/pthreads-fix.txt @@ -0,0 +1,206 @@ +From: "Dan Langille" +To: bacula-users@lists.sourceforge.net +Subject: [Bacula-users] FreeBSD - large backups to tape +Date: Mon, 20 Oct 2003 15:29:18 -0400 + +Kern and I have been working on a FreeBSD/Bacula problem. +He's asked me to post this to the list. The problem was within the +FreeBSD pthreads library. A solution has been found. + +PROBLEM DESCRIPTION: + +The FreeBSD pthreads library does not properly handle End Of Tape. +This problem will be fixed in FreeBSD 4.9. + +UPDATE 2004/02/24: Note, the problem was apparently not fixed in + 4.9-RELEASE. 4.9-RELEASE contained a partial patch that did not + prevent data loss. To date, the latest FreeBSD -RELEASE versions + (4.9-RELEASE and 5.2.1-RELEASE) are *broken* as shipped. If + you are running one of these systems, please either patch + your system as described below or upgrade to -STABLE or + -CURRENT immediately. + + We expect 4.10-RELEASE to be available within a few weeks + (written 24 Apr 2004) and 5.3-RELEASE to be available in a + few months. 4.10 and 5.3 *should* contain the fix, but we + can't know for sure until we've had a chance to test them. + +The bug results in more data being written than the tape will +hold because of a lost status code. Any backup which involving +more than one tape would have data lost. + +DEMONSTRATION: + +To demonstrate the problem, tapetest.c can be obtained from +http://www.freebsd.org/cgi/query-pr.cgi?pr=56274 + +tapetest.c can also be found in the Bacula source distribution +in /platforms/freebsd/tapetest.c + +This tests without pthreads: + + * If you build this program with: + * + * c++ -g -O2 -Wall -c tapetest.c + * c++ -g -O2 -Wall tapetest.o -o tapetest + * + * Procedure for testing tape + * ./tapetest /dev/your-tape-device + * rewind + * rawfill + * rewind + * scan + * + * The output will be something like: + * + * ======== + * Rewound /dev/nsa0 + * *Begin writing blocks of 64512 bytes. + * ++++++++++++++++++++ ... + * Write failed. Last block written=17294. stat=0 ERR=Unknown error: 0 + * weof_dev + * Wrote EOF to /dev/nsa0 + * *Rewound /dev/nsa0 + * *Starting scan at file 0 + * 17294 blocks of 64512 bytes in file 0 + * End of File mark. + * End of File mark. + * End of tape + * Total files=1, blocks=17294, bytes = 1115670528 + * ======== + * + * which is correct. Notice that the return status is + * 0, while in the example below, which fails, the return + * status is -1. + +This tests with pthreads: + + * If you build this program with: + * + * c++ -g -O2 -Wall -pthread -c tapetest.c + * c++ -g -O2 -Wall -pthread tapetest.o -o tapetest + * Note, we simply added -pthread compared to the + * previous example. + * + * Procedure for testing tape + * ./tapetest /dev/your-tape-device + * rewind + * rawfill + * rewind + * scan + * + * The output will be something like: + * + * ======== + * Rewound /dev/nsa0 + * *Begin writing blocks of 64512 bytes. + * +++++++++++++++++++++++++++++ ... + * Write failed. Last block written=17926. stat=-1 ERR=No space left on device + * weof_dev + * Wrote EOF to /dev/nsa0 + * *Rewound /dev/nsa0 + * *Starting scan at file 0 + * 17913 blocks of 64512 bytes in file 0 + * End of File mark. + * End of File mark. + * End of tape + * Total files=1, blocks=17913, bytes = 1155603456 + * ======== + * + * which is incorrect because it wrote 17,926 blocks and the + * status on the last block written is stat=-1, which is incorrect. + * In addition only 17,913 blocks were read back. + * + * Similarly, if you ran this test on 4.9-RELEASE or 5.2.1-RELEASE + * (these versions contain an incomplete patch) then you would + * probably see something like this: + * + * ======== + * Rewound /dev/nsa0 + * *Begin writing blocks of 64512 bytes. + * +++++++++++++++ [...] + * weof_dev + * Wrote EOF to /dev/nsa0 + * Write failed. Last block written=271163. stat=-1 ERR=No space left on device + * *Rewound /dev/nsa0 + * *Starting scan at file 0 + * Bad status from read -1. ERR=Input/output error + * 271163 blocks of 64512 bytes in file 0 + * ======== + * + * The above output is also incorrect. The block counts match, + * but note the -1 error code on the read and write. This is + * just as dangerous as the first example. If you see this + * output then you should patch or upgrade to -STABLE or -CURRENT + * immediately. + +If you get the same number of blocks written and read WHEN using +pthreads, AND the test with pthreads enabled returns a stat=0 +on the last write, and the scan operation returns no error +code, then you've been correctly patched. It is important that +stat=0 rather than -1 even if the correct number of blocks +are read back. If the status is -1 on the pthreads test, you +will lose data. + +SOLUTION: + +For FreeBSD versions prior to 4.10-RELEASE and 5.3-RELEASE you +have two choices to ensure proper backups. These instructions +assume you are familiar with patching FreeBSD and already have +the FreeBSD source code installed on your machine. + +For FreeBSD 4.x: + +Do one of the following: + +- cvsup and build your system to FreeBSD 4.x-STABLE after the + date Mon Dec 29 15:18:01 2003 UTC + +- Apply this patch. + + http://www.freebsd.org/cgi/cvsweb.cgi/src/lib/libc_r/uthread/uthread_write.c.diff?r1=1.16.2.6&r2=1.16.2.8 + + To apply the patch, follow these instructions as root. + + cd /usr/src/lib/libc_r/uthread/ + fetch -o pthread.diff 'http://www.freebsd.org/cgi/cvsweb.cgi/src/lib/libc_r/uthread/uthread_write.c.diff?r1=1.16.2.6&r2=1.16.2.8' + patch < pthread.diff + cd .. + make all install + +For FreeBSD 5.x: + +Do one of the following: + +- cvsup and build your system to FreeBSD -CURRENT after the + date Wed Dec 17 16:44:03 2003 UTC + +- Apply this patch. + + http://www.freebsd.org/cgi/cvsweb.cgi/src/lib/libc_r/uthread/uthread_write.c.diff?r1=1.22&r2=1.23 + + Wed Dec 17 16:44:03 2003 UTC + + To apply the patch, follow these instructions as root. + + cd /usr/src/lib/libc_r/uthread/ + fetch -o pthread.diff 'http://www.freebsd.org/cgi/cvsweb.cgi/src/lib/libc_r/uthread/uthread_write.c.diff?r1=1.22&r2=1.23' + patch < pthread.diff + cd .. + make all install + +After patching your system as shown above, +you should then recompile Bacula to get the new library +code included by doing: + + cd + make clean + make + ... + + +TESTING: + +I suggest running tapetest on your patched system and then +conducting a backup which spans two tapes. Restore the data +and compare to the original. If not identical, please let us know. diff --git a/Branch-2.2/bacula/platforms/freebsd/tapetest.c b/Branch-2.2/bacula/platforms/freebsd/tapetest.c new file mode 100644 index 0000000000..d3a5b1c479 --- /dev/null +++ b/Branch-2.2/bacula/platforms/freebsd/tapetest.c @@ -0,0 +1,605 @@ +/* + * + * Program to test loss of data at EOM on + * FreeBSD systems. + * + * Kern Sibbald, August 2003 + * + * If you build this program with: + * + * c++ -g -O2 -Wall -c tapetest.c + * c++ -g -O2 -Wall tapetest.o -o tapetest + * + * Procedure for testing tape + * ./tapetest /dev/your-tape-device + * rewind + * rawfill + * rewind + * scan + * quit + * + * The output will be: + * + * ======== + * Rewound /dev/nsa0 + * *Begin writing blocks of 64512 bytes. + * ++++++++++++++++++++ ... + * Write failed. Last block written=17294. stat=0 ERR=Unknown error: 0 + * weof_dev + * Wrote EOF to /dev/nsa0 + * *Rewound /dev/nsa0 + * *Starting scan at file 0 + * 17294 blocks of 64512 bytes in file 0 + * End of File mark. + * End of File mark. + * End of tape + * Total files=1, blocks=17294, bytes = 1115670528 + * ======== + * + * which is correct. Notice that the return status is + * 0, while in the example below, which fails, the return + * status is -1. + * + + * If you build this program with: + * + * c++ -g -O2 -Wall -pthread -c tapetest.c + * c++ -g -O2 -Wall -pthread tapetest.o -o tapetest + * Note, we simply added -pthread compared to the + * previous example. + * + * Procedure for testing tape + * ./tapetest /dev/your-tape-device + * rewind + * rawfill + * rewind + * scan + * quit + * + * The output will be: + * + * ======== + * Rewound /dev/nsa0 + * *Begin writing blocks of 64512 bytes. + * +++++++++++++++++++++++++++++ ... + * Write failed. Last block written=17926. stat=-1 ERR=No space left on device + * weof_dev + * Wrote EOF to /dev/nsa0 + * *Rewound /dev/nsa0 + * *Starting scan at file 0 + * 17913 blocks of 64512 bytes in file 0 + * End of File mark. + * End of File mark. + * End of tape + * Total files=1, blocks=17913, bytes = 1155603456 + * ======== + * + * which is incroorect because it wrote 17,926 blocks but read + * back only 17,913 blocks, AND because the return status on + * the last block written was -1 when it should have been + * 0 (ie. stat=0 above). + * + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define FALSE 0 +#define TRUE 1 + +#define dev_state(dev, state) ((dev)->state & (state)) + +/* Device state bits */ +#define ST_OPENED (1<<0) /* set when device opened */ +#define ST_TAPE (1<<1) /* is a tape device */ +#define ST_FILE (1<<2) /* is a file device */ +#define ST_FIFO (1<<3) /* is a fifo device */ +#define ST_PROG (1<<4) /* is a program device */ +#define ST_LABEL (1<<5) /* label found */ +#define ST_MALLOC (1<<6) /* dev packet malloc'ed in init_dev() */ +#define ST_APPEND (1<<7) /* ready for Bacula append */ +#define ST_READ (1<<8) /* ready for Bacula read */ +#define ST_EOT (1<<9) /* at end of tape */ +#define ST_WEOT (1<<10) /* Got EOT on write */ +#define ST_EOF (1<<11) /* Read EOF i.e. zero bytes */ +#define ST_NEXTVOL (1<<12) /* Start writing on next volume */ +#define ST_SHORT (1<<13) /* Short block read */ + +#define BLOCK_SIZE (512 * 126) + + +/* Exported variables */ +int quit = 0; +char buf[100000]; +int verbose = 0; +int debug_level = 0; +int fd = 0; + +struct DEVICE { + int fd; + int dev_errno; + int file; + int block_num; + int state; + char *buf; + int buf_len; + char *dev_name; + int file_addr; +}; + +DEVICE *dev; + +#define uint32_t unsigned long +#define uint64_t unsigned long long + +/* Forward referenced subroutines */ +static void do_tape_cmds(); +static void helpcmd(); +static void scancmd(); +static void rewindcmd(); +static void rawfill_cmd(); + + +/* Static variables */ + +static char cmd[1000]; + +static void usage(); +int get_cmd(char *prompt); + + +/********************************************************************* + * + * Main Bacula Pool Creation Program + * + */ +int main(int argc, char *argv[]) +{ + int ch; + + while ((ch = getopt(argc, argv, "d:v?")) != -1) { + switch (ch) { + case 'd': /* set debug level */ + debug_level = atoi(optarg); + if (debug_level <= 0) { + debug_level = 1; + } + break; + + case 'v': + verbose++; + break; + + case '?': + default: + helpcmd(); + exit(0); + + } + } + argc -= optind; + argv += optind; + + + /* See if we can open a device */ + if (argc == 0) { + printf("No archive name specified.\n"); + usage(); + exit(1); + } else if (argc != 1) { + printf("Improper number of arguments specified.\n"); + usage(); + exit(1); + } + + fd = open(argv[0], O_RDWR); + if (fd < 0) { + printf("Error opening %s ERR=%s\n", argv[0], strerror(errno)); + exit(1); + } + dev = (DEVICE *)malloc(sizeof(DEVICE)); + memset(dev, 0, sizeof(DEVICE)); + dev->fd = fd; + dev->dev_name = strdup(argv[0]); + dev->buf_len = BLOCK_SIZE; + dev->buf = (char *)malloc(BLOCK_SIZE); + + do_tape_cmds(); + return 0; +} + + +int rewind_dev(DEVICE *dev) +{ + struct mtop mt_com; + + if (dev->fd < 0) { + dev->dev_errno = EBADF; + printf("Bad call to rewind_dev. Device %s not open\n", + dev->dev_name); + return 0; + } + dev->state &= ~(ST_APPEND|ST_READ|ST_EOT|ST_EOF|ST_WEOT); /* remove EOF/EOT flags */ + dev->block_num = dev->file = 0; + mt_com.mt_op = MTREW; + mt_com.mt_count = 1; + if (ioctl(dev->fd, MTIOCTOP, (char *)&mt_com) < 0) { + dev->dev_errno = errno; + printf("Rewind error on %s. ERR=%s.\n", + dev->dev_name, strerror(dev->dev_errno)); + return 0; + } + return 1; +} + +/* + * Write an end of file on the device + * Returns: 0 on success + * non-zero on failure + */ +int +weof_dev(DEVICE *dev, int num) +{ + struct mtop mt_com; + int stat; + + if (dev->fd < 0) { + dev->dev_errno = EBADF; + printf("Bad call to fsf_dev. Archive not open\n"); + return -1; + } + + dev->state &= ~(ST_EOT | ST_EOF); /* remove EOF/EOT flags */ + dev->block_num = 0; + printf("weof_dev\n"); + mt_com.mt_op = MTWEOF; + mt_com.mt_count = num; + stat = ioctl(dev->fd, MTIOCTOP, (char *)&mt_com); + if (stat == 0) { + dev->file++; + dev->file_addr = 0; + } else { + dev->dev_errno = errno; + printf("ioctl MTWEOF error on %s. ERR=%s.\n", + dev->dev_name, strerror(dev->dev_errno)); + } + return stat; +} + + + + + +void quitcmd() +{ + quit = 1; +} + + +/* + * Rewind the tape. + */ +static void rewindcmd() +{ + if (!rewind_dev(dev)) { + printf("Bad status from rewind. ERR=%s\n", strerror(dev->dev_errno)); + } else { + printf("Rewound %s\n", dev->dev_name); + } +} + +/* + * Write and end of file on the tape + */ +static void weofcmd() +{ + int stat; + + if ((stat = weof_dev(dev, 1)) < 0) { + printf("Bad status from weof %d. ERR=%s\n", stat, strerror(dev->dev_errno)); + return; + } else { + printf("Wrote EOF to %s\n", dev->dev_name); + } +} + + +/* + * Read a record from the tape + */ +static void rrcmd() +{ + char *buf; + int stat, len; + + if (!get_cmd("Enter length to read: ")) { + return; + } + len = atoi(cmd); + if (len < 0 || len > 1000000) { + printf("Bad length entered, using default of 1024 bytes.\n"); + len = 1024; + } + buf = (char *)malloc(len); + stat = read(fd, buf, len); + if (stat > 0 && stat <= len) { + errno = 0; + } + printf("Read of %d bytes gives stat=%d. ERR=%s\n", + len, stat, strerror(errno)); + free(buf); +} + +/* + * Write a record to the tape + */ +static void wrcmd() +{ + int stat; + int rfd; + + rfd = open("/dev/urandom", O_RDONLY); + if (rfd) { + read(rfd, dev->buf, dev->buf_len); + } else { + printf("Cannot open /dev/urandom.\n"); + return; + } + printf("Write one block of %u bytes.\n", dev->buf_len); + stat = write(dev->fd, dev->buf, dev->buf_len); + if (stat != (int)dev->buf_len) { + if (stat == -1) { + printf("Bad status from write. ERR=%s\n", strerror(errno)); + } else { + printf("Expected to write %d bytes but wrote only %d.\n", + dev->buf_len, stat); + } + } +} + + + +/* + * Scan tape by reading block by block. Report what is + * on the tape. Note, this command does raw reads, and as such + * will not work with fixed block size devices. + */ +static void scancmd() +{ + int stat; + int blocks, tot_blocks, tot_files; + int block_size; + uint64_t bytes; + + + blocks = block_size = tot_blocks = 0; + bytes = 0; + if (dev->state & ST_EOT) { + printf("End of tape\n"); + return; + } + tot_files = dev->file; + printf("Starting scan at file %u\n", dev->file); + for (;;) { + if ((stat = read(dev->fd, buf, sizeof(buf))) < 0) { + dev->dev_errno = errno; + printf("Bad status from read %d. ERR=%s\n", stat, strerror(dev->dev_errno)); + if (blocks > 0) + printf("%d block%s of %d bytes in file %d\n", + blocks, blocks>1?"s":"", block_size, dev->file); + return; + } + if (stat != block_size) { + if (blocks > 0) { + printf("%d block%s of %d bytes in file %d\n", + blocks, blocks>1?"s":"", block_size, dev->file); + blocks = 0; + } + block_size = stat; + } + if (stat == 0) { /* EOF */ + printf("End of File mark.\n"); + /* Two reads of zero means end of tape */ + if (dev->state & ST_EOF) + dev->state |= ST_EOT; + else { + dev->state |= ST_EOF; + dev->file++; + } + if (dev->state & ST_EOT) { + printf("End of tape\n"); + break; + } + } else { /* Got data */ + dev->state &= ~ST_EOF; + blocks++; + tot_blocks++; + bytes += stat; + } + } + tot_files = dev->file - tot_files; + printf("Total files=%d, blocks=%d, bytes = %d\n", tot_files, tot_blocks, + (int)bytes); +} + + +static void rawfill_cmd() +{ + int stat; + int rfd; + uint32_t block_num = 0; + uint32_t *p; + int my_errno; + + rfd = open("/dev/urandom", O_RDONLY); + if (rfd) { + read(rfd, dev->buf, dev->buf_len); + } else { + printf("Cannot open /dev/urandom.\n"); + return; + } + p = (uint32_t *)dev->buf; + printf("Begin writing blocks of %u bytes.\n", dev->buf_len); + for ( ;; ) { + *p = block_num; + stat = write(dev->fd, dev->buf, dev->buf_len); + if (stat == (int)dev->buf_len) { + if ((block_num++ % 100) == 0) { + printf("+"); + fflush(stdout); + } + continue; + } + break; + } + my_errno = errno; + printf("\n"); + weofcmd(); + printf("Write failed. Last block written=%d. stat=%d ERR=%s\n", (int)block_num, stat, + strerror(my_errno)); + +} + +/* Strip any trailing junk from the command */ +void strip_trailing_junk(char *cmd) +{ + char *p; + p = cmd + strlen(cmd) - 1; + + /* strip trailing junk from command */ + while ((p >= cmd) && (*p == '\n' || *p == '\r' || *p == ' ')) + *p-- = 0; +} + +/* folded search for string - case insensitive */ +int +fstrsch(char *a, char *b) /* folded case search */ +{ + register char *s1,*s2; + register char c1=0, c2=0; + + s1=a; + s2=b; + while (*s1) { /* do it the fast way */ + if ((*s1++ | 0x20) != (*s2++ | 0x20)) + return 0; /* failed */ + } + while (*a) { /* do it over the correct slow way */ + if (isupper(c1 = *a)) { + c1 = tolower((int)c1); + } + if (isupper(c2 = *b)) { + c2 = tolower((int)c2); + } + if (c1 != c2) { + return 0; + } + a++; + b++; + } + return 1; +} + + +struct cmdstruct { char *key; void (*func)(); char *help; }; +static struct cmdstruct commands[] = { + {"help", helpcmd, "print this command"}, + {"quit", quitcmd, "quit tapetest"}, + {"rawfill", rawfill_cmd, "use write() to fill tape"}, + {"rewind", rewindcmd, "rewind the tape"}, + {"rr", rrcmd, "raw read the tape"}, + {"wr", wrcmd, "raw write one block to the tape"}, + {"scan", scancmd, "read() tape block by block to EOT and report"}, + {"weof", weofcmd, "write an EOF on the tape"}, + }; +#define comsize (sizeof(commands)/sizeof(struct cmdstruct)) + +static void +do_tape_cmds() +{ + unsigned int i; + int found; + + while (get_cmd("*")) { + found = 0; + for (i=0; i 0) + cmd[--i] = 0; + continue; + } + + cmd[i++] = ch; + cmd[i] = 0; + } + quit = 1; + return 0; +} diff --git a/Branch-2.2/bacula/platforms/gentoo/1.36.1-cdrecord-configure.patch b/Branch-2.2/bacula/platforms/gentoo/1.36.1-cdrecord-configure.patch new file mode 100644 index 0000000000..573e7bd108 --- /dev/null +++ b/Branch-2.2/bacula/platforms/gentoo/1.36.1-cdrecord-configure.patch @@ -0,0 +1,18 @@ +--- configure.old 2005-02-06 07:44:05.221997769 -0500 ++++ configure 2005-02-06 07:45:18.300994158 -0500 +@@ -7478,15 +7478,6 @@ + # get scsibus,target,lun + # ------------------------------------------- + CDSTL="3,0,0" +-if test ! x$CDRECORD = x ; then +- CDSTL=`${CDRECORD} -scanbus 2>/dev/null | grep CD-RW | ${AWK} '{print $1}'` +- if test x${CDSTL} = x ; then +- CDSTL=`${CDRECORD} -scanbus 2>/dev/null | grep CD+RW | ${AWK} '{print $1}'` +- fi +- if test x${CDSTL} = x ; then +- CDSTL="3,0,0" +- fi +-fi + + + diff --git a/Branch-2.2/bacula/platforms/gentoo/1.36.2-cdrecord-configure.patch b/Branch-2.2/bacula/platforms/gentoo/1.36.2-cdrecord-configure.patch new file mode 100644 index 0000000000..6fa8511484 --- /dev/null +++ b/Branch-2.2/bacula/platforms/gentoo/1.36.2-cdrecord-configure.patch @@ -0,0 +1,19 @@ +diff -uNr bacula-1.36.2/configure bacula-1.36.2-fixed/configure +--- bacula-1.36.2/configure 2005-02-25 04:46:49.000000000 -0500 ++++ bacula-1.36.2-fixed/configure 2005-03-06 10:11:23.905848861 -0500 +@@ -7301,15 +7301,6 @@ + # get scsibus,target,lun + # ------------------------------------------- + CDSTL="3,0,0" +-if test ! x$CDRECORD = x ; then +- CDSTL=`${CDRECORD} -scanbus 2>/dev/null | grep CD-RW | ${AWK} '{print $1}'` +- if test x${CDSTL} = x ; then +- CDSTL=`${CDRECORD} -scanbus 2>/dev/null | grep CD+RW | ${AWK} '{print $1}'` +- fi +- if test x${CDSTL} = x ; then +- CDSTL="3,0,0" +- fi +-fi + + + diff --git a/Branch-2.2/bacula/platforms/gentoo/Makefile.in b/Branch-2.2/bacula/platforms/gentoo/Makefile.in new file mode 100644 index 0000000000..a442fe70dd --- /dev/null +++ b/Branch-2.2/bacula/platforms/gentoo/Makefile.in @@ -0,0 +1,55 @@ +# +# This file is used as the template to create the +# Makefile for the Gentoo specific installation. +# +# 22 January 2003 -- Kern Sibbald +# and corrected for Gentoo by +# Patrick Naubert 25 Jan 2003 +# +# for Bacula release @VERSION@ (@DATE@) -- @DISTNAME@ +# + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ + +nothing: + +install: install-autostart + +install-autostart: install-autostart-fd install-autostart-sd install-autostart-dir + + +install-autostart-fd: + @$(INSTALL) -m 744 bacula-fd $(DESTDIR)/etc/init.d/bacula-fd + + +install-autostart-sd: + @$(INSTALL) -m 744 bacula-sd $(DESTDIR)/etc/init.d/bacula-sd + + +install-autostart-dir: + @$(INSTALL) -m 744 bacula-dir $(DESTDIR)/etc/init.d/bacula-dir + + +uninstall: uninstall-autostart + +uninstall-autostart: uninstall-autostart-fd uninstall-autostart-sd uninstall-autostart-dir + +uninstall-autostart-fd: + @rm -f $(DESTDIR)/etc/init.d/bacula-fd + + +uninstall-autostart-sd: + @rm -f $(DESTDIR)/etc/init.d/bacula-sd + +uninstall-autostart-dir: + @rm -f $(DESTDIR)/etc/init.d/bacula-dir + +clean: + @rm -f bacula-sd bacula-fd bacula-dir + +distclean: clean + @rm -f Makefile + +devclean: clean + @rm -f Makefile diff --git a/Branch-2.2/bacula/platforms/gentoo/bacula-dir.in b/Branch-2.2/bacula/platforms/gentoo/bacula-dir.in new file mode 100755 index 0000000000..9ce3b0b649 --- /dev/null +++ b/Branch-2.2/bacula/platforms/gentoo/bacula-dir.in @@ -0,0 +1,28 @@ +#!/sbin/runscript +# +# bacula This shell script takes care of starting and stopping +# the bacula Director daemon for the Gentoo release +# +# chkconfig: 2345 90 9 +# description: It comes by night and sucks the vital essence from your computers. +# +# For Bacula release @VERSION@ (@DATE@) -- @DISTNAME@ +# + +start() { + ebegin "Starting the Bacula Director" + start-stop-daemon --start --quiet --exec @sbindir@/bacula-dir -- $2 -c @sysconfdir@/bacula-dir.conf + eend $? +} + +stop() { + ebegin "Stopping the Director daemon" + start-stop-daemon --stop --quiet --exec @sbindir@/bacula-dir + eend $? +} + +restart() { + stop + sleep 5 + start +} diff --git a/Branch-2.2/bacula/platforms/gentoo/bacula-fd.in b/Branch-2.2/bacula/platforms/gentoo/bacula-fd.in new file mode 100755 index 0000000000..67e335ab77 --- /dev/null +++ b/Branch-2.2/bacula/platforms/gentoo/bacula-fd.in @@ -0,0 +1,28 @@ +#!/sbin/runscript +# +# bacula This shell script takes care of starting and stopping +# the bacula File daemon for the Gentoo release. +# +# chkconfig: 2345 90 9 +# description: It comes by night and sucks the vital essence from your computers. +# +# For Bacula release @VERSION@ (@DATE@) -- @DISTNAME@ +# + +start() { + ebegin "Starting the Bacula File daemon" + start-stop-daemon --start --quiet --exec @sbindir@/bacula-fd -- $2 -c @sysconfdir@/bacula-fd.conf + eend $? +} + +stop() { + ebegin "Stopping the Bacula File daemon" + start-stop-daemon --stop --quiet --exec @sbindir@/bacula-fd + eend $? +} + +restart() { + stop + sleep 5 + start +} diff --git a/Branch-2.2/bacula/platforms/gentoo/bacula-init.in b/Branch-2.2/bacula/platforms/gentoo/bacula-init.in new file mode 100755 index 0000000000..b3ddaa1a8f --- /dev/null +++ b/Branch-2.2/bacula/platforms/gentoo/bacula-init.in @@ -0,0 +1,94 @@ +#!/sbin/runscript +# Copyright 1999-2004 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# Modified for user/group information +# 24 Oct 2004 D. Scott Barninger +# +# added cdrom rescue for 1.36.1 +# init script now comes from source package not ${FILES} dir +# 26 Nov 2004 D. Scott Barninger +# +# fix symlink creation in rescue package in post script +# remove mask on x86 keyword +# fix post script so it doesn't talk about server config for client-only build +# bug #181 - unable to reproduce on 2.4 kernel system so add FEATURES="-sandbox" +# 04 Dec 2004 D. Scott Barninger +# +# more on bug #181 - another user has reported a sandbox violation trying to +# write to /dev/sg0 - still can't reproduce this behavior +# add an 'addpredict /dev/sg0' +# 08 Dec 2004 D. Scott Barninger +# +# resolve bug #181 - problem is caused by configure calling cdrecord to scan +# the scsi bus. patch configure to remove this. add logrotate script. +# 06 Feb 2005 D. Scott Barninger +# +# fix documentation bug +# 07 Feb 2005 D. Scott Barninger +# +# new USE keywords bacula-clientonly bacula-split +# add new logwatch scripts +# 06 Mar 2005 D. Scott Barninger +# +# 1.36.3 doc changes +# 17 Apr 2005 D. Scott Barninger + +DESCRIPTION="featureful client/server network backup suite" +HOMEPAGE="http://www.bacula.org/" +SRC_URI="mirror://sourceforge/bacula/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="x86 ~ppc ~sparc ~amd64" +IUSE="readline tcpd gnome mysql sqlite X static postgres wxwindows bacula-clientonly bacula-split" + +inherit eutils + +# there is a local sqlite use flag. use it -OR- mysql, not both. +# mysql is the recommended choice ... +# may need sys-libs/libtermcap-compat but try without first +DEPEND=">=sys-libs/zlib-1.1.4 + readline? ( >=sys-libs/readline-4.1 ) + tcpd? ( >=sys-apps/tcp-wrappers-7.6 ) + gnome? ( gnome-base/libgnome ) + gnome? ( app-admin/gnomesu ) + !bacula-clientonly? ( + sqlite? ( =dev-db/sqlite-2* ) + mysql? ( >=dev-db/mysql-3.23 ) + postgres? ( >=dev-db/postgresql-7.4.0 ) + sys-apps/mtx + ) + X? ( virtual/x11 ) + wxwindows? ( >=x11-libs/wxGTK-2.4.2 ) + virtual/mta + dev-libs/gmp + app-text/tetex + dev-tex/latex2html" +RDEPEND="${DEPEND} + !bacula-clientonly? ( + sys-apps/mtx + app-arch/mt-st + )" + +src_compile() { + + # this resolves bug #181 + epatch ${FILESDIR}/1.36.2-cdrecord-configure.patch + + local myconf="" + + myconf=" + `use_enable readline` + `use_enable gnome` + `use_enable tcpd tcp-wrappers` + `use_enable X x`" + + # define this to skip building the other daemons ... + if use bacula-clientonly + then + myconf="${myconf} --enable-client-only" + fi + + # select database support + if ! use bacula-clientonly + then + # mysql is the recomended choice ... + if use mysql + then + myconf="${myconf} --with-mysql=/usr" + elif use postgres + then + myconf="${myconf} --with-postgresql=/usr" + elif use sqlite + then + myconf="${myconf} --with-sqlite=/usr" + elif use sqlite && use mysql + then + myconf="${myconf/--with-sqlite/}" + fi + fi + + if use wxwindows + then + myconf="${myconf} --enable-wx-console" + fi + + if use readline + then + myconf="${myconf} --enable-readline" + fi + + if use gnome + then + myconf="${myconf} --enable-tray-monitor" + fi + + ./configure \ + --enable-smartalloc \ + --prefix=/usr \ + --mandir=/usr/share/man \ + --with-pid-dir=/var/run \ + --sysconfdir=/etc/bacula \ + --infodir=/usr/share/info \ + --with-subsys-dir=/var/lock/subsys \ + --with-working-dir=/var/bacula \ + --with-scriptdir=/etc/bacula \ + --with-dir-user=root \ + --with-dir-group=bacula \ + --with-sd-user=root \ + --with-sd-group=bacula \ + --with-fd-user=root \ + --with-fd-group=bacula \ + --host=${CHOST} ${myconf} || die "bad ./configure" + + emake || die "compile problem" + + # for the rescue package regardless of use static + cd ${S}/src/filed + make static-bacula-fd + cd ${S} + + # make the docs + cd ${S}/doc/latex + make + cd ${S} + + if use static + then + cd ${S}/src/console + make static-console + cd ${S}/src/dird + make static-bacula-dir + if use gnome + then + cd ${S}/src/gnome-console + make static-gnome-console + fi + if use wxwindows + then + cd ${S}/src/wx-console + make static-wx-console + fi + cd ${S}/src/stored + make static-bacula-sd + fi +} + +src_install() { + make DESTDIR=${D} install || die + + if use static + then + cd ${S}/src/filed + cp static-bacula-fd ${D}/usr/sbin/bacula-fd + cd ${S}/src/console + cp static-console ${D}/usr/sbin/console + cd ${S}/src/dird + cp static-bacula-dir ${D}/usr/sbin/bacula-dir + if use gnome + then + cd ${S}/src/gnome-console + cp static-gnome-console ${D}/usr/sbin/gnome-console + fi + if use wxwindows + then + cd ${S}/src/wx-console + cp static-wx-console ${D}/usr/sbin/wx-console + fi + cd ${S}/src/stored + cp static-bacula-sd ${D}/usr/sbin/bacula-sd + fi + + # the menu stuff + if use gnome + then + mkdir -p ${D}/usr/share/pixmaps + mkdir -p ${D}/usr/share/applications + cp ${S}/scripts/bacula.png ${D}/usr/share/pixmaps/bacula.png + cp ${S}/scripts/bacula.desktop.gnome2.xsu ${D}/usr/share/applications/bacula.desktop + cp ${S}/src/tray-monitor/generic.xpm ${D}/usr/share/pixmaps/bacula-tray-monitor.xpm + cp ${S}/scripts/bacula-tray-monitor.desktop \ + ${D}/usr/share/applications/bacula-tray-monitor.desktop + chmod 755 ${D}/usr/sbin/bacula-tray-monitor + chmod 644 ${D}/etc/bacula/tray-monitor.conf + fi + + if ! use bacula-clientonly + then + # the database update scripts + mkdir -p ${D}/etc/bacula/updatedb + cp ${S}/updatedb/* ${D}/etc/bacula/updatedb/ + chmod 754 ${D}/etc/bacula/updatedb/* + + # the logrotate configuration + mkdir -p ${D}/etc/logrotate.d + cp ${S}/scripts/logrotate ${D}/etc/logrotate.d/bacula + chmod 644 ${D}/etc/logrotate.d/bacula + + # the logwatch scripts + mkdir -p ${D}/etc/log.d/conf/logfiles + mkdir -p ${D}/etc/log.d/conf/services + mkdir -p ${D}/etc/log.d/scripts/services + cp ${S}/scripts/logwatch/bacula ${D}/etc/log.d/scripts/services/bacula + cp ${S}/scripts/logwatch/logfile.bacula.conf ${D}/etc/log.d/conf/logfiles/bacula.conf + cp ${S}/scripts/logwatch/services.bacula.conf ${D}/etc/log.d/conf/services/bacula.conf + chmod 755 ${D}/etc/log.d/scripts/services/bacula + chmod 644 ${D}/etc/log.d/conf/logfiles/bacula.conf + chmod 644 ${D}/etc/log.d/conf/services/bacula.conf + + fi + + # the cdrom rescue package + mkdir -p ${D}/etc/bacula/rescue/cdrom + cp -R ${S}/rescue/linux/cdrom/* ${D}/etc/bacula/rescue/cdrom/ + mkdir ${D}/etc/bacula/rescue/cdrom/bin + cp ${S}/src/filed/static-bacula-fd ${D}/etc/bacula/rescue/cdrom/bin/bacula-fd + chmod 754 ${D}/etc/bacula/rescue/cdrom/bin/bacula-fd + + # documentation + for a in ${S}/{ChangeLog,README,ReleaseNotes,kernstodo,LICENSE,doc/latex/bacula.pdf} + do + dodoc $a + done + + dohtml -r ${S}/doc/latex/bacula + + # clean up permissions left broken by install + chmod o-r ${D}/etc/bacula/query.sql + + # remove the working dir so we can add it postinst with group + rmdir ${D}/var/bacula + + # init scripts + exeinto /etc/init.d + if use bacula-clientonly + then + newexe ${S}/platforms/gentoo/bacula-fd bacula-fd + else + if use bacula-split + then + newexe ${S}/platforms/gentoo/bacula-fd bacula-fd + newexe ${S}/platforms/gentoo/bacula-sd bacula-sd + newexe ${S}/platforms/gentoo/bacula-dir bacula-dir + else + newexe ${S}/platforms/gentoo/bacula-init bacula + fi + fi +} + +pkg_postinst() { + # create the daemon group + HAVE_BACULA=`cat /etc/group | grep bacula 2>/dev/null` + if [ -z $HAVE_BACULA ]; then + enewgroup bacula + einfo + einfo "The group bacula has been created. Any users you add to" + einfo "this group have access to files created by the daemons." + fi + + # the working directory + install -m0750 -o root -g bacula -d ${ROOT}/var/bacula + + # link installed bacula-fd.conf into rescue directory + #ln -s /etc/bacula/bacula-fd.conf /etc/bacula/rescue/cdrom/bacula-fd.conf + # no longer necessary after 1.36.2 + + einfo + einfo "The CDRom rescue disk package has been installed into the" + einfo "/etc/bacula/rescue/cdrom/ directory. Please examine the manual" + einfo "for information on creating a rescue CD. CDR device detection" + einfo "during build has been disabled to prevent sandbox violations." + einfo "You need to examine /etc/bacula/rescue/cdrom/Makefile and adjust" + einfo "the device information for your CD recorder." + einfo + + if ! use bacula-clientonly; then + einfo + einfo "Please note either/or nature of database USE flags for" + einfo "Bacula. If mysql is set, it will be used, else postgres" + einfo "else finally SQLite. If you wish to have multiple DBs on" + einfo "one system, you may wish to unset auxillary DBs for this" + einfo "build." + einfo + + if use mysql + then + # test for an existing database + # note: this ASSUMES no password has been set for bacula database + DB_VER=`mysql 2>/dev/null bacula -e 'select * from Version;'|tail -n 1` + if [ -z "$DB_VER" ]; then + einfo "This appears to be a new install and you plan to use mysql" + einfo "for your catalog database. You should now create it by doing" + einfo "these commands:" + einfo " sh /etc/bacula/grant_mysql_privileges" + einfo " sh /etc/bacula/create_mysql_database" + einfo " sh /etc/bacula/make_mysql_tables" + elif [ "$DB_VER" -lt "8" ]; then + elinfo "This release requires an upgrade to your bacula database" + einfo "as the database format has changed. Please read the" + einfo "manual chapter for how to upgrade your database!!!" + einfo + einfo "Backup your database with the command:" + einfo " mysqldump -f --opt bacula | bzip2 > /var/bacula/bacula_backup.sql.bz" + einfo + einfo "Then update your database using the scripts found in" + einfo "/etc/bacula/updatedb/ from your current version $DB_VER to" + einfo "version 8. Note that scripts must be run in order from your" + einfo "version to the current version." + fi + fi + + if use postgres + then + # test for an existing database + # note: this ASSUMES no password has been set for bacula database + DB_VER=`echo 'select * from Version;' | psql bacula 2>/dev/null | tail -3 | head -1` + if [ -z "$DB_VER" ]; then + einfo "This appears to be a new install and you plan to use postgresql" + einfo "for your catalog database. You should now create it by doing" + einfo "these commands:" + einfo " sh /etc/bacula/create_postgresql_database" + einfo " sh /etc/bacula/make_postgresql_tables" + einfo " sh /etc/bacula/grant_postgresql_privileges" + elif [ "$DB_VER" -lt "8" ]; then + elinfo "This release requires an upgrade to your bacula database" + einfo "as the database format has changed. Please read the" + einfo "manual chapter for how to upgrade your database!!!" + einfo + einfo "Backup your database with the command:" + einfo " pg_dump bacula | bzip2 > /var/bacula/bacula_backup.sql.bz2" + einfo + einfo "Then update your database using the scripts found in" + einfo "/etc/bacula/updatedb/ from your current version $DB_VER to" + einfo "version 8. Note that scripts must be run in order from your" + einfo "version to the current version." + fi + fi + + if use sqlite + then + # test for an existing database + # note: this ASSUMES no password has been set for bacula database + DB_VER=`echo "select * from Version;" | sqlite 2>/dev/null /var/bacula/bacula.db | tail -n 1` + if [ -z "$DB_VER" ]; then + einfo "This appears to be a new install and you plan to use sqlite" + einfo "for your catalog database. You should now create it by doing" + einfo "these commands:" + einfo " sh /etc/bacula/grant_sqlite_privileges" + einfo " sh /etc/bacula/create_sqlite_database" + einfo " sh /etc/bacula/make_sqlite_tables" + elif [ "$DB_VER" -lt "8" ]; then + elinfo "This release requires an upgrade to your bacula database" + einfo "as the database format has changed. Please read the" + einfo "manual chapter for how to upgrade your database!!!" + einfo + einfo "Backup your database with the command:" + einfo " echo .dump | sqlite /var/bacula/bacula.db | bzip2 > \\" + einfo " /var/bacula/bacula_backup.sql.bz2" + einfo + einfo "Then update your database using the scripts found in" + einfo "/etc/bacula/updatedb/ from your current version $DB_VER to" + einfo "version 8. Note that scripts must be run in order from your" + einfo "version to the current version." + fi + fi + fi + + einfo + einfo "Review your configuration files in /etc/bacula and" + einfo "start the daemons:" + if use bacula-clientonly; then + einfo " /etc/init.d/bacula-fd start" + else + if use bacula-split; then + einfo " /etc/init.d/bacula-sd start" + einfo " /etc/init.d/bacula-dir start" + einfo " /etc/init.d/bacula-fd start" + einfo " or /etc/bacula/bacula will start all three." + else + einfo " /etc/init.d/bacula start" + fi + fi + einfo + einfo "You may also wish to:" + if use bacula-clientonly; then + einfo " rc-update add bacula-fd default" + else + if use bacula-split; then + einfo " rc-update add bacula-sd default" + einfo " rc-update add bacula-dir default" + einfo " rc-update add bacula-fd default" + else + einfo " rc-update add bacula default" + fi + fi + einfo +} diff --git a/Branch-2.2/bacula/platforms/install-symlinks b/Branch-2.2/bacula/platforms/install-symlinks new file mode 100755 index 0000000000..ed91cd62d6 --- /dev/null +++ b/Branch-2.2/bacula/platforms/install-symlinks @@ -0,0 +1,99 @@ +#!/bin/sh +# +# install-symlinks.sh - shell script for installing symbolic lynks +# for system startup +# +# Copyright (C) 1999-2000 Riccardo Facchetti +# +# Modified for use with Bacula 15 November 2001, Kern Sibbald +# +# +# Theory of operation: +# this script attempts to detect which runlevels are appropriate for +# apcupsd startup and consequently installs the OS startup symbolic links +# in the correct locations. +# +# For example, suse distribution uses sysvinit so the scripts will do: +# 1. searches for init scripts directory +# 2. try to detect on which runlevels is appropriate to run apcupsd +# (presumably all the runlevels at which also syslogd runs) +# 3. installs the symbolic links into the previously detected runlevels + +action=$1 +dist=$2 + +if [ -z "$action" -o -z "$dist" ] +then + echo "Missing parameter on command line." + exit 1 +fi + +case $action in + install) + echo "Generic symlinks installation..." + case $dist in + suse) + + if [ -d /etc/rc.d ] + then + initrcd="/etc/rc.d" + elif [ -d /sbin/init.d ] + then + initrcd="/sbin/init.d" + else + echo "Can not find init scripts directory." + exit 1 + fi + + for runlevel in 1 2 3 4 5 + do + if [ -L $initrcd/rc$runlevel.d/S*syslog ] + then + echo " Installing runlevel $runlevel..." + ln -sf $initrcd/apcupsd $initrcd/rc$runlevel.d/K20apcupsd + ln -sf $initrcd/apcupsd $initrcd/rc$runlevel.d/S20apcupsd + fi + done + ;; + *) + echo " relying on $dist-specific Makefile for symlink installation" + ;; + esac + ;; + uninstall) + echo "Genering symlinks uninstallation..." + case $dist in + suse) + + if [ -d /etc/rc.d ] + then + initrcd="/etc/rc.d" + elif [ -d /sbin/init.d ] + then + initrcd="/sbin/init.d" + else + echo "Can not detect init scripts directory." + exit 1 + fi + + for runlevel in 1 2 3 4 5 + do + if [ -L $initrcd/rc$runlevel.d/S20apcupsd ] + then + echo " Removing runlevel $runlevel..." + rm -f $initrcd/rc$runlevel.d/K20apcupsd + rm -f $initrcd/rc$runlevel.d/S20apcupsd + fi + done + ;; + *) + echo " relying on $dist-specific Makefile for symlink uninstallation" + ;; + esac + ;; + *) + echo "Wrong parameter $action." + exit 1 +esac + +exit 0 diff --git a/Branch-2.2/bacula/platforms/irix/Makefile.in b/Branch-2.2/bacula/platforms/irix/Makefile.in new file mode 100644 index 0000000000..067d092a1d --- /dev/null +++ b/Branch-2.2/bacula/platforms/irix/Makefile.in @@ -0,0 +1,83 @@ +# +# This file is used as the template to create the +# Makefile for the Solaris specific installation. +# +# 15 November 2001 -- Kern Sibbald +# +# for Bacula release @VERSION@ (@DATE@) -- @DISTNAME@ +# + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ + +nothing: + +install: install-autostart + +install-autostart: install-autostart-fd install-autostart-sd install-autostart-dir + + +install-autostart-fd: + @rm -f /etc/rc0.d/K20bacula-fd + @rm -f /etc/rc1.d/S99bacula-fd + @rm -f /etc/rc2.d/S99bacula-fd + @$(INSTALL_PROGRAM) -m 744 bacula-fd /etc/init.d/bacula-fd + # set symlinks for script at startup and shutdown + @ln -f -s /etc/init.d/bacula-fd /etc/rc0.d/K20bacula-fd + @ln -f -s /etc/init.d/bacula-fd /etc/rc1.d/S99bacula-fd + @ln -f -s /etc/init.d/bacula-fd /etc/rc2.d/S99bacula-fd + + +install-autostart-sd: + @rm -f /etc/rc0.d/K20bacula-sd + @rm -f /etc/rc1.d/S99bacula-sd + @rm -f /etc/rc2.d/S99bacula-sd + @$(INSTALL_PROGRAM) -m 744 bacula-sd /etc/rc.d/init.d/bacula-sd + # set symlinks for script at startup and shutdown + @ln -f -s /etc/init.d/bacula-sd /etc/rc0.d/K20bacula-sd + @ln -f -s /etc/init.d/bacula-sd /etc/rc1.d/S99bacula-sd + @ln -f -s /etc/init.d/bacula-sd /etc/rc2.d/S99bacula-sd + + +install-autostart-dir: + @rm -f /etc/rc0.d/K20bacula-dir + @rm -f /etc/rc1.d/S99bacula-dir + @rm -f /etc/rc2.d/S99bacula-dir + @$(INSTALL_PROGRAM) -m 744 bacula-dir /etc/rc.d/init.d/bacula-dir + # set symlinks for script at startup and shutdown + @ln -f -s /etc/init.d/bacula-dir /etc/rc0.d/K20bacula-dir + @ln -f -s /etc/init.d/bacula-dir /etc/rc1.d/S99bacula-dir + @ln -f -s /etc/init.d/bacula-dir /etc/rc2.d/S99bacula-dir + + +uninstall: uninstall-autostart + +uninstall-autostart: uninstall-autostart-fd uninstall-autostart-sd uninstall-autostart-dir + +uninstall-autostart-fd: + @rm -f /etc/rc0.d/K20bacula-fd + @rm -f /etc/rc1.d/S99bacula-fd + @rm -f /etc/rc2.d/S99bacula-fd + @rm -f /etc/rc.d/init.d/bacula-fd + + +uninstall-autostart-sd: + @rm -f /etc/rc0.d/K20bacula-sd + @rm -f /etc/rc1.d/S99bacula-sd + @rm -f /etc/rc2.d/S99bacula-sd + @rm -f /etc/rc.d/init.d/bacula-sd + +uninstall-autostart-dir: + @rm -f /etc/rc0.d/K20bacula-dir + @rm -f /etc/rc1.d/S99bacula-dir + @rm -f /etc/rc2.d/S99bacula-dir + @rm -f /etc/rc.d/init.d/bacula-dir + +clean: + @rm -f bacula-sd bacula-fd bacula-dir + +distclean: clean + @rm -f Makefile bacula-*.spec + +devclean: clean + @rm -f Makefile bacula-*.spec diff --git a/Branch-2.2/bacula/platforms/irix/bacula-dir.in b/Branch-2.2/bacula/platforms/irix/bacula-dir.in new file mode 100755 index 0000000000..e7e76b1618 --- /dev/null +++ b/Branch-2.2/bacula/platforms/irix/bacula-dir.in @@ -0,0 +1,38 @@ +#! /bin/sh +# +# bacula This shell script takes care of starting and stopping +# the bacula Director daemon +# +# chkconfig: 2345 90 9 +# description: It comes by night and sucks the vital essence from your computers. +# +# For Bacula release @VERSION@ (@DATE@) -- @DISTNAME@ +# + +RETVAL=0 +case "$1" in + start) + echo "Starting the Bacula Director: " + @sbindir@/bacula-dir $2 -c @sysconfdir@/bacula-dir.conf + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && touch @subsysdir@/bacula-dir + ;; + stop) + echo "Stopping the Director daemon: " +# killproc @sbindir@/bacula-dir + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && rm -f @subsysdir@/bacula-dir + ;; + restart) + $0 stop + sleep 5 + $0 start + ;; + *) + echo "Usage: $0 {start|stop|restart}" + exit 1 + ;; +esac +exit 0 diff --git a/Branch-2.2/bacula/platforms/irix/bacula-fd.in b/Branch-2.2/bacula/platforms/irix/bacula-fd.in new file mode 100755 index 0000000000..d7672d3f51 --- /dev/null +++ b/Branch-2.2/bacula/platforms/irix/bacula-fd.in @@ -0,0 +1,39 @@ +#! /bin/sh +# +# bacula This shell script takes care of starting and stopping +# the bacula File daemon. +# +# chkconfig: 2345 90 9 +# description: It comes by night and sucks the vital essence from your computers. +# +# For Bacula release @VERSION@ (@DATE@) -- @DISTNAME@ +# + +case "$1" in + 'start') + echo "Starting the Bacula File daemon: " + if test -x @sbindir@/bacula-fd && test -f @sysconfidir@/bacula-fd.conf; then + exec @sbindir@/bacula-fd $2 -c @sysconfdir@/bacula-fd.conf + fi + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && touch @subsysdir@/bacula-fd + ;; + 'stop') + echo "Stopping the Bacula File daemon: " + /sbin/killall -k 10 -TERM @sbindir@/bacula-fd + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && rm -f @subsysdir@/bacula-fd + ;; + 'restart') + $0 stop + sleep 5 + $0 start + ;; + *) + echo "Usage: $0 {start|stop|restart}" + exit 1 + ;; +esac +exit 0 diff --git a/Branch-2.2/bacula/platforms/irix/bacula-sd.in b/Branch-2.2/bacula/platforms/irix/bacula-sd.in new file mode 100755 index 0000000000..fb55fb47cf --- /dev/null +++ b/Branch-2.2/bacula/platforms/irix/bacula-sd.in @@ -0,0 +1,37 @@ +#! /bin/sh +# +# bacula This shell script takes care of starting and stopping +# the bacula Storage daemon. +# +# chkconfig: 2345 90 9 +# description: It comes by night and sucks the vital essence from your computers. +# +# For Bacula release @VERSION@ (@DATE@) -- @DISTNAME@ +# + +case "$1" in + start) + echo "Starting the Bacula Storage daemon: " + @sbindir@/bacula-sd $2 -c @sysconfdir@/bacula-sd.conf + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && touch @subsysdir@/bacula-sd + ;; + stop) + echo "Stopping the Bacula Storage daemon: " +# killproc @sbindir@/bacula-sd + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && rm -f @subsysdir@/bacula-sd + ;; + restart) + $0 stop + sleep 5 + $0 start + ;; + *) + echo "Usage: $0 {start|stop|restart}" + exit 1 + ;; +esac +exit 0 diff --git a/Branch-2.2/bacula/platforms/mandrake/Makefile.in b/Branch-2.2/bacula/platforms/mandrake/Makefile.in new file mode 100644 index 0000000000..1d43bbb9e6 --- /dev/null +++ b/Branch-2.2/bacula/platforms/mandrake/Makefile.in @@ -0,0 +1,85 @@ +# +# This file is used as the template to create the +# Makefile for the Mandrake specific installation. +# +# 15 November 2001 -- Kern Sibbald +# +# for Bacula release @VERSION@ (@DATE@) -- @DISTNAME@ +# + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ + +nothing: + +install: install-autostart + +install-autostart: install-autostart-fd install-autostart-sd install-autostart-dir + + +install-autostart-fd: + @if test x$(DESTDIR) = x -a -f /etc/rc.d/init.d/bacula-fd; then \ + /sbin/chkconfig --del bacula-fd; \ + fi + @$(INSTALL_PROGRAM) -m 744 bacula-fd $(DESTDIR)/etc/rc.d/init.d/bacula-fd + # set symlinks for script at startup and shutdown + @if test x$(DESTDIR) = x ; then \ + /sbin/chkconfig --add bacula-fd; \ + fi + + +install-autostart-sd: + @if test x$(DESTDIR) = x -a -f /etc/rc.d/init.d/bacula-sd; then \ + /sbin/chkconfig --del bacula-sd; \ + fi + @$(INSTALL_PROGRAM) -m 744 bacula-sd $(DESTDIR)/etc/rc.d/init.d/bacula-sd + # set symlinks for script at startup and shutdown + @if test x$(DESTDIR) = x ; then \ + /sbin/chkconfig --add bacula-sd; \ + fi + + +install-autostart-dir: + @if test x$(DESTDIR) = x -a -f /etc/rc.d/init.d/bacula-dir; then \ + /sbin/chkconfig --del bacula-dir; \ + fi + @$(INSTALL_PROGRAM) -m 744 bacula-dir $(DESTDIR)/etc/rc.d/init.d/bacula-dir + # set symlinks for script at startup and shutdown + @if test x$(DESTDIR) = x ; then \ + /sbin/chkconfig --add bacula-dir; \ + fi + + +uninstall: uninstall-autostart + +uninstall-autostart: uninstall-autostart-fd uninstall-autostart-sd uninstall-autostart-dir + +uninstall-autostart-fd: + @if test x$(DESTDIR) = x -a -f /etc/rc.d/init.d/bacula-fd; then \ + /sbin/chkconfig --del bacula-fd; \ + fi + @rm -f $(DESTDIR)/etc/rc.d/init.d/bacula-fd + + +uninstall-autostart-sd: + @if test x$(DESTDIR) = x -a -f /etc/rc.d/init.d/bacula-sd; then \ + /sbin/chkconfig --del bacula-sd; \ + fi + @rm -f $(DESTDIR)/etc/rc.d/init.d/bacula-sd + +uninstall-autostart-dir: + @if test x$(DESTDIR) = x -a -f /etc/rc.d/init.d/bacula-dir; then \ + /sbin/chkconfig --del bacula-dir; \ + fi + @rm -f $(DESTDIR)/etc/rc.d/init.d/bacula-dir + +clean: + @rm -f 1 2 3 + +distclean: clean + @rm -f Makefile bacula-*.spec bacula.*.spec bacula.spec + @rm -f bacula-sd bacula-fd bacula-dir + +devclean: clean + @rm -f Makefile bacula-*.spec bacula.*.spec bacula.spec + @rm -f bacula-sd bacula-fd bacula-dir diff --git a/Branch-2.2/bacula/platforms/mandrake/bacula-dir.in b/Branch-2.2/bacula/platforms/mandrake/bacula-dir.in new file mode 100755 index 0000000000..0f82a1a4a5 --- /dev/null +++ b/Branch-2.2/bacula/platforms/mandrake/bacula-dir.in @@ -0,0 +1,44 @@ +#! /bin/sh +# +# bacula This shell script takes care of starting and stopping +# the bacula Director daemon +# +# chkconfig: 2345 90 9 +# description: It comes by night and sucks the vital essence from your computers. +# +# For Bacula release @VERSION@ (@DATE@) -- @DISTNAME@ +# + +# Source function library +. /etc/rc.d/init.d/functions + +RETVAL=0 +case "$1" in + start) + echo -n "Starting the Bacula Director: " + daemon @sbindir@/bacula-dir $2 -c @sysconfdir@/bacula-dir.conf + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && touch @subsysdir@/bacula-dir + ;; + stop) + echo -n "Stopping the Director daemon: " + killproc @sbindir@/bacula-dir + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && rm -f @subsysdir@/bacula-dir + ;; + restart) + $0 stop + sleep 5 + $0 start + ;; + status) + status @sbindir@/bacula-dir + ;; + *) + echo "Usage: $0 {start|stop|restart|status}" + exit 1 + ;; +esac +exit 0 diff --git a/Branch-2.2/bacula/platforms/mandrake/bacula-fd.in b/Branch-2.2/bacula/platforms/mandrake/bacula-fd.in new file mode 100755 index 0000000000..a6f31e9198 --- /dev/null +++ b/Branch-2.2/bacula/platforms/mandrake/bacula-fd.in @@ -0,0 +1,43 @@ +#! /bin/sh +# +# bacula This shell script takes care of starting and stopping +# the bacula File daemon. +# +# chkconfig: 2345 90 9 +# description: It comes by night and sucks the vital essence from your computers. +# +# For Bacula release @VERSION@ (@DATE@) -- @DISTNAME@ +# + +# Source function library +. /etc/rc.d/init.d/functions + +case "$1" in + start) + echo -n "Starting the Bacula File daemon: " + daemon @sbindir@/bacula-fd $2 -c @sysconfdir@/bacula-fd.conf + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && touch @subsysdir@/bacula-fd + ;; + stop) + echo -n "Stopping the Bacula File daemon: " + killproc @sbindir@/bacula-fd + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && rm -f @subsysdir@/bacula-fd + ;; + restart) + $0 stop + sleep 5 + $0 start + ;; + status) + status @sbindir@/bacula-fd + ;; + *) + echo "Usage: $0 {start|stop|restart|status}" + exit 1 + ;; +esac +exit 0 diff --git a/Branch-2.2/bacula/platforms/mandrake/bacula-sd.in b/Branch-2.2/bacula/platforms/mandrake/bacula-sd.in new file mode 100755 index 0000000000..f496b14f88 --- /dev/null +++ b/Branch-2.2/bacula/platforms/mandrake/bacula-sd.in @@ -0,0 +1,43 @@ +#! /bin/sh +# +# bacula This shell script takes care of starting and stopping +# the bacula Storage daemon. +# +# chkconfig: 2345 90 9 +# description: It comes by night and sucks the vital essence from your computers. +# +# For Bacula release @VERSION@ (@DATE@) -- @DISTNAME@ +# + +# Source function library +. /etc/rc.d/init.d/functions + +case "$1" in + start) + echo -n "Starting the Bacula Storage daemon: " + daemon @sbindir@/bacula-sd $2 -c @sysconfdir@/bacula-sd.conf + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && touch @subsysdir@/bacula-sd + ;; + stop) + echo -n "Stopping the Bacula Storage daemon: " + killproc @sbindir@/bacula-sd + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && rm -f @subsysdir@/bacula-sd + ;; + restart) + $0 stop + sleep 5 + $0 start + ;; + status) + status @sbindir@/bacula-sd + ;; + *) + echo "Usage: $0 {start|stop|restart|status}" + exit 1 + ;; +esac +exit 0 diff --git a/Branch-2.2/bacula/platforms/mandrake/bacula.spec.bluca.in b/Branch-2.2/bacula/platforms/mandrake/bacula.spec.bluca.in new file mode 100644 index 0000000000..7f645fa8c7 --- /dev/null +++ b/Branch-2.2/bacula/platforms/mandrake/bacula.spec.bluca.in @@ -0,0 +1,501 @@ +%define name bacula +%define version 1.32d +%define release 1mdk + +%define MYSQL 0 +%define GNOME 0 +%define TCPW 1 + +%{?_with_mysql: %{expand: %%global MYSQL 1}} +%{?_without_mysql: %{expand: %%global MYSQL 0}} +%{?_with_gnome: %{expand: %%global GNOME 1}} +%{?_without_gnome: %{expand: %%global GNOME 0}} +%{?_with_wrap: %{expand: %%global TCPW 1}} +%{?_without_wrap: %{expand: %%global TCPW 0}} + +%define blurb Bacula - It comes by night and sucks the vital essence from your computers. + +Summary: Bacula - The Network Backup Solution +Name: %{name} +Version: %{version} +Release: %{release} +Group: Archiving/Backup +License: GPL +Source: http://www.prdownloads.sourceforge.net/bacula/%{name}-%{version}.tar.bz2 +Source1: %{name}-icons.tar.bz2 +BuildRoot: %{_tmppath}/%{name}-root +URL: http://www.bacula.org/ +BuildRequires: readline-devel, perl-base, zlib-devel +%if %{TCPW} +BuildRequires: tcp_wrappers-devel +%endif +Patch0: bacula-1.32d-config.diff.bz2 +Patch1: bacula-1.30a-prompt.diff.bz2 + +%description +%{blurb} +Bacula is a set of computer programs that permit you (or the system +administrator) to manage backup, recovery, and verification of computer +data across a network of computers of different kinds. In technical terms, +it is a network client/server based backup program. Bacula is relatively +easy to use and efficient, while offering many advanced storage management +features that make it easy to find and recover lost or damaged files. + +%package dir +Summary: Bacula Director and Catalog services +Group: Archiving/Backup +Prereq: rpm-helper, perl-base +%if %{MYSQL} +Requires: MySQL >= 3.23 +BuildRequires: MySQL-devel >= 3.23 +%else +Requires: sqlite-tools +BuildRequires: sqlite-devel +%endif +Conflicts: bacula-fd < %{version} +Conflicts: bacula-sd < %{version} + +%description dir +%{blurb} +Bacula Director is the program that supervises all the backup, restore, verify +and archive operations. The system administrator uses the Bacula Director to +schedule backups and to recover files. +Catalog services are comprised of the software programs responsible for +maintaining the file indexes and volume databases for all files backed up. +The Catalog services permit the System Administrator or user to quickly locate +and restore any desired file, since it maintains a record of all Volumes used, +all Jobs run, and all Files saved. +%if %{MYSQL} +This build requires MySQL to be installed separately as the catalog database. +%else +This build requires sqlite to be installed separately as the catalog database. +%endif + +%package console +Summary: Bacula Console +Group: Archiving/Backup +Prereq: sed + +%description console +%{blurb} +Bacula Console is the program that allows the administrator or user to +communicate with the Bacula Director. +This is the text only console interface. + +%if %{GNOME} +%package console-gnome +Summary: Bacula Gnome Console +Group: Archiving/Backup +#BuildRequires: libgnome32-devel +BuildRequires: libgnomeui2-devel +Prereq: sed + +%description console-gnome +%{blurb} +Bacula Console is the program that allows the administrator or user to +communicate with the Bacula Director. +This is the GNOME GUI interface. +%endif + +%package fd +Summary: Bacula File services (Client) +Group: Archiving/Backup +Prereq: rpm-helper +Prereq: sed +Conflicts: bacula-dir < %{version} + +%description fd +%{blurb} +Bacula File services (or Client program) is the software program that is +installed on the machine to be backed up. It is specific to the operating +system on which it runs and is responsible for providing the file attributes +and data when requested by the Director. The File services are also responsible +for the file system dependent part of restoring the file attributes and data +during a recovery operation. +This program runs as a daemon on the machine to be backed up, and in some of +the documentation, the File daemon is referred to as the Client (for example in +Bacula configuration file). + +%package sd +Summary: Bacula Storage services +Group: Archiving/Backup +Prereq: rpm-helper +Prereq: sed +Conflicts: bacula-dir < %{version} + +%description sd +%{blurb} +Bacula Storage services consist of the software programs that perform the +storage and recovery of the file attributes and data to the physical backup +media or volumes. In other words, the Storage daemon is responsible for reading +and writing your tapes (or other storage media, e.g. files). +The Storage services runs as a daemon on the machine that has the backup +device (usually a tape drive). + +%prep +%setup -q -c +cd %{name}-%{version} +%patch0 -p1 -b .config +%patch1 -p1 -b .prompt +mkdir doc/manual +mv doc/html-manual/*.html doc/manual +mv doc/html-manual/*.css doc/manual +mv doc/html-manual/*.gif doc/manual + +%build +cd %{name}-%{version} +%serverbuild +%configure \ + --enable-smartalloc \ +%if %{MYSQL} + --with-mysql \ +%else + --with-sqlite \ +%endif +%if %{GNOME} + --enable-gnome \ +%endif +%if %{TCPW} + --with-tcp-wrappers \ +%endif + --sysconfdir=%{_sysconfdir}/%{name} \ + --with-scriptdir=%{_libexecdir}/%{name} \ + --with-working-dir=%{_localstatedir}/%{name} \ + --with-subsys-dir=/var/lock/subsys \ + --with-dir-password="#FAKE#DIR#PASSWORD#" \ + --with-fd-password="#FAKE#FD#PASSWORD#" \ + --with-sd-password="#FAKE#SD#PASSWORD#" + +%make + +%install +cd %{name}-%{version} +rm -rf %{buildroot} +%makeinstall sysconfdir=%{buildroot}%{_sysconfdir}/%{name} scriptdir=%{buildroot}%{_libexecdir}/%{name} working_dir=%{buildroot}%{_localstatedir}/%{name} + +# install the upgrade scripts +%if %{MYSQL} +install -m 755 src/cats/alter_mysql_tables %{buildroot}%{_libexecdir}/%{name} +%else +install -m 755 src/cats/alter_sqlite_tables %{buildroot}%{_libexecdir}/%{name} +%endif + +# install the init scripts +mkdir -p %{buildroot}%{_initrddir} +install -m 755 platforms/mandrake/bacula-dir %{buildroot}%{_initrddir}/bacula-dir +install -m 755 platforms/mandrake/bacula-fd %{buildroot}%{_initrddir}/bacula-fd +install -m 755 platforms/mandrake/bacula-sd %{buildroot}%{_initrddir}/bacula-sd + +# install the logrotate file +mkdir -p %{buildroot}%{_sysconfdir}/logrotate.d +cp scripts/logrotate %{buildroot}%{_sysconfdir}/logrotate.d/bacula-dir + +mkdir -p %{buildroot}%{_localstatedir}/%{name} + +%if %{GNOME} +# install the menu stuff +mkdir -p $RPM_BUILD_ROOT%{_menudir} +cat << EOF > $RPM_BUILD_ROOT%{_menudir}/%{name}-console-gnome +?package(%{name}-console-gnome): command="%{_sbindir}/gnome-console" icon="%{name}.png" needs="x11" title="Bacula Console" longtitle="Bacula Director Console" section="Applications/Archiving/Backup" +EOF +mkdir -p %{buildroot}%{_iconsdir} +tar jxvf %{SOURCE1} -C %{buildroot}%{_iconsdir} +%endif + +perl -spi -e 's/"#FAKE#(\w+)#PASSWORD#"/#YOU MUST SET THE $1 PASSWORD#/' %{buildroot}%{_sysconfdir}/%{name}/*.conf +touch %{buildroot}%{_sysconfdir}/%{name}/.pw.sed + +%clean +rm -rf %{buildroot} + +%files dir +%defattr(644, root, root, 755) +%doc %{name}-%{version}/ChangeLog %{name}-%{version}/CheckList %{name}-%{version}/ReleaseNotes %{name}-%{version}/kernstodo +%doc %{name}-%{version}/doc/*.pdf %{name}-%{version}/doc/manual %{name}-%{version}/examples +%attr(600, root, root) %config(noreplace) %{_sysconfdir}/%{name}/bacula-dir.conf +%ghost %{_sysconfdir}/%{name}/.pw.sed +%config(noreplace) %{_sysconfdir}/logrotate.d/bacula-dir +%defattr (755, root, root) +%config(noreplace) %{_initrddir}/bacula-dir +%{_sbindir}/bacula-dir +%{_sbindir}/btraceback +%{_sbindir}/dbcheck +%{_sbindir}/smtp +%dir %{_libexecdir}/%{name} +%attr(644, root, root) %{_libexecdir}/%{name}/btraceback.gdb +%if %{MYSQL} +%{_libexecdir}/%{name}/create_mysql_database +%{_libexecdir}/%{name}/drop_mysql_tables +%{_libexecdir}/%{name}/grant_mysql_privileges +%{_libexecdir}/%{name}/make_mysql_tables +%{_libexecdir}/%{name}/alter_mysql_tables +%else +%{_libexecdir}/%{name}/create_sqlite_database +%{_libexecdir}/%{name}/drop_sqlite_tables +%exclude %{_libexecdir}/%{name}/grant_mysql_privileges +%{_libexecdir}/%{name}/make_sqlite_tables +%{_libexecdir}/%{name}/alter_sqlite_tables +%endif +%{_libexecdir}/%{name}/delete_catalog_backup +%{_libexecdir}/%{name}/drop_bacula_tables +%{_libexecdir}/%{name}/make_bacula_tables +%{_libexecdir}/%{name}/make_catalog_backup +%attr(644, root, root) %{_libexecdir}/%{name}/query.sql +%attr(700, root, root) %dir %{_localstatedir}/%{name} + +%pre dir -p /usr/bin/perl +umask(0077); +if ( -f "%{_sysconfdir}/%{name}/.pw.sed") { + if ( -f "%{_sysconfdir}/%{name}/bacula-dir.conf") { + system "sed -e 's/s!\(.*\)!\(.*\)!/s!\2!\1!/' %{_sysconfdir}/%{name}/.pw.sed > %{_sysconfdir}/%{name}/.upw.sed"; + system "sed -f %{_sysconfdir}/%{name}/.upw.sed %{_sysconfdir}/%{name}/bacula-dir.conf > %{_sysconfdir}/%{name}/bacula-dir.conf.tmp"; + unlink "%{_sysconfdir}/%{name}/bacula-dir.conf"; + rename "%{_sysconfdir}/%{name}/bacula-dir.conf.tmp", "%{_sysconfdir}/%{name}/bacula-dir.conf"; + unlink "%{_sysconfdir}/%{name}/.upw.sed"; + } +} else { + mkdir("%{_sysconfdir}/%{name}"); + open(IN, "/dev/random") or die "$!"; + open(OUT, ">%{_sysconfdir}/%{name}/.pw.sed") or die "$!"; + foreach $c ("DIR","SD","FD") { + read(IN, $buf, 32); + my $res = pack("u", $buf); + $res =~ s/^.//mg; + $res =~ s/\n//g; + $res =~ tr|` -_|AA-Za-z0-9+/|; + print OUT "s!#YOU MUST SET THE $c PASSWORD#!\"$res\"!\n"; + } + close (IN); + close (OUT); +} + +%post dir +%if %{MYSQL} +# NOTE: IF THIS FAILS DUE TO MYSQL NEEDING A PASSWORD YOU ARE ON YOUR OWN +DB_VER=`mysql bacula -e 'select * from Version;'|tail -n 1 2>/dev/null` +if [ -z "$DB_VER" ]; then +# grant privileges and create tables + echo "Granting privileges for MySQL user bacula..." + %{_libexecdir}/%{name}/grant_mysql_privileges > dev/null + echo "Creating MySQL bacula database..." + %{_libexecdir}/%{name}/create_mysql_database > dev/null + echo "Creating bacula tables..." + %{_libexecdir}/%{name}/make_mysql_tables > dev/null +elif [ "$DB_VER" -lt "6" ]; then + echo "Backing up bacula tables" + mysqldump -f --opt bacula | bzip2 > %{_localstatedir}/%{name}/bacula_backup.sql.bz2 + echo "Upgrading bacula tables" + %{_libexecdir}/%{name}/alter_mysql_tables + echo "If bacula works correctly you can remove the backup file %{_localstatedir}/%{name}/bacula_backup.sql.bz2" +fi +%else +if [ -s %{_localstatedir}/%{name}/bacula.db ]; then +DB_VER=`echo "select * from Version;" | sqlite %{_localstatedir}/%{name}/bacula.db|tail -n 1 2>/dev/null` + if [ "$DB_VER" -lt "6" ]; then + echo "Backing up bacula tables" + echo ".dump" | sqlite %{_localstatedir}/%{name}/bacula.db | bzip2 > %{_localstatedir}/%{name}/bacula_backup.sql.bz2 + echo "Upgrading bacula tables" + %{_libexecdir}/%{name}/alter_sqlite_tables + echo "If bacula works correctly you can remove the backup file %{_localstatedir}/%{name}/bacula_backup.sql.bz2" + fi +else +# create the tables + echo "Creating bacula tables..." + %{_libexecdir}/%{name}/make_sqlite_tables > dev/null +fi +%endif +chmod -R 600 %{_localstatedir}/%{name}/* +for i in %{_sysconfdir}/%{name}/*.conf %{_sysconfdir}/%{name}/*.conf.rpmnew %{_sysconfdir}/%{name}/*.conf.rpmsave; do + if [ -s $i ]; then + sed -f %{_sysconfdir}/%{name}/.pw.sed $i > $i.tmp +# this is needed if upgrading from 1.30a or lower + sed -e '/SubSys[[:space:]]*Directory/I d' $i.tmp > $i + rm -f $i.tmp + fi +done +%_post_service bacula-dir + +%preun dir +%_preun_service bacula-dir + +%files fd +%defattr(755, root, root) +%attr(600, root, root) %config(noreplace) %{_sysconfdir}/%{name}/bacula-fd.conf +%config(noreplace) %{_initrddir}/bacula-fd +%{_sbindir}/bacula-fd +%{_sbindir}/btraceback +%{_sbindir}/smtp +%dir %{_libexecdir}/%{name} +%attr(644, root, root) %{_libexecdir}/%{name}/btraceback.gdb +%attr(700, root, root) %dir %{_localstatedir}/%{name} + +%pre fd +umask 077 +i=%{_sysconfdir}/%{name}/bacula-fd.conf +if [ -s %{_sysconfdir}/%{name}/.pw.sed -a -s $i ]; then + sed -e 's/s!\(.*\)!\(.*\)!/s!\2!\1!/' %{_sysconfdir}/%{name}/.pw.sed > %{_sysconfdir}/%{name}/.upw.sed + sed -f %{_sysconfdir}/%{name}/.upw.sed $i > $i.tmp + mv -f $i.tmp $i + rm -f %{_sysconfdir}/%{name}/.upw.sed +fi + +%post fd +%_post_service bacula-fd +if [ -s %{_sysconfdir}/%{name}/.pw.sed ]; then + for i in %{_sysconfdir}/%{name}/bacula-fd.conf %{_sysconfdir}/%{name}/bacula-fd.conf.rpmnew %{_sysconfdir}/%{name}/bacula-fd.conf.rpmsave; do + if [ -s $i ]; then + sed -f %{_sysconfdir}/%{name}/.pw.sed $i > $i.tmp +# this is needed if upgrading from 1.30a or lower + sed -e '/SubSys[[:space:]]*Directory/I d' $i.tmp > $i + rm -f $i.tmp + fi + done +fi + +%preun fd +%_preun_service bacula-fd + +%files sd +%defattr(755, root, root) +%attr(600, root, root) %config(noreplace) %{_sysconfdir}/%{name}/bacula-sd.conf +%config(noreplace) %{_initrddir}/bacula-sd +%{_sbindir}/bacula-sd +%{_sbindir}/bcopy +%{_sbindir}/bextract +%{_sbindir}/bls +%{_sbindir}/bscan +%{_sbindir}/btape +%{_sbindir}/btraceback +%{_sbindir}/smtp +%dir %{_libexecdir}/%{name} +%attr(644, root, root) %{_libexecdir}/%{name}/btraceback.gdb +%{_libexecdir}/%{name}/mtx-changer +%attr(700, root, root) %dir %{_localstatedir}/%{name} + +%pre sd +umask 077 +i=%{_sysconfdir}/%{name}/bacula-sd.conf +if [ -s %{_sysconfdir}/%{name}/.pw.sed -a -s $i ]; then + sed -e 's/s!\(.*\)!\(.*\)!/s!\2!\1!/' %{_sysconfdir}/%{name}/.pw.sed > %{_sysconfdir}/%{name}/.upw.sed + sed -f %{_sysconfdir}/%{name}/.upw.sed $i > $i.tmp + mv -f $i.tmp $i + rm -f %{_sysconfdir}/%{name}/.upw.sed +fi + +%post sd +%_post_service bacula-sd +if [ -s %{_sysconfdir}/%{name}/.pw.sed ]; then + for i in %{_sysconfdir}/%{name}/bacula-sd.conf %{_sysconfdir}/%{name}/bacula-sd.conf.rpmnew %{_sysconfdir}/%{name}/bacula-sd.conf.rpmsave; do + if [ -s $i ]; then + sed -f %{_sysconfdir}/%{name}/.pw.sed $i > $i.tmp +# this is needed if upgrading from 1.30a or lower + sed -e '/SubSys[[:space:]]*Directory/I d' $i.tmp > $i + rm -f $i.tmp + fi + done +fi + +%preun sd +%_preun_service bacula-sd + +%files console +%defattr(755, root, root) +%attr(600, root, root) %config(noreplace) %{_sysconfdir}/%{name}/console.conf +%{_sbindir}/console +%{_sbindir}/btraceback +%{_sbindir}/smtp +%dir %{_libexecdir}/%{name} +%attr(644, root, root) %{_libexecdir}/%{name}/btraceback.gdb + +%pre console +umask 077 +i=%{_sysconfdir}/%{name}/console.conf +if [ -s %{_sysconfdir}/%{name}/.pw.sed -a -s $i ]; then + sed -e 's/s!\(.*\)!\(.*\)!/s!\2!\1!/' %{_sysconfdir}/%{name}/.pw.sed > %{_sysconfdir}/%{name}/.upw.sed + sed -f %{_sysconfdir}/%{name}/.upw.sed $i > $i.tmp + mv -f $i.tmp $i + rm -f %{_sysconfdir}/%{name}/.upw.sed +fi + +%post console +if [ -s %{_sysconfdir}/%{name}/.pw.sed ]; then + for i in %{_sysconfdir}/%{name}/console.conf %{_sysconfdir}/%{name}/console.conf.rpmnew %{_sysconfdir}/%{name}/console.conf.rpmsave; do + if [ -s $i ]; then + sed -f %{_sysconfdir}/%{name}/.pw.sed $i > $i.tmp +# this is needed if upgrading from 1.30a or lower + sed -e '/SubSys[[:space:]]*Directory/I d' $i.tmp > $i + rm -f $i.tmp + fi + done +fi + +%if %{GNOME} +%files console-gnome +%defattr(644, root, root, 755) +%{_iconsdir}/bacula.png +%{_iconsdir}/mini/bacula.png +%{_iconsdir}/large/bacula.png +%{_menudir}/bacula-console-gnome +%attr(600, root, root) %config(noreplace) %{_sysconfdir}/%{name}/gnome-console.conf +%attr(755, root, root) %{_sbindir}/gnome-console +%attr(755, root, root) %{_sbindir}/btraceback +%attr(755, root, root) %{_sbindir}/smtp +%dir %{_libexecdir}/%{name} +%{_libexecdir}/%{name}/btraceback.gdb + +%pre console-gnome +umask 077 +i=%{_sysconfdir}/%{name}/gnome-console.conf +if [ -s %{_sysconfdir}/%{name}/.pw.sed -a -s $i ]; then + sed -e 's/s!\(.*\)!\(.*\)!/s!\2!\1!/' %{_sysconfdir}/%{name}/.pw.sed > %{_sysconfdir}/%{name}/.upw.sed + sed -f %{_sysconfdir}/%{name}/.upw.sed $i > $i.tmp + mv -f $i.tmp $i + rm -f %{_sysconfdir}/%{name}/.upw.sed +fi + +%post console-gnome +%update_menus +if [ -s %{_sysconfdir}/%{name}/.pw.sed ]; then + for i in %{_sysconfdir}/%{name}/gnome-console.conf %{_sysconfdir}/%{name}/gnome-console.conf.rpmnew %{_sysconfdir}/%{name}/gnome-console.conf.rpmsave; do + if [ -s $i ]; then + sed -f %{_sysconfdir}/%{name}/.pw.sed $i > $i.tmp +# this is needed if upgrading from 1.30a or lower + sed -e '/SubSys[[:space:]]*Directory/I d' $i.tmp > $i + rm -f $i.tmp + fi + done +fi + +%postun console-gnome +%clean_menus + +%endif + +%changelog +* Tue Nov 04 2003 Luca Berra 1.32d-1mdk +- 1.32d +- use gnome2 for console +- use tcp_wrappers +- try not to create unneeded .rpmnew in configuration + +* Fri Aug 12 2003 Luca Berra 1.31a-1mdk +- 1.31a +- modified %%post script to upgrade database if needed and do not try to create if it already exists. +- %%post_service should be last in %%post script +- changed sql upgrade script to remove multiple Version rows introduced by %%post +- trying to create the tables multiple times in previous releases. +- smtp is required by btraceback which is required by every daemon. +- added conflicts for lower version + +* Wed Aug 6 2003 Luca Berra 1.30a-3mdk +- changed sqlite requires to match package in contrib +- set passwords for single components to produce an error until user changes them +- try to change passwords automatically if dir package is installed + +* Sun Aug 3 2003 Luca Berra 1.30a-2mdk +- many spec changes +- almost please rpmlint +- fixed readline eats last message bug in console + +* Fri Aug 1 2003 Luca Berra 1.30a-1mdk +- Initial spec file from spec by D. Scott Barninger diff --git a/Branch-2.2/bacula/platforms/mandrake/bacula.spec.in b/Branch-2.2/bacula/platforms/mandrake/bacula.spec.in new file mode 100644 index 0000000000..bbfd7b7061 --- /dev/null +++ b/Branch-2.2/bacula/platforms/mandrake/bacula.spec.in @@ -0,0 +1,2559 @@ +# Bacula RPM spec file +# Copyright (C) 2000-2006 Kern Sibbald + +# Platform Build Configuration + +# basic defines for every build +%define _version @VERSION@ +%define _release 1 +%define depkgs_version 09Sep07 +%define _rescuever @VERSION@ +%define docs_version @VERSION@ + +# any patches for this release +# be sure to check the setup section for patch macros + +#-------------------------------------------------------------------------- +# it should not be necessary to change anything below here for a release +# except for patch macros in the setup section +#-------------------------------------------------------------------------- + +# third party packagers +%define _packager D. Scott Barninger +%{?contrib_packager:%define _packager %{contrib_packager}} + +Summary: Bacula - The Network Backup Solution +Name: bacula +Version: %{_version} +Release: %{_release} +Group: System Environment/Daemons +License: GPL v2 +Source0: http://www.prdownloads.sourceforge.net/bacula/%{name}-%{version}.tar.gz +Source1: http://www.prdownloads.sourceforge.net/bacula/depkgs-%{depkgs_version}.tar.gz +Source2: Release_Notes-%{version}-%{release}.tar.gz +Source3: http://www.prdownloads.sourceforge.net/bacula/%{name}-docs-%{docs_version}.tar.gz +Source4: http://www.prdownloads.sourceforge.net/bacula/%{name}-rescue-%{_rescuever}.tar.gz +Source5: bacula-2.2.7-postgresql.patch +BuildRoot: %{_tmppath}/%{name}-root +URL: http://www.bacula.org/ +Vendor: The Bacula Team +Packager: %{_packager} + +# define the basic package description +%define blurb Bacula - It comes by night and sucks the vital essence from your computers. +%define blurb2 Bacula is a set of computer programs that permit you (or the system +%define blurb3 administrator) to manage backup, recovery, and verification of computer +%define blurb4 data across a network of computers of different kinds. In technical terms, +%define blurb5 it is a network client/server based backup program. Bacula is relatively +%define blurb6 easy to use and efficient, while offering many advanced storage management +%define blurb7 features that make it easy to find and recover lost or damaged files. +%define blurb8 Bacula source code has been released under the GPL version 2 license. + +# directory locations +%define sqlite_bindir /usr/lib/bacula/sqlite +%define _docsrc ../%{name}-docs-%{docs_version} +%define _rescuesrc ../%{name}-rescue-%{_rescuever} +%define depkgs ../depkgs +%define _mandir /usr/share/man + +# directory locations for FHS-compatibility +%define sysconf_dir /etc/bacula +%define script_dir /etc/bacula +%define working_dir /var/lib/bacula +%define pid_dir /var/run + +# NOTE these defines are used in some rather complex useradd and groupadd +# commands. If you change them examine the post scripts for consequences. +%define director_daemon_user bacula +%define storage_daemon_user bacula +%define file_daemon_user root +%define daemon_group bacula +# group that has write access to tape devices, usually disk on Linux +%define storage_daemon_group disk +%define user_file /etc/passwd +%define group_file /etc/group + +# program locations +%define useradd /usr/sbin/useradd +%define groupadd /usr/sbin/groupadd +%define usermod /usr/sbin/usermod + +# platform defines - set one below or define the build_xxx on the command line +# RedHat builds +%define rh7 0 +%{?build_rh7:%define rh7 1} +%define rh8 0 +%{?build_rh8:%define rh8 1} +%define rh9 0 +%{?build_rh9:%define rh9 1} +# Fedora Core build +%define fc1 0 +%{?build_fc1:%define fc1 1} +%define fc3 0 +%{?build_fc3:%define fc3 1} +%define fc4 0 +%{?build_fc4:%define fc4 1} +%define fc5 0 +%{?build_fc5:%define fc5 1} +%define fc6 0 +%{?build_fc6:%define fc6 1} +%define fc7 0 +%{?build_fc7:%define fc7 1} +%define fc8 0 +%{?build_fc8:%define fc8 1} +# Whitebox Enterprise build +%define wb3 0 +%{?build_wb3:%define wb3 1} +# RedHat Enterprise builds +%define rhel3 0 +%{?build_rhel3:%define rhel3 1} +%{?build_rhel3:%define wb3 1} +%define rhel4 0 +%{?build_rhel4:%define rhel4 1} +%{?build_rhel4:%define fc3 1} +%define rhel5 0 +%{?build_rhel5:%define rhel5 1} +%{?build_rhel5:%define fc6 1} +# CentOS build +%define centos3 0 +%{?build_centos3:%define centos3 1} +%{?build_centos3:%define wb3 1} +%define centos4 0 +%{?build_centos4:%define centos4 1} +%{?build_centos4:%define fc3 1} +%define centos5 0 +%{?build_centos5:%define centos5 1} +%{?build_centos5:%define fc6 1} +# SL build +%define sl3 0 +%{?build_sl3:%define sl3 1} +%{?build_sl3:%define wb3 1} +%define sl4 0 +%{?build_sl4:%define sl4 1} +%{?build_sl4:%define fc3 1} +%define sl5 0 +%{?build_sl5:%define sl5 1} +%{?build_sl5:%define fc6 1} +# SuSE build +%define su9 0 +%{?build_su9:%define su9 1} +%define su10 0 +%{?build_su10:%define su10 1} +%define su102 0 +%{?build_su102:%define su102 1} +%define su103 0 +%{?build_su103:%define su103 1} +# Mandrake builds +%define mdk 0 +%{?build_mdk:%define mdk 1} +%define mdv 0 +%{?build_mdv:%define mdv 1} +%{?build_mdv:%define mdk 1} + +# client only build +%define client_only 0 +%{?build_client_only:%define client_only 1} + +# test for a platform definition +%if !%{rh7} && !%{rh8} && !%{rh9} && !%{fc1} && !%{fc3} && !%{fc4} && !%{fc5} && !%{fc6} && !%{fc7} && !%{fc8} && !%{wb3} && !%{su9} && !%{su10} && !%{su102} && !%{su103} && !%{mdk} +%{error: You must specify a platform. Please examine the spec file.} +exit 1 +%endif + +# database defines +# set for database support desired or define the build_xxx on the command line +%define mysql 0 +%{?build_mysql:%define mysql 1} +# if using mysql 4.x define this and mysql above +# currently: Mandrake 10.1, SuSE 9.x & 10.0, RHEL4 and Fedora Core 4 +%define mysql4 0 +%{?build_mysql4:%define mysql4 1} +%{?build_mysql4:%define mysql 1} +# if using mysql 5.x define this and mysql above +# currently: SuSE 10.1 and Fedora Core 5 +%define mysql5 0 +%{?build_mysql5:%define mysql5 1} +%{?build_mysql5:%define mysql 1} +%define sqlite 0 +%{?build_sqlite:%define sqlite 1} +%define postgresql 0 +%{?build_postgresql:%define postgresql 1} + +# test for a database definition +%if ! %{mysql} && ! %{sqlite} && ! %{postgresql} && ! %{client_only} +%{error: You must specify database support. Please examine the spec file.} +exit 1 +%endif + +%if %{mysql} +%define db_backend mysql +%endif +%if %{sqlite} +%define db_backend sqlite3 +%endif +%if %{postgresql} +%define db_backend postgresql +%endif + +# 64 bit support +%define x86_64 0 +%{?build_x86_64:%define x86_64 1} + +# check what distribution we are +%if %{rh7} || %{rh8} || %{rh9} || %{rhel3} || %{rhel4} || %{rhel5} +%define _dist %(grep Red /etc/redhat-release) +%endif +%if %{fc1} || %{fc4} || %{fc5} || %{fc7} || %{fc8} +%define _dist %(grep Fedora /etc/redhat-release) +%endif +%if %{centos5} || %{centos4} || %{centos3} +%define _dist %(grep CentOS /etc/redhat-release) +%endif +%if %{sl5} ||%{sl4} || %{sl3} +%define _dist %(grep 'Scientific Linux' /etc/redhat-release) +%endif +%if %{fc3} && ! %{rhel4} && ! %{centos4} && ! %{sl4} +%define _dist %(grep Fedora /etc/redhat-release) +%endif +%if %{fc6} && ! %{rhel5} && ! %{centos5} && ! %{sl5} +%define _dist %(grep Fedora /etc/redhat-release) +%endif +%if %{wb3} && ! %{rhel3} && ! %{centos3} && ! %{sl3} +%define _dist %(grep White /etc/whitebox-release) +%endif +%if %{su9} || %{su10} || %{su102} || %{su103} +%define _dist %(grep -i SuSE /etc/SuSE-release) +%endif +%if %{mdk} +%define _dist %(grep Mand /etc/mandrake-release) +%endif +Distribution: %{_dist} + +# Should we build gconsole, possible only if gtk= >= 2.4 available. +# leaving all the BuildRequires and Requires in place below for now. +# su10, fc3 and fc4 now nobuild, tray monitor fails to build as of 2.2.1 +# release as it needs 2.10 + +%define gconsole 1 +%if %{rh7} || %{rh8} || %{rh9} || %{wb3} || %{fc1} || %{fc3} || %{fc4} || %{su9} || %{su10} +%define gconsole 0 +%endif +%if %{mdk} && ! %{mdv} +%define gconsole 0 +%endif + +# specifically disallow gconsole if desired +%{?nobuild_gconsole:%define gconsole 0} + +# Should we build wxconsole, only wxWidgets >=2.6 is supported +# SuSE 10 and FC4 and newer +%define wxconsole 0 +%{?build_wxconsole:%define wxconsole 1} + +# Should we build bat +# requires >= Qt-4.2 +%define bat 0 +%{?build_bat:%define bat 1} + +# should we turn on python support +%define python 0 +%{?build_python:%define python 1} + +# specifically disallow build of mtx package if desired +%define mtx 1 +%{?nobuild_mtx:%define mtx 0} + +# do we need to patch for old postgresql version? +%define old_pgsql 0 +%{?build_old_pgsql:%define old_pgsql 1} + +# Mandriva somehow forces the manpage file extension to bz2 rather than gz +%if %{mdk} +%define manpage_ext bz2 +%else +%define manpage_ext gz +%endif + +# for client only build +%if %{client_only} +%define mysql 0 +%define mysql4 0 +%define mysql5 0 +%define postgresql 0 +%define sqlite 0 +%define gconsole 0 +%define wxconsole 0 +%endif + +%{expand: %%define gccver %(rpm -q --queryformat %%{version} gcc)} +%{expand: %%define gccrel %(rpm -q --queryformat %%{release} gcc)} + +BuildRequires: gcc, gcc-c++, make, autoconf +BuildRequires: ncurses-devel, perl +BuildRequires: libstdc++-devel = %{gccver}-%{gccrel}, libxml2-devel, zlib-devel +BuildRequires: openssl-devel +%if %{python} +BuildRequires: python, python-devel +%{expand: %%define pyver %(python -c 'import sys;print(sys.version[0:3])')} +%endif +%if %{gconsole} +BuildRequires: pkgconfig, pango-devel, atk-devel +%endif + +# Rh qt4 packages don't have a provide for, guess what, qt! +# still broken in fc8 +# so fix for broken rh +%define broken_rh 0 +%if %{rhel5} || %{centos5} || %{sl5} || %{fc5} || %{fc6} || %{fc7} || %{fc8} +%define broken_rh 1 +%endif +%if %{bat} && ! %{broken_rh} +BuildRequires: qt-devel >= 4.2 +%endif +%if %{bat} && %{broken_rh} +BuildRequires: qt4-devel >= 4.2 +%endif + +%if %{rh7} +BuildRequires: libtermcap-devel +BuildRequires: glibc-devel >= 2.2 +%endif +%if %{su9} +BuildRequires: termcap +BuildRequires: glibc-devel >= 2.3 +%endif +%if %{su9} && %{gconsole} +BuildRequires: libgnome >= 2.0 +BuildRequires: gtk2-devel >= 2.0 +BuildRequires: libgnomeui-devel >= 2.0 +BuildRequires: ORBit2-devel +BuildRequires: libart_lgpl-devel >= 2.0 +BuildRequires: libbonobo-devel >= 2.0 +BuildRequires: libbonoboui-devel >= 2.0 +BuildRequires: bonobo-activation-devel +BuildRequires: gconf2-devel +BuildRequires: linc-devel +BuildRequires: freetype2-devel +%endif +%if %{su10} +BuildRequires: termcap +BuildRequires: glibc-devel >= 2.3 +%endif +%if %{su10} && %{gconsole} +BuildRequires: libgnome >= 2.12 +BuildRequires: gtk2-devel >= 2.8 +BuildRequires: libgnomeui-devel >= 2.12 +BuildRequires: ORBit2-devel +BuildRequires: libart_lgpl-devel >= 2.3 +BuildRequires: libbonobo-devel >= 2.10 +BuildRequires: libbonoboui-devel >= 2.10 +BuildRequires: bonobo-activation-devel +BuildRequires: gconf2-devel +BuildRequires: freetype2-devel +BuildRequires: cairo-devel +BuildRequires: fontconfig-devel >= 2.3 +BuildRequires: gnome-vfs2-devel >= 2.12 +BuildRequires: libpng-devel +%endif +%if %{su102} +BuildRequires: termcap +BuildRequires: glibc-devel >= 2.5 +%endif +%if %{su102} && %{gconsole} +BuildRequires: libgnome >= 2.16 +BuildRequires: gtk2-devel >= 2.10 +BuildRequires: libgnomeui-devel >= 2.16 +BuildRequires: ORBit2-devel +BuildRequires: libart_lgpl-devel >= 2.3 +BuildRequires: libbonobo-devel >= 2.16 +BuildRequires: libbonoboui-devel >= 2.16 +BuildRequires: bonobo-activation-devel +BuildRequires: gconf2-devel +BuildRequires: freetype2-devel +BuildRequires: cairo-devel +BuildRequires: fontconfig-devel >= 2.4 +BuildRequires: gnome-vfs2-devel >= 2.16 +BuildRequires: libpng-devel +%endif +%if %{su103} +BuildRequires: termcap +BuildRequires: glibc-devel >= 2.6 +%endif +%if %{su103} && %{gconsole} +BuildRequires: libgnome >= 2.20 +BuildRequires: gtk2-devel >= 2.12 +BuildRequires: libgnomeui-devel >= 2.20 +BuildRequires: ORBit2-devel +BuildRequires: libart_lgpl-devel >= 2.3 +BuildRequires: libbonobo-devel >= 2.20 +BuildRequires: libbonoboui-devel >= 2.20 +BuildRequires: bonobo-activation-devel +BuildRequires: gconf2-devel +BuildRequires: freetype2-devel +BuildRequires: cairo-devel +BuildRequires: fontconfig-devel >= 2.4 +BuildRequires: gnome-vfs2-devel >= 2.20 +BuildRequires: libpng-devel +%endif +%if %{mdk} +BuildRequires: libtermcap-devel +BuildRequires: libstdc++-static-devel +BuildRequires: glibc-static-devel +BuildRequires: glibc-devel >= 2.3 +%endif +%if %{mdk} && !%{mdv} && %{gconsole} +BuildRequires: gtk2-devel >= 2.0 +BuildRequires: libgnomeui2-devel >= 2.0 +BuildRequires: libORBit2-devel +BuildRequires: libart_lgpl-devel >= 2.0 +BuildRequires: libbonobo2_0-devel +BuildRequires: libbonoboui2_0-devel +BuildRequires: libbonobo-activation-devel +BuildRequires: libGConf2-devel +BuildRequires: freetype2-devel +%endif +%if %{mdv} && %{gconsole} +BuildRequires: gtk2-devel >= 2.8 +BuildRequires: libgnomeui2-devel >= 2.10 +BuildRequires: libORBit2-devel +BuildRequires: libart_lgpl-devel >= 2.3 +BuildRequires: libbonobo2_0-devel +BuildRequires: libbonoboui2_0-devel +BuildRequires: libbonobo-activation-devel +BuildRequires: libGConf2-devel +BuildRequires: freetype2-devel +%endif +%if %{fc3} +BuildRequires: libtermcap-devel +BuildRequires: glibc-devel >= 2.3 +%endif +%if %{fc3} && %{gconsole} +BuildRequires: gtk2-devel >= 2.4 +BuildRequires: libgnomeui-devel >= 2.8 +BuildRequires: ORBit2-devel +BuildRequires: libart_lgpl-devel >= 2.3 +BuildRequires: libbonobo-devel >= 2.8 +BuildRequires: libbonoboui-devel >= 2.8 +BuildRequires: bonobo-activation-devel +BuildRequires: GConf2-devel +BuildRequires: freetype-devel +%endif +%if %{fc4} +BuildRequires: libtermcap-devel +BuildRequires: glibc-devel >= 2.3 +%endif +%if %{fc4} && %{gconsole} +BuildRequires: gtk2-devel >= 2.6 +BuildRequires: libgnomeui-devel >= 2.10 +BuildRequires: ORBit2-devel +BuildRequires: libart_lgpl-devel >= 2.3 +BuildRequires: libbonobo-devel >= 2.8 +BuildRequires: libbonoboui-devel >= 2.8 +BuildRequires: bonobo-activation-devel +BuildRequires: GConf2-devel +BuildRequires: freetype-devel +%endif +%if %{fc5} +BuildRequires: libtermcap-devel +BuildRequires: glibc-devel >= 2.4 +%endif +%if %{fc5} && %{gconsole} +BuildRequires: gtk2-devel >= 2.8 +BuildRequires: libgnomeui-devel >= 2.14 +BuildRequires: ORBit2-devel +BuildRequires: libart_lgpl-devel >= 2.3 +BuildRequires: libbonobo-devel >= 2.14 +BuildRequires: libbonoboui-devel >= 2.14 +BuildRequires: GConf2-devel +BuildRequires: freetype-devel +%endif +%if %{fc6} +BuildRequires: libtermcap-devel +BuildRequires: glibc-devel >= 2.5 +%endif +%if %{fc6} && %{gconsole} +BuildRequires: gtk2-devel >= 2.10 +BuildRequires: libgnomeui-devel >= 2.16 +BuildRequires: ORBit2-devel +BuildRequires: libart_lgpl-devel >= 2.3 +BuildRequires: libbonobo-devel >= 2.16 +BuildRequires: libbonoboui-devel >= 2.16 +BuildRequires: GConf2-devel +BuildRequires: freetype-devel +%endif +%if %{fc7} +BuildRequires: libtermcap-devel +BuildRequires: glibc-devel >= 2.5 +%endif +%if %{fc7} && %{gconsole} +BuildRequires: gtk2-devel >= 2.10 +BuildRequires: libgnomeui-devel >= 2.18 +BuildRequires: ORBit2-devel +BuildRequires: libart_lgpl-devel >= 2.3 +BuildRequires: libbonobo-devel >= 2.18 +BuildRequires: libbonoboui-devel >= 2.18 +BuildRequires: GConf2-devel +BuildRequires: freetype-devel +%endif +%if %{fc8} +BuildRequires: libtermcap-devel +BuildRequires: glibc-devel >= 2.7 +%endif +%if %{fc8} && %{gconsole} +BuildRequires: gtk2-devel >= 2.12 +BuildRequires: libgnomeui-devel >= 2.20 +BuildRequires: ORBit2-devel +BuildRequires: libart_lgpl-devel >= 2.3 +BuildRequires: libbonobo-devel >= 2.20 +BuildRequires: libbonoboui-devel >= 2.20 +BuildRequires: GConf2-devel +BuildRequires: freetype-devel +%endif +%if !%{rh7} && !%{su9} && !%{su10} && !%{su102} && !%{su103} && !%{mdk} && !%{fc3} && !%{fc4} && !%{fc5} && !%{fc6} && !%{fc7} && !%{fc8} +BuildRequires: libtermcap-devel +BuildRequires: glibc-devel >= 2.3 +%endif +%if !%{rh7} && !%{su9} && !%{su10} && !%{su102} && !%{su103} && !%{mdk} && !%{fc3} && !%{fc4} && !%{fc5} && !%{fc6} && !%{fc7} && !%{fc8} && %{gconsole} +BuildRequires: gtk2-devel >= 2.0 +BuildRequires: libgnomeui-devel >= 2.0 +BuildRequires: ORBit2-devel +BuildRequires: libart_lgpl-devel >= 2.0 +BuildRequires: libbonobo-devel >= 2.0 +BuildRequires: libbonoboui-devel >= 2.0 +BuildRequires: bonobo-activation-devel +BuildRequires: GConf2-devel +BuildRequires: linc-devel +BuildRequires: freetype-devel +%endif + +%if %{mysql} && ! %{mysql4} && ! %{mysql5} +BuildRequires: mysql-devel >= 3.23 +%endif + +%if %{mysql} && %{mysql4} +BuildRequires: mysql-devel >= 4.0 +%endif + +%if %{mysql} && %{mysql5} +BuildRequires: mysql-devel >= 5.0 +%endif + +%if %{postgresql} && %{wb3} +BuildRequires: rh-postgresql-devel >= 7 +%endif + +%if %{postgresql} && ! %{wb3} +BuildRequires: postgresql-devel >= 7 +%endif + +%if %{wxconsole} +BuildRequires: wxGTK-devel >= 2.6 +%endif + +%description +%{blurb} + +%{blurb2} +%{blurb3} +%{blurb4} +%{blurb5} +%{blurb6} +%{blurb7} +%{blurb8} + +%if %{mysql} +%package mysql +%endif +%if %{sqlite} +%package sqlite +%endif +%if %{postgresql} +%package postgresql +%endif + +Summary: Bacula - The Network Backup Solution +Group: System Environment/Daemons +Provides: bacula-dir, bacula-sd, bacula-fd, bacula-server +Conflicts: bacula-client +Obsoletes: bacula-rescue + +%if %{su9} || %{su10} || %{su102} || %{su103} +Conflicts: bacula +%endif + +Requires: ncurses, libstdc++, zlib, openssl, mtx + +%if %{rh7} +Requires: glibc >= 2.2 +Requires: libtermcap +%endif +%if %{su9} || %{su10} +Requires: glibc >= 2.3 +Requires: termcap +%endif +%if %{su102} +Requires: glibc >= 2.5 +Requires: termcap +%endif +%if %{su103} +Requires: glibc >= 2.6 +Requires: termcap +%endif +%if ! %{rh7} && ! %{su9} && ! %{su10} && ! %{su102} && ! %{su103} && ! %{fc5} && ! %{fc6} && ! %{fc7} && ! %{fc8} +Requires: glibc >= 2.3 +Requires: libtermcap +%endif +%if %{fc5} +Requires: glibc >= 2.4 +Requires: libtermcap +%endif +%if %{fc6} || %{fc7} +Requires: glibc >= 2.5 +Requires: libtermcap +%endif +%if %{fc8} +Requires: glibc >= 2.7 +Requires: libtermcap +%endif + +%if %{mysql} && ! %{su9} && ! %{mdk} && ! %{mysql4} && ! %{mysql5} +Requires: mysql >= 3.23 +Requires: mysql-server >= 3.23 +%endif +%if %{mysql} && ! %{su9} && ! %{su10} && ! %{mdk} && %{mysql4} +Requires: mysql >= 4.0 +Requires: mysql-server >= 4.0 +%endif +%if %{mysql} && ! %{su9} && ! %{su10} && ! %{su102} && ! %{su103} && ! %{mdk} && %{mysql5} +Requires: mysql >= 5.0 +Requires: mysql-server >= 5.0 +%endif + +%if %{mysql} && %{su9} && ! %{mysql4} +Requires: mysql >= 3.23 +Requires: mysql-client >= 3.23 +%endif +%if %{mysql} && %{su9} && %{mysql4} +Requires: mysql >= 4.0 +Requires: mysql-client >= 4.0 +%endif +%if %{mysql} && %{su10} && %{mysql4} +Requires: mysql >= 4.0 +Requires: mysql-client >= 4.0 +%endif +%if %{mysql} && %{su10} && %{mysql5} +Requires: mysql >= 5.0 +Requires: mysql-client >= 5.0 +%endif +%if %{mysql} && %{su102} && %{mysql5} +Requires: mysql >= 5.0 +Requires: mysql-client >= 5.0 +%endif +%if %{mysql} && %{su103} && %{mysql5} +Requires: mysql >= 5.0 +Requires: mysql-client >= 5.0 +%endif + +%if %{mysql} && %{mdk} && ! %{mysql4} +Requires: mysql >= 3.23 +Requires: mysql-client >= 3.23 +%endif +%if %{mysql} && %{mdk} && %{mysql4} +Requires: mysql >= 4.0 +Requires: mysql-client >= 4.0 +%endif + +%if %{postgresql} && %{wb3} +Requires: rh-postgresql >= 7 +Requires: rh-postgresql-server >= 7 +%endif +%if %{postgresql} && ! %{wb3} +Requires: postgresql >= 7 +Requires: postgresql-server >= 7 +%endif + +%if %{mysql} +%description mysql +%endif +%if %{sqlite} +%description sqlite +%endif +%if %{postgresql} +%description postgresql +%endif + +%if %{python} +Requires: python >= %{pyver} +%endif + +%{blurb} + +%{blurb2} +%{blurb3} +%{blurb4} +%{blurb5} +%{blurb6} +%{blurb7} +%{blurb8} + +%if %{mysql} +This build requires MySQL to be installed separately as the catalog database. +%endif +%if %{postgresql} +This build requires PostgreSQL to be installed separately as the catalog database. +%endif +%if %{sqlite} +This build incorporates sqlite3 as the catalog database, statically compiled. +%endif +%if %{python} +This build includes python scripting support. +%endif + +%if ! %{client_only} && %{mtx} +%package mtx +Summary: Bacula - The Network Backup Solution +Group: System Environment/Daemons +Provides: mtx + +%description mtx +This is Bacula's version of mtx tape utilities for Linux distributions that +do not provide their own mtx package +%endif + +%package client +Summary: Bacula - The Network Backup Solution +Group: System Environment/Daemons +Provides: bacula-fd +Conflicts: bacula-mysql +Conflicts: bacula-sqlite +Conflicts: bacula-postgresql +Obsoletes: bacula-rescue + +%if %{su9} || %{su10} || %{su102} +Provides: bacula +%endif + +Requires: libstdc++, zlib, openssl + +%if %{rh7} +Requires: glibc >= 2.2 +Requires: libtermcap +%endif +%if %{su9} || %{su10} +Requires: glibc >= 2.3 +Requires: termcap +%endif +%if %{su102} +Requires: glibc >= 2.5 +Requires: termcap +%endif +%if %{su103} +Requires: glibc >= 2.6 +Requires: termcap +%endif +%if ! %{rh7} && ! %{su9} && ! %{su10} && ! %{su102} && ! %{su103} && ! %{fc5} && ! %{fc6} && ! %{fc7} && ! %{fc8} +Requires: glibc >= 2.3 +Requires: libtermcap +%endif +%if %{fc5} +Requires: glibc >= 2.4 +Requires: libtermcap +%endif +%if %{fc6} || %{fc7} +Requires: glibc >= 2.5 +Requires: libtermcap +%endif +%if %{fc8} +Requires: glibc >= 2.7 +Requires: libtermcap +%endif + +%if %{python} +Requires: python >= %{pyver} +%endif + +%description client +%{blurb} + +%{blurb2} +%{blurb3} +%{blurb4} +%{blurb5} +%{blurb6} +%{blurb7} +%{blurb8} + +This is the File daemon (Client) only package. It includes the command line +console program. +%if %{python} +This build includes python scripting support. +%endif + +%if ! %{client_only} +%package updatedb + +Summary: Bacula - The Network Backup Solution +Group: System Environment/Daemons + +%description updatedb +%{blurb} + +%{blurb2} +%{blurb3} +%{blurb4} +%{blurb5} +%{blurb6} +%{blurb7} +%{blurb8} + +This package installs scripts for updating older versions of the bacula +database. +%endif + +%if %{gconsole} +%package gconsole +Summary: Bacula - The Network Backup Solution +Group: System Environment/Daemons +Requires: atk, libstdc++, zlib, pango, libxml2, bacula-fd, openssl +%endif + +%if %{gconsole} && %{su9} +Requires: gtk2 >= 2.0 +Requires: libgnome >= 2.0 +Requires: libgnomeui >= 2.0 +Requires: glibc >= 2.3 +Requires: ORBit2 +Requires: libart_lgpl >= 2.0 +Requires: libbonobo >= 2.0 +Requires: libbonoboui >= 2.0 +Requires: bonobo-activation +Requires: gconf2 +Requires: linc +Requires: freetype2 +%endif +%if %{gconsole} && %{su10} +Requires: gtk2 >= 2.8 +Requires: libgnome >= 2.12 +Requires: libgnomeui >= 2.12 +Requires: glibc >= 2.3 +Requires: ORBit2 +Requires: libart_lgpl >= 2.3 +Requires: libbonobo >= 2.10 +Requires: libbonoboui >= 2.10 +Requires: bonobo-activation +Requires: gconf2 +Requires: freetype2 +Requires: cairo +Requires: fontconfig >= 2.3 +Requires: gnome-vfs2 >= 2.12 +Requires: libpng +%endif +%if %{gconsole} && %{su102} +Requires: gtk2 >= 2.10 +Requires: libgnome >= 2.16 +Requires: libgnomeui >= 2.16 +Requires: glibc >= 2.5 +Requires: ORBit2 +Requires: libart_lgpl >= 2.3 +Requires: libbonobo >= 2.16 +Requires: libbonoboui >= 2.16 +Requires: bonobo-activation +Requires: gconf2 +Requires: freetype2 +Requires: cairo +Requires: fontconfig >= 2.4 +Requires: gnome-vfs2 >= 2.16 +Requires: libpng +%endif +%if %{gconsole} && %{su103} +Requires: gtk2 >= 2.12 +Requires: libgnome >= 2.20 +Requires: libgnomeui >= 2.20 +Requires: glibc >= 2.6 +Requires: ORBit2 +Requires: libart_lgpl >= 2.3 +Requires: libbonobo >= 2.20 +Requires: libbonoboui >= 2.20 +Requires: bonobo-activation +Requires: gconf2 +Requires: freetype2 +Requires: cairo +Requires: fontconfig >= 2.4 +Requires: gnome-vfs2 >= 2.20 +Requires: libpng +%endif +%if %{gconsole} && %{mdk} && !%{mdv} +Requires: gtk2 >= 2.0 +Requires: libgnomeui2 +Requires: glibc >= 2.3 +Requires: ORBit2 +Requires: libart_lgpl >= 2.0 +Requires: libbonobo >= 2.0 +Requires: libbonoboui >= 2.0 +Requires: GConf2 +Requires: freetype2 +%endif +%if %{gconsole} && %{mdv} +Requires: gtk2 >= 2.8 +Requires: libgnomeui2 +Requires: glibc >= 2.3 +Requires: ORBit2 +Requires: libart_lgpl >= 2.3 +Requires: libbonobo >= 2.10 +Requires: libbonoboui >= 2.10 +Requires: GConf2 +Requires: freetype2 +%endif +%if %{gconsole} && %{fc3} +Requires: gtk2 >= 2.4 +Requires: libgnomeui >= 2.8 +Requires: glibc >= 2.3 +Requires: ORBit2 +Requires: libart_lgpl >= 2.3 +Requires: libbonobo >= 2.8 +Requires: libbonoboui >= 2.8 +Requires: bonobo-activation +Requires: GConf2 +Requires: freetype +%endif +%if %{gconsole} && %{fc4} +Requires: gtk2 >= 2.6 +Requires: libgnomeui >= 2.10 +Requires: glibc >= 2.3 +Requires: ORBit2 +Requires: libart_lgpl >= 2.3 +Requires: libbonobo >= 2.8 +Requires: libbonoboui >= 2.8 +Requires: bonobo-activation +Requires: GConf2 +Requires: freetype +%endif +%if %{gconsole} && %{fc5} +Requires: gtk2 >= 2.8 +Requires: libgnomeui >= 2.14 +Requires: glibc >= 2.4 +Requires: ORBit2 +Requires: libart_lgpl >= 2.3 +Requires: libbonobo >= 2.14 +Requires: libbonoboui >= 2.14 +Requires: GConf2 +Requires: freetype +%endif +%if %{gconsole} && %{fc6} +Requires: gtk2 >= 2.10 +Requires: libgnomeui >= 2.16 +Requires: glibc >= 2.5 +Requires: ORBit2 +Requires: libart_lgpl >= 2.3 +Requires: libbonobo >= 2.16 +Requires: libbonoboui >= 2.16 +Requires: GConf2 +Requires: freetype +%endif +%if %{gconsole} && %{fc7} +Requires: gtk2 >= 2.10 +Requires: libgnomeui >= 2.18 +Requires: glibc >= 2.5 +Requires: ORBit2 +Requires: libart_lgpl >= 2.3 +Requires: libbonobo >= 2.18 +Requires: libbonoboui >= 2.18 +Requires: GConf2 +Requires: freetype +%endif +%if %{gconsole} && %{fc8} +Requires: gtk2 >= 2.12 +Requires: libgnomeui >= 2.20 +Requires: glibc >= 2.7 +Requires: ORBit2 +Requires: libart_lgpl >= 2.3 +Requires: libbonobo >= 2.20 +Requires: libbonoboui >= 2.20 +Requires: GConf2 +Requires: freetype +%endif +%if %{gconsole} && !%{su9} && !%{su10} && !%{su102} && !%{su103} && !%{mdk} && !%{fc3} && !%{fc4} && !%{fc5} && !%{fc6} && !%{fc7} && !%{fc8} +Requires: gtk2 >= 2.0 +Requires: libgnomeui >= 2.0 +Requires: glibc >= 2.3 +Requires: ORBit2 +Requires: libart_lgpl >= 2.0 +Requires: libbonobo >= 2.0 +Requires: libbonoboui >= 2.0 +Requires: bonobo-activation +Requires: GConf2 +Requires: linc +Requires: freetype +%endif +%if %{gconsole} && %{su9} +Requires: xsu +%endif +%if %{gconsole} && %{su10} +Requires: xsu +%endif +%if %{gconsole} && %{su102} +Requires: xsu +%endif +%if %{gconsole} && %{su103} +Requires: xsu +%endif +%if %{gconsole} && ! %{su9} && ! %{su10} && ! %{su102} && ! %{su103} +Requires: usermode +%endif + +%if %{gconsole} +%description gconsole +%{blurb} + +%{blurb2} +%{blurb3} +%{blurb4} +%{blurb5} +%{blurb6} +%{blurb7} +%{blurb8} + +This is the Gnome Console package. It is an add-on to the client or +server packages. +%endif + +%if %{wxconsole} +%package wxconsole +Summary: Bacula - The Network Backup Solution +Group: System Environment/Daemons +Requires: wxGTK >= 2.6, libstdc++, openssl +%endif + +%if %{wxconsole} && %{su10} +Requires: gtk2 >= 2.8 +%endif + +%if %{wxconsole} && %{su102} +Requires: gtk2 >= 2.10 +%endif + +%if %{wxconsole} && %{su103} +Requires: gtk2 >= 2.12 +%endif + +%if %{wxconsole} && %{fc3} +Requires: gtk2 >= 2.4 +%endif + +%if %{wxconsole} && %{fc4} +Requires: gtk2 >= 2.6 +%endif + +%if %{wxconsole} && %{fc5} +Requires: gtk2 >= 2.8 +%endif + +%if %{wxconsole} && %{fc6} +Requires: gtk2 >= 2.10 +%endif + +%if %{wxconsole} && %{fc7} +Requires: gtk2 >= 2.10 +%endif + +%if %{wxconsole} && %{fc7} +Requires: gtk2 >= 2.12 +%endif + +%if %{wxconsole} +%description wxconsole +%{blurb} + +%{blurb2} +%{blurb3} +%{blurb4} +%{blurb5} +%{blurb6} +%{blurb7} +%{blurb8} + +This is the WXWindows Console package. It is an add-on to the client or +server packages. +%endif + +%if %{bat} +%package bat +Summary: Bacula - The Network Backup Solution +Group: System Environment/Daemons +%endif + +%if %{bat} && %{su10} +Requires: openssl +Requires: glibc >= 2.4 +Requires: fontconfig +Requires: freetype2 +Requires: libgcc +Requires: libpng +Requires: qt >= 4.2 +Requires: libstdc++ +Requires: zlib +%endif + +%if %{bat} && %{su102} +Requires: openssl +Requires: glibc >= 2.5 +Requires: fontconfig +Requires: freetype2 +Requires: libgcc +Requires: libpng +Requires: qt >= 4.2 +Requires: libstdc++ +Requires: zlib +%endif + +%if %{bat} && %{su103} +Requires: openssl +Requires: glibc >= 2.6 +Requires: fontconfig +Requires: freetype2 +Requires: libgcc +Requires: libpng +Requires: qt >= 4.2 +Requires: libstdc++ +Requires: zlib +%endif + +%if %{bat} && %{fc5} +Requires: openssl +Requires: glibc >= 2.4 +Requires: fontconfig +Requires: freetype +Requires: libgcc +Requires: libpng +Requires: qt4 >= 4.2 +Requires: libstdc++ +Requires: zlib +%endif + +%if %{bat} && %{fc6} +Requires: openssl +Requires: glibc >= 2.5 +Requires: fontconfig +Requires: freetype +Requires: libgcc +Requires: libpng +Requires: qt4 >= 4.2 +Requires: libstdc++ +Requires: zlib +%endif + +%if %{bat} && %{fc7} +Requires: openssl +Requires: glibc >= 2.5 +Requires: fontconfig +Requires: freetype +Requires: libgcc +Requires: libpng +Requires: qt4 >= 4.2 +Requires: libstdc++ +Requires: zlib +%endif + +%if %{bat} && %{fc8} +Requires: openssl +Requires: glibc >= 2.7 +Requires: fontconfig +Requires: freetype +Requires: libgcc +Requires: libpng +Requires: qt4 >= 4.2 +Requires: libstdc++ +Requires: zlib +%endif + +%if %{bat} +%description bat +%{blurb} + +%{blurb2} +%{blurb3} +%{blurb4} +%{blurb5} +%{blurb6} +%{blurb7} +%{blurb8} + +This is the Bacula Administration Tool package. It is an add-on to +the client or server packages. +%endif + +%prep + +%setup +%setup -T -D -b 1 +%setup -T -D -b 2 +%setup -T -D -b 3 +%setup -T -D -b 4 + +%build + +%if %{su9} || %{su10} || %{su102} || %{su103} +export LDFLAGS="${LDFLAGS} -L/usr/lib/termcap" +%endif + +cwd=${PWD} +cd %{depkgs} +%if %{sqlite} +make sqlite3 +%endif +%if ! %{client_only} && %{mtx} +make mtx +%endif +%if %{bat} +make qwt +%endif +cd ${cwd} + +%if %{wb3} || %{old_pgsql} +patch -p3 src/cats/postgresql.c < %SOURCE5 +%endif + +# patches for the bundled sqlite scripts + +# patch the make_sqlite_tables script for installation bindir +#patch src/cats/make_sqlite_tables.in src/cats/make_sqlite_tables.in.patch +patch src/cats/make_sqlite3_tables.in src/cats/make_sqlite3_tables.in.patch + +# patch the create_sqlite_database script for installation bindir +#patch src/cats/create_sqlite_database.in src/cats/create_sqlite_database.in.patch +patch src/cats/create_sqlite3_database.in src/cats/create_sqlite3_database.in.patch + +# patch the make_catalog_backup script for installation bindir +patch src/cats/make_catalog_backup.in src/cats/make_catalog_backup.in.patch + +# patch the update_sqlite_tables script for installation bindir +#patch src/cats/update_sqlite_tables.in src/cats/update_sqlite_tables.in.patch +patch src/cats/update_sqlite3_tables.in src/cats/update_sqlite3_tables.in.patch + +# patch the bacula-dir init script to remove sqlite service +%if %{sqlite} && %{su9} +patch platforms/suse/bacula-dir.in platforms/suse/bacula-dir-suse-sqlite.patch +%endif +%if %{sqlite} && %{su10} +patch platforms/suse/bacula-dir.in platforms/suse/bacula-dir-suse-sqlite.patch +%endif +%if %{sqlite} && %{su102} +patch platforms/suse/bacula-dir.in platforms/suse/bacula-dir-suse-sqlite.patch +%endif +%if %{sqlite} && %{su103} +patch platforms/suse/bacula-dir.in platforms/suse/bacula-dir-suse-sqlite.patch +%endif + +# 64 bit lib location hacks +# as of 1.39.18 it should not be necessary to enable x86_64 as configure is +# reported to be fixed to properly detect lib locations. +%if %{x86_64} +export LDFLAGS="${LDFLAGS} -L/usr/lib64" +%endif +%if %{mysql} && %{x86_64} +export LDFLAGS="${LDFLAGS} -L/usr/lib64/mysql" +%endif +%if %{python} && %{x86_64} +export LDFLAGS="${LDFLAGS} -L/usr/lib64/python%{pyver}" +%endif + +# Red Hat's 64 bit installation of QT4 appears to be broken so: +%define qt_path 0 +%if %{rhel5} || %{centos5} || %{sl5} +%define qt_path 1 +%endif +%if %{bat} && %{qt_path} && %{x86_64} +export PATH=/usr/lib64/qt4/bin/:$PATH +export QTDIR=/usr/lib64/qt4/ +export QTINC=/usr/lib64/qt4/include/ +export QTLIB=/usr/lib64/qt4/ +%endif + +%configure \ + --prefix=/usr \ + --sbindir=/usr/sbin \ + --sysconfdir=%{sysconf_dir} \ + --with-scriptdir=%{script_dir} \ + --with-working-dir=%{working_dir} \ + --with-pid-dir=%{pid_dir} \ + --enable-smartalloc \ + --enable-client-only \ + %if %{mdk} + --disable-nls \ + %endif + --enable-static-fd + +make + +%configure \ + --prefix=/usr \ + --sbindir=/usr/sbin \ + --sysconfdir=%{sysconf_dir} \ + --with-scriptdir=%{script_dir} \ + --with-working-dir=%{working_dir} \ + --with-pid-dir=%{pid_dir} \ + --enable-smartalloc \ +%if %{gconsole} + --enable-gnome \ +%endif +%if %{gconsole} && ! %{rh8} + --enable-tray-monitor \ +%endif +%if %{mysql} + --with-mysql \ +%endif +%if %{sqlite} + --with-sqlite3=${cwd}/%{depkgs}/sqlite3 \ +%endif +%if %{postgresql} + --with-postgresql \ +%endif +%if %{wxconsole} + --enable-bwx-console \ +%endif +%if %{bat} + --enable-bat \ + --with-qwt=${cwd}/%{depkgs}/qwt \ +%endif +%if %{python} + --with-python \ +%endif +%if %{client_only} + --enable-client-only \ +%endif +%if %{rh7} || %{rh8} || %{rh9} || %{fc1} || %{fc3} || %{wb3} + --disable-batch-insert \ +%endif + --mandir=%{_mandir} \ + --with-subsys-dir=/var/lock/subsys \ + --with-dir-user=%{director_daemon_user} \ + --with-dir-group=%{daemon_group} \ + --with-sd-user=%{storage_daemon_user} \ + --with-sd-group=%{storage_daemon_group} \ + --with-fd-user=%{file_daemon_user} \ + --with-fd-group=%{daemon_group} \ + --with-dir-password="XXX_REPLACE_WITH_DIRECTOR_PASSWORD_XXX" \ + --with-fd-password="XXX_REPLACE_WITH_CLIENT_PASSWORD_XXX" \ + --with-sd-password="XXX_REPLACE_WITH_STORAGE_PASSWORD_XXX" \ + --with-mon-dir-password="XXX_REPLACE_WITH_DIRECTOR_MONITOR_PASSWORD_XXX" \ + --with-mon-fd-password="XXX_REPLACE_WITH_CLIENT_MONITOR_PASSWORD_XXX" \ + --with-mon-sd-password="XXX_REPLACE_WITH_STORAGE_MONITOR_PASSWORD_XXX" \ + --with-openssl + +make + +%install + +cwd=${PWD} +[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT" +mkdir -p $RPM_BUILD_ROOT/etc/init.d +mkdir -p $RPM_BUILD_ROOT/etc/logrotate.d +mkdir -p $RPM_BUILD_ROOT/etc/log.d/conf/logfiles +mkdir -p $RPM_BUILD_ROOT/etc/log.d/conf/services +mkdir -p $RPM_BUILD_ROOT/etc/log.d/scripts/services +mkdir -p $RPM_BUILD_ROOT%{script_dir}/updatedb + +%if %{gconsole} || %{wxconsole} || %{bat} +mkdir -p $RPM_BUILD_ROOT/usr/share/applications +mkdir -p $RPM_BUILD_ROOT/usr/share/pixmaps +%endif + +%if %{gconsole} || %{wxconsole} || %{bat} +%define usermode_iftrick 1 +%else +%define usermode_iftrick 0 +%endif + +%if %{usermode_iftrick} && ! %{su9} && ! %{su10} && ! %{su102} && ! %{su103} +mkdir -p $RPM_BUILD_ROOT/etc/pam.d +mkdir -p $RPM_BUILD_ROOT/etc/security/console.apps +mkdir -p $RPM_BUILD_ROOT/usr/bin +%endif + +%if %{sqlite} +mkdir -p $RPM_BUILD_ROOT%{sqlite_bindir} +%endif + +make \ + prefix=$RPM_BUILD_ROOT/usr \ + sbindir=$RPM_BUILD_ROOT/usr/sbin \ + sysconfdir=$RPM_BUILD_ROOT%{sysconf_dir} \ + scriptdir=$RPM_BUILD_ROOT%{script_dir} \ + working_dir=$RPM_BUILD_ROOT%{working_dir} \ + piddir=$RPM_BUILD_ROOT%{pid_dir} \ + mandir=$RPM_BUILD_ROOT%{_mandir} \ + install + +%if ! %{client_only} && %{mtx} +cd %{depkgs} +make \ + prefix=$RPM_BUILD_ROOT/usr \ + sbindir=$RPM_BUILD_ROOT/usr/sbin \ + sysconfdir=$RPM_BUILD_ROOT%{sysconf_dir} \ + scriptdir=$RPM_BUILD_ROOT%{script_dir} \ + working_dir=$RPM_BUILD_ROOT%{working_dir} \ + piddir=$RPM_BUILD_ROOT%{pid_dir} \ + mandir=$RPM_BUILD_ROOT%{_mandir} \ + mtx-install +cd ${cwd} +%endif + +# make install in manpages installs _everything_ shotgun style +# so now delete what we will not be packaging +%if ! %{wxconsole} +rm -f $RPM_BUILD_ROOT%{_mandir}/man1/bacula-bwxconsole.1.%{manpage_ext} +%endif +%if ! %{bat} +rm -f $RPM_BUILD_ROOT%{_mandir}/man1/bat.1.%{manpage_ext} +%endif +%if ! %{gconsole} +rm -f $RPM_BUILD_ROOT%{_mandir}/man1/bacula-bgnome-console.1.%{manpage_ext} +rm -f $RPM_BUILD_ROOT%{_mandir}/man1/bacula-tray-monitor.1.%{manpage_ext} +%endif +%if %{client_only} +rm -f $RPM_BUILD_ROOT%{_mandir}/man1/bsmtp.1.%{manpage_ext} +rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bacula-dir.8.%{manpage_ext} +rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bacula-sd.8.%{manpage_ext} +rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bcopy.8.%{manpage_ext} +rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bextract.8.%{manpage_ext} +rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bls.8.%{manpage_ext} +rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bscan.8.%{manpage_ext} +rm -f $RPM_BUILD_ROOT%{_mandir}/man8/btape.8.%{manpage_ext} +rm -f $RPM_BUILD_ROOT%{_mandir}/man8/dbcheck.8.%{manpage_ext} +%endif + +# fixme - make installs the mysql scripts for sqlite build +%if %{sqlite} +rm -f $RPM_BUILD_ROOT%{script_dir}/startmysql +rm -f $RPM_BUILD_ROOT%{script_dir}/stopmysql +rm -f $RPM_BUILD_ROOT%{script_dir}/grant_mysql_privileges +%endif + +# fixme - make installs the mysql scripts for postgresql build +%if %{postgresql} +rm -f $RPM_BUILD_ROOT%{script_dir}/startmysql +rm -f $RPM_BUILD_ROOT%{script_dir}/stopmysql +%endif + +# fixme - make installs gconsole script for build without gconsole +%if ! %{gconsole} +rm -f $RPM_BUILD_ROOT%{script_dir}/gconsole +%endif + +rm -f $RPM_BUILD_ROOT/usr/sbin/static-bacula-fd + +# install the init scripts +%if %{su9} || %{su10} || %{su102} || %{su103} +cp -p platforms/suse/bacula-dir $RPM_BUILD_ROOT/etc/init.d/bacula-dir +cp -p platforms/suse/bacula-fd $RPM_BUILD_ROOT/etc/init.d/bacula-fd +cp -p platforms/suse/bacula-sd $RPM_BUILD_ROOT/etc/init.d/bacula-sd +%endif +%if %{mdk} +cp -p platforms/mandrake/bacula-dir $RPM_BUILD_ROOT/etc/init.d/bacula-dir +cp -p platforms/mandrake/bacula-fd $RPM_BUILD_ROOT/etc/init.d/bacula-fd +cp -p platforms/mandrake/bacula-sd $RPM_BUILD_ROOT/etc/init.d/bacula-sd +%endif +%if ! %{su9} && ! %{su10} && ! %{su102} && ! %{su103} && ! %{mdk} +cp -p platforms/redhat/bacula-dir $RPM_BUILD_ROOT/etc/init.d/bacula-dir +cp -p platforms/redhat/bacula-fd $RPM_BUILD_ROOT/etc/init.d/bacula-fd +cp -p platforms/redhat/bacula-sd $RPM_BUILD_ROOT/etc/init.d/bacula-sd +%endif +chmod 0754 $RPM_BUILD_ROOT/etc/init.d/* +%if %{client_only} +rm -f $RPM_BUILD_ROOT/etc/init.d/bacula-dir +rm -f $RPM_BUILD_ROOT/etc/init.d/bacula-sd +%endif + +# install the menu stuff +%if %{gconsole} && %{su9} +cp -p scripts/bacula.png $RPM_BUILD_ROOT/usr/share/pixmaps/bacula.png +cp -p scripts/bacula.desktop.gnome2.xsu $RPM_BUILD_ROOT/usr/share/applications/bacula.desktop +cp -p src/tray-monitor/generic.xpm $RPM_BUILD_ROOT/usr/share/pixmaps/bacula-tray-monitor.xpm +cp -p scripts/bacula-tray-monitor.desktop $RPM_BUILD_ROOT/usr/share/applications/bacula-tray-monitor.desktop +%endif +%if %{gconsole} && %{su10} +cp -p scripts/bacula.png $RPM_BUILD_ROOT/usr/share/pixmaps/bacula.png +cp -p scripts/bacula.desktop.gnome2.xsu $RPM_BUILD_ROOT/usr/share/applications/bacula.desktop +cp -p src/tray-monitor/generic.xpm $RPM_BUILD_ROOT/usr/share/pixmaps/bacula-tray-monitor.xpm +cp -p scripts/bacula-tray-monitor.desktop $RPM_BUILD_ROOT/usr/share/applications/bacula-tray-monitor.desktop +%endif +%if %{gconsole} && %{su102} +cp -p scripts/bacula.png $RPM_BUILD_ROOT/usr/share/pixmaps/bacula.png +cp -p scripts/bacula.desktop.gnome2.xsu $RPM_BUILD_ROOT/usr/share/applications/bacula.desktop +cp -p src/tray-monitor/generic.xpm $RPM_BUILD_ROOT/usr/share/pixmaps/bacula-tray-monitor.xpm +cp -p scripts/bacula-tray-monitor.desktop $RPM_BUILD_ROOT/usr/share/applications/bacula-tray-monitor.desktop +%endif +%if %{gconsole} && %{su103} +cp -p scripts/bacula.png $RPM_BUILD_ROOT/usr/share/pixmaps/bacula.png +cp -p scripts/bacula.desktop.gnome2.xsu $RPM_BUILD_ROOT/usr/share/applications/bacula.desktop +cp -p src/tray-monitor/generic.xpm $RPM_BUILD_ROOT/usr/share/pixmaps/bacula-tray-monitor.xpm +cp -p scripts/bacula-tray-monitor.desktop $RPM_BUILD_ROOT/usr/share/applications/bacula-tray-monitor.desktop +%endif +%if %{wxconsole} && %{su10} +cp -p src/wx-console/wxwin16x16.xpm $RPM_BUILD_ROOT/usr/share/pixmaps/wxwin16x16.xpm +cp -p scripts/wxconsole.desktop.xsu $RPM_BUILD_ROOT/usr/share/applications/wxconsole.desktop +%endif +%if %{wxconsole} && %{su102} +cp -p src/wx-console/wxwin16x16.xpm $RPM_BUILD_ROOT/usr/share/pixmaps/wxwin16x16.xpm +cp -p scripts/wxconsole.desktop.xsu $RPM_BUILD_ROOT/usr/share/applications/wxconsole.desktop +%endif +%if %{wxconsole} && %{su103} +cp -p src/wx-console/wxwin16x16.xpm $RPM_BUILD_ROOT/usr/share/pixmaps/wxwin16x16.xpm +cp -p scripts/wxconsole.desktop.xsu $RPM_BUILD_ROOT/usr/share/applications/wxconsole.desktop +%endif +%if %{bat} && %{su102} +cp -p src/qt-console/images/bat_icon.png $RPM_BUILD_ROOT/usr/share/pixmaps/bat_icon.png +cp -p scripts/bat.desktop.xsu $RPM_BUILD_ROOT/usr/share/applications/bat.desktop +%endif +%if %{bat} && %{su103} +cp -p src/qt-console/images/bat_icon.png $RPM_BUILD_ROOT/usr/share/pixmaps/bat_icon.png +cp -p scripts/bat.desktop.xsu $RPM_BUILD_ROOT/usr/share/applications/bat.desktop +%endif +%if %{rh8} || %{rh9} || %{wb3} || %{fc1} || %{fc3} || %{fc4} || %{fc5} || %{fc6} || %{fc7} || %{fc8} || %{mdk} +%define iftrick 1 +%else +%define iftrick 0 +%endif +%if %{gconsole} && %{iftrick} +cp -p scripts/bacula.png $RPM_BUILD_ROOT/usr/share/pixmaps/bacula.png +cp -p scripts/bacula.desktop.gnome2.consolehelper $RPM_BUILD_ROOT/usr/share/applications/bacula.desktop +cp -p scripts/bgnome-console.console_apps $RPM_BUILD_ROOT/etc/security/console.apps/bgnome-console +cp -p scripts/bgnome-console.pamd $RPM_BUILD_ROOT/etc/pam.d/bgnome-console +ln -sf consolehelper $RPM_BUILD_ROOT/usr/bin/bgnome-console +%endif +%if %{gconsole} && ! %{rh8} +cp -p src/tray-monitor/generic.xpm $RPM_BUILD_ROOT/usr/share/pixmaps/bacula-tray-monitor.xpm +cp -p scripts/bacula-tray-monitor.desktop $RPM_BUILD_ROOT/usr/share/applications/bacula-tray-monitor.desktop +%endif +%if %{wxconsole} && %{iftrick} +cp -p src/wx-console/wxwin16x16.xpm $RPM_BUILD_ROOT/usr/share/pixmaps/wxwin16x16.xpm +cp -p scripts/wxconsole.desktop.consolehelper $RPM_BUILD_ROOT/usr/share/applications/wxconsole.desktop +cp -p scripts/wxconsole.console_apps $RPM_BUILD_ROOT/etc/security/console.apps/bwx-console +cp -p scripts/wxconsole.pamd $RPM_BUILD_ROOT/etc/pam.d/bwx-console +ln -sf consolehelper $RPM_BUILD_ROOT/usr/bin/bwx-console +%endif +%if %{bat} && %{iftrick} +cp -p src/qt-console/images/bat_icon.png $RPM_BUILD_ROOT/usr/share/pixmaps/bat_icon.png +cp -p scripts/bat.desktop.consolehelper $RPM_BUILD_ROOT/usr/share/applications/bat.desktop +cp -p scripts/bat.console_apps $RPM_BUILD_ROOT/etc/security/console.apps/bat +cp -p scripts/bat.pamd $RPM_BUILD_ROOT/etc/pam.d/bat +ln -sf consolehelper $RPM_BUILD_ROOT/usr/bin/bat +%endif + +# install sqlite +%if %{sqlite} +cp -p %{depkgs}/sqlite3/sqlite3 $RPM_BUILD_ROOT%{sqlite_bindir}/sqlite3 +cp -p %{depkgs}/sqlite3/sqlite3.h $RPM_BUILD_ROOT%{sqlite_bindir}/sqlite3.h +cp -p %{depkgs}/sqlite3/libsqlite3.a $RPM_BUILD_ROOT%{sqlite_bindir}/libsqlite3.a +%endif + +# install the logrotate file +cp -p scripts/logrotate $RPM_BUILD_ROOT/etc/logrotate.d/bacula + +# install the updatedb scripts +cp -p updatedb/* $RPM_BUILD_ROOT%{script_dir}/updatedb/ + +# install the logwatch scripts +%if ! %{client_only} +cp -p scripts/logwatch/bacula $RPM_BUILD_ROOT/etc/log.d/scripts/services/bacula +cp -p scripts/logwatch/logfile.bacula.conf $RPM_BUILD_ROOT/etc/log.d/conf/logfiles/bacula.conf +cp -p scripts/logwatch/services.bacula.conf $RPM_BUILD_ROOT/etc/log.d/conf/services/bacula.conf +chmod 755 $RPM_BUILD_ROOT/etc/log.d/scripts/services/bacula +chmod 644 $RPM_BUILD_ROOT/etc/log.d/conf/logfiles/bacula.conf +chmod 644 $RPM_BUILD_ROOT/etc/log.d/conf/services/bacula.conf +%endif + +# install the rescue files +mkdir $RPM_BUILD_ROOT%{sysconf_dir}/rescue +mkdir $RPM_BUILD_ROOT%{sysconf_dir}/rescue/freebsd +mkdir $RPM_BUILD_ROOT%{sysconf_dir}/rescue/solaris +cp -p %{_rescuesrc}/Makefile* $RPM_BUILD_ROOT%{sysconf_dir}/rescue/ +cp -p %{_rescuesrc}/freebsd/Makefile* $RPM_BUILD_ROOT%{sysconf_dir}/rescue/freebsd/ +cp -p %{_rescuesrc}/solaris/Makefile* $RPM_BUILD_ROOT%{sysconf_dir}/rescue/solaris/ +cp -p %{_rescuesrc}/README $RPM_BUILD_ROOT%{sysconf_dir}/rescue/ +cp -p %{_rescuesrc}/configure $RPM_BUILD_ROOT%{sysconf_dir}/rescue/ +cp -p %{_rescuesrc}/version.h $RPM_BUILD_ROOT%{sysconf_dir}/rescue/ +cp -pr %{_rescuesrc}/linux $RPM_BUILD_ROOT%{sysconf_dir}/rescue/ +cp -pr %{_rescuesrc}/autoconf $RPM_BUILD_ROOT%{sysconf_dir}/rescue/ +cp -pr %{_rescuesrc}/knoppix $RPM_BUILD_ROOT%{sysconf_dir}/rescue/ +touch $RPM_BUILD_ROOT%{sysconf_dir}/rescue/linux/cdrom/rpm_release +cp -p src/filed/static-bacula-fd $RPM_BUILD_ROOT%{sysconf_dir}/rescue/linux/cdrom/bacula/bin/bacula-fd +rm -f src/filed/static-bacula-fd + +# install bat since make doesn't at the moment +%if %{bat} +cp -p src/qt-console/bat $RPM_BUILD_ROOT/usr/sbin/bat +cp -p src/qt-console/bat.conf $RPM_BUILD_ROOT%{sysconf_dir}/bat.conf +%endif + +# now clean up permissions that are left broken by the install +chmod o-rwx $RPM_BUILD_ROOT%{working_dir} +%if %{gconsole} && ! %{rh8} +chmod 755 $RPM_BUILD_ROOT/usr/sbin/bacula-tray-monitor +chmod 644 $RPM_BUILD_ROOT%{sysconf_dir}/tray-monitor.conf +%endif + +# fix me - building enable-client-only installs files not included in bacula-client package +%if %{client_only} +rm -f $RPM_BUILD_ROOT%{script_dir}/bacula +rm -f $RPM_BUILD_ROOT%{script_dir}/bacula-ctl-dir +rm -f $RPM_BUILD_ROOT%{script_dir}/bacula-ctl-sd +rm -f $RPM_BUILD_ROOT%{script_dir}/disk-changer +rm -f $RPM_BUILD_ROOT%{script_dir}/dvd-handler +rm -f $RPM_BUILD_ROOT%{script_dir}/mtx-changer +rm -f $RPM_BUILD_ROOT%{script_dir}/startmysql +rm -f $RPM_BUILD_ROOT%{script_dir}/stopmysql +rm -rf $RPM_BUILD_ROOT%{script_dir}/updatedb +%endif + +%clean +[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT" +rm -rf $RPM_BUILD_DIR/%{name}-docs-%{docs_version} +rm -rf $RPM_BUILD_DIR/%{name}-rescue-%{_rescuever} +rm -rf $RPM_BUILD_DIR/depkgs +rm -f $RPM_BUILD_DIR/Release_Notes-%{version}-%{release}.txt + +%if %{mysql} +# MySQL specific files +%files mysql +%defattr(-, root, root) +%attr(-, root, %{daemon_group}) %{script_dir}/create_mysql_database +%attr(-, root, %{daemon_group}) %{script_dir}/drop_mysql_database +%attr(-, root, %{daemon_group}) %{script_dir}/make_mysql_tables +%attr(-, root, %{daemon_group}) %{script_dir}/drop_mysql_tables +%attr(-, root, %{daemon_group}) %{script_dir}/update_mysql_tables +%attr(-, root, %{daemon_group}) %{script_dir}/grant_mysql_privileges +%attr(-, root, %{daemon_group}) %{script_dir}/startmysql +%attr(-, root, %{daemon_group}) %{script_dir}/stopmysql +%endif + +%if %{sqlite} +%files sqlite +%defattr(-,root,root) +%attr(-, root, %{daemon_group}) %{script_dir}/create_sqlite3_database +%attr(-, root, %{daemon_group}) %{script_dir}/drop_sqlite3_database +%attr(-, root, %{daemon_group}) %{script_dir}/grant_sqlite3_privileges +%attr(-, root, %{daemon_group}) %{script_dir}/make_sqlite3_tables +%attr(-, root, %{daemon_group}) %{script_dir}/drop_sqlite3_tables +%attr(-, root, %{daemon_group}) %{script_dir}/update_sqlite3_tables +%{sqlite_bindir}/libsqlite3.a +%{sqlite_bindir}/sqlite3.h +%{sqlite_bindir}/sqlite3 +%endif + +%if %{postgresql} +%files postgresql +%defattr(-,root,root) +%attr(-, root, %{daemon_group}) %{script_dir}/create_postgresql_database +%attr(-, root, %{daemon_group}) %{script_dir}/drop_postgresql_database +%attr(-, root, %{daemon_group}) %{script_dir}/make_postgresql_tables +%attr(-, root, %{daemon_group}) %{script_dir}/drop_postgresql_tables +%attr(-, root, %{daemon_group}) %{script_dir}/update_postgresql_tables +%attr(-, root, %{daemon_group}) %{script_dir}/grant_postgresql_privileges +%endif + +# The rest is DB backend independent +%if ! %{client_only} +%attr(-, root, %{daemon_group}) %dir %{script_dir} +%attr(-, root, %{daemon_group}) %{script_dir}/bacula +%attr(-, root, %{daemon_group}) %{script_dir}/bconsole +%attr(-, root, %{daemon_group}) %{script_dir}/create_bacula_database +%attr(-, root, %{daemon_group}) %{script_dir}/drop_bacula_database +%attr(-, root, %{daemon_group}) %{script_dir}/grant_bacula_privileges +%attr(-, root, %{daemon_group}) %{script_dir}/make_bacula_tables +%attr(-, root, %{daemon_group}) %{script_dir}/drop_bacula_tables +%attr(-, root, %{daemon_group}) %{script_dir}/update_bacula_tables +%attr(-, root, %{daemon_group}) %{script_dir}/make_catalog_backup +%attr(-, root, %{daemon_group}) %{script_dir}/delete_catalog_backup +%attr(-, root, %{daemon_group}) %{script_dir}/btraceback.dbx +%attr(-, root, %{daemon_group}) %{script_dir}/btraceback.gdb +%attr(-, root, %{daemon_group}) %{sysconf_dir}/rescue +%attr(-, root, %{daemon_group}) %{script_dir}/disk-changer +%attr(-, root, %{daemon_group}) %{script_dir}/bacula-ctl-dir +%attr(-, root, %{daemon_group}) %{script_dir}/bacula-ctl-fd +%attr(-, root, %{daemon_group}) %{script_dir}/bacula-ctl-sd +%attr(-, root, %{daemon_group}) /etc/init.d/bacula-dir +%attr(-, root, %{daemon_group}) /etc/init.d/bacula-fd +%attr(-, root, %{storage_daemon_group}) %{script_dir}/dvd-handler +%attr(-, root, %{storage_daemon_group}) /etc/init.d/bacula-sd +%attr(-, root, %{storage_daemon_group}) %{script_dir}/mtx-changer + +%doc COPYING ChangeLog ReleaseNotes VERIFYING kernstodo +%doc %{_docsrc}/manual/bacula.pdf %{_docsrc}/developers/developers.pdf %{_docsrc}/manual/bacula ../Release_Notes-%{version}-%{release}.txt + +/etc/logrotate.d/bacula +/etc/log.d/scripts/services/bacula +%attr(-, root, %{daemon_group}) %config(noreplace) %{sysconf_dir}/bacula-dir.conf +%attr(-, root, %{daemon_group}) %config(noreplace) %{sysconf_dir}/bacula-fd.conf +%attr(-, root, %{storage_daemon_group}) %config(noreplace) %{sysconf_dir}/bacula-sd.conf +%attr(-, root, %{daemon_group}) %config(noreplace) %{sysconf_dir}/bconsole.conf +%attr(-, root, %{daemon_group}) %config(noreplace) /etc/log.d/conf/logfiles/bacula.conf +%attr(-, root, %{daemon_group}) %config(noreplace) /etc/log.d/conf/services/bacula.conf +%attr(-, root, %{daemon_group}) %config(noreplace) %{script_dir}/query.sql + +%attr(-, %{storage_daemon_user}, %{daemon_group}) %dir %{working_dir} + +/usr/sbin/bacula-dir +/usr/sbin/bacula-fd +/usr/sbin/bacula-sd +/usr/sbin/bcopy +/usr/sbin/bextract +/usr/sbin/bls +/usr/sbin/bscan +/usr/sbin/btape +/usr/sbin/btraceback +/usr/sbin/bconsole +/usr/sbin/dbcheck +/usr/sbin/bsmtp +/usr/sbin/bregex +/usr/sbin/bwild +%{_mandir}/man8/bacula-fd.8.%{manpage_ext} +%{_mandir}/man8/bacula-dir.8.%{manpage_ext} +%{_mandir}/man8/bacula-sd.8.%{manpage_ext} +%{_mandir}/man8/bacula.8.%{manpage_ext} +%{_mandir}/man8/bconsole.8.%{manpage_ext} +%{_mandir}/man8/bcopy.8.%{manpage_ext} +%{_mandir}/man8/bextract.8.%{manpage_ext} +%{_mandir}/man8/bls.8.%{manpage_ext} +%{_mandir}/man8/bscan.8.%{manpage_ext} +%{_mandir}/man8/btape.8.%{manpage_ext} +%{_mandir}/man8/btraceback.8.%{manpage_ext} +%{_mandir}/man8/dbcheck.8.%{manpage_ext} +%{_mandir}/man1/bsmtp.1.%{manpage_ext} +%endif + +%if %{mysql} +%pre mysql +# test for bacula database older than version 9 +# note: this ASSUMES no password has been set for bacula database +DB_VER=`mysql 2>/dev/null bacula -e 'select * from Version;'|tail -n 1` +%endif + +%if %{sqlite} +%pre sqlite +# are we upgrading from sqlite to sqlite3? +if [ -s %{working_dir}/bacula.db ] && [ -s %{sqlite_bindir}/sqlite ];then + echo "This version of bacula-sqlite involves an upgrade to sqlite3." + echo "Your catalog database file is not compatible with sqlite3, thus" + echo "you will need to dump the data, delete the old file, and re-run" + echo "this rpm upgrade." + echo "" + echo "Backing up your current database..." + echo ".dump" | %{sqlite_bindir}/sqlite %{working_dir}/bacula.db > %{working_dir}/bacula_backup.sql + mv %{working_dir}/bacula.db %{working_dir}/bacula.db.old + echo "Your catalog data has been saved in %{working_dir}/bacula_backup.sql and your" + echo "catalog file has been renamed %{working_dir}/bacula.db.old." + echo "" + echo "Please re-run this rpm package upgrade." + echo "After the upgrade is complete, restore your catalog" + echo "with the following commands:" + echo "%{script_dir}/drop_sqlite3_tables" + echo "cd %{working_dir}" + echo "%{sqlite_bindir}/sqlite3 $* bacula.db < bacula_backup.sql" + echo "chown bacula.bacula bacula.db" + exit 1 +fi +# test for bacula database older than version 9 and sqlite3 +if [ -s %{working_dir}/bacula.db ] && [ -s %{sqlite_bindir}/sqlite3 ];then + DB_VER=`echo "select * from Version;" | %{sqlite_bindir}/sqlite3 2>/dev/null %{working_dir}/bacula.db | tail -n 1` +%endif + +%if %{postgresql} +%pre postgresql +DB_VER=`echo 'select * from Version;' | psql bacula 2>/dev/null | tail -3 | head -1` +%endif + +%if ! %{client_only} +if [ -n "$DB_VER" ] && [ "$DB_VER" -lt "9" ]; then + echo "This bacula upgrade will update a bacula database from version 9 to 10." + echo "You appear to be running database version $DB_VER. You must first update" + echo "your database to version 9 and then install this upgrade. The alternative" + echo "is to use %{script_dir}/drop_%{db_backend}_tables to delete all your your current" + echo "catalog information, then do the upgrade. Information on updating a" + echo "database older than version 9 can be found in the release notes." + exit 1 +fi +%endif + +%if %{sqlite} +fi +%endif + +%if ! %{client_only} +# check for and copy %{sysconf_dir}/console.conf to bconsole.conf +if [ -s %{sysconf_dir}/console.conf ];then + cp -p %{sysconf_dir}/console.conf %{sysconf_dir}/bconsole.conf +fi + +# create the daemon users and groups +# first create the groups if they don't exist +HAVE_BACULA=`grep %{daemon_group} %{group_file} 2>/dev/null` +if [ -z "$HAVE_BACULA" ]; then + %{groupadd} -r %{daemon_group} > /dev/null 2>&1 + echo "The group %{daemon_group} has been added to %{group_file}." + echo "See the manual chapter \"Running Bacula\" for details." +fi +HAVE_BACULA=`grep %{storage_daemon_group} %{group_file} 2>/dev/null` +if [ -z "$HAVE_BACULA" ]; then + %{groupadd} -r %{storage_daemon_group} > /dev/null 2>&1 + echo "The group %{storage_daemon_group} has been added to %{group_file}." + echo "See the manual chapter \"Running Bacula\" for details." +fi +# now create the users if they do not exist +# we do not use the -g option allowing the primary group to be set to system default +# this will be a unique group on redhat type systems or the group users on some systems +HAVE_BACULA=`grep %{storage_daemon_user} %{user_file} 2>/dev/null` +if [ -z "$HAVE_BACULA" ]; then + %{useradd} -r -c "Bacula" -d %{working_dir} -g %{storage_daemon_group} -M -s /sbin/nologin %{storage_daemon_user} > /dev/null 2>&1 + echo "The user %{storage_daemon_user} has been added to %{user_file}." + echo "See the manual chapter \"Running Bacula\" for details." +fi +HAVE_BACULA=`grep %{director_daemon_user} %{user_file} 2>/dev/null` +if [ -z "$HAVE_BACULA" ]; then + %{useradd} -r -c "Bacula" -d %{working_dir} -g %{daemon_group} -M -s /sbin/nologin %{director_daemon_user} > /dev/null 2>&1 + echo "The user %{director_daemon_user} has been added to %{user_file}." + echo "See the manual chapter \"Running Bacula\" for details." +fi +HAVE_BACULA=`grep %{file_daemon_user} %{user_file} 2>/dev/null` +if [ -z "$HAVE_BACULA" ]; then + %{useradd} -r -c "Bacula" -d %{working_dir} -g %{daemon_group} -M -s /sbin/nologin %{file_daemon_user} > /dev/null 2>&1 + echo "The user %{file_daemon_user} has been added to %{user_file}." + echo "See the manual chapter \"Running Bacula\" for details." +fi +# now we add the supplementary groups, this is ok to call even if the users already exist +# we only do this if the user is NOT root +IS_ROOT=%{director_daemon_user} +if [ "$IS_ROOT" != "root" ]; then +%{usermod} -G %{daemon_group} %{director_daemon_user} +fi +IS_ROOT=%{storage_daemon_user} +if [ "$IS_ROOT" != "root" ]; then +%{usermod} -G %{daemon_group},%{storage_daemon_group} %{storage_daemon_user} +fi +IS_ROOT=%{file_daemon_user} +if [ "$IS_ROOT" != "root" ]; then +%{usermod} -G %{daemon_group} %{file_daemon_user} +fi +%endif + +%if %{mysql} +%post mysql +%endif +%if %{sqlite} +%post sqlite +%endif +%if %{postgresql} +%post postgresql +%endif + +%if ! %{client_only} +# add our links +if [ "$1" -ge 1 ] ; then +/sbin/chkconfig --add bacula-dir +/sbin/chkconfig --add bacula-fd +/sbin/chkconfig --add bacula-sd +fi +%endif + +%if %{mysql} +# test for an existing database +# note: this ASSUMES no password has been set for bacula database +DB_VER=`mysql 2>/dev/null bacula -e 'select * from Version;'|tail -n 1` + +# grant privileges and create tables if they do not exist +if [ -z "$DB_VER" ]; then + echo "Hmm, doesn't look like you have an existing database." + echo "Granting privileges for MySQL user bacula..." + %{script_dir}/grant_mysql_privileges + echo "Creating MySQL bacula database..." + %{script_dir}/create_mysql_database + echo "Creating bacula tables..." + %{script_dir}/make_mysql_tables + +# check to see if we need to upgrade a 1.38 or lower database +elif [ "$DB_VER" -lt "10" ]; then + echo "This release requires an upgrade to your bacula database." + echo "Backing up your current database..." + mysqldump -f --opt bacula | bzip2 > %{working_dir}/bacula_backup.sql.bz2 + echo "Upgrading bacula database ..." + %{script_dir}/update_mysql_tables + echo "If bacula works correctly you can remove the backup file %{working_dir}/bacula_backup.sql.bz2" + +fi +%endif + +%if %{sqlite} +# test for an existing database +if [ -s %{working_dir}/bacula.db ]; then + DB_VER=`echo "select * from Version;" | %{sqlite_bindir}/sqlite3 2>/dev/null %{working_dir}/bacula.db | tail -n 1` + # check to see if we need to upgrade a 1.38 or lower database + if [ "$DB_VER" -lt "10" ] && [ "$DB_VER" -ge "9" ]; then + echo "This release requires an upgrade to your bacula database." + echo "Backing up your current database..." + echo ".dump" | %{sqlite_bindir}/sqlite3 %{working_dir}/bacula.db | bzip2 > %{working_dir}/bacula_backup.sql.bz2 + echo "Upgrading bacula database ..." + %{script_dir}/update_sqlite3_tables + echo "If bacula works correctly you can remove the backup file %{working_dir}/bacula_backup.sql.bz2" + fi +else + # create the database and tables + echo "Hmm, doesn't look like you have an existing database." + echo "Creating SQLite database..." + %{script_dir}/create_sqlite3_database + chown %{director_daemon_user}.%{daemon_group} %{working_dir}/bacula.db + echo "Creating the SQLite tables..." + %{script_dir}/make_sqlite3_tables +fi +%endif + +%if %{postgresql} +# test for an existing database +# note: this ASSUMES no password has been set for bacula database +DB_VER=`echo 'select * from Version;' | psql bacula 2>/dev/null | tail -3 | head -1` + +# grant privileges and create tables if they do not exist +if [ -z "$DB_VER" ]; then + echo "Hmm, doesn't look like you have an existing database." + echo "Creating PostgreSQL bacula database..." + %{script_dir}/create_postgresql_database + echo "Creating bacula tables..." + %{script_dir}/make_postgresql_tables + echo "Granting privileges for PostgreSQL user bacula..." + %{script_dir}/grant_postgresql_privileges + +# check to see if we need to upgrade a 1.38 or lower database +elif [ "$DB_VER" -lt "10" ]; then + echo "This release requires an upgrade to your bacula database." + echo "Backing up your current database..." + pg_dump bacula | bzip2 > %{working_dir}/bacula_backup.sql.bz2 + echo "Upgrading bacula database ..." + %{script_dir}/update_postgresql_tables + echo "If bacula works correctly you can remove the backup file %{working_dir}/bacula_backup.sql.bz2" + +fi +%endif + +%if ! %{client_only} +# generate passwords if needed +if [ -d %{sysconf_dir} ]; then + cd %{sysconf_dir} + for file in *.conf; do + for string in XXX_REPLACE_WITH_DIRECTOR_PASSWORD_XXX XXX_REPLACE_WITH_CLIENT_PASSWORD_XXX XXX_REPLACE_WITH_STORAGE_PASSWORD_XXX XXX_REPLACE_WITH_DIRECTOR_MONITOR_PASSWORD_XXX XXX_REPLACE_WITH_CLIENT_MONITOR_PASSWORD_XXX XXX_REPLACE_WITH_STORAGE_MONITOR_PASSWORD_XXX; do + need_password=`grep $string $file 2>/dev/null` + if [ -n "$need_password" ]; then + pass=`openssl rand -base64 33` + sed "s-$string-$pass-g" $file > $file.new + cp -f $file.new $file; rm -f $file.new + fi + done + done +fi +%endif + +%if %{mysql} +%preun mysql +%endif +%if %{sqlite} +%preun sqlite +%endif +%if %{postgresql} +%preun postgresql +%endif + +%if ! %{client_only} +# delete our links +if [ $1 = 0 ]; then +/sbin/chkconfig --del bacula-dir +/sbin/chkconfig --del bacula-fd +/sbin/chkconfig --del bacula-sd +fi +%endif + + +%if ! %{client_only} && %{mtx} +%files mtx +%defattr(-,root,root) +%attr(-, root, %{storage_daemon_group}) /usr/sbin/loaderinfo +%attr(-, root, %{storage_daemon_group}) /usr/sbin/mtx +%attr(-, root, %{storage_daemon_group}) /usr/sbin/scsitape +%attr(-, root, %{storage_daemon_group}) /usr/sbin/tapeinfo +%attr(-, root, %{storage_daemon_group}) /usr/sbin/nsmhack +%attr(-, root, %{storage_daemon_group}) /usr/sbin/scsieject +%{_mandir}/man1/loaderinfo.1.%{manpage_ext} +%{_mandir}/man1/mtx.1.%{manpage_ext} +%{_mandir}/man1/scsitape.1.%{manpage_ext} +%{_mandir}/man1/tapeinfo.1.%{manpage_ext} +%{_mandir}/man1/scsieject.1.%{manpage_ext} +%endif + +%files client +%defattr(-,root,root) +%attr(-, root, %{daemon_group}) %dir %{script_dir} +%attr(-, root, %{daemon_group}) %{script_dir}/bconsole +%{script_dir}/bacula-ctl-fd +/etc/init.d/bacula-fd +%attr(-, root, %{daemon_group}) %{sysconf_dir}/rescue + +%doc COPYING ChangeLog ReleaseNotes VERIFYING kernstodo +%doc %{_docsrc}/manual/bacula.pdf %{_docsrc}/developers/developers.pdf %{_docsrc}/manual/bacula ../Release_Notes-%{version}-%{release}.txt + +/etc/logrotate.d/bacula + +%attr(-, root, %{daemon_group}) %config(noreplace) %{sysconf_dir}/bacula-fd.conf +%attr(-, root, %{daemon_group}) %config(noreplace) %{sysconf_dir}/bconsole.conf + +%attr(-, root, %{daemon_group}) %dir %{working_dir} + +/usr/sbin/bacula-fd +/usr/sbin/btraceback +%attr(-, root, %{daemon_group}) %{script_dir}/btraceback.gdb +%attr(-, root, %{daemon_group}) %{script_dir}/btraceback.dbx +/usr/sbin/bconsole +%{_mandir}/man8/bacula-fd.8.%{manpage_ext} +%{_mandir}/man8/bacula.8.%{manpage_ext} +%{_mandir}/man8/bconsole.8.%{manpage_ext} +%{_mandir}/man8/btraceback.8.%{manpage_ext} + + +%pre client +# create the daemon group and user +HAVE_BACULA=`grep %{daemon_group} %{group_file} 2>/dev/null` +if [ -z "$HAVE_BACULA" ]; then + %{groupadd} -r %{daemon_group} > /dev/null 2>&1 + echo "The group %{daemon_group} has been added to %{group_file}." + echo "See the manual chapter \"Running Bacula\" for details." +fi +# we do not use the -g option allowing the primary group to be set to system default +# this will be a unique group on redhat type systems or the group users on some systems +HAVE_BACULA=`grep %{file_daemon_user} %{user_file} 2>/dev/null` +if [ -z "$HAVE_BACULA" ]; then + %{useradd} -r -c "Bacula" -d %{working_dir} -g %{daemon_group} -M -s /sbin/nologin %{file_daemon_user} > /dev/null 2>&1 + echo "The user %{file_daemon_user} has been added to %{user_file}." + echo "See the manual chapter \"Running Bacula\" for details." +fi +# now we add the supplementary group, this is ok to call even if the user already exists +# we only do this if the user is NOT root +IS_ROOT=%{file_daemon_user} +if [ "$IS_ROOT" != "root" ]; then +%{usermod} -G %{daemon_group} %{file_daemon_user} +fi + +%post client +# add our link +if [ "$1" -ge 1 ] ; then +/sbin/chkconfig --add bacula-fd +fi + +# generate passwords if needed +if [ -d %{sysconf_dir} ]; then + cd %{sysconf_dir} + for file in *.conf; do + for string in XXX_REPLACE_WITH_DIRECTOR_PASSWORD_XXX XXX_REPLACE_WITH_CLIENT_PASSWORD_XXX XXX_REPLACE_WITH_STORAGE_PASSWORD_XXX XXX_REPLACE_WITH_DIRECTOR_MONITOR_PASSWORD_XXX XXX_REPLACE_WITH_CLIENT_MONITOR_PASSWORD_XXX XXX_REPLACE_WITH_STORAGE_MONITOR_PASSWORD_XXX; do + need_password=`grep $string $file 2>/dev/null` + if [ -n "$need_password" ]; then + pass=`openssl rand -base64 33` + sed "s-$string-$pass-g" $file > $file.new + cp -f $file.new $file; rm -f $file.new + fi + done + done +fi + +%preun client +# delete our link +if [ $1 = 0 ]; then +/sbin/chkconfig --del bacula-fd +fi + +%if ! %{client_only} +%files updatedb +%defattr(-,root,%{daemon_group}) +%{script_dir}/updatedb/* + +%pre updatedb +# create the daemon group +HAVE_BACULA=`grep %{daemon_group} %{group_file} 2>/dev/null` +if [ -z "$HAVE_BACULA" ]; then + %{groupadd} -r %{daemon_group} > /dev/null 2>&1 + echo "The group %{daemon_group} has been added to %{group_file}." + echo "See the manual chapter \"Running Bacula\" for details." +fi + +%post updatedb +echo "The database update scripts were installed to %{script_dir}/updatedb" +%endif + +%if %{gconsole} +%files gconsole +%defattr(-,root,root) +/usr/sbin/bgnome-console +%attr(-, root, %{daemon_group}) %dir %{script_dir} +%attr(-, root, %{daemon_group}) %{script_dir}/gconsole +%attr(-, root, %{daemon_group}) %config(noreplace) %{sysconf_dir}/bgnome-console.conf +/usr/share/pixmaps/bacula.png +/usr/share/applications/bacula.desktop +%{_mandir}/man1/bacula-bgnome-console.1.%{manpage_ext} +%endif + +%if %{gconsole} && ! %{rh8} +/usr/sbin/bacula-tray-monitor +%config(noreplace) %{sysconf_dir}/tray-monitor.conf +/usr/share/pixmaps/bacula-tray-monitor.xpm +/usr/share/applications/bacula-tray-monitor.desktop +%{_mandir}/man1/bacula-tray-monitor.1.%{manpage_ext} +%endif + +%if %{gconsole} && ! %{su9} && ! %{su10} && ! %{su102} && ! %{su103} +# add the console helper files +%config(noreplace,missingok) /etc/pam.d/bgnome-console +%config(noreplace,missingok) /etc/security/console.apps/bgnome-console +/usr/bin/bgnome-console +%endif + +%if %{gconsole} +%pre gconsole +# create the daemon group +HAVE_BACULA=`grep %{daemon_group} %{group_file} 2>/dev/null` +if [ -z "$HAVE_BACULA" ]; then + %{groupadd} -r %{daemon_group} > /dev/null 2>&1 + echo "The group %{daemon_group} has been added to %{group_file}." + echo "See the manual chapter \"Running Bacula\" for details." +fi + +%post gconsole +# generate passwords if needed +if [ -d %{sysconf_dir} ]; then + cd %{sysconf_dir} + for file in *.conf; do + for string in XXX_REPLACE_WITH_DIRECTOR_PASSWORD_XXX XXX_REPLACE_WITH_CLIENT_PASSWORD_XXX XXX_REPLACE_WITH_STORAGE_PASSWORD_XXX XXX_REPLACE_WITH_DIRECTOR_MONITOR_PASSWORD_XXX XXX_REPLACE_WITH_CLIENT_MONITOR_PASSWORD_XXX XXX_REPLACE_WITH_STORAGE_MONITOR_PASSWORD_XXX; do + need_password=`grep $string $file 2>/dev/null` + if [ -n "$need_password" ]; then + pass=`openssl rand -base64 33` + sed "s-$string-$pass-g" $file > $file.new + cp -f $file.new $file; rm -f $file.new + fi + done + done +fi +%endif + +%if %{wxconsole} +%files wxconsole +%defattr(-,root,root) +/usr/sbin/bwx-console +%attr(-, root, %{daemon_group}) %dir %{sysconf_dir} +%attr(-, root, %{daemon_group}) %config(noreplace) %{sysconf_dir}/bwx-console.conf +/usr/share/pixmaps/wxwin16x16.xpm +/usr/share/applications/wxconsole.desktop +%{_mandir}/man1/bacula-bwxconsole.1.%{manpage_ext} +%endif + +%if %{wxconsole} && ! %{su9} && ! %{su10} && ! %{su102} && ! %{su103} +# add the console helper files +%config(noreplace,missingok) /etc/pam.d/bwx-console +%config(noreplace,missingok) /etc/security/console.apps/bwx-console +/usr/bin/bwx-console +%endif + +%if %{wxconsole} +%pre wxconsole +# create the daemon group +HAVE_BACULA=`grep %{daemon_group} %{group_file} 2>/dev/null` +if [ -z "$HAVE_BACULA" ]; then + %{groupadd} -r %{daemon_group} > /dev/null 2>&1 + echo "The group %{daemon_group} has been added to %{group_file}." + echo "See the manual chapter \"Running Bacula\" for details." +fi + +%post wxconsole +# generate passwords if needed +if [ -d %{sysconf_dir} ]; then + cd %{sysconf_dir} + for file in *.conf; do + for string in XXX_REPLACE_WITH_DIRECTOR_PASSWORD_XXX XXX_REPLACE_WITH_CLIENT_PASSWORD_XXX XXX_REPLACE_WITH_STORAGE_PASSWORD_XXX XXX_REPLACE_WITH_DIRECTOR_MONITOR_PASSWORD_XXX XXX_REPLACE_WITH_CLIENT_MONITOR_PASSWORD_XXX XXX_REPLACE_WITH_STORAGE_MONITOR_PASSWORD_XXX; do + need_password=`grep $string $file 2>/dev/null` + if [ -n "$need_password" ]; then + pass=`openssl rand -base64 33` + sed "s-$string-$pass-g" $file > $file.new + cp -f $file.new $file; rm -f $file.new + fi + done + done +fi +%endif + +%if %{bat} +%files bat +%defattr(-,root,root) +/usr/sbin/bat +%attr(-, root, %{daemon_group}) %dir %{sysconf_dir} +%attr(-, root, %{daemon_group}) %config(noreplace) %{sysconf_dir}/bat.conf +/usr/share/pixmaps/bat_icon.png +/usr/share/applications/bat.desktop +%{_mandir}/man1/bat.1.%{manpage_ext} +%endif + +%if %{bat} && ! %{su9} && ! %{su10} && ! %{su102} && ! %{su103} +# add the console helper files +%config(noreplace,missingok) /etc/pam.d/bat +%config(noreplace,missingok) /etc/security/console.apps/bat +/usr/bin/bat +%endif + +%if %{bat} +%pre bat +# create the daemon group +HAVE_BACULA=`grep %{daemon_group} %{group_file} 2>/dev/null` +if [ -z "$HAVE_BACULA" ]; then + %{groupadd} -r %{daemon_group} > /dev/null 2>&1 + echo "The group %{daemon_group} has been added to %{group_file}." + echo "See the manual chapter \"Running Bacula\" for details." +fi + +%post bat +# generate passwords if needed +if [ -d %{sysconf_dir} ]; then + cd %{sysconf_dir} + for file in *.conf; do + for string in XXX_REPLACE_WITH_DIRECTOR_PASSWORD_XXX XXX_REPLACE_WITH_CLIENT_PASSWORD_XXX XXX_REPLACE_WITH_STORAGE_PASSWORD_XXX XXX_REPLACE_WITH_DIRECTOR_MONITOR_PASSWORD_XXX XXX_REPLACE_WITH_CLIENT_MONITOR_PASSWORD_XXX XXX_REPLACE_WITH_STORAGE_MONITOR_PASSWORD_XXX; do + need_password=`grep $string $file 2>/dev/null` + if [ -n "$need_password" ]; then + pass=`openssl rand -base64 33` + sed "s-$string-$pass-g" $file > $file.new + cp -f $file.new $file; rm -f $file.new + fi + done + done +fi +%endif + +%changelog +* Sat Jan 12 2008 D. Scott Barninger +- 2.2.8 release +- fix bug 1037 +- add fc8 target +* Sun Dec 30 2007 D. Scott Barninger +- fix typo on su103 client package requirements +* Fri Dec 28 2007 D. Scott Barninger +- add nobuild_mtx switch +- add patch for postgresql.c for old postgresql versions +* Sat Nov 17 2007 D. Scott Barninger +- switch to sqlite3 +* Sun Nov 11 2007 D. Scott Barninger +- add new files required by rescue makefile +* Sat Nov 10 2007 D. Scott Barninger +- add su103 build target +* Sun Nov 04 2007 D. Scott Barninger +- fix dist defines for rhel5 and clones +- fix rhel broken 64 bit QT4 paths +- rh qt4 packages don't provide qt so fix that too +* Mon Oct 29 2007 D. Scott Barninger +- correct ownership when creating sqlite db file in post script +* Sun Sep 16 2007 D. Scott Barninger +- fix disable-batch-insert +* Fri Sep 14 2007 D. Scott Barninger +- 2.2.4 release +- turn off gconsole build for fc3, tray monitor fails to build +- add new files for mtx package (09Sep07 depkgs update) +* Sat Sep 08 2007 D. Scott Barninger +- add --disable-batch-insert for older platforms +- add build targets for rhel5 and clones +* Mon Sep 03 2007 D. Scott Barninger +- 2.2.1 release +- turn off gconsole build for su10 & fc4, tray monitor fails to build +* Sat Jul 14 2007 D. Scott Barninger +- 2.1.26 add make of qwt in depkgs for bat +* Sat Jun 02 2007 D. Scott Barninger +- upgrade Qt requirement for bat to 4.2 +* Sun May 06 2007 D. Scott Barninger +- add fc7 build target +* Sun Apr 29 2007 D. Scott Barninger +- 2.1.8 +- gnome-console now bgnome-console +- wxconsole now bwx-console +- add build option for bat +* Sat Apr 08 2007 D. Scott Barninger +- merge Otto Mueller's patch but keep script dir set to /etc/bacula +- add build tag for Scientific Linux per Jon Peatfield +* Tue Mar 27 2007 Otto Mueller +- adjust directory locations for FHS-compatibility + sysconf_dir (/etc/bacula), script_dir (/usr/lib/bacula), + working_dir (/var/lib/bacula) and pid_dir (/var/run) +* Mon Feb 26 2007 D. Scott Barninger +- add SuSE 10.2 target +* Sat Jan 20 2007 D. Scott Barninger +- correct bug 752 +- set query.sql as config file +- correct bug 754 +* Sun Jan 14 2007 D. Scott Barninger +- 2.0.1 release +- change determination of gcc version per patch from Marc Hennes +- move BuildRequire for atk-devel to gnome only builds +- add fc6 build tag +* Sat Jan 06 2007 D. Scott Barninger +- 2.0.0 release +* Sun Oct 15 2006 D. Scott Barninger +- 1.39.26 remove create_sqlite_database.in.patch +* Sun Sep 24 2006 D. Scott Barninger +- change ownership of working_dir on server packages to bacula.bacula so that +- bacula-sd can create bootstrap files +* Sat Sep 02 2006 D. Scott Barninger +- 1.39.22 remove separate cd and make of manpages the main Makefile does it now +* Sun Aug 06 2006 D. Scott Barninger +- fix manpages file extension for mdk +* Sat Aug 05 2006 D. Scott Barninger +- bug 648 re-enable and update sqlite patches +- 1.39.18 changes +- updatedb 9 to 10 +- install man pages +- lock out gconsole build for gtk+ < 2.4 +* Mon Jul 17 2006 D. Scott Barninger +- move pango-devel BuildRequires into gconsole only build +* Sat Jul 15 2006 D. Scott Barninger +- add provides and conflicts for standard suse packages +- add third party packager tag support +- add build_client_only tag +- remove bsmtp from client package +- add bacula-ctl-fd to client package +* Thu Jul 13 2006 D. Scott Barninger +- fix directory creation when wxconsole and not gconsole +* Tue Jul 04 2006 D. Scott Barninger +- add check to buildrequires to make sure libstdc++ version matches gcc +* Mon Jul 03 2006 D. Scott Barninger +- add python build support +- fix LDFLAGS declarations +* Sun Jul 02 2006 D. Scott Barninger +- add requires for standard compiler toolchain +- move version and release tags up +- move patches up +- add docs_version tag +* Sat Jul 01 2006 D. Scott Barninger +- update rescuever to 1.8.6 +* Sun Jun 25 2006 D. Scott Barninger +- update depkgs to 25Jun06 +- add mysql5 build tag +* Mon Jun 12 2006 D. Scott Barninger +- 1.38.10 bump rescue version +* Sun Jun 03 2006 D. Scott Barninger +- fix usermod statements +- add fc5 target +* Thu Apr 27 2006 D. Scott Barninger +- add -g param back to useradd statements Bug 605 +* Mon Apr 17 2006 D. Scott Barninger +- redundant code cleanup +* Sun Apr 16 2006 D. Scott Barninger +- add wxconsole package +* Fri Apr 14 2006 D. Scott Barninger +- 1.38.8 release +- dependency update for Mandriva +* Sun Apr 08 2006 D. Scott Barninger +- 1.38.7 release +- remove -n option from useradd scripts +* Sun Apr 02 2006 D. Scott Barninger +- 1.38.6 release +- fix problem specifying more than one primary group for user bacula +- add build switch to not build gconsole regardless of platform +* Sun Jan 29 2006 D. Scott Barninger +- add centos3 build tag +- fix link error of static-fd on Mandrake with --disable-nls +* Fri Jan 27 2006 D. Scott Barninger +- add fc4 dependencies +* Mon Jan 23 2006 D. Scott Barninger +- add SuSE 10.0 build +- remove specific permission in attrib macros +* Sat Jan 21 2006 D. Scott Barninger +- 1.38.5 release +- fix usermode required on suse, suse doesn't have usermode (xsu instead) +- refix compat for _dist on SLES9 which seems to have been removed +- added note regarding Aleksandar's use of specific permissions in attrib macros +- need to review and add specific fc4 build currently using fc3 Requires +* Wed Dec 14 2005 Aleksandar Milivojevic +- 1.38.2 release +- Reorganize files and pre/post sections to remove repetitions +- Always build separate mtx package +- Fix file ownerships for /etc/bacula and Bacula's working dir +* Wed Nov 23 2005 Aleksandar Milivojevic +- Disable GNOME on RH7 +* Fri Nov 18 2005 Aleksandar Milivojevic +- Red Hat and look alikes have mtx RPM, do not build/package our version +* Sun Nov 13 2005 D. Scott Barninger +- minor edit to _dist for SLES9 compatibility +* Sat Nov 05 2005 D. Scott Barninger +- 1.38.0 release +- kern changed location of pdf files and html manual in docs package +* Sun Oct 30 2005 D. Scott Barninger +- 1.38.0 release +- add docs (from prebuilt tarball) and rescue packages back in +- remove dvd-freespace and dvd-writepart files, add dvd-handler +- remove 3 of 4 sqlite script patches as not needed +* Sun Jul 24 2005 D. Scott Barninger +- changes for 1.38 +- remove docs and rescue sections (remove static fd) +- add dvd-freespace and dvd-writepart files +- update depkgs to 22Jun05 +- change database update to 8 to 9 +* Sun Jul 24 2005 D. Scott Barninger +- minor cleanups before 1.38 changes +- add popt and popt-devel build dependencies +- add tetex and tetex-dvips dependencies for doc build +- replace deprecated Copyright tag with License +* Sat May 07 2005 D. Scott Barninger +- move sqlite installation bindir to /usr/lib/bacula/sqlite and remove +- conflict with sqlite packages. remove readline dependency. +* Sun Apr 17 2005 D. Scott Barninger +- release 1.36.3 update docs +* Tue Apr 05 2005 D. Scott Barninger +- add centos4 build tag +- add x86_64 build tag +* Sun Apr 03 2005 D. Scott Barninger +- add rhel4 build tag +- clean up for mysql4 which is now mdk-10.1, suse-9.2 and rhel4 +* Sun Mar 06 2005 D. Scott Barninger +- add rhel3 build tag +* Tue Mar 01 2005 D. Scott Barninger +- fix tray-monitor.conf for noreplace +* Mon Feb 28 2005 D. Scott Barninger +- fix distribution check for Fedora and Whitebox +* Sun Feb 06 2005 D. Scott Barninger +- add logwatch script +- add dvd scripts +* Sat Jan 15 2005 D. Scott Barninger +- add build for Fedora Core 3 (linc now included in ORDit2) +- add mysql4 define for Mandrake 10.1 +* Fri Jan 14 2005 D. Scott Barninger +- fix {group_file} variable in post scripts +* Thu Dec 30 2004 D. Scott Barninger +- add distribution checking and custom Distribution tag +* Thu Dec 09 2004 D. Scott Barninger +- ASSIGNMENT OF COPYRIGHT +- FOR VALUE RECEIVED, D. Scott Barninger hereby sells, transfers and +- assigns unto Kern Sibbald, his successors, assigns and personal representatives, +- all right, title and interest in and to the copyright in this software RPM +- spec file. D. Scott Barninger warrants good title to said copyright, that it is +- free of all liens, encumbrances or any known claims against said copyright. +* Sat Dec 04 2004 D. Scott Barninger +- bug 183 fixes +- thanks to Daniel Widyono +- update description for rescue package to describe cdrom creation +* Thu Nov 18 2004 D. Scott Barninger +- update depkgs to 29Oct04 +* Fri Nov 12 2004 D. Scott Barninger +- add cdrom rescue to bacula-rescue package +* Sun Oct 31 2004 D. Scott Barninger +- misc fixes from 1.36.0 suse feedback +- fix situation where sqlite database exists but sqlite has been removed. +* Fri Oct 22 2004 D. Scott Barninger +- remove tray-monitor from RH8 build +- fix permissions on tray-monitor files +* Wed Oct 13 2004 D. Scott Barninger +- add Mandrake support and tray-monitor, misc changes for 1.35.8/1.36.0, +- change database update to 7 to 8 upgrade, +- revert depkgs to 08Mar04 as there seems to be a bug in the sqlite +- build in 30Jul04, add freetype dependancy to gnome package. +* Sun Sep 12 2004 D. Scott Barninger +- add documentation to console for groupadd +* Sat Sep 04 2004 D. Scott Barninger +- add support for running daemons as root.bacula +- correct for change in location of floppy rescue files in 1.35.2 +- removed /etc/bacula/fd script from all packages as it has disappeared from 1.35.2 +- updated depgkgs to 30Jul04 +* Thu Jun 24 2004 D. Scott Barninger +- really, really fix symlink creation for gconsole +* Thu Jun 17 2004 D. Scott Barninger +- fix symlink creation in gconsole post install +* Sat Jun 12 2004 D. Scott Barninger +- fixed error in gconsole post script +* Fri Apr 30 2004 D. Scott Barninger +- add check for gconsole symlink before trying to create it +* Sun Apr 11 2004 D. Scott Barninger +- fix some minor permissions issues on doc files that CVS won't let us fix +* Sun Apr 04 2004 D. Scott Barninger +- add pkgconfig to BuildRequires +- clean up gnome1/2 menu entries for appropriate packages +* Fri Apr 02 2004 D. Scott Barninger +- tightened up doc distribution +* Tue Mar 30 2004 D. Scott Barninger +- added usermode (Redhat) and xsu (SuSE) support for gnome-console; +- rpm's horrible bug that prevents nested conditional macros prevents me +- from implementing these 2 separate approaches within the conditionals which +- create the separate server packages. +- the solution adopted is to remove the gnome-console files from the server packages +- so bacula-gconsole is now an add on for both client and server packages. +- this also now allows the server packages to be install on machines without +- an X-server and we can still maintain a single spec file. +- added tests to make sure we have defined platform and database macros. +* Sat Mar 13 2004 D. Scott Barninger +- corrected mysql prerequisites for suse +* Mon Mar 1 2004 D. Scott Barninger +- replaced all cp commands with cp -p +- removed addition of a+x permissions on gnome-console +- corrected permissions on init scripts +* Sat Feb 28 2004 D. Scott Barninger +- corrected creation of sqlite_bindir in install from !mysql to sqlite +- +- various cleanup patches from Michael K. Johnson: +- corrected post install routines for nicer chkconfig +- removed chmod changes in post routines and moved to install section +- removed interactive nature of post routine for rescue package +- added description of building rescue disks to the description of rescue package +- added clean of build root to beginning of install +- removed specifying attr in all file lists +* Fri Feb 20 2004 D. Scott Barninger +- added bconsole to client package +- added gconsole package as add-on to client +- removed spurious dependancies on updatedb package (!cut/paste) +* Thu Feb 19 2004 D. Scott Barninger +- added updatedb package +* Thu Feb 12 2004 D. Scott Barninger +- added postgresql package +* Wed Feb 11 2004 D. Scott Barninger +- corrected the if else logic in the dependancy sections +- changes for 1.34 release +- /etc/bacula/console is now /etc/bacula/bconsole +- /etc/bacula/console.conf is now /etc/bacula/bconsole.conf +- /usr/sbin/btraceback.gdb is now /etc/bacula/btraceback.gdb +- /usr/sbin/smtp is now /usr/sbin/bsmtp +- added new /etc/bacula/drop_mysql_database +- added new /etc/bacula/drop_sqlite_database +- added new /etc/bacula/grant_sqlite_privileges +- added new generic bacula database scripts in /etc/bacula +- added pre-install sections to check for database versions older than 6 +- added check for /etc/bacula/console.conf and copy to bconsole.conf +* Sun Feb 08 2004 D. Scott Barninger +- added /etc/bacula/update_sqlite_tables and /etc/bacula/update_mysql_tables for 1.34 release +- added testing for existing databases before executing any of the database creation scripts +- added defines working_dir and sqlite_bindir in place of hard coded paths +* Sat Jan 31 2004 D. Scott Barninger +- added build configuration for SuSE. +- Thanks to Matt Vollmar for his input +* Sat Jan 24 2004 D. Scott Barninger +- added patch for create_sqlite_database to fix the installed bindir +- added execute of create_sqlite_database to post of sqlite package +* Sat Jan 10 2004 D. Scott Barninger +- added virtual package Provides bacula-dir, bacula-sd, bacula-fd +- added bacula-fd as Requires for rescue package +- added build tag for Fedora Core 1 +- cleaned up dependancies for all builds +* Thu Jan 1 2004 D. Scott Barninger +- removed rh_version from package names +- added platform build configuration section to beginning of file +* Tue Nov 25 2003 D. Scott Barninger +- removed make_static_bacula script from rescue package install +* Sun Nov 23 2003 D. Scott Barninger +- Added define at top of file for depkgs version +- Added rescue sub-package +- Moved requires statements into proper sub-package locations +* Mon Oct 27 2003 D. Scott Barninger +- Corrected Requires for Gnome 1.4/2.0 builds +* Fri Oct 24 2003 D. Scott Barninger +- Added separate source declaration for depkgs +- added patch for make_catalog_backup script +* Mon May 11 2003 D. Scott Barninger +- Misc changes to mysql/sqlite build and rh7/8 menu differences +- Added rh_version to sub-package names +- Added installed but missing file /etc/bacula/gconsole +- rm'd /etc/bacula/grant_mysql_privileges on sqlite builds +* Thu May 08 2003 Kern Sibbald +- Update spec for version 1.31 and combine client +* Sun Mar 30 2003 D. Scott Barninger +- Initial spec file diff --git a/Branch-2.2/bacula/platforms/openbsd/Makefile.in b/Branch-2.2/bacula/platforms/openbsd/Makefile.in new file mode 100644 index 0000000000..483686bee3 --- /dev/null +++ b/Branch-2.2/bacula/platforms/openbsd/Makefile.in @@ -0,0 +1,138 @@ +# +# This file is used as the template to create the +# Makefile for the Solaris specific installation. +# +# 15 November 2001 -- Kern Sibbald +# +# for Bacula release @VERSION@ (@DATE@) -- @DISTNAME@ +# + +VPATH = @srcdir@ +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +SED = /usr/bin/sed + +nothing: + +install: install-autostart + +install-autostart: install-autostart-fd install-autostart-sd install-autostart-dir + + +install-autostart-fd: + @echo "FreeBSD platform installation" + $(INSTALL_PROGRAM) -m 744 bacula-fd /etc/rc.bacula-fd + @-today="`date +%Y%m%d%H%M`"; \ + grep -q /etc/rc.bacula-fd /etc/rc.local; \ + if [ $$? -eq 0 ]; then \ + echo "/etc/rc.local already patched"; \ + else \ + rm -f /etc/rc.local.$$today; \ + cp -p /etc/rc.local /etc/rc.local.$$today; \ + ( echo "Start the Bacula File daemon. Do not remove the 'TAG_BACULA_FD' text"; \ + echo "if [ -x /etc/rc.bacula-fd ]; then # TAG_BACULA_FD"; \ + echo " /etc/rc.bacula-fd start # TAG_BACULA_FD"; \ + echo "fi # TAG_BACULA_FD"; \ + ) >> /etc/rc.local; \ + echo ""; \ + fi + + +install-autostart-sd: + @echo "FreeBSD platform installation" + $(INSTALL_PROGRAM) -m 744 bacula-sd /etc/rc.bacula-sd + @-today="`date +%Y%m%d%H%M`"; \ + grep -q /etc/rc.bacula-sd /etc/rc.local; \ + if [ $$? -eq 0 ]; then \ + echo "/etc/rc.local already patched"; \ + else \ + rm -f /etc/rc.local.$$today; \ + cp -p /etc/rc.local /etc/rc.local.$$today; \ + ( echo "Start the Bacula Storage daemon. Do not remove the 'TAG_BACULA_SD' text"; \ + echo "if [ -x /etc/rc.bacula-fd ]; then # TAG_BACULA_SD"; \ + echo " /etc/rc.bacula-fd start # TAG_BACULA_SD"; \ + echo "fi # TAG_BACULA_SD"; \ + ) >> /etc/rc.local; \ + echo ""; \ + fi + +install-autostart-dir: + @echo "FreeBSD platform installation" + $(INSTALL_PROGRAM) -m 744 bacula-dir /etc/rc.bacula-dir + @-today="`date +%Y%m%d%H%M`"; \ + grep -q /etc/rc.bacula-dir /etc/rc.local; \ + if [ $$? -eq 0 ]; then \ + echo "/etc/rc.local already patched"; \ + else \ + rm -f /etc/rc.local.$$today; \ + cp -p /etc/rc.local /etc/rc.local.$$today; \ + ( echo "Start the Bacula Director. Do not remove the 'TAG_BACULA_DIR' text"; \ + echo "if [ -x /etc/rc.bacula-dir ]; then # TAG_BACULA_DIR"; \ + echo " /etc/rc.bacula-dir start # TAG_BACULA_DIR"; \ + echo "fi # TAG_BACULA_DIR"; \ + ) >> /etc/rc.local; \ + echo ""; \ + fi + + +uninstall: uninstall-autostart + +uninstall-autostart: uninstall-autostart-fd uninstall-autostart-sd uninstall-autostart-dir + +uninstall-autostart-fd: + @echo "FreeBSD platform uninstall" + rm -f /etc/rc.bacula-fd + @-today="`date +%Y%m%d%H%M`"; \ + for f in /etc/rc.local ; do \ + grep -q '# TAG_BACULA_FD' $$f; \ + if [ $$? -eq 0 ]; then \ + echo "removing Bacula lines from $$f"; \ + rm -f $$f.$$today; \ + cp -p $$f $$f.$$today; \ + $(SED) -e '/TAG_BACULA_FD/d;' \ + < $$f.$$today > $$f; \ + chmod 644 $$f; \ + fi; \ + done + + +uninstall-autostart-sd: + @echo "FreeBSD platform uninstall" + rm -f /etc/rc.bacula-sd + @-today="`date +%Y%m%d%H%M`"; \ + for f in /etc/rc.local ; do \ + grep -q '# TAG_BACULA_SD' $$f; \ + if [ $$? -eq 0 ]; then \ + echo "removing Bacula lines from $$f"; \ + rm -f $$f.$$today; \ + cp -p $$f $$f.$$today; \ + $(SED) -e '/TAG_BACULA_SD/d;' \ + < $$f.$$today > $$f; \ + chmod 644 $$f; \ + fi; \ + done + +uninstall-autostart-dir: + @echo "FreeBSD platform uninstall" + rm -f /etc/rc.bacula-dir + @-today="`date +%Y%m%d%H%M`"; \ + for f in /etc/rc.local ; do \ + grep -q '# TAG_BACULA_DIR' $$f; \ + if [ $$? -eq 0 ]; then \ + echo "removing Bacula lines from $$f"; \ + rm -f $$f.$$today; \ + cp -p $$f $$f.$$today; \ + $(SED) -e '/TAG_BACULA_DIR/d;' \ + < $$f.$$today > $$f; \ + chmod 644 $$f; \ + fi; \ + done + +clean: + @rm -f bacula-sd bacula-fd bacula-dir + +distclean: clean + @rm -f Makefile bacula-*.spec + +devclean: clean + @rm -f Makefile bacula-*.spec diff --git a/Branch-2.2/bacula/platforms/openbsd/bacula-dir.in b/Branch-2.2/bacula/platforms/openbsd/bacula-dir.in new file mode 100755 index 0000000000..e7e76b1618 --- /dev/null +++ b/Branch-2.2/bacula/platforms/openbsd/bacula-dir.in @@ -0,0 +1,38 @@ +#! /bin/sh +# +# bacula This shell script takes care of starting and stopping +# the bacula Director daemon +# +# chkconfig: 2345 90 9 +# description: It comes by night and sucks the vital essence from your computers. +# +# For Bacula release @VERSION@ (@DATE@) -- @DISTNAME@ +# + +RETVAL=0 +case "$1" in + start) + echo "Starting the Bacula Director: " + @sbindir@/bacula-dir $2 -c @sysconfdir@/bacula-dir.conf + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && touch @subsysdir@/bacula-dir + ;; + stop) + echo "Stopping the Director daemon: " +# killproc @sbindir@/bacula-dir + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && rm -f @subsysdir@/bacula-dir + ;; + restart) + $0 stop + sleep 5 + $0 start + ;; + *) + echo "Usage: $0 {start|stop|restart}" + exit 1 + ;; +esac +exit 0 diff --git a/Branch-2.2/bacula/platforms/openbsd/bacula-fd.in b/Branch-2.2/bacula/platforms/openbsd/bacula-fd.in new file mode 100755 index 0000000000..54f17b9a96 --- /dev/null +++ b/Branch-2.2/bacula/platforms/openbsd/bacula-fd.in @@ -0,0 +1,37 @@ +#! /bin/sh +# +# bacula This shell script takes care of starting and stopping +# the bacula File daemon. +# +# chkconfig: 2345 90 9 +# description: It comes by night and sucks the vital essence from your computers. +# +# For Bacula release @VERSION@ (@DATE@) -- @DISTNAME@ +# + +case "$1" in + start) + echo "Starting the Bacula File daemon: " + @sbindir@/bacula-fd $2 -c @sysconfdir@/bacula-fd.conf + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && touch @subsysdir@/bacula-fd + ;; + stop) + echo "Stopping the Bacula File daemon: " +# killproc @sbindir@/bacula-fd + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && rm -f @subsysdir@/bacula-fd + ;; + restart) + $0 stop + sleep 5 + $0 start + ;; + *) + echo "Usage: $0 {start|stop|restart}" + exit 1 + ;; +esac +exit 0 diff --git a/Branch-2.2/bacula/platforms/openbsd/bacula-sd.in b/Branch-2.2/bacula/platforms/openbsd/bacula-sd.in new file mode 100755 index 0000000000..fb55fb47cf --- /dev/null +++ b/Branch-2.2/bacula/platforms/openbsd/bacula-sd.in @@ -0,0 +1,37 @@ +#! /bin/sh +# +# bacula This shell script takes care of starting and stopping +# the bacula Storage daemon. +# +# chkconfig: 2345 90 9 +# description: It comes by night and sucks the vital essence from your computers. +# +# For Bacula release @VERSION@ (@DATE@) -- @DISTNAME@ +# + +case "$1" in + start) + echo "Starting the Bacula Storage daemon: " + @sbindir@/bacula-sd $2 -c @sysconfdir@/bacula-sd.conf + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && touch @subsysdir@/bacula-sd + ;; + stop) + echo "Stopping the Bacula Storage daemon: " +# killproc @sbindir@/bacula-sd + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && rm -f @subsysdir@/bacula-sd + ;; + restart) + $0 stop + sleep 5 + $0 start + ;; + *) + echo "Usage: $0 {start|stop|restart}" + exit 1 + ;; +esac +exit 0 diff --git a/Branch-2.2/bacula/platforms/redhat/Makefile.in b/Branch-2.2/bacula/platforms/redhat/Makefile.in new file mode 100644 index 0000000000..09c37f7c70 --- /dev/null +++ b/Branch-2.2/bacula/platforms/redhat/Makefile.in @@ -0,0 +1,90 @@ +# +# This file is used as the template to create the +# Makefile for the RedHat specific installation. +# +# 15 November 2001 -- Kern Sibbald +# +# for Bacula release @VERSION@ (@DATE@) -- @DISTNAME@ +# + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ -m 754 + +nothing: + +install: install-autostart + +install-autostart: install-autostart-fd install-autostart-sd install-autostart-dir + +install_logrotate: + @$(INSTALL_PROGRAM) ../../scripts/logrotate $(DESTDIR)/etc/logrotate.d/bacula + +install-autostart-fd: + @if test x$(DESTDIR) = x -a -f /etc/rc.d/init.d/bacula-fd; then \ + /sbin/chkconfig --del bacula-fd; \ + fi + @$(INSTALL_PROGRAM) bacula-fd $(DESTDIR)/etc/rc.d/init.d/bacula-fd + # set symlinks for script at startup and shutdown + @if test x$(DESTDIR) = x ; then \ + /sbin/chkconfig --add bacula-fd; \ + fi + + +install-autostart-sd: + @if test x$(DESTDIR) = x -a -f /etc/rc.d/init.d/bacula-sd; then \ + /sbin/chkconfig --del bacula-sd; \ + fi + @$(INSTALL_PROGRAM) bacula-sd $(DESTDIR)/etc/rc.d/init.d/bacula-sd + # set symlinks for script at startup and shutdown + @if test x$(DESTDIR) = x ; then \ + /sbin/chkconfig --add bacula-sd; \ + fi + + +install-autostart-dir: + @if test x$(DESTDIR) = x -a -f /etc/rc.d/init.d/bacula-dir; then \ + /sbin/chkconfig --del bacula-dir; \ + fi + @$(INSTALL_PROGRAM) bacula-dir $(DESTDIR)/etc/rc.d/init.d/bacula-dir + # set symlinks for script at startup and shutdown + @if test x$(DESTDIR) = x ; then \ + /sbin/chkconfig --add bacula-dir; \ + fi + + +uninstall: uninstall-autostart + +uninstall-autostart: uninstall-autostart-fd uninstall-autostart-sd uninstall-autostart-dir + +uninstall-logrotate: + @rm -f $(DESTDIR)/etc/logrotate.d/bacula + +uninstall-autostart-fd: + @if test x$(DESTDIR) = x -a -f /etc/rc.d/init.d/bacula-fd; then \ + /sbin/chkconfig --del bacula-fd; \ + fi + @rm -f $(DESTDIR)/etc/rc.d/init.d/bacula-fd + + +uninstall-autostart-sd: + @if test x$(DESTDIR) = x -a -f /etc/rc.d/init.d/bacula-sd; then \ + /sbin/chkconfig --del bacula-sd; \ + fi + @rm -f $(DESTDIR)/etc/rc.d/init.d/bacula-sd + +uninstall-autostart-dir: + @if test x$(DESTDIR) = x -a -f /etc/rc.d/init.d/bacula-dir; then \ + /sbin/chkconfig --del bacula-dir; \ + fi + @rm -f $(DESTDIR)/etc/rc.d/init.d/bacula-dir + +clean: + @rm -f 1 2 3 + +distclean: clean + @rm -f Makefile bacula-*.spec bacula.*.spec bacula.spec + @rm -f bacula-sd bacula-fd bacula-dir + +devclean: clean + @rm -f Makefile bacula-*.spec bacula.*.spec bacula.spec + @rm -f bacula-sd bacula-fd bacula-dir diff --git a/Branch-2.2/bacula/platforms/redhat/bacula-dir.in b/Branch-2.2/bacula/platforms/redhat/bacula-dir.in new file mode 100755 index 0000000000..8d2e1f2f8a --- /dev/null +++ b/Branch-2.2/bacula/platforms/redhat/bacula-dir.in @@ -0,0 +1,64 @@ +#! /bin/sh +# +# bacula This shell script takes care of starting and stopping +# the bacula Director daemon +# +# chkconfig: 2345 92 9 +# description: It comes by night and sucks the vital essence from your computers. +# +# For Bacula release @VERSION@ (@DATE@) -- @DISTNAME@ +# + +# Source function library +. /etc/rc.d/init.d/functions + +DIR_USER=@dir_user@ +DIR_GROUP=@dir_group@ +DIR_OPTIONS='' +OS=`uname -s` + +# if /lib/tls exists, force Bacula to use the glibc pthreads instead +if [ -d "/lib/tls" -a $OS = "Linux" -a `uname -r | cut -c1-3` = "2.4" ] ; then + export LD_ASSUME_KERNEL=2.4.19 +fi + +# pull in any user defined DIR_DIR_OPTIONS, DIR_USER, or DIR_GROUP +[ -f /etc/sysconfig/bacula ] && . /etc/sysconfig/bacula + +RETVAL=0 +case "$1" in + start) + if [ "${DIR_USER}" != '' ]; then + DIR_OPTIONS="${DIR_OPTIONS} -u ${DIR_USER}" + fi + + if [ "${DIR_GROUP}" != '' ]; then + DIR_OPTIONS="${DIR_OPTIONS} -g ${DIR_GROUP}" + fi + echo -n "Starting Bacula Director services: " + daemon @sbindir@/bacula-dir $2 ${DIR_OPTIONS} -c @sysconfdir@/bacula-dir.conf + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && touch @subsysdir@/bacula-dir + ;; + stop) + echo -n "Stopping Bacula Director services: " + killproc @sbindir@/bacula-dir + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && rm -f @subsysdir@/bacula-dir + ;; + restart) + $0 stop + sleep 5 + $0 start + ;; + status) + status @sbindir@/bacula-dir + ;; + *) + echo "Usage: $0 {start|stop|restart|status}" + exit 1 + ;; +esac +exit 0 diff --git a/Branch-2.2/bacula/platforms/redhat/bacula-fd.in b/Branch-2.2/bacula/platforms/redhat/bacula-fd.in new file mode 100755 index 0000000000..4919337f8b --- /dev/null +++ b/Branch-2.2/bacula/platforms/redhat/bacula-fd.in @@ -0,0 +1,64 @@ +#! /bin/sh +# +# bacula This shell script takes care of starting and stopping +# the bacula File daemon. +# +# chkconfig: 2345 91 9 +# description: It comes by night and sucks the vital essence from your computers. +# +# For Bacula release @VERSION@ (@DATE@) -- @DISTNAME@ +# + +# Source function library +. /etc/rc.d/init.d/functions + +FD_USER=@fd_user@ +FD_GROUP=@fd_group@ +FD_OPTIONS='' +OS=`uname -s` + +# if /lib/tls exists, force Bacula to use the glibc pthreads instead +if [ -d "/lib/tls" -a $OS = "Linux" -a `uname -r | cut -c1-3` = "2.4" ] ; then + export LD_ASSUME_KERNEL=2.4.19 +fi + +# pull in any user defined FD_OPTIONS, FD_USER, FD_GROUP +[ -f /etc/sysconfig/bacula ] && . /etc/sysconfig/bacula + +RETVAL=0 +case "$1" in + start) + if [ "${FD_USER}" != '' ]; then + FD_OPTIONS="${FD_OPTIONS} -u ${FD_USER}" + fi + + if [ "${FD_GROUP}" != '' ]; then + FD_OPTIONS="${FD_OPTIONS} -g ${FD_GROUP}" + fi + echo -n "Starting Bacula File services: " + daemon @sbindir@/bacula-fd $2 ${FD_OPTIONS} -c @sysconfdir@/bacula-fd.conf + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && touch @subsysdir@/bacula-fd + ;; + stop) + echo -n "Stopping Bacula File services: " + killproc @sbindir@/bacula-fd + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && rm -f @subsysdir@/bacula-fd + ;; + restart) + $0 stop + sleep 5 + $0 start + ;; + status) + status @sbindir@/bacula-fd + ;; + *) + echo "Usage: $0 {start|stop|restart|status}" + exit 1 + ;; +esac +exit 0 diff --git a/Branch-2.2/bacula/platforms/redhat/bacula-sd.in b/Branch-2.2/bacula/platforms/redhat/bacula-sd.in new file mode 100755 index 0000000000..25edb43e2a --- /dev/null +++ b/Branch-2.2/bacula/platforms/redhat/bacula-sd.in @@ -0,0 +1,65 @@ +#! /bin/sh +# +# bacula This shell script takes care of starting and stopping +# the bacula Storage daemon. +# +# chkconfig: 2345 90 9 +# description: It comes by night and sucks the vital essence from your computers. +# +# For Bacula release @VERSION@ (@DATE@) -- @DISTNAME@ +# + +# Source function library +. /etc/rc.d/init.d/functions + +SD_USER=@sd_user@ +SD_GROUP=@sd_group@ +SD_OPTIONS='' +OS=`uname -s` + +# if /lib/tls exists, force Bacula to use the glibc pthreads instead +if [ -d "/lib/tls" -a $OS = "Linux" -a `uname -r | cut -c1-3` = "2.4" ] ; then + export LD_ASSUME_KERNEL=2.4.19 +fi + +# pull in any user defined SD_OPTIONS, SD_USER, or SD_GROUP +[ -f /etc/sysconfig/bacula ] && . /etc/sysconfig/bacula + +RETVAL=0 +case "$1" in + start) + if [ "${SD_USER}" != '' ]; then + SD_OPTIONS="${SD_OPTIONS} -u ${SD_USER}" + fi + + if [ "${SD_GROUP}" != '' ]; then + SD_OPTIONS="${SD_OPTIONS} -g ${SD_GROUP}" + fi + + echo -n "Starting Bacula Storage services: " + daemon @sbindir@/bacula-sd $2 ${SD_OPTIONS} -c @sysconfdir@/bacula-sd.conf + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && touch @subsysdir@/bacula-sd + ;; + stop) + echo -n "Stopping Bacula Storage services: " + killproc @sbindir@/bacula-sd + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && rm -f @subsysdir@/bacula-sd + ;; + restart) + $0 stop + sleep 5 + $0 start + ;; + status) + status @sbindir@/bacula-sd + ;; + *) + echo "Usage: $0 {start|stop|restart|status}" + exit 1 + ;; +esac +exit 0 diff --git a/Branch-2.2/bacula/platforms/redhat/bacula.spec.in b/Branch-2.2/bacula/platforms/redhat/bacula.spec.in new file mode 100644 index 0000000000..bbfd7b7061 --- /dev/null +++ b/Branch-2.2/bacula/platforms/redhat/bacula.spec.in @@ -0,0 +1,2559 @@ +# Bacula RPM spec file +# Copyright (C) 2000-2006 Kern Sibbald + +# Platform Build Configuration + +# basic defines for every build +%define _version @VERSION@ +%define _release 1 +%define depkgs_version 09Sep07 +%define _rescuever @VERSION@ +%define docs_version @VERSION@ + +# any patches for this release +# be sure to check the setup section for patch macros + +#-------------------------------------------------------------------------- +# it should not be necessary to change anything below here for a release +# except for patch macros in the setup section +#-------------------------------------------------------------------------- + +# third party packagers +%define _packager D. Scott Barninger +%{?contrib_packager:%define _packager %{contrib_packager}} + +Summary: Bacula - The Network Backup Solution +Name: bacula +Version: %{_version} +Release: %{_release} +Group: System Environment/Daemons +License: GPL v2 +Source0: http://www.prdownloads.sourceforge.net/bacula/%{name}-%{version}.tar.gz +Source1: http://www.prdownloads.sourceforge.net/bacula/depkgs-%{depkgs_version}.tar.gz +Source2: Release_Notes-%{version}-%{release}.tar.gz +Source3: http://www.prdownloads.sourceforge.net/bacula/%{name}-docs-%{docs_version}.tar.gz +Source4: http://www.prdownloads.sourceforge.net/bacula/%{name}-rescue-%{_rescuever}.tar.gz +Source5: bacula-2.2.7-postgresql.patch +BuildRoot: %{_tmppath}/%{name}-root +URL: http://www.bacula.org/ +Vendor: The Bacula Team +Packager: %{_packager} + +# define the basic package description +%define blurb Bacula - It comes by night and sucks the vital essence from your computers. +%define blurb2 Bacula is a set of computer programs that permit you (or the system +%define blurb3 administrator) to manage backup, recovery, and verification of computer +%define blurb4 data across a network of computers of different kinds. In technical terms, +%define blurb5 it is a network client/server based backup program. Bacula is relatively +%define blurb6 easy to use and efficient, while offering many advanced storage management +%define blurb7 features that make it easy to find and recover lost or damaged files. +%define blurb8 Bacula source code has been released under the GPL version 2 license. + +# directory locations +%define sqlite_bindir /usr/lib/bacula/sqlite +%define _docsrc ../%{name}-docs-%{docs_version} +%define _rescuesrc ../%{name}-rescue-%{_rescuever} +%define depkgs ../depkgs +%define _mandir /usr/share/man + +# directory locations for FHS-compatibility +%define sysconf_dir /etc/bacula +%define script_dir /etc/bacula +%define working_dir /var/lib/bacula +%define pid_dir /var/run + +# NOTE these defines are used in some rather complex useradd and groupadd +# commands. If you change them examine the post scripts for consequences. +%define director_daemon_user bacula +%define storage_daemon_user bacula +%define file_daemon_user root +%define daemon_group bacula +# group that has write access to tape devices, usually disk on Linux +%define storage_daemon_group disk +%define user_file /etc/passwd +%define group_file /etc/group + +# program locations +%define useradd /usr/sbin/useradd +%define groupadd /usr/sbin/groupadd +%define usermod /usr/sbin/usermod + +# platform defines - set one below or define the build_xxx on the command line +# RedHat builds +%define rh7 0 +%{?build_rh7:%define rh7 1} +%define rh8 0 +%{?build_rh8:%define rh8 1} +%define rh9 0 +%{?build_rh9:%define rh9 1} +# Fedora Core build +%define fc1 0 +%{?build_fc1:%define fc1 1} +%define fc3 0 +%{?build_fc3:%define fc3 1} +%define fc4 0 +%{?build_fc4:%define fc4 1} +%define fc5 0 +%{?build_fc5:%define fc5 1} +%define fc6 0 +%{?build_fc6:%define fc6 1} +%define fc7 0 +%{?build_fc7:%define fc7 1} +%define fc8 0 +%{?build_fc8:%define fc8 1} +# Whitebox Enterprise build +%define wb3 0 +%{?build_wb3:%define wb3 1} +# RedHat Enterprise builds +%define rhel3 0 +%{?build_rhel3:%define rhel3 1} +%{?build_rhel3:%define wb3 1} +%define rhel4 0 +%{?build_rhel4:%define rhel4 1} +%{?build_rhel4:%define fc3 1} +%define rhel5 0 +%{?build_rhel5:%define rhel5 1} +%{?build_rhel5:%define fc6 1} +# CentOS build +%define centos3 0 +%{?build_centos3:%define centos3 1} +%{?build_centos3:%define wb3 1} +%define centos4 0 +%{?build_centos4:%define centos4 1} +%{?build_centos4:%define fc3 1} +%define centos5 0 +%{?build_centos5:%define centos5 1} +%{?build_centos5:%define fc6 1} +# SL build +%define sl3 0 +%{?build_sl3:%define sl3 1} +%{?build_sl3:%define wb3 1} +%define sl4 0 +%{?build_sl4:%define sl4 1} +%{?build_sl4:%define fc3 1} +%define sl5 0 +%{?build_sl5:%define sl5 1} +%{?build_sl5:%define fc6 1} +# SuSE build +%define su9 0 +%{?build_su9:%define su9 1} +%define su10 0 +%{?build_su10:%define su10 1} +%define su102 0 +%{?build_su102:%define su102 1} +%define su103 0 +%{?build_su103:%define su103 1} +# Mandrake builds +%define mdk 0 +%{?build_mdk:%define mdk 1} +%define mdv 0 +%{?build_mdv:%define mdv 1} +%{?build_mdv:%define mdk 1} + +# client only build +%define client_only 0 +%{?build_client_only:%define client_only 1} + +# test for a platform definition +%if !%{rh7} && !%{rh8} && !%{rh9} && !%{fc1} && !%{fc3} && !%{fc4} && !%{fc5} && !%{fc6} && !%{fc7} && !%{fc8} && !%{wb3} && !%{su9} && !%{su10} && !%{su102} && !%{su103} && !%{mdk} +%{error: You must specify a platform. Please examine the spec file.} +exit 1 +%endif + +# database defines +# set for database support desired or define the build_xxx on the command line +%define mysql 0 +%{?build_mysql:%define mysql 1} +# if using mysql 4.x define this and mysql above +# currently: Mandrake 10.1, SuSE 9.x & 10.0, RHEL4 and Fedora Core 4 +%define mysql4 0 +%{?build_mysql4:%define mysql4 1} +%{?build_mysql4:%define mysql 1} +# if using mysql 5.x define this and mysql above +# currently: SuSE 10.1 and Fedora Core 5 +%define mysql5 0 +%{?build_mysql5:%define mysql5 1} +%{?build_mysql5:%define mysql 1} +%define sqlite 0 +%{?build_sqlite:%define sqlite 1} +%define postgresql 0 +%{?build_postgresql:%define postgresql 1} + +# test for a database definition +%if ! %{mysql} && ! %{sqlite} && ! %{postgresql} && ! %{client_only} +%{error: You must specify database support. Please examine the spec file.} +exit 1 +%endif + +%if %{mysql} +%define db_backend mysql +%endif +%if %{sqlite} +%define db_backend sqlite3 +%endif +%if %{postgresql} +%define db_backend postgresql +%endif + +# 64 bit support +%define x86_64 0 +%{?build_x86_64:%define x86_64 1} + +# check what distribution we are +%if %{rh7} || %{rh8} || %{rh9} || %{rhel3} || %{rhel4} || %{rhel5} +%define _dist %(grep Red /etc/redhat-release) +%endif +%if %{fc1} || %{fc4} || %{fc5} || %{fc7} || %{fc8} +%define _dist %(grep Fedora /etc/redhat-release) +%endif +%if %{centos5} || %{centos4} || %{centos3} +%define _dist %(grep CentOS /etc/redhat-release) +%endif +%if %{sl5} ||%{sl4} || %{sl3} +%define _dist %(grep 'Scientific Linux' /etc/redhat-release) +%endif +%if %{fc3} && ! %{rhel4} && ! %{centos4} && ! %{sl4} +%define _dist %(grep Fedora /etc/redhat-release) +%endif +%if %{fc6} && ! %{rhel5} && ! %{centos5} && ! %{sl5} +%define _dist %(grep Fedora /etc/redhat-release) +%endif +%if %{wb3} && ! %{rhel3} && ! %{centos3} && ! %{sl3} +%define _dist %(grep White /etc/whitebox-release) +%endif +%if %{su9} || %{su10} || %{su102} || %{su103} +%define _dist %(grep -i SuSE /etc/SuSE-release) +%endif +%if %{mdk} +%define _dist %(grep Mand /etc/mandrake-release) +%endif +Distribution: %{_dist} + +# Should we build gconsole, possible only if gtk= >= 2.4 available. +# leaving all the BuildRequires and Requires in place below for now. +# su10, fc3 and fc4 now nobuild, tray monitor fails to build as of 2.2.1 +# release as it needs 2.10 + +%define gconsole 1 +%if %{rh7} || %{rh8} || %{rh9} || %{wb3} || %{fc1} || %{fc3} || %{fc4} || %{su9} || %{su10} +%define gconsole 0 +%endif +%if %{mdk} && ! %{mdv} +%define gconsole 0 +%endif + +# specifically disallow gconsole if desired +%{?nobuild_gconsole:%define gconsole 0} + +# Should we build wxconsole, only wxWidgets >=2.6 is supported +# SuSE 10 and FC4 and newer +%define wxconsole 0 +%{?build_wxconsole:%define wxconsole 1} + +# Should we build bat +# requires >= Qt-4.2 +%define bat 0 +%{?build_bat:%define bat 1} + +# should we turn on python support +%define python 0 +%{?build_python:%define python 1} + +# specifically disallow build of mtx package if desired +%define mtx 1 +%{?nobuild_mtx:%define mtx 0} + +# do we need to patch for old postgresql version? +%define old_pgsql 0 +%{?build_old_pgsql:%define old_pgsql 1} + +# Mandriva somehow forces the manpage file extension to bz2 rather than gz +%if %{mdk} +%define manpage_ext bz2 +%else +%define manpage_ext gz +%endif + +# for client only build +%if %{client_only} +%define mysql 0 +%define mysql4 0 +%define mysql5 0 +%define postgresql 0 +%define sqlite 0 +%define gconsole 0 +%define wxconsole 0 +%endif + +%{expand: %%define gccver %(rpm -q --queryformat %%{version} gcc)} +%{expand: %%define gccrel %(rpm -q --queryformat %%{release} gcc)} + +BuildRequires: gcc, gcc-c++, make, autoconf +BuildRequires: ncurses-devel, perl +BuildRequires: libstdc++-devel = %{gccver}-%{gccrel}, libxml2-devel, zlib-devel +BuildRequires: openssl-devel +%if %{python} +BuildRequires: python, python-devel +%{expand: %%define pyver %(python -c 'import sys;print(sys.version[0:3])')} +%endif +%if %{gconsole} +BuildRequires: pkgconfig, pango-devel, atk-devel +%endif + +# Rh qt4 packages don't have a provide for, guess what, qt! +# still broken in fc8 +# so fix for broken rh +%define broken_rh 0 +%if %{rhel5} || %{centos5} || %{sl5} || %{fc5} || %{fc6} || %{fc7} || %{fc8} +%define broken_rh 1 +%endif +%if %{bat} && ! %{broken_rh} +BuildRequires: qt-devel >= 4.2 +%endif +%if %{bat} && %{broken_rh} +BuildRequires: qt4-devel >= 4.2 +%endif + +%if %{rh7} +BuildRequires: libtermcap-devel +BuildRequires: glibc-devel >= 2.2 +%endif +%if %{su9} +BuildRequires: termcap +BuildRequires: glibc-devel >= 2.3 +%endif +%if %{su9} && %{gconsole} +BuildRequires: libgnome >= 2.0 +BuildRequires: gtk2-devel >= 2.0 +BuildRequires: libgnomeui-devel >= 2.0 +BuildRequires: ORBit2-devel +BuildRequires: libart_lgpl-devel >= 2.0 +BuildRequires: libbonobo-devel >= 2.0 +BuildRequires: libbonoboui-devel >= 2.0 +BuildRequires: bonobo-activation-devel +BuildRequires: gconf2-devel +BuildRequires: linc-devel +BuildRequires: freetype2-devel +%endif +%if %{su10} +BuildRequires: termcap +BuildRequires: glibc-devel >= 2.3 +%endif +%if %{su10} && %{gconsole} +BuildRequires: libgnome >= 2.12 +BuildRequires: gtk2-devel >= 2.8 +BuildRequires: libgnomeui-devel >= 2.12 +BuildRequires: ORBit2-devel +BuildRequires: libart_lgpl-devel >= 2.3 +BuildRequires: libbonobo-devel >= 2.10 +BuildRequires: libbonoboui-devel >= 2.10 +BuildRequires: bonobo-activation-devel +BuildRequires: gconf2-devel +BuildRequires: freetype2-devel +BuildRequires: cairo-devel +BuildRequires: fontconfig-devel >= 2.3 +BuildRequires: gnome-vfs2-devel >= 2.12 +BuildRequires: libpng-devel +%endif +%if %{su102} +BuildRequires: termcap +BuildRequires: glibc-devel >= 2.5 +%endif +%if %{su102} && %{gconsole} +BuildRequires: libgnome >= 2.16 +BuildRequires: gtk2-devel >= 2.10 +BuildRequires: libgnomeui-devel >= 2.16 +BuildRequires: ORBit2-devel +BuildRequires: libart_lgpl-devel >= 2.3 +BuildRequires: libbonobo-devel >= 2.16 +BuildRequires: libbonoboui-devel >= 2.16 +BuildRequires: bonobo-activation-devel +BuildRequires: gconf2-devel +BuildRequires: freetype2-devel +BuildRequires: cairo-devel +BuildRequires: fontconfig-devel >= 2.4 +BuildRequires: gnome-vfs2-devel >= 2.16 +BuildRequires: libpng-devel +%endif +%if %{su103} +BuildRequires: termcap +BuildRequires: glibc-devel >= 2.6 +%endif +%if %{su103} && %{gconsole} +BuildRequires: libgnome >= 2.20 +BuildRequires: gtk2-devel >= 2.12 +BuildRequires: libgnomeui-devel >= 2.20 +BuildRequires: ORBit2-devel +BuildRequires: libart_lgpl-devel >= 2.3 +BuildRequires: libbonobo-devel >= 2.20 +BuildRequires: libbonoboui-devel >= 2.20 +BuildRequires: bonobo-activation-devel +BuildRequires: gconf2-devel +BuildRequires: freetype2-devel +BuildRequires: cairo-devel +BuildRequires: fontconfig-devel >= 2.4 +BuildRequires: gnome-vfs2-devel >= 2.20 +BuildRequires: libpng-devel +%endif +%if %{mdk} +BuildRequires: libtermcap-devel +BuildRequires: libstdc++-static-devel +BuildRequires: glibc-static-devel +BuildRequires: glibc-devel >= 2.3 +%endif +%if %{mdk} && !%{mdv} && %{gconsole} +BuildRequires: gtk2-devel >= 2.0 +BuildRequires: libgnomeui2-devel >= 2.0 +BuildRequires: libORBit2-devel +BuildRequires: libart_lgpl-devel >= 2.0 +BuildRequires: libbonobo2_0-devel +BuildRequires: libbonoboui2_0-devel +BuildRequires: libbonobo-activation-devel +BuildRequires: libGConf2-devel +BuildRequires: freetype2-devel +%endif +%if %{mdv} && %{gconsole} +BuildRequires: gtk2-devel >= 2.8 +BuildRequires: libgnomeui2-devel >= 2.10 +BuildRequires: libORBit2-devel +BuildRequires: libart_lgpl-devel >= 2.3 +BuildRequires: libbonobo2_0-devel +BuildRequires: libbonoboui2_0-devel +BuildRequires: libbonobo-activation-devel +BuildRequires: libGConf2-devel +BuildRequires: freetype2-devel +%endif +%if %{fc3} +BuildRequires: libtermcap-devel +BuildRequires: glibc-devel >= 2.3 +%endif +%if %{fc3} && %{gconsole} +BuildRequires: gtk2-devel >= 2.4 +BuildRequires: libgnomeui-devel >= 2.8 +BuildRequires: ORBit2-devel +BuildRequires: libart_lgpl-devel >= 2.3 +BuildRequires: libbonobo-devel >= 2.8 +BuildRequires: libbonoboui-devel >= 2.8 +BuildRequires: bonobo-activation-devel +BuildRequires: GConf2-devel +BuildRequires: freetype-devel +%endif +%if %{fc4} +BuildRequires: libtermcap-devel +BuildRequires: glibc-devel >= 2.3 +%endif +%if %{fc4} && %{gconsole} +BuildRequires: gtk2-devel >= 2.6 +BuildRequires: libgnomeui-devel >= 2.10 +BuildRequires: ORBit2-devel +BuildRequires: libart_lgpl-devel >= 2.3 +BuildRequires: libbonobo-devel >= 2.8 +BuildRequires: libbonoboui-devel >= 2.8 +BuildRequires: bonobo-activation-devel +BuildRequires: GConf2-devel +BuildRequires: freetype-devel +%endif +%if %{fc5} +BuildRequires: libtermcap-devel +BuildRequires: glibc-devel >= 2.4 +%endif +%if %{fc5} && %{gconsole} +BuildRequires: gtk2-devel >= 2.8 +BuildRequires: libgnomeui-devel >= 2.14 +BuildRequires: ORBit2-devel +BuildRequires: libart_lgpl-devel >= 2.3 +BuildRequires: libbonobo-devel >= 2.14 +BuildRequires: libbonoboui-devel >= 2.14 +BuildRequires: GConf2-devel +BuildRequires: freetype-devel +%endif +%if %{fc6} +BuildRequires: libtermcap-devel +BuildRequires: glibc-devel >= 2.5 +%endif +%if %{fc6} && %{gconsole} +BuildRequires: gtk2-devel >= 2.10 +BuildRequires: libgnomeui-devel >= 2.16 +BuildRequires: ORBit2-devel +BuildRequires: libart_lgpl-devel >= 2.3 +BuildRequires: libbonobo-devel >= 2.16 +BuildRequires: libbonoboui-devel >= 2.16 +BuildRequires: GConf2-devel +BuildRequires: freetype-devel +%endif +%if %{fc7} +BuildRequires: libtermcap-devel +BuildRequires: glibc-devel >= 2.5 +%endif +%if %{fc7} && %{gconsole} +BuildRequires: gtk2-devel >= 2.10 +BuildRequires: libgnomeui-devel >= 2.18 +BuildRequires: ORBit2-devel +BuildRequires: libart_lgpl-devel >= 2.3 +BuildRequires: libbonobo-devel >= 2.18 +BuildRequires: libbonoboui-devel >= 2.18 +BuildRequires: GConf2-devel +BuildRequires: freetype-devel +%endif +%if %{fc8} +BuildRequires: libtermcap-devel +BuildRequires: glibc-devel >= 2.7 +%endif +%if %{fc8} && %{gconsole} +BuildRequires: gtk2-devel >= 2.12 +BuildRequires: libgnomeui-devel >= 2.20 +BuildRequires: ORBit2-devel +BuildRequires: libart_lgpl-devel >= 2.3 +BuildRequires: libbonobo-devel >= 2.20 +BuildRequires: libbonoboui-devel >= 2.20 +BuildRequires: GConf2-devel +BuildRequires: freetype-devel +%endif +%if !%{rh7} && !%{su9} && !%{su10} && !%{su102} && !%{su103} && !%{mdk} && !%{fc3} && !%{fc4} && !%{fc5} && !%{fc6} && !%{fc7} && !%{fc8} +BuildRequires: libtermcap-devel +BuildRequires: glibc-devel >= 2.3 +%endif +%if !%{rh7} && !%{su9} && !%{su10} && !%{su102} && !%{su103} && !%{mdk} && !%{fc3} && !%{fc4} && !%{fc5} && !%{fc6} && !%{fc7} && !%{fc8} && %{gconsole} +BuildRequires: gtk2-devel >= 2.0 +BuildRequires: libgnomeui-devel >= 2.0 +BuildRequires: ORBit2-devel +BuildRequires: libart_lgpl-devel >= 2.0 +BuildRequires: libbonobo-devel >= 2.0 +BuildRequires: libbonoboui-devel >= 2.0 +BuildRequires: bonobo-activation-devel +BuildRequires: GConf2-devel +BuildRequires: linc-devel +BuildRequires: freetype-devel +%endif + +%if %{mysql} && ! %{mysql4} && ! %{mysql5} +BuildRequires: mysql-devel >= 3.23 +%endif + +%if %{mysql} && %{mysql4} +BuildRequires: mysql-devel >= 4.0 +%endif + +%if %{mysql} && %{mysql5} +BuildRequires: mysql-devel >= 5.0 +%endif + +%if %{postgresql} && %{wb3} +BuildRequires: rh-postgresql-devel >= 7 +%endif + +%if %{postgresql} && ! %{wb3} +BuildRequires: postgresql-devel >= 7 +%endif + +%if %{wxconsole} +BuildRequires: wxGTK-devel >= 2.6 +%endif + +%description +%{blurb} + +%{blurb2} +%{blurb3} +%{blurb4} +%{blurb5} +%{blurb6} +%{blurb7} +%{blurb8} + +%if %{mysql} +%package mysql +%endif +%if %{sqlite} +%package sqlite +%endif +%if %{postgresql} +%package postgresql +%endif + +Summary: Bacula - The Network Backup Solution +Group: System Environment/Daemons +Provides: bacula-dir, bacula-sd, bacula-fd, bacula-server +Conflicts: bacula-client +Obsoletes: bacula-rescue + +%if %{su9} || %{su10} || %{su102} || %{su103} +Conflicts: bacula +%endif + +Requires: ncurses, libstdc++, zlib, openssl, mtx + +%if %{rh7} +Requires: glibc >= 2.2 +Requires: libtermcap +%endif +%if %{su9} || %{su10} +Requires: glibc >= 2.3 +Requires: termcap +%endif +%if %{su102} +Requires: glibc >= 2.5 +Requires: termcap +%endif +%if %{su103} +Requires: glibc >= 2.6 +Requires: termcap +%endif +%if ! %{rh7} && ! %{su9} && ! %{su10} && ! %{su102} && ! %{su103} && ! %{fc5} && ! %{fc6} && ! %{fc7} && ! %{fc8} +Requires: glibc >= 2.3 +Requires: libtermcap +%endif +%if %{fc5} +Requires: glibc >= 2.4 +Requires: libtermcap +%endif +%if %{fc6} || %{fc7} +Requires: glibc >= 2.5 +Requires: libtermcap +%endif +%if %{fc8} +Requires: glibc >= 2.7 +Requires: libtermcap +%endif + +%if %{mysql} && ! %{su9} && ! %{mdk} && ! %{mysql4} && ! %{mysql5} +Requires: mysql >= 3.23 +Requires: mysql-server >= 3.23 +%endif +%if %{mysql} && ! %{su9} && ! %{su10} && ! %{mdk} && %{mysql4} +Requires: mysql >= 4.0 +Requires: mysql-server >= 4.0 +%endif +%if %{mysql} && ! %{su9} && ! %{su10} && ! %{su102} && ! %{su103} && ! %{mdk} && %{mysql5} +Requires: mysql >= 5.0 +Requires: mysql-server >= 5.0 +%endif + +%if %{mysql} && %{su9} && ! %{mysql4} +Requires: mysql >= 3.23 +Requires: mysql-client >= 3.23 +%endif +%if %{mysql} && %{su9} && %{mysql4} +Requires: mysql >= 4.0 +Requires: mysql-client >= 4.0 +%endif +%if %{mysql} && %{su10} && %{mysql4} +Requires: mysql >= 4.0 +Requires: mysql-client >= 4.0 +%endif +%if %{mysql} && %{su10} && %{mysql5} +Requires: mysql >= 5.0 +Requires: mysql-client >= 5.0 +%endif +%if %{mysql} && %{su102} && %{mysql5} +Requires: mysql >= 5.0 +Requires: mysql-client >= 5.0 +%endif +%if %{mysql} && %{su103} && %{mysql5} +Requires: mysql >= 5.0 +Requires: mysql-client >= 5.0 +%endif + +%if %{mysql} && %{mdk} && ! %{mysql4} +Requires: mysql >= 3.23 +Requires: mysql-client >= 3.23 +%endif +%if %{mysql} && %{mdk} && %{mysql4} +Requires: mysql >= 4.0 +Requires: mysql-client >= 4.0 +%endif + +%if %{postgresql} && %{wb3} +Requires: rh-postgresql >= 7 +Requires: rh-postgresql-server >= 7 +%endif +%if %{postgresql} && ! %{wb3} +Requires: postgresql >= 7 +Requires: postgresql-server >= 7 +%endif + +%if %{mysql} +%description mysql +%endif +%if %{sqlite} +%description sqlite +%endif +%if %{postgresql} +%description postgresql +%endif + +%if %{python} +Requires: python >= %{pyver} +%endif + +%{blurb} + +%{blurb2} +%{blurb3} +%{blurb4} +%{blurb5} +%{blurb6} +%{blurb7} +%{blurb8} + +%if %{mysql} +This build requires MySQL to be installed separately as the catalog database. +%endif +%if %{postgresql} +This build requires PostgreSQL to be installed separately as the catalog database. +%endif +%if %{sqlite} +This build incorporates sqlite3 as the catalog database, statically compiled. +%endif +%if %{python} +This build includes python scripting support. +%endif + +%if ! %{client_only} && %{mtx} +%package mtx +Summary: Bacula - The Network Backup Solution +Group: System Environment/Daemons +Provides: mtx + +%description mtx +This is Bacula's version of mtx tape utilities for Linux distributions that +do not provide their own mtx package +%endif + +%package client +Summary: Bacula - The Network Backup Solution +Group: System Environment/Daemons +Provides: bacula-fd +Conflicts: bacula-mysql +Conflicts: bacula-sqlite +Conflicts: bacula-postgresql +Obsoletes: bacula-rescue + +%if %{su9} || %{su10} || %{su102} +Provides: bacula +%endif + +Requires: libstdc++, zlib, openssl + +%if %{rh7} +Requires: glibc >= 2.2 +Requires: libtermcap +%endif +%if %{su9} || %{su10} +Requires: glibc >= 2.3 +Requires: termcap +%endif +%if %{su102} +Requires: glibc >= 2.5 +Requires: termcap +%endif +%if %{su103} +Requires: glibc >= 2.6 +Requires: termcap +%endif +%if ! %{rh7} && ! %{su9} && ! %{su10} && ! %{su102} && ! %{su103} && ! %{fc5} && ! %{fc6} && ! %{fc7} && ! %{fc8} +Requires: glibc >= 2.3 +Requires: libtermcap +%endif +%if %{fc5} +Requires: glibc >= 2.4 +Requires: libtermcap +%endif +%if %{fc6} || %{fc7} +Requires: glibc >= 2.5 +Requires: libtermcap +%endif +%if %{fc8} +Requires: glibc >= 2.7 +Requires: libtermcap +%endif + +%if %{python} +Requires: python >= %{pyver} +%endif + +%description client +%{blurb} + +%{blurb2} +%{blurb3} +%{blurb4} +%{blurb5} +%{blurb6} +%{blurb7} +%{blurb8} + +This is the File daemon (Client) only package. It includes the command line +console program. +%if %{python} +This build includes python scripting support. +%endif + +%if ! %{client_only} +%package updatedb + +Summary: Bacula - The Network Backup Solution +Group: System Environment/Daemons + +%description updatedb +%{blurb} + +%{blurb2} +%{blurb3} +%{blurb4} +%{blurb5} +%{blurb6} +%{blurb7} +%{blurb8} + +This package installs scripts for updating older versions of the bacula +database. +%endif + +%if %{gconsole} +%package gconsole +Summary: Bacula - The Network Backup Solution +Group: System Environment/Daemons +Requires: atk, libstdc++, zlib, pango, libxml2, bacula-fd, openssl +%endif + +%if %{gconsole} && %{su9} +Requires: gtk2 >= 2.0 +Requires: libgnome >= 2.0 +Requires: libgnomeui >= 2.0 +Requires: glibc >= 2.3 +Requires: ORBit2 +Requires: libart_lgpl >= 2.0 +Requires: libbonobo >= 2.0 +Requires: libbonoboui >= 2.0 +Requires: bonobo-activation +Requires: gconf2 +Requires: linc +Requires: freetype2 +%endif +%if %{gconsole} && %{su10} +Requires: gtk2 >= 2.8 +Requires: libgnome >= 2.12 +Requires: libgnomeui >= 2.12 +Requires: glibc >= 2.3 +Requires: ORBit2 +Requires: libart_lgpl >= 2.3 +Requires: libbonobo >= 2.10 +Requires: libbonoboui >= 2.10 +Requires: bonobo-activation +Requires: gconf2 +Requires: freetype2 +Requires: cairo +Requires: fontconfig >= 2.3 +Requires: gnome-vfs2 >= 2.12 +Requires: libpng +%endif +%if %{gconsole} && %{su102} +Requires: gtk2 >= 2.10 +Requires: libgnome >= 2.16 +Requires: libgnomeui >= 2.16 +Requires: glibc >= 2.5 +Requires: ORBit2 +Requires: libart_lgpl >= 2.3 +Requires: libbonobo >= 2.16 +Requires: libbonoboui >= 2.16 +Requires: bonobo-activation +Requires: gconf2 +Requires: freetype2 +Requires: cairo +Requires: fontconfig >= 2.4 +Requires: gnome-vfs2 >= 2.16 +Requires: libpng +%endif +%if %{gconsole} && %{su103} +Requires: gtk2 >= 2.12 +Requires: libgnome >= 2.20 +Requires: libgnomeui >= 2.20 +Requires: glibc >= 2.6 +Requires: ORBit2 +Requires: libart_lgpl >= 2.3 +Requires: libbonobo >= 2.20 +Requires: libbonoboui >= 2.20 +Requires: bonobo-activation +Requires: gconf2 +Requires: freetype2 +Requires: cairo +Requires: fontconfig >= 2.4 +Requires: gnome-vfs2 >= 2.20 +Requires: libpng +%endif +%if %{gconsole} && %{mdk} && !%{mdv} +Requires: gtk2 >= 2.0 +Requires: libgnomeui2 +Requires: glibc >= 2.3 +Requires: ORBit2 +Requires: libart_lgpl >= 2.0 +Requires: libbonobo >= 2.0 +Requires: libbonoboui >= 2.0 +Requires: GConf2 +Requires: freetype2 +%endif +%if %{gconsole} && %{mdv} +Requires: gtk2 >= 2.8 +Requires: libgnomeui2 +Requires: glibc >= 2.3 +Requires: ORBit2 +Requires: libart_lgpl >= 2.3 +Requires: libbonobo >= 2.10 +Requires: libbonoboui >= 2.10 +Requires: GConf2 +Requires: freetype2 +%endif +%if %{gconsole} && %{fc3} +Requires: gtk2 >= 2.4 +Requires: libgnomeui >= 2.8 +Requires: glibc >= 2.3 +Requires: ORBit2 +Requires: libart_lgpl >= 2.3 +Requires: libbonobo >= 2.8 +Requires: libbonoboui >= 2.8 +Requires: bonobo-activation +Requires: GConf2 +Requires: freetype +%endif +%if %{gconsole} && %{fc4} +Requires: gtk2 >= 2.6 +Requires: libgnomeui >= 2.10 +Requires: glibc >= 2.3 +Requires: ORBit2 +Requires: libart_lgpl >= 2.3 +Requires: libbonobo >= 2.8 +Requires: libbonoboui >= 2.8 +Requires: bonobo-activation +Requires: GConf2 +Requires: freetype +%endif +%if %{gconsole} && %{fc5} +Requires: gtk2 >= 2.8 +Requires: libgnomeui >= 2.14 +Requires: glibc >= 2.4 +Requires: ORBit2 +Requires: libart_lgpl >= 2.3 +Requires: libbonobo >= 2.14 +Requires: libbonoboui >= 2.14 +Requires: GConf2 +Requires: freetype +%endif +%if %{gconsole} && %{fc6} +Requires: gtk2 >= 2.10 +Requires: libgnomeui >= 2.16 +Requires: glibc >= 2.5 +Requires: ORBit2 +Requires: libart_lgpl >= 2.3 +Requires: libbonobo >= 2.16 +Requires: libbonoboui >= 2.16 +Requires: GConf2 +Requires: freetype +%endif +%if %{gconsole} && %{fc7} +Requires: gtk2 >= 2.10 +Requires: libgnomeui >= 2.18 +Requires: glibc >= 2.5 +Requires: ORBit2 +Requires: libart_lgpl >= 2.3 +Requires: libbonobo >= 2.18 +Requires: libbonoboui >= 2.18 +Requires: GConf2 +Requires: freetype +%endif +%if %{gconsole} && %{fc8} +Requires: gtk2 >= 2.12 +Requires: libgnomeui >= 2.20 +Requires: glibc >= 2.7 +Requires: ORBit2 +Requires: libart_lgpl >= 2.3 +Requires: libbonobo >= 2.20 +Requires: libbonoboui >= 2.20 +Requires: GConf2 +Requires: freetype +%endif +%if %{gconsole} && !%{su9} && !%{su10} && !%{su102} && !%{su103} && !%{mdk} && !%{fc3} && !%{fc4} && !%{fc5} && !%{fc6} && !%{fc7} && !%{fc8} +Requires: gtk2 >= 2.0 +Requires: libgnomeui >= 2.0 +Requires: glibc >= 2.3 +Requires: ORBit2 +Requires: libart_lgpl >= 2.0 +Requires: libbonobo >= 2.0 +Requires: libbonoboui >= 2.0 +Requires: bonobo-activation +Requires: GConf2 +Requires: linc +Requires: freetype +%endif +%if %{gconsole} && %{su9} +Requires: xsu +%endif +%if %{gconsole} && %{su10} +Requires: xsu +%endif +%if %{gconsole} && %{su102} +Requires: xsu +%endif +%if %{gconsole} && %{su103} +Requires: xsu +%endif +%if %{gconsole} && ! %{su9} && ! %{su10} && ! %{su102} && ! %{su103} +Requires: usermode +%endif + +%if %{gconsole} +%description gconsole +%{blurb} + +%{blurb2} +%{blurb3} +%{blurb4} +%{blurb5} +%{blurb6} +%{blurb7} +%{blurb8} + +This is the Gnome Console package. It is an add-on to the client or +server packages. +%endif + +%if %{wxconsole} +%package wxconsole +Summary: Bacula - The Network Backup Solution +Group: System Environment/Daemons +Requires: wxGTK >= 2.6, libstdc++, openssl +%endif + +%if %{wxconsole} && %{su10} +Requires: gtk2 >= 2.8 +%endif + +%if %{wxconsole} && %{su102} +Requires: gtk2 >= 2.10 +%endif + +%if %{wxconsole} && %{su103} +Requires: gtk2 >= 2.12 +%endif + +%if %{wxconsole} && %{fc3} +Requires: gtk2 >= 2.4 +%endif + +%if %{wxconsole} && %{fc4} +Requires: gtk2 >= 2.6 +%endif + +%if %{wxconsole} && %{fc5} +Requires: gtk2 >= 2.8 +%endif + +%if %{wxconsole} && %{fc6} +Requires: gtk2 >= 2.10 +%endif + +%if %{wxconsole} && %{fc7} +Requires: gtk2 >= 2.10 +%endif + +%if %{wxconsole} && %{fc7} +Requires: gtk2 >= 2.12 +%endif + +%if %{wxconsole} +%description wxconsole +%{blurb} + +%{blurb2} +%{blurb3} +%{blurb4} +%{blurb5} +%{blurb6} +%{blurb7} +%{blurb8} + +This is the WXWindows Console package. It is an add-on to the client or +server packages. +%endif + +%if %{bat} +%package bat +Summary: Bacula - The Network Backup Solution +Group: System Environment/Daemons +%endif + +%if %{bat} && %{su10} +Requires: openssl +Requires: glibc >= 2.4 +Requires: fontconfig +Requires: freetype2 +Requires: libgcc +Requires: libpng +Requires: qt >= 4.2 +Requires: libstdc++ +Requires: zlib +%endif + +%if %{bat} && %{su102} +Requires: openssl +Requires: glibc >= 2.5 +Requires: fontconfig +Requires: freetype2 +Requires: libgcc +Requires: libpng +Requires: qt >= 4.2 +Requires: libstdc++ +Requires: zlib +%endif + +%if %{bat} && %{su103} +Requires: openssl +Requires: glibc >= 2.6 +Requires: fontconfig +Requires: freetype2 +Requires: libgcc +Requires: libpng +Requires: qt >= 4.2 +Requires: libstdc++ +Requires: zlib +%endif + +%if %{bat} && %{fc5} +Requires: openssl +Requires: glibc >= 2.4 +Requires: fontconfig +Requires: freetype +Requires: libgcc +Requires: libpng +Requires: qt4 >= 4.2 +Requires: libstdc++ +Requires: zlib +%endif + +%if %{bat} && %{fc6} +Requires: openssl +Requires: glibc >= 2.5 +Requires: fontconfig +Requires: freetype +Requires: libgcc +Requires: libpng +Requires: qt4 >= 4.2 +Requires: libstdc++ +Requires: zlib +%endif + +%if %{bat} && %{fc7} +Requires: openssl +Requires: glibc >= 2.5 +Requires: fontconfig +Requires: freetype +Requires: libgcc +Requires: libpng +Requires: qt4 >= 4.2 +Requires: libstdc++ +Requires: zlib +%endif + +%if %{bat} && %{fc8} +Requires: openssl +Requires: glibc >= 2.7 +Requires: fontconfig +Requires: freetype +Requires: libgcc +Requires: libpng +Requires: qt4 >= 4.2 +Requires: libstdc++ +Requires: zlib +%endif + +%if %{bat} +%description bat +%{blurb} + +%{blurb2} +%{blurb3} +%{blurb4} +%{blurb5} +%{blurb6} +%{blurb7} +%{blurb8} + +This is the Bacula Administration Tool package. It is an add-on to +the client or server packages. +%endif + +%prep + +%setup +%setup -T -D -b 1 +%setup -T -D -b 2 +%setup -T -D -b 3 +%setup -T -D -b 4 + +%build + +%if %{su9} || %{su10} || %{su102} || %{su103} +export LDFLAGS="${LDFLAGS} -L/usr/lib/termcap" +%endif + +cwd=${PWD} +cd %{depkgs} +%if %{sqlite} +make sqlite3 +%endif +%if ! %{client_only} && %{mtx} +make mtx +%endif +%if %{bat} +make qwt +%endif +cd ${cwd} + +%if %{wb3} || %{old_pgsql} +patch -p3 src/cats/postgresql.c < %SOURCE5 +%endif + +# patches for the bundled sqlite scripts + +# patch the make_sqlite_tables script for installation bindir +#patch src/cats/make_sqlite_tables.in src/cats/make_sqlite_tables.in.patch +patch src/cats/make_sqlite3_tables.in src/cats/make_sqlite3_tables.in.patch + +# patch the create_sqlite_database script for installation bindir +#patch src/cats/create_sqlite_database.in src/cats/create_sqlite_database.in.patch +patch src/cats/create_sqlite3_database.in src/cats/create_sqlite3_database.in.patch + +# patch the make_catalog_backup script for installation bindir +patch src/cats/make_catalog_backup.in src/cats/make_catalog_backup.in.patch + +# patch the update_sqlite_tables script for installation bindir +#patch src/cats/update_sqlite_tables.in src/cats/update_sqlite_tables.in.patch +patch src/cats/update_sqlite3_tables.in src/cats/update_sqlite3_tables.in.patch + +# patch the bacula-dir init script to remove sqlite service +%if %{sqlite} && %{su9} +patch platforms/suse/bacula-dir.in platforms/suse/bacula-dir-suse-sqlite.patch +%endif +%if %{sqlite} && %{su10} +patch platforms/suse/bacula-dir.in platforms/suse/bacula-dir-suse-sqlite.patch +%endif +%if %{sqlite} && %{su102} +patch platforms/suse/bacula-dir.in platforms/suse/bacula-dir-suse-sqlite.patch +%endif +%if %{sqlite} && %{su103} +patch platforms/suse/bacula-dir.in platforms/suse/bacula-dir-suse-sqlite.patch +%endif + +# 64 bit lib location hacks +# as of 1.39.18 it should not be necessary to enable x86_64 as configure is +# reported to be fixed to properly detect lib locations. +%if %{x86_64} +export LDFLAGS="${LDFLAGS} -L/usr/lib64" +%endif +%if %{mysql} && %{x86_64} +export LDFLAGS="${LDFLAGS} -L/usr/lib64/mysql" +%endif +%if %{python} && %{x86_64} +export LDFLAGS="${LDFLAGS} -L/usr/lib64/python%{pyver}" +%endif + +# Red Hat's 64 bit installation of QT4 appears to be broken so: +%define qt_path 0 +%if %{rhel5} || %{centos5} || %{sl5} +%define qt_path 1 +%endif +%if %{bat} && %{qt_path} && %{x86_64} +export PATH=/usr/lib64/qt4/bin/:$PATH +export QTDIR=/usr/lib64/qt4/ +export QTINC=/usr/lib64/qt4/include/ +export QTLIB=/usr/lib64/qt4/ +%endif + +%configure \ + --prefix=/usr \ + --sbindir=/usr/sbin \ + --sysconfdir=%{sysconf_dir} \ + --with-scriptdir=%{script_dir} \ + --with-working-dir=%{working_dir} \ + --with-pid-dir=%{pid_dir} \ + --enable-smartalloc \ + --enable-client-only \ + %if %{mdk} + --disable-nls \ + %endif + --enable-static-fd + +make + +%configure \ + --prefix=/usr \ + --sbindir=/usr/sbin \ + --sysconfdir=%{sysconf_dir} \ + --with-scriptdir=%{script_dir} \ + --with-working-dir=%{working_dir} \ + --with-pid-dir=%{pid_dir} \ + --enable-smartalloc \ +%if %{gconsole} + --enable-gnome \ +%endif +%if %{gconsole} && ! %{rh8} + --enable-tray-monitor \ +%endif +%if %{mysql} + --with-mysql \ +%endif +%if %{sqlite} + --with-sqlite3=${cwd}/%{depkgs}/sqlite3 \ +%endif +%if %{postgresql} + --with-postgresql \ +%endif +%if %{wxconsole} + --enable-bwx-console \ +%endif +%if %{bat} + --enable-bat \ + --with-qwt=${cwd}/%{depkgs}/qwt \ +%endif +%if %{python} + --with-python \ +%endif +%if %{client_only} + --enable-client-only \ +%endif +%if %{rh7} || %{rh8} || %{rh9} || %{fc1} || %{fc3} || %{wb3} + --disable-batch-insert \ +%endif + --mandir=%{_mandir} \ + --with-subsys-dir=/var/lock/subsys \ + --with-dir-user=%{director_daemon_user} \ + --with-dir-group=%{daemon_group} \ + --with-sd-user=%{storage_daemon_user} \ + --with-sd-group=%{storage_daemon_group} \ + --with-fd-user=%{file_daemon_user} \ + --with-fd-group=%{daemon_group} \ + --with-dir-password="XXX_REPLACE_WITH_DIRECTOR_PASSWORD_XXX" \ + --with-fd-password="XXX_REPLACE_WITH_CLIENT_PASSWORD_XXX" \ + --with-sd-password="XXX_REPLACE_WITH_STORAGE_PASSWORD_XXX" \ + --with-mon-dir-password="XXX_REPLACE_WITH_DIRECTOR_MONITOR_PASSWORD_XXX" \ + --with-mon-fd-password="XXX_REPLACE_WITH_CLIENT_MONITOR_PASSWORD_XXX" \ + --with-mon-sd-password="XXX_REPLACE_WITH_STORAGE_MONITOR_PASSWORD_XXX" \ + --with-openssl + +make + +%install + +cwd=${PWD} +[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT" +mkdir -p $RPM_BUILD_ROOT/etc/init.d +mkdir -p $RPM_BUILD_ROOT/etc/logrotate.d +mkdir -p $RPM_BUILD_ROOT/etc/log.d/conf/logfiles +mkdir -p $RPM_BUILD_ROOT/etc/log.d/conf/services +mkdir -p $RPM_BUILD_ROOT/etc/log.d/scripts/services +mkdir -p $RPM_BUILD_ROOT%{script_dir}/updatedb + +%if %{gconsole} || %{wxconsole} || %{bat} +mkdir -p $RPM_BUILD_ROOT/usr/share/applications +mkdir -p $RPM_BUILD_ROOT/usr/share/pixmaps +%endif + +%if %{gconsole} || %{wxconsole} || %{bat} +%define usermode_iftrick 1 +%else +%define usermode_iftrick 0 +%endif + +%if %{usermode_iftrick} && ! %{su9} && ! %{su10} && ! %{su102} && ! %{su103} +mkdir -p $RPM_BUILD_ROOT/etc/pam.d +mkdir -p $RPM_BUILD_ROOT/etc/security/console.apps +mkdir -p $RPM_BUILD_ROOT/usr/bin +%endif + +%if %{sqlite} +mkdir -p $RPM_BUILD_ROOT%{sqlite_bindir} +%endif + +make \ + prefix=$RPM_BUILD_ROOT/usr \ + sbindir=$RPM_BUILD_ROOT/usr/sbin \ + sysconfdir=$RPM_BUILD_ROOT%{sysconf_dir} \ + scriptdir=$RPM_BUILD_ROOT%{script_dir} \ + working_dir=$RPM_BUILD_ROOT%{working_dir} \ + piddir=$RPM_BUILD_ROOT%{pid_dir} \ + mandir=$RPM_BUILD_ROOT%{_mandir} \ + install + +%if ! %{client_only} && %{mtx} +cd %{depkgs} +make \ + prefix=$RPM_BUILD_ROOT/usr \ + sbindir=$RPM_BUILD_ROOT/usr/sbin \ + sysconfdir=$RPM_BUILD_ROOT%{sysconf_dir} \ + scriptdir=$RPM_BUILD_ROOT%{script_dir} \ + working_dir=$RPM_BUILD_ROOT%{working_dir} \ + piddir=$RPM_BUILD_ROOT%{pid_dir} \ + mandir=$RPM_BUILD_ROOT%{_mandir} \ + mtx-install +cd ${cwd} +%endif + +# make install in manpages installs _everything_ shotgun style +# so now delete what we will not be packaging +%if ! %{wxconsole} +rm -f $RPM_BUILD_ROOT%{_mandir}/man1/bacula-bwxconsole.1.%{manpage_ext} +%endif +%if ! %{bat} +rm -f $RPM_BUILD_ROOT%{_mandir}/man1/bat.1.%{manpage_ext} +%endif +%if ! %{gconsole} +rm -f $RPM_BUILD_ROOT%{_mandir}/man1/bacula-bgnome-console.1.%{manpage_ext} +rm -f $RPM_BUILD_ROOT%{_mandir}/man1/bacula-tray-monitor.1.%{manpage_ext} +%endif +%if %{client_only} +rm -f $RPM_BUILD_ROOT%{_mandir}/man1/bsmtp.1.%{manpage_ext} +rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bacula-dir.8.%{manpage_ext} +rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bacula-sd.8.%{manpage_ext} +rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bcopy.8.%{manpage_ext} +rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bextract.8.%{manpage_ext} +rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bls.8.%{manpage_ext} +rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bscan.8.%{manpage_ext} +rm -f $RPM_BUILD_ROOT%{_mandir}/man8/btape.8.%{manpage_ext} +rm -f $RPM_BUILD_ROOT%{_mandir}/man8/dbcheck.8.%{manpage_ext} +%endif + +# fixme - make installs the mysql scripts for sqlite build +%if %{sqlite} +rm -f $RPM_BUILD_ROOT%{script_dir}/startmysql +rm -f $RPM_BUILD_ROOT%{script_dir}/stopmysql +rm -f $RPM_BUILD_ROOT%{script_dir}/grant_mysql_privileges +%endif + +# fixme - make installs the mysql scripts for postgresql build +%if %{postgresql} +rm -f $RPM_BUILD_ROOT%{script_dir}/startmysql +rm -f $RPM_BUILD_ROOT%{script_dir}/stopmysql +%endif + +# fixme - make installs gconsole script for build without gconsole +%if ! %{gconsole} +rm -f $RPM_BUILD_ROOT%{script_dir}/gconsole +%endif + +rm -f $RPM_BUILD_ROOT/usr/sbin/static-bacula-fd + +# install the init scripts +%if %{su9} || %{su10} || %{su102} || %{su103} +cp -p platforms/suse/bacula-dir $RPM_BUILD_ROOT/etc/init.d/bacula-dir +cp -p platforms/suse/bacula-fd $RPM_BUILD_ROOT/etc/init.d/bacula-fd +cp -p platforms/suse/bacula-sd $RPM_BUILD_ROOT/etc/init.d/bacula-sd +%endif +%if %{mdk} +cp -p platforms/mandrake/bacula-dir $RPM_BUILD_ROOT/etc/init.d/bacula-dir +cp -p platforms/mandrake/bacula-fd $RPM_BUILD_ROOT/etc/init.d/bacula-fd +cp -p platforms/mandrake/bacula-sd $RPM_BUILD_ROOT/etc/init.d/bacula-sd +%endif +%if ! %{su9} && ! %{su10} && ! %{su102} && ! %{su103} && ! %{mdk} +cp -p platforms/redhat/bacula-dir $RPM_BUILD_ROOT/etc/init.d/bacula-dir +cp -p platforms/redhat/bacula-fd $RPM_BUILD_ROOT/etc/init.d/bacula-fd +cp -p platforms/redhat/bacula-sd $RPM_BUILD_ROOT/etc/init.d/bacula-sd +%endif +chmod 0754 $RPM_BUILD_ROOT/etc/init.d/* +%if %{client_only} +rm -f $RPM_BUILD_ROOT/etc/init.d/bacula-dir +rm -f $RPM_BUILD_ROOT/etc/init.d/bacula-sd +%endif + +# install the menu stuff +%if %{gconsole} && %{su9} +cp -p scripts/bacula.png $RPM_BUILD_ROOT/usr/share/pixmaps/bacula.png +cp -p scripts/bacula.desktop.gnome2.xsu $RPM_BUILD_ROOT/usr/share/applications/bacula.desktop +cp -p src/tray-monitor/generic.xpm $RPM_BUILD_ROOT/usr/share/pixmaps/bacula-tray-monitor.xpm +cp -p scripts/bacula-tray-monitor.desktop $RPM_BUILD_ROOT/usr/share/applications/bacula-tray-monitor.desktop +%endif +%if %{gconsole} && %{su10} +cp -p scripts/bacula.png $RPM_BUILD_ROOT/usr/share/pixmaps/bacula.png +cp -p scripts/bacula.desktop.gnome2.xsu $RPM_BUILD_ROOT/usr/share/applications/bacula.desktop +cp -p src/tray-monitor/generic.xpm $RPM_BUILD_ROOT/usr/share/pixmaps/bacula-tray-monitor.xpm +cp -p scripts/bacula-tray-monitor.desktop $RPM_BUILD_ROOT/usr/share/applications/bacula-tray-monitor.desktop +%endif +%if %{gconsole} && %{su102} +cp -p scripts/bacula.png $RPM_BUILD_ROOT/usr/share/pixmaps/bacula.png +cp -p scripts/bacula.desktop.gnome2.xsu $RPM_BUILD_ROOT/usr/share/applications/bacula.desktop +cp -p src/tray-monitor/generic.xpm $RPM_BUILD_ROOT/usr/share/pixmaps/bacula-tray-monitor.xpm +cp -p scripts/bacula-tray-monitor.desktop $RPM_BUILD_ROOT/usr/share/applications/bacula-tray-monitor.desktop +%endif +%if %{gconsole} && %{su103} +cp -p scripts/bacula.png $RPM_BUILD_ROOT/usr/share/pixmaps/bacula.png +cp -p scripts/bacula.desktop.gnome2.xsu $RPM_BUILD_ROOT/usr/share/applications/bacula.desktop +cp -p src/tray-monitor/generic.xpm $RPM_BUILD_ROOT/usr/share/pixmaps/bacula-tray-monitor.xpm +cp -p scripts/bacula-tray-monitor.desktop $RPM_BUILD_ROOT/usr/share/applications/bacula-tray-monitor.desktop +%endif +%if %{wxconsole} && %{su10} +cp -p src/wx-console/wxwin16x16.xpm $RPM_BUILD_ROOT/usr/share/pixmaps/wxwin16x16.xpm +cp -p scripts/wxconsole.desktop.xsu $RPM_BUILD_ROOT/usr/share/applications/wxconsole.desktop +%endif +%if %{wxconsole} && %{su102} +cp -p src/wx-console/wxwin16x16.xpm $RPM_BUILD_ROOT/usr/share/pixmaps/wxwin16x16.xpm +cp -p scripts/wxconsole.desktop.xsu $RPM_BUILD_ROOT/usr/share/applications/wxconsole.desktop +%endif +%if %{wxconsole} && %{su103} +cp -p src/wx-console/wxwin16x16.xpm $RPM_BUILD_ROOT/usr/share/pixmaps/wxwin16x16.xpm +cp -p scripts/wxconsole.desktop.xsu $RPM_BUILD_ROOT/usr/share/applications/wxconsole.desktop +%endif +%if %{bat} && %{su102} +cp -p src/qt-console/images/bat_icon.png $RPM_BUILD_ROOT/usr/share/pixmaps/bat_icon.png +cp -p scripts/bat.desktop.xsu $RPM_BUILD_ROOT/usr/share/applications/bat.desktop +%endif +%if %{bat} && %{su103} +cp -p src/qt-console/images/bat_icon.png $RPM_BUILD_ROOT/usr/share/pixmaps/bat_icon.png +cp -p scripts/bat.desktop.xsu $RPM_BUILD_ROOT/usr/share/applications/bat.desktop +%endif +%if %{rh8} || %{rh9} || %{wb3} || %{fc1} || %{fc3} || %{fc4} || %{fc5} || %{fc6} || %{fc7} || %{fc8} || %{mdk} +%define iftrick 1 +%else +%define iftrick 0 +%endif +%if %{gconsole} && %{iftrick} +cp -p scripts/bacula.png $RPM_BUILD_ROOT/usr/share/pixmaps/bacula.png +cp -p scripts/bacula.desktop.gnome2.consolehelper $RPM_BUILD_ROOT/usr/share/applications/bacula.desktop +cp -p scripts/bgnome-console.console_apps $RPM_BUILD_ROOT/etc/security/console.apps/bgnome-console +cp -p scripts/bgnome-console.pamd $RPM_BUILD_ROOT/etc/pam.d/bgnome-console +ln -sf consolehelper $RPM_BUILD_ROOT/usr/bin/bgnome-console +%endif +%if %{gconsole} && ! %{rh8} +cp -p src/tray-monitor/generic.xpm $RPM_BUILD_ROOT/usr/share/pixmaps/bacula-tray-monitor.xpm +cp -p scripts/bacula-tray-monitor.desktop $RPM_BUILD_ROOT/usr/share/applications/bacula-tray-monitor.desktop +%endif +%if %{wxconsole} && %{iftrick} +cp -p src/wx-console/wxwin16x16.xpm $RPM_BUILD_ROOT/usr/share/pixmaps/wxwin16x16.xpm +cp -p scripts/wxconsole.desktop.consolehelper $RPM_BUILD_ROOT/usr/share/applications/wxconsole.desktop +cp -p scripts/wxconsole.console_apps $RPM_BUILD_ROOT/etc/security/console.apps/bwx-console +cp -p scripts/wxconsole.pamd $RPM_BUILD_ROOT/etc/pam.d/bwx-console +ln -sf consolehelper $RPM_BUILD_ROOT/usr/bin/bwx-console +%endif +%if %{bat} && %{iftrick} +cp -p src/qt-console/images/bat_icon.png $RPM_BUILD_ROOT/usr/share/pixmaps/bat_icon.png +cp -p scripts/bat.desktop.consolehelper $RPM_BUILD_ROOT/usr/share/applications/bat.desktop +cp -p scripts/bat.console_apps $RPM_BUILD_ROOT/etc/security/console.apps/bat +cp -p scripts/bat.pamd $RPM_BUILD_ROOT/etc/pam.d/bat +ln -sf consolehelper $RPM_BUILD_ROOT/usr/bin/bat +%endif + +# install sqlite +%if %{sqlite} +cp -p %{depkgs}/sqlite3/sqlite3 $RPM_BUILD_ROOT%{sqlite_bindir}/sqlite3 +cp -p %{depkgs}/sqlite3/sqlite3.h $RPM_BUILD_ROOT%{sqlite_bindir}/sqlite3.h +cp -p %{depkgs}/sqlite3/libsqlite3.a $RPM_BUILD_ROOT%{sqlite_bindir}/libsqlite3.a +%endif + +# install the logrotate file +cp -p scripts/logrotate $RPM_BUILD_ROOT/etc/logrotate.d/bacula + +# install the updatedb scripts +cp -p updatedb/* $RPM_BUILD_ROOT%{script_dir}/updatedb/ + +# install the logwatch scripts +%if ! %{client_only} +cp -p scripts/logwatch/bacula $RPM_BUILD_ROOT/etc/log.d/scripts/services/bacula +cp -p scripts/logwatch/logfile.bacula.conf $RPM_BUILD_ROOT/etc/log.d/conf/logfiles/bacula.conf +cp -p scripts/logwatch/services.bacula.conf $RPM_BUILD_ROOT/etc/log.d/conf/services/bacula.conf +chmod 755 $RPM_BUILD_ROOT/etc/log.d/scripts/services/bacula +chmod 644 $RPM_BUILD_ROOT/etc/log.d/conf/logfiles/bacula.conf +chmod 644 $RPM_BUILD_ROOT/etc/log.d/conf/services/bacula.conf +%endif + +# install the rescue files +mkdir $RPM_BUILD_ROOT%{sysconf_dir}/rescue +mkdir $RPM_BUILD_ROOT%{sysconf_dir}/rescue/freebsd +mkdir $RPM_BUILD_ROOT%{sysconf_dir}/rescue/solaris +cp -p %{_rescuesrc}/Makefile* $RPM_BUILD_ROOT%{sysconf_dir}/rescue/ +cp -p %{_rescuesrc}/freebsd/Makefile* $RPM_BUILD_ROOT%{sysconf_dir}/rescue/freebsd/ +cp -p %{_rescuesrc}/solaris/Makefile* $RPM_BUILD_ROOT%{sysconf_dir}/rescue/solaris/ +cp -p %{_rescuesrc}/README $RPM_BUILD_ROOT%{sysconf_dir}/rescue/ +cp -p %{_rescuesrc}/configure $RPM_BUILD_ROOT%{sysconf_dir}/rescue/ +cp -p %{_rescuesrc}/version.h $RPM_BUILD_ROOT%{sysconf_dir}/rescue/ +cp -pr %{_rescuesrc}/linux $RPM_BUILD_ROOT%{sysconf_dir}/rescue/ +cp -pr %{_rescuesrc}/autoconf $RPM_BUILD_ROOT%{sysconf_dir}/rescue/ +cp -pr %{_rescuesrc}/knoppix $RPM_BUILD_ROOT%{sysconf_dir}/rescue/ +touch $RPM_BUILD_ROOT%{sysconf_dir}/rescue/linux/cdrom/rpm_release +cp -p src/filed/static-bacula-fd $RPM_BUILD_ROOT%{sysconf_dir}/rescue/linux/cdrom/bacula/bin/bacula-fd +rm -f src/filed/static-bacula-fd + +# install bat since make doesn't at the moment +%if %{bat} +cp -p src/qt-console/bat $RPM_BUILD_ROOT/usr/sbin/bat +cp -p src/qt-console/bat.conf $RPM_BUILD_ROOT%{sysconf_dir}/bat.conf +%endif + +# now clean up permissions that are left broken by the install +chmod o-rwx $RPM_BUILD_ROOT%{working_dir} +%if %{gconsole} && ! %{rh8} +chmod 755 $RPM_BUILD_ROOT/usr/sbin/bacula-tray-monitor +chmod 644 $RPM_BUILD_ROOT%{sysconf_dir}/tray-monitor.conf +%endif + +# fix me - building enable-client-only installs files not included in bacula-client package +%if %{client_only} +rm -f $RPM_BUILD_ROOT%{script_dir}/bacula +rm -f $RPM_BUILD_ROOT%{script_dir}/bacula-ctl-dir +rm -f $RPM_BUILD_ROOT%{script_dir}/bacula-ctl-sd +rm -f $RPM_BUILD_ROOT%{script_dir}/disk-changer +rm -f $RPM_BUILD_ROOT%{script_dir}/dvd-handler +rm -f $RPM_BUILD_ROOT%{script_dir}/mtx-changer +rm -f $RPM_BUILD_ROOT%{script_dir}/startmysql +rm -f $RPM_BUILD_ROOT%{script_dir}/stopmysql +rm -rf $RPM_BUILD_ROOT%{script_dir}/updatedb +%endif + +%clean +[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT" +rm -rf $RPM_BUILD_DIR/%{name}-docs-%{docs_version} +rm -rf $RPM_BUILD_DIR/%{name}-rescue-%{_rescuever} +rm -rf $RPM_BUILD_DIR/depkgs +rm -f $RPM_BUILD_DIR/Release_Notes-%{version}-%{release}.txt + +%if %{mysql} +# MySQL specific files +%files mysql +%defattr(-, root, root) +%attr(-, root, %{daemon_group}) %{script_dir}/create_mysql_database +%attr(-, root, %{daemon_group}) %{script_dir}/drop_mysql_database +%attr(-, root, %{daemon_group}) %{script_dir}/make_mysql_tables +%attr(-, root, %{daemon_group}) %{script_dir}/drop_mysql_tables +%attr(-, root, %{daemon_group}) %{script_dir}/update_mysql_tables +%attr(-, root, %{daemon_group}) %{script_dir}/grant_mysql_privileges +%attr(-, root, %{daemon_group}) %{script_dir}/startmysql +%attr(-, root, %{daemon_group}) %{script_dir}/stopmysql +%endif + +%if %{sqlite} +%files sqlite +%defattr(-,root,root) +%attr(-, root, %{daemon_group}) %{script_dir}/create_sqlite3_database +%attr(-, root, %{daemon_group}) %{script_dir}/drop_sqlite3_database +%attr(-, root, %{daemon_group}) %{script_dir}/grant_sqlite3_privileges +%attr(-, root, %{daemon_group}) %{script_dir}/make_sqlite3_tables +%attr(-, root, %{daemon_group}) %{script_dir}/drop_sqlite3_tables +%attr(-, root, %{daemon_group}) %{script_dir}/update_sqlite3_tables +%{sqlite_bindir}/libsqlite3.a +%{sqlite_bindir}/sqlite3.h +%{sqlite_bindir}/sqlite3 +%endif + +%if %{postgresql} +%files postgresql +%defattr(-,root,root) +%attr(-, root, %{daemon_group}) %{script_dir}/create_postgresql_database +%attr(-, root, %{daemon_group}) %{script_dir}/drop_postgresql_database +%attr(-, root, %{daemon_group}) %{script_dir}/make_postgresql_tables +%attr(-, root, %{daemon_group}) %{script_dir}/drop_postgresql_tables +%attr(-, root, %{daemon_group}) %{script_dir}/update_postgresql_tables +%attr(-, root, %{daemon_group}) %{script_dir}/grant_postgresql_privileges +%endif + +# The rest is DB backend independent +%if ! %{client_only} +%attr(-, root, %{daemon_group}) %dir %{script_dir} +%attr(-, root, %{daemon_group}) %{script_dir}/bacula +%attr(-, root, %{daemon_group}) %{script_dir}/bconsole +%attr(-, root, %{daemon_group}) %{script_dir}/create_bacula_database +%attr(-, root, %{daemon_group}) %{script_dir}/drop_bacula_database +%attr(-, root, %{daemon_group}) %{script_dir}/grant_bacula_privileges +%attr(-, root, %{daemon_group}) %{script_dir}/make_bacula_tables +%attr(-, root, %{daemon_group}) %{script_dir}/drop_bacula_tables +%attr(-, root, %{daemon_group}) %{script_dir}/update_bacula_tables +%attr(-, root, %{daemon_group}) %{script_dir}/make_catalog_backup +%attr(-, root, %{daemon_group}) %{script_dir}/delete_catalog_backup +%attr(-, root, %{daemon_group}) %{script_dir}/btraceback.dbx +%attr(-, root, %{daemon_group}) %{script_dir}/btraceback.gdb +%attr(-, root, %{daemon_group}) %{sysconf_dir}/rescue +%attr(-, root, %{daemon_group}) %{script_dir}/disk-changer +%attr(-, root, %{daemon_group}) %{script_dir}/bacula-ctl-dir +%attr(-, root, %{daemon_group}) %{script_dir}/bacula-ctl-fd +%attr(-, root, %{daemon_group}) %{script_dir}/bacula-ctl-sd +%attr(-, root, %{daemon_group}) /etc/init.d/bacula-dir +%attr(-, root, %{daemon_group}) /etc/init.d/bacula-fd +%attr(-, root, %{storage_daemon_group}) %{script_dir}/dvd-handler +%attr(-, root, %{storage_daemon_group}) /etc/init.d/bacula-sd +%attr(-, root, %{storage_daemon_group}) %{script_dir}/mtx-changer + +%doc COPYING ChangeLog ReleaseNotes VERIFYING kernstodo +%doc %{_docsrc}/manual/bacula.pdf %{_docsrc}/developers/developers.pdf %{_docsrc}/manual/bacula ../Release_Notes-%{version}-%{release}.txt + +/etc/logrotate.d/bacula +/etc/log.d/scripts/services/bacula +%attr(-, root, %{daemon_group}) %config(noreplace) %{sysconf_dir}/bacula-dir.conf +%attr(-, root, %{daemon_group}) %config(noreplace) %{sysconf_dir}/bacula-fd.conf +%attr(-, root, %{storage_daemon_group}) %config(noreplace) %{sysconf_dir}/bacula-sd.conf +%attr(-, root, %{daemon_group}) %config(noreplace) %{sysconf_dir}/bconsole.conf +%attr(-, root, %{daemon_group}) %config(noreplace) /etc/log.d/conf/logfiles/bacula.conf +%attr(-, root, %{daemon_group}) %config(noreplace) /etc/log.d/conf/services/bacula.conf +%attr(-, root, %{daemon_group}) %config(noreplace) %{script_dir}/query.sql + +%attr(-, %{storage_daemon_user}, %{daemon_group}) %dir %{working_dir} + +/usr/sbin/bacula-dir +/usr/sbin/bacula-fd +/usr/sbin/bacula-sd +/usr/sbin/bcopy +/usr/sbin/bextract +/usr/sbin/bls +/usr/sbin/bscan +/usr/sbin/btape +/usr/sbin/btraceback +/usr/sbin/bconsole +/usr/sbin/dbcheck +/usr/sbin/bsmtp +/usr/sbin/bregex +/usr/sbin/bwild +%{_mandir}/man8/bacula-fd.8.%{manpage_ext} +%{_mandir}/man8/bacula-dir.8.%{manpage_ext} +%{_mandir}/man8/bacula-sd.8.%{manpage_ext} +%{_mandir}/man8/bacula.8.%{manpage_ext} +%{_mandir}/man8/bconsole.8.%{manpage_ext} +%{_mandir}/man8/bcopy.8.%{manpage_ext} +%{_mandir}/man8/bextract.8.%{manpage_ext} +%{_mandir}/man8/bls.8.%{manpage_ext} +%{_mandir}/man8/bscan.8.%{manpage_ext} +%{_mandir}/man8/btape.8.%{manpage_ext} +%{_mandir}/man8/btraceback.8.%{manpage_ext} +%{_mandir}/man8/dbcheck.8.%{manpage_ext} +%{_mandir}/man1/bsmtp.1.%{manpage_ext} +%endif + +%if %{mysql} +%pre mysql +# test for bacula database older than version 9 +# note: this ASSUMES no password has been set for bacula database +DB_VER=`mysql 2>/dev/null bacula -e 'select * from Version;'|tail -n 1` +%endif + +%if %{sqlite} +%pre sqlite +# are we upgrading from sqlite to sqlite3? +if [ -s %{working_dir}/bacula.db ] && [ -s %{sqlite_bindir}/sqlite ];then + echo "This version of bacula-sqlite involves an upgrade to sqlite3." + echo "Your catalog database file is not compatible with sqlite3, thus" + echo "you will need to dump the data, delete the old file, and re-run" + echo "this rpm upgrade." + echo "" + echo "Backing up your current database..." + echo ".dump" | %{sqlite_bindir}/sqlite %{working_dir}/bacula.db > %{working_dir}/bacula_backup.sql + mv %{working_dir}/bacula.db %{working_dir}/bacula.db.old + echo "Your catalog data has been saved in %{working_dir}/bacula_backup.sql and your" + echo "catalog file has been renamed %{working_dir}/bacula.db.old." + echo "" + echo "Please re-run this rpm package upgrade." + echo "After the upgrade is complete, restore your catalog" + echo "with the following commands:" + echo "%{script_dir}/drop_sqlite3_tables" + echo "cd %{working_dir}" + echo "%{sqlite_bindir}/sqlite3 $* bacula.db < bacula_backup.sql" + echo "chown bacula.bacula bacula.db" + exit 1 +fi +# test for bacula database older than version 9 and sqlite3 +if [ -s %{working_dir}/bacula.db ] && [ -s %{sqlite_bindir}/sqlite3 ];then + DB_VER=`echo "select * from Version;" | %{sqlite_bindir}/sqlite3 2>/dev/null %{working_dir}/bacula.db | tail -n 1` +%endif + +%if %{postgresql} +%pre postgresql +DB_VER=`echo 'select * from Version;' | psql bacula 2>/dev/null | tail -3 | head -1` +%endif + +%if ! %{client_only} +if [ -n "$DB_VER" ] && [ "$DB_VER" -lt "9" ]; then + echo "This bacula upgrade will update a bacula database from version 9 to 10." + echo "You appear to be running database version $DB_VER. You must first update" + echo "your database to version 9 and then install this upgrade. The alternative" + echo "is to use %{script_dir}/drop_%{db_backend}_tables to delete all your your current" + echo "catalog information, then do the upgrade. Information on updating a" + echo "database older than version 9 can be found in the release notes." + exit 1 +fi +%endif + +%if %{sqlite} +fi +%endif + +%if ! %{client_only} +# check for and copy %{sysconf_dir}/console.conf to bconsole.conf +if [ -s %{sysconf_dir}/console.conf ];then + cp -p %{sysconf_dir}/console.conf %{sysconf_dir}/bconsole.conf +fi + +# create the daemon users and groups +# first create the groups if they don't exist +HAVE_BACULA=`grep %{daemon_group} %{group_file} 2>/dev/null` +if [ -z "$HAVE_BACULA" ]; then + %{groupadd} -r %{daemon_group} > /dev/null 2>&1 + echo "The group %{daemon_group} has been added to %{group_file}." + echo "See the manual chapter \"Running Bacula\" for details." +fi +HAVE_BACULA=`grep %{storage_daemon_group} %{group_file} 2>/dev/null` +if [ -z "$HAVE_BACULA" ]; then + %{groupadd} -r %{storage_daemon_group} > /dev/null 2>&1 + echo "The group %{storage_daemon_group} has been added to %{group_file}." + echo "See the manual chapter \"Running Bacula\" for details." +fi +# now create the users if they do not exist +# we do not use the -g option allowing the primary group to be set to system default +# this will be a unique group on redhat type systems or the group users on some systems +HAVE_BACULA=`grep %{storage_daemon_user} %{user_file} 2>/dev/null` +if [ -z "$HAVE_BACULA" ]; then + %{useradd} -r -c "Bacula" -d %{working_dir} -g %{storage_daemon_group} -M -s /sbin/nologin %{storage_daemon_user} > /dev/null 2>&1 + echo "The user %{storage_daemon_user} has been added to %{user_file}." + echo "See the manual chapter \"Running Bacula\" for details." +fi +HAVE_BACULA=`grep %{director_daemon_user} %{user_file} 2>/dev/null` +if [ -z "$HAVE_BACULA" ]; then + %{useradd} -r -c "Bacula" -d %{working_dir} -g %{daemon_group} -M -s /sbin/nologin %{director_daemon_user} > /dev/null 2>&1 + echo "The user %{director_daemon_user} has been added to %{user_file}." + echo "See the manual chapter \"Running Bacula\" for details." +fi +HAVE_BACULA=`grep %{file_daemon_user} %{user_file} 2>/dev/null` +if [ -z "$HAVE_BACULA" ]; then + %{useradd} -r -c "Bacula" -d %{working_dir} -g %{daemon_group} -M -s /sbin/nologin %{file_daemon_user} > /dev/null 2>&1 + echo "The user %{file_daemon_user} has been added to %{user_file}." + echo "See the manual chapter \"Running Bacula\" for details." +fi +# now we add the supplementary groups, this is ok to call even if the users already exist +# we only do this if the user is NOT root +IS_ROOT=%{director_daemon_user} +if [ "$IS_ROOT" != "root" ]; then +%{usermod} -G %{daemon_group} %{director_daemon_user} +fi +IS_ROOT=%{storage_daemon_user} +if [ "$IS_ROOT" != "root" ]; then +%{usermod} -G %{daemon_group},%{storage_daemon_group} %{storage_daemon_user} +fi +IS_ROOT=%{file_daemon_user} +if [ "$IS_ROOT" != "root" ]; then +%{usermod} -G %{daemon_group} %{file_daemon_user} +fi +%endif + +%if %{mysql} +%post mysql +%endif +%if %{sqlite} +%post sqlite +%endif +%if %{postgresql} +%post postgresql +%endif + +%if ! %{client_only} +# add our links +if [ "$1" -ge 1 ] ; then +/sbin/chkconfig --add bacula-dir +/sbin/chkconfig --add bacula-fd +/sbin/chkconfig --add bacula-sd +fi +%endif + +%if %{mysql} +# test for an existing database +# note: this ASSUMES no password has been set for bacula database +DB_VER=`mysql 2>/dev/null bacula -e 'select * from Version;'|tail -n 1` + +# grant privileges and create tables if they do not exist +if [ -z "$DB_VER" ]; then + echo "Hmm, doesn't look like you have an existing database." + echo "Granting privileges for MySQL user bacula..." + %{script_dir}/grant_mysql_privileges + echo "Creating MySQL bacula database..." + %{script_dir}/create_mysql_database + echo "Creating bacula tables..." + %{script_dir}/make_mysql_tables + +# check to see if we need to upgrade a 1.38 or lower database +elif [ "$DB_VER" -lt "10" ]; then + echo "This release requires an upgrade to your bacula database." + echo "Backing up your current database..." + mysqldump -f --opt bacula | bzip2 > %{working_dir}/bacula_backup.sql.bz2 + echo "Upgrading bacula database ..." + %{script_dir}/update_mysql_tables + echo "If bacula works correctly you can remove the backup file %{working_dir}/bacula_backup.sql.bz2" + +fi +%endif + +%if %{sqlite} +# test for an existing database +if [ -s %{working_dir}/bacula.db ]; then + DB_VER=`echo "select * from Version;" | %{sqlite_bindir}/sqlite3 2>/dev/null %{working_dir}/bacula.db | tail -n 1` + # check to see if we need to upgrade a 1.38 or lower database + if [ "$DB_VER" -lt "10" ] && [ "$DB_VER" -ge "9" ]; then + echo "This release requires an upgrade to your bacula database." + echo "Backing up your current database..." + echo ".dump" | %{sqlite_bindir}/sqlite3 %{working_dir}/bacula.db | bzip2 > %{working_dir}/bacula_backup.sql.bz2 + echo "Upgrading bacula database ..." + %{script_dir}/update_sqlite3_tables + echo "If bacula works correctly you can remove the backup file %{working_dir}/bacula_backup.sql.bz2" + fi +else + # create the database and tables + echo "Hmm, doesn't look like you have an existing database." + echo "Creating SQLite database..." + %{script_dir}/create_sqlite3_database + chown %{director_daemon_user}.%{daemon_group} %{working_dir}/bacula.db + echo "Creating the SQLite tables..." + %{script_dir}/make_sqlite3_tables +fi +%endif + +%if %{postgresql} +# test for an existing database +# note: this ASSUMES no password has been set for bacula database +DB_VER=`echo 'select * from Version;' | psql bacula 2>/dev/null | tail -3 | head -1` + +# grant privileges and create tables if they do not exist +if [ -z "$DB_VER" ]; then + echo "Hmm, doesn't look like you have an existing database." + echo "Creating PostgreSQL bacula database..." + %{script_dir}/create_postgresql_database + echo "Creating bacula tables..." + %{script_dir}/make_postgresql_tables + echo "Granting privileges for PostgreSQL user bacula..." + %{script_dir}/grant_postgresql_privileges + +# check to see if we need to upgrade a 1.38 or lower database +elif [ "$DB_VER" -lt "10" ]; then + echo "This release requires an upgrade to your bacula database." + echo "Backing up your current database..." + pg_dump bacula | bzip2 > %{working_dir}/bacula_backup.sql.bz2 + echo "Upgrading bacula database ..." + %{script_dir}/update_postgresql_tables + echo "If bacula works correctly you can remove the backup file %{working_dir}/bacula_backup.sql.bz2" + +fi +%endif + +%if ! %{client_only} +# generate passwords if needed +if [ -d %{sysconf_dir} ]; then + cd %{sysconf_dir} + for file in *.conf; do + for string in XXX_REPLACE_WITH_DIRECTOR_PASSWORD_XXX XXX_REPLACE_WITH_CLIENT_PASSWORD_XXX XXX_REPLACE_WITH_STORAGE_PASSWORD_XXX XXX_REPLACE_WITH_DIRECTOR_MONITOR_PASSWORD_XXX XXX_REPLACE_WITH_CLIENT_MONITOR_PASSWORD_XXX XXX_REPLACE_WITH_STORAGE_MONITOR_PASSWORD_XXX; do + need_password=`grep $string $file 2>/dev/null` + if [ -n "$need_password" ]; then + pass=`openssl rand -base64 33` + sed "s-$string-$pass-g" $file > $file.new + cp -f $file.new $file; rm -f $file.new + fi + done + done +fi +%endif + +%if %{mysql} +%preun mysql +%endif +%if %{sqlite} +%preun sqlite +%endif +%if %{postgresql} +%preun postgresql +%endif + +%if ! %{client_only} +# delete our links +if [ $1 = 0 ]; then +/sbin/chkconfig --del bacula-dir +/sbin/chkconfig --del bacula-fd +/sbin/chkconfig --del bacula-sd +fi +%endif + + +%if ! %{client_only} && %{mtx} +%files mtx +%defattr(-,root,root) +%attr(-, root, %{storage_daemon_group}) /usr/sbin/loaderinfo +%attr(-, root, %{storage_daemon_group}) /usr/sbin/mtx +%attr(-, root, %{storage_daemon_group}) /usr/sbin/scsitape +%attr(-, root, %{storage_daemon_group}) /usr/sbin/tapeinfo +%attr(-, root, %{storage_daemon_group}) /usr/sbin/nsmhack +%attr(-, root, %{storage_daemon_group}) /usr/sbin/scsieject +%{_mandir}/man1/loaderinfo.1.%{manpage_ext} +%{_mandir}/man1/mtx.1.%{manpage_ext} +%{_mandir}/man1/scsitape.1.%{manpage_ext} +%{_mandir}/man1/tapeinfo.1.%{manpage_ext} +%{_mandir}/man1/scsieject.1.%{manpage_ext} +%endif + +%files client +%defattr(-,root,root) +%attr(-, root, %{daemon_group}) %dir %{script_dir} +%attr(-, root, %{daemon_group}) %{script_dir}/bconsole +%{script_dir}/bacula-ctl-fd +/etc/init.d/bacula-fd +%attr(-, root, %{daemon_group}) %{sysconf_dir}/rescue + +%doc COPYING ChangeLog ReleaseNotes VERIFYING kernstodo +%doc %{_docsrc}/manual/bacula.pdf %{_docsrc}/developers/developers.pdf %{_docsrc}/manual/bacula ../Release_Notes-%{version}-%{release}.txt + +/etc/logrotate.d/bacula + +%attr(-, root, %{daemon_group}) %config(noreplace) %{sysconf_dir}/bacula-fd.conf +%attr(-, root, %{daemon_group}) %config(noreplace) %{sysconf_dir}/bconsole.conf + +%attr(-, root, %{daemon_group}) %dir %{working_dir} + +/usr/sbin/bacula-fd +/usr/sbin/btraceback +%attr(-, root, %{daemon_group}) %{script_dir}/btraceback.gdb +%attr(-, root, %{daemon_group}) %{script_dir}/btraceback.dbx +/usr/sbin/bconsole +%{_mandir}/man8/bacula-fd.8.%{manpage_ext} +%{_mandir}/man8/bacula.8.%{manpage_ext} +%{_mandir}/man8/bconsole.8.%{manpage_ext} +%{_mandir}/man8/btraceback.8.%{manpage_ext} + + +%pre client +# create the daemon group and user +HAVE_BACULA=`grep %{daemon_group} %{group_file} 2>/dev/null` +if [ -z "$HAVE_BACULA" ]; then + %{groupadd} -r %{daemon_group} > /dev/null 2>&1 + echo "The group %{daemon_group} has been added to %{group_file}." + echo "See the manual chapter \"Running Bacula\" for details." +fi +# we do not use the -g option allowing the primary group to be set to system default +# this will be a unique group on redhat type systems or the group users on some systems +HAVE_BACULA=`grep %{file_daemon_user} %{user_file} 2>/dev/null` +if [ -z "$HAVE_BACULA" ]; then + %{useradd} -r -c "Bacula" -d %{working_dir} -g %{daemon_group} -M -s /sbin/nologin %{file_daemon_user} > /dev/null 2>&1 + echo "The user %{file_daemon_user} has been added to %{user_file}." + echo "See the manual chapter \"Running Bacula\" for details." +fi +# now we add the supplementary group, this is ok to call even if the user already exists +# we only do this if the user is NOT root +IS_ROOT=%{file_daemon_user} +if [ "$IS_ROOT" != "root" ]; then +%{usermod} -G %{daemon_group} %{file_daemon_user} +fi + +%post client +# add our link +if [ "$1" -ge 1 ] ; then +/sbin/chkconfig --add bacula-fd +fi + +# generate passwords if needed +if [ -d %{sysconf_dir} ]; then + cd %{sysconf_dir} + for file in *.conf; do + for string in XXX_REPLACE_WITH_DIRECTOR_PASSWORD_XXX XXX_REPLACE_WITH_CLIENT_PASSWORD_XXX XXX_REPLACE_WITH_STORAGE_PASSWORD_XXX XXX_REPLACE_WITH_DIRECTOR_MONITOR_PASSWORD_XXX XXX_REPLACE_WITH_CLIENT_MONITOR_PASSWORD_XXX XXX_REPLACE_WITH_STORAGE_MONITOR_PASSWORD_XXX; do + need_password=`grep $string $file 2>/dev/null` + if [ -n "$need_password" ]; then + pass=`openssl rand -base64 33` + sed "s-$string-$pass-g" $file > $file.new + cp -f $file.new $file; rm -f $file.new + fi + done + done +fi + +%preun client +# delete our link +if [ $1 = 0 ]; then +/sbin/chkconfig --del bacula-fd +fi + +%if ! %{client_only} +%files updatedb +%defattr(-,root,%{daemon_group}) +%{script_dir}/updatedb/* + +%pre updatedb +# create the daemon group +HAVE_BACULA=`grep %{daemon_group} %{group_file} 2>/dev/null` +if [ -z "$HAVE_BACULA" ]; then + %{groupadd} -r %{daemon_group} > /dev/null 2>&1 + echo "The group %{daemon_group} has been added to %{group_file}." + echo "See the manual chapter \"Running Bacula\" for details." +fi + +%post updatedb +echo "The database update scripts were installed to %{script_dir}/updatedb" +%endif + +%if %{gconsole} +%files gconsole +%defattr(-,root,root) +/usr/sbin/bgnome-console +%attr(-, root, %{daemon_group}) %dir %{script_dir} +%attr(-, root, %{daemon_group}) %{script_dir}/gconsole +%attr(-, root, %{daemon_group}) %config(noreplace) %{sysconf_dir}/bgnome-console.conf +/usr/share/pixmaps/bacula.png +/usr/share/applications/bacula.desktop +%{_mandir}/man1/bacula-bgnome-console.1.%{manpage_ext} +%endif + +%if %{gconsole} && ! %{rh8} +/usr/sbin/bacula-tray-monitor +%config(noreplace) %{sysconf_dir}/tray-monitor.conf +/usr/share/pixmaps/bacula-tray-monitor.xpm +/usr/share/applications/bacula-tray-monitor.desktop +%{_mandir}/man1/bacula-tray-monitor.1.%{manpage_ext} +%endif + +%if %{gconsole} && ! %{su9} && ! %{su10} && ! %{su102} && ! %{su103} +# add the console helper files +%config(noreplace,missingok) /etc/pam.d/bgnome-console +%config(noreplace,missingok) /etc/security/console.apps/bgnome-console +/usr/bin/bgnome-console +%endif + +%if %{gconsole} +%pre gconsole +# create the daemon group +HAVE_BACULA=`grep %{daemon_group} %{group_file} 2>/dev/null` +if [ -z "$HAVE_BACULA" ]; then + %{groupadd} -r %{daemon_group} > /dev/null 2>&1 + echo "The group %{daemon_group} has been added to %{group_file}." + echo "See the manual chapter \"Running Bacula\" for details." +fi + +%post gconsole +# generate passwords if needed +if [ -d %{sysconf_dir} ]; then + cd %{sysconf_dir} + for file in *.conf; do + for string in XXX_REPLACE_WITH_DIRECTOR_PASSWORD_XXX XXX_REPLACE_WITH_CLIENT_PASSWORD_XXX XXX_REPLACE_WITH_STORAGE_PASSWORD_XXX XXX_REPLACE_WITH_DIRECTOR_MONITOR_PASSWORD_XXX XXX_REPLACE_WITH_CLIENT_MONITOR_PASSWORD_XXX XXX_REPLACE_WITH_STORAGE_MONITOR_PASSWORD_XXX; do + need_password=`grep $string $file 2>/dev/null` + if [ -n "$need_password" ]; then + pass=`openssl rand -base64 33` + sed "s-$string-$pass-g" $file > $file.new + cp -f $file.new $file; rm -f $file.new + fi + done + done +fi +%endif + +%if %{wxconsole} +%files wxconsole +%defattr(-,root,root) +/usr/sbin/bwx-console +%attr(-, root, %{daemon_group}) %dir %{sysconf_dir} +%attr(-, root, %{daemon_group}) %config(noreplace) %{sysconf_dir}/bwx-console.conf +/usr/share/pixmaps/wxwin16x16.xpm +/usr/share/applications/wxconsole.desktop +%{_mandir}/man1/bacula-bwxconsole.1.%{manpage_ext} +%endif + +%if %{wxconsole} && ! %{su9} && ! %{su10} && ! %{su102} && ! %{su103} +# add the console helper files +%config(noreplace,missingok) /etc/pam.d/bwx-console +%config(noreplace,missingok) /etc/security/console.apps/bwx-console +/usr/bin/bwx-console +%endif + +%if %{wxconsole} +%pre wxconsole +# create the daemon group +HAVE_BACULA=`grep %{daemon_group} %{group_file} 2>/dev/null` +if [ -z "$HAVE_BACULA" ]; then + %{groupadd} -r %{daemon_group} > /dev/null 2>&1 + echo "The group %{daemon_group} has been added to %{group_file}." + echo "See the manual chapter \"Running Bacula\" for details." +fi + +%post wxconsole +# generate passwords if needed +if [ -d %{sysconf_dir} ]; then + cd %{sysconf_dir} + for file in *.conf; do + for string in XXX_REPLACE_WITH_DIRECTOR_PASSWORD_XXX XXX_REPLACE_WITH_CLIENT_PASSWORD_XXX XXX_REPLACE_WITH_STORAGE_PASSWORD_XXX XXX_REPLACE_WITH_DIRECTOR_MONITOR_PASSWORD_XXX XXX_REPLACE_WITH_CLIENT_MONITOR_PASSWORD_XXX XXX_REPLACE_WITH_STORAGE_MONITOR_PASSWORD_XXX; do + need_password=`grep $string $file 2>/dev/null` + if [ -n "$need_password" ]; then + pass=`openssl rand -base64 33` + sed "s-$string-$pass-g" $file > $file.new + cp -f $file.new $file; rm -f $file.new + fi + done + done +fi +%endif + +%if %{bat} +%files bat +%defattr(-,root,root) +/usr/sbin/bat +%attr(-, root, %{daemon_group}) %dir %{sysconf_dir} +%attr(-, root, %{daemon_group}) %config(noreplace) %{sysconf_dir}/bat.conf +/usr/share/pixmaps/bat_icon.png +/usr/share/applications/bat.desktop +%{_mandir}/man1/bat.1.%{manpage_ext} +%endif + +%if %{bat} && ! %{su9} && ! %{su10} && ! %{su102} && ! %{su103} +# add the console helper files +%config(noreplace,missingok) /etc/pam.d/bat +%config(noreplace,missingok) /etc/security/console.apps/bat +/usr/bin/bat +%endif + +%if %{bat} +%pre bat +# create the daemon group +HAVE_BACULA=`grep %{daemon_group} %{group_file} 2>/dev/null` +if [ -z "$HAVE_BACULA" ]; then + %{groupadd} -r %{daemon_group} > /dev/null 2>&1 + echo "The group %{daemon_group} has been added to %{group_file}." + echo "See the manual chapter \"Running Bacula\" for details." +fi + +%post bat +# generate passwords if needed +if [ -d %{sysconf_dir} ]; then + cd %{sysconf_dir} + for file in *.conf; do + for string in XXX_REPLACE_WITH_DIRECTOR_PASSWORD_XXX XXX_REPLACE_WITH_CLIENT_PASSWORD_XXX XXX_REPLACE_WITH_STORAGE_PASSWORD_XXX XXX_REPLACE_WITH_DIRECTOR_MONITOR_PASSWORD_XXX XXX_REPLACE_WITH_CLIENT_MONITOR_PASSWORD_XXX XXX_REPLACE_WITH_STORAGE_MONITOR_PASSWORD_XXX; do + need_password=`grep $string $file 2>/dev/null` + if [ -n "$need_password" ]; then + pass=`openssl rand -base64 33` + sed "s-$string-$pass-g" $file > $file.new + cp -f $file.new $file; rm -f $file.new + fi + done + done +fi +%endif + +%changelog +* Sat Jan 12 2008 D. Scott Barninger +- 2.2.8 release +- fix bug 1037 +- add fc8 target +* Sun Dec 30 2007 D. Scott Barninger +- fix typo on su103 client package requirements +* Fri Dec 28 2007 D. Scott Barninger +- add nobuild_mtx switch +- add patch for postgresql.c for old postgresql versions +* Sat Nov 17 2007 D. Scott Barninger +- switch to sqlite3 +* Sun Nov 11 2007 D. Scott Barninger +- add new files required by rescue makefile +* Sat Nov 10 2007 D. Scott Barninger +- add su103 build target +* Sun Nov 04 2007 D. Scott Barninger +- fix dist defines for rhel5 and clones +- fix rhel broken 64 bit QT4 paths +- rh qt4 packages don't provide qt so fix that too +* Mon Oct 29 2007 D. Scott Barninger +- correct ownership when creating sqlite db file in post script +* Sun Sep 16 2007 D. Scott Barninger +- fix disable-batch-insert +* Fri Sep 14 2007 D. Scott Barninger +- 2.2.4 release +- turn off gconsole build for fc3, tray monitor fails to build +- add new files for mtx package (09Sep07 depkgs update) +* Sat Sep 08 2007 D. Scott Barninger +- add --disable-batch-insert for older platforms +- add build targets for rhel5 and clones +* Mon Sep 03 2007 D. Scott Barninger +- 2.2.1 release +- turn off gconsole build for su10 & fc4, tray monitor fails to build +* Sat Jul 14 2007 D. Scott Barninger +- 2.1.26 add make of qwt in depkgs for bat +* Sat Jun 02 2007 D. Scott Barninger +- upgrade Qt requirement for bat to 4.2 +* Sun May 06 2007 D. Scott Barninger +- add fc7 build target +* Sun Apr 29 2007 D. Scott Barninger +- 2.1.8 +- gnome-console now bgnome-console +- wxconsole now bwx-console +- add build option for bat +* Sat Apr 08 2007 D. Scott Barninger +- merge Otto Mueller's patch but keep script dir set to /etc/bacula +- add build tag for Scientific Linux per Jon Peatfield +* Tue Mar 27 2007 Otto Mueller +- adjust directory locations for FHS-compatibility + sysconf_dir (/etc/bacula), script_dir (/usr/lib/bacula), + working_dir (/var/lib/bacula) and pid_dir (/var/run) +* Mon Feb 26 2007 D. Scott Barninger +- add SuSE 10.2 target +* Sat Jan 20 2007 D. Scott Barninger +- correct bug 752 +- set query.sql as config file +- correct bug 754 +* Sun Jan 14 2007 D. Scott Barninger +- 2.0.1 release +- change determination of gcc version per patch from Marc Hennes +- move BuildRequire for atk-devel to gnome only builds +- add fc6 build tag +* Sat Jan 06 2007 D. Scott Barninger +- 2.0.0 release +* Sun Oct 15 2006 D. Scott Barninger +- 1.39.26 remove create_sqlite_database.in.patch +* Sun Sep 24 2006 D. Scott Barninger +- change ownership of working_dir on server packages to bacula.bacula so that +- bacula-sd can create bootstrap files +* Sat Sep 02 2006 D. Scott Barninger +- 1.39.22 remove separate cd and make of manpages the main Makefile does it now +* Sun Aug 06 2006 D. Scott Barninger +- fix manpages file extension for mdk +* Sat Aug 05 2006 D. Scott Barninger +- bug 648 re-enable and update sqlite patches +- 1.39.18 changes +- updatedb 9 to 10 +- install man pages +- lock out gconsole build for gtk+ < 2.4 +* Mon Jul 17 2006 D. Scott Barninger +- move pango-devel BuildRequires into gconsole only build +* Sat Jul 15 2006 D. Scott Barninger +- add provides and conflicts for standard suse packages +- add third party packager tag support +- add build_client_only tag +- remove bsmtp from client package +- add bacula-ctl-fd to client package +* Thu Jul 13 2006 D. Scott Barninger +- fix directory creation when wxconsole and not gconsole +* Tue Jul 04 2006 D. Scott Barninger +- add check to buildrequires to make sure libstdc++ version matches gcc +* Mon Jul 03 2006 D. Scott Barninger +- add python build support +- fix LDFLAGS declarations +* Sun Jul 02 2006 D. Scott Barninger +- add requires for standard compiler toolchain +- move version and release tags up +- move patches up +- add docs_version tag +* Sat Jul 01 2006 D. Scott Barninger +- update rescuever to 1.8.6 +* Sun Jun 25 2006 D. Scott Barninger +- update depkgs to 25Jun06 +- add mysql5 build tag +* Mon Jun 12 2006 D. Scott Barninger +- 1.38.10 bump rescue version +* Sun Jun 03 2006 D. Scott Barninger +- fix usermod statements +- add fc5 target +* Thu Apr 27 2006 D. Scott Barninger +- add -g param back to useradd statements Bug 605 +* Mon Apr 17 2006 D. Scott Barninger +- redundant code cleanup +* Sun Apr 16 2006 D. Scott Barninger +- add wxconsole package +* Fri Apr 14 2006 D. Scott Barninger +- 1.38.8 release +- dependency update for Mandriva +* Sun Apr 08 2006 D. Scott Barninger +- 1.38.7 release +- remove -n option from useradd scripts +* Sun Apr 02 2006 D. Scott Barninger +- 1.38.6 release +- fix problem specifying more than one primary group for user bacula +- add build switch to not build gconsole regardless of platform +* Sun Jan 29 2006 D. Scott Barninger +- add centos3 build tag +- fix link error of static-fd on Mandrake with --disable-nls +* Fri Jan 27 2006 D. Scott Barninger +- add fc4 dependencies +* Mon Jan 23 2006 D. Scott Barninger +- add SuSE 10.0 build +- remove specific permission in attrib macros +* Sat Jan 21 2006 D. Scott Barninger +- 1.38.5 release +- fix usermode required on suse, suse doesn't have usermode (xsu instead) +- refix compat for _dist on SLES9 which seems to have been removed +- added note regarding Aleksandar's use of specific permissions in attrib macros +- need to review and add specific fc4 build currently using fc3 Requires +* Wed Dec 14 2005 Aleksandar Milivojevic +- 1.38.2 release +- Reorganize files and pre/post sections to remove repetitions +- Always build separate mtx package +- Fix file ownerships for /etc/bacula and Bacula's working dir +* Wed Nov 23 2005 Aleksandar Milivojevic +- Disable GNOME on RH7 +* Fri Nov 18 2005 Aleksandar Milivojevic +- Red Hat and look alikes have mtx RPM, do not build/package our version +* Sun Nov 13 2005 D. Scott Barninger +- minor edit to _dist for SLES9 compatibility +* Sat Nov 05 2005 D. Scott Barninger +- 1.38.0 release +- kern changed location of pdf files and html manual in docs package +* Sun Oct 30 2005 D. Scott Barninger +- 1.38.0 release +- add docs (from prebuilt tarball) and rescue packages back in +- remove dvd-freespace and dvd-writepart files, add dvd-handler +- remove 3 of 4 sqlite script patches as not needed +* Sun Jul 24 2005 D. Scott Barninger +- changes for 1.38 +- remove docs and rescue sections (remove static fd) +- add dvd-freespace and dvd-writepart files +- update depkgs to 22Jun05 +- change database update to 8 to 9 +* Sun Jul 24 2005 D. Scott Barninger +- minor cleanups before 1.38 changes +- add popt and popt-devel build dependencies +- add tetex and tetex-dvips dependencies for doc build +- replace deprecated Copyright tag with License +* Sat May 07 2005 D. Scott Barninger +- move sqlite installation bindir to /usr/lib/bacula/sqlite and remove +- conflict with sqlite packages. remove readline dependency. +* Sun Apr 17 2005 D. Scott Barninger +- release 1.36.3 update docs +* Tue Apr 05 2005 D. Scott Barninger +- add centos4 build tag +- add x86_64 build tag +* Sun Apr 03 2005 D. Scott Barninger +- add rhel4 build tag +- clean up for mysql4 which is now mdk-10.1, suse-9.2 and rhel4 +* Sun Mar 06 2005 D. Scott Barninger +- add rhel3 build tag +* Tue Mar 01 2005 D. Scott Barninger +- fix tray-monitor.conf for noreplace +* Mon Feb 28 2005 D. Scott Barninger +- fix distribution check for Fedora and Whitebox +* Sun Feb 06 2005 D. Scott Barninger +- add logwatch script +- add dvd scripts +* Sat Jan 15 2005 D. Scott Barninger +- add build for Fedora Core 3 (linc now included in ORDit2) +- add mysql4 define for Mandrake 10.1 +* Fri Jan 14 2005 D. Scott Barninger +- fix {group_file} variable in post scripts +* Thu Dec 30 2004 D. Scott Barninger +- add distribution checking and custom Distribution tag +* Thu Dec 09 2004 D. Scott Barninger +- ASSIGNMENT OF COPYRIGHT +- FOR VALUE RECEIVED, D. Scott Barninger hereby sells, transfers and +- assigns unto Kern Sibbald, his successors, assigns and personal representatives, +- all right, title and interest in and to the copyright in this software RPM +- spec file. D. Scott Barninger warrants good title to said copyright, that it is +- free of all liens, encumbrances or any known claims against said copyright. +* Sat Dec 04 2004 D. Scott Barninger +- bug 183 fixes +- thanks to Daniel Widyono +- update description for rescue package to describe cdrom creation +* Thu Nov 18 2004 D. Scott Barninger +- update depkgs to 29Oct04 +* Fri Nov 12 2004 D. Scott Barninger +- add cdrom rescue to bacula-rescue package +* Sun Oct 31 2004 D. Scott Barninger +- misc fixes from 1.36.0 suse feedback +- fix situation where sqlite database exists but sqlite has been removed. +* Fri Oct 22 2004 D. Scott Barninger +- remove tray-monitor from RH8 build +- fix permissions on tray-monitor files +* Wed Oct 13 2004 D. Scott Barninger +- add Mandrake support and tray-monitor, misc changes for 1.35.8/1.36.0, +- change database update to 7 to 8 upgrade, +- revert depkgs to 08Mar04 as there seems to be a bug in the sqlite +- build in 30Jul04, add freetype dependancy to gnome package. +* Sun Sep 12 2004 D. Scott Barninger +- add documentation to console for groupadd +* Sat Sep 04 2004 D. Scott Barninger +- add support for running daemons as root.bacula +- correct for change in location of floppy rescue files in 1.35.2 +- removed /etc/bacula/fd script from all packages as it has disappeared from 1.35.2 +- updated depgkgs to 30Jul04 +* Thu Jun 24 2004 D. Scott Barninger +- really, really fix symlink creation for gconsole +* Thu Jun 17 2004 D. Scott Barninger +- fix symlink creation in gconsole post install +* Sat Jun 12 2004 D. Scott Barninger +- fixed error in gconsole post script +* Fri Apr 30 2004 D. Scott Barninger +- add check for gconsole symlink before trying to create it +* Sun Apr 11 2004 D. Scott Barninger +- fix some minor permissions issues on doc files that CVS won't let us fix +* Sun Apr 04 2004 D. Scott Barninger +- add pkgconfig to BuildRequires +- clean up gnome1/2 menu entries for appropriate packages +* Fri Apr 02 2004 D. Scott Barninger +- tightened up doc distribution +* Tue Mar 30 2004 D. Scott Barninger +- added usermode (Redhat) and xsu (SuSE) support for gnome-console; +- rpm's horrible bug that prevents nested conditional macros prevents me +- from implementing these 2 separate approaches within the conditionals which +- create the separate server packages. +- the solution adopted is to remove the gnome-console files from the server packages +- so bacula-gconsole is now an add on for both client and server packages. +- this also now allows the server packages to be install on machines without +- an X-server and we can still maintain a single spec file. +- added tests to make sure we have defined platform and database macros. +* Sat Mar 13 2004 D. Scott Barninger +- corrected mysql prerequisites for suse +* Mon Mar 1 2004 D. Scott Barninger +- replaced all cp commands with cp -p +- removed addition of a+x permissions on gnome-console +- corrected permissions on init scripts +* Sat Feb 28 2004 D. Scott Barninger +- corrected creation of sqlite_bindir in install from !mysql to sqlite +- +- various cleanup patches from Michael K. Johnson: +- corrected post install routines for nicer chkconfig +- removed chmod changes in post routines and moved to install section +- removed interactive nature of post routine for rescue package +- added description of building rescue disks to the description of rescue package +- added clean of build root to beginning of install +- removed specifying attr in all file lists +* Fri Feb 20 2004 D. Scott Barninger +- added bconsole to client package +- added gconsole package as add-on to client +- removed spurious dependancies on updatedb package (!cut/paste) +* Thu Feb 19 2004 D. Scott Barninger +- added updatedb package +* Thu Feb 12 2004 D. Scott Barninger +- added postgresql package +* Wed Feb 11 2004 D. Scott Barninger +- corrected the if else logic in the dependancy sections +- changes for 1.34 release +- /etc/bacula/console is now /etc/bacula/bconsole +- /etc/bacula/console.conf is now /etc/bacula/bconsole.conf +- /usr/sbin/btraceback.gdb is now /etc/bacula/btraceback.gdb +- /usr/sbin/smtp is now /usr/sbin/bsmtp +- added new /etc/bacula/drop_mysql_database +- added new /etc/bacula/drop_sqlite_database +- added new /etc/bacula/grant_sqlite_privileges +- added new generic bacula database scripts in /etc/bacula +- added pre-install sections to check for database versions older than 6 +- added check for /etc/bacula/console.conf and copy to bconsole.conf +* Sun Feb 08 2004 D. Scott Barninger +- added /etc/bacula/update_sqlite_tables and /etc/bacula/update_mysql_tables for 1.34 release +- added testing for existing databases before executing any of the database creation scripts +- added defines working_dir and sqlite_bindir in place of hard coded paths +* Sat Jan 31 2004 D. Scott Barninger +- added build configuration for SuSE. +- Thanks to Matt Vollmar for his input +* Sat Jan 24 2004 D. Scott Barninger +- added patch for create_sqlite_database to fix the installed bindir +- added execute of create_sqlite_database to post of sqlite package +* Sat Jan 10 2004 D. Scott Barninger +- added virtual package Provides bacula-dir, bacula-sd, bacula-fd +- added bacula-fd as Requires for rescue package +- added build tag for Fedora Core 1 +- cleaned up dependancies for all builds +* Thu Jan 1 2004 D. Scott Barninger +- removed rh_version from package names +- added platform build configuration section to beginning of file +* Tue Nov 25 2003 D. Scott Barninger +- removed make_static_bacula script from rescue package install +* Sun Nov 23 2003 D. Scott Barninger +- Added define at top of file for depkgs version +- Added rescue sub-package +- Moved requires statements into proper sub-package locations +* Mon Oct 27 2003 D. Scott Barninger +- Corrected Requires for Gnome 1.4/2.0 builds +* Fri Oct 24 2003 D. Scott Barninger +- Added separate source declaration for depkgs +- added patch for make_catalog_backup script +* Mon May 11 2003 D. Scott Barninger +- Misc changes to mysql/sqlite build and rh7/8 menu differences +- Added rh_version to sub-package names +- Added installed but missing file /etc/bacula/gconsole +- rm'd /etc/bacula/grant_mysql_privileges on sqlite builds +* Thu May 08 2003 Kern Sibbald +- Update spec for version 1.31 and combine client +* Sun Mar 30 2003 D. Scott Barninger +- Initial spec file diff --git a/Branch-2.2/bacula/platforms/slackware/Makefile.in b/Branch-2.2/bacula/platforms/slackware/Makefile.in new file mode 100644 index 0000000000..590bfe75aa --- /dev/null +++ b/Branch-2.2/bacula/platforms/slackware/Makefile.in @@ -0,0 +1,64 @@ +# +# This file is used as the template to create the +# Makefile for the Slackware specific installation. +# +# 22 January 2003 -- Kern Sibbald +# and corrected for Gentoo by +# Patrick Naubert 25 Jan 2003 +# and reworked for Slackware by +# Matt Howard 09 Mar 2004 +# further reworked for Slackware without Perl dependency by +# Phil Stracchino 13 Mar 2004 +# +# for Bacula release @VERSION@ (@DATE@) -- @DISTNAME@ +# + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ + +nothing: + +install: install-autostart + +install-autostart: install-autostart-fd install-autostart-sd install-autostart-dir + +install-autostart-fd: install-autostart-rc + @$(INSTALL) -m 744 rc.bacula-fd $(DESTDIR)/etc/rc.d/rc.bacula-fd + +install-autostart-sd: install-autostart-rc + @$(INSTALL) -m 744 rc.bacula-sd $(DESTDIR)/etc/rc.d/rc.bacula-sd + +install-autostart-dir: install-autostart-rc + @$(INSTALL) -m 744 rc.bacula-dir $(DESTDIR)/etc/rc.d/rc.bacula-dir + +install-autostart-rc: + @$(INSTALL) -m 744 functions.bacula $(DESTDIR)/etc/rc.d + sh ./local-install.sh install $(DESTDIR) + + +uninstall: uninstall-autostart + +uninstall-autostart: uninstall-autostart-fd uninstall-autostart-sd uninstall-autostart-dir + +uninstall-autostart-fd: uninstall-autostart-rc + @rm -f $(DESTDIR)/etc/rc.d/rc.bacula-fd + +uninstall-autostart-sd: uninstall-autostart-rc + @rm -f $(DESTDIR)/etc/rc.d/rc.bacula-sd + +uninstall-autostart-dir: uninstall-autostart-rc + @rm -f $(DESTDIR)/etc/rc.d/rc.bacula-dir + +uninstall-autostart-rc: + @rm -f $(DESTDIR)/etc/rc.d/functions.bacula + sh ./local-install.sh remove $(DESTDIR) + + +clean: + @rm -f rc.bacula-sd rc.bacula-fd rc.bacula-dir + +distclean: clean + @rm -f Makefile + +devclean: clean + @rm -f Makefile diff --git a/Branch-2.2/bacula/platforms/slackware/functions.bacula.in b/Branch-2.2/bacula/platforms/slackware/functions.bacula.in new file mode 100644 index 0000000000..11fe45f9f1 --- /dev/null +++ b/Branch-2.2/bacula/platforms/slackware/functions.bacula.in @@ -0,0 +1,189 @@ +#! /bin/sh +# +# bacula This shell script takes care of starting and stopping +# the bacula daemons. +# +# This is pretty much watered down version of the RedHat script +# that works on Solaris as well as Linux, but it won't work everywhere. +# +# description: It comes by night and sucks the vital essence from your computers. +# + +PSCMD="@PSCMD@" + +# All these are not *really* needed but it makes it +# easier to "steal" this code for the development +# environment where they are different. +# +BACFDBIN=@sbindir@ +BACFDCFG=@sysconfdir@ +BACSDBIN=@sbindir@ +BACSDCFG=@sysconfdir@ +BACDIRBIN=@sbindir@ +BACDIRCFG=@sysconfdir@ +PIDDIR=@piddir@ +SUBSYSDIR=@subsysdir@ + +DIR_PORT=@dir_port@ +FD_PORT=@fd_port@ +SD_PORT=@sd_port@ + +DIR_USER=@dir_user@ +DIR_GROUP=@dir_group@ +FD_USER=@fd_user@ +FD_GROUP=@fd_group@ +SD_USER=@sd_user@ +SD_GROUP=@sd_group@ + +# A function to stop a program. +killproc() { + RC=0 + # Test syntax. + if [ $# = 0 ]; then + echo "Usage: killproc {program} [signal]" + return 1 + fi + + notset=0 + # check for third arg to be kill level + if [ "$3" != "" ] ; then + killlevel=$3 + else + notset=1 + killlevel="-9" + fi + + # Get base program name + base=`basename $1` + + # Find pid. + pid=`pidofproc $base $2` + + # Kill it. + if [ "$pid" != "" ] ; then + if [ "$notset" = "1" ] ; then + if ps -p $pid>/dev/null 2>&1; then + # TERM first, then KILL if not dead + kill -TERM $pid 2>/dev/null + sleep 1 + if ps -p $pid >/dev/null 2>&1 ; then + sleep 1 + if ps -p $pid >/dev/null 2>&1 ; then + sleep 3 + if ps -p $pid >/dev/null 2>&1 ; then + kill -KILL $pid 2>/dev/null + fi + fi + fi + fi + ps -p $pid >/dev/null 2>&1 + RC=$? + [ $RC -eq 0 ] && failure "$base shutdown" || success "$base shutdown" + # RC=$((! $RC)) + # use specified level only + else + if ps -p $pid >/dev/null 2>&1; then + kill $killlevel $pid 2>/dev/null + RC=$? + [ $RC -eq 0 ] && success "$base $killlevel" || failure "$base $killlevel" + fi + fi + else + failure "$base shutdown" + fi + # Remove pid file if any. + if [ "$notset" = "1" ]; then + rm -f ${PIDDIR}/$base.$2.pid + fi + return $RC +} + +# A function to find the pid of a program. +pidofproc() { + pid="" + # Test syntax. + if [ $# = 0 ] ; then + echo "Usage: pidofproc {program}" + return 1 + fi + + # Get base program name + base=`basename $1` + + # First try PID file + if [ -f ${PIDDIR}/$base.$2.pid ] ; then + pid=`head -1 ${PIDDIR}/$base.$2.pid` + if [ "$pid" != "" ] ; then + echo $pid + return 0 + fi + fi + + # Next try "pidof" + if [ -x /sbin/pidof ] ; then + pid=`/sbin/pidof $1` + fi + if [ "$pid" != "" ] ; then + echo $pid + return 0 + fi + + # Finally try to extract it from ps + ${PSCMD} | grep $1 | awk '{ print $1 }' | tr '\n' ' ' + return 0 +} + +status() { + # Test syntax. + if [ $# = 0 ] ; then + echo "Usage: status {program}" + return 1 + fi + + # Get base program name + base=`basename $1` + + # First try "pidof" + if [ -x /sbin/pidof ] ; then + pid=`/sbin/pidof $1` + fi + if [ "$pid" != "" ] ; then + echo "$base (pid $pid) is running..." + return 0 + else + pid=`${PSCMD} | awk 'BEGIN { prog=ARGV[1]; ARGC=1 } + { if ((prog == $2) || (("(" prog ")") == $2) || + (("[" prog "]") == $2) || + ((prog ":") == $2)) { print $1 ; exit 0 } }' $1` + if [ "$pid" != "" ] ; then + echo "$base (pid $pid) is running..." + return 0 + fi + fi + + # Next try the PID files + if [ -f ${PIDDIR}/$base.$2.pid ] ; then + pid=`head -1 ${PIDDIR}/$base.$2.pid` + if [ "$pid" != "" ] ; then + echo "$base not running, but pid file exists" + return 1 + fi + fi + # See if the subsys lock exists + if [ -f ${SUBSYSDIR}/$base ] ; then + echo "$base not running, but subsys locked" + return 2 + fi + echo "$base is stopped" + return 3 +} + +success() { + return 0 +} + +failure() { + rc=$? + return $rc +} + diff --git a/Branch-2.2/bacula/platforms/slackware/local-install.sh b/Branch-2.2/bacula/platforms/slackware/local-install.sh new file mode 100755 index 0000000000..68a17c1117 --- /dev/null +++ b/Branch-2.2/bacula/platforms/slackware/local-install.sh @@ -0,0 +1,89 @@ +#!/bin/sh +# local-install.sh +# for Bacula on Slackware platform +# Phil Stracchino 13 Mar 2004 +# +# Installs and removes Bacula install section into /etc/rc.d/rc.local +# provided /etc/rc.d/rc.local is writeable. Creates a backup copy of +# /etc/rc.d/rc.local in /etc/rc.d/rc.local.bak if /etc/rc.d is writeable. +# +# Usage: local-install.sh install|remove [destdir] +# +# uncomment for debugging: +#set -x + +if [ -n "$2" ] ; then + TARG=$DESTDIR/etc/rc.d/rc.local +else + TARG=/etc/rc.d/rc.local +fi + +if [ ! -f $TARG ] ; then + echo $TARG does not appear to exist. Bailing out. + exit -1 +fi + +if [ "$1" = "install" ] ; then + echo Installing Bacula autostart into $TARG: + COUNT=`grep -c "Bacula section @@@@" $TARG` + if [ ! "$COUNT" == "0" ] ; then + echo -e "\tBacula autostart section appears to be already installed.\n\tIf you have changed the configuration, make uninstall-autostart\n\tthen make install-autostart again.\n" + else + if [ -w $TARG ] ; then + if [ -w `dirname $TARG` ] ; then + cp -p $TARG $TARG.bak + echo -e "\tBackup copy of $TARG saved in $TARG.bak." + else + echo -e "\tWARNING: Unable to create backup copy of $TARG.\n\tAttempting to continue anyway."; + fi + cat >> $TARG << EOF +# @@@@ Start Bacula section @@@@ +# The line above is needed to automatically remove bacula. + +if [ -x /etc/rc.d/rc.bacula-sd ]; then + /etc/rc.d/rc.bacula-sd start +fi +if [ -x /etc/rc.d/rc.bacula-fd ]; then + /etc/rc.d/rc.bacula-fd start +fi +if [ -x /etc/rc.d/rc.bacula-dir ]; then + /etc/rc.d/rc.bacula-dir start +fi + +# @@@@ End Bacula section @@@@ +EOF + echo -e "\tBacula autostart section has been installed in $TARG.\n"; + else + echo -e "\tERROR! Cannot write to $TARG.\n\tBailing out.\n" + exit -1 + fi + fi +elif [ "$1" = "remove" ] ; then + echo Removing Bacula autostart from $TARG: + COUNT=`grep -c "Bacula section @@@@" $TARG` + if [ ! "$COUNT" == "2" ] ; then + echo -e "\tCould not find Bacula autostart section in $TARG. Bailing out.\n" + exit -1 + else + if [ -w $TARG ] ; then + if [ -w `dirname $TARG` ] ; then + cp -p $TARG $TARG.bak + echo -e "\tBackup copy of $TARG saved in $TARG.bak." + else + echo -e "\tWARNING: Unable to create backup copy of $TARG.\n\tAttempting to continue anyway."; + fi + FIRST=`grep -n "@@@@ Start Bacula section @@@@" $TARG | cut -d: -f1` + LAST=`grep -n "@@@@ End Bacula section @@@@" $TARG | cut -d: -f1` + FIRST=`expr $FIRST - 1` + LAST=`expr $LAST + 1` + head -$FIRST $TARG > ./installtmp + tail +$LAST $TARG >> ./installtmp + cat ./installtmp > $TARG + rm ./installtmp + echo -e "\tBacula autostart section has been removed from $TARG.\n"; + fi + fi +else + echo -e "\tUSAGE: $0 install|remove [destdir]" +fi +exit 0 diff --git a/Branch-2.2/bacula/platforms/slackware/rc.bacula-dir.in b/Branch-2.2/bacula/platforms/slackware/rc.bacula-dir.in new file mode 100644 index 0000000000..dcda59307d --- /dev/null +++ b/Branch-2.2/bacula/platforms/slackware/rc.bacula-dir.in @@ -0,0 +1,53 @@ +#! /bin/sh +# +# bacula This shell script takes care of starting and stopping +# the bacula Director daemon +# +# chkconfig: 2345 92 99 +# description: It comes by night and sucks the vital essence from your computers. +# +# For Bacula release @VERSION@ (@DATE@) -- @DISTNAME@ +# + +# Source function library +. /etc/rc.d/functions.bacula + +case "$1" in + start) + [ -x ${BACDIRBIN}/bacula-dir ] && { + sleep 2 + echo -n "Starting the Director daemon: " + OPTIONS='' + if [ "${DIR_USER}" != '' ]; then + OPTIONS="${OPTIONS} -u ${DIR_USER}" + fi + + if [ "${DIR_GROUP}" != '' ]; then + OPTIONS="${OPTIONS} -g ${DIR_GROUP}" + fi + + ${BACDIRBIN}/bacula-dir $2 ${OPTIONS} -v -c ${BACDIRCFG}/bacula-dir.conf + echo Done. + } + ;; + stop) + [ -x ${BACDIRBIN}/bacula-dir ] && { + echo -n "Stopping the Director daemon: " + killproc ${BACDIRBIN}/bacula-dir ${DIR_PORT} + echo Done. + } + ;; + restart) + $0 stop + sleep 5 + $0 start + ;; + status) + [ -x ${BACDIRBIN}/bacula-dir ] && status ${BACDIRBIN}/bacula-dir ${DIR_PORT} + ;; + *) + echo "Usage: $0 {start|stop|restart|status}" + exit 1 + ;; +esac +exit 0 diff --git a/Branch-2.2/bacula/platforms/slackware/rc.bacula-fd.in b/Branch-2.2/bacula/platforms/slackware/rc.bacula-fd.in new file mode 100644 index 0000000000..338b2cc4d1 --- /dev/null +++ b/Branch-2.2/bacula/platforms/slackware/rc.bacula-fd.in @@ -0,0 +1,54 @@ +#! /bin/sh +# +# bacula This shell script takes care of starting and stopping +# the bacula File daemon. +# +# chkconfig: 2345 91 99 +# description: It comes by night and sucks the vital essence from your computers. +# +# For Bacula release @VERSION@ (@DATE@) -- @DISTNAME@ +# + +# Source function library +. /etc/rc.d/functions.bacula + +case "$1" in + start) + [ -x ${BACFDBIN}/bacula-fd ] && { + sleep 2 + echo -n "Starting the File daemon: " + OPTIONS='' + if [ "${FD_USER}" != '' ]; then + OPTIONS="${OPTIONS} -u ${FD_USER}" + fi + + if [ "${FD_GROUP}" != '' ]; then + OPTIONS="${OPTIONS} -g ${FD_GROUP}" + fi + + ${BACFDBIN}/bacula-fd $2 ${OPTIONS} -v -c ${BACFDCFG}/bacula-fd.conf + echo Done. + } + ;; + stop) + [ -x ${BACFDBIN}/bacula-fd ] && { + echo -n "Stopping the File daemon: " + killproc ${BACFDBIN}/bacula-fd ${FD_PORT} + echo Done. + } + ;; + restart) + $0 stop + sleep 5 + $0 start + ;; + status) + [ -x ${BACFDBIN}/bacula-fd ] && status ${BACFDBIN}/bacula-fd ${FD_PORT} + ;; + *) + echo "Usage: $0 {start|stop|restart|status}" + exit 1 + ;; +esac +exit 0 + diff --git a/Branch-2.2/bacula/platforms/slackware/rc.bacula-sd.in b/Branch-2.2/bacula/platforms/slackware/rc.bacula-sd.in new file mode 100644 index 0000000000..5dbc707eec --- /dev/null +++ b/Branch-2.2/bacula/platforms/slackware/rc.bacula-sd.in @@ -0,0 +1,55 @@ +#! /bin/sh +# +# bacula This shell script takes care of starting and stopping +# the bacula Storage daemon. +# +# chkconfig: 2345 90 99 +# description: It comes by night and sucks the vital essence from your computers. +# +# For Bacula release @VERSION@ (@DATE@) -- @DISTNAME@ +# + +# Source function library +. /etc/rc.d/functions.bacula + +case "$1" in + start) + [ -x ${BACSDBIN}/bacula-sd ] && { + sleep 2 + echo -n "Starting the Storage daemon: " + OPTIONS='' + if [ "${SD_USER}" != '' ]; then + OPTIONS="${OPTIONS} -u ${SD_USER}" + fi + + if [ "${SD_GROUP}" != '' ]; then + OPTIONS="${OPTIONS} -g ${SD_GROUP}" + fi + + ${BACSDBIN}/bacula-sd $2 ${OPTIONS} -v -c ${BACSDCFG}/bacula-sd.conf + echo Done. + } + ;; + stop) + [ -x ${BACSDBIN}/bacula-sd ] && { + echo -n "Stopping the Storage daemon: " + killproc ${BACSDBIN}/bacula-sd ${SD_PORT} + echo Done. + } + ;; + restart) + $0 stop + sleep 5 + $0 start + ;; + status) + [ -x ${BACSDBIN}/bacula-sd ] && status ${BACSDBIN}/bacula-sd ${SD_PORT} + ;; + *) + echo "Usage: $0 {start|stop|restart|status}" + exit 1 + ;; +esac +exit 0 + + diff --git a/Branch-2.2/bacula/platforms/solaris/Makefile.in b/Branch-2.2/bacula/platforms/solaris/Makefile.in new file mode 100644 index 0000000000..fadccf357d --- /dev/null +++ b/Branch-2.2/bacula/platforms/solaris/Makefile.in @@ -0,0 +1,86 @@ +# +# This file is used as the template to create the +# Makefile for the Solaris specific installation. +# +# 15 November 2001 -- Kern Sibbald +# +# 03 November 2003 corrections to the paths made by +# Kenneth ragnor at virtualsd dot net +# +# for Bacula release @VERSION@ (@DATE@) -- @DISTNAME@ +# + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ + +nothing: + +install: install-autostart + +install-autostart: install-autostart-fd install-autostart-sd install-autostart-dir + + +install-autostart-fd: + @rm -f /etc/rc0.d/K20bacula-fd + @rm -f /etc/rc1.d/S99bacula-fd + @rm -f /etc/rc2.d/S99bacula-fd + @$(INSTALL_PROGRAM) -m 744 bacula-fd /etc/init.d/bacula-fd + # set symlinks for script at startup and shutdown + @ln -f -s /etc/init.d/bacula-fd /etc/rc0.d/K20bacula-fd + @ln -f -s /etc/init.d/bacula-fd /etc/rc1.d/S99bacula-fd + @ln -f -s /etc/init.d/bacula-fd /etc/rc2.d/S99bacula-fd + + +install-autostart-sd: + @rm -f /etc/rc0.d/K20bacula-sd + @rm -f /etc/rc1.d/S99bacula-sd + @rm -f /etc/rc2.d/S99bacula-sd + @$(INSTALL_PROGRAM) -m 744 bacula-sd /etc/init.d/bacula-sd + # set symlinks for script at startup and shutdown + @ln -f -s /etc/init.d/bacula-sd /etc/rc0.d/K20bacula-sd + @ln -f -s /etc/init.d/bacula-sd /etc/rc1.d/S99bacula-sd + @ln -f -s /etc/init.d/bacula-sd /etc/rc2.d/S99bacula-sd + + +install-autostart-dir: + @rm -f /etc/rc0.d/K20bacula-dir + @rm -f /etc/rc1.d/S99bacula-dir + @rm -f /etc/rc2.d/S99bacula-dir + @$(INSTALL_PROGRAM) -m 744 bacula-dir /etc/init.d/bacula-dir + # set symlinks for script at startup and shutdown + @ln -f -s /etc/init.d/bacula-dir /etc/rc0.d/K20bacula-dir + @ln -f -s /etc/init.d/bacula-dir /etc/rc1.d/S99bacula-dir + @ln -f -s /etc/init.d/bacula-dir /etc/rc2.d/S99bacula-dir + + +uninstall: uninstall-autostart + +uninstall-autostart: uninstall-autostart-fd uninstall-autostart-sd uninstall-autostart-dir + +uninstall-autostart-fd: + @rm -f /etc/rc0.d/K20bacula-fd + @rm -f /etc/rc1.d/S99bacula-fd + @rm -f /etc/rc2.d/S99bacula-fd + @rm -f /etc/init.d/bacula-fd + + +uninstall-autostart-sd: + @rm -f /etc/rc0.d/K20bacula-sd + @rm -f /etc/rc1.d/S99bacula-sd + @rm -f /etc/rc2.d/S99bacula-sd + @rm -f /etc/init.d/bacula-sd + +uninstall-autostart-dir: + @rm -f /etc/rc0.d/K20bacula-dir + @rm -f /etc/rc1.d/S99bacula-dir + @rm -f /etc/rc2.d/S99bacula-dir + @rm -f /etc/init.d/bacula-dir + +clean: + @rm -f bacula-sd bacula-fd bacula-dir + +distclean: clean + @rm -f Makefile bacula-*.spec + +devclean: clean + @rm -f Makefile bacula-*.spec diff --git a/Branch-2.2/bacula/platforms/solaris/bacula-dir.in b/Branch-2.2/bacula/platforms/solaris/bacula-dir.in new file mode 100755 index 0000000000..0346dafcc2 --- /dev/null +++ b/Branch-2.2/bacula/platforms/solaris/bacula-dir.in @@ -0,0 +1,38 @@ +#! /bin/sh +# +# bacula This shell script takes care of starting and stopping +# the bacula Director daemon +# +# chkconfig: 2345 92 9 +# description: It comes by night and sucks the vital essence from your computers. +# +# For Bacula release @VERSION@ (@DATE@) -- @DISTNAME@ +# + +RETVAL=0 +case "$1" in + start) + echo "Starting the Bacula Director: " + @sbindir@/bacula-dir $2 -c @sysconfdir@/bacula-dir.conf + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && touch @subsysdir@/bacula-dir + ;; + stop) + echo "Stopping the Director daemon: " + pkill -x bacula-dir + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && rm -f @subsysdir@/bacula-dir + ;; + restart) + $0 stop + sleep 5 + $0 start + ;; + *) + echo "Usage: $0 {start|stop|restart}" + exit 1 + ;; +esac +exit 0 diff --git a/Branch-2.2/bacula/platforms/solaris/bacula-fd.in b/Branch-2.2/bacula/platforms/solaris/bacula-fd.in new file mode 100755 index 0000000000..31dbbad476 --- /dev/null +++ b/Branch-2.2/bacula/platforms/solaris/bacula-fd.in @@ -0,0 +1,37 @@ +#! /bin/sh +# +# bacula This shell script takes care of starting and stopping +# the bacula File daemon. +# +# chkconfig: 2345 91 9 +# description: It comes by night and sucks the vital essence from your computers. +# +# For Bacula release @VERSION@ (@DATE@) -- @DISTNAME@ +# + +case "$1" in + start) + echo "Starting the Bacula File daemon: " + @sbindir@/bacula-fd $2 -c @sysconfdir@/bacula-fd.conf + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && touch @subsysdir@/bacula-fd + ;; + stop) + echo "Stopping the Bacula File daemon: " + pkill -x bacula-fd + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && rm -f @subsysdir@/bacula-fd + ;; + restart) + $0 stop + sleep 5 + $0 start + ;; + *) + echo "Usage: $0 {start|stop|restart}" + exit 1 + ;; +esac +exit 0 diff --git a/Branch-2.2/bacula/platforms/solaris/bacula-sd.in b/Branch-2.2/bacula/platforms/solaris/bacula-sd.in new file mode 100755 index 0000000000..37230ff971 --- /dev/null +++ b/Branch-2.2/bacula/platforms/solaris/bacula-sd.in @@ -0,0 +1,37 @@ +#! /bin/sh +# +# bacula This shell script takes care of starting and stopping +# the bacula Storage daemon. +# +# chkconfig: 2345 90 9 +# description: It comes by night and sucks the vital essence from your computers. +# +# For Bacula release @VERSION@ (@DATE@) -- @DISTNAME@ +# + +case "$1" in + start) + echo "Starting the Bacula Storage daemon: " + @sbindir@/bacula-sd $2 -c @sysconfdir@/bacula-sd.conf + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && touch @subsysdir@/bacula-sd + ;; + stop) + echo "Stopping the Bacula Storage daemon: " + pkill -x bacula-sd + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && rm -f @subsysdir@/bacula-sd + ;; + restart) + $0 stop + sleep 5 + $0 start + ;; + *) + echo "Usage: $0 {start|stop|restart}" + exit 1 + ;; +esac +exit 0 diff --git a/Branch-2.2/bacula/platforms/suse/Makefile.in b/Branch-2.2/bacula/platforms/suse/Makefile.in new file mode 100644 index 0000000000..f4bbc6738a --- /dev/null +++ b/Branch-2.2/bacula/platforms/suse/Makefile.in @@ -0,0 +1,84 @@ +# +# This file is used as the template to create the +# Makefile for the SuSe specific installation. +# +# +# for Bacula release @VERSION@ (@DATE@) -- @DISTNAME@ +# + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ + +nothing: + +install: install-autostart + +install-autostart: install-autostart-fd install-autostart-sd install-autostart-dir + + +install-autostart-fd: + @if test x$(DESTDIR) = x -a -f /etc/init.d/bacula-fd; then \ + /sbin/chkconfig --del bacula-fd; \ + fi + @$(INSTALL_PROGRAM) -m 744 bacula-fd $(DESTDIR)/etc/init.d/bacula-fd + # set symlinks for script at startup and shutdown + @if test x$(DESTDIR) = x ; then \ + /sbin/chkconfig --add bacula-fd; \ + fi + + +install-autostart-sd: + @if test x$(DESTDIR) = x -a -f /etc/init.d/bacula-sd; then \ + /sbin/chkconfig --del bacula-sd; \ + fi + @$(INSTALL_PROGRAM) -m 744 bacula-sd $(DESTDIR)/etc/init.d/bacula-sd + # set symlinks for script at startup and shutdown + @if test x$(DESTDIR) = x ; then \ + /sbin/chkconfig --add bacula-sd; \ + fi + + +install-autostart-dir: + @if test x$(DESTDIR) = x -a -f /etc/init.d/bacula-dir; then \ + /sbin/chkconfig --del bacula-dir; \ + fi + @$(INSTALL_PROGRAM) -m 744 bacula-dir $(DESTDIR)/etc/init.d/bacula-dir + # set symlinks for script at startup and shutdown + @if test x$(DESTDIR) = x ; then \ + /sbin/chkconfig --add bacula-dir; \ + fi + + +uninstall: uninstall-autostart + +uninstall-autostart: uninstall-autostart-fd uninstall-autostart-sd uninstall-autostart-dir + +uninstall-autostart-fd: + @if test x$(DESTDIR) = x -a -f /etc/init.d/bacula-fd; then \ + /sbin/chkconfig --del bacula-fd; \ + fi + @rm -f $(DESTDIR)/etc/init.d/bacula-fd + + +uninstall-autostart-sd: + @if test x$(DESTDIR) = x -a -f /etc/init.d/bacula-sd; then \ + /sbin/chkconfig --del bacula-sd; \ + fi + @rm -f $(DESTDIR)/etc/init.d/bacula-sd + +uninstall-autostart-dir: + @if test x$(DESTDIR) = x -a -f /etc/init.d/bacula-dir; then \ + /sbin/chkconfig --del bacula-dir; \ + fi + @rm -f $(DESTDIR)/etc/init.d/bacula-dir + +clean: + @rm -f 1 2 3 + +distclean: clean + @rm -f Makefile bacula-*.spec bacula.*.spec bacula.spec + @rm -f bacula-sd bacula-fd bacula-dir + +devclean: clean + @rm -f Makefile bacula-*.spec bacula.*.spec bacula.spec + @rm -f bacula-sd bacula-fd bacula-dir diff --git a/Branch-2.2/bacula/platforms/suse/bacula-dir-suse-sqlite.patch b/Branch-2.2/bacula/platforms/suse/bacula-dir-suse-sqlite.patch new file mode 100644 index 0000000000..8f5ce1f1cb --- /dev/null +++ b/Branch-2.2/bacula/platforms/suse/bacula-dir-suse-sqlite.patch @@ -0,0 +1,13 @@ +--- ../../../bacula-2.1.10/platforms/suse/bacula-dir.in 2007-03-30 17:46:04.000000000 -0400 ++++ bacula-dir.in 2007-05-19 12:42:30.000000000 -0400 +@@ -13,8 +13,8 @@ + # + ### BEGIN INIT INFO + # Provides: bacula-dir +-# Required-Start: $local_fs $network @DB_TYPE@ +-# Required-Stop: $local_fs $network @DB_TYPE@ ++# Required-Start: $local_fs $network ++# Required-Stop: $local_fs $network + # Default-Start: 3 5 + # Default-Stop: 0 1 2 6 + # Short-Description: bacula director diff --git a/Branch-2.2/bacula/platforms/suse/bacula-dir.in b/Branch-2.2/bacula/platforms/suse/bacula-dir.in new file mode 100755 index 0000000000..b583d043bd --- /dev/null +++ b/Branch-2.2/bacula/platforms/suse/bacula-dir.in @@ -0,0 +1,60 @@ +#! /bin/sh +# +# bacula This shell script takes care of starting and stopping +# the bacula Director daemon +# +# chkconfig: 2345 90 9 +# description: It comes by night and sucks the vital essence from your computers. +# +# For Bacula release @VERSION@ (@DATE@) -- @DISTNAME@ +# Modified to work on SuSE 1/31/2004 D. Scott Barninger +# Added rc.status functions 3/13/2004 D. Scott Barninger +# Added LSB init info 10/14/2004 D. Scott Barninger +# +### BEGIN INIT INFO +# Provides: bacula-dir +# Required-Start: $local_fs $network @DB_TYPE@ +# Required-Stop: $local_fs $network @DB_TYPE@ +# Default-Start: 3 5 +# Default-Stop: 0 1 2 6 +# Short-Description: bacula director +# Description: Bacula network backup system director daemon +### END INIT INFO + +# source process status functions +# this gives us funtion rc_status -v to tell us if we succeed or fail +. /etc/rc.status + +RETVAL=0 +case "$1" in + start) + echo -n "Starting the Bacula Director: " + /sbin/startproc @sbindir@/bacula-dir $2 -c @sysconfdir@/bacula-dir.conf + RETVAL=$? + rc_status -v + echo + [ $RETVAL -eq 0 ] && touch @subsysdir@/bacula-dir + ;; + stop) + echo -n "Stopping the Director daemon: " + /sbin/killproc @sbindir@/bacula-dir + RETVAL=$? + rc_status -v + echo + [ $RETVAL -eq 0 ] && rm -f @subsysdir@/bacula-dir + ;; + restart) + $0 stop + sleep 5 + $0 start + ;; + status) + /sbin/checkproc @sbindir@/bacula-dir + rc_status -v + ;; + *) + echo "Usage: $0 {start|stop|restart|status}" + exit 1 + ;; +esac +exit 0 diff --git a/Branch-2.2/bacula/platforms/suse/bacula-fd.in b/Branch-2.2/bacula/platforms/suse/bacula-fd.in new file mode 100755 index 0000000000..547acd20bc --- /dev/null +++ b/Branch-2.2/bacula/platforms/suse/bacula-fd.in @@ -0,0 +1,59 @@ +#! /bin/sh +# +# bacula This shell script takes care of starting and stopping +# the bacula File daemon. +# +# chkconfig: 2345 90 9 +# description: It comes by night and sucks the vital essence from your computers. +# +# For Bacula release @VERSION@ (@DATE@) -- @DISTNAME@ +# Modified to work on SuSE 1/31/2004 D. Scott Barninger +# Added rc.status functions 3/13/2004 D. Scott Barninger +# Added LSB init info 10/14/2004 D. Scott Barninger +# +### BEGIN INIT INFO +# Provides: bacula-fd +# Required-Start: $local_fs $network +# Required-Stop: $local_fs $network +# Default-Start: 3 5 +# Default-Stop: 0 1 2 6 +# Short-Description: bacula file daemon +# Description: Bacula network backup system file daemon +### END INIT INFO + +# source process status functions +# this gives us funtion rc_status -v to tell us if we succeed or fail +. /etc/rc.status + +case "$1" in + start) + echo -n "Starting the Bacula File daemon: " + /sbin/startproc @sbindir@/bacula-fd $2 -c @sysconfdir@/bacula-fd.conf + RETVAL=$? + rc_status -v + echo + [ $RETVAL -eq 0 ] && touch @subsysdir@/bacula-fd + ;; + stop) + echo -n "Stopping the Bacula File daemon: " + /sbin/killproc @sbindir@/bacula-fd + RETVAL=$? + rc_status -v + echo + [ $RETVAL -eq 0 ] && rm -f @subsysdir@/bacula-fd + ;; + restart) + $0 stop + sleep 5 + $0 start + ;; + status) + /sbin/checkproc @sbindir@/bacula-fd + rc_status -v + ;; + *) + echo "Usage: $0 {start|stop|restart|status}" + exit 1 + ;; +esac +exit 0 diff --git a/Branch-2.2/bacula/platforms/suse/bacula-sd.in b/Branch-2.2/bacula/platforms/suse/bacula-sd.in new file mode 100755 index 0000000000..a6093db23b --- /dev/null +++ b/Branch-2.2/bacula/platforms/suse/bacula-sd.in @@ -0,0 +1,59 @@ +#! /bin/sh +# +# bacula This shell script takes care of starting and stopping +# the bacula Storage daemon. +# +# chkconfig: 2345 90 9 +# description: It comes by night and sucks the vital essence from your computers. +# +# For Bacula release @VERSION@ (@DATE@) -- @DISTNAME@ +# Modified to work on SuSE 1/31/2004 D. Scott Barninger +# Added rc.status functions 3/13/2004 D. Scott Barninger +# Added LSB init info 10/14/2004 D. Scott Barninger +# +### BEGIN INIT INFO +# Provides: bacula-sd +# Required-Start: $local_fs $network +# Required-Stop: $local_fs $network +# Default-Start: 3 5 +# Default-Stop: 0 1 2 6 +# Short-Description: bacula storage daemon +# Description: Bacula network backup system storage daemon +### END INIT INFO + +# source process status functions +# this gives us funtion rc_status -v to tell us if we succeed or fail +. /etc/rc.status + +case "$1" in + start) + echo -n "Starting the Bacula Storage daemon: " + /sbin/startproc @sbindir@/bacula-sd $2 -c @sysconfdir@/bacula-sd.conf + RETVAL=$? + rc_status -v + echo + [ $RETVAL -eq 0 ] && touch @subsysdir@/bacula-sd + ;; + stop) + echo -n "Stopping the Bacula Storage daemon: " + /sbin/killproc @sbindir@/bacula-sd + RETVAL=$? + rc_status -v + echo + [ $RETVAL -eq 0 ] && rm -f @subsysdir@/bacula-sd + ;; + restart) + $0 stop + sleep 5 + $0 start + ;; + status) + /sbin/checkproc @sbindir@/bacula-sd + rc_status -v + ;; + *) + echo "Usage: $0 {start|stop|restart|status}" + exit 1 + ;; +esac +exit 0 diff --git a/Branch-2.2/bacula/platforms/suse/bacula.in b/Branch-2.2/bacula/platforms/suse/bacula.in new file mode 100644 index 0000000000..e8d344dc9b --- /dev/null +++ b/Branch-2.2/bacula/platforms/suse/bacula.in @@ -0,0 +1,213 @@ +#! /bin/sh +# +# bacula This shell script takes care of starting and stopping +# the bacula daemons. +# +# This is pretty much watered down version of the RedHat script +# that works on Solaris as well as Linux, but it won't work everywhere. +# +# Submitted by Volker Sauer 21Feb04 +# Tweaked a bit by Kern to convert it to a .in file +# +# description: It comes by night and sucks the vital essence from your computers. +# +### BEGIN INIT INFO +# Provides: bacula +# Required-Start: network mysql +# Required-Stop: +# Default-Start: 3 5 +# Default-Stop: +# Description: run bacula daemon(s) +### END INIT INFO + +PSCMD="@PSCMD@" +PIDDIR=@piddir@ +SUBSYSDIR=@subsysdir@ + +# A function to stop a program. +killproc() { + RC=0 + # Test syntax. + if [ $# = 0 ]; then + echo "Usage: killproc {program} [signal]" + return 1 + fi + + notset=0 + # check for third arg to be kill level + if [ "$3" != "" ] ; then + killlevel=$3 + else + notset=1 + killlevel="-9" + fi + + # Get base program name + base=`basename $1` + + # Find pid. + pid=`pidofproc $base $2` + + # Kill it. + if [ "$pid" != "" ] ; then + if [ "$notset" = "1" ] ; then + if ps -p $pid>/dev/null 2>&1; then + # TERM first, then KILL if not dead + kill -TERM $pid 2>/dev/null + sleep 1 + if ps -p $pid >/dev/null 2>&1 ; then + sleep 1 + if ps -p $pid >/dev/null 2>&1 ; then + sleep 3 + if ps -p $pid >/dev/null 2>&1 ; then + kill -KILL $pid 2>/dev/null + fi + fi + fi + fi + ps -p $pid >/dev/null 2>&1 + RC=$? + [ $RC -eq 0 ] && failure "$base shutdown" || success "$base shutdown" + # RC=$((! $RC)) + # use specified level only + else + if ps -p $pid >/dev/null 2>&1; then + kill $killlevel $pid 2>/dev/null + RC=$? + [ $RC -eq 0 ] && success "$base $killlevel" || failure "$base $killlevel" + fi + fi + else + failure "$base shutdown" + fi + # Remove pid file if any. + if [ "$notset" = "1" ]; then + rm -f ${PIDDIR}/$base.$2.pid + fi + return $RC +} + +# A function to find the pid of a program. +pidofproc() { + pid="" + # Test syntax. + if [ $# = 0 ] ; then + echo "Usage: pidofproc {program}" + return 1 + fi + + # Get base program name + base=`basename $1` + + # First try PID file + if [ -f ${PIDDIR}/$base.$2.pid ] ; then + pid=`head -1 ${PIDDIR}/$base.$2.pid` + if [ "$pid" != "" ] ; then + echo $pid + return 0 + fi + fi + + # Next try "pidof" + if [ -x /sbin/pidof ] ; then + pid=`/sbin/pidof $1` + fi + if [ "$pid" != "" ] ; then + echo $pid + return 0 + fi + + # Finally try to extract it from ps + ${PSCMD} | grep $1 | awk '{ print $1 }' | tr '\n' ' ' + return 0 +} + +status() { + # Test syntax. + if [ $# = 0 ] ; then + echo "Usage: status {program}" + return 1 + fi + + # Get base program name + base=`basename $1` + + # First try "pidof" + if [ -x /sbin/pidof ] ; then + pid=`/sbin/pidof $1` + fi + if [ "$pid" != "" ] ; then + echo "$base (pid $pid) is running..." + return 0 + else + pid=`${PSCMD} | awk 'BEGIN { prog=ARGV[1]; ARGC=1 } + { if ((prog == $2) || (("(" prog ")") == $2) || + (("[" prog "]") == $2) || + ((prog ":") == $2)) { print $1 ; exit 0 } }' $1` + if [ "$pid" != "" ] ; then + echo "$base (pid $pid) is running..." + return 0 + fi + fi + + # Next try the PID files + if [ -f ${PIDDIR}/$base.$2.pid ] ; then + pid=`head -1 ${PIDDIR}/$base.$2.pid` + if [ "$pid" != "" ] ; then + echo "$base not running, but pid file exists" + return 1 + fi + fi + # See if the subsys lock exists + if [ -f ${SUBSYSDIR}/$base ] ; then + echo "$base not running, but subsys locked" + return 2 + fi + echo "$base is stopped" + return 3 +} + +success() { + return 0 +} + +failure() { + rc=$? + return $rc +} + +case "$1" in + start) + echo "Starting the Storage daemon" + @sbindir@/bacula-sd $2 -v -c @sysconfdir@//bacula-sd.conf + echo "Starting the File daemon" + @sbindir@/bacula-fd $2 -v -c @sysconfdir@//bacula-fd.conf + sleep 2 + echo "Starting the Director daemon" + @sbindir@/bacula-dir $2 -v -c @sysconfdir@//bacula-dir.conf + ;; + stop) + echo "Stopping the File daemon" + killproc @sbindir@/bacula-fd 9102 + echo "Stopping the Storage daemon" + killproc @sbindir@/bacula-sd 9103 + echo "Stopping the Director daemon" + killproc @sbindir@/bacula-dir 9101 + echo + ;; + restart) + $0 stop + sleep 5 + $0 start + ;; + status) + status @sbindir@/bacula-sd 9103 + status @sbindir@/bacula-fd 9102 + status @sbindir@/bacula-dir 9101 + ;; + *) + echo "Usage: $0 {start|stop|restart|status}" + exit 1 + ;; +esac +exit 0 diff --git a/Branch-2.2/bacula/platforms/suse/bacula.spec.in b/Branch-2.2/bacula/platforms/suse/bacula.spec.in new file mode 100644 index 0000000000..bbfd7b7061 --- /dev/null +++ b/Branch-2.2/bacula/platforms/suse/bacula.spec.in @@ -0,0 +1,2559 @@ +# Bacula RPM spec file +# Copyright (C) 2000-2006 Kern Sibbald + +# Platform Build Configuration + +# basic defines for every build +%define _version @VERSION@ +%define _release 1 +%define depkgs_version 09Sep07 +%define _rescuever @VERSION@ +%define docs_version @VERSION@ + +# any patches for this release +# be sure to check the setup section for patch macros + +#-------------------------------------------------------------------------- +# it should not be necessary to change anything below here for a release +# except for patch macros in the setup section +#-------------------------------------------------------------------------- + +# third party packagers +%define _packager D. Scott Barninger +%{?contrib_packager:%define _packager %{contrib_packager}} + +Summary: Bacula - The Network Backup Solution +Name: bacula +Version: %{_version} +Release: %{_release} +Group: System Environment/Daemons +License: GPL v2 +Source0: http://www.prdownloads.sourceforge.net/bacula/%{name}-%{version}.tar.gz +Source1: http://www.prdownloads.sourceforge.net/bacula/depkgs-%{depkgs_version}.tar.gz +Source2: Release_Notes-%{version}-%{release}.tar.gz +Source3: http://www.prdownloads.sourceforge.net/bacula/%{name}-docs-%{docs_version}.tar.gz +Source4: http://www.prdownloads.sourceforge.net/bacula/%{name}-rescue-%{_rescuever}.tar.gz +Source5: bacula-2.2.7-postgresql.patch +BuildRoot: %{_tmppath}/%{name}-root +URL: http://www.bacula.org/ +Vendor: The Bacula Team +Packager: %{_packager} + +# define the basic package description +%define blurb Bacula - It comes by night and sucks the vital essence from your computers. +%define blurb2 Bacula is a set of computer programs that permit you (or the system +%define blurb3 administrator) to manage backup, recovery, and verification of computer +%define blurb4 data across a network of computers of different kinds. In technical terms, +%define blurb5 it is a network client/server based backup program. Bacula is relatively +%define blurb6 easy to use and efficient, while offering many advanced storage management +%define blurb7 features that make it easy to find and recover lost or damaged files. +%define blurb8 Bacula source code has been released under the GPL version 2 license. + +# directory locations +%define sqlite_bindir /usr/lib/bacula/sqlite +%define _docsrc ../%{name}-docs-%{docs_version} +%define _rescuesrc ../%{name}-rescue-%{_rescuever} +%define depkgs ../depkgs +%define _mandir /usr/share/man + +# directory locations for FHS-compatibility +%define sysconf_dir /etc/bacula +%define script_dir /etc/bacula +%define working_dir /var/lib/bacula +%define pid_dir /var/run + +# NOTE these defines are used in some rather complex useradd and groupadd +# commands. If you change them examine the post scripts for consequences. +%define director_daemon_user bacula +%define storage_daemon_user bacula +%define file_daemon_user root +%define daemon_group bacula +# group that has write access to tape devices, usually disk on Linux +%define storage_daemon_group disk +%define user_file /etc/passwd +%define group_file /etc/group + +# program locations +%define useradd /usr/sbin/useradd +%define groupadd /usr/sbin/groupadd +%define usermod /usr/sbin/usermod + +# platform defines - set one below or define the build_xxx on the command line +# RedHat builds +%define rh7 0 +%{?build_rh7:%define rh7 1} +%define rh8 0 +%{?build_rh8:%define rh8 1} +%define rh9 0 +%{?build_rh9:%define rh9 1} +# Fedora Core build +%define fc1 0 +%{?build_fc1:%define fc1 1} +%define fc3 0 +%{?build_fc3:%define fc3 1} +%define fc4 0 +%{?build_fc4:%define fc4 1} +%define fc5 0 +%{?build_fc5:%define fc5 1} +%define fc6 0 +%{?build_fc6:%define fc6 1} +%define fc7 0 +%{?build_fc7:%define fc7 1} +%define fc8 0 +%{?build_fc8:%define fc8 1} +# Whitebox Enterprise build +%define wb3 0 +%{?build_wb3:%define wb3 1} +# RedHat Enterprise builds +%define rhel3 0 +%{?build_rhel3:%define rhel3 1} +%{?build_rhel3:%define wb3 1} +%define rhel4 0 +%{?build_rhel4:%define rhel4 1} +%{?build_rhel4:%define fc3 1} +%define rhel5 0 +%{?build_rhel5:%define rhel5 1} +%{?build_rhel5:%define fc6 1} +# CentOS build +%define centos3 0 +%{?build_centos3:%define centos3 1} +%{?build_centos3:%define wb3 1} +%define centos4 0 +%{?build_centos4:%define centos4 1} +%{?build_centos4:%define fc3 1} +%define centos5 0 +%{?build_centos5:%define centos5 1} +%{?build_centos5:%define fc6 1} +# SL build +%define sl3 0 +%{?build_sl3:%define sl3 1} +%{?build_sl3:%define wb3 1} +%define sl4 0 +%{?build_sl4:%define sl4 1} +%{?build_sl4:%define fc3 1} +%define sl5 0 +%{?build_sl5:%define sl5 1} +%{?build_sl5:%define fc6 1} +# SuSE build +%define su9 0 +%{?build_su9:%define su9 1} +%define su10 0 +%{?build_su10:%define su10 1} +%define su102 0 +%{?build_su102:%define su102 1} +%define su103 0 +%{?build_su103:%define su103 1} +# Mandrake builds +%define mdk 0 +%{?build_mdk:%define mdk 1} +%define mdv 0 +%{?build_mdv:%define mdv 1} +%{?build_mdv:%define mdk 1} + +# client only build +%define client_only 0 +%{?build_client_only:%define client_only 1} + +# test for a platform definition +%if !%{rh7} && !%{rh8} && !%{rh9} && !%{fc1} && !%{fc3} && !%{fc4} && !%{fc5} && !%{fc6} && !%{fc7} && !%{fc8} && !%{wb3} && !%{su9} && !%{su10} && !%{su102} && !%{su103} && !%{mdk} +%{error: You must specify a platform. Please examine the spec file.} +exit 1 +%endif + +# database defines +# set for database support desired or define the build_xxx on the command line +%define mysql 0 +%{?build_mysql:%define mysql 1} +# if using mysql 4.x define this and mysql above +# currently: Mandrake 10.1, SuSE 9.x & 10.0, RHEL4 and Fedora Core 4 +%define mysql4 0 +%{?build_mysql4:%define mysql4 1} +%{?build_mysql4:%define mysql 1} +# if using mysql 5.x define this and mysql above +# currently: SuSE 10.1 and Fedora Core 5 +%define mysql5 0 +%{?build_mysql5:%define mysql5 1} +%{?build_mysql5:%define mysql 1} +%define sqlite 0 +%{?build_sqlite:%define sqlite 1} +%define postgresql 0 +%{?build_postgresql:%define postgresql 1} + +# test for a database definition +%if ! %{mysql} && ! %{sqlite} && ! %{postgresql} && ! %{client_only} +%{error: You must specify database support. Please examine the spec file.} +exit 1 +%endif + +%if %{mysql} +%define db_backend mysql +%endif +%if %{sqlite} +%define db_backend sqlite3 +%endif +%if %{postgresql} +%define db_backend postgresql +%endif + +# 64 bit support +%define x86_64 0 +%{?build_x86_64:%define x86_64 1} + +# check what distribution we are +%if %{rh7} || %{rh8} || %{rh9} || %{rhel3} || %{rhel4} || %{rhel5} +%define _dist %(grep Red /etc/redhat-release) +%endif +%if %{fc1} || %{fc4} || %{fc5} || %{fc7} || %{fc8} +%define _dist %(grep Fedora /etc/redhat-release) +%endif +%if %{centos5} || %{centos4} || %{centos3} +%define _dist %(grep CentOS /etc/redhat-release) +%endif +%if %{sl5} ||%{sl4} || %{sl3} +%define _dist %(grep 'Scientific Linux' /etc/redhat-release) +%endif +%if %{fc3} && ! %{rhel4} && ! %{centos4} && ! %{sl4} +%define _dist %(grep Fedora /etc/redhat-release) +%endif +%if %{fc6} && ! %{rhel5} && ! %{centos5} && ! %{sl5} +%define _dist %(grep Fedora /etc/redhat-release) +%endif +%if %{wb3} && ! %{rhel3} && ! %{centos3} && ! %{sl3} +%define _dist %(grep White /etc/whitebox-release) +%endif +%if %{su9} || %{su10} || %{su102} || %{su103} +%define _dist %(grep -i SuSE /etc/SuSE-release) +%endif +%if %{mdk} +%define _dist %(grep Mand /etc/mandrake-release) +%endif +Distribution: %{_dist} + +# Should we build gconsole, possible only if gtk= >= 2.4 available. +# leaving all the BuildRequires and Requires in place below for now. +# su10, fc3 and fc4 now nobuild, tray monitor fails to build as of 2.2.1 +# release as it needs 2.10 + +%define gconsole 1 +%if %{rh7} || %{rh8} || %{rh9} || %{wb3} || %{fc1} || %{fc3} || %{fc4} || %{su9} || %{su10} +%define gconsole 0 +%endif +%if %{mdk} && ! %{mdv} +%define gconsole 0 +%endif + +# specifically disallow gconsole if desired +%{?nobuild_gconsole:%define gconsole 0} + +# Should we build wxconsole, only wxWidgets >=2.6 is supported +# SuSE 10 and FC4 and newer +%define wxconsole 0 +%{?build_wxconsole:%define wxconsole 1} + +# Should we build bat +# requires >= Qt-4.2 +%define bat 0 +%{?build_bat:%define bat 1} + +# should we turn on python support +%define python 0 +%{?build_python:%define python 1} + +# specifically disallow build of mtx package if desired +%define mtx 1 +%{?nobuild_mtx:%define mtx 0} + +# do we need to patch for old postgresql version? +%define old_pgsql 0 +%{?build_old_pgsql:%define old_pgsql 1} + +# Mandriva somehow forces the manpage file extension to bz2 rather than gz +%if %{mdk} +%define manpage_ext bz2 +%else +%define manpage_ext gz +%endif + +# for client only build +%if %{client_only} +%define mysql 0 +%define mysql4 0 +%define mysql5 0 +%define postgresql 0 +%define sqlite 0 +%define gconsole 0 +%define wxconsole 0 +%endif + +%{expand: %%define gccver %(rpm -q --queryformat %%{version} gcc)} +%{expand: %%define gccrel %(rpm -q --queryformat %%{release} gcc)} + +BuildRequires: gcc, gcc-c++, make, autoconf +BuildRequires: ncurses-devel, perl +BuildRequires: libstdc++-devel = %{gccver}-%{gccrel}, libxml2-devel, zlib-devel +BuildRequires: openssl-devel +%if %{python} +BuildRequires: python, python-devel +%{expand: %%define pyver %(python -c 'import sys;print(sys.version[0:3])')} +%endif +%if %{gconsole} +BuildRequires: pkgconfig, pango-devel, atk-devel +%endif + +# Rh qt4 packages don't have a provide for, guess what, qt! +# still broken in fc8 +# so fix for broken rh +%define broken_rh 0 +%if %{rhel5} || %{centos5} || %{sl5} || %{fc5} || %{fc6} || %{fc7} || %{fc8} +%define broken_rh 1 +%endif +%if %{bat} && ! %{broken_rh} +BuildRequires: qt-devel >= 4.2 +%endif +%if %{bat} && %{broken_rh} +BuildRequires: qt4-devel >= 4.2 +%endif + +%if %{rh7} +BuildRequires: libtermcap-devel +BuildRequires: glibc-devel >= 2.2 +%endif +%if %{su9} +BuildRequires: termcap +BuildRequires: glibc-devel >= 2.3 +%endif +%if %{su9} && %{gconsole} +BuildRequires: libgnome >= 2.0 +BuildRequires: gtk2-devel >= 2.0 +BuildRequires: libgnomeui-devel >= 2.0 +BuildRequires: ORBit2-devel +BuildRequires: libart_lgpl-devel >= 2.0 +BuildRequires: libbonobo-devel >= 2.0 +BuildRequires: libbonoboui-devel >= 2.0 +BuildRequires: bonobo-activation-devel +BuildRequires: gconf2-devel +BuildRequires: linc-devel +BuildRequires: freetype2-devel +%endif +%if %{su10} +BuildRequires: termcap +BuildRequires: glibc-devel >= 2.3 +%endif +%if %{su10} && %{gconsole} +BuildRequires: libgnome >= 2.12 +BuildRequires: gtk2-devel >= 2.8 +BuildRequires: libgnomeui-devel >= 2.12 +BuildRequires: ORBit2-devel +BuildRequires: libart_lgpl-devel >= 2.3 +BuildRequires: libbonobo-devel >= 2.10 +BuildRequires: libbonoboui-devel >= 2.10 +BuildRequires: bonobo-activation-devel +BuildRequires: gconf2-devel +BuildRequires: freetype2-devel +BuildRequires: cairo-devel +BuildRequires: fontconfig-devel >= 2.3 +BuildRequires: gnome-vfs2-devel >= 2.12 +BuildRequires: libpng-devel +%endif +%if %{su102} +BuildRequires: termcap +BuildRequires: glibc-devel >= 2.5 +%endif +%if %{su102} && %{gconsole} +BuildRequires: libgnome >= 2.16 +BuildRequires: gtk2-devel >= 2.10 +BuildRequires: libgnomeui-devel >= 2.16 +BuildRequires: ORBit2-devel +BuildRequires: libart_lgpl-devel >= 2.3 +BuildRequires: libbonobo-devel >= 2.16 +BuildRequires: libbonoboui-devel >= 2.16 +BuildRequires: bonobo-activation-devel +BuildRequires: gconf2-devel +BuildRequires: freetype2-devel +BuildRequires: cairo-devel +BuildRequires: fontconfig-devel >= 2.4 +BuildRequires: gnome-vfs2-devel >= 2.16 +BuildRequires: libpng-devel +%endif +%if %{su103} +BuildRequires: termcap +BuildRequires: glibc-devel >= 2.6 +%endif +%if %{su103} && %{gconsole} +BuildRequires: libgnome >= 2.20 +BuildRequires: gtk2-devel >= 2.12 +BuildRequires: libgnomeui-devel >= 2.20 +BuildRequires: ORBit2-devel +BuildRequires: libart_lgpl-devel >= 2.3 +BuildRequires: libbonobo-devel >= 2.20 +BuildRequires: libbonoboui-devel >= 2.20 +BuildRequires: bonobo-activation-devel +BuildRequires: gconf2-devel +BuildRequires: freetype2-devel +BuildRequires: cairo-devel +BuildRequires: fontconfig-devel >= 2.4 +BuildRequires: gnome-vfs2-devel >= 2.20 +BuildRequires: libpng-devel +%endif +%if %{mdk} +BuildRequires: libtermcap-devel +BuildRequires: libstdc++-static-devel +BuildRequires: glibc-static-devel +BuildRequires: glibc-devel >= 2.3 +%endif +%if %{mdk} && !%{mdv} && %{gconsole} +BuildRequires: gtk2-devel >= 2.0 +BuildRequires: libgnomeui2-devel >= 2.0 +BuildRequires: libORBit2-devel +BuildRequires: libart_lgpl-devel >= 2.0 +BuildRequires: libbonobo2_0-devel +BuildRequires: libbonoboui2_0-devel +BuildRequires: libbonobo-activation-devel +BuildRequires: libGConf2-devel +BuildRequires: freetype2-devel +%endif +%if %{mdv} && %{gconsole} +BuildRequires: gtk2-devel >= 2.8 +BuildRequires: libgnomeui2-devel >= 2.10 +BuildRequires: libORBit2-devel +BuildRequires: libart_lgpl-devel >= 2.3 +BuildRequires: libbonobo2_0-devel +BuildRequires: libbonoboui2_0-devel +BuildRequires: libbonobo-activation-devel +BuildRequires: libGConf2-devel +BuildRequires: freetype2-devel +%endif +%if %{fc3} +BuildRequires: libtermcap-devel +BuildRequires: glibc-devel >= 2.3 +%endif +%if %{fc3} && %{gconsole} +BuildRequires: gtk2-devel >= 2.4 +BuildRequires: libgnomeui-devel >= 2.8 +BuildRequires: ORBit2-devel +BuildRequires: libart_lgpl-devel >= 2.3 +BuildRequires: libbonobo-devel >= 2.8 +BuildRequires: libbonoboui-devel >= 2.8 +BuildRequires: bonobo-activation-devel +BuildRequires: GConf2-devel +BuildRequires: freetype-devel +%endif +%if %{fc4} +BuildRequires: libtermcap-devel +BuildRequires: glibc-devel >= 2.3 +%endif +%if %{fc4} && %{gconsole} +BuildRequires: gtk2-devel >= 2.6 +BuildRequires: libgnomeui-devel >= 2.10 +BuildRequires: ORBit2-devel +BuildRequires: libart_lgpl-devel >= 2.3 +BuildRequires: libbonobo-devel >= 2.8 +BuildRequires: libbonoboui-devel >= 2.8 +BuildRequires: bonobo-activation-devel +BuildRequires: GConf2-devel +BuildRequires: freetype-devel +%endif +%if %{fc5} +BuildRequires: libtermcap-devel +BuildRequires: glibc-devel >= 2.4 +%endif +%if %{fc5} && %{gconsole} +BuildRequires: gtk2-devel >= 2.8 +BuildRequires: libgnomeui-devel >= 2.14 +BuildRequires: ORBit2-devel +BuildRequires: libart_lgpl-devel >= 2.3 +BuildRequires: libbonobo-devel >= 2.14 +BuildRequires: libbonoboui-devel >= 2.14 +BuildRequires: GConf2-devel +BuildRequires: freetype-devel +%endif +%if %{fc6} +BuildRequires: libtermcap-devel +BuildRequires: glibc-devel >= 2.5 +%endif +%if %{fc6} && %{gconsole} +BuildRequires: gtk2-devel >= 2.10 +BuildRequires: libgnomeui-devel >= 2.16 +BuildRequires: ORBit2-devel +BuildRequires: libart_lgpl-devel >= 2.3 +BuildRequires: libbonobo-devel >= 2.16 +BuildRequires: libbonoboui-devel >= 2.16 +BuildRequires: GConf2-devel +BuildRequires: freetype-devel +%endif +%if %{fc7} +BuildRequires: libtermcap-devel +BuildRequires: glibc-devel >= 2.5 +%endif +%if %{fc7} && %{gconsole} +BuildRequires: gtk2-devel >= 2.10 +BuildRequires: libgnomeui-devel >= 2.18 +BuildRequires: ORBit2-devel +BuildRequires: libart_lgpl-devel >= 2.3 +BuildRequires: libbonobo-devel >= 2.18 +BuildRequires: libbonoboui-devel >= 2.18 +BuildRequires: GConf2-devel +BuildRequires: freetype-devel +%endif +%if %{fc8} +BuildRequires: libtermcap-devel +BuildRequires: glibc-devel >= 2.7 +%endif +%if %{fc8} && %{gconsole} +BuildRequires: gtk2-devel >= 2.12 +BuildRequires: libgnomeui-devel >= 2.20 +BuildRequires: ORBit2-devel +BuildRequires: libart_lgpl-devel >= 2.3 +BuildRequires: libbonobo-devel >= 2.20 +BuildRequires: libbonoboui-devel >= 2.20 +BuildRequires: GConf2-devel +BuildRequires: freetype-devel +%endif +%if !%{rh7} && !%{su9} && !%{su10} && !%{su102} && !%{su103} && !%{mdk} && !%{fc3} && !%{fc4} && !%{fc5} && !%{fc6} && !%{fc7} && !%{fc8} +BuildRequires: libtermcap-devel +BuildRequires: glibc-devel >= 2.3 +%endif +%if !%{rh7} && !%{su9} && !%{su10} && !%{su102} && !%{su103} && !%{mdk} && !%{fc3} && !%{fc4} && !%{fc5} && !%{fc6} && !%{fc7} && !%{fc8} && %{gconsole} +BuildRequires: gtk2-devel >= 2.0 +BuildRequires: libgnomeui-devel >= 2.0 +BuildRequires: ORBit2-devel +BuildRequires: libart_lgpl-devel >= 2.0 +BuildRequires: libbonobo-devel >= 2.0 +BuildRequires: libbonoboui-devel >= 2.0 +BuildRequires: bonobo-activation-devel +BuildRequires: GConf2-devel +BuildRequires: linc-devel +BuildRequires: freetype-devel +%endif + +%if %{mysql} && ! %{mysql4} && ! %{mysql5} +BuildRequires: mysql-devel >= 3.23 +%endif + +%if %{mysql} && %{mysql4} +BuildRequires: mysql-devel >= 4.0 +%endif + +%if %{mysql} && %{mysql5} +BuildRequires: mysql-devel >= 5.0 +%endif + +%if %{postgresql} && %{wb3} +BuildRequires: rh-postgresql-devel >= 7 +%endif + +%if %{postgresql} && ! %{wb3} +BuildRequires: postgresql-devel >= 7 +%endif + +%if %{wxconsole} +BuildRequires: wxGTK-devel >= 2.6 +%endif + +%description +%{blurb} + +%{blurb2} +%{blurb3} +%{blurb4} +%{blurb5} +%{blurb6} +%{blurb7} +%{blurb8} + +%if %{mysql} +%package mysql +%endif +%if %{sqlite} +%package sqlite +%endif +%if %{postgresql} +%package postgresql +%endif + +Summary: Bacula - The Network Backup Solution +Group: System Environment/Daemons +Provides: bacula-dir, bacula-sd, bacula-fd, bacula-server +Conflicts: bacula-client +Obsoletes: bacula-rescue + +%if %{su9} || %{su10} || %{su102} || %{su103} +Conflicts: bacula +%endif + +Requires: ncurses, libstdc++, zlib, openssl, mtx + +%if %{rh7} +Requires: glibc >= 2.2 +Requires: libtermcap +%endif +%if %{su9} || %{su10} +Requires: glibc >= 2.3 +Requires: termcap +%endif +%if %{su102} +Requires: glibc >= 2.5 +Requires: termcap +%endif +%if %{su103} +Requires: glibc >= 2.6 +Requires: termcap +%endif +%if ! %{rh7} && ! %{su9} && ! %{su10} && ! %{su102} && ! %{su103} && ! %{fc5} && ! %{fc6} && ! %{fc7} && ! %{fc8} +Requires: glibc >= 2.3 +Requires: libtermcap +%endif +%if %{fc5} +Requires: glibc >= 2.4 +Requires: libtermcap +%endif +%if %{fc6} || %{fc7} +Requires: glibc >= 2.5 +Requires: libtermcap +%endif +%if %{fc8} +Requires: glibc >= 2.7 +Requires: libtermcap +%endif + +%if %{mysql} && ! %{su9} && ! %{mdk} && ! %{mysql4} && ! %{mysql5} +Requires: mysql >= 3.23 +Requires: mysql-server >= 3.23 +%endif +%if %{mysql} && ! %{su9} && ! %{su10} && ! %{mdk} && %{mysql4} +Requires: mysql >= 4.0 +Requires: mysql-server >= 4.0 +%endif +%if %{mysql} && ! %{su9} && ! %{su10} && ! %{su102} && ! %{su103} && ! %{mdk} && %{mysql5} +Requires: mysql >= 5.0 +Requires: mysql-server >= 5.0 +%endif + +%if %{mysql} && %{su9} && ! %{mysql4} +Requires: mysql >= 3.23 +Requires: mysql-client >= 3.23 +%endif +%if %{mysql} && %{su9} && %{mysql4} +Requires: mysql >= 4.0 +Requires: mysql-client >= 4.0 +%endif +%if %{mysql} && %{su10} && %{mysql4} +Requires: mysql >= 4.0 +Requires: mysql-client >= 4.0 +%endif +%if %{mysql} && %{su10} && %{mysql5} +Requires: mysql >= 5.0 +Requires: mysql-client >= 5.0 +%endif +%if %{mysql} && %{su102} && %{mysql5} +Requires: mysql >= 5.0 +Requires: mysql-client >= 5.0 +%endif +%if %{mysql} && %{su103} && %{mysql5} +Requires: mysql >= 5.0 +Requires: mysql-client >= 5.0 +%endif + +%if %{mysql} && %{mdk} && ! %{mysql4} +Requires: mysql >= 3.23 +Requires: mysql-client >= 3.23 +%endif +%if %{mysql} && %{mdk} && %{mysql4} +Requires: mysql >= 4.0 +Requires: mysql-client >= 4.0 +%endif + +%if %{postgresql} && %{wb3} +Requires: rh-postgresql >= 7 +Requires: rh-postgresql-server >= 7 +%endif +%if %{postgresql} && ! %{wb3} +Requires: postgresql >= 7 +Requires: postgresql-server >= 7 +%endif + +%if %{mysql} +%description mysql +%endif +%if %{sqlite} +%description sqlite +%endif +%if %{postgresql} +%description postgresql +%endif + +%if %{python} +Requires: python >= %{pyver} +%endif + +%{blurb} + +%{blurb2} +%{blurb3} +%{blurb4} +%{blurb5} +%{blurb6} +%{blurb7} +%{blurb8} + +%if %{mysql} +This build requires MySQL to be installed separately as the catalog database. +%endif +%if %{postgresql} +This build requires PostgreSQL to be installed separately as the catalog database. +%endif +%if %{sqlite} +This build incorporates sqlite3 as the catalog database, statically compiled. +%endif +%if %{python} +This build includes python scripting support. +%endif + +%if ! %{client_only} && %{mtx} +%package mtx +Summary: Bacula - The Network Backup Solution +Group: System Environment/Daemons +Provides: mtx + +%description mtx +This is Bacula's version of mtx tape utilities for Linux distributions that +do not provide their own mtx package +%endif + +%package client +Summary: Bacula - The Network Backup Solution +Group: System Environment/Daemons +Provides: bacula-fd +Conflicts: bacula-mysql +Conflicts: bacula-sqlite +Conflicts: bacula-postgresql +Obsoletes: bacula-rescue + +%if %{su9} || %{su10} || %{su102} +Provides: bacula +%endif + +Requires: libstdc++, zlib, openssl + +%if %{rh7} +Requires: glibc >= 2.2 +Requires: libtermcap +%endif +%if %{su9} || %{su10} +Requires: glibc >= 2.3 +Requires: termcap +%endif +%if %{su102} +Requires: glibc >= 2.5 +Requires: termcap +%endif +%if %{su103} +Requires: glibc >= 2.6 +Requires: termcap +%endif +%if ! %{rh7} && ! %{su9} && ! %{su10} && ! %{su102} && ! %{su103} && ! %{fc5} && ! %{fc6} && ! %{fc7} && ! %{fc8} +Requires: glibc >= 2.3 +Requires: libtermcap +%endif +%if %{fc5} +Requires: glibc >= 2.4 +Requires: libtermcap +%endif +%if %{fc6} || %{fc7} +Requires: glibc >= 2.5 +Requires: libtermcap +%endif +%if %{fc8} +Requires: glibc >= 2.7 +Requires: libtermcap +%endif + +%if %{python} +Requires: python >= %{pyver} +%endif + +%description client +%{blurb} + +%{blurb2} +%{blurb3} +%{blurb4} +%{blurb5} +%{blurb6} +%{blurb7} +%{blurb8} + +This is the File daemon (Client) only package. It includes the command line +console program. +%if %{python} +This build includes python scripting support. +%endif + +%if ! %{client_only} +%package updatedb + +Summary: Bacula - The Network Backup Solution +Group: System Environment/Daemons + +%description updatedb +%{blurb} + +%{blurb2} +%{blurb3} +%{blurb4} +%{blurb5} +%{blurb6} +%{blurb7} +%{blurb8} + +This package installs scripts for updating older versions of the bacula +database. +%endif + +%if %{gconsole} +%package gconsole +Summary: Bacula - The Network Backup Solution +Group: System Environment/Daemons +Requires: atk, libstdc++, zlib, pango, libxml2, bacula-fd, openssl +%endif + +%if %{gconsole} && %{su9} +Requires: gtk2 >= 2.0 +Requires: libgnome >= 2.0 +Requires: libgnomeui >= 2.0 +Requires: glibc >= 2.3 +Requires: ORBit2 +Requires: libart_lgpl >= 2.0 +Requires: libbonobo >= 2.0 +Requires: libbonoboui >= 2.0 +Requires: bonobo-activation +Requires: gconf2 +Requires: linc +Requires: freetype2 +%endif +%if %{gconsole} && %{su10} +Requires: gtk2 >= 2.8 +Requires: libgnome >= 2.12 +Requires: libgnomeui >= 2.12 +Requires: glibc >= 2.3 +Requires: ORBit2 +Requires: libart_lgpl >= 2.3 +Requires: libbonobo >= 2.10 +Requires: libbonoboui >= 2.10 +Requires: bonobo-activation +Requires: gconf2 +Requires: freetype2 +Requires: cairo +Requires: fontconfig >= 2.3 +Requires: gnome-vfs2 >= 2.12 +Requires: libpng +%endif +%if %{gconsole} && %{su102} +Requires: gtk2 >= 2.10 +Requires: libgnome >= 2.16 +Requires: libgnomeui >= 2.16 +Requires: glibc >= 2.5 +Requires: ORBit2 +Requires: libart_lgpl >= 2.3 +Requires: libbonobo >= 2.16 +Requires: libbonoboui >= 2.16 +Requires: bonobo-activation +Requires: gconf2 +Requires: freetype2 +Requires: cairo +Requires: fontconfig >= 2.4 +Requires: gnome-vfs2 >= 2.16 +Requires: libpng +%endif +%if %{gconsole} && %{su103} +Requires: gtk2 >= 2.12 +Requires: libgnome >= 2.20 +Requires: libgnomeui >= 2.20 +Requires: glibc >= 2.6 +Requires: ORBit2 +Requires: libart_lgpl >= 2.3 +Requires: libbonobo >= 2.20 +Requires: libbonoboui >= 2.20 +Requires: bonobo-activation +Requires: gconf2 +Requires: freetype2 +Requires: cairo +Requires: fontconfig >= 2.4 +Requires: gnome-vfs2 >= 2.20 +Requires: libpng +%endif +%if %{gconsole} && %{mdk} && !%{mdv} +Requires: gtk2 >= 2.0 +Requires: libgnomeui2 +Requires: glibc >= 2.3 +Requires: ORBit2 +Requires: libart_lgpl >= 2.0 +Requires: libbonobo >= 2.0 +Requires: libbonoboui >= 2.0 +Requires: GConf2 +Requires: freetype2 +%endif +%if %{gconsole} && %{mdv} +Requires: gtk2 >= 2.8 +Requires: libgnomeui2 +Requires: glibc >= 2.3 +Requires: ORBit2 +Requires: libart_lgpl >= 2.3 +Requires: libbonobo >= 2.10 +Requires: libbonoboui >= 2.10 +Requires: GConf2 +Requires: freetype2 +%endif +%if %{gconsole} && %{fc3} +Requires: gtk2 >= 2.4 +Requires: libgnomeui >= 2.8 +Requires: glibc >= 2.3 +Requires: ORBit2 +Requires: libart_lgpl >= 2.3 +Requires: libbonobo >= 2.8 +Requires: libbonoboui >= 2.8 +Requires: bonobo-activation +Requires: GConf2 +Requires: freetype +%endif +%if %{gconsole} && %{fc4} +Requires: gtk2 >= 2.6 +Requires: libgnomeui >= 2.10 +Requires: glibc >= 2.3 +Requires: ORBit2 +Requires: libart_lgpl >= 2.3 +Requires: libbonobo >= 2.8 +Requires: libbonoboui >= 2.8 +Requires: bonobo-activation +Requires: GConf2 +Requires: freetype +%endif +%if %{gconsole} && %{fc5} +Requires: gtk2 >= 2.8 +Requires: libgnomeui >= 2.14 +Requires: glibc >= 2.4 +Requires: ORBit2 +Requires: libart_lgpl >= 2.3 +Requires: libbonobo >= 2.14 +Requires: libbonoboui >= 2.14 +Requires: GConf2 +Requires: freetype +%endif +%if %{gconsole} && %{fc6} +Requires: gtk2 >= 2.10 +Requires: libgnomeui >= 2.16 +Requires: glibc >= 2.5 +Requires: ORBit2 +Requires: libart_lgpl >= 2.3 +Requires: libbonobo >= 2.16 +Requires: libbonoboui >= 2.16 +Requires: GConf2 +Requires: freetype +%endif +%if %{gconsole} && %{fc7} +Requires: gtk2 >= 2.10 +Requires: libgnomeui >= 2.18 +Requires: glibc >= 2.5 +Requires: ORBit2 +Requires: libart_lgpl >= 2.3 +Requires: libbonobo >= 2.18 +Requires: libbonoboui >= 2.18 +Requires: GConf2 +Requires: freetype +%endif +%if %{gconsole} && %{fc8} +Requires: gtk2 >= 2.12 +Requires: libgnomeui >= 2.20 +Requires: glibc >= 2.7 +Requires: ORBit2 +Requires: libart_lgpl >= 2.3 +Requires: libbonobo >= 2.20 +Requires: libbonoboui >= 2.20 +Requires: GConf2 +Requires: freetype +%endif +%if %{gconsole} && !%{su9} && !%{su10} && !%{su102} && !%{su103} && !%{mdk} && !%{fc3} && !%{fc4} && !%{fc5} && !%{fc6} && !%{fc7} && !%{fc8} +Requires: gtk2 >= 2.0 +Requires: libgnomeui >= 2.0 +Requires: glibc >= 2.3 +Requires: ORBit2 +Requires: libart_lgpl >= 2.0 +Requires: libbonobo >= 2.0 +Requires: libbonoboui >= 2.0 +Requires: bonobo-activation +Requires: GConf2 +Requires: linc +Requires: freetype +%endif +%if %{gconsole} && %{su9} +Requires: xsu +%endif +%if %{gconsole} && %{su10} +Requires: xsu +%endif +%if %{gconsole} && %{su102} +Requires: xsu +%endif +%if %{gconsole} && %{su103} +Requires: xsu +%endif +%if %{gconsole} && ! %{su9} && ! %{su10} && ! %{su102} && ! %{su103} +Requires: usermode +%endif + +%if %{gconsole} +%description gconsole +%{blurb} + +%{blurb2} +%{blurb3} +%{blurb4} +%{blurb5} +%{blurb6} +%{blurb7} +%{blurb8} + +This is the Gnome Console package. It is an add-on to the client or +server packages. +%endif + +%if %{wxconsole} +%package wxconsole +Summary: Bacula - The Network Backup Solution +Group: System Environment/Daemons +Requires: wxGTK >= 2.6, libstdc++, openssl +%endif + +%if %{wxconsole} && %{su10} +Requires: gtk2 >= 2.8 +%endif + +%if %{wxconsole} && %{su102} +Requires: gtk2 >= 2.10 +%endif + +%if %{wxconsole} && %{su103} +Requires: gtk2 >= 2.12 +%endif + +%if %{wxconsole} && %{fc3} +Requires: gtk2 >= 2.4 +%endif + +%if %{wxconsole} && %{fc4} +Requires: gtk2 >= 2.6 +%endif + +%if %{wxconsole} && %{fc5} +Requires: gtk2 >= 2.8 +%endif + +%if %{wxconsole} && %{fc6} +Requires: gtk2 >= 2.10 +%endif + +%if %{wxconsole} && %{fc7} +Requires: gtk2 >= 2.10 +%endif + +%if %{wxconsole} && %{fc7} +Requires: gtk2 >= 2.12 +%endif + +%if %{wxconsole} +%description wxconsole +%{blurb} + +%{blurb2} +%{blurb3} +%{blurb4} +%{blurb5} +%{blurb6} +%{blurb7} +%{blurb8} + +This is the WXWindows Console package. It is an add-on to the client or +server packages. +%endif + +%if %{bat} +%package bat +Summary: Bacula - The Network Backup Solution +Group: System Environment/Daemons +%endif + +%if %{bat} && %{su10} +Requires: openssl +Requires: glibc >= 2.4 +Requires: fontconfig +Requires: freetype2 +Requires: libgcc +Requires: libpng +Requires: qt >= 4.2 +Requires: libstdc++ +Requires: zlib +%endif + +%if %{bat} && %{su102} +Requires: openssl +Requires: glibc >= 2.5 +Requires: fontconfig +Requires: freetype2 +Requires: libgcc +Requires: libpng +Requires: qt >= 4.2 +Requires: libstdc++ +Requires: zlib +%endif + +%if %{bat} && %{su103} +Requires: openssl +Requires: glibc >= 2.6 +Requires: fontconfig +Requires: freetype2 +Requires: libgcc +Requires: libpng +Requires: qt >= 4.2 +Requires: libstdc++ +Requires: zlib +%endif + +%if %{bat} && %{fc5} +Requires: openssl +Requires: glibc >= 2.4 +Requires: fontconfig +Requires: freetype +Requires: libgcc +Requires: libpng +Requires: qt4 >= 4.2 +Requires: libstdc++ +Requires: zlib +%endif + +%if %{bat} && %{fc6} +Requires: openssl +Requires: glibc >= 2.5 +Requires: fontconfig +Requires: freetype +Requires: libgcc +Requires: libpng +Requires: qt4 >= 4.2 +Requires: libstdc++ +Requires: zlib +%endif + +%if %{bat} && %{fc7} +Requires: openssl +Requires: glibc >= 2.5 +Requires: fontconfig +Requires: freetype +Requires: libgcc +Requires: libpng +Requires: qt4 >= 4.2 +Requires: libstdc++ +Requires: zlib +%endif + +%if %{bat} && %{fc8} +Requires: openssl +Requires: glibc >= 2.7 +Requires: fontconfig +Requires: freetype +Requires: libgcc +Requires: libpng +Requires: qt4 >= 4.2 +Requires: libstdc++ +Requires: zlib +%endif + +%if %{bat} +%description bat +%{blurb} + +%{blurb2} +%{blurb3} +%{blurb4} +%{blurb5} +%{blurb6} +%{blurb7} +%{blurb8} + +This is the Bacula Administration Tool package. It is an add-on to +the client or server packages. +%endif + +%prep + +%setup +%setup -T -D -b 1 +%setup -T -D -b 2 +%setup -T -D -b 3 +%setup -T -D -b 4 + +%build + +%if %{su9} || %{su10} || %{su102} || %{su103} +export LDFLAGS="${LDFLAGS} -L/usr/lib/termcap" +%endif + +cwd=${PWD} +cd %{depkgs} +%if %{sqlite} +make sqlite3 +%endif +%if ! %{client_only} && %{mtx} +make mtx +%endif +%if %{bat} +make qwt +%endif +cd ${cwd} + +%if %{wb3} || %{old_pgsql} +patch -p3 src/cats/postgresql.c < %SOURCE5 +%endif + +# patches for the bundled sqlite scripts + +# patch the make_sqlite_tables script for installation bindir +#patch src/cats/make_sqlite_tables.in src/cats/make_sqlite_tables.in.patch +patch src/cats/make_sqlite3_tables.in src/cats/make_sqlite3_tables.in.patch + +# patch the create_sqlite_database script for installation bindir +#patch src/cats/create_sqlite_database.in src/cats/create_sqlite_database.in.patch +patch src/cats/create_sqlite3_database.in src/cats/create_sqlite3_database.in.patch + +# patch the make_catalog_backup script for installation bindir +patch src/cats/make_catalog_backup.in src/cats/make_catalog_backup.in.patch + +# patch the update_sqlite_tables script for installation bindir +#patch src/cats/update_sqlite_tables.in src/cats/update_sqlite_tables.in.patch +patch src/cats/update_sqlite3_tables.in src/cats/update_sqlite3_tables.in.patch + +# patch the bacula-dir init script to remove sqlite service +%if %{sqlite} && %{su9} +patch platforms/suse/bacula-dir.in platforms/suse/bacula-dir-suse-sqlite.patch +%endif +%if %{sqlite} && %{su10} +patch platforms/suse/bacula-dir.in platforms/suse/bacula-dir-suse-sqlite.patch +%endif +%if %{sqlite} && %{su102} +patch platforms/suse/bacula-dir.in platforms/suse/bacula-dir-suse-sqlite.patch +%endif +%if %{sqlite} && %{su103} +patch platforms/suse/bacula-dir.in platforms/suse/bacula-dir-suse-sqlite.patch +%endif + +# 64 bit lib location hacks +# as of 1.39.18 it should not be necessary to enable x86_64 as configure is +# reported to be fixed to properly detect lib locations. +%if %{x86_64} +export LDFLAGS="${LDFLAGS} -L/usr/lib64" +%endif +%if %{mysql} && %{x86_64} +export LDFLAGS="${LDFLAGS} -L/usr/lib64/mysql" +%endif +%if %{python} && %{x86_64} +export LDFLAGS="${LDFLAGS} -L/usr/lib64/python%{pyver}" +%endif + +# Red Hat's 64 bit installation of QT4 appears to be broken so: +%define qt_path 0 +%if %{rhel5} || %{centos5} || %{sl5} +%define qt_path 1 +%endif +%if %{bat} && %{qt_path} && %{x86_64} +export PATH=/usr/lib64/qt4/bin/:$PATH +export QTDIR=/usr/lib64/qt4/ +export QTINC=/usr/lib64/qt4/include/ +export QTLIB=/usr/lib64/qt4/ +%endif + +%configure \ + --prefix=/usr \ + --sbindir=/usr/sbin \ + --sysconfdir=%{sysconf_dir} \ + --with-scriptdir=%{script_dir} \ + --with-working-dir=%{working_dir} \ + --with-pid-dir=%{pid_dir} \ + --enable-smartalloc \ + --enable-client-only \ + %if %{mdk} + --disable-nls \ + %endif + --enable-static-fd + +make + +%configure \ + --prefix=/usr \ + --sbindir=/usr/sbin \ + --sysconfdir=%{sysconf_dir} \ + --with-scriptdir=%{script_dir} \ + --with-working-dir=%{working_dir} \ + --with-pid-dir=%{pid_dir} \ + --enable-smartalloc \ +%if %{gconsole} + --enable-gnome \ +%endif +%if %{gconsole} && ! %{rh8} + --enable-tray-monitor \ +%endif +%if %{mysql} + --with-mysql \ +%endif +%if %{sqlite} + --with-sqlite3=${cwd}/%{depkgs}/sqlite3 \ +%endif +%if %{postgresql} + --with-postgresql \ +%endif +%if %{wxconsole} + --enable-bwx-console \ +%endif +%if %{bat} + --enable-bat \ + --with-qwt=${cwd}/%{depkgs}/qwt \ +%endif +%if %{python} + --with-python \ +%endif +%if %{client_only} + --enable-client-only \ +%endif +%if %{rh7} || %{rh8} || %{rh9} || %{fc1} || %{fc3} || %{wb3} + --disable-batch-insert \ +%endif + --mandir=%{_mandir} \ + --with-subsys-dir=/var/lock/subsys \ + --with-dir-user=%{director_daemon_user} \ + --with-dir-group=%{daemon_group} \ + --with-sd-user=%{storage_daemon_user} \ + --with-sd-group=%{storage_daemon_group} \ + --with-fd-user=%{file_daemon_user} \ + --with-fd-group=%{daemon_group} \ + --with-dir-password="XXX_REPLACE_WITH_DIRECTOR_PASSWORD_XXX" \ + --with-fd-password="XXX_REPLACE_WITH_CLIENT_PASSWORD_XXX" \ + --with-sd-password="XXX_REPLACE_WITH_STORAGE_PASSWORD_XXX" \ + --with-mon-dir-password="XXX_REPLACE_WITH_DIRECTOR_MONITOR_PASSWORD_XXX" \ + --with-mon-fd-password="XXX_REPLACE_WITH_CLIENT_MONITOR_PASSWORD_XXX" \ + --with-mon-sd-password="XXX_REPLACE_WITH_STORAGE_MONITOR_PASSWORD_XXX" \ + --with-openssl + +make + +%install + +cwd=${PWD} +[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT" +mkdir -p $RPM_BUILD_ROOT/etc/init.d +mkdir -p $RPM_BUILD_ROOT/etc/logrotate.d +mkdir -p $RPM_BUILD_ROOT/etc/log.d/conf/logfiles +mkdir -p $RPM_BUILD_ROOT/etc/log.d/conf/services +mkdir -p $RPM_BUILD_ROOT/etc/log.d/scripts/services +mkdir -p $RPM_BUILD_ROOT%{script_dir}/updatedb + +%if %{gconsole} || %{wxconsole} || %{bat} +mkdir -p $RPM_BUILD_ROOT/usr/share/applications +mkdir -p $RPM_BUILD_ROOT/usr/share/pixmaps +%endif + +%if %{gconsole} || %{wxconsole} || %{bat} +%define usermode_iftrick 1 +%else +%define usermode_iftrick 0 +%endif + +%if %{usermode_iftrick} && ! %{su9} && ! %{su10} && ! %{su102} && ! %{su103} +mkdir -p $RPM_BUILD_ROOT/etc/pam.d +mkdir -p $RPM_BUILD_ROOT/etc/security/console.apps +mkdir -p $RPM_BUILD_ROOT/usr/bin +%endif + +%if %{sqlite} +mkdir -p $RPM_BUILD_ROOT%{sqlite_bindir} +%endif + +make \ + prefix=$RPM_BUILD_ROOT/usr \ + sbindir=$RPM_BUILD_ROOT/usr/sbin \ + sysconfdir=$RPM_BUILD_ROOT%{sysconf_dir} \ + scriptdir=$RPM_BUILD_ROOT%{script_dir} \ + working_dir=$RPM_BUILD_ROOT%{working_dir} \ + piddir=$RPM_BUILD_ROOT%{pid_dir} \ + mandir=$RPM_BUILD_ROOT%{_mandir} \ + install + +%if ! %{client_only} && %{mtx} +cd %{depkgs} +make \ + prefix=$RPM_BUILD_ROOT/usr \ + sbindir=$RPM_BUILD_ROOT/usr/sbin \ + sysconfdir=$RPM_BUILD_ROOT%{sysconf_dir} \ + scriptdir=$RPM_BUILD_ROOT%{script_dir} \ + working_dir=$RPM_BUILD_ROOT%{working_dir} \ + piddir=$RPM_BUILD_ROOT%{pid_dir} \ + mandir=$RPM_BUILD_ROOT%{_mandir} \ + mtx-install +cd ${cwd} +%endif + +# make install in manpages installs _everything_ shotgun style +# so now delete what we will not be packaging +%if ! %{wxconsole} +rm -f $RPM_BUILD_ROOT%{_mandir}/man1/bacula-bwxconsole.1.%{manpage_ext} +%endif +%if ! %{bat} +rm -f $RPM_BUILD_ROOT%{_mandir}/man1/bat.1.%{manpage_ext} +%endif +%if ! %{gconsole} +rm -f $RPM_BUILD_ROOT%{_mandir}/man1/bacula-bgnome-console.1.%{manpage_ext} +rm -f $RPM_BUILD_ROOT%{_mandir}/man1/bacula-tray-monitor.1.%{manpage_ext} +%endif +%if %{client_only} +rm -f $RPM_BUILD_ROOT%{_mandir}/man1/bsmtp.1.%{manpage_ext} +rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bacula-dir.8.%{manpage_ext} +rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bacula-sd.8.%{manpage_ext} +rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bcopy.8.%{manpage_ext} +rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bextract.8.%{manpage_ext} +rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bls.8.%{manpage_ext} +rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bscan.8.%{manpage_ext} +rm -f $RPM_BUILD_ROOT%{_mandir}/man8/btape.8.%{manpage_ext} +rm -f $RPM_BUILD_ROOT%{_mandir}/man8/dbcheck.8.%{manpage_ext} +%endif + +# fixme - make installs the mysql scripts for sqlite build +%if %{sqlite} +rm -f $RPM_BUILD_ROOT%{script_dir}/startmysql +rm -f $RPM_BUILD_ROOT%{script_dir}/stopmysql +rm -f $RPM_BUILD_ROOT%{script_dir}/grant_mysql_privileges +%endif + +# fixme - make installs the mysql scripts for postgresql build +%if %{postgresql} +rm -f $RPM_BUILD_ROOT%{script_dir}/startmysql +rm -f $RPM_BUILD_ROOT%{script_dir}/stopmysql +%endif + +# fixme - make installs gconsole script for build without gconsole +%if ! %{gconsole} +rm -f $RPM_BUILD_ROOT%{script_dir}/gconsole +%endif + +rm -f $RPM_BUILD_ROOT/usr/sbin/static-bacula-fd + +# install the init scripts +%if %{su9} || %{su10} || %{su102} || %{su103} +cp -p platforms/suse/bacula-dir $RPM_BUILD_ROOT/etc/init.d/bacula-dir +cp -p platforms/suse/bacula-fd $RPM_BUILD_ROOT/etc/init.d/bacula-fd +cp -p platforms/suse/bacula-sd $RPM_BUILD_ROOT/etc/init.d/bacula-sd +%endif +%if %{mdk} +cp -p platforms/mandrake/bacula-dir $RPM_BUILD_ROOT/etc/init.d/bacula-dir +cp -p platforms/mandrake/bacula-fd $RPM_BUILD_ROOT/etc/init.d/bacula-fd +cp -p platforms/mandrake/bacula-sd $RPM_BUILD_ROOT/etc/init.d/bacula-sd +%endif +%if ! %{su9} && ! %{su10} && ! %{su102} && ! %{su103} && ! %{mdk} +cp -p platforms/redhat/bacula-dir $RPM_BUILD_ROOT/etc/init.d/bacula-dir +cp -p platforms/redhat/bacula-fd $RPM_BUILD_ROOT/etc/init.d/bacula-fd +cp -p platforms/redhat/bacula-sd $RPM_BUILD_ROOT/etc/init.d/bacula-sd +%endif +chmod 0754 $RPM_BUILD_ROOT/etc/init.d/* +%if %{client_only} +rm -f $RPM_BUILD_ROOT/etc/init.d/bacula-dir +rm -f $RPM_BUILD_ROOT/etc/init.d/bacula-sd +%endif + +# install the menu stuff +%if %{gconsole} && %{su9} +cp -p scripts/bacula.png $RPM_BUILD_ROOT/usr/share/pixmaps/bacula.png +cp -p scripts/bacula.desktop.gnome2.xsu $RPM_BUILD_ROOT/usr/share/applications/bacula.desktop +cp -p src/tray-monitor/generic.xpm $RPM_BUILD_ROOT/usr/share/pixmaps/bacula-tray-monitor.xpm +cp -p scripts/bacula-tray-monitor.desktop $RPM_BUILD_ROOT/usr/share/applications/bacula-tray-monitor.desktop +%endif +%if %{gconsole} && %{su10} +cp -p scripts/bacula.png $RPM_BUILD_ROOT/usr/share/pixmaps/bacula.png +cp -p scripts/bacula.desktop.gnome2.xsu $RPM_BUILD_ROOT/usr/share/applications/bacula.desktop +cp -p src/tray-monitor/generic.xpm $RPM_BUILD_ROOT/usr/share/pixmaps/bacula-tray-monitor.xpm +cp -p scripts/bacula-tray-monitor.desktop $RPM_BUILD_ROOT/usr/share/applications/bacula-tray-monitor.desktop +%endif +%if %{gconsole} && %{su102} +cp -p scripts/bacula.png $RPM_BUILD_ROOT/usr/share/pixmaps/bacula.png +cp -p scripts/bacula.desktop.gnome2.xsu $RPM_BUILD_ROOT/usr/share/applications/bacula.desktop +cp -p src/tray-monitor/generic.xpm $RPM_BUILD_ROOT/usr/share/pixmaps/bacula-tray-monitor.xpm +cp -p scripts/bacula-tray-monitor.desktop $RPM_BUILD_ROOT/usr/share/applications/bacula-tray-monitor.desktop +%endif +%if %{gconsole} && %{su103} +cp -p scripts/bacula.png $RPM_BUILD_ROOT/usr/share/pixmaps/bacula.png +cp -p scripts/bacula.desktop.gnome2.xsu $RPM_BUILD_ROOT/usr/share/applications/bacula.desktop +cp -p src/tray-monitor/generic.xpm $RPM_BUILD_ROOT/usr/share/pixmaps/bacula-tray-monitor.xpm +cp -p scripts/bacula-tray-monitor.desktop $RPM_BUILD_ROOT/usr/share/applications/bacula-tray-monitor.desktop +%endif +%if %{wxconsole} && %{su10} +cp -p src/wx-console/wxwin16x16.xpm $RPM_BUILD_ROOT/usr/share/pixmaps/wxwin16x16.xpm +cp -p scripts/wxconsole.desktop.xsu $RPM_BUILD_ROOT/usr/share/applications/wxconsole.desktop +%endif +%if %{wxconsole} && %{su102} +cp -p src/wx-console/wxwin16x16.xpm $RPM_BUILD_ROOT/usr/share/pixmaps/wxwin16x16.xpm +cp -p scripts/wxconsole.desktop.xsu $RPM_BUILD_ROOT/usr/share/applications/wxconsole.desktop +%endif +%if %{wxconsole} && %{su103} +cp -p src/wx-console/wxwin16x16.xpm $RPM_BUILD_ROOT/usr/share/pixmaps/wxwin16x16.xpm +cp -p scripts/wxconsole.desktop.xsu $RPM_BUILD_ROOT/usr/share/applications/wxconsole.desktop +%endif +%if %{bat} && %{su102} +cp -p src/qt-console/images/bat_icon.png $RPM_BUILD_ROOT/usr/share/pixmaps/bat_icon.png +cp -p scripts/bat.desktop.xsu $RPM_BUILD_ROOT/usr/share/applications/bat.desktop +%endif +%if %{bat} && %{su103} +cp -p src/qt-console/images/bat_icon.png $RPM_BUILD_ROOT/usr/share/pixmaps/bat_icon.png +cp -p scripts/bat.desktop.xsu $RPM_BUILD_ROOT/usr/share/applications/bat.desktop +%endif +%if %{rh8} || %{rh9} || %{wb3} || %{fc1} || %{fc3} || %{fc4} || %{fc5} || %{fc6} || %{fc7} || %{fc8} || %{mdk} +%define iftrick 1 +%else +%define iftrick 0 +%endif +%if %{gconsole} && %{iftrick} +cp -p scripts/bacula.png $RPM_BUILD_ROOT/usr/share/pixmaps/bacula.png +cp -p scripts/bacula.desktop.gnome2.consolehelper $RPM_BUILD_ROOT/usr/share/applications/bacula.desktop +cp -p scripts/bgnome-console.console_apps $RPM_BUILD_ROOT/etc/security/console.apps/bgnome-console +cp -p scripts/bgnome-console.pamd $RPM_BUILD_ROOT/etc/pam.d/bgnome-console +ln -sf consolehelper $RPM_BUILD_ROOT/usr/bin/bgnome-console +%endif +%if %{gconsole} && ! %{rh8} +cp -p src/tray-monitor/generic.xpm $RPM_BUILD_ROOT/usr/share/pixmaps/bacula-tray-monitor.xpm +cp -p scripts/bacula-tray-monitor.desktop $RPM_BUILD_ROOT/usr/share/applications/bacula-tray-monitor.desktop +%endif +%if %{wxconsole} && %{iftrick} +cp -p src/wx-console/wxwin16x16.xpm $RPM_BUILD_ROOT/usr/share/pixmaps/wxwin16x16.xpm +cp -p scripts/wxconsole.desktop.consolehelper $RPM_BUILD_ROOT/usr/share/applications/wxconsole.desktop +cp -p scripts/wxconsole.console_apps $RPM_BUILD_ROOT/etc/security/console.apps/bwx-console +cp -p scripts/wxconsole.pamd $RPM_BUILD_ROOT/etc/pam.d/bwx-console +ln -sf consolehelper $RPM_BUILD_ROOT/usr/bin/bwx-console +%endif +%if %{bat} && %{iftrick} +cp -p src/qt-console/images/bat_icon.png $RPM_BUILD_ROOT/usr/share/pixmaps/bat_icon.png +cp -p scripts/bat.desktop.consolehelper $RPM_BUILD_ROOT/usr/share/applications/bat.desktop +cp -p scripts/bat.console_apps $RPM_BUILD_ROOT/etc/security/console.apps/bat +cp -p scripts/bat.pamd $RPM_BUILD_ROOT/etc/pam.d/bat +ln -sf consolehelper $RPM_BUILD_ROOT/usr/bin/bat +%endif + +# install sqlite +%if %{sqlite} +cp -p %{depkgs}/sqlite3/sqlite3 $RPM_BUILD_ROOT%{sqlite_bindir}/sqlite3 +cp -p %{depkgs}/sqlite3/sqlite3.h $RPM_BUILD_ROOT%{sqlite_bindir}/sqlite3.h +cp -p %{depkgs}/sqlite3/libsqlite3.a $RPM_BUILD_ROOT%{sqlite_bindir}/libsqlite3.a +%endif + +# install the logrotate file +cp -p scripts/logrotate $RPM_BUILD_ROOT/etc/logrotate.d/bacula + +# install the updatedb scripts +cp -p updatedb/* $RPM_BUILD_ROOT%{script_dir}/updatedb/ + +# install the logwatch scripts +%if ! %{client_only} +cp -p scripts/logwatch/bacula $RPM_BUILD_ROOT/etc/log.d/scripts/services/bacula +cp -p scripts/logwatch/logfile.bacula.conf $RPM_BUILD_ROOT/etc/log.d/conf/logfiles/bacula.conf +cp -p scripts/logwatch/services.bacula.conf $RPM_BUILD_ROOT/etc/log.d/conf/services/bacula.conf +chmod 755 $RPM_BUILD_ROOT/etc/log.d/scripts/services/bacula +chmod 644 $RPM_BUILD_ROOT/etc/log.d/conf/logfiles/bacula.conf +chmod 644 $RPM_BUILD_ROOT/etc/log.d/conf/services/bacula.conf +%endif + +# install the rescue files +mkdir $RPM_BUILD_ROOT%{sysconf_dir}/rescue +mkdir $RPM_BUILD_ROOT%{sysconf_dir}/rescue/freebsd +mkdir $RPM_BUILD_ROOT%{sysconf_dir}/rescue/solaris +cp -p %{_rescuesrc}/Makefile* $RPM_BUILD_ROOT%{sysconf_dir}/rescue/ +cp -p %{_rescuesrc}/freebsd/Makefile* $RPM_BUILD_ROOT%{sysconf_dir}/rescue/freebsd/ +cp -p %{_rescuesrc}/solaris/Makefile* $RPM_BUILD_ROOT%{sysconf_dir}/rescue/solaris/ +cp -p %{_rescuesrc}/README $RPM_BUILD_ROOT%{sysconf_dir}/rescue/ +cp -p %{_rescuesrc}/configure $RPM_BUILD_ROOT%{sysconf_dir}/rescue/ +cp -p %{_rescuesrc}/version.h $RPM_BUILD_ROOT%{sysconf_dir}/rescue/ +cp -pr %{_rescuesrc}/linux $RPM_BUILD_ROOT%{sysconf_dir}/rescue/ +cp -pr %{_rescuesrc}/autoconf $RPM_BUILD_ROOT%{sysconf_dir}/rescue/ +cp -pr %{_rescuesrc}/knoppix $RPM_BUILD_ROOT%{sysconf_dir}/rescue/ +touch $RPM_BUILD_ROOT%{sysconf_dir}/rescue/linux/cdrom/rpm_release +cp -p src/filed/static-bacula-fd $RPM_BUILD_ROOT%{sysconf_dir}/rescue/linux/cdrom/bacula/bin/bacula-fd +rm -f src/filed/static-bacula-fd + +# install bat since make doesn't at the moment +%if %{bat} +cp -p src/qt-console/bat $RPM_BUILD_ROOT/usr/sbin/bat +cp -p src/qt-console/bat.conf $RPM_BUILD_ROOT%{sysconf_dir}/bat.conf +%endif + +# now clean up permissions that are left broken by the install +chmod o-rwx $RPM_BUILD_ROOT%{working_dir} +%if %{gconsole} && ! %{rh8} +chmod 755 $RPM_BUILD_ROOT/usr/sbin/bacula-tray-monitor +chmod 644 $RPM_BUILD_ROOT%{sysconf_dir}/tray-monitor.conf +%endif + +# fix me - building enable-client-only installs files not included in bacula-client package +%if %{client_only} +rm -f $RPM_BUILD_ROOT%{script_dir}/bacula +rm -f $RPM_BUILD_ROOT%{script_dir}/bacula-ctl-dir +rm -f $RPM_BUILD_ROOT%{script_dir}/bacula-ctl-sd +rm -f $RPM_BUILD_ROOT%{script_dir}/disk-changer +rm -f $RPM_BUILD_ROOT%{script_dir}/dvd-handler +rm -f $RPM_BUILD_ROOT%{script_dir}/mtx-changer +rm -f $RPM_BUILD_ROOT%{script_dir}/startmysql +rm -f $RPM_BUILD_ROOT%{script_dir}/stopmysql +rm -rf $RPM_BUILD_ROOT%{script_dir}/updatedb +%endif + +%clean +[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT" +rm -rf $RPM_BUILD_DIR/%{name}-docs-%{docs_version} +rm -rf $RPM_BUILD_DIR/%{name}-rescue-%{_rescuever} +rm -rf $RPM_BUILD_DIR/depkgs +rm -f $RPM_BUILD_DIR/Release_Notes-%{version}-%{release}.txt + +%if %{mysql} +# MySQL specific files +%files mysql +%defattr(-, root, root) +%attr(-, root, %{daemon_group}) %{script_dir}/create_mysql_database +%attr(-, root, %{daemon_group}) %{script_dir}/drop_mysql_database +%attr(-, root, %{daemon_group}) %{script_dir}/make_mysql_tables +%attr(-, root, %{daemon_group}) %{script_dir}/drop_mysql_tables +%attr(-, root, %{daemon_group}) %{script_dir}/update_mysql_tables +%attr(-, root, %{daemon_group}) %{script_dir}/grant_mysql_privileges +%attr(-, root, %{daemon_group}) %{script_dir}/startmysql +%attr(-, root, %{daemon_group}) %{script_dir}/stopmysql +%endif + +%if %{sqlite} +%files sqlite +%defattr(-,root,root) +%attr(-, root, %{daemon_group}) %{script_dir}/create_sqlite3_database +%attr(-, root, %{daemon_group}) %{script_dir}/drop_sqlite3_database +%attr(-, root, %{daemon_group}) %{script_dir}/grant_sqlite3_privileges +%attr(-, root, %{daemon_group}) %{script_dir}/make_sqlite3_tables +%attr(-, root, %{daemon_group}) %{script_dir}/drop_sqlite3_tables +%attr(-, root, %{daemon_group}) %{script_dir}/update_sqlite3_tables +%{sqlite_bindir}/libsqlite3.a +%{sqlite_bindir}/sqlite3.h +%{sqlite_bindir}/sqlite3 +%endif + +%if %{postgresql} +%files postgresql +%defattr(-,root,root) +%attr(-, root, %{daemon_group}) %{script_dir}/create_postgresql_database +%attr(-, root, %{daemon_group}) %{script_dir}/drop_postgresql_database +%attr(-, root, %{daemon_group}) %{script_dir}/make_postgresql_tables +%attr(-, root, %{daemon_group}) %{script_dir}/drop_postgresql_tables +%attr(-, root, %{daemon_group}) %{script_dir}/update_postgresql_tables +%attr(-, root, %{daemon_group}) %{script_dir}/grant_postgresql_privileges +%endif + +# The rest is DB backend independent +%if ! %{client_only} +%attr(-, root, %{daemon_group}) %dir %{script_dir} +%attr(-, root, %{daemon_group}) %{script_dir}/bacula +%attr(-, root, %{daemon_group}) %{script_dir}/bconsole +%attr(-, root, %{daemon_group}) %{script_dir}/create_bacula_database +%attr(-, root, %{daemon_group}) %{script_dir}/drop_bacula_database +%attr(-, root, %{daemon_group}) %{script_dir}/grant_bacula_privileges +%attr(-, root, %{daemon_group}) %{script_dir}/make_bacula_tables +%attr(-, root, %{daemon_group}) %{script_dir}/drop_bacula_tables +%attr(-, root, %{daemon_group}) %{script_dir}/update_bacula_tables +%attr(-, root, %{daemon_group}) %{script_dir}/make_catalog_backup +%attr(-, root, %{daemon_group}) %{script_dir}/delete_catalog_backup +%attr(-, root, %{daemon_group}) %{script_dir}/btraceback.dbx +%attr(-, root, %{daemon_group}) %{script_dir}/btraceback.gdb +%attr(-, root, %{daemon_group}) %{sysconf_dir}/rescue +%attr(-, root, %{daemon_group}) %{script_dir}/disk-changer +%attr(-, root, %{daemon_group}) %{script_dir}/bacula-ctl-dir +%attr(-, root, %{daemon_group}) %{script_dir}/bacula-ctl-fd +%attr(-, root, %{daemon_group}) %{script_dir}/bacula-ctl-sd +%attr(-, root, %{daemon_group}) /etc/init.d/bacula-dir +%attr(-, root, %{daemon_group}) /etc/init.d/bacula-fd +%attr(-, root, %{storage_daemon_group}) %{script_dir}/dvd-handler +%attr(-, root, %{storage_daemon_group}) /etc/init.d/bacula-sd +%attr(-, root, %{storage_daemon_group}) %{script_dir}/mtx-changer + +%doc COPYING ChangeLog ReleaseNotes VERIFYING kernstodo +%doc %{_docsrc}/manual/bacula.pdf %{_docsrc}/developers/developers.pdf %{_docsrc}/manual/bacula ../Release_Notes-%{version}-%{release}.txt + +/etc/logrotate.d/bacula +/etc/log.d/scripts/services/bacula +%attr(-, root, %{daemon_group}) %config(noreplace) %{sysconf_dir}/bacula-dir.conf +%attr(-, root, %{daemon_group}) %config(noreplace) %{sysconf_dir}/bacula-fd.conf +%attr(-, root, %{storage_daemon_group}) %config(noreplace) %{sysconf_dir}/bacula-sd.conf +%attr(-, root, %{daemon_group}) %config(noreplace) %{sysconf_dir}/bconsole.conf +%attr(-, root, %{daemon_group}) %config(noreplace) /etc/log.d/conf/logfiles/bacula.conf +%attr(-, root, %{daemon_group}) %config(noreplace) /etc/log.d/conf/services/bacula.conf +%attr(-, root, %{daemon_group}) %config(noreplace) %{script_dir}/query.sql + +%attr(-, %{storage_daemon_user}, %{daemon_group}) %dir %{working_dir} + +/usr/sbin/bacula-dir +/usr/sbin/bacula-fd +/usr/sbin/bacula-sd +/usr/sbin/bcopy +/usr/sbin/bextract +/usr/sbin/bls +/usr/sbin/bscan +/usr/sbin/btape +/usr/sbin/btraceback +/usr/sbin/bconsole +/usr/sbin/dbcheck +/usr/sbin/bsmtp +/usr/sbin/bregex +/usr/sbin/bwild +%{_mandir}/man8/bacula-fd.8.%{manpage_ext} +%{_mandir}/man8/bacula-dir.8.%{manpage_ext} +%{_mandir}/man8/bacula-sd.8.%{manpage_ext} +%{_mandir}/man8/bacula.8.%{manpage_ext} +%{_mandir}/man8/bconsole.8.%{manpage_ext} +%{_mandir}/man8/bcopy.8.%{manpage_ext} +%{_mandir}/man8/bextract.8.%{manpage_ext} +%{_mandir}/man8/bls.8.%{manpage_ext} +%{_mandir}/man8/bscan.8.%{manpage_ext} +%{_mandir}/man8/btape.8.%{manpage_ext} +%{_mandir}/man8/btraceback.8.%{manpage_ext} +%{_mandir}/man8/dbcheck.8.%{manpage_ext} +%{_mandir}/man1/bsmtp.1.%{manpage_ext} +%endif + +%if %{mysql} +%pre mysql +# test for bacula database older than version 9 +# note: this ASSUMES no password has been set for bacula database +DB_VER=`mysql 2>/dev/null bacula -e 'select * from Version;'|tail -n 1` +%endif + +%if %{sqlite} +%pre sqlite +# are we upgrading from sqlite to sqlite3? +if [ -s %{working_dir}/bacula.db ] && [ -s %{sqlite_bindir}/sqlite ];then + echo "This version of bacula-sqlite involves an upgrade to sqlite3." + echo "Your catalog database file is not compatible with sqlite3, thus" + echo "you will need to dump the data, delete the old file, and re-run" + echo "this rpm upgrade." + echo "" + echo "Backing up your current database..." + echo ".dump" | %{sqlite_bindir}/sqlite %{working_dir}/bacula.db > %{working_dir}/bacula_backup.sql + mv %{working_dir}/bacula.db %{working_dir}/bacula.db.old + echo "Your catalog data has been saved in %{working_dir}/bacula_backup.sql and your" + echo "catalog file has been renamed %{working_dir}/bacula.db.old." + echo "" + echo "Please re-run this rpm package upgrade." + echo "After the upgrade is complete, restore your catalog" + echo "with the following commands:" + echo "%{script_dir}/drop_sqlite3_tables" + echo "cd %{working_dir}" + echo "%{sqlite_bindir}/sqlite3 $* bacula.db < bacula_backup.sql" + echo "chown bacula.bacula bacula.db" + exit 1 +fi +# test for bacula database older than version 9 and sqlite3 +if [ -s %{working_dir}/bacula.db ] && [ -s %{sqlite_bindir}/sqlite3 ];then + DB_VER=`echo "select * from Version;" | %{sqlite_bindir}/sqlite3 2>/dev/null %{working_dir}/bacula.db | tail -n 1` +%endif + +%if %{postgresql} +%pre postgresql +DB_VER=`echo 'select * from Version;' | psql bacula 2>/dev/null | tail -3 | head -1` +%endif + +%if ! %{client_only} +if [ -n "$DB_VER" ] && [ "$DB_VER" -lt "9" ]; then + echo "This bacula upgrade will update a bacula database from version 9 to 10." + echo "You appear to be running database version $DB_VER. You must first update" + echo "your database to version 9 and then install this upgrade. The alternative" + echo "is to use %{script_dir}/drop_%{db_backend}_tables to delete all your your current" + echo "catalog information, then do the upgrade. Information on updating a" + echo "database older than version 9 can be found in the release notes." + exit 1 +fi +%endif + +%if %{sqlite} +fi +%endif + +%if ! %{client_only} +# check for and copy %{sysconf_dir}/console.conf to bconsole.conf +if [ -s %{sysconf_dir}/console.conf ];then + cp -p %{sysconf_dir}/console.conf %{sysconf_dir}/bconsole.conf +fi + +# create the daemon users and groups +# first create the groups if they don't exist +HAVE_BACULA=`grep %{daemon_group} %{group_file} 2>/dev/null` +if [ -z "$HAVE_BACULA" ]; then + %{groupadd} -r %{daemon_group} > /dev/null 2>&1 + echo "The group %{daemon_group} has been added to %{group_file}." + echo "See the manual chapter \"Running Bacula\" for details." +fi +HAVE_BACULA=`grep %{storage_daemon_group} %{group_file} 2>/dev/null` +if [ -z "$HAVE_BACULA" ]; then + %{groupadd} -r %{storage_daemon_group} > /dev/null 2>&1 + echo "The group %{storage_daemon_group} has been added to %{group_file}." + echo "See the manual chapter \"Running Bacula\" for details." +fi +# now create the users if they do not exist +# we do not use the -g option allowing the primary group to be set to system default +# this will be a unique group on redhat type systems or the group users on some systems +HAVE_BACULA=`grep %{storage_daemon_user} %{user_file} 2>/dev/null` +if [ -z "$HAVE_BACULA" ]; then + %{useradd} -r -c "Bacula" -d %{working_dir} -g %{storage_daemon_group} -M -s /sbin/nologin %{storage_daemon_user} > /dev/null 2>&1 + echo "The user %{storage_daemon_user} has been added to %{user_file}." + echo "See the manual chapter \"Running Bacula\" for details." +fi +HAVE_BACULA=`grep %{director_daemon_user} %{user_file} 2>/dev/null` +if [ -z "$HAVE_BACULA" ]; then + %{useradd} -r -c "Bacula" -d %{working_dir} -g %{daemon_group} -M -s /sbin/nologin %{director_daemon_user} > /dev/null 2>&1 + echo "The user %{director_daemon_user} has been added to %{user_file}." + echo "See the manual chapter \"Running Bacula\" for details." +fi +HAVE_BACULA=`grep %{file_daemon_user} %{user_file} 2>/dev/null` +if [ -z "$HAVE_BACULA" ]; then + %{useradd} -r -c "Bacula" -d %{working_dir} -g %{daemon_group} -M -s /sbin/nologin %{file_daemon_user} > /dev/null 2>&1 + echo "The user %{file_daemon_user} has been added to %{user_file}." + echo "See the manual chapter \"Running Bacula\" for details." +fi +# now we add the supplementary groups, this is ok to call even if the users already exist +# we only do this if the user is NOT root +IS_ROOT=%{director_daemon_user} +if [ "$IS_ROOT" != "root" ]; then +%{usermod} -G %{daemon_group} %{director_daemon_user} +fi +IS_ROOT=%{storage_daemon_user} +if [ "$IS_ROOT" != "root" ]; then +%{usermod} -G %{daemon_group},%{storage_daemon_group} %{storage_daemon_user} +fi +IS_ROOT=%{file_daemon_user} +if [ "$IS_ROOT" != "root" ]; then +%{usermod} -G %{daemon_group} %{file_daemon_user} +fi +%endif + +%if %{mysql} +%post mysql +%endif +%if %{sqlite} +%post sqlite +%endif +%if %{postgresql} +%post postgresql +%endif + +%if ! %{client_only} +# add our links +if [ "$1" -ge 1 ] ; then +/sbin/chkconfig --add bacula-dir +/sbin/chkconfig --add bacula-fd +/sbin/chkconfig --add bacula-sd +fi +%endif + +%if %{mysql} +# test for an existing database +# note: this ASSUMES no password has been set for bacula database +DB_VER=`mysql 2>/dev/null bacula -e 'select * from Version;'|tail -n 1` + +# grant privileges and create tables if they do not exist +if [ -z "$DB_VER" ]; then + echo "Hmm, doesn't look like you have an existing database." + echo "Granting privileges for MySQL user bacula..." + %{script_dir}/grant_mysql_privileges + echo "Creating MySQL bacula database..." + %{script_dir}/create_mysql_database + echo "Creating bacula tables..." + %{script_dir}/make_mysql_tables + +# check to see if we need to upgrade a 1.38 or lower database +elif [ "$DB_VER" -lt "10" ]; then + echo "This release requires an upgrade to your bacula database." + echo "Backing up your current database..." + mysqldump -f --opt bacula | bzip2 > %{working_dir}/bacula_backup.sql.bz2 + echo "Upgrading bacula database ..." + %{script_dir}/update_mysql_tables + echo "If bacula works correctly you can remove the backup file %{working_dir}/bacula_backup.sql.bz2" + +fi +%endif + +%if %{sqlite} +# test for an existing database +if [ -s %{working_dir}/bacula.db ]; then + DB_VER=`echo "select * from Version;" | %{sqlite_bindir}/sqlite3 2>/dev/null %{working_dir}/bacula.db | tail -n 1` + # check to see if we need to upgrade a 1.38 or lower database + if [ "$DB_VER" -lt "10" ] && [ "$DB_VER" -ge "9" ]; then + echo "This release requires an upgrade to your bacula database." + echo "Backing up your current database..." + echo ".dump" | %{sqlite_bindir}/sqlite3 %{working_dir}/bacula.db | bzip2 > %{working_dir}/bacula_backup.sql.bz2 + echo "Upgrading bacula database ..." + %{script_dir}/update_sqlite3_tables + echo "If bacula works correctly you can remove the backup file %{working_dir}/bacula_backup.sql.bz2" + fi +else + # create the database and tables + echo "Hmm, doesn't look like you have an existing database." + echo "Creating SQLite database..." + %{script_dir}/create_sqlite3_database + chown %{director_daemon_user}.%{daemon_group} %{working_dir}/bacula.db + echo "Creating the SQLite tables..." + %{script_dir}/make_sqlite3_tables +fi +%endif + +%if %{postgresql} +# test for an existing database +# note: this ASSUMES no password has been set for bacula database +DB_VER=`echo 'select * from Version;' | psql bacula 2>/dev/null | tail -3 | head -1` + +# grant privileges and create tables if they do not exist +if [ -z "$DB_VER" ]; then + echo "Hmm, doesn't look like you have an existing database." + echo "Creating PostgreSQL bacula database..." + %{script_dir}/create_postgresql_database + echo "Creating bacula tables..." + %{script_dir}/make_postgresql_tables + echo "Granting privileges for PostgreSQL user bacula..." + %{script_dir}/grant_postgresql_privileges + +# check to see if we need to upgrade a 1.38 or lower database +elif [ "$DB_VER" -lt "10" ]; then + echo "This release requires an upgrade to your bacula database." + echo "Backing up your current database..." + pg_dump bacula | bzip2 > %{working_dir}/bacula_backup.sql.bz2 + echo "Upgrading bacula database ..." + %{script_dir}/update_postgresql_tables + echo "If bacula works correctly you can remove the backup file %{working_dir}/bacula_backup.sql.bz2" + +fi +%endif + +%if ! %{client_only} +# generate passwords if needed +if [ -d %{sysconf_dir} ]; then + cd %{sysconf_dir} + for file in *.conf; do + for string in XXX_REPLACE_WITH_DIRECTOR_PASSWORD_XXX XXX_REPLACE_WITH_CLIENT_PASSWORD_XXX XXX_REPLACE_WITH_STORAGE_PASSWORD_XXX XXX_REPLACE_WITH_DIRECTOR_MONITOR_PASSWORD_XXX XXX_REPLACE_WITH_CLIENT_MONITOR_PASSWORD_XXX XXX_REPLACE_WITH_STORAGE_MONITOR_PASSWORD_XXX; do + need_password=`grep $string $file 2>/dev/null` + if [ -n "$need_password" ]; then + pass=`openssl rand -base64 33` + sed "s-$string-$pass-g" $file > $file.new + cp -f $file.new $file; rm -f $file.new + fi + done + done +fi +%endif + +%if %{mysql} +%preun mysql +%endif +%if %{sqlite} +%preun sqlite +%endif +%if %{postgresql} +%preun postgresql +%endif + +%if ! %{client_only} +# delete our links +if [ $1 = 0 ]; then +/sbin/chkconfig --del bacula-dir +/sbin/chkconfig --del bacula-fd +/sbin/chkconfig --del bacula-sd +fi +%endif + + +%if ! %{client_only} && %{mtx} +%files mtx +%defattr(-,root,root) +%attr(-, root, %{storage_daemon_group}) /usr/sbin/loaderinfo +%attr(-, root, %{storage_daemon_group}) /usr/sbin/mtx +%attr(-, root, %{storage_daemon_group}) /usr/sbin/scsitape +%attr(-, root, %{storage_daemon_group}) /usr/sbin/tapeinfo +%attr(-, root, %{storage_daemon_group}) /usr/sbin/nsmhack +%attr(-, root, %{storage_daemon_group}) /usr/sbin/scsieject +%{_mandir}/man1/loaderinfo.1.%{manpage_ext} +%{_mandir}/man1/mtx.1.%{manpage_ext} +%{_mandir}/man1/scsitape.1.%{manpage_ext} +%{_mandir}/man1/tapeinfo.1.%{manpage_ext} +%{_mandir}/man1/scsieject.1.%{manpage_ext} +%endif + +%files client +%defattr(-,root,root) +%attr(-, root, %{daemon_group}) %dir %{script_dir} +%attr(-, root, %{daemon_group}) %{script_dir}/bconsole +%{script_dir}/bacula-ctl-fd +/etc/init.d/bacula-fd +%attr(-, root, %{daemon_group}) %{sysconf_dir}/rescue + +%doc COPYING ChangeLog ReleaseNotes VERIFYING kernstodo +%doc %{_docsrc}/manual/bacula.pdf %{_docsrc}/developers/developers.pdf %{_docsrc}/manual/bacula ../Release_Notes-%{version}-%{release}.txt + +/etc/logrotate.d/bacula + +%attr(-, root, %{daemon_group}) %config(noreplace) %{sysconf_dir}/bacula-fd.conf +%attr(-, root, %{daemon_group}) %config(noreplace) %{sysconf_dir}/bconsole.conf + +%attr(-, root, %{daemon_group}) %dir %{working_dir} + +/usr/sbin/bacula-fd +/usr/sbin/btraceback +%attr(-, root, %{daemon_group}) %{script_dir}/btraceback.gdb +%attr(-, root, %{daemon_group}) %{script_dir}/btraceback.dbx +/usr/sbin/bconsole +%{_mandir}/man8/bacula-fd.8.%{manpage_ext} +%{_mandir}/man8/bacula.8.%{manpage_ext} +%{_mandir}/man8/bconsole.8.%{manpage_ext} +%{_mandir}/man8/btraceback.8.%{manpage_ext} + + +%pre client +# create the daemon group and user +HAVE_BACULA=`grep %{daemon_group} %{group_file} 2>/dev/null` +if [ -z "$HAVE_BACULA" ]; then + %{groupadd} -r %{daemon_group} > /dev/null 2>&1 + echo "The group %{daemon_group} has been added to %{group_file}." + echo "See the manual chapter \"Running Bacula\" for details." +fi +# we do not use the -g option allowing the primary group to be set to system default +# this will be a unique group on redhat type systems or the group users on some systems +HAVE_BACULA=`grep %{file_daemon_user} %{user_file} 2>/dev/null` +if [ -z "$HAVE_BACULA" ]; then + %{useradd} -r -c "Bacula" -d %{working_dir} -g %{daemon_group} -M -s /sbin/nologin %{file_daemon_user} > /dev/null 2>&1 + echo "The user %{file_daemon_user} has been added to %{user_file}." + echo "See the manual chapter \"Running Bacula\" for details." +fi +# now we add the supplementary group, this is ok to call even if the user already exists +# we only do this if the user is NOT root +IS_ROOT=%{file_daemon_user} +if [ "$IS_ROOT" != "root" ]; then +%{usermod} -G %{daemon_group} %{file_daemon_user} +fi + +%post client +# add our link +if [ "$1" -ge 1 ] ; then +/sbin/chkconfig --add bacula-fd +fi + +# generate passwords if needed +if [ -d %{sysconf_dir} ]; then + cd %{sysconf_dir} + for file in *.conf; do + for string in XXX_REPLACE_WITH_DIRECTOR_PASSWORD_XXX XXX_REPLACE_WITH_CLIENT_PASSWORD_XXX XXX_REPLACE_WITH_STORAGE_PASSWORD_XXX XXX_REPLACE_WITH_DIRECTOR_MONITOR_PASSWORD_XXX XXX_REPLACE_WITH_CLIENT_MONITOR_PASSWORD_XXX XXX_REPLACE_WITH_STORAGE_MONITOR_PASSWORD_XXX; do + need_password=`grep $string $file 2>/dev/null` + if [ -n "$need_password" ]; then + pass=`openssl rand -base64 33` + sed "s-$string-$pass-g" $file > $file.new + cp -f $file.new $file; rm -f $file.new + fi + done + done +fi + +%preun client +# delete our link +if [ $1 = 0 ]; then +/sbin/chkconfig --del bacula-fd +fi + +%if ! %{client_only} +%files updatedb +%defattr(-,root,%{daemon_group}) +%{script_dir}/updatedb/* + +%pre updatedb +# create the daemon group +HAVE_BACULA=`grep %{daemon_group} %{group_file} 2>/dev/null` +if [ -z "$HAVE_BACULA" ]; then + %{groupadd} -r %{daemon_group} > /dev/null 2>&1 + echo "The group %{daemon_group} has been added to %{group_file}." + echo "See the manual chapter \"Running Bacula\" for details." +fi + +%post updatedb +echo "The database update scripts were installed to %{script_dir}/updatedb" +%endif + +%if %{gconsole} +%files gconsole +%defattr(-,root,root) +/usr/sbin/bgnome-console +%attr(-, root, %{daemon_group}) %dir %{script_dir} +%attr(-, root, %{daemon_group}) %{script_dir}/gconsole +%attr(-, root, %{daemon_group}) %config(noreplace) %{sysconf_dir}/bgnome-console.conf +/usr/share/pixmaps/bacula.png +/usr/share/applications/bacula.desktop +%{_mandir}/man1/bacula-bgnome-console.1.%{manpage_ext} +%endif + +%if %{gconsole} && ! %{rh8} +/usr/sbin/bacula-tray-monitor +%config(noreplace) %{sysconf_dir}/tray-monitor.conf +/usr/share/pixmaps/bacula-tray-monitor.xpm +/usr/share/applications/bacula-tray-monitor.desktop +%{_mandir}/man1/bacula-tray-monitor.1.%{manpage_ext} +%endif + +%if %{gconsole} && ! %{su9} && ! %{su10} && ! %{su102} && ! %{su103} +# add the console helper files +%config(noreplace,missingok) /etc/pam.d/bgnome-console +%config(noreplace,missingok) /etc/security/console.apps/bgnome-console +/usr/bin/bgnome-console +%endif + +%if %{gconsole} +%pre gconsole +# create the daemon group +HAVE_BACULA=`grep %{daemon_group} %{group_file} 2>/dev/null` +if [ -z "$HAVE_BACULA" ]; then + %{groupadd} -r %{daemon_group} > /dev/null 2>&1 + echo "The group %{daemon_group} has been added to %{group_file}." + echo "See the manual chapter \"Running Bacula\" for details." +fi + +%post gconsole +# generate passwords if needed +if [ -d %{sysconf_dir} ]; then + cd %{sysconf_dir} + for file in *.conf; do + for string in XXX_REPLACE_WITH_DIRECTOR_PASSWORD_XXX XXX_REPLACE_WITH_CLIENT_PASSWORD_XXX XXX_REPLACE_WITH_STORAGE_PASSWORD_XXX XXX_REPLACE_WITH_DIRECTOR_MONITOR_PASSWORD_XXX XXX_REPLACE_WITH_CLIENT_MONITOR_PASSWORD_XXX XXX_REPLACE_WITH_STORAGE_MONITOR_PASSWORD_XXX; do + need_password=`grep $string $file 2>/dev/null` + if [ -n "$need_password" ]; then + pass=`openssl rand -base64 33` + sed "s-$string-$pass-g" $file > $file.new + cp -f $file.new $file; rm -f $file.new + fi + done + done +fi +%endif + +%if %{wxconsole} +%files wxconsole +%defattr(-,root,root) +/usr/sbin/bwx-console +%attr(-, root, %{daemon_group}) %dir %{sysconf_dir} +%attr(-, root, %{daemon_group}) %config(noreplace) %{sysconf_dir}/bwx-console.conf +/usr/share/pixmaps/wxwin16x16.xpm +/usr/share/applications/wxconsole.desktop +%{_mandir}/man1/bacula-bwxconsole.1.%{manpage_ext} +%endif + +%if %{wxconsole} && ! %{su9} && ! %{su10} && ! %{su102} && ! %{su103} +# add the console helper files +%config(noreplace,missingok) /etc/pam.d/bwx-console +%config(noreplace,missingok) /etc/security/console.apps/bwx-console +/usr/bin/bwx-console +%endif + +%if %{wxconsole} +%pre wxconsole +# create the daemon group +HAVE_BACULA=`grep %{daemon_group} %{group_file} 2>/dev/null` +if [ -z "$HAVE_BACULA" ]; then + %{groupadd} -r %{daemon_group} > /dev/null 2>&1 + echo "The group %{daemon_group} has been added to %{group_file}." + echo "See the manual chapter \"Running Bacula\" for details." +fi + +%post wxconsole +# generate passwords if needed +if [ -d %{sysconf_dir} ]; then + cd %{sysconf_dir} + for file in *.conf; do + for string in XXX_REPLACE_WITH_DIRECTOR_PASSWORD_XXX XXX_REPLACE_WITH_CLIENT_PASSWORD_XXX XXX_REPLACE_WITH_STORAGE_PASSWORD_XXX XXX_REPLACE_WITH_DIRECTOR_MONITOR_PASSWORD_XXX XXX_REPLACE_WITH_CLIENT_MONITOR_PASSWORD_XXX XXX_REPLACE_WITH_STORAGE_MONITOR_PASSWORD_XXX; do + need_password=`grep $string $file 2>/dev/null` + if [ -n "$need_password" ]; then + pass=`openssl rand -base64 33` + sed "s-$string-$pass-g" $file > $file.new + cp -f $file.new $file; rm -f $file.new + fi + done + done +fi +%endif + +%if %{bat} +%files bat +%defattr(-,root,root) +/usr/sbin/bat +%attr(-, root, %{daemon_group}) %dir %{sysconf_dir} +%attr(-, root, %{daemon_group}) %config(noreplace) %{sysconf_dir}/bat.conf +/usr/share/pixmaps/bat_icon.png +/usr/share/applications/bat.desktop +%{_mandir}/man1/bat.1.%{manpage_ext} +%endif + +%if %{bat} && ! %{su9} && ! %{su10} && ! %{su102} && ! %{su103} +# add the console helper files +%config(noreplace,missingok) /etc/pam.d/bat +%config(noreplace,missingok) /etc/security/console.apps/bat +/usr/bin/bat +%endif + +%if %{bat} +%pre bat +# create the daemon group +HAVE_BACULA=`grep %{daemon_group} %{group_file} 2>/dev/null` +if [ -z "$HAVE_BACULA" ]; then + %{groupadd} -r %{daemon_group} > /dev/null 2>&1 + echo "The group %{daemon_group} has been added to %{group_file}." + echo "See the manual chapter \"Running Bacula\" for details." +fi + +%post bat +# generate passwords if needed +if [ -d %{sysconf_dir} ]; then + cd %{sysconf_dir} + for file in *.conf; do + for string in XXX_REPLACE_WITH_DIRECTOR_PASSWORD_XXX XXX_REPLACE_WITH_CLIENT_PASSWORD_XXX XXX_REPLACE_WITH_STORAGE_PASSWORD_XXX XXX_REPLACE_WITH_DIRECTOR_MONITOR_PASSWORD_XXX XXX_REPLACE_WITH_CLIENT_MONITOR_PASSWORD_XXX XXX_REPLACE_WITH_STORAGE_MONITOR_PASSWORD_XXX; do + need_password=`grep $string $file 2>/dev/null` + if [ -n "$need_password" ]; then + pass=`openssl rand -base64 33` + sed "s-$string-$pass-g" $file > $file.new + cp -f $file.new $file; rm -f $file.new + fi + done + done +fi +%endif + +%changelog +* Sat Jan 12 2008 D. Scott Barninger +- 2.2.8 release +- fix bug 1037 +- add fc8 target +* Sun Dec 30 2007 D. Scott Barninger +- fix typo on su103 client package requirements +* Fri Dec 28 2007 D. Scott Barninger +- add nobuild_mtx switch +- add patch for postgresql.c for old postgresql versions +* Sat Nov 17 2007 D. Scott Barninger +- switch to sqlite3 +* Sun Nov 11 2007 D. Scott Barninger +- add new files required by rescue makefile +* Sat Nov 10 2007 D. Scott Barninger +- add su103 build target +* Sun Nov 04 2007 D. Scott Barninger +- fix dist defines for rhel5 and clones +- fix rhel broken 64 bit QT4 paths +- rh qt4 packages don't provide qt so fix that too +* Mon Oct 29 2007 D. Scott Barninger +- correct ownership when creating sqlite db file in post script +* Sun Sep 16 2007 D. Scott Barninger +- fix disable-batch-insert +* Fri Sep 14 2007 D. Scott Barninger +- 2.2.4 release +- turn off gconsole build for fc3, tray monitor fails to build +- add new files for mtx package (09Sep07 depkgs update) +* Sat Sep 08 2007 D. Scott Barninger +- add --disable-batch-insert for older platforms +- add build targets for rhel5 and clones +* Mon Sep 03 2007 D. Scott Barninger +- 2.2.1 release +- turn off gconsole build for su10 & fc4, tray monitor fails to build +* Sat Jul 14 2007 D. Scott Barninger +- 2.1.26 add make of qwt in depkgs for bat +* Sat Jun 02 2007 D. Scott Barninger +- upgrade Qt requirement for bat to 4.2 +* Sun May 06 2007 D. Scott Barninger +- add fc7 build target +* Sun Apr 29 2007 D. Scott Barninger +- 2.1.8 +- gnome-console now bgnome-console +- wxconsole now bwx-console +- add build option for bat +* Sat Apr 08 2007 D. Scott Barninger +- merge Otto Mueller's patch but keep script dir set to /etc/bacula +- add build tag for Scientific Linux per Jon Peatfield +* Tue Mar 27 2007 Otto Mueller +- adjust directory locations for FHS-compatibility + sysconf_dir (/etc/bacula), script_dir (/usr/lib/bacula), + working_dir (/var/lib/bacula) and pid_dir (/var/run) +* Mon Feb 26 2007 D. Scott Barninger +- add SuSE 10.2 target +* Sat Jan 20 2007 D. Scott Barninger +- correct bug 752 +- set query.sql as config file +- correct bug 754 +* Sun Jan 14 2007 D. Scott Barninger +- 2.0.1 release +- change determination of gcc version per patch from Marc Hennes +- move BuildRequire for atk-devel to gnome only builds +- add fc6 build tag +* Sat Jan 06 2007 D. Scott Barninger +- 2.0.0 release +* Sun Oct 15 2006 D. Scott Barninger +- 1.39.26 remove create_sqlite_database.in.patch +* Sun Sep 24 2006 D. Scott Barninger +- change ownership of working_dir on server packages to bacula.bacula so that +- bacula-sd can create bootstrap files +* Sat Sep 02 2006 D. Scott Barninger +- 1.39.22 remove separate cd and make of manpages the main Makefile does it now +* Sun Aug 06 2006 D. Scott Barninger +- fix manpages file extension for mdk +* Sat Aug 05 2006 D. Scott Barninger +- bug 648 re-enable and update sqlite patches +- 1.39.18 changes +- updatedb 9 to 10 +- install man pages +- lock out gconsole build for gtk+ < 2.4 +* Mon Jul 17 2006 D. Scott Barninger +- move pango-devel BuildRequires into gconsole only build +* Sat Jul 15 2006 D. Scott Barninger +- add provides and conflicts for standard suse packages +- add third party packager tag support +- add build_client_only tag +- remove bsmtp from client package +- add bacula-ctl-fd to client package +* Thu Jul 13 2006 D. Scott Barninger +- fix directory creation when wxconsole and not gconsole +* Tue Jul 04 2006 D. Scott Barninger +- add check to buildrequires to make sure libstdc++ version matches gcc +* Mon Jul 03 2006 D. Scott Barninger +- add python build support +- fix LDFLAGS declarations +* Sun Jul 02 2006 D. Scott Barninger +- add requires for standard compiler toolchain +- move version and release tags up +- move patches up +- add docs_version tag +* Sat Jul 01 2006 D. Scott Barninger +- update rescuever to 1.8.6 +* Sun Jun 25 2006 D. Scott Barninger +- update depkgs to 25Jun06 +- add mysql5 build tag +* Mon Jun 12 2006 D. Scott Barninger +- 1.38.10 bump rescue version +* Sun Jun 03 2006 D. Scott Barninger +- fix usermod statements +- add fc5 target +* Thu Apr 27 2006 D. Scott Barninger +- add -g param back to useradd statements Bug 605 +* Mon Apr 17 2006 D. Scott Barninger +- redundant code cleanup +* Sun Apr 16 2006 D. Scott Barninger +- add wxconsole package +* Fri Apr 14 2006 D. Scott Barninger +- 1.38.8 release +- dependency update for Mandriva +* Sun Apr 08 2006 D. Scott Barninger +- 1.38.7 release +- remove -n option from useradd scripts +* Sun Apr 02 2006 D. Scott Barninger +- 1.38.6 release +- fix problem specifying more than one primary group for user bacula +- add build switch to not build gconsole regardless of platform +* Sun Jan 29 2006 D. Scott Barninger +- add centos3 build tag +- fix link error of static-fd on Mandrake with --disable-nls +* Fri Jan 27 2006 D. Scott Barninger +- add fc4 dependencies +* Mon Jan 23 2006 D. Scott Barninger +- add SuSE 10.0 build +- remove specific permission in attrib macros +* Sat Jan 21 2006 D. Scott Barninger +- 1.38.5 release +- fix usermode required on suse, suse doesn't have usermode (xsu instead) +- refix compat for _dist on SLES9 which seems to have been removed +- added note regarding Aleksandar's use of specific permissions in attrib macros +- need to review and add specific fc4 build currently using fc3 Requires +* Wed Dec 14 2005 Aleksandar Milivojevic +- 1.38.2 release +- Reorganize files and pre/post sections to remove repetitions +- Always build separate mtx package +- Fix file ownerships for /etc/bacula and Bacula's working dir +* Wed Nov 23 2005 Aleksandar Milivojevic +- Disable GNOME on RH7 +* Fri Nov 18 2005 Aleksandar Milivojevic +- Red Hat and look alikes have mtx RPM, do not build/package our version +* Sun Nov 13 2005 D. Scott Barninger +- minor edit to _dist for SLES9 compatibility +* Sat Nov 05 2005 D. Scott Barninger +- 1.38.0 release +- kern changed location of pdf files and html manual in docs package +* Sun Oct 30 2005 D. Scott Barninger +- 1.38.0 release +- add docs (from prebuilt tarball) and rescue packages back in +- remove dvd-freespace and dvd-writepart files, add dvd-handler +- remove 3 of 4 sqlite script patches as not needed +* Sun Jul 24 2005 D. Scott Barninger +- changes for 1.38 +- remove docs and rescue sections (remove static fd) +- add dvd-freespace and dvd-writepart files +- update depkgs to 22Jun05 +- change database update to 8 to 9 +* Sun Jul 24 2005 D. Scott Barninger +- minor cleanups before 1.38 changes +- add popt and popt-devel build dependencies +- add tetex and tetex-dvips dependencies for doc build +- replace deprecated Copyright tag with License +* Sat May 07 2005 D. Scott Barninger +- move sqlite installation bindir to /usr/lib/bacula/sqlite and remove +- conflict with sqlite packages. remove readline dependency. +* Sun Apr 17 2005 D. Scott Barninger +- release 1.36.3 update docs +* Tue Apr 05 2005 D. Scott Barninger +- add centos4 build tag +- add x86_64 build tag +* Sun Apr 03 2005 D. Scott Barninger +- add rhel4 build tag +- clean up for mysql4 which is now mdk-10.1, suse-9.2 and rhel4 +* Sun Mar 06 2005 D. Scott Barninger +- add rhel3 build tag +* Tue Mar 01 2005 D. Scott Barninger +- fix tray-monitor.conf for noreplace +* Mon Feb 28 2005 D. Scott Barninger +- fix distribution check for Fedora and Whitebox +* Sun Feb 06 2005 D. Scott Barninger +- add logwatch script +- add dvd scripts +* Sat Jan 15 2005 D. Scott Barninger +- add build for Fedora Core 3 (linc now included in ORDit2) +- add mysql4 define for Mandrake 10.1 +* Fri Jan 14 2005 D. Scott Barninger +- fix {group_file} variable in post scripts +* Thu Dec 30 2004 D. Scott Barninger +- add distribution checking and custom Distribution tag +* Thu Dec 09 2004 D. Scott Barninger +- ASSIGNMENT OF COPYRIGHT +- FOR VALUE RECEIVED, D. Scott Barninger hereby sells, transfers and +- assigns unto Kern Sibbald, his successors, assigns and personal representatives, +- all right, title and interest in and to the copyright in this software RPM +- spec file. D. Scott Barninger warrants good title to said copyright, that it is +- free of all liens, encumbrances or any known claims against said copyright. +* Sat Dec 04 2004 D. Scott Barninger +- bug 183 fixes +- thanks to Daniel Widyono +- update description for rescue package to describe cdrom creation +* Thu Nov 18 2004 D. Scott Barninger +- update depkgs to 29Oct04 +* Fri Nov 12 2004 D. Scott Barninger +- add cdrom rescue to bacula-rescue package +* Sun Oct 31 2004 D. Scott Barninger +- misc fixes from 1.36.0 suse feedback +- fix situation where sqlite database exists but sqlite has been removed. +* Fri Oct 22 2004 D. Scott Barninger +- remove tray-monitor from RH8 build +- fix permissions on tray-monitor files +* Wed Oct 13 2004 D. Scott Barninger +- add Mandrake support and tray-monitor, misc changes for 1.35.8/1.36.0, +- change database update to 7 to 8 upgrade, +- revert depkgs to 08Mar04 as there seems to be a bug in the sqlite +- build in 30Jul04, add freetype dependancy to gnome package. +* Sun Sep 12 2004 D. Scott Barninger +- add documentation to console for groupadd +* Sat Sep 04 2004 D. Scott Barninger +- add support for running daemons as root.bacula +- correct for change in location of floppy rescue files in 1.35.2 +- removed /etc/bacula/fd script from all packages as it has disappeared from 1.35.2 +- updated depgkgs to 30Jul04 +* Thu Jun 24 2004 D. Scott Barninger +- really, really fix symlink creation for gconsole +* Thu Jun 17 2004 D. Scott Barninger +- fix symlink creation in gconsole post install +* Sat Jun 12 2004 D. Scott Barninger +- fixed error in gconsole post script +* Fri Apr 30 2004 D. Scott Barninger +- add check for gconsole symlink before trying to create it +* Sun Apr 11 2004 D. Scott Barninger +- fix some minor permissions issues on doc files that CVS won't let us fix +* Sun Apr 04 2004 D. Scott Barninger +- add pkgconfig to BuildRequires +- clean up gnome1/2 menu entries for appropriate packages +* Fri Apr 02 2004 D. Scott Barninger +- tightened up doc distribution +* Tue Mar 30 2004 D. Scott Barninger +- added usermode (Redhat) and xsu (SuSE) support for gnome-console; +- rpm's horrible bug that prevents nested conditional macros prevents me +- from implementing these 2 separate approaches within the conditionals which +- create the separate server packages. +- the solution adopted is to remove the gnome-console files from the server packages +- so bacula-gconsole is now an add on for both client and server packages. +- this also now allows the server packages to be install on machines without +- an X-server and we can still maintain a single spec file. +- added tests to make sure we have defined platform and database macros. +* Sat Mar 13 2004 D. Scott Barninger +- corrected mysql prerequisites for suse +* Mon Mar 1 2004 D. Scott Barninger +- replaced all cp commands with cp -p +- removed addition of a+x permissions on gnome-console +- corrected permissions on init scripts +* Sat Feb 28 2004 D. Scott Barninger +- corrected creation of sqlite_bindir in install from !mysql to sqlite +- +- various cleanup patches from Michael K. Johnson: +- corrected post install routines for nicer chkconfig +- removed chmod changes in post routines and moved to install section +- removed interactive nature of post routine for rescue package +- added description of building rescue disks to the description of rescue package +- added clean of build root to beginning of install +- removed specifying attr in all file lists +* Fri Feb 20 2004 D. Scott Barninger +- added bconsole to client package +- added gconsole package as add-on to client +- removed spurious dependancies on updatedb package (!cut/paste) +* Thu Feb 19 2004 D. Scott Barninger +- added updatedb package +* Thu Feb 12 2004 D. Scott Barninger +- added postgresql package +* Wed Feb 11 2004 D. Scott Barninger +- corrected the if else logic in the dependancy sections +- changes for 1.34 release +- /etc/bacula/console is now /etc/bacula/bconsole +- /etc/bacula/console.conf is now /etc/bacula/bconsole.conf +- /usr/sbin/btraceback.gdb is now /etc/bacula/btraceback.gdb +- /usr/sbin/smtp is now /usr/sbin/bsmtp +- added new /etc/bacula/drop_mysql_database +- added new /etc/bacula/drop_sqlite_database +- added new /etc/bacula/grant_sqlite_privileges +- added new generic bacula database scripts in /etc/bacula +- added pre-install sections to check for database versions older than 6 +- added check for /etc/bacula/console.conf and copy to bconsole.conf +* Sun Feb 08 2004 D. Scott Barninger +- added /etc/bacula/update_sqlite_tables and /etc/bacula/update_mysql_tables for 1.34 release +- added testing for existing databases before executing any of the database creation scripts +- added defines working_dir and sqlite_bindir in place of hard coded paths +* Sat Jan 31 2004 D. Scott Barninger +- added build configuration for SuSE. +- Thanks to Matt Vollmar for his input +* Sat Jan 24 2004 D. Scott Barninger +- added patch for create_sqlite_database to fix the installed bindir +- added execute of create_sqlite_database to post of sqlite package +* Sat Jan 10 2004 D. Scott Barninger +- added virtual package Provides bacula-dir, bacula-sd, bacula-fd +- added bacula-fd as Requires for rescue package +- added build tag for Fedora Core 1 +- cleaned up dependancies for all builds +* Thu Jan 1 2004 D. Scott Barninger +- removed rh_version from package names +- added platform build configuration section to beginning of file +* Tue Nov 25 2003 D. Scott Barninger +- removed make_static_bacula script from rescue package install +* Sun Nov 23 2003 D. Scott Barninger +- Added define at top of file for depkgs version +- Added rescue sub-package +- Moved requires statements into proper sub-package locations +* Mon Oct 27 2003 D. Scott Barninger +- Corrected Requires for Gnome 1.4/2.0 builds +* Fri Oct 24 2003 D. Scott Barninger +- Added separate source declaration for depkgs +- added patch for make_catalog_backup script +* Mon May 11 2003 D. Scott Barninger +- Misc changes to mysql/sqlite build and rh7/8 menu differences +- Added rh_version to sub-package names +- Added installed but missing file /etc/bacula/gconsole +- rm'd /etc/bacula/grant_mysql_privileges on sqlite builds +* Thu May 08 2003 Kern Sibbald +- Update spec for version 1.31 and combine client +* Sun Mar 30 2003 D. Scott Barninger +- Initial spec file diff --git a/Branch-2.2/bacula/platforms/unknown/Makefile.in b/Branch-2.2/bacula/platforms/unknown/Makefile.in new file mode 100644 index 0000000000..124b381fdf --- /dev/null +++ b/Branch-2.2/bacula/platforms/unknown/Makefile.in @@ -0,0 +1,46 @@ +# +# This file is used as the template to create the +# Makefile for the unknown specific installation. +# +# 15 November 2001 -- Kern Sibbald +# +# for Bacula release @VERSION@ (@DATE@) -- @DISTNAME@ +# + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ + +install: install-autostart + +all: install-autostart + +install-autostart: install-autostart-FD install-autostart-SD install-autostart-DIR + + +install-autostart-FD: + + +install-autostart-SD: + + +install-autostart-DIR: + + +uninstall: uninstall-autostart + +uninstall-autostart: uninstall-autostart-FD uninstall-autostart-SD uninstall-autostart-DIR + +uninstall-autostart-FD: + + +uninstall-autostart-SD: + +uninstall-autostart-DIR: + +clean: + +distclean: + @rm -f bacula-SD bacula-FD bacula-DIR Makefile bacula-*.spec + +devclean: + @rm -f bacula-SD bacula-FD bacula-DIR Makefile bacula-*.spec diff --git a/Branch-2.2/bacula/po/ChangeLog b/Branch-2.2/bacula/po/ChangeLog new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Branch-2.2/bacula/po/LINGUAS b/Branch-2.2/bacula/po/LINGUAS new file mode 100644 index 0000000000..d6a636645e --- /dev/null +++ b/Branch-2.2/bacula/po/LINGUAS @@ -0,0 +1,2 @@ +fr +de diff --git a/Branch-2.2/bacula/po/Makefile.in.in b/Branch-2.2/bacula/po/Makefile.in.in new file mode 100644 index 0000000000..d966318b38 --- /dev/null +++ b/Branch-2.2/bacula/po/Makefile.in.in @@ -0,0 +1,394 @@ +# Makefile for PO directory in any package using GNU gettext. +# Copyright (C) 1995-1997, 2000-2005 by Ulrich Drepper +# +# This file can be copied and used freely without restrictions. It can +# be used in projects which are not available under the GNU General Public +# License but which still want to provide support for the GNU gettext +# functionality. +# Please note that the actual code of GNU gettext is covered by the GNU +# General Public License and is *not* in the public domain. +# +# Origin: gettext-0.14.4 + +PACKAGE = bacula +VERSION = @VERSION@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ + +SHELL = /bin/sh +@SET_MAKE@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +top_builddir = @top_builddir@ +VPATH = @srcdir@ + +prefix = @prefix@ +exec_prefix = @exec_prefix@ +datadir = @datadir@ +localedir = $(datadir)/locale +gettextsrcdir = $(datadir)/gettext/po + +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +mkinstalldirs = $(SHELL) $(MKINSTALLDIRS) + +GMSGFMT = @GMSGFMT@ +MSGFMT = @MSGFMT@ +XGETTEXT = @XGETTEXT@ +MSGMERGE = msgmerge +MSGMERGE_UPDATE = @MSGMERGE@ --update +MSGINIT = msginit +MSGCONV = msgconv +MSGFILTER = msgfilter + +POFILES = @POFILES@ +GMOFILES = @GMOFILES@ +UPDATEPOFILES = @UPDATEPOFILES@ +DUMMYPOFILES = @DUMMYPOFILES@ +DISTFILES.common = Makefile.in.in remove-potcdate.sin \ +$(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3) +DISTFILES = $(DISTFILES.common) Makevars POTFILES.in \ +$(POFILES) $(GMOFILES) \ +$(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3) + +POTFILES = \ + +CATALOGS = @CATALOGS@ + +# Makevars gets inserted here. (Don't remove this line!) + +.SUFFIXES: +.SUFFIXES: .po .gmo .mo .sed .sin .nop .po-create .po-update + +.po.mo: + @echo "$(MSGFMT) -c -o $@ $<"; \ + $(MSGFMT) -c -o t-$@ $< && mv t-$@ $@ + +.po.gmo: + @lang=`echo $* | sed -e 's,.*/,,'`; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o $${lang}.gmo $${lang}.po"; \ + cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo + +.sin.sed: + sed -e '/^#/d' $< > t-$@ + mv t-$@ $@ + + +all: all-@USE_NLS@ + +all-yes: stamp-po +all-no: + +# $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no +# internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because +# we don't want to bother translators with empty POT files). We assume that +# LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty. +# In this case, stamp-po is a nop (i.e. a phony target). + +# stamp-po is a timestamp denoting the last time at which the CATALOGS have +# been loosely updated. Its purpose is that when a developer or translator +# checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS, +# "make" will update the $(DOMAIN).pot and the $(CATALOGS), but subsequent +# invocations of "make" will do nothing. This timestamp would not be necessary +# if updating the $(CATALOGS) would always touch them; however, the rule for +# $(POFILES) has been designed to not touch files that don't need to be +# changed. +stamp-po: $(srcdir)/$(DOMAIN).pot + test ! -f $(srcdir)/$(DOMAIN).pot || \ + test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES) + @test ! -f $(srcdir)/$(DOMAIN).pot || { \ + echo "touch stamp-po" && \ + echo timestamp > stamp-poT && \ + mv stamp-poT stamp-po; \ + } + +# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update', +# otherwise packages like GCC can not be built if only parts of the source +# have been downloaded. + +# This target rebuilds $(DOMAIN).pot; it is an expensive operation. +# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. +$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed + if test -n '$(MSGID_BUGS_ADDRESS)' || test '$(PACKAGE_BUGREPORT)' = '@'PACKAGE_BUGREPORT'@'; then \ + msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \ + else \ + msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \ + fi; \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) \ + --files-from=$(srcdir)/POTFILES.in \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --msgid-bugs-address="$$msgid_bugs_address" + test ! -f $(DOMAIN).po || { \ + if test -f $(srcdir)/$(DOMAIN).pot; then \ + sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ + sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ + if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ + else \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + else \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + } + +# This rule has no dependencies: we don't need to update $(DOMAIN).pot at +# every "make" invocation, only create it when it is missing. +# Only "make $(DOMAIN).pot-update" or "make dist" will force an update. +$(srcdir)/$(DOMAIN).pot: + $(MAKE) $(DOMAIN).pot-update + +# This target rebuilds a PO file if $(DOMAIN).pot has changed. +# Note that a PO file is not touched if it doesn't need to be changed. +$(POFILES): $(srcdir)/$(DOMAIN).pot + @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ + if test -f "$(srcdir)/$${lang}.po"; then \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot"; \ + cd $(srcdir) && $(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot; \ + else \ + $(MAKE) $${lang}.po-create; \ + fi + + +install: install-exec install-data +install-exec: +install-data: install-data-@USE_NLS@ + if test "$(PACKAGE)" = "gettext-tools"; then \ + $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \ + for file in $(DISTFILES.common) Makevars.template; do \ + $(INSTALL_DATA) $(srcdir)/$$file \ + $(DESTDIR)$(gettextsrcdir)/$$file; \ + done; \ + for file in Makevars; do \ + rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ + done; \ + else \ + : ; \ + fi +install-data-no: all +install-data-yes: all + $(mkinstalldirs) $(DESTDIR)$(datadir) + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ + $(mkinstalldirs) $(DESTDIR)$$dir; \ + if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \ + $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \ + echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \ + for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ + if test -n "$$lc"; then \ + if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ + link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ + mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ + for file in *; do \ + if test -f $$file; then \ + ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ + fi; \ + done); \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + else \ + if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ + :; \ + else \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + fi; \ + fi; \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ + ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ + cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \ + fi; \ + done; \ + done + +install-strip: install + +installdirs: installdirs-exec installdirs-data +installdirs-exec: +installdirs-data: installdirs-data-@USE_NLS@ + if test "$(PACKAGE)" = "gettext-tools"; then \ + $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \ + else \ + : ; \ + fi +installdirs-data-no: +installdirs-data-yes: + $(mkinstalldirs) $(DESTDIR)$(datadir) + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ + $(mkinstalldirs) $(DESTDIR)$$dir; \ + for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ + if test -n "$$lc"; then \ + if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ + link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ + mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ + for file in *; do \ + if test -f $$file; then \ + ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ + fi; \ + done); \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + else \ + if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ + :; \ + else \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + fi; \ + fi; \ + fi; \ + done; \ + done + +# Define this as empty until I found a useful application. +installcheck: + +uninstall: uninstall-exec uninstall-data +uninstall-exec: +uninstall-data: uninstall-data-@USE_NLS@ + if test "$(PACKAGE)" = "gettext-tools"; then \ + for file in $(DISTFILES.common) Makevars.template; do \ + rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ + done; \ + else \ + : ; \ + fi +uninstall-data-no: +uninstall-data-yes: + catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + done; \ + done + +check: all + +info dvi ps pdf html tags TAGS ctags CTAGS ID: + +mostlyclean: + rm -f remove-potcdate.sed + rm -f stamp-poT + rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po + rm -fr *.o + +clean: mostlyclean + +distclean: clean + rm -f Makefile Makefile.in POTFILES *.mo + +maintainer-clean: distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + rm -f stamp-po $(GMOFILES) + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) +dist distdir: + $(MAKE) update-po + @$(MAKE) dist2 +# This is a separate target because 'update-po' must be executed before. +dist2: stamp-po $(DISTFILES) + dists="$(DISTFILES)"; \ + if test "$(PACKAGE)" = "gettext-tools"; then \ + dists="$$dists Makevars.template"; \ + fi; \ + if test -f $(srcdir)/$(DOMAIN).pot; then \ + dists="$$dists $(DOMAIN).pot stamp-po"; \ + fi; \ + if test -f $(srcdir)/ChangeLog; then \ + dists="$$dists ChangeLog"; \ + fi; \ + for i in 0 1 2 3 4 5 6 7 8 9; do \ + if test -f $(srcdir)/ChangeLog.$$i; then \ + dists="$$dists ChangeLog.$$i"; \ + fi; \ + done; \ + if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \ + for file in $$dists; do \ + if test -f $$file; then \ + cp -p $$file $(distdir) || exit 1; \ + else \ + cp -p $(srcdir)/$$file $(distdir) || exit 1; \ + fi; \ + done + +update-po: Makefile + $(MAKE) $(DOMAIN).pot-update + test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES) + $(MAKE) update-gmo + +# General rule for creating PO files. + +.nop.po-create: + @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \ + echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \ + exit 1 + +# General rule for updating PO files. + +.nop.po-update: + @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ + if test "$(PACKAGE)" = "gettext-tools"; then PATH=`pwd`/../src:$$PATH; fi; \ + tmpdir=`pwd`; \ + echo "$$lang:"; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ + cd $(srcdir); \ + if $(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$tmpdir/$$lang.new.po; then \ + if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ + rm -f $$tmpdir/$$lang.new.po; \ + else \ + if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ + :; \ + else \ + echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ + exit 1; \ + fi; \ + fi; \ + else \ + echo "msgmerge for $$lang.po failed!" 1>&2; \ + rm -f $$tmpdir/$$lang.new.po; \ + fi + +$(DUMMYPOFILES): + +update-gmo: Makefile $(GMOFILES) + @: + +Makefile: Makefile.in.in Makevars $(top_builddir)/config.status @POMAKEFILEDEPS@ + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \ + $(SHELL) ./config.status + +force: + +depend: + +gen-potfiles: + echo "# List of source files containing translatable strings." > POTFILES.in + echo "# To generate this file, type 'make gen-potfiles'" >> POTFILES.in + cd .. && find -name "*.c" >> po/POTFILES.in + cd .. && find -name "*.h" >> po/POTFILES.in + cd .. && find -name "*.cpp" >> po/POTFILES.in + +# Tell versions [3.59,3.63) of GNU make not to export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/Branch-2.2/bacula/po/Makevars b/Branch-2.2/bacula/po/Makevars new file mode 100644 index 0000000000..eb97304b0d --- /dev/null +++ b/Branch-2.2/bacula/po/Makevars @@ -0,0 +1,41 @@ +# Makefile variables for PO directory in any package using GNU gettext. + +# Usually the message domain is the same as the package name. +DOMAIN = bacula + +# These two variables depend on the location of this directory. +subdir = po +top_builddir = .. + +# These options get passed to xgettext. +XGETTEXT_OPTIONS = --keyword=_ + +# This is the copyright holder that gets inserted into the header of the +# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding +# package. (Note that the msgstr strings, extracted from the package's +# sources, belong to the copyright holder of the package.) Translators are +# expected to transfer the copyright for their translations to this person +# or entity, or to disclaim their copyright. The empty string stands for +# the public domain; in this case the translators are expected to disclaim +# their copyright. +COPYRIGHT_HOLDER = Kern Sibbald + +# This is the email address or URL to which the translators shall report +# bugs in the untranslated strings: +# - Strings which are not entire sentences, see the maintainer guidelines +# in the GNU gettext documentation, section 'Preparing Strings'. +# - Strings which use unclear terms or require additional context to be +# understood. +# - Strings which make invalid assumptions about notation of date, time or +# money. +# - Pluralisation problems. +# - Incorrect English spelling. +# - Incorrect formatting. +# It can be your email address, or a mailing list address where translators +# can write to without being subscribed, or the URL of a web page through +# which the translators can contact you. +MSGID_BUGS_ADDRESS = bacula-devel@lists.sourceforge.net + +# This is the list of locale categories, beyond LC_MESSAGES, for which the +# message catalogs shall be used. It is usually empty. +EXTRA_LOCALE_CATEGORIES = diff --git a/Branch-2.2/bacula/po/POTFILES.in b/Branch-2.2/bacula/po/POTFILES.in new file mode 100644 index 0000000000..81c02448b5 --- /dev/null +++ b/Branch-2.2/bacula/po/POTFILES.in @@ -0,0 +1,442 @@ +# List of source files containing translatable strings. +# To generate this file, type 'make gen-potfiles' +./patches/testing/resubst.c +./patches/testing/bregsed.c +./src/dird/next_vol.c +./src/dird/fd_cmds.c +./src/dird/ua_label.c +./src/dird/backup.c +./src/dird/ua_update.c +./src/dird/run_conf.c +./src/dird/scheduler.c +./src/dird/catreq.c +./src/dird/msgchan.c +./src/dird/ua_acl.c +./src/dird/ua_input.c +./src/dird/ua_output.c +./src/dird/getmsg.c +./src/dird/migrate.c +./src/dird/ua_query.c +./src/dird/ua_select.c +./src/dird/verify.c +./src/dird/ua_purge.c +./src/dird/ua_restore.c +./src/dird/ua_status.c +./src/dird/newvol.c +./src/dird/mountreq.c +./src/dird/job.c +./src/dird/ua_cmds.c +./src/dird/inc_conf.c +./src/dird/authenticate.c +./src/dird/ua_prune.c +./src/dird/expand.c +./src/dird/pythondir.c +./src/dird/autoprune.c +./src/dird/dird.c +./src/dird/ua_dotcmds.c +./src/dird/restore.c +./src/dird/ua_tree.c +./src/dird/recycle.c +./src/dird/bsr.c +./src/dird/dird_conf.c +./src/dird/admin.c +./src/dird/ua_run.c +./src/dird/jobq.c +./src/dird/ua_server.c +./src/filed/heartbeat.c +./src/filed/acl.c +./src/filed/verify.c +./src/filed/backup.c +./src/filed/job.c +./src/filed/estimate.c +./src/filed/authenticate.c +./src/filed/restore.c +./src/filed/filed.c +./src/filed/status.c +./src/filed/verify_vol.c +./src/filed/filed_conf.c +./src/filed/pythonfd.c +./src/gnome2-console/interface.c +./src/gnome2-console/console.c +./src/gnome2-console/console_conf.c +./src/gnome2-console/support.c +./src/gnome2-console/authenticate.c +./src/gnome2-console/callbacks.c +./src/gnome2-console/restore.c +./src/cats/sql.c +./src/cats/sql_update.c +./src/cats/sqlite.c +./src/cats/bdb_find.c +./src/cats/sql_find.c +./src/cats/mysql.c +./src/cats/bdb_delete.c +./src/cats/bdb_create.c +./src/cats/sql_delete.c +./src/cats/sql_create.c +./src/cats/bdb_get.c +./src/cats/sql_get.c +./src/cats/postgresql.c +./src/cats/sql_cmds.c +./src/cats/bdb_list.c +./src/cats/bdb.c +./src/cats/bdb_update.c +./src/cats/sql_list.c +./src/wx-console/console_conf.c +./src/wx-console/authenticate.c +./src/stored/fd_cmds.c +./src/stored/autochanger.c +./src/stored/stored.c +./src/stored/match_bsr.c +./src/stored/wait.c +./src/stored/stored_conf.c +./src/stored/pythonsd.c +./src/stored/ebcdic.c +./src/stored/read_record.c +./src/stored/read.c +./src/stored/reserve.c +./src/stored/bcopy.c +./src/stored/bextract.c +./src/stored/dvd.c +./src/stored/label.c +./src/stored/parse_bsr.c +./src/stored/bls.c +./src/stored/status.c +./src/stored/bscan.c +./src/stored/lock.c +./src/stored/btape.c +./src/stored/spool.c +./src/stored/device.c +./src/stored/mac.c +./src/stored/mount.c +./src/stored/dircmd.c +./src/stored/append.c +./src/stored/job.c +./src/stored/askdir.c +./src/stored/dev.c +./src/stored/authenticate.c +./src/stored/record.c +./src/stored/butil.c +./src/stored/scan.c +./src/stored/acquire.c +./src/stored/ansi_label.c +./src/stored/block.c +./src/tools/grow.c +./src/tools/testls.c +./src/tools/bregtest.c +./src/tools/testfind.c +./src/tools/bwild.c +./src/tools/bbatch.c +./src/tools/dbcheck.c +./src/tools/gigaslam.c +./src/tools/bsmtp.c +./src/tools/fstype.c +./src/tools/drivetype.c +./src/tools/bregex.c +./src/console/authenticate.c +./src/console/console.c +./src/console/conio.c +./src/console/console_conf.c +./src/win32/scripts/bsleep.c +./src/win32/compat/getopt.c +./src/win32/compat/winapi.c +./src/tray-monitor/authenticate.c +./src/tray-monitor/tray-monitor.c +./src/tray-monitor/tray_conf.c +./src/lib/btime.c +./src/lib/workq.c +./src/lib/cram-md5.c +./src/lib/mem_pool.c +./src/lib/hmac.c +./src/lib/bregex.c +./src/lib/crc32.c +./src/lib/util.c +./src/lib/dlist.c +./src/lib/message.c +./src/lib/md5.c +./src/lib/berrno.c +./src/lib/bnet.c +./src/lib/htable.c +./src/lib/bpipe.c +./src/lib/tree.c +./src/lib/watchdog.c +./src/lib/bsock.c +./src/lib/bsnprintf.c +./src/lib/btimers.c +./src/lib/pythonlib.c +./src/lib/enh_fnmatch.c +./src/lib/attr.c +./src/lib/jcr.c +./src/lib/parse_conf.c +./src/lib/scan.c +./src/lib/res.c +./src/lib/sha1.c +./src/lib/rblist.c +./src/lib/rwlock.c +./src/lib/daemon.c +./src/lib/alist.c +./src/lib/breg.c +./src/lib/serial.c +./src/lib/tls.c +./src/lib/signal.c +./src/lib/bnet_server.c +./src/lib/smartall.c +./src/lib/fnmatch.c +./src/lib/bsys.c +./src/lib/crypto.c +./src/lib/openssl.c +./src/lib/queue.c +./src/lib/base64.c +./src/lib/edit.c +./src/lib/bget_msg.c +./src/lib/lex.c +./src/lib/var.c +./src/lib/runscript.c +./src/lib/address_conf.c +./src/lib/guid_to_name.c +./src/findlib/create_file.c +./src/findlib/attribs.c +./src/findlib/save-cwd.c +./src/findlib/fstype.c +./src/findlib/drivetype.c +./src/findlib/find.c +./src/findlib/find_one.c +./src/findlib/bfile.c +./src/findlib/enable_priv.c +./src/findlib/makepath.c +./src/findlib/match.c +./platforms/freebsd/tapetest.c +./src/dird/jobq.h +./src/dird/ua.h +./src/dird/dird.h +./src/dird/protos.h +./src/dird/bsr.h +./src/dird/dird_conf.h +./src/filed/acl.h +./src/filed/filed.h +./src/filed/protos.h +./src/filed/filed_conf.h +./src/qt-console/label/label.h +./src/qt-console/select/select.h +./src/qt-console/fileset/fileset.h +./src/qt-console/bcomm/dircomm.h +./src/qt-console/clients/clients.h +./src/qt-console/mount/mount.h +./src/qt-console/storage/storage.h +./src/qt-console/medialist/medialist.h +./src/qt-console/joblog/joblog.h +./src/qt-console/jobgraphs/jobplot.h +./src/qt-console/restore/restore.h +./src/qt-console/restore/restoretree.h +./src/qt-console/mediaedit/mediaedit.h +./src/qt-console/help/help.h +./src/qt-console/testprogs/putz/putz.h +./src/qt-console/testprogs/examp/mainwindow.h +./src/qt-console/jobs/jobs.h +./src/qt-console/console/console.h +./src/qt-console/run/run.h +./src/qt-console/joblist/joblist.h +./src/qt-console/relabel/relabel.h +./src/qt-console/mainwin.h +./src/qt-console/pages.h +./src/qt-console/bat.h +./src/qt-console/bat_conf.h +./src/qt-console/qstd.h +./src/gnome2-console/interface.h +./src/gnome2-console/console.h +./src/gnome2-console/console_conf.h +./src/gnome2-console/support.h +./src/gnome2-console/callbacks.h +./src/gnome2-console/restore.h +./src/cats/cats.h +./src/cats/protos.h +./src/cats/sql_cmds.h +./src/cats/bdb.h +./src/wx-console/wxbtreectrl.h +./src/wx-console/wxbconfigpanel.h +./src/wx-console/console_conf.h +./src/wx-console/wxbhistorytextctrl.h +./src/wx-console/wxblistctrl.h +./src/wx-console/wxbrestorepanel.h +./src/wx-console/wxbtableparser.h +./src/wx-console/wx-console_private.h +./src/wx-console/console_thread.h +./src/wx-console/wxbconfigfileeditor.h +./src/wx-console/wxbmainframe.h +./src/wx-console/wxbutils.h +./src/wx-console/csprint.h +./src/stored/block.h +./src/stored/stored.h +./src/stored/stored_conf.h +./src/stored/reserve.h +./src/stored/lock.h +./src/stored/dev.h +./src/stored/record.h +./src/stored/bsr.h +./src/stored/protos.h +./src/console/func.h +./src/console/conio.h +./src/console/console_conf.h +./src/win32/filed/vss.h +./src/win32/filed/who.h +./src/win32/wx-console/w32api.h +./src/win32/tools/ScsiDeviceList.h +./src/win32/dird/who.h +./src/win32/compat/arpa/inet.h +./src/win32/compat/netinet/in.h +./src/win32/compat/sys/ioctl.h +./src/win32/compat/sys/stat.h +./src/win32/compat/sys/time.h +./src/win32/compat/sys/file.h +./src/win32/compat/sys/wait.h +./src/win32/compat/sys/mtio.h +./src/win32/compat/sys/socket.h +./src/win32/compat/strings.h +./src/win32/compat/pwd.h +./src/win32/compat/alloca.h +./src/win32/compat/winhost.h +./src/win32/compat/netdb.h +./src/win32/compat/getopt.h +./src/win32/compat/stdint.h +./src/win32/compat/unistd.h +./src/win32/compat/mingwconfig.h +./src/win32/compat/mswinver.h +./src/win32/compat/winsock.h +./src/win32/compat/ms_atl.h +./src/win32/compat/syslog.h +./src/win32/compat/compat.h +./src/win32/compat/winconfig.h +./src/win32/compat/dirent.h +./src/win32/compat/grp.h +./src/win32/libwin32/res.h +./src/win32/libwin32/aboutDialog.h +./src/win32/libwin32/win32.h +./src/win32/libwin32/statusDialog.h +./src/win32/libwin32/protos.h +./src/win32/libwin32/trayMonitor.h +./src/win32/stored/who.h +./src/win32/winapi.h +./src/tray-monitor/tray-monitor.h +./src/tray-monitor/tray_conf.h +./src/lib/runscript.h +./src/lib/address_conf.h +./src/lib/tcpd.h +./src/lib/btime.h +./src/lib/bits.h +./src/lib/workq.h +./src/lib/mem_pool.h +./src/lib/bregex.h +./src/lib/dlist.h +./src/lib/message.h +./src/lib/md5.h +./src/lib/waitq.h +./src/lib/berrno.h +./src/lib/htable.h +./src/lib/bpipe.h +./src/lib/tree.h +./src/lib/watchdog.h +./src/lib/bsock.h +./src/lib/btimers.h +./src/lib/enh_fnmatch.h +./src/lib/attr.h +./src/lib/parse_conf.h +./src/lib/protos.h +./src/lib/sha1.h +./src/lib/rblist.h +./src/lib/rwlock.h +./src/lib/alist.h +./src/lib/breg.h +./src/lib/serial.h +./src/lib/tls.h +./src/lib/lib.h +./src/lib/smartall.h +./src/lib/fnmatch.h +./src/lib/crypto.h +./src/lib/openssl.h +./src/lib/queue.h +./src/lib/base64.h +./src/lib/lex.h +./src/lib/var.h +./src/lib/guid_to_name.h +./src/findlib/save-cwd.h +./src/findlib/find.h +./src/findlib/bfile.h +./src/findlib/protos.h +./src/bc_types.h +./src/baconfig.h +./src/jcr.h +./src/version.h +./src/bacula.h +./src/host.h +./src/config.h +./autoconf/acconfig.h +./autoconf/confdefs.h +./src/qt-console/label/label.cpp +./src/qt-console/select/select.cpp +./src/qt-console/fileset/fileset.cpp +./src/qt-console/bcomm/dircomm.cpp +./src/qt-console/bcomm/dircomm_auth.cpp +./src/qt-console/clients/clients.cpp +./src/qt-console/mount/mount.cpp +./src/qt-console/storage/storage.cpp +./src/qt-console/medialist/medialist.cpp +./src/qt-console/joblog/joblog.cpp +./src/qt-console/jobgraphs/jobplot.cpp +./src/qt-console/restore/restore.cpp +./src/qt-console/restore/restoretree.cpp +./src/qt-console/restore/brestore.cpp +./src/qt-console/restore/prerestore.cpp +./src/qt-console/mediaedit/mediaedit.cpp +./src/qt-console/help/help.cpp +./src/qt-console/testprogs/putz/putz.cpp +./src/qt-console/testprogs/putz/main.cpp +./src/qt-console/testprogs/examp/main.cpp +./src/qt-console/testprogs/examp/mainwindow.cpp +./src/qt-console/jobs/jobs.cpp +./src/qt-console/console/authenticate.cpp +./src/qt-console/console/console.cpp +./src/qt-console/run/run.cpp +./src/qt-console/run/runcmd.cpp +./src/qt-console/run/prune.cpp +./src/qt-console/run/estimate.cpp +./src/qt-console/joblist/joblist.cpp +./src/qt-console/relabel/relabel.cpp +./src/qt-console/pages.cpp +./src/qt-console/bat_conf.cpp +./src/qt-console/qstd.cpp +./src/qt-console/main.cpp +./src/qt-console/mainwin.cpp +./src/wx-console/wxbmainframe.cpp +./src/wx-console/wxbutils.cpp +./src/wx-console/main.cpp +./src/wx-console/wxbtreectrl.cpp +./src/wx-console/wxbconfigpanel.cpp +./src/wx-console/wxbhistorytextctrl.cpp +./src/wx-console/wxblistctrl.cpp +./src/wx-console/wxbrestorepanel.cpp +./src/wx-console/wxbtableparser.cpp +./src/wx-console/console_thread.cpp +./src/wx-console/wxbconfigfileeditor.cpp +./src/win32/filed/service.cpp +./src/win32/filed/vss_Vista.cpp +./src/win32/filed/vss_W2K3.cpp +./src/win32/filed/vss_XP.cpp +./src/win32/filed/main.cpp +./src/win32/filed/trayMonitor.cpp +./src/win32/filed/vss_generic.cpp +./src/win32/filed/vss.cpp +./src/win32/tools/ScsiDeviceList.cpp +./src/win32/tools/scsilist.cpp +./src/win32/dird/service.cpp +./src/win32/dird/main.cpp +./src/win32/compat/compat.cpp +./src/win32/compat/print.cpp +./src/win32/libwin32/service.cpp +./src/win32/libwin32/statusDialog.cpp +./src/win32/libwin32/main.cpp +./src/win32/libwin32/trayMonitor.cpp +./src/win32/libwin32/aboutDialog.cpp +./src/win32/stored/postest/postest.cpp +./src/win32/stored/service.cpp +./src/win32/stored/mtops.cpp +./src/win32/stored/main.cpp +./src/win32/stored/trayMonitor.cpp diff --git a/Branch-2.2/bacula/po/README b/Branch-2.2/bacula/po/README new file mode 100644 index 0000000000..0e6c0287af --- /dev/null +++ b/Branch-2.2/bacula/po/README @@ -0,0 +1,66 @@ + +Notes about Bacula translations. +-------------------------------- + +--- + +To edit .po files, I recommend poedit, downloadable at http://www.poedit.org/ . + +--- + +To refresh bacula.pot and *.po, when some strings have been added, modified or +removed from the sources files, run: + +# make update-po + +--- + +To refresh Bacula source files list (POTFILES.in), when a source file is +added or removed from the repository, run: + +# make gen-potfiles && make update-po + +Note, the gen-potfiles pulls in all files found under the top +directory, so it is much better to do something like: + +cd bacula +rm -rf x +svn checkout https://bacula.svn.sourceforge.net/svnroot/bacula x +cd x +./configure +cd po +make gen-potfiles +cp POTFILES.in +cd .. +./configure + +This avoids picking up any files that are not in the SVN. + +--- + +To add a new translation language (e.g. German), add a new line to LINGUAS +containing the language code (e.g. de), then run: +# msginit -l (e.g. "# msginit -l de_DE") + +Open the newly created file in an editor (e.g. de.po), and look for this line: +"Project-Id-Version: ...\n" +If it still look like this: +"Project-Id-Version: PACKAGE VERSION\n" +Correct it to: +"Project-Id-Version: Bacula 1.38\n" + +You may also want to correct the language team to: +"Language-Team: German \n" + +Finally, add .mo (e.g. de.mo) to .cvsignore, and don't forget to +run: +# svn add .po .gmo + +--- + +For more information, see the gettext manual: +http://www.gnu.org/software/gettext/manual/ + +--- + +Nicolas Boichat , August 2005 diff --git a/Branch-2.2/bacula/po/Rules-quot b/Branch-2.2/bacula/po/Rules-quot new file mode 100644 index 0000000000..9c2a995e30 --- /dev/null +++ b/Branch-2.2/bacula/po/Rules-quot @@ -0,0 +1,47 @@ +# Special Makefile rules for English message catalogs with quotation marks. + +DISTFILES.common.extra1 = quot.sed boldquot.sed en@quot.header en@boldquot.header insert-header.sin Rules-quot + +.SUFFIXES: .insert-header .po-update-en + +en@quot.po-create: + $(MAKE) en@quot.po-update +en@boldquot.po-create: + $(MAKE) en@boldquot.po-update + +en@quot.po-update: en@quot.po-update-en +en@boldquot.po-update: en@boldquot.po-update-en + +.insert-header.po-update-en: + @lang=`echo $@ | sed -e 's/\.po-update-en$$//'`; \ + if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; GETTEXTLIBDIR=`cd $(top_srcdir)/src && pwd`; export GETTEXTLIBDIR; fi; \ + tmpdir=`pwd`; \ + echo "$$lang:"; \ + ll=`echo $$lang | sed -e 's/@.*//'`; \ + LC_ALL=C; export LC_ALL; \ + cd $(srcdir); \ + if $(MSGINIT) -i $(DOMAIN).pot --no-translator -l $$ll -o - 2>/dev/null | sed -f $$tmpdir/$$lang.insert-header | $(MSGCONV) -t UTF-8 | $(MSGFILTER) sed -f `echo $$lang | sed -e 's/.*@//'`.sed 2>/dev/null > $$tmpdir/$$lang.new.po; then \ + if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ + rm -f $$tmpdir/$$lang.new.po; \ + else \ + if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ + :; \ + else \ + echo "creation of $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ + exit 1; \ + fi; \ + fi; \ + else \ + echo "creation of $$lang.po failed!" 1>&2; \ + rm -f $$tmpdir/$$lang.new.po; \ + fi + +en@quot.insert-header: insert-header.sin + sed -e '/^#/d' -e 's/HEADER/en@quot.header/g' $(srcdir)/insert-header.sin > en@quot.insert-header + +en@boldquot.insert-header: insert-header.sin + sed -e '/^#/d' -e 's/HEADER/en@boldquot.header/g' $(srcdir)/insert-header.sin > en@boldquot.insert-header + +mostlyclean: mostlyclean-quot +mostlyclean-quot: + rm -f *.insert-header diff --git a/Branch-2.2/bacula/po/bacula.pot b/Branch-2.2/bacula/po/bacula.pot new file mode 100644 index 0000000000..f8ac62af56 --- /dev/null +++ b/Branch-2.2/bacula/po/bacula.pot @@ -0,0 +1,16041 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR Kern Sibbald +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: bacula-devel@lists.sourceforge.net\n" +"POT-Creation-Date: 2008-01-26 09:48+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: patches/testing/bregsed.c:131 src/tools/bregtest.c:131 +#: src/tools/bwild.c:122 src/tools/bregex.c:147 +#, c-format +msgid "Could not open data file: %s\n" +msgstr "" + +#: src/dird/next_vol.c:146 +#, c-format +msgid "Purging oldest volume \"%s\"\n" +msgstr "" + +#: src/dird/next_vol.c:152 +#, c-format +msgid "Pruning oldest volume \"%s\"\n" +msgstr "" + +#: src/dird/next_vol.c:171 +msgid "We seem to be looping trying to find the next volume. I give up.\n" +msgstr "" + +#: src/dird/next_vol.c:197 +#, c-format +msgid "Max Volume bytes exceeded. Marking Volume \"%s\" as Full.\n" +msgstr "" + +#: src/dird/next_vol.c:204 +#, c-format +msgid "Volume used once. Marking Volume \"%s\" as Used.\n" +msgstr "" + +#: src/dird/next_vol.c:211 +#, c-format +msgid "Max Volume jobs exceeded. Marking Volume \"%s\" as Used.\n" +msgstr "" + +#: src/dird/next_vol.c:220 +#, c-format +msgid "Max Volume files exceeded. Marking Volume \"%s\" as Used.\n" +msgstr "" + +#: src/dird/next_vol.c:230 +#, c-format +msgid "Max configured use duration exceeded. Marking Volume \"%s\" as Used.\n" +msgstr "" + +#: src/dird/next_vol.c:240 +#, c-format +msgid "Catalog error updating volume \"%s\". ERR=%s" +msgstr "" + +#: src/dird/next_vol.c:261 +msgid "volume has expired" +msgstr "" + +#: src/dird/next_vol.c:279 src/dird/next_vol.c:315 +#, c-format +msgid "Recycled current volume \"%s\"\n" +msgstr "" + +#: src/dird/next_vol.c:284 +msgid "and recycling of current volume failed" +msgstr "" + +#: src/dird/next_vol.c:290 +msgid "but should be Append, Purged or Recycle" +msgstr "" + +#: src/dird/next_vol.c:318 +msgid "" +"but should be Append, Purged or Recycle (recycling of the current volume " +"failed)" +msgstr "" + +#: src/dird/next_vol.c:322 +msgid "" +"but should be Append, Purged or Recycle (cannot automatically recycle " +"current volume, as it still contains unpruned data or the Volume Retention " +"time has not expired.)" +msgstr "" + +#: src/dird/next_vol.c:380 +#, c-format +msgid "Unable to get Pool record: ERR=%s" +msgstr "" + +#: src/dird/next_vol.c:387 +#, c-format +msgid "Unable add Scratch Volume, Pool \"%s\" full MaxVols=%d\n" +msgstr "" + +#: src/dird/next_vol.c:406 +#, c-format +msgid "Failed to move Scratch Volume. ERR=%s\n" +msgstr "" + +#: src/dird/next_vol.c:411 +#, c-format +msgid "Using Volume \"%s\" from 'Scratch' pool.\n" +msgstr "" + +#: src/dird/fd_cmds.c:94 +msgid "Client: " +msgstr "" + +#: src/dird/fd_cmds.c:127 +#, c-format +msgid "File daemon \"%s\" rejected Job command: %s\n" +msgstr "" + +#: src/dird/fd_cmds.c:140 +#, c-format +msgid "Error updating Client record. ERR=%s\n" +msgstr "" + +#: src/dird/fd_cmds.c:145 +#, c-format +msgid "FD gave bad response to JobId command: %s\n" +msgstr "" + +#: src/dird/fd_cmds.c:167 src/dird/fd_cmds.c:203 +msgid ", since=" +msgstr "" + +#: src/dird/fd_cmds.c:187 +msgid "No prior or suitable Full backup found in catalog. Doing FULL backup.\n" +msgstr "" + +#: src/dird/fd_cmds.c:188 src/dird/fd_cmds.c:196 +#, c-format +msgid " (upgraded from %s)" +msgstr "" + +#: src/dird/fd_cmds.c:194 +#, c-format +msgid "Prior failed job found in catalog. Upgrading to %s.\n" +msgstr "" + +#: src/dird/fd_cmds.c:255 +#, c-format +msgid "Unimplemented backup level %d %c\n" +msgstr "" + +#: src/dird/fd_cmds.c:358 src/filed/job.c:640 +#, c-format +msgid "Cannot run program: %s. ERR=%s\n" +msgstr "" + +#: src/dird/fd_cmds.c:369 src/dird/fd_cmds.c:394 src/dird/fd_cmds.c:408 +msgid ">filed: write error on socket\n" +msgstr "" + +#: src/dird/fd_cmds.c:375 +#, c-format +msgid "Error running program: %s. ERR=%s\n" +msgstr "" + +#: src/dird/fd_cmds.c:384 +#, c-format +msgid "Cannot open included file: %s. ERR=%s\n" +msgstr "" + +#: src/dird/fd_cmds.c:479 src/filed/job.c:1831 +#, c-format +msgid "Could not open bootstrap file %s: ERR=%s\n" +msgstr "" + +#: src/dird/fd_cmds.c:585 +#, c-format +msgid "Client \"%s\" RunScript failed.\n" +msgstr "" + +#: src/dird/fd_cmds.c:621 +#, c-format +msgid "" +"\" command before continuing.\n" +msgstr "" + +#: src/dird/ua_select.c:230 +msgid "The defined Catalog resources are:\n" +msgstr "" + +#: src/dird/ua_select.c:238 +msgid "Catalog" +msgstr "" + +#: src/dird/ua_select.c:238 +msgid "Select Catalog resource" +msgstr "" + +#: src/dird/ua_select.c:255 +msgid "The defined Job resources are:\n" +msgstr "" + +#: src/dird/ua_select.c:263 src/dird/ua_select.c:286 src/dird/ua_cmds.c:476 +#: src/dird/ua_prune.c:365 src/dird/dird_conf.c:600 src/dird/ua_run.c:265 +msgid "Job" +msgstr "" + +#: src/dird/ua_select.c:263 +msgid "Select Job resource" +msgstr "" + +#: src/dird/ua_select.c:278 +msgid "The defined Restore Job resources are:\n" +msgstr "" + +#: src/dird/ua_select.c:286 +msgid "Select Restore Job" +msgstr "" + +#: src/dird/ua_select.c:303 +msgid "The defined Client resources are:\n" +msgstr "" + +#: src/dird/ua_select.c:311 src/dird/ua_select.c:420 src/dird/ua_cmds.c:997 +#: src/dird/ua_dotcmds.c:285 src/dird/ua_run.c:270 +#: src/wx-console/wxbrestorepanel.cpp:336 +#: src/wx-console/wxbrestorepanel.cpp:354 +#: src/wx-console/wxbrestorepanel.cpp:431 +#: src/wx-console/wxbrestorepanel.cpp:432 +#: src/wx-console/wxbrestorepanel.cpp:442 +#: src/wx-console/wxbrestorepanel.cpp:443 +#: src/wx-console/wxbrestorepanel.cpp:690 +#: src/wx-console/wxbrestorepanel.cpp:1124 +#: src/wx-console/wxbrestorepanel.cpp:1211 +#: src/wx-console/wxbrestorepanel.cpp:1811 +#: src/wx-console/wxbrestorepanel.cpp:1813 +#: src/wx-console/wxbrestorepanel.cpp:1887 +#: src/wx-console/wxbrestorepanel.cpp:1943 +msgid "Client" +msgstr "" + +#: src/dird/ua_select.c:311 +msgid "Select Client (File daemon) resource" +msgstr "" + +#: src/dird/ua_select.c:338 +#, c-format +msgid "Error: Client resource %s does not exist.\n" +msgstr "" + +#: src/dird/ua_select.c:363 +#, c-format +msgid "Could not find Client %s: ERR=%s" +msgstr "" + +#: src/dird/ua_select.c:373 src/dird/ua_select.c:427 +#, c-format +msgid "Could not find Client \"%s\": ERR=%s" +msgstr "" + +#: src/dird/ua_select.c:402 +#, c-format +msgid "Error obtaining client ids. ERR=%s\n" +msgstr "" + +#: src/dird/ua_select.c:406 +msgid "No clients defined. You must run a job before using this command.\n" +msgstr "" + +#: src/dird/ua_select.c:410 +msgid "Defined Clients:\n" +msgstr "" + +#: src/dird/ua_select.c:420 +msgid "Select the Client" +msgstr "" + +#: src/dird/ua_select.c:453 src/dird/ua_select.c:477 src/dird/ua_select.c:513 +#, c-format +msgid "Could not find Pool \"%s\": ERR=%s" +msgstr "" + +#: src/dird/ua_select.c:492 +msgid "No pools defined. Use the \"create\" command to create one.\n" +msgstr "" + +#: src/dird/ua_select.c:496 +msgid "Defined Pools:\n" +msgstr "" + +#: src/dird/ua_select.c:506 +msgid "Select the Pool" +msgstr "" + +#: src/dird/ua_select.c:536 +#, c-format +msgid "No access to Pool \"%s\"\n" +msgstr "" + +#: src/dird/ua_select.c:562 +msgid "Enter MediaId or Volume name: " +msgstr "" + +#: src/dird/ua_select.c:588 +msgid "The defined Pool resources are:\n" +msgstr "" + +#: src/dird/ua_select.c:596 +msgid "Select Pool resource" +msgstr "" + +#: src/dird/ua_select.c:620 src/dird/ua_restore.c:523 +#, c-format +msgid "Error: Pool resource \"%s\" does not exist.\n" +msgstr "" + +#: src/dird/ua_select.c:631 +msgid "Enter the JobId to select: " +msgstr "" + +#: src/dird/ua_select.c:669 +#, c-format +msgid "Could not find Job \"%s\": ERR=%s" +msgstr "" + +#: src/dird/ua_select.c:749 +#, c-format +msgid "Automatically selected %s: %s\n" +msgstr "" + +#: src/dird/ua_select.c:754 +#, c-format +msgid "Cannot select %s in batch mode.\n" +msgstr "" + +#: src/dird/ua_select.c:772 +#, c-format +msgid "Selection list for \"%s\" is empty!\n" +msgstr "" + +#: src/dird/ua_select.c:778 +#, c-format +msgid "Automatically selected: %s\n" +msgstr "" + +#: src/dird/ua_select.c:790 +msgid "Selection aborted, nothing done.\n" +msgstr "" + +#: src/dird/ua_select.c:795 +#, c-format +msgid "Please enter a number between 1 and %d\n" +msgstr "" + +#: src/dird/ua_select.c:844 +msgid "Storage name given twice.\n" +msgstr "" + +#: src/dird/ua_select.c:861 +#, c-format +msgid "Expecting jobid=nn command, got: %s\n" +msgstr "" + +#: src/dird/ua_select.c:865 +#, c-format +msgid "JobId %s is not running.\n" +msgstr "" + +#: src/dird/ua_select.c:875 +#, c-format +msgid "Expecting job=xxx, got: %s.\n" +msgstr "" + +#: src/dird/ua_select.c:879 src/dird/ua_select.c:891 +#, c-format +msgid "Job \"%s\" is not running.\n" +msgstr "" + +#: src/dird/ua_select.c:887 +#, c-format +msgid "Expecting ujobid=xxx, got: %s.\n" +msgstr "" + +#: src/dird/ua_select.c:907 +#, c-format +msgid "Storage resource \"%s\": not found\n" +msgstr "" + +#: src/dird/ua_select.c:939 +msgid "Enter autochanger drive[0]: " +msgstr "" + +#: src/dird/ua_select.c:960 +msgid "Enter autochanger slot: " +msgstr "" + +#: src/dird/ua_select.c:990 +msgid "Media Types defined in conf file:\n" +msgstr "" + +#: src/dird/ua_select.c:996 +msgid "Media Type" +msgstr "" + +#: src/dird/ua_select.c:996 +msgid "Select the Media Type" +msgstr "" + +#: src/dird/verify.c:120 +msgid "" +"Unable to find JobId of previous InitCatalog Job.\n" +"Please run a Verify with Level=InitCatalog before\n" +"running the current Job.\n" +msgstr "" + +#: src/dird/verify.c:125 +msgid "Unable to find JobId of previous Job for this client.\n" +msgstr "" + +#: src/dird/verify.c:141 +#, c-format +msgid "Could not get job record for previous Job. ERR=%s" +msgstr "" + +#: src/dird/verify.c:146 +#, c-format +msgid "Last Job %d did not terminate normally. JobStatus=%c\n" +msgstr "" + +#: src/dird/verify.c:150 +#, c-format +msgid "Verifying against JobId=%d Job=%s\n" +msgstr "" + +#: src/dird/verify.c:179 +#, c-format +msgid "Start Verify JobId=%s Level=%s Job=%s\n" +msgstr "" + +#: src/dird/verify.c:263 +msgid "Deprecated feature ... use bootstrap.\n" +msgstr "" + +#: src/dird/verify.c:276 +#, c-format +msgid "Unimplemented Verify level %d(%c)\n" +msgstr "" + +#: src/dird/verify.c:330 +#, c-format +msgid "Unimplemented verify level %d\n" +msgstr "" + +#: src/dird/verify.c:388 +msgid "Verify OK" +msgstr "" + +#: src/dird/verify.c:392 +msgid "*** Verify Error ***" +msgstr "" + +#: src/dird/verify.c:396 +msgid "Verify warnings" +msgstr "" + +#: src/dird/verify.c:399 +msgid "Verify Canceled" +msgstr "" + +#: src/dird/verify.c:402 +msgid "Verify Differences" +msgstr "" + +#: src/dird/verify.c:407 +#, c-format +msgid "Inappropriate term code: %d %c\n" +msgstr "" + +#: src/dird/verify.c:421 +#, c-format +msgid "" +"Bacula %s %s (%s): %s\n" +" Build OS: %s %s %s\n" +" JobId: %d\n" +" Job: %s\n" +" FileSet: %s\n" +" Verify Level: %s\n" +" Client: %s\n" +" Verify JobId: %d\n" +" Verify Job: %s\n" +" Start time: %s\n" +" End time: %s\n" +" Files Expected: %s\n" +" Files Examined: %s\n" +" Non-fatal FD errors: %d\n" +" FD termination status: %s\n" +" SD termination status: %s\n" +" Termination: %s\n" +"\n" +msgstr "" + +#: src/dird/verify.c:456 +#, c-format +msgid "" +"Bacula %s %s (%s): %s\n" +" Build: %s %s %s\n" +" JobId: %d\n" +" Job: %s\n" +" FileSet: %s\n" +" Verify Level: %s\n" +" Client: %s\n" +" Verify JobId: %d\n" +" Verify Job: %s\n" +" Start time: %s\n" +" End time: %s\n" +" Files Examined: %s\n" +" Non-fatal FD errors: %d\n" +" FD termination status: %s\n" +" Termination: %s\n" +"\n" +msgstr "" + +#: src/dird/verify.c:535 +#, c-format +msgid "" +"bird | ] -- cancel a job" +msgstr "" + +#: src/dird/ua_cmds.c:108 +msgid "create DB Pool from resource" +msgstr "" + +#: src/dird/ua_cmds.c:109 +msgid "delete [pool= | media volume=]" +msgstr "" + +#: src/dird/ua_cmds.c:110 +msgid "disable -- disable a job" +msgstr "" + +#: src/dird/ua_cmds.c:111 +msgid "enable -- enable a job" +msgstr "" + +#: src/dird/ua_cmds.c:112 +msgid "performs FileSet estimate, listing gives full listing" +msgstr "" + +#: src/dird/ua_cmds.c:113 src/console/console.c:171 +msgid "exit = quit" +msgstr "" + +#: src/dird/ua_cmds.c:114 +msgid "gui [on|off] -- non-interactive gui mode" +msgstr "" + +#: src/dird/ua_cmds.c:115 src/stored/btape.c:2544 +msgid "print this command" +msgstr "" + +#: src/dird/ua_cmds.c:116 +msgid "" +"list [pools | jobs | jobtotals | media | files ]; " +"from catalog" +msgstr "" + +#: src/dird/ua_cmds.c:117 +msgid "label a tape" +msgstr "" + +#: src/dird/ua_cmds.c:118 +msgid "full or long list like list command" +msgstr "" + +#: src/dird/ua_cmds.c:119 +msgid "messages" +msgstr "" + +#: src/dird/ua_cmds.c:120 +msgid "print current memory usage" +msgstr "" + +#: src/dird/ua_cmds.c:121 +msgid "mount " +msgstr "" + +#: src/dird/ua_cmds.c:122 +msgid "prune expired records from catalog" +msgstr "" + +#: src/dird/ua_cmds.c:123 +msgid "purge records from catalog" +msgstr "" + +#: src/dird/ua_cmds.c:124 +msgid "python control commands" +msgstr "" + +#: src/dird/ua_cmds.c:125 src/console/console.c:164 +msgid "quit" +msgstr "" + +#: src/dird/ua_cmds.c:126 +msgid "query catalog" +msgstr "" + +#: src/dird/ua_cmds.c:127 +msgid "restore files" +msgstr "" + +#: src/dird/ua_cmds.c:128 +msgid "relabel a tape" +msgstr "" + +#: src/dird/ua_cmds.c:129 +msgid "release " +msgstr "" + +#: src/dird/ua_cmds.c:130 +msgid "reload conf file" +msgstr "" + +#: src/dird/ua_cmds.c:131 +msgid "run " +msgstr "" + +#: src/dird/ua_cmds.c:132 +msgid "status [storage | client]=" +msgstr "" + +#: src/dird/ua_cmds.c:133 +msgid "sets debug level" +msgstr "" + +#: src/dird/ua_cmds.c:134 +msgid "sets new client address -- if authorized" +msgstr "" + +#: src/dird/ua_cmds.c:135 +msgid "show (resource records) [jobs | pools | ... | all]" +msgstr "" + +#: src/dird/ua_cmds.c:136 +msgid "use SQL to query catalog" +msgstr "" + +#: src/dird/ua_cmds.c:137 src/console/console.c:167 +msgid "print current time" +msgstr "" + +#: src/dird/ua_cmds.c:138 +msgid "turn on/off trace to file" +msgstr "" + +#: src/dird/ua_cmds.c:139 +msgid "unmount " +msgstr "" + +#: src/dird/ua_cmds.c:140 +msgid "umount for old-time Unix guys" +msgstr "" + +#: src/dird/ua_cmds.c:141 +msgid "update Volume, Pool or slots" +msgstr "" + +#: src/dird/ua_cmds.c:142 +msgid "use catalog xxx" +msgstr "" + +#: src/dird/ua_cmds.c:143 +msgid "does variable expansion" +msgstr "" + +#: src/dird/ua_cmds.c:144 +msgid "print Director version" +msgstr "" + +#: src/dird/ua_cmds.c:145 +msgid "" +"wait until no jobs are running [ | | " +"]" +msgstr "" + +#: src/dird/ua_cmds.c:186 +#, c-format +msgid "%s: is an invalid command.\n" +msgstr "" + +#: src/dird/ua_cmds.c:227 +msgid "" +"You probably don't want to be using this command since it\n" +"creates database records without labeling the Volumes.\n" +"You probably want to use the \"label\" command.\n" +"\n" +msgstr "" + +#: src/dird/ua_cmds.c:246 +#, c-format +msgid "Pool already has maximum volumes=%d\n" +msgstr "" + +#: src/dird/ua_cmds.c:247 +msgid "Enter new maximum (zero for unlimited): " +msgstr "" + +#: src/dird/ua_cmds.c:267 +#, c-format +msgid "Enter number of Volumes to create. 0=>fixed name. Max=%d: " +msgstr "" + +#: src/dird/ua_cmds.c:273 +#, c-format +msgid "The number must be between 0 and %d\n" +msgstr "" + +#: src/dird/ua_cmds.c:280 +msgid "Enter Volume name: " +msgstr "" + +#: src/dird/ua_cmds.c:284 +msgid "Enter base volume name: " +msgstr "" + +#: src/dird/ua_cmds.c:306 +msgid "Enter the starting number: " +msgstr "" + +#: src/dird/ua_cmds.c:311 +msgid "Start number must be greater than zero.\n" +msgstr "" + +#: src/dird/ua_cmds.c:322 +msgid "Enter slot (0 for none): " +msgstr "" + +#: src/dird/ua_cmds.c:326 +msgid "InChanger? yes/no: " +msgstr "" + +#: src/dird/ua_cmds.c:354 +#, c-format +msgid "%d Volumes created in pool %s\n" +msgstr "" + +#: src/dird/ua_cmds.c:370 src/dird/ua_cmds.c:1033 +msgid "Turn on or off? " +msgstr "" + +#: src/dird/ua_cmds.c:401 +#, c-format +msgid "JobId %s is not running. Use Job name to cancel inactive jobs.\n" +msgstr "" + +#: src/dird/ua_cmds.c:410 src/dird/ua_cmds.c:420 +#, c-format +msgid "Warning Job %s is not running. Continuing anyway ...\n" +msgstr "" + +#: src/dird/ua_cmds.c:430 src/dird/ua_cmds.c:706 src/dird/ua_cmds.c:752 +msgid "Unauthorized command from this console.\n" +msgstr "" + +#: src/dird/ua_cmds.c:455 src/filed/status.c:201 src/stored/status.c:447 +msgid "No Jobs running.\n" +msgstr "" + +#: src/dird/ua_cmds.c:457 +msgid "None of your jobs are running.\n" +msgstr "" + +#: src/dird/ua_cmds.c:462 +msgid "Select Job:\n" +msgstr "" + +#: src/dird/ua_cmds.c:471 +#, c-format +msgid "JobId=%s Job=%s" +msgstr "" + +#: src/dird/ua_cmds.c:476 +msgid "Choose Job to cancel" +msgstr "" + +#: src/dird/ua_cmds.c:481 +#, c-format +msgid "" +"Cancel: %s\n" +"\n" +"%s" +msgstr "" + +#: src/dird/ua_cmds.c:482 +msgid "Confirm cancel?" +msgstr "" + +#: src/dird/ua_cmds.c:488 +msgid "Confirm cancel (yes/no): " +msgstr "" + +#: src/dird/ua_cmds.c:496 src/dird/ua_cmds.c:747 +#, c-format +msgid "Job \"%s\" not found.\n" +msgstr "" + +#: src/dird/ua_cmds.c:593 +#, c-format +msgid "" +"Can't set %s RecyclePool to %s, %s is not in database.\n" +"Try to update it with 'update pool=%s'\n" +msgstr "" + +#: src/dird/ua_cmds.c:660 +#, c-format +msgid "" +"Error: Pool %s already exists.\n" +"Use update to change it.\n" +msgstr "" + +#: src/dird/ua_cmds.c:671 +#, c-format +msgid "Pool %s created.\n" +msgstr "" + +#: src/dird/ua_cmds.c:688 +msgid "Python interpreter restarted.\n" +msgstr "" + +#: src/dird/ua_cmds.c:690 src/dird/ua_cmds.c:1273 +msgid "Nothing done.\n" +msgstr "" + +#: src/dird/ua_cmds.c:713 src/dird/ua_run.c:1225 +#, c-format +msgid "Client \"%s\" not found.\n" +msgstr "" + +#: src/dird/ua_cmds.c:722 +#, c-format +msgid "Client \"%s\" address set to %s\n" +msgstr "" + +#: src/dird/ua_cmds.c:756 +#, c-format +msgid "Job \"%s\" %sabled\n" +msgstr "" + +#: src/dird/ua_cmds.c:812 src/dird/ua_cmds.c:1163 src/dird/ua_dotcmds.c:206 +msgid "Failed to connect to Client.\n" +msgstr "" + +#: src/dird/ua_cmds.c:928 +msgid "Enter new debug level: " +msgstr "" + +#: src/dird/ua_cmds.c:994 src/dird/ua_dotcmds.c:282 +msgid "Available daemons are: \n" +msgstr "" + +#: src/dird/ua_cmds.c:995 src/dird/ua_dotcmds.c:283 +msgid "Director" +msgstr "" + +#: src/dird/ua_cmds.c:998 +msgid "All" +msgstr "" + +#: src/dird/ua_cmds.c:999 +msgid "Select daemon type to set debug level" +msgstr "" + +#: src/dird/ua_cmds.c:1089 src/dird/ua_cmds.c:1128 src/dird/ua_cmds.c:1796 +#, c-format +msgid "No authorization for Job \"%s\"\n" +msgstr "" + +#: src/dird/ua_cmds.c:1099 +#, c-format +msgid "No authorization for FileSet \"%s\"\n" +msgstr "" + +#: src/dird/ua_cmds.c:1111 src/dird/ua_run.c:217 +#, c-format +msgid "Level %s not valid.\n" +msgstr "" + +#: src/dird/ua_cmds.c:1124 +msgid "No job specified.\n" +msgstr "" + +#: src/dird/ua_cmds.c:1168 +msgid "Error sending include list.\n" +msgstr "" + +#: src/dird/ua_cmds.c:1173 +msgid "Error sending exclude list.\n" +msgstr "" + +#: src/dird/ua_cmds.c:1259 +msgid "" +"In general it is not a good idea to delete either a\n" +"Pool or a Volume since they may contain data.\n" +"\n" +msgstr "" + +#: src/dird/ua_cmds.c:1262 +msgid "Choose catalog item to delete" +msgstr "" + +#: src/dird/ua_cmds.c:1330 +msgid "Enter JobId to delete: " +msgstr "" + +#: src/dird/ua_cmds.c:1365 +#, c-format +msgid "Job %s and associated records deleted from the catalog.\n" +msgstr "" + +#: src/dird/ua_cmds.c:1379 +#, c-format +msgid "" +"\n" +"This command will delete volume %s\n" +"and all Jobs saved on that volume from the Catalog\n" +msgstr "" + +#: src/dird/ua_cmds.c:1383 +#, c-format +msgid "Are you sure you want to delete Volume \"%s\"? (yes/no): " +msgstr "" + +#: src/dird/ua_cmds.c:1407 +#, c-format +msgid "Are you sure you want to delete Pool \"%s\"? (yes/no): " +msgstr "" + +#: src/dird/ua_cmds.c:1521 +#, c-format +msgid "Using Catalog name=%s DB=%s\n" +msgstr "" + +#: src/dird/ua_cmds.c:1581 +msgid "ERR: Can't open db\n" +msgstr "" + +#: src/dird/ua_cmds.c:1617 +msgid "ERR: Job was not found\n" +msgstr "" + +#: src/dird/ua_cmds.c:1693 src/dird/ua_tree.c:665 src/stored/btape.c:2591 +#, c-format +msgid "" +" Command Description\n" +" ======= ===========\n" +msgstr "" + +#: src/dird/ua_cmds.c:1695 +#, c-format +msgid " %-10s %s\n" +msgstr "" + +#: src/dird/ua_cmds.c:1697 +msgid "" +"\n" +"When at a prompt, entering a period cancels the command.\n" +"\n" +msgstr "" + +#: src/dird/ua_cmds.c:1757 src/dird/ua_cmds.c:1784 src/dird/ua_cmds.c:1806 +#, c-format +msgid "No authorization for Catalog \"%s\"\n" +msgstr "" + +#: src/dird/ua_cmds.c:1774 +#, c-format +msgid "No authorization for Client \"%s\"\n" +msgstr "" + +#: src/dird/ua_cmds.c:1842 +#, c-format +msgid "Could not open catalog database \"%s\".\n" +msgstr "" + +#: src/dird/ua_cmds.c:1852 +#, c-format +msgid "Using Catalog \"%s\"\n" +msgstr "" + +#: src/dird/inc_conf.c:279 +#, c-format +msgid "Expected a strip path positive integer, got:%s:" +msgstr "" + +#: src/dird/inc_conf.c:299 +#, c-format +msgid "Expected a FileSet option keyword, got:%s:" +msgstr "" + +#: src/dird/inc_conf.c:332 +msgid "Old style Include/Exclude not supported\n" +msgstr "" + +#: src/dird/inc_conf.c:360 src/dird/inc_conf.c:660 src/dird/dird_conf.c:1842 +#, c-format +msgid "Expecting keyword, got: %s\n" +msgstr "" + +#: src/dird/inc_conf.c:368 src/dird/inc_conf.c:666 src/dird/dird_conf.c:1848 +#: src/lib/parse_conf.c:887 +#, c-format +msgid "expected an equals, got: %s" +msgstr "" + +#: src/dird/inc_conf.c:378 src/dird/inc_conf.c:675 src/dird/dird_conf.c:1859 +#, c-format +msgid "Keyword %s not permitted in this resource" +msgstr "" + +#: src/dird/inc_conf.c:431 +#, c-format +msgid "Regex compile error. ERR=%s\n" +msgstr "" + +#: src/dird/inc_conf.c:452 +#, c-format +msgid "Expected a regex string, got: %s\n" +msgstr "" + +#: src/dird/inc_conf.c:544 +#, c-format +msgid "Expected a wild-card string, got: %s\n" +msgstr "" + +#: src/dird/inc_conf.c:567 +#, c-format +msgid "Expected an fstype string, got: %s\n" +msgstr "" + +#: src/dird/inc_conf.c:590 +#, c-format +msgid "Expected an drivetype string, got: %s\n" +msgstr "" + +#: src/dird/inc_conf.c:614 +#, c-format +msgid "Backslash found. Use forward slashes or quote the string.: %s\n" +msgstr "" + +#: src/dird/inc_conf.c:629 +#, c-format +msgid "Expected a filename, got: %s" +msgstr "" + +#: src/dird/inc_conf.c:645 src/dird/dird_conf.c:1834 +#, c-format +msgid "Expecting open brace. Got %s" +msgstr "" + +#: src/dird/inc_conf.c:700 +#, c-format +msgid "Expected a FileSet keyword, got: %s" +msgstr "" + +#: src/dird/authenticate.c:80 src/dird/authenticate.c:81 +#: src/tray-monitor/authenticate.c:132 +#, c-format +msgid "Error sending Hello to Storage daemon. ERR=%s\n" +msgstr "" + +#: src/dird/authenticate.c:106 +msgid "Director and Storage daemon passwords or names not the same.\n" +msgstr "" + +#: src/dird/authenticate.c:108 +#, c-format +msgid "" +"Director unable to authenticate with Storage daemon at \"%s:%d\". Possible " +"causes:\n" +"Passwords or names not the same or\n" +"Maximum Concurrent Jobs exceeded on the SD or\n" +"SD networking messed up (restart daemon).\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" + +#: src/dird/authenticate.c:120 src/filed/authenticate.c:253 +#: src/wx-console/authenticate.c:127 src/stored/authenticate.c:134 +#: src/stored/authenticate.c:235 src/console/authenticate.c:114 +msgid "" +"Authorization problem: Remote server did not advertise required TLS " +"support.\n" +msgstr "" + +#: src/dird/authenticate.c:127 src/filed/authenticate.c:149 +#: src/filed/authenticate.c:261 src/wx-console/authenticate.c:133 +#: src/stored/authenticate.c:142 src/stored/authenticate.c:243 +#: src/console/authenticate.c:121 +msgid "Authorization problem: Remote server requires TLS.\n" +msgstr "" + +#: src/dird/authenticate.c:136 +#, c-format +msgid "TLS negotiation failed with SD at \"%s:%d\"\n" +msgstr "" + +#: src/dird/authenticate.c:145 +#, c-format +msgid "bdird set configuration file to file\n" +" -dnn set debug level to nn\n" +" -f run in foreground (for debugging)\n" +" -g groupid\n" +" -r run now\n" +" -s no signals\n" +" -t test - read configuration and exit\n" +" -u userid\n" +" -v verbose user messages\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/dird/dird.c:225 src/filed/filed.c:182 src/gnome2-console/console.c:286 +#: src/stored/stored.c:210 src/console/console.c:426 +#: src/qt-console/main.cpp:132 +msgid "Cryptography library initialization failed.\n" +msgstr "" + +#: src/dird/dird.c:229 src/dird/dird.c:246 src/dird/dird.c:477 +#: src/dird/dird.c:480 src/filed/filed.c:187 src/gnome2-console/console.c:290 +#: src/stored/stored.c:214 src/console/console.c:430 +#: src/qt-console/main.cpp:136 +#, c-format +msgid "Please correct configuration file: %s\n" +msgstr "" + +#: src/dird/dird.c:463 +msgid "Too many open reload requests. Request ignored.\n" +msgstr "" + +#: src/dird/dird.c:478 +msgid "Out of reload table entries. Giving up.\n" +msgstr "" + +#: src/dird/dird.c:481 +msgid "Resetting previous configuration.\n" +msgstr "" + +#: src/dird/dird.c:544 +#, c-format +msgid "" +"No Director resource defined in %s\n" +"Without that I don't know who I am :-(\n" +msgstr "" + +#: src/dird/dird.c:552 src/filed/filed.c:290 +#, c-format +msgid "No Messages resource defined in %s\n" +msgstr "" + +#: src/dird/dird.c:557 +#, c-format +msgid "Only one Director resource permitted in %s\n" +msgstr "" + +#: src/dird/dird.c:566 src/dird/dird.c:768 src/dird/dird.c:820 +#: src/dird/dird.c:924 src/filed/filed.c:297 src/filed/filed.c:455 +#: src/gnome2-console/console.c:153 src/gnome2-console/console.c:182 +#: src/stored/stored.c:333 src/console/console.c:657 src/console/console.c:686 +#: src/qt-console/main.cpp:209 src/qt-console/main.cpp:238 +#: src/wx-console/console_thread.cpp:114 src/wx-console/console_thread.cpp:140 +msgid "TLS required but not configured in Bacula.\n" +msgstr "" + +#: src/dird/dird.c:572 src/filed/filed.c:464 src/stored/stored.c:385 +#, c-format +msgid "\"TLS Certificate\" file not defined for Director \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird.c:578 src/filed/filed.c:470 src/stored/stored.c:391 +#, c-format +msgid "\"TLS Key\" file not defined for Director \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird.c:584 src/filed/filed.c:476 src/stored/stored.c:397 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Director \"%s\" in %s. At least one CA certificate store is required when " +"using \"TLS Verify Peer\".\n" +msgstr "" + +#: src/dird/dird.c:603 src/filed/filed.c:495 src/stored/stored.c:416 +#, c-format +msgid "Failed to initialize TLS context for Director \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird.c:611 +#, c-format +msgid "No Job records defined in %s\n" +msgstr "" + +#: src/dird/dird.c:669 src/dird/dird.c:682 +#, c-format +msgid "Hey something is wrong. p=0x%lu\n" +msgstr "" + +#: src/dird/dird.c:742 +#, c-format +msgid "\"%s\" directive in Job \"%s\" resource is required, but not found.\n" +msgstr "" + +#: src/dird/dird.c:749 +msgid "Too many items in Job resource\n" +msgstr "" + +#: src/dird/dird.c:753 +#, c-format +msgid "No storage specified in Job \"%s\" nor in Pool.\n" +msgstr "" + +#: src/dird/dird.c:775 +#, c-format +msgid "\"TLS Certificate\" file not defined for Console \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird.c:781 +#, c-format +msgid "\"TLS Key\" file not defined for Console \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird.c:787 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Console \"%s\" in %s. At least one CA certificate store is required when " +"using \"TLS Verify Peer\".\n" +msgstr "" + +#: src/dird/dird.c:804 src/dird/dird.c:844 src/filed/filed.c:321 +#, c-format +msgid "Failed to initialize TLS context for File daemon \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird.c:827 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"File daemon \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird.c:876 src/dird/dird.c:878 +#, c-format +msgid "Could not open Catalog \"%s\", database \"%s\".\n" +msgstr "" + +#: src/dird/dird.c:881 +#, c-format +msgid "%s" +msgstr "" + +#: src/dird/dird.c:930 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Storage \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird.c:946 src/stored/stored.c:371 +#, c-format +msgid "Failed to initialize TLS context for Storage \"%s\" in %s.\n" +msgstr "" + +#: src/dird/ua_dotcmds.c:138 +msgid ": is an invalid command.\n" +msgstr "" + +#: src/dird/ua_dotcmds.c:238 src/dird/ua_dotcmds.c:288 +msgid "The Director will segment fault.\n" +msgstr "" + +#: src/dird/ua_dotcmds.c:286 +msgid "Select daemon type to make die" +msgstr "" + +#: src/dird/ua_dotcmds.c:453 +msgid "Access to specified Client or FileSet not allowed.\n" +msgstr "" + +#: src/dird/ua_dotcmds.c:493 +msgid "query keyword not found.\n" +msgstr "" + +#: src/dird/restore.c:87 +msgid "" +"Cannot restore without a bootstrap file.\n" +"You probably ran a restore job directly. All restore jobs must\n" +"be run using the restore command.\n" +msgstr "" + +#: src/dird/restore.c:96 +#, c-format +msgid "Start Restore Job %s\n" +msgstr "" + +#: src/dird/restore.c:258 +msgid "Restore OK -- warning file count mismatch" +msgstr "" + +#: src/dird/restore.c:260 +msgid "Restore OK" +msgstr "" + +#: src/dird/restore.c:265 +msgid "*** Restore Error ***" +msgstr "" + +#: src/dird/restore.c:275 +msgid "Restore Canceled" +msgstr "" + +#: src/dird/restore.c:302 +#, c-format +msgid "" +"Bacula %s %s (%s): %s\n" +" Build OS: %s %s %s\n" +" JobId: %d\n" +" Job: %s\n" +" Restore Client: %s\n" +" Start time: %s\n" +" End time: %s\n" +" Files Expected: %s\n" +" Files Restored: %s\n" +" Bytes Restored: %s\n" +" Rate: %.1f KB/s\n" +" FD Errors: %d\n" +" FD termination status: %s\n" +" SD termination status: %s\n" +" Termination: %s\n" +"\n" +msgstr "" + +#: src/dird/ua_tree.c:72 +msgid "change current directory" +msgstr "" + +#: src/dird/ua_tree.c:73 +msgid "count marked files in and below the cd" +msgstr "" + +#: src/dird/ua_tree.c:74 src/dird/ua_tree.c:75 +msgid "long list current directory, wildcards allowed" +msgstr "" + +#: src/dird/ua_tree.c:76 +msgid "leave file selection mode" +msgstr "" + +#: src/dird/ua_tree.c:77 +msgid "estimate restore size" +msgstr "" + +#: src/dird/ua_tree.c:78 +msgid "same as done command" +msgstr "" + +#: src/dird/ua_tree.c:79 +msgid "find files, wildcards allowed" +msgstr "" + +#: src/dird/ua_tree.c:80 src/dird/ua_tree.c:90 +msgid "print help" +msgstr "" + +#: src/dird/ua_tree.c:81 +msgid "list current directory, wildcards allowed" +msgstr "" + +#: src/dird/ua_tree.c:82 +msgid "list the marked files in and below the cd" +msgstr "" + +#: src/dird/ua_tree.c:83 +msgid "mark dir/file to be restored recursively, wildcards allowed" +msgstr "" + +#: src/dird/ua_tree.c:84 +msgid "mark directory name to be restored (no files)" +msgstr "" + +#: src/dird/ua_tree.c:85 src/dird/ua_tree.c:86 +msgid "print current working directory" +msgstr "" + +#: src/dird/ua_tree.c:87 +msgid "unmark dir/file to be restored recursively in dir" +msgstr "" + +#: src/dird/ua_tree.c:88 +msgid "unmark directory name only no recursion" +msgstr "" + +#: src/dird/ua_tree.c:89 +msgid "quit and do not do restore" +msgstr "" + +#: src/dird/ua_tree.c:110 +msgid "" +"\n" +"You are now entering file selection mode where you add (mark) and\n" +"remove (unmark) files to be restored. No files are initially added, unless\n" +"you used the \"all\" keyword on the command line.\n" +"Enter \"done\" to leave this mode.\n" +"\n" +msgstr "" + +#: src/dird/ua_tree.c:121 src/dird/ua_tree.c:717 +#, c-format +msgid "cwd is: %s\n" +msgstr "" + +#: src/dird/ua_tree.c:130 src/dird/ua_tree.c:145 +msgid "Invalid command. Enter \"done\" to exit.\n" +msgstr "" + +#: src/dird/ua_tree.c:333 src/dird/ua_tree.c:345 src/dird/ua_tree.c:362 +msgid "No files marked.\n" +msgstr "" + +#: src/dird/ua_tree.c:347 +msgid "1 file marked.\n" +msgstr "" + +#: src/dird/ua_tree.c:349 +#, c-format +msgid "%s files marked.\n" +msgstr "" + +#: src/dird/ua_tree.c:377 +msgid "No directories marked.\n" +msgstr "" + +#: src/dird/ua_tree.c:379 +msgid "1 directory marked.\n" +msgstr "" + +#: src/dird/ua_tree.c:381 +#, c-format +msgid "%s directories marked.\n" +msgstr "" + +#: src/dird/ua_tree.c:402 +#, c-format +msgid "%s total files/dirs. %s marked to be restored.\n" +msgstr "" + +#: src/dird/ua_tree.c:413 +msgid "No file specification given.\n" +msgstr "" + +#: src/dird/ua_tree.c:561 +#, c-format +msgid "Node %s has no children.\n" +msgstr "" + +#: src/dird/ua_tree.c:654 +#, c-format +msgid "%d total files; %d marked to be restored; %s bytes.\n" +msgstr "" + +#: src/dird/ua_tree.c:688 +msgid "Too few or too many arguments. Try using double quotes.\n" +msgstr "" + +#: src/dird/ua_tree.c:700 +msgid "Invalid path given.\n" +msgstr "" + +#: src/dird/ua_tree.c:736 src/dird/ua_tree.c:748 +msgid "No files unmarked.\n" +msgstr "" + +#: src/dird/ua_tree.c:750 +msgid "1 file unmarked.\n" +msgstr "" + +#: src/dird/ua_tree.c:753 +#, c-format +msgid "%s files unmarked.\n" +msgstr "" + +#: src/dird/ua_tree.c:764 src/dird/ua_tree.c:781 +msgid "No directories unmarked.\n" +msgstr "" + +#: src/dird/ua_tree.c:783 +msgid "1 directory unmarked.\n" +msgstr "" + +#: src/dird/ua_tree.c:785 +#, c-format +msgid "%d directories unmarked.\n" +msgstr "" + +#: src/dird/recycle.c:112 +#, c-format +msgid "Recycled volume \"%s\"\n" +msgstr "" + +#: src/dird/bsr.c:188 +#, c-format +msgid "Unable to get Job record. ERR=%s\n" +msgstr "" + +#: src/dird/bsr.c:195 +#, c-format +msgid "Unable to get Job Volume Parameters. ERR=%s\n" +msgstr "" + +#: src/dird/bsr.c:247 +#, c-format +msgid "Unable to create bootstrap file %s. ERR=%s\n" +msgstr "" + +#: src/dird/bsr.c:256 +msgid "No files found to restore/migrate. No bootstrap file written.\n" +msgstr "" + +#: src/dird/bsr.c:260 +msgid "Error writing bsr file.\n" +msgstr "" + +#: src/dird/bsr.c:266 +#, c-format +msgid "Bootstrap records written to %s\n" +msgstr "" + +#: src/dird/bsr.c:270 +msgid "" +"The job will require the following\n" +" Volume(s) Storage(s) SD Device(s)\n" +"===========================================================================\n" +msgstr "" + +#: src/dird/bsr.c:316 +msgid "No Volumes found to restore.\n" +msgstr "" + +#: src/dird/dird_conf.c:510 src/tray-monitor/tray_conf.c:168 +#, c-format +msgid "No %s resource defined\n" +msgstr "" + +#: src/dird/dird_conf.c:519 +#, c-format +msgid "Director: name=%s MaxJobs=%d FDtimeout=%s SDtimeout=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:524 +#, c-format +msgid " query_file=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:527 src/dird/dird_conf.c:547 src/dird/dird_conf.c:561 +#: src/dird/dird_conf.c:613 src/dird/dird_conf.c:617 src/dird/dird_conf.c:621 +#: src/dird/dird_conf.c:639 src/dird/dird_conf.c:656 src/dird/dird_conf.c:660 +#: src/dird/dird_conf.c:664 src/dird/dird_conf.c:668 src/dird/dird_conf.c:672 +#: src/dird/dird_conf.c:685 src/dird/dird_conf.c:892 src/dird/dird_conf.c:899 +msgid " --> " +msgstr "" + +#: src/dird/dird_conf.c:532 +#, c-format +msgid "Console: name=%s SSL=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:537 +#, c-format +msgid "Counter: name=%s min=%d max=%d cur=%d wrapcntr=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:542 +#, c-format +msgid "Counter: name=%s min=%d max=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:553 +#, c-format +msgid "Client: name=%s address=%s FDport=%d MaxJobs=%u\n" +msgstr "" + +#: src/dird/dird_conf.c:556 +#, c-format +msgid " JobRetention=%s FileRetention=%s AutoPrune=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:569 +#, c-format +msgid "" +"Device: name=%s ok=%d num_writers=%d max_writers=%d\n" +" reserved=%d open=%d append=%d read=%d labeled=%d offline=%d autochgr=%" +"d\n" +" poolid=%s volname=%s MediaType=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:580 +#, c-format +msgid "" +"Storage: name=%s address=%s SDport=%d MaxJobs=%u\n" +" DeviceName=%s MediaType=%s StorageId=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:590 +#, c-format +msgid "" +"Catalog: name=%s address=%s DBport=%d db_name=%s\n" +" db_user=%s MutliDBConn=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:599 +#, c-format +msgid "%s: name=%s JobType=%d level=%s Priority=%d Enabled=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:600 +msgid "JobDefs" +msgstr "" + +#: src/dird/dird_conf.c:604 +#, c-format +msgid "" +" MaxJobs=%u Resched=%d Times=%d Interval=%s Spool=%d WritePartAfterJob=%" +"d\n" +msgstr "" + +#: src/dird/dird_conf.c:610 +#, c-format +msgid " SelectionType=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:625 +#, c-format +msgid " --> Where=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:628 +#, c-format +msgid " --> RegexWhere=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:631 +#, c-format +msgid " --> Bootstrap=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:634 +#, c-format +msgid " --> WriteBootstrap=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:646 src/lib/runscript.c:263 +msgid " --> RunScript\n" +msgstr "" + +#: src/dird/dird_conf.c:647 src/lib/runscript.c:264 +#, c-format +msgid " --> Command=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:648 src/lib/runscript.c:265 +#, c-format +msgid " --> Target=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:649 src/lib/runscript.c:266 +#, c-format +msgid " --> RunOnSuccess=%u\n" +msgstr "" + +#: src/dird/dird_conf.c:650 src/lib/runscript.c:267 +#, c-format +msgid " --> RunOnFailure=%u\n" +msgstr "" + +#: src/dird/dird_conf.c:651 src/lib/runscript.c:268 +#, c-format +msgid " --> FailJobOnError=%u\n" +msgstr "" + +#: src/dird/dird_conf.c:652 src/lib/runscript.c:269 +#, c-format +msgid " --> RunWhen=%u\n" +msgstr "" + +#: src/dird/dird_conf.c:678 +#, c-format +msgid " --> Run=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:682 +#, c-format +msgid " --> SelectionPattern=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:693 +#, c-format +msgid "FileSet: name=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:771 src/dird/dird_conf.c:850 +#, c-format +msgid "Schedule: name=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:776 +#, c-format +msgid " --> Run Level=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:777 +msgid " hour=" +msgstr "" + +#: src/dird/dird_conf.c:786 +msgid " mday=" +msgstr "" + +#: src/dird/dird_conf.c:795 +msgid " month=" +msgstr "" + +#: src/dird/dird_conf.c:804 +msgid " wday=" +msgstr "" + +#: src/dird/dird_conf.c:813 +msgid " wom=" +msgstr "" + +#: src/dird/dird_conf.c:822 +msgid " woy=" +msgstr "" + +#: src/dird/dird_conf.c:831 +#, c-format +msgid " mins=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:833 src/dird/dird_conf.c:837 src/dird/dird_conf.c:841 +msgid " --> " +msgstr "" + +#: src/dird/dird_conf.c:855 +#, c-format +msgid "Pool: name=%s PoolType=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:857 +#, c-format +msgid " use_cat=%d use_once=%d cat_files=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:860 +#, c-format +msgid " max_vols=%d auto_prune=%d VolRetention=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:863 +#, c-format +msgid " VolUse=%s recycle=%d LabelFormat=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:867 +#, c-format +msgid " CleaningPrefix=%s LabelType=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:869 +#, c-format +msgid " RecyleOldest=%d PurgeOldest=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:872 +#, c-format +msgid " MaxVolJobs=%d MaxVolFiles=%d MaxVolBytes=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:876 +#, c-format +msgid " MigTime=%s MigHiBytes=%s MigLoBytes=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:881 +#, c-format +msgid " NextPool=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:884 +#, c-format +msgid " RecyclePool=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:887 +#, c-format +msgid " Catalog=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:907 +#, c-format +msgid "Messages: name=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:909 +#, c-format +msgid " mailcmd=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:911 +#, c-format +msgid " opcmd=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:915 src/tray-monitor/tray_conf.c:199 +#, c-format +msgid "Unknown resource type %d in dump_resource.\n" +msgstr "" + +#: src/dird/dird_conf.c:1221 src/tray-monitor/tray_conf.c:257 +#, c-format +msgid "Unknown resource type %d in free_resource.\n" +msgstr "" + +#: src/dird/dird_conf.c:1253 src/dird/dird_conf.c:1268 +#: src/dird/dird_conf.c:1865 src/filed/filed_conf.c:347 +#: src/gnome2-console/console_conf.c:258 src/wx-console/console_conf.c:265 +#: src/console/console_conf.c:257 src/tray-monitor/tray_conf.c:288 +#: src/qt-console/bat_conf.cpp:260 +#, c-format +msgid "%s item is required in %s resource, but not found.\n" +msgstr "" + +#: src/dird/dird_conf.c:1259 src/tray-monitor/tray_conf.c:294 +#: src/lib/parse_conf.c:233 +#, c-format +msgid "Too many items in %s resource\n" +msgstr "" + +#: src/dird/dird_conf.c:1299 +#, c-format +msgid "Cannot find Pool resource %s\n" +msgstr "" + +#: src/dird/dird_conf.c:1308 +#, c-format +msgid "Cannot find Console resource %s\n" +msgstr "" + +#: src/dird/dird_conf.c:1314 src/filed/filed_conf.c:367 +#: src/stored/stored_conf.c:584 +#, c-format +msgid "Cannot find Director resource %s\n" +msgstr "" + +#: src/dird/dird_conf.c:1321 src/stored/stored_conf.c:590 +#, c-format +msgid "Cannot find Storage resource %s\n" +msgstr "" + +#: src/dird/dird_conf.c:1330 +#, c-format +msgid "Cannot find Job resource %s\n" +msgstr "" + +#: src/dird/dird_conf.c:1379 +#, c-format +msgid "Cannot find Counter resource %s\n" +msgstr "" + +#: src/dird/dird_conf.c:1387 src/filed/filed_conf.c:373 +#, c-format +msgid "Cannot find Client resource %s\n" +msgstr "" + +#: src/dird/dird_conf.c:1400 +#, c-format +msgid "Cannot find Schedule resource %s\n" +msgstr "" + +#: src/dird/dird_conf.c:1405 src/dird/dird_conf.c:1465 +#: src/tray-monitor/tray_conf.c:314 src/tray-monitor/tray_conf.c:352 +#, c-format +msgid "Unknown resource type %d in save_resource.\n" +msgstr "" + +#: src/dird/dird_conf.c:1480 +#, c-format +msgid "Name item is required in %s resource, but not found.\n" +msgstr "" + +#: src/dird/dird_conf.c:1488 src/filed/filed_conf.c:432 +#: src/gnome2-console/console_conf.c:327 src/wx-console/console_conf.c:328 +#: src/console/console_conf.c:320 src/tray-monitor/tray_conf.c:372 +#: src/qt-console/bat_conf.cpp:329 +#, c-format +msgid "Attempt to define second %s resource named \"%s\" is not permitted.\n" +msgstr "" + +#: src/dird/dird_conf.c:1493 +#, c-format +msgid "Inserting %s res: %s index=%d pass=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:1565 +#, c-format +msgid "Expected a Migration Job Type keyword, got: %s" +msgstr "" + +#: src/dird/dird_conf.c:1591 +#, c-format +msgid "Expected a Job Type keyword, got: %s" +msgstr "" + +#: src/dird/dird_conf.c:1615 +#, c-format +msgid "Expected a Job Level keyword, got: %s" +msgstr "" + +#: src/dird/dird_conf.c:1635 +#, c-format +msgid "Expected a Restore replacement option, got: %s" +msgstr "" + +#: src/dird/dird_conf.c:1683 src/dird/dird_conf.c:1794 +#: src/lib/parse_conf.c:723 src/lib/parse_conf.c:738 +#, c-format +msgid "Expect %s, got: %s" +msgstr "" + +#: src/dird/dird_conf.c:1705 src/lib/parse_conf.c:482 +#, c-format +msgid "Could not find config Resource %s referenced on line %d : %s\n" +msgstr "" + +#: src/dird/admin.c:63 +#, c-format +msgid "Start Admin JobId %d, Job=%s\n" +msgstr "" + +#: src/dird/admin.c:97 +msgid "Admin OK" +msgstr "" + +#: src/dird/admin.c:101 +msgid "*** Admin Error ***" +msgstr "" + +#: src/dird/admin.c:105 +msgid "Admin Canceled" +msgstr "" + +#: src/dird/admin.c:115 +msgid "Bacula " +msgstr "" + +#: src/dird/ua_run.c:152 src/dird/ua_run.c:337 +msgid "Invalid time, using current time.\n" +msgstr "" + +#: src/dird/ua_run.c:174 +#, c-format +msgid "Invalid replace option: %s\n" +msgstr "" + +#: src/dird/ua_run.c:242 +msgid "OK to run? (yes/mod/no): " +msgstr "" + +#: src/dird/ua_run.c:263 +msgid "Level" +msgstr "" + +#: src/dird/ua_run.c:268 +msgid "Restore Client" +msgstr "" + +#: src/dird/ua_run.c:272 src/wx-console/wxbrestorepanel.cpp:356 +#: src/wx-console/wxbrestorepanel.cpp:844 +#: src/wx-console/wxbrestorepanel.cpp:1891 +msgid "When" +msgstr "" + +#: src/dird/ua_run.c:273 src/wx-console/wxbrestorepanel.cpp:357 +#: src/wx-console/wxbrestorepanel.cpp:1117 +#: src/wx-console/wxbrestorepanel.cpp:1894 +msgid "Priority" +msgstr "" + +#: src/dird/ua_run.c:279 +msgid "Verify Job" +msgstr "" + +#: src/dird/ua_run.c:282 src/wx-console/wxbrestorepanel.cpp:349 +#: src/wx-console/wxbrestorepanel.cpp:1872 +msgid "Bootstrap" +msgstr "" + +#: src/dird/ua_run.c:283 src/wx-console/wxbrestorepanel.cpp:350 +#: src/wx-console/wxbrestorepanel.cpp:1093 +#: src/wx-console/wxbrestorepanel.cpp:1874 +msgid "Where" +msgstr "" + +#: src/dird/ua_run.c:284 +msgid "File Relocation" +msgstr "" + +#: src/dird/ua_run.c:285 src/wx-console/wxbrestorepanel.cpp:352 +#: src/wx-console/wxbrestorepanel.cpp:1101 +#: src/wx-console/wxbrestorepanel.cpp:1878 +#: src/wx-console/wxbrestorepanel.cpp:1879 +#: src/wx-console/wxbrestorepanel.cpp:1880 +#: src/wx-console/wxbrestorepanel.cpp:1881 +#: src/wx-console/wxbrestorepanel.cpp:1882 +msgid "Replace" +msgstr "" + +#: src/dird/ua_run.c:286 +msgid "JobId" +msgstr "" + +#: src/dird/ua_run.c:297 src/dird/ua_run.c:1206 +msgid "user selection" +msgstr "" + +#: src/dird/ua_run.c:329 +msgid "" +"Please enter desired start time as YYYY-MM-DD HH:MM:SS (return for now): " +msgstr "" + +#: src/dird/ua_run.c:344 +msgid "Enter new Priority: " +msgstr "" + +#: src/dird/ua_run.c:348 +msgid "Priority must be a positive integer.\n" +msgstr "" + +#: src/dird/ua_run.c:368 +msgid "Please enter the Bootstrap file name: " +msgstr "" + +#: src/dird/ua_run.c:380 +#, c-format +msgid "Warning cannot open %s: ERR=%s\n" +msgstr "" + +#: src/dird/ua_run.c:399 +msgid "Please enter path prefix for restore (/ for none): " +msgstr "" + +#: src/dird/ua_run.c:421 +msgid "Replace:\n" +msgstr "" + +#: src/dird/ua_run.c:425 +msgid "Select replace option" +msgstr "" + +#: src/dird/ua_run.c:436 +msgid "" +"You must set the bootstrap file to NULL to be able to specify a JobId.\n" +msgstr "" + +#: src/dird/ua_run.c:456 +msgid "Job failed.\n" +msgstr "" + +#: src/dird/ua_run.c:459 +#, c-format +msgid "Job queued. JobId=%s\n" +msgstr "" + +#: src/dird/ua_run.c:465 +msgid "Job not run.\n" +msgstr "" + +#: src/dird/ua_run.c:477 +#, c-format +msgid "strip_prefix=%s add_prefix=%s add_suffix=%s\n" +msgstr "" + +#: src/dird/ua_run.c:480 +msgid "This will replace your current Where value\n" +msgstr "" + +#: src/dird/ua_run.c:481 +msgid "Strip prefix" +msgstr "" + +#: src/dird/ua_run.c:482 +msgid "Add prefix" +msgstr "" + +#: src/dird/ua_run.c:483 +msgid "Add file suffix" +msgstr "" + +#: src/dird/ua_run.c:484 +msgid "Enter a regexp" +msgstr "" + +#: src/dird/ua_run.c:485 +msgid "Test filename manipulation" +msgstr "" + +#: src/dird/ua_run.c:486 +msgid "Use this ?" +msgstr "" + +#: src/dird/ua_run.c:491 +msgid "Please enter path prefix to strip: " +msgstr "" + +#: src/dird/ua_run.c:499 +msgid "Please enter path prefix to add (/ for none): " +msgstr "" + +#: src/dird/ua_run.c:510 +msgid "Please enter file suffix to add: " +msgstr "" + +#: src/dird/ua_run.c:517 +msgid "Please enter a valid regexp (!from!to!): " +msgstr "" + +#: src/dird/ua_run.c:530 +#, c-format +msgid "regexwhere=%s\n" +msgstr "" + +#: src/dird/ua_run.c:536 +#, c-format +msgid "strip_prefix=%s add_prefix=%s add_suffix=%s result=%s\n" +msgstr "" + +#: src/dird/ua_run.c:543 +msgid "Cannot use your regexp\n" +msgstr "" + +#: src/dird/ua_run.c:547 +msgid "Please enter filename to test: " +msgstr "" + +#: src/dird/ua_run.c:549 +#, c-format +msgid "%s -> %s\n" +msgstr "" + +#: src/dird/ua_run.c:593 +msgid "Cannot use your regexp.\n" +msgstr "" + +#: src/dird/ua_run.c:606 src/dird/ua_run.c:632 +msgid "Levels:\n" +msgstr "" + +#: src/dird/ua_run.c:607 src/filed/status.c:373 src/stored/status.c:560 +#: src/lib/util.c:335 +msgid "Base" +msgstr "" + +#: src/dird/ua_run.c:608 src/filed/status.c:375 src/stored/status.c:562 +#: src/lib/util.c:337 +msgid "Full" +msgstr "" + +#: src/dird/ua_run.c:609 src/filed/status.c:378 src/stored/status.c:565 +#: src/lib/util.c:340 +msgid "Incremental" +msgstr "" + +#: src/dird/ua_run.c:610 src/filed/status.c:381 src/stored/status.c:568 +#: src/lib/util.c:343 +msgid "Differential" +msgstr "" + +#: src/dird/ua_run.c:611 src/filed/status.c:384 src/stored/status.c:571 +#: src/lib/util.c:346 +msgid "Since" +msgstr "" + +#: src/dird/ua_run.c:612 src/dird/ua_run.c:638 +msgid "Select level" +msgstr "" + +#: src/dird/ua_run.c:633 +msgid "Initialize Catalog" +msgstr "" + +#: src/dird/ua_run.c:634 src/filed/status.c:387 src/stored/status.c:574 +#: src/lib/util.c:349 +msgid "Verify Catalog" +msgstr "" + +#: src/dird/ua_run.c:635 src/lib/util.c:355 +msgid "Verify Volume to Catalog" +msgstr "" + +#: src/dird/ua_run.c:636 src/lib/util.c:358 +msgid "Verify Disk to Catalog" +msgstr "" + +#: src/dird/ua_run.c:637 +msgid "Verify Volume Data (not yet implemented)" +msgstr "" + +#: src/dird/ua_run.c:658 +msgid "Level not appropriate for this Job. Cannot be changed.\n" +msgstr "" + +#: src/dird/ua_run.c:672 +#, c-format +msgid "" +"Run %s job\n" +"JobName: %s\n" +"FileSet: %s\n" +"Client: %s\n" +"Storage: %s\n" +"When: %s\n" +"Priority: %d\n" +msgstr "" + +#: src/dird/ua_run.c:679 src/lib/util.c:302 +msgid "Admin" +msgstr "" + +#: src/dird/ua_run.c:692 +#, c-format +msgid "" +"Run %s job\n" +"JobName: %s\n" +"Level: %s\n" +"Client: %s\n" +"FileSet: %s\n" +"Pool: %s (From %s)\n" +"Storage: %s (From %s)\n" +"When: %s\n" +"Priority: %d\n" +msgstr "" + +#: src/dird/ua_run.c:701 src/lib/util.c:293 +msgid "Backup" +msgstr "" + +#: src/dird/ua_run.c:724 +#, c-format +msgid "" +"Run %s job\n" +"JobName: %s\n" +"Level: %s\n" +"Client: %s\n" +"FileSet: %s\n" +"Pool: %s (From %s)\n" +"Storage: %s (From %s)\n" +"Verify Job: %s\n" +"Verify List: %s\n" +"When: %s\n" +"Priority: %d\n" +msgstr "" + +#: src/dird/ua_run.c:735 src/lib/util.c:296 +msgid "Verify" +msgstr "" + +#: src/dird/ua_run.c:753 +msgid "Please enter a JobId for restore: " +msgstr "" + +#: src/dird/ua_run.c:765 +#, c-format +msgid "" +"Run Restore job\n" +"JobName: f%s\n" +"Bootstrap: %s\n" +"RegexWhere: %s\n" +"Replace: %s\n" +"FileSet: %s\n" +"Backup Client: %s\n" +"Restore Client: %s\n" +"Storage: %s\n" +"When: %s\n" +"Catalog: %s\n" +"Priority: %d\n" +msgstr "" + +#: src/dird/ua_run.c:790 +#, c-format +msgid "" +"Run Restore job\n" +"JobName: %s\n" +"Bootstrap: %s\n" +"Where: %s\n" +"Replace: %s\n" +"FileSet: %s\n" +"Backup Client: %s\n" +"Restore Client: %s\n" +"Storage: %s\n" +"When: %s\n" +"Catalog: %s\n" +"Priority: %d\n" +msgstr "" + +#: src/dird/ua_run.c:817 +#, c-format +msgid "" +"Run Restore job\n" +"JobName: %s\n" +"Bootstrap: %s\n" +msgstr "" + +#: src/dird/ua_run.c:825 +#, c-format +msgid "RegexWhere: %s\n" +msgstr "" + +#: src/dird/ua_run.c:828 +#, c-format +msgid "Where: %s\n" +msgstr "" + +#: src/dird/ua_run.c:832 +#, c-format +msgid "" +"Replace: %s\n" +"Client: %s\n" +"Storage: %s\n" +"JobId: %s\n" +"When: %s\n" +"Catalog: %s\n" +"Priority: %d\n" +msgstr "" + +#: src/dird/ua_run.c:851 +#, c-format +msgid "" +"Run Migration job\n" +"JobName: %s\n" +"Bootstrap: %s\n" +"Client: %s\n" +"FileSet: %s\n" +"Pool: %s (From %s)\n" +"Read Storage: %s (From %s)\n" +"Write Storage: %s (From %s)\n" +"JobId: %s\n" +"When: %s\n" +"Catalog: %s\n" +"Priority: %d\n" +msgstr "" + +#: src/dird/ua_run.c:876 +#, c-format +msgid "Unknown Job Type=%d\n" +msgstr "" + +#: src/dird/ua_run.c:936 +#, c-format +msgid "Value missing for keyword %s\n" +msgstr "" + +#: src/dird/ua_run.c:943 +msgid "Job name specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:951 +msgid "JobId specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:960 src/dird/ua_run.c:1104 +msgid "Client specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:968 +msgid "FileSet specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:976 +msgid "Level specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:985 +msgid "Storage specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:993 +msgid "RegexWhere or Where specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:998 +msgid "No authorization for \"regexwhere\" specification.\n" +msgstr "" + +#: src/dird/ua_run.c:1005 +msgid "Where or RegexWhere specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:1010 +msgid "No authoriztion for \"where\" specification.\n" +msgstr "" + +#: src/dird/ua_run.c:1017 +msgid "Bootstrap specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:1025 +msgid "Replace specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:1033 +msgid "When specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:1041 +msgid "Priority specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:1046 +msgid "Priority must be positive nonzero setting it to 10.\n" +msgstr "" + +#: src/dird/ua_run.c:1056 +msgid "Verify Job specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:1088 +msgid "Migration Job specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:1096 +msgid "Pool specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:1112 +msgid "Restore Client specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:1136 +#, c-format +msgid "Invalid keyword: %s\n" +msgstr "" + +#: src/dird/ua_run.c:1147 +#, c-format +msgid "Catalog \"%s\" not found\n" +msgstr "" + +#: src/dird/ua_run.c:1151 +#, c-format +msgid "No authorization. Catalog \"%s\".\n" +msgstr "" + +#: src/dird/ua_run.c:1162 +#, c-format +msgid "Job \"%s\" not found\n" +msgstr "" + +#: src/dird/ua_run.c:1169 +msgid "A job name must be specified.\n" +msgstr "" + +#: src/dird/ua_run.c:1175 +#, c-format +msgid "No authorization. Job \"%s\".\n" +msgstr "" + +#: src/dird/ua_run.c:1183 +#, c-format +msgid "Pool \"%s\" not found.\n" +msgstr "" + +#: src/dird/ua_run.c:1193 +#, c-format +msgid "No authorization. Pool \"%s\".\n" +msgstr "" + +#: src/dird/ua_run.c:1203 +#, c-format +msgid "Storage \"%s\" not found.\n" +msgstr "" + +#: src/dird/ua_run.c:1215 +#, c-format +msgid "No authorization. Storage \"%s\".\n" +msgstr "" + +#: src/dird/ua_run.c:1235 src/dird/ua_run.c:1255 +#, c-format +msgid "No authorization. Client \"%s\".\n" +msgstr "" + +#: src/dird/ua_run.c:1245 +#, c-format +msgid "Restore Client \"%s\" not found.\n" +msgstr "" + +#: src/dird/ua_run.c:1265 +#, c-format +msgid "FileSet \"%s\" not found.\n" +msgstr "" + +#: src/dird/ua_run.c:1274 +#, c-format +msgid "No authorization. FileSet \"%s\".\n" +msgstr "" + +#: src/dird/ua_run.c:1282 +#, c-format +msgid "Verify Job \"%s\" not found.\n" +msgstr "" + +#: src/dird/ua_run.c:1292 +#, c-format +msgid "Migration Job \"%s\" not found.\n" +msgstr "" + +#: src/dird/jobq.c:75 +#, c-format +msgid "pthread_attr_init: ERR=%s\n" +msgstr "" + +#: src/dird/jobq.c:84 +#, c-format +msgid "pthread_mutex_init: ERR=%s\n" +msgstr "" + +#: src/dird/jobq.c:90 +#, c-format +msgid "pthread_cond_init: ERR=%s\n" +msgstr "" + +#: src/dird/jobq.c:123 src/dird/jobq.c:257 src/dird/jobq.c:322 +#: src/dird/jobq.c:403 +#, c-format +msgid "pthread_mutex_lock: ERR=%s\n" +msgstr "" + +#: src/dird/jobq.c:136 +#, c-format +msgid "pthread_cond_broadcast: ERR=%s\n" +msgstr "" + +#: src/dird/jobq.c:144 +#, c-format +msgid "pthread_cond_wait: ERR=%s\n" +msgstr "" + +#: src/dird/jobq.c:152 +#, c-format +msgid "pthread_mutex_unlock: ERR=%s\n" +msgstr "" + +#: src/dird/jobq.c:188 +#, c-format +msgid "Job %s waiting %d seconds for scheduled start time.\n" +msgstr "" + +#: src/dird/jobq.c:250 +#, c-format +msgid "pthread_thread_create: ERR=%s\n" +msgstr "" + +#: src/dird/jobq.c:368 +#, c-format +msgid "pthread_cond_signal: ERR=%s\n" +msgstr "" + +#: src/dird/jobq.c:377 +#, c-format +msgid "pthread_create: ERR=%s\n" +msgstr "" + +#: src/dird/jobq.c:515 +#, c-format +msgid "Rescheduled Job %s at %s to re-run in %d seconds (%s).\n" +msgstr "" + +#: src/dird/jobq.c:544 src/dird/jobq.c:549 +msgid "previous Job" +msgstr "" + +#: src/dird/jobq.c:704 +#, c-format +msgid "" +"Job canceled. Attempt to read and write same device.\n" +" Read storage \"%s\" (From %s) -- Write storage \"%s\" (From %s)\n" +msgstr "" + +#: src/dird/ua_server.c:72 +#, c-format +msgid "Cannot create UA thread: %s\n" +msgstr "" + +#: src/dird/ua_server.c:160 +msgid "You have messages.\n" +msgstr "" + +#: src/filed/acl.c:104 src/filed/acl.c:110 +msgid "ACL support not configured for your machine.\n" +msgstr "" + +#: src/filed/acl.c:186 +#, c-format +msgid "acl_to_text error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:215 +#, c-format +msgid "acl_delete_def_file error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:223 +#, c-format +msgid "acl_from_text error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:237 +#, c-format +msgid "ac_valid error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:252 +#, c-format +msgid "acl_set_file error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:286 +#, c-format +msgid "acltostr error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:303 src/filed/acl.c:311 +#, c-format +msgid "strtoacl error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:323 +#, c-format +msgid "setacl error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:359 +#, c-format +msgid "acltotext error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:376 +#, c-format +msgid "aclfromtext error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:388 +#, c-format +msgid "acl(SETACL) error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/verify.c:53 +#, c-format +msgid "Cannot malloc %d network read buffer\n" +msgstr "" + +#: src/filed/verify.c:123 src/filed/backup.c:292 +#, c-format +msgid " Could not access %s: ERR=%s\n" +msgstr "" + +#: src/filed/verify.c:130 src/filed/backup.c:299 +#, c-format +msgid " Could not follow link %s: ERR=%s\n" +msgstr "" + +#: src/filed/verify.c:137 src/filed/backup.c:306 +#, c-format +msgid " Could not stat %s: ERR=%s\n" +msgstr "" + +#: src/filed/verify.c:143 src/filed/backup.c:313 +#, c-format +msgid " Unchanged file skipped: %s\n" +msgstr "" + +#: src/filed/verify.c:146 +#, c-format +msgid " Archive file skipped: %s\n" +msgstr "" + +#: src/filed/verify.c:149 +#, c-format +msgid " Recursion turned off. Directory skipped: %s\n" +msgstr "" + +#: src/filed/verify.c:153 +#, c-format +msgid " File system change prohibited. Directory skipped: %s\n" +msgstr "" + +#: src/filed/verify.c:158 src/filed/backup.c:320 +#, c-format +msgid " Could not open directory %s: ERR=%s\n" +msgstr "" + +#: src/filed/verify.c:163 +#, c-format +msgid " Unknown file type %d: %s\n" +msgstr "" + +#: src/filed/verify.c:206 src/filed/verify_vol.c:209 +#, c-format +msgid "Network error in send to Director: ERR=%s\n" +msgstr "" + +#: src/filed/verify.c:239 src/filed/backup.c:366 +#, c-format +msgid "%s digest initialization failed\n" +msgstr "" + +#: src/filed/verify.c:300 src/filed/backup.c:462 +#, c-format +msgid " Cannot open %s: ERR=%s.\n" +msgstr "" + +#: src/filed/verify.c:314 src/filed/backup.c:499 +#, c-format +msgid " Cannot open resource fork for %s: ERR=%s.\n" +msgstr "" + +#: src/filed/verify.c:352 +#, c-format +msgid "Error reading file %s: ERR=%s\n" +msgstr "" + +#: src/filed/backup.c:86 +msgid "Cannot set buffer size FD->SD.\n" +msgstr "" + +#: src/filed/backup.c:129 src/filed/backup.c:138 +msgid "An error occurred while encrypting the stream.\n" +msgstr "" + +#: src/filed/backup.c:255 +#, c-format +msgid " Recursion turned off. Will not descend from %s into %s\n" +msgstr "" + +#: src/filed/backup.c:262 +#, c-format +msgid " %s is a different filesystem. Will not descend from %s into %s\n" +msgstr "" + +#: src/filed/backup.c:268 +#, c-format +msgid " Disallowed filesystem. Will not descend from %s into %s\n" +msgstr "" + +#: src/filed/backup.c:273 +#, c-format +msgid " Disallowed drive type. Will not descend into %s\n" +msgstr "" + +#: src/filed/backup.c:316 +#, c-format +msgid " Archive file not saved: %s\n" +msgstr "" + +#: src/filed/backup.c:326 +#, c-format +msgid " Unknown file type %d; not saved: %s\n" +msgstr "" + +#: src/filed/backup.c:380 +#, c-format +msgid "%s signature digest initialization failed\n" +msgstr "" + +#: src/filed/backup.c:400 +#, c-format +msgid "Python reader program \"%s\" not found.\n" +msgstr "" + +#: src/filed/backup.c:556 +msgid "Failed to allocate memory for crypto signature.\n" +msgstr "" + +#: src/filed/backup.c:561 src/filed/backup.c:567 src/filed/backup.c:582 +msgid "An error occurred while signing the stream.\n" +msgstr "" + +#: src/filed/backup.c:606 +msgid "An error occurred finalizing signing the stream.\n" +msgstr "" + +#: src/filed/backup.c:693 +#, c-format +msgid "Compression deflateParams error: %d\n" +msgstr "" + +#: src/filed/backup.c:705 +msgid "Encrypting sparse data not supported.\n" +msgstr "" + +#: src/filed/backup.c:712 +msgid "Failed to initialize encryption context.\n" +msgstr "" + +#: src/filed/backup.c:735 src/filed/backup.c:891 src/filed/backup.c:926 +#: src/filed/backup.c:937 src/filed/backup.c:983 src/filed/backup.c:996 +#: src/filed/backup.c:1004 src/filed/backup.c:1050 src/filed/backup.c:1086 +#, c-format +msgid "Network send error to SD. ERR=%s\n" +msgstr "" + +#: src/filed/backup.c:814 +#, c-format +msgid "Compression deflate error: %d\n" +msgstr "" + +#: src/filed/backup.c:821 +#, c-format +msgid "Compression deflateReset error: %d\n" +msgstr "" + +#: src/filed/backup.c:864 src/filed/backup.c:880 +msgid "Encryption error\n" +msgstr "" + +#: src/filed/backup.c:904 +#, c-format +msgid "Read error on file %s. ERR=%s\n" +msgstr "" + +#: src/filed/backup.c:907 +msgid "Too many errors.\n" +msgstr "" + +#: src/filed/backup.c:917 +msgid "Encryption padding error\n" +msgstr "" + +#: src/filed/backup.c:974 +#, c-format +msgid "Error reading ACL of %s\n" +msgstr "" + +#: src/filed/backup.c:1029 +msgid "Invalid file flags, no supported data stream type.\n" +msgstr "" + +#: src/filed/job.c:373 +#, c-format +msgid "2901 Job %s not found.\n" +msgstr "" + +#: src/filed/job.c:382 +#, c-format +msgid "2001 Job %s marked to be canceled.\n" +msgstr "" + +#: src/filed/job.c:385 +msgid "2902 Error scanning cancel command.\n" +msgstr "" + +#: src/filed/job.c:404 +#, c-format +msgid "2991 Bad setdebug command: %s\n" +msgstr "" + +#: src/filed/job.c:420 +#, c-format +msgid "Bad estimate command: %s" +msgstr "" + +#: src/filed/job.c:421 +msgid "2992 Bad estimate command.\n" +msgstr "" + +#: src/filed/job.c:444 +#, c-format +msgid "Bad Job Command: %s" +msgstr "" + +#: src/filed/job.c:465 +#, c-format +msgid "Bad RunBeforeJob command: %s\n" +msgstr "" + +#: src/filed/job.c:466 src/filed/job.c:484 +msgid "2905 Bad RunBeforeJob command.\n" +msgstr "" + +#: src/filed/job.c:495 +msgid "2905 Bad RunBeforeNow command.\n" +msgstr "" + +#: src/filed/job.c:514 +#, c-format +msgid "Bad RunAfter command: %s\n" +msgstr "" + +#: src/filed/job.c:515 +msgid "2905 Bad RunAfterJob command.\n" +msgstr "" + +#: src/filed/job.c:549 +#, c-format +msgid "Bad RunScript command: %s\n" +msgstr "" + +#: src/filed/job.c:550 +msgid "2905 Bad RunScript command.\n" +msgstr "" + +#: src/filed/job.c:652 +#, c-format +msgid "Error running program: %s. stat=%d: ERR=%s\n" +msgstr "" + +#: src/filed/job.c:662 +#, c-format +msgid "Cannot open FileSet input file: %s. ERR=%s\n" +msgstr "" + +#: src/filed/job.c:758 +#, c-format +msgid "REGEX %s compile error. ERR=%s\n" +msgstr "" + +#: src/filed/job.c:820 +#, c-format +msgid "Invalid FileSet command: %s\n" +msgstr "" + +#: src/filed/job.c:1054 src/tools/testfind.c:635 src/findlib/match.c:199 +#, c-format +msgid "Unknown include/exclude option: %c\n" +msgstr "" + +#: src/filed/job.c:1123 src/stored/fd_cmds.c:356 +#, c-format +msgid "Could not create bootstrap file %s: ERR=%s\n" +msgstr "" + +#: src/filed/job.c:1232 +#, c-format +msgid "" +"DIR and FD clocks differ by %d seconds, FD automatically compensating.\n" +msgstr "" + +#: src/filed/job.c:1240 +#, c-format +msgid "Unknown backup level: %s\n" +msgstr "" + +#: src/filed/job.c:1252 +#, c-format +msgid "Bad level command: %s\n" +msgstr "" + +#: src/filed/job.c:1273 +#, c-format +msgid "Bad session command: %s" +msgstr "" + +#: src/filed/job.c:1294 +#, c-format +msgid "Bad storage command: %s" +msgstr "" + +#: src/filed/job.c:1303 +#, c-format +msgid "Failed to connect to Storage daemon: %s:%d\n" +msgstr "" + +#: src/filed/job.c:1315 +msgid "Failed to authenticate Storage daemon.\n" +msgstr "" + +#: src/filed/job.c:1353 +msgid "Cannot contact Storage daemon\n" +msgstr "" + +#: src/filed/job.c:1371 +#, c-format +msgid "Bad response to append open: %s\n" +msgstr "" + +#: src/filed/job.c:1376 +msgid "Bad response from stored to open command\n" +msgstr "" + +#: src/filed/job.c:1403 +#, c-format +msgid "Generate VSS snapshots. Driver=\"%s\", Drive(s)=\"%s\"\n" +msgstr "" + +#: src/filed/job.c:1405 +msgid "Generate VSS snapshots failed.\n" +msgstr "" + +#: src/filed/job.c:1412 +#, c-format +msgid "" +"Generate VSS snapshot of drive \"%c:\\\" failed. VSS support is disabled on " +"this drive.\n" +msgstr "" + +#: src/filed/job.c:1419 +#, c-format +msgid "VSS Writer (PrepareForBackup): %s\n" +msgstr "" + +#: src/filed/job.c:1424 +msgid "No drive letters found for generating VSS snapshots.\n" +msgstr "" + +#: src/filed/job.c:1428 +#, c-format +msgid "VSS was not initialized properly. VSS support is disabled. ERR=%s\n" +msgstr "" + +#: src/filed/job.c:1478 +msgid "Append Close with SD failed.\n" +msgstr "" + +#: src/filed/job.c:1482 +#, c-format +msgid "Bad status %d returned from Storage Daemon.\n" +msgstr "" + +#: src/filed/job.c:1500 +#, c-format +msgid "VSS Writer (BackupComplete): %s\n" +msgstr "" + +#: src/filed/job.c:1528 +#, c-format +msgid "2994 Bad verify command: %s\n" +msgstr "" + +#: src/filed/job.c:1543 src/filed/job.c:1582 +#, c-format +msgid "2994 Bad verify level: %s\n" +msgstr "" + +#: src/filed/job.c:1626 +#, c-format +msgid "Bad replace command. CMD=%s\n" +msgstr "" + +#: src/filed/job.c:1644 +#, c-format +msgid "Bad where regexp. where=%s\n" +msgstr "" + +#: src/filed/job.c:1718 +msgid "Improper calling sequence.\n" +msgstr "" + +#: src/filed/job.c:1738 +#, c-format +msgid "Bad response to SD read open: %s\n" +msgstr "" + +#: src/filed/job.c:1743 +msgid "Bad response from stored to read open command\n" +msgstr "" + +#: src/filed/job.c:1807 +#, c-format +msgid "Comm error with SD. bad response to %s. ERR=%s\n" +msgstr "" + +#: src/filed/job.c:1810 +#, c-format +msgid "Bad response to %s command. Wanted %s, got %s\n" +msgstr "" + +#: src/filed/authenticate.c:62 +#, c-format +msgid "I only authenticate directors, not %d\n" +msgstr "" + +#: src/filed/authenticate.c:70 src/stored/authenticate.c:69 +#, c-format +msgid "Bad Hello command from Director at %s. Len=%d.\n" +msgstr "" + +#: src/filed/authenticate.c:82 src/stored/authenticate.c:80 +#, c-format +msgid "Bad Hello command from Director at %s: %s\n" +msgstr "" + +#: src/filed/authenticate.c:94 +#, c-format +msgid "Connection from unknown Director %s at %s rejected.\n" +msgstr "" + +#: src/filed/authenticate.c:134 +#, c-format +msgid "Incorrect password given by Director at %s.\n" +msgstr "" + +#: src/filed/authenticate.c:141 +msgid "" +"Authorization problem: Remote server did not advertize required TLS " +"support.\n" +msgstr "" + +#: src/filed/authenticate.c:195 src/stored/dircmd.c:204 +msgid "Unable to authenticate Director\n" +msgstr "" + +#: src/filed/authenticate.c:246 +msgid "" +"Authorization key rejected by Storage daemon.\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" + +#: src/filed/restore.c:133 +#, c-format +msgid "Size of data or stream of %s not correct. Original %s, restored %s.\n" +msgstr "" + +#: src/filed/restore.c:255 src/filed/verify_vol.c:99 +#, c-format +msgid "Record header scan error: %s\n" +msgstr "" + +#: src/filed/restore.c:263 src/filed/verify_vol.c:108 +#, c-format +msgid "Data record error. ERR=%s\n" +msgstr "" + +#: src/filed/restore.c:267 src/filed/verify_vol.c:112 +#, c-format +msgid "Actual data size %d not same as header %d\n" +msgstr "" + +#: src/filed/restore.c:294 src/filed/restore.c:639 +msgid "Logic error: output file should be open\n" +msgstr "" + +#: src/filed/restore.c:315 src/filed/restore.c:652 +msgid "Logic error: output file should not be open\n" +msgstr "" + +#: src/filed/restore.c:326 src/filed/verify_vol.c:151 +#: src/stored/bextract.c:307 src/stored/bls.c:390 src/stored/bscan.c:670 +#, c-format +msgid "Record header file index %ld not equal record index %ld\n" +msgstr "" + +#: src/filed/restore.c:339 src/stored/bextract.c:316 +#, c-format +msgid "%s stream not supported on this Client.\n" +msgstr "" + +#: src/filed/restore.c:391 +msgid "Unexpected cryptographic session data stream.\n" +msgstr "" + +#: src/filed/restore.c:399 +msgid "" +"No private decryption keys have been defined to decrypt encrypted backup " +"data.\n" +msgstr "" + +#: src/filed/restore.c:410 +msgid "Could not create digest.\n" +msgstr "" + +#: src/filed/restore.c:424 +msgid "Missing private key required to decrypt encrypted backup data.\n" +msgstr "" + +#: src/filed/restore.c:427 +msgid "Decrypt of the session key failed.\n" +msgstr "" + +#: src/filed/restore.c:431 +#, c-format +msgid "An error occurred while decoding encrypted session data stream: %s\n" +msgstr "" + +#: src/filed/restore.c:480 src/filed/restore.c:526 +#, c-format +msgid "Missing encryption session data stream for %s\n" +msgstr "" + +#: src/filed/restore.c:488 src/filed/restore.c:533 +#, c-format +msgid "Failed to initialize decryption context for %s\n" +msgstr "" + +#: src/filed/restore.c:545 +#, c-format +msgid " Cannot open resource fork for %s.\n" +msgstr "" + +#: src/filed/restore.c:571 +#, c-format +msgid " Invalid length of Finder Info (got %d, not 32)\n" +msgstr "" + +#: src/filed/restore.c:575 +#, c-format +msgid " Could not set Finder Info on %s\n" +msgstr "" + +#: src/filed/restore.c:588 +#, c-format +msgid "Can't restore ACL of %s\n" +msgstr "" + +#: src/filed/restore.c:600 +#, c-format +msgid "Can't restore default ACL of %s\n" +msgstr "" + +#: src/filed/restore.c:610 +msgid "Unexpected cryptographic signature data stream.\n" +msgstr "" + +#: src/filed/restore.c:616 +#, c-format +msgid "Failed to decode message signature for %s\n" +msgstr "" + +#: src/filed/restore.c:655 src/stored/bextract.c:474 +#, c-format +msgid "Unknown stream=%d ignored. This shouldn't happen!\n" +msgstr "" + +#: src/filed/restore.c:732 +#, c-format +msgid "" +"%d non-supported data streams and %d non-supported attrib streams ignored.\n" +msgstr "" + +#: src/filed/restore.c:736 +#, c-format +msgid "%d non-supported resource fork streams ignored.\n" +msgstr "" + +#: src/filed/restore.c:739 +#, c-format +msgid "%d non-supported Finder Info streams ignored.\n" +msgstr "" + +#: src/filed/restore.c:742 +#, c-format +msgid "%d non-supported acl streams ignored.\n" +msgstr "" + +#: src/filed/restore.c:745 +#, c-format +msgid "%d non-supported crypto streams ignored.\n" +msgstr "" + +#: src/filed/restore.c:757 +msgid "None" +msgstr "" + +#: src/filed/restore.c:761 +msgid "Zlib errno" +msgstr "" + +#: src/filed/restore.c:763 +msgid "Zlib stream error" +msgstr "" + +#: src/filed/restore.c:765 +msgid "Zlib data error" +msgstr "" + +#: src/filed/restore.c:767 +msgid "Zlib memory error" +msgstr "" + +#: src/filed/restore.c:769 +msgid "Zlib buffer error" +msgstr "" + +#: src/filed/restore.c:771 +msgid "Zlib version error" +msgstr "" + +#: src/filed/restore.c:773 src/lib/util.c:597 src/lib/util.c:607 +#: src/lib/util.c:615 src/lib/util.c:622 src/lib/util.c:629 src/lib/util.c:643 +#: src/lib/util.c:653 src/lib/util.c:660 src/lib/util.c:671 +msgid "*none*" +msgstr "" + +#: src/filed/restore.c:809 +#, c-format +msgid "Missing cryptographic signature for %s\n" +msgstr "" + +#: src/filed/restore.c:838 src/filed/restore.c:862 +#, c-format +msgid "Signature validation failed for file %s: ERR=%s\n" +msgstr "" + +#: src/filed/restore.c:852 +#, c-format +msgid "Digest one file failed for file: %s\n" +msgstr "" + +#: src/filed/restore.c:883 +#, c-format +msgid "Signature validation failed for %s: %s\n" +msgstr "" + +#: src/filed/restore.c:909 src/stored/bextract.c:405 +#, c-format +msgid "Seek to %s error on %s: ERR=%s\n" +msgstr "" + +#: src/filed/restore.c:936 +#, c-format +msgid "Uncompression error on file %s. ERR=%s\n" +msgstr "" + +#: src/filed/restore.c:945 src/stored/bextract.c:439 +msgid "GZIP data stream found, but GZIP not configured!\n" +msgstr "" + +#: src/filed/restore.c:968 +#, c-format +msgid "Write error in Win32 Block Decomposition on %s: %s\n" +msgstr "" + +#: src/filed/restore.c:974 src/stored/bextract.c:377 src/stored/bextract.c:427 +#, c-format +msgid "Write error on %s: %s\n" +msgstr "" + +#: src/filed/restore.c:1023 +msgid "Decryption error\n" +msgstr "" + +#: src/filed/restore.c:1113 +#, c-format +msgid "Decryption error. buf_len=%d decrypt_len=%d on file %s\n" +msgstr "" + +#: src/filed/restore.c:1217 +msgid "Open File Manager paused\n" +msgstr "" + +#: src/filed/restore.c:1221 +msgid "FAILED to pause Open File Manager\n" +msgstr "" + +#: src/filed/restore.c:1229 +#, c-format +msgid "Running as '%s'. Privmask=%#08x\n" +msgstr "" + +#: src/filed/restore.c:1231 +msgid "Failed to retrieve current UserName\n" +msgstr "" + +#: src/filed/filed.c:65 +#, c-format +msgid "" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: bacula-fd [-f -s] [-c config_file] [-d debug_level]\n" +" -c use as configuration file\n" +" -dnn set debug level to nn\n" +" -f run in foreground (for debugging)\n" +" -g groupid\n" +" -s no signals (for debugging)\n" +" -t test configuration file and exit\n" +" -u userid\n" +" -v verbose user messages\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/filed/filed.c:277 +#, c-format +msgid "" +"No File daemon resource defined in %s\n" +"Without that I don't know who I am :-(\n" +msgstr "" + +#: src/filed/filed.c:282 +#, c-format +msgid "Only one Client resource permitted in %s\n" +msgstr "" + +#: src/filed/filed.c:305 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"File daemon in %s.\n" +msgstr "" + +#: src/filed/filed.c:329 +msgid "PKI encryption/signing enabled but not compiled into Bacula.\n" +msgstr "" + +#: src/filed/filed.c:340 +#, c-format +msgid "" +"\"PKI Key Pair\" must be defined for File daemon \"%s\" in %s if either " +"\"PKI Sign\" or \"PKI Encrypt\" are enabled.\n" +msgstr "" + +#: src/filed/filed.c:352 src/filed/filed.c:383 src/filed/filed.c:424 +msgid "Failed to allocate a new keypair object.\n" +msgstr "" + +#: src/filed/filed.c:356 +#, c-format +msgid "Failed to load public certificate for File daemon \"%s\" in %s.\n" +msgstr "" + +#: src/filed/filed.c:362 +#, c-format +msgid "Failed to load private key for File daemon \"%s\" in %s.\n" +msgstr "" + +#: src/filed/filed.c:392 +#, c-format +msgid "Failed to load private key from file %s for File daemon \"%s\" in %s.\n" +msgstr "" + +#: src/filed/filed.c:399 +#, c-format +msgid "" +"Failed to load trusted signer certificate from file %s for File daemon \"%s" +"\" in %s.\n" +msgstr "" + +#: src/filed/filed.c:430 +#, c-format +msgid "" +"Failed to load master key certificate from file %s for File daemon \"%s\" in " +"%s.\n" +msgstr "" + +#: src/filed/filed.c:446 +#, c-format +msgid "No Director resource defined in %s\n" +msgstr "" + +#: src/filed/status.c:77 +#, c-format +msgid "%s Version: %s (%s) %s %s %s %s\n" +msgstr "" + +#: src/filed/status.c:81 src/stored/status.c:86 +#, c-format +msgid "Daemon started %s, %d Job%s run since started.\n" +msgstr "" + +#: src/filed/status.c:136 +#, c-format +msgid " Sizeof: boffset_t=%d size_t=%d debug=%d trace=%d\n" +msgstr "" + +#: src/filed/status.c:155 +#, c-format +msgid "Director connected at: %s\n" +msgstr "" + +#: src/filed/status.c:157 +#, c-format +msgid "JobId %d Job %s is running.\n" +msgstr "" + +#: src/filed/status.c:160 +#, c-format +msgid " %s%s Job started: %s\n" +msgstr "" + +#: src/filed/status.c:172 +#, c-format +msgid " Files=%s Bytes=%s Bytes/sec=%s Errors=%d\n" +msgstr "" + +#: src/filed/status.c:178 +#, c-format +msgid " Files Examined=%s\n" +msgstr "" + +#: src/filed/status.c:183 +#, c-format +msgid " Processing file: %s\n" +msgstr "" + +#: src/filed/status.c:194 +msgid " SDSocket closed.\n" +msgstr "" + +#: src/filed/status.c:328 src/filed/status.c:352 src/stored/status.c:636 +#: src/stored/status.c:659 +#, c-format +msgid "Bad .status command: %s\n" +msgstr "" + +#: src/filed/status.c:329 +msgid "2900 Bad .status command, missing argument.\n" +msgstr "" + +#: src/filed/status.c:353 +msgid "2900 Bad .status command, wrong argument.\n" +msgstr "" + +#: src/filed/status.c:390 src/stored/status.c:577 +msgid "Init Catalog" +msgstr "" + +#: src/filed/status.c:393 src/stored/status.c:580 +msgid "Volume to Catalog" +msgstr "" + +#: src/filed/status.c:396 src/stored/status.c:583 +msgid "Disk to Catalog" +msgstr "" + +#: src/filed/status.c:399 src/stored/status.c:586 +msgid "Data" +msgstr "" + +#: src/filed/status.c:405 src/stored/status.c:592 src/lib/util.c:367 +msgid "Unknown Job Level" +msgstr "" + +#: src/filed/status.c:421 +msgid "Bacula Client: Idle" +msgstr "" + +#: src/filed/status.c:432 +msgid "Bacula Client: Running" +msgstr "" + +#: src/filed/status.c:446 +msgid "Bacula Client: Last Job Canceled" +msgstr "" + +#: src/filed/status.c:450 +msgid "Bacula Client: Last Job Failed" +msgstr "" + +#: src/filed/status.c:454 +msgid "Bacula Client: Last Job had Warnings" +msgstr "" + +#: src/filed/verify_vol.c:65 +msgid "Storage command not issued before Verify.\n" +msgstr "" + +#: src/filed/verify_vol.c:145 +#, c-format +msgid "Error scanning record header: %s\n" +msgstr "" + +#: src/filed/filed_conf.c:319 src/filed/filed_conf.c:384 +#: src/filed/filed_conf.c:414 src/gnome2-console/console_conf.c:154 +#: src/gnome2-console/console_conf.c:232 src/gnome2-console/console_conf.c:280 +#: src/gnome2-console/console_conf.c:310 src/wx-console/console_conf.c:164 +#: src/wx-console/console_conf.c:239 src/wx-console/console_conf.c:284 +#: src/wx-console/console_conf.c:311 src/stored/stored_conf.c:528 +#: src/stored/stored_conf.c:616 src/stored/stored_conf.c:651 +#: src/console/console_conf.c:155 src/console/console_conf.c:231 +#: src/console/console_conf.c:276 src/console/console_conf.c:303 +#: src/qt-console/bat_conf.cpp:156 src/qt-console/bat_conf.cpp:234 +#: src/qt-console/bat_conf.cpp:282 src/qt-console/bat_conf.cpp:312 +#, c-format +msgid "Unknown resource type %d\n" +msgstr "" + +#: src/filed/pythonfd.c:157 src/stored/pythonsd.c:162 +#, c-format +msgid "Cannot delete attribute %s" +msgstr "" + +#: src/filed/pythonfd.c:175 src/filed/pythonfd.c:191 src/stored/pythonsd.c:195 +#, c-format +msgid "Cannot find attribute %s" +msgstr "" + +#: src/gnome2-console/interface.c:202 +msgid "Bacula Console" +msgstr "" + +#: src/gnome2-console/interface.c:235 src/wx-console/wxbmainframe.cpp:248 +#: src/wx-console/wxbmainframe.cpp:619 +msgid "Connect" +msgstr "" + +#: src/gnome2-console/interface.c:238 +msgid "Connect to Director" +msgstr "" + +#: src/gnome2-console/interface.c:242 +msgid "Run" +msgstr "" + +#: src/gnome2-console/interface.c:245 src/gnome2-console/interface.c:682 +#: src/gnome2-console/interface.c:696 +msgid "Run a Job" +msgstr "" + +#: src/gnome2-console/interface.c:249 +msgid "Dir Status" +msgstr "" + +#: src/gnome2-console/interface.c:255 src/lib/util.c:299 +#: src/wx-console/wxbrestorepanel.cpp:404 +#: src/wx-console/wxbrestorepanel.cpp:1974 +msgid "Restore" +msgstr "" + +#: src/gnome2-console/interface.c:261 +msgid "Label" +msgstr "" + +#: src/gnome2-console/interface.c:267 +msgid "Msgs" +msgstr "" + +#: src/gnome2-console/interface.c:270 +msgid "Display Messages" +msgstr "" + +#: src/gnome2-console/interface.c:294 +msgid " Command: " +msgstr "" + +#: src/gnome2-console/interface.c:303 +msgid "Enter Commands Here" +msgstr "" + +#: src/gnome2-console/interface.c:314 +msgid " Status: " +msgstr "" + +#: src/gnome2-console/interface.c:323 src/gnome2-console/interface.c:1709 +msgid " " +msgstr "" + +#: src/gnome2-console/interface.c:424 +msgid "About Bacula Console" +msgstr "" + +#: src/gnome2-console/interface.c:439 +msgid "Bacula Console\n" +msgstr "" + +#: src/gnome2-console/interface.c:448 +msgid "Copyright (c) 2000 - 2004, Kern Sibbald and John Walker" +msgstr "" + +#: src/gnome2-console/interface.c:453 +msgid "Authors: Kern Sibbald and John Walker" +msgstr "" + +#: src/gnome2-console/interface.c:458 +msgid "It comes by night and sucks the essence from your computers" +msgstr "" + +#: src/gnome2-console/interface.c:523 src/gnome2-console/interface.c:540 +msgid "Select Director" +msgstr "" + +#: src/gnome2-console/interface.c:570 +msgid " " +msgstr "" + +#: src/gnome2-console/interface.c:715 src/gnome2-console/interface.c:1631 +msgid "Job:" +msgstr "" + +#: src/gnome2-console/interface.c:736 +msgid " Type:" +msgstr "" + +#: src/gnome2-console/interface.c:756 src/gnome2-console/interface.c:785 +#: src/gnome2-console/interface.c:1284 src/gnome2-console/interface.c:1680 +msgid " " +msgstr "" + +#: src/gnome2-console/interface.c:765 src/gnome2-console/interface.c:1660 +#: src/wx-console/wxbrestorepanel.cpp:1886 +msgid "Client:" +msgstr "" + +#: src/gnome2-console/interface.c:795 src/gnome2-console/interface.c:1689 +msgid "FileSet: " +msgstr "" + +#: src/gnome2-console/interface.c:820 src/wx-console/wxbrestorepanel.cpp:1893 +msgid "Priority:" +msgstr "" + +#: src/gnome2-console/interface.c:836 +msgid "Level:" +msgstr "" + +#: src/gnome2-console/interface.c:857 +msgid " " +msgstr "" + +#: src/gnome2-console/interface.c:867 src/gnome2-console/interface.c:1433 +#: src/gnome2-console/interface.c:1718 +msgid "Pool:" +msgstr "" + +#: src/gnome2-console/interface.c:888 src/gnome2-console/interface.c:919 +#: src/gnome2-console/interface.c:949 src/gnome2-console/interface.c:969 +#: src/gnome2-console/interface.c:989 src/gnome2-console/interface.c:1009 +#: src/gnome2-console/interface.c:1014 src/gnome2-console/interface.c:1483 +#: src/gnome2-console/interface.c:1739 src/gnome2-console/interface.c:1769 +#: src/gnome2-console/interface.c:1788 src/gnome2-console/interface.c:1793 +msgid " " +msgstr "" + +#: src/gnome2-console/interface.c:898 src/gnome2-console/interface.c:1407 +#: src/gnome2-console/interface.c:1748 src/wx-console/wxbrestorepanel.cpp:1888 +msgid "Storage:" +msgstr "" + +#: src/gnome2-console/interface.c:929 +msgid "Messages:" +msgstr "" + +#: src/gnome2-console/interface.c:959 +msgid "Where: " +msgstr "" + +#: src/gnome2-console/interface.c:979 src/wx-console/wxbrestorepanel.cpp:1890 +msgid "When:" +msgstr "" + +#: src/gnome2-console/interface.c:999 src/wx-console/wxbrestorepanel.cpp:1871 +msgid "Bootstrap:" +msgstr "" + +#: src/gnome2-console/interface.c:1194 +msgid "Restore File Selection" +msgstr "" + +#: src/gnome2-console/interface.c:1238 +msgid "Current dir:" +msgstr "" + +#: src/gnome2-console/interface.c:1265 +msgid "Files Selected: " +msgstr "" + +#: src/gnome2-console/interface.c:1385 src/gnome2-console/interface.c:1396 +msgid "Label a Volume" +msgstr "" + +#: src/gnome2-console/interface.c:1458 +msgid "Volume Name:" +msgstr "" + +#: src/gnome2-console/interface.c:1472 +msgid "Slot:" +msgstr "" + +#: src/gnome2-console/interface.c:1598 +msgid "Restore Files Dialog" +msgstr "" + +#: src/gnome2-console/interface.c:1613 +msgid "Restore Files" +msgstr "" + +#: src/gnome2-console/interface.c:1778 +msgid "Before:" +msgstr "" + +#: src/gnome2-console/interface.c:1824 +msgid "Select Files" +msgstr "" + +#: src/gnome2-console/interface.c:1907 +msgid "Progress" +msgstr "" + +#: src/gnome2-console/console.c:102 +#, c-format +msgid "" +"\n" +"Version: %s (%s) %s %s %s\n" +"\n" +"Usage: bgnome-console [-s] [-c config_file] [-d debug_level] [config_file]\n" +" -c set configuration file to file\n" +" -dnn set debug level to nn\n" +" -s no signals\n" +" -t test - read configuration and exit\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/gnome2-console/console.c:160 src/console/console.c:664 +#: src/qt-console/main.cpp:216 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Director \"%s\" in %s. At least one CA certificate store is required.\n" +msgstr "" + +#: src/gnome2-console/console.c:169 src/console/console.c:673 +#: src/qt-console/main.cpp:225 +#, c-format +msgid "" +"No Director resource defined in %s\n" +"Without that I don't how to speak to the Director :-(\n" +msgstr "" + +#: src/gnome2-console/console.c:189 src/console/console.c:693 +#: src/qt-console/main.cpp:245 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Console \"%s\" in %s.\n" +msgstr "" + +#: src/gnome2-console/console.c:234 +#, c-format +msgid "Pthread cond init error = %s\n" +msgstr "" + +#: src/gnome2-console/console.c:379 +msgid " Not Connected" +msgstr "" + +#: src/gnome2-console/console.c:500 +#, c-format +msgid " Connecting to Director %s:%d" +msgstr "" + +#: src/gnome2-console/console.c:501 src/qt-console/bcomm/dircomm.cpp:121 +#: src/qt-console/console/console.cpp:138 +#, c-format +msgid "" +"Connecting to Director %s:%d\n" +"\n" +msgstr "" + +#: src/gnome2-console/console.c:516 src/wx-console/console_thread.cpp:381 +#, c-format +msgid "Passphrase for Console \"%s\" TLS private key: " +msgstr "" + +#: src/gnome2-console/console.c:526 src/console/console.c:538 +#: src/qt-console/bcomm/dircomm.cpp:141 src/qt-console/console/console.cpp:163 +#: src/wx-console/console_thread.cpp:391 +#, c-format +msgid "Failed to initialize TLS context for Console \"%s\".\n" +msgstr "" + +#: src/gnome2-console/console.c:538 src/wx-console/console_thread.cpp:402 +#, c-format +msgid "Passphrase for Director \"%s\" TLS private key: " +msgstr "" + +#: src/gnome2-console/console.c:548 src/console/console.c:558 +#: src/qt-console/bcomm/dircomm.cpp:161 src/qt-console/console/console.cpp:183 +#: src/wx-console/console_thread.cpp:412 +#, c-format +msgid "Failed to initialize TLS context for Director \"%s\".\n" +msgstr "" + +#: src/gnome2-console/console.c:557 src/tray-monitor/tray-monitor.c:922 +#: src/qt-console/bcomm/dircomm.cpp:177 src/qt-console/console/console.cpp:199 +#: src/wx-console/console_thread.cpp:420 +msgid "Director daemon" +msgstr "" + +#: src/gnome2-console/console.c:569 +msgid " Initializing ..." +msgstr "" + +#: src/gnome2-console/console.c:605 +msgid " Connected" +msgstr "" + +#: src/gnome2-console/console.c:613 +msgid " Processing command ..." +msgstr "" + +#: src/gnome2-console/console.c:648 +msgid " At prompt waiting for input ..." +msgstr "" + +#: src/gnome2-console/console.c:768 +msgid " Ready" +msgstr "" + +#: src/gnome2-console/console_conf.c:134 src/wx-console/console_conf.c:147 +#: src/console/console_conf.c:138 src/qt-console/bat_conf.cpp:136 +#, c-format +msgid "No record for %d %s\n" +msgstr "" + +#: src/gnome2-console/console_conf.c:143 src/wx-console/console_conf.c:160 +#: src/console/console_conf.c:151 src/qt-console/bat_conf.cpp:145 +#, c-format +msgid "Director: name=%s address=%s DIRport=%d\n" +msgstr "" + +#: src/gnome2-console/console_conf.c:147 src/qt-console/bat_conf.cpp:149 +#, c-format +msgid "Console: name=%s\n" +msgstr "" + +#: src/gnome2-console/console_conf.c:150 src/tray-monitor/tray_conf.c:195 +#: src/qt-console/bat_conf.cpp:152 +#, c-format +msgid "ConsoleFont: name=%s font face=%s\n" +msgstr "" + +#: src/gnome2-console/support.c:60 src/gnome2-console/support.c:85 +#, c-format +msgid "Couldn't find pixmap file: %s" +msgstr "" + +#: src/gnome2-console/authenticate.c:87 +#, c-format +msgid "%s: Director authorization problem.\n" +msgstr "" + +#: src/gnome2-console/authenticate.c:88 +msgid "Director authorization problem.\n" +msgstr "" + +#: src/gnome2-console/authenticate.c:90 +msgid "" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" + +#: src/gnome2-console/authenticate.c:98 src/console/authenticate.c:143 +#: src/tray-monitor/authenticate.c:97 +#, c-format +msgid "Bad response to Hello command: ERR=%s\n" +msgstr "" + +#: src/gnome2-console/authenticate.c:100 +#, c-format +msgid "%s: Bad response to Hello command: ERR=%s\n" +msgstr "" + +#: src/gnome2-console/authenticate.c:102 +msgid "The Director is probably not running.\n" +msgstr "" + +#: src/gnome2-console/authenticate.c:108 src/wx-console/authenticate.c:157 +#: src/console/authenticate.c:150 src/tray-monitor/authenticate.c:104 +msgid "Director rejected Hello command\n" +msgstr "" + +#: src/gnome2-console/restore.c:149 +msgid "Mark" +msgstr "" + +#: src/gnome2-console/restore.c:149 +msgid "File" +msgstr "" + +#: src/gnome2-console/restore.c:149 +msgid "Mode" +msgstr "" + +#: src/gnome2-console/restore.c:149 src/wx-console/wxbrestorepanel.cpp:306 +msgid "User" +msgstr "" + +#: src/gnome2-console/restore.c:149 src/wx-console/wxbrestorepanel.cpp:310 +msgid "Group" +msgstr "" + +#: src/gnome2-console/restore.c:149 src/wx-console/wxbrestorepanel.cpp:294 +msgid "Size" +msgstr "" + +#: src/gnome2-console/restore.c:149 src/wx-console/wxbrestorepanel.cpp:298 +msgid "Date" +msgstr "" + +#: src/cats/sql.c:138 +#, c-format +msgid "" +"query %s failed:\n" +"%s\n" +msgstr "" + +#: src/cats/sql.c:160 +#, c-format +msgid "" +"insert %s failed:\n" +"%s\n" +msgstr "" + +#: src/cats/sql.c:174 +#, c-format +msgid "Insertion problem: affected_rows=%s\n" +msgstr "" + +#: src/cats/sql.c:194 +#, c-format +msgid "" +"update %s failed:\n" +"%s\n" +msgstr "" + +#: src/cats/sql.c:204 +#, c-format +msgid "Update failed: affected_rows=%s for %s\n" +msgstr "" + +#: src/cats/sql.c:225 +#, c-format +msgid "" +"delete %s failed:\n" +"%s\n" +msgstr "" + +#: src/cats/sql.c:251 src/cats/sql.c:258 src/cats/sql_create.c:1031 +#: src/cats/sql_get.c:185 src/cats/sql_get.c:236 src/cats/sql_get.c:604 +#: src/cats/sql_get.c:680 src/cats/sql_get.c:951 +#, c-format +msgid "error fetching row: %s\n" +msgstr "" + +#: src/cats/sql.c:449 +#, c-format +msgid "Path length is zero. File=%s\n" +msgstr "" + +#: src/cats/sql.c:493 +msgid "No results to list.\n" +msgstr "" + +#: src/cats/sqlite.c:162 src/cats/mysql.c:153 src/cats/postgresql.c:162 +#: src/cats/bdb.c:185 +#, c-format +msgid "Unable to initialize DB lock. ERR=%s\n" +msgstr "" + +#: src/cats/sqlite.c:176 +#, c-format +msgid "Database %s does not exist, please create it.\n" +msgstr "" + +#: src/cats/sqlite.c:206 +#, c-format +msgid "Unable to open Database=%s. ERR=%s\n" +msgstr "" + +#: src/cats/sqlite.c:207 src/lib/bnet_server.c:391 +msgid "unknown" +msgstr "" + +#: src/cats/sqlite.c:359 src/cats/mysql.c:315 src/cats/postgresql.c:319 +#, c-format +msgid "Query failed: %s: ERR=%s\n" +msgstr "" + +#: src/cats/sql_find.c:98 src/cats/sql_find.c:127 +#, c-format +msgid "" +"Query error for start time request: ERR=%s\n" +"CMD=%s\n" +msgstr "" + +#: src/cats/sql_find.c:104 +msgid "No prior Full backup Job record found.\n" +msgstr "" + +#: src/cats/sql_find.c:116 +#, c-format +msgid "Unknown level=%d\n" +msgstr "" + +#: src/cats/sql_find.c:133 +#, c-format +msgid "" +"No Job record found: ERR=%s\n" +"CMD=%s\n" +msgstr "" + +#: src/cats/sql_find.c:232 +#, c-format +msgid "Unknown Job level=%d\n" +msgstr "" + +#: src/cats/sql_find.c:242 +#, c-format +msgid "No Job found for: %s.\n" +msgstr "" + +#: src/cats/sql_find.c:253 +#, c-format +msgid "No Job found for: %s\n" +msgstr "" + +#: src/cats/sql_find.c:332 +#, c-format +msgid "Request for Volume item %d greater than max %d or less than 1\n" +msgstr "" + +#: src/cats/sql_find.c:347 +#, c-format +msgid "No Volume record found for item %d.\n" +msgstr "" + +#: src/cats/mysql.c:82 +msgid "A user name for MySQL must be supplied.\n" +msgstr "" + +#: src/cats/mysql.c:191 +#, c-format +msgid "" +"Unable to connect to MySQL server.\n" +"Database=%s User=%s\n" +"MySQL connect failed either server not running or your authorization is " +"incorrect.\n" +msgstr "" + +#: src/cats/sql_delete.c:80 +#, c-format +msgid "No pool record %s exists\n" +msgstr "" + +#: src/cats/sql_delete.c:85 +#, c-format +msgid "Expecting one pool record, got %d\n" +msgstr "" + +#: src/cats/sql_delete.c:91 +#, c-format +msgid "Error fetching row %s\n" +msgstr "" + +#: src/cats/sql_create.c:95 +#, c-format +msgid "Create DB Job record %s failed. ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:146 +#, c-format +msgid "Create JobMedia record %s failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:155 +#, c-format +msgid "Update Media record %s failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:185 +#, c-format +msgid "pool record %s already exists\n" +msgstr "" + +#: src/cats/sql_create.c:212 +#, c-format +msgid "Create db Pool record %s failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:243 +#, c-format +msgid "Device record %s already exists\n" +msgstr "" + +#: src/cats/sql_create.c:259 +#, c-format +msgid "Create db Device record %s failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:292 +#, c-format +msgid "More than one Storage record!: %d\n" +msgstr "" + +#: src/cats/sql_create.c:297 +#, c-format +msgid "error fetching Storage row: %s\n" +msgstr "" + +#: src/cats/sql_create.c:317 +#, c-format +msgid "Create DB Storage record %s failed. ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:349 +#, c-format +msgid "mediatype record %s already exists\n" +msgstr "" + +#: src/cats/sql_create.c:365 +#, c-format +msgid "Create db mediatype record %s failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:400 +#, c-format +msgid "Volume \"%s\" already exists.\n" +msgstr "" + +#: src/cats/sql_create.c:445 +#, c-format +msgid "Create DB Media record %s failed. ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:493 +#, c-format +msgid "More than one Client!: %d\n" +msgstr "" + +#: src/cats/sql_create.c:498 +#, c-format +msgid "error fetching Client row: %s\n" +msgstr "" + +#: src/cats/sql_create.c:525 +#, c-format +msgid "Create DB Client record %s failed. ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:568 +#, c-format +msgid "Create DB Counters record %s failed. ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:601 +#, c-format +msgid "More than one FileSet!: %d\n" +msgstr "" + +#: src/cats/sql_create.c:606 +#, c-format +msgid "error fetching FileSet row: ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:636 +#, c-format +msgid "Create DB FileSet record %s failed. ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:857 +#, c-format +msgid "Could not init batch database: \"%s\".\n" +msgstr "" + +#: src/cats/sql_create.c:864 +#, c-format +msgid "Could not open database \"%s\": ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:886 src/cats/sql_create.c:927 +#, c-format +msgid "Attempt to put non-attributes into catalog. Stream=%d\n" +msgstr "" + +#: src/cats/sql_create.c:991 +#, c-format +msgid "Create db File record %s failed. ERR=%s" +msgstr "" + +#: src/cats/sql_create.c:1024 src/cats/sql_get.c:229 +#, c-format +msgid "More than one Path!: %s for path: %s\n" +msgstr "" + +#: src/cats/sql_create.c:1055 +#, c-format +msgid "Create db Path record %s failed. ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:1088 +#, c-format +msgid "More than one Filename! %s for file: %s\n" +msgstr "" + +#: src/cats/sql_create.c:1094 +#, c-format +msgid "Error fetching row for file=%s: ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:1110 +#, c-format +msgid "Create db Filename record %s failed. ERR=%s\n" +msgstr "" + +#: src/cats/sql_get.c:135 +#, c-format +msgid "get_file_record want 1 got rows=%d\n" +msgstr "" + +#: src/cats/sql_get.c:140 +#, c-format +msgid "Error fetching row: %s\n" +msgstr "" + +#: src/cats/sql_get.c:148 +#, c-format +msgid "File record for PathId=%s FilenameId=%s not found.\n" +msgstr "" + +#: src/cats/sql_get.c:154 +msgid "File record not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:179 +#, c-format +msgid "More than one Filename!: %s for file: %s\n" +msgstr "" + +#: src/cats/sql_get.c:189 +#, c-format +msgid "Get DB Filename record %s found bad record: %d\n" +msgstr "" + +#: src/cats/sql_get.c:195 +#, c-format +msgid "Filename record: %s not found.\n" +msgstr "" + +#: src/cats/sql_get.c:199 +#, c-format +msgid "Filename record: %s not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:240 +#, c-format +msgid "Get DB path record %s found bad record: %s\n" +msgstr "" + +#: src/cats/sql_get.c:253 +#, c-format +msgid "Path record: %s not found.\n" +msgstr "" + +#: src/cats/sql_get.c:257 +#, c-format +msgid "Path record: %s not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:294 +#, c-format +msgid "No Job found for JobId %s\n" +msgstr "" + +#: src/cats/sql_get.c:363 src/cats/sql_get.c:419 +#, c-format +msgid "No volumes found for JobId=%d\n" +msgstr "" + +#: src/cats/sql_get.c:369 src/cats/sql_get.c:430 +#, c-format +msgid "Error fetching row %d: ERR=%s\n" +msgstr "" + +#: src/cats/sql_get.c:383 +#, c-format +msgid "No Volume for JobId %d found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:520 +#, c-format +msgid "Pool id select failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_get.c:557 +#, c-format +msgid "Client id select failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_get.c:599 +#, c-format +msgid "More than one Pool!: %s\n" +msgstr "" + +#: src/cats/sql_get.c:641 +msgid "Pool record not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:675 +#, c-format +msgid "More than one Client!: %s\n" +msgstr "" + +#: src/cats/sql_get.c:692 src/cats/sql_get.c:696 +msgid "Client record not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:721 +#, c-format +msgid "More than one Counter!: %d\n" +msgstr "" + +#: src/cats/sql_get.c:726 +#, c-format +msgid "error fetching Counter row: %s\n" +msgstr "" + +#: src/cats/sql_get.c:746 +#, c-format +msgid "Counter record: %s not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:782 +#, c-format +msgid "Error got %s FileSets but expected only one!\n" +msgstr "" + +#: src/cats/sql_get.c:787 +#, c-format +msgid "FileSet record \"%s\" not found.\n" +msgstr "" + +#: src/cats/sql_get.c:797 +msgid "FileSet record not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:855 +#, c-format +msgid "Media id select failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_get.c:893 +#, c-format +msgid "query dbids failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_get.c:946 +#, c-format +msgid "More than one Volume!: %s\n" +msgstr "" + +#: src/cats/sql_get.c:1001 +#, c-format +msgid "Media record MediaId=%s not found.\n" +msgstr "" + +#: src/cats/sql_get.c:1004 +#, c-format +msgid "Media record for Volume \"%s\" not found.\n" +msgstr "" + +#: src/cats/sql_get.c:1011 +#, c-format +msgid "Media record for MediaId=%u not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:1014 +#, c-format +msgid "Media record for Vol=%s not found in Catalog.\n" +msgstr "" + +#: src/cats/postgresql.c:86 +msgid "A user name for PostgreSQL must be supplied.\n" +msgstr "" + +#: src/cats/postgresql.c:149 +msgid "" +"PostgreSQL configuration problem. PostgreSQL library is not thread safe. " +"Connot continue.\n" +msgstr "" + +#: src/cats/postgresql.c:199 +#, c-format +msgid "" +"Unable to connect to PostgreSQL server.\n" +"Database=%s User=%s\n" +"It is probably not running or your password is incorrect.\n" +msgstr "" + +#: src/cats/postgresql.c:300 +msgid "PQescapeStringConn returned non-zero.\n" +msgstr "" + +#: src/cats/postgresql.c:605 +#, c-format +msgid "error fetching currval: %s\n" +msgstr "" + +#: src/cats/postgresql.c:699 src/cats/postgresql.c:746 +#, c-format +msgid "error ending batch mode: %s\n" +msgstr "" + +#: src/cats/bdb.c:161 +msgid "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n" +msgstr "" + +#: src/cats/bdb.c:162 +msgid "WARNING!!!! The Internal Database is NOT OPERATIONAL!\n" +msgstr "" + +#: src/cats/bdb.c:163 +msgid "You should use SQLite, PostgreSQL, or MySQL\n" +msgstr "" + +#: src/cats/bdb.c:195 +#, c-format +msgid "Unable to open Catalog DB control file %s: ERR=%s\n" +msgstr "" + +#: src/cats/bdb.c:250 +#, c-format +msgid "Error reading catalog DB control file. ERR=%s\n" +msgstr "" + +#: src/cats/bdb.c:253 +#, c-format +msgid "" +"Error, catalog DB control file wrong version. Wanted %d, got %d\n" +"Please reinitialize the working directory.\n" +msgstr "" + +#: src/cats/bdb_update.c:88 src/cats/bdb_update.c:119 +#, c-format +msgid "Error updating DB Job file. ERR=%s\n" +msgstr "" + +#: src/cats/bdb_update.c:158 src/cats/bdb_update.c:194 +#, c-format +msgid "Error updating DB Media file. ERR=%s\n" +msgstr "" + +#: src/cats/sql_list.c:62 +#, c-format +msgid "Query failed: %s\n" +msgstr "" + +#: src/wx-console/console_conf.c:156 src/console/console_conf.c:147 +#, c-format +msgid "Console: name=%s rcfile=%s histfile=%s\n" +msgstr "" + +#: src/wx-console/authenticate.c:142 src/console/authenticate.c:131 +msgid "TLS negotiation failed\n" +msgstr "" + +#: src/wx-console/authenticate.c:150 +msgid "Bad response to Hello command: ERR=" +msgstr "" + +#: src/wx-console/authenticate.c:167 src/console/authenticate.c:160 +msgid "" +"Director authorization problem.\n" +"Most likely the passwords do not agree.\n" +"If you are using TLS, there may have been a certificate validation error " +"during the TLS handshake.\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" + +#: src/stored/fd_cmds.c:369 +msgid "Error parsing bootstrap file.\n" +msgstr "" + +#: src/stored/autochanger.c:66 +#, c-format +msgid "No Changer Name given for device %s. Cannot continue.\n" +msgstr "" + +#: src/stored/autochanger.c:72 +#, c-format +msgid "No Changer Command given for device %s. Cannot continue.\n" +msgstr "" + +#: src/stored/autochanger.c:85 +#, c-format +msgid "" +"Media Type not the same for all devices in changer %s. Cannot continue.\n" +msgstr "" + +#: src/stored/autochanger.c:149 +#, c-format +msgid "" +"Invalid slot=%d defined in catalog for Volume \"%s\" on %s. Manual load my " +"be required.\n" +msgstr "" + +#: src/stored/autochanger.c:154 +#, c-format +msgid "No \"Changer Device\" for %s. Manual load of Volume may be required.\n" +msgstr "" + +#: src/stored/autochanger.c:158 +#, c-format +msgid "No \"Changer Command\" for %s. Manual load of Volume may be requird.\n" +msgstr "" + +#: src/stored/autochanger.c:188 +#, c-format +msgid "3304 Issuing autochanger \"load slot %d, drive %d\" command.\n" +msgstr "" + +#: src/stored/autochanger.c:196 +#, c-format +msgid "3305 Autochanger \"load slot %d, drive %d\", status is OK.\n" +msgstr "" + +#: src/stored/autochanger.c:205 +#, c-format +msgid "" +"3992 Bad autochanger \"load slot %d, drive %d\": ERR=%s.\n" +"Results=%s\n" +msgstr "" + +#: src/stored/autochanger.c:251 +msgid "3992 Missing Changer command.\n" +msgstr "" + +#: src/stored/autochanger.c:265 +#, c-format +msgid "3301 Issuing autochanger \"loaded? drive %d\" command.\n" +msgstr "" + +#: src/stored/autochanger.c:275 +#, c-format +msgid "3302 Autochanger \"loaded? drive %d\", result is Slot %d.\n" +msgstr "" + +#: src/stored/autochanger.c:279 +#, c-format +msgid "3302 Autochanger \"loaded? drive %d\", result: nothing loaded.\n" +msgstr "" + +#: src/stored/autochanger.c:286 +#, c-format +msgid "" +"3991 Bad autochanger \"loaded? drive %d\" command: ERR=%s.\n" +"Results=%s\n" +msgstr "" + +#: src/stored/autochanger.c:345 src/stored/autochanger.c:436 +#, c-format +msgid "3307 Issuing autochanger \"unload slot %d, drive %d\" command.\n" +msgstr "" + +#: src/stored/autochanger.c:359 +#, c-format +msgid "" +"3995 Bad autochanger \"unload slot %d, drive %d\": ERR=%s\n" +"Results=%s\n" +msgstr "" + +#: src/stored/autochanger.c:423 +#, c-format +msgid "Volume \"%s\" is in use by device %s\n" +msgstr "" + +#: src/stored/autochanger.c:458 +#, c-format +msgid "3995 Bad autochanger \"unload slot %d, drive %d\": ERR=%s.\n" +msgstr "" + +#: src/stored/autochanger.c:498 +#, c-format +msgid "3993 Device %s not an autochanger device.\n" +msgstr "" + +#: src/stored/autochanger.c:519 +#, c-format +msgid "3306 Issuing autochanger \"%s\" command.\n" +msgstr "" + +#: src/stored/autochanger.c:522 +msgid "3996 Open bpipe failed.\n" +msgstr "" + +#: src/stored/autochanger.c:549 src/console/console.c:945 +#, c-format +msgid "Autochanger error: ERR=%s\n" +msgstr "" + +#: src/stored/stored.c:82 +#, c-format +msgid "" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: stored [options] [-c config_file] [config_file]\n" +" -c use as configuration file\n" +" -dnn set debug level to nn\n" +" -f run in foreground (for debugging)\n" +" -g set groupid to group\n" +" -p proceed despite I/O errors\n" +" -s no signals (for debugging)\n" +" -t test - read config and exit\n" +" -u userid to \n" +" -v verbose user messages\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/stored/stored.c:128 src/stored/btape.c:172 +#, c-format +msgid "Tape block size (%d) not multiple of system size (%d)\n" +msgstr "" + +#: src/stored/stored.c:132 src/stored/btape.c:176 +#, c-format +msgid "Tape block size (%d) is not a power of 2\n" +msgstr "" + +#: src/stored/stored.c:243 +msgid "Volume Session Time is ZERO!\n" +msgstr "" + +#: src/stored/stored.c:257 +#, c-format +msgid "Unable to create thread. ERR=%s\n" +msgstr "" + +#: src/stored/stored.c:289 src/stored/bscan.c:246 +#, c-format +msgid "No Storage resource defined in %s. Cannot continue.\n" +msgstr "" + +#: src/stored/stored.c:295 +#, c-format +msgid "Only one Storage resource permitted in %s\n" +msgstr "" + +#: src/stored/stored.c:300 +#, c-format +msgid "No Director resource defined in %s. Cannot continue.\n" +msgstr "" + +#: src/stored/stored.c:305 +#, c-format +msgid "No Device resource defined in %s. Cannot continue.\n" +msgstr "" + +#: src/stored/stored.c:313 +#, c-format +msgid "No Messages resource defined in %s. Cannot continue.\n" +msgstr "" + +#: src/stored/stored.c:320 src/stored/bscan.c:254 +#, c-format +msgid "No Working Directory defined in %s. Cannot continue.\n" +msgstr "" + +#: src/stored/stored.c:340 +#, c-format +msgid "\"TLS Certificate\" file not defined for Storage \"%s\" in %s.\n" +msgstr "" + +#: src/stored/stored.c:346 +#, c-format +msgid "\"TLS Key\" file not defined for Storage \"%s\" in %s.\n" +msgstr "" + +#: src/stored/stored.c:352 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Storage \"%s\" in %s. At least one CA certificate store is required when " +"using \"TLS Verify Peer\".\n" +msgstr "" + +#: src/stored/stored.c:484 +#, c-format +msgid "Could not initialize %s\n" +msgstr "" + +#: src/stored/stored.c:497 +#, c-format +msgid "Could not open device %s\n" +msgstr "" + +#: src/stored/stored.c:510 +#, c-format +msgid "Could not mount device %s\n" +msgstr "" + +#: src/stored/wait.c:127 +#, c-format +msgid "pthread timedwait error. ERR=%s\n" +msgstr "" + +#: src/stored/wait.c:227 +#, c-format +msgid "JobId=%s, Job %s waiting to reserve a device.\n" +msgstr "" + +#: src/stored/stored_conf.c:234 +#, c-format +msgid "Expected a Device Type keyword, got: %s" +msgstr "" + +#: src/stored/stored_conf.c:249 +#, c-format +msgid "Warning: no \"%s\" resource (%d) defined.\n" +msgstr "" + +#: src/stored/stored_conf.c:252 +#, c-format +msgid "dump_resource type=%d\n" +msgstr "" + +#: src/stored/stored_conf.c:368 +#, c-format +msgid "Warning: unknown resource type %d\n" +msgstr "" + +#: src/stored/stored_conf.c:557 +#, c-format +msgid "\"%s\" item is required in \"%s\" resource, but not found.\n" +msgstr "" + +#: src/stored/stored_conf.c:563 +#, c-format +msgid "Too many items in \"%s\" resource\n" +msgstr "" + +#: src/stored/stored_conf.c:597 +#, c-format +msgid "Cannot find AutoChanger resource %s\n" +msgstr "" + +#: src/stored/stored_conf.c:611 src/stored/dev.c:229 src/stored/dev.c:247 +#: src/stored/dev.c:254 src/lib/openssl.c:118 src/lib/openssl.c:179 +#, c-format +msgid "Unable to init mutex: ERR=%s\n" +msgstr "" + +#: src/stored/stored_conf.c:669 +#, c-format +msgid "" +"Attempt to define second \"%s\" resource named \"%s\" is not permitted.\n" +msgstr "" + +#: src/stored/pythonsd.c:210 +msgid "Error in ParseTuple\n" +msgstr "" + +#: src/stored/pythonsd.c:226 +msgid "Parse tuple error in job_write\n" +msgstr "" + +#: src/stored/pythonsd.c:263 +#, c-format +msgid "Error in Python method %s\n" +msgstr "" + +#: src/stored/read_record.c:83 +#, c-format +msgid "End of Volume at file %u on device %s, Volume \"%s\"\n" +msgstr "" + +#: src/stored/read_record.c:86 +msgid "End of all volumes.\n" +msgstr "" + +#: src/stored/read_record.c:129 +msgid "part" +msgstr "" + +#: src/stored/read_record.c:132 +msgid "file" +msgstr "" + +#: src/stored/read_record.c:135 +#, c-format +msgid "End of %s %u on device %s, Volume \"%s\"\n" +msgstr "" + +#: src/stored/read_record.c:149 +msgid "Did fsr in attemp to skip bad record.\n" +msgstr "" + +#: src/stored/read_record.c:342 +#, c-format +msgid "Reposition from (file:block) %u:%u to %u:%u\n" +msgstr "" + +#: src/stored/read_record.c:370 +#, c-format +msgid "Forward spacing Volume \"%s\" to file:block %u:%u.\n" +msgstr "" + +#: src/stored/read_record.c:388 src/stored/bcopy.c:312 src/stored/bls.c:416 +msgid "Fresh Volume Label" +msgstr "" + +#: src/stored/read_record.c:391 src/stored/bcopy.c:315 src/stored/bls.c:419 +msgid "Volume Label" +msgstr "" + +#: src/stored/read_record.c:395 +msgid "Begin Session" +msgstr "" + +#: src/stored/read_record.c:399 +msgid "End Session" +msgstr "" + +#: src/stored/read_record.c:402 src/stored/label.c:1032 +msgid "End of Media" +msgstr "" + +#: src/stored/read_record.c:405 +#, c-format +msgid "Unknown code %d\n" +msgstr "" + +#: src/stored/read_record.c:409 src/stored/bcopy.c:337 src/stored/bls.c:440 +#, c-format +msgid "%s Record: VolSessionId=%d VolSessionTime=%d JobId=%d DataLen=%d\n" +msgstr "" + +#: src/stored/read.c:68 +msgid "No Volume names found for restore.\n" +msgstr "" + +#: src/stored/read.c:122 +#, c-format +msgid ">filed: Error Hdr=%s\n" +msgstr "" + +#: src/stored/read.c:123 src/stored/read.c:138 +#, c-format +msgid "Error sending to File daemon. ERR=%s\n" +msgstr "" + +#: src/stored/read.c:137 +#, c-format +msgid "Error sending to FD. ERR=%s\n" +msgstr "" + +#: src/stored/reserve.c:93 +#, c-format +msgid "Unable to initialize reservation lock. ERR=%s\n" +msgstr "" + +#: src/stored/reserve.c:99 +#, c-format +msgid "Unable to initialize volume list lock. ERR=%s\n" +msgstr "" + +#: src/stored/reserve.c:434 +#, c-format +msgid "Hey! num_writers=%d!!!!\n" +msgstr "" + +#: src/stored/reserve.c:649 +msgid "3939 Could not get dcr\n" +msgstr "" + +#: src/stored/reserve.c:772 src/stored/reserve.c:783 +#, c-format +msgid "Failed command: %s\n" +msgstr "" + +#: src/stored/reserve.c:773 +#, c-format +msgid "" +"\n" +" Device \"%s\" with MediaType \"%s\" requested by DIR not found in SD " +"Device resources.\n" +msgstr "" + +#: src/stored/reserve.c:1076 src/stored/dircmd.c:596 +#, c-format +msgid "" +"\n" +" Device \"%s\" in changer \"%s\" requested by DIR could not be opened or " +"does not exist.\n" +msgstr "" + +#: src/stored/reserve.c:1080 src/stored/dircmd.c:574 +#, c-format +msgid "" +"\n" +" Device \"%s\" requested by DIR could not be opened or does not exist.\n" +msgstr "" + +#: src/stored/reserve.c:1092 +#, c-format +msgid "3926 Could not get dcr for device: %s\n" +msgstr "" + +#: src/stored/reserve.c:1207 +#, c-format +msgid "3601 JobId=%u device %s is BLOCKED due to user unmount.\n" +msgstr "" + +#: src/stored/reserve.c:1217 +#, c-format +msgid "3602 JobId=%u device %s is busy (already reading/writing).\n" +msgstr "" + +#: src/stored/reserve.c:1264 +#, c-format +msgid "3603 JobId=%u device %s is busy reading.\n" +msgstr "" + +#: src/stored/reserve.c:1273 +#, c-format +msgid "3604 JobId=%u device %s is BLOCKED due to user unmount.\n" +msgstr "" + +#: src/stored/reserve.c:1314 +#, c-format +msgid "" +"3608 JobId=%u wants Pool=\"%s\" but have Pool=\"%s\" nreserve=%d on drive %" +"s.\n" +msgstr "" + +#: src/stored/reserve.c:1336 +#, c-format +msgid "3610 JobId=%u Volume max jobs exceeded on drive %s.\n" +msgstr "" + +#: src/stored/reserve.c:1391 +#, c-format +msgid "3605 JobId=%u wants free drive but device %s is busy.\n" +msgstr "" + +#: src/stored/reserve.c:1399 +#, c-format +msgid "3606 JobId=%u prefers mounted drives, but drive %s has no Volume.\n" +msgstr "" + +#: src/stored/reserve.c:1422 +#, c-format +msgid "3607 JobId=%u wants Vol=\"%s\" drive has Vol=\"%s\" on drive %s.\n" +msgstr "" + +#: src/stored/reserve.c:1479 +#, c-format +msgid "Logic error!!!! JobId=%u Should not get here.\n" +msgstr "" + +#: src/stored/reserve.c:1480 +#, c-format +msgid "3910 JobId=%u Logic error!!!! drive %s Should not get here.\n" +msgstr "" + +#: src/stored/reserve.c:1483 +msgid "Logic error!!!! Should not get here.\n" +msgstr "" + +#: src/stored/reserve.c:1486 +#, c-format +msgid "3911 JobId=%u failed reserve drive %s.\n" +msgstr "" + +#: src/stored/bcopy.c:74 +#, c-format +msgid "" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: bcopy [-d debug_level] \n" +" -b bootstrap specify a bootstrap file\n" +" -c specify configuration file\n" +" -d set debug level to \n" +" -i specify input Volume names (separated by |)\n" +" -o specify output Volume names (separated by |)\n" +" -p proceed inspite of errors\n" +" -v verbose\n" +" -w specify working directory (default /tmp)\n" +" -? print this message\n" +"\n" +msgstr "" + +#: src/stored/bcopy.c:159 src/stored/bextract.c:192 src/stored/bscan.c:233 +#: src/tools/bbatch.c:161 +msgid "Wrong number of arguments: \n" +msgstr "" + +#: src/stored/bcopy.c:199 src/stored/btape.c:368 src/stored/device.c:297 +#, c-format +msgid "dev open failed: %s\n" +msgstr "" + +#: src/stored/bcopy.c:214 +msgid "Write of last block failed.\n" +msgstr "" + +#: src/stored/bcopy.c:218 +#, c-format +msgid "%u Jobs copied. %u records copied.\n" +msgstr "" + +#: src/stored/bcopy.c:235 src/stored/bscan.c:408 +#, c-format +msgid "Record: SessId=%u SessTim=%u FileIndex=%d Stream=%d len=%u\n" +msgstr "" + +#: src/stored/bcopy.c:251 +msgid "Volume is prelabeled. This volume cannot be copied.\n" +msgstr "" + +#: src/stored/bcopy.c:254 +msgid "Volume label not copied.\n" +msgstr "" + +#: src/stored/bcopy.c:266 src/stored/bcopy.c:274 src/stored/bcopy.c:298 +#: src/stored/btape.c:2390 +#, c-format +msgid "Cannot fixup device error. %s\n" +msgstr "" + +#: src/stored/bcopy.c:280 +msgid "EOM label not copied.\n" +msgstr "" + +#: src/stored/bcopy.c:283 +msgid "EOT label not copied.\n" +msgstr "" + +#: src/stored/bcopy.c:319 src/stored/label.c:1026 src/stored/bls.c:423 +msgid "Begin Job Session" +msgstr "" + +#: src/stored/bcopy.c:323 src/stored/label.c:1029 src/stored/bls.c:427 +msgid "End Job Session" +msgstr "" + +#: src/stored/bcopy.c:328 src/stored/bls.c:431 +msgid "End of Medium" +msgstr "" + +#: src/stored/bcopy.c:331 src/stored/label.c:1038 src/stored/bls.c:434 +msgid "Unknown" +msgstr "" + +#: src/stored/bcopy.c:355 src/stored/bextract.c:494 src/stored/bls.c:459 +#: src/stored/bscan.c:1300 src/stored/btape.c:2689 +#, c-format +msgid "Mount Volume \"%s\" on device %s and press return when ready: " +msgstr "" + +#: src/stored/bextract.c:78 +#, c-format +msgid "" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: bextract \n" +" -b specify a bootstrap file\n" +" -c specify a configuration file\n" +" -d set debug level to \n" +" -e exclude list\n" +" -i include list\n" +" -p proceed inspite of I/O errors\n" +" -v verbose\n" +" -V specify Volume names (separated by |)\n" +" -? print this message\n" +"\n" +msgstr "" + +#: src/stored/bextract.c:142 src/stored/bls.c:146 +#, c-format +msgid "Could not open exclude file: %s, ERR=%s\n" +msgstr "" + +#: src/stored/bextract.c:157 src/stored/bls.c:161 +#, c-format +msgid "Could not open include file: %s, ERR=%s\n" +msgstr "" + +#: src/stored/bextract.c:213 +#, c-format +msgid "%d Program Name and/or Program Data Stream records ignored.\n" +msgstr "" + +#: src/stored/bextract.c:217 +#, c-format +msgid "%d Win32 data or Win32 gzip data stream records. Ignored.\n" +msgstr "" + +#: src/stored/bextract.c:244 +#, c-format +msgid "Cannot stat %s. It must exist. ERR=%s\n" +msgstr "" + +#: src/stored/bextract.c:248 +#, c-format +msgid "%s must be a directory.\n" +msgstr "" + +#: src/stored/bextract.c:269 +#, c-format +msgid "%u files restored.\n" +msgstr "" + +#: src/stored/bextract.c:296 src/stored/bextract.c:469 +msgid "Logic error output file should be open but is not.\n" +msgstr "" + +#: src/stored/bextract.c:303 src/stored/bls.c:383 src/stored/bscan.c:666 +msgid "Cannot continue.\n" +msgstr "" + +#: src/stored/bextract.c:365 +#, c-format +msgid "Seek error on %s: %s\n" +msgstr "" + +#: src/stored/bextract.c:418 +#, c-format +msgid "Uncompression error. ERR=%d\n" +msgstr "" + +#: src/stored/bextract.c:426 +msgid "===Write error===\n" +msgstr "" + +#: src/stored/bextract.c:460 +msgid "Got Program Name or Data Stream. Ignored.\n" +msgstr "" + +#: src/stored/dvd.c:112 +msgid "No FreeSpace command defined.\n" +msgstr "" + +#: src/stored/dvd.c:146 +#, c-format +msgid "Cannot run free space command. Results=%s ERR=%s\n" +msgstr "" + +#: src/stored/dvd.c:262 +#, c-format +msgid "Error writing part %d to the DVD: ERR=%s\n" +msgstr "" + +#: src/stored/dvd.c:264 +#, c-format +msgid "Error while writing current part to the DVD: %s" +msgstr "" + +#: src/stored/dvd.c:274 +#, c-format +msgid "Part %d (%lld bytes) written to DVD.\n" +msgstr "" + +#: src/stored/dvd.c:293 +#, c-format +msgid "Remaining free space %s on %s\n" +msgstr "" + +#: src/stored/dvd.c:359 +#, c-format +msgid "Next Volume part already exists on DVD. Cannot continue: %s\n" +msgstr "" + +#: src/stored/dvd.c:378 +#, c-format +msgid "open_next_part can't unlink existing part %s, ERR=%s\n" +msgstr "" + +#: src/stored/dvd.c:579 +#, c-format +msgid "" +"Error writing. Current part less than total number of parts (%d/%d, device=%" +"s)\n" +msgstr "" + +#: src/stored/dvd.c:586 +#, c-format +msgid "Unable to write last on %s: ERR=%s\n" +msgstr "" + +#: src/stored/label.c:91 src/stored/label.c:131 src/stored/label.c:225 +#, c-format +msgid "Wrong Volume mounted on device %s: Wanted %s have %s\n" +msgstr "" + +#: src/stored/label.c:98 src/stored/label.c:134 src/stored/label.c:207 +#, c-format +msgid "Too many tries: %s" +msgstr "" + +#: src/stored/label.c:114 +#, c-format +msgid "Couldn't rewind device %s: ERR=%s\n" +msgstr "" + +#: src/stored/label.c:151 +#, c-format +msgid "" +"Requested Volume \"%s\" on %s is not a Bacula labeled Volume, because: ERR=%s" +msgstr "" + +#: src/stored/label.c:156 +msgid "Could not read Volume label from block.\n" +msgstr "" + +#: src/stored/label.c:159 +#, c-format +msgid "Could not unserialize Volume label: ERR=%s\n" +msgstr "" + +#: src/stored/label.c:164 +#, c-format +msgid "Volume Header Id bad: %s\n" +msgstr "" + +#: src/stored/label.c:192 +#, c-format +msgid "Volume on %s has wrong Bacula version. Wanted %d got %d\n" +msgstr "" + +#: src/stored/label.c:203 +#, c-format +msgid "Volume on %s has bad Bacula label type: %x\n" +msgstr "" + +#: src/stored/label.c:216 src/stored/label.c:402 +#, c-format +msgid "Could not reserve volume %s on %s\n" +msgstr "" + +#: src/stored/label.c:289 +#, c-format +msgid "Cannot write Volume label to block for device %s\n" +msgstr "" + +#: src/stored/label.c:449 +#, c-format +msgid "Rewind error on device %s: ERR=%s\n" +msgstr "" + +#: src/stored/label.c:455 +#, c-format +msgid "Truncate error on device %s: ERR=%s\n" +msgstr "" + +#: src/stored/label.c:461 +#, c-format +msgid "Failed to re-open DVD after truncate on device %s: ERR=%s\n" +msgstr "" + +#: src/stored/label.c:484 +#, c-format +msgid "Unable to write device %s: ERR=%s\n" +msgstr "" + +#: src/stored/label.c:512 +#, c-format +msgid "Recycled volume \"%s\" on device %s, all previous data lost.\n" +msgstr "" + +#: src/stored/label.c:515 +#, c-format +msgid "Wrote label to prelabeled Volume \"%s\" on device %s\n" +msgstr "" + +#: src/stored/label.c:719 +#, c-format +msgid "Bad Volume session label = %d\n" +msgstr "" + +#: src/stored/label.c:774 +#, c-format +msgid "Expecting Volume Label, got FI=%s Stream=%s len=%d\n" +msgstr "" + +#: src/stored/label.c:901 +#, c-format +msgid "Unknown %d" +msgstr "" + +#: src/stored/label.c:905 +#, c-format +msgid "" +"\n" +"Volume Label:\n" +"Id : %sVerNo : %d\n" +"VolName : %s\n" +"PrevVolName : %s\n" +"VolFile : %d\n" +"LabelType : %s\n" +"LabelSize : %d\n" +"PoolName : %s\n" +"MediaType : %s\n" +"PoolType : %s\n" +"HostName : %s\n" +msgstr "" + +#: src/stored/label.c:927 +#, c-format +msgid "Date label written: %s\n" +msgstr "" + +#: src/stored/label.c:933 +#, c-format +msgid "Date label written: %04d-%02d-%02d at %02d:%02d\n" +msgstr "" + +#: src/stored/label.c:953 +#, c-format +msgid "" +"\n" +"%s Record:\n" +"JobId : %d\n" +"VerNum : %d\n" +"PoolName : %s\n" +"PoolType : %s\n" +"JobName : %s\n" +"ClientName : %s\n" +msgstr "" + +#: src/stored/label.c:966 +#, c-format +msgid "" +"Job (unique name) : %s\n" +"FileSet : %s\n" +"JobType : %c\n" +"JobLevel : %c\n" +msgstr "" + +#: src/stored/label.c:975 +#, c-format +msgid "" +"JobFiles : %s\n" +"JobBytes : %s\n" +"StartBlock : %s\n" +"EndBlock : %s\n" +"StartFile : %s\n" +"EndFile : %s\n" +"JobErrors : %s\n" +"JobStatus : %c\n" +msgstr "" + +#: src/stored/label.c:996 +#, c-format +msgid "Date written : %s\n" +msgstr "" + +#: src/stored/label.c:1001 +#, c-format +msgid "Date written : %04d-%02d-%02d at %02d:%02d\n" +msgstr "" + +#: src/stored/label.c:1020 +msgid "Fresh Volume" +msgstr "" + +#: src/stored/label.c:1023 +msgid "Volume" +msgstr "" + +#: src/stored/label.c:1035 +msgid "End of Tape" +msgstr "" + +#: src/stored/label.c:1055 src/stored/label.c:1063 src/stored/label.c:1096 +#, c-format +msgid "%s Record: File:blk=%u:%u SessId=%d SessTime=%d JobId=%d DataLen=%d\n" +msgstr "" + +#: src/stored/label.c:1060 +msgid "End of physical tape.\n" +msgstr "" + +#: src/stored/label.c:1075 src/stored/label.c:1084 +#, c-format +msgid "%s Record: File:blk=%u:%u SessId=%d SessTime=%d JobId=%d\n" +msgstr "" + +#: src/stored/label.c:1077 +#, c-format +msgid " Job=%s Date=%s Level=%c Type=%c\n" +msgstr "" + +#: src/stored/label.c:1086 +#, c-format +msgid " Date=%s Level=%c Type=%c Files=%s Bytes=%s Errors=%d Status=%c\n" +msgstr "" + +#: src/stored/parse_bsr.c:118 src/stored/parse_bsr.c:122 +#, c-format +msgid "" +"Bootstrap file error: %s\n" +" : Line %d, col %d of file %s\n" +"%s\n" +msgstr "" + +#: src/stored/parse_bsr.c:144 +#, c-format +msgid "Cannot open bootstrap file %s: %s\n" +msgstr "" + +#: src/stored/parse_bsr.c:274 +#, c-format +msgid "MediaType %s in bsr at inappropriate place.\n" +msgstr "" + +#: src/stored/parse_bsr.c:295 +#, c-format +msgid "Device \"%s\" in bsr at inappropriate place.\n" +msgstr "" + +#: src/stored/parse_bsr.c:452 +msgid "JobType not yet implemented\n" +msgstr "" + +#: src/stored/parse_bsr.c:460 +msgid "JobLevel not yet implemented\n" +msgstr "" + +#: src/stored/parse_bsr.c:643 +#, c-format +msgid "Slot %d in bsr at inappropriate place.\n" +msgstr "" + +#: src/stored/parse_bsr.c:667 +#, c-format +msgid "VolFile : %u-%u\n" +msgstr "" + +#: src/stored/parse_bsr.c:675 +#, c-format +msgid "VolBlock : %u-%u\n" +msgstr "" + +#: src/stored/parse_bsr.c:685 +#, c-format +msgid "FileIndex : %u\n" +msgstr "" + +#: src/stored/parse_bsr.c:687 +#, c-format +msgid "FileIndex : %u-%u\n" +msgstr "" + +#: src/stored/parse_bsr.c:697 +#, c-format +msgid "JobId : %u\n" +msgstr "" + +#: src/stored/parse_bsr.c:699 +#, c-format +msgid "JobId : %u-%u\n" +msgstr "" + +#: src/stored/parse_bsr.c:709 +#, c-format +msgid "SessId : %u\n" +msgstr "" + +#: src/stored/parse_bsr.c:711 +#, c-format +msgid "SessId : %u-%u\n" +msgstr "" + +#: src/stored/parse_bsr.c:720 +#, c-format +msgid "VolumeName : %s\n" +msgstr "" + +#: src/stored/parse_bsr.c:721 +#, c-format +msgid " MediaType : %s\n" +msgstr "" + +#: src/stored/parse_bsr.c:722 +#, c-format +msgid " Device : %s\n" +msgstr "" + +#: src/stored/parse_bsr.c:723 +#, c-format +msgid " Slot : %d\n" +msgstr "" + +#: src/stored/parse_bsr.c:732 +#, c-format +msgid "Client : %s\n" +msgstr "" + +#: src/stored/parse_bsr.c:740 +#, c-format +msgid "Job : %s\n" +msgstr "" + +#: src/stored/parse_bsr.c:748 +#, c-format +msgid "SessTime : %u\n" +msgstr "" + +#: src/stored/parse_bsr.c:759 +msgid "BSR is NULL\n" +msgstr "" + +#: src/stored/parse_bsr.c:763 +#, c-format +msgid "Next : 0x%x\n" +msgstr "" + +#: src/stored/parse_bsr.c:764 +#, c-format +msgid "Root bsr : 0x%x\n" +msgstr "" + +#: src/stored/parse_bsr.c:775 +#, c-format +msgid "count : %u\n" +msgstr "" + +#: src/stored/parse_bsr.c:776 +#, c-format +msgid "found : %u\n" +msgstr "" + +#: src/stored/parse_bsr.c:779 +#, c-format +msgid "done : %s\n" +msgstr "" + +#: src/stored/parse_bsr.c:780 +#, c-format +msgid "positioning : %d\n" +msgstr "" + +#: src/stored/parse_bsr.c:781 +#, c-format +msgid "fast_reject : %d\n" +msgstr "" + +#: src/stored/bls.c:78 +#, c-format +msgid "" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: bls [options] \n" +" -b specify a bootstrap file\n" +" -c specify a config file\n" +" -d set debug level to \n" +" -e exclude list\n" +" -i include list\n" +" -j list jobs\n" +" -k list blocks\n" +" (no j or k option) list saved files\n" +" -L dump label\n" +" -p proceed inspite of errors\n" +" -v be verbose\n" +" -V specify Volume names (separated by |)\n" +" -? print this message\n" +"\n" +msgstr "" + +#: src/stored/bls.c:208 +msgid "No archive name specified\n" +msgstr "" + +#: src/stored/bls.c:243 +#, c-format +msgid "" +"\n" +"Warning, this Volume is a continuation of Volume %s\n" +msgstr "" + +#: src/stored/bls.c:286 +#, c-format +msgid "Got EOM at file %u on device %s, Volume \"%s\"\n" +msgstr "" + +#: src/stored/bls.c:297 +#, c-format +msgid "Mounted Volume \"%s\".\n" +msgstr "" + +#: src/stored/bls.c:299 +#, c-format +msgid "End of file %u on device %s, Volume \"%s\"\n" +msgstr "" + +#: src/stored/bls.c:323 +#, c-format +msgid "" +"File:blk=%u:%u blk_num=%u blen=%u First rec FI=%s SessId=%u SessTim=%u Strm=%" +"s rlen=%d\n" +msgstr "" + +#: src/stored/bls.c:332 +#, c-format +msgid "Block: %d size=%d\n" +msgstr "" + +#: src/stored/bls.c:399 +#, c-format +msgid "FileIndex=%d VolSessionId=%d VolSessionTime=%d Stream=%d DataLen=%d\n" +msgstr "" + +#: src/stored/status.c:120 +msgid "" +"\n" +"Device status:\n" +msgstr "" + +#: src/stored/status.c:124 +#, c-format +msgid "Autochanger \"%s\" with devices:\n" +msgstr "" + +#: src/stored/status.c:142 +#, c-format +msgid "" +"Device %s is mounted with:\n" +" Volume: %s\n" +" Pool: %s\n" +" Media type: %s\n" +msgstr "" + +#: src/stored/status.c:152 +#, c-format +msgid "Device %s open but no Bacula volume is currently mounted.\n" +msgstr "" + +#: src/stored/status.c:163 +#, c-format +msgid " Total Bytes=%s Blocks=%s Bytes/block=%s\n" +msgstr "" + +#: src/stored/status.c:178 +#, c-format +msgid " Total Bytes Read=%s Blocks Read=%s Bytes/block=%s\n" +msgstr "" + +#: src/stored/status.c:184 +#, c-format +msgid " Positioned at File=%s Block=%s\n" +msgstr "" + +#: src/stored/status.c:191 +#, c-format +msgid "Device %s is not open.\n" +msgstr "" + +#: src/stored/status.c:195 +#, c-format +msgid "Device \"%s\" is not open or does not exist.\n" +msgstr "" + +#: src/stored/status.c:201 +msgid "In Use Volume status:\n" +msgstr "" + +#: src/stored/status.c:208 src/stored/status.c:210 +msgid "" +"====\n" +"\n" +msgstr "" + +#: src/stored/status.c:227 +msgid "" +"No DEVICE structure.\n" +"\n" +msgstr "" + +#: src/stored/status.c:234 +msgid " Device is BLOCKED. User unmounted.\n" +msgstr "" + +#: src/stored/status.c:238 +msgid " Device is BLOCKED. User unmounted during wait for media/mount.\n" +msgstr "" + +#: src/stored/status.c:250 +#, c-format +msgid "" +" Device is BLOCKED waiting for mount of volume \"%s\",\n" +" Pool: %s\n" +" Media type: %s\n" +msgstr "" + +#: src/stored/status.c:259 +#, c-format +msgid "" +" Device is BLOCKED waiting to create a volume for:\n" +" Pool: %s\n" +" Media type: %s\n" +msgstr "" + +#: src/stored/status.c:271 +msgid " Device is BLOCKED waiting for media.\n" +msgstr "" + +#: src/stored/status.c:277 +msgid " Device is being initialized.\n" +msgstr "" + +#: src/stored/status.c:281 +msgid " Device is blocked labeling a Volume.\n" +msgstr "" + +#: src/stored/status.c:290 +#, c-format +msgid " Slot %d is loaded in drive %d.\n" +msgstr "" + +#: src/stored/status.c:294 +#, c-format +msgid " Drive %d is not loaded.\n" +msgstr "" + +#: src/stored/status.c:297 +#, c-format +msgid " Drive %d status unknown.\n" +msgstr "" + +#: src/stored/status.c:302 src/stored/btape.c:584 +#, c-format +msgid "Configured device capabilities:\n" +msgstr "" + +#: src/stored/status.c:320 +msgid "Device state:\n" +msgstr "" + +#: src/stored/status.c:338 +#, c-format +msgid "" +"num_writers=%d block=%d\n" +"\n" +msgstr "" + +#: src/stored/status.c:341 src/stored/btape.c:616 +#, c-format +msgid "Device parameters:\n" +msgstr "" + +#: src/stored/status.c:344 +#, c-format +msgid "Archive name: %s Device name: %s\n" +msgstr "" + +#: src/stored/status.c:348 +#, c-format +msgid "File=%u block=%u\n" +msgstr "" + +#: src/stored/status.c:351 +#, c-format +msgid "Min block=%u Max block=%u\n" +msgstr "" + +#: src/stored/status.c:375 +#, c-format +msgid "%s Job %s waiting for Client connection.\n" +msgstr "" + +#: src/stored/status.c:391 +#, c-format +msgid "" +"Reading: %s %s job %s JobId=%d Volume=\"%s\"\n" +" pool=\"%s\" device=%s\n" +msgstr "" + +#: src/stored/status.c:404 +#, c-format +msgid "" +"Writing: %s %s job %s JobId=%d Volume=\"%s\"\n" +" pool=\"%s\" device=%s\n" +msgstr "" + +#: src/stored/status.c:415 +#, c-format +msgid " spooling=%d despooling=%d despool_wait=%d\n" +msgstr "" + +#: src/stored/status.c:424 +#, c-format +msgid " Files=%s Bytes=%s Bytes/sec=%s\n" +msgstr "" + +#: src/stored/status.c:432 +#, c-format +msgid " FDReadSeqNo=%s in_msg=%u out_msg=%d fd=%d\n" +msgstr "" + +#: src/stored/status.c:438 +msgid " FDSocket closed\n" +msgstr "" + +#: src/stored/status.c:460 +msgid "" +"\n" +"Jobs waiting to reserve a drive:\n" +msgstr "" + +#: src/stored/status.c:491 +msgid "===================================================================\n" +msgstr "" + +#: src/stored/status.c:637 +msgid "3900 Bad .status command, missing argument.\n" +msgstr "" + +#: src/stored/status.c:660 +msgid "3900 Bad .status command, wrong argument.\n" +msgstr "" + +#: src/stored/status.c:674 +msgid "Bacula Storage: Idle" +msgstr "" + +#: src/stored/status.c:685 +msgid "Bacula Storage: Running" +msgstr "" + +#: src/stored/status.c:699 +msgid "Bacula Storage: Last Job Canceled" +msgstr "" + +#: src/stored/status.c:703 +msgid "Bacula Storage: Last Job Failed" +msgstr "" + +#: src/stored/status.c:707 +msgid "Bacula Storage: Last Job had Warnings" +msgstr "" + +#: src/stored/bscan.c:115 +#, c-format +msgid "" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: bscan [ options ] \n" +" -b bootstrap specify a bootstrap file\n" +" -c specify configuration file\n" +" -d set debug level to \n" +" -m update media info in database\n" +" -n specify the database name (default bacula)\n" +" -u specify database user name (default bacula)\n" +" -P specify database password (default none)\n" +" -h specify database host (default NULL)\n" +" -p proceed inspite of I/O errors\n" +" -r list records\n" +" -s synchronize or store in database\n" +" -S show scan progress periodically\n" +" -v verbose\n" +" -V specify Volume names (separated by |)\n" +" -w specify working directory (default from conf file)\n" +" -? print this message\n" +"\n" +msgstr "" + +#: src/stored/bscan.c:262 +#, c-format +msgid "Working Directory: %s not found. Cannot continue.\n" +msgstr "" + +#: src/stored/bscan.c:266 +#, c-format +msgid "Working Directory: %s is not a directory. Cannot continue.\n" +msgstr "" + +#: src/stored/bscan.c:280 src/stored/bscan.c:355 +#, c-format +msgid "First Volume Size = %sn" +msgstr "" + +#: src/stored/bscan.c:286 src/tools/bbatch.c:196 +msgid "Could not init Bacula database\n" +msgstr "" + +#: src/stored/bscan.c:293 src/tools/bbatch.c:203 +#, c-format +msgid "Using Database: %s, User: %s\n" +msgstr "" + +#: src/stored/bscan.c:328 +#, c-format +msgid "Create JobMedia for Job %s\n" +msgstr "" + +#: src/stored/bscan.c:337 +#, c-format +msgid "Could not create JobMedia record for Volume=%s Job=%s\n" +msgstr "" + +#: src/stored/bscan.c:400 +#, c-format +msgid "done: %d%%\n" +msgstr "" + +#: src/stored/bscan.c:424 +msgid "Volume is prelabeled. This tape cannot be scanned.\n" +msgstr "" + +#: src/stored/bscan.c:436 +#, c-format +msgid "Pool record for %s found in DB.\n" +msgstr "" + +#: src/stored/bscan.c:440 +#, c-format +msgid "VOL_LABEL: Pool record not found for Pool: %s\n" +msgstr "" + +#: src/stored/bscan.c:446 +#, c-format +msgid "VOL_LABEL: PoolType mismatch. DB=%s Vol=%s\n" +msgstr "" + +#: src/stored/bscan.c:450 +#, c-format +msgid "Pool type \"%s\" is OK.\n" +msgstr "" + +#: src/stored/bscan.c:460 +#, c-format +msgid "Media record for %s found in DB.\n" +msgstr "" + +#: src/stored/bscan.c:467 +#, c-format +msgid "VOL_LABEL: Media record not found for Volume: %s\n" +msgstr "" + +#: src/stored/bscan.c:474 +#, c-format +msgid "VOL_LABEL: MediaType mismatch. DB=%s Vol=%s\n" +msgstr "" + +#: src/stored/bscan.c:478 +#, c-format +msgid "Media type \"%s\" is OK.\n" +msgstr "" + +#: src/stored/bscan.c:488 +#, c-format +msgid "VOL_LABEL: OK for Volume: %s\n" +msgstr "" + +#: src/stored/bscan.c:495 +#, c-format +msgid "%d \"errors\" ignored before first Start of Session record.\n" +msgstr "" + +#: src/stored/bscan.c:506 +#, c-format +msgid "SOS_LABEL: Found Job record for JobId: %d\n" +msgstr "" + +#: src/stored/bscan.c:511 +#, c-format +msgid "SOS_LABEL: Job record not found for JobId: %d\n" +msgstr "" + +#: src/stored/bscan.c:551 +#, c-format +msgid "SOS_LABEL: VolSessId mismatch for JobId=%u. DB=%d Vol=%d\n" +msgstr "" + +#: src/stored/bscan.c:557 +#, c-format +msgid "SOS_LABEL: VolSessTime mismatch for JobId=%u. DB=%d Vol=%d\n" +msgstr "" + +#: src/stored/bscan.c:563 +#, c-format +msgid "SOS_LABEL: PoolId mismatch for JobId=%u. DB=%d Vol=%d\n" +msgstr "" + +#: src/stored/bscan.c:581 src/stored/bscan.c:1093 +#, c-format +msgid "Could not find SessId=%d SessTime=%d for EOS record.\n" +msgstr "" + +#: src/stored/bscan.c:625 +#, c-format +msgid "Could not update job record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:636 +#, c-format +msgid "End of all Volumes. VolFiles=%u VolBlocks=%u VolBytes=%s\n" +msgstr "" + +#: src/stored/bscan.c:648 +#, c-format +msgid "Could not find Job for SessId=%d SessTime=%d record.\n" +msgstr "" + +#: src/stored/bscan.c:684 +#, c-format +msgid "%s file records. At file:blk=%s:%s bytes=%s\n" +msgstr "" + +#: src/stored/bscan.c:738 +#, c-format +msgid "Got MD5 record: %s\n" +msgstr "" + +#: src/stored/bscan.c:746 +#, c-format +msgid "Got SHA1 record: %s\n" +msgstr "" + +#: src/stored/bscan.c:754 +#, c-format +msgid "Got SHA256 record: %s\n" +msgstr "" + +#: src/stored/bscan.c:762 +#, c-format +msgid "Got SHA512 record: %s\n" +msgstr "" + +#: src/stored/bscan.c:770 src/stored/bscan.c:777 +msgid "Got signed digest record\n" +msgstr "" + +#: src/stored/bscan.c:783 +#, c-format +msgid "Got Prog Names Stream: %s\n" +msgstr "" + +#: src/stored/bscan.c:789 +msgid "Got Prog Data Stream record.\n" +msgstr "" + +#: src/stored/bscan.c:799 +#, c-format +msgid "Unknown stream type!!! stream=%d len=%i\n" +msgstr "" + +#: src/stored/bscan.c:863 +#, c-format +msgid "Could not create File Attributes record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:869 +#, c-format +msgid "Created File record: %s\n" +msgstr "" + +#: src/stored/bscan.c:913 +#, c-format +msgid "Could not create media record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:917 src/stored/bscan.c:938 +#, c-format +msgid "Could not update media record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:921 +#, c-format +msgid "Created Media record for Volume: %s\n" +msgstr "" + +#: src/stored/bscan.c:942 +#, c-format +msgid "Updated Media record at end of Volume: %s\n" +msgstr "" + +#: src/stored/bscan.c:959 +#, c-format +msgid "Could not create pool record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:963 +#, c-format +msgid "Created Pool record for Pool: %s\n" +msgstr "" + +#: src/stored/bscan.c:982 +#, c-format +msgid "Could not get Client record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:992 +#, c-format +msgid "Created Client record for Client: %s\n" +msgstr "" + +#: src/stored/bscan.c:1009 +#, c-format +msgid "Fileset \"%s\" already exists.\n" +msgstr "" + +#: src/stored/bscan.c:1013 +#, c-format +msgid "Could not create FileSet record \"%s\". ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:1018 +#, c-format +msgid "Created FileSet record \"%s\"\n" +msgstr "" + +#: src/stored/bscan.c:1065 +#, c-format +msgid "Could not create JobId record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:1071 +#, c-format +msgid "Could not update job start record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:1074 +#, c-format +msgid "Created new JobId=%u record for original JobId=%u\n" +msgstr "" + +#: src/stored/bscan.c:1124 +#, c-format +msgid "Could not update JobId=%u record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:1129 +#, c-format +msgid "Updated Job termination record for JobId=%u Level=%s TermStat=%c\n" +msgstr "" + +#: src/stored/bscan.c:1151 +#, c-format +msgid "Job Termination code: %d" +msgstr "" + +#: src/stored/bscan.c:1156 +#, c-format +msgid "" +"%s\n" +"JobId: %d\n" +"Job: %s\n" +"FileSet: %s\n" +"Backup Level: %s\n" +"Client: %s\n" +"Start time: %s\n" +"End time: %s\n" +"Files Written: %s\n" +"Bytes Written: %s\n" +"Volume Session Id: %d\n" +"Volume Session Time: %d\n" +"Last Volume Bytes: %s\n" +"Termination: %s\n" +"\n" +msgstr "" + +#: src/stored/bscan.c:1214 +#, c-format +msgid "Could not create JobMedia record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:1218 +#, c-format +msgid "Created JobMedia record JobId %d, MediaId %d\n" +msgstr "" + +#: src/stored/bscan.c:1234 +#, c-format +msgid "Could not find SessId=%d SessTime=%d for MD5/SHA1 record.\n" +msgstr "" + +#: src/stored/bscan.c:1248 +#, c-format +msgid "Could not add MD5/SHA1 to File record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:1253 +msgid "Updated MD5/SHA1 record\n" +msgstr "" + +#: src/stored/lock.c:217 +#, c-format +msgid "pthread_cond_wait failure. ERR=%s\n" +msgstr "" + +#: src/stored/lock.c:313 +msgid "unknown blocked code" +msgstr "" + +#: src/stored/btape.c:179 +#, c-format +msgid "" +"\n" +"\n" +"!!!! Warning large disk addressing disabled. boffset_t=%d should be 8 or " +"more !!!!!\n" +"\n" +"\n" +msgstr "" + +#: src/stored/btape.c:186 +#, c-format +msgid "32 bit printf/scanf problem. i=%d x32=%u y32=%u\n" +msgstr "" + +#: src/stored/btape.c:195 +msgid "64 bit printf/scanf problem. i=%d x64=%" +msgstr "" + +#: src/stored/btape.c:200 +#, c-format +msgid "Tape block granularity is %d bytes.\n" +msgstr "" + +#: src/stored/btape.c:273 +msgid "No archive name specified.\n" +msgstr "" + +#: src/stored/btape.c:277 +msgid "Improper number of arguments specified.\n" +msgstr "" + +#: src/stored/btape.c:291 +msgid "btape does not work with DVD storage.\n" +msgstr "" + +#: src/stored/btape.c:296 +msgid "btape only works with tape storage.\n" +msgstr "" + +#: src/stored/btape.c:372 +#, c-format +msgid "open device %s: OK\n" +msgstr "" + +#: src/stored/btape.c:395 +msgid "Enter Volume Name: " +msgstr "" + +#: src/stored/btape.c:402 +#, c-format +msgid "Device open failed. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:408 +#, c-format +msgid "Wrote Volume label for volume \"%s\".\n" +msgstr "" + +#: src/stored/btape.c:422 +msgid "Volume has no label.\n" +msgstr "" + +#: src/stored/btape.c:425 +msgid "Volume label read correctly.\n" +msgstr "" + +#: src/stored/btape.c:428 +#, c-format +msgid "I/O error on device: ERR=%s" +msgstr "" + +#: src/stored/btape.c:431 +msgid "Volume name error\n" +msgstr "" + +#: src/stored/btape.c:434 +#, c-format +msgid "Error creating label. ERR=%s" +msgstr "" + +#: src/stored/btape.c:437 +msgid "Volume version error.\n" +msgstr "" + +#: src/stored/btape.c:440 +msgid "Bad Volume label type.\n" +msgstr "" + +#: src/stored/btape.c:443 +msgid "Unknown error.\n" +msgstr "" + +#: src/stored/btape.c:461 +#, c-format +msgid "Bad status from load. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:463 +#, c-format +msgid "Loaded %s\n" +msgstr "" + +#: src/stored/btape.c:472 src/stored/btape.c:811 src/stored/btape.c:853 +#: src/stored/btape.c:923 src/stored/btape.c:965 src/stored/btape.c:1233 +#, c-format +msgid "Bad status from rewind. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:475 src/stored/btape.c:1241 +#, c-format +msgid "Rewound %s\n" +msgstr "" + +#: src/stored/btape.c:501 src/stored/btape.c:1245 +#, c-format +msgid "Bad status from weof. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:505 +#, c-format +msgid "Wrote 1 EOF to %s\n" +msgstr "" + +#: src/stored/btape.c:508 +#, c-format +msgid "Wrote %d EOFs to %s\n" +msgstr "" + +#: src/stored/btape.c:526 +msgid "Moved to end of medium.\n" +msgstr "" + +#: src/stored/btape.c:553 +#, c-format +msgid "Bad status from bsf. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:555 +#, c-format +msgid "Backspaced %d file%s.\n" +msgstr "" + +#: src/stored/btape.c:572 +#, c-format +msgid "Bad status from bsr. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:574 +#, c-format +msgid "Backspaced %d record%s.\n" +msgstr "" + +#: src/stored/btape.c:602 +#, c-format +msgid "Device status:\n" +msgstr "" + +#: src/stored/btape.c:621 +#, c-format +msgid "Status:\n" +msgstr "" + +#: src/stored/btape.c:636 +msgid "" +"Test writting larger and larger records.\n" +"This is a torture test for records.\n" +"I am going to write\n" +"larger and larger records. It will stop when the record size\n" +"plus the header exceeds the block size (by default about 64K)\n" +msgstr "" + +#: src/stored/btape.c:642 +msgid "Do you want to continue? (y/n): " +msgstr "" + +#: src/stored/btape.c:644 src/stored/btape.c:1861 +msgid "Command aborted.\n" +msgstr "" + +#: src/stored/btape.c:660 +#, c-format +msgid "Block %d i=%d\n" +msgstr "" + +#: src/stored/btape.c:686 +msgid "Skipping read backwards test because BSR turned off.\n" +msgstr "" + +#: src/stored/btape.c:690 +msgid "" +"\n" +"=== Write, backup, and re-read test ===\n" +"\n" +"I'm going to write three records and an EOF\n" +"then backup over the EOF and re-read the last record.\n" +"Bacula does this after writing the last block on the\n" +"tape to verify that the block was written correctly.\n" +"\n" +"This is not an *essential* feature ...\n" +"\n" +msgstr "" + +#: src/stored/btape.c:703 src/stored/btape.c:714 src/stored/btape.c:725 +#: src/stored/btape.c:823 src/stored/btape.c:839 src/stored/btape.c:935 +#: src/stored/btape.c:951 src/stored/btape.c:1570 src/stored/btape.c:2455 +msgid "Error writing record to block.\n" +msgstr "" + +#: src/stored/btape.c:707 src/stored/btape.c:718 src/stored/btape.c:729 +#: src/stored/btape.c:827 src/stored/btape.c:843 src/stored/btape.c:939 +#: src/stored/btape.c:955 src/stored/btape.c:1574 src/stored/btape.c:2459 +msgid "Error writing block to device.\n" +msgstr "" + +#: src/stored/btape.c:710 +#, c-format +msgid "Wrote first record of %d bytes.\n" +msgstr "" + +#: src/stored/btape.c:721 +#, c-format +msgid "Wrote second record of %d bytes.\n" +msgstr "" + +#: src/stored/btape.c:732 +#, c-format +msgid "Wrote third record of %d bytes.\n" +msgstr "" + +#: src/stored/btape.c:739 src/stored/btape.c:744 +#, c-format +msgid "Backspace file failed! ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:748 +msgid "Backspaced over EOF OK.\n" +msgstr "" + +#: src/stored/btape.c:750 +#, c-format +msgid "Backspace record failed! ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:753 +msgid "Backspace record OK.\n" +msgstr "" + +#: src/stored/btape.c:756 src/stored/btape.c:762 +#, c-format +msgid "Read block failed! ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:767 +msgid "Bad data in record. Test failed!\n" +msgstr "" + +#: src/stored/btape.c:771 +msgid "" +"\n" +"Block re-read correct. Test succeeded!\n" +msgstr "" + +#: src/stored/btape.c:772 +msgid "" +"=== End Write, backup, and re-read test ===\n" +"\n" +msgstr "" + +#: src/stored/btape.c:779 +msgid "" +"This is not terribly serious since Bacula only uses\n" +"this function to verify the last block written to the\n" +"tape. Bacula will skip the last block verification\n" +"if you add:\n" +"\n" +"Backward Space Record = No\n" +"\n" +"to your Storage daemon's Device resource definition.\n" +msgstr "" + +#: src/stored/btape.c:803 +msgid "" +"\n" +"=== Write, rewind, and re-read test ===\n" +"\n" +"I'm going to write 1000 records and an EOF\n" +"then write 1000 records and an EOF, then rewind,\n" +"and re-read the data to verify that it is correct.\n" +"\n" +"This is an *essential* feature ...\n" +"\n" +msgstr "" + +#: src/stored/btape.c:831 src/stored/btape.c:847 src/stored/btape.c:943 +#: src/stored/btape.c:959 +#, c-format +msgid "Wrote 1000 blocks of %d bytes.\n" +msgstr "" + +#: src/stored/btape.c:856 src/stored/btape.c:968 +msgid "Rewind OK.\n" +msgstr "" + +#: src/stored/btape.c:863 src/stored/btape.c:1017 +msgid "Got EOF on tape.\n" +msgstr "" + +#: src/stored/btape.c:868 +#, c-format +msgid "Read block %d failed! ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:874 +#, c-format +msgid "Read record failed. Block %d! ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:880 src/stored/btape.c:1047 +#, c-format +msgid "Bad data in record. Expected %d, got %d at byte %d. Test failed!\n" +msgstr "" + +#: src/stored/btape.c:887 +msgid "1000 blocks re-read correctly.\n" +msgstr "" + +#: src/stored/btape.c:890 src/stored/btape.c:1054 +msgid "" +"=== Test Succeeded. End Write, rewind, and re-read test ===\n" +"\n" +msgstr "" + +#: src/stored/btape.c:915 +msgid "" +"\n" +"=== Write, rewind, and position test ===\n" +"\n" +"I'm going to write 1000 records and an EOF\n" +"then write 1000 records and an EOF, then rewind,\n" +"and position to a few blocks and verify that it is correct.\n" +"\n" +"This is an *essential* feature ...\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1008 +#, c-format +msgid "Reposition to file:block %d:%d\n" +msgstr "" + +#: src/stored/btape.c:1010 +msgid "Reposition error.\n" +msgstr "" + +#: src/stored/btape.c:1023 +#, c-format +msgid "" +"Read block %d failed! file=%d blk=%d. ERR=%s\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1025 +msgid "" +"This may be because the tape drive block size is not\n" +" set to variable blocking as normally used by Bacula.\n" +" Please see the Tape Testing chapter in the manual and \n" +" look for using mt with defblksize and setoptions\n" +"If your tape drive block size is correct, then perhaps\n" +" your SCSI driver is *really* stupid and does not\n" +" correctly report the file:block after a FSF. In this\n" +" case try setting:\n" +" Fast Forward Space File = no\n" +" in your Device resource.\n" +msgstr "" + +#: src/stored/btape.c:1041 +#, c-format +msgid "Read record failed! ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1052 +#, c-format +msgid "Block %d re-read correctly.\n" +msgstr "" + +#: src/stored/btape.c:1073 +msgid "" +"\n" +"\n" +"=== Append files test ===\n" +"\n" +"This test is essential to Bacula.\n" +"\n" +"I'm going to write one record in file 0,\n" +" two records in file 1,\n" +" and three records in file 2\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1097 +msgid "Now moving to end of medium.\n" +msgstr "" + +#: src/stored/btape.c:1099 src/stored/btape.c:1328 +#, c-format +msgid "We should be in file 3. I am at file %d. %s\n" +msgstr "" + +#: src/stored/btape.c:1100 src/stored/btape.c:1118 src/stored/btape.c:1317 +#: src/stored/btape.c:1329 src/stored/btape.c:1342 src/stored/btape.c:1359 +msgid "This is correct!" +msgstr "" + +#: src/stored/btape.c:1100 src/stored/btape.c:1118 src/stored/btape.c:1317 +#: src/stored/btape.c:1329 src/stored/btape.c:1342 src/stored/btape.c:1359 +msgid "This is NOT correct!!!!" +msgstr "" + +#: src/stored/btape.c:1106 +msgid "" +"\n" +"Now the important part, I am going to attempt to append to the tape.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1113 +msgid "" +"Done appending, there should be no I/O errors\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1114 +msgid "Doing Bacula scan of blocks:\n" +msgstr "" + +#: src/stored/btape.c:1116 +msgid "End scanning the tape.\n" +msgstr "" + +#: src/stored/btape.c:1117 src/stored/btape.c:1341 +#, c-format +msgid "We should be in file 4. I am at file %d. %s\n" +msgstr "" + +#: src/stored/btape.c:1142 +msgid "" +"\n" +"Autochanger enabled, but no name or no command device specified.\n" +msgstr "" + +#: src/stored/btape.c:1146 +msgid "" +"\n" +"Ah, I see you have an autochanger configured.\n" +"To test the autochanger you must have a blank tape\n" +" that I can write on in Slot 1.\n" +msgstr "" + +#: src/stored/btape.c:1149 +msgid "" +"\n" +"Do you wish to continue with the Autochanger test? (y/n): " +msgstr "" + +#: src/stored/btape.c:1156 +msgid "" +"\n" +"\n" +"=== Autochanger test ===\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1165 +msgid "3301 Issuing autochanger \"loaded\" command.\n" +msgstr "" + +#: src/stored/btape.c:1174 +#, c-format +msgid "3991 Bad autochanger command: %s\n" +msgstr "" + +#: src/stored/btape.c:1175 +#, c-format +msgid "3991 result=\"%s\": ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1179 +#, c-format +msgid "Slot %d loaded. I am going to unload it.\n" +msgstr "" + +#: src/stored/btape.c:1181 +msgid "Nothing loaded in the drive. OK.\n" +msgstr "" + +#: src/stored/btape.c:1188 +#, c-format +msgid "3302 Issuing autochanger \"unload %d %d\" command.\n" +msgstr "" + +#: src/stored/btape.c:1193 +#, c-format +msgid "unload status=%s %d\n" +msgstr "" + +#: src/stored/btape.c:1193 +msgid "Bad" +msgstr "" + +#: src/stored/btape.c:1196 +#, c-format +msgid "3992 Bad autochanger command: %s\n" +msgstr "" + +#: src/stored/btape.c:1197 +#, c-format +msgid "3992 result=\"%s\": ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1207 +#, c-format +msgid "3303 Issuing autochanger \"load %d %d\" command.\n" +msgstr "" + +#: src/stored/btape.c:1215 +#, c-format +msgid "3303 Autochanger \"load %d %d\" status is OK.\n" +msgstr "" + +#: src/stored/btape.c:1219 +#, c-format +msgid "3993 Bad autochanger command: %s\n" +msgstr "" + +#: src/stored/btape.c:1220 +#, c-format +msgid "3993 result=\"%s\": ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1235 +msgid "" +"\n" +"The test failed, probably because you need to put\n" +"a longer sleep time in the mtx-script in the load) case.\n" +"Adding a 30 second sleep and trying again ...\n" +msgstr "" + +#: src/stored/btape.c:1248 +#, c-format +msgid "Wrote EOF to %s\n" +msgstr "" + +#: src/stored/btape.c:1252 +#, c-format +msgid "" +"\n" +"The test worked this time. Please add:\n" +"\n" +" sleep %d\n" +"\n" +"to your mtx-changer script in the load) case.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1257 +msgid "" +"\n" +"The test autochanger worked!!\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1268 +msgid "You must correct this error or the Autochanger will not work.\n" +msgstr "" + +#: src/stored/btape.c:1286 +msgid "" +"\n" +"\n" +"=== Forward space files test ===\n" +"\n" +"This test is essential to Bacula.\n" +"\n" +"I'm going to write five files then test forward spacing\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1311 +msgid "Now forward spacing 1 file.\n" +msgstr "" + +#: src/stored/btape.c:1313 src/stored/btape.c:1325 src/stored/btape.c:1338 +#: src/stored/btape.c:1356 src/stored/btape.c:1525 +#, c-format +msgid "Bad status from fsr. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1316 +#, c-format +msgid "We should be in file 1. I am at file %d. %s\n" +msgstr "" + +#: src/stored/btape.c:1323 +msgid "Now forward spacing 2 files.\n" +msgstr "" + +#: src/stored/btape.c:1336 +msgid "Now forward spacing 4 files.\n" +msgstr "" + +#: src/stored/btape.c:1348 +msgid "" +"The test worked this time. Please add:\n" +"\n" +" Fast Forward Space File = no\n" +"\n" +"to your Device resource for this drive.\n" +msgstr "" + +#: src/stored/btape.c:1354 +msgid "Now forward spacing 1 more file.\n" +msgstr "" + +#: src/stored/btape.c:1358 +#, c-format +msgid "We should be in file 5. I am at file %d. %s\n" +msgstr "" + +#: src/stored/btape.c:1363 +msgid "" +"\n" +"=== End Forward space files test ===\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1367 +msgid "" +"\n" +"The forward space file test failed.\n" +msgstr "" + +#: src/stored/btape.c:1369 +msgid "" +"You have Fast Forward Space File enabled.\n" +"I am turning it off then retrying the test.\n" +msgstr "" + +#: src/stored/btape.c:1375 +msgid "" +"You must correct this error or Bacula will not work.\n" +"Some systems, e.g. OpenBSD, require you to set\n" +" Use MTIOCGET= no\n" +"in your device resource. Use with caution.\n" +msgstr "" + +#: src/stored/btape.c:1407 +msgid "" +"\n" +"Append test failed. Attempting again.\n" +"Setting \"Hardware End of Medium = no\n" +" and \"Fast Forward Space File = no\n" +"and retrying append test.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1415 +msgid "" +"\n" +"\n" +"It looks like the test worked this time, please add:\n" +"\n" +" Hardware End of Medium = No\n" +"\n" +" Fast Forward Space File = No\n" +"to your Device resource in the Storage conf file.\n" +msgstr "" + +#: src/stored/btape.c:1422 +msgid "" +"\n" +"\n" +"That appears *NOT* to have corrected the problem.\n" +msgstr "" + +#: src/stored/btape.c:1427 +msgid "" +"\n" +"\n" +"It looks like the append failed. Attempting again.\n" +"Setting \"BSF at EOM = yes\" and retrying append test.\n" +msgstr "" + +#: src/stored/btape.c:1432 +msgid "" +"\n" +"\n" +"It looks like the test worked this time, please add:\n" +"\n" +" Hardware End of Medium = No\n" +" Fast Forward Space File = No\n" +" BSF at EOM = yes\n" +"\n" +"to your Device resource in the Storage conf file.\n" +msgstr "" + +#: src/stored/btape.c:1443 +msgid "" +"\n" +"Append test failed.\n" +"\n" +"\n" +"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n" +"Unable to correct the problem. You MUST fix this\n" +"problem before Bacula can use your tape drive correctly\n" +"\n" +"Perhaps running Bacula in fixed block mode will work.\n" +"Do so by setting:\n" +"\n" +"Minimum Block Size = nnn\n" +"Maximum Block Size = nnn\n" +"\n" +"in your Storage daemon's Device definition.\n" +"nnn must match your tape driver's block size, which\n" +"can be determined by reading your tape manufacturers\n" +"information, and the information on your kernel dirver.\n" +"Fixed block sizes, however, are not normally an ideal solution.\n" +"\n" +"Some systems, e.g. OpenBSD, require you to set\n" +" Use MTIOCGET= no\n" +"in your device resource. Use with caution.\n" +msgstr "" + +#: src/stored/btape.c:1464 +msgid "" +"\n" +"The above Bacula scan should have output identical to what follows.\n" +"Please double check it ...\n" +"=== Sample correct output ===\n" +"1 block of 64448 bytes in file 1\n" +"End of File mark.\n" +"2 blocks of 64448 bytes in file 2\n" +"End of File mark.\n" +"3 blocks of 64448 bytes in file 3\n" +"End of File mark.\n" +"1 block of 64448 bytes in file 4\n" +"End of File mark.\n" +"Total files=4, blocks=7, bytes = 451,136\n" +"=== End sample correct output ===\n" +"\n" +"If the above scan output is not identical to the\n" +"sample output, you MUST correct the problem\n" +"or Bacula will not be able to write multiple Jobs to \n" +"the tape.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1503 +#, c-format +msgid "Bad status from fsf. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1507 +msgid "Forward spaced 1 file.\n" +msgstr "" + +#: src/stored/btape.c:1510 +#, c-format +msgid "Forward spaced %d files.\n" +msgstr "" + +#: src/stored/btape.c:1529 +msgid "Forward spaced 1 record.\n" +msgstr "" + +#: src/stored/btape.c:1532 +#, c-format +msgid "Forward spaced %d records.\n" +msgstr "" + +#: src/stored/btape.c:1577 +#, c-format +msgid "Wrote one record of %d bytes.\n" +msgstr "" + +#: src/stored/btape.c:1579 +msgid "Wrote block to device.\n" +msgstr "" + +#: src/stored/btape.c:1594 +msgid "Enter length to read: " +msgstr "" + +#: src/stored/btape.c:1599 +msgid "Bad length entered, using default of 1024 bytes.\n" +msgstr "" + +#: src/stored/btape.c:1608 +#, c-format +msgid "Read of %d bytes gives stat=%d. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1631 src/stored/btape.c:1680 +#, c-format +msgid "End of tape\n" +msgstr "" + +#: src/stored/btape.c:1636 +#, c-format +msgid "Starting scan at file %u\n" +msgstr "" + +#: src/stored/btape.c:1641 src/stored/dev.c:1325 +#, c-format +msgid "read error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/btape.c:1643 +#, c-format +msgid "Bad status from read %d. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1646 src/stored/btape.c:1660 src/stored/btape.c:1724 +#: src/stored/btape.c:1736 src/stored/btape.c:1749 src/stored/btape.c:1765 +#, c-format +msgid "1 block of %d bytes in file %d\n" +msgstr "" + +#: src/stored/btape.c:1649 src/stored/btape.c:1663 src/stored/btape.c:1727 +#: src/stored/btape.c:1739 src/stored/btape.c:1752 src/stored/btape.c:1768 +#, c-format +msgid "%d blocks of %d bytes in file %d\n" +msgstr "" + +#: src/stored/btape.c:1671 src/stored/btape.c:1743 +#, c-format +msgid "End of File mark.\n" +msgstr "" + +#: src/stored/btape.c:1692 src/stored/btape.c:1796 +#, c-format +msgid "Total files=%d, blocks=%d, bytes = %s\n" +msgstr "" + +#: src/stored/btape.c:1756 +#, c-format +msgid "Short block read.\n" +msgstr "" + +#: src/stored/btape.c:1759 +#, c-format +msgid "Error reading block. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1783 +#, c-format +msgid "" +"Blk_block: %u dev_blk=%u blen=%u First rec FI=%s SessId=%u SessTim=%u Strm=%" +"s rlen=%d\n" +msgstr "" + +#: src/stored/btape.c:1805 +#, c-format +msgid "Device status: %u. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1835 +msgid "" +"\n" +"This command simulates Bacula writing to a tape.\n" +"It requires either one or two blank tapes, which it\n" +"will label and write.\n" +"\n" +"If you have an autochanger configured, it will use\n" +"the tapes that are in slots 1 and 2, otherwise, you will\n" +"be prompted to insert the tapes when necessary.\n" +"\n" +"It will print a status approximately\n" +"every 322 MB, and write an EOF every 3.2 GB. If you have\n" +"selected the simple test option, after writing the first tape\n" +"it will rewind it and re-read the last block written.\n" +"\n" +"If you have selected the multiple tape test, when the first tape\n" +"fills, it will ask for a second, and after writing a few more \n" +"blocks, it will stop. Then it will begin re-reading the\n" +"two tapes.\n" +"\n" +"This may take a long time -- hours! ...\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1852 +msgid "" +"Do you want to run the simplified test (s) with one tape\n" +"or the complete multiple tape (m) test: (s/m) " +msgstr "" + +#: src/stored/btape.c:1855 +msgid "Simple test (single tape) selected.\n" +msgstr "" + +#: src/stored/btape.c:1858 +msgid "Multiple tape test selected.\n" +msgstr "" + +#: src/stored/btape.c:1893 src/stored/append.c:109 +#, c-format +msgid "Write session label failed. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1897 +msgid "Wrote Start of Session label.\n" +msgstr "" + +#: src/stored/btape.c:1928 +#, c-format +msgid "%s Begin writing Bacula records to tape ...\n" +msgstr "" + +#: src/stored/btape.c:1930 +#, c-format +msgid "%s Begin writing Bacula records to first tape ...\n" +msgstr "" + +#: src/stored/btape.c:1971 +#, c-format +msgid "Wrote blk_block=%u, dev_blk_num=%u VolBytes=%s rate=%.1f KB/s\n" +msgstr "" + +#: src/stored/btape.c:1981 +#, c-format +msgid "%s Flush block, write EOF\n" +msgstr "" + +#: src/stored/btape.c:1992 +msgid "Not OK\n" +msgstr "" + +#: src/stored/btape.c:2017 src/stored/append.c:292 +#, c-format +msgid "Error writting end session label. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:2022 +msgid "Set ok=false after write_block_to_device.\n" +msgstr "" + +#: src/stored/btape.c:2025 +msgid "Wrote End of Session label.\n" +msgstr "" + +#: src/stored/btape.c:2049 +#, c-format +msgid "Wrote state file last_block_num1=%d last_block_num2=%d\n" +msgstr "" + +#: src/stored/btape.c:2053 +#, c-format +msgid "Could not create state file: %s ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:2061 +#, c-format +msgid "" +"\n" +"\n" +"%s Done filling tape at %d:%d. Now beginning re-read of tape ...\n" +msgstr "" + +#: src/stored/btape.c:2065 +#, c-format +msgid "" +"\n" +"\n" +"%s Done filling tapes at %d:%d. Now beginning re-read of first tape ...\n" +msgstr "" + +#: src/stored/btape.c:2104 +msgid "" +"\n" +"The state file level has changed. You must redo\n" +"the fill command.\n" +msgstr "" + +#: src/stored/btape.c:2110 +#, c-format +msgid "" +"\n" +"Could not find the state file: %s ERR=%s\n" +"You must redo the fill command.\n" +msgstr "" + +#: src/stored/btape.c:2166 +msgid "Mount first tape. Press enter when ready: " +msgstr "" + +#: src/stored/btape.c:2181 +msgid "Rewinding.\n" +msgstr "" + +#: src/stored/btape.c:2186 +#, c-format +msgid "Reading the first 10000 records from %u:%u.\n" +msgstr "" + +#: src/stored/btape.c:2190 src/stored/btape.c:2255 +#, c-format +msgid "Reposition from %u:%u to %u:%u\n" +msgstr "" + +#: src/stored/btape.c:2193 src/stored/btape.c:2242 src/stored/btape.c:2258 +#, c-format +msgid "Reposition error. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:2196 +#, c-format +msgid "Reading block %u.\n" +msgstr "" + +#: src/stored/btape.c:2198 src/stored/btape.c:2247 src/stored/btape.c:2263 +#, c-format +msgid "Error reading block: ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:2203 +msgid "" +"\n" +"The last block on the tape matches. Test succeeded.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:2205 +msgid "" +"\n" +"The last block of the first tape matches.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:2228 +msgid "Mount second tape. Press enter when ready: " +msgstr "" + +#: src/stored/btape.c:2240 +#, c-format +msgid "Reposition from %u:%u to 0:1\n" +msgstr "" + +#: src/stored/btape.c:2245 src/stored/btape.c:2261 +#, c-format +msgid "Reading block %d.\n" +msgstr "" + +#: src/stored/btape.c:2251 +msgid "" +"\n" +"The first block on the second tape matches.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:2267 +msgid "" +"\n" +"The last block on the second tape matches. Test succeeded.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:2282 +#, c-format +msgid "10000 records read now at %d:%d\n" +msgstr "" + +#: src/stored/btape.c:2305 src/stored/btape.c:2316 src/stored/btape.c:2364 +msgid "Last block written" +msgstr "" + +#: src/stored/btape.c:2307 src/stored/btape.c:2317 +msgid "Block read back" +msgstr "" + +#: src/stored/btape.c:2308 +#, c-format +msgid "" +"\n" +"\n" +"The blocks differ at byte %u\n" +msgstr "" + +#: src/stored/btape.c:2309 +msgid "" +"\n" +"\n" +"!!!! The last block written and the block\n" +"that was read back differ. The test FAILED !!!!\n" +"This must be corrected before you use Bacula\n" +"to write multi-tape Volumes.!!!!\n" +msgstr "" + +#: src/stored/btape.c:2348 +#, c-format +msgid "Last block at: %u:%u this_dev_block_num=%d\n" +msgstr "" + +#: src/stored/btape.c:2362 +#, c-format +msgid "Block not written: FileIndex=%u blk_block=%u Size=%u\n" +msgstr "" + +#: src/stored/btape.c:2366 +msgid "Block not written" +msgstr "" + +#: src/stored/btape.c:2381 +#, c-format +msgid "End of tape %d:%d. VolumeCapacity=%s. Write rate = %.1f KB/s\n" +msgstr "" + +#: src/stored/btape.c:2431 +msgid "Test writing blocks of 64512 bytes to tape.\n" +msgstr "" + +#: src/stored/btape.c:2433 +msgid "How many blocks do you want to write? (1000): " +msgstr "" + +#: src/stored/btape.c:2448 +#, c-format +msgid "Begin writing %d Bacula blocks to tape ...\n" +msgstr "" + +#: src/stored/btape.c:2500 +#, c-format +msgid "Begin writing raw blocks of %u bytes.\n" +msgstr "" + +#: src/stored/btape.c:2524 +#, c-format +msgid "Write failed at block %u. stat=%d ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:2533 +msgid "test autochanger" +msgstr "" + +#: src/stored/btape.c:2534 +msgid "backspace file" +msgstr "" + +#: src/stored/btape.c:2535 +msgid "backspace record" +msgstr "" + +#: src/stored/btape.c:2536 +msgid "list device capabilities" +msgstr "" + +#: src/stored/btape.c:2537 +msgid "clear tape errors" +msgstr "" + +#: src/stored/btape.c:2538 +msgid "go to end of Bacula data for append" +msgstr "" + +#: src/stored/btape.c:2539 +msgid "go to the physical end of medium" +msgstr "" + +#: src/stored/btape.c:2540 +msgid "fill tape, write onto second volume" +msgstr "" + +#: src/stored/btape.c:2541 +msgid "read filled tape" +msgstr "" + +#: src/stored/btape.c:2542 +msgid "forward space a file" +msgstr "" + +#: src/stored/btape.c:2543 +msgid "forward space a record" +msgstr "" + +#: src/stored/btape.c:2545 +msgid "write a Bacula label to the tape" +msgstr "" + +#: src/stored/btape.c:2546 +msgid "load a tape" +msgstr "" + +#: src/stored/btape.c:2547 +msgid "quit btape" +msgstr "" + +#: src/stored/btape.c:2548 +msgid "use write() to fill tape" +msgstr "" + +#: src/stored/btape.c:2549 +msgid "read and print the Bacula tape label" +msgstr "" + +#: src/stored/btape.c:2550 +msgid "test record handling functions" +msgstr "" + +#: src/stored/btape.c:2551 +msgid "rewind the tape" +msgstr "" + +#: src/stored/btape.c:2552 +msgid "read() tape block by block to EOT and report" +msgstr "" + +#: src/stored/btape.c:2553 +msgid "Bacula read block by block to EOT and report" +msgstr "" + +#: src/stored/btape.c:2554 +msgid "print tape status" +msgstr "" + +#: src/stored/btape.c:2555 +msgid "General test Bacula tape functions" +msgstr "" + +#: src/stored/btape.c:2556 +msgid "write an EOF on the tape" +msgstr "" + +#: src/stored/btape.c:2557 +msgid "write a single Bacula block" +msgstr "" + +#: src/stored/btape.c:2558 +msgid "read a single record" +msgstr "" + +#: src/stored/btape.c:2559 +msgid "read a single Bacula block" +msgstr "" + +#: src/stored/btape.c:2560 +msgid "quick fill command" +msgstr "" + +#: src/stored/btape.c:2581 +#, c-format +msgid "\"%s\" is an invalid command\n" +msgstr "" + +#: src/stored/btape.c:2590 +#, c-format +msgid "Interactive commands:\n" +msgstr "" + +#: src/stored/btape.c:2601 +#, c-format +msgid "" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: btape \n" +" -b specify bootstrap file\n" +" -c set configuration file to file\n" +" -d set debug level to \n" +" -p proceed inspite of I/O errors\n" +" -s turn off signals\n" +" -v be verbose\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:2686 +#, c-format +msgid "Mount second Volume on device %s and press return when ready: " +msgstr "" + +#: src/stored/btape.c:2713 +#, c-format +msgid "Mount blank Volume on device %s and press return when ready: " +msgstr "" + +#: src/stored/btape.c:2731 +#, c-format +msgid "End of Volume \"%s\" %d records.\n" +msgstr "" + +#: src/stored/btape.c:2744 +#, c-format +msgid "Read block=%u, VolBytes=%s rate=%.1f KB/s\n" +msgstr "" + +#: src/stored/btape.c:2756 src/stored/mount.c:634 +#, c-format +msgid "Cannot open Dev=%s, Vol=%s\n" +msgstr "" + +#: src/stored/spool.c:84 +msgid "Spooling statistics:\n" +msgstr "" + +#: src/stored/spool.c:87 +#, c-format +msgid "" +"Data spooling: %u active jobs, %s bytes; %u total jobs, %s max bytes/job.\n" +msgstr "" + +#: src/stored/spool.c:95 +#, c-format +msgid "Attr spooling: %u active jobs, %s bytes; %u total jobs, %s max bytes.\n" +msgstr "" + +#: src/stored/spool.c:115 +msgid "Spooling data ...\n" +msgstr "" + +#: src/stored/spool.c:141 +#, c-format +msgid "Bad return from despool WroteVol=%d\n" +msgstr "" + +#: src/stored/spool.c:174 +#, c-format +msgid "Open data spool file %s failed: ERR=%s\n" +msgstr "" + +#: src/stored/spool.c:232 +#, c-format +msgid "Committing spooled data to Volume \"%s\". Despooling %s bytes ...\n" +msgstr "" + +#: src/stored/spool.c:236 +#, c-format +msgid "Writing spooled data to Volume. Despooling %s bytes ...\n" +msgstr "" + +#: src/stored/spool.c:293 src/stored/mac.c:124 src/stored/mac.c:220 +#: src/stored/append.c:303 +#, c-format +msgid "Fatal append error on device %s: ERR=%s\n" +msgstr "" + +#: src/stored/spool.c:306 +#, c-format +msgid "" +"Despooling elapsed time = %02d:%02d:%02d, Transfer rate = %s bytes/second\n" +msgstr "" + +#: src/stored/spool.c:315 src/stored/spool.c:504 src/stored/spool.c:546 +#, c-format +msgid "Ftruncate spool file failed: ERR=%s\n" +msgstr "" + +#: src/stored/spool.c:376 +#, c-format +msgid "Spool header read error. ERR=%s\n" +msgstr "" + +#: src/stored/spool.c:379 +#, c-format +msgid "Spool read error. Wanted %u bytes, got %d\n" +msgstr "" + +#: src/stored/spool.c:380 +#, c-format +msgid "Spool header read error. Wanted %u bytes, got %d\n" +msgstr "" + +#: src/stored/spool.c:386 src/stored/spool.c:387 +#, c-format +msgid "Spool block too big. Max %u bytes, got %u\n" +msgstr "" + +#: src/stored/spool.c:392 src/stored/spool.c:393 +#, c-format +msgid "Spool data read error. Wanted %u bytes, got %d\n" +msgstr "" + +#: src/stored/spool.c:450 +msgid "User specified spool size reached.\n" +msgstr "" + +#: src/stored/spool.c:452 +msgid "Bad return from despool in write_block.\n" +msgstr "" + +#: src/stored/spool.c:460 +msgid "Spooling data again ...\n" +msgstr "" + +#: src/stored/spool.c:491 +#, c-format +msgid "Error writing header to spool file. ERR=%s\n" +msgstr "" + +#: src/stored/spool.c:510 src/stored/spool.c:552 +msgid "Fatal despooling error." +msgstr "" + +#: src/stored/spool.c:517 +msgid "Retrying after header spooling error failed.\n" +msgstr "" + +#: src/stored/spool.c:531 +#, c-format +msgid "Error writing data to spool file. ERR=%s\n" +msgstr "" + +#: src/stored/spool.c:562 +msgid "Retrying after data spooling error failed.\n" +msgstr "" + +#: src/stored/spool.c:617 src/stored/spool.c:624 +#, c-format +msgid "Fseek on attributes file failed: ERR=%s\n" +msgstr "" + +#: src/stored/spool.c:636 +#, c-format +msgid "Sending spooled attrs to the Director. Despooling %s bytes ...\n" +msgstr "" + +#: src/stored/spool.c:663 +#, c-format +msgid "fopen attr spool file %s failed: ERR=%s\n" +msgstr "" + +#: src/stored/device.c:120 +#, c-format +msgid "End of medium on Volume \"%s\" Bytes=%s Blocks=%s at %s.\n" +msgstr "" + +#: src/stored/device.c:137 +#, c-format +msgid "New volume \"%s\" mounted on device %s at %s.\n" +msgstr "" + +#: src/stored/device.c:149 +#, c-format +msgid "write_block_to_device Volume label failed. ERR=%s" +msgstr "" + +#: src/stored/device.c:184 +#, c-format +msgid "write_block_to_device overflow block failed. ERR=%s" +msgstr "" + +#: src/stored/device.c:326 src/stored/dev.c:432 +#, c-format +msgid "Unable to open device %s: ERR=%s\n" +msgstr "" + +#: src/stored/device.c:328 +#, c-format +msgid "Unable to open archive %s: ERR=%s\n" +msgstr "" + +#: src/stored/mac.c:79 +msgid "Read and write devices not properly initialized.\n" +msgstr "" + +#: src/stored/mac.c:87 +#, c-format +msgid "No Volume names found for %s.\n" +msgstr "" + +#: src/stored/mac.c:126 src/stored/append.c:305 +msgid "Set ok=FALSE after write_block_to_device.\n" +msgstr "" + +#: src/stored/mac.c:249 src/stored/append.c:244 +#, c-format +msgid "Error updating file attributes. ERR=%s\n" +msgstr "" + +#: src/stored/mount.c:90 +#, c-format +msgid "Too many errors trying to mount device %s.\n" +msgstr "" + +#: src/stored/mount.c:96 +#, c-format +msgid "Job %d canceled.\n" +msgstr "" + +#: src/stored/mount.c:215 +#, c-format +msgid "Could not open device %s: ERR=%s\n" +msgstr "" + +#: src/stored/mount.c:258 src/stored/mount.c:539 +#, c-format +msgid "Volume \"%s\" not on device %s.\n" +msgstr "" + +#: src/stored/mount.c:298 +#, c-format +msgid "" +"Director wanted Volume \"%s\".\n" +" Current Volume \"%s\" not acceptable because:\n" +" %s" +msgstr "" + +#: src/stored/mount.c:381 +#, c-format +msgid "Volume \"%s\" previously written, moving to end of data.\n" +msgstr "" + +#: src/stored/mount.c:384 +#, c-format +msgid "Unable to position to end of data on device %s: ERR=%s\n" +msgstr "" + +#: src/stored/mount.c:392 +#, c-format +msgid "Ready to append to end of Volume \"%s\" part=%d size=%s\n" +msgstr "" + +#: src/stored/mount.c:396 +#, c-format +msgid "" +"Bacula cannot write on DVD Volume \"%s\" because: The sizes do not match! " +"Volume=%s Catalog=%s\n" +msgstr "" + +#: src/stored/mount.c:410 +#, c-format +msgid "Ready to append to end of Volume \"%s\" at file=%d.\n" +msgstr "" + +#: src/stored/mount.c:413 +#, c-format +msgid "" +"Bacula cannot write on tape Volume \"%s\" because:\n" +"The number of files mismatch! Volume=%u Catalog=%u\n" +msgstr "" + +#: src/stored/mount.c:424 +#, c-format +msgid "Ready to append to end of Volume \"%s\" size=%s\n" +msgstr "" + +#: src/stored/mount.c:428 +#, c-format +msgid "" +"Bacula cannot write on disk Volume \"%s\" because: The sizes do not match! " +"Volume=%s Catalog=%s\n" +msgstr "" + +#: src/stored/mount.c:458 +#, c-format +msgid "Ready to append to end of Volume \"%s\" at file address=%u.\n" +msgstr "" + +#: src/stored/mount.c:462 +#, c-format +msgid "" +"Bacula cannot write on Volume \"%s\" because:\n" +"The EOD file address is wrong: Volume file address=%u != Catalog Endblock=%u" +"(+1)\n" +"Perhaps You removed the DVD last part in spool directory.\n" +msgstr "" + +#: src/stored/mount.c:529 +#, c-format +msgid "Labeled new Volume \"%s\" on device %s.\n" +msgstr "" + +#: src/stored/mount.c:534 +#, c-format +msgid "Device %s not configured to autolabel Volumes.\n" +msgstr "" + +#: src/stored/mount.c:554 +#, c-format +msgid "Marking Volume \"%s\" in Error in Catalog.\n" +msgstr "" + +#: src/stored/mount.c:570 +#, c-format +msgid "" +"Autochanger Volume \"%s\" not found in slot %d.\n" +" Setting InChanger to zero in catalog.\n" +msgstr "" + +#: src/stored/mount.c:589 +msgid "Hey!!!!! WroteVol non-zero !!!!!\n" +msgstr "" + +#: src/stored/dircmd.c:154 +msgid "Connection request failed.\n" +msgstr "" + +#: src/stored/dircmd.c:164 +#, c-format +msgid "Invalid connection. Len=%d\n" +msgstr "" + +#: src/stored/dircmd.c:279 +#, c-format +msgid "3991 Bad setdebug command: %s\n" +msgstr "" + +#: src/stored/dircmd.c:300 +#, c-format +msgid "3904 Job %s not found.\n" +msgstr "" + +#: src/stored/dircmd.c:324 +#, c-format +msgid "Job %s marked to be canceled.\n" +msgstr "" + +#: src/stored/dircmd.c:325 +#, c-format +msgid "3000 Job %s marked to be canceled.\n" +msgstr "" + +#: src/stored/dircmd.c:329 +msgid "3903 Error scanning cancel command.\n" +msgstr "" + +#: src/stored/dircmd.c:405 src/stored/dircmd.c:761 src/stored/dircmd.c:851 +#: src/stored/dircmd.c:923 src/stored/dircmd.c:986 src/stored/dircmd.c:1029 +#, c-format +msgid "3999 Device \"%s\" not found or could not be opened.\n" +msgstr "" + +#: src/stored/dircmd.c:410 +#, c-format +msgid "3903 Error scanning label command: %s\n" +msgstr "" + +#: src/stored/dircmd.c:460 +#, c-format +msgid "3910 Unable to open device %s: ERR=%s\n" +msgstr "" + +#: src/stored/dircmd.c:477 +#, c-format +msgid "3920 Cannot label Volume because it is already labeled: \"%s\"\n" +msgstr "" + +#: src/stored/dircmd.c:484 +msgid "3921 Wrong volume mounted.\n" +msgstr "" + +#: src/stored/dircmd.c:488 +msgid "3922 Cannot relabel an ANSI/IBM labeled Volume.\n" +msgstr "" + +#: src/stored/dircmd.c:496 +#, c-format +msgid "3912 Failed to label Volume: ERR=%s\n" +msgstr "" + +#: src/stored/dircmd.c:506 +#, c-format +msgid "3914 Failed to label Volume (no media): ERR=%s\n" +msgstr "" + +#: src/stored/dircmd.c:509 +#, c-format +msgid "3913 Cannot label Volume. Unknown status %d from read_volume_label()\n" +msgstr "" + +#: src/stored/dircmd.c:542 +#, c-format +msgid "3001 Mounted Volume: %s\n" +msgstr "" + +#: src/stored/dircmd.c:546 src/stored/dircmd.c:1065 +#, c-format +msgid "" +"3902 Cannot mount Volume on Storage Device %s because:\n" +"%s" +msgstr "" + +#: src/stored/dircmd.c:671 src/stored/dircmd.c:728 +#, c-format +msgid "3901 open device failed: ERR=%s\n" +msgstr "" + +#: src/stored/dircmd.c:691 src/stored/dircmd.c:719 +#, c-format +msgid "3001 Device %s is mounted with Volume \"%s\"\n" +msgstr "" + +#: src/stored/dircmd.c:694 src/stored/dircmd.c:722 src/stored/dircmd.c:737 +#, c-format +msgid "" +"3905 Device %s open but no Bacula volume is mounted.\n" +"If this is not a blank tape, try unmounting and remounting the Volume.\n" +msgstr "" + +#: src/stored/dircmd.c:704 +#, c-format +msgid "3001 Device %s is doing acquire.\n" +msgstr "" + +#: src/stored/dircmd.c:709 src/stored/dircmd.c:823 +#, c-format +msgid "3903 Device %s is being labeled.\n" +msgstr "" + +#: src/stored/dircmd.c:734 +#, c-format +msgid "3001 Device %s is already mounted with Volume \"%s\"\n" +msgstr "" + +#: src/stored/dircmd.c:743 +#, c-format +msgid "3002 Device %s is mounted.\n" +msgstr "" + +#: src/stored/dircmd.c:746 src/stored/dircmd.c:796 src/stored/dircmd.c:811 +#: src/stored/dircmd.c:842 +#, c-format +msgid "3907 %s" +msgstr "" + +#: src/stored/dircmd.c:749 +#, c-format +msgid "3906 File device %s is always mounted.\n" +msgstr "" + +#: src/stored/dircmd.c:755 +#, c-format +msgid "3905 Bizarre wait state %d\n" +msgstr "" + +#: src/stored/dircmd.c:765 +#, c-format +msgid "3909 Error scanning mount command: %s\n" +msgstr "" + +#: src/stored/dircmd.c:793 src/stored/dircmd.c:844 +#, c-format +msgid "3002 Device %s unmounted.\n" +msgstr "" + +#: src/stored/dircmd.c:800 +#, c-format +msgid "3901 Device %s is already unmounted.\n" +msgstr "" + +#: src/stored/dircmd.c:814 +#, c-format +msgid "3001 Device %s unmounted.\n" +msgstr "" + +#: src/stored/dircmd.c:819 +#, c-format +msgid "3902 Device %s is busy in acquire.\n" +msgstr "" + +#: src/stored/dircmd.c:856 +#, c-format +msgid "3907 Error scanning unmount command: %s\n" +msgstr "" + +#: src/stored/dircmd.c:887 +#, c-format +msgid "3921 Device %s already released.\n" +msgstr "" + +#: src/stored/dircmd.c:894 +#, c-format +msgid "3922 Device %s waiting for sysop.\n" +msgstr "" + +#: src/stored/dircmd.c:900 +#, c-format +msgid "3922 Device %s waiting for mount.\n" +msgstr "" + +#: src/stored/dircmd.c:904 +#, c-format +msgid "3923 Device %s is busy in acquire.\n" +msgstr "" + +#: src/stored/dircmd.c:908 +#, c-format +msgid "3914 Device %s is being labeled.\n" +msgstr "" + +#: src/stored/dircmd.c:917 +#, c-format +msgid "3022 Device %s released.\n" +msgstr "" + +#: src/stored/dircmd.c:928 +#, c-format +msgid "3927 Error scanning release command: %s\n" +msgstr "" + +#: src/stored/dircmd.c:973 +#, c-format +msgid "3995 Device %s is not an autochanger.\n" +msgstr "" + +#: src/stored/dircmd.c:990 +#, c-format +msgid "3908 Error scanning autocharger drives/list/slots command: %s\n" +msgstr "" + +#: src/stored/dircmd.c:1033 +#, c-format +msgid "3909 Error scanning readlabel command: %s\n" +msgstr "" + +#: src/stored/dircmd.c:1061 +#, c-format +msgid "3001 Volume=%s Slot=%d\n" +msgstr "" + +#: src/stored/dircmd.c:1093 +#, c-format +msgid "3931 Device %s is BLOCKED. user unmounted.\n" +msgstr "" + +#: src/stored/dircmd.c:1097 +#, c-format +msgid "" +"3932 Device %s is BLOCKED. user unmounted during wait for media/mount.\n" +msgstr "" + +#: src/stored/dircmd.c:1101 +#, c-format +msgid "3933 Device %s is BLOCKED waiting for media.\n" +msgstr "" + +#: src/stored/dircmd.c:1105 +#, c-format +msgid "3934 Device %s is being initialized.\n" +msgstr "" + +#: src/stored/dircmd.c:1109 +#, c-format +msgid "3935 Device %s is blocked labeling a Volume.\n" +msgstr "" + +#: src/stored/dircmd.c:1113 +#, c-format +msgid "3935 Device %s is blocked for unknown reason.\n" +msgstr "" + +#: src/stored/dircmd.c:1118 +#, c-format +msgid "3936 Device %s is busy reading.\n" +msgstr "" + +#: src/stored/dircmd.c:1121 +#, c-format +msgid "3937 Device %s is busy with %d writer(s).\n" +msgstr "" + +#: src/stored/append.c:64 +msgid "DCR is NULL!!!\n" +msgstr "" + +#: src/stored/append.c:69 +msgid "DEVICE is NULL!!!\n" +msgstr "" + +#: src/stored/append.c:81 +msgid "Unable to set network buffer size.\n" +msgstr "" + +#: src/stored/append.c:94 src/stored/append.c:103 src/stored/append.c:115 +#: src/stored/append.c:298 src/stored/append.c:309 src/stored/askdir.c:334 +#: src/stored/askdir.c:335 +msgid "NULL Volume name. This shouldn't happen!!!\n" +msgstr "" + +#: src/stored/append.c:121 +#, c-format +msgid "Network send error to FD. ERR=%s\n" +msgstr "" + +#: src/stored/append.c:158 +#, c-format +msgid "Error reading data header from FD. ERR=%s\n" +msgstr "" + +#: src/stored/append.c:180 +#, c-format +msgid "Malformed data header from FD: %s\n" +msgstr "" + +#: src/stored/append.c:190 +msgid "File index from FD not positive or sequential\n" +msgstr "" + +#: src/stored/append.c:258 +#, c-format +msgid "Network error on data channel. ERR=%s\n" +msgstr "" + +#: src/stored/append.c:279 +#, c-format +msgid "" +"Job write elapsed time = %02d:%02d:%02d, Transfer rate = %s bytes/second\n" +msgstr "" + +#: src/stored/job.c:225 +#, c-format +msgid "FD connect failed: Job name not found: %s\n" +msgstr "" + +#: src/stored/job.c:236 +#, c-format +msgid "Hey!!!! JobId %u Job %s already authenticated.\n" +msgstr "" + +#: src/stored/job.c:247 +msgid "Unable to authenticate File daemon\n" +msgstr "" + +#: src/stored/job.c:369 +msgid "In free_jcr(), but still attached to device!!!!\n" +msgstr "" + +#: src/stored/askdir.c:178 +msgid "Network error on bnet_recv in req_vol_info.\n" +msgstr "" + +#: src/stored/askdir.c:196 +#, c-format +msgid "Error getting Volume info: %s" +msgstr "" + +#: src/stored/askdir.c:369 +#, c-format +msgid "Didn't get vol info vol=%s: ERR=%s" +msgstr "" + +#: src/stored/askdir.c:411 +#, c-format +msgid "Error creating JobMedia record: ERR=%s\n" +msgstr "" + +#: src/stored/askdir.c:418 +#, c-format +msgid "Error creating JobMedia record: %s\n" +msgstr "" + +#: src/stored/askdir.c:485 +#, c-format +msgid "Job %s canceled while waiting for mount on Storage Device \"%s\".\n" +msgstr "" + +#: src/stored/askdir.c:498 +#, c-format +msgid "" +"Job %s waiting. Cannot find any appendable volumes.\n" +"Please use the \"label\" command to create a new Volume for:\n" +" Storage: %s\n" +" Pool: %s\n" +" Media type: %s\n" +msgstr "" + +#: src/stored/askdir.c:522 src/stored/askdir.c:612 +#, c-format +msgid "Max time exceeded waiting to mount Storage Device %s for Job %s\n" +msgstr "" + +#: src/stored/askdir.c:532 +msgid "pthread error in mount_next_volume.\n" +msgstr "" + +#: src/stored/askdir.c:564 +msgid "Cannot request another volume: no volume name given.\n" +msgstr "" + +#: src/stored/askdir.c:570 +#, c-format +msgid "Job %s canceled while waiting for mount on Storage Device %s.\n" +msgstr "" + +#: src/stored/askdir.c:585 +#, c-format +msgid "" +"Please mount Volume \"%s\" or label a new one for:\n" +" Job: %s\n" +" Storage: %s\n" +" Pool: %s\n" +" Media type: %s\n" +msgstr "" + +#: src/stored/askdir.c:622 +msgid "pthread error in mount_volume\n" +msgstr "" + +#: src/stored/dev.c:120 +#, c-format +msgid "Unable to stat device %s: ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:131 +#, c-format +msgid "" +"%s is an unknown device type. Must be tape or directory\n" +" or have RequiresMount=yes for DVD. st_mode=%x\n" +msgstr "" + +#: src/stored/dev.c:190 +#, c-format +msgid "Unable to stat mount point %s: ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:196 +msgid "" +"Mount and unmount commands must defined for a device which requires mount.\n" +msgstr "" + +#: src/stored/dev.c:199 +msgid "Write part command must be defined for a device which requires mount.\n" +msgstr "" + +#: src/stored/dev.c:210 +#, c-format +msgid "Min block size > max on device %s\n" +msgstr "" + +#: src/stored/dev.c:214 +#, c-format +msgid "Block size %u on device %s is too large, using default %u\n" +msgstr "" + +#: src/stored/dev.c:219 +#, c-format +msgid "Max block size %u not multiple of device %s block size.\n" +msgstr "" + +#: src/stored/dev.c:235 src/stored/dev.c:241 +#, c-format +msgid "Unable to init cond variable: ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:337 +msgid "Illegal mode given to open dev.\n" +msgstr "" + +#: src/stored/dev.c:467 +#, c-format +msgid "Could not open file device %s. No Volume name given.\n" +msgstr "" + +#: src/stored/dev.c:490 src/stored/dev.c:658 +#, c-format +msgid "Could not open: %s, ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:534 +#, c-format +msgid "Could not open DVD device %s. No Volume name given.\n" +msgstr "" + +#: src/stored/dev.c:583 +#, c-format +msgid "The DVD in device %s contains data, please blank it before writing.\n" +msgstr "" + +#: src/stored/dev.c:604 +#, c-format +msgid "Unable to stat DVD part 1 file %s: ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:612 +#, c-format +msgid "DVD part 1 is not a regular file %s.\n" +msgstr "" + +#: src/stored/dev.c:632 +#, c-format +msgid "There is no valid DVD in device %s.\n" +msgstr "" + +#: src/stored/dev.c:638 +#, c-format +msgid "Could not mount DVD device %s.\n" +msgstr "" + +#: src/stored/dev.c:688 +#, c-format +msgid "Could not fstat: %s, ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:722 +#, c-format +msgid "Bad call to rewind. Device %s not open\n" +msgstr "" + +#: src/stored/dev.c:761 +#, c-format +msgid "No tape loaded or drive offline on %s.\n" +msgstr "" + +#: src/stored/dev.c:771 +#, c-format +msgid "Rewind error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:781 src/stored/dev.c:859 src/stored/dev.c:996 +#: src/stored/dev.c:1572 +#, c-format +msgid "lseek error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:830 +#, c-format +msgid "Bad call to eod. Device %s not open\n" +msgstr "" + +#: src/stored/dev.c:895 +#, c-format +msgid "ioctl MTEOM error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:904 src/stored/dev.c:1037 +#, c-format +msgid "ioctl MTIOCGET error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:982 +msgid "Bad device call. Device not open\n" +msgstr "" + +#: src/stored/dev.c:995 +#, c-format +msgid "Seek error: ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:1032 +msgid " Bacula status:" +msgstr "" + +#: src/stored/dev.c:1033 src/stored/dev.c:1116 src/stored/dev.c:1118 +#, c-format +msgid " file=%d block=%d\n" +msgstr "" + +#: src/stored/dev.c:1041 +msgid " Device status:" +msgstr "" + +#: src/stored/dev.c:1140 +msgid "Bad call to load_dev. Device not open\n" +msgstr "" + +#: src/stored/dev.c:1151 src/stored/dev.c:1164 +#, c-format +msgid "ioctl MTLOAD error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:1195 +#, c-format +msgid "ioctl MTOFFL error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:1236 +msgid "Bad call to fsf. Device not open\n" +msgstr "" + +#: src/stored/dev.c:1247 src/stored/dev.c:1374 +#, c-format +msgid "Device %s at End of Tape.\n" +msgstr "" + +#: src/stored/dev.c:1278 src/stored/dev.c:1354 +#, c-format +msgid "ioctl MTFSF error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:1403 +msgid "Bad call to bsf. Device not open\n" +msgstr "" + +#: src/stored/dev.c:1409 +#, c-format +msgid "Device %s cannot BSF because it is not a tape.\n" +msgstr "" + +#: src/stored/dev.c:1426 +#, c-format +msgid "ioctl MTBSF error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:1445 +msgid "Bad call to fsr. Device not open\n" +msgstr "" + +#: src/stored/dev.c:1455 +#, c-format +msgid "ioctl MTFSR not permitted on %s.\n" +msgstr "" + +#: src/stored/dev.c:1483 +#, c-format +msgid "ioctl MTFSR %d error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:1501 +msgid "Bad call to bsr_dev. Device not open\n" +msgstr "" + +#: src/stored/dev.c:1511 +#, c-format +msgid "ioctl MTBSR not permitted on %s.\n" +msgstr "" + +#: src/stored/dev.c:1525 +#, c-format +msgid "ioctl MTBSR error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:1561 +msgid "Bad call to reposition. Device not open\n" +msgstr "" + +#: src/stored/dev.c:1640 +msgid "Bad call to weof_dev. Device not open\n" +msgstr "" + +#: src/stored/dev.c:1650 +msgid "Attempt to WEOF on non-appendable Volume\n" +msgstr "" + +#: src/stored/dev.c:1668 +#, c-format +msgid "ioctl MTWEOF error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:1767 +#, c-format +msgid "unknown func code %d" +msgstr "" + +#: src/stored/dev.c:1773 +#, c-format +msgid "I/O function \"%s\" not supported on this device.\n" +msgstr "" + +#: src/stored/dev.c:1929 +#, c-format +msgid "Unable to truncate device %s. ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:2028 src/stored/dev.c:2033 +#, c-format +msgid "Device %s cannot be %smounted. ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:2441 +#, c-format +msgid "Unable to set eotmodel on device %s: ERR=%s\n" +msgstr "" + +#: src/stored/authenticate.c:63 +#, c-format +msgid "I only authenticate Directors, not %d\n" +msgstr "" + +#: src/stored/authenticate.c:93 +#, c-format +msgid "" +"Connection from unknown Director %s at %s rejected.\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" + +#: src/stored/authenticate.c:126 +msgid "" +"Incorrect password given by Director.\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" + +#: src/stored/authenticate.c:182 +#, c-format +msgid "Unable to authenticate Director at %s.\n" +msgstr "" + +#: src/stored/authenticate.c:226 src/stored/authenticate.c:260 +#, c-format +msgid "" +"Incorrect authorization key from File daemon at %s rejected.\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" + +#: src/stored/record.c:71 +#, c-format +msgid "unknown: %d" +msgstr "" + +#: src/stored/record.c:378 +msgid "Damaged buffer\n" +msgstr "" + +#: src/stored/record.c:549 +#, c-format +msgid "Sanity check failed. maxlen=%d datalen=%d. Block discarded.\n" +msgstr "" + +#: src/stored/butil.c:59 +msgid "Nohdr," +msgstr "" + +#: src/stored/butil.c:62 +msgid "partial," +msgstr "" + +#: src/stored/butil.c:65 +msgid "empty," +msgstr "" + +#: src/stored/butil.c:68 +msgid "Nomatch," +msgstr "" + +#: src/stored/butil.c:71 +msgid "cont," +msgstr "" + +#: src/stored/butil.c:147 +msgid "Volume name or names is too long. Please use a .bsr file.\n" +msgstr "" + +#: src/stored/butil.c:167 +#, c-format +msgid "Cannot find device \"%s\" in config file %s.\n" +msgstr "" + +#: src/stored/butil.c:174 +#, c-format +msgid "Cannot init device %s\n" +msgstr "" + +#: src/stored/butil.c:194 +#, c-format +msgid "Cannot open %s\n" +msgstr "" + +#: src/stored/butil.c:277 +#, c-format +msgid "Could not find device \"%s\" in config file %s.\n" +msgstr "" + +#: src/stored/butil.c:282 +#, c-format +msgid "Using device: \"%s\" for reading.\n" +msgstr "" + +#: src/stored/butil.c:285 +#, c-format +msgid "Using device: \"%s\" for writing.\n" +msgstr "" + +#: src/stored/butil.c:301 +msgid "Unexpected End of Data\n" +msgstr "" + +#: src/stored/butil.c:303 +msgid "Unexpected End of Tape\n" +msgstr "" + +#: src/stored/butil.c:305 +msgid "Unexpected End of File\n" +msgstr "" + +#: src/stored/butil.c:307 +msgid "Tape Door is Open\n" +msgstr "" + +#: src/stored/butil.c:309 +msgid "Unexpected Tape is Off-line\n" +msgstr "" + +#: src/stored/acquire.c:70 +#, c-format +msgid "Acquire read: num_writers=%d not zero. Job %d canceled.\n" +msgstr "" + +#: src/stored/acquire.c:79 +#, c-format +msgid "No volumes specified for reading. Job %s canceled.\n" +msgstr "" + +#: src/stored/acquire.c:88 +#, c-format +msgid "Logic error: no next volume to read. Numvol=%d Curvol=%d\n" +msgstr "" + +#: src/stored/acquire.c:114 +#, c-format +msgid "" +"Changing device. Want Media Type=\"%s\" have=\"%s\"\n" +" device=%s\n" +msgstr "" + +#: src/stored/acquire.c:152 +#, c-format +msgid "Media Type change. New device %s chosen.\n" +msgstr "" + +#: src/stored/acquire.c:163 +#, c-format +msgid "No suitable device found to read Volume \"%s\"\n" +msgstr "" + +#: src/stored/acquire.c:192 +#, c-format +msgid "Job %s canceled.\n" +msgstr "" + +#: src/stored/acquire.c:206 +#, c-format +msgid "Read open device %s Volume \"%s\" failed: ERR=%s\n" +msgstr "" + +#: src/stored/acquire.c:277 +#, c-format +msgid "Too many errors trying to mount device %s for reading.\n" +msgstr "" + +#: src/stored/acquire.c:286 +#, c-format +msgid "Ready to read from volume \"%s\" on device %s.\n" +msgstr "" + +#: src/stored/acquire.c:336 +#, c-format +msgid "Want to append, but device %s is busy reading.\n" +msgstr "" + +#: src/stored/acquire.c:378 +#, c-format +msgid "" +"Cannot recycle volume \"%s\" on device %s because it is in use by another " +"job.\n" +msgstr "" + +#: src/stored/acquire.c:404 +#, c-format +msgid "" +"Invalid tape position on volume \"%s\" on device %s. Expected %d, got %d\n" +msgstr "" + +#: src/stored/acquire.c:426 +#, c-format +msgid "Could not ready device %s for append.\n" +msgstr "" + +#: src/stored/acquire.c:524 src/stored/block.c:368 src/stored/block.c:718 +#: src/stored/block.c:794 +#, c-format +msgid "Could not create JobMedia record for Volume=\"%s\" Job=%s\n" +msgstr "" + +#: src/stored/acquire.c:565 +#, c-format +msgid "Alert: %s" +msgstr "" + +#: src/stored/acquire.c:573 +#, c-format +msgid "3997 Bad alert command: %s: ERR=%s.\n" +msgstr "" + +#: src/stored/ansi_label.c:96 +#, c-format +msgid "Read error on device %s in ANSI label. ERR=%s\n" +msgstr "" + +#: src/stored/ansi_label.c:106 +msgid "Insane! End of tape while reading ANSI label.\n" +msgstr "" + +#: src/stored/ansi_label.c:132 +msgid "No VOL1 label while reading ANSI/IBM label.\n" +msgstr "" + +#: src/stored/ansi_label.c:152 +#, c-format +msgid "Wanted ANSI Volume \"%s\" got \"%s\"\n" +msgstr "" + +#: src/stored/ansi_label.c:163 +msgid "No HDR1 label while reading ANSI label.\n" +msgstr "" + +#: src/stored/ansi_label.c:169 +#, c-format +msgid "ANSI/IBM Volume \"%s\" does not belong to Bacula.\n" +msgstr "" + +#: src/stored/ansi_label.c:181 +msgid "No HDR2 label while reading ANSI/IBM label.\n" +msgstr "" + +#: src/stored/ansi_label.c:196 +msgid "Unknown or bad ANSI/IBM label record.\n" +msgstr "" + +#: src/stored/ansi_label.c:204 +msgid "Too many records in while reading ANSI/IBM label.\n" +msgstr "" + +#: src/stored/ansi_label.c:303 +#, c-format +msgid "ANSI Volume label name \"%s\" longer than 6 chars.\n" +msgstr "" + +#: src/stored/ansi_label.c:320 +#, c-format +msgid "Could not write ANSI VOL1 label. ERR=%s\n" +msgstr "" + +#: src/stored/ansi_label.c:358 src/stored/ansi_label.c:387 +#, c-format +msgid "Could not write ANSI HDR1 label. ERR=%s\n" +msgstr "" + +#: src/stored/ansi_label.c:363 src/stored/ansi_label.c:394 +msgid "Could not write ANSI HDR1 label.\n" +msgstr "" + +#: src/stored/ansi_label.c:399 +#, c-format +msgid "Error writing EOF to tape. ERR=%s" +msgstr "" + +#: src/stored/ansi_label.c:404 +msgid "write_ansi_ibm_label called for non-ANSI/IBM type\n" +msgstr "" + +#: src/stored/block.c:91 +#, c-format +msgid "" +"Dump block %s %x: size=%d BlkNum=%d\n" +" Hdrcksum=%x cksum=%x\n" +msgstr "" + +#: src/stored/block.c:104 +#, c-format +msgid " Rec: VId=%u VT=%u FI=%s Strm=%s len=%d p=%x\n" +msgstr "" + +#: src/stored/block.c:160 +#, c-format +msgid "%d block read errors not printed.\n" +msgstr "" + +#: src/stored/block.c:248 src/stored/block.c:264 src/stored/block.c:274 +#, c-format +msgid "" +"Volume data error at %u:%u! Wanted ID: \"%s\", got \"%s\". Buffer " +"discarded.\n" +msgstr "" + +#: src/stored/block.c:289 +#, c-format +msgid "" +"Volume data error at %u:%u! Block length %u is insane (too large), probably " +"due to a bad archive.\n" +msgstr "" + +#: src/stored/block.c:315 +#, c-format +msgid "" +"Volume data error at %u:%u!\n" +"Block checksum mismatch in block=%u len=%d: calc=%x blk=%x\n" +msgstr "" + +#: src/stored/block.c:426 +msgid "Cannot write block. Device at EOM.\n" +msgstr "" + +#: src/stored/block.c:431 +msgid "Attempt to write on read-only Volume.\n" +msgstr "" + +#: src/stored/block.c:483 +#, c-format +msgid "User defined maximum volume capacity %s exceeded on device %s.\n" +msgstr "" + +#: src/stored/block.c:498 +#, c-format +msgid "Unable to write EOF. ERR=%s\n" +msgstr "" + +#: src/stored/block.c:524 src/stored/block.c:549 +msgid "Write block header zeroed.\n" +msgstr "" + +#: src/stored/block.c:568 +#, c-format +msgid "Write error at %u:%u on device %s. ERR=%s.\n" +msgstr "" + +#: src/stored/block.c:575 +#, c-format +msgid "End of Volume \"%s\" at %u:%u on device %s. Write of %u bytes got %d.\n" +msgstr "" + +#: src/stored/block.c:655 src/stored/block.c:661 +#, c-format +msgid "Backspace file at EOT failed. ERR=%s\n" +msgstr "" + +#: src/stored/block.c:668 +#, c-format +msgid "Backspace record at EOT failed. ERR=%s\n" +msgstr "" + +#: src/stored/block.c:685 +#, c-format +msgid "Re-read last block at EOT failed. ERR=%s" +msgstr "" + +#: src/stored/block.c:695 +#, c-format +msgid "" +"Re-read of last block OK, but block numbers differ. Last block=%u Current " +"block=%u.\n" +msgstr "" + +#: src/stored/block.c:698 +msgid "Re-read of last block succeeded.\n" +msgstr "" + +#: src/stored/block.c:726 +#, c-format +msgid "" +"Error writing final EOF to tape. This Volume may not be readable.\n" +"%s" +msgstr "" + +#: src/stored/block.c:740 +#, c-format +msgid "" +"Error writing final part to DVD. This Volume may not be readable.\n" +"%s" +msgstr "" + +#: src/stored/block.c:843 +#, c-format +msgid "" +"Error while writing, current part number is less than the total number of " +"parts (%d/%d, device=%s)\n" +msgstr "" + +#: src/stored/block.c:851 +#, c-format +msgid "Unable to open device next part %s: ERR=%s\n" +msgstr "" + +#: src/stored/block.c:871 +#, c-format +msgid "" +"End of Volume \"%s\" at %u:%u on device %s (part_size=%s, free_space=%s, " +"free_space_errno=%d, errmsg=%s).\n" +msgstr "" + +#: src/stored/block.c:884 +#, c-format +msgid "" +"End of Volume \"%s\" at %u:%u on device %s (part_size=%s, free_space=%s, " +"free_space_errno=%d).\n" +msgstr "" + +#: src/stored/block.c:940 +#, c-format +msgid "Block buffer size looping problem on device %s\n" +msgstr "" + +#: src/stored/block.c:968 +#, c-format +msgid "Unable to open device part=%d %s: ERR=%s\n" +msgstr "" + +#: src/stored/block.c:994 +#, c-format +msgid "Read error on fd=%d at file:blk %u:%u on device %s. ERR=%s.\n" +msgstr "" + +#: src/stored/block.c:1007 +#, c-format +msgid "Read zero bytes at %u:%u on device %s.\n" +msgstr "" + +#: src/stored/block.c:1031 +#, c-format +msgid "" +"Volume data error at %u:%u! Very short block of %d bytes on device %s " +"discarded.\n" +msgstr "" + +#: src/stored/block.c:1056 +#, c-format +msgid "Block length %u is greater than buffer %u. Attempting recovery.\n" +msgstr "" + +#: src/stored/block.c:1075 +#, c-format +msgid "Setting block buffer size to %u bytes.\n" +msgstr "" + +#: src/stored/block.c:1090 +#, c-format +msgid "" +"Volume data error at %u:%u! Short block of %d bytes on device %s discarded.\n" +msgstr "" + +#: src/tools/testls.c:55 +#, c-format +msgid "" +"\n" +"Usage: testls [-d debug_level] [-] [pattern1 ...]\n" +" -a print extended attributes (Win32 debug)\n" +" -dnn set debug level to nn\n" +" -e specify file of exclude patterns\n" +" -i specify file of include patterns\n" +" - read pattern(s) from stdin\n" +" -? print this message.\n" +"\n" +"Patterns are file inclusion -- normally directories.\n" +"Debug level >= 1 prints each file found.\n" +"Debug level >= 10 prints path/file for catalog.\n" +"Errors always printed.\n" +"Files/paths truncated is number with len > 255.\n" +"Truncation is only in catalog.\n" +"\n" +msgstr "" + +#: src/tools/testls.c:140 +#, c-format +msgid "Could not open include file: %s\n" +msgstr "" + +#: src/tools/testls.c:153 +#, c-format +msgid "Could not open exclude file: %s\n" +msgstr "" + +#: src/tools/testls.c:188 src/tools/testfind.c:309 +#, c-format +msgid "Err: Could not access %s: %s\n" +msgstr "" + +#: src/tools/testls.c:191 src/tools/testfind.c:312 +#, c-format +msgid "Err: Could not follow ff->link %s: %s\n" +msgstr "" + +#: src/tools/testls.c:194 src/tools/testfind.c:315 +#, c-format +msgid "Err: Could not stat %s: %s\n" +msgstr "" + +#: src/tools/testls.c:197 src/tools/testfind.c:318 +#, c-format +msgid "Skip: File not saved. No change. %s\n" +msgstr "" + +#: src/tools/testls.c:200 src/tools/testfind.c:321 +#, c-format +msgid "Err: Attempt to backup archive. Not saved. %s\n" +msgstr "" + +#: src/tools/testls.c:203 +#, c-format +msgid "Recursion turned off. Directory not entered. %s\n" +msgstr "" + +#: src/tools/testls.c:206 +#, c-format +msgid "Skip: File system change prohibited. Directory not entered. %s\n" +msgstr "" + +#: src/tools/testls.c:209 src/tools/testfind.c:324 +#, c-format +msgid "Err: Could not open directory %s: %s\n" +msgstr "" + +#: src/tools/testls.c:212 src/tools/testfind.c:327 +#, c-format +msgid "Err: Unknown file ff->type %d: %s\n" +msgstr "" + +#: src/tools/testfind.c:66 +#, c-format +msgid "" +"\n" +"Usage: testfind [-d debug_level] [-] [pattern1 ...]\n" +" -a print extended attributes (Win32 debug)\n" +" -dnn set debug level to nn\n" +" -c specify config file containing FileSet resources\n" +" -f specify which FileSet to use\n" +" -? print this message.\n" +"\n" +"Patterns are used for file inclusion -- normally directories.\n" +"Debug level >= 1 prints each file found.\n" +"Debug level >= 10 prints path/file for catalog.\n" +"Errors are always printed.\n" +"Files/paths truncated is the number of files/paths with len > 255.\n" +"Truncation is only in the catalog.\n" +"\n" +msgstr "" + +#: src/tools/testfind.c:225 +#, c-format +msgid "" +"\n" +"Total files : %d\n" +"Max file length: %d\n" +"Max path length: %d\n" +"Files truncated: %d\n" +"Paths truncated: %d\n" +"Hard links : %d\n" +msgstr "" + +#: src/tools/testfind.c:265 +#, c-format +msgid "Reg: %s\n" +msgstr "" + +#: src/tools/testfind.c:287 +msgid "\t[will not descend: recursion turned off]" +msgstr "" + +#: src/tools/testfind.c:289 +msgid "\t[will not descend: file system change not allowed]" +msgstr "" + +#: src/tools/testfind.c:291 +msgid "\t[will not descend: disallowed file system]" +msgstr "" + +#: src/tools/testfind.c:293 +msgid "\t[will not descend: disallowed drive type]" +msgstr "" + +#: src/tools/testfind.c:377 +#, c-format +msgid "===== Filename truncated to 255 chars: %s\n" +msgstr "" + +#: src/tools/testfind.c:394 +#, c-format +msgid "========== Path name truncated to 255 chars: %s\n" +msgstr "" + +#: src/tools/testfind.c:403 +#, c-format +msgid "========== Path length is zero. File=%s\n" +msgstr "" + +#: src/tools/testfind.c:406 +#, c-format +msgid "Path: %s\n" +msgstr "" + +#: src/tools/bbatch.c:78 +#, c-format +msgid "" +"\n" +"Version: %s (%s)\n" +"Example : bbatch -w /path/to/workdir -h localhost -f dat1 -f dat -f datx\n" +" will start 3 thread and load dat1, dat and datx in your catalog\n" +"See bbatch.c to generate datafile\n" +"\n" +"Usage: bbatch [ options ] -w working/dir -f datafile\n" +" -d set debug level to nn\n" +" -n specify the database name (default bacula)\n" +" -u specify database user name (default bacula)\n" +" -P specify database host (default NULL)\n" +" -w specify working directory\n" +" -v verbose\n" +" -f specify data file\n" +" -? print this message\n" +"\n" +msgstr "" + +#: src/tools/bbatch.c:261 +#, c-format +msgid "Error opening datafile %s\n" +msgstr "" + +#: src/tools/bbatch.c:271 +msgid "Error while inserting file\n" +msgstr "" + +#: src/tools/dbcheck.c:175 +msgid "" +"Warning skipping the additional parameters for working directory/dbname/user/" +"password/host.\n" +msgstr "" + +#: src/tools/dbcheck.c:191 +#, c-format +msgid "Error can not find the Catalog name[%s] in the given config file [%s]\n" +msgstr "" + +#: src/tools/dbcheck.c:193 +#, c-format +msgid "Error there is no Catalog section in the given config file [%s]\n" +msgstr "" + +#: src/tools/dbcheck.c:202 +msgid "Error no Director resource defined.\n" +msgstr "" + +#: src/tools/dbcheck.c:216 +msgid "Wrong number of arguments.\n" +msgstr "" + +#: src/tools/dbcheck.c:221 +msgid "Working directory not supplied.\n" +msgstr "" + +#: src/tools/dbcheck.c:285 +#, c-format +msgid "Hello, this is the database check/correct program.\n" +msgstr "" + +#: src/tools/dbcheck.c:287 +#, c-format +msgid "Modify database is on." +msgstr "" + +#: src/tools/dbcheck.c:289 +#, c-format +msgid "Modify database is off." +msgstr "" + +#: src/tools/dbcheck.c:291 src/tools/dbcheck.c:352 +#, c-format +msgid " Verbose is on.\n" +msgstr "" + +#: src/tools/dbcheck.c:293 src/tools/dbcheck.c:354 +#, c-format +msgid " Verbose is off.\n" +msgstr "" + +#: src/tools/dbcheck.c:295 +#, c-format +msgid "Please select the fuction you want to perform.\n" +msgstr "" + +#: src/tools/dbcheck.c:299 +#, c-format +msgid "" +"\n" +" 1) Toggle modify database flag\n" +" 2) Toggle verbose flag\n" +" 3) Repair bad Filename records\n" +" 4) Repair bad Path records\n" +" 5) Eliminate duplicate Filename records\n" +" 6) Eliminate duplicate Path records\n" +" 7) Eliminate orphaned Jobmedia records\n" +" 8) Eliminate orphaned File records\n" +" 9) Eliminate orphaned Path records\n" +" 10) Eliminate orphaned Filename records\n" +" 11) Eliminate orphaned FileSet records\n" +" 12) Eliminate orphaned Client records\n" +" 13) Eliminate orphaned Job records\n" +" 14) Eliminate all Admin records\n" +" 15) Eliminate all Restore records\n" +" 16) All (3-15)\n" +" 17) Quit\n" +msgstr "" + +#: src/tools/dbcheck.c:318 +#, c-format +msgid "" +"\n" +" 1) Toggle modify database flag\n" +" 2) Toggle verbose flag\n" +" 3) Check for bad Filename records\n" +" 4) Check for bad Path records\n" +" 5) Check for duplicate Filename records\n" +" 6) Check for duplicate Path records\n" +" 7) Check for orphaned Jobmedia records\n" +" 8) Check for orphaned File records\n" +" 9) Check for orphaned Path records\n" +" 10) Check for orphaned Filename records\n" +" 11) Check for orphaned FileSet records\n" +" 12) Check for orphaned Client records\n" +" 13) Check for orphaned Job records\n" +" 14) Check for all Admin records\n" +" 15) Check for all Restore records\n" +" 16) All (3-15)\n" +" 17) Quit\n" +msgstr "" + +#: src/tools/dbcheck.c:338 +msgid "Select function number: " +msgstr "" + +#: src/tools/dbcheck.c:345 +#, c-format +msgid "Database will be modified.\n" +msgstr "" + +#: src/tools/dbcheck.c:347 +#, c-format +msgid "Database will NOT be modified.\n" +msgstr "" + +#: src/tools/dbcheck.c:437 +#, c-format +msgid "JobId=%s Name=\"%s\" StartTime=%s\n" +msgstr "" + +#: src/tools/dbcheck.c:445 +#, c-format +msgid "Orphaned JobMediaId=%s JobId=%s Volume=\"%s\"\n" +msgstr "" + +#: src/tools/dbcheck.c:452 +#, c-format +msgid "Orphaned FileId=%s JobId=%s Volume=\"%s\"\n" +msgstr "" + +#: src/tools/dbcheck.c:459 +#, c-format +msgid "Orphaned FileSetId=%s FileSet=\"%s\" MD5=%s\n" +msgstr "" + +#: src/tools/dbcheck.c:466 +#, c-format +msgid "Orphaned ClientId=%s Name=\"%s\"\n" +msgstr "" + +#: src/tools/dbcheck.c:520 +#, c-format +msgid "Deleting: %s\n" +msgstr "" + +#: src/tools/dbcheck.c:594 +#, c-format +msgid "Checking for duplicate Filename entries.\n" +msgstr "" + +#: src/tools/dbcheck.c:603 +#, c-format +msgid "Found %d duplicate Filename records.\n" +msgstr "" + +#: src/tools/dbcheck.c:604 +msgid "Print the list? (yes/no): " +msgstr "" + +#: src/tools/dbcheck.c:623 src/tools/dbcheck.c:681 +#, c-format +msgid "Found %d for: %s\n" +msgstr "" + +#: src/tools/dbcheck.c:651 +#, c-format +msgid "Checking for duplicate Path entries.\n" +msgstr "" + +#: src/tools/dbcheck.c:661 +#, c-format +msgid "Found %d duplicate Path records.\n" +msgstr "" + +#: src/tools/dbcheck.c:662 src/tools/dbcheck.c:716 src/tools/dbcheck.c:760 +#: src/tools/dbcheck.c:803 src/tools/dbcheck.c:842 src/tools/dbcheck.c:880 +#: src/tools/dbcheck.c:921 src/tools/dbcheck.c:962 src/tools/dbcheck.c:1000 +#: src/tools/dbcheck.c:1033 src/tools/dbcheck.c:1070 src/tools/dbcheck.c:1134 +msgid "Print them? (yes/no): " +msgstr "" + +#: src/tools/dbcheck.c:709 +#, c-format +msgid "Checking for orphaned JobMedia entries.\n" +msgstr "" + +#: src/tools/dbcheck.c:715 +#, c-format +msgid "Found %d orphaned JobMedia records.\n" +msgstr "" + +#: src/tools/dbcheck.c:733 +#, c-format +msgid "Deleting %d orphaned JobMedia records.\n" +msgstr "" + +#: src/tools/dbcheck.c:750 +#, c-format +msgid "Checking for orphaned File entries. This may take some time!\n" +msgstr "" + +#: src/tools/dbcheck.c:759 +#, c-format +msgid "Found %d orphaned File records.\n" +msgstr "" + +#: src/tools/dbcheck.c:776 +#, c-format +msgid "Deleting %d orphaned File records.\n" +msgstr "" + +#: src/tools/dbcheck.c:793 +#, c-format +msgid "Checking for orphaned Path entries. This may take some time!\n" +msgstr "" + +#: src/tools/dbcheck.c:802 +#, c-format +msgid "Found %d orphaned Path records.\n" +msgstr "" + +#: src/tools/dbcheck.c:815 +#, c-format +msgid "Deleting %d orphaned Path records.\n" +msgstr "" + +#: src/tools/dbcheck.c:832 +#, c-format +msgid "Checking for orphaned Filename entries. This may take some time!\n" +msgstr "" + +#: src/tools/dbcheck.c:841 +#, c-format +msgid "Found %d orphaned Filename records.\n" +msgstr "" + +#: src/tools/dbcheck.c:854 +#, c-format +msgid "Deleting %d orphaned Filename records.\n" +msgstr "" + +#: src/tools/dbcheck.c:869 +#, c-format +msgid "Checking for orphaned FileSet entries. This takes some time!\n" +msgstr "" + +#: src/tools/dbcheck.c:879 +#, c-format +msgid "Found %d orphaned FileSet records.\n" +msgstr "" + +#: src/tools/dbcheck.c:894 +#, c-format +msgid "Deleting %d orphaned FileSet records.\n" +msgstr "" + +#: src/tools/dbcheck.c:903 +#, c-format +msgid "Checking for orphaned Client entries.\n" +msgstr "" + +#: src/tools/dbcheck.c:920 +#, c-format +msgid "Found %d orphaned Client records.\n" +msgstr "" + +#: src/tools/dbcheck.c:935 +#, c-format +msgid "Deleting %d orphaned Client records.\n" +msgstr "" + +#: src/tools/dbcheck.c:944 +#, c-format +msgid "Checking for orphaned Job entries.\n" +msgstr "" + +#: src/tools/dbcheck.c:961 +#, c-format +msgid "Found %d orphaned Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:976 +#, c-format +msgid "Deleting %d orphaned Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:978 +#, c-format +msgid "Deleting JobMedia records of orphaned Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:980 +#, c-format +msgid "Deleting Log records of orphaned Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:990 +#, c-format +msgid "Checking for Admin Job entries.\n" +msgstr "" + +#: src/tools/dbcheck.c:999 +#, c-format +msgid "Found %d Admin Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:1014 +#, c-format +msgid "Deleting %d Admin Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:1023 +#, c-format +msgid "Checking for Restore Job entries.\n" +msgstr "" + +#: src/tools/dbcheck.c:1032 +#, c-format +msgid "Found %d Restore Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:1047 +#, c-format +msgid "Deleting %d Restore Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:1060 +#, c-format +msgid "Checking for Filenames with a trailing slash\n" +msgstr "" + +#: src/tools/dbcheck.c:1069 +#, c-format +msgid "Found %d bad Filename records.\n" +msgstr "" + +#: src/tools/dbcheck.c:1087 src/tools/dbcheck.c:1150 +#, c-format +msgid "Reparing %d bad Filename records.\n" +msgstr "" + +#: src/tools/dbcheck.c:1124 +#, c-format +msgid "Checking for Paths without a trailing slash\n" +msgstr "" + +#: src/tools/dbcheck.c:1133 +#, c-format +msgid "Found %d bad Path records.\n" +msgstr "" + +#: src/tools/bsmtp.c:145 +#, c-format +msgid "Fatal malformed reply from %s: %s\n" +msgstr "" + +#: src/tools/bsmtp.c:153 +#, c-format +msgid "Fatal fgets error: ERR=%s\n" +msgstr "" + +#: src/tools/bsmtp.c:186 +#, c-format +msgid "" +"\n" +"Usage: %s [-f from] [-h mailhost] [-s subject] [-c copy] [recipient ...]\n" +" -8 set charset utf-8\n" +" -c set the Cc: field\n" +" -dnn set debug level to nn\n" +" -f set the From: field\n" +" -h use mailhost:port as the SMTP server\n" +" -s set the Subject: field\n" +" -r set the Reply-To: field\n" +" -l set the maximum number of lines that should be sent " +"(default: unlimited)\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/tools/bsmtp.c:336 +msgid "Fatal error: no recipient given.\n" +msgstr "" + +#: src/tools/bsmtp.c:365 +#, c-format +msgid "Fatal gethostname error: ERR=%s\n" +msgstr "" + +#: src/tools/bsmtp.c:369 +#, c-format +msgid "Fatal gethostbyname for myself failed \"%s\": ERR=%s\n" +msgstr "" + +#: src/tools/bsmtp.c:405 +#, c-format +msgid "Error unknown mail host \"%s\": ERR=%s\n" +msgstr "" + +#: src/tools/bsmtp.c:408 +msgid "Retrying connection using \"localhost\".\n" +msgstr "" + +#: src/tools/bsmtp.c:416 +#, c-format +msgid "Fatal error: Unknown address family for smtp host: %d\n" +msgstr "" + +#: src/tools/bsmtp.c:425 src/tools/bsmtp.c:430 +#, c-format +msgid "Fatal socket error: ERR=%s\n" +msgstr "" + +#: src/tools/bsmtp.c:435 +#, c-format +msgid "Fatal connect error to %s: ERR=%s\n" +msgstr "" + +#: src/tools/bsmtp.c:443 +#, c-format +msgid "Fatal _open_osfhandle error: ERR=%s\n" +msgstr "" + +#: src/tools/bsmtp.c:450 src/tools/bsmtp.c:454 src/tools/bsmtp.c:463 +#: src/tools/bsmtp.c:467 +#, c-format +msgid "Fatal fdopen error: ERR=%s\n" +msgstr "" + +#: src/tools/bsmtp.c:459 +#, c-format +msgid "Fatal dup error: ERR=%s\n" +msgstr "" + +#: src/tools/fstype.c:47 +#, c-format +msgid "" +"\n" +"Usage: fstype [-v] path ...\n" +"\n" +" Print the file system type a given file/directory is on.\n" +" The following options are supported:\n" +"\n" +" -v print both path and file system type.\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/tools/fstype.c:101 src/tools/drivetype.c:101 +#, c-format +msgid "%s: unknown\n" +msgstr "" + +#: src/tools/drivetype.c:47 +#, c-format +msgid "" +"\n" +"Usage: drivetype [-v] path ...\n" +"\n" +" Print the drive type a given file/directory is on.\n" +" The following options are supported:\n" +"\n" +" -v print both path and file system type.\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/console/console.c:114 +#, c-format +msgid "" +"\n" +"Version: " +msgstr "" + +#: src/console/console.c:162 +msgid "input from file" +msgstr "" + +#: src/console/console.c:163 +msgid "output to file" +msgstr "" + +#: src/console/console.c:165 +msgid "output to file and terminal" +msgstr "" + +#: src/console/console.c:166 +msgid "sleep specified time" +msgstr "" + +#: src/console/console.c:168 +msgid "print Console's version" +msgstr "" + +#: src/console/console.c:169 +msgid "echo command string" +msgstr "" + +#: src/console/console.c:170 +msgid "execute an external command" +msgstr "" + +#: src/console/console.c:172 +msgid "zed_keys = use zed keys instead of bash keys" +msgstr "" + +#: src/console/console.c:205 +msgid ": is an invalid command\n" +msgstr "" + +#: src/console/console.c:462 +msgid "Available Directors:\n" +msgstr "" + +#: src/console/console.c:466 +#, c-format +msgid "%2d: %s at %s:%d\n" +msgstr "" + +#: src/console/console.c:470 +msgid "Select Director by entering a number: " +msgstr "" + +#: src/console/console.c:475 +#, c-format +msgid "%s is not a number. You must enter a number between 1 and %d\n" +msgstr "" + +#: src/console/console.c:481 +#, c-format +msgid "You must enter a number between 1 and %d\n" +msgstr "" + +#: src/console/console.c:521 src/tray-monitor/tray-monitor.c:920 +#, c-format +msgid "Connecting to Director %s:%d\n" +msgstr "" + +#: src/console/console.c:588 +msgid "Enter a period to cancel a command.\n" +msgstr "" + +#: src/console/console.c:849 +msgid "Too many arguments on input command.\n" +msgstr "" + +#: src/console/console.c:853 +msgid "First argument to input command must be a filename.\n" +msgstr "" + +#: src/console/console.c:858 +#, c-format +msgid "Cannot open file %s for input. ERR=%s\n" +msgstr "" + +#: src/console/console.c:888 +msgid "Too many arguments on output/tee command.\n" +msgstr "" + +#: src/console/console.c:905 +#, c-format +msgid "Cannot open file %s for output. ERR=%s\n" +msgstr "" + +#: src/console/console.c:924 +msgid "Too many arguments. Enclose command in double quotes.\n" +msgstr "" + +#: src/console/console.c:933 +#, c-format +msgid "Cannot popen(\"%s\", \"r\"): ERR=%s\n" +msgstr "" + +#: src/tray-monitor/authenticate.c:88 +msgid "" +"Director authorization problem.\n" +"Most likely the passwords do not agree.\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" + +#: src/tray-monitor/authenticate.c:138 +msgid "" +"Director and Storage daemon passwords or names not the same.\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" + +#: src/tray-monitor/authenticate.c:145 +#, c-format +msgid "bdird set configuration file to file\n" +" -dnn set debug level to nn\n" +" -t test - read configuration and exit\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:261 +#, c-format +msgid "" +"Error: %d Monitor resources defined in %s. You must define one and only one " +"Monitor resource.\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:292 +#, c-format +msgid "" +"No Client, Storage or Director resource defined in %s\n" +"Without that I don't how to get status from the File, Storage or Director " +"Daemon :-(\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:314 +#, c-format +msgid "" +"Invalid refresh interval defined in %s\n" +"This value must be greater or equal to 1 second and less or equal to 10 " +"minutes (read value: %d).\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:321 +msgid "Bacula daemon status monitor" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:330 +msgid "Open status window..." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:336 +msgid "Exit" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:348 +msgid "Bacula tray monitor" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:373 +msgid " (DIR)" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:377 +msgid " (FD)" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:381 +msgid " (SD)" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:394 +msgid "Unknown status." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:464 +msgid "Refresh interval in seconds: " +msgstr "" + +#: src/tray-monitor/tray-monitor.c:472 +msgid "Refresh now" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:476 +msgid "About" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:480 +msgid "Close" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:500 +#, c-format +msgid "Disconnecting from Director %s:%d\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:503 +#, c-format +msgid "Disconnecting from Client %s:%d\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:506 +#, c-format +msgid "Disconnecting from Storage %s:%d\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:544 src/tray-monitor/tray-monitor.c:555 +msgid "Bacula Tray Monitor" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:546 src/tray-monitor/tray-monitor.c:557 +msgid "Written by Nicolas Boichat\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:547 src/tray-monitor/tray-monitor.c:558 +msgid "Version" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:640 +#, c-format +msgid "Error, currentitem is not a Client or a Storage..\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:714 +#, c-format +msgid "" +"Current job: %s\n" +"Last job: %s" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:726 +#, c-format +msgid " (%d errors)" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:729 +#, c-format +msgid " (%d error)" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:767 +msgid "No current job." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:770 +msgid "No last job." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:778 +msgid "Job status: Created" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:783 +msgid "Job status: Running" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:787 +msgid "Job status: Blocked" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:792 +msgid "Job status: Terminated" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:797 +msgid "Job status: Terminated in error" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:803 +msgid "Job status: Error" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:807 +msgid "Job status: Fatal error" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:812 +msgid "Job status: Verify differences" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:817 +msgid "Job status: Canceled" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:822 +msgid "Job status: Waiting on File daemon" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:827 +msgid "Job status: Waiting on the Storage daemon" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:832 +msgid "Job status: Waiting for new media" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:837 +msgid "Job status: Waiting for Mount" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:842 +msgid "Job status: Waiting for storage resource" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:847 +msgid "Job status: Waiting for job resource" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:852 +msgid "Job status: Waiting for Client resource" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:857 +msgid "Job status: Waiting for maximum jobs" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:862 +msgid "Job status: Waiting for start time" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:867 +msgid "Job status: Waiting for higher priority jobs to finish" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:872 +#, c-format +msgid "Unknown job status %c." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:873 +#, c-format +msgid "Job status: Unknown(%c)" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:880 +#, c-format +msgid "Bad scan : '%s' %d\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:921 src/qt-console/bcomm/dircomm.cpp:120 +#: src/qt-console/console/console.cpp:137 +#, c-format +msgid "Connecting to Director %s:%d" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:927 +#, c-format +msgid "Connecting to Client %s:%d\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:928 +#, c-format +msgid "Connecting to Client %s:%d" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:929 +msgid "File daemon" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:934 +#, c-format +msgid "Connecting to Storage %s:%d\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:935 +#, c-format +msgid "Connecting to Storage %s:%d" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:940 src/tray-monitor/tray-monitor.c:978 +#, c-format +msgid "Error, currentitem is not a Client, a Storage or a Director..\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:946 +msgid "Cannot connect to daemon.\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:947 +msgid "Cannot connect to daemon." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:959 +#, c-format +msgid "Authentication error : %s" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:966 +msgid "Opened connection with Director daemon.\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:967 +msgid "Opened connection with Director daemon." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:970 +msgid "Opened connection with File daemon.\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:971 +msgid "Opened connection with File daemon." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:974 +msgid "Opened connection with Storage daemon.\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:975 +msgid "Opened connection with Storage daemon." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:1012 +msgid "<< Error: BNET_PROMPT signal received. >>\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:1017 src/wx-console/console_thread.cpp:486 +msgid "<< Heartbeat signal received, answered. >>\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:1021 +#, c-format +msgid "<< Unexpected signal received : %s >>\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:1026 +msgid "\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:1030 +msgid "Error : BNET_HARDEOF or BNET_ERROR" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:1036 +msgid "\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:1040 +msgid "Error : Connection closed." +msgstr "" + +#: src/tray-monitor/tray_conf.c:177 +#, c-format +msgid "Monitor: name=%s FDtimeout=%s SDtimeout=%s\n" +msgstr "" + +#: src/tray-monitor/tray_conf.c:183 +#, c-format +msgid "Director: name=%s address=%s FDport=%d\n" +msgstr "" + +#: src/tray-monitor/tray_conf.c:187 +#, c-format +msgid "Client: name=%s address=%s FDport=%d\n" +msgstr "" + +#: src/tray-monitor/tray_conf.c:191 +#, c-format +msgid "Storage: name=%s address=%s SDport=%d\n" +msgstr "" + +#: src/lib/cram-md5.c:111 src/lib/cram-md5.c:139 +msgid "1999 Authorization failed.\n" +msgstr "" + +#: src/lib/mem_pool.c:108 +#, c-format +msgid "MemPool index %d larger than max %d\n" +msgstr "" + +#: src/lib/mem_pool.c:126 src/lib/mem_pool.c:146 src/lib/mem_pool.c:181 +#: src/lib/mem_pool.c:253 src/lib/mem_pool.c:273 src/lib/mem_pool.c:311 +#: src/lib/mem_pool.c:583 +#, c-format +msgid "Out of memory requesting %d bytes\n" +msgstr "" + +#: src/lib/util.c:182 +msgid "Running" +msgstr "" + +#: src/lib/util.c:185 +msgid "Blocked" +msgstr "" + +#: src/lib/util.c:195 +msgid "Non-fatal error" +msgstr "" + +#: src/lib/util.c:198 src/lib/util.c:271 +msgid "Canceled" +msgstr "" + +#: src/lib/util.c:201 +msgid "Verify differences" +msgstr "" + +#: src/lib/util.c:204 +msgid "Waiting on FD" +msgstr "" + +#: src/lib/util.c:207 +msgid "Wait on SD" +msgstr "" + +#: src/lib/util.c:210 +msgid "Wait for new Volume" +msgstr "" + +#: src/lib/util.c:213 +msgid "Waiting for mount" +msgstr "" + +#: src/lib/util.c:216 +msgid "Waiting for Storage resource" +msgstr "" + +#: src/lib/util.c:219 +msgid "Waiting for Job resource" +msgstr "" + +#: src/lib/util.c:222 +msgid "Waiting for Client resource" +msgstr "" + +#: src/lib/util.c:225 +msgid "Waiting on Max Jobs" +msgstr "" + +#: src/lib/util.c:228 +msgid "Waiting for Start Time" +msgstr "" + +#: src/lib/util.c:231 +msgid "Waiting on Priority" +msgstr "" + +#: src/lib/util.c:244 +#, c-format +msgid "Unknown Job termination status=%d" +msgstr "" + +#: src/lib/util.c:268 +msgid "Fatal Error" +msgstr "" + +#: src/lib/util.c:274 +msgid "Differences" +msgstr "" + +#: src/lib/util.c:277 +msgid "Unknown term code" +msgstr "" + +#: src/lib/util.c:305 +msgid "Migrate" +msgstr "" + +#: src/lib/util.c:308 +msgid "Copy" +msgstr "" + +#: src/lib/util.c:311 src/wx-console/wxbmainframe.cpp:276 +msgid "Console" +msgstr "" + +#: src/lib/util.c:314 +msgid "System or Console" +msgstr "" + +#: src/lib/util.c:317 +msgid "Scan" +msgstr "" + +#: src/lib/util.c:320 +msgid "Unknown Type" +msgstr "" + +#: src/lib/util.c:352 +msgid "Verify Init Catalog" +msgstr "" + +#: src/lib/util.c:361 +msgid "Verify Data" +msgstr "" + +#: src/lib/util.c:705 +msgid "Working directory not defined. Cannot continue.\n" +msgstr "" + +#: src/lib/util.c:708 +#, c-format +msgid "Working Directory: \"%s\" not found. Cannot continue.\n" +msgstr "" + +#: src/lib/util.c:712 +#, c-format +msgid "Working Directory: \"%s\" is not a directory. Cannot continue.\n" +msgstr "" + +#: src/lib/message.c:274 src/lib/message.c:284 +#, c-format +msgid "Could not open console message file %s: ERR=%s\n" +msgstr "" + +#: src/lib/message.c:289 +#, c-format +msgid "Could not get con mutex: ERR=%s\n" +msgstr "" + +#: src/lib/message.c:393 +#, c-format +msgid "open mail pipe %s failed: ERR=%s\n" +msgstr "" + +#: src/lib/message.c:399 +msgid "Bacula Message" +msgstr "" + +#: src/lib/message.c:459 +msgid "open mail pipe failed.\n" +msgstr "" + +#: src/lib/message.c:471 +#, c-format +msgid "close error: ERR=%s\n" +msgstr "" + +#: src/lib/message.c:482 +#, c-format +msgid "Mail prog: %s" +msgstr "" + +#: src/lib/message.c:491 +#, c-format +msgid "" +"Mail program terminated in error.\n" +"CMD=%s\n" +"ERR=%s\n" +msgstr "" + +#: src/lib/message.c:590 src/lib/message.c:743 +#, c-format +msgid "fopen %s failed: ERR=%s\n" +msgstr "" + +#: src/lib/message.c:725 +#, c-format +msgid "" +"Operator mail program terminated in error.\n" +"CMD=%s\n" +"ERR=%s\n" +msgstr "" + +#: src/lib/message.c:1024 +#, c-format +msgid "%s: ABORTING due to ERROR in %s:%d\n" +msgstr "" + +#: src/lib/message.c:1028 +#, c-format +msgid "%s: ERROR TERMINATION at %s:%d\n" +msgstr "" + +#: src/lib/message.c:1033 +#, c-format +msgid "%s: Fatal Error because: " +msgstr "" + +#: src/lib/message.c:1035 +#, c-format +msgid "%s: Fatal Error at %s:%d because:\n" +msgstr "" + +#: src/lib/message.c:1039 +#, c-format +msgid "%s: ERROR: " +msgstr "" + +#: src/lib/message.c:1041 +#, c-format +msgid "%s: ERROR in %s:%d " +msgstr "" + +#: src/lib/message.c:1044 +#, c-format +msgid "%s: Warning: " +msgstr "" + +#: src/lib/message.c:1047 +#, c-format +msgid "%s: Security violation: " +msgstr "" + +#: src/lib/message.c:1122 +#, c-format +msgid "%s ABORTING due to ERROR\n" +msgstr "" + +#: src/lib/message.c:1125 +#, c-format +msgid "%s ERROR TERMINATION\n" +msgstr "" + +#: src/lib/message.c:1128 +#, c-format +msgid "%s JobId %u: Fatal error: " +msgstr "" + +#: src/lib/message.c:1134 +#, c-format +msgid "%s JobId %u: Error: " +msgstr "" + +#: src/lib/message.c:1140 +#, c-format +msgid "%s JobId %u: Warning: " +msgstr "" + +#: src/lib/message.c:1143 +#, c-format +msgid "%s JobId %u: Security violation: " +msgstr "" + +#: src/lib/berrno.c:62 +msgid "Child exited normally." +msgstr "" + +#: src/lib/berrno.c:69 +msgid "Unknown error during program execvp" +msgstr "" + +#: src/lib/berrno.c:72 +#, c-format +msgid "Child exited with code %d" +msgstr "" + +#: src/lib/berrno.c:80 +#, c-format +msgid "Child died from signal %d: %s" +msgstr "" + +#: src/lib/berrno.c:86 +msgid "Invalid errno. No error message possible." +msgstr "" + +#: src/lib/bnet.c:118 +#, c-format +msgid "Attr spool write error. ERR=%s\n" +msgstr "" + +#: src/lib/bnet.c:244 src/lib/bnet.c:284 +msgid "TLS connection initialization failed.\n" +msgstr "" + +#: src/lib/bnet.c:252 +msgid "TLS Negotiation failed.\n" +msgstr "" + +#: src/lib/bnet.c:258 src/lib/bnet.c:299 +msgid "" +"TLS certificate verification failed. Peer certificate did not match a " +"required commonName\n" +msgstr "" + +#: src/lib/bnet.c:306 +#, c-format +msgid "" +"TLS host certificate verification failed. Host %s did not match presented " +"certificate\n" +msgstr "" + +#: src/lib/bnet.c:323 +msgid "TLS enabled but not configured.\n" +msgstr "" + +#: src/lib/bnet.c:329 +msgid "TLS enable but not configured.\n" +msgstr "" + +#: src/lib/bnet.c:387 +msgid "No problem." +msgstr "" + +#: src/lib/bnet.c:390 +msgid "Authoritative answer for host not found." +msgstr "" + +#: src/lib/bnet.c:393 +msgid "Non-authoritative for host not found, or ServerFail." +msgstr "" + +#: src/lib/bnet.c:396 +msgid "Non-recoverable errors, FORMERR, REFUSED, or NOTIMP." +msgstr "" + +#: src/lib/bnet.c:399 +msgid "Valid name, no data record of resquested type." +msgstr "" + +#: src/lib/bnet.c:402 +msgid "Unknown error." +msgstr "" + +#: src/lib/bnet.c:656 +#, c-format +msgid "Unknown sig %d" +msgstr "" + +#: src/lib/bpipe.c:362 src/lib/bpipe.c:452 +msgid "Program killed by Bacula watchdog (timeout)\n" +msgstr "" + +#: src/lib/watchdog.c:83 +#, c-format +msgid "Unable to initialize watchdog lock. ERR=%s\n" +msgstr "" + +#: src/lib/watchdog.c:180 +msgid "BUG! register_watchdog called before start_watchdog\n" +msgstr "" + +#: src/lib/watchdog.c:183 +#, c-format +msgid "BUG! Watchdog %p has NULL callback\n" +msgstr "" + +#: src/lib/watchdog.c:186 +#, c-format +msgid "BUG! Watchdog %p has zero interval\n" +msgstr "" + +#: src/lib/watchdog.c:206 +msgid "BUG! unregister_watchdog_unlocked called before start_watchdog\n" +msgstr "" + +#: src/lib/watchdog.c:325 +#, c-format +msgid "rwl_writelock failure. ERR=%s\n" +msgstr "" + +#: src/lib/watchdog.c:340 +#, c-format +msgid "rwl_writeunlock failure. ERR=%s\n" +msgstr "" + +#: src/lib/bsock.c:122 +#, c-format +msgid "" +"Could not connect to %s on %s:%d. ERR=%s\n" +"Retrying ...\n" +msgstr "" + +#: src/lib/bsock.c:128 +#, c-format +msgid "Unable to connect to %s on %s:%d. ERR=%s\n" +msgstr "" + +#: src/lib/bsock.c:181 +#, c-format +msgid "gethostbyname() for host \"%s\" failed: ERR=%s\n" +msgstr "" + +#: src/lib/bsock.c:201 +#, c-format +msgid "Socket open error. proto=%d port=%d. ERR=%s\n" +msgstr "" + +#: src/lib/bsock.c:210 src/lib/bsock.c:246 src/lib/bnet_server.c:202 +#: src/lib/bnet_server.c:370 +#, c-format +msgid "Cannot set SO_KEEPALIVE on socket: %s\n" +msgstr "" + +#: src/lib/bsock.c:218 +#, c-format +msgid "Cannot set SO_KEEPIDLE on socket: %s\n" +msgstr "" + +#: src/lib/bsock.c:304 +#, c-format +msgid "Write error sending %d bytes to %s:%s:%d: ERR=%s\n" +msgstr "" + +#: src/lib/bsock.c:310 +#, c-format +msgid "Wrote %d bytes to %s:%s:%d, but only %d accepted.\n" +msgstr "" + +#: src/lib/bsock.c:396 src/lib/bsock.c:453 +#, c-format +msgid "Read expected %d got %d from %s:%s:%d\n" +msgstr "" + +#: src/lib/bsock.c:414 +#, c-format +msgid "Packet size too big from \"%s:%s:%d. Terminating connection.\n" +msgstr "" + +#: src/lib/bsock.c:443 +#, c-format +msgid "Read error from %s:%s:%d: ERR=%s\n" +msgstr "" + +#: src/lib/bsock.c:507 src/lib/bsock.c:523 +#, c-format +msgid "fread attr spool error. ERR=%s\n" +msgstr "" + +#: src/lib/bsock.c:584 +msgid "Could not malloc BSOCK data buffer\n" +msgstr "" + +#: src/lib/bsock.c:591 src/lib/bsock.c:615 +#, c-format +msgid "sockopt error: %s\n" +msgstr "" + +#: src/lib/bsock.c:597 src/lib/bsock.c:621 +#, c-format +msgid "Warning network buffer = %d bytes not max size.\n" +msgstr "" + +#: src/lib/bsock.c:601 src/lib/bsock.c:625 +#, c-format +msgid "Network buffer size %d not multiple of tape block size.\n" +msgstr "" + +#: src/lib/bsock.c:646 src/lib/bsock.c:680 +#, c-format +msgid "fcntl F_GETFL error. ERR=%s\n" +msgstr "" + +#: src/lib/bsock.c:652 src/lib/bsock.c:686 src/lib/bsock.c:711 +#, c-format +msgid "fcntl F_SETFL error. ERR=%s\n" +msgstr "" + +#: src/lib/bsock.c:873 src/qt-console/bcomm/dircomm_auth.cpp:106 +#: src/qt-console/console/authenticate.cpp:105 +#, c-format +msgid "Director authorization problem at \"%s:%d\"\n" +msgstr "" + +#: src/lib/bsock.c:880 src/qt-console/bcomm/dircomm_auth.cpp:113 +#: src/qt-console/console/authenticate.cpp:112 +#, c-format +msgid "" +"Authorization problem: Remote server at \"%s:%d\" did not advertise required " +"TLS support.\n" +msgstr "" + +#: src/lib/bsock.c:888 src/qt-console/bcomm/dircomm_auth.cpp:121 +#: src/qt-console/console/authenticate.cpp:120 +#, c-format +msgid "" +"Authorization problem with Director at \"%s:%d\": Remote server requires " +"TLS.\n" +msgstr "" + +#: src/lib/bsock.c:900 src/qt-console/bcomm/dircomm_auth.cpp:133 +#: src/qt-console/console/authenticate.cpp:132 +#, c-format +msgid "TLS negotiation failed with Director at \"%s:%d\"\n" +msgstr "" + +#: src/lib/bsock.c:910 src/qt-console/bcomm/dircomm_auth.cpp:143 +#: src/qt-console/console/authenticate.cpp:142 +#, c-format +msgid "" +"Bad response to Hello command: ERR=%s\n" +"The Director at \"%s:%d\" is probably not running.\n" +msgstr "" + +#: src/lib/bsock.c:919 src/qt-console/bcomm/dircomm_auth.cpp:152 +#: src/qt-console/console/authenticate.cpp:151 +#, c-format +msgid "Director at \"%s:%d\" rejected Hello command\n" +msgstr "" + +#: src/lib/bsock.c:929 src/qt-console/bcomm/dircomm_auth.cpp:162 +#: src/qt-console/console/authenticate.cpp:161 +#, c-format +msgid "" +"Authorization problem with Director at \"%s:%d\"\n" +"Most likely the passwords do not agree.\n" +"If you are using TLS, there may have been a certificate validation error " +"during the TLS handshake.\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" + +#: src/lib/btimers.c:254 +msgid "stop_btimer called with NULL btimer_id\n" +msgstr "" + +#: src/lib/pythonlib.c:127 +msgid "Could not initialize Python\n" +msgstr "" + +#: src/lib/pythonlib.c:132 +#, c-format +msgid "Could not Run Python string %s\n" +msgstr "" + +#: src/lib/pythonlib.c:144 +msgid "Could not initialize Python Job type.\n" +msgstr "" + +#: src/lib/pythonlib.c:149 +#, c-format +msgid "Could not import Python script %s/%s. Python disabled.\n" +msgstr "" + +#: src/lib/pythonlib.c:252 +msgid "Could not create Python Job Object.\n" +msgstr "" + +#: src/lib/pythonlib.c:265 src/lib/pythonlib.c:289 +#, c-format +msgid "Python function \"%s\" not found.\n" +msgstr "" + +#: src/lib/pythonlib.c:304 +#, c-format +msgid "Unknown Python daemon event %s\n" +msgstr "" + +#: src/lib/pythonlib.c:329 +#, c-format +msgid "Unable to initialize the Python lock. ERR=%s\n" +msgstr "" + +#: src/lib/attr.c:79 +#, c-format +msgid "Error scanning attributes: %s\n" +msgstr "" + +#: src/lib/jcr.c:297 +msgid "NULL jcr.\n" +msgstr "" + +#: src/lib/jcr.c:431 +#, c-format +msgid "JCR use_count=%d JobId=%d\n" +msgstr "" + +#: src/lib/jcr.c:762 +#, c-format +msgid "" +"Watchdog sending kill after %d secs to thread stalled reading Storage " +"daemon.\n" +msgstr "" + +#: src/lib/jcr.c:774 +#, c-format +msgid "" +"Watchdog sending kill after %d secs to thread stalled reading File daemon.\n" +msgstr "" + +#: src/lib/jcr.c:786 +#, c-format +msgid "" +"Watchdog sending kill after %d secs to thread stalled reading Director.\n" +msgstr "" + +#: src/lib/parse_conf.c:188 +msgid "***UNKNOWN***" +msgstr "" + +#: src/lib/parse_conf.c:286 src/lib/parse_conf.c:306 +#, c-format +msgid "expected an =, got: %s" +msgstr "" + +#: src/lib/parse_conf.c:314 +#, c-format +msgid "Unknown item code: %d\n" +msgstr "" + +#: src/lib/parse_conf.c:354 +#, c-format +msgid "message type: %s not found" +msgstr "" + +#: src/lib/parse_conf.c:391 +#, c-format +msgid "Attempt to redefine name \"%s\" to \"%s\"." +msgstr "" + +#: src/lib/parse_conf.c:486 +#, c-format +msgid "Attempt to redefine resource \"%s\" referenced on line %d : %s\n" +msgstr "" + +#: src/lib/parse_conf.c:521 +#, c-format +msgid "Too many %s directives. Max. is %d. line %d: %s\n" +msgstr "" + +#: src/lib/parse_conf.c:531 +#, c-format +msgid "Could not find config Resource \"%s\" referenced on line %d : %s\n" +msgstr "" + +#: src/lib/parse_conf.c:593 +#, c-format +msgid "Missing config Resource \"%s\" referenced on line %d : %s\n" +msgstr "" + +#: src/lib/parse_conf.c:657 +#, c-format +msgid "expected a size number, got: %s" +msgstr "" + +#: src/lib/parse_conf.c:662 +#, c-format +msgid "expected a size, got: %s" +msgstr "" + +#: src/lib/parse_conf.c:699 src/lib/parse_conf.c:704 +#, c-format +msgid "expected a time period, got: %s" +msgstr "" + +#: src/lib/parse_conf.c:763 +#, c-format +msgid "Expected a Tape Label keyword, got: %s" +msgstr "" + +#: src/lib/parse_conf.c:798 +#, c-format +msgid "Unable to initialize resource lock. ERR=%s\n" +msgstr "" + +#: src/lib/parse_conf.c:828 +#, c-format +msgid "Cannot open config file \"%s\": %s\n" +msgstr "" + +#: src/lib/parse_conf.c:845 +msgid "" +"Currently we cannot handle UTF-16 source files. Please convert the conf file " +"to UTF-8\n" +msgstr "" + +#: src/lib/parse_conf.c:849 +#, c-format +msgid "Expected a Resource name identifier, got: %s" +msgstr "" + +#: src/lib/parse_conf.c:865 +#, c-format +msgid "expected resource name, got: %s" +msgstr "" + +#: src/lib/parse_conf.c:876 +#, c-format +msgid "not in resource definition: %s" +msgstr "" + +#: src/lib/parse_conf.c:901 +#, c-format +msgid "" +"Keyword \"%s\" not permitted in this resource.\n" +"Perhaps you left the trailing brace off of the previous resource." +msgstr "" + +#: src/lib/parse_conf.c:912 +msgid "Name not specified for resource" +msgstr "" + +#: src/lib/parse_conf.c:921 +#, c-format +msgid "unexpected token %d %s in resource definition" +msgstr "" + +#: src/lib/parse_conf.c:927 +#, c-format +msgid "Unknown parser state %d\n" +msgstr "" + +#: src/lib/parse_conf.c:932 +msgid "End of conf file reached with unclosed resource." +msgstr "" + +#: src/lib/res.c:66 +#, c-format +msgid "rwl_writelock failure at %s:%d: ERR=%s\n" +msgstr "" + +#: src/lib/res.c:76 +#, c-format +msgid "rwl_writeunlock failure at %s:%d:. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:297 +msgid "rwl_writeunlock called too many times.\n" +msgstr "" + +#: src/lib/rwlock.c:301 +msgid "rwl_writeunlock by non-owner.\n" +msgstr "" + +#: src/lib/rwlock.c:367 +#, c-format +msgid "Write lock failed. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:375 +#, c-format +msgid "Write unlock failed. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:386 +#, c-format +msgid "Read lock failed. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:394 +#, c-format +msgid "Read unlock failed. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:403 +#, c-format +msgid "Thread %d found unchanged elements %d times\n" +msgstr "" + +#: src/lib/rwlock.c:436 +#, c-format +msgid "Init rwlock failed. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:452 +#, c-format +msgid "Create thread failed. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:464 +#, c-format +msgid "Join thread failed. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:467 +#, c-format +msgid "%02d: interval %d, writes %d, reads %d\n" +msgstr "" + +#: src/lib/rwlock.c:477 +#, c-format +msgid "data %02d: value %d, %d writes\n" +msgstr "" + +#: src/lib/rwlock.c:482 +#, c-format +msgid "Total: %d thread writes, %d data writes\n" +msgstr "" + +#: src/lib/rwlock.c:554 +msgid "Try write lock" +msgstr "" + +#: src/lib/rwlock.c:560 +msgid "Try read lock" +msgstr "" + +#: src/lib/rwlock.c:615 +msgid "Create thread" +msgstr "" + +#: src/lib/rwlock.c:625 +msgid "Join thread" +msgstr "" + +#: src/lib/rwlock.c:627 +#, c-format +msgid "%02d: interval %d, updates %d, r_collisions %d, w_collisions %d\n" +msgstr "" + +#: src/lib/rwlock.c:639 +#, c-format +msgid "data %02d: value %d, %d updates\n" +msgstr "" + +#: src/lib/daemon.c:66 +#, c-format +msgid "Cannot fork to become daemon: ERR=%s\n" +msgstr "" + +#: src/lib/tls.c:93 +#, c-format +msgid "" +"Error with certificate at depth: %d, issuer = %s, subject = %s, ERR=%d:%s\n" +msgstr "" + +#: src/lib/tls.c:130 +msgid "Error initializing SSL context" +msgstr "" + +#: src/lib/tls.c:151 +msgid "Error loading certificate verification stores" +msgstr "" + +#: src/lib/tls.c:156 +msgid "" +"Either a certificate file or a directory must be specified as a verification " +"store\n" +msgstr "" + +#: src/lib/tls.c:167 +msgid "Error loading certificate file" +msgstr "" + +#: src/lib/tls.c:175 +msgid "Error loading private key" +msgstr "" + +#: src/lib/tls.c:183 +msgid "Unable to open DH parameters file" +msgstr "" + +#: src/lib/tls.c:189 +msgid "Unable to load DH parameters from specified file" +msgstr "" + +#: src/lib/tls.c:193 +msgid "Failed to set TLS Diffie-Hellman parameters" +msgstr "" + +#: src/lib/tls.c:203 +msgid "Error setting cipher list, no valid ciphers available\n" +msgstr "" + +#: src/lib/tls.c:262 +msgid "Peer failed to present a TLS certificate\n" +msgstr "" + +#: src/lib/tls.c:305 +#, c-format +msgid "Peer %s failed to present a TLS certificate\n" +msgstr "" + +#: src/lib/tls.c:407 +msgid "Error creating file descriptor-based BIO" +msgstr "" + +#: src/lib/tls.c:418 +msgid "Error creating new SSL object" +msgstr "" + +#: src/lib/tls.c:481 src/lib/tls.c:504 +msgid "Connect failure" +msgstr "" + +#: src/lib/tls.c:576 src/lib/tls.c:580 +msgid "TLS shutdown failure." +msgstr "" + +#: src/lib/tls.c:647 +msgid "TLS read/write failure." +msgstr "" + +#: src/lib/signal.c:68 +msgid "Invalid signal number" +msgstr "" + +#: src/lib/signal.c:94 +#, c-format +msgid "Bacula interrupted by signal %d: %s\n" +msgstr "" + +#: src/lib/signal.c:107 +#, c-format +msgid "Kaboom! %s, %s got signal %d - %s. Attempting traceback.\n" +msgstr "" + +#: src/lib/signal.c:109 +#, c-format +msgid "Kaboom! exepath=%s\n" +msgstr "" + +#: src/lib/signal.c:143 +#, c-format +msgid "Fork error: ERR=%s\n" +msgstr "" + +#: src/lib/signal.c:150 +#, c-format +msgid "Calling: %s %s %s\n" +msgstr "" + +#: src/lib/signal.c:153 +#, c-format +msgid "execv: %s failed: ERR=%s\n" +msgstr "" + +#: src/lib/signal.c:168 +#, c-format +msgid "Traceback complete, attempting cleanup ...\n" +msgstr "" + +#: src/lib/signal.c:176 +#, c-format +msgid "It looks like the traceback worked ...\n" +msgstr "" + +#: src/lib/signal.c:205 +#, c-format +msgid "BA_NSIG too small (%d) should be (%d)\n" +msgstr "" + +#: src/lib/signal.c:211 +msgid "UNKNOWN SIGNAL" +msgstr "" + +#: src/lib/signal.c:212 +msgid "Hangup" +msgstr "" + +#: src/lib/signal.c:213 +msgid "Interrupt" +msgstr "" + +#: src/lib/signal.c:214 +msgid "Quit" +msgstr "" + +#: src/lib/signal.c:215 +msgid "Illegal instruction" +msgstr "" + +#: src/lib/signal.c:216 +msgid "Trace/Breakpoint trap" +msgstr "" + +#: src/lib/signal.c:217 +msgid "Abort" +msgstr "" + +#: src/lib/signal.c:219 +msgid "EMT instruction (Emulation Trap)" +msgstr "" + +#: src/lib/signal.c:222 +msgid "IOT trap" +msgstr "" + +#: src/lib/signal.c:224 +msgid "BUS error" +msgstr "" + +#: src/lib/signal.c:225 +msgid "Floating-point exception" +msgstr "" + +#: src/lib/signal.c:226 +msgid "Kill, unblockable" +msgstr "" + +#: src/lib/signal.c:227 +msgid "User-defined signal 1" +msgstr "" + +#: src/lib/signal.c:228 +msgid "Segmentation violation" +msgstr "" + +#: src/lib/signal.c:229 +msgid "User-defined signal 2" +msgstr "" + +#: src/lib/signal.c:230 +msgid "Broken pipe" +msgstr "" + +#: src/lib/signal.c:231 +msgid "Alarm clock" +msgstr "" + +#: src/lib/signal.c:232 +msgid "Termination" +msgstr "" + +#: src/lib/signal.c:234 +msgid "Stack fault" +msgstr "" + +#: src/lib/signal.c:236 +msgid "Child status has changed" +msgstr "" + +#: src/lib/signal.c:237 +msgid "Continue" +msgstr "" + +#: src/lib/signal.c:238 +msgid "Stop, unblockable" +msgstr "" + +#: src/lib/signal.c:239 +msgid "Keyboard stop" +msgstr "" + +#: src/lib/signal.c:240 +msgid "Background read from tty" +msgstr "" + +#: src/lib/signal.c:241 +msgid "Background write to tty" +msgstr "" + +#: src/lib/signal.c:242 +msgid "Urgent condition on socket" +msgstr "" + +#: src/lib/signal.c:243 +msgid "CPU limit exceeded" +msgstr "" + +#: src/lib/signal.c:244 +msgid "File size limit exceeded" +msgstr "" + +#: src/lib/signal.c:245 +msgid "Virtual alarm clock" +msgstr "" + +#: src/lib/signal.c:246 +msgid "Profiling alarm clock" +msgstr "" + +#: src/lib/signal.c:247 +msgid "Window size change" +msgstr "" + +#: src/lib/signal.c:248 +msgid "I/O now possible" +msgstr "" + +#: src/lib/signal.c:250 +msgid "Power failure restart" +msgstr "" + +#: src/lib/signal.c:253 +msgid "No runnable lwp" +msgstr "" + +#: src/lib/signal.c:256 +msgid "SIGLWP special signal used by thread library" +msgstr "" + +#: src/lib/signal.c:259 +msgid "Checkpoint Freeze" +msgstr "" + +#: src/lib/signal.c:262 +msgid "Checkpoint Thaw" +msgstr "" + +#: src/lib/signal.c:265 +msgid "Thread Cancellation" +msgstr "" + +#: src/lib/signal.c:268 +msgid "Resource Lost (e.g. record-lock lost)" +msgstr "" + +#: src/lib/bnet_server.c:109 +#, c-format +msgid "Cannot open stream socket. ERR=%s. Current %s All %s\n" +msgstr "" + +#: src/lib/bnet_server.c:122 src/lib/bnet_server.c:275 +#, c-format +msgid "Cannot set SO_REUSEADDR on socket: %s\n" +msgstr "" + +#: src/lib/bnet_server.c:131 +#, c-format +msgid "Cannot bind port %d: ERR=%s: Retrying ...\n" +msgstr "" + +#: src/lib/bnet_server.c:136 +#, c-format +msgid "Cannot bind port %d: ERR=%s.\n" +msgstr "" + +#: src/lib/bnet_server.c:147 +#, c-format +msgid "Could not init client queue: ERR=%s\n" +msgstr "" + +#: src/lib/bnet_server.c:166 src/lib/bnet_server.c:338 +#, c-format +msgid "Error in select: %s\n" +msgstr "" + +#: src/lib/bnet_server.c:187 src/lib/bnet_server.c:357 +#, c-format +msgid "Connection from %s:%d refused by hosts.access\n" +msgstr "" + +#: src/lib/bnet_server.c:213 +msgid "Could not create client BSOCK.\n" +msgstr "" + +#: src/lib/bnet_server.c:220 +#, c-format +msgid "Could not add job to client queue: ERR=%s\n" +msgstr "" + +#: src/lib/bnet_server.c:237 +#, c-format +msgid "Could not destroy client queue: ERR=%s\n" +msgstr "" + +#: src/lib/bnet_server.c:265 +#, c-format +msgid "Cannot open stream socket: %s\n" +msgstr "" + +#: src/lib/bnet_server.c:295 +#, c-format +msgid "Cannot bind port %d: ERR=%s: retrying ...\n" +msgstr "" + +#: src/lib/bnet_server.c:301 +msgid "Server socket" +msgstr "" + +#: src/lib/bnet_server.c:301 src/lib/bnet_server.c:398 +msgid "client" +msgstr "" + +#: src/lib/bnet_server.c:386 +#, c-format +msgid "Socket accept error for %s. ERR=%s\n" +msgstr "" + +#: src/lib/smartall.c:146 src/lib/smartall.c:255 src/lib/smartall.c:270 +msgid "Out of memory\n" +msgstr "" + +#: src/lib/smartall.c:151 +msgid "Too much memory used." +msgstr "" + +#: src/lib/smartall.c:180 +#, c-format +msgid "Attempt to free NULL called from %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:194 +#, c-format +msgid "double free from %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:202 +#, c-format +msgid "qp->qnext->qprev != qp called from %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:206 +#, c-format +msgid "qp->qprev->qnext != qp called from %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:215 +#, c-format +msgid "Buffer overrun called from %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:292 +#, c-format +msgid "sm_realloc size: %d\n" +msgstr "" + +#: src/lib/smartall.c:330 +#, c-format +msgid "sm_realloc %d at %x from %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:392 +#, c-format +msgid "" +"\n" +"Orphaned buffers exist. Dump terminated following\n" +" discovery of bad links in chain of orphaned buffers.\n" +" Buffer address with bad links: %p\n" +msgstr "" + +#: src/lib/smartall.c:404 +#, c-format +msgid "%s buffer: %s %6u bytes buf=%p allocated at %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:440 +#, c-format +msgid "Damaged buffer found. Called from %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:470 +#, c-format +msgid "" +"\n" +"Damaged buffers found at %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:473 +#, c-format +msgid " discovery of bad prev link.\n" +msgstr "" + +#: src/lib/smartall.c:476 +#, c-format +msgid " discovery of bad next link.\n" +msgstr "" + +#: src/lib/smartall.c:479 +#, c-format +msgid " discovery of data overrun.\n" +msgstr "" + +#: src/lib/smartall.c:482 +#, c-format +msgid " Buffer address: %p\n" +msgstr "" + +#: src/lib/smartall.c:489 +#, c-format +msgid "Damaged buffer: %6u bytes allocated at line %d of %s %s\n" +msgstr "" + +#: src/lib/bsys.c:208 src/lib/bsys.c:225 src/lib/bsys.c:249 src/lib/bsys.c:262 +#, c-format +msgid "Out of memory: ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:304 +msgid "Buffer overflow.\n" +msgstr "" + +#: src/lib/bsys.c:370 +msgid "Bad errno" +msgstr "" + +#: src/lib/bsys.c:387 +msgid "Possible mutex deadlock.\n" +msgstr "" + +#: src/lib/bsys.c:391 src/lib/bsys.c:424 +#, c-format +msgid "Mutex lock failure. ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:394 +msgid "Possible mutex deadlock resolved.\n" +msgstr "" + +#: src/lib/bsys.c:407 +#, c-format +msgid "Mutex unlock not locked. ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:412 src/lib/bsys.c:434 +#, c-format +msgid "Mutex unlock failure. ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:448 +#, c-format +msgid "Memset for %d bytes at %s:%d\n" +msgstr "" + +#: src/lib/bsys.c:478 +#, c-format +msgid "Cannot open pid file. %s ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:493 +#, c-format +msgid "" +"%s is already running. pid=%d\n" +"Check file %s\n" +msgstr "" + +#: src/lib/bsys.c:507 +#, c-format +msgid "Could not open pid file. %s ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:615 +#, c-format +msgid "Could not create state file. %s ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:634 +#, c-format +msgid "Write final hdr error: ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:670 +#, c-format +msgid "Could not find userid=%s: ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:676 +#, c-format +msgid "Could not find password entry. ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:689 +#, c-format +msgid "Could not find group=%s: ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:697 +#, c-format +msgid "Could not initgroups for group=%s, userid=%s: ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:700 +#, c-format +msgid "Could not initgroups for userid=%s: ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:707 +#, c-format +msgid "Could not set group=%s: ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:713 +#, c-format +msgid "Could not set specified userid: %s\n" +msgstr "" + +#: src/lib/crypto.c:435 +msgid "Unable to open certificate file" +msgstr "" + +#: src/lib/crypto.c:442 +msgid "Unable to read certificate from file" +msgstr "" + +#: src/lib/crypto.c:448 +msgid "Unable to extract public key from certificate" +msgstr "" + +#: src/lib/crypto.c:455 +msgid "" +"Provided certificate does not include the required subjectKeyIdentifier " +"extension." +msgstr "" + +#: src/lib/crypto.c:462 +#, c-format +msgid "Unsupported key type provided: %d\n" +msgstr "" + +#: src/lib/crypto.c:499 src/lib/crypto.c:547 +msgid "Unable to open private key file" +msgstr "" + +#: src/lib/crypto.c:529 src/lib/crypto.c:563 +msgid "Unable to read private key from file" +msgstr "" + +#: src/lib/crypto.c:622 +#, c-format +msgid "Unsupported digest type: %d\n" +msgstr "" + +#: src/lib/crypto.c:636 +msgid "OpenSSL digest initialization failed" +msgstr "" + +#: src/lib/crypto.c:650 +msgid "OpenSSL digest update failed" +msgstr "" + +#: src/lib/crypto.c:668 +msgid "OpenSSL digest finalize failed" +msgstr "" + +#: src/lib/crypto.c:766 +msgid "OpenSSL digest_new failed" +msgstr "" + +#: src/lib/crypto.c:772 +msgid "OpenSSL sign get digest failed" +msgstr "" + +#: src/lib/crypto.c:811 src/lib/crypto.c:815 +msgid "OpenSSL digest Verify final failed" +msgstr "" + +#: src/lib/crypto.c:820 +msgid "No signers found for crypto verify.\n" +msgstr "" + +#: src/lib/crypto.c:881 +msgid "Signature creation failed" +msgstr "" + +#: src/lib/crypto.c:959 +msgid "Signature decoding failed" +msgstr "" + +#: src/lib/crypto.c:1036 +msgid "Unsupported cipher type specified\n" +msgstr "" + +#: src/lib/crypto.c:1185 +msgid "CryptoData decoding failed" +msgstr "" + +#: src/lib/crypto.c:1229 +msgid "Failure decrypting the session key" +msgstr "" + +#: src/lib/crypto.c:1280 +#, c-format +msgid "Unsupported contentEncryptionAlgorithm: %d\n" +msgstr "" + +#: src/lib/crypto.c:1290 src/lib/crypto.c:1296 +msgid "OpenSSL cipher context initialization failed" +msgstr "" + +#: src/lib/crypto.c:1303 +msgid "Encryption session provided an invalid symmetric key" +msgstr "" + +#: src/lib/crypto.c:1309 +msgid "Encryption session provided an invalid IV" +msgstr "" + +#: src/lib/crypto.c:1315 +msgid "OpenSSL cipher context key/IV initialization failed" +msgstr "" + +#: src/lib/crypto.c:1385 +#, c-format +msgid "Unable to init OpenSSL threading: ERR=%s\n" +msgstr "" + +#: src/lib/crypto.c:1398 +msgid "Failed to seed OpenSSL PRNG\n" +msgstr "" + +#: src/lib/crypto.c:1424 +msgid "Failed to save OpenSSL PRNG\n" +msgstr "" + +#: src/lib/crypto.c:1485 +#, c-format +msgid "Unsupported digest type=%d specified\n" +msgstr "" + +#: src/lib/crypto.c:1505 +#, c-format +msgid "SHA1Update() returned an error: %d\n" +msgstr "" + +#: src/lib/crypto.c:1648 +msgid "No error" +msgstr "" + +#: src/lib/crypto.c:1650 +msgid "Signer not found" +msgstr "" + +#: src/lib/crypto.c:1652 +msgid "Recipient not found" +msgstr "" + +#: src/lib/crypto.c:1654 +msgid "Unsupported digest algorithm" +msgstr "" + +#: src/lib/crypto.c:1656 +msgid "Unsupported encryption algorithm" +msgstr "" + +#: src/lib/crypto.c:1658 +msgid "Signature is invalid" +msgstr "" + +#: src/lib/crypto.c:1660 +msgid "Decryption error" +msgstr "" + +#: src/lib/crypto.c:1663 +msgid "Internal error" +msgstr "" + +#: src/lib/crypto.c:1665 +msgid "Unknown error" +msgstr "" + +#: src/lib/openssl.c:140 src/lib/openssl.c:213 +#, c-format +msgid "Unable to destroy mutex: ERR=%s\n" +msgstr "" + +#: src/lib/edit.c:446 +#, c-format +msgid "Illegal character \"%c\" in name.\n" +msgstr "" + +#: src/lib/edit.c:453 +msgid "Name too long.\n" +msgstr "" + +#: src/lib/bget_msg.c:99 +msgid "Status OK\n" +msgstr "" + +#: src/lib/bget_msg.c:103 +#, c-format +msgid "bget_msg: unknown signal %d\n" +msgstr "" + +#: src/lib/lex.c:93 src/wx-console/console_thread.cpp:208 +#, c-format +msgid "Problem probably begins at line %d.\n" +msgstr "" + +#: src/lib/lex.c:98 src/wx-console/console_thread.cpp:213 +#, c-format +msgid "" +"Config error: %s\n" +" : line %d, col %d of file %s\n" +"%s\n" +"%s" +msgstr "" + +#: src/lib/lex.c:102 +#, c-format +msgid "Config error: %s\n" +msgstr "" + +#: src/lib/lex.c:131 +msgid "Close of NULL file\n" +msgstr "" + +#: src/lib/lex.c:226 +msgid "" +"get_char: called after EOF. You may have a open double quote without the " +"closing double quote.\n" +msgstr "" + +#: src/lib/lex.c:269 +#, c-format +msgid "Config token too long, file: %s, line %d, begins at line %d\n" +msgstr "" + +#: src/lib/lex.c:293 +msgid "none" +msgstr "" + +#: src/lib/lex.c:294 +msgid "comment" +msgstr "" + +#: src/lib/lex.c:295 +msgid "number" +msgstr "" + +#: src/lib/lex.c:296 +msgid "ip_addr" +msgstr "" + +#: src/lib/lex.c:297 +msgid "identifier" +msgstr "" + +#: src/lib/lex.c:298 +msgid "string" +msgstr "" + +#: src/lib/lex.c:299 +msgid "quoted_string" +msgstr "" + +#: src/lib/lex.c:300 +msgid "include" +msgstr "" + +#: src/lib/lex.c:301 +msgid "include_quoted_string" +msgstr "" + +#: src/lib/lex.c:302 +msgid "UTF-8 Byte Order Mark" +msgstr "" + +#: src/lib/lex.c:303 +msgid "UTF-16le Byte Order Mark" +msgstr "" + +#: src/lib/lex.c:341 src/lib/lex.c:347 +#, c-format +msgid "expected a positive integer number, got: %s" +msgstr "" + +#: src/lib/lex.c:457 +msgid "" +"This config file appears to be in an unsupported Unicode format (UTF-16be). " +"Please resave as UTF-8\n" +msgstr "" + +#: src/lib/lex.c:596 src/lib/lex.c:624 +#, c-format +msgid "Cannot open included config file %s: %s\n" +msgstr "" + +#: src/lib/lex.c:683 +#, c-format +msgid "expected an integer or a range, got %s: %s" +msgstr "" + +#: src/lib/lex.c:697 src/lib/lex.c:705 src/lib/lex.c:716 src/lib/lex.c:724 +#, c-format +msgid "expected an integer number, got %s: %s" +msgstr "" + +#: src/lib/lex.c:734 +#, c-format +msgid "expected a name, got %s: %s" +msgstr "" + +#: src/lib/lex.c:738 +#, c-format +msgid "name %s length %d too long, max is %d\n" +msgstr "" + +#: src/lib/lex.c:746 +#, c-format +msgid "expected a string, got %s: %s" +msgstr "" + +#: src/lib/var.c:2669 +msgid "everything ok" +msgstr "" + +#: src/lib/var.c:2670 +msgid "incomplete named character" +msgstr "" + +#: src/lib/var.c:2671 +msgid "incomplete hexadecimal value" +msgstr "" + +#: src/lib/var.c:2672 +msgid "invalid hexadecimal value" +msgstr "" + +#: src/lib/var.c:2673 +msgid "octal value too large" +msgstr "" + +#: src/lib/var.c:2674 +msgid "invalid octal value" +msgstr "" + +#: src/lib/var.c:2675 +msgid "incomplete octal value" +msgstr "" + +#: src/lib/var.c:2676 +msgid "incomplete grouped hexadecimal value" +msgstr "" + +#: src/lib/var.c:2677 +msgid "incorrect character class specification" +msgstr "" + +#: src/lib/var.c:2678 +msgid "invalid expansion configuration" +msgstr "" + +#: src/lib/var.c:2679 +msgid "out of memory" +msgstr "" + +#: src/lib/var.c:2680 +msgid "incomplete variable specification" +msgstr "" + +#: src/lib/var.c:2681 +msgid "undefined variable" +msgstr "" + +#: src/lib/var.c:2682 +msgid "input is neither text nor variable" +msgstr "" + +#: src/lib/var.c:2683 +msgid "unknown command character in variable" +msgstr "" + +#: src/lib/var.c:2684 +msgid "malformatted search and replace operation" +msgstr "" + +#: src/lib/var.c:2685 +msgid "unknown flag in search and replace operation" +msgstr "" + +#: src/lib/var.c:2686 +msgid "invalid regex in search and replace operation" +msgstr "" + +#: src/lib/var.c:2687 +msgid "missing parameter in command" +msgstr "" + +#: src/lib/var.c:2688 +msgid "empty search string in search and replace operation" +msgstr "" + +#: src/lib/var.c:2689 +msgid "start offset missing in cut operation" +msgstr "" + +#: src/lib/var.c:2690 +msgid "offsets in cut operation delimited by unknown character" +msgstr "" + +#: src/lib/var.c:2691 +msgid "range out of bounds in cut operation" +msgstr "" + +#: src/lib/var.c:2692 +msgid "offset out of bounds in cut operation" +msgstr "" + +#: src/lib/var.c:2693 +msgid "logic error in cut operation" +msgstr "" + +#: src/lib/var.c:2694 +msgid "malformatted transpose operation" +msgstr "" + +#: src/lib/var.c:2695 +msgid "source and target class mismatch in transpose operation" +msgstr "" + +#: src/lib/var.c:2696 +msgid "empty character class in transpose operation" +msgstr "" + +#: src/lib/var.c:2697 +msgid "incorrect character class in transpose operation" +msgstr "" + +#: src/lib/var.c:2698 +msgid "malformatted padding operation" +msgstr "" + +#: src/lib/var.c:2699 +msgid "width parameter missing in padding operation" +msgstr "" + +#: src/lib/var.c:2700 +msgid "fill string missing in padding operation" +msgstr "" + +#: src/lib/var.c:2701 +msgid "unknown quoted pair in search and replace operation" +msgstr "" + +#: src/lib/var.c:2702 +msgid "sub-matching reference out of range" +msgstr "" + +#: src/lib/var.c:2703 +msgid "invalid argument" +msgstr "" + +#: src/lib/var.c:2704 +msgid "incomplete quoted pair" +msgstr "" + +#: src/lib/var.c:2705 +msgid "lookup function does not support variable arrays" +msgstr "" + +#: src/lib/var.c:2706 +msgid "index of array variable contains an invalid character" +msgstr "" + +#: src/lib/var.c:2707 +msgid "index of array variable is incomplete" +msgstr "" + +#: src/lib/var.c:2708 +msgid "bracket expression in array variable's index not closed" +msgstr "" + +#: src/lib/var.c:2709 +msgid "division by zero error in index specification" +msgstr "" + +#: src/lib/var.c:2710 +msgid "unterminated loop construct" +msgstr "" + +#: src/lib/var.c:2711 +msgid "invalid character in loop limits" +msgstr "" + +#: src/lib/var.c:2712 +msgid "malformed operation argument list" +msgstr "" + +#: src/lib/var.c:2713 +msgid "undefined operation" +msgstr "" + +#: src/lib/var.c:2714 +msgid "formatting failure" +msgstr "" + +#: src/lib/var.c:2723 +msgid "unknown error" +msgstr "" + +#: src/lib/runscript.c:214 +#, c-format +msgid "%s: run command \"%s\"\n" +msgstr "" + +#: src/lib/runscript.c:220 +#, c-format +msgid "Runscript: %s could not execute. ERR=%s\n" +msgstr "" + +#: src/lib/runscript.c:229 +#, c-format +msgid "%s: %s\n" +msgstr "" + +#: src/lib/runscript.c:234 +#, c-format +msgid "Runscript: %s returned non-zero status=%d. ERR=%s\n" +msgstr "" + +#: src/lib/address_conf.c:63 +#, c-format +msgid "Only ipv4 and ipv6 are supported (%d)\n" +msgstr "" + +#: src/lib/address_conf.c:67 +#, c-format +msgid "Only ipv4 is supported (%d)\n" +msgstr "" + +#: src/lib/address_conf.c:176 +#, c-format +msgid "It was tried to assign a ipv6 address to a ipv4(%d)\n" +msgstr "" + +#: src/lib/address_conf.c:185 +#, c-format +msgid "It was tried to assign a ipv4 address to a ipv6(%d)\n" +msgstr "" + +#: src/lib/address_conf.c:264 +#, c-format +msgid "Can't add default address (%s)\n" +msgstr "" + +#: src/lib/address_conf.c:293 +msgid "the old style addresses cannot be mixed with new style" +msgstr "" + +#: src/lib/address_conf.c:314 +#, c-format +msgid "can't resolve service(%s)" +msgstr "" + +#: src/lib/address_conf.c:323 +#, c-format +msgid "can't resolve hostname(%s) %s" +msgstr "" + +#: src/lib/address_conf.c:413 src/lib/address_conf.c:444 +#, c-format +msgid "Expected a block begin { , got: %s" +msgstr "" + +#: src/lib/address_conf.c:418 +msgid "Empty addr block is not allowed" +msgstr "" + +#: src/lib/address_conf.c:422 +#, c-format +msgid "Expected a string, got: %s" +msgstr "" + +#: src/lib/address_conf.c:431 +#, c-format +msgid "Expected a string [ip|ipv4|ipv6], got: %s" +msgstr "" + +#: src/lib/address_conf.c:435 +#, c-format +msgid "Expected a string [ip|ipv4], got: %s" +msgstr "" + +#: src/lib/address_conf.c:440 src/lib/address_conf.c:470 +#, c-format +msgid "Expected a equal =, got: %s" +msgstr "" + +#: src/lib/address_conf.c:451 src/lib/address_conf.c:466 +#, c-format +msgid "Expected a identifier [addr|port], got: %s" +msgstr "" + +#: src/lib/address_conf.c:456 +msgid "Only one port per address block" +msgstr "" + +#: src/lib/address_conf.c:462 +msgid "Only one addr per address block" +msgstr "" + +#: src/lib/address_conf.c:478 +#, c-format +msgid "Expected a number or a string, got: %s" +msgstr "" + +#: src/lib/address_conf.c:484 src/lib/address_conf.c:517 +#, c-format +msgid "Expected an IP number or a hostname, got: %s" +msgstr "" + +#: src/lib/address_conf.c:490 +msgid "State machine missmatch" +msgstr "" + +#: src/lib/address_conf.c:496 src/lib/address_conf.c:508 +#, c-format +msgid "Expected a end of block }, got: %s" +msgstr "" + +#: src/lib/address_conf.c:502 +#, c-format +msgid "Can't add hostname(%s) and port(%s) to addrlist (%s)" +msgstr "" + +#: src/lib/address_conf.c:522 src/lib/address_conf.c:536 +#, c-format +msgid "can't add port (%s) to (%s)" +msgstr "" + +#: src/lib/address_conf.c:531 +#, c-format +msgid "Expected a port number or string, got: %s" +msgstr "" + +#: src/findlib/create_file.c:123 +#, c-format +msgid "File skipped. Not newer: %s\n" +msgstr "" + +#: src/findlib/create_file.c:130 +#, c-format +msgid "File skipped. Not older: %s\n" +msgstr "" + +#: src/findlib/create_file.c:136 +#, c-format +msgid "File skipped. Already exists: %s\n" +msgstr "" + +#: src/findlib/create_file.c:162 +#, c-format +msgid "File %s already exists and could not be replaced. ERR=%s.\n" +msgstr "" + +#: src/findlib/create_file.c:214 src/findlib/create_file.c:277 +#: src/findlib/create_file.c:370 +#, c-format +msgid "bpkt already open fid=%d\n" +msgstr "" + +#: src/findlib/create_file.c:222 +#, c-format +msgid "Could not create %s: ERR=%s\n" +msgstr "" + +#: src/findlib/create_file.c:236 +#, c-format +msgid "Cannot make fifo %s: ERR=%s\n" +msgstr "" + +#: src/findlib/create_file.c:254 +#, c-format +msgid "Cannot make node %s: ERR=%s\n" +msgstr "" + +#: src/findlib/create_file.c:299 +#, c-format +msgid "Could not symlink %s -> %s: ERR=%s\n" +msgstr "" + +#: src/findlib/create_file.c:324 src/findlib/create_file.c:335 +#, c-format +msgid "Could not restore file flags for file %s: ERR=%s\n" +msgstr "" + +#: src/findlib/create_file.c:328 src/findlib/create_file.c:343 +#, c-format +msgid "Could not hard link %s -> %s: ERR=%s\n" +msgstr "" + +#: src/findlib/create_file.c:339 +#, c-format +msgid "Could not reset file flags for file %s: ERR=%s\n" +msgstr "" + +#: src/findlib/create_file.c:402 +#, c-format +msgid "Original file %s not saved: type=%d\n" +msgstr "" + +#: src/findlib/create_file.c:405 +#, c-format +msgid "Unknown file type %d; not restored: %s\n" +msgstr "" + +#: src/findlib/create_file.c:449 +#, c-format +msgid "Zero length filename: %s\n" +msgstr "" + +#: src/findlib/attribs.c:419 +#, c-format +msgid "File size of restored file %s not correct. Original %s, restored %s.\n" +msgstr "" + +#: src/findlib/attribs.c:445 src/findlib/attribs.c:452 +#, c-format +msgid "Unable to set file owner %s: ERR=%s\n" +msgstr "" + +#: src/findlib/attribs.c:458 +#, c-format +msgid "Unable to set file modes %s: ERR=%s\n" +msgstr "" + +#: src/findlib/attribs.c:468 +#, c-format +msgid "Unable to set file times %s: ERR=%s\n" +msgstr "" + +#: src/findlib/attribs.c:482 +#, c-format +msgid "Unable to set file flags %s: ERR=%s\n" +msgstr "" + +#: src/findlib/attribs.c:725 +#, c-format +msgid "Error in %s file %s: ERR=%s\n" +msgstr "" + +#: src/findlib/attribs.c:742 +#, c-format +msgid "Error in %s: ERR=%s\n" +msgstr "" + +#: src/findlib/save-cwd.c:48 +#, c-format +msgid "Cannot open current directory: %s\n" +msgstr "" + +#: src/findlib/save-cwd.c:62 +#, c-format +msgid "Current directory: %s\n" +msgstr "" + +#: src/findlib/save-cwd.c:84 +#, c-format +msgid "Cannot get current directory: %s\n" +msgstr "" + +#: src/findlib/save-cwd.c:105 +#, c-format +msgid "Cannot return to %s from %s: %s\n" +msgstr "" + +#: src/findlib/save-cwd.c:109 +#, c-format +msgid "Cannot return to saved working directory from %s: %s\n" +msgstr "" + +#: src/findlib/save-cwd.c:115 +#, c-format +msgid "Cannot return to %s: %s\n" +msgstr "" + +#: src/findlib/save-cwd.c:119 +#, c-format +msgid "Cannot return to saved working directory: %s\n" +msgstr "" + +#: src/findlib/find_one.c:228 +#, c-format +msgid "Cannot stat file %s: ERR=%s\n" +msgstr "" + +#: src/findlib/find_one.c:234 +#, c-format +msgid "%s mtime changed during backup.\n" +msgstr "" + +#: src/findlib/find_one.c:240 +#, c-format +msgid "%s ctime changed during backup.\n" +msgstr "" + +#: src/findlib/find_one.c:246 src/findlib/find_one.c:253 +#, c-format +msgid "%s size changed during backup.\n" +msgstr "" + +#: src/findlib/find_one.c:310 +#, c-format +msgid "Top level directory \"%s\" has unlisted fstype \"%s\"\n" +msgstr "" + +#: src/findlib/find_one.c:325 +#, c-format +msgid "Top level directory \"%s\" has an unlisted drive type \"%s\"\n" +msgstr "" + +#: src/findlib/bfile.c:82 +msgid "Unix attributes" +msgstr "" + +#: src/findlib/bfile.c:84 +msgid "File data" +msgstr "" + +#: src/findlib/bfile.c:86 +msgid "MD5 digest" +msgstr "" + +#: src/findlib/bfile.c:88 +msgid "GZIP data" +msgstr "" + +#: src/findlib/bfile.c:90 +msgid "Extended attributes" +msgstr "" + +#: src/findlib/bfile.c:92 +msgid "Sparse data" +msgstr "" + +#: src/findlib/bfile.c:94 +msgid "GZIP sparse data" +msgstr "" + +#: src/findlib/bfile.c:96 +msgid "Program names" +msgstr "" + +#: src/findlib/bfile.c:98 +msgid "Program data" +msgstr "" + +#: src/findlib/bfile.c:100 +msgid "SHA1 digest" +msgstr "" + +#: src/findlib/bfile.c:102 +msgid "Win32 data" +msgstr "" + +#: src/findlib/bfile.c:104 +msgid "Win32 GZIP data" +msgstr "" + +#: src/findlib/bfile.c:106 +msgid "MacOS Fork data" +msgstr "" + +#: src/findlib/bfile.c:108 +msgid "HFS+ attribs" +msgstr "" + +#: src/findlib/bfile.c:110 +msgid "Standard Unix ACL attribs" +msgstr "" + +#: src/findlib/bfile.c:112 +msgid "Default Unix ACL attribs" +msgstr "" + +#: src/findlib/bfile.c:114 +msgid "SHA256 digest" +msgstr "" + +#: src/findlib/bfile.c:116 +msgid "SHA512 digest" +msgstr "" + +#: src/findlib/bfile.c:118 +msgid "Signed digest" +msgstr "" + +#: src/findlib/bfile.c:120 +msgid "Encrypted File data" +msgstr "" + +#: src/findlib/bfile.c:122 +msgid "Encrypted Win32 data" +msgstr "" + +#: src/findlib/bfile.c:124 +msgid "Encrypted session data" +msgstr "" + +#: src/findlib/bfile.c:126 +msgid "Encrypted GZIP data" +msgstr "" + +#: src/findlib/bfile.c:128 +msgid "Encrypted Win32 GZIP data" +msgstr "" + +#: src/findlib/bfile.c:130 +msgid "Encrypted MacOS fork data" +msgstr "" + +#: src/findlib/enable_priv.c:92 +msgid "AdjustTokenPrivileges set " +msgstr "" + +#: src/findlib/makepath.c:116 +#, c-format +msgid "Cannot create directory %s: ERR=%s\n" +msgstr "" + +#: src/findlib/makepath.c:120 src/findlib/makepath.c:398 +#, c-format +msgid "%s exists but is not a directory\n" +msgstr "" + +#: src/findlib/makepath.c:229 +#, c-format +msgid "%c: is not a valid drive\n" +msgstr "" + +#: src/findlib/makepath.c:296 src/findlib/makepath.c:357 +#: src/findlib/makepath.c:417 +#, c-format +msgid "Cannot change owner and/or group of %s: ERR=%s\n" +msgstr "" + +#: src/findlib/makepath.c:317 +#, c-format +msgid "Cannot chdir to directory, %s: ERR=%s\n" +msgstr "" + +#: src/findlib/makepath.c:372 src/findlib/makepath.c:388 +#: src/findlib/makepath.c:422 +#, c-format +msgid "Cannot change permissions of %s: ERR=%s\n" +msgstr "" + +#: src/baconfig.h:72 +#, c-format +msgid "Failed ASSERT: %s\n" +msgstr "" + +#: src/baconfig.h:79 +msgid "*None*" +msgstr "" + +#: src/qt-console/bcomm/dircomm.cpp:203 src/qt-console/console/console.cpp:226 +msgid "Initializing ..." +msgstr "" + +#: src/qt-console/bcomm/dircomm.cpp:209 src/qt-console/console/console.cpp:254 +msgid "Connected" +msgstr "" + +#: src/qt-console/bcomm/dircomm.cpp:288 src/qt-console/bcomm/dircomm.cpp:410 +#: src/qt-console/console/console.cpp:528 +#: src/qt-console/console/console.cpp:650 +msgid "Processing command ..." +msgstr "" + +#: src/qt-console/bcomm/dircomm.cpp:404 src/qt-console/console/console.cpp:644 +msgid "Command completed ..." +msgstr "" + +#: src/qt-console/bcomm/dircomm.cpp:416 src/qt-console/console/console.cpp:656 +msgid "At main prompt waiting for input ..." +msgstr "" + +#: src/qt-console/bcomm/dircomm.cpp:423 src/qt-console/console/console.cpp:663 +msgid "At prompt waiting for input ..." +msgstr "" + +#: src/qt-console/bcomm/dircomm.cpp:428 src/qt-console/console/console.cpp:668 +msgid "Command failed." +msgstr "" + +#: src/qt-console/bcomm/dircomm.cpp:483 src/qt-console/console/console.cpp:730 +msgid "Director disconnected." +msgstr "" + +#: src/qt-console/main.cpp:155 +#, c-format +msgid "" +"\n" +"Version: %s (%s) %s %s %s\n" +"\n" +"Usage: bat [-s] [-c config_file] [-d debug_level] [config_file]\n" +" -c set configuration file to file\n" +" -dnn set debug level to nn\n" +" -s no signals\n" +" -t test - read configuration and exit\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:246 +msgid "&About...\tF1" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:246 +msgid "Show about dialog" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:248 src/wx-console/wxbmainframe.cpp:620 +msgid "Connect to the director" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:249 +msgid "Disconnect" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:249 +msgid "Disconnect of the director" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:251 +msgid "Change of configuration file" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:251 +msgid "Change your default configuration file" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:252 +msgid "Edit your configuration file" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:254 +msgid "E&xit\tAlt-X" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:254 +msgid "Quit this program" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:258 +msgid "&File" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:259 +msgid "&Help" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:267 src/wx-console/main.cpp:124 +#, c-format +msgid "Welcome to bacula bwx-console %s (%s)!\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:283 +msgid "" +"Warning : Unicode is disabled because you are using wxWidgets for GTK+ 1.2.\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:287 +msgid "" +"Warning : There is a problem with wxWidgets for GTK+ 2.0 without Unicode " +"support when handling non-ASCII filenames: Every non-ASCII character in such " +"filenames will be replaced by an interrogation mark.\n" +"If this behaviour disturbs you, please build bwx-console against a Unicode " +"version of wxWidgets for GTK+ 2.0.\n" +"---\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:291 +#: src/wx-console/wxbhistorytextctrl.cpp:82 +#: src/wx-console/wxbhistorytextctrl.cpp:153 +msgid "Type your command below:" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:298 +msgid "Send" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:375 src/wx-console/wxbmainframe.cpp:387 +msgid "Error while parsing command line arguments, using defaults.\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:376 src/wx-console/wxbmainframe.cpp:388 +msgid "Usage: bwx-console [-c configfile] [-w tmp]\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:417 +#, c-format +msgid "" +"It seems that it is the first time you run bwx-console.\n" +"This file (%s) has been choosen as default configuration file.\n" +"Do you want to edit it? (if you click No you will have to select another " +"file)" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:419 +msgid "First run" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:436 +#, c-format +msgid "" +"Unable to read %s\n" +"Error: %s\n" +"Do you want to choose another one? (Press no to edit this file)" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:438 +msgid "Unable to read configuration file" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:450 +msgid "Please choose a configuration file to use" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:463 +msgid "This configuration file has been successfully read, use it as default?" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:464 +msgid "Configuration file read successfully" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:474 +#, c-format +msgid "Using this configuration file: %s\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:479 +msgid "Connecting to the director..." +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:494 +msgid "Failed to unregister a data parser !" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:502 +msgid "Quitting.\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:517 +msgid "" +"Welcome to Bacula bwx-console.\n" +"Written by Nicolas Boichat \n" +"Copyright (C), 2005-2007 Free Software Foundation Europe, e.V.\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:521 +msgid "About Bacula bwx-console" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:527 +msgid "Please choose your default configuration file" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:531 +msgid "Use this configuration file as default?" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:532 +msgid "Configuration file" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:603 +msgid "Console thread terminated." +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:611 +msgid "Connection to the director lost. Quit program?" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:612 +msgid "Connection lost" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:628 +msgid "Connected to the director." +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:651 +msgid "Reconnect" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:652 +msgid "Reconnect to the director" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:666 +msgid "Disconnected of the director." +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:685 src/wx-console/wxbrestorepanel.cpp:710 +msgid "Unexpected question has been received.\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:708 src/wx-console/wxbmainframe.cpp:725 +msgid "bwx-console: unexpected director's question." +msgstr "" + +#: src/wx-console/main.cpp:119 +msgid "Bacula bwx-console" +msgstr "" + +#: src/wx-console/wxbconfigpanel.cpp:205 +msgid "Apply" +msgstr "" + +#: src/wx-console/wxbhistorytextctrl.cpp:117 +msgid "Unknown command." +msgstr "" + +#: src/wx-console/wxbhistorytextctrl.cpp:126 +msgid "Possible completions: " +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:234 +#: src/wx-console/wxbrestorepanel.cpp:1920 +#: src/wx-console/wxbrestorepanel.cpp:1949 +msgid "Enter restore mode" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:237 +msgid "Cancel restore" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:263 +#: src/wx-console/wxbrestorepanel.cpp:317 +msgid "Add" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:265 +#: src/wx-console/wxbrestorepanel.cpp:319 +msgid "Remove" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:267 +#: src/wx-console/wxbrestorepanel.cpp:321 +msgid "Refresh" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:286 +msgid "M" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:290 +msgid "Filename" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:302 +msgid "Perm." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:335 +#: src/wx-console/wxbrestorepanel.cpp:348 +#: src/wx-console/wxbrestorepanel.cpp:503 +#: src/wx-console/wxbrestorepanel.cpp:513 +#: src/wx-console/wxbrestorepanel.cpp:516 +#: src/wx-console/wxbrestorepanel.cpp:1784 +#: src/wx-console/wxbrestorepanel.cpp:1870 +msgid "Job Name" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:337 +#: src/wx-console/wxbrestorepanel.cpp:353 +#: src/wx-console/wxbrestorepanel.cpp:455 +#: src/wx-console/wxbrestorepanel.cpp:456 +#: src/wx-console/wxbrestorepanel.cpp:466 +#: src/wx-console/wxbrestorepanel.cpp:467 +#: src/wx-console/wxbrestorepanel.cpp:1139 +#: src/wx-console/wxbrestorepanel.cpp:1212 +#: src/wx-console/wxbrestorepanel.cpp:1822 +#: src/wx-console/wxbrestorepanel.cpp:1824 +#: src/wx-console/wxbrestorepanel.cpp:1885 +msgid "Fileset" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:340 +#: src/wx-console/wxbrestorepanel.cpp:1206 +#: src/wx-console/wxbrestorepanel.cpp:1222 +#: src/wx-console/wxbrestorepanel.cpp:1224 +#: src/wx-console/wxbrestorepanel.cpp:1232 +#: src/wx-console/wxbrestorepanel.cpp:1234 +#: src/wx-console/wxbrestorepanel.cpp:1253 +#: src/wx-console/wxbrestorepanel.cpp:1260 +#: src/wx-console/wxbrestorepanel.cpp:1812 +#: src/wx-console/wxbrestorepanel.cpp:1823 +#: src/wx-console/wxbrestorepanel.cpp:1944 +msgid "Before" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:342 +msgid "Please configure parameters concerning files to restore :" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:351 +#: src/wx-console/wxbrestorepanel.cpp:1878 +msgid "always" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:351 +msgid "if newer" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:351 +msgid "if older" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:351 +#: src/wx-console/wxbrestorepanel.cpp:1881 +msgid "never" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:359 +msgid "Please configure parameters concerning files restoration :" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:427 +msgid "Getting parameters list." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:435 +msgid "Error : no clients returned by the director." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:459 +msgid "Error : no filesets returned by the director." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:483 +msgid "Error : no storage returned by the director." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:506 +#: src/wx-console/wxbrestorepanel.cpp:530 +msgid "Error : no jobs returned by the director." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:516 +msgid "RestoreFiles" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:551 +msgid "Please configure your restore parameters." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:562 +msgid "Building restore tree..." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:605 +msgid "Error while starting restore: " +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:695 +msgid "" +"Right click on a file or on a directory, or double-click on its mark to add " +"it to the restore list." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:732 +#: src/wx-console/wxbrestorepanel.cpp:754 +msgid "bwx-console: unexpected restore question." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:765 +msgid " files selected to be restored." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:770 +msgid " file selected to be restored." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:777 +#, c-format +msgid "Please configure your restore (%ld files selected to be restored)..." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:787 +msgid "Restore failed : no file selected.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:788 +msgid "Restore failed : no file selected." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:798 +msgid "Restoring, please wait..." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:811 +msgid "Job queued. JobId=" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:813 +msgid "Restore queued, jobid=" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:817 +msgid "Job failed." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:818 +msgid "Restore failed, please look at messages.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:819 +msgid "Restore failed, please look at messages in console." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:825 +#: src/wx-console/wxbrestorepanel.cpp:826 +msgid "Failed to retrieve jobid.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:852 +msgid "" +"Restore is scheduled in more than two minutes, bwx-console will not wait for " +"its completion.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:853 +msgid "" +"Restore is scheduled in more than two minutes, bwx-console will not wait for " +"its completion." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:879 +msgid "Restore job created, but not yet running." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:884 +#, c-format +msgid "Restore job running, please wait (%ld of %ld files restored)..." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:888 +msgid "Restore job terminated successfully." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:889 +msgid "Restore job terminated successfully.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:894 +msgid "Restore job terminated in error, see messages in console." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:895 +msgid "Restore job terminated in error, see messages.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:900 +msgid "Restore job reported a non-fatal error." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:904 +msgid "Restore job reported a fatal error." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:909 +msgid "Restore job cancelled by user." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:910 +msgid "Restore job cancelled by user.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:915 +msgid "Restore job is waiting on File daemon." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:919 +msgid "Restore job is waiting for new media." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:923 +msgid "Restore job is waiting for storage resource." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:927 +msgid "Restore job is waiting for job resource." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:931 +msgid "Restore job is waiting for Client resource." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:935 +msgid "Restore job is waiting for maximum jobs." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:939 +msgid "Restore job is waiting for start time." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:943 +msgid "Restore job is waiting for higher priority jobs to finish." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:992 +msgid "" +"The restore job has not been started within one minute, bwx-console will not " +"wait for its completion anymore.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:993 +msgid "" +"The restore job has not been started within one minute, bwx-console will not " +"wait for its completion anymore." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1003 +msgid "Restore done successfully.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1004 +msgid "Restore done successfully." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1075 +msgid "Applying restore configuration changes..." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1126 +msgid "Failed to find the selected client." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1141 +msgid "Failed to find the selected fileset." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1156 +msgid "Failed to find the selected storage." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1173 +#: src/wx-console/wxbrestorepanel.cpp:1859 +msgid "Run Restore job" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1189 +msgid "Restore configuration changes were applied." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1198 +msgid "Restore cancelled.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1199 +msgid "Restore cancelled." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1221 +msgid "No results to list." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1223 +msgid "No backup found for this client." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1230 +msgid "ERROR" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1231 +msgid "Query failed" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1233 +msgid "Cannot get previous backups list, see console." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1869 +msgid "JobName:" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1873 +msgid "Where:" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1876 +msgid "Replace:" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1879 +msgid "ifnewer" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1880 +msgid "ifolder" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1884 +msgid "FileSet:" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:2001 +msgid "Restoring..." +msgstr "" + +#: src/wx-console/console_thread.cpp:121 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Director \"%s\" in config file.\n" +"At least one CA certificate store is required.\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:128 +msgid "" +"No Director resource defined in config file.\n" +"Without that I don't how to speak to the Director :-(\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:147 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Console \"%s\" in config file.\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:169 +msgid "Error while initializing windows sockets...\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:185 +msgid "Error while cleaning up windows sockets...\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:224 +msgid "Error while initializing library." +msgstr "" + +#: src/wx-console/console_thread.cpp:248 +msgid "Cryptographic library initialization failed.\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:252 +msgid "Please correct configuration file.\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:294 +msgid "Error : Library not initialized\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:305 +msgid "Error : No configuration file loaded\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:315 +msgid "Connecting...\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:331 +msgid "Error : No director defined in config file.\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:343 +msgid "Multiple directors found in your config file.\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:352 +#, c-format +msgid "Please choose a director (1-%d): " +msgstr "" + +#: src/wx-console/console_thread.cpp:424 +msgid "Failed to connect to the director\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:434 +msgid "Connected\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:491 +msgid "<< Unexpected signal received : " +msgstr "" + +#: src/wx-console/console_thread.cpp:511 +msgid "Connection terminated\n" +msgstr "" + +#: src/wx-console/wxbconfigfileeditor.cpp:65 +msgid "Config file editor" +msgstr "" + +#: src/wx-console/wxbconfigfileeditor.cpp:75 +msgid "# Bacula bwx-console Configuration File\n" +msgstr "" + +#: src/wx-console/wxbconfigfileeditor.cpp:111 +msgid "Save and close" +msgstr "" + +#: src/wx-console/wxbconfigfileeditor.cpp:112 +msgid "Close without saving" +msgstr "" + +#: src/wx-console/wxbconfigfileeditor.cpp:139 +#, c-format +msgid "Unable to write to %s\n" +msgstr "" + +#: src/wx-console/wxbconfigfileeditor.cpp:140 +msgid "Error while saving" +msgstr "" + +#: src/win32/libwin32/service.cpp:109 +msgid "RegisterServiceCtlHandler failed" +msgstr "" + +#: src/win32/libwin32/service.cpp:110 +msgid "Failure contacting the Service Handler" +msgstr "" + +#: src/win32/libwin32/service.cpp:121 +msgid "Service start report failed" +msgstr "" + +#: src/win32/libwin32/service.cpp:174 +msgid "StartServiceCtrlDispatcher failed." +msgstr "" + +#: src/win32/libwin32/service.cpp:181 +msgid "KERNEL32.DLL not found: Bacula service not started" +msgstr "" + +#: src/win32/libwin32/service.cpp:191 +msgid "Registry service not found: Bacula service not started" +msgstr "" + +#: src/win32/libwin32/service.cpp:193 +msgid "Registry service entry point not found" +msgstr "" + +#: src/win32/libwin32/service.cpp:214 +msgid "Report Service failure" +msgstr "" + +#: src/win32/libwin32/service.cpp:245 +msgid "Unable to install the service" +msgstr "" + +#: src/win32/libwin32/service.cpp:253 +msgid "Service command length too long" +msgstr "" + +#: src/win32/libwin32/service.cpp:254 +msgid "Service command length too long. Service not registered." +msgstr "" + +#: src/win32/libwin32/service.cpp:267 +msgid "" +"The Service Control Manager could not be contacted - the service was not " +"installed" +msgstr "" + +#: src/win32/libwin32/service.cpp:290 src/win32/libwin32/service.cpp:319 +#: src/win32/libwin32/service.cpp:366 src/win32/libwin32/service.cpp:373 +#: src/win32/libwin32/service.cpp:377 +msgid "The Bacula service: " +msgstr "" + +#: src/win32/libwin32/service.cpp:297 +msgid "" +"Provides file backup and restore services. Bacula -- the network backup " +"solution." +msgstr "" + +#: src/win32/libwin32/service.cpp:308 +msgid "Cannot write System Registry for " +msgstr "" + +#: src/win32/libwin32/service.cpp:309 +msgid "" +"The System Registry could not be updated - the Bacula service was not " +"installed" +msgstr "" + +#: src/win32/libwin32/service.cpp:318 +msgid "Cannot add Bacula key to System Registry" +msgstr "" + +#: src/win32/libwin32/service.cpp:329 +msgid "The " +msgstr "" + +#: src/win32/libwin32/service.cpp:384 +msgid "A existing Bacula service: " +msgstr "" + +#: src/win32/libwin32/service.cpp:392 +msgid "" +"The service Manager could not be contacted - the Bacula service was not " +"removed" +msgstr "" + +#: src/win32/libwin32/service.cpp:404 +msgid "" +"Could not find registry entry.\n" +"Service probably not registerd - the Bacula service was not removed" +msgstr "" + +#: src/win32/libwin32/service.cpp:410 +msgid "Could not delete Registry key for " +msgstr "" + +#: src/win32/libwin32/service.cpp:420 +msgid "Bacula could not be contacted, probably not running" +msgstr "" + +#: src/win32/libwin32/service.cpp:427 +msgid "The Bacula service has been removed" +msgstr "" + +#: src/win32/libwin32/service.cpp:468 +msgid "SetServiceStatus failed" +msgstr "" + +#: src/win32/libwin32/service.cpp:494 +#, c-format +msgid "" +"\n" +"\n" +"%s error: %ld at %s:%d" +msgstr "" + +#: src/win32/libwin32/service.cpp:570 +#, c-format +msgid "Locked by: %s, duration: %ld seconds\n" +msgstr "" + +#: src/win32/libwin32/service.cpp:574 +#, c-format +msgid "No longer locked\n" +msgstr "" + +#: src/win32/libwin32/service.cpp:578 +msgid "Could not lock database" +msgstr "" + +#: src/win32/libwin32/main.cpp:237 +msgid "Bad Command Line Option" +msgstr "" diff --git a/Branch-2.2/bacula/po/boldquot.sed b/Branch-2.2/bacula/po/boldquot.sed new file mode 100644 index 0000000000..4b937aa517 --- /dev/null +++ b/Branch-2.2/bacula/po/boldquot.sed @@ -0,0 +1,10 @@ +s/"\([^"]*\)"/“\1”/g +s/`\([^`']*\)'/‘\1’/g +s/ '\([^`']*\)' / ‘\1’ /g +s/ '\([^`']*\)'$/ ‘\1’/g +s/^'\([^`']*\)' /‘\1’ /g +s/“”/""/g +s/“/“/g +s/”/”/g +s/‘/‘/g +s/’/’/g diff --git a/Branch-2.2/bacula/po/de.po b/Branch-2.2/bacula/po/de.po new file mode 100644 index 0000000000..90d12736c7 --- /dev/null +++ b/Branch-2.2/bacula/po/de.po @@ -0,0 +1,16458 @@ +# translation of de.po to +# German translations for Bacula package +# German messages for Bacula. +# Copyright (C) 2005-2006 Free Software Foundation Europe e.V. +# This file is distributed under the same license as the Bacula package. +# +# , 2005. +# Philipp Storz , 2007. +msgid "" +msgstr "" +"Project-Id-Version: de\n" +"Report-Msgid-Bugs-To: bacula-devel@lists.sourceforge.net\n" +"POT-Creation-Date: 2008-01-26 09:48+0100\n" +"PO-Revision-Date: 2007-06-25 20:38+0200\n" +"Last-Translator: Philipp Storz \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: KBabel 1.11.4\n" + +#: patches/testing/bregsed.c:131 src/tools/bregtest.c:131 +#: src/tools/bwild.c:122 src/tools/bregex.c:147 +#, c-format +msgid "Could not open data file: %s\n" +msgstr "" + +#: src/dird/next_vol.c:146 +#, c-format +msgid "Purging oldest volume \"%s\"\n" +msgstr "" + +#: src/dird/next_vol.c:152 +#, c-format +msgid "Pruning oldest volume \"%s\"\n" +msgstr "" + +#: src/dird/next_vol.c:171 +msgid "We seem to be looping trying to find the next volume. I give up.\n" +msgstr "" + +#: src/dird/next_vol.c:197 +#, c-format +msgid "Max Volume bytes exceeded. Marking Volume \"%s\" as Full.\n" +msgstr "\"Max Volume bytes\"erreicht. Markiere Volume \"%s\" als Voll.\n" + +#: src/dird/next_vol.c:204 +#, c-format +msgid "Volume used once. Marking Volume \"%s\" as Used.\n" +msgstr "Volume erstmalig benutzt. Markiere Volume \"%s\" als Used.\n" + +#: src/dird/next_vol.c:211 +#, c-format +msgid "Max Volume jobs exceeded. Marking Volume \"%s\" as Used.\n" +msgstr "" + +#: src/dird/next_vol.c:220 +#, c-format +msgid "Max Volume files exceeded. Marking Volume \"%s\" as Used.\n" +msgstr "" + +#: src/dird/next_vol.c:230 +#, c-format +msgid "Max configured use duration exceeded. Marking Volume \"%s\" as Used.\n" +msgstr "" + +#: src/dird/next_vol.c:240 +#, c-format +msgid "Catalog error updating volume \"%s\". ERR=%s" +msgstr "Catalog Fehler beim Aktualisieren von volume \"%s\". ERR=%s" + +#: src/dird/next_vol.c:261 +msgid "volume has expired" +msgstr "volume ist abgelaufen" + +#: src/dird/next_vol.c:279 src/dird/next_vol.c:315 +#, c-format +msgid "Recycled current volume \"%s\"\n" +msgstr "Recycled current volume \"%s\"\n" + +#: src/dird/next_vol.c:284 +msgid "and recycling of current volume failed" +msgstr "und das Wiederverwenden des aktuellen volumes ist fehlgeschlagen " + +#: src/dird/next_vol.c:290 +msgid "but should be Append, Purged or Recycle" +msgstr "aber sollte Append, Purged oder Recycle sein" + +#: src/dird/next_vol.c:318 +msgid "" +"but should be Append, Purged or Recycle (recycling of the current volume " +"failed)" +msgstr "" +"aber sollte Append, Purged oder Recycle (das Recycling des des aktuellen " +"Volumens ist fehlgeschlagen)" + +#: src/dird/next_vol.c:322 +msgid "" +"but should be Append, Purged or Recycle (cannot automatically recycle " +"current volume, as it still contains unpruned data or the Volume Retention " +"time has not expired.)" +msgstr "" + +#: src/dird/next_vol.c:380 +#, c-format +msgid "Unable to get Pool record: ERR=%s" +msgstr "" + +#: src/dird/next_vol.c:387 +#, c-format +msgid "Unable add Scratch Volume, Pool \"%s\" full MaxVols=%d\n" +msgstr "" + +#: src/dird/next_vol.c:406 +#, c-format +msgid "Failed to move Scratch Volume. ERR=%s\n" +msgstr "" + +#: src/dird/next_vol.c:411 +#, c-format +msgid "Using Volume \"%s\" from 'Scratch' pool.\n" +msgstr "" + +#: src/dird/fd_cmds.c:94 +msgid "Client: " +msgstr "" + +#: src/dird/fd_cmds.c:127 +#, c-format +msgid "File daemon \"%s\" rejected Job command: %s\n" +msgstr "File daemon \"%s\" hat Job Kommando abgewiesen: %s\n" + +#: src/dird/fd_cmds.c:140 +#, c-format +msgid "Error updating Client record. ERR=%s\n" +msgstr "Fehler beim Aktualisieren des Client Eintrags. ERR=%s\n" + +#: src/dird/fd_cmds.c:145 +#, c-format +msgid "FD gave bad response to JobId command: %s\n" +msgstr "FD hat fehlerhafte Antwort auf JobId Kommando zurückgegeben: %s\n" + +#: src/dird/fd_cmds.c:167 src/dird/fd_cmds.c:203 +msgid ", since=" +msgstr ", seit=" + +#: src/dird/fd_cmds.c:187 +msgid "No prior or suitable Full backup found in catalog. Doing FULL backup.\n" +msgstr "" +"Kein vorheriges oder passendes Full backup in catalog gefunden. Führe FULL " +"backup durch.\n" + +#: src/dird/fd_cmds.c:188 src/dird/fd_cmds.c:196 +#, c-format +msgid " (upgraded from %s)" +msgstr " (erweitert von %s)" + +#: src/dird/fd_cmds.c:194 +#, c-format +msgid "Prior failed job found in catalog. Upgrading to %s.\n" +msgstr "" +"Vorheriger fehlgeschlagener job in catalog gefunden. Erweitere auf %s.\n" + +#: src/dird/fd_cmds.c:255 +#, c-format +msgid "Unimplemented backup level %d %c\n" +msgstr "Nicht implementierter backup level %d %c\n" + +#: src/dird/fd_cmds.c:358 src/filed/job.c:640 +#, c-format +msgid "Cannot run program: %s. ERR=%s\n" +msgstr "Kann Programm: %s nicht starten. ERR=%s\n" + +#: src/dird/fd_cmds.c:369 src/dird/fd_cmds.c:394 src/dird/fd_cmds.c:408 +msgid ">filed: write error on socket\n" +msgstr ">filed: Schreibfehler auf socket\n" + +#: src/dird/fd_cmds.c:375 +#, c-format +msgid "Error running program: %s. ERR=%s\n" +msgstr "Fehler beim Start des Programms: %s. ERR=%s\n" + +#: src/dird/fd_cmds.c:384 +#, c-format +msgid "Cannot open included file: %s. ERR=%s\n" +msgstr "Kann inkludierte Datei nicht öffnen: %s. ERR=%s\n" + +#: src/dird/fd_cmds.c:479 src/filed/job.c:1831 +#, c-format +msgid "Could not open bootstrap file %s: ERR=%s\n" +msgstr "Kann bootstrap Datei nicht öffnen: %s: ERR=%s\n" + +#: src/dird/fd_cmds.c:585 +#, fuzzy, c-format +msgid "Client \"%s\" RunScript failed.\n" +msgstr "Pool Ressource \"%s\" nicht gefunden.\n" + +#: src/dird/fd_cmds.c:621 +#, c-format +msgid "" +"\" command before continuing.\n" +msgstr "" + +#: src/dird/ua_select.c:230 +msgid "The defined Catalog resources are:\n" +msgstr "" + +#: src/dird/ua_select.c:238 +msgid "Catalog" +msgstr "" + +#: src/dird/ua_select.c:238 +msgid "Select Catalog resource" +msgstr "" + +#: src/dird/ua_select.c:255 +msgid "The defined Job resources are:\n" +msgstr "" + +#: src/dird/ua_select.c:263 src/dird/ua_select.c:286 src/dird/ua_cmds.c:476 +#: src/dird/ua_prune.c:365 src/dird/dird_conf.c:600 src/dird/ua_run.c:265 +msgid "Job" +msgstr "Job" + +#: src/dird/ua_select.c:263 +msgid "Select Job resource" +msgstr "" + +#: src/dird/ua_select.c:278 +msgid "The defined Restore Job resources are:\n" +msgstr "" + +#: src/dird/ua_select.c:286 +msgid "Select Restore Job" +msgstr "" + +#: src/dird/ua_select.c:303 +msgid "The defined Client resources are:\n" +msgstr "" + +#: src/dird/ua_select.c:311 src/dird/ua_select.c:420 src/dird/ua_cmds.c:997 +#: src/dird/ua_dotcmds.c:285 src/dird/ua_run.c:270 +#: src/wx-console/wxbrestorepanel.cpp:336 +#: src/wx-console/wxbrestorepanel.cpp:354 +#: src/wx-console/wxbrestorepanel.cpp:431 +#: src/wx-console/wxbrestorepanel.cpp:432 +#: src/wx-console/wxbrestorepanel.cpp:442 +#: src/wx-console/wxbrestorepanel.cpp:443 +#: src/wx-console/wxbrestorepanel.cpp:690 +#: src/wx-console/wxbrestorepanel.cpp:1124 +#: src/wx-console/wxbrestorepanel.cpp:1211 +#: src/wx-console/wxbrestorepanel.cpp:1811 +#: src/wx-console/wxbrestorepanel.cpp:1813 +#: src/wx-console/wxbrestorepanel.cpp:1887 +#: src/wx-console/wxbrestorepanel.cpp:1943 +msgid "Client" +msgstr "" + +#: src/dird/ua_select.c:311 +msgid "Select Client (File daemon) resource" +msgstr "" + +#: src/dird/ua_select.c:338 +#, c-format +msgid "Error: Client resource %s does not exist.\n" +msgstr "" + +#: src/dird/ua_select.c:363 +#, c-format +msgid "Could not find Client %s: ERR=%s" +msgstr "" + +#: src/dird/ua_select.c:373 src/dird/ua_select.c:427 +#, c-format +msgid "Could not find Client \"%s\": ERR=%s" +msgstr "" + +#: src/dird/ua_select.c:402 +#, c-format +msgid "Error obtaining client ids. ERR=%s\n" +msgstr "" + +#: src/dird/ua_select.c:406 +msgid "No clients defined. You must run a job before using this command.\n" +msgstr "" + +#: src/dird/ua_select.c:410 +msgid "Defined Clients:\n" +msgstr "" + +#: src/dird/ua_select.c:420 +msgid "Select the Client" +msgstr "" + +#: src/dird/ua_select.c:453 src/dird/ua_select.c:477 src/dird/ua_select.c:513 +#, c-format +msgid "Could not find Pool \"%s\": ERR=%s" +msgstr "" + +#: src/dird/ua_select.c:492 +msgid "No pools defined. Use the \"create\" command to create one.\n" +msgstr "" + +#: src/dird/ua_select.c:496 +msgid "Defined Pools:\n" +msgstr "" + +#: src/dird/ua_select.c:506 +msgid "Select the Pool" +msgstr "" + +#: src/dird/ua_select.c:536 +#, c-format +msgid "No access to Pool \"%s\"\n" +msgstr "" + +#: src/dird/ua_select.c:562 +msgid "Enter MediaId or Volume name: " +msgstr "" + +#: src/dird/ua_select.c:588 +msgid "The defined Pool resources are:\n" +msgstr "" + +#: src/dird/ua_select.c:596 +msgid "Select Pool resource" +msgstr "" + +#: src/dird/ua_select.c:620 src/dird/ua_restore.c:523 +#, c-format +msgid "Error: Pool resource \"%s\" does not exist.\n" +msgstr "" + +#: src/dird/ua_select.c:631 +msgid "Enter the JobId to select: " +msgstr "" + +#: src/dird/ua_select.c:669 +#, c-format +msgid "Could not find Job \"%s\": ERR=%s" +msgstr "" + +#: src/dird/ua_select.c:749 +#, c-format +msgid "Automatically selected %s: %s\n" +msgstr "" + +#: src/dird/ua_select.c:754 +#, c-format +msgid "Cannot select %s in batch mode.\n" +msgstr "" + +#: src/dird/ua_select.c:772 +#, c-format +msgid "Selection list for \"%s\" is empty!\n" +msgstr "" + +#: src/dird/ua_select.c:778 +#, c-format +msgid "Automatically selected: %s\n" +msgstr "" + +#: src/dird/ua_select.c:790 +msgid "Selection aborted, nothing done.\n" +msgstr "" + +#: src/dird/ua_select.c:795 +#, c-format +msgid "Please enter a number between 1 and %d\n" +msgstr "" + +#: src/dird/ua_select.c:844 +msgid "Storage name given twice.\n" +msgstr "" + +#: src/dird/ua_select.c:861 +#, c-format +msgid "Expecting jobid=nn command, got: %s\n" +msgstr "" + +#: src/dird/ua_select.c:865 +#, c-format +msgid "JobId %s is not running.\n" +msgstr "" + +#: src/dird/ua_select.c:875 +#, c-format +msgid "Expecting job=xxx, got: %s.\n" +msgstr "" + +#: src/dird/ua_select.c:879 src/dird/ua_select.c:891 +#, c-format +msgid "Job \"%s\" is not running.\n" +msgstr "" + +#: src/dird/ua_select.c:887 +#, c-format +msgid "Expecting ujobid=xxx, got: %s.\n" +msgstr "" + +#: src/dird/ua_select.c:907 +#, c-format +msgid "Storage resource \"%s\": not found\n" +msgstr "" + +#: src/dird/ua_select.c:939 +msgid "Enter autochanger drive[0]: " +msgstr "" + +#: src/dird/ua_select.c:960 +msgid "Enter autochanger slot: " +msgstr "" + +#: src/dird/ua_select.c:990 +msgid "Media Types defined in conf file:\n" +msgstr "" + +#: src/dird/ua_select.c:996 +msgid "Media Type" +msgstr "" + +#: src/dird/ua_select.c:996 +msgid "Select the Media Type" +msgstr "" + +#: src/dird/verify.c:120 +msgid "" +"Unable to find JobId of previous InitCatalog Job.\n" +"Please run a Verify with Level=InitCatalog before\n" +"running the current Job.\n" +msgstr "" + +#: src/dird/verify.c:125 +msgid "Unable to find JobId of previous Job for this client.\n" +msgstr "" + +#: src/dird/verify.c:141 +#, c-format +msgid "Could not get job record for previous Job. ERR=%s" +msgstr "" + +#: src/dird/verify.c:146 +#, c-format +msgid "Last Job %d did not terminate normally. JobStatus=%c\n" +msgstr "" + +#: src/dird/verify.c:150 +#, c-format +msgid "Verifying against JobId=%d Job=%s\n" +msgstr "" + +#: src/dird/verify.c:179 +#, c-format +msgid "Start Verify JobId=%s Level=%s Job=%s\n" +msgstr "" + +#: src/dird/verify.c:263 +msgid "Deprecated feature ... use bootstrap.\n" +msgstr "" + +#: src/dird/verify.c:276 +#, c-format +msgid "Unimplemented Verify level %d(%c)\n" +msgstr "" + +#: src/dird/verify.c:330 +#, c-format +msgid "Unimplemented verify level %d\n" +msgstr "" + +#: src/dird/verify.c:388 +msgid "Verify OK" +msgstr "" + +#: src/dird/verify.c:392 +msgid "*** Verify Error ***" +msgstr "" + +#: src/dird/verify.c:396 +msgid "Verify warnings" +msgstr "" + +#: src/dird/verify.c:399 +msgid "Verify Canceled" +msgstr "" + +#: src/dird/verify.c:402 +msgid "Verify Differences" +msgstr "" + +#: src/dird/verify.c:407 +#, c-format +msgid "Inappropriate term code: %d %c\n" +msgstr "" + +#: src/dird/verify.c:421 +#, fuzzy, c-format +msgid "" +"Bacula %s %s (%s): %s\n" +" Build OS: %s %s %s\n" +" JobId: %d\n" +" Job: %s\n" +" FileSet: %s\n" +" Verify Level: %s\n" +" Client: %s\n" +" Verify JobId: %d\n" +" Verify Job: %s\n" +" Start time: %s\n" +" End time: %s\n" +" Files Expected: %s\n" +" Files Examined: %s\n" +" Non-fatal FD errors: %d\n" +" FD termination status: %s\n" +" SD termination status: %s\n" +" Termination: %s\n" +"\n" +msgstr "" +"Bacula %s (%s): %s\n" +" JobId: %d\n" +" Job: %s\n" +" Client: %s\n" +" Start time: %s\n" +" End time: %s\n" +" Dateien erwartet: %s\n" +" Dateien. wiederhergestellt: %s\n" +" Bytes wiederhergestellt: %s\n" +" Geschwindigkeit: %.1f KB/s\n" +" FD Fehler: %d\n" +" FD Beendigungsstatus: %s\n" +" SD Beendigungsstatus: %s\n" +" Beendigungsstatus: %s\n" +"\n" + +#: src/dird/verify.c:456 +#, fuzzy, c-format +msgid "" +"Bacula %s %s (%s): %s\n" +" Build: %s %s %s\n" +" JobId: %d\n" +" Job: %s\n" +" FileSet: %s\n" +" Verify Level: %s\n" +" Client: %s\n" +" Verify JobId: %d\n" +" Verify Job: %s\n" +" Start time: %s\n" +" End time: %s\n" +" Files Examined: %s\n" +" Non-fatal FD errors: %d\n" +" FD termination status: %s\n" +" Termination: %s\n" +"\n" +msgstr "" +"Bacula %s (%s): %s\n" +" JobId: %d\n" +" Job: %s\n" +" Client: %s\n" +" Start time: %s\n" +" End time: %s\n" +" Dateien erwartet: %s\n" +" Dateien. wiederhergestellt: %s\n" +" Bytes wiederhergestellt: %s\n" +" Geschwindigkeit: %.1f KB/s\n" +" FD Fehler: %d\n" +" FD Beendigungsstatus: %s\n" +" SD Beendigungsstatus: %s\n" +" Beendigungsstatus: %s\n" +"\n" + +#: src/dird/verify.c:535 +#, c-format +msgid "" +"bird | ] -- cancel a job" +msgstr "" + +#: src/dird/ua_cmds.c:108 +msgid "create DB Pool from resource" +msgstr "" + +#: src/dird/ua_cmds.c:109 +msgid "delete [pool= | media volume=]" +msgstr "" + +#: src/dird/ua_cmds.c:110 +msgid "disable -- disable a job" +msgstr "" + +#: src/dird/ua_cmds.c:111 +msgid "enable -- enable a job" +msgstr "" + +#: src/dird/ua_cmds.c:112 +msgid "performs FileSet estimate, listing gives full listing" +msgstr "" + +#: src/dird/ua_cmds.c:113 src/console/console.c:171 +msgid "exit = quit" +msgstr "" + +#: src/dird/ua_cmds.c:114 +msgid "gui [on|off] -- non-interactive gui mode" +msgstr "" + +#: src/dird/ua_cmds.c:115 src/stored/btape.c:2544 +msgid "print this command" +msgstr "" + +#: src/dird/ua_cmds.c:116 +msgid "" +"list [pools | jobs | jobtotals | media | files ]; " +"from catalog" +msgstr "" + +#: src/dird/ua_cmds.c:117 +msgid "label a tape" +msgstr "" + +#: src/dird/ua_cmds.c:118 +msgid "full or long list like list command" +msgstr "" + +#: src/dird/ua_cmds.c:119 +msgid "messages" +msgstr "" + +#: src/dird/ua_cmds.c:120 +msgid "print current memory usage" +msgstr "" + +#: src/dird/ua_cmds.c:121 +msgid "mount " +msgstr "" + +#: src/dird/ua_cmds.c:122 +msgid "prune expired records from catalog" +msgstr "" + +#: src/dird/ua_cmds.c:123 +msgid "purge records from catalog" +msgstr "" + +#: src/dird/ua_cmds.c:124 +msgid "python control commands" +msgstr "" + +#: src/dird/ua_cmds.c:125 src/console/console.c:164 +msgid "quit" +msgstr "" + +#: src/dird/ua_cmds.c:126 +msgid "query catalog" +msgstr "" + +#: src/dird/ua_cmds.c:127 +msgid "restore files" +msgstr "" + +#: src/dird/ua_cmds.c:128 +msgid "relabel a tape" +msgstr "" + +#: src/dird/ua_cmds.c:129 +msgid "release " +msgstr "" + +#: src/dird/ua_cmds.c:130 +msgid "reload conf file" +msgstr "" + +#: src/dird/ua_cmds.c:131 +msgid "run " +msgstr "" + +#: src/dird/ua_cmds.c:132 +msgid "status [storage | client]=" +msgstr "" + +#: src/dird/ua_cmds.c:133 +msgid "sets debug level" +msgstr "" + +#: src/dird/ua_cmds.c:134 +msgid "sets new client address -- if authorized" +msgstr "" + +#: src/dird/ua_cmds.c:135 +msgid "show (resource records) [jobs | pools | ... | all]" +msgstr "" + +#: src/dird/ua_cmds.c:136 +msgid "use SQL to query catalog" +msgstr "" + +#: src/dird/ua_cmds.c:137 src/console/console.c:167 +msgid "print current time" +msgstr "" + +#: src/dird/ua_cmds.c:138 +msgid "turn on/off trace to file" +msgstr "" + +#: src/dird/ua_cmds.c:139 +msgid "unmount " +msgstr "" + +#: src/dird/ua_cmds.c:140 +msgid "umount for old-time Unix guys" +msgstr "" + +#: src/dird/ua_cmds.c:141 +msgid "update Volume, Pool or slots" +msgstr "" + +#: src/dird/ua_cmds.c:142 +msgid "use catalog xxx" +msgstr "" + +#: src/dird/ua_cmds.c:143 +msgid "does variable expansion" +msgstr "" + +#: src/dird/ua_cmds.c:144 +msgid "print Director version" +msgstr "" + +#: src/dird/ua_cmds.c:145 +msgid "" +"wait until no jobs are running [ | | " +"]" +msgstr "" + +#: src/dird/ua_cmds.c:186 +#, c-format +msgid "%s: is an invalid command.\n" +msgstr "" + +#: src/dird/ua_cmds.c:227 +msgid "" +"You probably don't want to be using this command since it\n" +"creates database records without labeling the Volumes.\n" +"You probably want to use the \"label\" command.\n" +"\n" +msgstr "" + +#: src/dird/ua_cmds.c:246 +#, c-format +msgid "Pool already has maximum volumes=%d\n" +msgstr "" + +#: src/dird/ua_cmds.c:247 +msgid "Enter new maximum (zero for unlimited): " +msgstr "" + +#: src/dird/ua_cmds.c:267 +#, c-format +msgid "Enter number of Volumes to create. 0=>fixed name. Max=%d: " +msgstr "" + +#: src/dird/ua_cmds.c:273 +#, c-format +msgid "The number must be between 0 and %d\n" +msgstr "" + +#: src/dird/ua_cmds.c:280 +msgid "Enter Volume name: " +msgstr "" + +#: src/dird/ua_cmds.c:284 +msgid "Enter base volume name: " +msgstr "" + +#: src/dird/ua_cmds.c:306 +msgid "Enter the starting number: " +msgstr "" + +#: src/dird/ua_cmds.c:311 +msgid "Start number must be greater than zero.\n" +msgstr "" + +#: src/dird/ua_cmds.c:322 +msgid "Enter slot (0 for none): " +msgstr "" + +#: src/dird/ua_cmds.c:326 +msgid "InChanger? yes/no: " +msgstr "" + +#: src/dird/ua_cmds.c:354 +#, c-format +msgid "%d Volumes created in pool %s\n" +msgstr "" + +#: src/dird/ua_cmds.c:370 src/dird/ua_cmds.c:1033 +msgid "Turn on or off? " +msgstr "" + +#: src/dird/ua_cmds.c:401 +#, c-format +msgid "JobId %s is not running. Use Job name to cancel inactive jobs.\n" +msgstr "" + +#: src/dird/ua_cmds.c:410 src/dird/ua_cmds.c:420 +#, c-format +msgid "Warning Job %s is not running. Continuing anyway ...\n" +msgstr "" + +#: src/dird/ua_cmds.c:430 src/dird/ua_cmds.c:706 src/dird/ua_cmds.c:752 +msgid "Unauthorized command from this console.\n" +msgstr "" + +#: src/dird/ua_cmds.c:455 src/filed/status.c:201 src/stored/status.c:447 +msgid "No Jobs running.\n" +msgstr "" + +#: src/dird/ua_cmds.c:457 +msgid "None of your jobs are running.\n" +msgstr "" + +#: src/dird/ua_cmds.c:462 +msgid "Select Job:\n" +msgstr "" + +#: src/dird/ua_cmds.c:471 +#, c-format +msgid "JobId=%s Job=%s" +msgstr "" + +#: src/dird/ua_cmds.c:476 +msgid "Choose Job to cancel" +msgstr "" + +#: src/dird/ua_cmds.c:481 +#, c-format +msgid "" +"Cancel: %s\n" +"\n" +"%s" +msgstr "" + +#: src/dird/ua_cmds.c:482 +msgid "Confirm cancel?" +msgstr "" + +#: src/dird/ua_cmds.c:488 +msgid "Confirm cancel (yes/no): " +msgstr "" + +#: src/dird/ua_cmds.c:496 src/dird/ua_cmds.c:747 +#, c-format +msgid "Job \"%s\" not found.\n" +msgstr "" + +#: src/dird/ua_cmds.c:593 +#, c-format +msgid "" +"Can't set %s RecyclePool to %s, %s is not in database.\n" +"Try to update it with 'update pool=%s'\n" +msgstr "" + +#: src/dird/ua_cmds.c:660 +#, c-format +msgid "" +"Error: Pool %s already exists.\n" +"Use update to change it.\n" +msgstr "" + +#: src/dird/ua_cmds.c:671 +#, c-format +msgid "Pool %s created.\n" +msgstr "" + +#: src/dird/ua_cmds.c:688 +msgid "Python interpreter restarted.\n" +msgstr "" + +#: src/dird/ua_cmds.c:690 src/dird/ua_cmds.c:1273 +msgid "Nothing done.\n" +msgstr "" + +#: src/dird/ua_cmds.c:713 src/dird/ua_run.c:1225 +#, c-format +msgid "Client \"%s\" not found.\n" +msgstr "" + +#: src/dird/ua_cmds.c:722 +#, c-format +msgid "Client \"%s\" address set to %s\n" +msgstr "" + +#: src/dird/ua_cmds.c:756 +#, c-format +msgid "Job \"%s\" %sabled\n" +msgstr "" + +#: src/dird/ua_cmds.c:812 src/dird/ua_cmds.c:1163 src/dird/ua_dotcmds.c:206 +msgid "Failed to connect to Client.\n" +msgstr "" + +#: src/dird/ua_cmds.c:928 +msgid "Enter new debug level: " +msgstr "" + +#: src/dird/ua_cmds.c:994 src/dird/ua_dotcmds.c:282 +msgid "Available daemons are: \n" +msgstr "" + +#: src/dird/ua_cmds.c:995 src/dird/ua_dotcmds.c:283 +msgid "Director" +msgstr "" + +#: src/dird/ua_cmds.c:998 +msgid "All" +msgstr "" + +#: src/dird/ua_cmds.c:999 +msgid "Select daemon type to set debug level" +msgstr "" + +#: src/dird/ua_cmds.c:1089 src/dird/ua_cmds.c:1128 src/dird/ua_cmds.c:1796 +#, c-format +msgid "No authorization for Job \"%s\"\n" +msgstr "" + +#: src/dird/ua_cmds.c:1099 +#, c-format +msgid "No authorization for FileSet \"%s\"\n" +msgstr "" + +#: src/dird/ua_cmds.c:1111 src/dird/ua_run.c:217 +#, c-format +msgid "Level %s not valid.\n" +msgstr "" + +#: src/dird/ua_cmds.c:1124 +msgid "No job specified.\n" +msgstr "" + +#: src/dird/ua_cmds.c:1168 +msgid "Error sending include list.\n" +msgstr "" + +#: src/dird/ua_cmds.c:1173 +msgid "Error sending exclude list.\n" +msgstr "" + +#: src/dird/ua_cmds.c:1259 +msgid "" +"In general it is not a good idea to delete either a\n" +"Pool or a Volume since they may contain data.\n" +"\n" +msgstr "" + +#: src/dird/ua_cmds.c:1262 +msgid "Choose catalog item to delete" +msgstr "" + +#: src/dird/ua_cmds.c:1330 +msgid "Enter JobId to delete: " +msgstr "" + +#: src/dird/ua_cmds.c:1365 +#, c-format +msgid "Job %s and associated records deleted from the catalog.\n" +msgstr "" + +#: src/dird/ua_cmds.c:1379 +#, c-format +msgid "" +"\n" +"This command will delete volume %s\n" +"and all Jobs saved on that volume from the Catalog\n" +msgstr "" + +#: src/dird/ua_cmds.c:1383 +#, c-format +msgid "Are you sure you want to delete Volume \"%s\"? (yes/no): " +msgstr "" + +#: src/dird/ua_cmds.c:1407 +#, c-format +msgid "Are you sure you want to delete Pool \"%s\"? (yes/no): " +msgstr "" + +#: src/dird/ua_cmds.c:1521 +#, c-format +msgid "Using Catalog name=%s DB=%s\n" +msgstr "" + +#: src/dird/ua_cmds.c:1581 +msgid "ERR: Can't open db\n" +msgstr "" + +#: src/dird/ua_cmds.c:1617 +msgid "ERR: Job was not found\n" +msgstr "" + +#: src/dird/ua_cmds.c:1693 src/dird/ua_tree.c:665 src/stored/btape.c:2591 +#, c-format +msgid "" +" Command Description\n" +" ======= ===========\n" +msgstr "" + +#: src/dird/ua_cmds.c:1695 +#, c-format +msgid " %-10s %s\n" +msgstr "" + +#: src/dird/ua_cmds.c:1697 +msgid "" +"\n" +"When at a prompt, entering a period cancels the command.\n" +"\n" +msgstr "" + +#: src/dird/ua_cmds.c:1757 src/dird/ua_cmds.c:1784 src/dird/ua_cmds.c:1806 +#, c-format +msgid "No authorization for Catalog \"%s\"\n" +msgstr "" + +#: src/dird/ua_cmds.c:1774 +#, c-format +msgid "No authorization for Client \"%s\"\n" +msgstr "" + +#: src/dird/ua_cmds.c:1842 +#, c-format +msgid "Could not open catalog database \"%s\".\n" +msgstr "" + +#: src/dird/ua_cmds.c:1852 +#, c-format +msgid "Using Catalog \"%s\"\n" +msgstr "" + +#: src/dird/inc_conf.c:279 +#, fuzzy, c-format +msgid "Expected a strip path positive integer, got:%s:" +msgstr "fstype Ausdruck erwartet, erhalten: %s\n" + +#: src/dird/inc_conf.c:299 +#, c-format +msgid "Expected a FileSet option keyword, got:%s:" +msgstr "FileSet option Schlüsselwort erwartet, erhalten:%s:" + +#: src/dird/inc_conf.c:332 +msgid "Old style Include/Exclude not supported\n" +msgstr "veraltete Include/Exclude Anweisung nicht unterstützt\n" + +#: src/dird/inc_conf.c:360 src/dird/inc_conf.c:660 src/dird/dird_conf.c:1842 +#, c-format +msgid "Expecting keyword, got: %s\n" +msgstr "Schlüsselwort erwartet, erhalten:%s\n" + +#: src/dird/inc_conf.c:368 src/dird/inc_conf.c:666 src/dird/dird_conf.c:1848 +#: src/lib/parse_conf.c:887 +#, c-format +msgid "expected an equals, got: %s" +msgstr "Erwartete ein \"ist gleich\", erhalten: %s" + +#: src/dird/inc_conf.c:378 src/dird/inc_conf.c:675 src/dird/dird_conf.c:1859 +#, c-format +msgid "Keyword %s not permitted in this resource" +msgstr "Schlüsselwort %s ist in dieser Ressource nicht erlaubt." + +#: src/dird/inc_conf.c:431 +#, c-format +msgid "Regex compile error. ERR=%s\n" +msgstr "Regex Übersetzungsfehler. ERR=%s\n" + +#: src/dird/inc_conf.c:452 +#, c-format +msgid "Expected a regex string, got: %s\n" +msgstr "regulären Ausdruck erwartet, erhalten: %s\n" + +#: src/dird/inc_conf.c:544 +#, c-format +msgid "Expected a wild-card string, got: %s\n" +msgstr "wild-card Ausdruck erwartet, erhalten: %s\n" + +#: src/dird/inc_conf.c:567 +#, c-format +msgid "Expected an fstype string, got: %s\n" +msgstr "fstype Ausdruck erwartet, erhalten: %s\n" + +#: src/dird/inc_conf.c:590 +#, c-format +msgid "Expected an drivetype string, got: %s\n" +msgstr "drivetype Ausdruck erwartet, erhalten: %s\n" + +#: src/dird/inc_conf.c:614 +#, fuzzy, c-format +msgid "Backslash found. Use forward slashes or quote the string.: %s\n" +msgstr "" +"Backslash gefunden. Benutze forward slashes oder setze den String in " +"Anführungszeichen.: %s\n" + +#: src/dird/inc_conf.c:629 +#, c-format +msgid "Expected a filename, got: %s" +msgstr "Dateiname erwartet, erhalten: %s" + +#: src/dird/inc_conf.c:645 src/dird/dird_conf.c:1834 +#, c-format +msgid "Expecting open brace. Got %s" +msgstr "Geschweifte Klammer auf erwartet, erhalten: %s" + +#: src/dird/inc_conf.c:700 +#, c-format +msgid "Expected a FileSet keyword, got: %s" +msgstr "FileSet Schlüsselwort erwartet,erhalten: %s" + +#: src/dird/authenticate.c:80 src/dird/authenticate.c:81 +#: src/tray-monitor/authenticate.c:132 +#, c-format +msgid "Error sending Hello to Storage daemon. ERR=%s\n" +msgstr "Fehler beim senden von \"Hello\" an Storage daemon. ERR=%s\n" + +#: src/dird/authenticate.c:106 +msgid "Director and Storage daemon passwords or names not the same.\n" +msgstr "Director und Storage daemon Passworte or Namen nicht gleich.\n" + +#: src/dird/authenticate.c:108 +#, fuzzy, c-format +msgid "" +"Director unable to authenticate with Storage daemon at \"%s:%d\". Possible " +"causes:\n" +"Passwords or names not the same or\n" +"Maximum Concurrent Jobs exceeded on the SD or\n" +"SD networking messed up (restart daemon).\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" +"Director kann sich nicht an Storage daemon an \"%s:%d\" authentisieren. " +"Mögliche Ursachen:\n" +"Passworte oder Namen nicht gleich oder\n" +"Maximum Concurrent Jobs überschritten am SD oder\n" +"SD Netzwerk durcheinander (daemon neustarten).\n" +"Für Hilfe bitte unter http://www.bacula.org/rel-manual/faq." +"html#AuthorizationErrors nachsehen.\n" + +#: src/dird/authenticate.c:120 src/filed/authenticate.c:253 +#: src/wx-console/authenticate.c:127 src/stored/authenticate.c:134 +#: src/stored/authenticate.c:235 src/console/authenticate.c:114 +msgid "" +"Authorization problem: Remote server did not advertise required TLS " +"support.\n" +msgstr "" +"Authorisationsproblem: Entfernter Server hat benötigte TLS Unterstützung " +"nicht angeboten.\n" + +#: src/dird/authenticate.c:127 src/filed/authenticate.c:149 +#: src/filed/authenticate.c:261 src/wx-console/authenticate.c:133 +#: src/stored/authenticate.c:142 src/stored/authenticate.c:243 +#: src/console/authenticate.c:121 +msgid "Authorization problem: Remote server requires TLS.\n" +msgstr "Authorisationsproblem: Enfernter Server erfordert TLS.\n" + +#: src/dird/authenticate.c:136 +#, fuzzy, c-format +msgid "TLS negotiation failed with SD at \"%s:%d\"\n" +msgstr "TLS Aushandlung fehlgeschlagen mit SD an \"%s:%d\"\n" + +#: src/dird/authenticate.c:145 +#, c-format +msgid "bdird set configuration file to file\n" +" -dnn set debug level to nn\n" +" -f run in foreground (for debugging)\n" +" -g groupid\n" +" -r run now\n" +" -s no signals\n" +" -t test - read configuration and exit\n" +" -u userid\n" +" -v verbose user messages\n" +" -? print this message.\n" +"\n" +msgstr "" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: dird [-f -s] [-c config_file] [-d debug_level] [config_file]\n" +" -c setze Konfigurationsdatei auf Datei\n" +" -dnn setze debug level auf nn\n" +" -f starte im Vordergrund (für debugging Zwecke)\n" +" -g groupid\n" +" -r starte jetzt\n" +" -s no signals\n" +" -t test - Konfiguration Lesen und beenden\n" +" -u userid\n" +" -v ausführliche Benutzer Meldungen\n" +" -? diese Meldung ausgeben.\n" +"\n" + +#: src/dird/dird.c:225 src/filed/filed.c:182 src/gnome2-console/console.c:286 +#: src/stored/stored.c:210 src/console/console.c:426 +#: src/qt-console/main.cpp:132 +msgid "Cryptography library initialization failed.\n" +msgstr "Initialisierung der Verschlüsselungsbibliothek fehlgeschlagen.\n" + +#: src/dird/dird.c:229 src/dird/dird.c:246 src/dird/dird.c:477 +#: src/dird/dird.c:480 src/filed/filed.c:187 src/gnome2-console/console.c:290 +#: src/stored/stored.c:214 src/console/console.c:430 +#: src/qt-console/main.cpp:136 +#, c-format +msgid "Please correct configuration file: %s\n" +msgstr "Bitte die Konfigurationsdatei korrigieren: %s\n" + +#: src/dird/dird.c:463 +msgid "Too many open reload requests. Request ignored.\n" +msgstr "zu viele offene reload Anforderungen, Anforderung ignoriert.\n" + +#: src/dird/dird.c:478 +msgid "Out of reload table entries. Giving up.\n" +msgstr "Keine reload table Einträge übrig. Gebe auf.\n" + +#: src/dird/dird.c:481 +msgid "Resetting previous configuration.\n" +msgstr "Vorherige Konfiguration zurückgesetzt.\n" + +#: src/dird/dird.c:544 +#, c-format +msgid "" +"No Director resource defined in %s\n" +"Without that I don't know who I am :-(\n" +msgstr "" +"Keine Director resource definiert in %s\n" +"Ohne dies weiss ich nicht wer ich bin :-(\n" + +#: src/dird/dird.c:552 src/filed/filed.c:290 +#, c-format +msgid "No Messages resource defined in %s\n" +msgstr "Keine Messages resource definiert in %s\n" + +#: src/dird/dird.c:557 +#, c-format +msgid "Only one Director resource permitted in %s\n" +msgstr "Nur eine Director resource erlaubt in %s\n" + +#: src/dird/dird.c:566 src/dird/dird.c:768 src/dird/dird.c:820 +#: src/dird/dird.c:924 src/filed/filed.c:297 src/filed/filed.c:455 +#: src/gnome2-console/console.c:153 src/gnome2-console/console.c:182 +#: src/stored/stored.c:333 src/console/console.c:657 src/console/console.c:686 +#: src/qt-console/main.cpp:209 src/qt-console/main.cpp:238 +#: src/wx-console/console_thread.cpp:114 src/wx-console/console_thread.cpp:140 +msgid "TLS required but not configured in Bacula.\n" +msgstr "TLS benötigt aber nicht konfiguriert in Bacula.\n" + +#: src/dird/dird.c:572 src/filed/filed.c:464 src/stored/stored.c:385 +#, c-format +msgid "\"TLS Certificate\" file not defined for Director \"%s\" in %s.\n" +msgstr "\"TLS Certificate\" Datei nicht für Director definiert \"%s\" in %s.\n" + +#: src/dird/dird.c:578 src/filed/filed.c:470 src/stored/stored.c:391 +#, c-format +msgid "\"TLS Key\" file not defined for Director \"%s\" in %s.\n" +msgstr "\"TLS Key\" Datei nicht für Director definiert \"%s\" in %s.\n" + +#: src/dird/dird.c:584 src/filed/filed.c:476 src/stored/stored.c:397 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Director \"%s\" in %s. At least one CA certificate store is required when " +"using \"TLS Verify Peer\".\n" +msgstr "" +"Weder \"TLS CA Certificate\" noch \"TLS CA Certificate Dir\" sind für " +"Director \"%s\" in %s definert. Mindestens ein CA certificate store wird " +"benötigt wenn \"TLS Verify Peer\" eingesetzt wird.\n" + +#: src/dird/dird.c:603 src/filed/filed.c:495 src/stored/stored.c:416 +#, c-format +msgid "Failed to initialize TLS context for Director \"%s\" in %s.\n" +msgstr "Konnte TLS context für Director nicht initialisieren \"%s\" in %s.\n" + +#: src/dird/dird.c:611 +#, c-format +msgid "No Job records defined in %s\n" +msgstr "Keine Job records definiert in %s\n" + +#: src/dird/dird.c:669 src/dird/dird.c:682 +#, c-format +msgid "Hey something is wrong. p=0x%lu\n" +msgstr "Hey etwas läuft schief. p=0x%lu\n" + +#: src/dird/dird.c:742 +#, c-format +msgid "\"%s\" directive in Job \"%s\" resource is required, but not found.\n" +msgstr "" +"\"%s\" Directive in Job \"%s\" resource wird benötigt, wurde aber nicht " +"gefunden.\n" + +#: src/dird/dird.c:749 +msgid "Too many items in Job resource\n" +msgstr "zu viele items in Job resource\n" + +#: src/dird/dird.c:753 +#, c-format +msgid "No storage specified in Job \"%s\" nor in Pool.\n" +msgstr "Weder storage noch Pool in Job \"%s\" definiert.\n" + +#: src/dird/dird.c:775 +#, c-format +msgid "\"TLS Certificate\" file not defined for Console \"%s\" in %s.\n" +msgstr "\"TLS Certificate\" Datei nicht definiert für Console \"%s\" in %s.\n" + +#: src/dird/dird.c:781 +#, c-format +msgid "\"TLS Key\" file not defined for Console \"%s\" in %s.\n" +msgstr "\"TLS Key\" Datei nicht definiert für Console \"%s\" in %s.\n" + +#: src/dird/dird.c:787 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Console \"%s\" in %s. At least one CA certificate store is required when " +"using \"TLS Verify Peer\".\n" +msgstr "" +"Weder \"TLS CA Certificate\" noch \"TLS CA Certificate Dir\" sind definiert " +"fürConsole \"%s\" in %s. Mindestens ein CA certificate store wird benötigt " +"beiEinsatz von \"TLS Verify Peer\".\n" + +#: src/dird/dird.c:804 src/dird/dird.c:844 src/filed/filed.c:321 +#, c-format +msgid "Failed to initialize TLS context for File daemon \"%s\" in %s.\n" +msgstr "" +"Konnte TLS context für File daemon \"%s\" in %s nicht initialisieren.\n" + +#: src/dird/dird.c:827 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"File daemon \"%s\" in %s.\n" +msgstr "" +"Weder \"TLS CA Certificate\" noch \"TLS CA Certificate Dir\" sind definiert " +"für File daemon \"%s\" in %s.\n" + +#: src/dird/dird.c:876 src/dird/dird.c:878 +#, c-format +msgid "Could not open Catalog \"%s\", database \"%s\".\n" +msgstr "Konnte Catalog \"%s\", database \"%s\" nicht öffnen.\n" + +#: src/dird/dird.c:881 +#, c-format +msgid "%s" +msgstr "" + +#: src/dird/dird.c:930 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Storage \"%s\" in %s.\n" +msgstr "" +"Weder \"TLS CA Certificate\" noch \"TLS CA Certificate Dir\" sind definiert " +"fürStorage \"%s\" in %s.\n" + +#: src/dird/dird.c:946 src/stored/stored.c:371 +#, c-format +msgid "Failed to initialize TLS context for Storage \"%s\" in %s.\n" +msgstr "Konnte TLS context für Storage \"%s\" in %s nicht initialisieren.\n" + +#: src/dird/ua_dotcmds.c:138 +msgid ": is an invalid command.\n" +msgstr "" + +#: src/dird/ua_dotcmds.c:238 src/dird/ua_dotcmds.c:288 +msgid "The Director will segment fault.\n" +msgstr "" + +#: src/dird/ua_dotcmds.c:286 +msgid "Select daemon type to make die" +msgstr "" + +#: src/dird/ua_dotcmds.c:453 +msgid "Access to specified Client or FileSet not allowed.\n" +msgstr "" + +#: src/dird/ua_dotcmds.c:493 +#, fuzzy +msgid "query keyword not found.\n" +msgstr "Path record: %s nicht gefunden.\n" + +#: src/dird/restore.c:87 +msgid "" +"Cannot restore without a bootstrap file.\n" +"You probably ran a restore job directly. All restore jobs must\n" +"be run using the restore command.\n" +msgstr "" + +#: src/dird/restore.c:96 +#, c-format +msgid "Start Restore Job %s\n" +msgstr "" + +#: src/dird/restore.c:258 +msgid "Restore OK -- warning file count mismatch" +msgstr "" + +#: src/dird/restore.c:260 +msgid "Restore OK" +msgstr "" + +#: src/dird/restore.c:265 +msgid "*** Restore Error ***" +msgstr "" + +#: src/dird/restore.c:275 +msgid "Restore Canceled" +msgstr "" + +#: src/dird/restore.c:302 +#, fuzzy, c-format +msgid "" +"Bacula %s %s (%s): %s\n" +" Build OS: %s %s %s\n" +" JobId: %d\n" +" Job: %s\n" +" Restore Client: %s\n" +" Start time: %s\n" +" End time: %s\n" +" Files Expected: %s\n" +" Files Restored: %s\n" +" Bytes Restored: %s\n" +" Rate: %.1f KB/s\n" +" FD Errors: %d\n" +" FD termination status: %s\n" +" SD termination status: %s\n" +" Termination: %s\n" +"\n" +msgstr "" +"Bacula %s (%s): %s\n" +" JobId: %d\n" +" Job: %s\n" +" Client: %s\n" +" Start time: %s\n" +" End time: %s\n" +" Dateien erwartet: %s\n" +" Dateien. wiederhergestellt: %s\n" +" Bytes wiederhergestellt: %s\n" +" Geschwindigkeit: %.1f KB/s\n" +" FD Fehler: %d\n" +" FD Beendigungsstatus: %s\n" +" SD Beendigungsstatus: %s\n" +" Beendigungsstatus: %s\n" +"\n" + +#: src/dird/ua_tree.c:72 +msgid "change current directory" +msgstr "" + +#: src/dird/ua_tree.c:73 +msgid "count marked files in and below the cd" +msgstr "" + +#: src/dird/ua_tree.c:74 src/dird/ua_tree.c:75 +msgid "long list current directory, wildcards allowed" +msgstr "" + +#: src/dird/ua_tree.c:76 +msgid "leave file selection mode" +msgstr "" + +#: src/dird/ua_tree.c:77 +msgid "estimate restore size" +msgstr "" + +#: src/dird/ua_tree.c:78 +msgid "same as done command" +msgstr "" + +#: src/dird/ua_tree.c:79 +msgid "find files, wildcards allowed" +msgstr "" + +#: src/dird/ua_tree.c:80 src/dird/ua_tree.c:90 +msgid "print help" +msgstr "" + +#: src/dird/ua_tree.c:81 +msgid "list current directory, wildcards allowed" +msgstr "" + +#: src/dird/ua_tree.c:82 +msgid "list the marked files in and below the cd" +msgstr "" + +#: src/dird/ua_tree.c:83 +msgid "mark dir/file to be restored recursively, wildcards allowed" +msgstr "" + +#: src/dird/ua_tree.c:84 +msgid "mark directory name to be restored (no files)" +msgstr "" + +#: src/dird/ua_tree.c:85 src/dird/ua_tree.c:86 +msgid "print current working directory" +msgstr "" + +#: src/dird/ua_tree.c:87 +msgid "unmark dir/file to be restored recursively in dir" +msgstr "" + +#: src/dird/ua_tree.c:88 +msgid "unmark directory name only no recursion" +msgstr "" + +#: src/dird/ua_tree.c:89 +msgid "quit and do not do restore" +msgstr "" + +#: src/dird/ua_tree.c:110 +msgid "" +"\n" +"You are now entering file selection mode where you add (mark) and\n" +"remove (unmark) files to be restored. No files are initially added, unless\n" +"you used the \"all\" keyword on the command line.\n" +"Enter \"done\" to leave this mode.\n" +"\n" +msgstr "" + +#: src/dird/ua_tree.c:121 src/dird/ua_tree.c:717 +#, c-format +msgid "cwd is: %s\n" +msgstr "" + +#: src/dird/ua_tree.c:130 src/dird/ua_tree.c:145 +msgid "Invalid command. Enter \"done\" to exit.\n" +msgstr "" + +#: src/dird/ua_tree.c:333 src/dird/ua_tree.c:345 src/dird/ua_tree.c:362 +msgid "No files marked.\n" +msgstr "" + +#: src/dird/ua_tree.c:347 +msgid "1 file marked.\n" +msgstr "" + +#: src/dird/ua_tree.c:349 +#, c-format +msgid "%s files marked.\n" +msgstr "" + +#: src/dird/ua_tree.c:377 +msgid "No directories marked.\n" +msgstr "" + +#: src/dird/ua_tree.c:379 +msgid "1 directory marked.\n" +msgstr "" + +#: src/dird/ua_tree.c:381 +#, c-format +msgid "%s directories marked.\n" +msgstr "" + +#: src/dird/ua_tree.c:402 +#, c-format +msgid "%s total files/dirs. %s marked to be restored.\n" +msgstr "" + +#: src/dird/ua_tree.c:413 +msgid "No file specification given.\n" +msgstr "" + +#: src/dird/ua_tree.c:561 +#, c-format +msgid "Node %s has no children.\n" +msgstr "" + +#: src/dird/ua_tree.c:654 +#, c-format +msgid "%d total files; %d marked to be restored; %s bytes.\n" +msgstr "" + +#: src/dird/ua_tree.c:688 +msgid "Too few or too many arguments. Try using double quotes.\n" +msgstr "" + +#: src/dird/ua_tree.c:700 +msgid "Invalid path given.\n" +msgstr "" + +#: src/dird/ua_tree.c:736 src/dird/ua_tree.c:748 +msgid "No files unmarked.\n" +msgstr "" + +#: src/dird/ua_tree.c:750 +msgid "1 file unmarked.\n" +msgstr "" + +#: src/dird/ua_tree.c:753 +#, c-format +msgid "%s files unmarked.\n" +msgstr "" + +#: src/dird/ua_tree.c:764 src/dird/ua_tree.c:781 +msgid "No directories unmarked.\n" +msgstr "" + +#: src/dird/ua_tree.c:783 +msgid "1 directory unmarked.\n" +msgstr "" + +#: src/dird/ua_tree.c:785 +#, c-format +msgid "%d directories unmarked.\n" +msgstr "" + +#: src/dird/recycle.c:112 +#, c-format +msgid "Recycled volume \"%s\"\n" +msgstr "" + +#: src/dird/bsr.c:188 +#, c-format +msgid "Unable to get Job record. ERR=%s\n" +msgstr "Konnte Job Eintrag nicht holen. ERR=%s\n" + +#: src/dird/bsr.c:195 +#, c-format +msgid "Unable to get Job Volume Parameters. ERR=%s\n" +msgstr "Konnte Job Volume Parameter nicht holen. ERR=%s\n" + +#: src/dird/bsr.c:247 +#, c-format +msgid "Unable to create bootstrap file %s. ERR=%s\n" +msgstr "Konnte bootstrap Datei %s nicht erzeugen. ERR=%s\n" + +#: src/dird/bsr.c:256 +msgid "No files found to restore/migrate. No bootstrap file written.\n" +msgstr "" +"Keine Dateien für Wiederherstellung/Migration gefunden. Keine Bootstrap " +"Datei geschrieben.\n" + +#: src/dird/bsr.c:260 +msgid "Error writing bsr file.\n" +msgstr "Fehler beim schreiben der bsr Datei.\n" + +#: src/dird/bsr.c:266 +#, c-format +msgid "Bootstrap records written to %s\n" +msgstr "Bootstrap Einträge geschrieben nach %s\n" + +#: src/dird/bsr.c:270 +msgid "" +"The job will require the following\n" +" Volume(s) Storage(s) SD Device(s)\n" +"===========================================================================\n" +msgstr "" +"Der Job wird folgendes benötigen:\n" +" Volume(s) Storage(s) SD Device(s)\n" +"===========================================================================\n" + +#: src/dird/bsr.c:316 +msgid "No Volumes found to restore.\n" +msgstr "Keine Volumes zum Wiederherstellen gefunden.\n" + +#: src/dird/dird_conf.c:510 src/tray-monitor/tray_conf.c:168 +#, c-format +msgid "No %s resource defined\n" +msgstr "Keine %s resource definiert\n" + +#: src/dird/dird_conf.c:519 +#, c-format +msgid "Director: name=%s MaxJobs=%d FDtimeout=%s SDtimeout=%s\n" +msgstr "Director: name=%s MaxJobs=%d FDtimeout=%s SDtimeout=%s\n" + +#: src/dird/dird_conf.c:524 +#, c-format +msgid " query_file=%s\n" +msgstr " query_file=%s\n" + +#: src/dird/dird_conf.c:527 src/dird/dird_conf.c:547 src/dird/dird_conf.c:561 +#: src/dird/dird_conf.c:613 src/dird/dird_conf.c:617 src/dird/dird_conf.c:621 +#: src/dird/dird_conf.c:639 src/dird/dird_conf.c:656 src/dird/dird_conf.c:660 +#: src/dird/dird_conf.c:664 src/dird/dird_conf.c:668 src/dird/dird_conf.c:672 +#: src/dird/dird_conf.c:685 src/dird/dird_conf.c:892 src/dird/dird_conf.c:899 +msgid " --> " +msgstr " --> " + +#: src/dird/dird_conf.c:532 +#, c-format +msgid "Console: name=%s SSL=%d\n" +msgstr "Console: name=%s SSL=%d\n" + +#: src/dird/dird_conf.c:537 +#, c-format +msgid "Counter: name=%s min=%d max=%d cur=%d wrapcntr=%s\n" +msgstr "Counter: name=%s min=%d max=%d cur=%d wrapcntr=%s\n" + +#: src/dird/dird_conf.c:542 +#, c-format +msgid "Counter: name=%s min=%d max=%d\n" +msgstr "Counter: name=%s min=%d max=%d\n" + +#: src/dird/dird_conf.c:553 +#, c-format +msgid "Client: name=%s address=%s FDport=%d MaxJobs=%u\n" +msgstr "Client: name=%s address=%s FDport=%d MaxJobs=%u\n" + +#: src/dird/dird_conf.c:556 +#, c-format +msgid " JobRetention=%s FileRetention=%s AutoPrune=%d\n" +msgstr " JobRetention=%s FileRetention=%s AutoPrune=%d\n" + +#: src/dird/dird_conf.c:569 +#, c-format +msgid "" +"Device: name=%s ok=%d num_writers=%d max_writers=%d\n" +" reserved=%d open=%d append=%d read=%d labeled=%d offline=%d autochgr=%" +"d\n" +" poolid=%s volname=%s MediaType=%s\n" +msgstr "" +"Device: name=%s ok=%d num_writers=%d max_writers=%d\n" +" reserved=%d open=%d append=%d read=%d labeled=%d offline=%d autochgr=%" +"d\n" +" poolid=%s volname=%s MediaType=%s\n" + +#: src/dird/dird_conf.c:580 +#, c-format +msgid "" +"Storage: name=%s address=%s SDport=%d MaxJobs=%u\n" +" DeviceName=%s MediaType=%s StorageId=%s\n" +msgstr "" +"Storage: name=%s address=%s SDport=%d MaxJobs=%u\n" +" DeviceName=%s MediaType=%s StorageId=%s\n" + +#: src/dird/dird_conf.c:590 +#, c-format +msgid "" +"Catalog: name=%s address=%s DBport=%d db_name=%s\n" +" db_user=%s MutliDBConn=%d\n" +msgstr "" +"Catalog: name=%s address=%s DBport=%d db_name=%s\n" +" db_user=%s MutliDBConn=%d\n" + +#: src/dird/dird_conf.c:599 +#, c-format +msgid "%s: name=%s JobType=%d level=%s Priority=%d Enabled=%d\n" +msgstr "%s: name=%s JobType=%d level=%s Priority=%d Enabled=%d\n" + +#: src/dird/dird_conf.c:600 +msgid "JobDefs" +msgstr "JobDefs" + +#: src/dird/dird_conf.c:604 +#, c-format +msgid "" +" MaxJobs=%u Resched=%d Times=%d Interval=%s Spool=%d WritePartAfterJob=%" +"d\n" +msgstr "" +" MaxJobs=%u Resched=%d Times=%d Interval=%s Spool=%d WritePartAfterJob=%" +"d\n" + +#: src/dird/dird_conf.c:610 +#, c-format +msgid " SelectionType=%d\n" +msgstr " SelectionType=%d\n" + +#: src/dird/dird_conf.c:625 +#, c-format +msgid " --> Where=%s\n" +msgstr " --> Where=%s\n" + +#: src/dird/dird_conf.c:628 +#, fuzzy, c-format +msgid " --> RegexWhere=%s\n" +msgstr " --> Where=%s\n" + +#: src/dird/dird_conf.c:631 +#, c-format +msgid " --> Bootstrap=%s\n" +msgstr " --> Bootstrap=%s\n" + +#: src/dird/dird_conf.c:634 +#, c-format +msgid " --> WriteBootstrap=%s\n" +msgstr " --> WriteBootstrap=%s\n" + +#: src/dird/dird_conf.c:646 src/lib/runscript.c:263 +msgid " --> RunScript\n" +msgstr " --> RunScript\n" + +#: src/dird/dird_conf.c:647 src/lib/runscript.c:264 +#, c-format +msgid " --> Command=%s\n" +msgstr " --> Command=%s\n" + +#: src/dird/dird_conf.c:648 src/lib/runscript.c:265 +#, c-format +msgid " --> Target=%s\n" +msgstr " --> Target=%s\n" + +#: src/dird/dird_conf.c:649 src/lib/runscript.c:266 +#, c-format +msgid " --> RunOnSuccess=%u\n" +msgstr " --> RunOnSuccess=%u\n" + +#: src/dird/dird_conf.c:650 src/lib/runscript.c:267 +#, c-format +msgid " --> RunOnFailure=%u\n" +msgstr " --> RunOnFailure=%u\n" + +#: src/dird/dird_conf.c:651 src/lib/runscript.c:268 +#, fuzzy, c-format +msgid " --> FailJobOnError=%u\n" +msgstr " --> AbortJobOnError=%u\n" + +#: src/dird/dird_conf.c:652 src/lib/runscript.c:269 +#, c-format +msgid " --> RunWhen=%u\n" +msgstr " --> RunWhen=%u\n" + +#: src/dird/dird_conf.c:678 +#, c-format +msgid " --> Run=%s\n" +msgstr " --> Run=%s\n" + +#: src/dird/dird_conf.c:682 +#, c-format +msgid " --> SelectionPattern=%s\n" +msgstr " --> SelectionPattern=%s\n" + +#: src/dird/dird_conf.c:693 +#, c-format +msgid "FileSet: name=%s\n" +msgstr "FileSet: name=%s\n" + +#: src/dird/dird_conf.c:771 src/dird/dird_conf.c:850 +#, c-format +msgid "Schedule: name=%s\n" +msgstr "Schedule: name=%s\n" + +#: src/dird/dird_conf.c:776 +#, c-format +msgid " --> Run Level=%s\n" +msgstr " --> Run Level=%s\n" + +#: src/dird/dird_conf.c:777 +msgid " hour=" +msgstr " hour=" + +#: src/dird/dird_conf.c:786 +msgid " mday=" +msgstr " mday=" + +#: src/dird/dird_conf.c:795 +msgid " month=" +msgstr " month=" + +#: src/dird/dird_conf.c:804 +msgid " wday=" +msgstr " wday=" + +#: src/dird/dird_conf.c:813 +msgid " wom=" +msgstr " wom=" + +#: src/dird/dird_conf.c:822 +msgid " woy=" +msgstr " woy=" + +#: src/dird/dird_conf.c:831 +#, c-format +msgid " mins=%d\n" +msgstr " mins=%d\n" + +#: src/dird/dird_conf.c:833 src/dird/dird_conf.c:837 src/dird/dird_conf.c:841 +msgid " --> " +msgstr " --> " + +#: src/dird/dird_conf.c:855 +#, c-format +msgid "Pool: name=%s PoolType=%s\n" +msgstr "Pool: name=%s PoolType=%s\n" + +#: src/dird/dird_conf.c:857 +#, c-format +msgid " use_cat=%d use_once=%d cat_files=%d\n" +msgstr " use_cat=%d use_once=%d cat_files=%d\n" + +#: src/dird/dird_conf.c:860 +#, c-format +msgid " max_vols=%d auto_prune=%d VolRetention=%s\n" +msgstr " max_vols=%d auto_prune=%d VolRetention=%s\n" + +#: src/dird/dird_conf.c:863 +#, c-format +msgid " VolUse=%s recycle=%d LabelFormat=%s\n" +msgstr " VolUse=%s recycle=%d LabelFormat=%s\n" + +#: src/dird/dird_conf.c:867 +#, c-format +msgid " CleaningPrefix=%s LabelType=%d\n" +msgstr " CleaningPrefix=%s LabelType=%d\n" + +#: src/dird/dird_conf.c:869 +#, fuzzy, c-format +msgid " RecyleOldest=%d PurgeOldest=%d\n" +msgstr " RecyleOldest=%d PurgeOldest=%d MaxVolJobs=%d MaxVolFiles=%d\n" + +#: src/dird/dird_conf.c:872 +#, fuzzy, c-format +msgid " MaxVolJobs=%d MaxVolFiles=%d MaxVolBytes=%s\n" +msgstr " max_vols=%d auto_prune=%d VolRetention=%s\n" + +#: src/dird/dird_conf.c:876 +#, c-format +msgid " MigTime=%s MigHiBytes=%s MigLoBytes=%s\n" +msgstr " MigTime=%s MigHiBytes=%s MigLoBytes=%s\n" + +#: src/dird/dird_conf.c:881 +#, fuzzy, c-format +msgid " NextPool=%s\n" +msgstr " opcmd=%s\n" + +#: src/dird/dird_conf.c:884 +#, fuzzy, c-format +msgid " RecyclePool=%s\n" +msgstr " opcmd=%s\n" + +#: src/dird/dird_conf.c:887 +#, fuzzy, c-format +msgid " Catalog=%s\n" +msgstr " mailcmd=%s\n" + +#: src/dird/dird_conf.c:907 +#, c-format +msgid "Messages: name=%s\n" +msgstr "Messages: name=%s\n" + +#: src/dird/dird_conf.c:909 +#, c-format +msgid " mailcmd=%s\n" +msgstr " mailcmd=%s\n" + +#: src/dird/dird_conf.c:911 +#, c-format +msgid " opcmd=%s\n" +msgstr " opcmd=%s\n" + +#: src/dird/dird_conf.c:915 src/tray-monitor/tray_conf.c:199 +#, c-format +msgid "Unknown resource type %d in dump_resource.\n" +msgstr "Unbekannter resource type %d in dump_resource.\n" + +#: src/dird/dird_conf.c:1221 src/tray-monitor/tray_conf.c:257 +#, c-format +msgid "Unknown resource type %d in free_resource.\n" +msgstr "Unbekannter resource type %d in free_resource.\n" + +#: src/dird/dird_conf.c:1253 src/dird/dird_conf.c:1268 +#: src/dird/dird_conf.c:1865 src/filed/filed_conf.c:347 +#: src/gnome2-console/console_conf.c:258 src/wx-console/console_conf.c:265 +#: src/console/console_conf.c:257 src/tray-monitor/tray_conf.c:288 +#: src/qt-console/bat_conf.cpp:260 +#, c-format +msgid "%s item is required in %s resource, but not found.\n" +msgstr "%s item wird in %s resource benötigt, wurde aber nicht gefunden.\n" + +#: src/dird/dird_conf.c:1259 src/tray-monitor/tray_conf.c:294 +#: src/lib/parse_conf.c:233 +#, c-format +msgid "Too many items in %s resource\n" +msgstr "zu viele items in %s resource\n" + +#: src/dird/dird_conf.c:1299 +#, c-format +msgid "Cannot find Pool resource %s\n" +msgstr "Kann Pool resource %s nicht finden\n" + +#: src/dird/dird_conf.c:1308 +#, c-format +msgid "Cannot find Console resource %s\n" +msgstr "Kann Console resource %s nicht finden\n" + +#: src/dird/dird_conf.c:1314 src/filed/filed_conf.c:367 +#: src/stored/stored_conf.c:584 +#, c-format +msgid "Cannot find Director resource %s\n" +msgstr "Kann Director resource %s nicht finden\n" + +#: src/dird/dird_conf.c:1321 src/stored/stored_conf.c:590 +#, c-format +msgid "Cannot find Storage resource %s\n" +msgstr "Kann Storage resource %s nicht finden\n" + +#: src/dird/dird_conf.c:1330 +#, c-format +msgid "Cannot find Job resource %s\n" +msgstr "Kann Job resource %s nicht finden\n" + +#: src/dird/dird_conf.c:1379 +#, c-format +msgid "Cannot find Counter resource %s\n" +msgstr "Kann Counter resource %s nicht finden\n" + +#: src/dird/dird_conf.c:1387 src/filed/filed_conf.c:373 +#, c-format +msgid "Cannot find Client resource %s\n" +msgstr "Kann Client resource %s nicht finden\n" + +#: src/dird/dird_conf.c:1400 +#, c-format +msgid "Cannot find Schedule resource %s\n" +msgstr "Kann Schedule resource %s nicht finden\n" + +#: src/dird/dird_conf.c:1405 src/dird/dird_conf.c:1465 +#: src/tray-monitor/tray_conf.c:314 src/tray-monitor/tray_conf.c:352 +#, c-format +msgid "Unknown resource type %d in save_resource.\n" +msgstr "Unbekannter resource type %d in save_resource.\n" + +#: src/dird/dird_conf.c:1480 +#, c-format +msgid "Name item is required in %s resource, but not found.\n" +msgstr "Name item wird benötigt in %s resource, wurde aber nicht gefunden.\n" + +#: src/dird/dird_conf.c:1488 src/filed/filed_conf.c:432 +#: src/gnome2-console/console_conf.c:327 src/wx-console/console_conf.c:328 +#: src/console/console_conf.c:320 src/tray-monitor/tray_conf.c:372 +#: src/qt-console/bat_conf.cpp:329 +#, c-format +msgid "Attempt to define second %s resource named \"%s\" is not permitted.\n" +msgstr "" +"Der Versuch der Definition einer zweiten %s resource mit dem Namen \"%s\" " +"ist nicht erlaubt.\n" + +#: src/dird/dird_conf.c:1493 +#, c-format +msgid "Inserting %s res: %s index=%d pass=%d\n" +msgstr "Inserting %s res: %s index=%d pass=%d\n" + +#: src/dird/dird_conf.c:1565 +#, c-format +msgid "Expected a Migration Job Type keyword, got: %s" +msgstr " Migration Job Type Schlüsselwort erwartet, erhalten: %s" + +#: src/dird/dird_conf.c:1591 +#, c-format +msgid "Expected a Job Type keyword, got: %s" +msgstr "Job Type Schlüsselwort erwartet, erhalten: %s" + +#: src/dird/dird_conf.c:1615 +#, c-format +msgid "Expected a Job Level keyword, got: %s" +msgstr "Job Level Schlüsselwort erwartet, erhalten: %s" + +#: src/dird/dird_conf.c:1635 +#, c-format +msgid "Expected a Restore replacement option, got: %s" +msgstr "Restore replacement Option erwartet, erhalten: %s" + +#: src/dird/dird_conf.c:1683 src/dird/dird_conf.c:1794 +#: src/lib/parse_conf.c:723 src/lib/parse_conf.c:738 +#, c-format +msgid "Expect %s, got: %s" +msgstr "Erwartet: %s, erhalten: %s" + +#: src/dird/dird_conf.c:1705 src/lib/parse_conf.c:482 +#, c-format +msgid "Could not find config Resource %s referenced on line %d : %s\n" +msgstr "" +"Konnte config Resource %s , referenziert in Zeile %d : %s nicht finden\n" + +#: src/dird/admin.c:63 +#, c-format +msgid "Start Admin JobId %d, Job=%s\n" +msgstr "Starte Admin JobId %d, Job=%s\n" + +#: src/dird/admin.c:97 +msgid "Admin OK" +msgstr "Admin OK" + +#: src/dird/admin.c:101 +msgid "*** Admin Error ***" +msgstr "*** Admin Fehler ***" + +#: src/dird/admin.c:105 +msgid "Admin Canceled" +msgstr "Admin abgebrochen" + +#: src/dird/admin.c:115 +msgid "Bacula " +msgstr "Bacula " + +#: src/dird/ua_run.c:152 src/dird/ua_run.c:337 +msgid "Invalid time, using current time.\n" +msgstr "" + +#: src/dird/ua_run.c:174 +#, c-format +msgid "Invalid replace option: %s\n" +msgstr "" + +#: src/dird/ua_run.c:242 +msgid "OK to run? (yes/mod/no): " +msgstr "" + +#: src/dird/ua_run.c:263 +msgid "Level" +msgstr "" + +#: src/dird/ua_run.c:268 +#, fuzzy +msgid "Restore Client" +msgstr "Wiederherstellung läuft..." + +#: src/dird/ua_run.c:272 src/wx-console/wxbrestorepanel.cpp:356 +#: src/wx-console/wxbrestorepanel.cpp:844 +#: src/wx-console/wxbrestorepanel.cpp:1891 +msgid "When" +msgstr "" + +#: src/dird/ua_run.c:273 src/wx-console/wxbrestorepanel.cpp:357 +#: src/wx-console/wxbrestorepanel.cpp:1117 +#: src/wx-console/wxbrestorepanel.cpp:1894 +msgid "Priority" +msgstr "" + +#: src/dird/ua_run.c:279 +msgid "Verify Job" +msgstr "" + +#: src/dird/ua_run.c:282 src/wx-console/wxbrestorepanel.cpp:349 +#: src/wx-console/wxbrestorepanel.cpp:1872 +msgid "Bootstrap" +msgstr "" + +#: src/dird/ua_run.c:283 src/wx-console/wxbrestorepanel.cpp:350 +#: src/wx-console/wxbrestorepanel.cpp:1093 +#: src/wx-console/wxbrestorepanel.cpp:1874 +msgid "Where" +msgstr "" + +#: src/dird/ua_run.c:284 +#, fuzzy +msgid "File Relocation" +msgstr "File daemon" + +#: src/dird/ua_run.c:285 src/wx-console/wxbrestorepanel.cpp:352 +#: src/wx-console/wxbrestorepanel.cpp:1101 +#: src/wx-console/wxbrestorepanel.cpp:1878 +#: src/wx-console/wxbrestorepanel.cpp:1879 +#: src/wx-console/wxbrestorepanel.cpp:1880 +#: src/wx-console/wxbrestorepanel.cpp:1881 +#: src/wx-console/wxbrestorepanel.cpp:1882 +msgid "Replace" +msgstr "" + +#: src/dird/ua_run.c:286 +msgid "JobId" +msgstr "" + +#: src/dird/ua_run.c:297 src/dird/ua_run.c:1206 +msgid "user selection" +msgstr "" + +#: src/dird/ua_run.c:329 +msgid "" +"Please enter desired start time as YYYY-MM-DD HH:MM:SS (return for now): " +msgstr "" + +#: src/dird/ua_run.c:344 +msgid "Enter new Priority: " +msgstr "" + +#: src/dird/ua_run.c:348 +msgid "Priority must be a positive integer.\n" +msgstr "" + +#: src/dird/ua_run.c:368 +msgid "Please enter the Bootstrap file name: " +msgstr "" + +#: src/dird/ua_run.c:380 +#, c-format +msgid "Warning cannot open %s: ERR=%s\n" +msgstr "" + +#: src/dird/ua_run.c:399 +msgid "Please enter path prefix for restore (/ for none): " +msgstr "" + +#: src/dird/ua_run.c:421 +msgid "Replace:\n" +msgstr "" + +#: src/dird/ua_run.c:425 +msgid "Select replace option" +msgstr "" + +#: src/dird/ua_run.c:436 +msgid "" +"You must set the bootstrap file to NULL to be able to specify a JobId.\n" +msgstr "" + +#: src/dird/ua_run.c:456 +msgid "Job failed.\n" +msgstr "" + +#: src/dird/ua_run.c:459 +#, c-format +msgid "Job queued. JobId=%s\n" +msgstr "" + +#: src/dird/ua_run.c:465 +msgid "Job not run.\n" +msgstr "" + +#: src/dird/ua_run.c:477 +#, c-format +msgid "strip_prefix=%s add_prefix=%s add_suffix=%s\n" +msgstr "" + +#: src/dird/ua_run.c:480 +msgid "This will replace your current Where value\n" +msgstr "" + +#: src/dird/ua_run.c:481 +msgid "Strip prefix" +msgstr "" + +#: src/dird/ua_run.c:482 +msgid "Add prefix" +msgstr "" + +#: src/dird/ua_run.c:483 +msgid "Add file suffix" +msgstr "" + +#: src/dird/ua_run.c:484 +msgid "Enter a regexp" +msgstr "" + +#: src/dird/ua_run.c:485 +msgid "Test filename manipulation" +msgstr "" + +#: src/dird/ua_run.c:486 +msgid "Use this ?" +msgstr "" + +#: src/dird/ua_run.c:491 +msgid "Please enter path prefix to strip: " +msgstr "" + +#: src/dird/ua_run.c:499 +msgid "Please enter path prefix to add (/ for none): " +msgstr "" + +#: src/dird/ua_run.c:510 +msgid "Please enter file suffix to add: " +msgstr "" + +#: src/dird/ua_run.c:517 +msgid "Please enter a valid regexp (!from!to!): " +msgstr "" + +#: src/dird/ua_run.c:530 +#, c-format +msgid "regexwhere=%s\n" +msgstr "" + +#: src/dird/ua_run.c:536 +#, c-format +msgid "strip_prefix=%s add_prefix=%s add_suffix=%s result=%s\n" +msgstr "" + +#: src/dird/ua_run.c:543 +msgid "Cannot use your regexp\n" +msgstr "" + +#: src/dird/ua_run.c:547 +msgid "Please enter filename to test: " +msgstr "" + +#: src/dird/ua_run.c:549 +#, fuzzy, c-format +msgid "%s -> %s\n" +msgstr " --> Run=%s\n" + +#: src/dird/ua_run.c:593 +msgid "Cannot use your regexp.\n" +msgstr "" + +#: src/dird/ua_run.c:606 src/dird/ua_run.c:632 +msgid "Levels:\n" +msgstr "" + +#: src/dird/ua_run.c:607 src/filed/status.c:373 src/stored/status.c:560 +#: src/lib/util.c:335 +msgid "Base" +msgstr "" + +#: src/dird/ua_run.c:608 src/filed/status.c:375 src/stored/status.c:562 +#: src/lib/util.c:337 +msgid "Full" +msgstr "" + +#: src/dird/ua_run.c:609 src/filed/status.c:378 src/stored/status.c:565 +#: src/lib/util.c:340 +msgid "Incremental" +msgstr "" + +#: src/dird/ua_run.c:610 src/filed/status.c:381 src/stored/status.c:568 +#: src/lib/util.c:343 +msgid "Differential" +msgstr "" + +#: src/dird/ua_run.c:611 src/filed/status.c:384 src/stored/status.c:571 +#: src/lib/util.c:346 +msgid "Since" +msgstr "" + +#: src/dird/ua_run.c:612 src/dird/ua_run.c:638 +msgid "Select level" +msgstr "" + +#: src/dird/ua_run.c:633 +msgid "Initialize Catalog" +msgstr "" + +#: src/dird/ua_run.c:634 src/filed/status.c:387 src/stored/status.c:574 +#: src/lib/util.c:349 +msgid "Verify Catalog" +msgstr "" + +#: src/dird/ua_run.c:635 src/lib/util.c:355 +msgid "Verify Volume to Catalog" +msgstr "" + +#: src/dird/ua_run.c:636 src/lib/util.c:358 +msgid "Verify Disk to Catalog" +msgstr "" + +#: src/dird/ua_run.c:637 +msgid "Verify Volume Data (not yet implemented)" +msgstr "" + +#: src/dird/ua_run.c:658 +msgid "Level not appropriate for this Job. Cannot be changed.\n" +msgstr "" + +#: src/dird/ua_run.c:672 +#, c-format +msgid "" +"Run %s job\n" +"JobName: %s\n" +"FileSet: %s\n" +"Client: %s\n" +"Storage: %s\n" +"When: %s\n" +"Priority: %d\n" +msgstr "" + +#: src/dird/ua_run.c:679 src/lib/util.c:302 +msgid "Admin" +msgstr "" + +#: src/dird/ua_run.c:692 +#, c-format +msgid "" +"Run %s job\n" +"JobName: %s\n" +"Level: %s\n" +"Client: %s\n" +"FileSet: %s\n" +"Pool: %s (From %s)\n" +"Storage: %s (From %s)\n" +"When: %s\n" +"Priority: %d\n" +msgstr "" + +#: src/dird/ua_run.c:701 src/lib/util.c:293 +msgid "Backup" +msgstr "" + +#: src/dird/ua_run.c:724 +#, c-format +msgid "" +"Run %s job\n" +"JobName: %s\n" +"Level: %s\n" +"Client: %s\n" +"FileSet: %s\n" +"Pool: %s (From %s)\n" +"Storage: %s (From %s)\n" +"Verify Job: %s\n" +"Verify List: %s\n" +"When: %s\n" +"Priority: %d\n" +msgstr "" + +#: src/dird/ua_run.c:735 src/lib/util.c:296 +msgid "Verify" +msgstr "" + +#: src/dird/ua_run.c:753 +msgid "Please enter a JobId for restore: " +msgstr "" + +#: src/dird/ua_run.c:765 +#, c-format +msgid "" +"Run Restore job\n" +"JobName: f%s\n" +"Bootstrap: %s\n" +"RegexWhere: %s\n" +"Replace: %s\n" +"FileSet: %s\n" +"Backup Client: %s\n" +"Restore Client: %s\n" +"Storage: %s\n" +"When: %s\n" +"Catalog: %s\n" +"Priority: %d\n" +msgstr "" + +#: src/dird/ua_run.c:790 +#, c-format +msgid "" +"Run Restore job\n" +"JobName: %s\n" +"Bootstrap: %s\n" +"Where: %s\n" +"Replace: %s\n" +"FileSet: %s\n" +"Backup Client: %s\n" +"Restore Client: %s\n" +"Storage: %s\n" +"When: %s\n" +"Catalog: %s\n" +"Priority: %d\n" +msgstr "" + +#: src/dird/ua_run.c:817 +#, c-format +msgid "" +"Run Restore job\n" +"JobName: %s\n" +"Bootstrap: %s\n" +msgstr "" + +#: src/dird/ua_run.c:825 +#, c-format +msgid "RegexWhere: %s\n" +msgstr "" + +#: src/dird/ua_run.c:828 +#, fuzzy, c-format +msgid "Where: %s\n" +msgstr " opcmd=%s\n" + +#: src/dird/ua_run.c:832 +#, c-format +msgid "" +"Replace: %s\n" +"Client: %s\n" +"Storage: %s\n" +"JobId: %s\n" +"When: %s\n" +"Catalog: %s\n" +"Priority: %d\n" +msgstr "" + +#: src/dird/ua_run.c:851 +#, c-format +msgid "" +"Run Migration job\n" +"JobName: %s\n" +"Bootstrap: %s\n" +"Client: %s\n" +"FileSet: %s\n" +"Pool: %s (From %s)\n" +"Read Storage: %s (From %s)\n" +"Write Storage: %s (From %s)\n" +"JobId: %s\n" +"When: %s\n" +"Catalog: %s\n" +"Priority: %d\n" +msgstr "" + +#: src/dird/ua_run.c:876 +#, c-format +msgid "Unknown Job Type=%d\n" +msgstr "" + +#: src/dird/ua_run.c:936 +#, c-format +msgid "Value missing for keyword %s\n" +msgstr "" + +#: src/dird/ua_run.c:943 +msgid "Job name specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:951 +msgid "JobId specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:960 src/dird/ua_run.c:1104 +msgid "Client specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:968 +msgid "FileSet specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:976 +msgid "Level specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:985 +msgid "Storage specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:993 +msgid "RegexWhere or Where specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:998 +msgid "No authorization for \"regexwhere\" specification.\n" +msgstr "" + +#: src/dird/ua_run.c:1005 +msgid "Where or RegexWhere specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:1010 +msgid "No authoriztion for \"where\" specification.\n" +msgstr "" + +#: src/dird/ua_run.c:1017 +msgid "Bootstrap specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:1025 +msgid "Replace specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:1033 +msgid "When specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:1041 +msgid "Priority specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:1046 +msgid "Priority must be positive nonzero setting it to 10.\n" +msgstr "" + +#: src/dird/ua_run.c:1056 +msgid "Verify Job specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:1088 +msgid "Migration Job specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:1096 +msgid "Pool specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:1112 +#, fuzzy +msgid "Restore Client specified twice.\n" +msgstr "Kein storage angegeben.\n" + +#: src/dird/ua_run.c:1136 +#, c-format +msgid "Invalid keyword: %s\n" +msgstr "" + +#: src/dird/ua_run.c:1147 +#, c-format +msgid "Catalog \"%s\" not found\n" +msgstr "" + +#: src/dird/ua_run.c:1151 +#, c-format +msgid "No authorization. Catalog \"%s\".\n" +msgstr "" + +#: src/dird/ua_run.c:1162 +#, c-format +msgid "Job \"%s\" not found\n" +msgstr "" + +#: src/dird/ua_run.c:1169 +msgid "A job name must be specified.\n" +msgstr "" + +#: src/dird/ua_run.c:1175 +#, c-format +msgid "No authorization. Job \"%s\".\n" +msgstr "" + +#: src/dird/ua_run.c:1183 +#, c-format +msgid "Pool \"%s\" not found.\n" +msgstr "" + +#: src/dird/ua_run.c:1193 +#, c-format +msgid "No authorization. Pool \"%s\".\n" +msgstr "" + +#: src/dird/ua_run.c:1203 +#, c-format +msgid "Storage \"%s\" not found.\n" +msgstr "" + +#: src/dird/ua_run.c:1215 +#, c-format +msgid "No authorization. Storage \"%s\".\n" +msgstr "" + +#: src/dird/ua_run.c:1235 src/dird/ua_run.c:1255 +#, c-format +msgid "No authorization. Client \"%s\".\n" +msgstr "" + +#: src/dird/ua_run.c:1245 +#, fuzzy, c-format +msgid "Restore Client \"%s\" not found.\n" +msgstr "Pool Ressource \"%s\" nicht gefunden.\n" + +#: src/dird/ua_run.c:1265 +#, c-format +msgid "FileSet \"%s\" not found.\n" +msgstr "" + +#: src/dird/ua_run.c:1274 +#, c-format +msgid "No authorization. FileSet \"%s\".\n" +msgstr "" + +#: src/dird/ua_run.c:1282 +#, c-format +msgid "Verify Job \"%s\" not found.\n" +msgstr "" + +#: src/dird/ua_run.c:1292 +#, c-format +msgid "Migration Job \"%s\" not found.\n" +msgstr "" + +#: src/dird/jobq.c:75 +#, c-format +msgid "pthread_attr_init: ERR=%s\n" +msgstr "pthread_attr_init: ERR=%s\n" + +#: src/dird/jobq.c:84 +#, c-format +msgid "pthread_mutex_init: ERR=%s\n" +msgstr "pthread_mutex_init: ERR=%s\n" + +#: src/dird/jobq.c:90 +#, c-format +msgid "pthread_cond_init: ERR=%s\n" +msgstr "pthread_cond_init: ERR=%s\n" + +#: src/dird/jobq.c:123 src/dird/jobq.c:257 src/dird/jobq.c:322 +#: src/dird/jobq.c:403 +#, c-format +msgid "pthread_mutex_lock: ERR=%s\n" +msgstr "pthread_mutex_lock: ERR=%s\n" + +#: src/dird/jobq.c:136 +#, c-format +msgid "pthread_cond_broadcast: ERR=%s\n" +msgstr "pthread_cond_broadcast: ERR=%s\n" + +#: src/dird/jobq.c:144 +#, c-format +msgid "pthread_cond_wait: ERR=%s\n" +msgstr "pthread_cond_wait: ERR=%s\n" + +#: src/dird/jobq.c:152 +#, c-format +msgid "pthread_mutex_unlock: ERR=%s\n" +msgstr "pthread_mutex_unlock: ERR=%s\n" + +#: src/dird/jobq.c:188 +#, c-format +msgid "Job %s waiting %d seconds for scheduled start time.\n" +msgstr "Job %s wartet %d Sekunden auf die geplante Startzeit.\n" + +#: src/dird/jobq.c:250 +#, c-format +msgid "pthread_thread_create: ERR=%s\n" +msgstr "pthread_thread_create: ERR=%s\n" + +#: src/dird/jobq.c:368 +#, c-format +msgid "pthread_cond_signal: ERR=%s\n" +msgstr "pthread_cond_signal: ERR=%s\n" + +#: src/dird/jobq.c:377 +#, c-format +msgid "pthread_create: ERR=%s\n" +msgstr "pthread_create: ERR=%s\n" + +#: src/dird/jobq.c:515 +#, c-format +msgid "Rescheduled Job %s at %s to re-run in %d seconds (%s).\n" +msgstr "" +" Job %s für %s erneut geplant um in %d seconds nachgestartet zu werden (%" +"s).\n" + +#: src/dird/jobq.c:544 src/dird/jobq.c:549 +msgid "previous Job" +msgstr "vorheriger Job" + +#: src/dird/jobq.c:704 +#, c-format +msgid "" +"Job canceled. Attempt to read and write same device.\n" +" Read storage \"%s\" (From %s) -- Write storage \"%s\" (From %s)\n" +msgstr "" +"Job abgebrochen. Versuch auf das selbe Gerät zu lesen und zu schreiben.\n" +" lese storage \"%s\" (Von %s) -- schreib storage \"%s\" (Von %s)\n" + +#: src/dird/ua_server.c:72 +#, c-format +msgid "Cannot create UA thread: %s\n" +msgstr "" + +#: src/dird/ua_server.c:160 +msgid "You have messages.\n" +msgstr "" + +#: src/filed/acl.c:104 src/filed/acl.c:110 +msgid "ACL support not configured for your machine.\n" +msgstr "" + +#: src/filed/acl.c:186 +#, c-format +msgid "acl_to_text error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:215 +#, c-format +msgid "acl_delete_def_file error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:223 +#, c-format +msgid "acl_from_text error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:237 +#, c-format +msgid "ac_valid error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:252 +#, c-format +msgid "acl_set_file error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:286 +#, c-format +msgid "acltostr error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:303 src/filed/acl.c:311 +#, c-format +msgid "strtoacl error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:323 +#, c-format +msgid "setacl error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:359 +#, c-format +msgid "acltotext error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:376 +#, c-format +msgid "aclfromtext error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:388 +#, c-format +msgid "acl(SETACL) error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/verify.c:53 +#, c-format +msgid "Cannot malloc %d network read buffer\n" +msgstr "" + +#: src/filed/verify.c:123 src/filed/backup.c:292 +#, c-format +msgid " Could not access %s: ERR=%s\n" +msgstr "" + +#: src/filed/verify.c:130 src/filed/backup.c:299 +#, c-format +msgid " Could not follow link %s: ERR=%s\n" +msgstr "" + +#: src/filed/verify.c:137 src/filed/backup.c:306 +#, c-format +msgid " Could not stat %s: ERR=%s\n" +msgstr "" + +#: src/filed/verify.c:143 src/filed/backup.c:313 +#, c-format +msgid " Unchanged file skipped: %s\n" +msgstr "" + +#: src/filed/verify.c:146 +#, c-format +msgid " Archive file skipped: %s\n" +msgstr "" + +#: src/filed/verify.c:149 +#, c-format +msgid " Recursion turned off. Directory skipped: %s\n" +msgstr "" + +#: src/filed/verify.c:153 +#, c-format +msgid " File system change prohibited. Directory skipped: %s\n" +msgstr "" + +#: src/filed/verify.c:158 src/filed/backup.c:320 +#, c-format +msgid " Could not open directory %s: ERR=%s\n" +msgstr "" + +#: src/filed/verify.c:163 +#, c-format +msgid " Unknown file type %d: %s\n" +msgstr "" + +#: src/filed/verify.c:206 src/filed/verify_vol.c:209 +#, c-format +msgid "Network error in send to Director: ERR=%s\n" +msgstr "" + +#: src/filed/verify.c:239 src/filed/backup.c:366 +#, c-format +msgid "%s digest initialization failed\n" +msgstr "" + +#: src/filed/verify.c:300 src/filed/backup.c:462 +#, c-format +msgid " Cannot open %s: ERR=%s.\n" +msgstr "" + +#: src/filed/verify.c:314 src/filed/backup.c:499 +#, c-format +msgid " Cannot open resource fork for %s: ERR=%s.\n" +msgstr "" + +#: src/filed/verify.c:352 +#, c-format +msgid "Error reading file %s: ERR=%s\n" +msgstr "" + +#: src/filed/backup.c:86 +msgid "Cannot set buffer size FD->SD.\n" +msgstr "" + +#: src/filed/backup.c:129 src/filed/backup.c:138 +msgid "An error occurred while encrypting the stream.\n" +msgstr "" + +#: src/filed/backup.c:255 +#, c-format +msgid " Recursion turned off. Will not descend from %s into %s\n" +msgstr "" + +#: src/filed/backup.c:262 +#, c-format +msgid " %s is a different filesystem. Will not descend from %s into %s\n" +msgstr "" + +#: src/filed/backup.c:268 +#, c-format +msgid " Disallowed filesystem. Will not descend from %s into %s\n" +msgstr "" + +#: src/filed/backup.c:273 +#, c-format +msgid " Disallowed drive type. Will not descend into %s\n" +msgstr "" + +#: src/filed/backup.c:316 +#, c-format +msgid " Archive file not saved: %s\n" +msgstr "" + +#: src/filed/backup.c:326 +#, c-format +msgid " Unknown file type %d; not saved: %s\n" +msgstr "" + +#: src/filed/backup.c:380 +#, c-format +msgid "%s signature digest initialization failed\n" +msgstr "" + +#: src/filed/backup.c:400 +#, c-format +msgid "Python reader program \"%s\" not found.\n" +msgstr "" + +#: src/filed/backup.c:556 +msgid "Failed to allocate memory for crypto signature.\n" +msgstr "" + +#: src/filed/backup.c:561 src/filed/backup.c:567 src/filed/backup.c:582 +msgid "An error occurred while signing the stream.\n" +msgstr "" + +#: src/filed/backup.c:606 +msgid "An error occurred finalizing signing the stream.\n" +msgstr "" + +#: src/filed/backup.c:693 +#, c-format +msgid "Compression deflateParams error: %d\n" +msgstr "" + +#: src/filed/backup.c:705 +msgid "Encrypting sparse data not supported.\n" +msgstr "" + +#: src/filed/backup.c:712 +msgid "Failed to initialize encryption context.\n" +msgstr "" + +#: src/filed/backup.c:735 src/filed/backup.c:891 src/filed/backup.c:926 +#: src/filed/backup.c:937 src/filed/backup.c:983 src/filed/backup.c:996 +#: src/filed/backup.c:1004 src/filed/backup.c:1050 src/filed/backup.c:1086 +#, c-format +msgid "Network send error to SD. ERR=%s\n" +msgstr "" + +#: src/filed/backup.c:814 +#, c-format +msgid "Compression deflate error: %d\n" +msgstr "" + +#: src/filed/backup.c:821 +#, c-format +msgid "Compression deflateReset error: %d\n" +msgstr "" + +#: src/filed/backup.c:864 src/filed/backup.c:880 +msgid "Encryption error\n" +msgstr "" + +#: src/filed/backup.c:904 +#, c-format +msgid "Read error on file %s. ERR=%s\n" +msgstr "" + +#: src/filed/backup.c:907 +msgid "Too many errors.\n" +msgstr "" + +#: src/filed/backup.c:917 +msgid "Encryption padding error\n" +msgstr "" + +#: src/filed/backup.c:974 +#, c-format +msgid "Error reading ACL of %s\n" +msgstr "" + +#: src/filed/backup.c:1029 +msgid "Invalid file flags, no supported data stream type.\n" +msgstr "" + +#: src/filed/job.c:373 +#, c-format +msgid "2901 Job %s not found.\n" +msgstr "" + +#: src/filed/job.c:382 +#, c-format +msgid "2001 Job %s marked to be canceled.\n" +msgstr "" + +#: src/filed/job.c:385 +msgid "2902 Error scanning cancel command.\n" +msgstr "" + +#: src/filed/job.c:404 +#, c-format +msgid "2991 Bad setdebug command: %s\n" +msgstr "" + +#: src/filed/job.c:420 +#, c-format +msgid "Bad estimate command: %s" +msgstr "" + +#: src/filed/job.c:421 +msgid "2992 Bad estimate command.\n" +msgstr "" + +#: src/filed/job.c:444 +#, c-format +msgid "Bad Job Command: %s" +msgstr "" + +#: src/filed/job.c:465 +#, c-format +msgid "Bad RunBeforeJob command: %s\n" +msgstr "" + +#: src/filed/job.c:466 src/filed/job.c:484 +msgid "2905 Bad RunBeforeJob command.\n" +msgstr "" + +#: src/filed/job.c:495 +msgid "2905 Bad RunBeforeNow command.\n" +msgstr "" + +#: src/filed/job.c:514 +#, c-format +msgid "Bad RunAfter command: %s\n" +msgstr "" + +#: src/filed/job.c:515 +msgid "2905 Bad RunAfterJob command.\n" +msgstr "" + +#: src/filed/job.c:549 +#, c-format +msgid "Bad RunScript command: %s\n" +msgstr "" + +#: src/filed/job.c:550 +msgid "2905 Bad RunScript command.\n" +msgstr "" + +#: src/filed/job.c:652 +#, c-format +msgid "Error running program: %s. stat=%d: ERR=%s\n" +msgstr "" + +#: src/filed/job.c:662 +#, c-format +msgid "Cannot open FileSet input file: %s. ERR=%s\n" +msgstr "" + +#: src/filed/job.c:758 +#, c-format +msgid "REGEX %s compile error. ERR=%s\n" +msgstr "" + +#: src/filed/job.c:820 +#, c-format +msgid "Invalid FileSet command: %s\n" +msgstr "" + +#: src/filed/job.c:1054 src/tools/testfind.c:635 src/findlib/match.c:199 +#, c-format +msgid "Unknown include/exclude option: %c\n" +msgstr "" + +#: src/filed/job.c:1123 src/stored/fd_cmds.c:356 +#, c-format +msgid "Could not create bootstrap file %s: ERR=%s\n" +msgstr "" + +#: src/filed/job.c:1232 +#, c-format +msgid "" +"DIR and FD clocks differ by %d seconds, FD automatically compensating.\n" +msgstr "" + +#: src/filed/job.c:1240 +#, c-format +msgid "Unknown backup level: %s\n" +msgstr "" + +#: src/filed/job.c:1252 +#, c-format +msgid "Bad level command: %s\n" +msgstr "" + +#: src/filed/job.c:1273 +#, c-format +msgid "Bad session command: %s" +msgstr "" + +#: src/filed/job.c:1294 +#, c-format +msgid "Bad storage command: %s" +msgstr "" + +#: src/filed/job.c:1303 +#, c-format +msgid "Failed to connect to Storage daemon: %s:%d\n" +msgstr "" + +#: src/filed/job.c:1315 +msgid "Failed to authenticate Storage daemon.\n" +msgstr "" + +#: src/filed/job.c:1353 +msgid "Cannot contact Storage daemon\n" +msgstr "" + +#: src/filed/job.c:1371 +#, c-format +msgid "Bad response to append open: %s\n" +msgstr "" + +#: src/filed/job.c:1376 +msgid "Bad response from stored to open command\n" +msgstr "" + +#: src/filed/job.c:1403 +#, c-format +msgid "Generate VSS snapshots. Driver=\"%s\", Drive(s)=\"%s\"\n" +msgstr "" + +#: src/filed/job.c:1405 +msgid "Generate VSS snapshots failed.\n" +msgstr "" + +#: src/filed/job.c:1412 +#, c-format +msgid "" +"Generate VSS snapshot of drive \"%c:\\\" failed. VSS support is disabled on " +"this drive.\n" +msgstr "" + +#: src/filed/job.c:1419 +#, c-format +msgid "VSS Writer (PrepareForBackup): %s\n" +msgstr "" + +#: src/filed/job.c:1424 +msgid "No drive letters found for generating VSS snapshots.\n" +msgstr "" + +#: src/filed/job.c:1428 +#, c-format +msgid "VSS was not initialized properly. VSS support is disabled. ERR=%s\n" +msgstr "" + +#: src/filed/job.c:1478 +msgid "Append Close with SD failed.\n" +msgstr "" + +#: src/filed/job.c:1482 +#, c-format +msgid "Bad status %d returned from Storage Daemon.\n" +msgstr "" + +#: src/filed/job.c:1500 +#, c-format +msgid "VSS Writer (BackupComplete): %s\n" +msgstr "" + +#: src/filed/job.c:1528 +#, c-format +msgid "2994 Bad verify command: %s\n" +msgstr "" + +#: src/filed/job.c:1543 src/filed/job.c:1582 +#, c-format +msgid "2994 Bad verify level: %s\n" +msgstr "" + +#: src/filed/job.c:1626 +#, c-format +msgid "Bad replace command. CMD=%s\n" +msgstr "" + +#: src/filed/job.c:1644 +#, c-format +msgid "Bad where regexp. where=%s\n" +msgstr "" + +#: src/filed/job.c:1718 +msgid "Improper calling sequence.\n" +msgstr "" + +#: src/filed/job.c:1738 +#, c-format +msgid "Bad response to SD read open: %s\n" +msgstr "" + +#: src/filed/job.c:1743 +msgid "Bad response from stored to read open command\n" +msgstr "" + +#: src/filed/job.c:1807 +#, c-format +msgid "Comm error with SD. bad response to %s. ERR=%s\n" +msgstr "" + +#: src/filed/job.c:1810 +#, c-format +msgid "Bad response to %s command. Wanted %s, got %s\n" +msgstr "" + +#: src/filed/authenticate.c:62 +#, c-format +msgid "I only authenticate directors, not %d\n" +msgstr "" + +#: src/filed/authenticate.c:70 src/stored/authenticate.c:69 +#, c-format +msgid "Bad Hello command from Director at %s. Len=%d.\n" +msgstr "" + +#: src/filed/authenticate.c:82 src/stored/authenticate.c:80 +#, c-format +msgid "Bad Hello command from Director at %s: %s\n" +msgstr "" + +#: src/filed/authenticate.c:94 +#, fuzzy, c-format +msgid "Connection from unknown Director %s at %s rejected.\n" +msgstr "unbekannt" + +#: src/filed/authenticate.c:134 +#, c-format +msgid "Incorrect password given by Director at %s.\n" +msgstr "" + +#: src/filed/authenticate.c:141 +msgid "" +"Authorization problem: Remote server did not advertize required TLS " +"support.\n" +msgstr "" + +#: src/filed/authenticate.c:195 src/stored/dircmd.c:204 +msgid "Unable to authenticate Director\n" +msgstr "" + +#: src/filed/authenticate.c:246 +msgid "" +"Authorization key rejected by Storage daemon.\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" + +#: src/filed/restore.c:133 +#, c-format +msgid "Size of data or stream of %s not correct. Original %s, restored %s.\n" +msgstr "" + +#: src/filed/restore.c:255 src/filed/verify_vol.c:99 +#, c-format +msgid "Record header scan error: %s\n" +msgstr "" + +#: src/filed/restore.c:263 src/filed/verify_vol.c:108 +#, c-format +msgid "Data record error. ERR=%s\n" +msgstr "" + +#: src/filed/restore.c:267 src/filed/verify_vol.c:112 +#, c-format +msgid "Actual data size %d not same as header %d\n" +msgstr "" + +#: src/filed/restore.c:294 src/filed/restore.c:639 +msgid "Logic error: output file should be open\n" +msgstr "" + +#: src/filed/restore.c:315 src/filed/restore.c:652 +msgid "Logic error: output file should not be open\n" +msgstr "" + +#: src/filed/restore.c:326 src/filed/verify_vol.c:151 +#: src/stored/bextract.c:307 src/stored/bls.c:390 src/stored/bscan.c:670 +#, c-format +msgid "Record header file index %ld not equal record index %ld\n" +msgstr "" + +#: src/filed/restore.c:339 src/stored/bextract.c:316 +#, c-format +msgid "%s stream not supported on this Client.\n" +msgstr "" + +#: src/filed/restore.c:391 +msgid "Unexpected cryptographic session data stream.\n" +msgstr "" + +#: src/filed/restore.c:399 +msgid "" +"No private decryption keys have been defined to decrypt encrypted backup " +"data.\n" +msgstr "" + +#: src/filed/restore.c:410 +#, fuzzy +msgid "Could not create digest.\n" +msgstr "Konnte Client Eintrag nicht anlegen. ERR=%s\n" + +#: src/filed/restore.c:424 +msgid "Missing private key required to decrypt encrypted backup data.\n" +msgstr "" + +#: src/filed/restore.c:427 +msgid "Decrypt of the session key failed.\n" +msgstr "" + +#: src/filed/restore.c:431 +#, c-format +msgid "An error occurred while decoding encrypted session data stream: %s\n" +msgstr "" + +#: src/filed/restore.c:480 src/filed/restore.c:526 +#, c-format +msgid "Missing encryption session data stream for %s\n" +msgstr "" + +#: src/filed/restore.c:488 src/filed/restore.c:533 +#, c-format +msgid "Failed to initialize decryption context for %s\n" +msgstr "" + +#: src/filed/restore.c:545 +#, c-format +msgid " Cannot open resource fork for %s.\n" +msgstr "" + +#: src/filed/restore.c:571 +#, c-format +msgid " Invalid length of Finder Info (got %d, not 32)\n" +msgstr "" + +#: src/filed/restore.c:575 +#, c-format +msgid " Could not set Finder Info on %s\n" +msgstr "" + +#: src/filed/restore.c:588 +#, c-format +msgid "Can't restore ACL of %s\n" +msgstr "" + +#: src/filed/restore.c:600 +#, c-format +msgid "Can't restore default ACL of %s\n" +msgstr "" + +#: src/filed/restore.c:610 +msgid "Unexpected cryptographic signature data stream.\n" +msgstr "" + +#: src/filed/restore.c:616 +#, c-format +msgid "Failed to decode message signature for %s\n" +msgstr "" + +#: src/filed/restore.c:655 src/stored/bextract.c:474 +#, c-format +msgid "Unknown stream=%d ignored. This shouldn't happen!\n" +msgstr "" + +#: src/filed/restore.c:732 +#, c-format +msgid "" +"%d non-supported data streams and %d non-supported attrib streams ignored.\n" +msgstr "" + +#: src/filed/restore.c:736 +#, c-format +msgid "%d non-supported resource fork streams ignored.\n" +msgstr "" + +#: src/filed/restore.c:739 +#, c-format +msgid "%d non-supported Finder Info streams ignored.\n" +msgstr "" + +#: src/filed/restore.c:742 +#, c-format +msgid "%d non-supported acl streams ignored.\n" +msgstr "" + +#: src/filed/restore.c:745 +#, c-format +msgid "%d non-supported crypto streams ignored.\n" +msgstr "" + +#: src/filed/restore.c:757 +msgid "None" +msgstr "" + +#: src/filed/restore.c:761 +msgid "Zlib errno" +msgstr "" + +#: src/filed/restore.c:763 +msgid "Zlib stream error" +msgstr "" + +#: src/filed/restore.c:765 +msgid "Zlib data error" +msgstr "" + +#: src/filed/restore.c:767 +msgid "Zlib memory error" +msgstr "" + +#: src/filed/restore.c:769 +msgid "Zlib buffer error" +msgstr "" + +#: src/filed/restore.c:771 +msgid "Zlib version error" +msgstr "" + +#: src/filed/restore.c:773 src/lib/util.c:597 src/lib/util.c:607 +#: src/lib/util.c:615 src/lib/util.c:622 src/lib/util.c:629 src/lib/util.c:643 +#: src/lib/util.c:653 src/lib/util.c:660 src/lib/util.c:671 +msgid "*none*" +msgstr "" + +#: src/filed/restore.c:809 +#, c-format +msgid "Missing cryptographic signature for %s\n" +msgstr "" + +#: src/filed/restore.c:838 src/filed/restore.c:862 +#, fuzzy, c-format +msgid "Signature validation failed for file %s: ERR=%s\n" +msgstr "Konnte bootstrap Datei %s nicht erzeugen. ERR=%s\n" + +#: src/filed/restore.c:852 +#, fuzzy, c-format +msgid "Digest one file failed for file: %s\n" +msgstr "Mehr als ein Dateiname! %s für Datei: %s\n" + +#: src/filed/restore.c:883 +#, c-format +msgid "Signature validation failed for %s: %s\n" +msgstr "" + +#: src/filed/restore.c:909 src/stored/bextract.c:405 +#, c-format +msgid "Seek to %s error on %s: ERR=%s\n" +msgstr "" + +#: src/filed/restore.c:936 +#, c-format +msgid "Uncompression error on file %s. ERR=%s\n" +msgstr "" + +#: src/filed/restore.c:945 src/stored/bextract.c:439 +msgid "GZIP data stream found, but GZIP not configured!\n" +msgstr "" + +#: src/filed/restore.c:968 +#, c-format +msgid "Write error in Win32 Block Decomposition on %s: %s\n" +msgstr "" + +#: src/filed/restore.c:974 src/stored/bextract.c:377 src/stored/bextract.c:427 +#, c-format +msgid "Write error on %s: %s\n" +msgstr "" + +#: src/filed/restore.c:1023 +msgid "Decryption error\n" +msgstr "" + +#: src/filed/restore.c:1113 +#, c-format +msgid "Decryption error. buf_len=%d decrypt_len=%d on file %s\n" +msgstr "" + +#: src/filed/restore.c:1217 +msgid "Open File Manager paused\n" +msgstr "" + +#: src/filed/restore.c:1221 +msgid "FAILED to pause Open File Manager\n" +msgstr "" + +#: src/filed/restore.c:1229 +#, c-format +msgid "Running as '%s'. Privmask=%#08x\n" +msgstr "" + +#: src/filed/restore.c:1231 +msgid "Failed to retrieve current UserName\n" +msgstr "" + +#: src/filed/filed.c:65 +#, c-format +msgid "" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: bacula-fd [-f -s] [-c config_file] [-d debug_level]\n" +" -c use as configuration file\n" +" -dnn set debug level to nn\n" +" -f run in foreground (for debugging)\n" +" -g groupid\n" +" -s no signals (for debugging)\n" +" -t test configuration file and exit\n" +" -u userid\n" +" -v verbose user messages\n" +" -? print this message.\n" +"\n" +msgstr "" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: bacula-fd [-f -s] [-c config_datei] [-d debug_level]\n" +" -c benutze als Konfigurationsdatei\n" +" -dnn setze debug level auf nn\n" +" -f starte in Vordergrund (für debugging)\n" +" -g groupid\n" +" -s no signals (für debugging)\n" +" -t Konfigurationsdatei testen und beenden\n" +" -u userid\n" +" -v Ausführliche Benutzermeldungen\n" +" -? diese Meldung ausgeben.\n" +"\n" + +#: src/filed/filed.c:277 +#, c-format +msgid "" +"No File daemon resource defined in %s\n" +"Without that I don't know who I am :-(\n" +msgstr "" + +#: src/filed/filed.c:282 +#, c-format +msgid "Only one Client resource permitted in %s\n" +msgstr "" + +#: src/filed/filed.c:305 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"File daemon in %s.\n" +msgstr "" + +#: src/filed/filed.c:329 +msgid "PKI encryption/signing enabled but not compiled into Bacula.\n" +msgstr "" + +#: src/filed/filed.c:340 +#, c-format +msgid "" +"\"PKI Key Pair\" must be defined for File daemon \"%s\" in %s if either " +"\"PKI Sign\" or \"PKI Encrypt\" are enabled.\n" +msgstr "" + +#: src/filed/filed.c:352 src/filed/filed.c:383 src/filed/filed.c:424 +msgid "Failed to allocate a new keypair object.\n" +msgstr "" + +#: src/filed/filed.c:356 +#, c-format +msgid "Failed to load public certificate for File daemon \"%s\" in %s.\n" +msgstr "" + +#: src/filed/filed.c:362 +#, c-format +msgid "Failed to load private key for File daemon \"%s\" in %s.\n" +msgstr "" + +#: src/filed/filed.c:392 +#, c-format +msgid "Failed to load private key from file %s for File daemon \"%s\" in %s.\n" +msgstr "" + +#: src/filed/filed.c:399 +#, c-format +msgid "" +"Failed to load trusted signer certificate from file %s for File daemon \"%s" +"\" in %s.\n" +msgstr "" + +#: src/filed/filed.c:430 +#, c-format +msgid "" +"Failed to load master key certificate from file %s for File daemon \"%s\" in " +"%s.\n" +msgstr "" + +#: src/filed/filed.c:446 +#, c-format +msgid "No Director resource defined in %s\n" +msgstr "" + +#: src/filed/status.c:77 +#, c-format +msgid "%s Version: %s (%s) %s %s %s %s\n" +msgstr "" + +#: src/filed/status.c:81 src/stored/status.c:86 +#, c-format +msgid "Daemon started %s, %d Job%s run since started.\n" +msgstr "" + +#: src/filed/status.c:136 +#, c-format +msgid " Sizeof: boffset_t=%d size_t=%d debug=%d trace=%d\n" +msgstr "" + +#: src/filed/status.c:155 +#, c-format +msgid "Director connected at: %s\n" +msgstr "" + +#: src/filed/status.c:157 +#, c-format +msgid "JobId %d Job %s is running.\n" +msgstr "" + +#: src/filed/status.c:160 +#, c-format +msgid " %s%s Job started: %s\n" +msgstr "" + +#: src/filed/status.c:172 +#, fuzzy, c-format +msgid " Files=%s Bytes=%s Bytes/sec=%s Errors=%d\n" +msgstr " MigTime=%s MigHiBytes=%s MigLoBytes=%s\n" + +#: src/filed/status.c:178 +#, fuzzy, c-format +msgid " Files Examined=%s\n" +msgstr "FileSet: name=%s\n" + +#: src/filed/status.c:183 +#, c-format +msgid " Processing file: %s\n" +msgstr "" + +#: src/filed/status.c:194 +msgid " SDSocket closed.\n" +msgstr "" + +#: src/filed/status.c:328 src/filed/status.c:352 src/stored/status.c:636 +#: src/stored/status.c:659 +#, c-format +msgid "Bad .status command: %s\n" +msgstr "" + +#: src/filed/status.c:329 +msgid "2900 Bad .status command, missing argument.\n" +msgstr "" + +#: src/filed/status.c:353 +msgid "2900 Bad .status command, wrong argument.\n" +msgstr "" + +#: src/filed/status.c:390 src/stored/status.c:577 +msgid "Init Catalog" +msgstr "" + +#: src/filed/status.c:393 src/stored/status.c:580 +msgid "Volume to Catalog" +msgstr "" + +#: src/filed/status.c:396 src/stored/status.c:583 +msgid "Disk to Catalog" +msgstr "" + +#: src/filed/status.c:399 src/stored/status.c:586 +msgid "Data" +msgstr "" + +#: src/filed/status.c:405 src/stored/status.c:592 src/lib/util.c:367 +msgid "Unknown Job Level" +msgstr "" + +#: src/filed/status.c:421 +msgid "Bacula Client: Idle" +msgstr "" + +#: src/filed/status.c:432 +msgid "Bacula Client: Running" +msgstr "" + +#: src/filed/status.c:446 +msgid "Bacula Client: Last Job Canceled" +msgstr "" + +#: src/filed/status.c:450 +msgid "Bacula Client: Last Job Failed" +msgstr "" + +#: src/filed/status.c:454 +msgid "Bacula Client: Last Job had Warnings" +msgstr "" + +#: src/filed/verify_vol.c:65 +msgid "Storage command not issued before Verify.\n" +msgstr "" + +#: src/filed/verify_vol.c:145 +#, c-format +msgid "Error scanning record header: %s\n" +msgstr "" + +#: src/filed/filed_conf.c:319 src/filed/filed_conf.c:384 +#: src/filed/filed_conf.c:414 src/gnome2-console/console_conf.c:154 +#: src/gnome2-console/console_conf.c:232 src/gnome2-console/console_conf.c:280 +#: src/gnome2-console/console_conf.c:310 src/wx-console/console_conf.c:164 +#: src/wx-console/console_conf.c:239 src/wx-console/console_conf.c:284 +#: src/wx-console/console_conf.c:311 src/stored/stored_conf.c:528 +#: src/stored/stored_conf.c:616 src/stored/stored_conf.c:651 +#: src/console/console_conf.c:155 src/console/console_conf.c:231 +#: src/console/console_conf.c:276 src/console/console_conf.c:303 +#: src/qt-console/bat_conf.cpp:156 src/qt-console/bat_conf.cpp:234 +#: src/qt-console/bat_conf.cpp:282 src/qt-console/bat_conf.cpp:312 +#, c-format +msgid "Unknown resource type %d\n" +msgstr "" + +#: src/filed/pythonfd.c:157 src/stored/pythonsd.c:162 +#, c-format +msgid "Cannot delete attribute %s" +msgstr "" + +#: src/filed/pythonfd.c:175 src/filed/pythonfd.c:191 src/stored/pythonsd.c:195 +#, c-format +msgid "Cannot find attribute %s" +msgstr "" + +#: src/gnome2-console/interface.c:202 +msgid "Bacula Console" +msgstr "" + +#: src/gnome2-console/interface.c:235 src/wx-console/wxbmainframe.cpp:248 +#: src/wx-console/wxbmainframe.cpp:619 +msgid "Connect" +msgstr "" + +#: src/gnome2-console/interface.c:238 +msgid "Connect to Director" +msgstr "" + +#: src/gnome2-console/interface.c:242 +msgid "Run" +msgstr "" + +#: src/gnome2-console/interface.c:245 src/gnome2-console/interface.c:682 +#: src/gnome2-console/interface.c:696 +msgid "Run a Job" +msgstr "" + +#: src/gnome2-console/interface.c:249 +msgid "Dir Status" +msgstr "" + +#: src/gnome2-console/interface.c:255 src/lib/util.c:299 +#: src/wx-console/wxbrestorepanel.cpp:404 +#: src/wx-console/wxbrestorepanel.cpp:1974 +msgid "Restore" +msgstr "" + +#: src/gnome2-console/interface.c:261 +msgid "Label" +msgstr "" + +#: src/gnome2-console/interface.c:267 +msgid "Msgs" +msgstr "" + +#: src/gnome2-console/interface.c:270 +msgid "Display Messages" +msgstr "" + +#: src/gnome2-console/interface.c:294 +msgid " Command: " +msgstr "" + +#: src/gnome2-console/interface.c:303 +msgid "Enter Commands Here" +msgstr "" + +#: src/gnome2-console/interface.c:314 +msgid " Status: " +msgstr "" + +#: src/gnome2-console/interface.c:323 src/gnome2-console/interface.c:1709 +msgid " " +msgstr "" + +#: src/gnome2-console/interface.c:424 +msgid "About Bacula Console" +msgstr "" + +#: src/gnome2-console/interface.c:439 +msgid "Bacula Console\n" +msgstr "" + +#: src/gnome2-console/interface.c:448 +msgid "Copyright (c) 2000 - 2004, Kern Sibbald and John Walker" +msgstr "" + +#: src/gnome2-console/interface.c:453 +msgid "Authors: Kern Sibbald and John Walker" +msgstr "" + +#: src/gnome2-console/interface.c:458 +msgid "It comes by night and sucks the essence from your computers" +msgstr "" + +#: src/gnome2-console/interface.c:523 src/gnome2-console/interface.c:540 +msgid "Select Director" +msgstr "" + +#: src/gnome2-console/interface.c:570 +msgid " " +msgstr "" + +#: src/gnome2-console/interface.c:715 src/gnome2-console/interface.c:1631 +msgid "Job:" +msgstr "" + +#: src/gnome2-console/interface.c:736 +msgid " Type:" +msgstr "" + +#: src/gnome2-console/interface.c:756 src/gnome2-console/interface.c:785 +#: src/gnome2-console/interface.c:1284 src/gnome2-console/interface.c:1680 +msgid " " +msgstr "" + +#: src/gnome2-console/interface.c:765 src/gnome2-console/interface.c:1660 +#: src/wx-console/wxbrestorepanel.cpp:1886 +msgid "Client:" +msgstr "" + +#: src/gnome2-console/interface.c:795 src/gnome2-console/interface.c:1689 +msgid "FileSet: " +msgstr "" + +#: src/gnome2-console/interface.c:820 src/wx-console/wxbrestorepanel.cpp:1893 +msgid "Priority:" +msgstr "" + +#: src/gnome2-console/interface.c:836 +msgid "Level:" +msgstr "" + +#: src/gnome2-console/interface.c:857 +msgid " " +msgstr "" + +#: src/gnome2-console/interface.c:867 src/gnome2-console/interface.c:1433 +#: src/gnome2-console/interface.c:1718 +msgid "Pool:" +msgstr "" + +#: src/gnome2-console/interface.c:888 src/gnome2-console/interface.c:919 +#: src/gnome2-console/interface.c:949 src/gnome2-console/interface.c:969 +#: src/gnome2-console/interface.c:989 src/gnome2-console/interface.c:1009 +#: src/gnome2-console/interface.c:1014 src/gnome2-console/interface.c:1483 +#: src/gnome2-console/interface.c:1739 src/gnome2-console/interface.c:1769 +#: src/gnome2-console/interface.c:1788 src/gnome2-console/interface.c:1793 +msgid " " +msgstr "" + +#: src/gnome2-console/interface.c:898 src/gnome2-console/interface.c:1407 +#: src/gnome2-console/interface.c:1748 src/wx-console/wxbrestorepanel.cpp:1888 +msgid "Storage:" +msgstr "" + +#: src/gnome2-console/interface.c:929 +msgid "Messages:" +msgstr "" + +#: src/gnome2-console/interface.c:959 +msgid "Where: " +msgstr "" + +#: src/gnome2-console/interface.c:979 src/wx-console/wxbrestorepanel.cpp:1890 +msgid "When:" +msgstr "" + +#: src/gnome2-console/interface.c:999 src/wx-console/wxbrestorepanel.cpp:1871 +msgid "Bootstrap:" +msgstr "" + +#: src/gnome2-console/interface.c:1194 +msgid "Restore File Selection" +msgstr "" + +#: src/gnome2-console/interface.c:1238 +msgid "Current dir:" +msgstr "" + +#: src/gnome2-console/interface.c:1265 +msgid "Files Selected: " +msgstr "" + +#: src/gnome2-console/interface.c:1385 src/gnome2-console/interface.c:1396 +msgid "Label a Volume" +msgstr "" + +#: src/gnome2-console/interface.c:1458 +msgid "Volume Name:" +msgstr "" + +#: src/gnome2-console/interface.c:1472 +msgid "Slot:" +msgstr "" + +#: src/gnome2-console/interface.c:1598 +msgid "Restore Files Dialog" +msgstr "" + +#: src/gnome2-console/interface.c:1613 +msgid "Restore Files" +msgstr "" + +#: src/gnome2-console/interface.c:1778 +msgid "Before:" +msgstr "" + +#: src/gnome2-console/interface.c:1824 +msgid "Select Files" +msgstr "" + +#: src/gnome2-console/interface.c:1907 +msgid "Progress" +msgstr "" + +#: src/gnome2-console/console.c:102 +#, fuzzy, c-format +msgid "" +"\n" +"Version: %s (%s) %s %s %s\n" +"\n" +"Usage: bgnome-console [-s] [-c config_file] [-d debug_level] [config_file]\n" +" -c set configuration file to file\n" +" -dnn set debug level to nn\n" +" -s no signals\n" +" -t test - read configuration and exit\n" +" -? print this message.\n" +"\n" +msgstr "" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: dird [-f -s] [-c config_file] [-d debug_level] [config_file]\n" +" -c setze Konfigurationsdatei auf Datei\n" +" -dnn setze debug level auf nn\n" +" -f starte im Vordergrund (für debugging Zwecke)\n" +" -g groupid\n" +" -r starte jetzt\n" +" -s no signals\n" +" -t test - Konfiguration Lesen und beenden\n" +" -u userid\n" +" -v ausführliche Benutzer Meldungen\n" +" -? diese Meldung ausgeben.\n" +"\n" + +#: src/gnome2-console/console.c:160 src/console/console.c:664 +#: src/qt-console/main.cpp:216 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Director \"%s\" in %s. At least one CA certificate store is required.\n" +msgstr "" + +#: src/gnome2-console/console.c:169 src/console/console.c:673 +#: src/qt-console/main.cpp:225 +#, c-format +msgid "" +"No Director resource defined in %s\n" +"Without that I don't how to speak to the Director :-(\n" +msgstr "" + +#: src/gnome2-console/console.c:189 src/console/console.c:693 +#: src/qt-console/main.cpp:245 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Console \"%s\" in %s.\n" +msgstr "" + +#: src/gnome2-console/console.c:234 +#, c-format +msgid "Pthread cond init error = %s\n" +msgstr "" + +#: src/gnome2-console/console.c:379 +msgid " Not Connected" +msgstr "" + +#: src/gnome2-console/console.c:500 +#, c-format +msgid " Connecting to Director %s:%d" +msgstr "" + +#: src/gnome2-console/console.c:501 src/qt-console/bcomm/dircomm.cpp:121 +#: src/qt-console/console/console.cpp:138 +#, c-format +msgid "" +"Connecting to Director %s:%d\n" +"\n" +msgstr "" + +#: src/gnome2-console/console.c:516 src/wx-console/console_thread.cpp:381 +#, c-format +msgid "Passphrase for Console \"%s\" TLS private key: " +msgstr "" + +#: src/gnome2-console/console.c:526 src/console/console.c:538 +#: src/qt-console/bcomm/dircomm.cpp:141 src/qt-console/console/console.cpp:163 +#: src/wx-console/console_thread.cpp:391 +#, c-format +msgid "Failed to initialize TLS context for Console \"%s\".\n" +msgstr "" + +#: src/gnome2-console/console.c:538 src/wx-console/console_thread.cpp:402 +#, c-format +msgid "Passphrase for Director \"%s\" TLS private key: " +msgstr "" + +#: src/gnome2-console/console.c:548 src/console/console.c:558 +#: src/qt-console/bcomm/dircomm.cpp:161 src/qt-console/console/console.cpp:183 +#: src/wx-console/console_thread.cpp:412 +#, c-format +msgid "Failed to initialize TLS context for Director \"%s\".\n" +msgstr "" + +#: src/gnome2-console/console.c:557 src/tray-monitor/tray-monitor.c:922 +#: src/qt-console/bcomm/dircomm.cpp:177 src/qt-console/console/console.cpp:199 +#: src/wx-console/console_thread.cpp:420 +msgid "Director daemon" +msgstr "" + +#: src/gnome2-console/console.c:569 +msgid " Initializing ..." +msgstr "" + +#: src/gnome2-console/console.c:605 +msgid " Connected" +msgstr "" + +#: src/gnome2-console/console.c:613 +msgid " Processing command ..." +msgstr "" + +#: src/gnome2-console/console.c:648 +msgid " At prompt waiting for input ..." +msgstr "" + +#: src/gnome2-console/console.c:768 +msgid " Ready" +msgstr "" + +#: src/gnome2-console/console_conf.c:134 src/wx-console/console_conf.c:147 +#: src/console/console_conf.c:138 src/qt-console/bat_conf.cpp:136 +#, c-format +msgid "No record for %d %s\n" +msgstr "" + +#: src/gnome2-console/console_conf.c:143 src/wx-console/console_conf.c:160 +#: src/console/console_conf.c:151 src/qt-console/bat_conf.cpp:145 +#, c-format +msgid "Director: name=%s address=%s DIRport=%d\n" +msgstr "" + +#: src/gnome2-console/console_conf.c:147 src/qt-console/bat_conf.cpp:149 +#, c-format +msgid "Console: name=%s\n" +msgstr "" + +#: src/gnome2-console/console_conf.c:150 src/tray-monitor/tray_conf.c:195 +#: src/qt-console/bat_conf.cpp:152 +#, c-format +msgid "ConsoleFont: name=%s font face=%s\n" +msgstr "" + +#: src/gnome2-console/support.c:60 src/gnome2-console/support.c:85 +#, c-format +msgid "Couldn't find pixmap file: %s" +msgstr "" + +#: src/gnome2-console/authenticate.c:87 +#, c-format +msgid "%s: Director authorization problem.\n" +msgstr "" + +#: src/gnome2-console/authenticate.c:88 +msgid "Director authorization problem.\n" +msgstr "" + +#: src/gnome2-console/authenticate.c:90 +msgid "" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" + +#: src/gnome2-console/authenticate.c:98 src/console/authenticate.c:143 +#: src/tray-monitor/authenticate.c:97 +#, c-format +msgid "Bad response to Hello command: ERR=%s\n" +msgstr "" + +#: src/gnome2-console/authenticate.c:100 +#, c-format +msgid "%s: Bad response to Hello command: ERR=%s\n" +msgstr "" + +#: src/gnome2-console/authenticate.c:102 +msgid "The Director is probably not running.\n" +msgstr "" + +#: src/gnome2-console/authenticate.c:108 src/wx-console/authenticate.c:157 +#: src/console/authenticate.c:150 src/tray-monitor/authenticate.c:104 +msgid "Director rejected Hello command\n" +msgstr "" + +#: src/gnome2-console/restore.c:149 +msgid "Mark" +msgstr "" + +#: src/gnome2-console/restore.c:149 +msgid "File" +msgstr "" + +#: src/gnome2-console/restore.c:149 +msgid "Mode" +msgstr "" + +#: src/gnome2-console/restore.c:149 src/wx-console/wxbrestorepanel.cpp:306 +msgid "User" +msgstr "" + +#: src/gnome2-console/restore.c:149 src/wx-console/wxbrestorepanel.cpp:310 +msgid "Group" +msgstr "" + +#: src/gnome2-console/restore.c:149 src/wx-console/wxbrestorepanel.cpp:294 +msgid "Size" +msgstr "" + +#: src/gnome2-console/restore.c:149 src/wx-console/wxbrestorepanel.cpp:298 +msgid "Date" +msgstr "" + +#: src/cats/sql.c:138 +#, c-format +msgid "" +"query %s failed:\n" +"%s\n" +msgstr "" +"Abfrage %s gescheitert:\n" +"%s\n" + +#: src/cats/sql.c:160 +#, c-format +msgid "" +"insert %s failed:\n" +"%s\n" +msgstr "" +"einfügen %s gescheitert:\n" +"%s\n" + +#: src/cats/sql.c:174 +#, c-format +msgid "Insertion problem: affected_rows=%s\n" +msgstr "Problem beim Einfügen: affected_rows=%s\n" + +#: src/cats/sql.c:194 +#, c-format +msgid "" +"update %s failed:\n" +"%s\n" +msgstr "" +"Aktualisierung %s gescheitert:\n" +"%s\n" + +#: src/cats/sql.c:204 +#, fuzzy, c-format +msgid "Update failed: affected_rows=%s for %s\n" +msgstr "Aktualisierungsproblem: affected_rows=%s\n" + +#: src/cats/sql.c:225 +#, c-format +msgid "" +"delete %s failed:\n" +"%s\n" +msgstr "" +"löschen von %s fehlgeschlagen:\n" +"%s\n" + +#: src/cats/sql.c:251 src/cats/sql.c:258 src/cats/sql_create.c:1031 +#: src/cats/sql_get.c:185 src/cats/sql_get.c:236 src/cats/sql_get.c:604 +#: src/cats/sql_get.c:680 src/cats/sql_get.c:951 +#, c-format +msgid "error fetching row: %s\n" +msgstr "Fehler beim holen von Zeile: %s\n" + +#: src/cats/sql.c:449 +#, c-format +msgid "Path length is zero. File=%s\n" +msgstr "Pfadlänge ist null. Datei=%s\n" + +#: src/cats/sql.c:493 +msgid "No results to list.\n" +msgstr "Keine Ergebnisse zu \"list\" Kommando.\n" + +#: src/cats/sqlite.c:162 src/cats/mysql.c:153 src/cats/postgresql.c:162 +#: src/cats/bdb.c:185 +#, c-format +msgid "Unable to initialize DB lock. ERR=%s\n" +msgstr "Kann DB lock nicht initialisieren. ERR=%s\n" + +#: src/cats/sqlite.c:176 +#, c-format +msgid "Database %s does not exist, please create it.\n" +msgstr "Datenbank %s existiert nicht, bitte erzeugen.\n" + +#: src/cats/sqlite.c:206 +#, c-format +msgid "Unable to open Database=%s. ERR=%s\n" +msgstr "Kann Datenbank=%s.nicht öffen. ERR=%s\n" + +#: src/cats/sqlite.c:207 src/lib/bnet_server.c:391 +msgid "unknown" +msgstr "unbekannt" + +#: src/cats/sqlite.c:359 src/cats/mysql.c:315 src/cats/postgresql.c:319 +#, c-format +msgid "Query failed: %s: ERR=%s\n" +msgstr "Abfrage gescheitert: %s: ERR=%s\n" + +#: src/cats/sql_find.c:98 src/cats/sql_find.c:127 +#, c-format +msgid "" +"Query error for start time request: ERR=%s\n" +"CMD=%s\n" +msgstr "" +"Fehler bei Abfrage von Startzeit: ERR=%s\n" +"CMD=%s\n" + +#: src/cats/sql_find.c:104 +msgid "No prior Full backup Job record found.\n" +msgstr "Keinen vorherigen \"Full backup\" Job Eintrag gefunden.\n" + +#: src/cats/sql_find.c:116 +#, c-format +msgid "Unknown level=%d\n" +msgstr "Unbekannter level=%d\n" + +#: src/cats/sql_find.c:133 +#, c-format +msgid "" +"No Job record found: ERR=%s\n" +"CMD=%s\n" +msgstr "" +"Kein \"Job\" Eintrag gefunden: ERR=%s\n" +"CMD=%s\n" + +#: src/cats/sql_find.c:232 +#, c-format +msgid "Unknown Job level=%d\n" +msgstr "Unbekannter Job level=%d\n" + +#: src/cats/sql_find.c:242 +#, c-format +msgid "No Job found for: %s.\n" +msgstr "Kein Job gefunden für: %s.\n" + +#: src/cats/sql_find.c:253 +#, c-format +msgid "No Job found for: %s\n" +msgstr "Keinen Job gefunden für: %s\n" + +#: src/cats/sql_find.c:332 +#, c-format +msgid "Request for Volume item %d greater than max %d or less than 1\n" +msgstr "" +"Anforderung von \"Volume item\" %d größer als Max %d oder weniger als 1\n" + +#: src/cats/sql_find.c:347 +#, fuzzy, c-format +msgid "No Volume record found for item %d.\n" +msgstr "Kein Volume Eintrag gefunden für item %d.\n" + +#: src/cats/mysql.c:82 +msgid "A user name for MySQL must be supplied.\n" +msgstr "Ein Benutzername für MySQL muss angegeben werden.\n" + +#: src/cats/mysql.c:191 +#, fuzzy, c-format +msgid "" +"Unable to connect to MySQL server.\n" +"Database=%s User=%s\n" +"MySQL connect failed either server not running or your authorization is " +"incorrect.\n" +msgstr "" +"Kann Verbindung zu MySQL Server nicht aufbauen. \n" +"Datenbank=%s Benutzer=%s\n" +"Der Datenbankserver läuft möglicherweise nicht oder das Passwort ist nicht " +"korrekt.\n" + +#: src/cats/sql_delete.c:80 +#, c-format +msgid "No pool record %s exists\n" +msgstr "Kein pool Eintrag %s vorhanden\n" + +#: src/cats/sql_delete.c:85 +#, c-format +msgid "Expecting one pool record, got %d\n" +msgstr "Erwartete einen \"pool\" Eintrag, erhielt %d\n" + +#: src/cats/sql_delete.c:91 +#, c-format +msgid "Error fetching row %s\n" +msgstr "Fehler beim Holen der Zeile %s\n" + +#: src/cats/sql_create.c:95 +#, c-format +msgid "Create DB Job record %s failed. ERR=%s\n" +msgstr "Erzeugung von DB Job Eintrag %s fehlgeschlagen. ERR=%s\n" + +#: src/cats/sql_create.c:146 +#, c-format +msgid "Create JobMedia record %s failed: ERR=%s\n" +msgstr "Erzeugung von JobMedia Eintrag %s fehlgeschlagen: ERR=%s\n" + +#: src/cats/sql_create.c:155 +#, c-format +msgid "Update Media record %s failed: ERR=%s\n" +msgstr "Aktualisierung von Media Eintrag %s fehlgeschlagen: ERR=%s\n" + +#: src/cats/sql_create.c:185 +#, c-format +msgid "pool record %s already exists\n" +msgstr "pool Eintrag %s bereits vorhanden\n" + +#: src/cats/sql_create.c:212 +#, c-format +msgid "Create db Pool record %s failed: ERR=%s\n" +msgstr "Erzeugung von db Pool Eintrag %s fehlgeschlagen: ERR=%s\n" + +#: src/cats/sql_create.c:243 +#, c-format +msgid "Device record %s already exists\n" +msgstr "Device Eintrag %s bereits vorhanden\n" + +#: src/cats/sql_create.c:259 +#, c-format +msgid "Create db Device record %s failed: ERR=%s\n" +msgstr "Erzeugung von db Device Eintrag %s fehlgeschlagen: ERR=%s\n" + +#: src/cats/sql_create.c:292 +#, c-format +msgid "More than one Storage record!: %d\n" +msgstr "Mehr als ein Storage Eintrag!: %d\n" + +#: src/cats/sql_create.c:297 +#, c-format +msgid "error fetching Storage row: %s\n" +msgstr "Fehler beim holen der Storage Zeile: %s\n" + +#: src/cats/sql_create.c:317 +#, c-format +msgid "Create DB Storage record %s failed. ERR=%s\n" +msgstr "Erzeugung des DB Storage Eintrags %s fehlgeschlagen. ERR=%s\n" + +#: src/cats/sql_create.c:349 +#, c-format +msgid "mediatype record %s already exists\n" +msgstr "Medientyp Eintrag %s bereits vorhanden\n" + +#: src/cats/sql_create.c:365 +#, c-format +msgid "Create db mediatype record %s failed: ERR=%s\n" +msgstr "Erzeuge db Medientyp Eintrag %s fehlgeschlagen: ERR=%s\n" + +#: src/cats/sql_create.c:400 +#, c-format +msgid "Volume \"%s\" already exists.\n" +msgstr "Volume \"%s\" bereits vorhanden.\n" + +#: src/cats/sql_create.c:445 +#, c-format +msgid "Create DB Media record %s failed. ERR=%s\n" +msgstr "Erzeugung DB Media Eintrag %s fehlgeschlagen. ERR=%s\n" + +#: src/cats/sql_create.c:493 +#, c-format +msgid "More than one Client!: %d\n" +msgstr "Mehr als ein Client!: %d\n" + +#: src/cats/sql_create.c:498 +#, c-format +msgid "error fetching Client row: %s\n" +msgstr "Fehler beim holen der Client Zeile: %s\n" + +#: src/cats/sql_create.c:525 +#, c-format +msgid "Create DB Client record %s failed. ERR=%s\n" +msgstr "Erzeugung des DB Client Eintrags %s fehlgeschlagen. ERR=%s\n" + +#: src/cats/sql_create.c:568 +#, c-format +msgid "Create DB Counters record %s failed. ERR=%s\n" +msgstr "Erzeugung des DB Counters Eintrag %s fehlgeschlagen. ERR=%s\n" + +#: src/cats/sql_create.c:601 +#, c-format +msgid "More than one FileSet!: %d\n" +msgstr "Mehr als ein FileSet!: %d\n" + +#: src/cats/sql_create.c:606 +#, c-format +msgid "error fetching FileSet row: ERR=%s\n" +msgstr "Fehler beim holen der FileSet Zeile: ERR=%s\n" + +#: src/cats/sql_create.c:636 +#, c-format +msgid "Create DB FileSet record %s failed. ERR=%s\n" +msgstr "Erzeugung des DB FileSet Eintrags %s fehlgeschlagen. ERR=%s\n" + +#: src/cats/sql_create.c:857 +#, fuzzy, c-format +msgid "Could not init batch database: \"%s\".\n" +msgstr "Konnte Datenbank \"%s\" nicht öffen.\n" + +#: src/cats/sql_create.c:864 +#, fuzzy, c-format +msgid "Could not open database \"%s\": ERR=%s\n" +msgstr "Konnte Datenbank \"%s\" nicht öffen.\n" + +#: src/cats/sql_create.c:886 src/cats/sql_create.c:927 +#, c-format +msgid "Attempt to put non-attributes into catalog. Stream=%d\n" +msgstr "Versuche \"non-attributes\" in catalog einzufügen. Stream=%d\n" + +#: src/cats/sql_create.c:991 +#, c-format +msgid "Create db File record %s failed. ERR=%s" +msgstr "Erzeugung des db File Eintrags %s fehlgeschlagen. ERR=%s" + +#: src/cats/sql_create.c:1024 src/cats/sql_get.c:229 +#, c-format +msgid "More than one Path!: %s for path: %s\n" +msgstr "Mehr als ein Pfad!: %s für Pfad: %s\n" + +#: src/cats/sql_create.c:1055 +#, c-format +msgid "Create db Path record %s failed. ERR=%s\n" +msgstr "Erzeugung des db Path Eintrags %s fehlgeschlagen. ERR=%s\n" + +#: src/cats/sql_create.c:1088 +#, c-format +msgid "More than one Filename! %s for file: %s\n" +msgstr "Mehr als ein Dateiname! %s für Datei: %s\n" + +#: src/cats/sql_create.c:1094 +#, c-format +msgid "Error fetching row for file=%s: ERR=%s\n" +msgstr "Fehler beim Holen der Zeile für Datei=%s: ERR=%s\n" + +#: src/cats/sql_create.c:1110 +#, c-format +msgid "Create db Filename record %s failed. ERR=%s\n" +msgstr "Erzeugung des db Filename Eintrags %s fehlgeschlagen. ERR=%s\n" + +#: src/cats/sql_get.c:135 +#, c-format +msgid "get_file_record want 1 got rows=%d\n" +msgstr "get_file_record erwartet 1 erhalten rows=%d\n" + +#: src/cats/sql_get.c:140 +#, c-format +msgid "Error fetching row: %s\n" +msgstr "Fehler beim holen der Zeile: %s\n" + +#: src/cats/sql_get.c:148 +#, c-format +msgid "File record for PathId=%s FilenameId=%s not found.\n" +msgstr "File Eintrag für PathId=%s FilenameId=%s nicht gefunden.\n" + +#: src/cats/sql_get.c:154 +msgid "File record not found in Catalog.\n" +msgstr "File Eintrag nicht im Catalog gefunden.\n" + +#: src/cats/sql_get.c:179 +#, c-format +msgid "More than one Filename!: %s for file: %s\n" +msgstr "Mehr als einen Dateinamen gefunden! : %s für Datei: %s\n" + +#: src/cats/sql_get.c:189 +#, fuzzy, c-format +msgid "Get DB Filename record %s found bad record: %d\n" +msgstr "Get DB Filename record %s hat fehlerhaften Eintrag gefunden: %d\n" + +#: src/cats/sql_get.c:195 +#, c-format +msgid "Filename record: %s not found.\n" +msgstr "Filename record: %s nicht gefunden.\n" + +#: src/cats/sql_get.c:199 +#, c-format +msgid "Filename record: %s not found in Catalog.\n" +msgstr "Filename record: %s nicht in Catalog gefunden.\n" + +#: src/cats/sql_get.c:240 +#, c-format +msgid "Get DB path record %s found bad record: %s\n" +msgstr "Get DB path record %s fehlerhaften Eintrag gefunden: %s\n" + +#: src/cats/sql_get.c:253 +#, c-format +msgid "Path record: %s not found.\n" +msgstr "Path record: %s nicht gefunden.\n" + +#: src/cats/sql_get.c:257 +#, c-format +msgid "Path record: %s not found in Catalog.\n" +msgstr "Path record: %s nicht in Catalog gefunden.\n" + +#: src/cats/sql_get.c:294 +#, c-format +msgid "No Job found for JobId %s\n" +msgstr "Kein Job für JobId %s gefunden\n" + +#: src/cats/sql_get.c:363 src/cats/sql_get.c:419 +#, c-format +msgid "No volumes found for JobId=%d\n" +msgstr "Keine volumes für JobId=%d gefunden\n" + +#: src/cats/sql_get.c:369 src/cats/sql_get.c:430 +#, c-format +msgid "Error fetching row %d: ERR=%s\n" +msgstr "Fehler beim Holen von Zeile %d: ERR=%s\n" + +#: src/cats/sql_get.c:383 +#, c-format +msgid "No Volume for JobId %d found in Catalog.\n" +msgstr "Kein Volume für JobId %d in Catalog gefunden.\n" + +#: src/cats/sql_get.c:520 +#, c-format +msgid "Pool id select failed: ERR=%s\n" +msgstr "Pool id select fehlgeschlagen: ERR=%s\n" + +#: src/cats/sql_get.c:557 +#, c-format +msgid "Client id select failed: ERR=%s\n" +msgstr "Client id select fehlgeschlagen: ERR=%s\n" + +#: src/cats/sql_get.c:599 +#, c-format +msgid "More than one Pool!: %s\n" +msgstr "Mehr als ein Pool!: %s\n" + +#: src/cats/sql_get.c:641 +msgid "Pool record not found in Catalog.\n" +msgstr "Pool Eintrag in Catalog nicht gefunden.\n" + +#: src/cats/sql_get.c:675 +#, c-format +msgid "More than one Client!: %s\n" +msgstr "Mehr als ein Client!: %s\n" + +#: src/cats/sql_get.c:692 src/cats/sql_get.c:696 +msgid "Client record not found in Catalog.\n" +msgstr "Client Eintrag nicht in Catalog gefunden\n" + +#: src/cats/sql_get.c:721 +#, c-format +msgid "More than one Counter!: %d\n" +msgstr "Mehr als ein Counter!: %d\n" + +#: src/cats/sql_get.c:726 +#, c-format +msgid "error fetching Counter row: %s\n" +msgstr "Fehler beim Holen der Counter Zeile: %s\n" + +#: src/cats/sql_get.c:746 +#, c-format +msgid "Counter record: %s not found in Catalog.\n" +msgstr "Counter Eintrag: %s in Catalog nicht gefunden.\n" + +#: src/cats/sql_get.c:782 +#, c-format +msgid "Error got %s FileSets but expected only one!\n" +msgstr "Fehler erhalten %s FileSets aber nur einen erwartet!\n" + +#: src/cats/sql_get.c:787 +#, c-format +msgid "FileSet record \"%s\" not found.\n" +msgstr "FileSet Eintrag \"%s\" nicht gefunden\n" + +#: src/cats/sql_get.c:797 +msgid "FileSet record not found in Catalog.\n" +msgstr "FileSet Eintrag in Catalog nicht gefunden.\n" + +#: src/cats/sql_get.c:855 +#, c-format +msgid "Media id select failed: ERR=%s\n" +msgstr "Media id select fehlgeschlagen: ERR=%s\n" + +#: src/cats/sql_get.c:893 +#, fuzzy, c-format +msgid "query dbids failed: ERR=%s\n" +msgstr "Abfrage gescheitert: %s: ERR=%s\n" + +#: src/cats/sql_get.c:946 +#, c-format +msgid "More than one Volume!: %s\n" +msgstr "Mehr als ein Volume!: %s\n" + +#: src/cats/sql_get.c:1001 +#, c-format +msgid "Media record MediaId=%s not found.\n" +msgstr "Media Eintrag MediaId=%s nicht gefunden.\n" + +#: src/cats/sql_get.c:1004 +#, c-format +msgid "Media record for Volume \"%s\" not found.\n" +msgstr "Media Eintrag für Volume \"%s\" nicht gefunden.\n" + +#: src/cats/sql_get.c:1011 +#, c-format +msgid "Media record for MediaId=%u not found in Catalog.\n" +msgstr "Media Eintrag für MediaId=%u in Catalog nicht gefunden.\n" + +#: src/cats/sql_get.c:1014 +#, c-format +msgid "Media record for Vol=%s not found in Catalog.\n" +msgstr "Media Eintrag für Vol=%s in Catalog nicht gefunden.\n" + +#: src/cats/postgresql.c:86 +msgid "A user name for PostgreSQL must be supplied.\n" +msgstr "Ein Benutzername für PostgreSQL muss angegeben werden.\n" + +#: src/cats/postgresql.c:149 +msgid "" +"PostgreSQL configuration problem. PostgreSQL library is not thread safe. " +"Connot continue.\n" +msgstr "" + +#: src/cats/postgresql.c:199 +#, c-format +msgid "" +"Unable to connect to PostgreSQL server.\n" +"Database=%s User=%s\n" +"It is probably not running or your password is incorrect.\n" +msgstr "" +"Kann Verbindung zu PostgreSQL Server nicht aufbauen.\n" +"Datenbank=%s Benutzer=%s\n" +"Der Datenbankserver läuft möglicherweise nicht oder das Passwort ist nicht " +"korrekt.\n" + +#: src/cats/postgresql.c:300 +msgid "PQescapeStringConn returned non-zero.\n" +msgstr "" + +#: src/cats/postgresql.c:605 +#, c-format +msgid "error fetching currval: %s\n" +msgstr "Fehler beim Holen des aktuellen Wertes: %s\n" + +#: src/cats/postgresql.c:699 src/cats/postgresql.c:746 +#, fuzzy, c-format +msgid "error ending batch mode: %s\n" +msgstr "Fehler beim holen von Zeile: %s\n" + +#: src/cats/bdb.c:161 +msgid "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n" +msgstr "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n" + +#: src/cats/bdb.c:162 +msgid "WARNING!!!! The Internal Database is NOT OPERATIONAL!\n" +msgstr "WARNUNG!!!! Die Interne Datenbank ist NICHT BETRIEBSBEREIT!\n" + +#: src/cats/bdb.c:163 +msgid "You should use SQLite, PostgreSQL, or MySQL\n" +msgstr "Sie sollten SQLite, PostgreSQL, oder MySQL benutzen\n" + +#: src/cats/bdb.c:195 +#, c-format +msgid "Unable to open Catalog DB control file %s: ERR=%s\n" +msgstr "Kann Catalog DB Steuerdatei nicht öffnen %s: ERR=%s\n" + +#: src/cats/bdb.c:250 +#, c-format +msgid "Error reading catalog DB control file. ERR=%s\n" +msgstr "Fehler beim Lesen der catalog DB Steuerdatei. ERR=%s\n" + +#: src/cats/bdb.c:253 +#, c-format +msgid "" +"Error, catalog DB control file wrong version. Wanted %d, got %d\n" +"Please reinitialize the working directory.\n" +msgstr "" +"Fehler, catalog DB steuerdatei hat die falsche Version: erwartet: %d, " +"erhalten %d\n" +"Bitte das Arbeitsverzeichnis neu initialisieren.\n" + +#: src/cats/bdb_update.c:88 src/cats/bdb_update.c:119 +#, c-format +msgid "Error updating DB Job file. ERR=%s\n" +msgstr "Fehler beim aktualisieren der DB Job Datei . ERR=%s\n" + +#: src/cats/bdb_update.c:158 src/cats/bdb_update.c:194 +#, c-format +msgid "Error updating DB Media file. ERR=%s\n" +msgstr "Fehler beim Aktualisieren der DB Media Datei. ERR=%s\n" + +#: src/cats/sql_list.c:62 +#, c-format +msgid "Query failed: %s\n" +msgstr "Abfrage fehlgeschlagen: %s\n" + +#: src/wx-console/console_conf.c:156 src/console/console_conf.c:147 +#, c-format +msgid "Console: name=%s rcfile=%s histfile=%s\n" +msgstr "" + +#: src/wx-console/authenticate.c:142 src/console/authenticate.c:131 +msgid "TLS negotiation failed\n" +msgstr "" + +#: src/wx-console/authenticate.c:150 +msgid "Bad response to Hello command: ERR=" +msgstr "" + +#: src/wx-console/authenticate.c:167 src/console/authenticate.c:160 +msgid "" +"Director authorization problem.\n" +"Most likely the passwords do not agree.\n" +"If you are using TLS, there may have been a certificate validation error " +"during the TLS handshake.\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" + +#: src/stored/fd_cmds.c:369 +msgid "Error parsing bootstrap file.\n" +msgstr "" + +#: src/stored/autochanger.c:66 +#, c-format +msgid "No Changer Name given for device %s. Cannot continue.\n" +msgstr "" + +#: src/stored/autochanger.c:72 +#, c-format +msgid "No Changer Command given for device %s. Cannot continue.\n" +msgstr "" + +#: src/stored/autochanger.c:85 +#, c-format +msgid "" +"Media Type not the same for all devices in changer %s. Cannot continue.\n" +msgstr "" + +#: src/stored/autochanger.c:149 +#, c-format +msgid "" +"Invalid slot=%d defined in catalog for Volume \"%s\" on %s. Manual load my " +"be required.\n" +msgstr "" + +#: src/stored/autochanger.c:154 +#, c-format +msgid "No \"Changer Device\" for %s. Manual load of Volume may be required.\n" +msgstr "" + +#: src/stored/autochanger.c:158 +#, c-format +msgid "No \"Changer Command\" for %s. Manual load of Volume may be requird.\n" +msgstr "" + +#: src/stored/autochanger.c:188 +#, c-format +msgid "3304 Issuing autochanger \"load slot %d, drive %d\" command.\n" +msgstr "" + +#: src/stored/autochanger.c:196 +#, c-format +msgid "3305 Autochanger \"load slot %d, drive %d\", status is OK.\n" +msgstr "" + +#: src/stored/autochanger.c:205 +#, c-format +msgid "" +"3992 Bad autochanger \"load slot %d, drive %d\": ERR=%s.\n" +"Results=%s\n" +msgstr "" + +#: src/stored/autochanger.c:251 +msgid "3992 Missing Changer command.\n" +msgstr "" + +#: src/stored/autochanger.c:265 +#, c-format +msgid "3301 Issuing autochanger \"loaded? drive %d\" command.\n" +msgstr "" + +#: src/stored/autochanger.c:275 +#, c-format +msgid "3302 Autochanger \"loaded? drive %d\", result is Slot %d.\n" +msgstr "" + +#: src/stored/autochanger.c:279 +#, c-format +msgid "3302 Autochanger \"loaded? drive %d\", result: nothing loaded.\n" +msgstr "" + +#: src/stored/autochanger.c:286 +#, c-format +msgid "" +"3991 Bad autochanger \"loaded? drive %d\" command: ERR=%s.\n" +"Results=%s\n" +msgstr "" + +#: src/stored/autochanger.c:345 src/stored/autochanger.c:436 +#, c-format +msgid "3307 Issuing autochanger \"unload slot %d, drive %d\" command.\n" +msgstr "" + +#: src/stored/autochanger.c:359 +#, c-format +msgid "" +"3995 Bad autochanger \"unload slot %d, drive %d\": ERR=%s\n" +"Results=%s\n" +msgstr "" + +#: src/stored/autochanger.c:423 +#, c-format +msgid "Volume \"%s\" is in use by device %s\n" +msgstr "" + +#: src/stored/autochanger.c:458 +#, c-format +msgid "3995 Bad autochanger \"unload slot %d, drive %d\": ERR=%s.\n" +msgstr "" + +#: src/stored/autochanger.c:498 +#, c-format +msgid "3993 Device %s not an autochanger device.\n" +msgstr "" + +#: src/stored/autochanger.c:519 +#, c-format +msgid "3306 Issuing autochanger \"%s\" command.\n" +msgstr "" + +#: src/stored/autochanger.c:522 +msgid "3996 Open bpipe failed.\n" +msgstr "" + +#: src/stored/autochanger.c:549 src/console/console.c:945 +#, c-format +msgid "Autochanger error: ERR=%s\n" +msgstr "" + +#: src/stored/stored.c:82 +#, c-format +msgid "" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: stored [options] [-c config_file] [config_file]\n" +" -c use as configuration file\n" +" -dnn set debug level to nn\n" +" -f run in foreground (for debugging)\n" +" -g set groupid to group\n" +" -p proceed despite I/O errors\n" +" -s no signals (for debugging)\n" +" -t test - read config and exit\n" +" -u userid to \n" +" -v verbose user messages\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/stored/stored.c:128 src/stored/btape.c:172 +#, c-format +msgid "Tape block size (%d) not multiple of system size (%d)\n" +msgstr "" + +#: src/stored/stored.c:132 src/stored/btape.c:176 +#, c-format +msgid "Tape block size (%d) is not a power of 2\n" +msgstr "" + +#: src/stored/stored.c:243 +msgid "Volume Session Time is ZERO!\n" +msgstr "" + +#: src/stored/stored.c:257 +#, c-format +msgid "Unable to create thread. ERR=%s\n" +msgstr "" + +#: src/stored/stored.c:289 src/stored/bscan.c:246 +#, c-format +msgid "No Storage resource defined in %s. Cannot continue.\n" +msgstr "" + +#: src/stored/stored.c:295 +#, c-format +msgid "Only one Storage resource permitted in %s\n" +msgstr "" + +#: src/stored/stored.c:300 +#, c-format +msgid "No Director resource defined in %s. Cannot continue.\n" +msgstr "" + +#: src/stored/stored.c:305 +#, c-format +msgid "No Device resource defined in %s. Cannot continue.\n" +msgstr "" + +#: src/stored/stored.c:313 +#, c-format +msgid "No Messages resource defined in %s. Cannot continue.\n" +msgstr "" + +#: src/stored/stored.c:320 src/stored/bscan.c:254 +#, c-format +msgid "No Working Directory defined in %s. Cannot continue.\n" +msgstr "" + +#: src/stored/stored.c:340 +#, c-format +msgid "\"TLS Certificate\" file not defined for Storage \"%s\" in %s.\n" +msgstr "" + +#: src/stored/stored.c:346 +#, c-format +msgid "\"TLS Key\" file not defined for Storage \"%s\" in %s.\n" +msgstr "" + +#: src/stored/stored.c:352 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Storage \"%s\" in %s. At least one CA certificate store is required when " +"using \"TLS Verify Peer\".\n" +msgstr "" + +#: src/stored/stored.c:484 +#, c-format +msgid "Could not initialize %s\n" +msgstr "" + +#: src/stored/stored.c:497 +#, c-format +msgid "Could not open device %s\n" +msgstr "" + +#: src/stored/stored.c:510 +#, c-format +msgid "Could not mount device %s\n" +msgstr "" + +#: src/stored/wait.c:127 +#, c-format +msgid "pthread timedwait error. ERR=%s\n" +msgstr "" + +#: src/stored/wait.c:227 +#, fuzzy, c-format +msgid "JobId=%s, Job %s waiting to reserve a device.\n" +msgstr "JobId %s, Job %s zum Abbruch markiert.\n" + +#: src/stored/stored_conf.c:234 +#, c-format +msgid "Expected a Device Type keyword, got: %s" +msgstr "" + +#: src/stored/stored_conf.c:249 +#, c-format +msgid "Warning: no \"%s\" resource (%d) defined.\n" +msgstr "" + +#: src/stored/stored_conf.c:252 +#, c-format +msgid "dump_resource type=%d\n" +msgstr "" + +#: src/stored/stored_conf.c:368 +#, fuzzy, c-format +msgid "Warning: unknown resource type %d\n" +msgstr "unbekannt" + +#: src/stored/stored_conf.c:557 +#, c-format +msgid "\"%s\" item is required in \"%s\" resource, but not found.\n" +msgstr "" + +#: src/stored/stored_conf.c:563 +#, c-format +msgid "Too many items in \"%s\" resource\n" +msgstr "" + +#: src/stored/stored_conf.c:597 +#, c-format +msgid "Cannot find AutoChanger resource %s\n" +msgstr "" + +#: src/stored/stored_conf.c:611 src/stored/dev.c:229 src/stored/dev.c:247 +#: src/stored/dev.c:254 src/lib/openssl.c:118 src/lib/openssl.c:179 +#, c-format +msgid "Unable to init mutex: ERR=%s\n" +msgstr "" + +#: src/stored/stored_conf.c:669 +#, c-format +msgid "" +"Attempt to define second \"%s\" resource named \"%s\" is not permitted.\n" +msgstr "" + +#: src/stored/pythonsd.c:210 +msgid "Error in ParseTuple\n" +msgstr "" + +#: src/stored/pythonsd.c:226 +msgid "Parse tuple error in job_write\n" +msgstr "" + +#: src/stored/pythonsd.c:263 +#, c-format +msgid "Error in Python method %s\n" +msgstr "" + +#: src/stored/read_record.c:83 +#, c-format +msgid "End of Volume at file %u on device %s, Volume \"%s\"\n" +msgstr "" + +#: src/stored/read_record.c:86 +msgid "End of all volumes.\n" +msgstr "" + +#: src/stored/read_record.c:129 +msgid "part" +msgstr "" + +#: src/stored/read_record.c:132 +msgid "file" +msgstr "" + +#: src/stored/read_record.c:135 +#, c-format +msgid "End of %s %u on device %s, Volume \"%s\"\n" +msgstr "" + +#: src/stored/read_record.c:149 +msgid "Did fsr in attemp to skip bad record.\n" +msgstr "" + +#: src/stored/read_record.c:342 +#, c-format +msgid "Reposition from (file:block) %u:%u to %u:%u\n" +msgstr "" + +#: src/stored/read_record.c:370 +#, c-format +msgid "Forward spacing Volume \"%s\" to file:block %u:%u.\n" +msgstr "" + +#: src/stored/read_record.c:388 src/stored/bcopy.c:312 src/stored/bls.c:416 +msgid "Fresh Volume Label" +msgstr "" + +#: src/stored/read_record.c:391 src/stored/bcopy.c:315 src/stored/bls.c:419 +msgid "Volume Label" +msgstr "" + +#: src/stored/read_record.c:395 +msgid "Begin Session" +msgstr "" + +#: src/stored/read_record.c:399 +msgid "End Session" +msgstr "" + +#: src/stored/read_record.c:402 src/stored/label.c:1032 +msgid "End of Media" +msgstr "" + +#: src/stored/read_record.c:405 +#, c-format +msgid "Unknown code %d\n" +msgstr "" + +#: src/stored/read_record.c:409 src/stored/bcopy.c:337 src/stored/bls.c:440 +#, c-format +msgid "%s Record: VolSessionId=%d VolSessionTime=%d JobId=%d DataLen=%d\n" +msgstr "" + +#: src/stored/read.c:68 +msgid "No Volume names found for restore.\n" +msgstr "" + +#: src/stored/read.c:122 +#, c-format +msgid ">filed: Error Hdr=%s\n" +msgstr "" + +#: src/stored/read.c:123 src/stored/read.c:138 +#, c-format +msgid "Error sending to File daemon. ERR=%s\n" +msgstr "" + +#: src/stored/read.c:137 +#, c-format +msgid "Error sending to FD. ERR=%s\n" +msgstr "" + +#: src/stored/reserve.c:93 +#, c-format +msgid "Unable to initialize reservation lock. ERR=%s\n" +msgstr "" + +#: src/stored/reserve.c:99 +#, fuzzy, c-format +msgid "Unable to initialize volume list lock. ERR=%s\n" +msgstr "Kann DB lock nicht initialisieren. ERR=%s\n" + +#: src/stored/reserve.c:434 +#, c-format +msgid "Hey! num_writers=%d!!!!\n" +msgstr "" + +#: src/stored/reserve.c:649 +msgid "3939 Could not get dcr\n" +msgstr "" + +#: src/stored/reserve.c:772 src/stored/reserve.c:783 +#, c-format +msgid "Failed command: %s\n" +msgstr "" + +#: src/stored/reserve.c:773 +#, c-format +msgid "" +"\n" +" Device \"%s\" with MediaType \"%s\" requested by DIR not found in SD " +"Device resources.\n" +msgstr "" + +#: src/stored/reserve.c:1076 src/stored/dircmd.c:596 +#, c-format +msgid "" +"\n" +" Device \"%s\" in changer \"%s\" requested by DIR could not be opened or " +"does not exist.\n" +msgstr "" + +#: src/stored/reserve.c:1080 src/stored/dircmd.c:574 +#, c-format +msgid "" +"\n" +" Device \"%s\" requested by DIR could not be opened or does not exist.\n" +msgstr "" + +#: src/stored/reserve.c:1092 +#, c-format +msgid "3926 Could not get dcr for device: %s\n" +msgstr "" + +#: src/stored/reserve.c:1207 +#, c-format +msgid "3601 JobId=%u device %s is BLOCKED due to user unmount.\n" +msgstr "" + +#: src/stored/reserve.c:1217 +#, c-format +msgid "3602 JobId=%u device %s is busy (already reading/writing).\n" +msgstr "" + +#: src/stored/reserve.c:1264 +#, c-format +msgid "3603 JobId=%u device %s is busy reading.\n" +msgstr "" + +#: src/stored/reserve.c:1273 +#, c-format +msgid "3604 JobId=%u device %s is BLOCKED due to user unmount.\n" +msgstr "" + +#: src/stored/reserve.c:1314 +#, c-format +msgid "" +"3608 JobId=%u wants Pool=\"%s\" but have Pool=\"%s\" nreserve=%d on drive %" +"s.\n" +msgstr "" + +#: src/stored/reserve.c:1336 +#, c-format +msgid "3610 JobId=%u Volume max jobs exceeded on drive %s.\n" +msgstr "" + +#: src/stored/reserve.c:1391 +#, c-format +msgid "3605 JobId=%u wants free drive but device %s is busy.\n" +msgstr "" + +#: src/stored/reserve.c:1399 +#, c-format +msgid "3606 JobId=%u prefers mounted drives, but drive %s has no Volume.\n" +msgstr "" + +#: src/stored/reserve.c:1422 +#, c-format +msgid "3607 JobId=%u wants Vol=\"%s\" drive has Vol=\"%s\" on drive %s.\n" +msgstr "" + +#: src/stored/reserve.c:1479 +#, c-format +msgid "Logic error!!!! JobId=%u Should not get here.\n" +msgstr "" + +#: src/stored/reserve.c:1480 +#, c-format +msgid "3910 JobId=%u Logic error!!!! drive %s Should not get here.\n" +msgstr "" + +#: src/stored/reserve.c:1483 +msgid "Logic error!!!! Should not get here.\n" +msgstr "" + +#: src/stored/reserve.c:1486 +#, c-format +msgid "3911 JobId=%u failed reserve drive %s.\n" +msgstr "" + +#: src/stored/bcopy.c:74 +#, fuzzy, c-format +msgid "" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: bcopy [-d debug_level] \n" +" -b bootstrap specify a bootstrap file\n" +" -c specify configuration file\n" +" -d set debug level to \n" +" -i specify input Volume names (separated by |)\n" +" -o specify output Volume names (separated by |)\n" +" -p proceed inspite of errors\n" +" -v verbose\n" +" -w specify working directory (default /tmp)\n" +" -? print this message\n" +"\n" +msgstr "" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: bacula-fd [-f -s] [-c config_datei] [-d debug_level]\n" +" -c benutze als Konfigurationsdatei\n" +" -dnn setze debug level auf nn\n" +" -f starte in Vordergrund (für debugging)\n" +" -g groupid\n" +" -s no signals (für debugging)\n" +" -t Konfigurationsdatei testen und beenden\n" +" -u userid\n" +" -v Ausführliche Benutzermeldungen\n" +" -? diese Meldung ausgeben.\n" +"\n" + +#: src/stored/bcopy.c:159 src/stored/bextract.c:192 src/stored/bscan.c:233 +#: src/tools/bbatch.c:161 +msgid "Wrong number of arguments: \n" +msgstr "" + +#: src/stored/bcopy.c:199 src/stored/btape.c:368 src/stored/device.c:297 +#, c-format +msgid "dev open failed: %s\n" +msgstr "" + +#: src/stored/bcopy.c:214 +msgid "Write of last block failed.\n" +msgstr "" + +#: src/stored/bcopy.c:218 +#, c-format +msgid "%u Jobs copied. %u records copied.\n" +msgstr "" + +#: src/stored/bcopy.c:235 src/stored/bscan.c:408 +#, c-format +msgid "Record: SessId=%u SessTim=%u FileIndex=%d Stream=%d len=%u\n" +msgstr "" + +#: src/stored/bcopy.c:251 +msgid "Volume is prelabeled. This volume cannot be copied.\n" +msgstr "" + +#: src/stored/bcopy.c:254 +msgid "Volume label not copied.\n" +msgstr "" + +#: src/stored/bcopy.c:266 src/stored/bcopy.c:274 src/stored/bcopy.c:298 +#: src/stored/btape.c:2390 +#, c-format +msgid "Cannot fixup device error. %s\n" +msgstr "" + +#: src/stored/bcopy.c:280 +msgid "EOM label not copied.\n" +msgstr "" + +#: src/stored/bcopy.c:283 +msgid "EOT label not copied.\n" +msgstr "" + +#: src/stored/bcopy.c:319 src/stored/label.c:1026 src/stored/bls.c:423 +msgid "Begin Job Session" +msgstr "" + +#: src/stored/bcopy.c:323 src/stored/label.c:1029 src/stored/bls.c:427 +msgid "End Job Session" +msgstr "" + +#: src/stored/bcopy.c:328 src/stored/bls.c:431 +msgid "End of Medium" +msgstr "" + +#: src/stored/bcopy.c:331 src/stored/label.c:1038 src/stored/bls.c:434 +msgid "Unknown" +msgstr "" + +#: src/stored/bcopy.c:355 src/stored/bextract.c:494 src/stored/bls.c:459 +#: src/stored/bscan.c:1300 src/stored/btape.c:2689 +#, c-format +msgid "Mount Volume \"%s\" on device %s and press return when ready: " +msgstr "" + +#: src/stored/bextract.c:78 +#, fuzzy, c-format +msgid "" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: bextract \n" +" -b specify a bootstrap file\n" +" -c specify a configuration file\n" +" -d set debug level to \n" +" -e exclude list\n" +" -i include list\n" +" -p proceed inspite of I/O errors\n" +" -v verbose\n" +" -V specify Volume names (separated by |)\n" +" -? print this message\n" +"\n" +msgstr "" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: bacula-fd [-f -s] [-c config_datei] [-d debug_level]\n" +" -c benutze als Konfigurationsdatei\n" +" -dnn setze debug level auf nn\n" +" -f starte in Vordergrund (für debugging)\n" +" -g groupid\n" +" -s no signals (für debugging)\n" +" -t Konfigurationsdatei testen und beenden\n" +" -u userid\n" +" -v Ausführliche Benutzermeldungen\n" +" -? diese Meldung ausgeben.\n" +"\n" + +#: src/stored/bextract.c:142 src/stored/bls.c:146 +#, c-format +msgid "Could not open exclude file: %s, ERR=%s\n" +msgstr "" + +#: src/stored/bextract.c:157 src/stored/bls.c:161 +#, c-format +msgid "Could not open include file: %s, ERR=%s\n" +msgstr "" + +#: src/stored/bextract.c:213 +#, c-format +msgid "%d Program Name and/or Program Data Stream records ignored.\n" +msgstr "" + +#: src/stored/bextract.c:217 +#, c-format +msgid "%d Win32 data or Win32 gzip data stream records. Ignored.\n" +msgstr "" + +#: src/stored/bextract.c:244 +#, c-format +msgid "Cannot stat %s. It must exist. ERR=%s\n" +msgstr "" + +#: src/stored/bextract.c:248 +#, c-format +msgid "%s must be a directory.\n" +msgstr "" + +#: src/stored/bextract.c:269 +#, c-format +msgid "%u files restored.\n" +msgstr "" + +#: src/stored/bextract.c:296 src/stored/bextract.c:469 +msgid "Logic error output file should be open but is not.\n" +msgstr "" + +#: src/stored/bextract.c:303 src/stored/bls.c:383 src/stored/bscan.c:666 +msgid "Cannot continue.\n" +msgstr "" + +#: src/stored/bextract.c:365 +#, c-format +msgid "Seek error on %s: %s\n" +msgstr "" + +#: src/stored/bextract.c:418 +#, c-format +msgid "Uncompression error. ERR=%d\n" +msgstr "" + +#: src/stored/bextract.c:426 +msgid "===Write error===\n" +msgstr "" + +#: src/stored/bextract.c:460 +msgid "Got Program Name or Data Stream. Ignored.\n" +msgstr "" + +#: src/stored/dvd.c:112 +msgid "No FreeSpace command defined.\n" +msgstr "" + +#: src/stored/dvd.c:146 +#, c-format +msgid "Cannot run free space command. Results=%s ERR=%s\n" +msgstr "" + +#: src/stored/dvd.c:262 +#, c-format +msgid "Error writing part %d to the DVD: ERR=%s\n" +msgstr "" + +#: src/stored/dvd.c:264 +#, c-format +msgid "Error while writing current part to the DVD: %s" +msgstr "" + +#: src/stored/dvd.c:274 +#, c-format +msgid "Part %d (%lld bytes) written to DVD.\n" +msgstr "" + +#: src/stored/dvd.c:293 +#, c-format +msgid "Remaining free space %s on %s\n" +msgstr "" + +#: src/stored/dvd.c:359 +#, c-format +msgid "Next Volume part already exists on DVD. Cannot continue: %s\n" +msgstr "" + +#: src/stored/dvd.c:378 +#, c-format +msgid "open_next_part can't unlink existing part %s, ERR=%s\n" +msgstr "" + +#: src/stored/dvd.c:579 +#, c-format +msgid "" +"Error writing. Current part less than total number of parts (%d/%d, device=%" +"s)\n" +msgstr "" + +#: src/stored/dvd.c:586 +#, c-format +msgid "Unable to write last on %s: ERR=%s\n" +msgstr "" + +#: src/stored/label.c:91 src/stored/label.c:131 src/stored/label.c:225 +#, c-format +msgid "Wrong Volume mounted on device %s: Wanted %s have %s\n" +msgstr "" + +#: src/stored/label.c:98 src/stored/label.c:134 src/stored/label.c:207 +#, c-format +msgid "Too many tries: %s" +msgstr "" + +#: src/stored/label.c:114 +#, c-format +msgid "Couldn't rewind device %s: ERR=%s\n" +msgstr "" + +#: src/stored/label.c:151 +#, c-format +msgid "" +"Requested Volume \"%s\" on %s is not a Bacula labeled Volume, because: ERR=%s" +msgstr "" + +#: src/stored/label.c:156 +msgid "Could not read Volume label from block.\n" +msgstr "" + +#: src/stored/label.c:159 +#, c-format +msgid "Could not unserialize Volume label: ERR=%s\n" +msgstr "" + +#: src/stored/label.c:164 +#, c-format +msgid "Volume Header Id bad: %s\n" +msgstr "" + +#: src/stored/label.c:192 +#, c-format +msgid "Volume on %s has wrong Bacula version. Wanted %d got %d\n" +msgstr "" + +#: src/stored/label.c:203 +#, c-format +msgid "Volume on %s has bad Bacula label type: %x\n" +msgstr "" + +#: src/stored/label.c:216 src/stored/label.c:402 +#, fuzzy, c-format +msgid "Could not reserve volume %s on %s\n" +msgstr "Konnte FileSet \"%s\" Eintrag nicht erzeugen. ERR=%s\n" + +#: src/stored/label.c:289 +#, c-format +msgid "Cannot write Volume label to block for device %s\n" +msgstr "" + +#: src/stored/label.c:449 +#, c-format +msgid "Rewind error on device %s: ERR=%s\n" +msgstr "" + +#: src/stored/label.c:455 +#, c-format +msgid "Truncate error on device %s: ERR=%s\n" +msgstr "" + +#: src/stored/label.c:461 +#, c-format +msgid "Failed to re-open DVD after truncate on device %s: ERR=%s\n" +msgstr "" + +#: src/stored/label.c:484 +#, c-format +msgid "Unable to write device %s: ERR=%s\n" +msgstr "" + +#: src/stored/label.c:512 +#, c-format +msgid "Recycled volume \"%s\" on device %s, all previous data lost.\n" +msgstr "" + +#: src/stored/label.c:515 +#, c-format +msgid "Wrote label to prelabeled Volume \"%s\" on device %s\n" +msgstr "" + +#: src/stored/label.c:719 +#, c-format +msgid "Bad Volume session label = %d\n" +msgstr "" + +#: src/stored/label.c:774 +#, c-format +msgid "Expecting Volume Label, got FI=%s Stream=%s len=%d\n" +msgstr "" + +#: src/stored/label.c:901 +#, c-format +msgid "Unknown %d" +msgstr "" + +#: src/stored/label.c:905 +#, c-format +msgid "" +"\n" +"Volume Label:\n" +"Id : %sVerNo : %d\n" +"VolName : %s\n" +"PrevVolName : %s\n" +"VolFile : %d\n" +"LabelType : %s\n" +"LabelSize : %d\n" +"PoolName : %s\n" +"MediaType : %s\n" +"PoolType : %s\n" +"HostName : %s\n" +msgstr "" + +#: src/stored/label.c:927 +#, c-format +msgid "Date label written: %s\n" +msgstr "" + +#: src/stored/label.c:933 +#, c-format +msgid "Date label written: %04d-%02d-%02d at %02d:%02d\n" +msgstr "" + +#: src/stored/label.c:953 +#, c-format +msgid "" +"\n" +"%s Record:\n" +"JobId : %d\n" +"VerNum : %d\n" +"PoolName : %s\n" +"PoolType : %s\n" +"JobName : %s\n" +"ClientName : %s\n" +msgstr "" + +#: src/stored/label.c:966 +#, c-format +msgid "" +"Job (unique name) : %s\n" +"FileSet : %s\n" +"JobType : %c\n" +"JobLevel : %c\n" +msgstr "" + +#: src/stored/label.c:975 +#, c-format +msgid "" +"JobFiles : %s\n" +"JobBytes : %s\n" +"StartBlock : %s\n" +"EndBlock : %s\n" +"StartFile : %s\n" +"EndFile : %s\n" +"JobErrors : %s\n" +"JobStatus : %c\n" +msgstr "" + +#: src/stored/label.c:996 +#, c-format +msgid "Date written : %s\n" +msgstr "" + +#: src/stored/label.c:1001 +#, c-format +msgid "Date written : %04d-%02d-%02d at %02d:%02d\n" +msgstr "" + +#: src/stored/label.c:1020 +msgid "Fresh Volume" +msgstr "" + +#: src/stored/label.c:1023 +msgid "Volume" +msgstr "" + +#: src/stored/label.c:1035 +msgid "End of Tape" +msgstr "" + +#: src/stored/label.c:1055 src/stored/label.c:1063 src/stored/label.c:1096 +#, c-format +msgid "%s Record: File:blk=%u:%u SessId=%d SessTime=%d JobId=%d DataLen=%d\n" +msgstr "" + +#: src/stored/label.c:1060 +msgid "End of physical tape.\n" +msgstr "" + +#: src/stored/label.c:1075 src/stored/label.c:1084 +#, c-format +msgid "%s Record: File:blk=%u:%u SessId=%d SessTime=%d JobId=%d\n" +msgstr "" + +#: src/stored/label.c:1077 +#, c-format +msgid " Job=%s Date=%s Level=%c Type=%c\n" +msgstr "" + +#: src/stored/label.c:1086 +#, c-format +msgid " Date=%s Level=%c Type=%c Files=%s Bytes=%s Errors=%d Status=%c\n" +msgstr "" + +#: src/stored/parse_bsr.c:118 src/stored/parse_bsr.c:122 +#, c-format +msgid "" +"Bootstrap file error: %s\n" +" : Line %d, col %d of file %s\n" +"%s\n" +msgstr "" + +#: src/stored/parse_bsr.c:144 +#, c-format +msgid "Cannot open bootstrap file %s: %s\n" +msgstr "" + +#: src/stored/parse_bsr.c:274 +#, c-format +msgid "MediaType %s in bsr at inappropriate place.\n" +msgstr "" + +#: src/stored/parse_bsr.c:295 +#, c-format +msgid "Device \"%s\" in bsr at inappropriate place.\n" +msgstr "" + +#: src/stored/parse_bsr.c:452 +msgid "JobType not yet implemented\n" +msgstr "" + +#: src/stored/parse_bsr.c:460 +msgid "JobLevel not yet implemented\n" +msgstr "" + +#: src/stored/parse_bsr.c:643 +#, c-format +msgid "Slot %d in bsr at inappropriate place.\n" +msgstr "" + +#: src/stored/parse_bsr.c:667 +#, c-format +msgid "VolFile : %u-%u\n" +msgstr "" + +#: src/stored/parse_bsr.c:675 +#, c-format +msgid "VolBlock : %u-%u\n" +msgstr "" + +#: src/stored/parse_bsr.c:685 +#, c-format +msgid "FileIndex : %u\n" +msgstr "" + +#: src/stored/parse_bsr.c:687 +#, c-format +msgid "FileIndex : %u-%u\n" +msgstr "" + +#: src/stored/parse_bsr.c:697 +#, c-format +msgid "JobId : %u\n" +msgstr "" + +#: src/stored/parse_bsr.c:699 +#, c-format +msgid "JobId : %u-%u\n" +msgstr "" + +#: src/stored/parse_bsr.c:709 +#, c-format +msgid "SessId : %u\n" +msgstr "" + +#: src/stored/parse_bsr.c:711 +#, c-format +msgid "SessId : %u-%u\n" +msgstr "" + +#: src/stored/parse_bsr.c:720 +#, c-format +msgid "VolumeName : %s\n" +msgstr "" + +#: src/stored/parse_bsr.c:721 +#, c-format +msgid " MediaType : %s\n" +msgstr "" + +#: src/stored/parse_bsr.c:722 +#, c-format +msgid " Device : %s\n" +msgstr "" + +#: src/stored/parse_bsr.c:723 +#, c-format +msgid " Slot : %d\n" +msgstr "" + +#: src/stored/parse_bsr.c:732 +#, c-format +msgid "Client : %s\n" +msgstr "" + +#: src/stored/parse_bsr.c:740 +#, c-format +msgid "Job : %s\n" +msgstr "" + +#: src/stored/parse_bsr.c:748 +#, c-format +msgid "SessTime : %u\n" +msgstr "" + +#: src/stored/parse_bsr.c:759 +msgid "BSR is NULL\n" +msgstr "" + +#: src/stored/parse_bsr.c:763 +#, c-format +msgid "Next : 0x%x\n" +msgstr "" + +#: src/stored/parse_bsr.c:764 +#, c-format +msgid "Root bsr : 0x%x\n" +msgstr "" + +#: src/stored/parse_bsr.c:775 +#, c-format +msgid "count : %u\n" +msgstr "" + +#: src/stored/parse_bsr.c:776 +#, c-format +msgid "found : %u\n" +msgstr "" + +#: src/stored/parse_bsr.c:779 +#, c-format +msgid "done : %s\n" +msgstr "" + +#: src/stored/parse_bsr.c:780 +#, c-format +msgid "positioning : %d\n" +msgstr "" + +#: src/stored/parse_bsr.c:781 +#, c-format +msgid "fast_reject : %d\n" +msgstr "" + +#: src/stored/bls.c:78 +#, fuzzy, c-format +msgid "" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: bls [options] \n" +" -b specify a bootstrap file\n" +" -c specify a config file\n" +" -d set debug level to \n" +" -e exclude list\n" +" -i include list\n" +" -j list jobs\n" +" -k list blocks\n" +" (no j or k option) list saved files\n" +" -L dump label\n" +" -p proceed inspite of errors\n" +" -v be verbose\n" +" -V specify Volume names (separated by |)\n" +" -? print this message\n" +"\n" +msgstr "" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: dird [-f -s] [-c config_file] [-d debug_level] [config_file]\n" +" -c setze Konfigurationsdatei auf Datei\n" +" -dnn setze debug level auf nn\n" +" -f starte im Vordergrund (für debugging Zwecke)\n" +" -g groupid\n" +" -r starte jetzt\n" +" -s no signals\n" +" -t test - Konfiguration Lesen und beenden\n" +" -u userid\n" +" -v ausführliche Benutzer Meldungen\n" +" -? diese Meldung ausgeben.\n" +"\n" + +#: src/stored/bls.c:208 +msgid "No archive name specified\n" +msgstr "" + +#: src/stored/bls.c:243 +#, c-format +msgid "" +"\n" +"Warning, this Volume is a continuation of Volume %s\n" +msgstr "" + +#: src/stored/bls.c:286 +#, c-format +msgid "Got EOM at file %u on device %s, Volume \"%s\"\n" +msgstr "" + +#: src/stored/bls.c:297 +#, c-format +msgid "Mounted Volume \"%s\".\n" +msgstr "" + +#: src/stored/bls.c:299 +#, c-format +msgid "End of file %u on device %s, Volume \"%s\"\n" +msgstr "" + +#: src/stored/bls.c:323 +#, c-format +msgid "" +"File:blk=%u:%u blk_num=%u blen=%u First rec FI=%s SessId=%u SessTim=%u Strm=%" +"s rlen=%d\n" +msgstr "" + +#: src/stored/bls.c:332 +#, c-format +msgid "Block: %d size=%d\n" +msgstr "" + +#: src/stored/bls.c:399 +#, c-format +msgid "FileIndex=%d VolSessionId=%d VolSessionTime=%d Stream=%d DataLen=%d\n" +msgstr "" + +#: src/stored/status.c:120 +msgid "" +"\n" +"Device status:\n" +msgstr "" + +#: src/stored/status.c:124 +#, c-format +msgid "Autochanger \"%s\" with devices:\n" +msgstr "" + +#: src/stored/status.c:142 +#, c-format +msgid "" +"Device %s is mounted with:\n" +" Volume: %s\n" +" Pool: %s\n" +" Media type: %s\n" +msgstr "" + +#: src/stored/status.c:152 +#, c-format +msgid "Device %s open but no Bacula volume is currently mounted.\n" +msgstr "" + +#: src/stored/status.c:163 +#, c-format +msgid " Total Bytes=%s Blocks=%s Bytes/block=%s\n" +msgstr "" + +#: src/stored/status.c:178 +#, c-format +msgid " Total Bytes Read=%s Blocks Read=%s Bytes/block=%s\n" +msgstr "" + +#: src/stored/status.c:184 +#, c-format +msgid " Positioned at File=%s Block=%s\n" +msgstr "" + +#: src/stored/status.c:191 +#, c-format +msgid "Device %s is not open.\n" +msgstr "" + +#: src/stored/status.c:195 +#, c-format +msgid "Device \"%s\" is not open or does not exist.\n" +msgstr "" + +#: src/stored/status.c:201 +msgid "In Use Volume status:\n" +msgstr "" + +#: src/stored/status.c:208 src/stored/status.c:210 +msgid "" +"====\n" +"\n" +msgstr "" + +#: src/stored/status.c:227 +msgid "" +"No DEVICE structure.\n" +"\n" +msgstr "" + +#: src/stored/status.c:234 +msgid " Device is BLOCKED. User unmounted.\n" +msgstr "" + +#: src/stored/status.c:238 +msgid " Device is BLOCKED. User unmounted during wait for media/mount.\n" +msgstr "" + +#: src/stored/status.c:250 +#, c-format +msgid "" +" Device is BLOCKED waiting for mount of volume \"%s\",\n" +" Pool: %s\n" +" Media type: %s\n" +msgstr "" + +#: src/stored/status.c:259 +#, c-format +msgid "" +" Device is BLOCKED waiting to create a volume for:\n" +" Pool: %s\n" +" Media type: %s\n" +msgstr "" + +#: src/stored/status.c:271 +msgid " Device is BLOCKED waiting for media.\n" +msgstr "" + +#: src/stored/status.c:277 +msgid " Device is being initialized.\n" +msgstr "" + +#: src/stored/status.c:281 +msgid " Device is blocked labeling a Volume.\n" +msgstr "" + +#: src/stored/status.c:290 +#, c-format +msgid " Slot %d is loaded in drive %d.\n" +msgstr "" + +#: src/stored/status.c:294 +#, c-format +msgid " Drive %d is not loaded.\n" +msgstr "" + +#: src/stored/status.c:297 +#, fuzzy, c-format +msgid " Drive %d status unknown.\n" +msgstr "unbekannt" + +#: src/stored/status.c:302 src/stored/btape.c:584 +#, c-format +msgid "Configured device capabilities:\n" +msgstr "" + +#: src/stored/status.c:320 +msgid "Device state:\n" +msgstr "" + +#: src/stored/status.c:338 +#, c-format +msgid "" +"num_writers=%d block=%d\n" +"\n" +msgstr "" + +#: src/stored/status.c:341 src/stored/btape.c:616 +#, c-format +msgid "Device parameters:\n" +msgstr "" + +#: src/stored/status.c:344 +#, c-format +msgid "Archive name: %s Device name: %s\n" +msgstr "" + +#: src/stored/status.c:348 +#, c-format +msgid "File=%u block=%u\n" +msgstr "" + +#: src/stored/status.c:351 +#, c-format +msgid "Min block=%u Max block=%u\n" +msgstr "" + +#: src/stored/status.c:375 +#, c-format +msgid "%s Job %s waiting for Client connection.\n" +msgstr "" + +#: src/stored/status.c:391 +#, c-format +msgid "" +"Reading: %s %s job %s JobId=%d Volume=\"%s\"\n" +" pool=\"%s\" device=%s\n" +msgstr "" + +#: src/stored/status.c:404 +#, c-format +msgid "" +"Writing: %s %s job %s JobId=%d Volume=\"%s\"\n" +" pool=\"%s\" device=%s\n" +msgstr "" + +#: src/stored/status.c:415 +#, c-format +msgid " spooling=%d despooling=%d despool_wait=%d\n" +msgstr "" + +#: src/stored/status.c:424 +#, c-format +msgid " Files=%s Bytes=%s Bytes/sec=%s\n" +msgstr "" + +#: src/stored/status.c:432 +#, c-format +msgid " FDReadSeqNo=%s in_msg=%u out_msg=%d fd=%d\n" +msgstr "" + +#: src/stored/status.c:438 +msgid " FDSocket closed\n" +msgstr "" + +#: src/stored/status.c:460 +msgid "" +"\n" +"Jobs waiting to reserve a drive:\n" +msgstr "" + +#: src/stored/status.c:491 +msgid "===================================================================\n" +msgstr "" + +#: src/stored/status.c:637 +msgid "3900 Bad .status command, missing argument.\n" +msgstr "" + +#: src/stored/status.c:660 +msgid "3900 Bad .status command, wrong argument.\n" +msgstr "" + +#: src/stored/status.c:674 +msgid "Bacula Storage: Idle" +msgstr "" + +#: src/stored/status.c:685 +msgid "Bacula Storage: Running" +msgstr "" + +#: src/stored/status.c:699 +msgid "Bacula Storage: Last Job Canceled" +msgstr "" + +#: src/stored/status.c:703 +msgid "Bacula Storage: Last Job Failed" +msgstr "" + +#: src/stored/status.c:707 +msgid "Bacula Storage: Last Job had Warnings" +msgstr "" + +#: src/stored/bscan.c:115 +#, c-format +msgid "" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: bscan [ options ] \n" +" -b bootstrap specify a bootstrap file\n" +" -c specify configuration file\n" +" -d set debug level to \n" +" -m update media info in database\n" +" -n specify the database name (default bacula)\n" +" -u specify database user name (default bacula)\n" +" -P specify database password (default none)\n" +" -h specify database host (default NULL)\n" +" -p proceed inspite of I/O errors\n" +" -r list records\n" +" -s synchronize or store in database\n" +" -S show scan progress periodically\n" +" -v verbose\n" +" -V specify Volume names (separated by |)\n" +" -w specify working directory (default from conf file)\n" +" -? print this message\n" +"\n" +msgstr "" + +#: src/stored/bscan.c:262 +#, c-format +msgid "Working Directory: %s not found. Cannot continue.\n" +msgstr "" + +#: src/stored/bscan.c:266 +#, c-format +msgid "Working Directory: %s is not a directory. Cannot continue.\n" +msgstr "" + +#: src/stored/bscan.c:280 src/stored/bscan.c:355 +#, c-format +msgid "First Volume Size = %sn" +msgstr "" + +#: src/stored/bscan.c:286 src/tools/bbatch.c:196 +msgid "Could not init Bacula database\n" +msgstr "" + +#: src/stored/bscan.c:293 src/tools/bbatch.c:203 +#, c-format +msgid "Using Database: %s, User: %s\n" +msgstr "" + +#: src/stored/bscan.c:328 +#, c-format +msgid "Create JobMedia for Job %s\n" +msgstr "" + +#: src/stored/bscan.c:337 +#, c-format +msgid "Could not create JobMedia record for Volume=%s Job=%s\n" +msgstr "" + +#: src/stored/bscan.c:400 +#, c-format +msgid "done: %d%%\n" +msgstr "" + +#: src/stored/bscan.c:424 +msgid "Volume is prelabeled. This tape cannot be scanned.\n" +msgstr "" + +#: src/stored/bscan.c:436 +#, c-format +msgid "Pool record for %s found in DB.\n" +msgstr "" + +#: src/stored/bscan.c:440 +#, c-format +msgid "VOL_LABEL: Pool record not found for Pool: %s\n" +msgstr "" + +#: src/stored/bscan.c:446 +#, c-format +msgid "VOL_LABEL: PoolType mismatch. DB=%s Vol=%s\n" +msgstr "" + +#: src/stored/bscan.c:450 +#, c-format +msgid "Pool type \"%s\" is OK.\n" +msgstr "" + +#: src/stored/bscan.c:460 +#, c-format +msgid "Media record for %s found in DB.\n" +msgstr "" + +#: src/stored/bscan.c:467 +#, c-format +msgid "VOL_LABEL: Media record not found for Volume: %s\n" +msgstr "" + +#: src/stored/bscan.c:474 +#, c-format +msgid "VOL_LABEL: MediaType mismatch. DB=%s Vol=%s\n" +msgstr "" + +#: src/stored/bscan.c:478 +#, c-format +msgid "Media type \"%s\" is OK.\n" +msgstr "" + +#: src/stored/bscan.c:488 +#, c-format +msgid "VOL_LABEL: OK for Volume: %s\n" +msgstr "" + +#: src/stored/bscan.c:495 +#, c-format +msgid "%d \"errors\" ignored before first Start of Session record.\n" +msgstr "" + +#: src/stored/bscan.c:506 +#, c-format +msgid "SOS_LABEL: Found Job record for JobId: %d\n" +msgstr "" + +#: src/stored/bscan.c:511 +#, c-format +msgid "SOS_LABEL: Job record not found for JobId: %d\n" +msgstr "" + +#: src/stored/bscan.c:551 +#, c-format +msgid "SOS_LABEL: VolSessId mismatch for JobId=%u. DB=%d Vol=%d\n" +msgstr "" + +#: src/stored/bscan.c:557 +#, c-format +msgid "SOS_LABEL: VolSessTime mismatch for JobId=%u. DB=%d Vol=%d\n" +msgstr "" + +#: src/stored/bscan.c:563 +#, c-format +msgid "SOS_LABEL: PoolId mismatch for JobId=%u. DB=%d Vol=%d\n" +msgstr "" + +#: src/stored/bscan.c:581 src/stored/bscan.c:1093 +#, c-format +msgid "Could not find SessId=%d SessTime=%d for EOS record.\n" +msgstr "" + +#: src/stored/bscan.c:625 +#, c-format +msgid "Could not update job record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:636 +#, c-format +msgid "End of all Volumes. VolFiles=%u VolBlocks=%u VolBytes=%s\n" +msgstr "" + +#: src/stored/bscan.c:648 +#, c-format +msgid "Could not find Job for SessId=%d SessTime=%d record.\n" +msgstr "" + +#: src/stored/bscan.c:684 +#, c-format +msgid "%s file records. At file:blk=%s:%s bytes=%s\n" +msgstr "" + +#: src/stored/bscan.c:738 +#, c-format +msgid "Got MD5 record: %s\n" +msgstr "" + +#: src/stored/bscan.c:746 +#, c-format +msgid "Got SHA1 record: %s\n" +msgstr "" + +#: src/stored/bscan.c:754 +#, c-format +msgid "Got SHA256 record: %s\n" +msgstr "" + +#: src/stored/bscan.c:762 +#, c-format +msgid "Got SHA512 record: %s\n" +msgstr "" + +#: src/stored/bscan.c:770 src/stored/bscan.c:777 +msgid "Got signed digest record\n" +msgstr "" + +#: src/stored/bscan.c:783 +#, c-format +msgid "Got Prog Names Stream: %s\n" +msgstr "" + +#: src/stored/bscan.c:789 +msgid "Got Prog Data Stream record.\n" +msgstr "" + +#: src/stored/bscan.c:799 +#, c-format +msgid "Unknown stream type!!! stream=%d len=%i\n" +msgstr "" + +#: src/stored/bscan.c:863 +#, c-format +msgid "Could not create File Attributes record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:869 +#, c-format +msgid "Created File record: %s\n" +msgstr "" + +#: src/stored/bscan.c:913 +#, c-format +msgid "Could not create media record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:917 src/stored/bscan.c:938 +#, c-format +msgid "Could not update media record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:921 +#, c-format +msgid "Created Media record for Volume: %s\n" +msgstr "" + +#: src/stored/bscan.c:942 +#, c-format +msgid "Updated Media record at end of Volume: %s\n" +msgstr "" + +#: src/stored/bscan.c:959 +#, c-format +msgid "Could not create pool record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:963 +#, c-format +msgid "Created Pool record for Pool: %s\n" +msgstr "" + +#: src/stored/bscan.c:982 +#, fuzzy, c-format +msgid "Could not get Client record. ERR=%s\n" +msgstr "Konnte Client Eintrag nicht anlegen. ERR=%s\n" + +#: src/stored/bscan.c:992 +#, c-format +msgid "Created Client record for Client: %s\n" +msgstr "" + +#: src/stored/bscan.c:1009 +#, c-format +msgid "Fileset \"%s\" already exists.\n" +msgstr "" + +#: src/stored/bscan.c:1013 +#, c-format +msgid "Could not create FileSet record \"%s\". ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:1018 +#, c-format +msgid "Created FileSet record \"%s\"\n" +msgstr "" + +#: src/stored/bscan.c:1065 +#, c-format +msgid "Could not create JobId record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:1071 +#, c-format +msgid "Could not update job start record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:1074 +#, c-format +msgid "Created new JobId=%u record for original JobId=%u\n" +msgstr "" + +#: src/stored/bscan.c:1124 +#, c-format +msgid "Could not update JobId=%u record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:1129 +#, c-format +msgid "Updated Job termination record for JobId=%u Level=%s TermStat=%c\n" +msgstr "" + +#: src/stored/bscan.c:1151 +#, c-format +msgid "Job Termination code: %d" +msgstr "" + +#: src/stored/bscan.c:1156 +#, c-format +msgid "" +"%s\n" +"JobId: %d\n" +"Job: %s\n" +"FileSet: %s\n" +"Backup Level: %s\n" +"Client: %s\n" +"Start time: %s\n" +"End time: %s\n" +"Files Written: %s\n" +"Bytes Written: %s\n" +"Volume Session Id: %d\n" +"Volume Session Time: %d\n" +"Last Volume Bytes: %s\n" +"Termination: %s\n" +"\n" +msgstr "" + +#: src/stored/bscan.c:1214 +#, c-format +msgid "Could not create JobMedia record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:1218 +#, c-format +msgid "Created JobMedia record JobId %d, MediaId %d\n" +msgstr "" + +#: src/stored/bscan.c:1234 +#, c-format +msgid "Could not find SessId=%d SessTime=%d for MD5/SHA1 record.\n" +msgstr "" + +#: src/stored/bscan.c:1248 +#, c-format +msgid "Could not add MD5/SHA1 to File record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:1253 +msgid "Updated MD5/SHA1 record\n" +msgstr "" + +#: src/stored/lock.c:217 +#, fuzzy, c-format +msgid "pthread_cond_wait failure. ERR=%s\n" +msgstr "pthread_cond_wait: ERR=%s\n" + +#: src/stored/lock.c:313 +#, fuzzy +msgid "unknown blocked code" +msgstr "unbekannt" + +#: src/stored/btape.c:179 +#, c-format +msgid "" +"\n" +"\n" +"!!!! Warning large disk addressing disabled. boffset_t=%d should be 8 or " +"more !!!!!\n" +"\n" +"\n" +msgstr "" + +#: src/stored/btape.c:186 +#, c-format +msgid "32 bit printf/scanf problem. i=%d x32=%u y32=%u\n" +msgstr "" + +#: src/stored/btape.c:195 +msgid "64 bit printf/scanf problem. i=%d x64=%" +msgstr "" + +#: src/stored/btape.c:200 +#, c-format +msgid "Tape block granularity is %d bytes.\n" +msgstr "" + +#: src/stored/btape.c:273 +msgid "No archive name specified.\n" +msgstr "" + +#: src/stored/btape.c:277 +msgid "Improper number of arguments specified.\n" +msgstr "" + +#: src/stored/btape.c:291 +msgid "btape does not work with DVD storage.\n" +msgstr "" + +#: src/stored/btape.c:296 +msgid "btape only works with tape storage.\n" +msgstr "" + +#: src/stored/btape.c:372 +#, c-format +msgid "open device %s: OK\n" +msgstr "" + +#: src/stored/btape.c:395 +msgid "Enter Volume Name: " +msgstr "" + +#: src/stored/btape.c:402 +#, c-format +msgid "Device open failed. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:408 +#, c-format +msgid "Wrote Volume label for volume \"%s\".\n" +msgstr "" + +#: src/stored/btape.c:422 +msgid "Volume has no label.\n" +msgstr "" + +#: src/stored/btape.c:425 +msgid "Volume label read correctly.\n" +msgstr "" + +#: src/stored/btape.c:428 +#, c-format +msgid "I/O error on device: ERR=%s" +msgstr "" + +#: src/stored/btape.c:431 +msgid "Volume name error\n" +msgstr "" + +#: src/stored/btape.c:434 +#, c-format +msgid "Error creating label. ERR=%s" +msgstr "" + +#: src/stored/btape.c:437 +msgid "Volume version error.\n" +msgstr "" + +#: src/stored/btape.c:440 +msgid "Bad Volume label type.\n" +msgstr "" + +#: src/stored/btape.c:443 +msgid "Unknown error.\n" +msgstr "" + +#: src/stored/btape.c:461 +#, c-format +msgid "Bad status from load. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:463 +#, c-format +msgid "Loaded %s\n" +msgstr "" + +#: src/stored/btape.c:472 src/stored/btape.c:811 src/stored/btape.c:853 +#: src/stored/btape.c:923 src/stored/btape.c:965 src/stored/btape.c:1233 +#, c-format +msgid "Bad status from rewind. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:475 src/stored/btape.c:1241 +#, c-format +msgid "Rewound %s\n" +msgstr "" + +#: src/stored/btape.c:501 src/stored/btape.c:1245 +#, c-format +msgid "Bad status from weof. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:505 +#, c-format +msgid "Wrote 1 EOF to %s\n" +msgstr "" + +#: src/stored/btape.c:508 +#, c-format +msgid "Wrote %d EOFs to %s\n" +msgstr "" + +#: src/stored/btape.c:526 +msgid "Moved to end of medium.\n" +msgstr "" + +#: src/stored/btape.c:553 +#, c-format +msgid "Bad status from bsf. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:555 +#, c-format +msgid "Backspaced %d file%s.\n" +msgstr "" + +#: src/stored/btape.c:572 +#, c-format +msgid "Bad status from bsr. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:574 +#, c-format +msgid "Backspaced %d record%s.\n" +msgstr "" + +#: src/stored/btape.c:602 +#, c-format +msgid "Device status:\n" +msgstr "" + +#: src/stored/btape.c:621 +#, c-format +msgid "Status:\n" +msgstr "" + +#: src/stored/btape.c:636 +msgid "" +"Test writting larger and larger records.\n" +"This is a torture test for records.\n" +"I am going to write\n" +"larger and larger records. It will stop when the record size\n" +"plus the header exceeds the block size (by default about 64K)\n" +msgstr "" + +#: src/stored/btape.c:642 +msgid "Do you want to continue? (y/n): " +msgstr "" + +#: src/stored/btape.c:644 src/stored/btape.c:1861 +msgid "Command aborted.\n" +msgstr "" + +#: src/stored/btape.c:660 +#, c-format +msgid "Block %d i=%d\n" +msgstr "" + +#: src/stored/btape.c:686 +msgid "Skipping read backwards test because BSR turned off.\n" +msgstr "" + +#: src/stored/btape.c:690 +msgid "" +"\n" +"=== Write, backup, and re-read test ===\n" +"\n" +"I'm going to write three records and an EOF\n" +"then backup over the EOF and re-read the last record.\n" +"Bacula does this after writing the last block on the\n" +"tape to verify that the block was written correctly.\n" +"\n" +"This is not an *essential* feature ...\n" +"\n" +msgstr "" + +#: src/stored/btape.c:703 src/stored/btape.c:714 src/stored/btape.c:725 +#: src/stored/btape.c:823 src/stored/btape.c:839 src/stored/btape.c:935 +#: src/stored/btape.c:951 src/stored/btape.c:1570 src/stored/btape.c:2455 +msgid "Error writing record to block.\n" +msgstr "" + +#: src/stored/btape.c:707 src/stored/btape.c:718 src/stored/btape.c:729 +#: src/stored/btape.c:827 src/stored/btape.c:843 src/stored/btape.c:939 +#: src/stored/btape.c:955 src/stored/btape.c:1574 src/stored/btape.c:2459 +msgid "Error writing block to device.\n" +msgstr "" + +#: src/stored/btape.c:710 +#, c-format +msgid "Wrote first record of %d bytes.\n" +msgstr "" + +#: src/stored/btape.c:721 +#, c-format +msgid "Wrote second record of %d bytes.\n" +msgstr "" + +#: src/stored/btape.c:732 +#, c-format +msgid "Wrote third record of %d bytes.\n" +msgstr "" + +#: src/stored/btape.c:739 src/stored/btape.c:744 +#, c-format +msgid "Backspace file failed! ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:748 +msgid "Backspaced over EOF OK.\n" +msgstr "" + +#: src/stored/btape.c:750 +#, c-format +msgid "Backspace record failed! ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:753 +msgid "Backspace record OK.\n" +msgstr "" + +#: src/stored/btape.c:756 src/stored/btape.c:762 +#, c-format +msgid "Read block failed! ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:767 +msgid "Bad data in record. Test failed!\n" +msgstr "" + +#: src/stored/btape.c:771 +msgid "" +"\n" +"Block re-read correct. Test succeeded!\n" +msgstr "" + +#: src/stored/btape.c:772 +msgid "" +"=== End Write, backup, and re-read test ===\n" +"\n" +msgstr "" + +#: src/stored/btape.c:779 +msgid "" +"This is not terribly serious since Bacula only uses\n" +"this function to verify the last block written to the\n" +"tape. Bacula will skip the last block verification\n" +"if you add:\n" +"\n" +"Backward Space Record = No\n" +"\n" +"to your Storage daemon's Device resource definition.\n" +msgstr "" + +#: src/stored/btape.c:803 +msgid "" +"\n" +"=== Write, rewind, and re-read test ===\n" +"\n" +"I'm going to write 1000 records and an EOF\n" +"then write 1000 records and an EOF, then rewind,\n" +"and re-read the data to verify that it is correct.\n" +"\n" +"This is an *essential* feature ...\n" +"\n" +msgstr "" + +#: src/stored/btape.c:831 src/stored/btape.c:847 src/stored/btape.c:943 +#: src/stored/btape.c:959 +#, c-format +msgid "Wrote 1000 blocks of %d bytes.\n" +msgstr "" + +#: src/stored/btape.c:856 src/stored/btape.c:968 +msgid "Rewind OK.\n" +msgstr "" + +#: src/stored/btape.c:863 src/stored/btape.c:1017 +msgid "Got EOF on tape.\n" +msgstr "" + +#: src/stored/btape.c:868 +#, c-format +msgid "Read block %d failed! ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:874 +#, c-format +msgid "Read record failed. Block %d! ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:880 src/stored/btape.c:1047 +#, c-format +msgid "Bad data in record. Expected %d, got %d at byte %d. Test failed!\n" +msgstr "" + +#: src/stored/btape.c:887 +msgid "1000 blocks re-read correctly.\n" +msgstr "" + +#: src/stored/btape.c:890 src/stored/btape.c:1054 +msgid "" +"=== Test Succeeded. End Write, rewind, and re-read test ===\n" +"\n" +msgstr "" + +#: src/stored/btape.c:915 +msgid "" +"\n" +"=== Write, rewind, and position test ===\n" +"\n" +"I'm going to write 1000 records and an EOF\n" +"then write 1000 records and an EOF, then rewind,\n" +"and position to a few blocks and verify that it is correct.\n" +"\n" +"This is an *essential* feature ...\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1008 +#, c-format +msgid "Reposition to file:block %d:%d\n" +msgstr "" + +#: src/stored/btape.c:1010 +msgid "Reposition error.\n" +msgstr "" + +#: src/stored/btape.c:1023 +#, c-format +msgid "" +"Read block %d failed! file=%d blk=%d. ERR=%s\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1025 +msgid "" +"This may be because the tape drive block size is not\n" +" set to variable blocking as normally used by Bacula.\n" +" Please see the Tape Testing chapter in the manual and \n" +" look for using mt with defblksize and setoptions\n" +"If your tape drive block size is correct, then perhaps\n" +" your SCSI driver is *really* stupid and does not\n" +" correctly report the file:block after a FSF. In this\n" +" case try setting:\n" +" Fast Forward Space File = no\n" +" in your Device resource.\n" +msgstr "" + +#: src/stored/btape.c:1041 +#, c-format +msgid "Read record failed! ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1052 +#, c-format +msgid "Block %d re-read correctly.\n" +msgstr "" + +#: src/stored/btape.c:1073 +msgid "" +"\n" +"\n" +"=== Append files test ===\n" +"\n" +"This test is essential to Bacula.\n" +"\n" +"I'm going to write one record in file 0,\n" +" two records in file 1,\n" +" and three records in file 2\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1097 +msgid "Now moving to end of medium.\n" +msgstr "" + +#: src/stored/btape.c:1099 src/stored/btape.c:1328 +#, c-format +msgid "We should be in file 3. I am at file %d. %s\n" +msgstr "" + +#: src/stored/btape.c:1100 src/stored/btape.c:1118 src/stored/btape.c:1317 +#: src/stored/btape.c:1329 src/stored/btape.c:1342 src/stored/btape.c:1359 +msgid "This is correct!" +msgstr "" + +#: src/stored/btape.c:1100 src/stored/btape.c:1118 src/stored/btape.c:1317 +#: src/stored/btape.c:1329 src/stored/btape.c:1342 src/stored/btape.c:1359 +msgid "This is NOT correct!!!!" +msgstr "" + +#: src/stored/btape.c:1106 +msgid "" +"\n" +"Now the important part, I am going to attempt to append to the tape.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1113 +msgid "" +"Done appending, there should be no I/O errors\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1114 +msgid "Doing Bacula scan of blocks:\n" +msgstr "" + +#: src/stored/btape.c:1116 +msgid "End scanning the tape.\n" +msgstr "" + +#: src/stored/btape.c:1117 src/stored/btape.c:1341 +#, c-format +msgid "We should be in file 4. I am at file %d. %s\n" +msgstr "" + +#: src/stored/btape.c:1142 +msgid "" +"\n" +"Autochanger enabled, but no name or no command device specified.\n" +msgstr "" + +#: src/stored/btape.c:1146 +msgid "" +"\n" +"Ah, I see you have an autochanger configured.\n" +"To test the autochanger you must have a blank tape\n" +" that I can write on in Slot 1.\n" +msgstr "" + +#: src/stored/btape.c:1149 +msgid "" +"\n" +"Do you wish to continue with the Autochanger test? (y/n): " +msgstr "" + +#: src/stored/btape.c:1156 +msgid "" +"\n" +"\n" +"=== Autochanger test ===\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1165 +msgid "3301 Issuing autochanger \"loaded\" command.\n" +msgstr "" + +#: src/stored/btape.c:1174 +#, c-format +msgid "3991 Bad autochanger command: %s\n" +msgstr "" + +#: src/stored/btape.c:1175 +#, c-format +msgid "3991 result=\"%s\": ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1179 +#, c-format +msgid "Slot %d loaded. I am going to unload it.\n" +msgstr "" + +#: src/stored/btape.c:1181 +msgid "Nothing loaded in the drive. OK.\n" +msgstr "" + +#: src/stored/btape.c:1188 +#, c-format +msgid "3302 Issuing autochanger \"unload %d %d\" command.\n" +msgstr "" + +#: src/stored/btape.c:1193 +#, c-format +msgid "unload status=%s %d\n" +msgstr "" + +#: src/stored/btape.c:1193 +msgid "Bad" +msgstr "" + +#: src/stored/btape.c:1196 +#, c-format +msgid "3992 Bad autochanger command: %s\n" +msgstr "" + +#: src/stored/btape.c:1197 +#, c-format +msgid "3992 result=\"%s\": ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1207 +#, c-format +msgid "3303 Issuing autochanger \"load %d %d\" command.\n" +msgstr "" + +#: src/stored/btape.c:1215 +#, c-format +msgid "3303 Autochanger \"load %d %d\" status is OK.\n" +msgstr "" + +#: src/stored/btape.c:1219 +#, c-format +msgid "3993 Bad autochanger command: %s\n" +msgstr "" + +#: src/stored/btape.c:1220 +#, c-format +msgid "3993 result=\"%s\": ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1235 +msgid "" +"\n" +"The test failed, probably because you need to put\n" +"a longer sleep time in the mtx-script in the load) case.\n" +"Adding a 30 second sleep and trying again ...\n" +msgstr "" + +#: src/stored/btape.c:1248 +#, c-format +msgid "Wrote EOF to %s\n" +msgstr "" + +#: src/stored/btape.c:1252 +#, c-format +msgid "" +"\n" +"The test worked this time. Please add:\n" +"\n" +" sleep %d\n" +"\n" +"to your mtx-changer script in the load) case.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1257 +msgid "" +"\n" +"The test autochanger worked!!\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1268 +msgid "You must correct this error or the Autochanger will not work.\n" +msgstr "" + +#: src/stored/btape.c:1286 +msgid "" +"\n" +"\n" +"=== Forward space files test ===\n" +"\n" +"This test is essential to Bacula.\n" +"\n" +"I'm going to write five files then test forward spacing\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1311 +msgid "Now forward spacing 1 file.\n" +msgstr "" + +#: src/stored/btape.c:1313 src/stored/btape.c:1325 src/stored/btape.c:1338 +#: src/stored/btape.c:1356 src/stored/btape.c:1525 +#, c-format +msgid "Bad status from fsr. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1316 +#, c-format +msgid "We should be in file 1. I am at file %d. %s\n" +msgstr "" + +#: src/stored/btape.c:1323 +msgid "Now forward spacing 2 files.\n" +msgstr "" + +#: src/stored/btape.c:1336 +msgid "Now forward spacing 4 files.\n" +msgstr "" + +#: src/stored/btape.c:1348 +msgid "" +"The test worked this time. Please add:\n" +"\n" +" Fast Forward Space File = no\n" +"\n" +"to your Device resource for this drive.\n" +msgstr "" + +#: src/stored/btape.c:1354 +msgid "Now forward spacing 1 more file.\n" +msgstr "" + +#: src/stored/btape.c:1358 +#, c-format +msgid "We should be in file 5. I am at file %d. %s\n" +msgstr "" + +#: src/stored/btape.c:1363 +msgid "" +"\n" +"=== End Forward space files test ===\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1367 +msgid "" +"\n" +"The forward space file test failed.\n" +msgstr "" + +#: src/stored/btape.c:1369 +msgid "" +"You have Fast Forward Space File enabled.\n" +"I am turning it off then retrying the test.\n" +msgstr "" + +#: src/stored/btape.c:1375 +msgid "" +"You must correct this error or Bacula will not work.\n" +"Some systems, e.g. OpenBSD, require you to set\n" +" Use MTIOCGET= no\n" +"in your device resource. Use with caution.\n" +msgstr "" + +#: src/stored/btape.c:1407 +msgid "" +"\n" +"Append test failed. Attempting again.\n" +"Setting \"Hardware End of Medium = no\n" +" and \"Fast Forward Space File = no\n" +"and retrying append test.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1415 +msgid "" +"\n" +"\n" +"It looks like the test worked this time, please add:\n" +"\n" +" Hardware End of Medium = No\n" +"\n" +" Fast Forward Space File = No\n" +"to your Device resource in the Storage conf file.\n" +msgstr "" + +#: src/stored/btape.c:1422 +msgid "" +"\n" +"\n" +"That appears *NOT* to have corrected the problem.\n" +msgstr "" + +#: src/stored/btape.c:1427 +msgid "" +"\n" +"\n" +"It looks like the append failed. Attempting again.\n" +"Setting \"BSF at EOM = yes\" and retrying append test.\n" +msgstr "" + +#: src/stored/btape.c:1432 +msgid "" +"\n" +"\n" +"It looks like the test worked this time, please add:\n" +"\n" +" Hardware End of Medium = No\n" +" Fast Forward Space File = No\n" +" BSF at EOM = yes\n" +"\n" +"to your Device resource in the Storage conf file.\n" +msgstr "" + +#: src/stored/btape.c:1443 +msgid "" +"\n" +"Append test failed.\n" +"\n" +"\n" +"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n" +"Unable to correct the problem. You MUST fix this\n" +"problem before Bacula can use your tape drive correctly\n" +"\n" +"Perhaps running Bacula in fixed block mode will work.\n" +"Do so by setting:\n" +"\n" +"Minimum Block Size = nnn\n" +"Maximum Block Size = nnn\n" +"\n" +"in your Storage daemon's Device definition.\n" +"nnn must match your tape driver's block size, which\n" +"can be determined by reading your tape manufacturers\n" +"information, and the information on your kernel dirver.\n" +"Fixed block sizes, however, are not normally an ideal solution.\n" +"\n" +"Some systems, e.g. OpenBSD, require you to set\n" +" Use MTIOCGET= no\n" +"in your device resource. Use with caution.\n" +msgstr "" + +#: src/stored/btape.c:1464 +msgid "" +"\n" +"The above Bacula scan should have output identical to what follows.\n" +"Please double check it ...\n" +"=== Sample correct output ===\n" +"1 block of 64448 bytes in file 1\n" +"End of File mark.\n" +"2 blocks of 64448 bytes in file 2\n" +"End of File mark.\n" +"3 blocks of 64448 bytes in file 3\n" +"End of File mark.\n" +"1 block of 64448 bytes in file 4\n" +"End of File mark.\n" +"Total files=4, blocks=7, bytes = 451,136\n" +"=== End sample correct output ===\n" +"\n" +"If the above scan output is not identical to the\n" +"sample output, you MUST correct the problem\n" +"or Bacula will not be able to write multiple Jobs to \n" +"the tape.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1503 +#, c-format +msgid "Bad status from fsf. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1507 +msgid "Forward spaced 1 file.\n" +msgstr "" + +#: src/stored/btape.c:1510 +#, c-format +msgid "Forward spaced %d files.\n" +msgstr "" + +#: src/stored/btape.c:1529 +msgid "Forward spaced 1 record.\n" +msgstr "" + +#: src/stored/btape.c:1532 +#, c-format +msgid "Forward spaced %d records.\n" +msgstr "" + +#: src/stored/btape.c:1577 +#, c-format +msgid "Wrote one record of %d bytes.\n" +msgstr "" + +#: src/stored/btape.c:1579 +msgid "Wrote block to device.\n" +msgstr "" + +#: src/stored/btape.c:1594 +msgid "Enter length to read: " +msgstr "" + +#: src/stored/btape.c:1599 +msgid "Bad length entered, using default of 1024 bytes.\n" +msgstr "" + +#: src/stored/btape.c:1608 +#, c-format +msgid "Read of %d bytes gives stat=%d. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1631 src/stored/btape.c:1680 +#, c-format +msgid "End of tape\n" +msgstr "" + +#: src/stored/btape.c:1636 +#, c-format +msgid "Starting scan at file %u\n" +msgstr "" + +#: src/stored/btape.c:1641 src/stored/dev.c:1325 +#, c-format +msgid "read error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/btape.c:1643 +#, c-format +msgid "Bad status from read %d. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1646 src/stored/btape.c:1660 src/stored/btape.c:1724 +#: src/stored/btape.c:1736 src/stored/btape.c:1749 src/stored/btape.c:1765 +#, c-format +msgid "1 block of %d bytes in file %d\n" +msgstr "" + +#: src/stored/btape.c:1649 src/stored/btape.c:1663 src/stored/btape.c:1727 +#: src/stored/btape.c:1739 src/stored/btape.c:1752 src/stored/btape.c:1768 +#, c-format +msgid "%d blocks of %d bytes in file %d\n" +msgstr "" + +#: src/stored/btape.c:1671 src/stored/btape.c:1743 +#, c-format +msgid "End of File mark.\n" +msgstr "" + +#: src/stored/btape.c:1692 src/stored/btape.c:1796 +#, c-format +msgid "Total files=%d, blocks=%d, bytes = %s\n" +msgstr "" + +#: src/stored/btape.c:1756 +#, c-format +msgid "Short block read.\n" +msgstr "" + +#: src/stored/btape.c:1759 +#, c-format +msgid "Error reading block. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1783 +#, c-format +msgid "" +"Blk_block: %u dev_blk=%u blen=%u First rec FI=%s SessId=%u SessTim=%u Strm=%" +"s rlen=%d\n" +msgstr "" + +#: src/stored/btape.c:1805 +#, c-format +msgid "Device status: %u. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1835 +msgid "" +"\n" +"This command simulates Bacula writing to a tape.\n" +"It requires either one or two blank tapes, which it\n" +"will label and write.\n" +"\n" +"If you have an autochanger configured, it will use\n" +"the tapes that are in slots 1 and 2, otherwise, you will\n" +"be prompted to insert the tapes when necessary.\n" +"\n" +"It will print a status approximately\n" +"every 322 MB, and write an EOF every 3.2 GB. If you have\n" +"selected the simple test option, after writing the first tape\n" +"it will rewind it and re-read the last block written.\n" +"\n" +"If you have selected the multiple tape test, when the first tape\n" +"fills, it will ask for a second, and after writing a few more \n" +"blocks, it will stop. Then it will begin re-reading the\n" +"two tapes.\n" +"\n" +"This may take a long time -- hours! ...\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1852 +msgid "" +"Do you want to run the simplified test (s) with one tape\n" +"or the complete multiple tape (m) test: (s/m) " +msgstr "" + +#: src/stored/btape.c:1855 +msgid "Simple test (single tape) selected.\n" +msgstr "" + +#: src/stored/btape.c:1858 +msgid "Multiple tape test selected.\n" +msgstr "" + +#: src/stored/btape.c:1893 src/stored/append.c:109 +#, c-format +msgid "Write session label failed. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1897 +msgid "Wrote Start of Session label.\n" +msgstr "" + +#: src/stored/btape.c:1928 +#, c-format +msgid "%s Begin writing Bacula records to tape ...\n" +msgstr "" + +#: src/stored/btape.c:1930 +#, c-format +msgid "%s Begin writing Bacula records to first tape ...\n" +msgstr "" + +#: src/stored/btape.c:1971 +#, c-format +msgid "Wrote blk_block=%u, dev_blk_num=%u VolBytes=%s rate=%.1f KB/s\n" +msgstr "" + +#: src/stored/btape.c:1981 +#, c-format +msgid "%s Flush block, write EOF\n" +msgstr "" + +#: src/stored/btape.c:1992 +msgid "Not OK\n" +msgstr "" + +#: src/stored/btape.c:2017 src/stored/append.c:292 +#, c-format +msgid "Error writting end session label. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:2022 +msgid "Set ok=false after write_block_to_device.\n" +msgstr "" + +#: src/stored/btape.c:2025 +msgid "Wrote End of Session label.\n" +msgstr "" + +#: src/stored/btape.c:2049 +#, c-format +msgid "Wrote state file last_block_num1=%d last_block_num2=%d\n" +msgstr "" + +#: src/stored/btape.c:2053 +#, c-format +msgid "Could not create state file: %s ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:2061 +#, c-format +msgid "" +"\n" +"\n" +"%s Done filling tape at %d:%d. Now beginning re-read of tape ...\n" +msgstr "" + +#: src/stored/btape.c:2065 +#, c-format +msgid "" +"\n" +"\n" +"%s Done filling tapes at %d:%d. Now beginning re-read of first tape ...\n" +msgstr "" + +#: src/stored/btape.c:2104 +msgid "" +"\n" +"The state file level has changed. You must redo\n" +"the fill command.\n" +msgstr "" + +#: src/stored/btape.c:2110 +#, c-format +msgid "" +"\n" +"Could not find the state file: %s ERR=%s\n" +"You must redo the fill command.\n" +msgstr "" + +#: src/stored/btape.c:2166 +msgid "Mount first tape. Press enter when ready: " +msgstr "" + +#: src/stored/btape.c:2181 +msgid "Rewinding.\n" +msgstr "" + +#: src/stored/btape.c:2186 +#, c-format +msgid "Reading the first 10000 records from %u:%u.\n" +msgstr "" + +#: src/stored/btape.c:2190 src/stored/btape.c:2255 +#, c-format +msgid "Reposition from %u:%u to %u:%u\n" +msgstr "" + +#: src/stored/btape.c:2193 src/stored/btape.c:2242 src/stored/btape.c:2258 +#, c-format +msgid "Reposition error. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:2196 +#, c-format +msgid "Reading block %u.\n" +msgstr "" + +#: src/stored/btape.c:2198 src/stored/btape.c:2247 src/stored/btape.c:2263 +#, c-format +msgid "Error reading block: ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:2203 +msgid "" +"\n" +"The last block on the tape matches. Test succeeded.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:2205 +msgid "" +"\n" +"The last block of the first tape matches.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:2228 +msgid "Mount second tape. Press enter when ready: " +msgstr "" + +#: src/stored/btape.c:2240 +#, c-format +msgid "Reposition from %u:%u to 0:1\n" +msgstr "" + +#: src/stored/btape.c:2245 src/stored/btape.c:2261 +#, c-format +msgid "Reading block %d.\n" +msgstr "" + +#: src/stored/btape.c:2251 +msgid "" +"\n" +"The first block on the second tape matches.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:2267 +msgid "" +"\n" +"The last block on the second tape matches. Test succeeded.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:2282 +#, c-format +msgid "10000 records read now at %d:%d\n" +msgstr "" + +#: src/stored/btape.c:2305 src/stored/btape.c:2316 src/stored/btape.c:2364 +msgid "Last block written" +msgstr "" + +#: src/stored/btape.c:2307 src/stored/btape.c:2317 +msgid "Block read back" +msgstr "" + +#: src/stored/btape.c:2308 +#, c-format +msgid "" +"\n" +"\n" +"The blocks differ at byte %u\n" +msgstr "" + +#: src/stored/btape.c:2309 +msgid "" +"\n" +"\n" +"!!!! The last block written and the block\n" +"that was read back differ. The test FAILED !!!!\n" +"This must be corrected before you use Bacula\n" +"to write multi-tape Volumes.!!!!\n" +msgstr "" + +#: src/stored/btape.c:2348 +#, c-format +msgid "Last block at: %u:%u this_dev_block_num=%d\n" +msgstr "" + +#: src/stored/btape.c:2362 +#, c-format +msgid "Block not written: FileIndex=%u blk_block=%u Size=%u\n" +msgstr "" + +#: src/stored/btape.c:2366 +msgid "Block not written" +msgstr "" + +#: src/stored/btape.c:2381 +#, c-format +msgid "End of tape %d:%d. VolumeCapacity=%s. Write rate = %.1f KB/s\n" +msgstr "" + +#: src/stored/btape.c:2431 +msgid "Test writing blocks of 64512 bytes to tape.\n" +msgstr "" + +#: src/stored/btape.c:2433 +msgid "How many blocks do you want to write? (1000): " +msgstr "" + +#: src/stored/btape.c:2448 +#, c-format +msgid "Begin writing %d Bacula blocks to tape ...\n" +msgstr "" + +#: src/stored/btape.c:2500 +#, c-format +msgid "Begin writing raw blocks of %u bytes.\n" +msgstr "" + +#: src/stored/btape.c:2524 +#, c-format +msgid "Write failed at block %u. stat=%d ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:2533 +msgid "test autochanger" +msgstr "" + +#: src/stored/btape.c:2534 +msgid "backspace file" +msgstr "" + +#: src/stored/btape.c:2535 +msgid "backspace record" +msgstr "" + +#: src/stored/btape.c:2536 +msgid "list device capabilities" +msgstr "" + +#: src/stored/btape.c:2537 +msgid "clear tape errors" +msgstr "" + +#: src/stored/btape.c:2538 +msgid "go to end of Bacula data for append" +msgstr "" + +#: src/stored/btape.c:2539 +msgid "go to the physical end of medium" +msgstr "" + +#: src/stored/btape.c:2540 +msgid "fill tape, write onto second volume" +msgstr "" + +#: src/stored/btape.c:2541 +msgid "read filled tape" +msgstr "" + +#: src/stored/btape.c:2542 +msgid "forward space a file" +msgstr "" + +#: src/stored/btape.c:2543 +msgid "forward space a record" +msgstr "" + +#: src/stored/btape.c:2545 +msgid "write a Bacula label to the tape" +msgstr "" + +#: src/stored/btape.c:2546 +msgid "load a tape" +msgstr "" + +#: src/stored/btape.c:2547 +msgid "quit btape" +msgstr "" + +#: src/stored/btape.c:2548 +msgid "use write() to fill tape" +msgstr "" + +#: src/stored/btape.c:2549 +msgid "read and print the Bacula tape label" +msgstr "" + +#: src/stored/btape.c:2550 +msgid "test record handling functions" +msgstr "" + +#: src/stored/btape.c:2551 +msgid "rewind the tape" +msgstr "" + +#: src/stored/btape.c:2552 +msgid "read() tape block by block to EOT and report" +msgstr "" + +#: src/stored/btape.c:2553 +msgid "Bacula read block by block to EOT and report" +msgstr "" + +#: src/stored/btape.c:2554 +msgid "print tape status" +msgstr "" + +#: src/stored/btape.c:2555 +msgid "General test Bacula tape functions" +msgstr "" + +#: src/stored/btape.c:2556 +msgid "write an EOF on the tape" +msgstr "" + +#: src/stored/btape.c:2557 +msgid "write a single Bacula block" +msgstr "" + +#: src/stored/btape.c:2558 +msgid "read a single record" +msgstr "" + +#: src/stored/btape.c:2559 +msgid "read a single Bacula block" +msgstr "" + +#: src/stored/btape.c:2560 +msgid "quick fill command" +msgstr "" + +#: src/stored/btape.c:2581 +#, c-format +msgid "\"%s\" is an invalid command\n" +msgstr "" + +#: src/stored/btape.c:2590 +#, c-format +msgid "Interactive commands:\n" +msgstr "" + +#: src/stored/btape.c:2601 +#, fuzzy, c-format +msgid "" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: btape \n" +" -b specify bootstrap file\n" +" -c set configuration file to file\n" +" -d set debug level to \n" +" -p proceed inspite of I/O errors\n" +" -s turn off signals\n" +" -v be verbose\n" +" -? print this message.\n" +"\n" +msgstr "" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: dird [-f -s] [-c config_file] [-d debug_level] [config_file]\n" +" -c setze Konfigurationsdatei auf Datei\n" +" -dnn setze debug level auf nn\n" +" -f starte im Vordergrund (für debugging Zwecke)\n" +" -g groupid\n" +" -r starte jetzt\n" +" -s no signals\n" +" -t test - Konfiguration Lesen und beenden\n" +" -u userid\n" +" -v ausführliche Benutzer Meldungen\n" +" -? diese Meldung ausgeben.\n" +"\n" + +#: src/stored/btape.c:2686 +#, c-format +msgid "Mount second Volume on device %s and press return when ready: " +msgstr "" + +#: src/stored/btape.c:2713 +#, c-format +msgid "Mount blank Volume on device %s and press return when ready: " +msgstr "" + +#: src/stored/btape.c:2731 +#, c-format +msgid "End of Volume \"%s\" %d records.\n" +msgstr "" + +#: src/stored/btape.c:2744 +#, c-format +msgid "Read block=%u, VolBytes=%s rate=%.1f KB/s\n" +msgstr "" + +#: src/stored/btape.c:2756 src/stored/mount.c:634 +#, c-format +msgid "Cannot open Dev=%s, Vol=%s\n" +msgstr "" + +#: src/stored/spool.c:84 +msgid "Spooling statistics:\n" +msgstr "" + +#: src/stored/spool.c:87 +#, c-format +msgid "" +"Data spooling: %u active jobs, %s bytes; %u total jobs, %s max bytes/job.\n" +msgstr "" + +#: src/stored/spool.c:95 +#, c-format +msgid "Attr spooling: %u active jobs, %s bytes; %u total jobs, %s max bytes.\n" +msgstr "" + +#: src/stored/spool.c:115 +msgid "Spooling data ...\n" +msgstr "" + +#: src/stored/spool.c:141 +#, c-format +msgid "Bad return from despool WroteVol=%d\n" +msgstr "" + +#: src/stored/spool.c:174 +#, c-format +msgid "Open data spool file %s failed: ERR=%s\n" +msgstr "" + +#: src/stored/spool.c:232 +#, c-format +msgid "Committing spooled data to Volume \"%s\". Despooling %s bytes ...\n" +msgstr "" + +#: src/stored/spool.c:236 +#, c-format +msgid "Writing spooled data to Volume. Despooling %s bytes ...\n" +msgstr "" + +#: src/stored/spool.c:293 src/stored/mac.c:124 src/stored/mac.c:220 +#: src/stored/append.c:303 +#, c-format +msgid "Fatal append error on device %s: ERR=%s\n" +msgstr "" + +#: src/stored/spool.c:306 +#, c-format +msgid "" +"Despooling elapsed time = %02d:%02d:%02d, Transfer rate = %s bytes/second\n" +msgstr "" + +#: src/stored/spool.c:315 src/stored/spool.c:504 src/stored/spool.c:546 +#, c-format +msgid "Ftruncate spool file failed: ERR=%s\n" +msgstr "" + +#: src/stored/spool.c:376 +#, c-format +msgid "Spool header read error. ERR=%s\n" +msgstr "" + +#: src/stored/spool.c:379 +#, c-format +msgid "Spool read error. Wanted %u bytes, got %d\n" +msgstr "" + +#: src/stored/spool.c:380 +#, c-format +msgid "Spool header read error. Wanted %u bytes, got %d\n" +msgstr "" + +#: src/stored/spool.c:386 src/stored/spool.c:387 +#, c-format +msgid "Spool block too big. Max %u bytes, got %u\n" +msgstr "" + +#: src/stored/spool.c:392 src/stored/spool.c:393 +#, c-format +msgid "Spool data read error. Wanted %u bytes, got %d\n" +msgstr "" + +#: src/stored/spool.c:450 +msgid "User specified spool size reached.\n" +msgstr "" + +#: src/stored/spool.c:452 +msgid "Bad return from despool in write_block.\n" +msgstr "" + +#: src/stored/spool.c:460 +msgid "Spooling data again ...\n" +msgstr "" + +#: src/stored/spool.c:491 +#, c-format +msgid "Error writing header to spool file. ERR=%s\n" +msgstr "" + +#: src/stored/spool.c:510 src/stored/spool.c:552 +msgid "Fatal despooling error." +msgstr "" + +#: src/stored/spool.c:517 +msgid "Retrying after header spooling error failed.\n" +msgstr "" + +#: src/stored/spool.c:531 +#, c-format +msgid "Error writing data to spool file. ERR=%s\n" +msgstr "" + +#: src/stored/spool.c:562 +msgid "Retrying after data spooling error failed.\n" +msgstr "" + +#: src/stored/spool.c:617 src/stored/spool.c:624 +#, c-format +msgid "Fseek on attributes file failed: ERR=%s\n" +msgstr "" + +#: src/stored/spool.c:636 +#, c-format +msgid "Sending spooled attrs to the Director. Despooling %s bytes ...\n" +msgstr "" + +#: src/stored/spool.c:663 +#, c-format +msgid "fopen attr spool file %s failed: ERR=%s\n" +msgstr "" + +#: src/stored/device.c:120 +#, c-format +msgid "End of medium on Volume \"%s\" Bytes=%s Blocks=%s at %s.\n" +msgstr "" + +#: src/stored/device.c:137 +#, c-format +msgid "New volume \"%s\" mounted on device %s at %s.\n" +msgstr "" + +#: src/stored/device.c:149 +#, c-format +msgid "write_block_to_device Volume label failed. ERR=%s" +msgstr "" + +#: src/stored/device.c:184 +#, c-format +msgid "write_block_to_device overflow block failed. ERR=%s" +msgstr "" + +#: src/stored/device.c:326 src/stored/dev.c:432 +#, c-format +msgid "Unable to open device %s: ERR=%s\n" +msgstr "" + +#: src/stored/device.c:328 +#, c-format +msgid "Unable to open archive %s: ERR=%s\n" +msgstr "" + +#: src/stored/mac.c:79 +msgid "Read and write devices not properly initialized.\n" +msgstr "" + +#: src/stored/mac.c:87 +#, c-format +msgid "No Volume names found for %s.\n" +msgstr "" + +#: src/stored/mac.c:126 src/stored/append.c:305 +msgid "Set ok=FALSE after write_block_to_device.\n" +msgstr "" + +#: src/stored/mac.c:249 src/stored/append.c:244 +#, c-format +msgid "Error updating file attributes. ERR=%s\n" +msgstr "" + +#: src/stored/mount.c:90 +#, c-format +msgid "Too many errors trying to mount device %s.\n" +msgstr "" + +#: src/stored/mount.c:96 +#, c-format +msgid "Job %d canceled.\n" +msgstr "" + +#: src/stored/mount.c:215 +#, c-format +msgid "Could not open device %s: ERR=%s\n" +msgstr "" + +#: src/stored/mount.c:258 src/stored/mount.c:539 +#, c-format +msgid "Volume \"%s\" not on device %s.\n" +msgstr "" + +#: src/stored/mount.c:298 +#, c-format +msgid "" +"Director wanted Volume \"%s\".\n" +" Current Volume \"%s\" not acceptable because:\n" +" %s" +msgstr "" + +#: src/stored/mount.c:381 +#, c-format +msgid "Volume \"%s\" previously written, moving to end of data.\n" +msgstr "" + +#: src/stored/mount.c:384 +#, c-format +msgid "Unable to position to end of data on device %s: ERR=%s\n" +msgstr "" + +#: src/stored/mount.c:392 +#, c-format +msgid "Ready to append to end of Volume \"%s\" part=%d size=%s\n" +msgstr "" + +#: src/stored/mount.c:396 +#, c-format +msgid "" +"Bacula cannot write on DVD Volume \"%s\" because: The sizes do not match! " +"Volume=%s Catalog=%s\n" +msgstr "" + +#: src/stored/mount.c:410 +#, c-format +msgid "Ready to append to end of Volume \"%s\" at file=%d.\n" +msgstr "" + +#: src/stored/mount.c:413 +#, c-format +msgid "" +"Bacula cannot write on tape Volume \"%s\" because:\n" +"The number of files mismatch! Volume=%u Catalog=%u\n" +msgstr "" + +#: src/stored/mount.c:424 +#, c-format +msgid "Ready to append to end of Volume \"%s\" size=%s\n" +msgstr "" + +#: src/stored/mount.c:428 +#, c-format +msgid "" +"Bacula cannot write on disk Volume \"%s\" because: The sizes do not match! " +"Volume=%s Catalog=%s\n" +msgstr "" + +#: src/stored/mount.c:458 +#, c-format +msgid "Ready to append to end of Volume \"%s\" at file address=%u.\n" +msgstr "" + +#: src/stored/mount.c:462 +#, c-format +msgid "" +"Bacula cannot write on Volume \"%s\" because:\n" +"The EOD file address is wrong: Volume file address=%u != Catalog Endblock=%u" +"(+1)\n" +"Perhaps You removed the DVD last part in spool directory.\n" +msgstr "" + +#: src/stored/mount.c:529 +#, c-format +msgid "Labeled new Volume \"%s\" on device %s.\n" +msgstr "" + +#: src/stored/mount.c:534 +#, fuzzy, c-format +msgid "Device %s not configured to autolabel Volumes.\n" +msgstr "TLS benötigt aber nicht konfiguriert in Bacula.\n" + +#: src/stored/mount.c:554 +#, c-format +msgid "Marking Volume \"%s\" in Error in Catalog.\n" +msgstr "" + +#: src/stored/mount.c:570 +#, c-format +msgid "" +"Autochanger Volume \"%s\" not found in slot %d.\n" +" Setting InChanger to zero in catalog.\n" +msgstr "" + +#: src/stored/mount.c:589 +msgid "Hey!!!!! WroteVol non-zero !!!!!\n" +msgstr "" + +#: src/stored/dircmd.c:154 +msgid "Connection request failed.\n" +msgstr "" + +#: src/stored/dircmd.c:164 +#, c-format +msgid "Invalid connection. Len=%d\n" +msgstr "" + +#: src/stored/dircmd.c:279 +#, c-format +msgid "3991 Bad setdebug command: %s\n" +msgstr "" + +#: src/stored/dircmd.c:300 +#, c-format +msgid "3904 Job %s not found.\n" +msgstr "" + +#: src/stored/dircmd.c:324 +#, fuzzy, c-format +msgid "Job %s marked to be canceled.\n" +msgstr "JobId %s, Job %s zum Abbruch markiert.\n" + +#: src/stored/dircmd.c:325 +#, c-format +msgid "3000 Job %s marked to be canceled.\n" +msgstr "" + +#: src/stored/dircmd.c:329 +msgid "3903 Error scanning cancel command.\n" +msgstr "" + +#: src/stored/dircmd.c:405 src/stored/dircmd.c:761 src/stored/dircmd.c:851 +#: src/stored/dircmd.c:923 src/stored/dircmd.c:986 src/stored/dircmd.c:1029 +#, c-format +msgid "3999 Device \"%s\" not found or could not be opened.\n" +msgstr "" + +#: src/stored/dircmd.c:410 +#, c-format +msgid "3903 Error scanning label command: %s\n" +msgstr "" + +#: src/stored/dircmd.c:460 +#, c-format +msgid "3910 Unable to open device %s: ERR=%s\n" +msgstr "" + +#: src/stored/dircmd.c:477 +#, c-format +msgid "3920 Cannot label Volume because it is already labeled: \"%s\"\n" +msgstr "" + +#: src/stored/dircmd.c:484 +msgid "3921 Wrong volume mounted.\n" +msgstr "" + +#: src/stored/dircmd.c:488 +msgid "3922 Cannot relabel an ANSI/IBM labeled Volume.\n" +msgstr "" + +#: src/stored/dircmd.c:496 +#, c-format +msgid "3912 Failed to label Volume: ERR=%s\n" +msgstr "" + +#: src/stored/dircmd.c:506 +#, c-format +msgid "3914 Failed to label Volume (no media): ERR=%s\n" +msgstr "" + +#: src/stored/dircmd.c:509 +#, c-format +msgid "3913 Cannot label Volume. Unknown status %d from read_volume_label()\n" +msgstr "" + +#: src/stored/dircmd.c:542 +#, c-format +msgid "3001 Mounted Volume: %s\n" +msgstr "" + +#: src/stored/dircmd.c:546 src/stored/dircmd.c:1065 +#, c-format +msgid "" +"3902 Cannot mount Volume on Storage Device %s because:\n" +"%s" +msgstr "" + +#: src/stored/dircmd.c:671 src/stored/dircmd.c:728 +#, c-format +msgid "3901 open device failed: ERR=%s\n" +msgstr "" + +#: src/stored/dircmd.c:691 src/stored/dircmd.c:719 +#, c-format +msgid "3001 Device %s is mounted with Volume \"%s\"\n" +msgstr "" + +#: src/stored/dircmd.c:694 src/stored/dircmd.c:722 src/stored/dircmd.c:737 +#, c-format +msgid "" +"3905 Device %s open but no Bacula volume is mounted.\n" +"If this is not a blank tape, try unmounting and remounting the Volume.\n" +msgstr "" + +#: src/stored/dircmd.c:704 +#, c-format +msgid "3001 Device %s is doing acquire.\n" +msgstr "" + +#: src/stored/dircmd.c:709 src/stored/dircmd.c:823 +#, c-format +msgid "3903 Device %s is being labeled.\n" +msgstr "" + +#: src/stored/dircmd.c:734 +#, c-format +msgid "3001 Device %s is already mounted with Volume \"%s\"\n" +msgstr "" + +#: src/stored/dircmd.c:743 +#, c-format +msgid "3002 Device %s is mounted.\n" +msgstr "" + +#: src/stored/dircmd.c:746 src/stored/dircmd.c:796 src/stored/dircmd.c:811 +#: src/stored/dircmd.c:842 +#, c-format +msgid "3907 %s" +msgstr "" + +#: src/stored/dircmd.c:749 +#, c-format +msgid "3906 File device %s is always mounted.\n" +msgstr "" + +#: src/stored/dircmd.c:755 +#, c-format +msgid "3905 Bizarre wait state %d\n" +msgstr "" + +#: src/stored/dircmd.c:765 +#, c-format +msgid "3909 Error scanning mount command: %s\n" +msgstr "" + +#: src/stored/dircmd.c:793 src/stored/dircmd.c:844 +#, c-format +msgid "3002 Device %s unmounted.\n" +msgstr "" + +#: src/stored/dircmd.c:800 +#, c-format +msgid "3901 Device %s is already unmounted.\n" +msgstr "" + +#: src/stored/dircmd.c:814 +#, c-format +msgid "3001 Device %s unmounted.\n" +msgstr "" + +#: src/stored/dircmd.c:819 +#, c-format +msgid "3902 Device %s is busy in acquire.\n" +msgstr "" + +#: src/stored/dircmd.c:856 +#, c-format +msgid "3907 Error scanning unmount command: %s\n" +msgstr "" + +#: src/stored/dircmd.c:887 +#, c-format +msgid "3921 Device %s already released.\n" +msgstr "" + +#: src/stored/dircmd.c:894 +#, c-format +msgid "3922 Device %s waiting for sysop.\n" +msgstr "" + +#: src/stored/dircmd.c:900 +#, c-format +msgid "3922 Device %s waiting for mount.\n" +msgstr "" + +#: src/stored/dircmd.c:904 +#, c-format +msgid "3923 Device %s is busy in acquire.\n" +msgstr "" + +#: src/stored/dircmd.c:908 +#, c-format +msgid "3914 Device %s is being labeled.\n" +msgstr "" + +#: src/stored/dircmd.c:917 +#, c-format +msgid "3022 Device %s released.\n" +msgstr "" + +#: src/stored/dircmd.c:928 +#, c-format +msgid "3927 Error scanning release command: %s\n" +msgstr "" + +#: src/stored/dircmd.c:973 +#, c-format +msgid "3995 Device %s is not an autochanger.\n" +msgstr "" + +#: src/stored/dircmd.c:990 +#, c-format +msgid "3908 Error scanning autocharger drives/list/slots command: %s\n" +msgstr "" + +#: src/stored/dircmd.c:1033 +#, c-format +msgid "3909 Error scanning readlabel command: %s\n" +msgstr "" + +#: src/stored/dircmd.c:1061 +#, c-format +msgid "3001 Volume=%s Slot=%d\n" +msgstr "" + +#: src/stored/dircmd.c:1093 +#, c-format +msgid "3931 Device %s is BLOCKED. user unmounted.\n" +msgstr "" + +#: src/stored/dircmd.c:1097 +#, c-format +msgid "" +"3932 Device %s is BLOCKED. user unmounted during wait for media/mount.\n" +msgstr "" + +#: src/stored/dircmd.c:1101 +#, c-format +msgid "3933 Device %s is BLOCKED waiting for media.\n" +msgstr "" + +#: src/stored/dircmd.c:1105 +#, c-format +msgid "3934 Device %s is being initialized.\n" +msgstr "" + +#: src/stored/dircmd.c:1109 +#, c-format +msgid "3935 Device %s is blocked labeling a Volume.\n" +msgstr "" + +#: src/stored/dircmd.c:1113 +#, fuzzy, c-format +msgid "3935 Device %s is blocked for unknown reason.\n" +msgstr "unbekannt" + +#: src/stored/dircmd.c:1118 +#, c-format +msgid "3936 Device %s is busy reading.\n" +msgstr "" + +#: src/stored/dircmd.c:1121 +#, c-format +msgid "3937 Device %s is busy with %d writer(s).\n" +msgstr "" + +#: src/stored/append.c:64 +msgid "DCR is NULL!!!\n" +msgstr "" + +#: src/stored/append.c:69 +msgid "DEVICE is NULL!!!\n" +msgstr "" + +#: src/stored/append.c:81 +msgid "Unable to set network buffer size.\n" +msgstr "" + +#: src/stored/append.c:94 src/stored/append.c:103 src/stored/append.c:115 +#: src/stored/append.c:298 src/stored/append.c:309 src/stored/askdir.c:334 +#: src/stored/askdir.c:335 +msgid "NULL Volume name. This shouldn't happen!!!\n" +msgstr "" + +#: src/stored/append.c:121 +#, c-format +msgid "Network send error to FD. ERR=%s\n" +msgstr "" + +#: src/stored/append.c:158 +#, c-format +msgid "Error reading data header from FD. ERR=%s\n" +msgstr "" + +#: src/stored/append.c:180 +#, c-format +msgid "Malformed data header from FD: %s\n" +msgstr "" + +#: src/stored/append.c:190 +msgid "File index from FD not positive or sequential\n" +msgstr "" + +#: src/stored/append.c:258 +#, c-format +msgid "Network error on data channel. ERR=%s\n" +msgstr "" + +#: src/stored/append.c:279 +#, c-format +msgid "" +"Job write elapsed time = %02d:%02d:%02d, Transfer rate = %s bytes/second\n" +msgstr "" + +#: src/stored/job.c:225 +#, fuzzy, c-format +msgid "FD connect failed: Job name not found: %s\n" +msgstr "Job nicht gefunden: %s\n" + +#: src/stored/job.c:236 +#, c-format +msgid "Hey!!!! JobId %u Job %s already authenticated.\n" +msgstr "" + +#: src/stored/job.c:247 +msgid "Unable to authenticate File daemon\n" +msgstr "" + +#: src/stored/job.c:369 +msgid "In free_jcr(), but still attached to device!!!!\n" +msgstr "" + +#: src/stored/askdir.c:178 +msgid "Network error on bnet_recv in req_vol_info.\n" +msgstr "" + +#: src/stored/askdir.c:196 +#, c-format +msgid "Error getting Volume info: %s" +msgstr "" + +#: src/stored/askdir.c:369 +#, c-format +msgid "Didn't get vol info vol=%s: ERR=%s" +msgstr "" + +#: src/stored/askdir.c:411 +#, c-format +msgid "Error creating JobMedia record: ERR=%s\n" +msgstr "" + +#: src/stored/askdir.c:418 +#, c-format +msgid "Error creating JobMedia record: %s\n" +msgstr "" + +#: src/stored/askdir.c:485 +#, c-format +msgid "Job %s canceled while waiting for mount on Storage Device \"%s\".\n" +msgstr "" + +#: src/stored/askdir.c:498 +#, c-format +msgid "" +"Job %s waiting. Cannot find any appendable volumes.\n" +"Please use the \"label\" command to create a new Volume for:\n" +" Storage: %s\n" +" Pool: %s\n" +" Media type: %s\n" +msgstr "" + +#: src/stored/askdir.c:522 src/stored/askdir.c:612 +#, c-format +msgid "Max time exceeded waiting to mount Storage Device %s for Job %s\n" +msgstr "" + +#: src/stored/askdir.c:532 +msgid "pthread error in mount_next_volume.\n" +msgstr "" + +#: src/stored/askdir.c:564 +msgid "Cannot request another volume: no volume name given.\n" +msgstr "" + +#: src/stored/askdir.c:570 +#, c-format +msgid "Job %s canceled while waiting for mount on Storage Device %s.\n" +msgstr "" + +#: src/stored/askdir.c:585 +#, c-format +msgid "" +"Please mount Volume \"%s\" or label a new one for:\n" +" Job: %s\n" +" Storage: %s\n" +" Pool: %s\n" +" Media type: %s\n" +msgstr "" + +#: src/stored/askdir.c:622 +msgid "pthread error in mount_volume\n" +msgstr "" + +#: src/stored/dev.c:120 +#, c-format +msgid "Unable to stat device %s: ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:131 +#, fuzzy, c-format +msgid "" +"%s is an unknown device type. Must be tape or directory\n" +" or have RequiresMount=yes for DVD. st_mode=%x\n" +msgstr "unbekannt\n" + +#: src/stored/dev.c:190 +#, c-format +msgid "Unable to stat mount point %s: ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:196 +msgid "" +"Mount and unmount commands must defined for a device which requires mount.\n" +msgstr "" + +#: src/stored/dev.c:199 +msgid "Write part command must be defined for a device which requires mount.\n" +msgstr "" + +#: src/stored/dev.c:210 +#, c-format +msgid "Min block size > max on device %s\n" +msgstr "" + +#: src/stored/dev.c:214 +#, c-format +msgid "Block size %u on device %s is too large, using default %u\n" +msgstr "" + +#: src/stored/dev.c:219 +#, c-format +msgid "Max block size %u not multiple of device %s block size.\n" +msgstr "" + +#: src/stored/dev.c:235 src/stored/dev.c:241 +#, c-format +msgid "Unable to init cond variable: ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:337 +msgid "Illegal mode given to open dev.\n" +msgstr "" + +#: src/stored/dev.c:467 +#, c-format +msgid "Could not open file device %s. No Volume name given.\n" +msgstr "" + +#: src/stored/dev.c:490 src/stored/dev.c:658 +#, c-format +msgid "Could not open: %s, ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:534 +#, c-format +msgid "Could not open DVD device %s. No Volume name given.\n" +msgstr "" + +#: src/stored/dev.c:583 +#, c-format +msgid "The DVD in device %s contains data, please blank it before writing.\n" +msgstr "" + +#: src/stored/dev.c:604 +#, c-format +msgid "Unable to stat DVD part 1 file %s: ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:612 +#, c-format +msgid "DVD part 1 is not a regular file %s.\n" +msgstr "" + +#: src/stored/dev.c:632 +#, c-format +msgid "There is no valid DVD in device %s.\n" +msgstr "" + +#: src/stored/dev.c:638 +#, c-format +msgid "Could not mount DVD device %s.\n" +msgstr "" + +#: src/stored/dev.c:688 +#, c-format +msgid "Could not fstat: %s, ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:722 +#, c-format +msgid "Bad call to rewind. Device %s not open\n" +msgstr "" + +#: src/stored/dev.c:761 +#, c-format +msgid "No tape loaded or drive offline on %s.\n" +msgstr "" + +#: src/stored/dev.c:771 +#, c-format +msgid "Rewind error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:781 src/stored/dev.c:859 src/stored/dev.c:996 +#: src/stored/dev.c:1572 +#, c-format +msgid "lseek error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:830 +#, c-format +msgid "Bad call to eod. Device %s not open\n" +msgstr "" + +#: src/stored/dev.c:895 +#, c-format +msgid "ioctl MTEOM error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:904 src/stored/dev.c:1037 +#, c-format +msgid "ioctl MTIOCGET error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:982 +msgid "Bad device call. Device not open\n" +msgstr "" + +#: src/stored/dev.c:995 +#, c-format +msgid "Seek error: ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:1032 +msgid " Bacula status:" +msgstr "" + +#: src/stored/dev.c:1033 src/stored/dev.c:1116 src/stored/dev.c:1118 +#, c-format +msgid " file=%d block=%d\n" +msgstr "" + +#: src/stored/dev.c:1041 +msgid " Device status:" +msgstr "" + +#: src/stored/dev.c:1140 +msgid "Bad call to load_dev. Device not open\n" +msgstr "" + +#: src/stored/dev.c:1151 src/stored/dev.c:1164 +#, c-format +msgid "ioctl MTLOAD error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:1195 +#, c-format +msgid "ioctl MTOFFL error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:1236 +msgid "Bad call to fsf. Device not open\n" +msgstr "" + +#: src/stored/dev.c:1247 src/stored/dev.c:1374 +#, c-format +msgid "Device %s at End of Tape.\n" +msgstr "" + +#: src/stored/dev.c:1278 src/stored/dev.c:1354 +#, c-format +msgid "ioctl MTFSF error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:1403 +msgid "Bad call to bsf. Device not open\n" +msgstr "" + +#: src/stored/dev.c:1409 +#, c-format +msgid "Device %s cannot BSF because it is not a tape.\n" +msgstr "" + +#: src/stored/dev.c:1426 +#, c-format +msgid "ioctl MTBSF error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:1445 +msgid "Bad call to fsr. Device not open\n" +msgstr "" + +#: src/stored/dev.c:1455 +#, c-format +msgid "ioctl MTFSR not permitted on %s.\n" +msgstr "" + +#: src/stored/dev.c:1483 +#, c-format +msgid "ioctl MTFSR %d error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:1501 +msgid "Bad call to bsr_dev. Device not open\n" +msgstr "" + +#: src/stored/dev.c:1511 +#, c-format +msgid "ioctl MTBSR not permitted on %s.\n" +msgstr "" + +#: src/stored/dev.c:1525 +#, c-format +msgid "ioctl MTBSR error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:1561 +msgid "Bad call to reposition. Device not open\n" +msgstr "" + +#: src/stored/dev.c:1640 +msgid "Bad call to weof_dev. Device not open\n" +msgstr "" + +#: src/stored/dev.c:1650 +msgid "Attempt to WEOF on non-appendable Volume\n" +msgstr "" + +#: src/stored/dev.c:1668 +#, c-format +msgid "ioctl MTWEOF error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:1767 +#, fuzzy, c-format +msgid "unknown func code %d" +msgstr "unbekannt" + +#: src/stored/dev.c:1773 +#, c-format +msgid "I/O function \"%s\" not supported on this device.\n" +msgstr "" + +#: src/stored/dev.c:1929 +#, c-format +msgid "Unable to truncate device %s. ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:2028 src/stored/dev.c:2033 +#, c-format +msgid "Device %s cannot be %smounted. ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:2441 +#, c-format +msgid "Unable to set eotmodel on device %s: ERR=%s\n" +msgstr "" + +#: src/stored/authenticate.c:63 +#, c-format +msgid "I only authenticate Directors, not %d\n" +msgstr "" + +#: src/stored/authenticate.c:93 +#, fuzzy, c-format +msgid "" +"Connection from unknown Director %s at %s rejected.\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "unbekannthttp://www.bacula.org/rel-manual/faq.html" + +#: src/stored/authenticate.c:126 +msgid "" +"Incorrect password given by Director.\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" + +#: src/stored/authenticate.c:182 +#, c-format +msgid "Unable to authenticate Director at %s.\n" +msgstr "" + +#: src/stored/authenticate.c:226 src/stored/authenticate.c:260 +#, c-format +msgid "" +"Incorrect authorization key from File daemon at %s rejected.\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" + +#: src/stored/record.c:71 +#, fuzzy, c-format +msgid "unknown: %d" +msgstr "unbekannt" + +#: src/stored/record.c:378 +msgid "Damaged buffer\n" +msgstr "" + +#: src/stored/record.c:549 +#, c-format +msgid "Sanity check failed. maxlen=%d datalen=%d. Block discarded.\n" +msgstr "" + +#: src/stored/butil.c:59 +msgid "Nohdr," +msgstr "" + +#: src/stored/butil.c:62 +msgid "partial," +msgstr "" + +#: src/stored/butil.c:65 +msgid "empty," +msgstr "" + +#: src/stored/butil.c:68 +msgid "Nomatch," +msgstr "" + +#: src/stored/butil.c:71 +msgid "cont," +msgstr "" + +#: src/stored/butil.c:147 +msgid "Volume name or names is too long. Please use a .bsr file.\n" +msgstr "" + +#: src/stored/butil.c:167 +#, c-format +msgid "Cannot find device \"%s\" in config file %s.\n" +msgstr "" + +#: src/stored/butil.c:174 +#, c-format +msgid "Cannot init device %s\n" +msgstr "" + +#: src/stored/butil.c:194 +#, c-format +msgid "Cannot open %s\n" +msgstr "" + +#: src/stored/butil.c:277 +#, c-format +msgid "Could not find device \"%s\" in config file %s.\n" +msgstr "" + +#: src/stored/butil.c:282 +#, c-format +msgid "Using device: \"%s\" for reading.\n" +msgstr "" + +#: src/stored/butil.c:285 +#, c-format +msgid "Using device: \"%s\" for writing.\n" +msgstr "" + +#: src/stored/butil.c:301 +msgid "Unexpected End of Data\n" +msgstr "" + +#: src/stored/butil.c:303 +msgid "Unexpected End of Tape\n" +msgstr "" + +#: src/stored/butil.c:305 +msgid "Unexpected End of File\n" +msgstr "" + +#: src/stored/butil.c:307 +msgid "Tape Door is Open\n" +msgstr "" + +#: src/stored/butil.c:309 +msgid "Unexpected Tape is Off-line\n" +msgstr "" + +#: src/stored/acquire.c:70 +#, c-format +msgid "Acquire read: num_writers=%d not zero. Job %d canceled.\n" +msgstr "" + +#: src/stored/acquire.c:79 +#, fuzzy, c-format +msgid "No volumes specified for reading. Job %s canceled.\n" +msgstr "Weder storage noch Pool in Job \"%s\" definiert.\n" + +#: src/stored/acquire.c:88 +#, c-format +msgid "Logic error: no next volume to read. Numvol=%d Curvol=%d\n" +msgstr "" + +#: src/stored/acquire.c:114 +#, c-format +msgid "" +"Changing device. Want Media Type=\"%s\" have=\"%s\"\n" +" device=%s\n" +msgstr "" + +#: src/stored/acquire.c:152 +#, c-format +msgid "Media Type change. New device %s chosen.\n" +msgstr "" + +#: src/stored/acquire.c:163 +#, c-format +msgid "No suitable device found to read Volume \"%s\"\n" +msgstr "" + +#: src/stored/acquire.c:192 +#, c-format +msgid "Job %s canceled.\n" +msgstr "" + +#: src/stored/acquire.c:206 +#, c-format +msgid "Read open device %s Volume \"%s\" failed: ERR=%s\n" +msgstr "" + +#: src/stored/acquire.c:277 +#, c-format +msgid "Too many errors trying to mount device %s for reading.\n" +msgstr "" + +#: src/stored/acquire.c:286 +#, c-format +msgid "Ready to read from volume \"%s\" on device %s.\n" +msgstr "" + +#: src/stored/acquire.c:336 +#, c-format +msgid "Want to append, but device %s is busy reading.\n" +msgstr "" + +#: src/stored/acquire.c:378 +#, c-format +msgid "" +"Cannot recycle volume \"%s\" on device %s because it is in use by another " +"job.\n" +msgstr "" + +#: src/stored/acquire.c:404 +#, c-format +msgid "" +"Invalid tape position on volume \"%s\" on device %s. Expected %d, got %d\n" +msgstr "" + +#: src/stored/acquire.c:426 +#, c-format +msgid "Could not ready device %s for append.\n" +msgstr "" + +#: src/stored/acquire.c:524 src/stored/block.c:368 src/stored/block.c:718 +#: src/stored/block.c:794 +#, c-format +msgid "Could not create JobMedia record for Volume=\"%s\" Job=%s\n" +msgstr "" + +#: src/stored/acquire.c:565 +#, c-format +msgid "Alert: %s" +msgstr "" + +#: src/stored/acquire.c:573 +#, c-format +msgid "3997 Bad alert command: %s: ERR=%s.\n" +msgstr "" + +#: src/stored/ansi_label.c:96 +#, c-format +msgid "Read error on device %s in ANSI label. ERR=%s\n" +msgstr "" + +#: src/stored/ansi_label.c:106 +msgid "Insane! End of tape while reading ANSI label.\n" +msgstr "" + +#: src/stored/ansi_label.c:132 +msgid "No VOL1 label while reading ANSI/IBM label.\n" +msgstr "" + +#: src/stored/ansi_label.c:152 +#, c-format +msgid "Wanted ANSI Volume \"%s\" got \"%s\"\n" +msgstr "" + +#: src/stored/ansi_label.c:163 +msgid "No HDR1 label while reading ANSI label.\n" +msgstr "" + +#: src/stored/ansi_label.c:169 +#, c-format +msgid "ANSI/IBM Volume \"%s\" does not belong to Bacula.\n" +msgstr "" + +#: src/stored/ansi_label.c:181 +msgid "No HDR2 label while reading ANSI/IBM label.\n" +msgstr "" + +#: src/stored/ansi_label.c:196 +msgid "Unknown or bad ANSI/IBM label record.\n" +msgstr "" + +#: src/stored/ansi_label.c:204 +msgid "Too many records in while reading ANSI/IBM label.\n" +msgstr "" + +#: src/stored/ansi_label.c:303 +#, c-format +msgid "ANSI Volume label name \"%s\" longer than 6 chars.\n" +msgstr "" + +#: src/stored/ansi_label.c:320 +#, c-format +msgid "Could not write ANSI VOL1 label. ERR=%s\n" +msgstr "" + +#: src/stored/ansi_label.c:358 src/stored/ansi_label.c:387 +#, c-format +msgid "Could not write ANSI HDR1 label. ERR=%s\n" +msgstr "" + +#: src/stored/ansi_label.c:363 src/stored/ansi_label.c:394 +msgid "Could not write ANSI HDR1 label.\n" +msgstr "" + +#: src/stored/ansi_label.c:399 +#, c-format +msgid "Error writing EOF to tape. ERR=%s" +msgstr "" + +#: src/stored/ansi_label.c:404 +msgid "write_ansi_ibm_label called for non-ANSI/IBM type\n" +msgstr "" + +#: src/stored/block.c:91 +#, c-format +msgid "" +"Dump block %s %x: size=%d BlkNum=%d\n" +" Hdrcksum=%x cksum=%x\n" +msgstr "" + +#: src/stored/block.c:104 +#, c-format +msgid " Rec: VId=%u VT=%u FI=%s Strm=%s len=%d p=%x\n" +msgstr "" + +#: src/stored/block.c:160 +#, c-format +msgid "%d block read errors not printed.\n" +msgstr "" + +#: src/stored/block.c:248 src/stored/block.c:264 src/stored/block.c:274 +#, c-format +msgid "" +"Volume data error at %u:%u! Wanted ID: \"%s\", got \"%s\". Buffer " +"discarded.\n" +msgstr "" + +#: src/stored/block.c:289 +#, c-format +msgid "" +"Volume data error at %u:%u! Block length %u is insane (too large), probably " +"due to a bad archive.\n" +msgstr "" + +#: src/stored/block.c:315 +#, c-format +msgid "" +"Volume data error at %u:%u!\n" +"Block checksum mismatch in block=%u len=%d: calc=%x blk=%x\n" +msgstr "" + +#: src/stored/block.c:426 +msgid "Cannot write block. Device at EOM.\n" +msgstr "" + +#: src/stored/block.c:431 +msgid "Attempt to write on read-only Volume.\n" +msgstr "" + +#: src/stored/block.c:483 +#, c-format +msgid "User defined maximum volume capacity %s exceeded on device %s.\n" +msgstr "" + +#: src/stored/block.c:498 +#, c-format +msgid "Unable to write EOF. ERR=%s\n" +msgstr "" + +#: src/stored/block.c:524 src/stored/block.c:549 +msgid "Write block header zeroed.\n" +msgstr "" + +#: src/stored/block.c:568 +#, c-format +msgid "Write error at %u:%u on device %s. ERR=%s.\n" +msgstr "" + +#: src/stored/block.c:575 +#, c-format +msgid "End of Volume \"%s\" at %u:%u on device %s. Write of %u bytes got %d.\n" +msgstr "" + +#: src/stored/block.c:655 src/stored/block.c:661 +#, c-format +msgid "Backspace file at EOT failed. ERR=%s\n" +msgstr "" + +#: src/stored/block.c:668 +#, c-format +msgid "Backspace record at EOT failed. ERR=%s\n" +msgstr "" + +#: src/stored/block.c:685 +#, c-format +msgid "Re-read last block at EOT failed. ERR=%s" +msgstr "" + +#: src/stored/block.c:695 +#, c-format +msgid "" +"Re-read of last block OK, but block numbers differ. Last block=%u Current " +"block=%u.\n" +msgstr "" + +#: src/stored/block.c:698 +msgid "Re-read of last block succeeded.\n" +msgstr "" + +#: src/stored/block.c:726 +#, c-format +msgid "" +"Error writing final EOF to tape. This Volume may not be readable.\n" +"%s" +msgstr "" + +#: src/stored/block.c:740 +#, c-format +msgid "" +"Error writing final part to DVD. This Volume may not be readable.\n" +"%s" +msgstr "" + +#: src/stored/block.c:843 +#, c-format +msgid "" +"Error while writing, current part number is less than the total number of " +"parts (%d/%d, device=%s)\n" +msgstr "" + +#: src/stored/block.c:851 +#, c-format +msgid "Unable to open device next part %s: ERR=%s\n" +msgstr "" + +#: src/stored/block.c:871 +#, c-format +msgid "" +"End of Volume \"%s\" at %u:%u on device %s (part_size=%s, free_space=%s, " +"free_space_errno=%d, errmsg=%s).\n" +msgstr "" + +#: src/stored/block.c:884 +#, c-format +msgid "" +"End of Volume \"%s\" at %u:%u on device %s (part_size=%s, free_space=%s, " +"free_space_errno=%d).\n" +msgstr "" + +#: src/stored/block.c:940 +#, c-format +msgid "Block buffer size looping problem on device %s\n" +msgstr "" + +#: src/stored/block.c:968 +#, c-format +msgid "Unable to open device part=%d %s: ERR=%s\n" +msgstr "" + +#: src/stored/block.c:994 +#, c-format +msgid "Read error on fd=%d at file:blk %u:%u on device %s. ERR=%s.\n" +msgstr "" + +#: src/stored/block.c:1007 +#, c-format +msgid "Read zero bytes at %u:%u on device %s.\n" +msgstr "" + +#: src/stored/block.c:1031 +#, c-format +msgid "" +"Volume data error at %u:%u! Very short block of %d bytes on device %s " +"discarded.\n" +msgstr "" + +#: src/stored/block.c:1056 +#, c-format +msgid "Block length %u is greater than buffer %u. Attempting recovery.\n" +msgstr "" + +#: src/stored/block.c:1075 +#, c-format +msgid "Setting block buffer size to %u bytes.\n" +msgstr "" + +#: src/stored/block.c:1090 +#, c-format +msgid "" +"Volume data error at %u:%u! Short block of %d bytes on device %s discarded.\n" +msgstr "" + +#: src/tools/testls.c:55 +#, c-format +msgid "" +"\n" +"Usage: testls [-d debug_level] [-] [pattern1 ...]\n" +" -a print extended attributes (Win32 debug)\n" +" -dnn set debug level to nn\n" +" -e specify file of exclude patterns\n" +" -i specify file of include patterns\n" +" - read pattern(s) from stdin\n" +" -? print this message.\n" +"\n" +"Patterns are file inclusion -- normally directories.\n" +"Debug level >= 1 prints each file found.\n" +"Debug level >= 10 prints path/file for catalog.\n" +"Errors always printed.\n" +"Files/paths truncated is number with len > 255.\n" +"Truncation is only in catalog.\n" +"\n" +msgstr "" + +#: src/tools/testls.c:140 +#, c-format +msgid "Could not open include file: %s\n" +msgstr "" + +#: src/tools/testls.c:153 +#, c-format +msgid "Could not open exclude file: %s\n" +msgstr "" + +#: src/tools/testls.c:188 src/tools/testfind.c:309 +#, c-format +msgid "Err: Could not access %s: %s\n" +msgstr "" + +#: src/tools/testls.c:191 src/tools/testfind.c:312 +#, c-format +msgid "Err: Could not follow ff->link %s: %s\n" +msgstr "" + +#: src/tools/testls.c:194 src/tools/testfind.c:315 +#, c-format +msgid "Err: Could not stat %s: %s\n" +msgstr "" + +#: src/tools/testls.c:197 src/tools/testfind.c:318 +#, c-format +msgid "Skip: File not saved. No change. %s\n" +msgstr "" + +#: src/tools/testls.c:200 src/tools/testfind.c:321 +#, c-format +msgid "Err: Attempt to backup archive. Not saved. %s\n" +msgstr "" + +#: src/tools/testls.c:203 +#, c-format +msgid "Recursion turned off. Directory not entered. %s\n" +msgstr "" + +#: src/tools/testls.c:206 +#, c-format +msgid "Skip: File system change prohibited. Directory not entered. %s\n" +msgstr "" + +#: src/tools/testls.c:209 src/tools/testfind.c:324 +#, c-format +msgid "Err: Could not open directory %s: %s\n" +msgstr "" + +#: src/tools/testls.c:212 src/tools/testfind.c:327 +#, c-format +msgid "Err: Unknown file ff->type %d: %s\n" +msgstr "" + +#: src/tools/testfind.c:66 +#, c-format +msgid "" +"\n" +"Usage: testfind [-d debug_level] [-] [pattern1 ...]\n" +" -a print extended attributes (Win32 debug)\n" +" -dnn set debug level to nn\n" +" -c specify config file containing FileSet resources\n" +" -f specify which FileSet to use\n" +" -? print this message.\n" +"\n" +"Patterns are used for file inclusion -- normally directories.\n" +"Debug level >= 1 prints each file found.\n" +"Debug level >= 10 prints path/file for catalog.\n" +"Errors are always printed.\n" +"Files/paths truncated is the number of files/paths with len > 255.\n" +"Truncation is only in the catalog.\n" +"\n" +msgstr "" + +#: src/tools/testfind.c:225 +#, c-format +msgid "" +"\n" +"Total files : %d\n" +"Max file length: %d\n" +"Max path length: %d\n" +"Files truncated: %d\n" +"Paths truncated: %d\n" +"Hard links : %d\n" +msgstr "" + +#: src/tools/testfind.c:265 +#, c-format +msgid "Reg: %s\n" +msgstr "" + +#: src/tools/testfind.c:287 +msgid "\t[will not descend: recursion turned off]" +msgstr "" + +#: src/tools/testfind.c:289 +msgid "\t[will not descend: file system change not allowed]" +msgstr "" + +#: src/tools/testfind.c:291 +msgid "\t[will not descend: disallowed file system]" +msgstr "" + +#: src/tools/testfind.c:293 +msgid "\t[will not descend: disallowed drive type]" +msgstr "" + +#: src/tools/testfind.c:377 +#, c-format +msgid "===== Filename truncated to 255 chars: %s\n" +msgstr "" + +#: src/tools/testfind.c:394 +#, c-format +msgid "========== Path name truncated to 255 chars: %s\n" +msgstr "" + +#: src/tools/testfind.c:403 +#, c-format +msgid "========== Path length is zero. File=%s\n" +msgstr "" + +#: src/tools/testfind.c:406 +#, c-format +msgid "Path: %s\n" +msgstr "" + +#: src/tools/bbatch.c:78 +#, c-format +msgid "" +"\n" +"Version: %s (%s)\n" +"Example : bbatch -w /path/to/workdir -h localhost -f dat1 -f dat -f datx\n" +" will start 3 thread and load dat1, dat and datx in your catalog\n" +"See bbatch.c to generate datafile\n" +"\n" +"Usage: bbatch [ options ] -w working/dir -f datafile\n" +" -d set debug level to nn\n" +" -n specify the database name (default bacula)\n" +" -u specify database user name (default bacula)\n" +" -P specify database host (default NULL)\n" +" -w specify working directory\n" +" -v verbose\n" +" -f specify data file\n" +" -? print this message\n" +"\n" +msgstr "" + +#: src/tools/bbatch.c:261 +#, fuzzy, c-format +msgid "Error opening datafile %s\n" +msgstr "Fehler beim holen von Zeile: %s\n" + +#: src/tools/bbatch.c:271 +#, fuzzy +msgid "Error while inserting file\n" +msgstr "Fehler beim schreiben der bsr Datei.\n" + +#: src/tools/dbcheck.c:175 +msgid "" +"Warning skipping the additional parameters for working directory/dbname/user/" +"password/host.\n" +msgstr "" + +#: src/tools/dbcheck.c:191 +#, c-format +msgid "Error can not find the Catalog name[%s] in the given config file [%s]\n" +msgstr "" + +#: src/tools/dbcheck.c:193 +#, c-format +msgid "Error there is no Catalog section in the given config file [%s]\n" +msgstr "" + +#: src/tools/dbcheck.c:202 +msgid "Error no Director resource defined.\n" +msgstr "" + +#: src/tools/dbcheck.c:216 +msgid "Wrong number of arguments.\n" +msgstr "" + +#: src/tools/dbcheck.c:221 +msgid "Working directory not supplied.\n" +msgstr "" + +#: src/tools/dbcheck.c:285 +#, c-format +msgid "Hello, this is the database check/correct program.\n" +msgstr "" + +#: src/tools/dbcheck.c:287 +#, c-format +msgid "Modify database is on." +msgstr "" + +#: src/tools/dbcheck.c:289 +#, c-format +msgid "Modify database is off." +msgstr "" + +#: src/tools/dbcheck.c:291 src/tools/dbcheck.c:352 +#, c-format +msgid " Verbose is on.\n" +msgstr "" + +#: src/tools/dbcheck.c:293 src/tools/dbcheck.c:354 +#, c-format +msgid " Verbose is off.\n" +msgstr "" + +#: src/tools/dbcheck.c:295 +#, c-format +msgid "Please select the fuction you want to perform.\n" +msgstr "" + +#: src/tools/dbcheck.c:299 +#, c-format +msgid "" +"\n" +" 1) Toggle modify database flag\n" +" 2) Toggle verbose flag\n" +" 3) Repair bad Filename records\n" +" 4) Repair bad Path records\n" +" 5) Eliminate duplicate Filename records\n" +" 6) Eliminate duplicate Path records\n" +" 7) Eliminate orphaned Jobmedia records\n" +" 8) Eliminate orphaned File records\n" +" 9) Eliminate orphaned Path records\n" +" 10) Eliminate orphaned Filename records\n" +" 11) Eliminate orphaned FileSet records\n" +" 12) Eliminate orphaned Client records\n" +" 13) Eliminate orphaned Job records\n" +" 14) Eliminate all Admin records\n" +" 15) Eliminate all Restore records\n" +" 16) All (3-15)\n" +" 17) Quit\n" +msgstr "" + +#: src/tools/dbcheck.c:318 +#, c-format +msgid "" +"\n" +" 1) Toggle modify database flag\n" +" 2) Toggle verbose flag\n" +" 3) Check for bad Filename records\n" +" 4) Check for bad Path records\n" +" 5) Check for duplicate Filename records\n" +" 6) Check for duplicate Path records\n" +" 7) Check for orphaned Jobmedia records\n" +" 8) Check for orphaned File records\n" +" 9) Check for orphaned Path records\n" +" 10) Check for orphaned Filename records\n" +" 11) Check for orphaned FileSet records\n" +" 12) Check for orphaned Client records\n" +" 13) Check for orphaned Job records\n" +" 14) Check for all Admin records\n" +" 15) Check for all Restore records\n" +" 16) All (3-15)\n" +" 17) Quit\n" +msgstr "" + +#: src/tools/dbcheck.c:338 +msgid "Select function number: " +msgstr "" + +#: src/tools/dbcheck.c:345 +#, c-format +msgid "Database will be modified.\n" +msgstr "" + +#: src/tools/dbcheck.c:347 +#, c-format +msgid "Database will NOT be modified.\n" +msgstr "" + +#: src/tools/dbcheck.c:437 +#, c-format +msgid "JobId=%s Name=\"%s\" StartTime=%s\n" +msgstr "" + +#: src/tools/dbcheck.c:445 +#, c-format +msgid "Orphaned JobMediaId=%s JobId=%s Volume=\"%s\"\n" +msgstr "" + +#: src/tools/dbcheck.c:452 +#, c-format +msgid "Orphaned FileId=%s JobId=%s Volume=\"%s\"\n" +msgstr "" + +#: src/tools/dbcheck.c:459 +#, c-format +msgid "Orphaned FileSetId=%s FileSet=\"%s\" MD5=%s\n" +msgstr "" + +#: src/tools/dbcheck.c:466 +#, c-format +msgid "Orphaned ClientId=%s Name=\"%s\"\n" +msgstr "" + +#: src/tools/dbcheck.c:520 +#, c-format +msgid "Deleting: %s\n" +msgstr "" + +#: src/tools/dbcheck.c:594 +#, c-format +msgid "Checking for duplicate Filename entries.\n" +msgstr "" + +#: src/tools/dbcheck.c:603 +#, c-format +msgid "Found %d duplicate Filename records.\n" +msgstr "" + +#: src/tools/dbcheck.c:604 +msgid "Print the list? (yes/no): " +msgstr "" + +#: src/tools/dbcheck.c:623 src/tools/dbcheck.c:681 +#, c-format +msgid "Found %d for: %s\n" +msgstr "" + +#: src/tools/dbcheck.c:651 +#, c-format +msgid "Checking for duplicate Path entries.\n" +msgstr "" + +#: src/tools/dbcheck.c:661 +#, c-format +msgid "Found %d duplicate Path records.\n" +msgstr "" + +#: src/tools/dbcheck.c:662 src/tools/dbcheck.c:716 src/tools/dbcheck.c:760 +#: src/tools/dbcheck.c:803 src/tools/dbcheck.c:842 src/tools/dbcheck.c:880 +#: src/tools/dbcheck.c:921 src/tools/dbcheck.c:962 src/tools/dbcheck.c:1000 +#: src/tools/dbcheck.c:1033 src/tools/dbcheck.c:1070 src/tools/dbcheck.c:1134 +msgid "Print them? (yes/no): " +msgstr "" + +#: src/tools/dbcheck.c:709 +#, c-format +msgid "Checking for orphaned JobMedia entries.\n" +msgstr "" + +#: src/tools/dbcheck.c:715 +#, c-format +msgid "Found %d orphaned JobMedia records.\n" +msgstr "" + +#: src/tools/dbcheck.c:733 +#, c-format +msgid "Deleting %d orphaned JobMedia records.\n" +msgstr "" + +#: src/tools/dbcheck.c:750 +#, c-format +msgid "Checking for orphaned File entries. This may take some time!\n" +msgstr "" + +#: src/tools/dbcheck.c:759 +#, c-format +msgid "Found %d orphaned File records.\n" +msgstr "" + +#: src/tools/dbcheck.c:776 +#, c-format +msgid "Deleting %d orphaned File records.\n" +msgstr "" + +#: src/tools/dbcheck.c:793 +#, c-format +msgid "Checking for orphaned Path entries. This may take some time!\n" +msgstr "" + +#: src/tools/dbcheck.c:802 +#, c-format +msgid "Found %d orphaned Path records.\n" +msgstr "" + +#: src/tools/dbcheck.c:815 +#, c-format +msgid "Deleting %d orphaned Path records.\n" +msgstr "" + +#: src/tools/dbcheck.c:832 +#, c-format +msgid "Checking for orphaned Filename entries. This may take some time!\n" +msgstr "" + +#: src/tools/dbcheck.c:841 +#, c-format +msgid "Found %d orphaned Filename records.\n" +msgstr "" + +#: src/tools/dbcheck.c:854 +#, c-format +msgid "Deleting %d orphaned Filename records.\n" +msgstr "" + +#: src/tools/dbcheck.c:869 +#, c-format +msgid "Checking for orphaned FileSet entries. This takes some time!\n" +msgstr "" + +#: src/tools/dbcheck.c:879 +#, c-format +msgid "Found %d orphaned FileSet records.\n" +msgstr "" + +#: src/tools/dbcheck.c:894 +#, c-format +msgid "Deleting %d orphaned FileSet records.\n" +msgstr "" + +#: src/tools/dbcheck.c:903 +#, c-format +msgid "Checking for orphaned Client entries.\n" +msgstr "" + +#: src/tools/dbcheck.c:920 +#, c-format +msgid "Found %d orphaned Client records.\n" +msgstr "" + +#: src/tools/dbcheck.c:935 +#, c-format +msgid "Deleting %d orphaned Client records.\n" +msgstr "" + +#: src/tools/dbcheck.c:944 +#, c-format +msgid "Checking for orphaned Job entries.\n" +msgstr "" + +#: src/tools/dbcheck.c:961 +#, c-format +msgid "Found %d orphaned Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:976 +#, c-format +msgid "Deleting %d orphaned Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:978 +#, c-format +msgid "Deleting JobMedia records of orphaned Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:980 +#, c-format +msgid "Deleting Log records of orphaned Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:990 +#, c-format +msgid "Checking for Admin Job entries.\n" +msgstr "" + +#: src/tools/dbcheck.c:999 +#, c-format +msgid "Found %d Admin Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:1014 +#, c-format +msgid "Deleting %d Admin Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:1023 +#, c-format +msgid "Checking for Restore Job entries.\n" +msgstr "" + +#: src/tools/dbcheck.c:1032 +#, c-format +msgid "Found %d Restore Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:1047 +#, c-format +msgid "Deleting %d Restore Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:1060 +#, c-format +msgid "Checking for Filenames with a trailing slash\n" +msgstr "" + +#: src/tools/dbcheck.c:1069 +#, c-format +msgid "Found %d bad Filename records.\n" +msgstr "" + +#: src/tools/dbcheck.c:1087 src/tools/dbcheck.c:1150 +#, c-format +msgid "Reparing %d bad Filename records.\n" +msgstr "" + +#: src/tools/dbcheck.c:1124 +#, c-format +msgid "Checking for Paths without a trailing slash\n" +msgstr "" + +#: src/tools/dbcheck.c:1133 +#, c-format +msgid "Found %d bad Path records.\n" +msgstr "" + +#: src/tools/bsmtp.c:145 +#, c-format +msgid "Fatal malformed reply from %s: %s\n" +msgstr "" + +#: src/tools/bsmtp.c:153 +#, c-format +msgid "Fatal fgets error: ERR=%s\n" +msgstr "" + +#: src/tools/bsmtp.c:186 +#, c-format +msgid "" +"\n" +"Usage: %s [-f from] [-h mailhost] [-s subject] [-c copy] [recipient ...]\n" +" -8 set charset utf-8\n" +" -c set the Cc: field\n" +" -dnn set debug level to nn\n" +" -f set the From: field\n" +" -h use mailhost:port as the SMTP server\n" +" -s set the Subject: field\n" +" -r set the Reply-To: field\n" +" -l set the maximum number of lines that should be sent " +"(default: unlimited)\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/tools/bsmtp.c:336 +msgid "Fatal error: no recipient given.\n" +msgstr "" + +#: src/tools/bsmtp.c:365 +#, c-format +msgid "Fatal gethostname error: ERR=%s\n" +msgstr "" + +#: src/tools/bsmtp.c:369 +#, c-format +msgid "Fatal gethostbyname for myself failed \"%s\": ERR=%s\n" +msgstr "" + +#: src/tools/bsmtp.c:405 +#, fuzzy, c-format +msgid "Error unknown mail host \"%s\": ERR=%s\n" +msgstr "unbekannt" + +#: src/tools/bsmtp.c:408 +msgid "Retrying connection using \"localhost\".\n" +msgstr "" + +#: src/tools/bsmtp.c:416 +#, c-format +msgid "Fatal error: Unknown address family for smtp host: %d\n" +msgstr "" + +#: src/tools/bsmtp.c:425 src/tools/bsmtp.c:430 +#, c-format +msgid "Fatal socket error: ERR=%s\n" +msgstr "" + +#: src/tools/bsmtp.c:435 +#, c-format +msgid "Fatal connect error to %s: ERR=%s\n" +msgstr "" + +#: src/tools/bsmtp.c:443 +#, c-format +msgid "Fatal _open_osfhandle error: ERR=%s\n" +msgstr "" + +#: src/tools/bsmtp.c:450 src/tools/bsmtp.c:454 src/tools/bsmtp.c:463 +#: src/tools/bsmtp.c:467 +#, c-format +msgid "Fatal fdopen error: ERR=%s\n" +msgstr "" + +#: src/tools/bsmtp.c:459 +#, c-format +msgid "Fatal dup error: ERR=%s\n" +msgstr "" + +#: src/tools/fstype.c:47 +#, c-format +msgid "" +"\n" +"Usage: fstype [-v] path ...\n" +"\n" +" Print the file system type a given file/directory is on.\n" +" The following options are supported:\n" +"\n" +" -v print both path and file system type.\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/tools/fstype.c:101 src/tools/drivetype.c:101 +#, fuzzy, c-format +msgid "%s: unknown\n" +msgstr "unbekannt" + +#: src/tools/drivetype.c:47 +#, c-format +msgid "" +"\n" +"Usage: drivetype [-v] path ...\n" +"\n" +" Print the drive type a given file/directory is on.\n" +" The following options are supported:\n" +"\n" +" -v print both path and file system type.\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/console/console.c:114 +#, c-format +msgid "" +"\n" +"Version: " +msgstr "" + +#: src/console/console.c:162 +msgid "input from file" +msgstr "" + +#: src/console/console.c:163 +msgid "output to file" +msgstr "" + +#: src/console/console.c:165 +msgid "output to file and terminal" +msgstr "" + +#: src/console/console.c:166 +msgid "sleep specified time" +msgstr "" + +#: src/console/console.c:168 +msgid "print Console's version" +msgstr "" + +#: src/console/console.c:169 +msgid "echo command string" +msgstr "" + +#: src/console/console.c:170 +msgid "execute an external command" +msgstr "" + +#: src/console/console.c:172 +msgid "zed_keys = use zed keys instead of bash keys" +msgstr "" + +#: src/console/console.c:205 +msgid ": is an invalid command\n" +msgstr "" + +#: src/console/console.c:462 +msgid "Available Directors:\n" +msgstr "" + +#: src/console/console.c:466 +#, c-format +msgid "%2d: %s at %s:%d\n" +msgstr "" + +#: src/console/console.c:470 +msgid "Select Director by entering a number: " +msgstr "" + +#: src/console/console.c:475 +#, c-format +msgid "%s is not a number. You must enter a number between 1 and %d\n" +msgstr "" + +#: src/console/console.c:481 +#, c-format +msgid "You must enter a number between 1 and %d\n" +msgstr "" + +#: src/console/console.c:521 src/tray-monitor/tray-monitor.c:920 +#, c-format +msgid "Connecting to Director %s:%d\n" +msgstr "" + +#: src/console/console.c:588 +msgid "Enter a period to cancel a command.\n" +msgstr "" + +#: src/console/console.c:849 +msgid "Too many arguments on input command.\n" +msgstr "" + +#: src/console/console.c:853 +msgid "First argument to input command must be a filename.\n" +msgstr "" + +#: src/console/console.c:858 +#, c-format +msgid "Cannot open file %s for input. ERR=%s\n" +msgstr "" + +#: src/console/console.c:888 +msgid "Too many arguments on output/tee command.\n" +msgstr "" + +#: src/console/console.c:905 +#, c-format +msgid "Cannot open file %s for output. ERR=%s\n" +msgstr "" + +#: src/console/console.c:924 +msgid "Too many arguments. Enclose command in double quotes.\n" +msgstr "" + +#: src/console/console.c:933 +#, fuzzy, c-format +msgid "Cannot popen(\"%s\", \"r\"): ERR=%s\n" +msgstr "Kann Ausdruck\"%s\"nicht auflösen: ERR=%s\n" + +#: src/tray-monitor/authenticate.c:88 +msgid "" +"Director authorization problem.\n" +"Most likely the passwords do not agree.\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" + +#: src/tray-monitor/authenticate.c:138 +msgid "" +"Director and Storage daemon passwords or names not the same.\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" + +#: src/tray-monitor/authenticate.c:145 +#, c-format +msgid "bdird set configuration file to file\n" +" -dnn set debug level to nn\n" +" -t test - read configuration and exit\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:261 +#, c-format +msgid "" +"Error: %d Monitor resources defined in %s. You must define one and only one " +"Monitor resource.\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:292 +#, fuzzy, c-format +msgid "" +"No Client, Storage or Director resource defined in %s\n" +"Without that I don't how to get status from the File, Storage or Director " +"Daemon :-(\n" +msgstr "" +"Keine Director resource definiert in %s\n" +"Ohne dies weiss ich nicht wer ich bin :-(\n" + +#: src/tray-monitor/tray-monitor.c:314 +#, c-format +msgid "" +"Invalid refresh interval defined in %s\n" +"This value must be greater or equal to 1 second and less or equal to 10 " +"minutes (read value: %d).\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:321 +msgid "Bacula daemon status monitor" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:330 +msgid "Open status window..." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:336 +msgid "Exit" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:348 +msgid "Bacula tray monitor" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:373 +msgid " (DIR)" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:377 +msgid " (FD)" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:381 +msgid " (SD)" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:394 +msgid "Unknown status." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:464 +msgid "Refresh interval in seconds: " +msgstr "" + +#: src/tray-monitor/tray-monitor.c:472 +msgid "Refresh now" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:476 +msgid "About" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:480 +msgid "Close" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:500 +#, c-format +msgid "Disconnecting from Director %s:%d\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:503 +#, c-format +msgid "Disconnecting from Client %s:%d\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:506 +#, c-format +msgid "Disconnecting from Storage %s:%d\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:544 src/tray-monitor/tray-monitor.c:555 +msgid "Bacula Tray Monitor" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:546 src/tray-monitor/tray-monitor.c:557 +msgid "Written by Nicolas Boichat\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:547 src/tray-monitor/tray-monitor.c:558 +msgid "Version" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:640 +#, c-format +msgid "Error, currentitem is not a Client or a Storage..\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:714 +#, c-format +msgid "" +"Current job: %s\n" +"Last job: %s" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:726 +#, c-format +msgid " (%d errors)" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:729 +#, c-format +msgid " (%d error)" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:767 +msgid "No current job." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:770 +msgid "No last job." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:778 +msgid "Job status: Created" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:783 +msgid "Job status: Running" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:787 +msgid "Job status: Blocked" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:792 +msgid "Job status: Terminated" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:797 +msgid "Job status: Terminated in error" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:803 +msgid "Job status: Error" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:807 +msgid "Job status: Fatal error" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:812 +msgid "Job status: Verify differences" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:817 +msgid "Job status: Canceled" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:822 +msgid "Job status: Waiting on File daemon" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:827 +msgid "Job status: Waiting on the Storage daemon" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:832 +msgid "Job status: Waiting for new media" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:837 +msgid "Job status: Waiting for Mount" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:842 +msgid "Job status: Waiting for storage resource" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:847 +msgid "Job status: Waiting for job resource" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:852 +msgid "Job status: Waiting for Client resource" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:857 +msgid "Job status: Waiting for maximum jobs" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:862 +msgid "Job status: Waiting for start time" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:867 +msgid "Job status: Waiting for higher priority jobs to finish" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:872 +#, c-format +msgid "Unknown job status %c." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:873 +#, c-format +msgid "Job status: Unknown(%c)" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:880 +#, c-format +msgid "Bad scan : '%s' %d\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:921 src/qt-console/bcomm/dircomm.cpp:120 +#: src/qt-console/console/console.cpp:137 +#, c-format +msgid "Connecting to Director %s:%d" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:927 +#, c-format +msgid "Connecting to Client %s:%d\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:928 +#, c-format +msgid "Connecting to Client %s:%d" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:929 +msgid "File daemon" +msgstr "File daemon" + +#: src/tray-monitor/tray-monitor.c:934 +#, c-format +msgid "Connecting to Storage %s:%d\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:935 +#, c-format +msgid "Connecting to Storage %s:%d" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:940 src/tray-monitor/tray-monitor.c:978 +#, c-format +msgid "Error, currentitem is not a Client, a Storage or a Director..\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:946 +msgid "Cannot connect to daemon.\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:947 +msgid "Cannot connect to daemon." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:959 +#, c-format +msgid "Authentication error : %s" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:966 +msgid "Opened connection with Director daemon.\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:967 +msgid "Opened connection with Director daemon." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:970 +msgid "Opened connection with File daemon.\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:971 +msgid "Opened connection with File daemon." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:974 +msgid "Opened connection with Storage daemon.\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:975 +msgid "Opened connection with Storage daemon." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:1012 +msgid "<< Error: BNET_PROMPT signal received. >>\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:1017 src/wx-console/console_thread.cpp:486 +msgid "<< Heartbeat signal received, answered. >>\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:1021 +#, c-format +msgid "<< Unexpected signal received : %s >>\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:1026 +msgid "\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:1030 +msgid "Error : BNET_HARDEOF or BNET_ERROR" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:1036 +msgid "\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:1040 +msgid "Error : Connection closed." +msgstr "" + +#: src/tray-monitor/tray_conf.c:177 +#, c-format +msgid "Monitor: name=%s FDtimeout=%s SDtimeout=%s\n" +msgstr "" + +#: src/tray-monitor/tray_conf.c:183 +#, c-format +msgid "Director: name=%s address=%s FDport=%d\n" +msgstr "" + +#: src/tray-monitor/tray_conf.c:187 +#, c-format +msgid "Client: name=%s address=%s FDport=%d\n" +msgstr "" + +#: src/tray-monitor/tray_conf.c:191 +#, c-format +msgid "Storage: name=%s address=%s SDport=%d\n" +msgstr "" + +#: src/lib/cram-md5.c:111 src/lib/cram-md5.c:139 +msgid "1999 Authorization failed.\n" +msgstr "" + +#: src/lib/mem_pool.c:108 +#, c-format +msgid "MemPool index %d larger than max %d\n" +msgstr "" + +#: src/lib/mem_pool.c:126 src/lib/mem_pool.c:146 src/lib/mem_pool.c:181 +#: src/lib/mem_pool.c:253 src/lib/mem_pool.c:273 src/lib/mem_pool.c:311 +#: src/lib/mem_pool.c:583 +#, c-format +msgid "Out of memory requesting %d bytes\n" +msgstr "" + +#: src/lib/util.c:182 +msgid "Running" +msgstr "" + +#: src/lib/util.c:185 +msgid "Blocked" +msgstr "" + +#: src/lib/util.c:195 +msgid "Non-fatal error" +msgstr "" + +#: src/lib/util.c:198 src/lib/util.c:271 +msgid "Canceled" +msgstr "" + +#: src/lib/util.c:201 +msgid "Verify differences" +msgstr "" + +#: src/lib/util.c:204 +msgid "Waiting on FD" +msgstr "" + +#: src/lib/util.c:207 +msgid "Wait on SD" +msgstr "" + +#: src/lib/util.c:210 +msgid "Wait for new Volume" +msgstr "" + +#: src/lib/util.c:213 +msgid "Waiting for mount" +msgstr "" + +#: src/lib/util.c:216 +msgid "Waiting for Storage resource" +msgstr "" + +#: src/lib/util.c:219 +msgid "Waiting for Job resource" +msgstr "" + +#: src/lib/util.c:222 +msgid "Waiting for Client resource" +msgstr "" + +#: src/lib/util.c:225 +msgid "Waiting on Max Jobs" +msgstr "" + +#: src/lib/util.c:228 +msgid "Waiting for Start Time" +msgstr "" + +#: src/lib/util.c:231 +msgid "Waiting on Priority" +msgstr "" + +#: src/lib/util.c:244 +#, c-format +msgid "Unknown Job termination status=%d" +msgstr "" + +#: src/lib/util.c:268 +msgid "Fatal Error" +msgstr "" + +#: src/lib/util.c:274 +msgid "Differences" +msgstr "" + +#: src/lib/util.c:277 +msgid "Unknown term code" +msgstr "" + +#: src/lib/util.c:305 +msgid "Migrate" +msgstr "" + +#: src/lib/util.c:308 +msgid "Copy" +msgstr "" + +#: src/lib/util.c:311 src/wx-console/wxbmainframe.cpp:276 +msgid "Console" +msgstr "" + +#: src/lib/util.c:314 +msgid "System or Console" +msgstr "" + +#: src/lib/util.c:317 +msgid "Scan" +msgstr "" + +#: src/lib/util.c:320 +msgid "Unknown Type" +msgstr "" + +#: src/lib/util.c:352 +msgid "Verify Init Catalog" +msgstr "" + +#: src/lib/util.c:361 +msgid "Verify Data" +msgstr "" + +#: src/lib/util.c:705 +msgid "Working directory not defined. Cannot continue.\n" +msgstr "" + +#: src/lib/util.c:708 +#, c-format +msgid "Working Directory: \"%s\" not found. Cannot continue.\n" +msgstr "" + +#: src/lib/util.c:712 +#, c-format +msgid "Working Directory: \"%s\" is not a directory. Cannot continue.\n" +msgstr "" + +#: src/lib/message.c:274 src/lib/message.c:284 +#, c-format +msgid "Could not open console message file %s: ERR=%s\n" +msgstr "" + +#: src/lib/message.c:289 +#, c-format +msgid "Could not get con mutex: ERR=%s\n" +msgstr "" + +#: src/lib/message.c:393 +#, c-format +msgid "open mail pipe %s failed: ERR=%s\n" +msgstr "" + +#: src/lib/message.c:399 +msgid "Bacula Message" +msgstr "" + +#: src/lib/message.c:459 +msgid "open mail pipe failed.\n" +msgstr "" + +#: src/lib/message.c:471 +#, c-format +msgid "close error: ERR=%s\n" +msgstr "" + +#: src/lib/message.c:482 +#, c-format +msgid "Mail prog: %s" +msgstr "" + +#: src/lib/message.c:491 +#, c-format +msgid "" +"Mail program terminated in error.\n" +"CMD=%s\n" +"ERR=%s\n" +msgstr "" + +#: src/lib/message.c:590 src/lib/message.c:743 +#, c-format +msgid "fopen %s failed: ERR=%s\n" +msgstr "" + +#: src/lib/message.c:725 +#, c-format +msgid "" +"Operator mail program terminated in error.\n" +"CMD=%s\n" +"ERR=%s\n" +msgstr "" + +#: src/lib/message.c:1024 +#, c-format +msgid "%s: ABORTING due to ERROR in %s:%d\n" +msgstr "" + +#: src/lib/message.c:1028 +#, c-format +msgid "%s: ERROR TERMINATION at %s:%d\n" +msgstr "" + +#: src/lib/message.c:1033 +#, c-format +msgid "%s: Fatal Error because: " +msgstr "" + +#: src/lib/message.c:1035 +#, c-format +msgid "%s: Fatal Error at %s:%d because:\n" +msgstr "" + +#: src/lib/message.c:1039 +#, c-format +msgid "%s: ERROR: " +msgstr "" + +#: src/lib/message.c:1041 +#, c-format +msgid "%s: ERROR in %s:%d " +msgstr "" + +#: src/lib/message.c:1044 +#, c-format +msgid "%s: Warning: " +msgstr "" + +#: src/lib/message.c:1047 +#, c-format +msgid "%s: Security violation: " +msgstr "" + +#: src/lib/message.c:1122 +#, c-format +msgid "%s ABORTING due to ERROR\n" +msgstr "" + +#: src/lib/message.c:1125 +#, c-format +msgid "%s ERROR TERMINATION\n" +msgstr "" + +#: src/lib/message.c:1128 +#, c-format +msgid "%s JobId %u: Fatal error: " +msgstr "" + +#: src/lib/message.c:1134 +#, c-format +msgid "%s JobId %u: Error: " +msgstr "" + +#: src/lib/message.c:1140 +#, c-format +msgid "%s JobId %u: Warning: " +msgstr "" + +#: src/lib/message.c:1143 +#, c-format +msgid "%s JobId %u: Security violation: " +msgstr "" + +#: src/lib/berrno.c:62 +msgid "Child exited normally." +msgstr "" + +#: src/lib/berrno.c:69 +msgid "Unknown error during program execvp" +msgstr "" + +#: src/lib/berrno.c:72 +#, c-format +msgid "Child exited with code %d" +msgstr "" + +#: src/lib/berrno.c:80 +#, c-format +msgid "Child died from signal %d: %s" +msgstr "" + +#: src/lib/berrno.c:86 +msgid "Invalid errno. No error message possible." +msgstr "" + +#: src/lib/bnet.c:118 +#, c-format +msgid "Attr spool write error. ERR=%s\n" +msgstr "" + +#: src/lib/bnet.c:244 src/lib/bnet.c:284 +msgid "TLS connection initialization failed.\n" +msgstr "" + +#: src/lib/bnet.c:252 +msgid "TLS Negotiation failed.\n" +msgstr "" + +#: src/lib/bnet.c:258 src/lib/bnet.c:299 +msgid "" +"TLS certificate verification failed. Peer certificate did not match a " +"required commonName\n" +msgstr "" + +#: src/lib/bnet.c:306 +#, c-format +msgid "" +"TLS host certificate verification failed. Host %s did not match presented " +"certificate\n" +msgstr "" + +#: src/lib/bnet.c:323 +msgid "TLS enabled but not configured.\n" +msgstr "" + +#: src/lib/bnet.c:329 +msgid "TLS enable but not configured.\n" +msgstr "" + +#: src/lib/bnet.c:387 +msgid "No problem." +msgstr "" + +#: src/lib/bnet.c:390 +msgid "Authoritative answer for host not found." +msgstr "" + +#: src/lib/bnet.c:393 +msgid "Non-authoritative for host not found, or ServerFail." +msgstr "" + +#: src/lib/bnet.c:396 +msgid "Non-recoverable errors, FORMERR, REFUSED, or NOTIMP." +msgstr "" + +#: src/lib/bnet.c:399 +msgid "Valid name, no data record of resquested type." +msgstr "" + +#: src/lib/bnet.c:402 +msgid "Unknown error." +msgstr "" + +#: src/lib/bnet.c:656 +#, c-format +msgid "Unknown sig %d" +msgstr "" + +#: src/lib/bpipe.c:362 src/lib/bpipe.c:452 +msgid "Program killed by Bacula watchdog (timeout)\n" +msgstr "" + +#: src/lib/watchdog.c:83 +#, c-format +msgid "Unable to initialize watchdog lock. ERR=%s\n" +msgstr "" + +#: src/lib/watchdog.c:180 +msgid "BUG! register_watchdog called before start_watchdog\n" +msgstr "" + +#: src/lib/watchdog.c:183 +#, c-format +msgid "BUG! Watchdog %p has NULL callback\n" +msgstr "" + +#: src/lib/watchdog.c:186 +#, c-format +msgid "BUG! Watchdog %p has zero interval\n" +msgstr "" + +#: src/lib/watchdog.c:206 +msgid "BUG! unregister_watchdog_unlocked called before start_watchdog\n" +msgstr "" + +#: src/lib/watchdog.c:325 +#, c-format +msgid "rwl_writelock failure. ERR=%s\n" +msgstr "" + +#: src/lib/watchdog.c:340 +#, c-format +msgid "rwl_writeunlock failure. ERR=%s\n" +msgstr "" + +#: src/lib/bsock.c:122 +#, fuzzy, c-format +msgid "" +"Could not connect to %s on %s:%d. ERR=%s\n" +"Retrying ...\n" +msgstr "Konnte FileSet \"%s\" Eintrag nicht erzeugen. ERR=%s\n" + +#: src/lib/bsock.c:128 +#, fuzzy, c-format +msgid "Unable to connect to %s on %s:%d. ERR=%s\n" +msgstr "Konnte Job Eintrag nicht holen. ERR=%s\n" + +#: src/lib/bsock.c:181 +#, fuzzy, c-format +msgid "gethostbyname() for host \"%s\" failed: ERR=%s\n" +msgstr "Erzeugung des db Filename Eintrags %s fehlgeschlagen. ERR=%s\n" + +#: src/lib/bsock.c:201 +#, fuzzy, c-format +msgid "Socket open error. proto=%d port=%d. ERR=%s\n" +msgstr "Socket Fehler auf %s Kommando: ERR=%s\n" + +#: src/lib/bsock.c:210 src/lib/bsock.c:246 src/lib/bnet_server.c:202 +#: src/lib/bnet_server.c:370 +#, c-format +msgid "Cannot set SO_KEEPALIVE on socket: %s\n" +msgstr "" + +#: src/lib/bsock.c:218 +#, c-format +msgid "Cannot set SO_KEEPIDLE on socket: %s\n" +msgstr "" + +#: src/lib/bsock.c:304 +#, fuzzy, c-format +msgid "Write error sending %d bytes to %s:%s:%d: ERR=%s\n" +msgstr "" +"Fehler beim senden des Kommandos Hello an File daemon auf \"%s:%d\". ERR=%s\n" + +#: src/lib/bsock.c:310 +#, c-format +msgid "Wrote %d bytes to %s:%s:%d, but only %d accepted.\n" +msgstr "" + +#: src/lib/bsock.c:396 src/lib/bsock.c:453 +#, c-format +msgid "Read expected %d got %d from %s:%s:%d\n" +msgstr "" + +#: src/lib/bsock.c:414 +#, c-format +msgid "Packet size too big from \"%s:%s:%d. Terminating connection.\n" +msgstr "" + +#: src/lib/bsock.c:443 +#, fuzzy, c-format +msgid "Read error from %s:%s:%d: ERR=%s\n" +msgstr "Socket Fehler auf %s Kommando: ERR=%s\n" + +#: src/lib/bsock.c:507 src/lib/bsock.c:523 +#, fuzzy, c-format +msgid "fread attr spool error. ERR=%s\n" +msgstr "Regex Übersetzungsfehler. ERR=%s\n" + +#: src/lib/bsock.c:584 +msgid "Could not malloc BSOCK data buffer\n" +msgstr "" + +#: src/lib/bsock.c:591 src/lib/bsock.c:615 +#, c-format +msgid "sockopt error: %s\n" +msgstr "" + +#: src/lib/bsock.c:597 src/lib/bsock.c:621 +#, c-format +msgid "Warning network buffer = %d bytes not max size.\n" +msgstr "" + +#: src/lib/bsock.c:601 src/lib/bsock.c:625 +#, c-format +msgid "Network buffer size %d not multiple of tape block size.\n" +msgstr "" + +#: src/lib/bsock.c:646 src/lib/bsock.c:680 +#, fuzzy, c-format +msgid "fcntl F_GETFL error. ERR=%s\n" +msgstr "Regex Übersetzungsfehler. ERR=%s\n" + +#: src/lib/bsock.c:652 src/lib/bsock.c:686 src/lib/bsock.c:711 +#, fuzzy, c-format +msgid "fcntl F_SETFL error. ERR=%s\n" +msgstr "Regex Übersetzungsfehler. ERR=%s\n" + +#: src/lib/bsock.c:873 src/qt-console/bcomm/dircomm_auth.cpp:106 +#: src/qt-console/console/authenticate.cpp:105 +#, fuzzy, c-format +msgid "Director authorization problem at \"%s:%d\"\n" +msgstr "Authorisationsproblem: FD an \"%s:%d\" erfordert TLS.\n" + +#: src/lib/bsock.c:880 src/qt-console/bcomm/dircomm_auth.cpp:113 +#: src/qt-console/console/authenticate.cpp:112 +#, fuzzy, c-format +msgid "" +"Authorization problem: Remote server at \"%s:%d\" did not advertise required " +"TLS support.\n" +msgstr "" +"Authorisationsproblem: Entfernter Server hat benötigte TLS Unterstützung " +"nicht angeboten.\n" + +#: src/lib/bsock.c:888 src/qt-console/bcomm/dircomm_auth.cpp:121 +#: src/qt-console/console/authenticate.cpp:120 +#, fuzzy, c-format +msgid "" +"Authorization problem with Director at \"%s:%d\": Remote server requires " +"TLS.\n" +msgstr "Authorisationsproblem: Enfernter Server erfordert TLS.\n" + +#: src/lib/bsock.c:900 src/qt-console/bcomm/dircomm_auth.cpp:133 +#: src/qt-console/console/authenticate.cpp:132 +#, fuzzy, c-format +msgid "TLS negotiation failed with Director at \"%s:%d\"\n" +msgstr "TLS Aushandlung fehlgeschlagen mit SD an \"%s:%d\"\n" + +#: src/lib/bsock.c:910 src/qt-console/bcomm/dircomm_auth.cpp:143 +#: src/qt-console/console/authenticate.cpp:142 +#, c-format +msgid "" +"Bad response to Hello command: ERR=%s\n" +"The Director at \"%s:%d\" is probably not running.\n" +msgstr "" + +#: src/lib/bsock.c:919 src/qt-console/bcomm/dircomm_auth.cpp:152 +#: src/qt-console/console/authenticate.cpp:151 +#, fuzzy, c-format +msgid "Director at \"%s:%d\" rejected Hello command\n" +msgstr "File daemon auf \"%s:%d\" hat Hello Kommando abgelehnt\n" + +#: src/lib/bsock.c:929 src/qt-console/bcomm/dircomm_auth.cpp:162 +#: src/qt-console/console/authenticate.cpp:161 +#, fuzzy, c-format +msgid "" +"Authorization problem with Director at \"%s:%d\"\n" +"Most likely the passwords do not agree.\n" +"If you are using TLS, there may have been a certificate validation error " +"during the TLS handshake.\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" +"Kann mit File daemon on \"%s:%d\" nicht authentisieren. Mögliche Ursachen:\n" +"Passworte oder Namen nicht gleich oder\n" +"Maximum Concurrent Jobs überschritten auf dem FD oder\n" +"FD Netzwerk durcheinander (Daemon neustarten).\n" +"Für Hilfe bitte unter http://www.bacula.org/rel-manual/faq." +"html#AuthorizationErrors nachsehen.\n" + +#: src/lib/btimers.c:254 +msgid "stop_btimer called with NULL btimer_id\n" +msgstr "" + +#: src/lib/pythonlib.c:127 +msgid "Could not initialize Python\n" +msgstr "" + +#: src/lib/pythonlib.c:132 +#, c-format +msgid "Could not Run Python string %s\n" +msgstr "" + +#: src/lib/pythonlib.c:144 +msgid "Could not initialize Python Job type.\n" +msgstr "" + +#: src/lib/pythonlib.c:149 +#, c-format +msgid "Could not import Python script %s/%s. Python disabled.\n" +msgstr "" + +#: src/lib/pythonlib.c:252 +msgid "Could not create Python Job Object.\n" +msgstr "" + +#: src/lib/pythonlib.c:265 src/lib/pythonlib.c:289 +#, c-format +msgid "Python function \"%s\" not found.\n" +msgstr "" + +#: src/lib/pythonlib.c:304 +#, c-format +msgid "Unknown Python daemon event %s\n" +msgstr "" + +#: src/lib/pythonlib.c:329 +#, c-format +msgid "Unable to initialize the Python lock. ERR=%s\n" +msgstr "" + +#: src/lib/attr.c:79 +#, c-format +msgid "Error scanning attributes: %s\n" +msgstr "" + +#: src/lib/jcr.c:297 +msgid "NULL jcr.\n" +msgstr "" + +#: src/lib/jcr.c:431 +#, c-format +msgid "JCR use_count=%d JobId=%d\n" +msgstr "" + +#: src/lib/jcr.c:762 +#, c-format +msgid "" +"Watchdog sending kill after %d secs to thread stalled reading Storage " +"daemon.\n" +msgstr "" + +#: src/lib/jcr.c:774 +#, c-format +msgid "" +"Watchdog sending kill after %d secs to thread stalled reading File daemon.\n" +msgstr "" + +#: src/lib/jcr.c:786 +#, c-format +msgid "" +"Watchdog sending kill after %d secs to thread stalled reading Director.\n" +msgstr "" + +#: src/lib/parse_conf.c:188 +msgid "***UNKNOWN***" +msgstr "" + +#: src/lib/parse_conf.c:286 src/lib/parse_conf.c:306 +#, c-format +msgid "expected an =, got: %s" +msgstr "" + +#: src/lib/parse_conf.c:314 +#, c-format +msgid "Unknown item code: %d\n" +msgstr "" + +#: src/lib/parse_conf.c:354 +#, c-format +msgid "message type: %s not found" +msgstr "" + +#: src/lib/parse_conf.c:391 +#, c-format +msgid "Attempt to redefine name \"%s\" to \"%s\"." +msgstr "" + +#: src/lib/parse_conf.c:486 +#, c-format +msgid "Attempt to redefine resource \"%s\" referenced on line %d : %s\n" +msgstr "" + +#: src/lib/parse_conf.c:521 +#, c-format +msgid "Too many %s directives. Max. is %d. line %d: %s\n" +msgstr "" + +#: src/lib/parse_conf.c:531 +#, c-format +msgid "Could not find config Resource \"%s\" referenced on line %d : %s\n" +msgstr "" + +#: src/lib/parse_conf.c:593 +#, c-format +msgid "Missing config Resource \"%s\" referenced on line %d : %s\n" +msgstr "" + +#: src/lib/parse_conf.c:657 +#, c-format +msgid "expected a size number, got: %s" +msgstr "" + +#: src/lib/parse_conf.c:662 +#, c-format +msgid "expected a size, got: %s" +msgstr "" + +#: src/lib/parse_conf.c:699 src/lib/parse_conf.c:704 +#, c-format +msgid "expected a time period, got: %s" +msgstr "" + +#: src/lib/parse_conf.c:763 +#, c-format +msgid "Expected a Tape Label keyword, got: %s" +msgstr "" + +#: src/lib/parse_conf.c:798 +#, c-format +msgid "Unable to initialize resource lock. ERR=%s\n" +msgstr "" + +#: src/lib/parse_conf.c:828 +#, c-format +msgid "Cannot open config file \"%s\": %s\n" +msgstr "" + +#: src/lib/parse_conf.c:845 +msgid "" +"Currently we cannot handle UTF-16 source files. Please convert the conf file " +"to UTF-8\n" +msgstr "" + +#: src/lib/parse_conf.c:849 +#, c-format +msgid "Expected a Resource name identifier, got: %s" +msgstr "" + +#: src/lib/parse_conf.c:865 +#, c-format +msgid "expected resource name, got: %s" +msgstr "" + +#: src/lib/parse_conf.c:876 +#, c-format +msgid "not in resource definition: %s" +msgstr "" + +#: src/lib/parse_conf.c:901 +#, c-format +msgid "" +"Keyword \"%s\" not permitted in this resource.\n" +"Perhaps you left the trailing brace off of the previous resource." +msgstr "" + +#: src/lib/parse_conf.c:912 +msgid "Name not specified for resource" +msgstr "" + +#: src/lib/parse_conf.c:921 +#, c-format +msgid "unexpected token %d %s in resource definition" +msgstr "" + +#: src/lib/parse_conf.c:927 +#, c-format +msgid "Unknown parser state %d\n" +msgstr "" + +#: src/lib/parse_conf.c:932 +msgid "End of conf file reached with unclosed resource." +msgstr "" + +#: src/lib/res.c:66 +#, c-format +msgid "rwl_writelock failure at %s:%d: ERR=%s\n" +msgstr "" + +#: src/lib/res.c:76 +#, c-format +msgid "rwl_writeunlock failure at %s:%d:. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:297 +msgid "rwl_writeunlock called too many times.\n" +msgstr "" + +#: src/lib/rwlock.c:301 +msgid "rwl_writeunlock by non-owner.\n" +msgstr "" + +#: src/lib/rwlock.c:367 +#, c-format +msgid "Write lock failed. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:375 +#, c-format +msgid "Write unlock failed. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:386 +#, c-format +msgid "Read lock failed. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:394 +#, c-format +msgid "Read unlock failed. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:403 +#, c-format +msgid "Thread %d found unchanged elements %d times\n" +msgstr "" + +#: src/lib/rwlock.c:436 +#, c-format +msgid "Init rwlock failed. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:452 +#, c-format +msgid "Create thread failed. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:464 +#, c-format +msgid "Join thread failed. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:467 +#, c-format +msgid "%02d: interval %d, writes %d, reads %d\n" +msgstr "" + +#: src/lib/rwlock.c:477 +#, c-format +msgid "data %02d: value %d, %d writes\n" +msgstr "" + +#: src/lib/rwlock.c:482 +#, c-format +msgid "Total: %d thread writes, %d data writes\n" +msgstr "" + +#: src/lib/rwlock.c:554 +msgid "Try write lock" +msgstr "" + +#: src/lib/rwlock.c:560 +msgid "Try read lock" +msgstr "" + +#: src/lib/rwlock.c:615 +msgid "Create thread" +msgstr "" + +#: src/lib/rwlock.c:625 +msgid "Join thread" +msgstr "" + +#: src/lib/rwlock.c:627 +#, c-format +msgid "%02d: interval %d, updates %d, r_collisions %d, w_collisions %d\n" +msgstr "" + +#: src/lib/rwlock.c:639 +#, c-format +msgid "data %02d: value %d, %d updates\n" +msgstr "" + +#: src/lib/daemon.c:66 +#, fuzzy, c-format +msgid "Cannot fork to become daemon: ERR=%s\n" +msgstr "Kann var context nicht erzeugen: ERR=%s\n" + +#: src/lib/tls.c:93 +#, c-format +msgid "" +"Error with certificate at depth: %d, issuer = %s, subject = %s, ERR=%d:%s\n" +msgstr "" + +#: src/lib/tls.c:130 +msgid "Error initializing SSL context" +msgstr "" + +#: src/lib/tls.c:151 +msgid "Error loading certificate verification stores" +msgstr "" + +#: src/lib/tls.c:156 +msgid "" +"Either a certificate file or a directory must be specified as a verification " +"store\n" +msgstr "" + +#: src/lib/tls.c:167 +msgid "Error loading certificate file" +msgstr "" + +#: src/lib/tls.c:175 +msgid "Error loading private key" +msgstr "" + +#: src/lib/tls.c:183 +msgid "Unable to open DH parameters file" +msgstr "" + +#: src/lib/tls.c:189 +msgid "Unable to load DH parameters from specified file" +msgstr "" + +#: src/lib/tls.c:193 +msgid "Failed to set TLS Diffie-Hellman parameters" +msgstr "" + +#: src/lib/tls.c:203 +msgid "Error setting cipher list, no valid ciphers available\n" +msgstr "" + +#: src/lib/tls.c:262 +msgid "Peer failed to present a TLS certificate\n" +msgstr "" + +#: src/lib/tls.c:305 +#, c-format +msgid "Peer %s failed to present a TLS certificate\n" +msgstr "" + +#: src/lib/tls.c:407 +msgid "Error creating file descriptor-based BIO" +msgstr "" + +#: src/lib/tls.c:418 +msgid "Error creating new SSL object" +msgstr "" + +#: src/lib/tls.c:481 src/lib/tls.c:504 +msgid "Connect failure" +msgstr "" + +#: src/lib/tls.c:576 src/lib/tls.c:580 +msgid "TLS shutdown failure." +msgstr "" + +#: src/lib/tls.c:647 +msgid "TLS read/write failure." +msgstr "" + +#: src/lib/signal.c:68 +msgid "Invalid signal number" +msgstr "" + +#: src/lib/signal.c:94 +#, c-format +msgid "Bacula interrupted by signal %d: %s\n" +msgstr "" + +#: src/lib/signal.c:107 +#, c-format +msgid "Kaboom! %s, %s got signal %d - %s. Attempting traceback.\n" +msgstr "" + +#: src/lib/signal.c:109 +#, c-format +msgid "Kaboom! exepath=%s\n" +msgstr "" + +#: src/lib/signal.c:143 +#, c-format +msgid "Fork error: ERR=%s\n" +msgstr "" + +#: src/lib/signal.c:150 +#, c-format +msgid "Calling: %s %s %s\n" +msgstr "" + +#: src/lib/signal.c:153 +#, c-format +msgid "execv: %s failed: ERR=%s\n" +msgstr "" + +#: src/lib/signal.c:168 +#, c-format +msgid "Traceback complete, attempting cleanup ...\n" +msgstr "" + +#: src/lib/signal.c:176 +#, c-format +msgid "It looks like the traceback worked ...\n" +msgstr "" + +#: src/lib/signal.c:205 +#, c-format +msgid "BA_NSIG too small (%d) should be (%d)\n" +msgstr "" + +#: src/lib/signal.c:211 +msgid "UNKNOWN SIGNAL" +msgstr "" + +#: src/lib/signal.c:212 +msgid "Hangup" +msgstr "" + +#: src/lib/signal.c:213 +msgid "Interrupt" +msgstr "" + +#: src/lib/signal.c:214 +msgid "Quit" +msgstr "" + +#: src/lib/signal.c:215 +msgid "Illegal instruction" +msgstr "" + +#: src/lib/signal.c:216 +msgid "Trace/Breakpoint trap" +msgstr "" + +#: src/lib/signal.c:217 +msgid "Abort" +msgstr "" + +#: src/lib/signal.c:219 +msgid "EMT instruction (Emulation Trap)" +msgstr "" + +#: src/lib/signal.c:222 +msgid "IOT trap" +msgstr "" + +#: src/lib/signal.c:224 +msgid "BUS error" +msgstr "" + +#: src/lib/signal.c:225 +msgid "Floating-point exception" +msgstr "" + +#: src/lib/signal.c:226 +msgid "Kill, unblockable" +msgstr "" + +#: src/lib/signal.c:227 +msgid "User-defined signal 1" +msgstr "" + +#: src/lib/signal.c:228 +msgid "Segmentation violation" +msgstr "" + +#: src/lib/signal.c:229 +msgid "User-defined signal 2" +msgstr "" + +#: src/lib/signal.c:230 +msgid "Broken pipe" +msgstr "" + +#: src/lib/signal.c:231 +msgid "Alarm clock" +msgstr "" + +#: src/lib/signal.c:232 +msgid "Termination" +msgstr "" + +#: src/lib/signal.c:234 +msgid "Stack fault" +msgstr "" + +#: src/lib/signal.c:236 +msgid "Child status has changed" +msgstr "" + +#: src/lib/signal.c:237 +msgid "Continue" +msgstr "" + +#: src/lib/signal.c:238 +msgid "Stop, unblockable" +msgstr "" + +#: src/lib/signal.c:239 +msgid "Keyboard stop" +msgstr "" + +#: src/lib/signal.c:240 +msgid "Background read from tty" +msgstr "" + +#: src/lib/signal.c:241 +msgid "Background write to tty" +msgstr "" + +#: src/lib/signal.c:242 +msgid "Urgent condition on socket" +msgstr "" + +#: src/lib/signal.c:243 +msgid "CPU limit exceeded" +msgstr "" + +#: src/lib/signal.c:244 +msgid "File size limit exceeded" +msgstr "" + +#: src/lib/signal.c:245 +msgid "Virtual alarm clock" +msgstr "" + +#: src/lib/signal.c:246 +msgid "Profiling alarm clock" +msgstr "" + +#: src/lib/signal.c:247 +msgid "Window size change" +msgstr "" + +#: src/lib/signal.c:248 +msgid "I/O now possible" +msgstr "" + +#: src/lib/signal.c:250 +msgid "Power failure restart" +msgstr "" + +#: src/lib/signal.c:253 +msgid "No runnable lwp" +msgstr "" + +#: src/lib/signal.c:256 +msgid "SIGLWP special signal used by thread library" +msgstr "" + +#: src/lib/signal.c:259 +msgid "Checkpoint Freeze" +msgstr "" + +#: src/lib/signal.c:262 +msgid "Checkpoint Thaw" +msgstr "" + +#: src/lib/signal.c:265 +msgid "Thread Cancellation" +msgstr "" + +#: src/lib/signal.c:268 +msgid "Resource Lost (e.g. record-lock lost)" +msgstr "" + +#: src/lib/bnet_server.c:109 +#, c-format +msgid "Cannot open stream socket. ERR=%s. Current %s All %s\n" +msgstr "" + +#: src/lib/bnet_server.c:122 src/lib/bnet_server.c:275 +#, c-format +msgid "Cannot set SO_REUSEADDR on socket: %s\n" +msgstr "" + +#: src/lib/bnet_server.c:131 +#, c-format +msgid "Cannot bind port %d: ERR=%s: Retrying ...\n" +msgstr "" + +#: src/lib/bnet_server.c:136 +#, c-format +msgid "Cannot bind port %d: ERR=%s.\n" +msgstr "" + +#: src/lib/bnet_server.c:147 +#, c-format +msgid "Could not init client queue: ERR=%s\n" +msgstr "" + +#: src/lib/bnet_server.c:166 src/lib/bnet_server.c:338 +#, c-format +msgid "Error in select: %s\n" +msgstr "" + +#: src/lib/bnet_server.c:187 src/lib/bnet_server.c:357 +#, c-format +msgid "Connection from %s:%d refused by hosts.access\n" +msgstr "" + +#: src/lib/bnet_server.c:213 +msgid "Could not create client BSOCK.\n" +msgstr "" + +#: src/lib/bnet_server.c:220 +#, c-format +msgid "Could not add job to client queue: ERR=%s\n" +msgstr "" + +#: src/lib/bnet_server.c:237 +#, c-format +msgid "Could not destroy client queue: ERR=%s\n" +msgstr "" + +#: src/lib/bnet_server.c:265 +#, c-format +msgid "Cannot open stream socket: %s\n" +msgstr "" + +#: src/lib/bnet_server.c:295 +#, c-format +msgid "Cannot bind port %d: ERR=%s: retrying ...\n" +msgstr "" + +#: src/lib/bnet_server.c:301 +msgid "Server socket" +msgstr "" + +#: src/lib/bnet_server.c:301 src/lib/bnet_server.c:398 +msgid "client" +msgstr "" + +#: src/lib/bnet_server.c:386 +#, c-format +msgid "Socket accept error for %s. ERR=%s\n" +msgstr "" + +#: src/lib/smartall.c:146 src/lib/smartall.c:255 src/lib/smartall.c:270 +msgid "Out of memory\n" +msgstr "" + +#: src/lib/smartall.c:151 +msgid "Too much memory used." +msgstr "" + +#: src/lib/smartall.c:180 +#, c-format +msgid "Attempt to free NULL called from %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:194 +#, c-format +msgid "double free from %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:202 +#, c-format +msgid "qp->qnext->qprev != qp called from %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:206 +#, c-format +msgid "qp->qprev->qnext != qp called from %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:215 +#, c-format +msgid "Buffer overrun called from %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:292 +#, c-format +msgid "sm_realloc size: %d\n" +msgstr "" + +#: src/lib/smartall.c:330 +#, c-format +msgid "sm_realloc %d at %x from %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:392 +#, c-format +msgid "" +"\n" +"Orphaned buffers exist. Dump terminated following\n" +" discovery of bad links in chain of orphaned buffers.\n" +" Buffer address with bad links: %p\n" +msgstr "" + +#: src/lib/smartall.c:404 +#, c-format +msgid "%s buffer: %s %6u bytes buf=%p allocated at %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:440 +#, c-format +msgid "Damaged buffer found. Called from %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:470 +#, c-format +msgid "" +"\n" +"Damaged buffers found at %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:473 +#, c-format +msgid " discovery of bad prev link.\n" +msgstr "" + +#: src/lib/smartall.c:476 +#, c-format +msgid " discovery of bad next link.\n" +msgstr "" + +#: src/lib/smartall.c:479 +#, c-format +msgid " discovery of data overrun.\n" +msgstr "" + +#: src/lib/smartall.c:482 +#, c-format +msgid " Buffer address: %p\n" +msgstr "" + +#: src/lib/smartall.c:489 +#, c-format +msgid "Damaged buffer: %6u bytes allocated at line %d of %s %s\n" +msgstr "" + +#: src/lib/bsys.c:208 src/lib/bsys.c:225 src/lib/bsys.c:249 src/lib/bsys.c:262 +#, c-format +msgid "Out of memory: ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:304 +msgid "Buffer overflow.\n" +msgstr "" + +#: src/lib/bsys.c:370 +msgid "Bad errno" +msgstr "" + +#: src/lib/bsys.c:387 +msgid "Possible mutex deadlock.\n" +msgstr "" + +#: src/lib/bsys.c:391 src/lib/bsys.c:424 +#, c-format +msgid "Mutex lock failure. ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:394 +msgid "Possible mutex deadlock resolved.\n" +msgstr "" + +#: src/lib/bsys.c:407 +#, c-format +msgid "Mutex unlock not locked. ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:412 src/lib/bsys.c:434 +#, c-format +msgid "Mutex unlock failure. ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:448 +#, c-format +msgid "Memset for %d bytes at %s:%d\n" +msgstr "" + +#: src/lib/bsys.c:478 +#, c-format +msgid "Cannot open pid file. %s ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:493 +#, c-format +msgid "" +"%s is already running. pid=%d\n" +"Check file %s\n" +msgstr "" + +#: src/lib/bsys.c:507 +#, c-format +msgid "Could not open pid file. %s ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:615 +#, c-format +msgid "Could not create state file. %s ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:634 +#, c-format +msgid "Write final hdr error: ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:670 +#, c-format +msgid "Could not find userid=%s: ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:676 +#, c-format +msgid "Could not find password entry. ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:689 +#, c-format +msgid "Could not find group=%s: ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:697 +#, c-format +msgid "Could not initgroups for group=%s, userid=%s: ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:700 +#, c-format +msgid "Could not initgroups for userid=%s: ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:707 +#, c-format +msgid "Could not set group=%s: ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:713 +#, c-format +msgid "Could not set specified userid: %s\n" +msgstr "" + +#: src/lib/crypto.c:435 +msgid "Unable to open certificate file" +msgstr "" + +#: src/lib/crypto.c:442 +msgid "Unable to read certificate from file" +msgstr "" + +#: src/lib/crypto.c:448 +msgid "Unable to extract public key from certificate" +msgstr "" + +#: src/lib/crypto.c:455 +msgid "" +"Provided certificate does not include the required subjectKeyIdentifier " +"extension." +msgstr "" + +#: src/lib/crypto.c:462 +#, c-format +msgid "Unsupported key type provided: %d\n" +msgstr "" + +#: src/lib/crypto.c:499 src/lib/crypto.c:547 +msgid "Unable to open private key file" +msgstr "" + +#: src/lib/crypto.c:529 src/lib/crypto.c:563 +msgid "Unable to read private key from file" +msgstr "" + +#: src/lib/crypto.c:622 +#, c-format +msgid "Unsupported digest type: %d\n" +msgstr "" + +#: src/lib/crypto.c:636 +msgid "OpenSSL digest initialization failed" +msgstr "" + +#: src/lib/crypto.c:650 +msgid "OpenSSL digest update failed" +msgstr "" + +#: src/lib/crypto.c:668 +msgid "OpenSSL digest finalize failed" +msgstr "" + +#: src/lib/crypto.c:766 +msgid "OpenSSL digest_new failed" +msgstr "" + +#: src/lib/crypto.c:772 +msgid "OpenSSL sign get digest failed" +msgstr "" + +#: src/lib/crypto.c:811 src/lib/crypto.c:815 +msgid "OpenSSL digest Verify final failed" +msgstr "" + +#: src/lib/crypto.c:820 +#, fuzzy +msgid "No signers found for crypto verify.\n" +msgstr "Keine %ss zum Migrieren gefunden.\n" + +#: src/lib/crypto.c:881 +msgid "Signature creation failed" +msgstr "" + +#: src/lib/crypto.c:959 +msgid "Signature decoding failed" +msgstr "" + +#: src/lib/crypto.c:1036 +msgid "Unsupported cipher type specified\n" +msgstr "" + +#: src/lib/crypto.c:1185 +msgid "CryptoData decoding failed" +msgstr "" + +#: src/lib/crypto.c:1229 +msgid "Failure decrypting the session key" +msgstr "" + +#: src/lib/crypto.c:1280 +#, c-format +msgid "Unsupported contentEncryptionAlgorithm: %d\n" +msgstr "" + +#: src/lib/crypto.c:1290 src/lib/crypto.c:1296 +msgid "OpenSSL cipher context initialization failed" +msgstr "" + +#: src/lib/crypto.c:1303 +msgid "Encryption session provided an invalid symmetric key" +msgstr "" + +#: src/lib/crypto.c:1309 +msgid "Encryption session provided an invalid IV" +msgstr "" + +#: src/lib/crypto.c:1315 +msgid "OpenSSL cipher context key/IV initialization failed" +msgstr "" + +#: src/lib/crypto.c:1385 +#, c-format +msgid "Unable to init OpenSSL threading: ERR=%s\n" +msgstr "" + +#: src/lib/crypto.c:1398 +msgid "Failed to seed OpenSSL PRNG\n" +msgstr "" + +#: src/lib/crypto.c:1424 +msgid "Failed to save OpenSSL PRNG\n" +msgstr "" + +#: src/lib/crypto.c:1485 +#, c-format +msgid "Unsupported digest type=%d specified\n" +msgstr "" + +#: src/lib/crypto.c:1505 +#, c-format +msgid "SHA1Update() returned an error: %d\n" +msgstr "" + +#: src/lib/crypto.c:1648 +#, fuzzy +msgid "No error" +msgstr "unbekannt" + +#: src/lib/crypto.c:1650 +#, fuzzy +msgid "Signer not found" +msgstr "FileSet MD5 Prüfsumme nicht gefunden.\n" + +#: src/lib/crypto.c:1652 +msgid "Recipient not found" +msgstr "" + +#: src/lib/crypto.c:1654 +msgid "Unsupported digest algorithm" +msgstr "" + +#: src/lib/crypto.c:1656 +msgid "Unsupported encryption algorithm" +msgstr "" + +#: src/lib/crypto.c:1658 +msgid "Signature is invalid" +msgstr "" + +#: src/lib/crypto.c:1660 +msgid "Decryption error" +msgstr "" + +#: src/lib/crypto.c:1663 +msgid "Internal error" +msgstr "" + +#: src/lib/crypto.c:1665 +#, fuzzy +msgid "Unknown error" +msgstr "unbekannt" + +#: src/lib/openssl.c:140 src/lib/openssl.c:213 +#, c-format +msgid "Unable to destroy mutex: ERR=%s\n" +msgstr "" + +#: src/lib/edit.c:446 +#, c-format +msgid "Illegal character \"%c\" in name.\n" +msgstr "" + +#: src/lib/edit.c:453 +msgid "Name too long.\n" +msgstr "" + +#: src/lib/bget_msg.c:99 +msgid "Status OK\n" +msgstr "" + +#: src/lib/bget_msg.c:103 +#, fuzzy, c-format +msgid "bget_msg: unknown signal %d\n" +msgstr "unbekannt" + +#: src/lib/lex.c:93 src/wx-console/console_thread.cpp:208 +#, c-format +msgid "Problem probably begins at line %d.\n" +msgstr "" + +#: src/lib/lex.c:98 src/wx-console/console_thread.cpp:213 +#, c-format +msgid "" +"Config error: %s\n" +" : line %d, col %d of file %s\n" +"%s\n" +"%s" +msgstr "" + +#: src/lib/lex.c:102 +#, c-format +msgid "Config error: %s\n" +msgstr "" + +#: src/lib/lex.c:131 +msgid "Close of NULL file\n" +msgstr "" + +#: src/lib/lex.c:226 +msgid "" +"get_char: called after EOF. You may have a open double quote without the " +"closing double quote.\n" +msgstr "" + +#: src/lib/lex.c:269 +#, c-format +msgid "Config token too long, file: %s, line %d, begins at line %d\n" +msgstr "" + +#: src/lib/lex.c:293 +msgid "none" +msgstr "" + +#: src/lib/lex.c:294 +msgid "comment" +msgstr "" + +#: src/lib/lex.c:295 +msgid "number" +msgstr "" + +#: src/lib/lex.c:296 +msgid "ip_addr" +msgstr "" + +#: src/lib/lex.c:297 +msgid "identifier" +msgstr "" + +#: src/lib/lex.c:298 +msgid "string" +msgstr "" + +#: src/lib/lex.c:299 +msgid "quoted_string" +msgstr "" + +#: src/lib/lex.c:300 +msgid "include" +msgstr "" + +#: src/lib/lex.c:301 +msgid "include_quoted_string" +msgstr "" + +#: src/lib/lex.c:302 +msgid "UTF-8 Byte Order Mark" +msgstr "" + +#: src/lib/lex.c:303 +msgid "UTF-16le Byte Order Mark" +msgstr "" + +#: src/lib/lex.c:341 src/lib/lex.c:347 +#, c-format +msgid "expected a positive integer number, got: %s" +msgstr "" + +#: src/lib/lex.c:457 +msgid "" +"This config file appears to be in an unsupported Unicode format (UTF-16be). " +"Please resave as UTF-8\n" +msgstr "" + +#: src/lib/lex.c:596 src/lib/lex.c:624 +#, c-format +msgid "Cannot open included config file %s: %s\n" +msgstr "" + +#: src/lib/lex.c:683 +#, c-format +msgid "expected an integer or a range, got %s: %s" +msgstr "" + +#: src/lib/lex.c:697 src/lib/lex.c:705 src/lib/lex.c:716 src/lib/lex.c:724 +#, c-format +msgid "expected an integer number, got %s: %s" +msgstr "" + +#: src/lib/lex.c:734 +#, c-format +msgid "expected a name, got %s: %s" +msgstr "" + +#: src/lib/lex.c:738 +#, c-format +msgid "name %s length %d too long, max is %d\n" +msgstr "" + +#: src/lib/lex.c:746 +#, c-format +msgid "expected a string, got %s: %s" +msgstr "" + +#: src/lib/var.c:2669 +msgid "everything ok" +msgstr "" + +#: src/lib/var.c:2670 +msgid "incomplete named character" +msgstr "" + +#: src/lib/var.c:2671 +msgid "incomplete hexadecimal value" +msgstr "" + +#: src/lib/var.c:2672 +msgid "invalid hexadecimal value" +msgstr "" + +#: src/lib/var.c:2673 +msgid "octal value too large" +msgstr "" + +#: src/lib/var.c:2674 +msgid "invalid octal value" +msgstr "" + +#: src/lib/var.c:2675 +msgid "incomplete octal value" +msgstr "" + +#: src/lib/var.c:2676 +msgid "incomplete grouped hexadecimal value" +msgstr "" + +#: src/lib/var.c:2677 +msgid "incorrect character class specification" +msgstr "" + +#: src/lib/var.c:2678 +msgid "invalid expansion configuration" +msgstr "" + +#: src/lib/var.c:2679 +msgid "out of memory" +msgstr "" + +#: src/lib/var.c:2680 +msgid "incomplete variable specification" +msgstr "" + +#: src/lib/var.c:2681 +msgid "undefined variable" +msgstr "" + +#: src/lib/var.c:2682 +msgid "input is neither text nor variable" +msgstr "" + +#: src/lib/var.c:2683 +#, fuzzy +msgid "unknown command character in variable" +msgstr "unbekannt" + +#: src/lib/var.c:2684 +msgid "malformatted search and replace operation" +msgstr "" + +#: src/lib/var.c:2685 +#, fuzzy +msgid "unknown flag in search and replace operation" +msgstr "unbekannt" + +#: src/lib/var.c:2686 +msgid "invalid regex in search and replace operation" +msgstr "" + +#: src/lib/var.c:2687 +msgid "missing parameter in command" +msgstr "" + +#: src/lib/var.c:2688 +msgid "empty search string in search and replace operation" +msgstr "" + +#: src/lib/var.c:2689 +msgid "start offset missing in cut operation" +msgstr "" + +#: src/lib/var.c:2690 +#, fuzzy +msgid "offsets in cut operation delimited by unknown character" +msgstr "unbekannt" + +#: src/lib/var.c:2691 +msgid "range out of bounds in cut operation" +msgstr "" + +#: src/lib/var.c:2692 +msgid "offset out of bounds in cut operation" +msgstr "" + +#: src/lib/var.c:2693 +msgid "logic error in cut operation" +msgstr "" + +#: src/lib/var.c:2694 +msgid "malformatted transpose operation" +msgstr "" + +#: src/lib/var.c:2695 +msgid "source and target class mismatch in transpose operation" +msgstr "" + +#: src/lib/var.c:2696 +msgid "empty character class in transpose operation" +msgstr "" + +#: src/lib/var.c:2697 +msgid "incorrect character class in transpose operation" +msgstr "" + +#: src/lib/var.c:2698 +msgid "malformatted padding operation" +msgstr "" + +#: src/lib/var.c:2699 +msgid "width parameter missing in padding operation" +msgstr "" + +#: src/lib/var.c:2700 +msgid "fill string missing in padding operation" +msgstr "" + +#: src/lib/var.c:2701 +#, fuzzy +msgid "unknown quoted pair in search and replace operation" +msgstr "unbekannt" + +#: src/lib/var.c:2702 +msgid "sub-matching reference out of range" +msgstr "" + +#: src/lib/var.c:2703 +msgid "invalid argument" +msgstr "" + +#: src/lib/var.c:2704 +msgid "incomplete quoted pair" +msgstr "" + +#: src/lib/var.c:2705 +msgid "lookup function does not support variable arrays" +msgstr "" + +#: src/lib/var.c:2706 +msgid "index of array variable contains an invalid character" +msgstr "" + +#: src/lib/var.c:2707 +msgid "index of array variable is incomplete" +msgstr "" + +#: src/lib/var.c:2708 +msgid "bracket expression in array variable's index not closed" +msgstr "" + +#: src/lib/var.c:2709 +msgid "division by zero error in index specification" +msgstr "" + +#: src/lib/var.c:2710 +msgid "unterminated loop construct" +msgstr "" + +#: src/lib/var.c:2711 +msgid "invalid character in loop limits" +msgstr "" + +#: src/lib/var.c:2712 +msgid "malformed operation argument list" +msgstr "" + +#: src/lib/var.c:2713 +msgid "undefined operation" +msgstr "" + +#: src/lib/var.c:2714 +msgid "formatting failure" +msgstr "" + +#: src/lib/var.c:2723 +#, fuzzy +msgid "unknown error" +msgstr "unbekannt" + +#: src/lib/runscript.c:214 +#, c-format +msgid "%s: run command \"%s\"\n" +msgstr "" + +#: src/lib/runscript.c:220 +#, c-format +msgid "Runscript: %s could not execute. ERR=%s\n" +msgstr "" + +#: src/lib/runscript.c:229 +#, c-format +msgid "%s: %s\n" +msgstr "" + +#: src/lib/runscript.c:234 +#, c-format +msgid "Runscript: %s returned non-zero status=%d. ERR=%s\n" +msgstr "" + +#: src/lib/address_conf.c:63 +#, c-format +msgid "Only ipv4 and ipv6 are supported (%d)\n" +msgstr "" + +#: src/lib/address_conf.c:67 +#, c-format +msgid "Only ipv4 is supported (%d)\n" +msgstr "" + +#: src/lib/address_conf.c:176 +#, c-format +msgid "It was tried to assign a ipv6 address to a ipv4(%d)\n" +msgstr "" + +#: src/lib/address_conf.c:185 +#, c-format +msgid "It was tried to assign a ipv4 address to a ipv6(%d)\n" +msgstr "" + +#: src/lib/address_conf.c:264 +#, c-format +msgid "Can't add default address (%s)\n" +msgstr "" + +#: src/lib/address_conf.c:293 +msgid "the old style addresses cannot be mixed with new style" +msgstr "" + +#: src/lib/address_conf.c:314 +#, c-format +msgid "can't resolve service(%s)" +msgstr "" + +#: src/lib/address_conf.c:323 +#, c-format +msgid "can't resolve hostname(%s) %s" +msgstr "" + +#: src/lib/address_conf.c:413 src/lib/address_conf.c:444 +#, c-format +msgid "Expected a block begin { , got: %s" +msgstr "" + +#: src/lib/address_conf.c:418 +msgid "Empty addr block is not allowed" +msgstr "" + +#: src/lib/address_conf.c:422 +#, c-format +msgid "Expected a string, got: %s" +msgstr "" + +#: src/lib/address_conf.c:431 +#, c-format +msgid "Expected a string [ip|ipv4|ipv6], got: %s" +msgstr "" + +#: src/lib/address_conf.c:435 +#, c-format +msgid "Expected a string [ip|ipv4], got: %s" +msgstr "" + +#: src/lib/address_conf.c:440 src/lib/address_conf.c:470 +#, c-format +msgid "Expected a equal =, got: %s" +msgstr "" + +#: src/lib/address_conf.c:451 src/lib/address_conf.c:466 +#, c-format +msgid "Expected a identifier [addr|port], got: %s" +msgstr "" + +#: src/lib/address_conf.c:456 +msgid "Only one port per address block" +msgstr "" + +#: src/lib/address_conf.c:462 +msgid "Only one addr per address block" +msgstr "" + +#: src/lib/address_conf.c:478 +#, c-format +msgid "Expected a number or a string, got: %s" +msgstr "" + +#: src/lib/address_conf.c:484 src/lib/address_conf.c:517 +#, c-format +msgid "Expected an IP number or a hostname, got: %s" +msgstr "" + +#: src/lib/address_conf.c:490 +msgid "State machine missmatch" +msgstr "" + +#: src/lib/address_conf.c:496 src/lib/address_conf.c:508 +#, c-format +msgid "Expected a end of block }, got: %s" +msgstr "" + +#: src/lib/address_conf.c:502 +#, c-format +msgid "Can't add hostname(%s) and port(%s) to addrlist (%s)" +msgstr "" + +#: src/lib/address_conf.c:522 src/lib/address_conf.c:536 +#, c-format +msgid "can't add port (%s) to (%s)" +msgstr "" + +#: src/lib/address_conf.c:531 +#, c-format +msgid "Expected a port number or string, got: %s" +msgstr "" + +#: src/findlib/create_file.c:123 +#, c-format +msgid "File skipped. Not newer: %s\n" +msgstr "" + +#: src/findlib/create_file.c:130 +#, c-format +msgid "File skipped. Not older: %s\n" +msgstr "" + +#: src/findlib/create_file.c:136 +#, c-format +msgid "File skipped. Already exists: %s\n" +msgstr "" + +#: src/findlib/create_file.c:162 +#, c-format +msgid "File %s already exists and could not be replaced. ERR=%s.\n" +msgstr "" + +#: src/findlib/create_file.c:214 src/findlib/create_file.c:277 +#: src/findlib/create_file.c:370 +#, c-format +msgid "bpkt already open fid=%d\n" +msgstr "" + +#: src/findlib/create_file.c:222 +#, c-format +msgid "Could not create %s: ERR=%s\n" +msgstr "" + +#: src/findlib/create_file.c:236 +#, c-format +msgid "Cannot make fifo %s: ERR=%s\n" +msgstr "" + +#: src/findlib/create_file.c:254 +#, c-format +msgid "Cannot make node %s: ERR=%s\n" +msgstr "" + +#: src/findlib/create_file.c:299 +#, c-format +msgid "Could not symlink %s -> %s: ERR=%s\n" +msgstr "" + +#: src/findlib/create_file.c:324 src/findlib/create_file.c:335 +#, c-format +msgid "Could not restore file flags for file %s: ERR=%s\n" +msgstr "" + +#: src/findlib/create_file.c:328 src/findlib/create_file.c:343 +#, c-format +msgid "Could not hard link %s -> %s: ERR=%s\n" +msgstr "" + +#: src/findlib/create_file.c:339 +#, c-format +msgid "Could not reset file flags for file %s: ERR=%s\n" +msgstr "" + +#: src/findlib/create_file.c:402 +#, c-format +msgid "Original file %s not saved: type=%d\n" +msgstr "" + +#: src/findlib/create_file.c:405 +#, c-format +msgid "Unknown file type %d; not restored: %s\n" +msgstr "" + +#: src/findlib/create_file.c:449 +#, c-format +msgid "Zero length filename: %s\n" +msgstr "" + +#: src/findlib/attribs.c:419 +#, c-format +msgid "File size of restored file %s not correct. Original %s, restored %s.\n" +msgstr "" + +#: src/findlib/attribs.c:445 src/findlib/attribs.c:452 +#, c-format +msgid "Unable to set file owner %s: ERR=%s\n" +msgstr "" + +#: src/findlib/attribs.c:458 +#, c-format +msgid "Unable to set file modes %s: ERR=%s\n" +msgstr "" + +#: src/findlib/attribs.c:468 +#, c-format +msgid "Unable to set file times %s: ERR=%s\n" +msgstr "" + +#: src/findlib/attribs.c:482 +#, c-format +msgid "Unable to set file flags %s: ERR=%s\n" +msgstr "" + +#: src/findlib/attribs.c:725 +#, c-format +msgid "Error in %s file %s: ERR=%s\n" +msgstr "" + +#: src/findlib/attribs.c:742 +#, c-format +msgid "Error in %s: ERR=%s\n" +msgstr "" + +#: src/findlib/save-cwd.c:48 +#, c-format +msgid "Cannot open current directory: %s\n" +msgstr "" + +#: src/findlib/save-cwd.c:62 +#, c-format +msgid "Current directory: %s\n" +msgstr "" + +#: src/findlib/save-cwd.c:84 +#, c-format +msgid "Cannot get current directory: %s\n" +msgstr "" + +#: src/findlib/save-cwd.c:105 +#, c-format +msgid "Cannot return to %s from %s: %s\n" +msgstr "" + +#: src/findlib/save-cwd.c:109 +#, c-format +msgid "Cannot return to saved working directory from %s: %s\n" +msgstr "" + +#: src/findlib/save-cwd.c:115 +#, c-format +msgid "Cannot return to %s: %s\n" +msgstr "" + +#: src/findlib/save-cwd.c:119 +#, c-format +msgid "Cannot return to saved working directory: %s\n" +msgstr "" + +#: src/findlib/find_one.c:228 +#, fuzzy, c-format +msgid "Cannot stat file %s: ERR=%s\n" +msgstr "Kann bootstrap Datei nicht öffnen: %s: ERR=%s\n" + +#: src/findlib/find_one.c:234 +#, c-format +msgid "%s mtime changed during backup.\n" +msgstr "" + +#: src/findlib/find_one.c:240 +#, c-format +msgid "%s ctime changed during backup.\n" +msgstr "" + +#: src/findlib/find_one.c:246 src/findlib/find_one.c:253 +#, c-format +msgid "%s size changed during backup.\n" +msgstr "" + +#: src/findlib/find_one.c:310 +#, c-format +msgid "Top level directory \"%s\" has unlisted fstype \"%s\"\n" +msgstr "" + +#: src/findlib/find_one.c:325 +#, c-format +msgid "Top level directory \"%s\" has an unlisted drive type \"%s\"\n" +msgstr "" + +#: src/findlib/bfile.c:82 +msgid "Unix attributes" +msgstr "" + +#: src/findlib/bfile.c:84 +msgid "File data" +msgstr "" + +#: src/findlib/bfile.c:86 +msgid "MD5 digest" +msgstr "" + +#: src/findlib/bfile.c:88 +msgid "GZIP data" +msgstr "" + +#: src/findlib/bfile.c:90 +msgid "Extended attributes" +msgstr "" + +#: src/findlib/bfile.c:92 +msgid "Sparse data" +msgstr "" + +#: src/findlib/bfile.c:94 +msgid "GZIP sparse data" +msgstr "" + +#: src/findlib/bfile.c:96 +msgid "Program names" +msgstr "" + +#: src/findlib/bfile.c:98 +msgid "Program data" +msgstr "" + +#: src/findlib/bfile.c:100 +msgid "SHA1 digest" +msgstr "" + +#: src/findlib/bfile.c:102 +msgid "Win32 data" +msgstr "" + +#: src/findlib/bfile.c:104 +msgid "Win32 GZIP data" +msgstr "" + +#: src/findlib/bfile.c:106 +msgid "MacOS Fork data" +msgstr "" + +#: src/findlib/bfile.c:108 +msgid "HFS+ attribs" +msgstr "" + +#: src/findlib/bfile.c:110 +msgid "Standard Unix ACL attribs" +msgstr "" + +#: src/findlib/bfile.c:112 +msgid "Default Unix ACL attribs" +msgstr "" + +#: src/findlib/bfile.c:114 +msgid "SHA256 digest" +msgstr "" + +#: src/findlib/bfile.c:116 +msgid "SHA512 digest" +msgstr "" + +#: src/findlib/bfile.c:118 +msgid "Signed digest" +msgstr "" + +#: src/findlib/bfile.c:120 +msgid "Encrypted File data" +msgstr "" + +#: src/findlib/bfile.c:122 +msgid "Encrypted Win32 data" +msgstr "" + +#: src/findlib/bfile.c:124 +msgid "Encrypted session data" +msgstr "" + +#: src/findlib/bfile.c:126 +msgid "Encrypted GZIP data" +msgstr "" + +#: src/findlib/bfile.c:128 +msgid "Encrypted Win32 GZIP data" +msgstr "" + +#: src/findlib/bfile.c:130 +msgid "Encrypted MacOS fork data" +msgstr "" + +#: src/findlib/enable_priv.c:92 +msgid "AdjustTokenPrivileges set " +msgstr "" + +#: src/findlib/makepath.c:116 +#, c-format +msgid "Cannot create directory %s: ERR=%s\n" +msgstr "" + +#: src/findlib/makepath.c:120 src/findlib/makepath.c:398 +#, c-format +msgid "%s exists but is not a directory\n" +msgstr "" + +#: src/findlib/makepath.c:229 +#, c-format +msgid "%c: is not a valid drive\n" +msgstr "" + +#: src/findlib/makepath.c:296 src/findlib/makepath.c:357 +#: src/findlib/makepath.c:417 +#, c-format +msgid "Cannot change owner and/or group of %s: ERR=%s\n" +msgstr "" + +#: src/findlib/makepath.c:317 +#, c-format +msgid "Cannot chdir to directory, %s: ERR=%s\n" +msgstr "" + +#: src/findlib/makepath.c:372 src/findlib/makepath.c:388 +#: src/findlib/makepath.c:422 +#, c-format +msgid "Cannot change permissions of %s: ERR=%s\n" +msgstr "" + +#: src/baconfig.h:72 +#, c-format +msgid "Failed ASSERT: %s\n" +msgstr "" + +#: src/baconfig.h:79 +msgid "*None*" +msgstr "" + +#: src/qt-console/bcomm/dircomm.cpp:203 src/qt-console/console/console.cpp:226 +msgid "Initializing ..." +msgstr "" + +#: src/qt-console/bcomm/dircomm.cpp:209 src/qt-console/console/console.cpp:254 +msgid "Connected" +msgstr "" + +#: src/qt-console/bcomm/dircomm.cpp:288 src/qt-console/bcomm/dircomm.cpp:410 +#: src/qt-console/console/console.cpp:528 +#: src/qt-console/console/console.cpp:650 +msgid "Processing command ..." +msgstr "" + +#: src/qt-console/bcomm/dircomm.cpp:404 src/qt-console/console/console.cpp:644 +msgid "Command completed ..." +msgstr "" + +#: src/qt-console/bcomm/dircomm.cpp:416 src/qt-console/console/console.cpp:656 +msgid "At main prompt waiting for input ..." +msgstr "" + +#: src/qt-console/bcomm/dircomm.cpp:423 src/qt-console/console/console.cpp:663 +msgid "At prompt waiting for input ..." +msgstr "" + +#: src/qt-console/bcomm/dircomm.cpp:428 src/qt-console/console/console.cpp:668 +msgid "Command failed." +msgstr "" + +#: src/qt-console/bcomm/dircomm.cpp:483 src/qt-console/console/console.cpp:730 +msgid "Director disconnected." +msgstr "" + +#: src/qt-console/main.cpp:155 +#, fuzzy, c-format +msgid "" +"\n" +"Version: %s (%s) %s %s %s\n" +"\n" +"Usage: bat [-s] [-c config_file] [-d debug_level] [config_file]\n" +" -c set configuration file to file\n" +" -dnn set debug level to nn\n" +" -s no signals\n" +" -t test - read configuration and exit\n" +" -? print this message.\n" +"\n" +msgstr "" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: dird [-f -s] [-c config_file] [-d debug_level] [config_file]\n" +" -c setze Konfigurationsdatei auf Datei\n" +" -dnn setze debug level auf nn\n" +" -f starte im Vordergrund (für debugging Zwecke)\n" +" -g groupid\n" +" -r starte jetzt\n" +" -s no signals\n" +" -t test - Konfiguration Lesen und beenden\n" +" -u userid\n" +" -v ausführliche Benutzer Meldungen\n" +" -? diese Meldung ausgeben.\n" +"\n" + +#: src/wx-console/wxbmainframe.cpp:246 +msgid "&About...\tF1" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:246 +msgid "Show about dialog" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:248 src/wx-console/wxbmainframe.cpp:620 +msgid "Connect to the director" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:249 +msgid "Disconnect" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:249 +msgid "Disconnect of the director" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:251 +msgid "Change of configuration file" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:251 +msgid "Change your default configuration file" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:252 +msgid "Edit your configuration file" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:254 +msgid "E&xit\tAlt-X" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:254 +msgid "Quit this program" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:258 +msgid "&File" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:259 +msgid "&Help" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:267 src/wx-console/main.cpp:124 +#, c-format +msgid "Welcome to bacula bwx-console %s (%s)!\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:283 +msgid "" +"Warning : Unicode is disabled because you are using wxWidgets for GTK+ 1.2.\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:287 +msgid "" +"Warning : There is a problem with wxWidgets for GTK+ 2.0 without Unicode " +"support when handling non-ASCII filenames: Every non-ASCII character in such " +"filenames will be replaced by an interrogation mark.\n" +"If this behaviour disturbs you, please build bwx-console against a Unicode " +"version of wxWidgets for GTK+ 2.0.\n" +"---\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:291 +#: src/wx-console/wxbhistorytextctrl.cpp:82 +#: src/wx-console/wxbhistorytextctrl.cpp:153 +msgid "Type your command below:" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:298 +msgid "Send" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:375 src/wx-console/wxbmainframe.cpp:387 +msgid "Error while parsing command line arguments, using defaults.\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:376 src/wx-console/wxbmainframe.cpp:388 +msgid "Usage: bwx-console [-c configfile] [-w tmp]\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:417 +#, c-format +msgid "" +"It seems that it is the first time you run bwx-console.\n" +"This file (%s) has been choosen as default configuration file.\n" +"Do you want to edit it? (if you click No you will have to select another " +"file)" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:419 +msgid "First run" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:436 +#, c-format +msgid "" +"Unable to read %s\n" +"Error: %s\n" +"Do you want to choose another one? (Press no to edit this file)" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:438 +msgid "Unable to read configuration file" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:450 +msgid "Please choose a configuration file to use" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:463 +msgid "This configuration file has been successfully read, use it as default?" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:464 +msgid "Configuration file read successfully" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:474 +#, c-format +msgid "Using this configuration file: %s\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:479 +msgid "Connecting to the director..." +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:494 +msgid "Failed to unregister a data parser !" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:502 +msgid "Quitting.\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:517 +msgid "" +"Welcome to Bacula bwx-console.\n" +"Written by Nicolas Boichat \n" +"Copyright (C), 2005-2007 Free Software Foundation Europe, e.V.\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:521 +msgid "About Bacula bwx-console" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:527 +msgid "Please choose your default configuration file" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:531 +msgid "Use this configuration file as default?" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:532 +msgid "Configuration file" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:603 +msgid "Console thread terminated." +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:611 +msgid "Connection to the director lost. Quit program?" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:612 +msgid "Connection lost" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:628 +msgid "Connected to the director." +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:651 +msgid "Reconnect" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:652 +msgid "Reconnect to the director" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:666 +msgid "Disconnected of the director." +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:685 src/wx-console/wxbrestorepanel.cpp:710 +msgid "Unexpected question has been received.\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:708 src/wx-console/wxbmainframe.cpp:725 +msgid "bwx-console: unexpected director's question." +msgstr "" + +#: src/wx-console/main.cpp:119 +msgid "Bacula bwx-console" +msgstr "" + +#: src/wx-console/wxbconfigpanel.cpp:205 +msgid "Apply" +msgstr "" + +#: src/wx-console/wxbhistorytextctrl.cpp:117 +msgid "Unknown command." +msgstr "" + +#: src/wx-console/wxbhistorytextctrl.cpp:126 +msgid "Possible completions: " +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:234 +#: src/wx-console/wxbrestorepanel.cpp:1920 +#: src/wx-console/wxbrestorepanel.cpp:1949 +msgid "Enter restore mode" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:237 +msgid "Cancel restore" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:263 +#: src/wx-console/wxbrestorepanel.cpp:317 +msgid "Add" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:265 +#: src/wx-console/wxbrestorepanel.cpp:319 +msgid "Remove" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:267 +#: src/wx-console/wxbrestorepanel.cpp:321 +msgid "Refresh" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:286 +msgid "M" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:290 +msgid "Filename" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:302 +msgid "Perm." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:335 +#: src/wx-console/wxbrestorepanel.cpp:348 +#: src/wx-console/wxbrestorepanel.cpp:503 +#: src/wx-console/wxbrestorepanel.cpp:513 +#: src/wx-console/wxbrestorepanel.cpp:516 +#: src/wx-console/wxbrestorepanel.cpp:1784 +#: src/wx-console/wxbrestorepanel.cpp:1870 +msgid "Job Name" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:337 +#: src/wx-console/wxbrestorepanel.cpp:353 +#: src/wx-console/wxbrestorepanel.cpp:455 +#: src/wx-console/wxbrestorepanel.cpp:456 +#: src/wx-console/wxbrestorepanel.cpp:466 +#: src/wx-console/wxbrestorepanel.cpp:467 +#: src/wx-console/wxbrestorepanel.cpp:1139 +#: src/wx-console/wxbrestorepanel.cpp:1212 +#: src/wx-console/wxbrestorepanel.cpp:1822 +#: src/wx-console/wxbrestorepanel.cpp:1824 +#: src/wx-console/wxbrestorepanel.cpp:1885 +msgid "Fileset" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:340 +#: src/wx-console/wxbrestorepanel.cpp:1206 +#: src/wx-console/wxbrestorepanel.cpp:1222 +#: src/wx-console/wxbrestorepanel.cpp:1224 +#: src/wx-console/wxbrestorepanel.cpp:1232 +#: src/wx-console/wxbrestorepanel.cpp:1234 +#: src/wx-console/wxbrestorepanel.cpp:1253 +#: src/wx-console/wxbrestorepanel.cpp:1260 +#: src/wx-console/wxbrestorepanel.cpp:1812 +#: src/wx-console/wxbrestorepanel.cpp:1823 +#: src/wx-console/wxbrestorepanel.cpp:1944 +msgid "Before" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:342 +msgid "Please configure parameters concerning files to restore :" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:351 +#: src/wx-console/wxbrestorepanel.cpp:1878 +msgid "always" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:351 +msgid "if newer" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:351 +msgid "if older" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:351 +#: src/wx-console/wxbrestorepanel.cpp:1881 +msgid "never" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:359 +msgid "Please configure parameters concerning files restoration :" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:427 +msgid "Getting parameters list." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:435 +msgid "Error : no clients returned by the director." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:459 +msgid "Error : no filesets returned by the director." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:483 +msgid "Error : no storage returned by the director." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:506 +#: src/wx-console/wxbrestorepanel.cpp:530 +msgid "Error : no jobs returned by the director." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:516 +msgid "RestoreFiles" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:551 +msgid "Please configure your restore parameters." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:562 +msgid "Building restore tree..." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:605 +msgid "Error while starting restore: " +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:695 +msgid "" +"Right click on a file or on a directory, or double-click on its mark to add " +"it to the restore list." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:732 +#: src/wx-console/wxbrestorepanel.cpp:754 +msgid "bwx-console: unexpected restore question." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:765 +msgid " files selected to be restored." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:770 +msgid " file selected to be restored." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:777 +#, c-format +msgid "Please configure your restore (%ld files selected to be restored)..." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:787 +msgid "Restore failed : no file selected.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:788 +msgid "Restore failed : no file selected." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:798 +msgid "Restoring, please wait..." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:811 +msgid "Job queued. JobId=" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:813 +msgid "Restore queued, jobid=" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:817 +msgid "Job failed." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:818 +msgid "Restore failed, please look at messages.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:819 +msgid "Restore failed, please look at messages in console." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:825 +#: src/wx-console/wxbrestorepanel.cpp:826 +msgid "Failed to retrieve jobid.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:852 +msgid "" +"Restore is scheduled in more than two minutes, bwx-console will not wait for " +"its completion.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:853 +msgid "" +"Restore is scheduled in more than two minutes, bwx-console will not wait for " +"its completion." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:879 +msgid "Restore job created, but not yet running." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:884 +#, c-format +msgid "Restore job running, please wait (%ld of %ld files restored)..." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:888 +msgid "Restore job terminated successfully." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:889 +msgid "Restore job terminated successfully.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:894 +msgid "Restore job terminated in error, see messages in console." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:895 +msgid "Restore job terminated in error, see messages.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:900 +msgid "Restore job reported a non-fatal error." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:904 +msgid "Restore job reported a fatal error." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:909 +msgid "Restore job cancelled by user." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:910 +msgid "Restore job cancelled by user.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:915 +msgid "Restore job is waiting on File daemon." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:919 +msgid "Restore job is waiting for new media." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:923 +msgid "Restore job is waiting for storage resource." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:927 +msgid "Restore job is waiting for job resource." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:931 +msgid "Restore job is waiting for Client resource." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:935 +msgid "Restore job is waiting for maximum jobs." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:939 +msgid "Restore job is waiting for start time." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:943 +msgid "Restore job is waiting for higher priority jobs to finish." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:992 +msgid "" +"The restore job has not been started within one minute, bwx-console will not " +"wait for its completion anymore.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:993 +msgid "" +"The restore job has not been started within one minute, bwx-console will not " +"wait for its completion anymore." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1003 +msgid "Restore done successfully.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1004 +msgid "Restore done successfully." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1075 +msgid "Applying restore configuration changes..." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1126 +msgid "Failed to find the selected client." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1141 +msgid "Failed to find the selected fileset." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1156 +msgid "Failed to find the selected storage." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1173 +#: src/wx-console/wxbrestorepanel.cpp:1859 +msgid "Run Restore job" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1189 +msgid "Restore configuration changes were applied." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1198 +msgid "Restore cancelled.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1199 +msgid "Restore cancelled." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1221 +msgid "No results to list." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1223 +msgid "No backup found for this client." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1230 +msgid "ERROR" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1231 +msgid "Query failed" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1233 +msgid "Cannot get previous backups list, see console." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1869 +msgid "JobName:" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1873 +msgid "Where:" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1876 +msgid "Replace:" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1879 +msgid "ifnewer" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1880 +msgid "ifolder" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1884 +msgid "FileSet:" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:2001 +msgid "Restoring..." +msgstr "Wiederherstellung läuft..." + +#: src/wx-console/console_thread.cpp:121 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Director \"%s\" in config file.\n" +"At least one CA certificate store is required.\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:128 +msgid "" +"No Director resource defined in config file.\n" +"Without that I don't how to speak to the Director :-(\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:147 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Console \"%s\" in config file.\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:169 +msgid "Error while initializing windows sockets...\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:185 +msgid "Error while cleaning up windows sockets...\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:224 +msgid "Error while initializing library." +msgstr "" + +#: src/wx-console/console_thread.cpp:248 +msgid "Cryptographic library initialization failed.\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:252 +msgid "Please correct configuration file.\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:294 +msgid "Error : Library not initialized\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:305 +msgid "Error : No configuration file loaded\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:315 +msgid "Connecting...\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:331 +msgid "Error : No director defined in config file.\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:343 +msgid "Multiple directors found in your config file.\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:352 +#, c-format +msgid "Please choose a director (1-%d): " +msgstr "" + +#: src/wx-console/console_thread.cpp:424 +msgid "Failed to connect to the director\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:434 +msgid "Connected\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:491 +msgid "<< Unexpected signal received : " +msgstr "" + +#: src/wx-console/console_thread.cpp:511 +msgid "Connection terminated\n" +msgstr "" + +#: src/wx-console/wxbconfigfileeditor.cpp:65 +msgid "Config file editor" +msgstr "" + +#: src/wx-console/wxbconfigfileeditor.cpp:75 +#, fuzzy +msgid "# Bacula bwx-console Configuration File\n" +msgstr "Bitte die Konfigurationsdatei korrigieren: %s\n" + +#: src/wx-console/wxbconfigfileeditor.cpp:111 +msgid "Save and close" +msgstr "" + +#: src/wx-console/wxbconfigfileeditor.cpp:112 +msgid "Close without saving" +msgstr "" + +#: src/wx-console/wxbconfigfileeditor.cpp:139 +#, c-format +msgid "Unable to write to %s\n" +msgstr "" + +#: src/wx-console/wxbconfigfileeditor.cpp:140 +msgid "Error while saving" +msgstr "" + +#: src/win32/libwin32/service.cpp:109 +msgid "RegisterServiceCtlHandler failed" +msgstr "" + +#: src/win32/libwin32/service.cpp:110 +msgid "Failure contacting the Service Handler" +msgstr "" + +#: src/win32/libwin32/service.cpp:121 +msgid "Service start report failed" +msgstr "" + +#: src/win32/libwin32/service.cpp:174 +msgid "StartServiceCtrlDispatcher failed." +msgstr "" + +#: src/win32/libwin32/service.cpp:181 +msgid "KERNEL32.DLL not found: Bacula service not started" +msgstr "" + +#: src/win32/libwin32/service.cpp:191 +msgid "Registry service not found: Bacula service not started" +msgstr "" + +#: src/win32/libwin32/service.cpp:193 +#, fuzzy +msgid "Registry service entry point not found" +msgstr "Pool Ressource \"%s\" nicht gefunden.\n" + +#: src/win32/libwin32/service.cpp:214 +msgid "Report Service failure" +msgstr "" + +#: src/win32/libwin32/service.cpp:245 +msgid "Unable to install the service" +msgstr "" + +#: src/win32/libwin32/service.cpp:253 +msgid "Service command length too long" +msgstr "" + +#: src/win32/libwin32/service.cpp:254 +msgid "Service command length too long. Service not registered." +msgstr "" + +#: src/win32/libwin32/service.cpp:267 +msgid "" +"The Service Control Manager could not be contacted - the service was not " +"installed" +msgstr "" + +#: src/win32/libwin32/service.cpp:290 src/win32/libwin32/service.cpp:319 +#: src/win32/libwin32/service.cpp:366 src/win32/libwin32/service.cpp:373 +#: src/win32/libwin32/service.cpp:377 +msgid "The Bacula service: " +msgstr "" + +#: src/win32/libwin32/service.cpp:297 +msgid "" +"Provides file backup and restore services. Bacula -- the network backup " +"solution." +msgstr "" + +#: src/win32/libwin32/service.cpp:308 +msgid "Cannot write System Registry for " +msgstr "" + +#: src/win32/libwin32/service.cpp:309 +msgid "" +"The System Registry could not be updated - the Bacula service was not " +"installed" +msgstr "" + +#: src/win32/libwin32/service.cpp:318 +msgid "Cannot add Bacula key to System Registry" +msgstr "" + +#: src/win32/libwin32/service.cpp:329 +msgid "The " +msgstr "" + +#: src/win32/libwin32/service.cpp:384 +msgid "A existing Bacula service: " +msgstr "" + +#: src/win32/libwin32/service.cpp:392 +msgid "" +"The service Manager could not be contacted - the Bacula service was not " +"removed" +msgstr "" + +#: src/win32/libwin32/service.cpp:404 +msgid "" +"Could not find registry entry.\n" +"Service probably not registerd - the Bacula service was not removed" +msgstr "" + +#: src/win32/libwin32/service.cpp:410 +msgid "Could not delete Registry key for " +msgstr "" + +#: src/win32/libwin32/service.cpp:420 +msgid "Bacula could not be contacted, probably not running" +msgstr "" + +#: src/win32/libwin32/service.cpp:427 +msgid "The Bacula service has been removed" +msgstr "" + +#: src/win32/libwin32/service.cpp:468 +msgid "SetServiceStatus failed" +msgstr "" + +#: src/win32/libwin32/service.cpp:494 +#, c-format +msgid "" +"\n" +"\n" +"%s error: %ld at %s:%d" +msgstr "" + +#: src/win32/libwin32/service.cpp:570 +#, c-format +msgid "Locked by: %s, duration: %ld seconds\n" +msgstr "" + +#: src/win32/libwin32/service.cpp:574 +#, c-format +msgid "No longer locked\n" +msgstr "" + +#: src/win32/libwin32/service.cpp:578 +msgid "Could not lock database" +msgstr "" + +#: src/win32/libwin32/main.cpp:237 +msgid "Bad Command Line Option" +msgstr "" + +#, fuzzy +#~ msgid "" +#~ ") %s %s %s\n" +#~ "\n" +#~ "Usage: bconsole [-s] [-c config_file] [-d debug_level]\n" +#~ " -c set configuration file to file\n" +#~ " -dnn set debug level to nn\n" +#~ " -n no conio\n" +#~ " -s no signals\n" +#~ " -t test - read configuration and exit\n" +#~ " -? print this message.\n" +#~ "\n" +#~ msgstr "" +#~ "\n" +#~ "Version: %s (%s)\n" +#~ "\n" +#~ "Usage: dird [-f -s] [-c config_file] [-d debug_level] [config_file]\n" +#~ " -c setze Konfigurationsdatei auf Datei\n" +#~ " -dnn setze debug level auf nn\n" +#~ " -f starte im Vordergrund (für debugging Zwecke)\n" +#~ " -g groupid\n" +#~ " -r starte jetzt\n" +#~ " -s no signals\n" +#~ " -t test - Konfiguration Lesen und beenden\n" +#~ " -u userid\n" +#~ " -v ausführliche Benutzer Meldungen\n" +#~ " -? diese Meldung ausgeben.\n" +#~ "\n" + +#, fuzzy +#~ msgid "" +#~ "Wanted to append to Volume \"%s\", but device %s is busy writing on \"%s" +#~ "\" .\n" +#~ msgstr "" +#~ "Wollte Volume \"%s\"erzeugen, aber , but it already exists. Trying " +#~ "again.\n" + +#, fuzzy +#~ msgid "Unable to get Volume record: ERR=%s" +#~ msgstr "Konnte Job Eintrag nicht holen. ERR=%s\n" + +#~ msgid "Invalid MediaId found.\n" +#~ msgstr "Ungültige MediaId gefunden.\n" diff --git a/Branch-2.2/bacula/po/en@boldquot.header b/Branch-2.2/bacula/po/en@boldquot.header new file mode 100644 index 0000000000..fedb6a06d1 --- /dev/null +++ b/Branch-2.2/bacula/po/en@boldquot.header @@ -0,0 +1,25 @@ +# All this catalog "translates" are quotation characters. +# The msgids must be ASCII and therefore cannot contain real quotation +# characters, only substitutes like grave accent (0x60), apostrophe (0x27) +# and double quote (0x22). These substitutes look strange; see +# http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html +# +# This catalog translates grave accent (0x60) and apostrophe (0x27) to +# left single quotation mark (U+2018) and right single quotation mark (U+2019). +# It also translates pairs of apostrophe (0x27) to +# left single quotation mark (U+2018) and right single quotation mark (U+2019) +# and pairs of quotation mark (0x22) to +# left double quotation mark (U+201C) and right double quotation mark (U+201D). +# +# When output to an UTF-8 terminal, the quotation characters appear perfectly. +# When output to an ISO-8859-1 terminal, the single quotation marks are +# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to +# grave/acute accent (by libiconv), and the double quotation marks are +# transliterated to 0x22. +# When output to an ASCII terminal, the single quotation marks are +# transliterated to apostrophes, and the double quotation marks are +# transliterated to 0x22. +# +# This catalog furthermore displays the text between the quotation marks in +# bold face, assuming the VT100/XTerm escape sequences. +# diff --git a/Branch-2.2/bacula/po/en@quot.header b/Branch-2.2/bacula/po/en@quot.header new file mode 100644 index 0000000000..a9647fc35c --- /dev/null +++ b/Branch-2.2/bacula/po/en@quot.header @@ -0,0 +1,22 @@ +# All this catalog "translates" are quotation characters. +# The msgids must be ASCII and therefore cannot contain real quotation +# characters, only substitutes like grave accent (0x60), apostrophe (0x27) +# and double quote (0x22). These substitutes look strange; see +# http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html +# +# This catalog translates grave accent (0x60) and apostrophe (0x27) to +# left single quotation mark (U+2018) and right single quotation mark (U+2019). +# It also translates pairs of apostrophe (0x27) to +# left single quotation mark (U+2018) and right single quotation mark (U+2019) +# and pairs of quotation mark (0x22) to +# left double quotation mark (U+201C) and right double quotation mark (U+201D). +# +# When output to an UTF-8 terminal, the quotation characters appear perfectly. +# When output to an ISO-8859-1 terminal, the single quotation marks are +# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to +# grave/acute accent (by libiconv), and the double quotation marks are +# transliterated to 0x22. +# When output to an ASCII terminal, the single quotation marks are +# transliterated to apostrophes, and the double quotation marks are +# transliterated to 0x22. +# diff --git a/Branch-2.2/bacula/po/es.po b/Branch-2.2/bacula/po/es.po new file mode 100644 index 0000000000..855b7c7ed9 --- /dev/null +++ b/Branch-2.2/bacula/po/es.po @@ -0,0 +1,15931 @@ +# Spanish translations for branch package +# Traducciones al español para el paquete branch. +# Copyright (C) 2006 Free Software Foundation Europe e.V. +# This file is distributed under the same license as the branch package. +# , 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: branch 1.38\n" +"Report-Msgid-Bugs-To: bacula-devel@lists.sourceforge.net\n" +"POT-Creation-Date: 2007-08-10 23:23+0200\n" +"PO-Revision-Date: 2006-04-13 08:14+0200\n" +"Last-Translator: \n" +"Language-Team: Spanish\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: src/cats/bdb.c:161 +msgid "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n" +msgstr "" + +#: src/cats/bdb.c:162 +msgid "WARNING!!!! The Internal Database is NOT OPERATIONAL!\n" +msgstr "" + +#: src/cats/bdb.c:163 +msgid "You should use SQLite, PostgreSQL, or MySQL\n" +msgstr "" + +#: src/cats/bdb.c:185 src/cats/mysql.c:152 src/cats/postgresql.c:161 +#: src/cats/sqlite.c:160 +#, c-format +msgid "Unable to initialize DB lock. ERR=%s\n" +msgstr "" + +#: src/cats/bdb.c:195 +#, c-format +msgid "Unable to open Catalog DB control file %s: ERR=%s\n" +msgstr "" + +#: src/cats/bdb.c:250 +#, c-format +msgid "Error reading catalog DB control file. ERR=%s\n" +msgstr "" + +#: src/cats/bdb.c:253 +#, c-format +msgid "" +"Error, catalog DB control file wrong version. Wanted %d, got %d\n" +"Please reinitialize the working directory.\n" +msgstr "" + +#: src/cats/bdb_update.c:88 src/cats/bdb_update.c:119 +#, c-format +msgid "Error updating DB Job file. ERR=%s\n" +msgstr "" + +#: src/cats/bdb_update.c:158 src/cats/bdb_update.c:194 +#, c-format +msgid "Error updating DB Media file. ERR=%s\n" +msgstr "" + +#: src/cats/mysql.c:82 +msgid "A user name for MySQL must be supplied.\n" +msgstr "" + +#: src/cats/mysql.c:190 +#, c-format +msgid "" +"Unable to connect to MySQL server.\n" +"Database=%s User=%s\n" +"MySQL connect failed either server not running or your authorization is " +"incorrect.\n" +msgstr "" + +#: src/cats/mysql.c:367 src/cats/postgresql.c:304 src/cats/sqlite.c:351 +#, c-format +msgid "Query failed: %s: ERR=%s\n" +msgstr "" + +#: src/cats/postgresql.c:85 +msgid "A user name for PostgreSQL must be supplied.\n" +msgstr "" + +#: src/cats/postgresql.c:148 +msgid "" +"PostgreSQL configuration problem. PostgreSQL library is not thread safe. " +"Connot continue.\n" +msgstr "" + +#: src/cats/postgresql.c:198 +#, c-format +msgid "" +"Unable to connect to PostgreSQL server.\n" +"Database=%s User=%s\n" +"It is probably not running or your password is incorrect.\n" +msgstr "" + +#: src/cats/postgresql.c:590 +#, c-format +msgid "error fetching currval: %s\n" +msgstr "" + +#: src/cats/postgresql.c:682 src/cats/postgresql.c:729 +#, c-format +msgid "error ending batch mode: %s\n" +msgstr "" + +#: src/cats/sql.c:139 +#, c-format +msgid "" +"query %s failed:\n" +"%s\n" +msgstr "" + +#: src/cats/sql.c:161 +#, c-format +msgid "" +"insert %s failed:\n" +"%s\n" +msgstr "" + +#: src/cats/sql.c:175 +#, c-format +msgid "Insertion problem: affected_rows=%s\n" +msgstr "" + +#: src/cats/sql.c:195 +#, c-format +msgid "" +"update %s failed:\n" +"%s\n" +msgstr "" + +#: src/cats/sql.c:205 +#, c-format +msgid "Update failed: affected_rows=%s for %s\n" +msgstr "" + +#: src/cats/sql.c:226 +#, c-format +msgid "" +"delete %s failed:\n" +"%s\n" +msgstr "" + +#: src/cats/sql.c:252 src/cats/sql.c:259 src/cats/sql_create.c:1018 +#: src/cats/sql_get.c:185 src/cats/sql_get.c:236 src/cats/sql_get.c:604 +#: src/cats/sql_get.c:680 src/cats/sql_get.c:951 +#, c-format +msgid "error fetching row: %s\n" +msgstr "" + +#: src/cats/sql.c:369 src/dird/catreq.c:404 src/dird/catreq.c:478 +#: src/dird/fd_cmds.c:638 src/dird/fd_cmds.c:696 +#, c-format +msgid "Attribute create error. %s" +msgstr "" + +#: src/cats/sql.c:450 +#, c-format +msgid "Path length is zero. File=%s\n" +msgstr "" + +#: src/cats/sql.c:494 +msgid "No results to list.\n" +msgstr "" + +#: src/cats/sql_create.c:95 +#, c-format +msgid "Create DB Job record %s failed. ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:146 +#, c-format +msgid "Create JobMedia record %s failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:155 +#, c-format +msgid "Update Media record %s failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:185 +#, c-format +msgid "pool record %s already exists\n" +msgstr "" + +#: src/cats/sql_create.c:212 +#, c-format +msgid "Create db Pool record %s failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:243 +#, c-format +msgid "Device record %s already exists\n" +msgstr "" + +#: src/cats/sql_create.c:259 +#, c-format +msgid "Create db Device record %s failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:292 +#, c-format +msgid "More than one Storage record!: %d\n" +msgstr "" + +#: src/cats/sql_create.c:297 +#, c-format +msgid "error fetching Storage row: %s\n" +msgstr "" + +#: src/cats/sql_create.c:317 +#, c-format +msgid "Create DB Storage record %s failed. ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:349 +#, c-format +msgid "mediatype record %s already exists\n" +msgstr "" + +#: src/cats/sql_create.c:365 +#, c-format +msgid "Create db mediatype record %s failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:400 +#, c-format +msgid "Volume \"%s\" already exists.\n" +msgstr "" + +#: src/cats/sql_create.c:445 +#, c-format +msgid "Create DB Media record %s failed. ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:493 +#, c-format +msgid "More than one Client!: %d\n" +msgstr "" + +#: src/cats/sql_create.c:498 +#, c-format +msgid "error fetching Client row: %s\n" +msgstr "" + +#: src/cats/sql_create.c:525 +#, c-format +msgid "Create DB Client record %s failed. ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:568 +#, c-format +msgid "Create DB Counters record %s failed. ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:601 +#, c-format +msgid "More than one FileSet!: %d\n" +msgstr "" + +#: src/cats/sql_create.c:606 +#, c-format +msgid "error fetching FileSet row: ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:636 +#, c-format +msgid "Create DB FileSet record %s failed. ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:850 src/dird/job.c:131 src/dird/ua_output.c:628 +#, c-format +msgid "Could not open database \"%s\".\n" +msgstr "" + +#: src/cats/sql_create.c:873 src/cats/sql_create.c:914 +#, c-format +msgid "Attempt to put non-attributes into catalog. Stream=%d\n" +msgstr "" + +#: src/cats/sql_create.c:978 +#, c-format +msgid "Create db File record %s failed. ERR=%s" +msgstr "" + +#: src/cats/sql_create.c:1011 src/cats/sql_get.c:229 +#, c-format +msgid "More than one Path!: %s for path: %s\n" +msgstr "" + +#: src/cats/sql_create.c:1042 +#, c-format +msgid "Create db Path record %s failed. ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:1075 +#, c-format +msgid "More than one Filename! %s for file: %s\n" +msgstr "" + +#: src/cats/sql_create.c:1081 +#, c-format +msgid "Error fetching row for file=%s: ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:1097 +#, c-format +msgid "Create db Filename record %s failed. ERR=%s\n" +msgstr "" + +#: src/cats/sql_delete.c:80 +#, c-format +msgid "No pool record %s exists\n" +msgstr "" + +#: src/cats/sql_delete.c:85 +#, c-format +msgid "Expecting one pool record, got %d\n" +msgstr "" + +#: src/cats/sql_delete.c:91 +#, c-format +msgid "Error fetching row %s\n" +msgstr "" + +#: src/cats/sql_find.c:98 src/cats/sql_find.c:127 +#, c-format +msgid "" +"Query error for start time request: ERR=%s\n" +"CMD=%s\n" +msgstr "" + +#: src/cats/sql_find.c:104 +msgid "No prior Full backup Job record found.\n" +msgstr "" + +#: src/cats/sql_find.c:116 +#, c-format +msgid "Unknown level=%d\n" +msgstr "" + +#: src/cats/sql_find.c:133 +#, c-format +msgid "" +"No Job record found: ERR=%s\n" +"CMD=%s\n" +msgstr "" + +#: src/cats/sql_find.c:232 +#, c-format +msgid "Unknown Job level=%d\n" +msgstr "" + +#: src/cats/sql_find.c:242 +#, c-format +msgid "No Job found for: %s.\n" +msgstr "" + +#: src/cats/sql_find.c:253 +#, c-format +msgid "No Job found for: %s\n" +msgstr "" + +#: src/cats/sql_find.c:332 +#, c-format +msgid "Request for Volume item %d greater than max %d or less than 1\n" +msgstr "" + +#: src/cats/sql_find.c:347 +#, c-format +msgid "No Volume record found for item %d.\n" +msgstr "" + +#: src/cats/sql_get.c:135 +#, c-format +msgid "get_file_record want 1 got rows=%d\n" +msgstr "" + +#: src/cats/sql_get.c:140 +#, c-format +msgid "Error fetching row: %s\n" +msgstr "" + +#: src/cats/sql_get.c:148 +#, c-format +msgid "File record for PathId=%s FilenameId=%s not found.\n" +msgstr "" + +#: src/cats/sql_get.c:154 +msgid "File record not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:179 +#, c-format +msgid "More than one Filename!: %s for file: %s\n" +msgstr "" + +#: src/cats/sql_get.c:189 +#, c-format +msgid "Get DB Filename record %s found bad record: %d\n" +msgstr "" + +#: src/cats/sql_get.c:195 +#, c-format +msgid "Filename record: %s not found.\n" +msgstr "" + +#: src/cats/sql_get.c:199 +#, c-format +msgid "Filename record: %s not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:240 +#, c-format +msgid "Get DB path record %s found bad record: %s\n" +msgstr "" + +#: src/cats/sql_get.c:253 +#, c-format +msgid "Path record: %s not found.\n" +msgstr "" + +#: src/cats/sql_get.c:257 +#, c-format +msgid "Path record: %s not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:294 +#, c-format +msgid "No Job found for JobId %s\n" +msgstr "" + +#: src/cats/sql_get.c:363 src/cats/sql_get.c:419 +#, c-format +msgid "No volumes found for JobId=%d\n" +msgstr "" + +#: src/cats/sql_get.c:369 src/cats/sql_get.c:430 +#, c-format +msgid "Error fetching row %d: ERR=%s\n" +msgstr "" + +#: src/cats/sql_get.c:383 +#, c-format +msgid "No Volume for JobId %d found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:520 +#, c-format +msgid "Pool id select failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_get.c:557 +#, c-format +msgid "Client id select failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_get.c:599 +#, c-format +msgid "More than one Pool!: %s\n" +msgstr "" + +#: src/cats/sql_get.c:641 +msgid "Pool record not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:675 +#, c-format +msgid "More than one Client!: %s\n" +msgstr "" + +#: src/cats/sql_get.c:692 src/cats/sql_get.c:696 +msgid "Client record not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:721 +#, c-format +msgid "More than one Counter!: %d\n" +msgstr "" + +#: src/cats/sql_get.c:726 +#, c-format +msgid "error fetching Counter row: %s\n" +msgstr "" + +#: src/cats/sql_get.c:746 +#, c-format +msgid "Counter record: %s not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:782 +#, c-format +msgid "Error got %s FileSets but expected only one!\n" +msgstr "" + +#: src/cats/sql_get.c:787 +#, c-format +msgid "FileSet record \"%s\" not found.\n" +msgstr "" + +#: src/cats/sql_get.c:797 +msgid "FileSet record not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:855 +#, c-format +msgid "Media id select failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_get.c:893 +#, c-format +msgid "query dbids failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_get.c:946 +#, c-format +msgid "More than one Volume!: %s\n" +msgstr "" + +#: src/cats/sql_get.c:1001 +#, c-format +msgid "Media record MediaId=%s not found.\n" +msgstr "" + +#: src/cats/sql_get.c:1004 +#, c-format +msgid "Media record for Volume \"%s\" not found.\n" +msgstr "" + +#: src/cats/sql_get.c:1011 +#, c-format +msgid "Media record for MediaId=%u not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:1014 +#, c-format +msgid "Media record for Vol=%s not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_list.c:62 +#, c-format +msgid "Query failed: %s\n" +msgstr "" + +#: src/cats/sqlite.c:174 +#, c-format +msgid "Database %s does not exist, please create it.\n" +msgstr "" + +#: src/cats/sqlite.c:204 +#, c-format +msgid "Unable to open Database=%s. ERR=%s\n" +msgstr "" + +#: src/cats/sqlite.c:205 src/lib/bnet_server.c:391 +msgid "unknown" +msgstr "" + +#: src/dird/admin.c:63 +#, c-format +msgid "Start Admin JobId %d, Job=%s\n" +msgstr "" + +#: src/dird/admin.c:89 src/dird/backup.c:355 src/dird/migrate.c:1077 +#, c-format +msgid "Error getting Job record for Job report: ERR=%s" +msgstr "" + +#: src/dird/admin.c:97 +msgid "Admin OK" +msgstr "" + +#: src/dird/admin.c:101 +msgid "*** Admin Error ***" +msgstr "" + +#: src/dird/admin.c:105 +msgid "Admin Canceled" +msgstr "" + +#: src/dird/admin.c:109 src/dird/backup.c:405 src/dird/restore.c:279 +#, c-format +msgid "Inappropriate term code: %c\n" +msgstr "" + +#: src/dird/admin.c:115 +msgid "Bacula " +msgstr "" + +#: src/dird/admin.c:115 src/console/console.c:114 +#, c-format +msgid " (" +msgstr "" + +#: src/dird/admin.c:115 +#, c-format +msgid "" +"): %s\n" +" JobId: %d\n" +" Job: %s\n" +" Start time: %s\n" +" End time: %s\n" +" Termination: %s\n" +"\n" +msgstr "" + +#: src/dird/authenticate.c:80 src/dird/authenticate.c:81 +#: src/tray-monitor/authenticate.c:132 +#, c-format +msgid "Error sending Hello to Storage daemon. ERR=%s\n" +msgstr "" + +#: src/dird/authenticate.c:106 +msgid "Director and Storage daemon passwords or names not the same.\n" +msgstr "" + +#: src/dird/authenticate.c:108 +#, c-format +msgid "" +"Director unable to authenticate with Storage daemon at \"%s:%d\". Possible " +"causes:\n" +"Passwords or names not the same or\n" +"Maximum Concurrent Jobs exceeded on the SD or\n" +"SD networking messed up (restart daemon).\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" + +#: src/dird/authenticate.c:120 src/console/authenticate.c:114 +#: src/filed/authenticate.c:251 src/stored/authenticate.c:131 +#: src/stored/authenticate.c:232 src/wx-console/authenticate.c:127 +msgid "" +"Authorization problem: Remote server did not advertise required TLS " +"support.\n" +msgstr "" + +#: src/dird/authenticate.c:127 src/console/authenticate.c:121 +#: src/filed/authenticate.c:147 src/filed/authenticate.c:259 +#: src/stored/authenticate.c:139 src/stored/authenticate.c:240 +#: src/wx-console/authenticate.c:133 +msgid "Authorization problem: Remote server requires TLS.\n" +msgstr "" + +#: src/dird/authenticate.c:136 +#, c-format +msgid "TLS negotiation failed with SD at \"%s:%d\"\n" +msgstr "" + +#: src/dird/authenticate.c:145 +#, c-format +msgid "bdird set configuration file to file\n" +" -dnn set debug level to nn\n" +" -f run in foreground (for debugging)\n" +" -g groupid\n" +" -r run now\n" +" -s no signals\n" +" -t test - read configuration and exit\n" +" -u userid\n" +" -v verbose user messages\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/dird/dird.c:224 src/console/console.c:426 src/filed/filed.c:182 +#: src/gnome2-console/console.c:286 src/stored/stored.c:210 +msgid "Cryptography library initialization failed.\n" +msgstr "" + +#: src/dird/dird.c:228 src/dird/dird.c:234 src/dird/dird.c:474 +#: src/dird/dird.c:477 src/console/console.c:430 src/filed/filed.c:187 +#: src/gnome2-console/console.c:290 src/stored/stored.c:214 +#, c-format +msgid "Please correct configuration file: %s\n" +msgstr "" + +#: src/dird/dird.c:460 +msgid "Too many open reload requests. Request ignored.\n" +msgstr "" + +#: src/dird/dird.c:475 +msgid "Out of reload table entries. Giving up.\n" +msgstr "" + +#: src/dird/dird.c:478 +msgid "Resetting previous configuration.\n" +msgstr "" + +#: src/dird/dird.c:541 +#, c-format +msgid "" +"No Director resource defined in %s\n" +"Without that I don't know who I am :-(\n" +msgstr "" + +#: src/dird/dird.c:549 src/filed/filed.c:281 +#, c-format +msgid "No Messages resource defined in %s\n" +msgstr "" + +#: src/dird/dird.c:554 +#, c-format +msgid "Only one Director resource permitted in %s\n" +msgstr "" + +#: src/dird/dird.c:563 src/dird/dird.c:764 src/dird/dird.c:816 +#: src/dird/dird.c:920 src/console/console.c:657 src/console/console.c:686 +#: src/filed/filed.c:288 src/filed/filed.c:446 +#: src/gnome2-console/console.c:153 src/gnome2-console/console.c:182 +#: src/stored/stored.c:332 src/wx-console/console_thread.cpp:114 +#: src/wx-console/console_thread.cpp:140 +msgid "TLS required but not configured in Bacula.\n" +msgstr "" + +#: src/dird/dird.c:569 src/filed/filed.c:455 src/stored/stored.c:384 +#, c-format +msgid "\"TLS Certificate\" file not defined for Director \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird.c:575 src/filed/filed.c:461 src/stored/stored.c:390 +#, c-format +msgid "\"TLS Key\" file not defined for Director \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird.c:581 src/filed/filed.c:467 src/stored/stored.c:396 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Director \"%s\" in %s. At least one CA certificate store is required when " +"using \"TLS Verify Peer\".\n" +msgstr "" + +#: src/dird/dird.c:600 src/filed/filed.c:486 src/stored/stored.c:415 +#, c-format +msgid "Failed to initialize TLS context for Director \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird.c:608 +#, c-format +msgid "No Job records defined in %s\n" +msgstr "" + +#: src/dird/dird.c:666 src/dird/dird.c:679 +#, c-format +msgid "Hey something is wrong. p=0x%lu\n" +msgstr "" + +#: src/dird/dird.c:738 +#, c-format +msgid "\"%s\" directive in Job \"%s\" resource is required, but not found.\n" +msgstr "" + +#: src/dird/dird.c:745 +msgid "Too many items in Job resource\n" +msgstr "" + +#: src/dird/dird.c:749 +#, c-format +msgid "No storage specified in Job \"%s\" nor in Pool.\n" +msgstr "" + +#: src/dird/dird.c:771 +#, c-format +msgid "\"TLS Certificate\" file not defined for Console \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird.c:777 +#, c-format +msgid "\"TLS Key\" file not defined for Console \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird.c:783 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Console \"%s\" in %s. At least one CA certificate store is required when " +"using \"TLS Verify Peer\".\n" +msgstr "" + +#: src/dird/dird.c:800 src/dird/dird.c:840 src/filed/filed.c:312 +#, c-format +msgid "Failed to initialize TLS context for File daemon \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird.c:823 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"File daemon \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird.c:872 src/dird/dird.c:874 +#, c-format +msgid "Could not open Catalog \"%s\", database \"%s\".\n" +msgstr "" + +#: src/dird/dird.c:877 +#, c-format +msgid "%s" +msgstr "" + +#: src/dird/dird.c:926 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Storage \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird.c:942 src/stored/stored.c:370 +#, c-format +msgid "Failed to initialize TLS context for Storage \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird_conf.c:508 src/tray-monitor/tray_conf.c:168 +#, c-format +msgid "No %s resource defined\n" +msgstr "" + +#: src/dird/dird_conf.c:517 +#, c-format +msgid "Director: name=%s MaxJobs=%d FDtimeout=%s SDtimeout=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:522 +#, c-format +msgid " query_file=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:525 src/dird/dird_conf.c:545 src/dird/dird_conf.c:559 +#: src/dird/dird_conf.c:607 src/dird/dird_conf.c:611 src/dird/dird_conf.c:615 +#: src/dird/dird_conf.c:633 src/dird/dird_conf.c:650 src/dird/dird_conf.c:654 +#: src/dird/dird_conf.c:658 src/dird/dird_conf.c:662 src/dird/dird_conf.c:666 +#: src/dird/dird_conf.c:679 src/dird/dird_conf.c:880 +msgid " --> " +msgstr "" + +#: src/dird/dird_conf.c:530 +#, c-format +msgid "Console: name=%s SSL=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:535 +#, c-format +msgid "Counter: name=%s min=%d max=%d cur=%d wrapcntr=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:540 +#, c-format +msgid "Counter: name=%s min=%d max=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:551 +#, c-format +msgid "Client: name=%s address=%s FDport=%d MaxJobs=%u\n" +msgstr "" + +#: src/dird/dird_conf.c:554 +#, c-format +msgid " JobRetention=%s FileRetention=%s AutoPrune=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:566 +#, c-format +msgid "" +"Device: name=%s ok=%d num_writers=%d max_writers=%d\n" +" reserved=%d open=%d append=%d read=%d labeled=%d offline=%d autochgr=%" +"d\n" +" poolid=%s volname=%s MediaType=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:576 +#, c-format +msgid "" +"Storage: name=%s address=%s SDport=%d MaxJobs=%u\n" +" DeviceName=%s MediaType=%s StorageId=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:585 +#, c-format +msgid "" +"Catalog: name=%s address=%s DBport=%d db_name=%s\n" +" db_user=%s MutliDBConn=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:593 +#, c-format +msgid "%s: name=%s JobType=%d level=%s Priority=%d Enabled=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:594 src/dird/ua_cmds.c:478 src/dird/ua_prune.c:365 +#: src/dird/ua_run.c:266 src/dird/ua_select.c:263 src/dird/ua_select.c:286 +msgid "Job" +msgstr "" + +#: src/dird/dird_conf.c:594 +msgid "JobDefs" +msgstr "" + +#: src/dird/dird_conf.c:598 +#, c-format +msgid "" +" MaxJobs=%u Resched=%d Times=%d Interval=%s Spool=%d WritePartAfterJob=%" +"d\n" +msgstr "" + +#: src/dird/dird_conf.c:604 +#, c-format +msgid " SelectionType=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:619 +#, c-format +msgid " --> Where=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:622 +#, c-format +msgid " --> RegexWhere=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:625 +#, c-format +msgid " --> Bootstrap=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:628 +#, c-format +msgid " --> WriteBootstrap=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:640 src/lib/runscript.c:261 +msgid " --> RunScript\n" +msgstr "" + +#: src/dird/dird_conf.c:641 src/lib/runscript.c:262 +#, c-format +msgid " --> Command=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:642 src/lib/runscript.c:263 +#, c-format +msgid " --> Target=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:643 src/lib/runscript.c:264 +#, c-format +msgid " --> RunOnSuccess=%u\n" +msgstr "" + +#: src/dird/dird_conf.c:644 src/lib/runscript.c:265 +#, c-format +msgid " --> RunOnFailure=%u\n" +msgstr "" + +#: src/dird/dird_conf.c:645 src/lib/runscript.c:266 +#, c-format +msgid " --> FailJobOnError=%u\n" +msgstr "" + +#: src/dird/dird_conf.c:646 src/lib/runscript.c:267 +#, c-format +msgid " --> RunWhen=%u\n" +msgstr "" + +#: src/dird/dird_conf.c:672 +#, c-format +msgid " --> Run=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:676 +#, c-format +msgid " --> SelectionPattern=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:686 +#, c-format +msgid "FileSet: name=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:763 src/dird/dird_conf.c:842 +#, c-format +msgid "Schedule: name=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:768 +#, c-format +msgid " --> Run Level=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:769 +msgid " hour=" +msgstr "" + +#: src/dird/dird_conf.c:778 +msgid " mday=" +msgstr "" + +#: src/dird/dird_conf.c:787 +msgid " month=" +msgstr "" + +#: src/dird/dird_conf.c:796 +msgid " wday=" +msgstr "" + +#: src/dird/dird_conf.c:805 +msgid " wom=" +msgstr "" + +#: src/dird/dird_conf.c:814 +msgid " woy=" +msgstr "" + +#: src/dird/dird_conf.c:823 +#, c-format +msgid " mins=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:825 src/dird/dird_conf.c:829 src/dird/dird_conf.c:833 +msgid " --> " +msgstr "" + +#: src/dird/dird_conf.c:846 +#, c-format +msgid "Pool: name=%s PoolType=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:848 +#, c-format +msgid " use_cat=%d use_once=%d cat_files=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:851 +#, c-format +msgid " max_vols=%d auto_prune=%d VolRetention=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:854 +#, c-format +msgid " VolUse=%s recycle=%d LabelFormat=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:858 +#, c-format +msgid " CleaningPrefix=%s LabelType=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:860 +#, c-format +msgid " RecyleOldest=%d PurgeOldest=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:863 +#, c-format +msgid " MaxVolJobs=%d MaxVolFiles=%d MaxVolBytes=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:867 +#, c-format +msgid " MigTime=%s MigHiBytes=%s MigLoBytes=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:872 +#, c-format +msgid " NextPool=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:875 +#, c-format +msgid " RecyclePool=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:886 +#, c-format +msgid "Messages: name=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:888 +#, c-format +msgid " mailcmd=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:890 +#, c-format +msgid " opcmd=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:893 src/tray-monitor/tray_conf.c:199 +#, c-format +msgid "Unknown resource type %d in dump_resource.\n" +msgstr "" + +#: src/dird/dird_conf.c:1199 src/tray-monitor/tray_conf.c:257 +#, c-format +msgid "Unknown resource type %d in free_resource.\n" +msgstr "" + +#: src/dird/dird_conf.c:1231 src/dird/dird_conf.c:1246 +#: src/dird/dird_conf.c:1842 src/console/console_conf.c:257 +#: src/filed/filed_conf.c:347 src/gnome2-console/console_conf.c:258 +#: src/tray-monitor/tray_conf.c:288 src/wx-console/console_conf.c:265 +#, c-format +msgid "%s item is required in %s resource, but not found.\n" +msgstr "" + +#: src/dird/dird_conf.c:1237 src/lib/parse_conf.c:234 +#: src/tray-monitor/tray_conf.c:294 +#, c-format +msgid "Too many items in %s resource\n" +msgstr "" + +#: src/dird/dird_conf.c:1277 +#, c-format +msgid "Cannot find Pool resource %s\n" +msgstr "" + +#: src/dird/dird_conf.c:1286 +#, c-format +msgid "Cannot find Console resource %s\n" +msgstr "" + +#: src/dird/dird_conf.c:1292 src/filed/filed_conf.c:367 +#: src/stored/stored_conf.c:584 +#, c-format +msgid "Cannot find Director resource %s\n" +msgstr "" + +#: src/dird/dird_conf.c:1299 src/stored/stored_conf.c:590 +#, c-format +msgid "Cannot find Storage resource %s\n" +msgstr "" + +#: src/dird/dird_conf.c:1308 +#, c-format +msgid "Cannot find Job resource %s\n" +msgstr "" + +#: src/dird/dird_conf.c:1357 +#, c-format +msgid "Cannot find Counter resource %s\n" +msgstr "" + +#: src/dird/dird_conf.c:1365 src/filed/filed_conf.c:373 +#, c-format +msgid "Cannot find Client resource %s\n" +msgstr "" + +#: src/dird/dird_conf.c:1378 +#, c-format +msgid "Cannot find Schedule resource %s\n" +msgstr "" + +#: src/dird/dird_conf.c:1383 src/dird/dird_conf.c:1443 +#: src/tray-monitor/tray_conf.c:314 src/tray-monitor/tray_conf.c:352 +#, c-format +msgid "Unknown resource type %d in save_resource.\n" +msgstr "" + +#: src/dird/dird_conf.c:1458 +#, c-format +msgid "Name item is required in %s resource, but not found.\n" +msgstr "" + +#: src/dird/dird_conf.c:1466 src/console/console_conf.c:320 +#: src/filed/filed_conf.c:432 src/gnome2-console/console_conf.c:327 +#: src/tray-monitor/tray_conf.c:372 src/wx-console/console_conf.c:328 +#, c-format +msgid "Attempt to define second %s resource named \"%s\" is not permitted.\n" +msgstr "" + +#: src/dird/dird_conf.c:1471 +#, c-format +msgid "Inserting %s res: %s index=%d pass=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:1543 +#, c-format +msgid "Expected a Migration Job Type keyword, got: %s" +msgstr "" + +#: src/dird/dird_conf.c:1569 +#, c-format +msgid "Expected a Job Type keyword, got: %s" +msgstr "" + +#: src/dird/dird_conf.c:1593 +#, c-format +msgid "Expected a Job Level keyword, got: %s" +msgstr "" + +#: src/dird/dird_conf.c:1613 +#, c-format +msgid "Expected a Restore replacement option, got: %s" +msgstr "" + +#: src/dird/dird_conf.c:1661 src/dird/dird_conf.c:1771 +#: src/lib/parse_conf.c:723 src/lib/parse_conf.c:738 +#, c-format +msgid "Expect %s, got: %s" +msgstr "" + +#: src/dird/dird_conf.c:1683 src/lib/parse_conf.c:482 +#, c-format +msgid "Could not find config Resource %s referenced on line %d : %s\n" +msgstr "" + +#: src/dird/dird_conf.c:1811 src/dird/inc_conf.c:645 +#, c-format +msgid "Expecting open brace. Got %s" +msgstr "" + +#: src/dird/dird_conf.c:1819 src/dird/inc_conf.c:360 src/dird/inc_conf.c:660 +#, c-format +msgid "Expecting keyword, got: %s\n" +msgstr "" + +#: src/dird/dird_conf.c:1825 src/dird/inc_conf.c:368 src/dird/inc_conf.c:666 +#: src/lib/parse_conf.c:874 +#, c-format +msgid "expected an equals, got: %s" +msgstr "" + +#: src/dird/dird_conf.c:1836 src/dird/inc_conf.c:378 src/dird/inc_conf.c:675 +#, c-format +msgid "Keyword %s not permitted in this resource" +msgstr "" + +#: src/dird/expand.c:255 +#, c-format +msgid "Count not update counter %s: ERR=%s\n" +msgstr "" + +#: src/dird/expand.c:427 +#, c-format +msgid "Cannot create var context: ERR=%s\n" +msgstr "" + +#: src/dird/expand.c:432 +#, c-format +msgid "Cannot set var callback: ERR=%s\n" +msgstr "" + +#: src/dird/expand.c:438 +#, c-format +msgid "Cannot set var operate: ERR=%s\n" +msgstr "" + +#: src/dird/expand.c:444 src/dird/expand.c:459 +#, c-format +msgid "Cannot unescape string: ERR=%s\n" +msgstr "" + +#: src/dird/expand.c:452 +#, c-format +msgid "Cannot expand expression \"%s\": ERR=%s\n" +msgstr "" + +#: src/dird/expand.c:470 +#, c-format +msgid "Cannot destroy var context: ERR=%s\n" +msgstr "" + +#: src/dird/fd_cmds.c:94 src/tray-monitor/tray-monitor.c:914 +msgid "File daemon" +msgstr "" + +#: src/dird/fd_cmds.c:125 +#, c-format +msgid "File daemon \"%s\" rejected Job command: %s\n" +msgstr "" + +#: src/dird/fd_cmds.c:138 +#, c-format +msgid "Error updating Client record. ERR=%s\n" +msgstr "" + +#: src/dird/fd_cmds.c:143 +#, c-format +msgid "FD gave bad response to JobId command: %s\n" +msgstr "" + +#: src/dird/fd_cmds.c:165 src/dird/fd_cmds.c:201 +msgid ", since=" +msgstr "" + +#: src/dird/fd_cmds.c:185 +msgid "No prior or suitable Full backup found in catalog. Doing FULL backup.\n" +msgstr "" + +#: src/dird/fd_cmds.c:186 src/dird/fd_cmds.c:194 +#, c-format +msgid " (upgraded from %s)" +msgstr "" + +#: src/dird/fd_cmds.c:192 +#, c-format +msgid "Prior failed job found in catalog. Upgrading to %s.\n" +msgstr "" + +#: src/dird/fd_cmds.c:253 +#, c-format +msgid "Unimplemented backup level %d %c\n" +msgstr "" + +#: src/dird/fd_cmds.c:356 src/filed/job.c:640 +#, c-format +msgid "Cannot run program: %s. ERR=%s\n" +msgstr "" + +#: src/dird/fd_cmds.c:367 src/dird/fd_cmds.c:392 src/dird/fd_cmds.c:406 +msgid ">filed: write error on socket\n" +msgstr "" + +#: src/dird/fd_cmds.c:373 +#, c-format +msgid "Error running program: %s. ERR=%s\n" +msgstr "" + +#: src/dird/fd_cmds.c:382 +#, c-format +msgid "Cannot open included file: %s. ERR=%s\n" +msgstr "" + +#: src/dird/fd_cmds.c:477 src/filed/job.c:1831 +#, c-format +msgid "Could not open bootstrap file %s: ERR=%s\n" +msgstr "" + +#: src/dird/fd_cmds.c:583 +#, c-format +msgid "Client \"%s\" RunScript failed.\n" +msgstr "" + +#: src/dird/fd_cmds.c:619 +#, c-format +msgid "" +" | ] -- cancel a job" +msgstr "" + +#: src/dird/ua_cmds.c:108 +msgid "create DB Pool from resource" +msgstr "" + +#: src/dird/ua_cmds.c:109 +msgid "delete [pool= | media volume=]" +msgstr "" + +#: src/dird/ua_cmds.c:110 +msgid "disable -- disable a job" +msgstr "" + +#: src/dird/ua_cmds.c:111 +msgid "enable -- enable a job" +msgstr "" + +#: src/dird/ua_cmds.c:112 +msgid "performs FileSet estimate, listing gives full listing" +msgstr "" + +#: src/dird/ua_cmds.c:113 src/console/console.c:171 +msgid "exit = quit" +msgstr "" + +#: src/dird/ua_cmds.c:114 +msgid "gui [on|off] -- non-interactive gui mode" +msgstr "" + +#: src/dird/ua_cmds.c:115 src/stored/btape.c:2540 +msgid "print this command" +msgstr "" + +#: src/dird/ua_cmds.c:116 +msgid "" +"list [pools | jobs | jobtotals | media | files ]; " +"from catalog" +msgstr "" + +#: src/dird/ua_cmds.c:117 +msgid "label a tape" +msgstr "" + +#: src/dird/ua_cmds.c:118 +msgid "full or long list like list command" +msgstr "" + +#: src/dird/ua_cmds.c:119 +msgid "print current memory usage" +msgstr "" + +#: src/dird/ua_cmds.c:120 +msgid "messages" +msgstr "" + +#: src/dird/ua_cmds.c:121 +msgid "mount " +msgstr "" + +#: src/dird/ua_cmds.c:122 +msgid "prune expired records from catalog" +msgstr "" + +#: src/dird/ua_cmds.c:123 +msgid "purge records from catalog" +msgstr "" + +#: src/dird/ua_cmds.c:124 +msgid "python control commands" +msgstr "" + +#: src/dird/ua_cmds.c:125 src/console/console.c:164 +msgid "quit" +msgstr "" + +#: src/dird/ua_cmds.c:126 +msgid "query catalog" +msgstr "" + +#: src/dird/ua_cmds.c:127 +msgid "restore files" +msgstr "" + +#: src/dird/ua_cmds.c:128 +msgid "relabel a tape" +msgstr "" + +#: src/dird/ua_cmds.c:129 +msgid "release " +msgstr "" + +#: src/dird/ua_cmds.c:130 +msgid "reload conf file" +msgstr "" + +#: src/dird/ua_cmds.c:131 +msgid "run " +msgstr "" + +#: src/dird/ua_cmds.c:132 +msgid "status [storage | client]=" +msgstr "" + +#: src/dird/ua_cmds.c:133 +msgid "sets debug level" +msgstr "" + +#: src/dird/ua_cmds.c:134 +msgid "sets new client address -- if authorized" +msgstr "" + +#: src/dird/ua_cmds.c:135 +msgid "show (resource records) [jobs | pools | ... | all]" +msgstr "" + +#: src/dird/ua_cmds.c:136 +msgid "use SQL to query catalog" +msgstr "" + +#: src/dird/ua_cmds.c:137 src/console/console.c:167 +msgid "print current time" +msgstr "" + +#: src/dird/ua_cmds.c:138 +msgid "turn on/off trace to file" +msgstr "" + +#: src/dird/ua_cmds.c:139 +msgid "unmount " +msgstr "" + +#: src/dird/ua_cmds.c:140 +msgid "umount for old-time Unix guys" +msgstr "" + +#: src/dird/ua_cmds.c:141 +msgid "update Volume, Pool or slots" +msgstr "" + +#: src/dird/ua_cmds.c:142 +msgid "use catalog xxx" +msgstr "" + +#: src/dird/ua_cmds.c:143 +msgid "does variable expansion" +msgstr "" + +#: src/dird/ua_cmds.c:144 +msgid "print Director version" +msgstr "" + +#: src/dird/ua_cmds.c:145 +msgid "" +"wait until no jobs are running [ | | " +"]" +msgstr "" + +#: src/dird/ua_cmds.c:186 +#, c-format +msgid "%s: is an invalid command.\n" +msgstr "" + +#: src/dird/ua_cmds.c:227 +msgid "" +"You probably don't want to be using this command since it\n" +"creates database records without labeling the Volumes.\n" +"You probably want to use the \"label\" command.\n" +"\n" +msgstr "" + +#: src/dird/ua_cmds.c:246 +#, c-format +msgid "Pool already has maximum volumes=%d\n" +msgstr "" + +#: src/dird/ua_cmds.c:248 +msgid "Enter new maximum (zero for unlimited): " +msgstr "" + +#: src/dird/ua_cmds.c:269 +#, c-format +msgid "Enter number of Volumes to create. 0=>fixed name. Max=%d: " +msgstr "" + +#: src/dird/ua_cmds.c:275 +#, c-format +msgid "The number must be between 0 and %d\n" +msgstr "" + +#: src/dird/ua_cmds.c:282 +msgid "Enter Volume name: " +msgstr "" + +#: src/dird/ua_cmds.c:286 +msgid "Enter base volume name: " +msgstr "" + +#: src/dird/ua_cmds.c:295 src/dird/ua_label.c:645 +msgid "Volume name too long.\n" +msgstr "" + +#: src/dird/ua_cmds.c:299 src/dird/ua_label.c:651 src/lib/edit.c:459 +msgid "Volume name must be at least one character long.\n" +msgstr "" + +#: src/dird/ua_cmds.c:308 +msgid "Enter the starting number: " +msgstr "" + +#: src/dird/ua_cmds.c:313 +msgid "Start number must be greater than zero.\n" +msgstr "" + +#: src/dird/ua_cmds.c:324 +msgid "Enter slot (0 for none): " +msgstr "" + +#: src/dird/ua_cmds.c:328 +msgid "InChanger? yes/no: " +msgstr "" + +#: src/dird/ua_cmds.c:356 +#, c-format +msgid "%d Volumes created in pool %s\n" +msgstr "" + +#: src/dird/ua_cmds.c:372 src/dird/ua_cmds.c:1035 +msgid "Turn on or off? " +msgstr "" + +#: src/dird/ua_cmds.c:403 +#, c-format +msgid "JobId %s is not running. Use Job name to cancel inactive jobs.\n" +msgstr "" + +#: src/dird/ua_cmds.c:412 src/dird/ua_cmds.c:422 +#, c-format +msgid "Warning Job %s is not running. Continuing anyway ...\n" +msgstr "" + +#: src/dird/ua_cmds.c:432 src/dird/ua_cmds.c:708 src/dird/ua_cmds.c:754 +msgid "Unauthorized command from this console.\n" +msgstr "" + +#: src/dird/ua_cmds.c:457 src/filed/status.c:201 src/stored/status.c:447 +msgid "No Jobs running.\n" +msgstr "" + +#: src/dird/ua_cmds.c:459 +msgid "None of your jobs are running.\n" +msgstr "" + +#: src/dird/ua_cmds.c:464 +msgid "Select Job:\n" +msgstr "" + +#: src/dird/ua_cmds.c:473 +#, c-format +msgid "JobId=%s Job=%s" +msgstr "" + +#: src/dird/ua_cmds.c:478 +msgid "Choose Job to cancel" +msgstr "" + +#: src/dird/ua_cmds.c:483 +#, c-format +msgid "" +"Cancel: %s\n" +"\n" +"%s" +msgstr "" + +#: src/dird/ua_cmds.c:484 +msgid "Confirm cancel?" +msgstr "" + +#: src/dird/ua_cmds.c:490 +msgid "Confirm cancel (yes/no): " +msgstr "" + +#: src/dird/ua_cmds.c:498 src/dird/ua_cmds.c:749 +#, c-format +msgid "Job \"%s\" not found.\n" +msgstr "" + +#: src/dird/ua_cmds.c:595 +#, c-format +msgid "" +"Can't set %s RecyclePool to %s, %s is not in database.\n" +"Try to update it with 'update pool=%s'\n" +msgstr "" + +#: src/dird/ua_cmds.c:662 +#, c-format +msgid "" +"Error: Pool %s already exists.\n" +"Use update to change it.\n" +msgstr "" + +#: src/dird/ua_cmds.c:673 +#, c-format +msgid "Pool %s created.\n" +msgstr "" + +#: src/dird/ua_cmds.c:690 +msgid "Python interpreter restarted.\n" +msgstr "" + +#: src/dird/ua_cmds.c:692 src/dird/ua_cmds.c:1275 +msgid "Nothing done.\n" +msgstr "" + +#: src/dird/ua_cmds.c:715 src/dird/ua_run.c:1224 +#, c-format +msgid "Client \"%s\" not found.\n" +msgstr "" + +#: src/dird/ua_cmds.c:724 +#, c-format +msgid "Client \"%s\" address set to %s\n" +msgstr "" + +#: src/dird/ua_cmds.c:758 +#, c-format +msgid "Job \"%s\" %sabled\n" +msgstr "" + +#: src/dird/ua_cmds.c:785 src/dird/ua_dotcmds.c:177 src/dird/ua_status.c:311 +#, c-format +msgid "Connecting to Storage daemon %s at %s:%d\n" +msgstr "" + +#: src/dird/ua_cmds.c:791 src/dird/ua_dotcmds.c:183 src/dird/ua_status.c:322 +msgid "Connected to storage daemon\n" +msgstr "" + +#: src/dird/ua_cmds.c:811 src/dird/ua_cmds.c:1162 src/dird/ua_dotcmds.c:203 +#: src/dird/ua_status.c:349 +#, c-format +msgid "Connecting to Client %s at %s:%d\n" +msgstr "" + +#: src/dird/ua_cmds.c:814 src/dird/ua_cmds.c:1165 src/dird/ua_dotcmds.c:206 +msgid "Failed to connect to Client.\n" +msgstr "" + +#: src/dird/ua_cmds.c:930 +msgid "Enter new debug level: " +msgstr "" + +#: src/dird/ua_cmds.c:996 src/dird/ua_dotcmds.c:282 +msgid "Available daemons are: \n" +msgstr "" + +#: src/dird/ua_cmds.c:997 src/dird/ua_dotcmds.c:283 +msgid "Director" +msgstr "" + +#: src/dird/ua_cmds.c:998 src/dird/ua_dotcmds.c:284 src/dird/ua_run.c:265 +#: src/dird/ua_select.c:168 src/wx-console/wxbrestorepanel.cpp:339 +#: src/wx-console/wxbrestorepanel.cpp:355 +#: src/wx-console/wxbrestorepanel.cpp:479 +#: src/wx-console/wxbrestorepanel.cpp:480 +#: src/wx-console/wxbrestorepanel.cpp:490 +#: src/wx-console/wxbrestorepanel.cpp:491 +#: src/wx-console/wxbrestorepanel.cpp:1154 +#: src/wx-console/wxbrestorepanel.cpp:1818 +#: src/wx-console/wxbrestorepanel.cpp:1889 +msgid "Storage" +msgstr "" + +#: src/dird/ua_cmds.c:999 src/dird/ua_dotcmds.c:285 src/dird/ua_run.c:271 +#: src/dird/ua_select.c:311 src/dird/ua_select.c:420 +#: src/wx-console/wxbrestorepanel.cpp:336 +#: src/wx-console/wxbrestorepanel.cpp:354 +#: src/wx-console/wxbrestorepanel.cpp:431 +#: src/wx-console/wxbrestorepanel.cpp:432 +#: src/wx-console/wxbrestorepanel.cpp:442 +#: src/wx-console/wxbrestorepanel.cpp:443 +#: src/wx-console/wxbrestorepanel.cpp:690 +#: src/wx-console/wxbrestorepanel.cpp:1124 +#: src/wx-console/wxbrestorepanel.cpp:1211 +#: src/wx-console/wxbrestorepanel.cpp:1811 +#: src/wx-console/wxbrestorepanel.cpp:1813 +#: src/wx-console/wxbrestorepanel.cpp:1887 +#: src/wx-console/wxbrestorepanel.cpp:1943 +msgid "Client" +msgstr "" + +#: src/dird/ua_cmds.c:1000 +msgid "All" +msgstr "" + +#: src/dird/ua_cmds.c:1001 +msgid "Select daemon type to set debug level" +msgstr "" + +#: src/dird/ua_cmds.c:1091 src/dird/ua_cmds.c:1130 src/dird/ua_cmds.c:1798 +#, c-format +msgid "No authorization for Job \"%s\"\n" +msgstr "" + +#: src/dird/ua_cmds.c:1101 +#, c-format +msgid "No authorization for FileSet \"%s\"\n" +msgstr "" + +#: src/dird/ua_cmds.c:1113 src/dird/ua_run.c:217 +#, c-format +msgid "Level %s not valid.\n" +msgstr "" + +#: src/dird/ua_cmds.c:1126 +msgid "No job specified.\n" +msgstr "" + +#: src/dird/ua_cmds.c:1170 +msgid "Error sending include list.\n" +msgstr "" + +#: src/dird/ua_cmds.c:1175 +msgid "Error sending exclude list.\n" +msgstr "" + +#: src/dird/ua_cmds.c:1261 +msgid "" +"In general it is not a good idea to delete either a\n" +"Pool or a Volume since they may contain data.\n" +"\n" +msgstr "" + +#: src/dird/ua_cmds.c:1264 +msgid "Choose catalog item to delete" +msgstr "" + +#: src/dird/ua_cmds.c:1332 +msgid "Enter JobId to delete: " +msgstr "" + +#: src/dird/ua_cmds.c:1367 +#, c-format +msgid "Job %s and associated records deleted from the catalog.\n" +msgstr "" + +#: src/dird/ua_cmds.c:1381 +#, c-format +msgid "" +"\n" +"This command will delete volume %s\n" +"and all Jobs saved on that volume from the Catalog\n" +msgstr "" + +#: src/dird/ua_cmds.c:1385 +#, c-format +msgid "Are you sure you want to delete Volume \"%s\"? (yes/no): " +msgstr "" + +#: src/dird/ua_cmds.c:1409 +#, c-format +msgid "Are you sure you want to delete Pool \"%s\"? (yes/no): " +msgstr "" + +#: src/dird/ua_cmds.c:1523 +#, c-format +msgid "Using Catalog name=%s DB=%s\n" +msgstr "" + +#: src/dird/ua_cmds.c:1583 +msgid "ERR: Can't open db\n" +msgstr "" + +#: src/dird/ua_cmds.c:1619 +msgid "ERR: Job was not found\n" +msgstr "" + +#: src/dird/ua_cmds.c:1695 src/dird/ua_tree.c:664 src/stored/btape.c:2587 +#, c-format +msgid "" +" Command Description\n" +" ======= ===========\n" +msgstr "" + +#: src/dird/ua_cmds.c:1697 +#, c-format +msgid " %-10s %s\n" +msgstr "" + +#: src/dird/ua_cmds.c:1699 +msgid "" +"\n" +"When at a prompt, entering a period cancels the command.\n" +"\n" +msgstr "" + +#: src/dird/ua_cmds.c:1716 src/dird/ua_status.c:263 src/stored/status.c:79 +#, c-format +msgid "%s Version: %s (%s) %s %s %s\n" +msgstr "" + +#: src/dird/ua_cmds.c:1759 src/dird/ua_cmds.c:1786 src/dird/ua_cmds.c:1808 +#, c-format +msgid "No authorization for Catalog \"%s\"\n" +msgstr "" + +#: src/dird/ua_cmds.c:1776 +#, c-format +msgid "No authorization for Client \"%s\"\n" +msgstr "" + +#: src/dird/ua_cmds.c:1831 src/dird/ua_select.c:221 +msgid "Could not find a Catalog resource\n" +msgstr "" + +#: src/dird/ua_cmds.c:1844 +#, c-format +msgid "Could not open catalog database \"%s\".\n" +msgstr "" + +#: src/dird/ua_cmds.c:1854 +#, c-format +msgid "Using Catalog \"%s\"\n" +msgstr "" + +#: src/dird/ua_dotcmds.c:138 +msgid ": is an invalid command.\n" +msgstr "" + +#: src/dird/ua_dotcmds.c:238 src/dird/ua_dotcmds.c:288 +msgid "The Director will segment fault.\n" +msgstr "" + +#: src/dird/ua_dotcmds.c:286 +msgid "Select daemon type to make die" +msgstr "" + +#: src/dird/ua_dotcmds.c:453 +msgid "Access to specified Client or FileSet not allowed.\n" +msgstr "" + +#: src/dird/ua_dotcmds.c:458 src/dird/ua_dotcmds.c:494 +#: src/dird/ua_restore.c:882 src/dird/ua_restore.c:911 +#: src/dird/ua_restore.c:932 +#, c-format +msgid "Query failed: %s. ERR=%s\n" +msgstr "" + +#: src/dird/ua_dotcmds.c:489 +msgid "query keyword not found.\n" +msgstr "" + +#: src/dird/ua_input.c:95 +msgid "Enter slot" +msgstr "" + +#: src/dird/ua_input.c:99 src/dird/ua_input.c:105 +#, c-format +msgid "Expected a positive integer, got: %s\n" +msgstr "" + +#: src/dird/ua_input.c:123 src/dird/ua_run.c:446 src/dird/ua_update.c:245 +#: src/dird/ua_update.c:265 src/dird/ua_update.c:609 +#: src/stored/parse_bsr.c:779 src/tools/dbcheck.c:1202 +msgid "yes" +msgstr "" + +#: src/dird/ua_input.c:127 src/dird/ua_update.c:245 src/dird/ua_update.c:265 +#: src/dird/ua_update.c:609 src/stored/parse_bsr.c:779 +msgid "no" +msgstr "" + +#: src/dird/ua_input.c:162 +msgid "Invalid response. You must answer yes or no.\n" +msgstr "" + +#: src/dird/ua_input.c:185 +msgid "Invalid Enabled value, it must be yes, no, archived, 0, 1, or 2\n" +msgstr "" + +#: src/dird/ua_label.c:102 +msgid "Negative numbers not permitted\n" +msgstr "" + +#: src/dird/ua_label.c:108 +msgid "Range end is not integer.\n" +msgstr "" + +#: src/dird/ua_label.c:113 +msgid "Range start is not an integer.\n" +msgstr "" + +#: src/dird/ua_label.c:119 +msgid "Range end not bigger than start.\n" +msgstr "" + +#: src/dird/ua_label.c:125 +msgid "Input value is not an integer.\n" +msgstr "" + +#: src/dird/ua_label.c:131 +msgid "Values must be be greater than zero.\n" +msgstr "" + +#: src/dird/ua_label.c:135 +msgid "Slot too large.\n" +msgstr "" + +#: src/dird/ua_label.c:184 src/dird/ua_label.c:349 src/dird/ua_run.c:1199 +msgid "command line" +msgstr "" + +#: src/dird/ua_label.c:202 src/dird/ua_label.c:513 +msgid "No slots in changer to scan.\n" +msgstr "" + +#: src/dird/ua_label.c:214 src/dird/ua_label.c:524 +msgid "No Volumes found to label, or no barcodes.\n" +msgstr "" + +#: src/dird/ua_label.c:224 +#, c-format +msgid "Slot %d greater than max %d ignored.\n" +msgstr "" + +#: src/dird/ua_label.c:253 +#, c-format +msgid "No VolName for Slot=%d InChanger set to zero.\n" +msgstr "" + +#: src/dird/ua_label.c:271 +#, c-format +msgid "Catalog record for Volume \"%s\" updated to reference slot %d.\n" +msgstr "" + +#: src/dird/ua_label.c:275 +#, c-format +msgid "Catalog record for Volume \"%s\" is up to date.\n" +msgstr "" + +#: src/dird/ua_label.c:281 +#, c-format +msgid "Volume \"%s\" not found in catalog. Slot=%d InChanger set to zero.\n" +msgstr "" + +#: src/dird/ua_label.c:378 +#, c-format +msgid "" +"Volume \"%s\" has VolStatus %s. It must be Purged or Recycled before " +"relabeling.\n" +msgstr "" + +#: src/dird/ua_label.c:394 +msgid "Enter new Volume name: " +msgstr "" + +#: src/dird/ua_label.c:407 +#, c-format +msgid "Media record for new Volume \"%s\" already exists.\n" +msgstr "" + +#: src/dird/ua_label.c:425 +msgid "Enter slot (0 or Enter for none): " +msgstr "" + +#: src/dird/ua_label.c:453 +#, c-format +msgid "Delete of Volume \"%s\" failed. ERR=%s" +msgstr "" + +#: src/dird/ua_label.c:456 +#, c-format +msgid "Old volume \"%s\" deleted from catalog.\n" +msgstr "" + +#: src/dird/ua_label.c:467 +#, c-format +msgid "Requesting to mount %s ...\n" +msgstr "" + +#: src/dird/ua_label.c:489 +msgid "Do not forget to mount the drive!!!\n" +msgstr "" + +#: src/dird/ua_label.c:529 +msgid "" +"The following Volumes will be labeled:\n" +"Slot Volume\n" +"==============\n" +msgstr "" + +#: src/dird/ua_label.c:538 +msgid "Do you want to label these Volumes? (yes|no): " +msgstr "" + +#: src/dird/ua_label.c:559 +#, c-format +msgid "Media record for Slot %d Volume \"%s\" already exists.\n" +msgstr "" + +#: src/dird/ua_label.c:565 +#, c-format +msgid "Error setting InChanger: ERR=%s" +msgstr "" + +#: src/dird/ua_label.c:588 +#, c-format +msgid "Maximum pool Volumes=%d reached.\n" +msgstr "" + +#: src/dird/ua_label.c:595 +#, c-format +msgid "Catalog record for cleaning tape \"%s\" successfully created.\n" +msgstr "" + +#: src/dird/ua_label.c:602 +#, c-format +msgid "Catalog error on cleaning tape: %s" +msgstr "" + +#: src/dird/ua_label.c:638 +#, c-format +msgid "Illegal character \"%c\" in a volume name.\n" +msgstr "" + +#: src/dird/ua_label.c:685 +#, c-format +msgid "Sending relabel command from \"%s\" to \"%s\" ...\n" +msgstr "" + +#: src/dird/ua_label.c:692 +#, c-format +msgid "Sending label command for Volume \"%s\" Slot %d ...\n" +msgstr "" + +#: src/dird/ua_label.c:733 +#, c-format +msgid "Catalog record for Volume \"%s\", Slot %d successfully created.\n" +msgstr "" + +#: src/dird/ua_label.c:746 +#, c-format +msgid "Label command failed for Volume %s.\n" +msgstr "" + +#: src/dird/ua_label.c:756 +#, c-format +msgid "Connecting to Storage daemon %s at %s:%d ...\n" +msgstr "" + +#: src/dird/ua_label.c:784 +msgid "Could not open SD socket.\n" +msgstr "" + +#: src/dird/ua_label.c:856 src/dird/ua_label.c:866 +#, c-format +msgid "Invalid Slot number: %s\n" +msgstr "" + +#: src/dird/ua_label.c:875 +#, c-format +msgid "Invalid Volume name: %s\n" +msgstr "" + +#: src/dird/ua_label.c:954 +#, c-format +msgid "Device \"%s\" has %d slots.\n" +msgstr "" + +#: src/dird/ua_label.c:1003 +#, c-format +msgid "Pool \"%s\" resource not found for volume \"%s\"!\n" +msgstr "" + +#: src/dird/ua_output.c:73 src/dird/ua_output.c:97 +msgid "ON or OFF keyword missing.\n" +msgstr "" + +#: src/dird/ua_output.c:185 +msgid "Keywords for the show command are:\n" +msgstr "" + +#: src/dird/ua_output.c:191 +#, c-format +msgid "%s resource %s not found.\n" +msgstr "" + +#: src/dird/ua_output.c:194 +#, c-format +msgid "Resource %s not found\n" +msgstr "" + +#: src/dird/ua_output.c:262 +msgid "Hey! DB is NULL\n" +msgstr "" + +#: src/dird/ua_output.c:376 +#, c-format +msgid "Jobid %d used %d Volume(s): %s\n" +msgstr "" + +#: src/dird/ua_output.c:394 +msgid "No Pool specified.\n" +msgstr "" + +#: src/dird/ua_output.c:405 src/dird/ua_select.c:488 +#, c-format +msgid "Error obtaining pool ids. ERR=%s\n" +msgstr "" + +#: src/dird/ua_output.c:415 +#, c-format +msgid "Pool: %s\n" +msgstr "" + +#: src/dird/ua_output.c:431 src/dird/ua_status.c:481 +msgid "Ignoring invalid value for days. Max is 50.\n" +msgstr "" + +#: src/dird/ua_output.c:440 +#, c-format +msgid "Unknown list keyword: %s\n" +msgstr "" + +#: src/dird/ua_output.c:466 +#, c-format +msgid "%s is not a job name.\n" +msgstr "" + +#: src/dird/ua_output.c:477 +#, c-format +msgid "Could not Pool Job %s\n" +msgstr "" + +#: src/dird/ua_output.c:489 +#, c-format +msgid "Could not find next Volume for Job %s (Pool=%s, Level=%s).\n" +msgstr "" + +#: src/dird/ua_output.c:493 +#, c-format +msgid "" +"The next Volume to be used by Job \"%s\" (Pool=%s, Level=%s) will be %s\n" +msgstr "" + +#: src/dird/ua_output.c:503 +#, c-format +msgid "Could not find next Volume for Job %s.\n" +msgstr "" + +#: src/dird/ua_output.c:702 +msgid "You have no messages.\n" +msgstr "" + +#: src/dird/ua_prune.c:132 +msgid "Choose item to prune" +msgstr "" + +#: src/dird/ua_prune.c:156 +#, c-format +msgid "Cannot prune Volume \"%s\" because it is archived.\n" +msgstr "" + +#: src/dird/ua_prune.c:218 +msgid "No Files found to prune.\n" +msgstr "" + +#: src/dird/ua_prune.c:240 +#, c-format +msgid "Pruned Files from %s Jobs for client %s from catalog.\n" +msgstr "" + +#: src/dird/ua_prune.c:364 +#, c-format +msgid "Pruned %d %s for client %s from catalog.\n" +msgstr "" + +#: src/dird/ua_prune.c:365 +msgid "Jobs" +msgstr "" + +#: src/dird/ua_prune.c:367 +msgid "No Jobs found to prune.\n" +msgstr "" + +#: src/dird/ua_purge.c:90 +msgid "" +"\n" +"This command is can be DANGEROUS!!!\n" +"\n" +"It purges (deletes) all Files from a Job,\n" +"JobId, Client or Volume; or it purges (deletes)\n" +"all Jobs from a Client or Volume without regard\n" +"for retention periods. Normally you should use the\n" +"PRUNE command, which respects retention periods.\n" +msgstr "" + +#: src/dird/ua_purge.c:152 +msgid "Choose item to purge" +msgstr "" + +#: src/dird/ua_purge.c:199 +#, c-format +msgid "Begin purging files for Client \"%s\"\n" +msgstr "" + +#: src/dird/ua_purge.c:208 src/dird/ua_purge.c:258 +#, c-format +msgid "No Files found for client %s to purge from %s catalog.\n" +msgstr "" + +#: src/dird/ua_purge.c:211 +#, c-format +msgid "Files for %d Jobs for client \"%s\" purged from %s catalog.\n" +msgstr "" + +#: src/dird/ua_purge.c:249 +#, c-format +msgid "Begin purging jobs from Client \"%s\"\n" +msgstr "" + +#: src/dird/ua_purge.c:261 +#, c-format +msgid "%d Jobs for client %s purged from %s catalog.\n" +msgstr "" + +#: src/dird/ua_purge.c:407 +#, c-format +msgid "" +"\n" +"Volume \"%s\" has VolStatus \"%s\" and cannot be purged.\n" +"The VolStatus must be: Append, Full, Used, or Error to be purged.\n" +msgstr "" + +#: src/dird/ua_purge.c:440 +#, c-format +msgid "%d File%s on Volume \"%s\" purged from catalog.\n" +msgstr "" + +#: src/dird/ua_purge.c:481 +#, c-format +msgid "" +"There are no more Jobs associated with Volume \"%s\". Marking it purged.\n" +msgstr "" + +#: src/dird/ua_purge.c:522 +#, c-format +msgid "Unable move recycled Volume in full Pool \"%s\" MaxVols=%d\n" +msgstr "" + +#: src/dird/ua_purge.c:535 +#, c-format +msgid "All records pruned from Volume \"%s\"; marking it \"Purged\"\n" +msgstr "" + +#: src/dird/ua_purge.c:540 +#, c-format +msgid "Cannot purge Volume with VolStatus=%s\n" +msgstr "" + +#: src/dird/ua_query.c:72 src/findlib/create_file.c:283 +#: src/findlib/create_file.c:383 +#, c-format +msgid "Could not open %s: ERR=%s\n" +msgstr "" + +#: src/dird/ua_query.c:77 +msgid "Available queries:\n" +msgstr "" + +#: src/dird/ua_query.c:84 +msgid "Choose a query" +msgstr "" + +#: src/dird/ua_query.c:98 +msgid "Could not find query.\n" +msgstr "" + +#: src/dird/ua_query.c:116 +msgid "Too many prompts in query, max is 9.\n" +msgstr "" + +#: src/dird/ua_query.c:219 +#, c-format +msgid "Warning prompt %d missing.\n" +msgstr "" + +#: src/dird/ua_query.c:264 +msgid "" +"Entering SQL query mode.\n" +"Terminate each query with a semicolon.\n" +"Terminate query mode with a blank line.\n" +msgstr "" + +#: src/dird/ua_query.c:267 src/dird/ua_query.c:283 +msgid "Enter SQL query: " +msgstr "" + +#: src/dird/ua_query.c:285 +msgid "Add to SQL query: " +msgstr "" + +#: src/dird/ua_query.c:288 +msgid "End query mode.\n" +msgstr "" + +#: src/dird/ua_restore.c:133 +msgid "\"RegexWhere\" specification not authorized.\n" +msgstr "" + +#: src/dird/ua_restore.c:140 +msgid "\"where\" specification not authorized.\n" +msgstr "" + +#: src/dird/ua_restore.c:162 +msgid "" +"No Restore Job Resource found in bacula-dir.conf.\n" +"You must create at least one before running this command.\n" +msgstr "" + +#: src/dird/ua_restore.c:178 +msgid "Restore not done.\n" +msgstr "" + +#: src/dird/ua_restore.c:190 +msgid "Unable to construct a valid BSR. Cannot continue.\n" +msgstr "" + +#: src/dird/ua_restore.c:194 src/dird/ua_restore.c:209 +msgid "No files selected to be restored.\n" +msgstr "" + +#: src/dird/ua_restore.c:202 +msgid "" +"\n" +"1 file selected to be restored.\n" +"\n" +msgstr "" + +#: src/dird/ua_restore.c:205 +#, c-format +msgid "" +"\n" +"%s files selected to be restored.\n" +"\n" +msgstr "" + +#: src/dird/ua_restore.c:224 +msgid "No Client resource found!\n" +msgstr "" + +#: src/dird/ua_restore.c:329 +#, c-format +msgid "Missing value for keyword: %s\n" +msgstr "" + +#: src/dird/ua_restore.c:407 +msgid "List last 20 Jobs run" +msgstr "" + +#: src/dird/ua_restore.c:408 +msgid "List Jobs where a given File is saved" +msgstr "" + +#: src/dird/ua_restore.c:409 +msgid "Enter list of comma separated JobIds to select" +msgstr "" + +#: src/dird/ua_restore.c:410 +msgid "Enter SQL list command" +msgstr "" + +#: src/dird/ua_restore.c:411 +msgid "Select the most recent backup for a client" +msgstr "" + +#: src/dird/ua_restore.c:412 +msgid "Select backup for a client before a specified time" +msgstr "" + +#: src/dird/ua_restore.c:413 +msgid "Enter a list of files to restore" +msgstr "" + +#: src/dird/ua_restore.c:414 +msgid "Enter a list of files to restore before a specified time" +msgstr "" + +#: src/dird/ua_restore.c:415 +msgid "Find the JobIds of the most recent backup for a client" +msgstr "" + +#: src/dird/ua_restore.c:416 +msgid "Find the JobIds for a backup for a client before a specified time" +msgstr "" + +#: src/dird/ua_restore.c:417 +msgid "Enter a list of directories to restore for found JobIds" +msgstr "" + +#: src/dird/ua_restore.c:418 src/dird/ua_status.c:760 src/filed/status.c:256 +#: src/stored/status.c:521 src/wx-console/wxbconfigpanel.cpp:212 +msgid "Cancel" +msgstr "" + +#: src/dird/ua_restore.c:459 +#, c-format +msgid "Unknown keyword: %s\n" +msgstr "" + +#: src/dird/ua_restore.c:488 src/dird/ua_update.c:833 +#, c-format +msgid "Improper date format: %s\n" +msgstr "" + +#: src/dird/ua_restore.c:523 src/dird/ua_select.c:620 +#, c-format +msgid "Error: Pool resource \"%s\" does not exist.\n" +msgstr "" + +#: src/dird/ua_restore.c:528 +#, c-format +msgid "Error: Pool resource \"%s\" access not allowed.\n" +msgstr "" + +#: src/dird/ua_restore.c:544 +msgid "" +"\n" +"First you select one or more JobIds that contain files\n" +"to be restored. You will be presented several methods\n" +"of specifying the JobIds. Then you will be allowed to\n" +"select which files from those JobIds are to be restored.\n" +"\n" +msgstr "" + +#: src/dird/ua_restore.c:556 +msgid "To select the JobIds, you have the following choices:\n" +msgstr "" + +#: src/dird/ua_restore.c:561 +msgid "Select item: " +msgstr "" + +#: src/dird/ua_restore.c:566 src/dird/ua_restore.c:601 +msgid "SQL query not authorized.\n" +msgstr "" + +#: src/dird/ua_restore.c:579 +msgid "Enter Filename (no path):" +msgstr "" + +#: src/dird/ua_restore.c:594 src/dird/ua_restore.c:702 +msgid "Enter JobId(s), comma separated, to restore: " +msgstr "" + +#: src/dird/ua_restore.c:604 +msgid "Enter SQL list command: " +msgstr "" + +#: src/dird/ua_restore.c:638 src/dird/ua_restore.c:661 +msgid "" +"Enter file names with paths, or < to enter a filename\n" +"containing a list of file names with paths, and terminate\n" +"them with a blank line.\n" +msgstr "" + +#: src/dird/ua_restore.c:642 src/dird/ua_restore.c:665 +msgid "Enter full filename: " +msgstr "" + +#: src/dird/ua_restore.c:700 +#, c-format +msgid "You have already selected the following JobIds: %s\n" +msgstr "" + +#: src/dird/ua_restore.c:717 +msgid "" +"Enter full directory names or start the name\n" +"with a < to indicate it is a filename containing a list\n" +"of directories and terminate them with a blank line.\n" +msgstr "" + +#: src/dird/ua_restore.c:721 +msgid "Enter directory name: " +msgstr "" + +#: src/dird/ua_restore.c:752 +msgid "Invalid JobId in list.\n" +msgstr "" + +#: src/dird/ua_restore.c:765 +#, c-format +msgid "Unable to get Job record for JobId=%s: ERR=%s\n" +msgstr "" + +#: src/dird/ua_restore.c:771 +#, c-format +msgid "Access to JobId=%s (Job \"%s\") not authorized. Not selected.\n" +msgstr "" + +#: src/dird/ua_restore.c:784 +msgid "No Jobs selected.\n" +msgstr "" + +#: src/dird/ua_restore.c:788 +#, c-format +msgid "You have selected the following JobIds: %s\n" +msgstr "" + +#: src/dird/ua_restore.c:790 +#, c-format +msgid "You have selected the following JobId: %s\n" +msgstr "" + +#: src/dird/ua_restore.c:800 +msgid "" +"The restored files will the most current backup\n" +"BEFORE the date you specify below.\n" +"\n" +msgstr "" + +#: src/dird/ua_restore.c:803 +msgid "Enter date as YYYY-MM-DD HH:MM:SS :" +msgstr "" + +#: src/dird/ua_restore.c:809 +msgid "Improper date format.\n" +msgstr "" + +#: src/dird/ua_restore.c:830 +#, c-format +msgid "Cannot open file %s: ERR=%s\n" +msgstr "" + +#: src/dird/ua_restore.c:838 src/dird/ua_restore.c:842 +#, c-format +msgid "Error occurred on line %d of file \"%s\"\n" +msgstr "" + +#: src/dird/ua_restore.c:886 src/dird/ua_restore.c:915 +#, c-format +msgid "No database record found for: %s\n" +msgstr "" + +#: src/dird/ua_restore.c:902 +msgid "No JobId specified cannot continue.\n" +msgstr "" + +#: src/dird/ua_restore.c:936 +#, c-format +msgid "No table found: %s\n" +msgstr "" + +#: src/dird/ua_restore.c:1033 +#, c-format +msgid "" +"\n" +"Building directory tree for JobId %s ... " +msgstr "" + +#: src/dird/ua_restore.c:1045 +msgid "" +"\n" +"There were no files inserted into the tree, so file selection\n" +"is not possible.Most likely your retention policy pruned the files\n" +msgstr "" + +#: src/dird/ua_restore.c:1047 +msgid "" +"\n" +"Do you want to restore all the files? (yes|no): " +msgstr "" + +#: src/dird/ua_restore.c:1063 +#, c-format +msgid "" +"\n" +"1 Job, %s files inserted into the tree and marked for extraction.\n" +msgstr "" + +#: src/dird/ua_restore.c:1067 +#, c-format +msgid "" +"\n" +"1 Job, %s files inserted into the tree.\n" +msgstr "" + +#: src/dird/ua_restore.c:1073 +#, c-format +msgid "" +"\n" +"%d Jobs, %s files inserted into the tree and marked for extraction.\n" +msgstr "" + +#: src/dird/ua_restore.c:1077 +#, c-format +msgid "" +"\n" +"%d Jobs, %s files inserted into the tree.\n" +msgstr "" + +#: src/dird/ua_restore.c:1150 +#, c-format +msgid "Error getting FileSet \"%s\": ERR=%s\n" +msgstr "" + +#: src/dird/ua_restore.c:1158 src/dird/ua_select.c:183 +msgid "The defined FileSet resources are:\n" +msgstr "" + +#: src/dird/ua_restore.c:1162 src/dird/ua_run.c:267 src/dird/ua_select.c:191 +msgid "FileSet" +msgstr "" + +#: src/dird/ua_restore.c:1162 src/dird/ua_select.c:191 +msgid "Select FileSet resource" +msgstr "" + +#: src/dird/ua_restore.c:1164 +#, c-format +msgid "No FileSet found for client \"%s\".\n" +msgstr "" + +#: src/dird/ua_restore.c:1170 +#, c-format +msgid "Error getting FileSet record: %s\n" +msgstr "" + +#: src/dird/ua_restore.c:1171 +msgid "" +"This probably means you modified the FileSet.\n" +"Continuing anyway.\n" +msgstr "" + +#: src/dird/ua_restore.c:1186 +#, c-format +msgid "Pool \"%s\" not found, using any pool.\n" +msgstr "" + +#: src/dird/ua_restore.c:1213 src/dird/ua_restore.c:1229 +#, c-format +msgid "No Full backup before %s found.\n" +msgstr "" + +#: src/dird/ua_restore.c:1252 +msgid "No jobs found.\n" +msgstr "" + +#: src/dird/ua_restore.c:1411 +#, c-format +msgid "Warning default storage overridden by \"%s\" on command line.\n" +msgstr "" + +#: src/dird/ua_restore.c:1427 +#, c-format +msgid "Storage \"%s\" not found, using Storage \"%s\" from MediaType \"%s\".\n" +msgstr "" + +#: src/dird/ua_restore.c:1435 +#, c-format +msgid "" +"\n" +"Unable to find Storage resource for\n" +"MediaType \"%s\", needed by the Jobs you selected.\n" +msgstr "" + +#: src/dird/ua_run.c:152 src/dird/ua_run.c:338 +msgid "Invalid time, using current time.\n" +msgstr "" + +#: src/dird/ua_run.c:174 +#, c-format +msgid "Invalid replace option: %s\n" +msgstr "" + +#: src/dird/ua_run.c:242 +msgid "OK to run? (yes/mod/no): " +msgstr "" + +#: src/dird/ua_run.c:260 src/dird/ua_select.c:63 +msgid "mod" +msgstr "" + +#: src/dird/ua_run.c:263 src/dird/ua_update.c:518 +msgid "Parameters to modify:\n" +msgstr "" + +#: src/dird/ua_run.c:264 +msgid "Level" +msgstr "" + +#: src/dird/ua_run.c:269 +msgid "Restore Client" +msgstr "" + +#: src/dird/ua_run.c:273 src/wx-console/wxbrestorepanel.cpp:356 +#: src/wx-console/wxbrestorepanel.cpp:844 +#: src/wx-console/wxbrestorepanel.cpp:1891 +msgid "When" +msgstr "" + +#: src/dird/ua_run.c:274 src/wx-console/wxbrestorepanel.cpp:357 +#: src/wx-console/wxbrestorepanel.cpp:1117 +#: src/wx-console/wxbrestorepanel.cpp:1894 +msgid "Priority" +msgstr "" + +#: src/dird/ua_run.c:278 src/dird/ua_select.c:506 src/dird/ua_select.c:596 +#: src/dird/ua_update.c:529 src/wx-console/wxbrestorepanel.cpp:338 +#: src/wx-console/wxbrestorepanel.cpp:527 +#: src/wx-console/wxbrestorepanel.cpp:537 +#: src/wx-console/wxbrestorepanel.cpp:1807 +msgid "Pool" +msgstr "" + +#: src/dird/ua_run.c:280 +msgid "Verify Job" +msgstr "" + +#: src/dird/ua_run.c:283 src/wx-console/wxbrestorepanel.cpp:349 +#: src/wx-console/wxbrestorepanel.cpp:1872 +msgid "Bootstrap" +msgstr "" + +#: src/dird/ua_run.c:284 src/wx-console/wxbrestorepanel.cpp:350 +#: src/wx-console/wxbrestorepanel.cpp:1093 +#: src/wx-console/wxbrestorepanel.cpp:1874 +msgid "Where" +msgstr "" + +#: src/dird/ua_run.c:285 +msgid "File Relocation" +msgstr "" + +#: src/dird/ua_run.c:286 src/wx-console/wxbrestorepanel.cpp:352 +#: src/wx-console/wxbrestorepanel.cpp:1101 +#: src/wx-console/wxbrestorepanel.cpp:1878 +#: src/wx-console/wxbrestorepanel.cpp:1879 +#: src/wx-console/wxbrestorepanel.cpp:1880 +#: src/wx-console/wxbrestorepanel.cpp:1881 +#: src/wx-console/wxbrestorepanel.cpp:1882 +msgid "Replace" +msgstr "" + +#: src/dird/ua_run.c:287 +msgid "JobId" +msgstr "" + +#: src/dird/ua_run.c:289 src/dird/ua_run.c:487 src/dird/ua_update.c:535 +msgid "Select parameter to modify" +msgstr "" + +#: src/dird/ua_run.c:298 src/dird/ua_run.c:1205 +msgid "user selection" +msgstr "" + +#: src/dird/ua_run.c:330 +msgid "" +"Please enter desired start time as YYYY-MM-DD HH:MM:SS (return for now): " +msgstr "" + +#: src/dird/ua_run.c:345 +msgid "Enter new Priority: " +msgstr "" + +#: src/dird/ua_run.c:349 +msgid "Priority must be a positive integer.\n" +msgstr "" + +#: src/dird/ua_run.c:369 +msgid "Please enter the Bootstrap file name: " +msgstr "" + +#: src/dird/ua_run.c:380 +#, c-format +msgid "Warning cannot open %s: ERR=%s\n" +msgstr "" + +#: src/dird/ua_run.c:399 +msgid "Please enter path prefix for restore (/ for none): " +msgstr "" + +#: src/dird/ua_run.c:421 +msgid "Replace:\n" +msgstr "" + +#: src/dird/ua_run.c:425 +msgid "Select replace option" +msgstr "" + +#: src/dird/ua_run.c:435 +msgid "" +"You must set the bootstrap file to NULL to be able to specify a JobId.\n" +msgstr "" + +#: src/dird/ua_run.c:455 +msgid "Job failed.\n" +msgstr "" + +#: src/dird/ua_run.c:458 +#, c-format +msgid "Job queued. JobId=%s\n" +msgstr "" + +#: src/dird/ua_run.c:464 +msgid "Job not run.\n" +msgstr "" + +#: src/dird/ua_run.c:476 +#, c-format +msgid "strip_prefix=%s add_prefix=%s add_suffix=%s\n" +msgstr "" + +#: src/dird/ua_run.c:479 +msgid "This will replace your current Where value\n" +msgstr "" + +#: src/dird/ua_run.c:480 +msgid "Strip prefix" +msgstr "" + +#: src/dird/ua_run.c:481 +msgid "Add prefix" +msgstr "" + +#: src/dird/ua_run.c:482 +msgid "Add file suffix" +msgstr "" + +#: src/dird/ua_run.c:483 +msgid "Enter a regexp" +msgstr "" + +#: src/dird/ua_run.c:484 +msgid "Test filename manipulation" +msgstr "" + +#: src/dird/ua_run.c:485 +msgid "Use this ?" +msgstr "" + +#: src/dird/ua_run.c:490 +msgid "Please enter path prefix to strip: " +msgstr "" + +#: src/dird/ua_run.c:498 +msgid "Please enter path prefix to add (/ for none): " +msgstr "" + +#: src/dird/ua_run.c:509 +msgid "Please enter file suffix to add: " +msgstr "" + +#: src/dird/ua_run.c:516 +msgid "Please enter a valid regexp (!from!to!): " +msgstr "" + +#: src/dird/ua_run.c:529 +#, c-format +msgid "regexwhere=%s\n" +msgstr "" + +#: src/dird/ua_run.c:535 +#, c-format +msgid "strip_prefix=%s add_prefix=%s add_suffix=%s result=%s\n" +msgstr "" + +#: src/dird/ua_run.c:542 +msgid "Cannot use your regexp\n" +msgstr "" + +#: src/dird/ua_run.c:546 +msgid "Please enter filename to test: " +msgstr "" + +#: src/dird/ua_run.c:548 +#, c-format +msgid "%s -> %s\n" +msgstr "" + +#: src/dird/ua_run.c:592 +msgid "Cannot use your regexp.\n" +msgstr "" + +#: src/dird/ua_run.c:605 src/dird/ua_run.c:631 +msgid "Levels:\n" +msgstr "" + +#: src/dird/ua_run.c:606 src/filed/status.c:373 src/lib/util.c:329 +#: src/stored/status.c:560 +msgid "Base" +msgstr "" + +#: src/dird/ua_run.c:607 src/filed/status.c:375 src/lib/util.c:331 +#: src/stored/status.c:562 +msgid "Full" +msgstr "" + +#: src/dird/ua_run.c:608 src/filed/status.c:378 src/lib/util.c:334 +#: src/stored/status.c:565 +msgid "Incremental" +msgstr "" + +#: src/dird/ua_run.c:609 src/filed/status.c:381 src/lib/util.c:337 +#: src/stored/status.c:568 +msgid "Differential" +msgstr "" + +#: src/dird/ua_run.c:610 src/filed/status.c:384 src/lib/util.c:340 +#: src/stored/status.c:571 +msgid "Since" +msgstr "" + +#: src/dird/ua_run.c:611 src/dird/ua_run.c:637 +msgid "Select level" +msgstr "" + +#: src/dird/ua_run.c:632 +msgid "Initialize Catalog" +msgstr "" + +#: src/dird/ua_run.c:633 src/filed/status.c:387 src/lib/util.c:343 +#: src/stored/status.c:574 +msgid "Verify Catalog" +msgstr "" + +#: src/dird/ua_run.c:634 src/lib/util.c:349 +msgid "Verify Volume to Catalog" +msgstr "" + +#: src/dird/ua_run.c:635 src/lib/util.c:352 +msgid "Verify Disk to Catalog" +msgstr "" + +#: src/dird/ua_run.c:636 +msgid "Verify Volume Data (not yet implemented)" +msgstr "" + +#: src/dird/ua_run.c:657 +msgid "Level not appropriate for this Job. Cannot be changed.\n" +msgstr "" + +#: src/dird/ua_run.c:671 +#, c-format +msgid "" +"Run %s job\n" +"JobName: %s\n" +"FileSet: %s\n" +"Client: %s\n" +"Storage: %s\n" +"When: %s\n" +"Priority: %d\n" +msgstr "" + +#: src/dird/ua_run.c:678 src/lib/util.c:296 +msgid "Admin" +msgstr "" + +#: src/dird/ua_run.c:691 +#, c-format +msgid "" +"Run %s job\n" +"JobName: %s\n" +"Level: %s\n" +"Client: %s\n" +"FileSet: %s\n" +"Pool: %s (From %s)\n" +"Storage: %s (From %s)\n" +"When: %s\n" +"Priority: %d\n" +msgstr "" + +#: src/dird/ua_run.c:700 src/lib/util.c:287 +msgid "Backup" +msgstr "" + +#: src/dird/ua_run.c:723 +#, c-format +msgid "" +"Run %s job\n" +"JobName: %s\n" +"Level: %s\n" +"Client: %s\n" +"FileSet: %s\n" +"Pool: %s (From %s)\n" +"Storage: %s (From %s)\n" +"Verify Job: %s\n" +"Verify List: %s\n" +"When: %s\n" +"Priority: %d\n" +msgstr "" + +#: src/dird/ua_run.c:734 src/lib/util.c:290 +msgid "Verify" +msgstr "" + +#: src/dird/ua_run.c:752 +msgid "Please enter a JobId for restore: " +msgstr "" + +#: src/dird/ua_run.c:764 +#, c-format +msgid "" +"Run Restore job\n" +"JobName: f%s\n" +"Bootstrap: %s\n" +"RegexWhere: %s\n" +"Replace: %s\n" +"FileSet: %s\n" +"Backup Client: %s\n" +"Restore Client: %s\n" +"Storage: %s\n" +"When: %s\n" +"Catalog: %s\n" +"Priority: %d\n" +msgstr "" + +#: src/dird/ua_run.c:789 +#, c-format +msgid "" +"Run Restore job\n" +"JobName: %s\n" +"Bootstrap: %s\n" +"Where: %s\n" +"Replace: %s\n" +"FileSet: %s\n" +"Backup Client: %s\n" +"Restore Client: %s\n" +"Storage: %s\n" +"When: %s\n" +"Catalog: %s\n" +"Priority: %d\n" +msgstr "" + +#: src/dird/ua_run.c:816 +#, c-format +msgid "" +"Run Restore job\n" +"JobName: %s\n" +"Bootstrap: %s\n" +msgstr "" + +#: src/dird/ua_run.c:824 +#, c-format +msgid "RegexWhere: %s\n" +msgstr "" + +#: src/dird/ua_run.c:827 +#, c-format +msgid "Where: %s\n" +msgstr "" + +#: src/dird/ua_run.c:831 +#, c-format +msgid "" +"Replace: %s\n" +"Client: %s\n" +"Storage: %s\n" +"JobId: %s\n" +"When: %s\n" +"Catalog: %s\n" +"Priority: %d\n" +msgstr "" + +#: src/dird/ua_run.c:850 +#, c-format +msgid "" +"Run Migration job\n" +"JobName: %s\n" +"Bootstrap: %s\n" +"Client: %s\n" +"FileSet: %s\n" +"Pool: %s (From %s)\n" +"Read Storage: %s (From %s)\n" +"Write Storage: %s (From %s)\n" +"JobId: %s\n" +"When: %s\n" +"Catalog: %s\n" +"Priority: %d\n" +msgstr "" + +#: src/dird/ua_run.c:875 +#, c-format +msgid "Unknown Job Type=%d\n" +msgstr "" + +#: src/dird/ua_run.c:935 +#, c-format +msgid "Value missing for keyword %s\n" +msgstr "" + +#: src/dird/ua_run.c:942 +msgid "Job name specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:950 +msgid "JobId specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:959 src/dird/ua_run.c:1103 +msgid "Client specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:967 +msgid "FileSet specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:975 +msgid "Level specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:984 +msgid "Storage specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:992 +msgid "RegexWhere or Where specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:997 +msgid "No authorization for \"regexwhere\" specification.\n" +msgstr "" + +#: src/dird/ua_run.c:1004 +msgid "Where or RegexWhere specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:1009 +msgid "No authoriztion for \"where\" specification.\n" +msgstr "" + +#: src/dird/ua_run.c:1016 +msgid "Bootstrap specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:1024 +msgid "Replace specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:1032 +msgid "When specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:1040 +msgid "Priority specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:1045 +msgid "Priority must be positive nonzero setting it to 10.\n" +msgstr "" + +#: src/dird/ua_run.c:1055 +msgid "Verify Job specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:1087 +msgid "Migration Job specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:1095 +msgid "Pool specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:1111 +msgid "Restore Client specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:1135 +#, c-format +msgid "Invalid keyword: %s\n" +msgstr "" + +#: src/dird/ua_run.c:1146 +#, c-format +msgid "Catalog \"%s\" not found\n" +msgstr "" + +#: src/dird/ua_run.c:1150 +#, c-format +msgid "No authorization. Catalog \"%s\".\n" +msgstr "" + +#: src/dird/ua_run.c:1161 +#, c-format +msgid "Job \"%s\" not found\n" +msgstr "" + +#: src/dird/ua_run.c:1168 +msgid "A job name must be specified.\n" +msgstr "" + +#: src/dird/ua_run.c:1174 +#, c-format +msgid "No authorization. Job \"%s\".\n" +msgstr "" + +#: src/dird/ua_run.c:1182 +#, c-format +msgid "Pool \"%s\" not found.\n" +msgstr "" + +#: src/dird/ua_run.c:1192 +#, c-format +msgid "No authorization. Pool \"%s\".\n" +msgstr "" + +#: src/dird/ua_run.c:1202 +#, c-format +msgid "Storage \"%s\" not found.\n" +msgstr "" + +#: src/dird/ua_run.c:1214 +#, c-format +msgid "No authorization. Storage \"%s\".\n" +msgstr "" + +#: src/dird/ua_run.c:1234 src/dird/ua_run.c:1254 +#, c-format +msgid "No authorization. Client \"%s\".\n" +msgstr "" + +#: src/dird/ua_run.c:1244 +#, c-format +msgid "Restore Client \"%s\" not found.\n" +msgstr "" + +#: src/dird/ua_run.c:1264 +#, c-format +msgid "FileSet \"%s\" not found.\n" +msgstr "" + +#: src/dird/ua_run.c:1273 +#, c-format +msgid "No authorization. FileSet \"%s\".\n" +msgstr "" + +#: src/dird/ua_run.c:1281 +#, c-format +msgid "Verify Job \"%s\" not found.\n" +msgstr "" + +#: src/dird/ua_run.c:1291 +#, c-format +msgid "Migration Job \"%s\" not found.\n" +msgstr "" + +#: src/dird/ua_select.c:55 +#, c-format +msgid "The current %s retention period is: %s\n" +msgstr "" + +#: src/dird/ua_select.c:60 +msgid "Continue? (yes/mod/no): " +msgstr "" + +#: src/dird/ua_select.c:64 +msgid "Enter new retention period: " +msgstr "" + +#: src/dird/ua_select.c:68 +msgid "Invalid period.\n" +msgstr "" + +#: src/dird/ua_select.c:144 +msgid "You have the following choices:\n" +msgstr "" + +#: src/dird/ua_select.c:160 +msgid "The defined Storage resources are:\n" +msgstr "" + +#: src/dird/ua_select.c:168 +msgid "Select Storage resource" +msgstr "" + +#: src/dird/ua_select.c:224 +msgid "You must specify a \"use \" command before continuing.\n" +msgstr "" + +#: src/dird/ua_select.c:230 +msgid "The defined Catalog resources are:\n" +msgstr "" + +#: src/dird/ua_select.c:238 +msgid "Catalog" +msgstr "" + +#: src/dird/ua_select.c:238 +msgid "Select Catalog resource" +msgstr "" + +#: src/dird/ua_select.c:255 +msgid "The defined Job resources are:\n" +msgstr "" + +#: src/dird/ua_select.c:263 +msgid "Select Job resource" +msgstr "" + +#: src/dird/ua_select.c:278 +msgid "The defined Restore Job resources are:\n" +msgstr "" + +#: src/dird/ua_select.c:286 +msgid "Select Restore Job" +msgstr "" + +#: src/dird/ua_select.c:303 +msgid "The defined Client resources are:\n" +msgstr "" + +#: src/dird/ua_select.c:311 +msgid "Select Client (File daemon) resource" +msgstr "" + +#: src/dird/ua_select.c:338 +#, c-format +msgid "Error: Client resource %s does not exist.\n" +msgstr "" + +#: src/dird/ua_select.c:363 +#, c-format +msgid "Could not find Client %s: ERR=%s" +msgstr "" + +#: src/dird/ua_select.c:373 src/dird/ua_select.c:427 +#, c-format +msgid "Could not find Client \"%s\": ERR=%s" +msgstr "" + +#: src/dird/ua_select.c:402 +#, c-format +msgid "Error obtaining client ids. ERR=%s\n" +msgstr "" + +#: src/dird/ua_select.c:406 +msgid "No clients defined. You must run a job before using this command.\n" +msgstr "" + +#: src/dird/ua_select.c:410 +msgid "Defined Clients:\n" +msgstr "" + +#: src/dird/ua_select.c:420 +msgid "Select the Client" +msgstr "" + +#: src/dird/ua_select.c:453 src/dird/ua_select.c:477 src/dird/ua_select.c:513 +#, c-format +msgid "Could not find Pool \"%s\": ERR=%s" +msgstr "" + +#: src/dird/ua_select.c:492 +msgid "No pools defined. Use the \"create\" command to create one.\n" +msgstr "" + +#: src/dird/ua_select.c:496 +msgid "Defined Pools:\n" +msgstr "" + +#: src/dird/ua_select.c:506 +msgid "Select the Pool" +msgstr "" + +#: src/dird/ua_select.c:536 +#, c-format +msgid "No access to Pool \"%s\"\n" +msgstr "" + +#: src/dird/ua_select.c:562 +msgid "Enter MediaId or Volume name: " +msgstr "" + +#: src/dird/ua_select.c:588 +msgid "The defined Pool resources are:\n" +msgstr "" + +#: src/dird/ua_select.c:596 +msgid "Select Pool resource" +msgstr "" + +#: src/dird/ua_select.c:631 +msgid "Enter the JobId to select: " +msgstr "" + +#: src/dird/ua_select.c:669 +#, c-format +msgid "Could not find Job \"%s\": ERR=%s" +msgstr "" + +#: src/dird/ua_select.c:749 +#, c-format +msgid "Automatically selected %s: %s\n" +msgstr "" + +#: src/dird/ua_select.c:754 +#, c-format +msgid "Cannot select %s in batch mode.\n" +msgstr "" + +#: src/dird/ua_select.c:772 +#, c-format +msgid "Selection list for \"%s\" is empty!\n" +msgstr "" + +#: src/dird/ua_select.c:778 +#, c-format +msgid "Automatically selected: %s\n" +msgstr "" + +#: src/dird/ua_select.c:790 +msgid "Selection aborted, nothing done.\n" +msgstr "" + +#: src/dird/ua_select.c:795 +#, c-format +msgid "Please enter a number between 1 and %d\n" +msgstr "" + +#: src/dird/ua_select.c:844 +msgid "Storage name given twice.\n" +msgstr "" + +#: src/dird/ua_select.c:861 +#, c-format +msgid "Expecting jobid=nn command, got: %s\n" +msgstr "" + +#: src/dird/ua_select.c:865 +#, c-format +msgid "JobId %s is not running.\n" +msgstr "" + +#: src/dird/ua_select.c:875 +#, c-format +msgid "Expecting job=xxx, got: %s.\n" +msgstr "" + +#: src/dird/ua_select.c:879 src/dird/ua_select.c:891 +#, c-format +msgid "Job \"%s\" is not running.\n" +msgstr "" + +#: src/dird/ua_select.c:887 +#, c-format +msgid "Expecting ujobid=xxx, got: %s.\n" +msgstr "" + +#: src/dird/ua_select.c:907 +#, c-format +msgid "Storage resource \"%s\": not found\n" +msgstr "" + +#: src/dird/ua_select.c:939 +msgid "Enter autochanger drive[0]: " +msgstr "" + +#: src/dird/ua_select.c:960 +msgid "Enter autochanger slot: " +msgstr "" + +#: src/dird/ua_select.c:990 +msgid "Media Types defined in conf file:\n" +msgstr "" + +#: src/dird/ua_select.c:996 +msgid "Media Type" +msgstr "" + +#: src/dird/ua_select.c:996 +msgid "Select the Media Type" +msgstr "" + +#: src/dird/ua_server.c:72 +#, c-format +msgid "Cannot create UA thread: %s\n" +msgstr "" + +#: src/dird/ua_server.c:159 +msgid "You have messages.\n" +msgstr "" + +#: src/dird/ua_status.c:143 +msgid "Status available for:\n" +msgstr "" + +#: src/dird/ua_status.c:149 +msgid "Select daemon type for status" +msgstr "" + +#: src/dird/ua_status.c:267 +#, c-format +msgid "Daemon started %s, 1 Job run since started.\n" +msgstr "" + +#: src/dird/ua_status.c:270 +#, c-format +msgid "Daemon started %s, %d Jobs run since started.\n" +msgstr "" + +#: src/dird/ua_status.c:273 src/filed/status.c:129 src/stored/status.c:90 +#, c-format +msgid " Heap: heap=%s smbytes=%s max_bytes=%s bufs=%s max_bufs=%s\n" +msgstr "" + +#: src/dird/ua_status.c:299 src/dird/ua_status.c:526 src/dird/ua_status.c:702 +#: src/filed/status.c:204 src/filed/status.c:220 src/filed/status.c:282 +msgid "====\n" +msgstr "" + +#: src/dird/ua_status.c:314 +#, c-format +msgid "" +"\n" +"Failed to connect to Storage daemon %s.\n" +"====\n" +msgstr "" + +#: src/dird/ua_status.c:352 +#, c-format +msgid "" +"Failed to connect to Client %s.\n" +"====\n" +msgstr "" + +#: src/dird/ua_status.c:360 +msgid "Connected to file daemon\n" +msgstr "" + +#: src/dird/ua_status.c:375 +msgid "" +"\n" +"Scheduled Jobs:\n" +msgstr "" + +#: src/dird/ua_status.c:376 +msgid "" +"Level Type Pri Scheduled Name Volume\n" +msgstr "" + +#: src/dird/ua_status.c:377 +msgid "===================================================================================\n" +msgstr "" + +#: src/dird/ua_status.c:429 +#, c-format +msgid "%-14s %-8s %3d %-18s %-18s %s\n" +msgstr "" + +#: src/dird/ua_status.c:524 +msgid "No Scheduled Jobs.\n" +msgstr "" + +#: src/dird/ua_status.c:541 src/filed/status.c:144 src/stored/status.c:370 +msgid "" +"\n" +"Running Jobs:\n" +msgstr "" + +#: src/dird/ua_status.c:549 +#, c-format +msgid "Console connected at %s\n" +msgstr "" + +#: src/dird/ua_status.c:559 +msgid "" +"No Jobs running.\n" +"====\n" +msgstr "" + +#: src/dird/ua_status.c:564 +msgid " JobId Level Name Status\n" +msgstr "" + +#: src/dird/ua_status.c:565 src/filed/status.c:226 +msgid "======================================================================\n" +msgstr "" + +#: src/dird/ua_status.c:573 +msgid "is waiting execution" +msgstr "" + +#: src/dird/ua_status.c:576 +msgid "is running" +msgstr "" + +#: src/dird/ua_status.c:579 +msgid "is blocked" +msgstr "" + +#: src/dird/ua_status.c:582 +msgid "has terminated" +msgstr "" + +#: src/dird/ua_status.c:585 +msgid "has erred" +msgstr "" + +#: src/dird/ua_status.c:588 +msgid "has errors" +msgstr "" + +#: src/dird/ua_status.c:591 +msgid "has a fatal error" +msgstr "" + +#: src/dird/ua_status.c:594 +msgid "has verify differences" +msgstr "" + +#: src/dird/ua_status.c:597 +msgid "has been canceled" +msgstr "" + +#: src/dird/ua_status.c:602 +msgid "is waiting on Client" +msgstr "" + +#: src/dird/ua_status.c:604 +#, c-format +msgid "is waiting on Client %s" +msgstr "" + +#: src/dird/ua_status.c:612 src/dird/ua_status.c:614 +#, c-format +msgid "is waiting on Storage %s" +msgstr "" + +#: src/dird/ua_status.c:616 +msgid "is waiting on Storage" +msgstr "" + +#: src/dird/ua_status.c:622 +msgid "is waiting on max Storage jobs" +msgstr "" + +#: src/dird/ua_status.c:625 +msgid "is waiting on max Client jobs" +msgstr "" + +#: src/dird/ua_status.c:628 +msgid "is waiting on max Job jobs" +msgstr "" + +#: src/dird/ua_status.c:631 +msgid "is waiting on max total jobs" +msgstr "" + +#: src/dird/ua_status.c:634 +msgid "is waiting for its start time" +msgstr "" + +#: src/dird/ua_status.c:637 +msgid "is waiting for higher priority jobs to finish" +msgstr "" + +#: src/dird/ua_status.c:642 +#, c-format +msgid "is in unknown state %c" +msgstr "" + +#: src/dird/ua_status.c:656 +msgid "is waiting for a mount request" +msgstr "" + +#: src/dird/ua_status.c:663 +msgid "is waiting for an appendable Volume" +msgstr "" + +#: src/dird/ua_status.c:671 +msgid "is waiting for Client to connect to Storage daemon" +msgstr "" + +#: src/dird/ua_status.c:673 +#, c-format +msgid "is waiting for Client %s to connect to Storage %s" +msgstr "" + +#: src/dird/ua_status.c:690 +#, c-format +msgid "%6d %-6s %-20s %s\n" +msgstr "" + +#: src/dird/ua_status.c:712 +msgid "No Terminated Jobs.\n" +msgstr "" + +#: src/dird/ua_status.c:717 src/filed/status.c:216 src/stored/status.c:482 +msgid "" +"\n" +"Terminated Jobs:\n" +msgstr "" + +#: src/dird/ua_status.c:718 src/filed/status.c:224 src/stored/status.c:489 +msgid " JobId Level Files Bytes Status Finished Name \n" +msgstr "" + +#: src/dird/ua_status.c:719 +msgid "====================================================================\n" +msgstr "" + +#: src/dird/ua_status.c:750 src/filed/status.c:246 src/lib/util.c:179 +#: src/stored/status.c:511 +msgid "Created" +msgstr "" + +#: src/dird/ua_status.c:754 src/filed/status.c:250 src/lib/util.c:192 +#: src/lib/util.c:259 src/stored/status.c:515 +msgid "Error" +msgstr "" + +#: src/dird/ua_status.c:757 src/filed/status.c:253 src/stored/status.c:518 +msgid "Diffs" +msgstr "" + +#: src/dird/ua_status.c:763 src/filed/status.c:259 src/lib/util.c:188 +#: src/lib/util.c:255 src/stored/btape.c:1189 src/stored/status.c:524 +#: src/wx-console/wxbconfigpanel.cpp:201 +msgid "OK" +msgstr "" + +#: src/dird/ua_status.c:766 src/filed/status.c:262 src/stored/status.c:527 +msgid "Other" +msgstr "" + +#: src/dird/ua_status.c:769 src/filed/status.c:273 src/stored/status.c:538 +#, c-format +msgid "%6d %-6s %8s %10s %-7s %-8s %s\n" +msgstr "" + +#: src/dird/ua_status.c:777 src/stored/btape.c:195 +msgid "\n" +msgstr "" + +#: src/dird/ua_tree.c:72 +msgid "change current directory" +msgstr "" + +#: src/dird/ua_tree.c:73 +msgid "count marked files in and below the cd" +msgstr "" + +#: src/dird/ua_tree.c:74 src/dird/ua_tree.c:75 +msgid "long list current directory, wildcards allowed" +msgstr "" + +#: src/dird/ua_tree.c:76 +msgid "leave file selection mode" +msgstr "" + +#: src/dird/ua_tree.c:77 +msgid "estimate restore size" +msgstr "" + +#: src/dird/ua_tree.c:78 +msgid "same as done command" +msgstr "" + +#: src/dird/ua_tree.c:79 +msgid "find files, wildcards allowed" +msgstr "" + +#: src/dird/ua_tree.c:80 src/dird/ua_tree.c:90 +msgid "print help" +msgstr "" + +#: src/dird/ua_tree.c:81 +msgid "list current directory, wildcards allowed" +msgstr "" + +#: src/dird/ua_tree.c:82 +msgid "list the marked files in and below the cd" +msgstr "" + +#: src/dird/ua_tree.c:83 +msgid "mark dir/file to be restored recursively, wildcards allowed" +msgstr "" + +#: src/dird/ua_tree.c:84 +msgid "mark directory name to be restored (no files)" +msgstr "" + +#: src/dird/ua_tree.c:85 src/dird/ua_tree.c:86 +msgid "print current working directory" +msgstr "" + +#: src/dird/ua_tree.c:87 +msgid "unmark dir/file to be restored recursively in dir" +msgstr "" + +#: src/dird/ua_tree.c:88 +msgid "unmark directory name only no recursion" +msgstr "" + +#: src/dird/ua_tree.c:89 +msgid "quit and do not do restore" +msgstr "" + +#: src/dird/ua_tree.c:110 +msgid "" +"\n" +"You are now entering file selection mode where you add (mark) and\n" +"remove (unmark) files to be restored. No files are initially added, unless\n" +"you used the \"all\" keyword on the command line.\n" +"Enter \"done\" to leave this mode.\n" +"\n" +msgstr "" + +#: src/dird/ua_tree.c:120 src/dird/ua_tree.c:716 +#, c-format +msgid "cwd is: %s\n" +msgstr "" + +#: src/dird/ua_tree.c:129 src/dird/ua_tree.c:144 +msgid "Invalid command. Enter \"done\" to exit.\n" +msgstr "" + +#: src/dird/ua_tree.c:331 src/dird/ua_tree.c:343 src/dird/ua_tree.c:360 +msgid "No files marked.\n" +msgstr "" + +#: src/dird/ua_tree.c:345 +msgid "1 file marked.\n" +msgstr "" + +#: src/dird/ua_tree.c:347 +#, c-format +msgid "%s files marked.\n" +msgstr "" + +#: src/dird/ua_tree.c:375 +msgid "No directories marked.\n" +msgstr "" + +#: src/dird/ua_tree.c:377 +msgid "1 directory marked.\n" +msgstr "" + +#: src/dird/ua_tree.c:379 +#, c-format +msgid "%s directories marked.\n" +msgstr "" + +#: src/dird/ua_tree.c:400 +#, c-format +msgid "%s total files/dirs. %s marked to be restored.\n" +msgstr "" + +#: src/dird/ua_tree.c:411 +msgid "No file specification given.\n" +msgstr "" + +#: src/dird/ua_tree.c:562 +#, c-format +msgid "Node %s has no children.\n" +msgstr "" + +#: src/dird/ua_tree.c:653 +#, c-format +msgid "%d total files; %d marked to be restored; %s bytes.\n" +msgstr "" + +#: src/dird/ua_tree.c:687 +msgid "Too few or too many arguments. Try using double quotes.\n" +msgstr "" + +#: src/dird/ua_tree.c:699 +msgid "Invalid path given.\n" +msgstr "" + +#: src/dird/ua_tree.c:735 src/dird/ua_tree.c:747 +msgid "No files unmarked.\n" +msgstr "" + +#: src/dird/ua_tree.c:749 +msgid "1 file unmarked.\n" +msgstr "" + +#: src/dird/ua_tree.c:752 +#, c-format +msgid "%s files unmarked.\n" +msgstr "" + +#: src/dird/ua_tree.c:763 src/dird/ua_tree.c:780 +msgid "No directories unmarked.\n" +msgstr "" + +#: src/dird/ua_tree.c:782 +msgid "1 directory unmarked.\n" +msgstr "" + +#: src/dird/ua_tree.c:784 +#, c-format +msgid "%d directories unmarked.\n" +msgstr "" + +#: src/dird/ua_update.c:89 +msgid "Update choice:\n" +msgstr "" + +#: src/dird/ua_update.c:90 +msgid "Volume parameters" +msgstr "" + +#: src/dird/ua_update.c:91 +msgid "Pool from resource" +msgstr "" + +#: src/dird/ua_update.c:92 +msgid "Slots from autochanger" +msgstr "" + +#: src/dird/ua_update.c:93 +msgid "item" +msgstr "" + +#: src/dird/ua_update.c:93 +msgid "Choose catalog item to update" +msgstr "" + +#: src/dird/ua_update.c:133 +#, c-format +msgid "Invalid VolStatus specified: %s\n" +msgstr "" + +#: src/dird/ua_update.c:142 +#, c-format +msgid "New Volume status is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:152 +#, c-format +msgid "Invalid retention period specified: %s\n" +msgstr "" + +#: src/dird/ua_update.c:160 +#, c-format +msgid "New retention period is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:171 +#, c-format +msgid "Invalid use duration specified: %s\n" +msgstr "" + +#: src/dird/ua_update.c:179 +#, c-format +msgid "New use duration is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:193 +#, c-format +msgid "New max jobs is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:206 +#, c-format +msgid "New max files is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:217 +#, c-format +msgid "Invalid max. bytes specification: %s\n" +msgstr "" + +#: src/dird/ua_update.c:225 +#, c-format +msgid "New Max bytes is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:236 src/dird/ua_update.c:256 +msgid "Invalid value. It must be yes or no.\n" +msgstr "" + +#: src/dird/ua_update.c:244 +#, c-format +msgid "New Recycle flag is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:264 +#, c-format +msgid "New InChanger flag is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:282 +#, c-format +msgid "Invalid slot, it must be between 0 and MaxVols=%d\n" +msgstr "" + +#: src/dird/ua_update.c:291 src/dird/ua_update.c:637 +#, c-format +msgid "Error updating media record Slot: ERR=%s" +msgstr "" + +#: src/dird/ua_update.c:293 +#, c-format +msgid "New Slot is: %d\n" +msgstr "" + +#: src/dird/ua_update.c:318 +#, c-format +msgid "New Pool is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:352 +#, c-format +msgid "New RecyclePool is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:372 +#, c-format +msgid "Error updating Volume record: ERR=%s" +msgstr "" + +#: src/dird/ua_update.c:374 +#, c-format +msgid "Volume defaults updated from \"%s\" Pool record.\n" +msgstr "" + +#: src/dird/ua_update.c:398 +#, c-format +msgid "Error updating Volume records: ERR=%s" +msgstr "" + +#: src/dird/ua_update.c:400 +#, c-format +msgid "All Volume defaults updated from \"%s\" Pool record.\n" +msgstr "" + +#: src/dird/ua_update.c:412 +#, c-format +msgid "Error updating media record Enabled: ERR=%s" +msgstr "" + +#: src/dird/ua_update.c:414 +#, c-format +msgid "New Enabled is: %d\n" +msgstr "" + +#: src/dird/ua_update.c:519 +msgid "Volume Status" +msgstr "" + +#: src/dird/ua_update.c:520 +msgid "Volume Retention Period" +msgstr "" + +#: src/dird/ua_update.c:521 +msgid "Volume Use Duration" +msgstr "" + +#: src/dird/ua_update.c:522 +msgid "Maximum Volume Jobs" +msgstr "" + +#: src/dird/ua_update.c:523 +msgid "Maximum Volume Files" +msgstr "" + +#: src/dird/ua_update.c:524 +msgid "Maximum Volume Bytes" +msgstr "" + +#: src/dird/ua_update.c:525 +msgid "Recycle Flag" +msgstr "" + +#: src/dird/ua_update.c:526 +msgid "Slot" +msgstr "" + +#: src/dird/ua_update.c:527 +msgid "InChanger Flag" +msgstr "" + +#: src/dird/ua_update.c:528 +msgid "Volume Files" +msgstr "" + +#: src/dird/ua_update.c:530 +msgid "Volume from Pool" +msgstr "" + +#: src/dird/ua_update.c:531 +msgid "All Volumes from Pool" +msgstr "" + +#: src/dird/ua_update.c:532 +msgid "Enabled" +msgstr "" + +#: src/dird/ua_update.c:533 +msgid "RecyclePool" +msgstr "" + +#: src/dird/ua_update.c:534 +msgid "Done" +msgstr "" + +#: src/dird/ua_update.c:542 +#, c-format +msgid "Updating Volume \"%s\"\n" +msgstr "" + +#: src/dird/ua_update.c:547 +#, c-format +msgid "Current Volume status is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:548 +msgid "Possible Values are:\n" +msgstr "" + +#: src/dird/ua_update.c:559 +msgid "Choose new Volume Status" +msgstr "" + +#: src/dird/ua_update.c:565 +#, c-format +msgid "Current retention period is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:567 +msgid "Enter Volume Retention period: " +msgstr "" + +#: src/dird/ua_update.c:574 +#, c-format +msgid "Current use duration is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:576 +msgid "Enter Volume Use Duration: " +msgstr "" + +#: src/dird/ua_update.c:583 +#, c-format +msgid "Current max jobs is: %u\n" +msgstr "" + +#: src/dird/ua_update.c:584 +msgid "Enter new Maximum Jobs: " +msgstr "" + +#: src/dird/ua_update.c:591 +#, c-format +msgid "Current max files is: %u\n" +msgstr "" + +#: src/dird/ua_update.c:592 +msgid "Enter new Maximum Files: " +msgstr "" + +#: src/dird/ua_update.c:599 +#, c-format +msgid "Current value is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:600 +msgid "Enter new Maximum Bytes: " +msgstr "" + +#: src/dird/ua_update.c:608 +#, c-format +msgid "Current recycle flag is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:610 +msgid "Enter new Recycle status: " +msgstr "" + +#: src/dird/ua_update.c:617 +#, c-format +msgid "Current Slot is: %d\n" +msgstr "" + +#: src/dird/ua_update.c:618 +msgid "Enter new Slot: " +msgstr "" + +#: src/dird/ua_update.c:625 +#, c-format +msgid "Current InChanger flag is: %d\n" +msgstr "" + +#: src/dird/ua_update.c:626 +#, c-format +msgid "Set InChanger flag for Volume \"%s\": yes/no: " +msgstr "" + +#: src/dird/ua_update.c:639 +#, c-format +msgid "New InChanger flag is: %d\n" +msgstr "" + +#: src/dird/ua_update.c:646 +msgid "" +"Warning changing Volume Files can result\n" +"in loss of data on your Volume\n" +"\n" +msgstr "" + +#: src/dird/ua_update.c:648 +#, c-format +msgid "Current Volume Files is: %u\n" +msgstr "" + +#: src/dird/ua_update.c:649 +msgid "Enter new number of Files for Volume: " +msgstr "" + +#: src/dird/ua_update.c:654 +msgid "Normally, you should only increase Volume Files by one!\n" +msgstr "" + +#: src/dird/ua_update.c:655 +msgid "Increase Volume Files? (yes/no): " +msgstr "" + +#: src/dird/ua_update.c:665 +#, c-format +msgid "New Volume Files is: %u\n" +msgstr "" + +#: src/dird/ua_update.c:677 +#, c-format +msgid "Current Pool is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:678 +msgid "Enter new Pool name: " +msgstr "" + +#: src/dird/ua_update.c:695 +#, c-format +msgid "Current Enabled is: %d\n" +msgstr "" + +#: src/dird/ua_update.c:696 +msgid "Enter new Enabled: " +msgstr "" + +#: src/dird/ua_update.c:715 +#, c-format +msgid "Current RecyclePool is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:717 +msgid "No current RecyclePool\n" +msgstr "" + +#: src/dird/ua_update.c:719 +msgid "Enter new RecyclePool name: " +msgstr "" + +#: src/dird/ua_update.c:726 +msgid "Selection terminated.\n" +msgstr "" + +#: src/dird/ua_update.c:760 +#, c-format +msgid "db_update_pool_record returned %d. ERR=%s\n" +msgstr "" + +#: src/dird/ua_update.c:767 +msgid "Pool DB record updated from resource.\n" +msgstr "" + +#: src/dird/ua_update.c:794 +msgid "Expect JobId keyword, not found.\n" +msgstr "" + +#: src/dird/ua_update.c:819 +msgid "Neither Client nor StartTime specified.\n" +msgstr "" + +#: src/dird/verify.c:120 +msgid "" +"Unable to find JobId of previous InitCatalog Job.\n" +"Please run a Verify with Level=InitCatalog before\n" +"running the current Job.\n" +msgstr "" + +#: src/dird/verify.c:125 +msgid "Unable to find JobId of previous Job for this client.\n" +msgstr "" + +#: src/dird/verify.c:141 +#, c-format +msgid "Could not get job record for previous Job. ERR=%s" +msgstr "" + +#: src/dird/verify.c:146 +#, c-format +msgid "Last Job %d did not terminate normally. JobStatus=%c\n" +msgstr "" + +#: src/dird/verify.c:150 +#, c-format +msgid "Verifying against JobId=%d Job=%s\n" +msgstr "" + +#: src/dird/verify.c:179 +#, c-format +msgid "Start Verify JobId=%s Level=%s Job=%s\n" +msgstr "" + +#: src/dird/verify.c:263 +msgid "Deprecated feature ... use bootstrap.\n" +msgstr "" + +#: src/dird/verify.c:276 +#, c-format +msgid "Unimplemented Verify level %d(%c)\n" +msgstr "" + +#: src/dird/verify.c:330 +#, c-format +msgid "Unimplemented verify level %d\n" +msgstr "" + +#: src/dird/verify.c:384 +msgid "Verify OK" +msgstr "" + +#: src/dird/verify.c:388 +msgid "*** Verify Error ***" +msgstr "" + +#: src/dird/verify.c:392 +msgid "Verify warnings" +msgstr "" + +#: src/dird/verify.c:395 +msgid "Verify Canceled" +msgstr "" + +#: src/dird/verify.c:398 +msgid "Verify Differences" +msgstr "" + +#: src/dird/verify.c:403 +#, c-format +msgid "Inappropriate term code: %d %c\n" +msgstr "" + +#: src/dird/verify.c:417 +#, c-format +msgid "" +"Bacula %s %s (%s): %s\n" +" Build OS: %s %s %s\n" +" JobId: %d\n" +" Job: %s\n" +" FileSet: %s\n" +" Verify Level: %s\n" +" Client: %s\n" +" Verify JobId: %d\n" +" Verify Job: %s\n" +" Start time: %s\n" +" End time: %s\n" +" Files Expected: %s\n" +" Files Examined: %s\n" +" Non-fatal FD errors: %d\n" +" FD termination status: %s\n" +" SD termination status: %s\n" +" Termination: %s\n" +"\n" +msgstr "" + +#: src/dird/verify.c:452 +#, c-format +msgid "" +"Bacula %s %s (%s): %s\n" +" Build: %s %s %s\n" +" JobId: %d\n" +" Job: %s\n" +" FileSet: %s\n" +" Verify Level: %s\n" +" Client: %s\n" +" Verify JobId: %d\n" +" Verify Job: %s\n" +" Start time: %s\n" +" End time: %s\n" +" Files Examined: %s\n" +" Non-fatal FD errors: %d\n" +" FD termination status: %s\n" +" Termination: %s\n" +"\n" +msgstr "" + +#: src/dird/verify.c:531 +#, c-format +msgid "" +"bird set configuration file to file\n" +" -dnn set debug level to nn\n" +" -n no conio\n" +" -s no signals\n" +" -t test - read configuration and exit\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/console/console.c:162 +msgid "input from file" +msgstr "" + +#: src/console/console.c:163 +msgid "output to file" +msgstr "" + +#: src/console/console.c:165 +msgid "output to file and terminal" +msgstr "" + +#: src/console/console.c:166 +msgid "sleep specified time" +msgstr "" + +#: src/console/console.c:168 +msgid "print Console's version" +msgstr "" + +#: src/console/console.c:169 +msgid "echo command string" +msgstr "" + +#: src/console/console.c:170 +msgid "execute an external command" +msgstr "" + +#: src/console/console.c:172 +msgid "zed_keys = use zed keys instead of bash keys" +msgstr "" + +#: src/console/console.c:205 +msgid ": is an invalid command\n" +msgstr "" + +#: src/console/console.c:462 +msgid "Available Directors:\n" +msgstr "" + +#: src/console/console.c:466 +#, c-format +msgid "%2d: %s at %s:%d\n" +msgstr "" + +#: src/console/console.c:470 +msgid "Select Director by entering a number: " +msgstr "" + +#: src/console/console.c:475 +#, c-format +msgid "%s is not a number. You must enter a number between 1 and %d\n" +msgstr "" + +#: src/console/console.c:481 +#, c-format +msgid "You must enter a number between 1 and %d\n" +msgstr "" + +#: src/console/console.c:521 src/tray-monitor/tray-monitor.c:905 +#, c-format +msgid "Connecting to Director %s:%d\n" +msgstr "" + +#: src/console/console.c:538 src/gnome2-console/console.c:526 +#: src/wx-console/console_thread.cpp:391 +#, c-format +msgid "Failed to initialize TLS context for Console \"%s\".\n" +msgstr "" + +#: src/console/console.c:558 src/gnome2-console/console.c:548 +#: src/wx-console/console_thread.cpp:412 +#, c-format +msgid "Failed to initialize TLS context for Director \"%s\".\n" +msgstr "" + +#: src/console/console.c:588 +msgid "Enter a period to cancel a command.\n" +msgstr "" + +#: src/console/console.c:664 src/gnome2-console/console.c:160 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Director \"%s\" in %s. At least one CA certificate store is required.\n" +msgstr "" + +#: src/console/console.c:673 src/gnome2-console/console.c:169 +#, c-format +msgid "" +"No Director resource defined in %s\n" +"Without that I don't how to speak to the Director :-(\n" +msgstr "" + +#: src/console/console.c:693 src/gnome2-console/console.c:189 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Console \"%s\" in %s.\n" +msgstr "" + +#: src/console/console.c:849 +msgid "Too many arguments on input command.\n" +msgstr "" + +#: src/console/console.c:853 +msgid "First argument to input command must be a filename.\n" +msgstr "" + +#: src/console/console.c:858 +#, c-format +msgid "Cannot open file %s for input. ERR=%s\n" +msgstr "" + +#: src/console/console.c:888 +msgid "Too many arguments on output/tee command.\n" +msgstr "" + +#: src/console/console.c:905 +#, c-format +msgid "Cannot open file %s for output. ERR=%s\n" +msgstr "" + +#: src/console/console.c:924 +msgid "Too many arguments. Enclose command in double quotes.\n" +msgstr "" + +#: src/console/console.c:933 +#, c-format +msgid "Cannot popen(\"%s\", \"r\"): ERR=%s\n" +msgstr "" + +#: src/console/console.c:945 src/stored/autochanger.c:549 +#, c-format +msgid "Autochanger error: ERR=%s\n" +msgstr "" + +#: src/console/console_conf.c:138 src/gnome2-console/console_conf.c:134 +#: src/wx-console/console_conf.c:147 +#, c-format +msgid "No record for %d %s\n" +msgstr "" + +#: src/console/console_conf.c:147 src/wx-console/console_conf.c:156 +#, c-format +msgid "Console: name=%s rcfile=%s histfile=%s\n" +msgstr "" + +#: src/console/console_conf.c:151 src/gnome2-console/console_conf.c:143 +#: src/wx-console/console_conf.c:160 +#, c-format +msgid "Director: name=%s address=%s DIRport=%d\n" +msgstr "" + +#: src/console/console_conf.c:155 src/console/console_conf.c:231 +#: src/console/console_conf.c:276 src/console/console_conf.c:303 +#: src/filed/filed_conf.c:319 src/filed/filed_conf.c:384 +#: src/filed/filed_conf.c:414 src/gnome2-console/console_conf.c:154 +#: src/gnome2-console/console_conf.c:232 src/gnome2-console/console_conf.c:280 +#: src/gnome2-console/console_conf.c:310 src/stored/stored_conf.c:528 +#: src/stored/stored_conf.c:616 src/stored/stored_conf.c:651 +#: src/wx-console/console_conf.c:164 src/wx-console/console_conf.c:239 +#: src/wx-console/console_conf.c:284 src/wx-console/console_conf.c:311 +#, c-format +msgid "Unknown resource type %d\n" +msgstr "" + +#: src/filed/acl.c:104 src/filed/acl.c:110 +msgid "ACL support not configured for your machine.\n" +msgstr "" + +#: src/filed/acl.c:186 +#, c-format +msgid "acl_to_text error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:215 +#, c-format +msgid "acl_delete_def_file error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:223 +#, c-format +msgid "acl_from_text error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:237 +#, c-format +msgid "ac_valid error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:252 +#, c-format +msgid "acl_set_file error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:286 +#, c-format +msgid "acltostr error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:303 src/filed/acl.c:311 +#, c-format +msgid "strtoacl error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:323 +#, c-format +msgid "setacl error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:359 +#, c-format +msgid "acltotext error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:376 +#, c-format +msgid "aclfromtext error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:388 +#, c-format +msgid "acl(SETACL) error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/authenticate.c:60 +#, c-format +msgid "I only authenticate directors, not %d\n" +msgstr "" + +#: src/filed/authenticate.c:68 src/stored/authenticate.c:66 +#, c-format +msgid "Bad Hello command from Director at %s. Len=%d.\n" +msgstr "" + +#: src/filed/authenticate.c:80 src/stored/authenticate.c:77 +#, c-format +msgid "Bad Hello command from Director at %s: %s\n" +msgstr "" + +#: src/filed/authenticate.c:92 +#, c-format +msgid "Connection from unknown Director %s at %s rejected.\n" +msgstr "" + +#: src/filed/authenticate.c:132 +#, c-format +msgid "Incorrect password given by Director at %s.\n" +msgstr "" + +#: src/filed/authenticate.c:139 +msgid "" +"Authorization problem: Remote server did not advertize required TLS " +"support.\n" +msgstr "" + +#: src/filed/authenticate.c:193 src/stored/dircmd.c:199 +msgid "Unable to authenticate Director\n" +msgstr "" + +#: src/filed/authenticate.c:244 +msgid "" +"Authorization key rejected by Storage daemon.\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" + +#: src/filed/backup.c:86 +msgid "Cannot set buffer size FD->SD.\n" +msgstr "" + +#: src/filed/backup.c:129 src/filed/backup.c:138 +msgid "An error occurred while encrypting the stream.\n" +msgstr "" + +#: src/filed/backup.c:255 +#, c-format +msgid " Recursion turned off. Will not descend from %s into %s\n" +msgstr "" + +#: src/filed/backup.c:262 +#, c-format +msgid " %s is a different filesystem. Will not descend from %s into %s\n" +msgstr "" + +#: src/filed/backup.c:268 +#, c-format +msgid " Disallowed filesystem. Will not descend from %s into %s\n" +msgstr "" + +#: src/filed/backup.c:273 +#, c-format +msgid " Disallowed drive type. Will not descend into %s\n" +msgstr "" + +#: src/filed/backup.c:292 src/filed/verify.c:123 +#, c-format +msgid " Could not access %s: ERR=%s\n" +msgstr "" + +#: src/filed/backup.c:299 src/filed/verify.c:130 +#, c-format +msgid " Could not follow link %s: ERR=%s\n" +msgstr "" + +#: src/filed/backup.c:306 src/filed/verify.c:137 +#, c-format +msgid " Could not stat %s: ERR=%s\n" +msgstr "" + +#: src/filed/backup.c:313 src/filed/verify.c:143 +#, c-format +msgid " Unchanged file skipped: %s\n" +msgstr "" + +#: src/filed/backup.c:316 +#, c-format +msgid " Archive file not saved: %s\n" +msgstr "" + +#: src/filed/backup.c:320 src/filed/verify.c:158 +#, c-format +msgid " Could not open directory %s: ERR=%s\n" +msgstr "" + +#: src/filed/backup.c:326 +#, c-format +msgid " Unknown file type %d; not saved: %s\n" +msgstr "" + +#: src/filed/backup.c:366 src/filed/verify.c:239 +#, c-format +msgid "%s digest initialization failed\n" +msgstr "" + +#: src/filed/backup.c:380 +#, c-format +msgid "%s signature digest initialization failed\n" +msgstr "" + +#: src/filed/backup.c:400 +#, c-format +msgid "Python reader program \"%s\" not found.\n" +msgstr "" + +#: src/filed/backup.c:462 src/filed/verify.c:300 +#, c-format +msgid " Cannot open %s: ERR=%s.\n" +msgstr "" + +#: src/filed/backup.c:499 src/filed/verify.c:314 +#, c-format +msgid " Cannot open resource fork for %s: ERR=%s.\n" +msgstr "" + +#: src/filed/backup.c:556 +msgid "Failed to allocate memory for crypto signature.\n" +msgstr "" + +#: src/filed/backup.c:561 src/filed/backup.c:567 src/filed/backup.c:582 +msgid "An error occurred while signing the stream.\n" +msgstr "" + +#: src/filed/backup.c:606 +msgid "An error occurred finalizing signing the stream.\n" +msgstr "" + +#: src/filed/backup.c:693 +#, c-format +msgid "Compression deflateParams error: %d\n" +msgstr "" + +#: src/filed/backup.c:705 +msgid "Encrypting sparse data not supported.\n" +msgstr "" + +#: src/filed/backup.c:712 +msgid "Failed to initialize encryption context.\n" +msgstr "" + +#: src/filed/backup.c:735 src/filed/backup.c:891 src/filed/backup.c:926 +#: src/filed/backup.c:937 src/filed/backup.c:983 src/filed/backup.c:996 +#: src/filed/backup.c:1004 src/filed/backup.c:1050 src/filed/backup.c:1086 +#, c-format +msgid "Network send error to SD. ERR=%s\n" +msgstr "" + +#: src/filed/backup.c:814 +#, c-format +msgid "Compression deflate error: %d\n" +msgstr "" + +#: src/filed/backup.c:821 +#, c-format +msgid "Compression deflateReset error: %d\n" +msgstr "" + +#: src/filed/backup.c:864 src/filed/backup.c:880 +msgid "Encryption error\n" +msgstr "" + +#: src/filed/backup.c:904 +#, c-format +msgid "Read error on file %s. ERR=%s\n" +msgstr "" + +#: src/filed/backup.c:907 +msgid "Too many errors.\n" +msgstr "" + +#: src/filed/backup.c:917 +msgid "Encryption padding error\n" +msgstr "" + +#: src/filed/backup.c:974 +#, c-format +msgid "Error reading ACL of %s\n" +msgstr "" + +#: src/filed/backup.c:1029 +msgid "Invalid file flags, no supported data stream type.\n" +msgstr "" + +#: src/filed/filed.c:65 +#, c-format +msgid "" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: bacula-fd [-f -s] [-c config_file] [-d debug_level]\n" +" -c use as configuration file\n" +" -dnn set debug level to nn\n" +" -f run in foreground (for debugging)\n" +" -g groupid\n" +" -s no signals (for debugging)\n" +" -t test configuration file and exit\n" +" -u userid\n" +" -v verbose user messages\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/filed/filed.c:268 +#, c-format +msgid "" +"No File daemon resource defined in %s\n" +"Without that I don't know who I am :-(\n" +msgstr "" + +#: src/filed/filed.c:273 +#, c-format +msgid "Only one Client resource permitted in %s\n" +msgstr "" + +#: src/filed/filed.c:296 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"File daemon in %s.\n" +msgstr "" + +#: src/filed/filed.c:320 +msgid "PKI encryption/signing enabled but not compiled into Bacula.\n" +msgstr "" + +#: src/filed/filed.c:331 +#, c-format +msgid "" +"\"PKI Key Pair\" must be defined for File daemon \"%s\" in %s if either " +"\"PKI Sign\" or \"PKI Encrypt\" are enabled.\n" +msgstr "" + +#: src/filed/filed.c:343 src/filed/filed.c:374 src/filed/filed.c:415 +msgid "Failed to allocate a new keypair object.\n" +msgstr "" + +#: src/filed/filed.c:347 +#, c-format +msgid "Failed to load public certificate for File daemon \"%s\" in %s.\n" +msgstr "" + +#: src/filed/filed.c:353 +#, c-format +msgid "Failed to load private key for File daemon \"%s\" in %s.\n" +msgstr "" + +#: src/filed/filed.c:383 +#, c-format +msgid "Failed to load private key from file %s for File daemon \"%s\" in %s.\n" +msgstr "" + +#: src/filed/filed.c:390 +#, c-format +msgid "" +"Failed to load trusted signer certificate from file %s for File daemon \"%s" +"\" in %s.\n" +msgstr "" + +#: src/filed/filed.c:421 +#, c-format +msgid "" +"Failed to load master key certificate from file %s for File daemon \"%s\" in " +"%s.\n" +msgstr "" + +#: src/filed/filed.c:437 +#, c-format +msgid "No Director resource defined in %s\n" +msgstr "" + +#: src/filed/job.c:373 +#, c-format +msgid "2901 Job %s not found.\n" +msgstr "" + +#: src/filed/job.c:382 +#, c-format +msgid "2001 Job %s marked to be canceled.\n" +msgstr "" + +#: src/filed/job.c:385 +msgid "2902 Error scanning cancel command.\n" +msgstr "" + +#: src/filed/job.c:404 +#, c-format +msgid "2991 Bad setdebug command: %s\n" +msgstr "" + +#: src/filed/job.c:420 +#, c-format +msgid "Bad estimate command: %s" +msgstr "" + +#: src/filed/job.c:421 +msgid "2992 Bad estimate command.\n" +msgstr "" + +#: src/filed/job.c:444 +#, c-format +msgid "Bad Job Command: %s" +msgstr "" + +#: src/filed/job.c:465 +#, c-format +msgid "Bad RunBeforeJob command: %s\n" +msgstr "" + +#: src/filed/job.c:466 src/filed/job.c:484 +msgid "2905 Bad RunBeforeJob command.\n" +msgstr "" + +#: src/filed/job.c:495 +msgid "2905 Bad RunBeforeNow command.\n" +msgstr "" + +#: src/filed/job.c:514 +#, c-format +msgid "Bad RunAfter command: %s\n" +msgstr "" + +#: src/filed/job.c:515 +msgid "2905 Bad RunAfterJob command.\n" +msgstr "" + +#: src/filed/job.c:549 +#, c-format +msgid "Bad RunScript command: %s\n" +msgstr "" + +#: src/filed/job.c:550 +msgid "2905 Bad RunScript command.\n" +msgstr "" + +#: src/filed/job.c:652 +#, c-format +msgid "Error running program: %s. stat=%d: ERR=%s\n" +msgstr "" + +#: src/filed/job.c:662 +#, c-format +msgid "Cannot open FileSet input file: %s. ERR=%s\n" +msgstr "" + +#: src/filed/job.c:758 +#, c-format +msgid "REGEX %s compile error. ERR=%s\n" +msgstr "" + +#: src/filed/job.c:820 +#, c-format +msgid "Invalid FileSet command: %s\n" +msgstr "" + +#: src/filed/job.c:1054 src/findlib/match.c:199 src/tools/testfind.c:635 +#, c-format +msgid "Unknown include/exclude option: %c\n" +msgstr "" + +#: src/filed/job.c:1123 src/stored/fd_cmds.c:355 +#, c-format +msgid "Could not create bootstrap file %s: ERR=%s\n" +msgstr "" + +#: src/filed/job.c:1232 +#, c-format +msgid "DIR and FD clocks differ by %d seconds, FD automatically adjusting.\n" +msgstr "" + +#: src/filed/job.c:1240 +#, c-format +msgid "Unknown backup level: %s\n" +msgstr "" + +#: src/filed/job.c:1252 +#, c-format +msgid "Bad level command: %s\n" +msgstr "" + +#: src/filed/job.c:1273 +#, c-format +msgid "Bad session command: %s" +msgstr "" + +#: src/filed/job.c:1294 +#, c-format +msgid "Bad storage command: %s" +msgstr "" + +#: src/filed/job.c:1303 +#, c-format +msgid "Failed to connect to Storage daemon: %s:%d\n" +msgstr "" + +#: src/filed/job.c:1315 +msgid "Failed to authenticate Storage daemon.\n" +msgstr "" + +#: src/filed/job.c:1353 +msgid "Cannot contact Storage daemon\n" +msgstr "" + +#: src/filed/job.c:1371 +#, c-format +msgid "Bad response to append open: %s\n" +msgstr "" + +#: src/filed/job.c:1376 +msgid "Bad response from stored to open command\n" +msgstr "" + +#: src/filed/job.c:1403 +#, c-format +msgid "Generate VSS snapshots. Driver=\"%s\", Drive(s)=\"%s\"\n" +msgstr "" + +#: src/filed/job.c:1405 +msgid "Generate VSS snapshots failed.\n" +msgstr "" + +#: src/filed/job.c:1412 +#, c-format +msgid "" +"Generate VSS snapshot of drive \"%c:\\\" failed. VSS support is disabled on " +"this drive.\n" +msgstr "" + +#: src/filed/job.c:1419 +#, c-format +msgid "VSS Writer (PrepareForBackup): %s\n" +msgstr "" + +#: src/filed/job.c:1424 +msgid "No drive letters found for generating VSS snapshots.\n" +msgstr "" + +#: src/filed/job.c:1428 +#, c-format +msgid "VSS was not initialized properly. VSS support is disabled. ERR=%s\n" +msgstr "" + +#: src/filed/job.c:1478 +msgid "Append Close with SD failed.\n" +msgstr "" + +#: src/filed/job.c:1482 +#, c-format +msgid "Bad status %d returned from Storage Daemon.\n" +msgstr "" + +#: src/filed/job.c:1500 +#, c-format +msgid "VSS Writer (BackupComplete): %s\n" +msgstr "" + +#: src/filed/job.c:1528 +#, c-format +msgid "2994 Bad verify command: %s\n" +msgstr "" + +#: src/filed/job.c:1543 src/filed/job.c:1582 +#, c-format +msgid "2994 Bad verify level: %s\n" +msgstr "" + +#: src/filed/job.c:1626 +#, c-format +msgid "Bad replace command. CMD=%s\n" +msgstr "" + +#: src/filed/job.c:1644 +#, c-format +msgid "Bad where regexp. where=%s\n" +msgstr "" + +#: src/filed/job.c:1718 +msgid "Improper calling sequence.\n" +msgstr "" + +#: src/filed/job.c:1738 +#, c-format +msgid "Bad response to SD read open: %s\n" +msgstr "" + +#: src/filed/job.c:1743 +msgid "Bad response from stored to read open command\n" +msgstr "" + +#: src/filed/job.c:1807 +#, c-format +msgid "Comm error with SD. bad response to %s. ERR=%s\n" +msgstr "" + +#: src/filed/job.c:1810 +#, c-format +msgid "Bad response to %s command. Wanted %s, got %s\n" +msgstr "" + +#: src/filed/pythonfd.c:157 src/stored/pythonsd.c:162 +#, c-format +msgid "Cannot delete attribute %s" +msgstr "" + +#: src/filed/pythonfd.c:175 src/filed/pythonfd.c:191 src/stored/pythonsd.c:195 +#, c-format +msgid "Cannot find attribute %s" +msgstr "" + +#: src/filed/restore.c:133 +#, c-format +msgid "Size of data or stream of %s not correct. Original %s, restored %s.\n" +msgstr "" + +#: src/filed/restore.c:255 src/filed/verify_vol.c:99 +#, c-format +msgid "Record header scan error: %s\n" +msgstr "" + +#: src/filed/restore.c:263 src/filed/verify_vol.c:108 +#, c-format +msgid "Data record error. ERR=%s\n" +msgstr "" + +#: src/filed/restore.c:267 src/filed/verify_vol.c:112 +#, c-format +msgid "Actual data size %d not same as header %d\n" +msgstr "" + +#: src/filed/restore.c:294 src/filed/restore.c:639 +msgid "Logic error: output file should be open\n" +msgstr "" + +#: src/filed/restore.c:315 src/filed/restore.c:652 +msgid "Logic error: output file should not be open\n" +msgstr "" + +#: src/filed/restore.c:326 src/filed/verify_vol.c:151 +#: src/stored/bextract.c:302 src/stored/bls.c:383 src/stored/bscan.c:663 +#, c-format +msgid "Record header file index %ld not equal record index %ld\n" +msgstr "" + +#: src/filed/restore.c:339 src/stored/bextract.c:311 +#, c-format +msgid "%s stream not supported on this Client.\n" +msgstr "" + +#: src/filed/restore.c:391 +msgid "Unexpected cryptographic session data stream.\n" +msgstr "" + +#: src/filed/restore.c:399 +msgid "" +"No private decryption keys have been defined to decrypt encrypted backup " +"data.\n" +msgstr "" + +#: src/filed/restore.c:410 +msgid "Could not create digest.\n" +msgstr "" + +#: src/filed/restore.c:424 +msgid "Missing private key required to decrypt encrypted backup data.\n" +msgstr "" + +#: src/filed/restore.c:427 +msgid "Decrypt of the session key failed.\n" +msgstr "" + +#: src/filed/restore.c:431 +#, c-format +msgid "An error occurred while decoding encrypted session data stream: %s\n" +msgstr "" + +#: src/filed/restore.c:480 src/filed/restore.c:526 +#, c-format +msgid "Missing encryption session data stream for %s\n" +msgstr "" + +#: src/filed/restore.c:488 src/filed/restore.c:533 +#, c-format +msgid "Failed to initialize decryption context for %s\n" +msgstr "" + +#: src/filed/restore.c:545 +#, c-format +msgid " Cannot open resource fork for %s.\n" +msgstr "" + +#: src/filed/restore.c:571 +#, c-format +msgid " Invalid length of Finder Info (got %d, not 32)\n" +msgstr "" + +#: src/filed/restore.c:575 +#, c-format +msgid " Could not set Finder Info on %s\n" +msgstr "" + +#: src/filed/restore.c:588 +#, c-format +msgid "Can't restore ACL of %s\n" +msgstr "" + +#: src/filed/restore.c:600 +#, c-format +msgid "Can't restore default ACL of %s\n" +msgstr "" + +#: src/filed/restore.c:610 +msgid "Unexpected cryptographic signature data stream.\n" +msgstr "" + +#: src/filed/restore.c:616 +#, c-format +msgid "Failed to decode message signature for %s\n" +msgstr "" + +#: src/filed/restore.c:655 src/stored/bextract.c:469 +#, c-format +msgid "Unknown stream=%d ignored. This shouldn't happen!\n" +msgstr "" + +#: src/filed/restore.c:732 +#, c-format +msgid "" +"%d non-supported data streams and %d non-supported attrib streams ignored.\n" +msgstr "" + +#: src/filed/restore.c:736 +#, c-format +msgid "%d non-supported resource fork streams ignored.\n" +msgstr "" + +#: src/filed/restore.c:739 +#, c-format +msgid "%d non-supported Finder Info streams ignored.\n" +msgstr "" + +#: src/filed/restore.c:742 +#, c-format +msgid "%d non-supported acl streams ignored.\n" +msgstr "" + +#: src/filed/restore.c:745 +#, c-format +msgid "%d non-supported crypto streams ignored.\n" +msgstr "" + +#: src/filed/restore.c:757 +msgid "None" +msgstr "" + +#: src/filed/restore.c:761 +msgid "Zlib errno" +msgstr "" + +#: src/filed/restore.c:763 +msgid "Zlib stream error" +msgstr "" + +#: src/filed/restore.c:765 +msgid "Zlib data error" +msgstr "" + +#: src/filed/restore.c:767 +msgid "Zlib memory error" +msgstr "" + +#: src/filed/restore.c:769 +msgid "Zlib buffer error" +msgstr "" + +#: src/filed/restore.c:771 +msgid "Zlib version error" +msgstr "" + +#: src/filed/restore.c:773 src/lib/util.c:591 src/lib/util.c:601 +#: src/lib/util.c:609 src/lib/util.c:616 src/lib/util.c:623 src/lib/util.c:637 +#: src/lib/util.c:647 src/lib/util.c:654 src/lib/util.c:665 +msgid "*none*" +msgstr "" + +#: src/filed/restore.c:809 +#, c-format +msgid "Missing cryptographic signature for %s\n" +msgstr "" + +#: src/filed/restore.c:838 src/filed/restore.c:862 +#, c-format +msgid "Signature validation failed for file %s: ERR=%s\n" +msgstr "" + +#: src/filed/restore.c:852 +#, c-format +msgid "Digest one file failed for file: %s\n" +msgstr "" + +#: src/filed/restore.c:883 +#, c-format +msgid "Signature validation failed for %s: %s\n" +msgstr "" + +#: src/filed/restore.c:909 src/stored/bextract.c:400 +#, c-format +msgid "Seek to %s error on %s: ERR=%s\n" +msgstr "" + +#: src/filed/restore.c:936 +#, c-format +msgid "Uncompression error on file %s. ERR=%s\n" +msgstr "" + +#: src/filed/restore.c:945 src/stored/bextract.c:434 +msgid "GZIP data stream found, but GZIP not configured!\n" +msgstr "" + +#: src/filed/restore.c:968 +#, c-format +msgid "Write error in Win32 Block Decomposition on %s: %s\n" +msgstr "" + +#: src/filed/restore.c:974 src/stored/bextract.c:372 src/stored/bextract.c:422 +#, c-format +msgid "Write error on %s: %s\n" +msgstr "" + +#: src/filed/restore.c:1023 +msgid "Decryption error\n" +msgstr "" + +#: src/filed/restore.c:1113 +#, c-format +msgid "Decryption error. buf_len=%d decrypt_len=%d on file %s\n" +msgstr "" + +#: src/filed/restore.c:1217 +msgid "Open File Manager paused\n" +msgstr "" + +#: src/filed/restore.c:1221 +msgid "FAILED to pause Open File Manager\n" +msgstr "" + +#: src/filed/restore.c:1229 +#, c-format +msgid "Running as '%s'. Privmask=%#08x\n" +msgstr "" + +#: src/filed/restore.c:1231 +msgid "Failed to retrieve current UserName\n" +msgstr "" + +#: src/filed/status.c:77 +#, c-format +msgid "%s Version: %s (%s) %s %s %s %s\n" +msgstr "" + +#: src/filed/status.c:81 src/stored/status.c:86 +#, c-format +msgid "Daemon started %s, %d Job%s run since started.\n" +msgstr "" + +#: src/filed/status.c:136 +#, c-format +msgid " Sizeof: boffset_t=%d size_t=%d debug=%d trace=%d\n" +msgstr "" + +#: src/filed/status.c:155 +#, c-format +msgid "Director connected at: %s\n" +msgstr "" + +#: src/filed/status.c:157 +#, c-format +msgid "JobId %d Job %s is running.\n" +msgstr "" + +#: src/filed/status.c:160 +#, c-format +msgid " %s%s Job started: %s\n" +msgstr "" + +#: src/filed/status.c:172 +#, c-format +msgid " Files=%s Bytes=%s Bytes/sec=%s Errors=%d\n" +msgstr "" + +#: src/filed/status.c:178 +#, c-format +msgid " Files Examined=%s\n" +msgstr "" + +#: src/filed/status.c:183 +#, c-format +msgid " Processing file: %s\n" +msgstr "" + +#: src/filed/status.c:194 +msgid " SDSocket closed.\n" +msgstr "" + +#: src/filed/status.c:328 src/filed/status.c:352 src/stored/status.c:636 +#: src/stored/status.c:659 +#, c-format +msgid "Bad .status command: %s\n" +msgstr "" + +#: src/filed/status.c:329 +msgid "2900 Bad .status command, missing argument.\n" +msgstr "" + +#: src/filed/status.c:353 +msgid "2900 Bad .status command, wrong argument.\n" +msgstr "" + +#: src/filed/status.c:390 src/stored/status.c:577 +msgid "Init Catalog" +msgstr "" + +#: src/filed/status.c:393 src/stored/status.c:580 +msgid "Volume to Catalog" +msgstr "" + +#: src/filed/status.c:396 src/stored/status.c:583 +msgid "Disk to Catalog" +msgstr "" + +#: src/filed/status.c:399 src/stored/status.c:586 +msgid "Data" +msgstr "" + +#: src/filed/status.c:405 src/lib/util.c:361 src/stored/status.c:592 +msgid "Unknown Job Level" +msgstr "" + +#: src/filed/status.c:421 +msgid "Bacula Client: Idle" +msgstr "" + +#: src/filed/status.c:432 +msgid "Bacula Client: Running" +msgstr "" + +#: src/filed/status.c:446 +msgid "Bacula Client: Last Job Canceled" +msgstr "" + +#: src/filed/status.c:450 +msgid "Bacula Client: Last Job Failed" +msgstr "" + +#: src/filed/status.c:454 +msgid "Bacula Client: Last Job had Warnings" +msgstr "" + +#: src/filed/verify.c:53 +#, c-format +msgid "Cannot malloc %d network read buffer\n" +msgstr "" + +#: src/filed/verify.c:146 +#, c-format +msgid " Archive file skipped: %s\n" +msgstr "" + +#: src/filed/verify.c:149 +#, c-format +msgid " Recursion turned off. Directory skipped: %s\n" +msgstr "" + +#: src/filed/verify.c:153 +#, c-format +msgid " File system change prohibited. Directory skipped: %s\n" +msgstr "" + +#: src/filed/verify.c:163 +#, c-format +msgid " Unknown file type %d: %s\n" +msgstr "" + +#: src/filed/verify.c:206 src/filed/verify_vol.c:209 +#, c-format +msgid "Network error in send to Director: ERR=%s\n" +msgstr "" + +#: src/filed/verify.c:352 +#, c-format +msgid "Error reading file %s: ERR=%s\n" +msgstr "" + +#: src/filed/verify_vol.c:65 +msgid "Storage command not issued before Verify.\n" +msgstr "" + +#: src/filed/verify_vol.c:145 +#, c-format +msgid "Error scanning record header: %s\n" +msgstr "" + +#: src/findlib/attribs.c:408 +#, c-format +msgid "File size of restored file %s not correct. Original %s, restored %s.\n" +msgstr "" + +#: src/findlib/attribs.c:434 src/findlib/attribs.c:441 +#, c-format +msgid "Unable to set file owner %s: ERR=%s\n" +msgstr "" + +#: src/findlib/attribs.c:447 +#, c-format +msgid "Unable to set file modes %s: ERR=%s\n" +msgstr "" + +#: src/findlib/attribs.c:457 +#, c-format +msgid "Unable to set file times %s: ERR=%s\n" +msgstr "" + +#: src/findlib/attribs.c:471 +#, c-format +msgid "Unable to set file flags %s: ERR=%s\n" +msgstr "" + +#: src/findlib/attribs.c:714 +#, c-format +msgid "Error in %s file %s: ERR=%s\n" +msgstr "" + +#: src/findlib/attribs.c:731 +#, c-format +msgid "Error in %s: ERR=%s\n" +msgstr "" + +#: src/findlib/bfile.c:82 +msgid "Unix attributes" +msgstr "" + +#: src/findlib/bfile.c:84 +msgid "File data" +msgstr "" + +#: src/findlib/bfile.c:86 +msgid "MD5 digest" +msgstr "" + +#: src/findlib/bfile.c:88 +msgid "GZIP data" +msgstr "" + +#: src/findlib/bfile.c:90 +msgid "Extended attributes" +msgstr "" + +#: src/findlib/bfile.c:92 +msgid "Sparse data" +msgstr "" + +#: src/findlib/bfile.c:94 +msgid "GZIP sparse data" +msgstr "" + +#: src/findlib/bfile.c:96 +msgid "Program names" +msgstr "" + +#: src/findlib/bfile.c:98 +msgid "Program data" +msgstr "" + +#: src/findlib/bfile.c:100 +msgid "SHA1 digest" +msgstr "" + +#: src/findlib/bfile.c:102 +msgid "Win32 data" +msgstr "" + +#: src/findlib/bfile.c:104 +msgid "Win32 GZIP data" +msgstr "" + +#: src/findlib/bfile.c:106 +msgid "MacOS Fork data" +msgstr "" + +#: src/findlib/bfile.c:108 +msgid "HFS+ attribs" +msgstr "" + +#: src/findlib/bfile.c:110 +msgid "Standard Unix ACL attribs" +msgstr "" + +#: src/findlib/bfile.c:112 +msgid "Default Unix ACL attribs" +msgstr "" + +#: src/findlib/bfile.c:114 +msgid "SHA256 digest" +msgstr "" + +#: src/findlib/bfile.c:116 +msgid "SHA512 digest" +msgstr "" + +#: src/findlib/bfile.c:118 +msgid "Signed digest" +msgstr "" + +#: src/findlib/bfile.c:120 +msgid "Encrypted File data" +msgstr "" + +#: src/findlib/bfile.c:122 +msgid "Encrypted Win32 data" +msgstr "" + +#: src/findlib/bfile.c:124 +msgid "Encrypted session data" +msgstr "" + +#: src/findlib/bfile.c:126 +msgid "Encrypted GZIP data" +msgstr "" + +#: src/findlib/bfile.c:128 +msgid "Encrypted Win32 GZIP data" +msgstr "" + +#: src/findlib/bfile.c:130 +msgid "Encrypted MacOS fork data" +msgstr "" + +#: src/findlib/create_file.c:123 +#, c-format +msgid "File skipped. Not newer: %s\n" +msgstr "" + +#: src/findlib/create_file.c:130 +#, c-format +msgid "File skipped. Not older: %s\n" +msgstr "" + +#: src/findlib/create_file.c:136 +#, c-format +msgid "File skipped. Already exists: %s\n" +msgstr "" + +#: src/findlib/create_file.c:162 +#, c-format +msgid "File %s already exists and could not be replaced. ERR=%s.\n" +msgstr "" + +#: src/findlib/create_file.c:214 src/findlib/create_file.c:277 +#: src/findlib/create_file.c:370 +#, c-format +msgid "bpkt already open fid=%d\n" +msgstr "" + +#: src/findlib/create_file.c:222 +#, c-format +msgid "Could not create %s: ERR=%s\n" +msgstr "" + +#: src/findlib/create_file.c:236 +#, c-format +msgid "Cannot make fifo %s: ERR=%s\n" +msgstr "" + +#: src/findlib/create_file.c:254 +#, c-format +msgid "Cannot make node %s: ERR=%s\n" +msgstr "" + +#: src/findlib/create_file.c:299 +#, c-format +msgid "Could not symlink %s -> %s: ERR=%s\n" +msgstr "" + +#: src/findlib/create_file.c:324 src/findlib/create_file.c:335 +#, c-format +msgid "Could not restore file flags for file %s: ERR=%s\n" +msgstr "" + +#: src/findlib/create_file.c:328 src/findlib/create_file.c:343 +#, c-format +msgid "Could not hard link %s -> %s: ERR=%s\n" +msgstr "" + +#: src/findlib/create_file.c:339 +#, c-format +msgid "Could not reset file flags for file %s: ERR=%s\n" +msgstr "" + +#: src/findlib/create_file.c:402 +#, c-format +msgid "Original file %s not saved: type=%d\n" +msgstr "" + +#: src/findlib/create_file.c:405 +#, c-format +msgid "Unknown file type %d; not restored: %s\n" +msgstr "" + +#: src/findlib/create_file.c:449 +#, c-format +msgid "Zero length filename: %s\n" +msgstr "" + +#: src/findlib/enable_priv.c:92 +msgid "AdjustTokenPrivileges set " +msgstr "" + +#: src/findlib/find_one.c:228 +#, c-format +msgid "Cannot stat file %s: ERR=%s\n" +msgstr "" + +#: src/findlib/find_one.c:234 +#, c-format +msgid "%s mtime changed during backup.\n" +msgstr "" + +#: src/findlib/find_one.c:240 +#, c-format +msgid "%s ctime changed during backup.\n" +msgstr "" + +#: src/findlib/find_one.c:246 src/findlib/find_one.c:253 +#, c-format +msgid "%s size changed during backup.\n" +msgstr "" + +#: src/findlib/find_one.c:310 +#, c-format +msgid "Top level directory \"%s\" has unlisted fstype \"%s\"\n" +msgstr "" + +#: src/findlib/find_one.c:325 +#, c-format +msgid "Top level directory \"%s\" has an unlisted drive type \"%s\"\n" +msgstr "" + +#: src/findlib/makepath.c:116 +#, c-format +msgid "Cannot create directory %s: ERR=%s\n" +msgstr "" + +#: src/findlib/makepath.c:120 src/findlib/makepath.c:398 +#, c-format +msgid "%s exists but is not a directory\n" +msgstr "" + +#: src/findlib/makepath.c:229 +#, c-format +msgid "%c: is not a valid drive\n" +msgstr "" + +#: src/findlib/makepath.c:296 src/findlib/makepath.c:357 +#: src/findlib/makepath.c:417 +#, c-format +msgid "Cannot change owner and/or group of %s: ERR=%s\n" +msgstr "" + +#: src/findlib/makepath.c:317 +#, c-format +msgid "Cannot chdir to directory, %s: ERR=%s\n" +msgstr "" + +#: src/findlib/makepath.c:372 src/findlib/makepath.c:388 +#: src/findlib/makepath.c:422 +#, c-format +msgid "Cannot change permissions of %s: ERR=%s\n" +msgstr "" + +#: src/findlib/save-cwd.c:48 +#, c-format +msgid "Cannot open current directory: %s\n" +msgstr "" + +#: src/findlib/save-cwd.c:62 +#, c-format +msgid "Current directory: %s\n" +msgstr "" + +#: src/findlib/save-cwd.c:84 +#, c-format +msgid "Cannot get current directory: %s\n" +msgstr "" + +#: src/findlib/save-cwd.c:105 +#, c-format +msgid "Cannot return to %s from %s: %s\n" +msgstr "" + +#: src/findlib/save-cwd.c:109 +#, c-format +msgid "Cannot return to saved working directory from %s: %s\n" +msgstr "" + +#: src/findlib/save-cwd.c:115 +#, c-format +msgid "Cannot return to %s: %s\n" +msgstr "" + +#: src/findlib/save-cwd.c:119 +#, c-format +msgid "Cannot return to saved working directory: %s\n" +msgstr "" + +#: src/gnome2-console/authenticate.c:87 +#, c-format +msgid "%s: Director authorization problem.\n" +msgstr "" + +#: src/gnome2-console/authenticate.c:88 +msgid "Director authorization problem.\n" +msgstr "" + +#: src/gnome2-console/authenticate.c:90 +msgid "" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" + +#: src/gnome2-console/authenticate.c:100 +#, c-format +msgid "%s: Bad response to Hello command: ERR=%s\n" +msgstr "" + +#: src/gnome2-console/authenticate.c:102 +msgid "The Director is probably not running.\n" +msgstr "" + +#: src/gnome2-console/console.c:102 +#, c-format +msgid "" +"\n" +"Version: %s (%s) %s %s %s\n" +"\n" +"Usage: bgnome-console [-s] [-c config_file] [-d debug_level] [config_file]\n" +" -c set configuration file to file\n" +" -dnn set debug level to nn\n" +" -s no signals\n" +" -t test - read configuration and exit\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/gnome2-console/console.c:234 +#, c-format +msgid "Pthread cond init error = %s\n" +msgstr "" + +#: src/gnome2-console/console.c:379 +msgid " Not Connected" +msgstr "" + +#: src/gnome2-console/console.c:500 +#, c-format +msgid " Connecting to Director %s:%d" +msgstr "" + +#: src/gnome2-console/console.c:501 +#, c-format +msgid "" +"Connecting to Director %s:%d\n" +"\n" +msgstr "" + +#: src/gnome2-console/console.c:516 src/wx-console/console_thread.cpp:381 +#, c-format +msgid "Passphrase for Console \"%s\" TLS private key: " +msgstr "" + +#: src/gnome2-console/console.c:538 src/wx-console/console_thread.cpp:402 +#, c-format +msgid "Passphrase for Director \"%s\" TLS private key: " +msgstr "" + +#: src/gnome2-console/console.c:557 src/tray-monitor/tray-monitor.c:907 +#: src/wx-console/console_thread.cpp:420 +msgid "Director daemon" +msgstr "" + +#: src/gnome2-console/console.c:569 +msgid " Initializing ..." +msgstr "" + +#: src/gnome2-console/console.c:605 +msgid " Connected" +msgstr "" + +#: src/gnome2-console/console.c:613 +msgid " Processing command ..." +msgstr "" + +#: src/gnome2-console/console.c:648 +msgid " At prompt waiting for input ..." +msgstr "" + +#: src/gnome2-console/console.c:768 +msgid " Ready" +msgstr "" + +#: src/gnome2-console/console_conf.c:147 +#, c-format +msgid "Console: name=%s\n" +msgstr "" + +#: src/gnome2-console/console_conf.c:150 src/tray-monitor/tray_conf.c:195 +#, c-format +msgid "ConsoleFont: name=%s font face=%s\n" +msgstr "" + +#: src/gnome2-console/interface.c:202 +msgid "Bacula Console" +msgstr "" + +#: src/gnome2-console/interface.c:235 src/wx-console/wxbmainframe.cpp:248 +#: src/wx-console/wxbmainframe.cpp:619 +msgid "Connect" +msgstr "" + +#: src/gnome2-console/interface.c:238 +msgid "Connect to Director" +msgstr "" + +#: src/gnome2-console/interface.c:242 +msgid "Run" +msgstr "" + +#: src/gnome2-console/interface.c:245 src/gnome2-console/interface.c:682 +#: src/gnome2-console/interface.c:696 +msgid "Run a Job" +msgstr "" + +#: src/gnome2-console/interface.c:249 +msgid "Dir Status" +msgstr "" + +#: src/gnome2-console/interface.c:255 src/lib/util.c:293 +#: src/wx-console/wxbrestorepanel.cpp:404 +#: src/wx-console/wxbrestorepanel.cpp:1974 +msgid "Restore" +msgstr "" + +#: src/gnome2-console/interface.c:261 +msgid "Label" +msgstr "" + +#: src/gnome2-console/interface.c:267 +msgid "Msgs" +msgstr "" + +#: src/gnome2-console/interface.c:270 +msgid "Display Messages" +msgstr "" + +#: src/gnome2-console/interface.c:294 +msgid " Command: " +msgstr "" + +#: src/gnome2-console/interface.c:303 +msgid "Enter Commands Here" +msgstr "" + +#: src/gnome2-console/interface.c:314 +msgid " Status: " +msgstr "" + +#: src/gnome2-console/interface.c:323 src/gnome2-console/interface.c:1709 +msgid " " +msgstr "" + +#: src/gnome2-console/interface.c:424 +msgid "About Bacula Console" +msgstr "" + +#: src/gnome2-console/interface.c:439 +msgid "Bacula Console\n" +msgstr "" + +#: src/gnome2-console/interface.c:448 +msgid "Copyright (c) 2000 - 2004, Kern Sibbald and John Walker" +msgstr "" + +#: src/gnome2-console/interface.c:453 +msgid "Authors: Kern Sibbald and John Walker" +msgstr "" + +#: src/gnome2-console/interface.c:458 +msgid "It comes by night and sucks the essence from your computers" +msgstr "" + +#: src/gnome2-console/interface.c:523 src/gnome2-console/interface.c:540 +msgid "Select Director" +msgstr "" + +#: src/gnome2-console/interface.c:570 +msgid " " +msgstr "" + +#: src/gnome2-console/interface.c:715 src/gnome2-console/interface.c:1631 +msgid "Job:" +msgstr "" + +#: src/gnome2-console/interface.c:736 +msgid " Type:" +msgstr "" + +#: src/gnome2-console/interface.c:756 src/gnome2-console/interface.c:785 +#: src/gnome2-console/interface.c:1284 src/gnome2-console/interface.c:1680 +msgid " " +msgstr "" + +#: src/gnome2-console/interface.c:765 src/gnome2-console/interface.c:1660 +#: src/wx-console/wxbrestorepanel.cpp:1886 +msgid "Client:" +msgstr "" + +#: src/gnome2-console/interface.c:795 src/gnome2-console/interface.c:1689 +msgid "FileSet: " +msgstr "" + +#: src/gnome2-console/interface.c:820 src/wx-console/wxbrestorepanel.cpp:1893 +msgid "Priority:" +msgstr "" + +#: src/gnome2-console/interface.c:836 +msgid "Level:" +msgstr "" + +#: src/gnome2-console/interface.c:857 +msgid " " +msgstr "" + +#: src/gnome2-console/interface.c:867 src/gnome2-console/interface.c:1433 +#: src/gnome2-console/interface.c:1718 +msgid "Pool:" +msgstr "" + +#: src/gnome2-console/interface.c:888 src/gnome2-console/interface.c:919 +#: src/gnome2-console/interface.c:949 src/gnome2-console/interface.c:969 +#: src/gnome2-console/interface.c:989 src/gnome2-console/interface.c:1009 +#: src/gnome2-console/interface.c:1014 src/gnome2-console/interface.c:1483 +#: src/gnome2-console/interface.c:1739 src/gnome2-console/interface.c:1769 +#: src/gnome2-console/interface.c:1788 src/gnome2-console/interface.c:1793 +msgid " " +msgstr "" + +#: src/gnome2-console/interface.c:898 src/gnome2-console/interface.c:1407 +#: src/gnome2-console/interface.c:1748 src/wx-console/wxbrestorepanel.cpp:1888 +msgid "Storage:" +msgstr "" + +#: src/gnome2-console/interface.c:929 +msgid "Messages:" +msgstr "" + +#: src/gnome2-console/interface.c:959 +msgid "Where: " +msgstr "" + +#: src/gnome2-console/interface.c:979 src/wx-console/wxbrestorepanel.cpp:1890 +msgid "When:" +msgstr "" + +#: src/gnome2-console/interface.c:999 src/wx-console/wxbrestorepanel.cpp:1871 +msgid "Bootstrap:" +msgstr "" + +#: src/gnome2-console/interface.c:1194 +msgid "Restore File Selection" +msgstr "" + +#: src/gnome2-console/interface.c:1238 +msgid "Current dir:" +msgstr "" + +#: src/gnome2-console/interface.c:1265 +msgid "Files Selected: " +msgstr "" + +#: src/gnome2-console/interface.c:1385 src/gnome2-console/interface.c:1396 +msgid "Label a Volume" +msgstr "" + +#: src/gnome2-console/interface.c:1458 +msgid "Volume Name:" +msgstr "" + +#: src/gnome2-console/interface.c:1472 +msgid "Slot:" +msgstr "" + +#: src/gnome2-console/interface.c:1598 +msgid "Restore Files Dialog" +msgstr "" + +#: src/gnome2-console/interface.c:1613 +msgid "Restore Files" +msgstr "" + +#: src/gnome2-console/interface.c:1778 +msgid "Before:" +msgstr "" + +#: src/gnome2-console/interface.c:1824 +msgid "Select Files" +msgstr "" + +#: src/gnome2-console/interface.c:1907 +msgid "Progress" +msgstr "" + +#: src/gnome2-console/restore.c:149 +msgid "Mark" +msgstr "" + +#: src/gnome2-console/restore.c:149 +msgid "File" +msgstr "" + +#: src/gnome2-console/restore.c:149 +msgid "Mode" +msgstr "" + +#: src/gnome2-console/restore.c:149 src/wx-console/wxbrestorepanel.cpp:306 +msgid "User" +msgstr "" + +#: src/gnome2-console/restore.c:149 src/wx-console/wxbrestorepanel.cpp:310 +msgid "Group" +msgstr "" + +#: src/gnome2-console/restore.c:149 src/wx-console/wxbrestorepanel.cpp:294 +msgid "Size" +msgstr "" + +#: src/gnome2-console/restore.c:149 src/wx-console/wxbrestorepanel.cpp:298 +msgid "Date" +msgstr "" + +#: src/gnome2-console/support.c:60 src/gnome2-console/support.c:85 +#, c-format +msgid "Couldn't find pixmap file: %s" +msgstr "" + +#: src/lib/address_conf.c:63 +#, c-format +msgid "Only ipv4 and ipv6 are supported (%d)\n" +msgstr "" + +#: src/lib/address_conf.c:67 +#, c-format +msgid "Only ipv4 is supported (%d)\n" +msgstr "" + +#: src/lib/address_conf.c:176 +#, c-format +msgid "It was tried to assign a ipv6 address to a ipv4(%d)\n" +msgstr "" + +#: src/lib/address_conf.c:185 +#, c-format +msgid "It was tried to assign a ipv4 address to a ipv6(%d)\n" +msgstr "" + +#: src/lib/address_conf.c:264 +#, c-format +msgid "Can't add default address (%s)\n" +msgstr "" + +#: src/lib/address_conf.c:293 +msgid "the old style addresses cannot be mixed with new style" +msgstr "" + +#: src/lib/address_conf.c:314 +#, c-format +msgid "can't resolve service(%s)" +msgstr "" + +#: src/lib/address_conf.c:323 +#, c-format +msgid "can't resolve hostname(%s) %s" +msgstr "" + +#: src/lib/address_conf.c:413 src/lib/address_conf.c:444 +#, c-format +msgid "Expected a block begin { , got: %s" +msgstr "" + +#: src/lib/address_conf.c:418 +msgid "Empty addr block is not allowed" +msgstr "" + +#: src/lib/address_conf.c:422 +#, c-format +msgid "Expected a string, got: %s" +msgstr "" + +#: src/lib/address_conf.c:431 +#, c-format +msgid "Expected a string [ip|ipv4|ipv6], got: %s" +msgstr "" + +#: src/lib/address_conf.c:435 +#, c-format +msgid "Expected a string [ip|ipv4], got: %s" +msgstr "" + +#: src/lib/address_conf.c:440 src/lib/address_conf.c:470 +#, c-format +msgid "Expected a equal =, got: %s" +msgstr "" + +#: src/lib/address_conf.c:451 src/lib/address_conf.c:466 +#, c-format +msgid "Expected a identifier [addr|port], got: %s" +msgstr "" + +#: src/lib/address_conf.c:456 +msgid "Only one port per address block" +msgstr "" + +#: src/lib/address_conf.c:462 +msgid "Only one addr per address block" +msgstr "" + +#: src/lib/address_conf.c:478 +#, c-format +msgid "Expected a number or a string, got: %s" +msgstr "" + +#: src/lib/address_conf.c:484 src/lib/address_conf.c:517 +#, c-format +msgid "Expected an IP number or a hostname, got: %s" +msgstr "" + +#: src/lib/address_conf.c:490 +msgid "State machine missmatch" +msgstr "" + +#: src/lib/address_conf.c:496 src/lib/address_conf.c:508 +#, c-format +msgid "Expected a end of block }, got: %s" +msgstr "" + +#: src/lib/address_conf.c:502 +#, c-format +msgid "Can't add hostname(%s) and port(%s) to addrlist (%s)" +msgstr "" + +#: src/lib/address_conf.c:522 src/lib/address_conf.c:536 +#, c-format +msgid "can't add port (%s) to (%s)" +msgstr "" + +#: src/lib/address_conf.c:531 +#, c-format +msgid "Expected a port number or string, got: %s" +msgstr "" + +#: src/lib/attr.c:76 +#, c-format +msgid "Error scanning attributes: %s\n" +msgstr "" + +#: src/lib/berrno.c:62 +msgid "Child exited normally." +msgstr "" + +#: src/lib/berrno.c:69 +msgid "Unknown error during program execvp" +msgstr "" + +#: src/lib/berrno.c:72 +#, c-format +msgid "Child exited with code %d" +msgstr "" + +#: src/lib/berrno.c:80 +#, c-format +msgid "Child died from signal %d: %s" +msgstr "" + +#: src/lib/berrno.c:86 +msgid "Invalid errno. No error message possible." +msgstr "" + +#: src/lib/bget_msg.c:99 +msgid "Status OK\n" +msgstr "" + +#: src/lib/bget_msg.c:103 +#, c-format +msgid "bget_msg: unknown signal %d\n" +msgstr "" + +#: src/lib/bnet.c:118 +#, c-format +msgid "Attr spool write error. ERR=%s\n" +msgstr "" + +#: src/lib/bnet.c:244 src/lib/bnet.c:283 +msgid "TLS connection initialization failed.\n" +msgstr "" + +#: src/lib/bnet.c:252 +msgid "TLS Negotiation failed.\n" +msgstr "" + +#: src/lib/bnet.c:258 src/lib/bnet.c:298 +msgid "" +"TLS certificate verification failed. Peer certificate did not match a " +"required commonName\n" +msgstr "" + +#: src/lib/bnet.c:305 +#, c-format +msgid "" +"TLS host certificate verification failed. Host %s did not match presented " +"certificate\n" +msgstr "" + +#: src/lib/bnet.c:322 +msgid "TLS enabled but not configured.\n" +msgstr "" + +#: src/lib/bnet.c:328 +msgid "TLS enable but not configured.\n" +msgstr "" + +#: src/lib/bnet.c:386 +msgid "No problem." +msgstr "" + +#: src/lib/bnet.c:389 +msgid "Authoritative answer for host not found." +msgstr "" + +#: src/lib/bnet.c:392 +msgid "Non-authoritative for host not found, or ServerFail." +msgstr "" + +#: src/lib/bnet.c:395 +msgid "Non-recoverable errors, FORMERR, REFUSED, or NOTIMP." +msgstr "" + +#: src/lib/bnet.c:398 +msgid "Valid name, no data record of resquested type." +msgstr "" + +#: src/lib/bnet.c:401 +msgid "Unknown error." +msgstr "" + +#: src/lib/bnet.c:655 +#, c-format +msgid "Unknown sig %d" +msgstr "" + +#: src/lib/bnet_server.c:109 +#, c-format +msgid "Cannot open stream socket. ERR=%s. Current %s All %s\n" +msgstr "" + +#: src/lib/bnet_server.c:122 src/lib/bnet_server.c:275 +#, c-format +msgid "Cannot set SO_REUSEADDR on socket: %s\n" +msgstr "" + +#: src/lib/bnet_server.c:131 +#, c-format +msgid "Cannot bind port %d: ERR=%s: Retrying ...\n" +msgstr "" + +#: src/lib/bnet_server.c:136 +#, c-format +msgid "Cannot bind port %d: ERR=%s.\n" +msgstr "" + +#: src/lib/bnet_server.c:147 +#, c-format +msgid "Could not init client queue: ERR=%s\n" +msgstr "" + +#: src/lib/bnet_server.c:166 src/lib/bnet_server.c:338 +#, c-format +msgid "Error in select: %s\n" +msgstr "" + +#: src/lib/bnet_server.c:187 src/lib/bnet_server.c:357 +#, c-format +msgid "Connection from %s:%d refused by hosts.access\n" +msgstr "" + +#: src/lib/bnet_server.c:202 src/lib/bnet_server.c:370 +#, c-format +msgid "Cannot set SO_KEEPALIVE on socket: %s\n" +msgstr "" + +#: src/lib/bnet_server.c:213 +msgid "Could not create client BSOCK.\n" +msgstr "" + +#: src/lib/bnet_server.c:220 +#, c-format +msgid "Could not add job to client queue: ERR=%s\n" +msgstr "" + +#: src/lib/bnet_server.c:237 +#, c-format +msgid "Could not destroy client queue: ERR=%s\n" +msgstr "" + +#: src/lib/bnet_server.c:265 +#, c-format +msgid "Cannot open stream socket: %s\n" +msgstr "" + +#: src/lib/bnet_server.c:295 +#, c-format +msgid "Cannot bind port %d: ERR=%s: retrying ...\n" +msgstr "" + +#: src/lib/bnet_server.c:301 +msgid "Server socket" +msgstr "" + +#: src/lib/bnet_server.c:301 src/lib/bnet_server.c:398 +msgid "client" +msgstr "" + +#: src/lib/bnet_server.c:386 +#, c-format +msgid "Socket accept error for %s. ERR=%s\n" +msgstr "" + +#: src/lib/bpipe.c:362 src/lib/bpipe.c:452 +msgid "Program killed by Bacula watchdog (timeout)\n" +msgstr "" + +#: src/lib/bsys.c:208 src/lib/bsys.c:225 src/lib/bsys.c:249 src/lib/bsys.c:262 +#, c-format +msgid "Out of memory: ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:304 +msgid "Buffer overflow.\n" +msgstr "" + +#: src/lib/bsys.c:370 +msgid "Bad errno" +msgstr "" + +#: src/lib/bsys.c:387 +msgid "Possible mutex deadlock.\n" +msgstr "" + +#: src/lib/bsys.c:391 src/lib/bsys.c:424 +#, c-format +msgid "Mutex lock failure. ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:394 +msgid "Possible mutex deadlock resolved.\n" +msgstr "" + +#: src/lib/bsys.c:407 +#, c-format +msgid "Mutex unlock not locked. ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:412 src/lib/bsys.c:434 +#, c-format +msgid "Mutex unlock failure. ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:448 +#, c-format +msgid "Memset for %d bytes at %s:%d\n" +msgstr "" + +#: src/lib/bsys.c:478 +#, c-format +msgid "Cannot open pid file. %s ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:493 +#, c-format +msgid "" +"%s is already running. pid=%d\n" +"Check file %s\n" +msgstr "" + +#: src/lib/bsys.c:507 +#, c-format +msgid "Could not open pid file. %s ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:615 +#, c-format +msgid "Could not create state file. %s ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:634 +#, c-format +msgid "Write final hdr error: ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:670 +#, c-format +msgid "Could not find userid=%s: ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:676 +#, c-format +msgid "Could not find password entry. ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:689 +#, c-format +msgid "Could not find group=%s: ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:697 +#, c-format +msgid "Could not initgroups for group=%s, userid=%s: ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:700 +#, c-format +msgid "Could not initgroups for userid=%s: ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:707 +#, c-format +msgid "Could not set group=%s: ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:713 +#, c-format +msgid "Could not set specified userid: %s\n" +msgstr "" + +#: src/lib/btimers.c:254 +msgid "stop_btimer called with NULL btimer_id\n" +msgstr "" + +#: src/lib/cram-md5.c:109 src/lib/cram-md5.c:137 +msgid "1999 Authorization failed.\n" +msgstr "" + +#: src/lib/crypto.c:435 +msgid "Unable to open certificate file" +msgstr "" + +#: src/lib/crypto.c:442 +msgid "Unable to read certificate from file" +msgstr "" + +#: src/lib/crypto.c:448 +msgid "Unable to extract public key from certificate" +msgstr "" + +#: src/lib/crypto.c:455 +msgid "" +"Provided certificate does not include the required subjectKeyIdentifier " +"extension." +msgstr "" + +#: src/lib/crypto.c:462 +#, c-format +msgid "Unsupported key type provided: %d\n" +msgstr "" + +#: src/lib/crypto.c:499 src/lib/crypto.c:547 +msgid "Unable to open private key file" +msgstr "" + +#: src/lib/crypto.c:529 src/lib/crypto.c:563 +msgid "Unable to read private key from file" +msgstr "" + +#: src/lib/crypto.c:622 +#, c-format +msgid "Unsupported digest type: %d\n" +msgstr "" + +#: src/lib/crypto.c:636 +msgid "OpenSSL digest initialization failed" +msgstr "" + +#: src/lib/crypto.c:650 +msgid "OpenSSL digest update failed" +msgstr "" + +#: src/lib/crypto.c:668 +msgid "OpenSSL digest finalize failed" +msgstr "" + +#: src/lib/crypto.c:766 +msgid "OpenSSL digest_new failed" +msgstr "" + +#: src/lib/crypto.c:772 +msgid "OpenSSL sign get digest failed" +msgstr "" + +#: src/lib/crypto.c:811 src/lib/crypto.c:815 +msgid "OpenSSL digest Verify final failed" +msgstr "" + +#: src/lib/crypto.c:820 +msgid "No signers found for crypto verify.\n" +msgstr "" + +#: src/lib/crypto.c:881 +msgid "Signature creation failed" +msgstr "" + +#: src/lib/crypto.c:959 +msgid "Signature decoding failed" +msgstr "" + +#: src/lib/crypto.c:1036 +msgid "Unsupported cipher type specified\n" +msgstr "" + +#: src/lib/crypto.c:1185 +msgid "CryptoData decoding failed" +msgstr "" + +#: src/lib/crypto.c:1229 +msgid "Failure decrypting the session key" +msgstr "" + +#: src/lib/crypto.c:1280 +#, c-format +msgid "Unsupported contentEncryptionAlgorithm: %d\n" +msgstr "" + +#: src/lib/crypto.c:1290 src/lib/crypto.c:1296 +msgid "OpenSSL cipher context initialization failed" +msgstr "" + +#: src/lib/crypto.c:1303 +msgid "Encryption session provided an invalid symmetric key" +msgstr "" + +#: src/lib/crypto.c:1309 +msgid "Encryption session provided an invalid IV" +msgstr "" + +#: src/lib/crypto.c:1315 +msgid "OpenSSL cipher context key/IV initialization failed" +msgstr "" + +#: src/lib/crypto.c:1385 +#, c-format +msgid "Unable to init OpenSSL threading: ERR=%s\n" +msgstr "" + +#: src/lib/crypto.c:1398 +msgid "Failed to seed OpenSSL PRNG\n" +msgstr "" + +#: src/lib/crypto.c:1424 +msgid "Failed to save OpenSSL PRNG\n" +msgstr "" + +#: src/lib/crypto.c:1485 +#, c-format +msgid "Unsupported digest type=%d specified\n" +msgstr "" + +#: src/lib/crypto.c:1505 +#, c-format +msgid "SHA1Update() returned an error: %d\n" +msgstr "" + +#: src/lib/crypto.c:1648 +msgid "No error" +msgstr "" + +#: src/lib/crypto.c:1650 +msgid "Signer not found" +msgstr "" + +#: src/lib/crypto.c:1652 +msgid "Recipient not found" +msgstr "" + +#: src/lib/crypto.c:1654 +msgid "Unsupported digest algorithm" +msgstr "" + +#: src/lib/crypto.c:1656 +msgid "Unsupported encryption algorithm" +msgstr "" + +#: src/lib/crypto.c:1658 +msgid "Signature is invalid" +msgstr "" + +#: src/lib/crypto.c:1660 +msgid "Decryption error" +msgstr "" + +#: src/lib/crypto.c:1663 +msgid "Internal error" +msgstr "" + +#: src/lib/crypto.c:1665 +msgid "Unknown error" +msgstr "" + +#: src/lib/daemon.c:66 +#, c-format +msgid "Cannot fork to become daemon: %s\n" +msgstr "" + +#: src/lib/edit.c:446 +#, c-format +msgid "Illegal character \"%c\" in name.\n" +msgstr "" + +#: src/lib/edit.c:453 +msgid "Name too long.\n" +msgstr "" + +#: src/lib/jcr.c:297 +msgid "NULL jcr.\n" +msgstr "" + +#: src/lib/jcr.c:430 +#, c-format +msgid "JCR use_count=%d JobId=%d\n" +msgstr "" + +#: src/lib/jcr.c:762 +#, c-format +msgid "" +"Watchdog sending kill after %d secs to thread stalled reading Storage " +"daemon.\n" +msgstr "" + +#: src/lib/jcr.c:774 +#, c-format +msgid "" +"Watchdog sending kill after %d secs to thread stalled reading File daemon.\n" +msgstr "" + +#: src/lib/jcr.c:786 +#, c-format +msgid "" +"Watchdog sending kill after %d secs to thread stalled reading Director.\n" +msgstr "" + +#: src/lib/lex.c:93 src/wx-console/console_thread.cpp:208 +#, c-format +msgid "Problem probably begins at line %d.\n" +msgstr "" + +#: src/lib/lex.c:98 src/wx-console/console_thread.cpp:213 +#, c-format +msgid "" +"Config error: %s\n" +" : line %d, col %d of file %s\n" +"%s\n" +"%s" +msgstr "" + +#: src/lib/lex.c:102 +#, c-format +msgid "Config error: %s\n" +msgstr "" + +#: src/lib/lex.c:131 +msgid "Close of NULL file\n" +msgstr "" + +#: src/lib/lex.c:226 +msgid "get_char: called after EOF\n" +msgstr "" + +#: src/lib/lex.c:268 +#, c-format +msgid "Config token too long, file: %s, line %d, begins at line %d\n" +msgstr "" + +#: src/lib/lex.c:292 +msgid "none" +msgstr "" + +#: src/lib/lex.c:293 +msgid "comment" +msgstr "" + +#: src/lib/lex.c:294 +msgid "number" +msgstr "" + +#: src/lib/lex.c:295 +msgid "ip_addr" +msgstr "" + +#: src/lib/lex.c:296 +msgid "identifier" +msgstr "" + +#: src/lib/lex.c:297 +msgid "string" +msgstr "" + +#: src/lib/lex.c:298 +msgid "quoted_string" +msgstr "" + +#: src/lib/lex.c:299 +msgid "UTF-8 Byte Order Mark" +msgstr "" + +#: src/lib/lex.c:300 +msgid "UTF-16le Byte Order Mark" +msgstr "" + +#: src/lib/lex.c:338 src/lib/lex.c:344 +#, c-format +msgid "expected a positive integer number, got: %s" +msgstr "" + +#: src/lib/lex.c:454 +msgid "" +"This config file appears to be in an unsupported Unicode format (UTF-16be). " +"Please resave as UTF-8\n" +msgstr "" + +#: src/lib/lex.c:583 +#, c-format +msgid "Cannot open included config file %s: %s\n" +msgstr "" + +#: src/lib/lex.c:642 +#, c-format +msgid "expected an integer or a range, got %s: %s" +msgstr "" + +#: src/lib/lex.c:656 src/lib/lex.c:664 src/lib/lex.c:675 src/lib/lex.c:683 +#, c-format +msgid "expected an integer number, got %s: %s" +msgstr "" + +#: src/lib/lex.c:693 +#, c-format +msgid "expected a name, got %s: %s" +msgstr "" + +#: src/lib/lex.c:697 +#, c-format +msgid "name %s length %d too long, max is %d\n" +msgstr "" + +#: src/lib/lex.c:705 +#, c-format +msgid "expected a string, got %s: %s" +msgstr "" + +#: src/lib/mem_pool.c:108 +#, c-format +msgid "MemPool index %d larger than max %d\n" +msgstr "" + +#: src/lib/mem_pool.c:126 src/lib/mem_pool.c:146 src/lib/mem_pool.c:181 +#: src/lib/mem_pool.c:253 src/lib/mem_pool.c:273 src/lib/mem_pool.c:311 +#: src/lib/mem_pool.c:583 +#, c-format +msgid "Out of memory requesting %d bytes\n" +msgstr "" + +#: src/lib/message.c:268 src/lib/message.c:278 +#, c-format +msgid "Could not open console message file %s: ERR=%s\n" +msgstr "" + +#: src/lib/message.c:283 +#, c-format +msgid "Could not get con mutex: ERR=%s\n" +msgstr "" + +#: src/lib/message.c:387 +#, c-format +msgid "open mail pipe %s failed: ERR=%s\n" +msgstr "" + +#: src/lib/message.c:393 +msgid "Bacula Message" +msgstr "" + +#: src/lib/message.c:453 +msgid "open mail pipe failed.\n" +msgstr "" + +#: src/lib/message.c:465 +#, c-format +msgid "close error: ERR=%s\n" +msgstr "" + +#: src/lib/message.c:476 +#, c-format +msgid "Mail prog: %s" +msgstr "" + +#: src/lib/message.c:485 +#, c-format +msgid "" +"Mail program terminated in error.\n" +"CMD=%s\n" +"ERR=%s\n" +msgstr "" + +#: src/lib/message.c:584 src/lib/message.c:735 +#, c-format +msgid "fopen %s failed: ERR=%s\n" +msgstr "" + +#: src/lib/message.c:717 +#, c-format +msgid "" +"Operator mail program terminated in error.\n" +"CMD=%s\n" +"ERR=%s\n" +msgstr "" + +#: src/lib/message.c:1015 +#, c-format +msgid "%s: ABORTING due to ERROR in %s:%d\n" +msgstr "" + +#: src/lib/message.c:1019 +#, c-format +msgid "%s: ERROR TERMINATION at %s:%d\n" +msgstr "" + +#: src/lib/message.c:1024 +#, c-format +msgid "%s: Fatal Error because: " +msgstr "" + +#: src/lib/message.c:1026 +#, c-format +msgid "%s: Fatal Error at %s:%d because:\n" +msgstr "" + +#: src/lib/message.c:1030 +#, c-format +msgid "%s: ERROR: " +msgstr "" + +#: src/lib/message.c:1032 +#, c-format +msgid "%s: ERROR in %s:%d " +msgstr "" + +#: src/lib/message.c:1035 +#, c-format +msgid "%s: Warning: " +msgstr "" + +#: src/lib/message.c:1038 +#, c-format +msgid "%s: Security violation: " +msgstr "" + +#: src/lib/message.c:1114 +#, c-format +msgid "%s ABORTING due to ERROR\n" +msgstr "" + +#: src/lib/message.c:1117 +#, c-format +msgid "%s ERROR TERMINATION\n" +msgstr "" + +#: src/lib/message.c:1120 +#, c-format +msgid "%s: %s Fatal error: " +msgstr "" + +#: src/lib/message.c:1126 +#, c-format +msgid "%s: %s Error: " +msgstr "" + +#: src/lib/message.c:1132 +#, c-format +msgid "%s: %s Warning: " +msgstr "" + +#: src/lib/message.c:1135 +#, c-format +msgid "%s: %s Security violation: " +msgstr "" + +#: src/lib/openssl.c:118 src/lib/openssl.c:179 src/stored/dev.c:218 +#: src/stored/dev.c:236 src/stored/dev.c:243 src/stored/stored_conf.c:611 +#, c-format +msgid "Unable to init mutex: ERR=%s\n" +msgstr "" + +#: src/lib/openssl.c:140 src/lib/openssl.c:213 +#, c-format +msgid "Unable to destroy mutex: ERR=%s\n" +msgstr "" + +#: src/lib/parse_conf.c:180 +msgid "***UNKNOWN***" +msgstr "" + +#: src/lib/parse_conf.c:200 +#, c-format +msgid "Unable to initialize resource lock. ERR=%s\n" +msgstr "" + +#: src/lib/parse_conf.c:287 src/lib/parse_conf.c:306 +#, c-format +msgid "expected an =, got: %s" +msgstr "" + +#: src/lib/parse_conf.c:314 +#, c-format +msgid "Unknown item code: %d\n" +msgstr "" + +#: src/lib/parse_conf.c:354 +#, c-format +msgid "message type: %s not found" +msgstr "" + +#: src/lib/parse_conf.c:391 +#, c-format +msgid "Attempt to redefine name \"%s\" to \"%s\"." +msgstr "" + +#: src/lib/parse_conf.c:486 +#, c-format +msgid "Attempt to redefine resource \"%s\" referenced on line %d : %s\n" +msgstr "" + +#: src/lib/parse_conf.c:521 +#, c-format +msgid "Too many %s directives. Max. is %d. line %d: %s\n" +msgstr "" + +#: src/lib/parse_conf.c:531 +#, c-format +msgid "Could not find config Resource \"%s\" referenced on line %d : %s\n" +msgstr "" + +#: src/lib/parse_conf.c:593 +#, c-format +msgid "Missing config Resource \"%s\" referenced on line %d : %s\n" +msgstr "" + +#: src/lib/parse_conf.c:657 +#, c-format +msgid "expected a size number, got: %s" +msgstr "" + +#: src/lib/parse_conf.c:662 +#, c-format +msgid "expected a size, got: %s" +msgstr "" + +#: src/lib/parse_conf.c:699 src/lib/parse_conf.c:704 +#, c-format +msgid "expected a time period, got: %s" +msgstr "" + +#: src/lib/parse_conf.c:763 +#, c-format +msgid "Expected a Tape Label keyword, got: %s" +msgstr "" + +#: src/lib/parse_conf.c:819 +#, c-format +msgid "Cannot open config file \"%s\": %s\n" +msgstr "" + +#: src/lib/parse_conf.c:835 +msgid "" +"Currently we cannot handle UTF-16 source files. Please convert the conf file " +"to UTF-8\n" +msgstr "" + +#: src/lib/parse_conf.c:839 +#, c-format +msgid "Expected a Resource name identifier, got: %s" +msgstr "" + +#: src/lib/parse_conf.c:852 +#, c-format +msgid "expected resource name, got: %s" +msgstr "" + +#: src/lib/parse_conf.c:863 +#, c-format +msgid "not in resource definition: %s" +msgstr "" + +#: src/lib/parse_conf.c:888 +#, c-format +msgid "" +"Keyword \"%s\" not permitted in this resource.\n" +"Perhaps you left the trailing brace off of the previous resource." +msgstr "" + +#: src/lib/parse_conf.c:899 +msgid "Name not specified for resource" +msgstr "" + +#: src/lib/parse_conf.c:908 +#, c-format +msgid "unexpected token %d %s in resource definition" +msgstr "" + +#: src/lib/parse_conf.c:914 +#, c-format +msgid "Unknown parser state %d\n" +msgstr "" + +#: src/lib/parse_conf.c:919 +msgid "End of conf file reached with unclosed resource." +msgstr "" + +#: src/lib/pythonlib.c:127 +msgid "Could not initialize Python\n" +msgstr "" + +#: src/lib/pythonlib.c:132 +#, c-format +msgid "Could not Run Python string %s\n" +msgstr "" + +#: src/lib/pythonlib.c:144 +msgid "Could not initialize Python Job type.\n" +msgstr "" + +#: src/lib/pythonlib.c:149 +#, c-format +msgid "Could not import Python script %s/%s. Python disabled.\n" +msgstr "" + +#: src/lib/pythonlib.c:252 +msgid "Could not create Python Job Object.\n" +msgstr "" + +#: src/lib/pythonlib.c:265 src/lib/pythonlib.c:289 +#, c-format +msgid "Python function \"%s\" not found.\n" +msgstr "" + +#: src/lib/pythonlib.c:304 +#, c-format +msgid "Unknown Python daemon event %s\n" +msgstr "" + +#: src/lib/pythonlib.c:329 +#, c-format +msgid "Unable to initialize the Python lock. ERR=%s\n" +msgstr "" + +#: src/lib/res.c:66 +#, c-format +msgid "rwl_writelock failure at %s:%d: ERR=%s\n" +msgstr "" + +#: src/lib/res.c:76 +#, c-format +msgid "rwl_writeunlock failure at %s:%d:. ERR=%s\n" +msgstr "" + +#: src/lib/runscript.c:212 +#, c-format +msgid "%s: run command \"%s\"\n" +msgstr "" + +#: src/lib/runscript.c:218 +#, c-format +msgid "Runscript: %s could not execute. ERR=%s\n" +msgstr "" + +#: src/lib/runscript.c:227 +#, c-format +msgid "%s: %s\n" +msgstr "" + +#: src/lib/runscript.c:232 +#, c-format +msgid "Runscript: %s returned non-zero status=%d. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:297 +msgid "rwl_writeunlock called too many times.\n" +msgstr "" + +#: src/lib/rwlock.c:301 +msgid "rwl_writeunlock by non-owner.\n" +msgstr "" + +#: src/lib/rwlock.c:367 +#, c-format +msgid "Write lock failed. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:375 +#, c-format +msgid "Write unlock failed. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:386 +#, c-format +msgid "Read lock failed. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:394 +#, c-format +msgid "Read unlock failed. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:403 +#, c-format +msgid "Thread %d found unchanged elements %d times\n" +msgstr "" + +#: src/lib/rwlock.c:436 +#, c-format +msgid "Init rwlock failed. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:452 +#, c-format +msgid "Create thread failed. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:464 +#, c-format +msgid "Join thread failed. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:467 +#, c-format +msgid "%02d: interval %d, writes %d, reads %d\n" +msgstr "" + +#: src/lib/rwlock.c:477 +#, c-format +msgid "data %02d: value %d, %d writes\n" +msgstr "" + +#: src/lib/rwlock.c:482 +#, c-format +msgid "Total: %d thread writes, %d data writes\n" +msgstr "" + +#: src/lib/rwlock.c:554 +msgid "Try write lock" +msgstr "" + +#: src/lib/rwlock.c:560 +msgid "Try read lock" +msgstr "" + +#: src/lib/rwlock.c:615 +msgid "Create thread" +msgstr "" + +#: src/lib/rwlock.c:625 +msgid "Join thread" +msgstr "" + +#: src/lib/rwlock.c:627 +#, c-format +msgid "%02d: interval %d, updates %d, r_collisions %d, w_collisions %d\n" +msgstr "" + +#: src/lib/rwlock.c:639 +#, c-format +msgid "data %02d: value %d, %d updates\n" +msgstr "" + +#: src/lib/signal.c:68 +msgid "Invalid signal number" +msgstr "" + +#: src/lib/signal.c:94 +#, c-format +msgid "Bacula interrupted by signal %d: %s\n" +msgstr "" + +#: src/lib/signal.c:107 +#, c-format +msgid "Kaboom! %s, %s got signal %d - %s. Attempting traceback.\n" +msgstr "" + +#: src/lib/signal.c:109 +#, c-format +msgid "Kaboom! exepath=%s\n" +msgstr "" + +#: src/lib/signal.c:143 +#, c-format +msgid "Fork error: ERR=%s\n" +msgstr "" + +#: src/lib/signal.c:150 +#, c-format +msgid "Calling: %s %s %s\n" +msgstr "" + +#: src/lib/signal.c:153 +#, c-format +msgid "execv: %s failed: ERR=%s\n" +msgstr "" + +#: src/lib/signal.c:168 +#, c-format +msgid "Traceback complete, attempting cleanup ...\n" +msgstr "" + +#: src/lib/signal.c:176 +#, c-format +msgid "It looks like the traceback worked ...\n" +msgstr "" + +#: src/lib/signal.c:205 +#, c-format +msgid "BA_NSIG too small (%d) should be (%d)\n" +msgstr "" + +#: src/lib/signal.c:211 +msgid "UNKNOWN SIGNAL" +msgstr "" + +#: src/lib/signal.c:212 +msgid "Hangup" +msgstr "" + +#: src/lib/signal.c:213 +msgid "Interrupt" +msgstr "" + +#: src/lib/signal.c:214 +msgid "Quit" +msgstr "" + +#: src/lib/signal.c:215 +msgid "Illegal instruction" +msgstr "" + +#: src/lib/signal.c:216 +msgid "Trace/Breakpoint trap" +msgstr "" + +#: src/lib/signal.c:217 +msgid "Abort" +msgstr "" + +#: src/lib/signal.c:219 +msgid "EMT instruction (Emulation Trap)" +msgstr "" + +#: src/lib/signal.c:222 +msgid "IOT trap" +msgstr "" + +#: src/lib/signal.c:224 +msgid "BUS error" +msgstr "" + +#: src/lib/signal.c:225 +msgid "Floating-point exception" +msgstr "" + +#: src/lib/signal.c:226 +msgid "Kill, unblockable" +msgstr "" + +#: src/lib/signal.c:227 +msgid "User-defined signal 1" +msgstr "" + +#: src/lib/signal.c:228 +msgid "Segmentation violation" +msgstr "" + +#: src/lib/signal.c:229 +msgid "User-defined signal 2" +msgstr "" + +#: src/lib/signal.c:230 +msgid "Broken pipe" +msgstr "" + +#: src/lib/signal.c:231 +msgid "Alarm clock" +msgstr "" + +#: src/lib/signal.c:232 +msgid "Termination" +msgstr "" + +#: src/lib/signal.c:234 +msgid "Stack fault" +msgstr "" + +#: src/lib/signal.c:236 +msgid "Child status has changed" +msgstr "" + +#: src/lib/signal.c:237 +msgid "Continue" +msgstr "" + +#: src/lib/signal.c:238 +msgid "Stop, unblockable" +msgstr "" + +#: src/lib/signal.c:239 +msgid "Keyboard stop" +msgstr "" + +#: src/lib/signal.c:240 +msgid "Background read from tty" +msgstr "" + +#: src/lib/signal.c:241 +msgid "Background write to tty" +msgstr "" + +#: src/lib/signal.c:242 +msgid "Urgent condition on socket" +msgstr "" + +#: src/lib/signal.c:243 +msgid "CPU limit exceeded" +msgstr "" + +#: src/lib/signal.c:244 +msgid "File size limit exceeded" +msgstr "" + +#: src/lib/signal.c:245 +msgid "Virtual alarm clock" +msgstr "" + +#: src/lib/signal.c:246 +msgid "Profiling alarm clock" +msgstr "" + +#: src/lib/signal.c:247 +msgid "Window size change" +msgstr "" + +#: src/lib/signal.c:248 +msgid "I/O now possible" +msgstr "" + +#: src/lib/signal.c:250 +msgid "Power failure restart" +msgstr "" + +#: src/lib/signal.c:253 +msgid "No runnable lwp" +msgstr "" + +#: src/lib/signal.c:256 +msgid "SIGLWP special signal used by thread library" +msgstr "" + +#: src/lib/signal.c:259 +msgid "Checkpoint Freeze" +msgstr "" + +#: src/lib/signal.c:262 +msgid "Checkpoint Thaw" +msgstr "" + +#: src/lib/signal.c:265 +msgid "Thread Cancellation" +msgstr "" + +#: src/lib/signal.c:268 +msgid "Resource Lost (e.g. record-lock lost)" +msgstr "" + +#: src/lib/smartall.c:146 src/lib/smartall.c:255 src/lib/smartall.c:270 +msgid "Out of memory\n" +msgstr "" + +#: src/lib/smartall.c:151 +msgid "Too much memory used." +msgstr "" + +#: src/lib/smartall.c:180 +#, c-format +msgid "Attempt to free NULL called from %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:194 +#, c-format +msgid "double free from %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:202 +#, c-format +msgid "qp->qnext->qprev != qp called from %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:206 +#, c-format +msgid "qp->qprev->qnext != qp called from %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:215 +#, c-format +msgid "Buffer overrun called from %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:292 +#, c-format +msgid "sm_realloc size: %d\n" +msgstr "" + +#: src/lib/smartall.c:330 +#, c-format +msgid "sm_realloc %d at %x from %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:392 +#, c-format +msgid "" +"\n" +"Orphaned buffers exist. Dump terminated following\n" +" discovery of bad links in chain of orphaned buffers.\n" +" Buffer address with bad links: %p\n" +msgstr "" + +#: src/lib/smartall.c:404 +#, c-format +msgid "%s buffer: %s %6u bytes buf=%p allocated at %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:440 +#, c-format +msgid "Damaged buffer found. Called from %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:470 +#, c-format +msgid "" +"\n" +"Damaged buffers found at %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:473 +#, c-format +msgid " discovery of bad prev link.\n" +msgstr "" + +#: src/lib/smartall.c:476 +#, c-format +msgid " discovery of bad next link.\n" +msgstr "" + +#: src/lib/smartall.c:479 +#, c-format +msgid " discovery of data overrun.\n" +msgstr "" + +#: src/lib/smartall.c:482 +#, c-format +msgid " Buffer address: %p\n" +msgstr "" + +#: src/lib/smartall.c:489 +#, c-format +msgid "Damaged buffer: %6u bytes allocated at line %d of %s %s\n" +msgstr "" + +#: src/lib/tls.c:93 +#, c-format +msgid "" +"Error with certificate at depth: %d, issuer = %s, subject = %s, ERR=%d:%s\n" +msgstr "" + +#: src/lib/tls.c:130 +msgid "Error initializing SSL context" +msgstr "" + +#: src/lib/tls.c:151 +msgid "Error loading certificate verification stores" +msgstr "" + +#: src/lib/tls.c:156 +msgid "" +"Either a certificate file or a directory must be specified as a verification " +"store\n" +msgstr "" + +#: src/lib/tls.c:167 +msgid "Error loading certificate file" +msgstr "" + +#: src/lib/tls.c:175 +msgid "Error loading private key" +msgstr "" + +#: src/lib/tls.c:183 +msgid "Unable to open DH parameters file" +msgstr "" + +#: src/lib/tls.c:189 +msgid "Unable to load DH parameters from specified file" +msgstr "" + +#: src/lib/tls.c:193 +msgid "Failed to set TLS Diffie-Hellman parameters" +msgstr "" + +#: src/lib/tls.c:203 +msgid "Error setting cipher list, no valid ciphers available\n" +msgstr "" + +#: src/lib/tls.c:262 +msgid "Peer failed to present a TLS certificate\n" +msgstr "" + +#: src/lib/tls.c:305 +#, c-format +msgid "Peer %s failed to present a TLS certificate\n" +msgstr "" + +#: src/lib/tls.c:407 +msgid "Error creating file descriptor-based BIO" +msgstr "" + +#: src/lib/tls.c:418 +msgid "Error creating new SSL object" +msgstr "" + +#: src/lib/tls.c:481 src/lib/tls.c:504 +msgid "Connect failure" +msgstr "" + +#: src/lib/tls.c:576 src/lib/tls.c:580 +msgid "TLS shutdown failure." +msgstr "" + +#: src/lib/tls.c:639 +msgid "TLS read/write failure." +msgstr "" + +#: src/lib/util.c:182 +msgid "Running" +msgstr "" + +#: src/lib/util.c:185 +msgid "Blocked" +msgstr "" + +#: src/lib/util.c:195 +msgid "Non-fatal error" +msgstr "" + +#: src/lib/util.c:198 src/lib/util.c:265 +msgid "Canceled" +msgstr "" + +#: src/lib/util.c:201 +msgid "Verify differences" +msgstr "" + +#: src/lib/util.c:204 +msgid "Waiting on FD" +msgstr "" + +#: src/lib/util.c:207 +msgid "Wait on SD" +msgstr "" + +#: src/lib/util.c:210 +msgid "Wait for new Volume" +msgstr "" + +#: src/lib/util.c:213 +msgid "Waiting for mount" +msgstr "" + +#: src/lib/util.c:216 +msgid "Waiting for Storage resource" +msgstr "" + +#: src/lib/util.c:219 +msgid "Waiting for Job resource" +msgstr "" + +#: src/lib/util.c:222 +msgid "Waiting for Client resource" +msgstr "" + +#: src/lib/util.c:225 +msgid "Waiting on Max Jobs" +msgstr "" + +#: src/lib/util.c:228 +msgid "Waiting for Start Time" +msgstr "" + +#: src/lib/util.c:231 +msgid "Waiting on Priority" +msgstr "" + +#: src/lib/util.c:238 +#, c-format +msgid "Unknown Job termination status=%d" +msgstr "" + +#: src/lib/util.c:262 +msgid "Fatal Error" +msgstr "" + +#: src/lib/util.c:268 +msgid "Differences" +msgstr "" + +#: src/lib/util.c:271 +msgid "Unknown term code" +msgstr "" + +#: src/lib/util.c:299 +msgid "Migrate" +msgstr "" + +#: src/lib/util.c:302 +msgid "Copy" +msgstr "" + +#: src/lib/util.c:305 src/wx-console/wxbmainframe.cpp:276 +msgid "Console" +msgstr "" + +#: src/lib/util.c:308 +msgid "System or Console" +msgstr "" + +#: src/lib/util.c:311 +msgid "Scan" +msgstr "" + +#: src/lib/util.c:314 +msgid "Unknown Type" +msgstr "" + +#: src/lib/util.c:346 +msgid "Verify Init Catalog" +msgstr "" + +#: src/lib/util.c:355 +msgid "Verify Data" +msgstr "" + +#: src/lib/util.c:692 +msgid "Working directory not defined. Cannot continue.\n" +msgstr "" + +#: src/lib/util.c:695 +#, c-format +msgid "Working Directory: \"%s\" not found. Cannot continue.\n" +msgstr "" + +#: src/lib/util.c:699 +#, c-format +msgid "Working Directory: \"%s\" is not a directory. Cannot continue.\n" +msgstr "" + +#: src/lib/var.c:2669 +msgid "everything ok" +msgstr "" + +#: src/lib/var.c:2670 +msgid "incomplete named character" +msgstr "" + +#: src/lib/var.c:2671 +msgid "incomplete hexadecimal value" +msgstr "" + +#: src/lib/var.c:2672 +msgid "invalid hexadecimal value" +msgstr "" + +#: src/lib/var.c:2673 +msgid "octal value too large" +msgstr "" + +#: src/lib/var.c:2674 +msgid "invalid octal value" +msgstr "" + +#: src/lib/var.c:2675 +msgid "incomplete octal value" +msgstr "" + +#: src/lib/var.c:2676 +msgid "incomplete grouped hexadecimal value" +msgstr "" + +#: src/lib/var.c:2677 +msgid "incorrect character class specification" +msgstr "" + +#: src/lib/var.c:2678 +msgid "invalid expansion configuration" +msgstr "" + +#: src/lib/var.c:2679 +msgid "out of memory" +msgstr "" + +#: src/lib/var.c:2680 +msgid "incomplete variable specification" +msgstr "" + +#: src/lib/var.c:2681 +msgid "undefined variable" +msgstr "" + +#: src/lib/var.c:2682 +msgid "input is neither text nor variable" +msgstr "" + +#: src/lib/var.c:2683 +msgid "unknown command character in variable" +msgstr "" + +#: src/lib/var.c:2684 +msgid "malformatted search and replace operation" +msgstr "" + +#: src/lib/var.c:2685 +msgid "unknown flag in search and replace operation" +msgstr "" + +#: src/lib/var.c:2686 +msgid "invalid regex in search and replace operation" +msgstr "" + +#: src/lib/var.c:2687 +msgid "missing parameter in command" +msgstr "" + +#: src/lib/var.c:2688 +msgid "empty search string in search and replace operation" +msgstr "" + +#: src/lib/var.c:2689 +msgid "start offset missing in cut operation" +msgstr "" + +#: src/lib/var.c:2690 +msgid "offsets in cut operation delimited by unknown character" +msgstr "" + +#: src/lib/var.c:2691 +msgid "range out of bounds in cut operation" +msgstr "" + +#: src/lib/var.c:2692 +msgid "offset out of bounds in cut operation" +msgstr "" + +#: src/lib/var.c:2693 +msgid "logic error in cut operation" +msgstr "" + +#: src/lib/var.c:2694 +msgid "malformatted transpose operation" +msgstr "" + +#: src/lib/var.c:2695 +msgid "source and target class mismatch in transpose operation" +msgstr "" + +#: src/lib/var.c:2696 +msgid "empty character class in transpose operation" +msgstr "" + +#: src/lib/var.c:2697 +msgid "incorrect character class in transpose operation" +msgstr "" + +#: src/lib/var.c:2698 +msgid "malformatted padding operation" +msgstr "" + +#: src/lib/var.c:2699 +msgid "width parameter missing in padding operation" +msgstr "" + +#: src/lib/var.c:2700 +msgid "fill string missing in padding operation" +msgstr "" + +#: src/lib/var.c:2701 +msgid "unknown quoted pair in search and replace operation" +msgstr "" + +#: src/lib/var.c:2702 +msgid "sub-matching reference out of range" +msgstr "" + +#: src/lib/var.c:2703 +msgid "invalid argument" +msgstr "" + +#: src/lib/var.c:2704 +msgid "incomplete quoted pair" +msgstr "" + +#: src/lib/var.c:2705 +msgid "lookup function does not support variable arrays" +msgstr "" + +#: src/lib/var.c:2706 +msgid "index of array variable contains an invalid character" +msgstr "" + +#: src/lib/var.c:2707 +msgid "index of array variable is incomplete" +msgstr "" + +#: src/lib/var.c:2708 +msgid "bracket expression in array variable's index not closed" +msgstr "" + +#: src/lib/var.c:2709 +msgid "division by zero error in index specification" +msgstr "" + +#: src/lib/var.c:2710 +msgid "unterminated loop construct" +msgstr "" + +#: src/lib/var.c:2711 +msgid "invalid character in loop limits" +msgstr "" + +#: src/lib/var.c:2712 +msgid "malformed operation argument list" +msgstr "" + +#: src/lib/var.c:2713 +msgid "undefined operation" +msgstr "" + +#: src/lib/var.c:2714 +msgid "formatting failure" +msgstr "" + +#: src/lib/var.c:2723 +msgid "unknown error" +msgstr "" + +#: src/lib/watchdog.c:83 +#, c-format +msgid "Unable to initialize watchdog lock. ERR=%s\n" +msgstr "" + +#: src/lib/watchdog.c:180 +msgid "BUG! register_watchdog called before start_watchdog\n" +msgstr "" + +#: src/lib/watchdog.c:183 +#, c-format +msgid "BUG! Watchdog %p has NULL callback\n" +msgstr "" + +#: src/lib/watchdog.c:186 +#, c-format +msgid "BUG! Watchdog %p has zero interval\n" +msgstr "" + +#: src/lib/watchdog.c:206 +msgid "BUG! unregister_watchdog_unlocked called before start_watchdog\n" +msgstr "" + +#: src/lib/watchdog.c:325 +#, c-format +msgid "rwl_writelock failure. ERR=%s\n" +msgstr "" + +#: src/lib/watchdog.c:340 +#, c-format +msgid "rwl_writeunlock failure. ERR=%s\n" +msgstr "" + +#: src/stored/acquire.c:69 +#, c-format +msgid "Acquire read: num_writers=%d not zero. Job %d canceled.\n" +msgstr "" + +#: src/stored/acquire.c:78 +#, c-format +msgid "No volumes specified for reading. Job %s canceled.\n" +msgstr "" + +#: src/stored/acquire.c:87 +#, c-format +msgid "Logic error: no next volume to read. Numvol=%d Curvol=%d\n" +msgstr "" + +#: src/stored/acquire.c:113 +#, c-format +msgid "" +"Changing device. Want Media Type=\"%s\" have=\"%s\"\n" +" device=%s\n" +msgstr "" + +#: src/stored/acquire.c:151 +#, c-format +msgid "Media Type change. New device %s chosen.\n" +msgstr "" + +#: src/stored/acquire.c:162 +#, c-format +msgid "No suitable device found to read Volume \"%s\"\n" +msgstr "" + +#: src/stored/acquire.c:191 +#, c-format +msgid "Job %s canceled.\n" +msgstr "" + +#: src/stored/acquire.c:205 +#, c-format +msgid "Read open device %s Volume \"%s\" failed: ERR=%s\n" +msgstr "" + +#: src/stored/acquire.c:276 +#, c-format +msgid "Too many errors trying to mount device %s for reading.\n" +msgstr "" + +#: src/stored/acquire.c:285 +#, c-format +msgid "Ready to read from volume \"%s\" on device %s.\n" +msgstr "" + +#: src/stored/acquire.c:328 +#, c-format +msgid "Want to append, but device %s is busy reading.\n" +msgstr "" + +#: src/stored/acquire.c:358 +#, c-format +msgid "" +"Wanted to append to Volume \"%s\", but device %s is busy writing on \"%s" +"\" .\n" +msgstr "" + +#: src/stored/acquire.c:377 +#, c-format +msgid "" +"Cannot recycle volume \"%s\" on device %s because it is in use by another " +"job.\n" +msgstr "" + +#: src/stored/acquire.c:402 +#, c-format +msgid "" +"Invalid tape position on volume \"%s\" on device %s. Expected %d, got %d\n" +msgstr "" + +#: src/stored/acquire.c:422 +#, c-format +msgid "Could not ready device %s for append.\n" +msgstr "" + +#: src/stored/acquire.c:506 src/stored/block.c:367 src/stored/block.c:713 +#: src/stored/block.c:788 +#, c-format +msgid "Could not create JobMedia record for Volume=\"%s\" Job=%s\n" +msgstr "" + +#: src/stored/acquire.c:547 +#, c-format +msgid "Alert: %s" +msgstr "" + +#: src/stored/acquire.c:555 +#, c-format +msgid "3997 Bad alert command: %s: ERR=%s.\n" +msgstr "" + +#: src/stored/ansi_label.c:96 +#, c-format +msgid "Read error on device %s in ANSI label. ERR=%s\n" +msgstr "" + +#: src/stored/ansi_label.c:106 +msgid "Insane! End of tape while reading ANSI label.\n" +msgstr "" + +#: src/stored/ansi_label.c:130 +msgid "No VOL1 label while reading ANSI/IBM label.\n" +msgstr "" + +#: src/stored/ansi_label.c:150 +#, c-format +msgid "Wanted ANSI Volume \"%s\" got \"%s\"\n" +msgstr "" + +#: src/stored/ansi_label.c:161 +msgid "No HDR1 label while reading ANSI label.\n" +msgstr "" + +#: src/stored/ansi_label.c:167 +#, c-format +msgid "ANSI/IBM Volume \"%s\" does not belong to Bacula.\n" +msgstr "" + +#: src/stored/ansi_label.c:178 +msgid "No HDR2 label while reading ANSI/IBM label.\n" +msgstr "" + +#: src/stored/ansi_label.c:192 +msgid "Unknown or bad ANSI/IBM label record.\n" +msgstr "" + +#: src/stored/ansi_label.c:199 +msgid "Too many records in while reading ANSI/IBM label.\n" +msgstr "" + +#: src/stored/ansi_label.c:298 +#, c-format +msgid "ANSI Volume label name \"%s\" longer than 6 chars.\n" +msgstr "" + +#: src/stored/ansi_label.c:315 +#, c-format +msgid "Could not write ANSI VOL1 label. ERR=%s\n" +msgstr "" + +#: src/stored/ansi_label.c:353 src/stored/ansi_label.c:382 +#, c-format +msgid "Could not write ANSI HDR1 label. ERR=%s\n" +msgstr "" + +#: src/stored/ansi_label.c:358 src/stored/ansi_label.c:389 +msgid "Could not write ANSI HDR1 label.\n" +msgstr "" + +#: src/stored/ansi_label.c:394 +#, c-format +msgid "Error writing EOF to tape. ERR=%s" +msgstr "" + +#: src/stored/ansi_label.c:399 +msgid "write_ansi_ibm_label called for non-ANSI/IBM type\n" +msgstr "" + +#: src/stored/append.c:64 +msgid "DCR is NULL!!!\n" +msgstr "" + +#: src/stored/append.c:69 +msgid "DEVICE is NULL!!!\n" +msgstr "" + +#: src/stored/append.c:81 +msgid "Unable to set network buffer size.\n" +msgstr "" + +#: src/stored/append.c:94 src/stored/append.c:103 src/stored/append.c:115 +#: src/stored/append.c:298 src/stored/append.c:309 src/stored/askdir.c:332 +#: src/stored/askdir.c:333 +msgid "NULL Volume name. This shouldn't happen!!!\n" +msgstr "" + +#: src/stored/append.c:109 src/stored/btape.c:1889 +#, c-format +msgid "Write session label failed. ERR=%s\n" +msgstr "" + +#: src/stored/append.c:121 +#, c-format +msgid "Network send error to FD. ERR=%s\n" +msgstr "" + +#: src/stored/append.c:158 +#, c-format +msgid "Error reading data header from FD. ERR=%s\n" +msgstr "" + +#: src/stored/append.c:180 +#, c-format +msgid "Malformed data header from FD: %s\n" +msgstr "" + +#: src/stored/append.c:190 +msgid "File index from FD not positive or sequential\n" +msgstr "" + +#: src/stored/append.c:244 src/stored/mac.c:248 +#, c-format +msgid "Error updating file attributes. ERR=%s\n" +msgstr "" + +#: src/stored/append.c:258 +#, c-format +msgid "Network error on data channel. ERR=%s\n" +msgstr "" + +#: src/stored/append.c:279 +#, c-format +msgid "" +"Job write elapsed time = %02d:%02d:%02d, Transfer rate = %s bytes/second\n" +msgstr "" + +#: src/stored/append.c:292 src/stored/btape.c:2013 +#, c-format +msgid "Error writting end session label. ERR=%s\n" +msgstr "" + +#: src/stored/append.c:303 src/stored/mac.c:124 src/stored/mac.c:220 +#: src/stored/spool.c:293 +#, c-format +msgid "Fatal append error on device %s: ERR=%s\n" +msgstr "" + +#: src/stored/append.c:305 src/stored/mac.c:126 +msgid "Set ok=FALSE after write_block_to_device.\n" +msgstr "" + +#: src/stored/askdir.c:178 +msgid "Network error on bnet_recv in req_vol_info.\n" +msgstr "" + +#: src/stored/askdir.c:195 +#, c-format +msgid "Error getting Volume info: %s" +msgstr "" + +#: src/stored/askdir.c:363 +#, c-format +msgid "Didn't get vol info vol=%s: ERR=%s" +msgstr "" + +#: src/stored/askdir.c:405 +#, c-format +msgid "Error creating JobMedia record: ERR=%s\n" +msgstr "" + +#: src/stored/askdir.c:412 +#, c-format +msgid "Error creating JobMedia record: %s\n" +msgstr "" + +#: src/stored/askdir.c:478 +#, c-format +msgid "Job %s canceled while waiting for mount on Storage Device \"%s\".\n" +msgstr "" + +#: src/stored/askdir.c:491 +#, c-format +msgid "" +"Job %s waiting. Cannot find any appendable volumes.\n" +"Please use the \"label\" command to create a new Volume for:\n" +" Storage: %s\n" +" Pool: %s\n" +" Media type: %s\n" +msgstr "" + +#: src/stored/askdir.c:515 src/stored/askdir.c:605 +#, c-format +msgid "Max time exceeded waiting to mount Storage Device %s for Job %s\n" +msgstr "" + +#: src/stored/askdir.c:525 +msgid "pthread error in mount_next_volume.\n" +msgstr "" + +#: src/stored/askdir.c:557 +msgid "Cannot request another volume: no volume name given.\n" +msgstr "" + +#: src/stored/askdir.c:563 +#, c-format +msgid "Job %s canceled while waiting for mount on Storage Device %s.\n" +msgstr "" + +#: src/stored/askdir.c:578 +#, c-format +msgid "" +"Please mount Volume \"%s\" or label a new one for:\n" +" Job: %s\n" +" Storage: %s\n" +" Pool: %s\n" +" Media type: %s\n" +msgstr "" + +#: src/stored/askdir.c:615 +msgid "pthread error in mount_volume\n" +msgstr "" + +#: src/stored/authenticate.c:60 +#, c-format +msgid "I only authenticate Directors, not %d\n" +msgstr "" + +#: src/stored/authenticate.c:90 +#, c-format +msgid "" +"Connection from unknown Director %s at %s rejected.\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" + +#: src/stored/authenticate.c:123 +msgid "" +"Incorrect password given by Director.\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" + +#: src/stored/authenticate.c:179 +#, c-format +msgid "Unable to authenticate Director at %s.\n" +msgstr "" + +#: src/stored/authenticate.c:223 src/stored/authenticate.c:257 +#, c-format +msgid "" +"Incorrect authorization key from File daemon at %s rejected.\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" + +#: src/stored/autochanger.c:66 +#, c-format +msgid "No Changer Name given for device %s. Cannot continue.\n" +msgstr "" + +#: src/stored/autochanger.c:72 +#, c-format +msgid "No Changer Command given for device %s. Cannot continue.\n" +msgstr "" + +#: src/stored/autochanger.c:85 +#, c-format +msgid "" +"Media Type not the same for all devices in changer %s. Cannot continue.\n" +msgstr "" + +#: src/stored/autochanger.c:149 +#, c-format +msgid "" +"Invalid slot=%d defined in catalog for Volume \"%s\" on %s. Manual load my " +"be required.\n" +msgstr "" + +#: src/stored/autochanger.c:154 +#, c-format +msgid "No \"Changer Device\" for %s. Manual load of Volume may be required.\n" +msgstr "" + +#: src/stored/autochanger.c:158 +#, c-format +msgid "No \"Changer Command\" for %s. Manual load of Volume may be requird.\n" +msgstr "" + +#: src/stored/autochanger.c:188 +#, c-format +msgid "3304 Issuing autochanger \"load slot %d, drive %d\" command.\n" +msgstr "" + +#: src/stored/autochanger.c:196 +#, c-format +msgid "3305 Autochanger \"load slot %d, drive %d\", status is OK.\n" +msgstr "" + +#: src/stored/autochanger.c:205 +#, c-format +msgid "" +"3992 Bad autochanger \"load slot %d, drive %d\": ERR=%s.\n" +"Results=%s\n" +msgstr "" + +#: src/stored/autochanger.c:251 +msgid "3992 Missing Changer command.\n" +msgstr "" + +#: src/stored/autochanger.c:265 +#, c-format +msgid "3301 Issuing autochanger \"loaded? drive %d\" command.\n" +msgstr "" + +#: src/stored/autochanger.c:275 +#, c-format +msgid "3302 Autochanger \"loaded? drive %d\", result is Slot %d.\n" +msgstr "" + +#: src/stored/autochanger.c:279 +#, c-format +msgid "3302 Autochanger \"loaded? drive %d\", result: nothing loaded.\n" +msgstr "" + +#: src/stored/autochanger.c:286 +#, c-format +msgid "" +"3991 Bad autochanger \"loaded? drive %d\" command: ERR=%s.\n" +"Results=%s\n" +msgstr "" + +#: src/stored/autochanger.c:345 src/stored/autochanger.c:436 +#, c-format +msgid "3307 Issuing autochanger \"unload slot %d, drive %d\" command.\n" +msgstr "" + +#: src/stored/autochanger.c:359 +#, c-format +msgid "" +"3995 Bad autochanger \"unload slot %d, drive %d\": ERR=%s\n" +"Results=%s\n" +msgstr "" + +#: src/stored/autochanger.c:423 +#, c-format +msgid "Volume \"%s\" is in use by device %s\n" +msgstr "" + +#: src/stored/autochanger.c:458 +#, c-format +msgid "3995 Bad autochanger \"unload slot %d, drive %d\": ERR=%s.\n" +msgstr "" + +#: src/stored/autochanger.c:498 +#, c-format +msgid "3993 Device %s not an autochanger device.\n" +msgstr "" + +#: src/stored/autochanger.c:519 +#, c-format +msgid "3306 Issuing autochanger \"%s\" command.\n" +msgstr "" + +#: src/stored/autochanger.c:522 +msgid "3996 Open bpipe failed.\n" +msgstr "" + +#: src/stored/bcopy.c:72 +#, c-format +msgid "" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: bcopy [-d debug_level] \n" +" -b bootstrap specify a bootstrap file\n" +" -c specify configuration file\n" +" -d set debug level to nn\n" +" -i specify input Volume names (separated by |)\n" +" -o specify output Volume names (separated by |)\n" +" -p proceed inspite of errors\n" +" -v verbose\n" +" -w specify working directory (default /tmp)\n" +" -? print this message\n" +"\n" +msgstr "" + +#: src/stored/bcopy.c:151 src/stored/bextract.c:187 src/stored/bscan.c:228 +msgid "Wrong number of arguments: \n" +msgstr "" + +#: src/stored/bcopy.c:191 src/stored/btape.c:364 src/stored/device.c:296 +#, c-format +msgid "dev open failed: %s\n" +msgstr "" + +#: src/stored/bcopy.c:204 +msgid "Write of last block failed.\n" +msgstr "" + +#: src/stored/bcopy.c:207 +#, c-format +msgid "%u Jobs copied. %u records copied.\n" +msgstr "" + +#: src/stored/bcopy.c:224 src/stored/bscan.c:402 +#, c-format +msgid "Record: SessId=%u SessTim=%u FileIndex=%d Stream=%d len=%u\n" +msgstr "" + +#: src/stored/bcopy.c:239 +msgid "Volume is prelabeled. This volume cannot be copied.\n" +msgstr "" + +#: src/stored/bcopy.c:242 +msgid "Volume label not copied.\n" +msgstr "" + +#: src/stored/bcopy.c:254 src/stored/bcopy.c:261 src/stored/bcopy.c:284 +#: src/stored/btape.c:2386 +#, c-format +msgid "Cannot fixup device error. %s\n" +msgstr "" + +#: src/stored/bcopy.c:266 +msgid "EOM label not copied.\n" +msgstr "" + +#: src/stored/bcopy.c:269 +msgid "EOT label not copied.\n" +msgstr "" + +#: src/stored/bcopy.c:305 src/stored/bextract.c:489 src/stored/bls.c:452 +#: src/stored/bscan.c:1283 src/stored/btape.c:2685 +#, c-format +msgid "Mount Volume \"%s\" on device %s and press return when ready: " +msgstr "" + +#: src/stored/bextract.c:78 +#, c-format +msgid "" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: bextract \n" +" -b specify a bootstrap file\n" +" -c specify a configuration file\n" +" -d set debug level to nn\n" +" -e exclude list\n" +" -i include list\n" +" -p proceed inspite of I/O errors\n" +" -v verbose\n" +" -V specify Volume names (separated by |)\n" +" -? print this message\n" +"\n" +msgstr "" + +#: src/stored/bextract.c:137 src/stored/bls.c:140 +#, c-format +msgid "Could not open exclude file: %s, ERR=%s\n" +msgstr "" + +#: src/stored/bextract.c:152 src/stored/bls.c:154 +#, c-format +msgid "Could not open include file: %s, ERR=%s\n" +msgstr "" + +#: src/stored/bextract.c:208 +#, c-format +msgid "%d Program Name and/or Program Data Stream records ignored.\n" +msgstr "" + +#: src/stored/bextract.c:212 +#, c-format +msgid "%d Win32 data or Win32 gzip data stream records. Ignored.\n" +msgstr "" + +#: src/stored/bextract.c:239 +#, c-format +msgid "Cannot stat %s. It must exist. ERR=%s\n" +msgstr "" + +#: src/stored/bextract.c:243 +#, c-format +msgid "%s must be a directory.\n" +msgstr "" + +#: src/stored/bextract.c:264 +#, c-format +msgid "%u files restored.\n" +msgstr "" + +#: src/stored/bextract.c:291 src/stored/bextract.c:464 +msgid "Logic error output file should be open but is not.\n" +msgstr "" + +#: src/stored/bextract.c:298 src/stored/bls.c:376 src/stored/bscan.c:659 +msgid "Cannot continue.\n" +msgstr "" + +#: src/stored/bextract.c:360 +#, c-format +msgid "Seek error on %s: %s\n" +msgstr "" + +#: src/stored/bextract.c:413 +#, c-format +msgid "Uncompression error. ERR=%d\n" +msgstr "" + +#: src/stored/bextract.c:421 +msgid "===Write error===\n" +msgstr "" + +#: src/stored/bextract.c:455 +msgid "Got Program Name or Data Stream. Ignored.\n" +msgstr "" + +#: src/stored/block.c:91 +#, c-format +msgid "" +"Dump block %s %x: size=%d BlkNum=%d\n" +" Hdrcksum=%x cksum=%x\n" +msgstr "" + +#: src/stored/block.c:104 +#, c-format +msgid " Rec: VId=%u VT=%u FI=%s Strm=%s len=%d p=%x\n" +msgstr "" + +#: src/stored/block.c:160 +#, c-format +msgid "%d block read errors not printed.\n" +msgstr "" + +#: src/stored/block.c:248 src/stored/block.c:264 src/stored/block.c:274 +#, c-format +msgid "" +"Volume data error at %u:%u! Wanted ID: \"%s\", got \"%s\". Buffer " +"discarded.\n" +msgstr "" + +#: src/stored/block.c:288 +#, c-format +msgid "" +"Volume data error at %u:%u! Block length %u is insane (too large), probably " +"due to a bad archive.\n" +msgstr "" + +#: src/stored/block.c:314 +#, c-format +msgid "" +"Volume data error at %u:%u!\n" +"Block checksum mismatch in block=%u len=%d: calc=%x blk=%x\n" +msgstr "" + +#: src/stored/block.c:425 +msgid "Cannot write block. Device at EOM.\n" +msgstr "" + +#: src/stored/block.c:430 +msgid "Attempt to write on read-only Volume.\n" +msgstr "" + +#: src/stored/block.c:482 +#, c-format +msgid "User defined maximum volume capacity %s exceeded on device %s.\n" +msgstr "" + +#: src/stored/block.c:497 +#, c-format +msgid "Unable to write EOF. ERR=%s\n" +msgstr "" + +#: src/stored/block.c:523 src/stored/block.c:548 +msgid "Write block header zeroed.\n" +msgstr "" + +#: src/stored/block.c:567 +#, c-format +msgid "Write error at %u:%u on device %s. ERR=%s.\n" +msgstr "" + +#: src/stored/block.c:574 +#, c-format +msgid "End of Volume \"%s\" at %u:%u on device %s. Write of %u bytes got %d.\n" +msgstr "" + +#: src/stored/block.c:650 src/stored/block.c:656 +#, c-format +msgid "Backspace file at EOT failed. ERR=%s\n" +msgstr "" + +#: src/stored/block.c:663 +#, c-format +msgid "Backspace record at EOT failed. ERR=%s\n" +msgstr "" + +#: src/stored/block.c:680 +#, c-format +msgid "Re-read last block at EOT failed. ERR=%s" +msgstr "" + +#: src/stored/block.c:690 +#, c-format +msgid "" +"Re-read of last block OK, but block numbers differ. Last block=%u Current " +"block=%u.\n" +msgstr "" + +#: src/stored/block.c:693 +msgid "Re-read of last block succeeded.\n" +msgstr "" + +#: src/stored/block.c:721 +#, c-format +msgid "" +"Error writing final EOF to tape. This Volume may not be readable.\n" +"%s" +msgstr "" + +#: src/stored/block.c:735 +#, c-format +msgid "" +"Error writing final part to DVD. This Volume may not be readable.\n" +"%s" +msgstr "" + +#: src/stored/block.c:837 +#, c-format +msgid "" +"Error while writing, current part number is less than the total number of " +"parts (%d/%d, device=%s)\n" +msgstr "" + +#: src/stored/block.c:845 +#, c-format +msgid "Unable to open device next part %s: ERR=%s\n" +msgstr "" + +#: src/stored/block.c:865 +#, c-format +msgid "" +"End of Volume \"%s\" at %u:%u on device %s (part_size=%s, free_space=%s, " +"free_space_errno=%d, errmsg=%s).\n" +msgstr "" + +#: src/stored/block.c:878 +#, c-format +msgid "" +"End of Volume \"%s\" at %u:%u on device %s (part_size=%s, free_space=%s, " +"free_space_errno=%d).\n" +msgstr "" + +#: src/stored/block.c:934 +#, c-format +msgid "Block buffer size looping problem on device %s\n" +msgstr "" + +#: src/stored/block.c:962 +#, c-format +msgid "Unable to open device part=%d %s: ERR=%s\n" +msgstr "" + +#: src/stored/block.c:988 +#, c-format +msgid "Read error on fd=%d at file:blk %u:%u on device %s. ERR=%s.\n" +msgstr "" + +#: src/stored/block.c:1001 +#, c-format +msgid "Read zero bytes at %u:%u on device %s.\n" +msgstr "" + +#: src/stored/block.c:1014 +#, c-format +msgid "" +"Volume data error at %u:%u! Very short block of %d bytes on device %s " +"discarded.\n" +msgstr "" + +#: src/stored/block.c:1039 +#, c-format +msgid "Block length %u is greater than buffer %u. Attempting recovery.\n" +msgstr "" + +#: src/stored/block.c:1058 +#, c-format +msgid "Setting block buffer size to %u bytes.\n" +msgstr "" + +#: src/stored/block.c:1073 +#, c-format +msgid "" +"Volume data error at %u:%u! Short block of %d bytes on device %s discarded.\n" +msgstr "" + +#: src/stored/bls.c:78 +#, c-format +msgid "" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: bls [options] \n" +" -b specify a bootstrap file\n" +" -c specify a config file\n" +" -d specify debug level\n" +" -e exclude list\n" +" -i include list\n" +" -j list jobs\n" +" -k list blocks\n" +" (no j or k option) list saved files\n" +" -L dump label\n" +" -p proceed inspite of errors\n" +" -v be verbose\n" +" -V specify Volume names (separated by |)\n" +" -? print this message\n" +"\n" +msgstr "" + +#: src/stored/bls.c:201 +msgid "No archive name specified\n" +msgstr "" + +#: src/stored/bls.c:236 +#, c-format +msgid "" +"\n" +"Warning, this Volume is a continuation of Volume %s\n" +msgstr "" + +#: src/stored/bls.c:279 +#, c-format +msgid "Got EOM at file %u on device %s, Volume \"%s\"\n" +msgstr "" + +#: src/stored/bls.c:290 +#, c-format +msgid "Mounted Volume \"%s\".\n" +msgstr "" + +#: src/stored/bls.c:292 +#, c-format +msgid "End of file %u on device %s, Volume \"%s\"\n" +msgstr "" + +#: src/stored/bls.c:316 +#, c-format +msgid "" +"File:blk=%u:%u blk_num=%u blen=%u First rec FI=%s SessId=%u SessTim=%u Strm=%" +"s rlen=%d\n" +msgstr "" + +#: src/stored/bls.c:325 +#, c-format +msgid "Block: %d size=%d\n" +msgstr "" + +#: src/stored/bls.c:392 +#, c-format +msgid "FileIndex=%d VolSessionId=%d VolSessionTime=%d Stream=%d DataLen=%d\n" +msgstr "" + +#: src/stored/bls.c:409 src/stored/read_record.c:388 +msgid "Fresh Volume Label" +msgstr "" + +#: src/stored/bls.c:412 src/stored/read_record.c:391 +msgid "Volume Label" +msgstr "" + +#: src/stored/bls.c:416 src/stored/label.c:1031 +msgid "Begin Job Session" +msgstr "" + +#: src/stored/bls.c:420 src/stored/label.c:1034 +msgid "End Job Session" +msgstr "" + +#: src/stored/bls.c:424 +msgid "End of Medium" +msgstr "" + +#: src/stored/bls.c:427 src/stored/label.c:1043 +msgid "Unknown" +msgstr "" + +#: src/stored/bls.c:433 src/stored/read_record.c:409 +#, c-format +msgid "%s Record: VolSessionId=%d VolSessionTime=%d JobId=%d DataLen=%d\n" +msgstr "" + +#: src/stored/bscan.c:115 +#, c-format +msgid "" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: bscan [ options ] \n" +" -b bootstrap specify a bootstrap file\n" +" -c specify configuration file\n" +" -d set debug level to nn\n" +" -m update media info in database\n" +" -n specify the database name (default bacula)\n" +" -u specify database user name (default bacula)\n" +" -P specify database host (default NULL)\n" +" -p proceed inspite of I/O errors\n" +" -r list records\n" +" -s synchronize or store in database\n" +" -S show scan progress periodically\n" +" -v verbose\n" +" -V specify Volume names (separated by |)\n" +" -w specify working directory (default from conf file)\n" +" -? print this message\n" +"\n" +msgstr "" + +#: src/stored/bscan.c:241 src/stored/stored.c:288 +#, c-format +msgid "No Storage resource defined in %s. Cannot continue.\n" +msgstr "" + +#: src/stored/bscan.c:249 src/stored/stored.c:319 +#, c-format +msgid "No Working Directory defined in %s. Cannot continue.\n" +msgstr "" + +#: src/stored/bscan.c:257 +#, c-format +msgid "Working Directory: %s not found. Cannot continue.\n" +msgstr "" + +#: src/stored/bscan.c:261 +#, c-format +msgid "Working Directory: %s is not a directory. Cannot continue.\n" +msgstr "" + +#: src/stored/bscan.c:275 src/stored/bscan.c:349 +#, c-format +msgid "First Volume Size = %sn" +msgstr "" + +#: src/stored/bscan.c:281 +msgid "Could not init Bacula database\n" +msgstr "" + +#: src/stored/bscan.c:288 +#, c-format +msgid "Using Database: %s, User: %s\n" +msgstr "" + +#: src/stored/bscan.c:323 +#, c-format +msgid "Create JobMedia for Job %s\n" +msgstr "" + +#: src/stored/bscan.c:331 +#, c-format +msgid "Could not create JobMedia record for Volume=%s Job=%s\n" +msgstr "" + +#: src/stored/bscan.c:394 +#, c-format +msgid "done: %d%%\n" +msgstr "" + +#: src/stored/bscan.c:418 +msgid "Volume is prelabeled. This tape cannot be scanned.\n" +msgstr "" + +#: src/stored/bscan.c:430 +#, c-format +msgid "Pool record for %s found in DB.\n" +msgstr "" + +#: src/stored/bscan.c:434 +#, c-format +msgid "VOL_LABEL: Pool record not found for Pool: %s\n" +msgstr "" + +#: src/stored/bscan.c:440 +#, c-format +msgid "VOL_LABEL: PoolType mismatch. DB=%s Vol=%s\n" +msgstr "" + +#: src/stored/bscan.c:444 +#, c-format +msgid "Pool type \"%s\" is OK.\n" +msgstr "" + +#: src/stored/bscan.c:454 +#, c-format +msgid "Media record for %s found in DB.\n" +msgstr "" + +#: src/stored/bscan.c:461 +#, c-format +msgid "VOL_LABEL: Media record not found for Volume: %s\n" +msgstr "" + +#: src/stored/bscan.c:468 +#, c-format +msgid "VOL_LABEL: MediaType mismatch. DB=%s Vol=%s\n" +msgstr "" + +#: src/stored/bscan.c:472 +#, c-format +msgid "Media type \"%s\" is OK.\n" +msgstr "" + +#: src/stored/bscan.c:481 +#, c-format +msgid "VOL_LABEL: OK for Volume: %s\n" +msgstr "" + +#: src/stored/bscan.c:488 +#, c-format +msgid "%d \"errors\" ignored before first Start of Session record.\n" +msgstr "" + +#: src/stored/bscan.c:499 +#, c-format +msgid "SOS_LABEL: Found Job record for JobId: %d\n" +msgstr "" + +#: src/stored/bscan.c:504 +#, c-format +msgid "SOS_LABEL: Job record not found for JobId: %d\n" +msgstr "" + +#: src/stored/bscan.c:544 +#, c-format +msgid "SOS_LABEL: VolSessId mismatch for JobId=%u. DB=%d Vol=%d\n" +msgstr "" + +#: src/stored/bscan.c:550 +#, c-format +msgid "SOS_LABEL: VolSessTime mismatch for JobId=%u. DB=%d Vol=%d\n" +msgstr "" + +#: src/stored/bscan.c:556 +#, c-format +msgid "SOS_LABEL: PoolId mismatch for JobId=%u. DB=%d Vol=%d\n" +msgstr "" + +#: src/stored/bscan.c:574 src/stored/bscan.c:1077 +#, c-format +msgid "Could not find SessId=%d SessTime=%d for EOS record.\n" +msgstr "" + +#: src/stored/bscan.c:618 +#, c-format +msgid "Could not update job record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:629 +#, c-format +msgid "End of all Volumes. VolFiles=%u VolBlocks=%u VolBytes=%s\n" +msgstr "" + +#: src/stored/bscan.c:641 +#, c-format +msgid "Could not find Job for SessId=%d SessTime=%d record.\n" +msgstr "" + +#: src/stored/bscan.c:677 +#, c-format +msgid "%s file records. At file:blk=%s:%s bytes=%s\n" +msgstr "" + +#: src/stored/bscan.c:731 +#, c-format +msgid "Got MD5 record: %s\n" +msgstr "" + +#: src/stored/bscan.c:739 +#, c-format +msgid "Got SHA1 record: %s\n" +msgstr "" + +#: src/stored/bscan.c:747 +#, c-format +msgid "Got SHA256 record: %s\n" +msgstr "" + +#: src/stored/bscan.c:755 +#, c-format +msgid "Got SHA512 record: %s\n" +msgstr "" + +#: src/stored/bscan.c:763 src/stored/bscan.c:770 +msgid "Got signed digest record\n" +msgstr "" + +#: src/stored/bscan.c:776 +#, c-format +msgid "Got Prog Names Stream: %s\n" +msgstr "" + +#: src/stored/bscan.c:782 +msgid "Got Prog Data Stream record.\n" +msgstr "" + +#: src/stored/bscan.c:792 +#, c-format +msgid "Unknown stream type!!! stream=%d len=%i\n" +msgstr "" + +#: src/stored/bscan.c:856 +#, c-format +msgid "Could not create File Attributes record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:862 +#, c-format +msgid "Created File record: %s\n" +msgstr "" + +#: src/stored/bscan.c:906 +#, c-format +msgid "Could not create media record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:910 src/stored/bscan.c:931 +#, c-format +msgid "Could not update media record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:914 +#, c-format +msgid "Created Media record for Volume: %s\n" +msgstr "" + +#: src/stored/bscan.c:935 +#, c-format +msgid "Updated Media record at end of Volume: %s\n" +msgstr "" + +#: src/stored/bscan.c:952 +#, c-format +msgid "Could not create pool record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:956 +#, c-format +msgid "Created Pool record for Pool: %s\n" +msgstr "" + +#: src/stored/bscan.c:976 +#, c-format +msgid "Created Client record for Client: %s\n" +msgstr "" + +#: src/stored/bscan.c:993 +#, c-format +msgid "Fileset \"%s\" already exists.\n" +msgstr "" + +#: src/stored/bscan.c:997 +#, c-format +msgid "Could not create FileSet record \"%s\". ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:1002 +#, c-format +msgid "Created FileSet record \"%s\"\n" +msgstr "" + +#: src/stored/bscan.c:1049 +#, c-format +msgid "Could not create JobId record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:1055 +#, c-format +msgid "Could not update job start record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:1058 +#, c-format +msgid "Created new JobId=%u record for original JobId=%u\n" +msgstr "" + +#: src/stored/bscan.c:1108 +#, c-format +msgid "Could not update JobId=%u record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:1113 +#, c-format +msgid "Updated Job termination record for JobId=%u Level=%s TermStat=%c\n" +msgstr "" + +#: src/stored/bscan.c:1135 +#, c-format +msgid "Job Termination code: %d" +msgstr "" + +#: src/stored/bscan.c:1140 +#, c-format +msgid "" +"%s\n" +"JobId: %d\n" +"Job: %s\n" +"FileSet: %s\n" +"Backup Level: %s\n" +"Client: %s\n" +"Start time: %s\n" +"End time: %s\n" +"Files Written: %s\n" +"Bytes Written: %s\n" +"Volume Session Id: %d\n" +"Volume Session Time: %d\n" +"Last Volume Bytes: %s\n" +"Termination: %s\n" +"\n" +msgstr "" + +#: src/stored/bscan.c:1197 +#, c-format +msgid "Could not create JobMedia record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:1201 +#, c-format +msgid "Created JobMedia record JobId %d, MediaId %d\n" +msgstr "" + +#: src/stored/bscan.c:1217 +#, c-format +msgid "Could not find SessId=%d SessTime=%d for MD5/SHA1 record.\n" +msgstr "" + +#: src/stored/bscan.c:1231 +#, c-format +msgid "Could not add MD5/SHA1 to File record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:1236 +msgid "Updated MD5/SHA1 record\n" +msgstr "" + +#: src/stored/btape.c:172 src/stored/stored.c:128 +#, c-format +msgid "Tape block size (%d) not multiple of system size (%d)\n" +msgstr "" + +#: src/stored/btape.c:176 src/stored/stored.c:132 +#, c-format +msgid "Tape block size (%d) is not a power of 2\n" +msgstr "" + +#: src/stored/btape.c:179 +#, c-format +msgid "" +"\n" +"\n" +"!!!! Warning large disk addressing disabled. boffset_t=%d should be 8 or " +"more !!!!!\n" +"\n" +"\n" +msgstr "" + +#: src/stored/btape.c:186 +#, c-format +msgid "32 bit printf/scanf problem. i=%d x32=%u y32=%u\n" +msgstr "" + +#: src/stored/btape.c:195 +msgid "64 bit printf/scanf problem. i=%d x64=%" +msgstr "" + +#: src/stored/btape.c:195 +msgid " y64=%" +msgstr "" + +#: src/stored/btape.c:200 +#, c-format +msgid "Tape block granularity is %d bytes.\n" +msgstr "" + +#: src/stored/btape.c:269 +msgid "No archive name specified.\n" +msgstr "" + +#: src/stored/btape.c:273 +msgid "Improper number of arguments specified.\n" +msgstr "" + +#: src/stored/btape.c:287 +msgid "btape does not work with DVD storage.\n" +msgstr "" + +#: src/stored/btape.c:292 +msgid "btape only works with tape storage.\n" +msgstr "" + +#: src/stored/btape.c:368 +#, c-format +msgid "open device %s: OK\n" +msgstr "" + +#: src/stored/btape.c:391 +msgid "Enter Volume Name: " +msgstr "" + +#: src/stored/btape.c:398 +#, c-format +msgid "Device open failed. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:404 +#, c-format +msgid "Wrote Volume label for volume \"%s\".\n" +msgstr "" + +#: src/stored/btape.c:418 +msgid "Volume has no label.\n" +msgstr "" + +#: src/stored/btape.c:421 +msgid "Volume label read correctly.\n" +msgstr "" + +#: src/stored/btape.c:424 +#, c-format +msgid "I/O error on device: ERR=%s" +msgstr "" + +#: src/stored/btape.c:427 +msgid "Volume name error\n" +msgstr "" + +#: src/stored/btape.c:430 +#, c-format +msgid "Error creating label. ERR=%s" +msgstr "" + +#: src/stored/btape.c:433 +msgid "Volume version error.\n" +msgstr "" + +#: src/stored/btape.c:436 +msgid "Bad Volume label type.\n" +msgstr "" + +#: src/stored/btape.c:439 +msgid "Unknown error.\n" +msgstr "" + +#: src/stored/btape.c:457 +#, c-format +msgid "Bad status from load. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:459 +#, c-format +msgid "Loaded %s\n" +msgstr "" + +#: src/stored/btape.c:468 src/stored/btape.c:807 src/stored/btape.c:849 +#: src/stored/btape.c:919 src/stored/btape.c:961 src/stored/btape.c:1229 +#, c-format +msgid "Bad status from rewind. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:471 src/stored/btape.c:1237 +#, c-format +msgid "Rewound %s\n" +msgstr "" + +#: src/stored/btape.c:497 src/stored/btape.c:1241 +#, c-format +msgid "Bad status from weof. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:501 +#, c-format +msgid "Wrote 1 EOF to %s\n" +msgstr "" + +#: src/stored/btape.c:504 +#, c-format +msgid "Wrote %d EOFs to %s\n" +msgstr "" + +#: src/stored/btape.c:522 +msgid "Moved to end of medium.\n" +msgstr "" + +#: src/stored/btape.c:549 +#, c-format +msgid "Bad status from bsf. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:551 +#, c-format +msgid "Backspaced %d file%s.\n" +msgstr "" + +#: src/stored/btape.c:568 +#, c-format +msgid "Bad status from bsr. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:570 +#, c-format +msgid "Backspaced %d record%s.\n" +msgstr "" + +#: src/stored/btape.c:580 src/stored/status.c:302 +#, c-format +msgid "Configured device capabilities:\n" +msgstr "" + +#: src/stored/btape.c:598 +#, c-format +msgid "Device status:\n" +msgstr "" + +#: src/stored/btape.c:612 src/stored/status.c:341 +#, c-format +msgid "Device parameters:\n" +msgstr "" + +#: src/stored/btape.c:617 +#, c-format +msgid "Status:\n" +msgstr "" + +#: src/stored/btape.c:632 +msgid "" +"Test writting larger and larger records.\n" +"This is a torture test for records.\n" +"I am going to write\n" +"larger and larger records. It will stop when the record size\n" +"plus the header exceeds the block size (by default about 64K)\n" +msgstr "" + +#: src/stored/btape.c:638 +msgid "Do you want to continue? (y/n): " +msgstr "" + +#: src/stored/btape.c:640 src/stored/btape.c:1857 +msgid "Command aborted.\n" +msgstr "" + +#: src/stored/btape.c:656 +#, c-format +msgid "Block %d i=%d\n" +msgstr "" + +#: src/stored/btape.c:682 +msgid "Skipping read backwards test because BSR turned off.\n" +msgstr "" + +#: src/stored/btape.c:686 +msgid "" +"\n" +"=== Write, backup, and re-read test ===\n" +"\n" +"I'm going to write three records and an EOF\n" +"then backup over the EOF and re-read the last record.\n" +"Bacula does this after writing the last block on the\n" +"tape to verify that the block was written correctly.\n" +"\n" +"This is not an *essential* feature ...\n" +"\n" +msgstr "" + +#: src/stored/btape.c:699 src/stored/btape.c:710 src/stored/btape.c:721 +#: src/stored/btape.c:819 src/stored/btape.c:835 src/stored/btape.c:931 +#: src/stored/btape.c:947 src/stored/btape.c:1566 src/stored/btape.c:2451 +msgid "Error writing record to block.\n" +msgstr "" + +#: src/stored/btape.c:703 src/stored/btape.c:714 src/stored/btape.c:725 +#: src/stored/btape.c:823 src/stored/btape.c:839 src/stored/btape.c:935 +#: src/stored/btape.c:951 src/stored/btape.c:1570 src/stored/btape.c:2455 +msgid "Error writing block to device.\n" +msgstr "" + +#: src/stored/btape.c:706 +#, c-format +msgid "Wrote first record of %d bytes.\n" +msgstr "" + +#: src/stored/btape.c:717 +#, c-format +msgid "Wrote second record of %d bytes.\n" +msgstr "" + +#: src/stored/btape.c:728 +#, c-format +msgid "Wrote third record of %d bytes.\n" +msgstr "" + +#: src/stored/btape.c:735 src/stored/btape.c:740 +#, c-format +msgid "Backspace file failed! ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:744 +msgid "Backspaced over EOF OK.\n" +msgstr "" + +#: src/stored/btape.c:746 +#, c-format +msgid "Backspace record failed! ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:749 +msgid "Backspace record OK.\n" +msgstr "" + +#: src/stored/btape.c:752 src/stored/btape.c:758 +#, c-format +msgid "Read block failed! ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:763 +msgid "Bad data in record. Test failed!\n" +msgstr "" + +#: src/stored/btape.c:767 +msgid "" +"\n" +"Block re-read correct. Test succeeded!\n" +msgstr "" + +#: src/stored/btape.c:768 +msgid "" +"=== End Write, backup, and re-read test ===\n" +"\n" +msgstr "" + +#: src/stored/btape.c:775 +msgid "" +"This is not terribly serious since Bacula only uses\n" +"this function to verify the last block written to the\n" +"tape. Bacula will skip the last block verification\n" +"if you add:\n" +"\n" +"Backward Space Record = No\n" +"\n" +"to your Storage daemon's Device resource definition.\n" +msgstr "" + +#: src/stored/btape.c:799 +msgid "" +"\n" +"=== Write, rewind, and re-read test ===\n" +"\n" +"I'm going to write 1000 records and an EOF\n" +"then write 1000 records and an EOF, then rewind,\n" +"and re-read the data to verify that it is correct.\n" +"\n" +"This is an *essential* feature ...\n" +"\n" +msgstr "" + +#: src/stored/btape.c:827 src/stored/btape.c:843 src/stored/btape.c:939 +#: src/stored/btape.c:955 +#, c-format +msgid "Wrote 1000 blocks of %d bytes.\n" +msgstr "" + +#: src/stored/btape.c:852 src/stored/btape.c:964 +msgid "Rewind OK.\n" +msgstr "" + +#: src/stored/btape.c:859 src/stored/btape.c:1013 +msgid "Got EOF on tape.\n" +msgstr "" + +#: src/stored/btape.c:864 +#, c-format +msgid "Read block %d failed! ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:870 +#, c-format +msgid "Read record failed. Block %d! ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:876 src/stored/btape.c:1043 +#, c-format +msgid "Bad data in record. Expected %d, got %d at byte %d. Test failed!\n" +msgstr "" + +#: src/stored/btape.c:883 +msgid "1000 blocks re-read correctly.\n" +msgstr "" + +#: src/stored/btape.c:886 src/stored/btape.c:1050 +msgid "" +"=== Test Succeeded. End Write, rewind, and re-read test ===\n" +"\n" +msgstr "" + +#: src/stored/btape.c:911 +msgid "" +"\n" +"=== Write, rewind, and position test ===\n" +"\n" +"I'm going to write 1000 records and an EOF\n" +"then write 1000 records and an EOF, then rewind,\n" +"and position to a few blocks and verify that it is correct.\n" +"\n" +"This is an *essential* feature ...\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1004 +#, c-format +msgid "Reposition to file:block %d:%d\n" +msgstr "" + +#: src/stored/btape.c:1006 +msgid "Reposition error.\n" +msgstr "" + +#: src/stored/btape.c:1019 +#, c-format +msgid "" +"Read block %d failed! file=%d blk=%d. ERR=%s\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1021 +msgid "" +"This may be because the tape drive block size is not\n" +" set to variable blocking as normally used by Bacula.\n" +" Please see the Tape Testing chapter in the manual and \n" +" look for using mt with defblksize and setoptions\n" +"If your tape drive block size is correct, then perhaps\n" +" your SCSI driver is *really* stupid and does not\n" +" correctly report the file:block after a FSF. In this\n" +" case try setting:\n" +" Fast Forward Space File = no\n" +" in your Device resource.\n" +msgstr "" + +#: src/stored/btape.c:1037 +#, c-format +msgid "Read record failed! ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1048 +#, c-format +msgid "Block %d re-read correctly.\n" +msgstr "" + +#: src/stored/btape.c:1069 +msgid "" +"\n" +"\n" +"=== Append files test ===\n" +"\n" +"This test is essential to Bacula.\n" +"\n" +"I'm going to write one record in file 0,\n" +" two records in file 1,\n" +" and three records in file 2\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1093 +msgid "Now moving to end of medium.\n" +msgstr "" + +#: src/stored/btape.c:1095 src/stored/btape.c:1324 +#, c-format +msgid "We should be in file 3. I am at file %d. %s\n" +msgstr "" + +#: src/stored/btape.c:1096 src/stored/btape.c:1114 src/stored/btape.c:1313 +#: src/stored/btape.c:1325 src/stored/btape.c:1338 src/stored/btape.c:1355 +msgid "This is correct!" +msgstr "" + +#: src/stored/btape.c:1096 src/stored/btape.c:1114 src/stored/btape.c:1313 +#: src/stored/btape.c:1325 src/stored/btape.c:1338 src/stored/btape.c:1355 +msgid "This is NOT correct!!!!" +msgstr "" + +#: src/stored/btape.c:1102 +msgid "" +"\n" +"Now the important part, I am going to attempt to append to the tape.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1109 +msgid "" +"Done appending, there should be no I/O errors\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1110 +msgid "Doing Bacula scan of blocks:\n" +msgstr "" + +#: src/stored/btape.c:1112 +msgid "End scanning the tape.\n" +msgstr "" + +#: src/stored/btape.c:1113 src/stored/btape.c:1337 +#, c-format +msgid "We should be in file 4. I am at file %d. %s\n" +msgstr "" + +#: src/stored/btape.c:1138 +msgid "" +"\n" +"Autochanger enabled, but no name or no command device specified.\n" +msgstr "" + +#: src/stored/btape.c:1142 +msgid "" +"\n" +"Ah, I see you have an autochanger configured.\n" +"To test the autochanger you must have a blank tape\n" +" that I can write on in Slot 1.\n" +msgstr "" + +#: src/stored/btape.c:1145 +msgid "" +"\n" +"Do you wish to continue with the Autochanger test? (y/n): " +msgstr "" + +#: src/stored/btape.c:1152 +msgid "" +"\n" +"\n" +"=== Autochanger test ===\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1161 +msgid "3301 Issuing autochanger \"loaded\" command.\n" +msgstr "" + +#: src/stored/btape.c:1170 +#, c-format +msgid "3991 Bad autochanger command: %s\n" +msgstr "" + +#: src/stored/btape.c:1171 +#, c-format +msgid "3991 result=\"%s\": ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1175 +#, c-format +msgid "Slot %d loaded. I am going to unload it.\n" +msgstr "" + +#: src/stored/btape.c:1177 +msgid "Nothing loaded in the drive. OK.\n" +msgstr "" + +#: src/stored/btape.c:1184 +#, c-format +msgid "3302 Issuing autochanger \"unload %d %d\" command.\n" +msgstr "" + +#: src/stored/btape.c:1189 +#, c-format +msgid "unload status=%s %d\n" +msgstr "" + +#: src/stored/btape.c:1189 +msgid "Bad" +msgstr "" + +#: src/stored/btape.c:1192 +#, c-format +msgid "3992 Bad autochanger command: %s\n" +msgstr "" + +#: src/stored/btape.c:1193 +#, c-format +msgid "3992 result=\"%s\": ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1203 +#, c-format +msgid "3303 Issuing autochanger \"load %d %d\" command.\n" +msgstr "" + +#: src/stored/btape.c:1211 +#, c-format +msgid "3303 Autochanger \"load %d %d\" status is OK.\n" +msgstr "" + +#: src/stored/btape.c:1215 +#, c-format +msgid "3993 Bad autochanger command: %s\n" +msgstr "" + +#: src/stored/btape.c:1216 +#, c-format +msgid "3993 result=\"%s\": ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1231 +msgid "" +"\n" +"The test failed, probably because you need to put\n" +"a longer sleep time in the mtx-script in the load) case.\n" +"Adding a 30 second sleep and trying again ...\n" +msgstr "" + +#: src/stored/btape.c:1244 +#, c-format +msgid "Wrote EOF to %s\n" +msgstr "" + +#: src/stored/btape.c:1248 +#, c-format +msgid "" +"\n" +"The test worked this time. Please add:\n" +"\n" +" sleep %d\n" +"\n" +"to your mtx-changer script in the load) case.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1253 +msgid "" +"\n" +"The test autochanger worked!!\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1264 +msgid "You must correct this error or the Autochanger will not work.\n" +msgstr "" + +#: src/stored/btape.c:1282 +msgid "" +"\n" +"\n" +"=== Forward space files test ===\n" +"\n" +"This test is essential to Bacula.\n" +"\n" +"I'm going to write five files then test forward spacing\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1307 +msgid "Now forward spacing 1 file.\n" +msgstr "" + +#: src/stored/btape.c:1309 src/stored/btape.c:1321 src/stored/btape.c:1334 +#: src/stored/btape.c:1352 src/stored/btape.c:1521 +#, c-format +msgid "Bad status from fsr. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1312 +#, c-format +msgid "We should be in file 1. I am at file %d. %s\n" +msgstr "" + +#: src/stored/btape.c:1319 +msgid "Now forward spacing 2 files.\n" +msgstr "" + +#: src/stored/btape.c:1332 +msgid "Now forward spacing 4 files.\n" +msgstr "" + +#: src/stored/btape.c:1344 +msgid "" +"The test worked this time. Please add:\n" +"\n" +" Fast Forward Space File = no\n" +"\n" +"to your Device resource for this drive.\n" +msgstr "" + +#: src/stored/btape.c:1350 +msgid "Now forward spacing 1 more file.\n" +msgstr "" + +#: src/stored/btape.c:1354 +#, c-format +msgid "We should be in file 5. I am at file %d. %s\n" +msgstr "" + +#: src/stored/btape.c:1359 +msgid "" +"\n" +"=== End Forward space files test ===\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1363 +msgid "" +"\n" +"The forward space file test failed.\n" +msgstr "" + +#: src/stored/btape.c:1365 +msgid "" +"You have Fast Forward Space File enabled.\n" +"I am turning it off then retrying the test.\n" +msgstr "" + +#: src/stored/btape.c:1371 +msgid "" +"You must correct this error or Bacula will not work.\n" +"Some systems, e.g. OpenBSD, require you to set\n" +" Use MTIOCGET= no\n" +"in your device resource. Use with caution.\n" +msgstr "" + +#: src/stored/btape.c:1403 +msgid "" +"\n" +"Append test failed. Attempting again.\n" +"Setting \"Hardware End of Medium = no\n" +" and \"Fast Forward Space File = no\n" +"and retrying append test.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1411 +msgid "" +"\n" +"\n" +"It looks like the test worked this time, please add:\n" +"\n" +" Hardware End of Medium = No\n" +"\n" +" Fast Forward Space File = No\n" +"to your Device resource in the Storage conf file.\n" +msgstr "" + +#: src/stored/btape.c:1418 +msgid "" +"\n" +"\n" +"That appears *NOT* to have corrected the problem.\n" +msgstr "" + +#: src/stored/btape.c:1423 +msgid "" +"\n" +"\n" +"It looks like the append failed. Attempting again.\n" +"Setting \"BSF at EOM = yes\" and retrying append test.\n" +msgstr "" + +#: src/stored/btape.c:1428 +msgid "" +"\n" +"\n" +"It looks like the test worked this time, please add:\n" +"\n" +" Hardware End of Medium = No\n" +" Fast Forward Space File = No\n" +" BSF at EOM = yes\n" +"\n" +"to your Device resource in the Storage conf file.\n" +msgstr "" + +#: src/stored/btape.c:1439 +msgid "" +"\n" +"Append test failed.\n" +"\n" +"\n" +"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n" +"Unable to correct the problem. You MUST fix this\n" +"problem before Bacula can use your tape drive correctly\n" +"\n" +"Perhaps running Bacula in fixed block mode will work.\n" +"Do so by setting:\n" +"\n" +"Minimum Block Size = nnn\n" +"Maximum Block Size = nnn\n" +"\n" +"in your Storage daemon's Device definition.\n" +"nnn must match your tape driver's block size, which\n" +"can be determined by reading your tape manufacturers\n" +"information, and the information on your kernel dirver.\n" +"Fixed block sizes, however, are not normally an ideal solution.\n" +"\n" +"Some systems, e.g. OpenBSD, require you to set\n" +" Use MTIOCGET= no\n" +"in your device resource. Use with caution.\n" +msgstr "" + +#: src/stored/btape.c:1460 +msgid "" +"\n" +"The above Bacula scan should have output identical to what follows.\n" +"Please double check it ...\n" +"=== Sample correct output ===\n" +"1 block of 64448 bytes in file 1\n" +"End of File mark.\n" +"2 blocks of 64448 bytes in file 2\n" +"End of File mark.\n" +"3 blocks of 64448 bytes in file 3\n" +"End of File mark.\n" +"1 block of 64448 bytes in file 4\n" +"End of File mark.\n" +"Total files=4, blocks=7, bytes = 451,136\n" +"=== End sample correct output ===\n" +"\n" +"If the above scan output is not identical to the\n" +"sample output, you MUST correct the problem\n" +"or Bacula will not be able to write multiple Jobs to \n" +"the tape.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1499 +#, c-format +msgid "Bad status from fsf. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1503 +msgid "Forward spaced 1 file.\n" +msgstr "" + +#: src/stored/btape.c:1506 +#, c-format +msgid "Forward spaced %d files.\n" +msgstr "" + +#: src/stored/btape.c:1525 +msgid "Forward spaced 1 record.\n" +msgstr "" + +#: src/stored/btape.c:1528 +#, c-format +msgid "Forward spaced %d records.\n" +msgstr "" + +#: src/stored/btape.c:1573 +#, c-format +msgid "Wrote one record of %d bytes.\n" +msgstr "" + +#: src/stored/btape.c:1575 +msgid "Wrote block to device.\n" +msgstr "" + +#: src/stored/btape.c:1590 +msgid "Enter length to read: " +msgstr "" + +#: src/stored/btape.c:1595 +msgid "Bad length entered, using default of 1024 bytes.\n" +msgstr "" + +#: src/stored/btape.c:1604 +#, c-format +msgid "Read of %d bytes gives stat=%d. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1627 src/stored/btape.c:1676 +#, c-format +msgid "End of tape\n" +msgstr "" + +#: src/stored/btape.c:1632 +#, c-format +msgid "Starting scan at file %u\n" +msgstr "" + +#: src/stored/btape.c:1637 src/stored/dev.c:1314 +#, c-format +msgid "read error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/btape.c:1639 +#, c-format +msgid "Bad status from read %d. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1642 src/stored/btape.c:1656 src/stored/btape.c:1720 +#: src/stored/btape.c:1732 src/stored/btape.c:1745 src/stored/btape.c:1761 +#, c-format +msgid "1 block of %d bytes in file %d\n" +msgstr "" + +#: src/stored/btape.c:1645 src/stored/btape.c:1659 src/stored/btape.c:1723 +#: src/stored/btape.c:1735 src/stored/btape.c:1748 src/stored/btape.c:1764 +#, c-format +msgid "%d blocks of %d bytes in file %d\n" +msgstr "" + +#: src/stored/btape.c:1667 src/stored/btape.c:1739 +#, c-format +msgid "End of File mark.\n" +msgstr "" + +#: src/stored/btape.c:1688 src/stored/btape.c:1792 +#, c-format +msgid "Total files=%d, blocks=%d, bytes = %s\n" +msgstr "" + +#: src/stored/btape.c:1752 +#, c-format +msgid "Short block read.\n" +msgstr "" + +#: src/stored/btape.c:1755 +#, c-format +msgid "Error reading block. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1779 +#, c-format +msgid "" +"Blk_block: %u dev_blk=%u blen=%u First rec FI=%s SessId=%u SessTim=%u Strm=%" +"s rlen=%d\n" +msgstr "" + +#: src/stored/btape.c:1801 +#, c-format +msgid "Device status: %u. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1831 +msgid "" +"\n" +"This command simulates Bacula writing to a tape.\n" +"It requires either one or two blank tapes, which it\n" +"will label and write.\n" +"\n" +"If you have an autochanger configured, it will use\n" +"the tapes that are in slots 1 and 2, otherwise, you will\n" +"be prompted to insert the tapes when necessary.\n" +"\n" +"It will print a status approximately\n" +"every 322 MB, and write an EOF every 3.2 GB. If you have\n" +"selected the simple test option, after writing the first tape\n" +"it will rewind it and re-read the last block written.\n" +"\n" +"If you have selected the multiple tape test, when the first tape\n" +"fills, it will ask for a second, and after writing a few more \n" +"blocks, it will stop. Then it will begin re-reading the\n" +"two tapes.\n" +"\n" +"This may take a long time -- hours! ...\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1848 +msgid "" +"Do you want to run the simplified test (s) with one tape\n" +"or the complete multiple tape (m) test: (s/m) " +msgstr "" + +#: src/stored/btape.c:1851 +msgid "Simple test (single tape) selected.\n" +msgstr "" + +#: src/stored/btape.c:1854 +msgid "Multiple tape test selected.\n" +msgstr "" + +#: src/stored/btape.c:1893 +msgid "Wrote Start of Session label.\n" +msgstr "" + +#: src/stored/btape.c:1924 +#, c-format +msgid "%s Begin writing Bacula records to tape ...\n" +msgstr "" + +#: src/stored/btape.c:1926 +#, c-format +msgid "%s Begin writing Bacula records to first tape ...\n" +msgstr "" + +#: src/stored/btape.c:1967 +#, c-format +msgid "Wrote blk_block=%u, dev_blk_num=%u VolBytes=%s rate=%.1f KB/s\n" +msgstr "" + +#: src/stored/btape.c:1977 +#, c-format +msgid "%s Flush block, write EOF\n" +msgstr "" + +#: src/stored/btape.c:1988 +msgid "Not OK\n" +msgstr "" + +#: src/stored/btape.c:2018 +msgid "Set ok=false after write_block_to_device.\n" +msgstr "" + +#: src/stored/btape.c:2021 +msgid "Wrote End of Session label.\n" +msgstr "" + +#: src/stored/btape.c:2045 +#, c-format +msgid "Wrote state file last_block_num1=%d last_block_num2=%d\n" +msgstr "" + +#: src/stored/btape.c:2049 +#, c-format +msgid "Could not create state file: %s ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:2057 +#, c-format +msgid "" +"\n" +"\n" +"%s Done filling tape at %d:%d. Now beginning re-read of tape ...\n" +msgstr "" + +#: src/stored/btape.c:2061 +#, c-format +msgid "" +"\n" +"\n" +"%s Done filling tapes at %d:%d. Now beginning re-read of first tape ...\n" +msgstr "" + +#: src/stored/btape.c:2100 +msgid "" +"\n" +"The state file level has changed. You must redo\n" +"the fill command.\n" +msgstr "" + +#: src/stored/btape.c:2106 +#, c-format +msgid "" +"\n" +"Could not find the state file: %s ERR=%s\n" +"You must redo the fill command.\n" +msgstr "" + +#: src/stored/btape.c:2162 +msgid "Mount first tape. Press enter when ready: " +msgstr "" + +#: src/stored/btape.c:2177 +msgid "Rewinding.\n" +msgstr "" + +#: src/stored/btape.c:2182 +#, c-format +msgid "Reading the first 10000 records from %u:%u.\n" +msgstr "" + +#: src/stored/btape.c:2186 src/stored/btape.c:2251 +#, c-format +msgid "Reposition from %u:%u to %u:%u\n" +msgstr "" + +#: src/stored/btape.c:2189 src/stored/btape.c:2238 src/stored/btape.c:2254 +#, c-format +msgid "Reposition error. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:2192 +#, c-format +msgid "Reading block %u.\n" +msgstr "" + +#: src/stored/btape.c:2194 src/stored/btape.c:2243 src/stored/btape.c:2259 +#, c-format +msgid "Error reading block: ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:2199 +msgid "" +"\n" +"The last block on the tape matches. Test succeeded.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:2201 +msgid "" +"\n" +"The last block of the first tape matches.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:2224 +msgid "Mount second tape. Press enter when ready: " +msgstr "" + +#: src/stored/btape.c:2236 +#, c-format +msgid "Reposition from %u:%u to 0:1\n" +msgstr "" + +#: src/stored/btape.c:2241 src/stored/btape.c:2257 +#, c-format +msgid "Reading block %d.\n" +msgstr "" + +#: src/stored/btape.c:2247 +msgid "" +"\n" +"The first block on the second tape matches.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:2263 +msgid "" +"\n" +"The last block on the second tape matches. Test succeeded.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:2278 +#, c-format +msgid "10000 records read now at %d:%d\n" +msgstr "" + +#: src/stored/btape.c:2301 src/stored/btape.c:2312 src/stored/btape.c:2360 +msgid "Last block written" +msgstr "" + +#: src/stored/btape.c:2303 src/stored/btape.c:2313 +msgid "Block read back" +msgstr "" + +#: src/stored/btape.c:2304 +#, c-format +msgid "" +"\n" +"\n" +"The blocks differ at byte %u\n" +msgstr "" + +#: src/stored/btape.c:2305 +msgid "" +"\n" +"\n" +"!!!! The last block written and the block\n" +"that was read back differ. The test FAILED !!!!\n" +"This must be corrected before you use Bacula\n" +"to write multi-tape Volumes.!!!!\n" +msgstr "" + +#: src/stored/btape.c:2344 +#, c-format +msgid "Last block at: %u:%u this_dev_block_num=%d\n" +msgstr "" + +#: src/stored/btape.c:2358 +#, c-format +msgid "Block not written: FileIndex=%u blk_block=%u Size=%u\n" +msgstr "" + +#: src/stored/btape.c:2362 +msgid "Block not written" +msgstr "" + +#: src/stored/btape.c:2377 +#, c-format +msgid "End of tape %d:%d. VolumeCapacity=%s. Write rate = %.1f KB/s\n" +msgstr "" + +#: src/stored/btape.c:2427 +msgid "Test writing blocks of 64512 bytes to tape.\n" +msgstr "" + +#: src/stored/btape.c:2429 +msgid "How many blocks do you want to write? (1000): " +msgstr "" + +#: src/stored/btape.c:2444 +#, c-format +msgid "Begin writing %d Bacula blocks to tape ...\n" +msgstr "" + +#: src/stored/btape.c:2496 +#, c-format +msgid "Begin writing raw blocks of %u bytes.\n" +msgstr "" + +#: src/stored/btape.c:2520 +#, c-format +msgid "Write failed at block %u. stat=%d ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:2529 +msgid "test autochanger" +msgstr "" + +#: src/stored/btape.c:2530 +msgid "backspace file" +msgstr "" + +#: src/stored/btape.c:2531 +msgid "backspace record" +msgstr "" + +#: src/stored/btape.c:2532 +msgid "list device capabilities" +msgstr "" + +#: src/stored/btape.c:2533 +msgid "clear tape errors" +msgstr "" + +#: src/stored/btape.c:2534 +msgid "go to end of Bacula data for append" +msgstr "" + +#: src/stored/btape.c:2535 +msgid "go to the physical end of medium" +msgstr "" + +#: src/stored/btape.c:2536 +msgid "fill tape, write onto second volume" +msgstr "" + +#: src/stored/btape.c:2537 +msgid "read filled tape" +msgstr "" + +#: src/stored/btape.c:2538 +msgid "forward space a file" +msgstr "" + +#: src/stored/btape.c:2539 +msgid "forward space a record" +msgstr "" + +#: src/stored/btape.c:2541 +msgid "write a Bacula label to the tape" +msgstr "" + +#: src/stored/btape.c:2542 +msgid "load a tape" +msgstr "" + +#: src/stored/btape.c:2543 +msgid "quit btape" +msgstr "" + +#: src/stored/btape.c:2544 +msgid "use write() to fill tape" +msgstr "" + +#: src/stored/btape.c:2545 +msgid "read and print the Bacula tape label" +msgstr "" + +#: src/stored/btape.c:2546 +msgid "test record handling functions" +msgstr "" + +#: src/stored/btape.c:2547 +msgid "rewind the tape" +msgstr "" + +#: src/stored/btape.c:2548 +msgid "read() tape block by block to EOT and report" +msgstr "" + +#: src/stored/btape.c:2549 +msgid "Bacula read block by block to EOT and report" +msgstr "" + +#: src/stored/btape.c:2550 +msgid "print tape status" +msgstr "" + +#: src/stored/btape.c:2551 +msgid "General test Bacula tape functions" +msgstr "" + +#: src/stored/btape.c:2552 +msgid "write an EOF on the tape" +msgstr "" + +#: src/stored/btape.c:2553 +msgid "write a single Bacula block" +msgstr "" + +#: src/stored/btape.c:2554 +msgid "read a single record" +msgstr "" + +#: src/stored/btape.c:2555 +msgid "read a single Bacula block" +msgstr "" + +#: src/stored/btape.c:2556 +msgid "quick fill command" +msgstr "" + +#: src/stored/btape.c:2577 +#, c-format +msgid "\"%s\" is an invalid command\n" +msgstr "" + +#: src/stored/btape.c:2586 +#, c-format +msgid "Interactive commands:\n" +msgstr "" + +#: src/stored/btape.c:2597 +#, c-format +msgid "" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: btape \n" +" -b specify bootstrap file\n" +" -c set configuration file to file\n" +" -d set debug level to nn\n" +" -p proceed inspite of I/O errors\n" +" -s turn off signals\n" +" -v be verbose\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:2682 +#, c-format +msgid "Mount second Volume on device %s and press return when ready: " +msgstr "" + +#: src/stored/btape.c:2709 +#, c-format +msgid "Mount blank Volume on device %s and press return when ready: " +msgstr "" + +#: src/stored/btape.c:2727 +#, c-format +msgid "End of Volume \"%s\" %d records.\n" +msgstr "" + +#: src/stored/btape.c:2740 +#, c-format +msgid "Read block=%u, VolBytes=%s rate=%.1f KB/s\n" +msgstr "" + +#: src/stored/btape.c:2752 src/stored/mount.c:627 +#, c-format +msgid "Cannot open Dev=%s, Vol=%s\n" +msgstr "" + +#: src/stored/butil.c:59 +msgid "Nohdr," +msgstr "" + +#: src/stored/butil.c:62 +msgid "partial," +msgstr "" + +#: src/stored/butil.c:65 +msgid "empty," +msgstr "" + +#: src/stored/butil.c:68 +msgid "Nomatch," +msgstr "" + +#: src/stored/butil.c:71 +msgid "cont," +msgstr "" + +#: src/stored/butil.c:147 +msgid "Volume name or names is too long. Please use a .bsr file.\n" +msgstr "" + +#: src/stored/butil.c:167 +#, c-format +msgid "Cannot find device \"%s\" in config file %s.\n" +msgstr "" + +#: src/stored/butil.c:174 +#, c-format +msgid "Cannot init device %s\n" +msgstr "" + +#: src/stored/butil.c:194 +#, c-format +msgid "Cannot open %s\n" +msgstr "" + +#: src/stored/butil.c:277 +#, c-format +msgid "Could not find device \"%s\" in config file %s.\n" +msgstr "" + +#: src/stored/butil.c:282 +#, c-format +msgid "Using device: \"%s\" for reading.\n" +msgstr "" + +#: src/stored/butil.c:285 +#, c-format +msgid "Using device: \"%s\" for writing.\n" +msgstr "" + +#: src/stored/butil.c:301 +msgid "Unexpected End of Data\n" +msgstr "" + +#: src/stored/butil.c:303 +msgid "Unexpected End of Tape\n" +msgstr "" + +#: src/stored/butil.c:305 +msgid "Unexpected End of File\n" +msgstr "" + +#: src/stored/butil.c:307 +msgid "Tape Door is Open\n" +msgstr "" + +#: src/stored/butil.c:309 +msgid "Unexpected Tape is Off-line\n" +msgstr "" + +#: src/stored/dev.c:119 +#, c-format +msgid "Unable to stat device %s: ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:130 +#, c-format +msgid "" +"%s is an unknown device type. Must be tape or directory\n" +" or have RequiresMount=yes for DVD. st_mode=%x\n" +msgstr "" + +#: src/stored/dev.c:189 +#, c-format +msgid "Unable to stat mount point %s: ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:195 +msgid "" +"Mount and unmount commands must defined for a device which requires mount.\n" +msgstr "" + +#: src/stored/dev.c:198 +msgid "Write part command must be defined for a device which requires mount.\n" +msgstr "" + +#: src/stored/dev.c:203 +#, c-format +msgid "Block size %u on device %s is too large, using default %u\n" +msgstr "" + +#: src/stored/dev.c:208 +#, c-format +msgid "Max block size %u not multiple of device %s block size.\n" +msgstr "" + +#: src/stored/dev.c:224 src/stored/dev.c:230 +#, c-format +msgid "Unable to init cond variable: ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:326 +msgid "Illegal mode given to open dev.\n" +msgstr "" + +#: src/stored/dev.c:421 src/stored/device.c:325 +#, c-format +msgid "Unable to open device %s: ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:456 +#, c-format +msgid "Could not open file device %s. No Volume name given.\n" +msgstr "" + +#: src/stored/dev.c:479 src/stored/dev.c:647 +#, c-format +msgid "Could not open: %s, ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:523 +#, c-format +msgid "Could not open DVD device %s. No Volume name given.\n" +msgstr "" + +#: src/stored/dev.c:572 +#, c-format +msgid "The DVD in device %s contains data, please blank it before writing.\n" +msgstr "" + +#: src/stored/dev.c:593 +#, c-format +msgid "Unable to stat DVD part 1 file %s: ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:601 +#, c-format +msgid "DVD part 1 is not a regular file %s.\n" +msgstr "" + +#: src/stored/dev.c:621 +#, c-format +msgid "There is no valid DVD in device %s.\n" +msgstr "" + +#: src/stored/dev.c:627 +#, c-format +msgid "Could not mount DVD device %s.\n" +msgstr "" + +#: src/stored/dev.c:677 +#, c-format +msgid "Could not fstat: %s, ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:711 +#, c-format +msgid "Bad call to rewind. Device %s not open\n" +msgstr "" + +#: src/stored/dev.c:750 +#, c-format +msgid "No tape loaded or drive offline on %s.\n" +msgstr "" + +#: src/stored/dev.c:760 +#, c-format +msgid "Rewind error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:770 src/stored/dev.c:848 src/stored/dev.c:985 +#: src/stored/dev.c:1561 +#, c-format +msgid "lseek error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:819 +#, c-format +msgid "Bad call to eod. Device %s not open\n" +msgstr "" + +#: src/stored/dev.c:884 +#, c-format +msgid "ioctl MTEOM error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:893 src/stored/dev.c:1026 +#, c-format +msgid "ioctl MTIOCGET error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:971 +msgid "Bad device call. Device not open\n" +msgstr "" + +#: src/stored/dev.c:984 +#, c-format +msgid "Seek error: ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:1021 +msgid " Bacula status:" +msgstr "" + +#: src/stored/dev.c:1022 src/stored/dev.c:1105 src/stored/dev.c:1107 +#, c-format +msgid " file=%d block=%d\n" +msgstr "" + +#: src/stored/dev.c:1030 +msgid " Device status:" +msgstr "" + +#: src/stored/dev.c:1129 +msgid "Bad call to load_dev. Device not open\n" +msgstr "" + +#: src/stored/dev.c:1140 src/stored/dev.c:1153 +#, c-format +msgid "ioctl MTLOAD error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:1184 +#, c-format +msgid "ioctl MTOFFL error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:1225 +msgid "Bad call to fsf. Device not open\n" +msgstr "" + +#: src/stored/dev.c:1236 src/stored/dev.c:1363 +#, c-format +msgid "Device %s at End of Tape.\n" +msgstr "" + +#: src/stored/dev.c:1267 src/stored/dev.c:1343 +#, c-format +msgid "ioctl MTFSF error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:1392 +msgid "Bad call to bsf. Device not open\n" +msgstr "" + +#: src/stored/dev.c:1398 +#, c-format +msgid "Device %s cannot BSF because it is not a tape.\n" +msgstr "" + +#: src/stored/dev.c:1415 +#, c-format +msgid "ioctl MTBSF error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:1434 +msgid "Bad call to fsr. Device not open\n" +msgstr "" + +#: src/stored/dev.c:1444 +#, c-format +msgid "ioctl MTFSR not permitted on %s.\n" +msgstr "" + +#: src/stored/dev.c:1472 +#, c-format +msgid "ioctl MTFSR %d error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:1490 +msgid "Bad call to bsr_dev. Device not open\n" +msgstr "" + +#: src/stored/dev.c:1500 +#, c-format +msgid "ioctl MTBSR not permitted on %s.\n" +msgstr "" + +#: src/stored/dev.c:1514 +#, c-format +msgid "ioctl MTBSR error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:1550 +msgid "Bad call to reposition. Device not open\n" +msgstr "" + +#: src/stored/dev.c:1629 +msgid "Bad call to weof_dev. Device not open\n" +msgstr "" + +#: src/stored/dev.c:1639 +msgid "Attempt to WEOF on non-appendable Volume\n" +msgstr "" + +#: src/stored/dev.c:1657 +#, c-format +msgid "ioctl MTWEOF error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:1756 +#, c-format +msgid "unknown func code %d" +msgstr "" + +#: src/stored/dev.c:1762 +#, c-format +msgid "I/O function \"%s\" not supported on this device.\n" +msgstr "" + +#: src/stored/dev.c:1917 +#, c-format +msgid "Unable to truncate device %s. ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:2016 src/stored/dev.c:2021 +#, c-format +msgid "Device %s cannot be %smounted. ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:2429 +#, c-format +msgid "Unable to set eotmodel on device %s: ERR=%s\n" +msgstr "" + +#: src/stored/device.c:120 +#, c-format +msgid "End of medium on Volume \"%s\" Bytes=%s Blocks=%s at %s.\n" +msgstr "" + +#: src/stored/device.c:136 +#, c-format +msgid "New volume \"%s\" mounted on device %s at %s.\n" +msgstr "" + +#: src/stored/device.c:148 +#, c-format +msgid "write_block_to_device Volume label failed. ERR=%s" +msgstr "" + +#: src/stored/device.c:183 +#, c-format +msgid "write_block_to_device overflow block failed. ERR=%s" +msgstr "" + +#: src/stored/device.c:327 +#, c-format +msgid "Unable to open archive %s: ERR=%s\n" +msgstr "" + +#: src/stored/dircmd.c:154 +msgid "Connection request failed.\n" +msgstr "" + +#: src/stored/dircmd.c:163 +#, c-format +msgid "Invalid connection. Len=%d\n" +msgstr "" + +#: src/stored/dircmd.c:274 +#, c-format +msgid "3991 Bad setdebug command: %s\n" +msgstr "" + +#: src/stored/dircmd.c:295 +#, c-format +msgid "3904 Job %s not found.\n" +msgstr "" + +#: src/stored/dircmd.c:321 +#, c-format +msgid "Job %s marked to be canceled.\n" +msgstr "" + +#: src/stored/dircmd.c:322 +#, c-format +msgid "3000 Job %s marked to be canceled.\n" +msgstr "" + +#: src/stored/dircmd.c:326 +msgid "3903 Error scanning cancel command.\n" +msgstr "" + +#: src/stored/dircmd.c:402 src/stored/dircmd.c:758 src/stored/dircmd.c:848 +#: src/stored/dircmd.c:920 src/stored/dircmd.c:983 src/stored/dircmd.c:1026 +#, c-format +msgid "3999 Device \"%s\" not found or could not be opened.\n" +msgstr "" + +#: src/stored/dircmd.c:407 +#, c-format +msgid "3903 Error scanning label command: %s\n" +msgstr "" + +#: src/stored/dircmd.c:457 +#, c-format +msgid "3910 Unable to open device %s: ERR=%s\n" +msgstr "" + +#: src/stored/dircmd.c:474 +#, c-format +msgid "3920 Cannot label Volume because it is already labeled: \"%s\"\n" +msgstr "" + +#: src/stored/dircmd.c:481 +msgid "3921 Wrong volume mounted.\n" +msgstr "" + +#: src/stored/dircmd.c:485 +msgid "3922 Cannot relabel an ANSI/IBM labeled Volume.\n" +msgstr "" + +#: src/stored/dircmd.c:493 +#, c-format +msgid "3912 Failed to label Volume: ERR=%s\n" +msgstr "" + +#: src/stored/dircmd.c:503 +#, c-format +msgid "3914 Failed to label Volume (no media): ERR=%s\n" +msgstr "" + +#: src/stored/dircmd.c:506 +#, c-format +msgid "3913 Cannot label Volume. Unknown status %d from read_volume_label()\n" +msgstr "" + +#: src/stored/dircmd.c:539 +#, c-format +msgid "3001 Mounted Volume: %s\n" +msgstr "" + +#: src/stored/dircmd.c:543 src/stored/dircmd.c:1062 +#, c-format +msgid "" +"3902 Cannot mount Volume on Storage Device %s because:\n" +"%s" +msgstr "" + +#: src/stored/dircmd.c:571 src/stored/reserve.c:1073 +#, c-format +msgid "" +"\n" +" Device \"%s\" requested by DIR could not be opened or does not exist.\n" +msgstr "" + +#: src/stored/dircmd.c:593 src/stored/reserve.c:1069 +#, c-format +msgid "" +"\n" +" Device \"%s\" in changer \"%s\" requested by DIR could not be opened or " +"does not exist.\n" +msgstr "" + +#: src/stored/dircmd.c:668 src/stored/dircmd.c:725 +#, c-format +msgid "3901 open device failed: ERR=%s\n" +msgstr "" + +#: src/stored/dircmd.c:688 src/stored/dircmd.c:716 +#, c-format +msgid "3001 Device %s is mounted with Volume \"%s\"\n" +msgstr "" + +#: src/stored/dircmd.c:691 src/stored/dircmd.c:719 src/stored/dircmd.c:734 +#, c-format +msgid "" +"3905 Device %s open but no Bacula volume is mounted.\n" +"If this is not a blank tape, try unmounting and remounting the Volume.\n" +msgstr "" + +#: src/stored/dircmd.c:701 +#, c-format +msgid "3001 Device %s is doing acquire.\n" +msgstr "" + +#: src/stored/dircmd.c:706 src/stored/dircmd.c:820 +#, c-format +msgid "3903 Device %s is being labeled.\n" +msgstr "" + +#: src/stored/dircmd.c:731 +#, c-format +msgid "3001 Device %s is already mounted with Volume \"%s\"\n" +msgstr "" + +#: src/stored/dircmd.c:740 +#, c-format +msgid "3002 Device %s is mounted.\n" +msgstr "" + +#: src/stored/dircmd.c:743 src/stored/dircmd.c:793 src/stored/dircmd.c:808 +#: src/stored/dircmd.c:839 +#, c-format +msgid "3907 %s" +msgstr "" + +#: src/stored/dircmd.c:746 +#, c-format +msgid "3906 File device %s is always mounted.\n" +msgstr "" + +#: src/stored/dircmd.c:752 +#, c-format +msgid "3905 Bizarre wait state %d\n" +msgstr "" + +#: src/stored/dircmd.c:762 +#, c-format +msgid "3909 Error scanning mount command: %s\n" +msgstr "" + +#: src/stored/dircmd.c:790 src/stored/dircmd.c:841 +#, c-format +msgid "3002 Device %s unmounted.\n" +msgstr "" + +#: src/stored/dircmd.c:797 +#, c-format +msgid "3901 Device %s is already unmounted.\n" +msgstr "" + +#: src/stored/dircmd.c:811 +#, c-format +msgid "3001 Device %s unmounted.\n" +msgstr "" + +#: src/stored/dircmd.c:816 +#, c-format +msgid "3902 Device %s is busy in acquire.\n" +msgstr "" + +#: src/stored/dircmd.c:853 +#, c-format +msgid "3907 Error scanning unmount command: %s\n" +msgstr "" + +#: src/stored/dircmd.c:884 +#, c-format +msgid "3921 Device %s already released.\n" +msgstr "" + +#: src/stored/dircmd.c:891 +#, c-format +msgid "3922 Device %s waiting for sysop.\n" +msgstr "" + +#: src/stored/dircmd.c:897 +#, c-format +msgid "3922 Device %s waiting for mount.\n" +msgstr "" + +#: src/stored/dircmd.c:901 +#, c-format +msgid "3923 Device %s is busy in acquire.\n" +msgstr "" + +#: src/stored/dircmd.c:905 +#, c-format +msgid "3914 Device %s is being labeled.\n" +msgstr "" + +#: src/stored/dircmd.c:914 +#, c-format +msgid "3022 Device %s released.\n" +msgstr "" + +#: src/stored/dircmd.c:925 +#, c-format +msgid "3927 Error scanning release command: %s\n" +msgstr "" + +#: src/stored/dircmd.c:970 +#, c-format +msgid "3995 Device %s is not an autochanger.\n" +msgstr "" + +#: src/stored/dircmd.c:987 +#, c-format +msgid "3908 Error scanning autocharger drives/list/slots command: %s\n" +msgstr "" + +#: src/stored/dircmd.c:1030 +#, c-format +msgid "3909 Error scanning readlabel command: %s\n" +msgstr "" + +#: src/stored/dircmd.c:1058 +#, c-format +msgid "3001 Volume=%s Slot=%d\n" +msgstr "" + +#: src/stored/dircmd.c:1090 +#, c-format +msgid "3931 Device %s is BLOCKED. user unmounted.\n" +msgstr "" + +#: src/stored/dircmd.c:1094 +#, c-format +msgid "" +"3932 Device %s is BLOCKED. user unmounted during wait for media/mount.\n" +msgstr "" + +#: src/stored/dircmd.c:1098 +#, c-format +msgid "3933 Device %s is BLOCKED waiting for media.\n" +msgstr "" + +#: src/stored/dircmd.c:1102 +#, c-format +msgid "3934 Device %s is being initialized.\n" +msgstr "" + +#: src/stored/dircmd.c:1106 +#, c-format +msgid "3935 Device %s is blocked labeling a Volume.\n" +msgstr "" + +#: src/stored/dircmd.c:1110 +#, c-format +msgid "3935 Device %s is blocked for unknown reason.\n" +msgstr "" + +#: src/stored/dircmd.c:1115 +#, c-format +msgid "3936 Device %s is busy reading.\n" +msgstr "" + +#: src/stored/dircmd.c:1118 +#, c-format +msgid "3937 Device %s is busy with %d writer(s).\n" +msgstr "" + +#: src/stored/dvd.c:112 +msgid "No FreeSpace command defined.\n" +msgstr "" + +#: src/stored/dvd.c:146 +#, c-format +msgid "Cannot run free space command. Results=%s ERR=%s\n" +msgstr "" + +#: src/stored/dvd.c:262 +#, c-format +msgid "Error writing part %d to the DVD: ERR=%s\n" +msgstr "" + +#: src/stored/dvd.c:264 +#, c-format +msgid "Error while writing current part to the DVD: %s" +msgstr "" + +#: src/stored/dvd.c:274 +#, c-format +msgid "Part %d (%lld bytes) written to DVD.\n" +msgstr "" + +#: src/stored/dvd.c:293 +#, c-format +msgid "Remaining free space %s on %s\n" +msgstr "" + +#: src/stored/dvd.c:359 +#, c-format +msgid "Next Volume part already exists on DVD. Cannot continue: %s\n" +msgstr "" + +#: src/stored/dvd.c:378 +#, c-format +msgid "open_next_part can't unlink existing part %s, ERR=%s\n" +msgstr "" + +#: src/stored/dvd.c:579 +#, c-format +msgid "" +"Error writing. Current part less than total number of parts (%d/%d, device=%" +"s)\n" +msgstr "" + +#: src/stored/dvd.c:586 +#, c-format +msgid "Unable to write last on %s: ERR=%s\n" +msgstr "" + +#: src/stored/fd_cmds.c:368 +msgid "Error parsing bootstrap file.\n" +msgstr "" + +#: src/stored/job.c:207 +#, c-format +msgid "Job name not found: %s\n" +msgstr "" + +#: src/stored/job.c:218 +#, c-format +msgid "Hey!!!! JobId %u Job %s already authenticated.\n" +msgstr "" + +#: src/stored/job.c:229 +msgid "Unable to authenticate File daemon\n" +msgstr "" + +#: src/stored/job.c:351 +msgid "In free_jcr(), but still attached to device!!!!\n" +msgstr "" + +#: src/stored/label.c:91 src/stored/label.c:132 src/stored/label.c:226 +#, c-format +msgid "Wrong Volume mounted on device %s: Wanted %s have %s\n" +msgstr "" + +#: src/stored/label.c:98 src/stored/label.c:135 src/stored/label.c:208 +#, c-format +msgid "Too many tries: %s" +msgstr "" + +#: src/stored/label.c:114 +#, c-format +msgid "Couldn't rewind device %s: ERR=%s\n" +msgstr "" + +#: src/stored/label.c:152 +#, c-format +msgid "" +"Requested Volume \"%s\" on %s is not a Bacula labeled Volume, because: ERR=%s" +msgstr "" + +#: src/stored/label.c:157 +msgid "Could not read Volume label from block.\n" +msgstr "" + +#: src/stored/label.c:160 +#, c-format +msgid "Could not unserialize Volume label: ERR=%s\n" +msgstr "" + +#: src/stored/label.c:165 +#, c-format +msgid "Volume Header Id bad: %s\n" +msgstr "" + +#: src/stored/label.c:193 +#, c-format +msgid "Volume on %s has wrong Bacula version. Wanted %d got %d\n" +msgstr "" + +#: src/stored/label.c:204 +#, c-format +msgid "Volume on %s has bad Bacula label type: %x\n" +msgstr "" + +#: src/stored/label.c:217 src/stored/label.c:402 +#, c-format +msgid "Could not reserve volume %s on %s\n" +msgstr "" + +#: src/stored/label.c:290 +#, c-format +msgid "Cannot write Volume label to block for device %s\n" +msgstr "" + +#: src/stored/label.c:449 +#, c-format +msgid "Rewind error on device %s: ERR=%s\n" +msgstr "" + +#: src/stored/label.c:455 +#, c-format +msgid "Truncate error on device %s: ERR=%s\n" +msgstr "" + +#: src/stored/label.c:461 +#, c-format +msgid "Failed to re-open DVD after truncate on device %s: ERR=%s\n" +msgstr "" + +#: src/stored/label.c:484 +#, c-format +msgid "Unable to write device %s: ERR=%s\n" +msgstr "" + +#: src/stored/label.c:512 +#, c-format +msgid "Recycled volume \"%s\" on device %s, all previous data lost.\n" +msgstr "" + +#: src/stored/label.c:515 +#, c-format +msgid "Wrote label to prelabeled Volume \"%s\" on device %s\n" +msgstr "" + +#: src/stored/label.c:719 +#, c-format +msgid "Bad session label = %d\n" +msgstr "" + +#: src/stored/label.c:737 src/stored/label.c:744 +#, c-format +msgid "Error writing Session label to %s: %s\n" +msgstr "" + +#: src/stored/label.c:779 +#, c-format +msgid "Expecting Volume Label, got FI=%s Stream=%s len=%d\n" +msgstr "" + +#: src/stored/label.c:906 +#, c-format +msgid "Unknown %d" +msgstr "" + +#: src/stored/label.c:910 +#, c-format +msgid "" +"\n" +"Volume Label:\n" +"Id : %sVerNo : %d\n" +"VolName : %s\n" +"PrevVolName : %s\n" +"VolFile : %d\n" +"LabelType : %s\n" +"LabelSize : %d\n" +"PoolName : %s\n" +"MediaType : %s\n" +"PoolType : %s\n" +"HostName : %s\n" +msgstr "" + +#: src/stored/label.c:932 +#, c-format +msgid "Date label written: %s\n" +msgstr "" + +#: src/stored/label.c:938 +#, c-format +msgid "Date label written: %04d-%02d-%02d at %02d:%02d\n" +msgstr "" + +#: src/stored/label.c:958 +#, c-format +msgid "" +"\n" +"%s Record:\n" +"JobId : %d\n" +"VerNum : %d\n" +"PoolName : %s\n" +"PoolType : %s\n" +"JobName : %s\n" +"ClientName : %s\n" +msgstr "" + +#: src/stored/label.c:971 +#, c-format +msgid "" +"Job (unique name) : %s\n" +"FileSet : %s\n" +"JobType : %c\n" +"JobLevel : %c\n" +msgstr "" + +#: src/stored/label.c:980 +#, c-format +msgid "" +"JobFiles : %s\n" +"JobBytes : %s\n" +"StartBlock : %s\n" +"EndBlock : %s\n" +"StartFile : %s\n" +"EndFile : %s\n" +"JobErrors : %s\n" +"JobStatus : %c\n" +msgstr "" + +#: src/stored/label.c:1001 +#, c-format +msgid "Date written : %s\n" +msgstr "" + +#: src/stored/label.c:1006 +#, c-format +msgid "Date written : %04d-%02d-%02d at %02d:%02d\n" +msgstr "" + +#: src/stored/label.c:1025 +msgid "Fresh Volume" +msgstr "" + +#: src/stored/label.c:1028 +msgid "Volume" +msgstr "" + +#: src/stored/label.c:1037 src/stored/read_record.c:402 +msgid "End of Media" +msgstr "" + +#: src/stored/label.c:1040 +msgid "End of Tape" +msgstr "" + +#: src/stored/label.c:1060 src/stored/label.c:1068 src/stored/label.c:1101 +#, c-format +msgid "%s Record: File:blk=%u:%u SessId=%d SessTime=%d JobId=%d DataLen=%d\n" +msgstr "" + +#: src/stored/label.c:1065 +msgid "End of physical tape.\n" +msgstr "" + +#: src/stored/label.c:1080 src/stored/label.c:1089 +#, c-format +msgid "%s Record: File:blk=%u:%u SessId=%d SessTime=%d JobId=%d\n" +msgstr "" + +#: src/stored/label.c:1082 +#, c-format +msgid " Job=%s Date=%s Level=%c Type=%c\n" +msgstr "" + +#: src/stored/label.c:1091 +#, c-format +msgid " Date=%s Level=%c Type=%c Files=%s Bytes=%s Errors=%d Status=%c\n" +msgstr "" + +#: src/stored/mac.c:79 +msgid "Read and write devices not properly initialized.\n" +msgstr "" + +#: src/stored/mac.c:87 +#, c-format +msgid "No Volume names found for %s.\n" +msgstr "" + +#: src/stored/mount.c:90 +#, c-format +msgid "Too many errors trying to mount device %s.\n" +msgstr "" + +#: src/stored/mount.c:96 +#, c-format +msgid "Job %d canceled.\n" +msgstr "" + +#: src/stored/mount.c:211 +#, c-format +msgid "Could not open device %s: ERR=%s\n" +msgstr "" + +#: src/stored/mount.c:254 src/stored/mount.c:533 +#, c-format +msgid "Volume \"%s\" not on device %s.\n" +msgstr "" + +#: src/stored/mount.c:292 +#, c-format +msgid "" +"Director wanted Volume \"%s\".\n" +" Current Volume \"%s\" not acceptable because:\n" +" %s" +msgstr "" + +#: src/stored/mount.c:375 +#, c-format +msgid "Volume \"%s\" previously written, moving to end of data.\n" +msgstr "" + +#: src/stored/mount.c:378 +#, c-format +msgid "Unable to position to end of data on device %s: ERR=%s\n" +msgstr "" + +#: src/stored/mount.c:386 +#, c-format +msgid "Ready to append to end of Volume \"%s\" part=%d size=%s\n" +msgstr "" + +#: src/stored/mount.c:390 +#, c-format +msgid "" +"Bacula cannot write on DVD Volume \"%s\" because: The sizes do not match! " +"Volume=%s Catalog=%s\n" +msgstr "" + +#: src/stored/mount.c:404 +#, c-format +msgid "Ready to append to end of Volume \"%s\" at file=%d.\n" +msgstr "" + +#: src/stored/mount.c:407 +#, c-format +msgid "" +"Bacula cannot write on tape Volume \"%s\" because:\n" +"The number of files mismatch! Volume=%u Catalog=%u\n" +msgstr "" + +#: src/stored/mount.c:418 +#, c-format +msgid "Ready to append to end of Volume \"%s\" size=%s\n" +msgstr "" + +#: src/stored/mount.c:422 +#, c-format +msgid "" +"Bacula cannot write on disk Volume \"%s\" because: The sizes do not match! " +"Volume=%s Catalog=%s\n" +msgstr "" + +#: src/stored/mount.c:452 +#, c-format +msgid "Ready to append to end of Volume \"%s\" at file address=%u.\n" +msgstr "" + +#: src/stored/mount.c:456 +#, c-format +msgid "" +"Bacula cannot write on Volume \"%s\" because:\n" +"The EOD file address is wrong: Volume file address=%u != Catalog Endblock=%u" +"(+1)\n" +"Perhaps You removed the DVD last part in spool directory.\n" +msgstr "" + +#: src/stored/mount.c:523 +#, c-format +msgid "Labeled new Volume \"%s\" on device %s.\n" +msgstr "" + +#: src/stored/mount.c:528 +#, c-format +msgid "Device %s not configured to autolabel Volumes.\n" +msgstr "" + +#: src/stored/mount.c:548 +#, c-format +msgid "Marking Volume \"%s\" in Error in Catalog.\n" +msgstr "" + +#: src/stored/mount.c:564 +#, c-format +msgid "" +"Autochanger Volume \"%s\" not found in slot %d.\n" +" Setting InChanger to zero in catalog.\n" +msgstr "" + +#: src/stored/mount.c:583 +msgid "Hey!!!!! WroteVol non-zero !!!!!\n" +msgstr "" + +#: src/stored/parse_bsr.c:118 src/stored/parse_bsr.c:122 +#, c-format +msgid "" +"Bootstrap file error: %s\n" +" : Line %d, col %d of file %s\n" +"%s\n" +msgstr "" + +#: src/stored/parse_bsr.c:144 +#, c-format +msgid "Cannot open bootstrap file %s: %s\n" +msgstr "" + +#: src/stored/parse_bsr.c:274 +#, c-format +msgid "MediaType %s in bsr at inappropriate place.\n" +msgstr "" + +#: src/stored/parse_bsr.c:295 +#, c-format +msgid "Device \"%s\" in bsr at inappropriate place.\n" +msgstr "" + +#: src/stored/parse_bsr.c:452 +msgid "JobType not yet implemented\n" +msgstr "" + +#: src/stored/parse_bsr.c:460 +msgid "JobLevel not yet implemented\n" +msgstr "" + +#: src/stored/parse_bsr.c:643 +#, c-format +msgid "Slot %d in bsr at inappropriate place.\n" +msgstr "" + +#: src/stored/parse_bsr.c:667 +#, c-format +msgid "VolFile : %u-%u\n" +msgstr "" + +#: src/stored/parse_bsr.c:675 +#, c-format +msgid "VolBlock : %u-%u\n" +msgstr "" + +#: src/stored/parse_bsr.c:685 +#, c-format +msgid "FileIndex : %u\n" +msgstr "" + +#: src/stored/parse_bsr.c:687 +#, c-format +msgid "FileIndex : %u-%u\n" +msgstr "" + +#: src/stored/parse_bsr.c:697 +#, c-format +msgid "JobId : %u\n" +msgstr "" + +#: src/stored/parse_bsr.c:699 +#, c-format +msgid "JobId : %u-%u\n" +msgstr "" + +#: src/stored/parse_bsr.c:709 +#, c-format +msgid "SessId : %u\n" +msgstr "" + +#: src/stored/parse_bsr.c:711 +#, c-format +msgid "SessId : %u-%u\n" +msgstr "" + +#: src/stored/parse_bsr.c:720 +#, c-format +msgid "VolumeName : %s\n" +msgstr "" + +#: src/stored/parse_bsr.c:721 +#, c-format +msgid " MediaType : %s\n" +msgstr "" + +#: src/stored/parse_bsr.c:722 +#, c-format +msgid " Device : %s\n" +msgstr "" + +#: src/stored/parse_bsr.c:723 +#, c-format +msgid " Slot : %d\n" +msgstr "" + +#: src/stored/parse_bsr.c:732 +#, c-format +msgid "Client : %s\n" +msgstr "" + +#: src/stored/parse_bsr.c:740 +#, c-format +msgid "Job : %s\n" +msgstr "" + +#: src/stored/parse_bsr.c:748 +#, c-format +msgid "SessTime : %u\n" +msgstr "" + +#: src/stored/parse_bsr.c:759 +msgid "BSR is NULL\n" +msgstr "" + +#: src/stored/parse_bsr.c:763 +#, c-format +msgid "Next : 0x%x\n" +msgstr "" + +#: src/stored/parse_bsr.c:764 +#, c-format +msgid "Root bsr : 0x%x\n" +msgstr "" + +#: src/stored/parse_bsr.c:775 +#, c-format +msgid "count : %u\n" +msgstr "" + +#: src/stored/parse_bsr.c:776 +#, c-format +msgid "found : %u\n" +msgstr "" + +#: src/stored/parse_bsr.c:779 +#, c-format +msgid "done : %s\n" +msgstr "" + +#: src/stored/parse_bsr.c:780 +#, c-format +msgid "positioning : %d\n" +msgstr "" + +#: src/stored/parse_bsr.c:781 +#, c-format +msgid "fast_reject : %d\n" +msgstr "" + +#: src/stored/pythonsd.c:210 +msgid "Error in ParseTuple\n" +msgstr "" + +#: src/stored/pythonsd.c:226 +msgid "Parse tuple error in job_write\n" +msgstr "" + +#: src/stored/pythonsd.c:263 +#, c-format +msgid "Error in Python method %s\n" +msgstr "" + +#: src/stored/read.c:68 +msgid "No Volume names found for restore.\n" +msgstr "" + +#: src/stored/read.c:122 +#, c-format +msgid ">filed: Error Hdr=%s\n" +msgstr "" + +#: src/stored/read.c:123 src/stored/read.c:138 +#, c-format +msgid "Error sending to File daemon. ERR=%s\n" +msgstr "" + +#: src/stored/read.c:137 +#, c-format +msgid "Error sending to FD. ERR=%s\n" +msgstr "" + +#: src/stored/read_record.c:83 +#, c-format +msgid "End of Volume at file %u on device %s, Volume \"%s\"\n" +msgstr "" + +#: src/stored/read_record.c:86 +msgid "End of all volumes.\n" +msgstr "" + +#: src/stored/read_record.c:129 +msgid "part" +msgstr "" + +#: src/stored/read_record.c:132 +msgid "file" +msgstr "" + +#: src/stored/read_record.c:135 +#, c-format +msgid "End of %s %u on device %s, Volume \"%s\"\n" +msgstr "" + +#: src/stored/read_record.c:149 +msgid "Did fsr in attemp to skip bad record.\n" +msgstr "" + +#: src/stored/read_record.c:342 +#, c-format +msgid "Reposition from (file:block) %u:%u to %u:%u\n" +msgstr "" + +#: src/stored/read_record.c:370 +#, c-format +msgid "Forward spacing Volume \"%s\" to file:block %u:%u.\n" +msgstr "" + +#: src/stored/read_record.c:395 +msgid "Begin Session" +msgstr "" + +#: src/stored/read_record.c:399 +msgid "End Session" +msgstr "" + +#: src/stored/read_record.c:405 +#, c-format +msgid "Unknown code %d\n" +msgstr "" + +#: src/stored/record.c:71 +#, c-format +msgid "unknown: %d" +msgstr "" + +#: src/stored/record.c:378 +msgid "Damaged buffer\n" +msgstr "" + +#: src/stored/record.c:549 +#, c-format +msgid "Sanity check failed. maxlen=%d datalen=%d. Block discarded.\n" +msgstr "" + +#: src/stored/reserve.c:93 +#, c-format +msgid "Unable to initialize reservation lock. ERR=%s\n" +msgstr "" + +#: src/stored/reserve.c:99 +#, c-format +msgid "Unable to initialize volume list lock. ERR=%s\n" +msgstr "" + +#: src/stored/reserve.c:429 +#, c-format +msgid "Hey! num_writers=%d!!!!\n" +msgstr "" + +#: src/stored/reserve.c:643 +msgid "3939 Could not get dcr\n" +msgstr "" + +#: src/stored/reserve.c:766 src/stored/reserve.c:777 +#, c-format +msgid "Failed command: %s\n" +msgstr "" + +#: src/stored/reserve.c:767 +#, c-format +msgid "" +"\n" +" Device \"%s\" with MediaType \"%s\" requested by DIR not found in SD " +"Device resources.\n" +msgstr "" + +#: src/stored/reserve.c:1085 +#, c-format +msgid "3926 Could not get dcr for device: %s\n" +msgstr "" + +#: src/stored/reserve.c:1180 +#, c-format +msgid "3601 JobId=%u device %s is BLOCKED due to user unmount.\n" +msgstr "" + +#: src/stored/reserve.c:1190 +#, c-format +msgid "3602 JobId=%u device %s is busy (already reading/writing).\n" +msgstr "" + +#: src/stored/reserve.c:1237 +#, c-format +msgid "3603 JobId=%u device %s is busy reading.\n" +msgstr "" + +#: src/stored/reserve.c:1246 +#, c-format +msgid "3604 JobId=%u device %s is BLOCKED due to user unmount.\n" +msgstr "" + +#: src/stored/reserve.c:1314 +#, c-format +msgid "3605 JobId=%u wants free drive but device %s is busy.\n" +msgstr "" + +#: src/stored/reserve.c:1322 +#, c-format +msgid "3606 JobId=%u prefers mounted drives, but drive %s has no Volume.\n" +msgstr "" + +#: src/stored/reserve.c:1345 +#, c-format +msgid "3607 JobId=%u wants Vol=\"%s\" drive has Vol=\"%s\" on drive %s.\n" +msgstr "" + +#: src/stored/reserve.c:1387 +#, c-format +msgid "" +"3608 JobId=%u wants Pool=\"%s\" but have Pool=\"%s\" nreserve=%d on drive %" +"s.\n" +msgstr "" + +#: src/stored/reserve.c:1431 +#, c-format +msgid "3609 JobId=%u wants Pool=\"%s\" but has Pool=\"%s\" on drive %s.\n" +msgstr "" + +#: src/stored/reserve.c:1439 +#, c-format +msgid "Logic error!!!! JobId=%u Should not get here.\n" +msgstr "" + +#: src/stored/reserve.c:1440 +#, c-format +msgid "3910 JobId=%u Logic error!!!! drive %s Should not get here.\n" +msgstr "" + +#: src/stored/reserve.c:1443 +msgid "Logic error!!!! Should not get here.\n" +msgstr "" + +#: src/stored/reserve.c:1446 +#, c-format +msgid "3911 JobId=%u failed reserve drive %s.\n" +msgstr "" + +#: src/stored/spool.c:84 +msgid "Spooling statistics:\n" +msgstr "" + +#: src/stored/spool.c:87 +#, c-format +msgid "" +"Data spooling: %u active jobs, %s bytes; %u total jobs, %s max bytes/job.\n" +msgstr "" + +#: src/stored/spool.c:95 +#, c-format +msgid "Attr spooling: %u active jobs, %s bytes; %u total jobs, %s max bytes.\n" +msgstr "" + +#: src/stored/spool.c:115 +msgid "Spooling data ...\n" +msgstr "" + +#: src/stored/spool.c:141 +#, c-format +msgid "Bad return from despool WroteVol=%d\n" +msgstr "" + +#: src/stored/spool.c:174 +#, c-format +msgid "Open data spool file %s failed: ERR=%s\n" +msgstr "" + +#: src/stored/spool.c:232 +#, c-format +msgid "Committing spooled data to Volume \"%s\". Despooling %s bytes ...\n" +msgstr "" + +#: src/stored/spool.c:236 +#, c-format +msgid "Writing spooled data to Volume. Despooling %s bytes ...\n" +msgstr "" + +#: src/stored/spool.c:306 +#, c-format +msgid "" +"Despooling elapsed time = %02d:%02d:%02d, Transfer rate = %s bytes/second\n" +msgstr "" + +#: src/stored/spool.c:315 src/stored/spool.c:504 src/stored/spool.c:546 +#, c-format +msgid "Ftruncate spool file failed: ERR=%s\n" +msgstr "" + +#: src/stored/spool.c:376 +#, c-format +msgid "Spool header read error. ERR=%s\n" +msgstr "" + +#: src/stored/spool.c:379 +#, c-format +msgid "Spool read error. Wanted %u bytes, got %d\n" +msgstr "" + +#: src/stored/spool.c:380 +#, c-format +msgid "Spool header read error. Wanted %u bytes, got %d\n" +msgstr "" + +#: src/stored/spool.c:386 src/stored/spool.c:387 +#, c-format +msgid "Spool block too big. Max %u bytes, got %u\n" +msgstr "" + +#: src/stored/spool.c:392 src/stored/spool.c:393 +#, c-format +msgid "Spool data read error. Wanted %u bytes, got %d\n" +msgstr "" + +#: src/stored/spool.c:450 +msgid "User specified spool size reached.\n" +msgstr "" + +#: src/stored/spool.c:452 +msgid "Bad return from despool in write_block.\n" +msgstr "" + +#: src/stored/spool.c:460 +msgid "Spooling data again ...\n" +msgstr "" + +#: src/stored/spool.c:491 +#, c-format +msgid "Error writing header to spool file. ERR=%s\n" +msgstr "" + +#: src/stored/spool.c:510 src/stored/spool.c:552 +msgid "Fatal despooling error." +msgstr "" + +#: src/stored/spool.c:517 +msgid "Retrying after header spooling error failed.\n" +msgstr "" + +#: src/stored/spool.c:531 +#, c-format +msgid "Error writing data to spool file. ERR=%s\n" +msgstr "" + +#: src/stored/spool.c:562 +msgid "Retrying after data spooling error failed.\n" +msgstr "" + +#: src/stored/spool.c:617 src/stored/spool.c:624 +#, c-format +msgid "Fseek on attributes file failed: ERR=%s\n" +msgstr "" + +#: src/stored/spool.c:634 +#, c-format +msgid "Sending spooled attrs to the Director. Despooling %s bytes ...\n" +msgstr "" + +#: src/stored/spool.c:661 +#, c-format +msgid "fopen attr spool file %s failed: ERR=%s\n" +msgstr "" + +#: src/stored/status.c:120 +msgid "" +"\n" +"Device status:\n" +msgstr "" + +#: src/stored/status.c:124 +#, c-format +msgid "Autochanger \"%s\" with devices:\n" +msgstr "" + +#: src/stored/status.c:142 +#, c-format +msgid "" +"Device %s is mounted with:\n" +" Volume: %s\n" +" Pool: %s\n" +" Media type: %s\n" +msgstr "" + +#: src/stored/status.c:152 +#, c-format +msgid "Device %s open but no Bacula volume is currently mounted.\n" +msgstr "" + +#: src/stored/status.c:163 +#, c-format +msgid " Total Bytes=%s Blocks=%s Bytes/block=%s\n" +msgstr "" + +#: src/stored/status.c:178 +#, c-format +msgid " Total Bytes Read=%s Blocks Read=%s Bytes/block=%s\n" +msgstr "" + +#: src/stored/status.c:184 +#, c-format +msgid " Positioned at File=%s Block=%s\n" +msgstr "" + +#: src/stored/status.c:191 +#, c-format +msgid "Device %s is not open.\n" +msgstr "" + +#: src/stored/status.c:195 +#, c-format +msgid "Device \"%s\" is not open or does not exist.\n" +msgstr "" + +#: src/stored/status.c:201 +msgid "In Use Volume status:\n" +msgstr "" + +#: src/stored/status.c:208 src/stored/status.c:210 +msgid "" +"====\n" +"\n" +msgstr "" + +#: src/stored/status.c:227 +msgid "" +"No DEVICE structure.\n" +"\n" +msgstr "" + +#: src/stored/status.c:234 +msgid " Device is BLOCKED. User unmounted.\n" +msgstr "" + +#: src/stored/status.c:238 +msgid " Device is BLOCKED. User unmounted during wait for media/mount.\n" +msgstr "" + +#: src/stored/status.c:250 +#, c-format +msgid "" +" Device is BLOCKED waiting for mount of volume \"%s\",\n" +" Pool: %s\n" +" Media type: %s\n" +msgstr "" + +#: src/stored/status.c:259 +#, c-format +msgid "" +" Device is BLOCKED waiting to create a volume for:\n" +" Pool: %s\n" +" Media type: %s\n" +msgstr "" + +#: src/stored/status.c:271 +msgid " Device is BLOCKED waiting for media.\n" +msgstr "" + +#: src/stored/status.c:277 +msgid " Device is being initialized.\n" +msgstr "" + +#: src/stored/status.c:281 +msgid " Device is blocked labeling a Volume.\n" +msgstr "" + +#: src/stored/status.c:290 +#, c-format +msgid " Slot %d is loaded in drive %d.\n" +msgstr "" + +#: src/stored/status.c:294 +#, c-format +msgid " Drive %d is not loaded.\n" +msgstr "" + +#: src/stored/status.c:297 +#, c-format +msgid " Drive %d status unknown.\n" +msgstr "" + +#: src/stored/status.c:320 +msgid "Device state:\n" +msgstr "" + +#: src/stored/status.c:338 +#, c-format +msgid "" +"num_writers=%d block=%d\n" +"\n" +msgstr "" + +#: src/stored/status.c:344 +#, c-format +msgid "Archive name: %s Device name: %s\n" +msgstr "" + +#: src/stored/status.c:348 +#, c-format +msgid "File=%u block=%u\n" +msgstr "" + +#: src/stored/status.c:351 +#, c-format +msgid "Min block=%u Max block=%u\n" +msgstr "" + +#: src/stored/status.c:375 +#, c-format +msgid "%s Job %s waiting for Client connection.\n" +msgstr "" + +#: src/stored/status.c:391 +#, c-format +msgid "" +"Reading: %s %s job %s JobId=%d Volume=\"%s\"\n" +" pool=\"%s\" device=%s\n" +msgstr "" + +#: src/stored/status.c:404 +#, c-format +msgid "" +"Writing: %s %s job %s JobId=%d Volume=\"%s\"\n" +" pool=\"%s\" device=%s\n" +msgstr "" + +#: src/stored/status.c:415 +#, c-format +msgid " spooling=%d despooling=%d despool_wait=%d\n" +msgstr "" + +#: src/stored/status.c:424 +#, c-format +msgid " Files=%s Bytes=%s Bytes/sec=%s\n" +msgstr "" + +#: src/stored/status.c:432 +#, c-format +msgid " FDReadSeqNo=%s in_msg=%u out_msg=%d fd=%d\n" +msgstr "" + +#: src/stored/status.c:438 +msgid " FDSocket closed\n" +msgstr "" + +#: src/stored/status.c:460 +msgid "" +"\n" +"Jobs waiting to reserve a drive:\n" +msgstr "" + +#: src/stored/status.c:491 +msgid "===================================================================\n" +msgstr "" + +#: src/stored/status.c:637 +msgid "3900 Bad .status command, missing argument.\n" +msgstr "" + +#: src/stored/status.c:660 +msgid "3900 Bad .status command, wrong argument.\n" +msgstr "" + +#: src/stored/status.c:674 +msgid "Bacula Storage: Idle" +msgstr "" + +#: src/stored/status.c:685 +msgid "Bacula Storage: Running" +msgstr "" + +#: src/stored/status.c:699 +msgid "Bacula Storage: Last Job Canceled" +msgstr "" + +#: src/stored/status.c:703 +msgid "Bacula Storage: Last Job Failed" +msgstr "" + +#: src/stored/status.c:707 +msgid "Bacula Storage: Last Job had Warnings" +msgstr "" + +#: src/stored/stored.c:82 +#, c-format +msgid "" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: stored [options] [-c config_file] [config_file]\n" +" -c use as configuration file\n" +" -dnn set debug level to nn\n" +" -f run in foreground (for debugging)\n" +" -g set groupid to group\n" +" -p proceed despite I/O errors\n" +" -s no signals (for debugging)\n" +" -t test - read config and exit\n" +" -u userid to \n" +" -v verbose user messages\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/stored/stored.c:243 +msgid "Volume Session Time is ZERO!\n" +msgstr "" + +#: src/stored/stored.c:256 +#, c-format +msgid "Unable to create thread. ERR=%s\n" +msgstr "" + +#: src/stored/stored.c:294 +#, c-format +msgid "Only one Storage resource permitted in %s\n" +msgstr "" + +#: src/stored/stored.c:299 +#, c-format +msgid "No Director resource defined in %s. Cannot continue.\n" +msgstr "" + +#: src/stored/stored.c:304 +#, c-format +msgid "No Device resource defined in %s. Cannot continue.\n" +msgstr "" + +#: src/stored/stored.c:312 +#, c-format +msgid "No Messages resource defined in %s. Cannot continue.\n" +msgstr "" + +#: src/stored/stored.c:339 +#, c-format +msgid "\"TLS Certificate\" file not defined for Storage \"%s\" in %s.\n" +msgstr "" + +#: src/stored/stored.c:345 +#, c-format +msgid "\"TLS Key\" file not defined for Storage \"%s\" in %s.\n" +msgstr "" + +#: src/stored/stored.c:351 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Storage \"%s\" in %s. At least one CA certificate store is required when " +"using \"TLS Verify Peer\".\n" +msgstr "" + +#: src/stored/stored.c:482 +#, c-format +msgid "Could not initialize %s\n" +msgstr "" + +#: src/stored/stored.c:495 +#, c-format +msgid "Could not open device %s\n" +msgstr "" + +#: src/stored/stored.c:508 +#, c-format +msgid "Could not mount device %s\n" +msgstr "" + +#: src/stored/stored_conf.c:234 +#, c-format +msgid "Expected a Device Type keyword, got: %s" +msgstr "" + +#: src/stored/stored_conf.c:249 +#, c-format +msgid "Warning: no \"%s\" resource (%d) defined.\n" +msgstr "" + +#: src/stored/stored_conf.c:252 +#, c-format +msgid "dump_resource type=%d\n" +msgstr "" + +#: src/stored/stored_conf.c:368 +#, c-format +msgid "Warning: unknown resource type %d\n" +msgstr "" + +#: src/stored/stored_conf.c:557 +#, c-format +msgid "\"%s\" item is required in \"%s\" resource, but not found.\n" +msgstr "" + +#: src/stored/stored_conf.c:563 +#, c-format +msgid "Too many items in \"%s\" resource\n" +msgstr "" + +#: src/stored/stored_conf.c:597 +#, c-format +msgid "Cannot find AutoChanger resource %s\n" +msgstr "" + +#: src/stored/stored_conf.c:669 +#, c-format +msgid "" +"Attempt to define second \"%s\" resource named \"%s\" is not permitted.\n" +msgstr "" + +#: src/stored/wait.c:127 +#, c-format +msgid "pthread timedwait error. ERR=%s\n" +msgstr "" + +#: src/stored/wait.c:217 +#, c-format +msgid "JobId=%s, Job %s waiting to reserve a device.\n" +msgstr "" + +#: src/tools/bregex.c:147 src/tools/bwild.c:122 +#, c-format +msgid "Could not open data file: %s\n" +msgstr "" + +#: src/tools/bsmtp.c:117 +#, c-format +msgid "Fatal malformed reply from %s: %s\n" +msgstr "" + +#: src/tools/bsmtp.c:125 +#, c-format +msgid "Fatal fgets error: ERR=%s\n" +msgstr "" + +#: src/tools/bsmtp.c:156 +#, c-format +msgid "" +"\n" +"Usage: %s [-f from] [-h mailhost] [-s subject] [-c copy] [recipient ...]\n" +" -8 set charset utf-8\n" +" -c set the Cc: field\n" +" -dnn set debug level to nn\n" +" -f set the From: field\n" +" -h use mailhost:port as the SMTP server\n" +" -s set the Subject: field\n" +" -r set the Reply-To: field\n" +" -l set the maximum number of lines that should be sent " +"(default: unlimited)\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/tools/bsmtp.c:287 +msgid "Fatal error: no recipient given.\n" +msgstr "" + +#: src/tools/bsmtp.c:316 +#, c-format +msgid "Fatal gethostname error: ERR=%s\n" +msgstr "" + +#: src/tools/bsmtp.c:320 +#, c-format +msgid "Fatal gethostbyname for myself failed \"%s\": ERR=%s\n" +msgstr "" + +#: src/tools/bsmtp.c:356 +#, c-format +msgid "Error unknown mail host \"%s\": ERR=%s\n" +msgstr "" + +#: src/tools/bsmtp.c:359 +msgid "Retrying connection using \"localhost\".\n" +msgstr "" + +#: src/tools/bsmtp.c:367 +#, c-format +msgid "Fatal error: Unknown address family for smtp host: %d\n" +msgstr "" + +#: src/tools/bsmtp.c:376 src/tools/bsmtp.c:381 +#, c-format +msgid "Fatal socket error: ERR=%s\n" +msgstr "" + +#: src/tools/bsmtp.c:386 +#, c-format +msgid "Fatal connect error to %s: ERR=%s\n" +msgstr "" + +#: src/tools/bsmtp.c:394 +#, c-format +msgid "Fatal _open_osfhandle error: ERR=%s\n" +msgstr "" + +#: src/tools/bsmtp.c:401 src/tools/bsmtp.c:405 src/tools/bsmtp.c:414 +#: src/tools/bsmtp.c:418 +#, c-format +msgid "Fatal fdopen error: ERR=%s\n" +msgstr "" + +#: src/tools/bsmtp.c:410 +#, c-format +msgid "Fatal dup error: ERR=%s\n" +msgstr "" + +#: src/tools/dbcheck.c:175 +msgid "" +"Warning skipping the additional parameters for working directory/dbname/user/" +"password/host.\n" +msgstr "" + +#: src/tools/dbcheck.c:191 +#, c-format +msgid "Error can not find the Catalog name[%s] in the given config file [%s]\n" +msgstr "" + +#: src/tools/dbcheck.c:193 +#, c-format +msgid "Error there is no Catalog section in the given config file [%s]\n" +msgstr "" + +#: src/tools/dbcheck.c:202 +msgid "Error no Director resource defined.\n" +msgstr "" + +#: src/tools/dbcheck.c:216 +msgid "Wrong number of arguments.\n" +msgstr "" + +#: src/tools/dbcheck.c:221 +msgid "Working directory not supplied.\n" +msgstr "" + +#: src/tools/dbcheck.c:285 +#, c-format +msgid "Hello, this is the database check/correct program.\n" +msgstr "" + +#: src/tools/dbcheck.c:287 +#, c-format +msgid "Modify database is on." +msgstr "" + +#: src/tools/dbcheck.c:289 +#, c-format +msgid "Modify database is off." +msgstr "" + +#: src/tools/dbcheck.c:291 src/tools/dbcheck.c:352 +#, c-format +msgid " Verbose is on.\n" +msgstr "" + +#: src/tools/dbcheck.c:293 src/tools/dbcheck.c:354 +#, c-format +msgid " Verbose is off.\n" +msgstr "" + +#: src/tools/dbcheck.c:295 +#, c-format +msgid "Please select the fuction you want to perform.\n" +msgstr "" + +#: src/tools/dbcheck.c:299 +#, c-format +msgid "" +"\n" +" 1) Toggle modify database flag\n" +" 2) Toggle verbose flag\n" +" 3) Repair bad Filename records\n" +" 4) Repair bad Path records\n" +" 5) Eliminate duplicate Filename records\n" +" 6) Eliminate duplicate Path records\n" +" 7) Eliminate orphaned Jobmedia records\n" +" 8) Eliminate orphaned File records\n" +" 9) Eliminate orphaned Path records\n" +" 10) Eliminate orphaned Filename records\n" +" 11) Eliminate orphaned FileSet records\n" +" 12) Eliminate orphaned Client records\n" +" 13) Eliminate orphaned Job records\n" +" 14) Eliminate all Admin records\n" +" 15) Eliminate all Restore records\n" +" 16) All (3-15)\n" +" 17) Quit\n" +msgstr "" + +#: src/tools/dbcheck.c:318 +#, c-format +msgid "" +"\n" +" 1) Toggle modify database flag\n" +" 2) Toggle verbose flag\n" +" 3) Check for bad Filename records\n" +" 4) Check for bad Path records\n" +" 5) Check for duplicate Filename records\n" +" 6) Check for duplicate Path records\n" +" 7) Check for orphaned Jobmedia records\n" +" 8) Check for orphaned File records\n" +" 9) Check for orphaned Path records\n" +" 10) Check for orphaned Filename records\n" +" 11) Check for orphaned FileSet records\n" +" 12) Check for orphaned Client records\n" +" 13) Check for orphaned Job records\n" +" 14) Check for all Admin records\n" +" 15) Check for all Restore records\n" +" 16) All (3-15)\n" +" 17) Quit\n" +msgstr "" + +#: src/tools/dbcheck.c:338 +msgid "Select function number: " +msgstr "" + +#: src/tools/dbcheck.c:345 +#, c-format +msgid "Database will be modified.\n" +msgstr "" + +#: src/tools/dbcheck.c:347 +#, c-format +msgid "Database will NOT be modified.\n" +msgstr "" + +#: src/tools/dbcheck.c:437 +#, c-format +msgid "JobId=%s Name=\"%s\" StartTime=%s\n" +msgstr "" + +#: src/tools/dbcheck.c:445 +#, c-format +msgid "Orphaned JobMediaId=%s JobId=%s Volume=\"%s\"\n" +msgstr "" + +#: src/tools/dbcheck.c:452 +#, c-format +msgid "Orphaned FileId=%s JobId=%s Volume=\"%s\"\n" +msgstr "" + +#: src/tools/dbcheck.c:459 +#, c-format +msgid "Orphaned FileSetId=%s FileSet=\"%s\" MD5=%s\n" +msgstr "" + +#: src/tools/dbcheck.c:466 +#, c-format +msgid "Orphaned ClientId=%s Name=\"%s\"\n" +msgstr "" + +#: src/tools/dbcheck.c:520 +#, c-format +msgid "Deleting: %s\n" +msgstr "" + +#: src/tools/dbcheck.c:594 +#, c-format +msgid "Checking for duplicate Filename entries.\n" +msgstr "" + +#: src/tools/dbcheck.c:603 +#, c-format +msgid "Found %d duplicate Filename records.\n" +msgstr "" + +#: src/tools/dbcheck.c:604 +msgid "Print the list? (yes/no): " +msgstr "" + +#: src/tools/dbcheck.c:623 src/tools/dbcheck.c:681 +#, c-format +msgid "Found %d for: %s\n" +msgstr "" + +#: src/tools/dbcheck.c:651 +#, c-format +msgid "Checking for duplicate Path entries.\n" +msgstr "" + +#: src/tools/dbcheck.c:661 +#, c-format +msgid "Found %d duplicate Path records.\n" +msgstr "" + +#: src/tools/dbcheck.c:662 src/tools/dbcheck.c:716 src/tools/dbcheck.c:760 +#: src/tools/dbcheck.c:803 src/tools/dbcheck.c:842 src/tools/dbcheck.c:880 +#: src/tools/dbcheck.c:921 src/tools/dbcheck.c:962 src/tools/dbcheck.c:1000 +#: src/tools/dbcheck.c:1033 src/tools/dbcheck.c:1070 src/tools/dbcheck.c:1134 +msgid "Print them? (yes/no): " +msgstr "" + +#: src/tools/dbcheck.c:709 +#, c-format +msgid "Checking for orphaned JobMedia entries.\n" +msgstr "" + +#: src/tools/dbcheck.c:715 +#, c-format +msgid "Found %d orphaned JobMedia records.\n" +msgstr "" + +#: src/tools/dbcheck.c:733 +#, c-format +msgid "Deleting %d orphaned JobMedia records.\n" +msgstr "" + +#: src/tools/dbcheck.c:750 +#, c-format +msgid "Checking for orphaned File entries. This may take some time!\n" +msgstr "" + +#: src/tools/dbcheck.c:759 +#, c-format +msgid "Found %d orphaned File records.\n" +msgstr "" + +#: src/tools/dbcheck.c:776 +#, c-format +msgid "Deleting %d orphaned File records.\n" +msgstr "" + +#: src/tools/dbcheck.c:793 +#, c-format +msgid "Checking for orphaned Path entries. This may take some time!\n" +msgstr "" + +#: src/tools/dbcheck.c:802 +#, c-format +msgid "Found %d orphaned Path records.\n" +msgstr "" + +#: src/tools/dbcheck.c:815 +#, c-format +msgid "Deleting %d orphaned Path records.\n" +msgstr "" + +#: src/tools/dbcheck.c:832 +#, c-format +msgid "Checking for orphaned Filename entries. This may take some time!\n" +msgstr "" + +#: src/tools/dbcheck.c:841 +#, c-format +msgid "Found %d orphaned Filename records.\n" +msgstr "" + +#: src/tools/dbcheck.c:854 +#, c-format +msgid "Deleting %d orphaned Filename records.\n" +msgstr "" + +#: src/tools/dbcheck.c:869 +#, c-format +msgid "Checking for orphaned FileSet entries. This takes some time!\n" +msgstr "" + +#: src/tools/dbcheck.c:879 +#, c-format +msgid "Found %d orphaned FileSet records.\n" +msgstr "" + +#: src/tools/dbcheck.c:894 +#, c-format +msgid "Deleting %d orphaned FileSet records.\n" +msgstr "" + +#: src/tools/dbcheck.c:903 +#, c-format +msgid "Checking for orphaned Client entries.\n" +msgstr "" + +#: src/tools/dbcheck.c:920 +#, c-format +msgid "Found %d orphaned Client records.\n" +msgstr "" + +#: src/tools/dbcheck.c:935 +#, c-format +msgid "Deleting %d orphaned Client records.\n" +msgstr "" + +#: src/tools/dbcheck.c:944 +#, c-format +msgid "Checking for orphaned Job entries.\n" +msgstr "" + +#: src/tools/dbcheck.c:961 +#, c-format +msgid "Found %d orphaned Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:976 +#, c-format +msgid "Deleting %d orphaned Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:978 +#, c-format +msgid "Deleting JobMedia records of orphaned Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:980 +#, c-format +msgid "Deleting Log records of orphaned Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:990 +#, c-format +msgid "Checking for Admin Job entries.\n" +msgstr "" + +#: src/tools/dbcheck.c:999 +#, c-format +msgid "Found %d Admin Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:1014 +#, c-format +msgid "Deleting %d Admin Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:1023 +#, c-format +msgid "Checking for Restore Job entries.\n" +msgstr "" + +#: src/tools/dbcheck.c:1032 +#, c-format +msgid "Found %d Restore Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:1047 +#, c-format +msgid "Deleting %d Restore Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:1060 +#, c-format +msgid "Checking for Filenames with a trailing slash\n" +msgstr "" + +#: src/tools/dbcheck.c:1069 +#, c-format +msgid "Found %d bad Filename records.\n" +msgstr "" + +#: src/tools/dbcheck.c:1087 src/tools/dbcheck.c:1150 +#, c-format +msgid "Reparing %d bad Filename records.\n" +msgstr "" + +#: src/tools/dbcheck.c:1124 +#, c-format +msgid "Checking for Paths without a trailing slash\n" +msgstr "" + +#: src/tools/dbcheck.c:1133 +#, c-format +msgid "Found %d bad Path records.\n" +msgstr "" + +#: src/tools/drivetype.c:47 +#, c-format +msgid "" +"\n" +"Usage: drivetype [-v] path ...\n" +"\n" +" Print the drive type a given file/directory is on.\n" +" The following options are supported:\n" +"\n" +" -v print both path and file system type.\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/tools/drivetype.c:101 src/tools/fstype.c:101 +#, c-format +msgid "%s: unknown\n" +msgstr "" + +#: src/tools/fstype.c:47 +#, c-format +msgid "" +"\n" +"Usage: fstype [-v] path ...\n" +"\n" +" Print the file system type a given file/directory is on.\n" +" The following options are supported:\n" +"\n" +" -v print both path and file system type.\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/tools/testfind.c:66 +#, c-format +msgid "" +"\n" +"Usage: testfind [-d debug_level] [-] [pattern1 ...]\n" +" -a print extended attributes (Win32 debug)\n" +" -dnn set debug level to nn\n" +" -c specify config file containing FileSet resources\n" +" -f specify which FileSet to use\n" +" -? print this message.\n" +"\n" +"Patterns are used for file inclusion -- normally directories.\n" +"Debug level >= 1 prints each file found.\n" +"Debug level >= 10 prints path/file for catalog.\n" +"Errors are always printed.\n" +"Files/paths truncated is the number of files/paths with len > 255.\n" +"Truncation is only in the catalog.\n" +"\n" +msgstr "" + +#: src/tools/testfind.c:225 +#, c-format +msgid "" +"\n" +"Total files : %d\n" +"Max file length: %d\n" +"Max path length: %d\n" +"Files truncated: %d\n" +"Paths truncated: %d\n" +"Hard links : %d\n" +msgstr "" + +#: src/tools/testfind.c:265 +#, c-format +msgid "Reg: %s\n" +msgstr "" + +#: src/tools/testfind.c:287 +msgid "\t[will not descend: recursion turned off]" +msgstr "" + +#: src/tools/testfind.c:289 +msgid "\t[will not descend: file system change not allowed]" +msgstr "" + +#: src/tools/testfind.c:291 +msgid "\t[will not descend: disallowed file system]" +msgstr "" + +#: src/tools/testfind.c:293 +msgid "\t[will not descend: disallowed drive type]" +msgstr "" + +#: src/tools/testfind.c:309 src/tools/testls.c:188 +#, c-format +msgid "Err: Could not access %s: %s\n" +msgstr "" + +#: src/tools/testfind.c:312 src/tools/testls.c:191 +#, c-format +msgid "Err: Could not follow ff->link %s: %s\n" +msgstr "" + +#: src/tools/testfind.c:315 src/tools/testls.c:194 +#, c-format +msgid "Err: Could not stat %s: %s\n" +msgstr "" + +#: src/tools/testfind.c:318 src/tools/testls.c:197 +#, c-format +msgid "Skip: File not saved. No change. %s\n" +msgstr "" + +#: src/tools/testfind.c:321 src/tools/testls.c:200 +#, c-format +msgid "Err: Attempt to backup archive. Not saved. %s\n" +msgstr "" + +#: src/tools/testfind.c:324 src/tools/testls.c:209 +#, c-format +msgid "Err: Could not open directory %s: %s\n" +msgstr "" + +#: src/tools/testfind.c:327 src/tools/testls.c:212 +#, c-format +msgid "Err: Unknown file ff->type %d: %s\n" +msgstr "" + +#: src/tools/testfind.c:377 +#, c-format +msgid "===== Filename truncated to 255 chars: %s\n" +msgstr "" + +#: src/tools/testfind.c:394 +#, c-format +msgid "========== Path name truncated to 255 chars: %s\n" +msgstr "" + +#: src/tools/testfind.c:403 +#, c-format +msgid "========== Path length is zero. File=%s\n" +msgstr "" + +#: src/tools/testfind.c:406 +#, c-format +msgid "Path: %s\n" +msgstr "" + +#: src/tools/testls.c:55 +#, c-format +msgid "" +"\n" +"Usage: testls [-d debug_level] [-] [pattern1 ...]\n" +" -a print extended attributes (Win32 debug)\n" +" -dnn set debug level to nn\n" +" -e specify file of exclude patterns\n" +" -i specify file of include patterns\n" +" - read pattern(s) from stdin\n" +" -? print this message.\n" +"\n" +"Patterns are file inclusion -- normally directories.\n" +"Debug level >= 1 prints each file found.\n" +"Debug level >= 10 prints path/file for catalog.\n" +"Errors always printed.\n" +"Files/paths truncated is number with len > 255.\n" +"Truncation is only in catalog.\n" +"\n" +msgstr "" + +#: src/tools/testls.c:140 +#, c-format +msgid "Could not open include file: %s\n" +msgstr "" + +#: src/tools/testls.c:153 +#, c-format +msgid "Could not open exclude file: %s\n" +msgstr "" + +#: src/tools/testls.c:203 +#, c-format +msgid "Recursion turned off. Directory not entered. %s\n" +msgstr "" + +#: src/tools/testls.c:206 +#, c-format +msgid "Skip: File system change prohibited. Directory not entered. %s\n" +msgstr "" + +#: src/tray-monitor/authenticate.c:88 +msgid "" +"Director authorization problem.\n" +"Most likely the passwords do not agree.\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" + +#: src/tray-monitor/authenticate.c:138 +msgid "" +"Director and Storage daemon passwords or names not the same.\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" + +#: src/tray-monitor/authenticate.c:145 +#, c-format +msgid "bdird set configuration file to file\n" +" -dnn set debug level to nn\n" +" -t test - read configuration and exit\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:262 +#, c-format +msgid "" +"Error: %d Monitor resources defined in %s. You must define one and only one " +"Monitor resource.\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:293 +#, c-format +msgid "" +"No Client, Storage or Director resource defined in %s\n" +"Without that I don't how to get status from the File, Storage or Director " +"Daemon :-(\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:315 +#, c-format +msgid "" +"Invalid refresh interval defined in %s\n" +"This value must be greater or equal to 1 second and less or equal to 10 " +"minutes (read value: %d).\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:330 +msgid "Open status window..." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:336 +msgid "Exit" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:348 +msgid "Bacula tray monitor" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:373 +msgid " (DIR)" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:377 +msgid " (FD)" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:381 +msgid " (SD)" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:394 +msgid "Unknown status." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:464 +msgid "Refresh interval in seconds: " +msgstr "" + +#: src/tray-monitor/tray-monitor.c:472 +msgid "Refresh now" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:476 +msgid "About" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:480 +msgid "Close" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:500 +#, c-format +msgid "Disconnecting from Director %s:%d\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:503 +#, c-format +msgid "Disconnecting from Client %s:%d\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:506 +#, c-format +msgid "Disconnecting from Storage %s:%d\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:543 src/tray-monitor/tray-monitor.c:554 +msgid "Bacula Tray Monitor" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:545 src/tray-monitor/tray-monitor.c:556 +msgid "Written by Nicolas Boichat\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:546 src/tray-monitor/tray-monitor.c:557 +msgid "Version" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:625 +#, c-format +msgid "Error, currentitem is not a Client or a Storage..\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:699 +#, c-format +msgid "" +"Current job: %s\n" +"Last job: %s" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:711 +#, c-format +msgid " (%d errors)" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:714 +#, c-format +msgid " (%d error)" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:752 +msgid "No current job." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:755 +msgid "No last job." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:763 +msgid "Job status: Created" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:768 +msgid "Job status: Running" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:772 +msgid "Job status: Blocked" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:777 +msgid "Job status: Terminated" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:782 +msgid "Job status: Terminated in error" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:788 +msgid "Job status: Error" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:792 +msgid "Job status: Fatal error" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:797 +msgid "Job status: Verify differences" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:802 +msgid "Job status: Canceled" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:807 +msgid "Job status: Waiting on File daemon" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:812 +msgid "Job status: Waiting on the Storage daemon" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:817 +msgid "Job status: Waiting for new media" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:822 +msgid "Job status: Waiting for Mount" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:827 +msgid "Job status: Waiting for storage resource" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:832 +msgid "Job status: Waiting for job resource" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:837 +msgid "Job status: Waiting for Client resource" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:842 +msgid "Job status: Waiting for maximum jobs" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:847 +msgid "Job status: Waiting for start time" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:852 +msgid "Job status: Waiting for higher priority jobs to finish" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:857 +#, c-format +msgid "Unknown job status %c." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:858 +#, c-format +msgid "Job status: Unknown(%c)" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:865 +#, c-format +msgid "Bad scan : '%s' %d\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:906 +#, c-format +msgid "Connecting to Director %s:%d" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:912 +#, c-format +msgid "Connecting to Client %s:%d\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:913 +#, c-format +msgid "Connecting to Client %s:%d" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:919 +#, c-format +msgid "Connecting to Storage %s:%d\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:920 +#, c-format +msgid "Connecting to Storage %s:%d" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:925 src/tray-monitor/tray-monitor.c:963 +#, c-format +msgid "Error, currentitem is not a Client, a Storage or a Director..\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:931 +msgid "Cannot connect to daemon.\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:932 +msgid "Cannot connect to daemon." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:944 +#, c-format +msgid "Authentication error : %s" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:951 +msgid "Opened connection with Director daemon.\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:952 +msgid "Opened connection with Director daemon." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:955 +msgid "Opened connection with File daemon.\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:956 +msgid "Opened connection with File daemon." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:959 +msgid "Opened connection with Storage daemon.\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:960 +msgid "Opened connection with Storage daemon." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:997 +msgid "<< Error: BNET_PROMPT signal received. >>\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:1002 src/wx-console/console_thread.cpp:486 +msgid "<< Heartbeat signal received, answered. >>\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:1006 +#, c-format +msgid "<< Unexpected signal received : %s >>\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:1011 +msgid "\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:1015 +msgid "Error : BNET_HARDEOF or BNET_ERROR" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:1021 +msgid "\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:1025 +msgid "Error : Connection closed." +msgstr "" + +#: src/tray-monitor/tray_conf.c:177 +#, c-format +msgid "Monitor: name=%s FDtimeout=%s SDtimeout=%s\n" +msgstr "" + +#: src/tray-monitor/tray_conf.c:183 +#, c-format +msgid "Director: name=%s address=%s FDport=%d\n" +msgstr "" + +#: src/tray-monitor/tray_conf.c:187 +#, c-format +msgid "Client: name=%s address=%s FDport=%d\n" +msgstr "" + +#: src/tray-monitor/tray_conf.c:191 +#, c-format +msgid "Storage: name=%s address=%s SDport=%d\n" +msgstr "" + +#: src/wx-console/authenticate.c:150 +msgid "Bad response to Hello command: ERR=" +msgstr "" + +#: src/baconfig.h:72 +#, c-format +msgid "Failed ASSERT: %s\n" +msgstr "" + +#: src/baconfig.h:79 +msgid "*None*" +msgstr "" + +#: src/win32/dird/winmain.cpp:193 src/win32/dird/winmain.cpp:200 +#: src/win32/filed/winmain.cpp:224 src/win32/filed/winmain.cpp:231 +#: src/win32/stored/baculasd/winmain.cpp:225 +#: src/win32/stored/baculasd/winmain.cpp:232 +msgid "Bacula Usage" +msgstr "" + +#: src/win32/dird/winmain.cpp:197 src/win32/filed/winmain.cpp:228 +#: src/win32/stored/baculasd/winmain.cpp:229 +msgid "Bad Command Line Options" +msgstr "" + +#: src/win32/dird/winservice.cpp:119 src/win32/filed/winservice.cpp:238 +#: src/win32/stored/baculasd/winservice.cpp:169 +msgid "StartServiceCtrlDispatcher failed." +msgstr "" + +#: src/win32/dird/winservice.cpp:135 src/win32/filed/winservice.cpp:256 +#: src/win32/stored/baculasd/winservice.cpp:185 +msgid "RegisterServiceCtlHandler failed" +msgstr "" + +#: src/win32/dird/winservice.cpp:136 src/win32/filed/winservice.cpp:257 +#: src/win32/stored/baculasd/winservice.cpp:186 +msgid "Contact Register Service Handler failure" +msgstr "" + +#: src/win32/dird/winservice.cpp:152 src/win32/filed/winservice.cpp:273 +#: src/win32/stored/baculasd/winservice.cpp:202 +msgid "ReportStatus STOPPED failed 1" +msgstr "" + +#: src/win32/dird/winservice.cpp:175 src/win32/filed/winservice.cpp:296 +#: src/win32/stored/baculasd/winservice.cpp:225 +msgid "Report Service failure" +msgstr "" + +#: src/win32/dird/winservice.cpp:211 +msgid "Unable to install Bacula Director service" +msgstr "" + +#: src/win32/dird/winservice.cpp:219 src/win32/filed/winservice.cpp:340 +#: src/win32/stored/baculasd/winservice.cpp:269 +msgid "Service command length too long" +msgstr "" + +#: src/win32/dird/winservice.cpp:220 src/win32/filed/winservice.cpp:341 +#: src/win32/stored/baculasd/winservice.cpp:270 +msgid "Service command length too long. Service not registered." +msgstr "" + +#: src/win32/dird/winservice.cpp:233 +msgid "" +"The Service Control Manager could not be contacted - the Bacula Director " +"service was not installed" +msgstr "" + +#: src/win32/dird/winservice.cpp:258 +msgid "The Bacula Director service could not be installed" +msgstr "" + +#: src/win32/dird/winservice.cpp:264 +msgid "Provides director services. Bacula -- the network backup solution." +msgstr "" + +#: src/win32/dird/winservice.cpp:272 +msgid "" +"The Bacula Director service was successfully installed.\n" +"The service may be started from the Control Panel and will\n" +"automatically be run the next time this machine is rebooted." +msgstr "" + +#: src/win32/dird/winservice.cpp:311 +msgid "The Bacula Director service could not be stopped" +msgstr "" + +#: src/win32/dird/winservice.cpp:318 +msgid "The Bacula Director service has been removed" +msgstr "" + +#: src/win32/dird/winservice.cpp:321 +msgid "The Bacula Director service could not be removed" +msgstr "" + +#: src/win32/dird/winservice.cpp:326 +msgid "The Bacula Director service could not be found" +msgstr "" + +#: src/win32/dird/winservice.cpp:331 +msgid "" +"The SCM could not be contacted - the Bacula Director service was not removed" +msgstr "" + +#: src/win32/dird/winservice.cpp:393 src/win32/filed/winservice.cpp:604 +#: src/win32/stored/baculasd/winservice.cpp:443 +msgid "SetServiceStatus failed" +msgstr "" + +#: src/win32/dird/winservice.cpp:421 src/win32/filed/winservice.cpp:632 +#: src/win32/stored/baculasd/winservice.cpp:471 +#, c-format +msgid "" +"\n" +"\n" +"%s error: %ld at %s:%d" +msgstr "" + +#: src/win32/dird/winservice.cpp:496 src/win32/filed/winservice.cpp:706 +#: src/win32/stored/baculasd/winservice.cpp:546 +#, c-format +msgid "Locked by: %s, duration: %ld seconds\n" +msgstr "" + +#: src/win32/dird/winservice.cpp:500 src/win32/filed/winservice.cpp:710 +#: src/win32/stored/baculasd/winservice.cpp:550 +#, c-format +msgid "No longer locked\n" +msgstr "" + +#: src/win32/dird/winservice.cpp:504 src/win32/filed/winservice.cpp:714 +#: src/win32/stored/baculasd/winservice.cpp:554 +msgid "Could not lock database" +msgstr "" + +#: src/win32/filed/winmain.cpp:326 src/win32/stored/baculasd/winmain.cpp:326 +msgid "Another instance of Bacula is already running" +msgstr "" + +#: src/win32/filed/winservice.cpp:111 src/win32/filed/winservice.cpp:125 +msgid "No existing instance of Bacula File service could be contacted" +msgstr "" + +#: src/win32/filed/winservice.cpp:196 +msgid "KERNEL32.DLL not found: Bacula service not started" +msgstr "" + +#: src/win32/filed/winservice.cpp:206 +msgid "Registry service not found: Bacula service not started" +msgstr "" + +#: src/win32/filed/winservice.cpp:208 +msgid "Registry service not found" +msgstr "" + +#: src/win32/filed/winservice.cpp:332 +msgid "Unable to install Bacula File service" +msgstr "" + +#: src/win32/filed/winservice.cpp:356 +msgid "Cannot write System Registry" +msgstr "" + +#: src/win32/filed/winservice.cpp:357 +msgid "" +"The System Registry could not be updated - the Bacula service was not " +"installed" +msgstr "" + +#: src/win32/filed/winservice.cpp:364 +msgid "Cannot add Bacula key to System Registry" +msgstr "" + +#: src/win32/filed/winservice.cpp:365 src/win32/filed/winservice.cpp:418 +msgid "The Bacula service could not be installed" +msgstr "" + +#: src/win32/filed/winservice.cpp:374 +msgid "" +"The Bacula File service was successfully installed.\n" +"The service may be started by double clicking on the\n" +"Bacula \"Start\" icon and will be automatically\n" +"be run the next time this machine is rebooted. " +msgstr "" + +#: src/win32/filed/winservice.cpp:393 +msgid "" +"The Service Control Manager could not be contacted - the Bacula service was " +"not installed" +msgstr "" + +#: src/win32/filed/winservice.cpp:424 +msgid "" +"Provides file backup and restore services. Bacula -- the network backup " +"solution." +msgstr "" + +#: src/win32/filed/winservice.cpp:432 +msgid "" +"The Bacula File service was successfully installed.\n" +"The service may be started from the Control Panel and will\n" +"automatically be run the next time this machine is rebooted." +msgstr "" + +#: src/win32/filed/winservice.cpp:442 +msgid "" +"Unknown Windows operating system.\n" +"Cannot install Bacula service.\n" +msgstr "" + +#: src/win32/filed/winservice.cpp:467 +msgid "" +"Could not find registry entry.\n" +"Service probably not registerd - the Bacula service was not removed" +msgstr "" + +#: src/win32/filed/winservice.cpp:472 +msgid "" +"Could not delete Registry key.\n" +"The Bacula service could not be removed" +msgstr "" + +#: src/win32/filed/winservice.cpp:482 +msgid "Bacula could not be contacted, probably not running" +msgstr "" + +#: src/win32/filed/winservice.cpp:489 +msgid "The Bacula service has been removed" +msgstr "" + +#: src/win32/filed/winservice.cpp:520 +msgid "The Bacula file service could not be stopped" +msgstr "" + +#: src/win32/filed/winservice.cpp:527 +msgid "The Bacula file service has been removed" +msgstr "" + +#: src/win32/filed/winservice.cpp:530 +msgid "The Bacula file service could not be removed" +msgstr "" + +#: src/win32/filed/winservice.cpp:535 +msgid "The Bacula file service could not be found" +msgstr "" + +#: src/win32/filed/winservice.cpp:540 +msgid "" +"The SCM could not be contacted - the Bacula file service was not removed" +msgstr "" + +#: src/win32/stored/baculasd/winservice.cpp:85 +#: src/win32/stored/baculasd/winservice.cpp:99 +msgid "No existing instance of Bacula storage service could be contacted" +msgstr "" + +#: src/win32/stored/baculasd/winservice.cpp:261 +msgid "Unable to install Bacula Storage service" +msgstr "" + +#: src/win32/stored/baculasd/winservice.cpp:283 +msgid "" +"The Service Control Manager could not be contacted - the Bacula Storage " +"service was not installed" +msgstr "" + +#: src/win32/stored/baculasd/winservice.cpp:308 +msgid "The Bacula Storage service could not be installed" +msgstr "" + +#: src/win32/stored/baculasd/winservice.cpp:314 +msgid "Provides storage services. Bacula -- the network backup solution." +msgstr "" + +#: src/win32/stored/baculasd/winservice.cpp:322 +msgid "" +"The Bacula Storage service was successfully installed.\n" +"The service may be started from the Control Panel and will\n" +"automatically be run the next time this machine is rebooted." +msgstr "" + +#: src/win32/stored/baculasd/winservice.cpp:361 +msgid "The Bacula Storage service could not be stopped" +msgstr "" + +#: src/win32/stored/baculasd/winservice.cpp:368 +msgid "The Bacula Storage service has been removed" +msgstr "" + +#: src/win32/stored/baculasd/winservice.cpp:371 +msgid "The Bacula Storage service could not be removed" +msgstr "" + +#: src/win32/stored/baculasd/winservice.cpp:376 +msgid "The Bacula Storage service could not be found" +msgstr "" + +#: src/win32/stored/baculasd/winservice.cpp:381 +msgid "" +"The SCM could not be contacted - the Bacula Storage service was not removed" +msgstr "" + +#: src/wx-console/console_thread.cpp:121 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Director \"%s\" in config file.\n" +"At least one CA certificate store is required.\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:128 +msgid "" +"No Director resource defined in config file.\n" +"Without that I don't how to speak to the Director :-(\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:147 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Console \"%s\" in config file.\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:169 +msgid "Error while initializing windows sockets...\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:185 +msgid "Error while cleaning up windows sockets...\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:224 +msgid "Error while initializing library." +msgstr "" + +#: src/wx-console/console_thread.cpp:248 +msgid "Cryptographic library initialization failed.\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:252 +msgid "Please correct configuration file.\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:294 +msgid "Error : Library not initialized\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:305 +msgid "Error : No configuration file loaded\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:315 +msgid "Connecting...\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:331 +msgid "Error : No director defined in config file.\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:343 +msgid "Multiple directors found in your config file.\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:352 +#, c-format +msgid "Please choose a director (1-%d): " +msgstr "" + +#: src/wx-console/console_thread.cpp:424 +msgid "Failed to connect to the director\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:434 +msgid "Connected\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:491 +msgid "<< Unexpected signal received : " +msgstr "" + +#: src/wx-console/console_thread.cpp:511 +msgid "Connection terminated\n" +msgstr "" + +#: src/wx-console/main.cpp:119 +msgid "Bacula bwx-console" +msgstr "" + +#: src/wx-console/main.cpp:124 src/wx-console/wxbmainframe.cpp:267 +#, c-format +msgid "Welcome to bacula bwx-console %s (%s)!\n" +msgstr "" + +#: src/wx-console/wxbconfigfileeditor.cpp:65 +msgid "Config file editor" +msgstr "" + +#: src/wx-console/wxbconfigfileeditor.cpp:75 +msgid "# Bacula bwx-console Configuration File\n" +msgstr "" + +#: src/wx-console/wxbconfigfileeditor.cpp:111 +msgid "Save and close" +msgstr "" + +#: src/wx-console/wxbconfigfileeditor.cpp:112 +msgid "Close without saving" +msgstr "" + +#: src/wx-console/wxbconfigfileeditor.cpp:139 +#, c-format +msgid "Unable to write to %s\n" +msgstr "" + +#: src/wx-console/wxbconfigfileeditor.cpp:140 +msgid "Error while saving" +msgstr "" + +#: src/wx-console/wxbconfigpanel.cpp:205 +msgid "Apply" +msgstr "" + +#: src/wx-console/wxbhistorytextctrl.cpp:82 +#: src/wx-console/wxbhistorytextctrl.cpp:153 +#: src/wx-console/wxbmainframe.cpp:291 +msgid "Type your command below:" +msgstr "" + +#: src/wx-console/wxbhistorytextctrl.cpp:117 +msgid "Unknown command." +msgstr "" + +#: src/wx-console/wxbhistorytextctrl.cpp:126 +msgid "Possible completions: " +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:246 +msgid "&About...\tF1" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:246 +msgid "Show about dialog" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:248 src/wx-console/wxbmainframe.cpp:620 +msgid "Connect to the director" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:249 +msgid "Disconnect" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:249 +msgid "Disconnect of the director" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:251 +msgid "Change of configuration file" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:251 +msgid "Change your default configuration file" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:252 +msgid "Edit your configuration file" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:254 +msgid "E&xit\tAlt-X" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:254 +msgid "Quit this program" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:258 +msgid "&File" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:259 +msgid "&Help" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:283 +msgid "" +"Warning : Unicode is disabled because you are using wxWidgets for GTK+ 1.2.\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:287 +msgid "" +"Warning : There is a problem with wxWidgets for GTK+ 2.0 without Unicode " +"support when handling non-ASCII filenames: Every non-ASCII character in such " +"filenames will be replaced by an interrogation mark.\n" +"If this behaviour disturbs you, please build bwx-console against a Unicode " +"version of wxWidgets for GTK+ 2.0.\n" +"---\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:298 +msgid "Send" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:375 src/wx-console/wxbmainframe.cpp:387 +msgid "Error while parsing command line arguments, using defaults.\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:376 src/wx-console/wxbmainframe.cpp:388 +msgid "Usage: bwx-console [-c configfile] [-w tmp]\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:417 +#, c-format +msgid "" +"It seems that it is the first time you run bwx-console.\n" +"This file (%s) has been choosen as default configuration file.\n" +"Do you want to edit it? (if you click No you will have to select another " +"file)" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:419 +msgid "First run" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:436 +#, c-format +msgid "" +"Unable to read %s\n" +"Error: %s\n" +"Do you want to choose another one? (Press no to edit this file)" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:438 +msgid "Unable to read configuration file" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:450 +msgid "Please choose a configuration file to use" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:463 +msgid "This configuration file has been successfully read, use it as default?" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:464 +msgid "Configuration file read successfully" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:474 +#, c-format +msgid "Using this configuration file: %s\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:479 +msgid "Connecting to the director..." +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:494 +msgid "Failed to unregister a data parser !" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:502 +msgid "Quitting.\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:517 +msgid "" +"Welcome to Bacula bwx-console.\n" +"Written by Nicolas Boichat \n" +"Copyright (C), 2005-2007 Free Software Foundation Europe, e.V.\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:521 +msgid "About Bacula bwx-console" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:527 +msgid "Please choose your default configuration file" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:531 +msgid "Use this configuration file as default?" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:532 +msgid "Configuration file" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:603 +msgid "Console thread terminated." +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:611 +msgid "Connection to the director lost. Quit program?" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:612 +msgid "Connection lost" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:628 +msgid "Connected to the director." +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:651 +msgid "Reconnect" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:652 +msgid "Reconnect to the director" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:666 +msgid "Disconnected of the director." +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:685 src/wx-console/wxbrestorepanel.cpp:710 +msgid "Unexpected question has been received.\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:708 src/wx-console/wxbmainframe.cpp:725 +msgid "bwx-console: unexpected director's question." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:234 +#: src/wx-console/wxbrestorepanel.cpp:1920 +#: src/wx-console/wxbrestorepanel.cpp:1949 +msgid "Enter restore mode" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:237 +msgid "Cancel restore" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:263 +#: src/wx-console/wxbrestorepanel.cpp:317 +msgid "Add" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:265 +#: src/wx-console/wxbrestorepanel.cpp:319 +msgid "Remove" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:267 +#: src/wx-console/wxbrestorepanel.cpp:321 +msgid "Refresh" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:286 +msgid "M" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:290 +msgid "Filename" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:302 +msgid "Perm." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:335 +#: src/wx-console/wxbrestorepanel.cpp:348 +#: src/wx-console/wxbrestorepanel.cpp:503 +#: src/wx-console/wxbrestorepanel.cpp:513 +#: src/wx-console/wxbrestorepanel.cpp:516 +#: src/wx-console/wxbrestorepanel.cpp:1784 +#: src/wx-console/wxbrestorepanel.cpp:1870 +msgid "Job Name" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:337 +#: src/wx-console/wxbrestorepanel.cpp:353 +#: src/wx-console/wxbrestorepanel.cpp:455 +#: src/wx-console/wxbrestorepanel.cpp:456 +#: src/wx-console/wxbrestorepanel.cpp:466 +#: src/wx-console/wxbrestorepanel.cpp:467 +#: src/wx-console/wxbrestorepanel.cpp:1139 +#: src/wx-console/wxbrestorepanel.cpp:1212 +#: src/wx-console/wxbrestorepanel.cpp:1822 +#: src/wx-console/wxbrestorepanel.cpp:1824 +#: src/wx-console/wxbrestorepanel.cpp:1885 +msgid "Fileset" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:340 +#: src/wx-console/wxbrestorepanel.cpp:1206 +#: src/wx-console/wxbrestorepanel.cpp:1222 +#: src/wx-console/wxbrestorepanel.cpp:1224 +#: src/wx-console/wxbrestorepanel.cpp:1232 +#: src/wx-console/wxbrestorepanel.cpp:1234 +#: src/wx-console/wxbrestorepanel.cpp:1253 +#: src/wx-console/wxbrestorepanel.cpp:1260 +#: src/wx-console/wxbrestorepanel.cpp:1812 +#: src/wx-console/wxbrestorepanel.cpp:1823 +#: src/wx-console/wxbrestorepanel.cpp:1944 +msgid "Before" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:342 +msgid "Please configure parameters concerning files to restore :" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:351 +#: src/wx-console/wxbrestorepanel.cpp:1878 +msgid "always" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:351 +msgid "if newer" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:351 +msgid "if older" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:351 +#: src/wx-console/wxbrestorepanel.cpp:1881 +msgid "never" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:359 +msgid "Please configure parameters concerning files restoration :" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:427 +msgid "Getting parameters list." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:435 +msgid "Error : no clients returned by the director." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:459 +msgid "Error : no filesets returned by the director." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:483 +msgid "Error : no storage returned by the director." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:506 +#: src/wx-console/wxbrestorepanel.cpp:530 +msgid "Error : no jobs returned by the director." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:516 +msgid "RestoreFiles" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:551 +msgid "Please configure your restore parameters." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:562 +msgid "Building restore tree..." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:605 +msgid "Error while starting restore: " +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:695 +msgid "" +"Right click on a file or on a directory, or double-click on its mark to add " +"it to the restore list." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:732 +#: src/wx-console/wxbrestorepanel.cpp:754 +msgid "bwx-console: unexpected restore question." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:765 +msgid " files selected to be restored." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:770 +msgid " file selected to be restored." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:777 +#, c-format +msgid "Please configure your restore (%ld files selected to be restored)..." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:787 +msgid "Restore failed : no file selected.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:788 +msgid "Restore failed : no file selected." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:798 +msgid "Restoring, please wait..." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:811 +msgid "Job queued. JobId=" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:813 +msgid "Restore queued, jobid=" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:817 +msgid "Job failed." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:818 +msgid "Restore failed, please look at messages.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:819 +msgid "Restore failed, please look at messages in console." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:825 +#: src/wx-console/wxbrestorepanel.cpp:826 +msgid "Failed to retrieve jobid.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:852 +msgid "" +"Restore is scheduled in more than two minutes, bwx-console will not wait for " +"its completion.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:853 +msgid "" +"Restore is scheduled in more than two minutes, bwx-console will not wait for " +"its completion." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:879 +msgid "Restore job created, but not yet running." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:884 +#, c-format +msgid "Restore job running, please wait (%ld of %ld files restored)..." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:888 +msgid "Restore job terminated successfully." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:889 +msgid "Restore job terminated successfully.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:894 +msgid "Restore job terminated in error, see messages in console." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:895 +msgid "Restore job terminated in error, see messages.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:900 +msgid "Restore job reported a non-fatal error." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:904 +msgid "Restore job reported a fatal error." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:909 +msgid "Restore job cancelled by user." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:910 +msgid "Restore job cancelled by user.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:915 +msgid "Restore job is waiting on File daemon." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:919 +msgid "Restore job is waiting for new media." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:923 +msgid "Restore job is waiting for storage resource." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:927 +msgid "Restore job is waiting for job resource." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:931 +msgid "Restore job is waiting for Client resource." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:935 +msgid "Restore job is waiting for maximum jobs." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:939 +msgid "Restore job is waiting for start time." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:943 +msgid "Restore job is waiting for higher priority jobs to finish." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:992 +msgid "" +"The restore job has not been started within one minute, bwx-console will not " +"wait for its completion anymore.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:993 +msgid "" +"The restore job has not been started within one minute, bwx-console will not " +"wait for its completion anymore." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1003 +msgid "Restore done successfully.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1004 +msgid "Restore done successfully." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1075 +msgid "Applying restore configuration changes..." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1126 +msgid "Failed to find the selected client." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1141 +msgid "Failed to find the selected fileset." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1156 +msgid "Failed to find the selected storage." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1173 +#: src/wx-console/wxbrestorepanel.cpp:1859 +msgid "Run Restore job" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1189 +msgid "Restore configuration changes were applied." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1198 +msgid "Restore cancelled.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1199 +msgid "Restore cancelled." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1221 +msgid "No results to list." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1223 +msgid "No backup found for this client." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1230 +msgid "ERROR" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1231 +msgid "Query failed" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1233 +msgid "Cannot get previous backups list, see console." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1869 +msgid "JobName:" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1873 +msgid "Where:" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1876 +msgid "Replace:" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1879 +msgid "ifnewer" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1880 +msgid "ifolder" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1884 +msgid "FileSet:" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:2001 +msgid "Restoring..." +msgstr "" diff --git a/Branch-2.2/bacula/po/es_AR.po b/Branch-2.2/bacula/po/es_AR.po new file mode 100644 index 0000000000..311fbab1ec --- /dev/null +++ b/Branch-2.2/bacula/po/es_AR.po @@ -0,0 +1,14465 @@ +# Spanish translations for branch package +# Traducciones al español para el paquete branch. +# Copyright (C) 2006 Free Software Foundation Europe e.V. +# This file is distributed under the same license as the branch package. +# , 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: branch 1.38\n" +"Report-Msgid-Bugs-To: bacula-devel@lists.sourceforge.net\n" +"POT-Creation-Date: 2006-02-26 13:10+0100\n" +"PO-Revision-Date: 2006-04-13 08:15+0200\n" +"Last-Translator: \n" +"Language-Team: Spanish\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: src/cats/bdb.c:128 +msgid "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n" +msgstr "" + +#: src/cats/bdb.c:129 +msgid "WARNING!!!! The Internal Database is NOT OPERATIONAL!\n" +msgstr "" + +#: src/cats/bdb.c:130 +msgid "You should use SQLite, PostgreSQL, or MySQL\n" +msgstr "" + +#: src/cats/bdb.c:152 src/cats/mysql.c:124 src/cats/postgresql.c:128 +#: src/cats/sqlite.c:122 +#, c-format +msgid "Unable to initialize DB lock. ERR=%s\n" +msgstr "" + +#: src/cats/bdb.c:162 +#, c-format +msgid "Unable to open Catalog DB control file %s: ERR=%s\n" +msgstr "" + +#: src/cats/bdb.c:217 +#, c-format +msgid "Error reading catalog DB control file. ERR=%s\n" +msgstr "" + +#: src/cats/bdb.c:220 +#, c-format +msgid "" +"Error, catalog DB control file wrong version. Wanted %d, got %d\n" +"Please reinitialize the working directory.\n" +msgstr "" + +#: src/cats/bdb_update.c:83 src/cats/bdb_update.c:114 +#, c-format +msgid "Error updating DB Job file. ERR=%s\n" +msgstr "" + +#: src/cats/bdb_update.c:153 src/cats/bdb_update.c:189 +#, c-format +msgid "Error updating DB Media file. ERR=%s\n" +msgstr "" + +#: src/cats/mysql.c:60 +msgid "A user name for MySQL must be supplied.\n" +msgstr "" + +#: src/cats/mysql.c:161 +#, c-format +msgid "" +"Unable to connect to MySQL server. \n" +"Database=%s User=%s\n" +"It is probably not running or your password is incorrect.\n" +msgstr "" + +#: src/cats/mysql.c:320 src/cats/postgresql.c:264 src/cats/sqlite.c:323 +#, c-format +msgid "Query failed: %s: ERR=%s\n" +msgstr "" + +#: src/cats/postgresql.c:62 +msgid "A user name for PostgreSQL must be supplied.\n" +msgstr "" + +#: src/cats/postgresql.c:165 +#, c-format +msgid "" +"Unable to connect to PostgreSQL server.\n" +"Database=%s User=%s\n" +"It is probably not running or your password is incorrect.\n" +msgstr "" + +#: src/cats/postgresql.c:506 +#, c-format +msgid "error fetching currval: %s\n" +msgstr "" + +#: src/cats/sql.c:96 +#, c-format +msgid "" +"query %s failed:\n" +"%s\n" +msgstr "" + +#: src/cats/sql.c:118 +#, c-format +msgid "" +"insert %s failed:\n" +"%s\n" +msgstr "" + +#: src/cats/sql.c:132 +#, c-format +msgid "Insertion problem: affected_rows=%s\n" +msgstr "" + +#: src/cats/sql.c:152 +#, c-format +msgid "" +"update %s failed:\n" +"%s\n" +msgstr "" + +#: src/cats/sql.c:162 +#, c-format +msgid "Update problem: affected_rows=%s\n" +msgstr "" + +#: src/cats/sql.c:183 +#, c-format +msgid "" +"delete %s failed:\n" +"%s\n" +msgstr "" + +#: src/cats/sql.c:209 src/cats/sql.c:216 src/cats/sql_create.c:773 +#: src/cats/sql_get.c:180 src/cats/sql_get.c:231 src/cats/sql_get.c:564 +#: src/cats/sql_get.c:639 src/cats/sql_get.c:866 +#, c-format +msgid "error fetching row: %s\n" +msgstr "" + +#: src/cats/sql.c:326 src/dird/catreq.c:369 src/dird/catreq.c:401 +#: src/dird/catreq.c:426 +#, c-format +msgid "Attribute create error. %s" +msgstr "" + +#: src/cats/sql.c:407 +#, c-format +msgid "Path length is zero. File=%s\n" +msgstr "" + +#: src/cats/sql.c:451 +msgid "No results to list.\n" +msgstr "" + +#: src/cats/sql_create.c:86 +#, c-format +msgid "Create DB Job record %s failed. ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:132 +#, c-format +msgid "Create JobMedia record %s failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:141 +#, c-format +msgid "Update Media record %s failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:171 +#, c-format +msgid "pool record %s already exists\n" +msgstr "" + +#: src/cats/sql_create.c:197 +#, c-format +msgid "Create db Pool record %s failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:228 +#, c-format +msgid "Device record %s already exists\n" +msgstr "" + +#: src/cats/sql_create.c:244 +#, c-format +msgid "Create db Device record %s failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:277 +#, c-format +msgid "More than one Storage record!: %d\n" +msgstr "" + +#: src/cats/sql_create.c:282 +#, c-format +msgid "error fetching Storage row: %s\n" +msgstr "" + +#: src/cats/sql_create.c:302 +#, c-format +msgid "Create DB Storage record %s failed. ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:334 +#, c-format +msgid "mediatype record %s already exists\n" +msgstr "" + +#: src/cats/sql_create.c:350 +#, c-format +msgid "Create db mediatype record %s failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:384 +#, c-format +msgid "Volume \"%s\" already exists.\n" +msgstr "" + +#: src/cats/sql_create.c:422 +#, c-format +msgid "Create DB Media record %s failed. ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:470 +#, c-format +msgid "More than one Client!: %d\n" +msgstr "" + +#: src/cats/sql_create.c:475 +#, c-format +msgid "error fetching Client row: %s\n" +msgstr "" + +#: src/cats/sql_create.c:502 +#, c-format +msgid "Create DB Client record %s failed. ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:545 +#, c-format +msgid "Create DB Counters record %s failed. ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:578 +#, c-format +msgid "More than one FileSet!: %d\n" +msgstr "" + +#: src/cats/sql_create.c:583 +#, c-format +msgid "error fetching FileSet row: ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:613 +#, c-format +msgid "Create DB FileSet record %s failed. ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:670 +#, c-format +msgid "Attempt to put non-attributes into catalog. Stream=%d\n" +msgstr "" + +#: src/cats/sql_create.c:733 +#, c-format +msgid "Create db File record %s failed. ERR=%s" +msgstr "" + +#: src/cats/sql_create.c:766 src/cats/sql_get.c:224 +#, c-format +msgid "More than one Path!: %s for path: %s\n" +msgstr "" + +#: src/cats/sql_create.c:797 +#, c-format +msgid "Create db Path record %s failed. ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:830 +#, c-format +msgid "More than one Filename! %s for file: %s\n" +msgstr "" + +#: src/cats/sql_create.c:836 +#, c-format +msgid "Error fetching row for file=%s: ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:852 +#, c-format +msgid "Create db Filename record %s failed. ERR=%s\n" +msgstr "" + +#: src/cats/sql_delete.c:79 +#, c-format +msgid "No pool record %s exists\n" +msgstr "" + +#: src/cats/sql_delete.c:84 +#, c-format +msgid "Expecting one pool record, got %d\n" +msgstr "" + +#: src/cats/sql_delete.c:90 +#, c-format +msgid "Error fetching row %s\n" +msgstr "" + +#: src/cats/sql_find.c:90 src/cats/sql_find.c:119 +#, c-format +msgid "" +"Query error for start time request: ERR=%s\n" +"CMD=%s\n" +msgstr "" + +#: src/cats/sql_find.c:96 +msgid "No prior Full backup Job record found.\n" +msgstr "" + +#: src/cats/sql_find.c:108 +#, c-format +msgid "Unknown level=%d\n" +msgstr "" + +#: src/cats/sql_find.c:125 +#, c-format +msgid "" +"No Job record found: ERR=%s\n" +"CMD=%s\n" +msgstr "" + +#: src/cats/sql_find.c:224 +#, c-format +msgid "Unknown Job level=%d\n" +msgstr "" + +#: src/cats/sql_find.c:234 +#, c-format +msgid "No Job found for: %s.\n" +msgstr "" + +#: src/cats/sql_find.c:245 +#, c-format +msgid "No Job found for: %s\n" +msgstr "" + +#: src/cats/sql_find.c:317 +#, c-format +msgid "Request for Volume item %d greater than max %d\n" +msgstr "" + +#: src/cats/sql_find.c:329 +#, c-format +msgid "No Volume record found for item %d.\n" +msgstr "" + +#: src/cats/sql_get.c:130 +#, c-format +msgid "get_file_record want 1 got rows=%d\n" +msgstr "" + +#: src/cats/sql_get.c:135 +#, c-format +msgid "Error fetching row: %s\n" +msgstr "" + +#: src/cats/sql_get.c:143 +#, c-format +msgid "File record for PathId=%s FilenameId=%s not found.\n" +msgstr "" + +#: src/cats/sql_get.c:149 +msgid "File record not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:174 +#, c-format +msgid "More than one Filename!: %s for file: %s\n" +msgstr "" + +#: src/cats/sql_get.c:184 +#, c-format +msgid "Get DB Filename record %s found bad record: %d\n" +msgstr "" + +#: src/cats/sql_get.c:190 +#, c-format +msgid "Filename record: %s not found.\n" +msgstr "" + +#: src/cats/sql_get.c:194 +#, c-format +msgid "Filename record: %s not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:235 +#, c-format +msgid "Get DB path record %s found bad record: %s\n" +msgstr "" + +#: src/cats/sql_get.c:248 +#, c-format +msgid "Path record: %s not found.\n" +msgstr "" + +#: src/cats/sql_get.c:252 +#, c-format +msgid "Path record: %s not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:287 +#, c-format +msgid "No Job found for JobId %s\n" +msgstr "" + +#: src/cats/sql_get.c:344 src/cats/sql_get.c:399 +#, c-format +msgid "No volumes found for JobId=%d\n" +msgstr "" + +#: src/cats/sql_get.c:350 src/cats/sql_get.c:408 +#, c-format +msgid "Error fetching row %d: ERR=%s\n" +msgstr "" + +#: src/cats/sql_get.c:364 +#, c-format +msgid "No Volume for JobId %d found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:480 +#, c-format +msgid "Pool id select failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_get.c:517 +#, c-format +msgid "Client id select failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_get.c:559 +#, c-format +msgid "More than one Pool!: %s\n" +msgstr "" + +#: src/cats/sql_get.c:600 +msgid "Pool record not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:634 +#, c-format +msgid "More than one Client!: %s\n" +msgstr "" + +#: src/cats/sql_get.c:651 src/cats/sql_get.c:655 +msgid "Client record not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:680 +#, c-format +msgid "More than one Counter!: %d\n" +msgstr "" + +#: src/cats/sql_get.c:685 +#, c-format +msgid "error fetching Counter row: %s\n" +msgstr "" + +#: src/cats/sql_get.c:705 +#, c-format +msgid "Counter record: %s not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:741 +#, c-format +msgid "Error got %s FileSets but expected only one!\n" +msgstr "" + +#: src/cats/sql_get.c:746 +#, c-format +msgid "FileSet record \"%s\" not found.\n" +msgstr "" + +#: src/cats/sql_get.c:756 +msgid "FileSet record not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:813 +#, c-format +msgid "Media id select failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_get.c:861 +#, c-format +msgid "More than one Volume!: %s\n" +msgstr "" + +#: src/cats/sql_get.c:906 +#, c-format +msgid "Media record MediaId=%s not found.\n" +msgstr "" + +#: src/cats/sql_get.c:909 +#, c-format +msgid "Media record for Volume \"%s\" not found.\n" +msgstr "" + +#: src/cats/sql_get.c:916 +#, c-format +msgid "Media record for MediaId=%u not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:919 +#, c-format +msgid "Media record for Vol=%s not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_list.c:53 +#, c-format +msgid "Query failed: %s\n" +msgstr "" + +#: src/cats/sqlite.c:136 +#, c-format +msgid "Database %s does not exist, please create it.\n" +msgstr "" + +#: src/cats/sqlite.c:161 +#, c-format +msgid "Unable to open Database=%s. ERR=%s\n" +msgstr "" + +#: src/cats/sqlite.c:162 src/lib/bnet_server.c:371 +msgid "unknown" +msgstr "" + +#: src/cats/sqlite.c:221 +#, c-format +msgid "next_index query error: ERR=%s\n" +msgstr "" + +#: src/cats/sqlite.c:226 +#, c-format +msgid "Error fetching index: ERR=%s\n" +msgstr "" + +#: src/cats/sqlite.c:236 +#, c-format +msgid "next_index update error: ERR=%s\n" +msgstr "" + +#: src/console/authenticate.c:100 src/dird/authenticate.c:106 +#: src/dird/authenticate.c:206 src/filed/authenticate.c:119 +#: src/filed/authenticate.c:215 src/stored/authenticate.c:128 +#: src/stored/authenticate.c:232 src/wx-console/authenticate.c:106 +msgid "" +"Authorization problem: Remote server did not advertise required TLS " +"support.\n" +msgstr "" + +#: src/console/authenticate.c:107 src/dird/authenticate.c:113 +#: src/dird/authenticate.c:213 src/filed/authenticate.c:127 +#: src/filed/authenticate.c:223 src/stored/authenticate.c:136 +#: src/stored/authenticate.c:240 src/wx-console/authenticate.c:112 +msgid "Authorization problem: Remote server requires TLS.\n" +msgstr "" + +#: src/console/authenticate.c:117 src/wx-console/authenticate.c:121 +msgid "TLS negotiation failed\n" +msgstr "" + +#: src/console/authenticate.c:129 src/gnome2-console/authenticate.c:85 +#: src/tray-monitor/authenticate.c:87 +#, c-format +msgid "Bad response to Hello command: ERR=%s\n" +msgstr "" + +#: src/console/authenticate.c:136 src/gnome2-console/authenticate.c:95 +#: src/tray-monitor/authenticate.c:94 src/wx-console/authenticate.c:136 +msgid "Director rejected Hello command\n" +msgstr "" + +#: src/console/authenticate.c:146 src/wx-console/authenticate.c:146 +msgid "" +"Director authorization problem.\n" +"Most likely the passwords do not agree.\n" +"If you are using TLS, there may have been a certificate validation error " +"during the TLS handshake.\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" + +#: src/console/console.c:102 +#, c-format +msgid "" +"Copyright (C) 2000-2005 Kern Sibbald\n" +"\n" +"Version: " +msgstr "" + +#: src/console/console.c:103 src/dird/admin.c:108 +#, c-format +msgid " (" +msgstr "" + +#: src/console/console.c:103 +#, c-format +msgid "" +") %s %s %s\n" +"\n" +"Usage: bconsole [-s] [-c config_file] [-d debug_level]\n" +" -c set configuration file to file\n" +" -dnn set debug level to nn\n" +" -s no signals\n" +" -t test - read configuration and exit\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/console/console.c:150 +msgid "input from file" +msgstr "" + +#: src/console/console.c:151 +msgid "output to file" +msgstr "" + +#: src/console/console.c:152 src/dird/ua_cmds.c:110 +msgid "quit" +msgstr "" + +#: src/console/console.c:153 +msgid "output to file and terminal" +msgstr "" + +#: src/console/console.c:154 +msgid "sleep specified time" +msgstr "" + +#: src/console/console.c:155 src/dird/ua_cmds.c:122 +msgid "print current time" +msgstr "" + +#: src/console/console.c:156 +msgid "print Console's version" +msgstr "" + +#: src/console/console.c:157 src/dird/ua_cmds.c:99 +msgid "exit = quit" +msgstr "" + +#: src/console/console.c:158 +msgid "zed_keys = use zed keys instead of bash keys" +msgstr "" + +#: src/console/console.c:191 src/dird/ua_dotcmds.c:108 +msgid ": is an illegal command\n" +msgstr "" + +#: src/console/console.c:400 src/filed/filed.c:183 +#: src/gnome2-console/console.c:271 +msgid "TLS library initialization failed.\n" +msgstr "" + +#: src/console/console.c:404 src/dird/dird.c:200 src/dird/dird.c:410 +#: src/dird/dird.c:413 src/filed/filed.c:188 src/gnome2-console/console.c:275 +#: src/stored/stored.c:193 +#, c-format +msgid "Please correct configuration file: %s\n" +msgstr "" + +#: src/console/console.c:421 +msgid "Available Directors:\n" +msgstr "" + +#: src/console/console.c:425 +#, c-format +msgid "%d %s at %s:%d\n" +msgstr "" + +#: src/console/console.c:429 +msgid "Select Director: " +msgstr "" + +#: src/console/console.c:435 +#, c-format +msgid "You must enter a number between 1 and %d\n" +msgstr "" + +#: src/console/console.c:455 src/tray-monitor/tray-monitor.c:858 +#, c-format +msgid "Connecting to Director %s:%d\n" +msgstr "" + +#: src/console/console.c:471 src/gnome2-console/console.c:504 +#: src/wx-console/console_thread.cpp:370 +#, c-format +msgid "Failed to initialize TLS context for Console \"%s\".\n" +msgstr "" + +#: src/console/console.c:492 src/gnome2-console/console.c:526 +#: src/wx-console/console_thread.cpp:391 +#, c-format +msgid "Failed to initialize TLS context for Director \"%s\".\n" +msgstr "" + +#: src/console/console.c:515 +msgid "Enter a period to cancel a command.\n" +msgstr "" + +#: src/console/console.c:582 src/console/console.c:611 src/dird/dird.c:496 +#: src/dird/dird.c:711 src/dird/dird.c:777 src/dird/dird.c:829 +#: src/filed/filed.c:302 src/filed/filed.c:348 +#: src/gnome2-console/console.c:140 src/gnome2-console/console.c:169 +#: src/stored/stored.c:309 src/wx-console/console_thread.cpp:94 +#: src/wx-console/console_thread.cpp:120 +msgid "TLS required but not configured in Bacula.\n" +msgstr "" + +#: src/console/console.c:589 src/gnome2-console/console.c:147 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Director \"%s\" in %s. At least one CA certificate store is required.\n" +msgstr "" + +#: src/console/console.c:598 src/gnome2-console/console.c:156 +#, c-format +msgid "" +"No Director resource defined in %s\n" +"Without that I don't how to speak to the Director :-(\n" +msgstr "" + +#: src/console/console.c:618 src/gnome2-console/console.c:176 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Console \"%s\" in %s.\n" +msgstr "" + +#: src/console/console.c:763 +msgid "Too many arguments on input command.\n" +msgstr "" + +#: src/console/console.c:767 +msgid "First argument to input command must be a filename.\n" +msgstr "" + +#: src/console/console.c:772 +#, c-format +msgid "Cannot open file %s for input. ERR=%s\n" +msgstr "" + +#: src/console/console.c:802 +msgid "Too many arguments on output/tee command.\n" +msgstr "" + +#: src/console/console.c:818 +#, c-format +msgid "Cannot open file %s for output. ERR=%s\n" +msgstr "" + +#: src/console/console_conf.c:123 src/gnome2-console/console_conf.c:122 +#: src/wx-console/console_conf.c:128 +#, c-format +msgid "No record for %d %s\n" +msgstr "" + +#: src/console/console_conf.c:132 src/wx-console/console_conf.c:137 +#, c-format +msgid "Console: name=%s rcfile=%s histfile=%s\n" +msgstr "" + +#: src/console/console_conf.c:136 src/gnome2-console/console_conf.c:131 +#: src/wx-console/console_conf.c:141 +#, c-format +msgid "Director: name=%s address=%s DIRport=%d\n" +msgstr "" + +#: src/console/console_conf.c:140 src/console/console_conf.c:216 +#: src/console/console_conf.c:261 src/console/console_conf.c:288 +#: src/filed/filed_conf.c:268 src/filed/filed_conf.c:327 +#: src/filed/filed_conf.c:357 src/gnome2-console/console_conf.c:142 +#: src/gnome2-console/console_conf.c:220 src/gnome2-console/console_conf.c:268 +#: src/gnome2-console/console_conf.c:298 src/stored/stored_conf.c:510 +#: src/stored/stored_conf.c:598 src/stored/stored_conf.c:633 +#: src/wx-console/console_conf.c:145 src/wx-console/console_conf.c:220 +#: src/wx-console/console_conf.c:265 src/wx-console/console_conf.c:292 +#, c-format +msgid "Unknown resource type %d\n" +msgstr "" + +#: src/console/console_conf.c:242 src/dird/dird_conf.c:1112 +#: src/dird/dird_conf.c:1127 src/filed/filed_conf.c:296 +#: src/gnome2-console/console_conf.c:246 src/tray-monitor/tray_conf.c:262 +#: src/wx-console/console_conf.c:246 +#, c-format +msgid "%s item is required in %s resource, but not found.\n" +msgstr "" + +#: src/console/console_conf.c:304 src/dird/dird_conf.c:1299 +#: src/filed/filed_conf.c:374 src/gnome2-console/console_conf.c:314 +#: src/tray-monitor/tray_conf.c:341 src/wx-console/console_conf.c:308 +#, c-format +msgid "Attempt to define second %s resource named \"%s\" is not permitted.\n" +msgstr "" + +#: src/dird/admin.c:55 +#, c-format +msgid "Start Admin JobId %d, Job=%s\n" +msgstr "" + +#: src/dird/admin.c:82 src/dird/backup.c:343 src/dird/mac.c:287 +#, c-format +msgid "Error getting job record for stats: %s" +msgstr "" + +#: src/dird/admin.c:90 +msgid "Admin OK" +msgstr "" + +#: src/dird/admin.c:94 +msgid "*** Admin Error ***" +msgstr "" + +#: src/dird/admin.c:98 +msgid "Admin Canceled" +msgstr "" + +#: src/dird/admin.c:102 src/dird/backup.c:455 src/dird/mac.c:389 +#: src/dird/restore.c:246 +#, c-format +msgid "Inappropriate term code: %c\n" +msgstr "" + +#: src/dird/admin.c:108 +msgid "Bacula " +msgstr "" + +#: src/dird/admin.c:108 +#, c-format +msgid "" +"): %s\n" +" JobId: %d\n" +" Job: %s\n" +" Start time: %s\n" +" End time: %s\n" +" Termination: %s\n" +"\n" +msgstr "" + +#: src/dird/authenticate.c:67 src/dird/authenticate.c:68 +#: src/tray-monitor/authenticate.c:121 +#, c-format +msgid "Error sending Hello to Storage daemon. ERR=%s\n" +msgstr "" + +#: src/dird/authenticate.c:93 +msgid "Director and Storage daemon passwords or names not the same.\n" +msgstr "" + +#: src/dird/authenticate.c:95 +msgid "" +"Director unable to authenticate with Storage daemon. Possible causes:\n" +"Passwords or names not the same or\n" +"Maximum Concurrent Jobs exceeded on the SD or\n" +"SD networking messed up (restart daemon).\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" + +#: src/dird/authenticate.c:123 src/dird/authenticate.c:223 +#: src/dird/authenticate.c:356 src/filed/authenticate.c:136 +#: src/filed/authenticate.c:232 src/stored/authenticate.c:145 +#: src/stored/authenticate.c:249 +msgid "TLS negotiation failed.\n" +msgstr "" + +#: src/dird/authenticate.c:132 src/tray-monitor/authenticate.c:134 +#, c-format +msgid "bdird set configuration file to file\n" +" -dnn set debug level to nn\n" +" -f run in foreground (for debugging)\n" +" -g groupid\n" +" -r run now\n" +" -s no signals\n" +" -t test - read configuration and exit\n" +" -u userid\n" +" -v verbose user messages\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/dird/dird.c:196 src/stored/stored.c:189 +msgid "Cryptography library initialization failed.\n" +msgstr "" + +#: src/dird/dird.c:396 +msgid "Too many open reload requests. Request ignored.\n" +msgstr "" + +#: src/dird/dird.c:411 +msgid "Out of reload table entries. Giving up.\n" +msgstr "" + +#: src/dird/dird.c:414 +msgid "Resetting previous configuration.\n" +msgstr "" + +#: src/dird/dird.c:474 +#, c-format +msgid "" +"No Director resource defined in %s\n" +"Without that I don't know who I am :-(\n" +msgstr "" + +#: src/dird/dird.c:482 src/filed/filed.c:295 +#, c-format +msgid "No Messages resource defined in %s\n" +msgstr "" + +#: src/dird/dird.c:487 +#, c-format +msgid "Only one Director resource permitted in %s\n" +msgstr "" + +#: src/dird/dird.c:502 src/filed/filed.c:357 src/stored/stored.c:361 +#, c-format +msgid "\"TLS Certificate\" file not defined for Director \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird.c:508 src/filed/filed.c:363 src/stored/stored.c:367 +#, c-format +msgid "\"TLS Key\" file not defined for Director \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird.c:514 src/filed/filed.c:369 src/stored/stored.c:373 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Director \"%s\" in %s. At least one CA certificate store is required when " +"using \"TLS Verify Peer\".\n" +msgstr "" + +#: src/dird/dird.c:533 src/filed/filed.c:388 src/stored/stored.c:392 +#, c-format +msgid "Failed to initialize TLS context for Director \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird.c:541 +#, c-format +msgid "No Job records defined in %s\n" +msgstr "" + +#: src/dird/dird.c:585 src/dird/dird.c:598 +#, c-format +msgid "Hey something is wrong. p=0x%lu\n" +msgstr "" + +#: src/dird/dird.c:647 +#, c-format +msgid "\"%s\" directive in Job \"%s\" resource is required, but not found.\n" +msgstr "" + +#: src/dird/dird.c:654 +msgid "Too many items in Job resource\n" +msgstr "" + +#: src/dird/dird.c:672 src/dird/job.c:101 src/dird/ua_cmds.c:1480 +#: src/dird/ua_output.c:600 +#, c-format +msgid "Could not open database \"%s\".\n" +msgstr "" + +#: src/dird/dird.c:675 +#, c-format +msgid "%s" +msgstr "" + +#: src/dird/dird.c:717 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Storage \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird.c:733 src/stored/stored.c:347 +#, c-format +msgid "Failed to initialize TLS context for Storage \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird.c:784 +#, c-format +msgid "\"TLS Certificate\" file not defined for Console \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird.c:790 +#, c-format +msgid "\"TLS Key\" file not defined for Console \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird.c:796 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Console \"%s\" in %s. At least one CA certificate store is required when " +"using \"TLS Verify Peer\".\n" +msgstr "" + +#: src/dird/dird.c:813 src/dird/dird.c:853 src/filed/filed.c:326 +#, c-format +msgid "Failed to initialize TLS context for File daemon \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird.c:836 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"File daemon \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird_conf.c:443 src/tray-monitor/tray_conf.c:152 +#, c-format +msgid "No %s resource defined\n" +msgstr "" + +#: src/dird/dird_conf.c:452 +#, c-format +msgid "Director: name=%s MaxJobs=%d FDtimeout=%s SDtimeout=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:457 +#, c-format +msgid " query_file=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:460 src/dird/dird_conf.c:485 src/dird/dird_conf.c:499 +#: src/dird/dird_conf.c:544 src/dird/dird_conf.c:548 src/dird/dird_conf.c:552 +#: src/dird/dird_conf.c:576 src/dird/dird_conf.c:581 src/dird/dird_conf.c:585 +#: src/dird/dird_conf.c:589 src/dird/dird_conf.c:593 src/dird/dird_conf.c:597 +#: src/dird/dird_conf.c:607 +msgid " --> " +msgstr "" + +#: src/dird/dird_conf.c:466 src/dird/dird_conf.c:469 +#, c-format +msgid "Console: name=%s SSL=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:475 +#, c-format +msgid "Counter: name=%s min=%d max=%d cur=%d wrapcntr=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:480 +#, c-format +msgid "Counter: name=%s min=%d max=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:491 +#, c-format +msgid "Client: name=%s address=%s FDport=%d MaxJobs=%u\n" +msgstr "" + +#: src/dird/dird_conf.c:494 +#, c-format +msgid " JobRetention=%s FileRetention=%s AutoPrune=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:506 +#, c-format +msgid "" +"Device: name=%s ok=%d num_writers=%d max_writers=%d\n" +" reserved=%d open=%d append=%d read=%d labeled=%d offline=%d autochgr=%" +"d\n" +" poolid=%s volname=%s MediaType=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:516 +#, c-format +msgid "" +"Storage: name=%s address=%s SDport=%d MaxJobs=%u\n" +" DeviceName=%s MediaType=%s StorageId=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:525 +#, c-format +msgid "" +"Catalog: name=%s address=%s DBport=%d db_name=%s\n" +" db_user=%s MutliDBConn=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:533 +#, c-format +msgid "%s: name=%s JobType=%d level=%s Priority=%d Enabled=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:534 src/dird/ua_cmds.c:430 src/dird/ua_prune.c:454 +#: src/dird/ua_run.c:643 src/dird/ua_select.c:234 src/dird/ua_select.c:257 +msgid "Job" +msgstr "" + +#: src/dird/dird_conf.c:534 +msgid "JobDefs" +msgstr "" + +#: src/dird/dird_conf.c:538 +#, c-format +msgid "" +" MaxJobs=%u Resched=%d Times=%d Interval=%s Spool=%d WritePartAfterJob=%" +"d\n" +msgstr "" + +#: src/dird/dird_conf.c:556 +#, c-format +msgid " --> Where=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:559 +#, c-format +msgid " --> Bootstrap=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:562 +#, c-format +msgid " --> RunBefore=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:565 +#, c-format +msgid " --> RunAfter=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:568 +#, c-format +msgid " --> RunAfterFailed=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:571 +#, c-format +msgid " --> WriteBootstrap=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:603 +#, c-format +msgid " --> Run=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:614 +#, c-format +msgid "FileSet: name=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:676 src/dird/dird_conf.c:755 +#, c-format +msgid "Schedule: name=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:681 +#, c-format +msgid " --> Run Level=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:682 +msgid " hour=" +msgstr "" + +#: src/dird/dird_conf.c:691 +msgid " mday=" +msgstr "" + +#: src/dird/dird_conf.c:700 +msgid " month=" +msgstr "" + +#: src/dird/dird_conf.c:709 +msgid " wday=" +msgstr "" + +#: src/dird/dird_conf.c:718 +msgid " wom=" +msgstr "" + +#: src/dird/dird_conf.c:727 +msgid " woy=" +msgstr "" + +#: src/dird/dird_conf.c:736 +#, c-format +msgid " mins=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:738 src/dird/dird_conf.c:742 src/dird/dird_conf.c:746 +msgid " --> " +msgstr "" + +#: src/dird/dird_conf.c:759 +#, c-format +msgid "Pool: name=%s PoolType=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:761 +#, c-format +msgid " use_cat=%d use_once=%d acpt_any=%d cat_files=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:764 +#, c-format +msgid " max_vols=%d auto_prune=%d VolRetention=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:767 +#, c-format +msgid " VolUse=%s recycle=%d LabelFormat=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:771 +#, c-format +msgid " CleaningPrefix=%s LabelType=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:773 +#, c-format +msgid " RecyleOldest=%d PurgeOldest=%d MaxVolJobs=%d MaxVolFiles=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:779 +#, c-format +msgid "Messages: name=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:781 +#, c-format +msgid " mailcmd=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:783 +#, c-format +msgid " opcmd=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:786 src/tray-monitor/tray_conf.c:179 +#, c-format +msgid "Unknown resource type %d in dump_resource.\n" +msgstr "" + +#: src/dird/dird_conf.c:1080 src/tray-monitor/tray_conf.c:232 +#, c-format +msgid "Unknown resource type %d in free_resource.\n" +msgstr "" + +#: src/dird/dird_conf.c:1118 src/lib/parse_conf.c:211 +#: src/tray-monitor/tray_conf.c:268 +#, c-format +msgid "Too many items in %s resource\n" +msgstr "" + +#: src/dird/dird_conf.c:1152 +#, c-format +msgid "Cannot find Console resource %s\n" +msgstr "" + +#: src/dird/dird_conf.c:1158 src/filed/filed_conf.c:316 +#: src/stored/stored_conf.c:566 +#, c-format +msgid "Cannot find Director resource %s\n" +msgstr "" + +#: src/dird/dird_conf.c:1165 src/stored/stored_conf.c:572 +#, c-format +msgid "Cannot find Storage resource %s\n" +msgstr "" + +#: src/dird/dird_conf.c:1174 +#, c-format +msgid "Cannot find Job resource %s\n" +msgstr "" + +#: src/dird/dird_conf.c:1192 +#, c-format +msgid "Cannot find Counter resource %s\n" +msgstr "" + +#: src/dird/dird_conf.c:1200 src/filed/filed_conf.c:322 +#, c-format +msgid "Cannot find Client resource %s\n" +msgstr "" + +#: src/dird/dird_conf.c:1212 +#, c-format +msgid "Cannot find Schedule resource %s\n" +msgstr "" + +#: src/dird/dird_conf.c:1217 src/tray-monitor/tray_conf.c:287 +#, c-format +msgid "Unknown resource type %d in save_resource.\n" +msgstr "" + +#: src/dird/dird_conf.c:1277 src/tray-monitor/tray_conf.c:322 +#, c-format +msgid "Unknown resource type %d in save_resrouce.\n" +msgstr "" + +#: src/dird/dird_conf.c:1292 +#, c-format +msgid "Name item is required in %s resource, but not found.\n" +msgstr "" + +#: src/dird/dird_conf.c:1304 +#, c-format +msgid "Inserting %s res: %s index=%d pass=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:1377 +#, c-format +msgid "Expected a Job Type keyword, got: %s" +msgstr "" + +#: src/dird/dird_conf.c:1401 +#, c-format +msgid "Expected a Job Level keyword, got: %s" +msgstr "" + +#: src/dird/dird_conf.c:1421 +#, c-format +msgid "Expected a Restore replacement option, got: %s" +msgstr "" + +#: src/dird/expand.c:240 +#, c-format +msgid "Count not update counter %s: ERR=%s\n" +msgstr "" + +#: src/dird/expand.c:412 +#, c-format +msgid "Cannot create var context: ERR=%s\n" +msgstr "" + +#: src/dird/expand.c:417 +#, c-format +msgid "Cannot set var callback: ERR=%s\n" +msgstr "" + +#: src/dird/expand.c:423 +#, c-format +msgid "Cannot set var operate: ERR=%s\n" +msgstr "" + +#: src/dird/expand.c:429 src/dird/expand.c:444 +#, c-format +msgid "Cannot unescape string: ERR=%s\n" +msgstr "" + +#: src/dird/expand.c:437 +#, c-format +msgid "Cannot expand expression \"%s\": ERR=%s\n" +msgstr "" + +#: src/dird/expand.c:455 +#, c-format +msgid "Cannot destroy var context: ERR=%s\n" +msgstr "" + +#: src/dird/fd_cmds.c:73 src/tray-monitor/tray-monitor.c:867 +msgid "File daemon" +msgstr "" + +#: src/dird/fd_cmds.c:104 +#, c-format +msgid "File daemon \"%s\" rejected Job command: %s\n" +msgstr "" + +#: src/dird/fd_cmds.c:117 +#, c-format +msgid "Error updating Client record. ERR=%s\n" +msgstr "" + +#: src/dird/fd_cmds.c:122 +#, c-format +msgid "FD gave bad response to JobId command: %s\n" +msgstr "" + +#: src/dird/fd_cmds.c:144 src/dird/fd_cmds.c:180 +msgid ", since=" +msgstr "" + +#: src/dird/fd_cmds.c:164 +msgid "No prior or suitable Full backup found. Doing FULL backup.\n" +msgstr "" + +#: src/dird/fd_cmds.c:165 src/dird/fd_cmds.c:173 +#, c-format +msgid " (upgraded from %s)" +msgstr "" + +#: src/dird/fd_cmds.c:171 +#, c-format +msgid "Prior failed job found. Upgrading to %s.\n" +msgstr "" + +#: src/dird/fd_cmds.c:196 +msgid "since_utime " +msgstr "" + +#: src/dird/fd_cmds.c:232 +#, c-format +msgid "Unimplemented backup level %d %c\n" +msgstr "" + +#: src/dird/fd_cmds.c:320 src/filed/job.c:566 +#, c-format +msgid "Cannot run program: %s. ERR=%s\n" +msgstr "" + +#: src/dird/fd_cmds.c:331 src/dird/fd_cmds.c:356 src/dird/fd_cmds.c:370 +msgid ">filed: write error on socket\n" +msgstr "" + +#: src/dird/fd_cmds.c:337 +#, c-format +msgid "Error running program: %s. ERR=%s\n" +msgstr "" + +#: src/dird/fd_cmds.c:346 +#, c-format +msgid "Cannot open included file: %s. ERR=%s\n" +msgstr "" + +#: src/dird/fd_cmds.c:441 src/filed/job.c:1622 +#, c-format +msgid "Could not open bootstrap file %s: ERR=%s\n" +msgstr "" + +#: src/dird/fd_cmds.c:526 +#, c-format +msgid "" +" | ] -- cancel a job" +msgstr "" + +#: src/dird/ua_cmds.c:94 +msgid "create DB Pool from resource" +msgstr "" + +#: src/dird/ua_cmds.c:95 +msgid "delete [pool= | media volume=]" +msgstr "" + +#: src/dird/ua_cmds.c:96 +msgid "disable -- disable a job" +msgstr "" + +#: src/dird/ua_cmds.c:97 +msgid "enable -- enable a job" +msgstr "" + +#: src/dird/ua_cmds.c:98 +msgid "performs FileSet estimate, listing gives full listing" +msgstr "" + +#: src/dird/ua_cmds.c:100 +msgid "gui [on|off] -- non-interactive gui mode" +msgstr "" + +#: src/dird/ua_cmds.c:101 src/stored/btape.c:2540 +msgid "print this command" +msgstr "" + +#: src/dird/ua_cmds.c:102 +msgid "" +"list [pools | jobs | jobtotals | media | files ]; " +"from catalog" +msgstr "" + +#: src/dird/ua_cmds.c:103 +msgid "label a tape" +msgstr "" + +#: src/dird/ua_cmds.c:104 +msgid "full or long list like list command" +msgstr "" + +#: src/dird/ua_cmds.c:105 +msgid "messages" +msgstr "" + +#: src/dird/ua_cmds.c:106 +msgid "mount " +msgstr "" + +#: src/dird/ua_cmds.c:107 +msgid "prune expired records from catalog" +msgstr "" + +#: src/dird/ua_cmds.c:108 +msgid "purge records from catalog" +msgstr "" + +#: src/dird/ua_cmds.c:109 +msgid "python control commands" +msgstr "" + +#: src/dird/ua_cmds.c:111 +msgid "query catalog" +msgstr "" + +#: src/dird/ua_cmds.c:112 +msgid "restore files" +msgstr "" + +#: src/dird/ua_cmds.c:113 +msgid "relabel a tape" +msgstr "" + +#: src/dird/ua_cmds.c:114 +msgid "release " +msgstr "" + +#: src/dird/ua_cmds.c:115 +msgid "reload conf file" +msgstr "" + +#: src/dird/ua_cmds.c:116 +msgid "run " +msgstr "" + +#: src/dird/ua_cmds.c:117 +msgid "status [storage | client]=" +msgstr "" + +#: src/dird/ua_cmds.c:118 +msgid "sets debug level" +msgstr "" + +#: src/dird/ua_cmds.c:119 +msgid "sets new client address -- if authorized" +msgstr "" + +#: src/dird/ua_cmds.c:120 +msgid "show (resource records) [jobs | pools | ... | all]" +msgstr "" + +#: src/dird/ua_cmds.c:121 +msgid "use SQL to query catalog" +msgstr "" + +#: src/dird/ua_cmds.c:123 +msgid "turn on/off trace to file" +msgstr "" + +#: src/dird/ua_cmds.c:124 +msgid "unmount " +msgstr "" + +#: src/dird/ua_cmds.c:125 +msgid "umount for old-time Unix guys" +msgstr "" + +#: src/dird/ua_cmds.c:126 +msgid "update Volume, Pool or slots" +msgstr "" + +#: src/dird/ua_cmds.c:127 +msgid "use catalog xxx" +msgstr "" + +#: src/dird/ua_cmds.c:128 +msgid "does variable expansion" +msgstr "" + +#: src/dird/ua_cmds.c:129 +msgid "print Director version" +msgstr "" + +#: src/dird/ua_cmds.c:130 +msgid "wait until no jobs are running" +msgstr "" + +#: src/dird/ua_cmds.c:168 +#, c-format +msgid "%s: is an illegal command.\n" +msgstr "" + +#: src/dird/ua_cmds.c:206 +msgid "" +"You probably don't want to be using this command since it\n" +"creates database records without labeling the Volumes.\n" +"You probably want to use the \"label\" command.\n" +"\n" +msgstr "" + +#: src/dird/ua_cmds.c:225 +#, c-format +msgid "Pool already has maximum volumes = %d\n" +msgstr "" + +#: src/dird/ua_cmds.c:227 +msgid "Enter new maximum (zero for unlimited): " +msgstr "" + +#: src/dird/ua_cmds.c:248 +#, c-format +msgid "Enter number of Volumes to create. 0=>fixed name. Max=%d: " +msgstr "" + +#: src/dird/ua_cmds.c:254 +#, c-format +msgid "The number must be between 0 and %d\n" +msgstr "" + +#: src/dird/ua_cmds.c:261 +msgid "Enter Volume name: " +msgstr "" + +#: src/dird/ua_cmds.c:265 +msgid "Enter base volume name: " +msgstr "" + +#: src/dird/ua_cmds.c:274 src/dird/ua_label.c:605 +msgid "Volume name too long.\n" +msgstr "" + +#: src/dird/ua_cmds.c:278 src/dird/ua_label.c:611 src/lib/edit.c:413 +msgid "Volume name must be at least one character long.\n" +msgstr "" + +#: src/dird/ua_cmds.c:287 +msgid "Enter the starting number: " +msgstr "" + +#: src/dird/ua_cmds.c:292 +msgid "Start number must be greater than zero.\n" +msgstr "" + +#: src/dird/ua_cmds.c:303 +msgid "Enter slot (0 for none): " +msgstr "" + +#: src/dird/ua_cmds.c:307 +msgid "InChanger? yes/no: " +msgstr "" + +#: src/dird/ua_cmds.c:334 +#, c-format +msgid "%d Volumes created in pool %s\n" +msgstr "" + +#: src/dird/ua_cmds.c:350 src/dird/ua_cmds.c:917 +msgid "Turn on or off? " +msgstr "" + +#: src/dird/ua_cmds.c:358 src/dird/ua_cmds.c:925 +msgid "off" +msgstr "" + +#: src/dird/ua_cmds.c:378 +msgid "jobid" +msgstr "" + +#: src/dird/ua_cmds.c:385 +#, c-format +msgid "JobId %s is not running. Use Job name to cancel inactive jobs.\n" +msgstr "" + +#: src/dird/ua_cmds.c:389 +msgid "job" +msgstr "" + +#: src/dird/ua_cmds.c:394 +#, c-format +msgid "Warning Job %s is not running. Continuing anyway ...\n" +msgstr "" + +#: src/dird/ua_cmds.c:416 src/filed/status.c:195 src/stored/status.c:343 +msgid "No Jobs running.\n" +msgstr "" + +#: src/dird/ua_cmds.c:419 +msgid "Select Job:\n" +msgstr "" + +#: src/dird/ua_cmds.c:425 +#, c-format +msgid "JobId=%s Job=%s" +msgstr "" + +#: src/dird/ua_cmds.c:430 +msgid "Choose Job to cancel" +msgstr "" + +#: src/dird/ua_cmds.c:434 +msgid "Confirm cancel (yes/no): " +msgstr "" + +#: src/dird/ua_cmds.c:442 +#, c-format +msgid "Job %s not found.\n" +msgstr "" + +#: src/dird/ua_cmds.c:547 +#, c-format +msgid "" +"Error: Pool %s already exists.\n" +"Use update to change it.\n" +msgstr "" + +#: src/dird/ua_cmds.c:558 +#, c-format +msgid "Pool %s created.\n" +msgstr "" + +#: src/dird/ua_cmds.c:571 +msgid "restart" +msgstr "" + +#: src/dird/ua_cmds.c:575 +msgid "Python interpreter restarted.\n" +msgstr "" + +#: src/dird/ua_cmds.c:577 src/dird/ua_cmds.c:1145 +msgid "Nothing done.\n" +msgstr "" + +#: src/dird/ua_cmds.c:593 src/dird/ua_cmds.c:639 +msgid "Illegal command from this console.\n" +msgstr "" + +#: src/dird/ua_cmds.c:600 src/dird/ua_run.c:353 +#, c-format +msgid "Client \"%s\" not found.\n" +msgstr "" + +#: src/dird/ua_cmds.c:609 +#, c-format +msgid "Client \"%s\" address set to %s\n" +msgstr "" + +#: src/dird/ua_cmds.c:634 +#, c-format +msgid "Job \"%s\" not found.\n" +msgstr "" + +#: src/dird/ua_cmds.c:643 +#, c-format +msgid "Job \"%s\" %sabled\n" +msgstr "" + +#: src/dird/ua_cmds.c:667 src/dird/ua_status.c:286 +#, c-format +msgid "Connecting to Storage daemon %s at %s:%d\n" +msgstr "" + +#: src/dird/ua_cmds.c:673 src/dird/ua_status.c:297 +msgid "Connected to storage daemon\n" +msgstr "" + +#: src/dird/ua_cmds.c:693 src/dird/ua_cmds.c:1032 src/dird/ua_status.c:324 +#, c-format +msgid "Connecting to Client %s at %s:%d\n" +msgstr "" + +#: src/dird/ua_cmds.c:696 src/dird/ua_cmds.c:1035 +msgid "Failed to connect to Client.\n" +msgstr "" + +#: src/dird/ua_cmds.c:812 +msgid "Enter new debug level: " +msgstr "" + +#: src/dird/ua_cmds.c:878 +msgid "Available daemons are: \n" +msgstr "" + +#: src/dird/ua_cmds.c:883 +msgid "Select daemon type to set debug level" +msgstr "" + +#: src/dird/ua_cmds.c:987 src/dird/ua_run.c:478 +#, c-format +msgid "Level %s not valid.\n" +msgstr "" + +#: src/dird/ua_cmds.c:1000 +msgid "No job specified.\n" +msgstr "" + +#: src/dird/ua_cmds.c:1040 +msgid "Error sending include list.\n" +msgstr "" + +#: src/dird/ua_cmds.c:1045 +msgid "Error sending exclude list.\n" +msgstr "" + +#: src/dird/ua_cmds.c:1131 +msgid "" +"In general it is not a good idea to delete either a\n" +"Pool or a Volume since they may contain data.\n" +"\n" +msgstr "" + +#: src/dird/ua_cmds.c:1134 +msgid "Choose catalog item to delete" +msgstr "" + +#: src/dird/ua_cmds.c:1202 +msgid "Enter JobId to delete: " +msgstr "" + +#: src/dird/ua_cmds.c:1245 +#, c-format +msgid "Job %s and associated records deleted from the catalog.\n" +msgstr "" + +#: src/dird/ua_cmds.c:1258 +#, c-format +msgid "" +"\n" +"This command will delete volume %s\n" +"and all Jobs saved on that volume from the Catalog\n" +msgstr "" + +#: src/dird/ua_cmds.c:1262 +msgid "Are you sure you want to delete this Volume? (yes/no): " +msgstr "" + +#: src/dird/ua_cmds.c:1283 +msgid "Are you sure you want to delete this Pool? (yes/no): " +msgstr "" + +#: src/dird/ua_cmds.c:1380 +#, c-format +msgid "Using Catalog name=%s DB=%s\n" +msgstr "" + +#: src/dird/ua_cmds.c:1421 src/dird/ua_tree.c:622 src/stored/btape.c:2587 +#, c-format +msgid "" +" Command Description\n" +" ======= ===========\n" +msgstr "" + +#: src/dird/ua_cmds.c:1423 +#, c-format +msgid " %-10s %s\n" +msgstr "" + +#: src/dird/ua_cmds.c:1425 +msgid "" +"\n" +"When at a prompt, entering a period cancels the command.\n" +"\n" +msgstr "" + +#: src/dird/ua_cmds.c:1441 +#, c-format +msgid "%s Version: %s (%s)\n" +msgstr "" + +#: src/dird/ua_cmds.c:1460 +msgid "Could not find a Catalog resource\n" +msgstr "" + +#: src/dird/ua_cmds.c:1463 +msgid "You must specify a \"use \" command before continuing.\n" +msgstr "" + +#: src/dird/ua_cmds.c:1467 +#, c-format +msgid "Using default Catalog name=%s DB=%s\n" +msgstr "" + +#: src/dird/ua_dotcmds.c:131 +msgid "The Director will segment fault.\n" +msgstr "" + +#: src/dird/ua_dotcmds.c:231 src/dird/ua_restore.c:740 +#: src/dird/ua_restore.c:778 src/dird/ua_restore.c:809 +#, c-format +msgid "Query failed: %s. ERR=%s\n" +msgstr "" + +#: src/dird/ua_input.c:82 +msgid "Enter slot" +msgstr "" + +#: src/dird/ua_input.c:86 src/dird/ua_input.c:92 +#, c-format +msgid "Expected a positive integer, got: %s\n" +msgstr "" + +#: src/dird/ua_input.c:120 src/dird/ua_run.c:862 src/dird/ua_select.c:54 +#: src/dird/ua_update.c:223 src/dird/ua_update.c:237 src/dird/ua_update.c:247 +#: src/dird/ua_update.c:261 src/dird/ua_update.c:551 +#: src/stored/parse_bsr.c:741 src/tools/dbcheck.c:1098 +msgid "yes" +msgstr "" + +#: src/dird/ua_input.c:124 src/dird/ua_select.c:57 src/dird/ua_update.c:225 +#: src/dird/ua_update.c:237 src/dird/ua_update.c:249 src/dird/ua_update.c:261 +#: src/dird/ua_update.c:551 src/stored/parse_bsr.c:741 +msgid "no" +msgstr "" + +#: src/dird/ua_input.c:127 +msgid "Invalid response. You must answer yes or no.\n" +msgstr "" + +#: src/dird/ua_label.c:89 +msgid "Negative numbers not permitted\n" +msgstr "" + +#: src/dird/ua_label.c:95 +msgid "Range end is not integer.\n" +msgstr "" + +#: src/dird/ua_label.c:100 +msgid "Range start is not an integer.\n" +msgstr "" + +#: src/dird/ua_label.c:106 +msgid "Range end not bigger than start.\n" +msgstr "" + +#: src/dird/ua_label.c:112 +msgid "Input value is not an integer.\n" +msgstr "" + +#: src/dird/ua_label.c:118 +msgid "Values must be be greater than zero.\n" +msgstr "" + +#: src/dird/ua_label.c:122 +msgid "Slot too large.\n" +msgstr "" + +#: src/dird/ua_label.c:176 src/dird/ua_label.c:473 +msgid "No slots in changer to scan.\n" +msgstr "" + +#: src/dird/ua_label.c:188 src/dird/ua_label.c:484 +msgid "No Volumes found to label, or no barcodes.\n" +msgstr "" + +#: src/dird/ua_label.c:198 +#, c-format +msgid "Slot %d greater than max %d ignored.\n" +msgstr "" + +#: src/dird/ua_label.c:227 +#, c-format +msgid "No VolName for Slot=%d InChanger set to zero.\n" +msgstr "" + +#: src/dird/ua_label.c:242 +#, c-format +msgid "Catalog record for Volume \"%s\" updated to reference slot %d.\n" +msgstr "" + +#: src/dird/ua_label.c:246 +#, c-format +msgid "Catalog record for Volume \"%s\" is up to date.\n" +msgstr "" + +#: src/dird/ua_label.c:252 +#, c-format +msgid "Volume \"%s\" not found in catalog. Slot=%d InChanger set to zero.\n" +msgstr "" + +#: src/dird/ua_label.c:344 +#, c-format +msgid "" +"Volume \"%s\" has VolStatus %s. It must be Purged or Recycled before " +"relabeling.\n" +msgstr "" + +#: src/dird/ua_label.c:360 +msgid "Enter new Volume name: " +msgstr "" + +#: src/dird/ua_label.c:373 +#, c-format +msgid "Media record for new Volume \"%s\" already exists.\n" +msgstr "" + +#: src/dird/ua_label.c:388 +msgid "Enter slot (0 or Enter for none): " +msgstr "" + +#: src/dird/ua_label.c:413 +#, c-format +msgid "Delete of Volume \"%s\" failed. ERR=%s" +msgstr "" + +#: src/dird/ua_label.c:416 +#, c-format +msgid "Old volume \"%s\" deleted from catalog.\n" +msgstr "" + +#: src/dird/ua_label.c:427 +#, c-format +msgid "Requesting to mount %s ...\n" +msgstr "" + +#: src/dird/ua_label.c:449 +msgid "Do not forget to mount the drive!!!\n" +msgstr "" + +#: src/dird/ua_label.c:489 +msgid "" +"The following Volumes will be labeled:\n" +"Slot Volume\n" +"==============\n" +msgstr "" + +#: src/dird/ua_label.c:498 src/stored/btape.c:606 +msgid "Do you want to continue? (y/n): " +msgstr "" + +#: src/dird/ua_label.c:519 +#, c-format +msgid "Media record for Slot %d Volume \"%s\" already exists.\n" +msgstr "" + +#: src/dird/ua_label.c:525 +#, c-format +msgid "Error setting InChanger: ERR=%s" +msgstr "" + +#: src/dird/ua_label.c:548 +#, c-format +msgid "Maximum pool Volumes=%d reached.\n" +msgstr "" + +#: src/dird/ua_label.c:555 +#, c-format +msgid "Catalog record for cleaning tape \"%s\" successfully created.\n" +msgstr "" + +#: src/dird/ua_label.c:562 +#, c-format +msgid "Catalog error on cleaning tape: %s" +msgstr "" + +#: src/dird/ua_label.c:598 +#, c-format +msgid "Illegal character \"%c\" in a volume name.\n" +msgstr "" + +#: src/dird/ua_label.c:643 +#, c-format +msgid "Sending relabel command from \"%s\" to \"%s\" ...\n" +msgstr "" + +#: src/dird/ua_label.c:650 +#, c-format +msgid "Sending label command for Volume \"%s\" Slot %d ...\n" +msgstr "" + +#: src/dird/ua_label.c:682 +#, c-format +msgid "Catalog record for Volume \"%s\", Slot %d successfully created.\n" +msgstr "" + +#: src/dird/ua_label.c:695 +#, c-format +msgid "Label command failed for Volume %s.\n" +msgstr "" + +#: src/dird/ua_label.c:705 +#, c-format +msgid "Connecting to Storage daemon %s at %s:%d ...\n" +msgstr "" + +#: src/dird/ua_label.c:733 +msgid "Could not open SD socket.\n" +msgstr "" + +#: src/dird/ua_label.c:739 +#, c-format +msgid "readlabel %s Slot=%d drive=%d\n" +msgstr "" + +#: src/dird/ua_label.c:781 +#, c-format +msgid "autochanger list %s \n" +msgstr "" + +#: src/dird/ua_label.c:805 src/dird/ua_label.c:815 +#, c-format +msgid "Invalid Slot number: %s\n" +msgstr "" + +#: src/dird/ua_label.c:824 +#, c-format +msgid "Invalid Volume name: %s\n" +msgstr "" + +#: src/dird/ua_label.c:893 +#, c-format +msgid "autochanger slots %s\n" +msgstr "" + +#: src/dird/ua_label.c:903 +#, c-format +msgid "Device \"%s\" has %d slots.\n" +msgstr "" + +#: src/dird/ua_label.c:925 +#, c-format +msgid "autochanger drives %s\n" +msgstr "" + +#: src/dird/ua_label.c:952 +#, c-format +msgid "Pool \"%s\" resource not found!\n" +msgstr "" + +#: src/dird/ua_output.c:64 src/dird/ua_output.c:88 +msgid "ON or OFF keyword missing.\n" +msgstr "" + +#: src/dird/ua_output.c:176 +msgid "Keywords for the show command are:\n" +msgstr "" + +#: src/dird/ua_output.c:182 +#, c-format +msgid "%s resource %s not found.\n" +msgstr "" + +#: src/dird/ua_output.c:185 +#, c-format +msgid "Resource %s not found\n" +msgstr "" + +#: src/dird/ua_output.c:251 +msgid "Hey! DB is NULL\n" +msgstr "" + +#: src/dird/ua_output.c:358 +#, c-format +msgid "Jobid %d used %d Volume(s): %s\n" +msgstr "" + +#: src/dird/ua_output.c:376 +msgid "No Pool specified.\n" +msgstr "" + +#: src/dird/ua_output.c:387 src/dird/ua_select.c:458 +#, c-format +msgid "Error obtaining pool ids. ERR=%s\n" +msgstr "" + +#: src/dird/ua_output.c:397 +#, c-format +msgid "Pool: %s\n" +msgstr "" + +#: src/dird/ua_output.c:413 src/dird/ua_status.c:452 +msgid "Ignoring illegal value for days.\n" +msgstr "" + +#: src/dird/ua_output.c:422 +#, c-format +msgid "Unknown list keyword: %s\n" +msgstr "" + +#: src/dird/ua_output.c:448 +#, c-format +msgid "%s is not a job name.\n" +msgstr "" + +#: src/dird/ua_output.c:469 +#, c-format +msgid "Could not find next Volume for Job %s (%s, %s).\n" +msgstr "" + +#: src/dird/ua_output.c:473 +#, c-format +msgid "The next Volume to be used by Job \"%s\" (%s, %s) will be %s\n" +msgstr "" + +#: src/dird/ua_output.c:483 +#, c-format +msgid "Could not find next Volume for Job %s.\n" +msgstr "" + +#: src/dird/ua_output.c:673 +msgid "You have no messages.\n" +msgstr "" + +#: src/dird/ua_prune.c:173 +msgid "Choose item to prune" +msgstr "" + +#: src/dird/ua_prune.c:254 +msgid "No Files found to prune.\n" +msgstr "" + +#: src/dird/ua_prune.c:286 +#, c-format +msgid "Pruned Files from %s Jobs for client %s from catalog.\n" +msgstr "" + +#: src/dird/ua_prune.c:392 +msgid "No Jobs found to prune.\n" +msgstr "" + +#: src/dird/ua_prune.c:453 +#, c-format +msgid "Pruned %d %s for client %s from catalog.\n" +msgstr "" + +#: src/dird/ua_prune.c:454 +msgid "Jobs" +msgstr "" + +#: src/dird/ua_prune.c:501 +#, c-format +msgid "There are no Jobs associated with Volume \"%s\". Prune not needed.\n" +msgstr "" + +#: src/dird/ua_prune.c:508 src/dird/ua_purge.c:482 +#, c-format +msgid "There are no Jobs associated with Volume \"%s\". Marking it purged.\n" +msgstr "" + +#: src/dird/ua_prune.c:566 +#, c-format +msgid "Pruned %d %s on Volume \"%s\" from catalog.\n" +msgstr "" + +#: src/dird/ua_purge.c:177 +msgid "" +"\n" +"This command is can be DANGEROUS!!!\n" +"\n" +"It purges (deletes) all Files from a Job,\n" +"JobId, Client or Volume; or it purges (deletes)\n" +"all Jobs from a Client or Volume without regard\n" +"for retention periods. Normally you should use the\n" +"PRUNE command, which respects retention periods.\n" +msgstr "" + +#: src/dird/ua_purge.c:237 +msgid "Choose item to purge" +msgstr "" + +#: src/dird/ua_purge.c:282 +#, c-format +msgid "Begin purging files for Client \"%s\"\n" +msgstr "" + +#: src/dird/ua_purge.c:294 +#, c-format +msgid "No Files found for client %s to purge from %s catalog.\n" +msgstr "" + +#: src/dird/ua_purge.c:325 +#, c-format +msgid "%d Files for client \"%s\" purged from %s catalog.\n" +msgstr "" + +#: src/dird/ua_purge.c:362 +#, c-format +msgid "Begin purging jobs from Client \"%s\"\n" +msgstr "" + +#: src/dird/ua_purge.c:373 +#, c-format +msgid "No Jobs found for client %s to purge from %s catalog.\n" +msgstr "" + +#: src/dird/ua_purge.c:413 +#, c-format +msgid "%d Jobs for client %s purged from %s catalog.\n" +msgstr "" + +#: src/dird/ua_purge.c:464 +#, c-format +msgid "" +"Volume \"%s\" has VolStatus \"%s\" and cannot be purged.\n" +"The VolStatus must be: Append, Full, Used, or Error to be purged.\n" +msgstr "" + +#: src/dird/ua_purge.c:535 +#, c-format +msgid "%d File%s on Volume \"%s\" purged from catalog.\n" +msgstr "" + +#: src/dird/ua_purge.c:549 +#, c-format +msgid "" +"There are no more Jobs associated with Volume \"%s\". Marking it purged.\n" +msgstr "" + +#: src/dird/ua_purge.c:581 +#, c-format +msgid "Cannot purge Volume with VolStatus=%s\n" +msgstr "" + +#: src/dird/ua_query.c:59 src/findlib/create_file.c:282 +#: src/findlib/create_file.c:339 +#, c-format +msgid "Could not open %s: ERR=%s\n" +msgstr "" + +#: src/dird/ua_query.c:64 +msgid "Available queries:\n" +msgstr "" + +#: src/dird/ua_query.c:71 +msgid "Choose a query" +msgstr "" + +#: src/dird/ua_query.c:85 +msgid "Could not find query.\n" +msgstr "" + +#: src/dird/ua_query.c:103 +msgid "Too many prompts in query, max is 9.\n" +msgstr "" + +#: src/dird/ua_query.c:206 +#, c-format +msgid "Warning prompt %d missing.\n" +msgstr "" + +#: src/dird/ua_query.c:252 +msgid "" +"Entering SQL query mode.\n" +"Terminate each query with a semicolon.\n" +"Terminate query mode with a blank line.\n" +msgstr "" + +#: src/dird/ua_query.c:255 src/dird/ua_query.c:272 +msgid "Enter SQL query: " +msgstr "" + +#: src/dird/ua_query.c:274 +msgid "Add to SQL query: " +msgstr "" + +#: src/dird/ua_query.c:278 +msgid "End query mode.\n" +msgstr "" + +#: src/dird/ua_restore.c:115 +msgid "" +"No Restore Job Resource found in bacula-dir.conf.\n" +"You must create at least one before running this command.\n" +msgstr "" + +#: src/dird/ua_restore.c:131 +msgid "Restore not done.\n" +msgstr "" + +#: src/dird/ua_restore.c:142 +msgid "Unable to construct a valid BSR. Cannot continue.\n" +msgstr "" + +#: src/dird/ua_restore.c:146 src/dird/ua_restore.c:160 +msgid "No files selected to be restored.\n" +msgstr "" + +#: src/dird/ua_restore.c:154 +msgid "" +"\n" +"1 file selected to be restored.\n" +"\n" +msgstr "" + +#: src/dird/ua_restore.c:157 +#, c-format +msgid "" +"\n" +"%u files selected to be restored.\n" +"\n" +msgstr "" + +#: src/dird/ua_restore.c:175 +msgid "No Restore Job resource found!\n" +msgstr "" + +#: src/dird/ua_restore.c:237 +#, c-format +msgid "Missing value for keyword: %s\n" +msgstr "" + +#: src/dird/ua_restore.c:286 +msgid "List last 20 Jobs run" +msgstr "" + +#: src/dird/ua_restore.c:287 +msgid "List Jobs where a given File is saved" +msgstr "" + +#: src/dird/ua_restore.c:288 +msgid "Enter list of comma separated JobIds to select" +msgstr "" + +#: src/dird/ua_restore.c:289 +msgid "Enter SQL list command" +msgstr "" + +#: src/dird/ua_restore.c:290 +msgid "Select the most recent backup for a client" +msgstr "" + +#: src/dird/ua_restore.c:291 +msgid "Select backup for a client before a specified time" +msgstr "" + +#: src/dird/ua_restore.c:292 +msgid "Enter a list of files to restore" +msgstr "" + +#: src/dird/ua_restore.c:293 +msgid "Enter a list of files to restore before a specified time" +msgstr "" + +#: src/dird/ua_restore.c:294 +msgid "Find the JobIds of the most recent backup for a client" +msgstr "" + +#: src/dird/ua_restore.c:295 +msgid "Find the JobIds for a backup for a client before a specified time" +msgstr "" + +#: src/dird/ua_restore.c:296 +msgid "Enter a list of directories to restore for found JobIds" +msgstr "" + +#: src/dird/ua_restore.c:297 src/dird/ua_status.c:713 src/filed/status.c:251 +#: src/stored/status.c:412 src/wx-console/wxbconfigpanel.cpp:191 +msgid "Cancel" +msgstr "" + +#: src/dird/ua_restore.c:333 +#, c-format +msgid "Unknown keyword: %s\n" +msgstr "" + +#: src/dird/ua_restore.c:357 +#, c-format +msgid "Improper date format: %s\n" +msgstr "" + +#: src/dird/ua_restore.c:397 src/dird/ua_select.c:590 +#, c-format +msgid "Error: Pool resource \"%s\" does not exist.\n" +msgstr "" + +#: src/dird/ua_restore.c:402 +#, c-format +msgid "Error: Pool resource \"%s\" access not allowed.\n" +msgstr "" + +#: src/dird/ua_restore.c:421 +msgid "" +"\n" +"First you select one or more JobIds that contain files\n" +"to be restored. You will be presented several methods\n" +"of specifying the JobIds. Then you will be allowed to\n" +"select which files from those JobIds are to be restored.\n" +"\n" +msgstr "" + +#: src/dird/ua_restore.c:433 +msgid "To select the JobIds, you have the following choices:\n" +msgstr "" + +#: src/dird/ua_restore.c:438 +msgid "Select item: " +msgstr "" + +#: src/dird/ua_restore.c:452 +msgid "Enter Filename (no path):" +msgstr "" + +#: src/dird/ua_restore.c:467 src/dird/ua_restore.c:567 +msgid "Enter JobId(s), comma separated, to restore: " +msgstr "" + +#: src/dird/ua_restore.c:473 +msgid "Enter SQL list command: " +msgstr "" + +#: src/dird/ua_restore.c:501 src/dird/ua_restore.c:526 +msgid "" +"Enter file names with paths, or < to enter a filename\n" +"containg a list of file names with paths, and terminate\n" +"them with a blank line.\n" +msgstr "" + +#: src/dird/ua_restore.c:505 src/dird/ua_restore.c:530 +msgid "Enter full filename: " +msgstr "" + +#: src/dird/ua_restore.c:565 +#, c-format +msgid "You have already seleted the following JobIds: %s\n" +msgstr "" + +#: src/dird/ua_restore.c:580 +msgid "" +"Enter full directory names or start the name\n" +"with a < to indicate it is a filename containg a list\n" +"of directories and terminate them with a blank line.\n" +msgstr "" + +#: src/dird/ua_restore.c:584 +msgid "Enter directory name: " +msgstr "" + +#: src/dird/ua_restore.c:609 +msgid "No Jobs selected.\n" +msgstr "" + +#: src/dird/ua_restore.c:613 +#, c-format +msgid "You have selected the following JobIds: %s\n" +msgstr "" + +#: src/dird/ua_restore.c:616 +#, c-format +msgid "You have selected the following JobId: %s\n" +msgstr "" + +#: src/dird/ua_restore.c:624 +msgid "Invalid JobId in list.\n" +msgstr "" + +#: src/dird/ua_restore.c:637 +#, c-format +msgid "Unable to get Job record for JobId=%s: ERR=%s\n" +msgstr "" + +#: src/dird/ua_restore.c:642 +#, c-format +msgid "No authorization. Job \"%s\" not selected.\n" +msgstr "" + +#: src/dird/ua_restore.c:656 +msgid "" +"The restored files will the most current backup\n" +"BEFORE the date you specify below.\n" +"\n" +msgstr "" + +#: src/dird/ua_restore.c:659 +msgid "Enter date as YYYY-MM-DD HH:MM:SS :" +msgstr "" + +#: src/dird/ua_restore.c:665 +msgid "Improper date format.\n" +msgstr "" + +#: src/dird/ua_restore.c:686 +#, c-format +msgid "Cannot open file %s: ERR=%s\n" +msgstr "" + +#: src/dird/ua_restore.c:694 src/dird/ua_restore.c:698 +#, c-format +msgid "Error occurred on line %d of %s\n" +msgstr "" + +#: src/dird/ua_restore.c:744 src/dird/ua_restore.c:782 +#, c-format +msgid "No database record found for: %s\n" +msgstr "" + +#: src/dird/ua_restore.c:769 +msgid "No JobId specified cannot continue.\n" +msgstr "" + +#: src/dird/ua_restore.c:813 +#, c-format +msgid "No table found: %s\n" +msgstr "" + +#: src/dird/ua_restore.c:918 +#, c-format +msgid "" +"\n" +"Building directory tree for JobId %s ... " +msgstr "" + +#: src/dird/ua_restore.c:937 +msgid "" +"\n" +"There were no files inserted into the tree, so file selection\n" +"is not possible.Most likely your retention policy pruned the files\n" +msgstr "" + +#: src/dird/ua_restore.c:939 +msgid "" +"\n" +"Do you want to restore all the files? (yes|no): " +msgstr "" + +#: src/dird/ua_restore.c:955 +#, c-format +msgid "" +"\n" +"1 Job, %s files inserted into the tree and marked for extraction.\n" +msgstr "" + +#: src/dird/ua_restore.c:959 +#, c-format +msgid "" +"\n" +"1 Job, %s files inserted into the tree.\n" +msgstr "" + +#: src/dird/ua_restore.c:965 +#, c-format +msgid "" +"\n" +"%d Jobs, %s files inserted into the tree and marked for extraction.\n" +msgstr "" + +#: src/dird/ua_restore.c:969 +#, c-format +msgid "" +"\n" +"%d Jobs, %s files inserted into the tree.\n" +msgstr "" + +#: src/dird/ua_restore.c:1046 +#, c-format +msgid "Error getting FileSet \"%s\": ERR=%s\n" +msgstr "" + +#: src/dird/ua_restore.c:1054 src/dird/ua_select.c:167 +msgid "The defined FileSet resources are:\n" +msgstr "" + +#: src/dird/ua_restore.c:1058 src/dird/ua_run.c:644 src/dird/ua_select.c:175 +msgid "FileSet" +msgstr "" + +#: src/dird/ua_restore.c:1058 src/dird/ua_select.c:175 +msgid "Select FileSet resource" +msgstr "" + +#: src/dird/ua_restore.c:1065 +#, c-format +msgid "Error getting FileSet record: %s\n" +msgstr "" + +#: src/dird/ua_restore.c:1066 +msgid "" +"This probably means you modified the FileSet.\n" +"Continuing anyway.\n" +msgstr "" + +#: src/dird/ua_restore.c:1081 +#, c-format +msgid "Pool \"%s\" not found, using any pool.\n" +msgstr "" + +#: src/dird/ua_restore.c:1107 src/dird/ua_restore.c:1123 +#, c-format +msgid "No Full backup before %s found.\n" +msgstr "" + +#: src/dird/ua_restore.c:1146 +msgid "No jobs found.\n" +msgstr "" + +#: src/dird/ua_restore.c:1312 +msgid "" +"Warning, the JobIds that you selected refer to more than one MediaType.\n" +"Restore is not possible. The MediaTypes used are:\n" +msgstr "" + +#: src/dird/ua_restore.c:1320 +msgid "No MediaType found for your JobIds.\n" +msgstr "" + +#: src/dird/ua_restore.c:1352 +#, c-format +msgid "Warning default storage overridden by %s on command line.\n" +msgstr "" + +#: src/dird/ua_restore.c:1363 +#, c-format +msgid "" +"\n" +"Warning. Unable to find Storage resource for\n" +"MediaType \"%s\", needed by the Jobs you selected.\n" +"You will be allowed to select a Storage device later.\n" +msgstr "" + +#: src/dird/ua_run.c:112 +#, c-format +msgid "Value missing for keyword %s\n" +msgstr "" + +#: src/dird/ua_run.c:119 +msgid "Job name specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:127 +msgid "JobId specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:136 +msgid "Client specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:144 +msgid "FileSet specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:152 +msgid "Level specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:161 +msgid "Storage specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:169 +msgid "Pool specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:177 +msgid "Where specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:185 +msgid "Bootstrap specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:193 +msgid "Replace specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:201 +msgid "When specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:209 +msgid "Priority specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:214 +msgid "Priority must be positive nonzero setting it to 10.\n" +msgstr "" + +#: src/dird/ua_run.c:224 +msgid "Verify Job specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:268 +#, c-format +msgid "Invalid keyword: %s\n" +msgstr "" + +#: src/dird/ua_run.c:280 +#, c-format +msgid "Catalog \"%s\" not found\n" +msgstr "" + +#: src/dird/ua_run.c:291 +#, c-format +msgid "Job \"%s\" not found\n" +msgstr "" + +#: src/dird/ua_run.c:298 +msgid "A job name must be specified.\n" +msgstr "" + +#: src/dird/ua_run.c:304 +#, c-format +msgid "No authorization. Job \"%s\".\n" +msgstr "" + +#: src/dird/ua_run.c:313 +#, c-format +msgid "Storage \"%s\" not found.\n" +msgstr "" + +#: src/dird/ua_run.c:323 +#, c-format +msgid "No authorization. Storage \"%s\".\n" +msgstr "" + +#: src/dird/ua_run.c:333 +#, c-format +msgid "Pool \"%s\" not found.\n" +msgstr "" + +#: src/dird/ua_run.c:343 +#, c-format +msgid "No authorization. Pool \"%s\".\n" +msgstr "" + +#: src/dird/ua_run.c:363 +#, c-format +msgid "No authorization. Client \"%s\".\n" +msgstr "" + +#: src/dird/ua_run.c:372 +#, c-format +msgid "FileSet \"%s\" not found.\n" +msgstr "" + +#: src/dird/ua_run.c:381 +#, c-format +msgid "No authorization. FileSet \"%s\".\n" +msgstr "" + +#: src/dird/ua_run.c:389 +#, c-format +msgid "Verify Job \"%s\" not found.\n" +msgstr "" + +#: src/dird/ua_run.c:422 src/dird/ua_run.c:764 +msgid "Invalid time, using current time.\n" +msgstr "" + +#: src/dird/ua_run.c:442 +#, c-format +msgid "Invalid replace option: %s\n" +msgstr "" + +#: src/dird/ua_run.c:500 +#, c-format +msgid "" +"Run %s job\n" +"JobName: %s\n" +"FileSet: %s\n" +"Client: %s\n" +"Storage: %s\n" +"When: %s\n" +"Priority: %d\n" +msgstr "" + +#: src/dird/ua_run.c:507 src/lib/util.c:295 +msgid "Admin" +msgstr "" + +#: src/dird/ua_run.c:519 +#, c-format +msgid "" +"Run %s job\n" +"JobName: %s\n" +"FileSet: %s\n" +"Level: %s\n" +"Client: %s\n" +"Storage: %s\n" +"Pool: %s\n" +"When: %s\n" +"Priority: %d\n" +msgstr "" + +#: src/dird/ua_run.c:528 src/lib/util.c:286 +msgid "Backup" +msgstr "" + +#: src/dird/ua_run.c:544 +#, c-format +msgid "" +"Run %s job\n" +"JobName: %s\n" +"FileSet: %s\n" +"Level: %s\n" +"Client: %s\n" +"Storage: %s\n" +"Pool: %s\n" +"Verify Job: %s\n" +"When: %s\n" +"Priority: %d\n" +msgstr "" + +#: src/dird/ua_run.c:554 src/lib/util.c:289 +msgid "Verify" +msgstr "" + +#: src/dird/ua_run.c:571 +msgid "Please enter a JobId for restore: " +msgstr "" + +#: src/dird/ua_run.c:580 +#, c-format +msgid "" +"Run Restore job\n" +"JobName: %s\n" +"Bootstrap: %s\n" +"Where: %s\n" +"Replace: %s\n" +"FileSet: %s\n" +"Client: %s\n" +"Storage: %s\n" +"When: %s\n" +"Catalog: %s\n" +"Priority: %d\n" +msgstr "" + +#: src/dird/ua_run.c:602 +#, c-format +msgid "" +"Run Restore job\n" +"JobName: %s\n" +"Bootstrap: %s\n" +"Where: %s\n" +"Replace: %s\n" +"Client: %s\n" +"Storage: %s\n" +"JobId: %s\n" +"When: %s\n" +"Catalog: %s\n" +"Priority: %d\n" +msgstr "" + +#: src/dird/ua_run.c:626 +#, c-format +msgid "Unknown Job Type=%d\n" +msgstr "" + +#: src/dird/ua_run.c:631 +msgid "OK to run? (yes/mod/no): " +msgstr "" + +#: src/dird/ua_run.c:637 src/dird/ua_select.c:44 +msgid "mod" +msgstr "" + +#: src/dird/ua_run.c:640 src/dird/ua_update.c:464 +msgid "Parameters to modify:\n" +msgstr "" + +#: src/dird/ua_run.c:641 +msgid "Level" +msgstr "" + +#: src/dird/ua_run.c:642 src/dird/ua_select.c:152 +#: src/wx-console/wxbrestorepanel.cpp:321 +#: src/wx-console/wxbrestorepanel.cpp:337 +#: src/wx-console/wxbrestorepanel.cpp:458 +#: src/wx-console/wxbrestorepanel.cpp:459 +#: src/wx-console/wxbrestorepanel.cpp:469 +#: src/wx-console/wxbrestorepanel.cpp:470 +#: src/wx-console/wxbrestorepanel.cpp:1133 +#: src/wx-console/wxbrestorepanel.cpp:1794 +#: src/wx-console/wxbrestorepanel.cpp:1865 +msgid "Storage" +msgstr "" + +#: src/dird/ua_run.c:645 src/dird/ua_select.c:282 src/dird/ua_select.c:391 +#: src/wx-console/wxbrestorepanel.cpp:318 +#: src/wx-console/wxbrestorepanel.cpp:336 +#: src/wx-console/wxbrestorepanel.cpp:410 +#: src/wx-console/wxbrestorepanel.cpp:411 +#: src/wx-console/wxbrestorepanel.cpp:421 +#: src/wx-console/wxbrestorepanel.cpp:422 +#: src/wx-console/wxbrestorepanel.cpp:669 +#: src/wx-console/wxbrestorepanel.cpp:1103 +#: src/wx-console/wxbrestorepanel.cpp:1190 +#: src/wx-console/wxbrestorepanel.cpp:1787 +#: src/wx-console/wxbrestorepanel.cpp:1789 +#: src/wx-console/wxbrestorepanel.cpp:1863 +#: src/wx-console/wxbrestorepanel.cpp:1918 +msgid "Client" +msgstr "" + +#: src/dird/ua_run.c:646 src/wx-console/wxbrestorepanel.cpp:338 +#: src/wx-console/wxbrestorepanel.cpp:823 +#: src/wx-console/wxbrestorepanel.cpp:1867 +msgid "When" +msgstr "" + +#: src/dird/ua_run.c:647 src/wx-console/wxbrestorepanel.cpp:339 +#: src/wx-console/wxbrestorepanel.cpp:1096 +#: src/wx-console/wxbrestorepanel.cpp:1869 +msgid "Priority" +msgstr "" + +#: src/dird/ua_run.c:650 src/dird/ua_select.c:476 src/dird/ua_select.c:566 +#: src/dird/ua_update.c:400 src/dird/ua_update.c:475 +#: src/wx-console/wxbrestorepanel.cpp:320 +#: src/wx-console/wxbrestorepanel.cpp:506 +#: src/wx-console/wxbrestorepanel.cpp:516 +#: src/wx-console/wxbrestorepanel.cpp:1783 +msgid "Pool" +msgstr "" + +#: src/dird/ua_run.c:652 +msgid "Verify Job" +msgstr "" + +#: src/dird/ua_run.c:655 src/wx-console/wxbrestorepanel.cpp:331 +#: src/wx-console/wxbrestorepanel.cpp:1848 +msgid "Bootstrap" +msgstr "" + +#: src/dird/ua_run.c:656 src/wx-console/wxbrestorepanel.cpp:332 +#: src/wx-console/wxbrestorepanel.cpp:1072 +#: src/wx-console/wxbrestorepanel.cpp:1850 +msgid "Where" +msgstr "" + +#: src/dird/ua_run.c:657 src/wx-console/wxbrestorepanel.cpp:334 +#: src/wx-console/wxbrestorepanel.cpp:1080 +#: src/wx-console/wxbrestorepanel.cpp:1854 +#: src/wx-console/wxbrestorepanel.cpp:1855 +#: src/wx-console/wxbrestorepanel.cpp:1856 +#: src/wx-console/wxbrestorepanel.cpp:1857 +#: src/wx-console/wxbrestorepanel.cpp:1858 +msgid "Replace" +msgstr "" + +#: src/dird/ua_run.c:658 +msgid "JobId" +msgstr "" + +#: src/dird/ua_run.c:660 src/dird/ua_update.c:479 +msgid "Select parameter to modify" +msgstr "" + +#: src/dird/ua_run.c:664 src/dird/ua_run.c:691 +msgid "Levels:\n" +msgstr "" + +#: src/dird/ua_run.c:665 src/filed/status.c:368 src/lib/util.c:319 +#: src/stored/status.c:451 +msgid "Base" +msgstr "" + +#: src/dird/ua_run.c:666 src/filed/status.c:370 src/lib/util.c:321 +#: src/stored/status.c:453 +msgid "Full" +msgstr "" + +#: src/dird/ua_run.c:667 src/filed/status.c:373 src/lib/util.c:324 +#: src/stored/status.c:456 +msgid "Incremental" +msgstr "" + +#: src/dird/ua_run.c:668 src/filed/status.c:376 src/lib/util.c:327 +#: src/stored/status.c:459 +msgid "Differential" +msgstr "" + +#: src/dird/ua_run.c:669 src/filed/status.c:379 src/lib/util.c:330 +#: src/stored/status.c:462 +msgid "Since" +msgstr "" + +#: src/dird/ua_run.c:670 src/dird/ua_run.c:697 +msgid "Select level" +msgstr "" + +#: src/dird/ua_run.c:692 +msgid "Initialize Catalog" +msgstr "" + +#: src/dird/ua_run.c:693 src/filed/status.c:382 src/lib/util.c:333 +#: src/stored/status.c:465 +msgid "Verify Catalog" +msgstr "" + +#: src/dird/ua_run.c:694 src/lib/util.c:339 +msgid "Verify Volume to Catalog" +msgstr "" + +#: src/dird/ua_run.c:695 src/lib/util.c:342 +msgid "Verify Disk to Catalog" +msgstr "" + +#: src/dird/ua_run.c:696 +msgid "Verify Volume Data (not yet implemented)" +msgstr "" + +#: src/dird/ua_run.c:718 +msgid "Level not appropriate for this Job. Cannot be changed.\n" +msgstr "" + +#: src/dird/ua_run.c:756 +msgid "" +"Please enter desired start time as YYYY-MM-DD HH:MM:SS (return for now): " +msgstr "" + +#: src/dird/ua_run.c:771 +msgid "Enter new Priority: " +msgstr "" + +#: src/dird/ua_run.c:775 +msgid "Priority must be a positive integer.\n" +msgstr "" + +#: src/dird/ua_run.c:793 +msgid "Please enter the Bootstrap file name: " +msgstr "" + +#: src/dird/ua_run.c:804 +#, c-format +msgid "Warning cannot open %s: ERR=%s\n" +msgstr "" + +#: src/dird/ua_run.c:823 +msgid "Please enter path prefix for restore (/ for none): " +msgstr "" + +#: src/dird/ua_run.c:837 +msgid "Replace:\n" +msgstr "" + +#: src/dird/ua_run.c:841 +msgid "Select replace option" +msgstr "" + +#: src/dird/ua_run.c:851 +msgid "" +"You must set the bootstrap file to NULL to be able to specify a JobId.\n" +msgstr "" + +#: src/dird/ua_run.c:869 +msgid "Job failed.\n" +msgstr "" + +#: src/dird/ua_run.c:872 +#, c-format +msgid "Job started. JobId=%s\n" +msgstr "" + +#: src/dird/ua_run.c:878 +msgid "Job not run.\n" +msgstr "" + +#: src/dird/ua_select.c:39 +#, c-format +msgid "The current %s retention period is: %s\n" +msgstr "" + +#: src/dird/ua_select.c:41 +msgid "Continue? (yes/mod/no): " +msgstr "" + +#: src/dird/ua_select.c:45 +msgid "Enter new retention period: " +msgstr "" + +#: src/dird/ua_select.c:49 +msgid "Invalid period.\n" +msgstr "" + +#: src/dird/ua_select.c:128 +msgid "You have the following choices:\n" +msgstr "" + +#: src/dird/ua_select.c:144 +msgid "The defined Storage resources are:\n" +msgstr "" + +#: src/dird/ua_select.c:152 +msgid "Select Storage resource" +msgstr "" + +#: src/dird/ua_select.c:193 +msgid "catalog" +msgstr "" + +#: src/dird/ua_select.c:201 +msgid "The defined Catalog resources are:\n" +msgstr "" + +#: src/dird/ua_select.c:209 +msgid "Catalog" +msgstr "" + +#: src/dird/ua_select.c:209 +msgid "Select Catalog resource" +msgstr "" + +#: src/dird/ua_select.c:226 +msgid "The defined Job resources are:\n" +msgstr "" + +#: src/dird/ua_select.c:234 +msgid "Select Job resource" +msgstr "" + +#: src/dird/ua_select.c:249 +msgid "The defined Restore Job resources are:\n" +msgstr "" + +#: src/dird/ua_select.c:257 +msgid "Select Restore Job" +msgstr "" + +#: src/dird/ua_select.c:274 +msgid "The defined Client resources are:\n" +msgstr "" + +#: src/dird/ua_select.c:282 +msgid "Select Client (File daemon) resource" +msgstr "" + +#: src/dird/ua_select.c:309 +#, c-format +msgid "Error: Client resource %s does not exist.\n" +msgstr "" + +#: src/dird/ua_select.c:334 +#, c-format +msgid "Could not find Client %s: ERR=%s" +msgstr "" + +#: src/dird/ua_select.c:337 src/lib/bnet_server.c:284 +#: src/lib/bnet_server.c:378 +msgid "client" +msgstr "" + +#: src/dird/ua_select.c:338 +msgid "fd" +msgstr "" + +#: src/dird/ua_select.c:344 src/dird/ua_select.c:398 +#, c-format +msgid "Could not find Client \"%s\": ERR=%s" +msgstr "" + +#: src/dird/ua_select.c:373 +#, c-format +msgid "Error obtaining client ids. ERR=%s\n" +msgstr "" + +#: src/dird/ua_select.c:377 +msgid "No clients defined. You must run a job before using this command.\n" +msgstr "" + +#: src/dird/ua_select.c:381 +msgid "Defined Clients:\n" +msgstr "" + +#: src/dird/ua_select.c:391 +msgid "Select the Client" +msgstr "" + +#: src/dird/ua_select.c:424 src/dird/ua_select.c:447 src/dird/ua_select.c:483 +#, c-format +msgid "Could not find Pool \"%s\": ERR=%s" +msgstr "" + +#: src/dird/ua_select.c:462 +msgid "No pools defined. Use the \"create\" command to create one.\n" +msgstr "" + +#: src/dird/ua_select.c:466 +msgid "Defined Pools:\n" +msgstr "" + +#: src/dird/ua_select.c:476 +msgid "Select the Pool" +msgstr "" + +#: src/dird/ua_select.c:506 +#, c-format +msgid "No access to Pool \"%s\"\n" +msgstr "" + +#: src/dird/ua_select.c:532 +msgid "Enter MediaId or Volume name: " +msgstr "" + +#: src/dird/ua_select.c:558 +msgid "The defined Pool resources are:\n" +msgstr "" + +#: src/dird/ua_select.c:566 +msgid "Select Pool resource" +msgstr "" + +#: src/dird/ua_select.c:601 +msgid "Enter the JobId to select: " +msgstr "" + +#: src/dird/ua_select.c:638 +#, c-format +msgid "Could not find Job \"%s\": ERR=%s" +msgstr "" + +#: src/dird/ua_select.c:705 +#, c-format +msgid "Automatically selected %s: %s\n" +msgstr "" + +#: src/dird/ua_select.c:710 +#, c-format +msgid "Cannot select %s in batch mode.\n" +msgstr "" + +#: src/dird/ua_select.c:722 +msgid "Selection is empty!\n" +msgstr "" + +#: src/dird/ua_select.c:728 +msgid "Item 1 selected automatically.\n" +msgstr "" + +#: src/dird/ua_select.c:739 +msgid "Selection aborted, nothing done.\n" +msgstr "" + +#: src/dird/ua_select.c:744 +#, c-format +msgid "Please enter a number between 1 and %d\n" +msgstr "" + +#: src/dird/ua_select.c:793 +msgid "Storage name given twice.\n" +msgstr "" + +#: src/dird/ua_select.c:810 +#, c-format +msgid "Expecting jobid=nn command, got: %s\n" +msgstr "" + +#: src/dird/ua_select.c:814 +#, c-format +msgid "JobId %s is not running.\n" +msgstr "" + +#: src/dird/ua_select.c:823 +#, c-format +msgid "Expecting job=xxx, got: %s.\n" +msgstr "" + +#: src/dird/ua_select.c:827 +#, c-format +msgid "Job \"%s\" is not running.\n" +msgstr "" + +#: src/dird/ua_select.c:843 +#, c-format +msgid "Storage resource \"%s\": not found\n" +msgstr "" + +#: src/dird/ua_select.c:875 +msgid "Enter autochanger drive[0]: " +msgstr "" + +#: src/dird/ua_select.c:905 +msgid "Media Types defined in conf file:\n" +msgstr "" + +#: src/dird/ua_select.c:911 +msgid "Media Type" +msgstr "" + +#: src/dird/ua_select.c:911 +msgid "Select the Media Type" +msgstr "" + +#: src/dird/ua_server.c:61 +#, c-format +msgid "Cannot create UA thread: %s\n" +msgstr "" + +#: src/dird/ua_server.c:142 +msgid "You have messages.\n" +msgstr "" + +#: src/dird/ua_status.c:126 +msgid "Status available for:\n" +msgstr "" + +#: src/dird/ua_status.c:132 +msgid "Select daemon type for status" +msgstr "" + +#: src/dird/ua_status.c:245 +#, c-format +msgid "%s Version: %s (%s) %s %s %s\n" +msgstr "" + +#: src/dird/ua_status.c:249 src/stored/status.c:71 +#, c-format +msgid "Daemon started %s, 1 Job run since started.\n" +msgstr "" + +#: src/dird/ua_status.c:252 src/stored/status.c:74 +#, c-format +msgid "Daemon started %s, %d Jobs run since started.\n" +msgstr "" + +#: src/dird/ua_status.c:257 src/filed/status.c:121 src/stored/status.c:78 +#, c-format +msgid " Heap: bytes=%s max_bytes=%s bufs=%s max_bufs=%s\n" +msgstr "" + +#: src/dird/ua_status.c:277 src/dird/ua_status.c:493 src/dird/ua_status.c:655 +#: src/filed/status.c:198 src/filed/status.c:277 src/stored/status.c:345 +#: src/stored/status.c:361 src/stored/status.c:438 +msgid "====\n" +msgstr "" + +#: src/dird/ua_status.c:289 +#, c-format +msgid "" +"\n" +"Failed to connect to Storage daemon %s.\n" +"====\n" +msgstr "" + +#: src/dird/ua_status.c:327 +#, c-format +msgid "" +"Failed to connect to Client %s.\n" +"====\n" +msgstr "" + +#: src/dird/ua_status.c:335 +msgid "Connected to file daemon\n" +msgstr "" + +#: src/dird/ua_status.c:350 +msgid "" +"\n" +"Scheduled Jobs:\n" +msgstr "" + +#: src/dird/ua_status.c:351 +msgid "" +"Level Type Pri Scheduled Name Volume\n" +msgstr "" + +#: src/dird/ua_status.c:352 +msgid "===================================================================================\n" +msgstr "" + +#: src/dird/ua_status.c:399 +#, c-format +msgid "%-14s %-8s %3d %-18s %-18s %s\n" +msgstr "" + +#: src/dird/ua_status.c:491 +msgid "No Scheduled Jobs.\n" +msgstr "" + +#: src/dird/ua_status.c:508 src/stored/status.c:277 +msgid "" +"\n" +"Running Jobs:\n" +msgstr "" + +#: src/dird/ua_status.c:516 +#, c-format +msgid "Console connected at %s\n" +msgstr "" + +#: src/dird/ua_status.c:526 +msgid "" +"No Jobs running.\n" +"====\n" +msgstr "" + +#: src/dird/ua_status.c:531 +msgid " JobId Level Name Status\n" +msgstr "" + +#: src/dird/ua_status.c:532 src/filed/status.c:221 src/stored/status.c:382 +msgid "======================================================================\n" +msgstr "" + +#: src/dird/ua_status.c:540 +msgid "is waiting execution" +msgstr "" + +#: src/dird/ua_status.c:543 +msgid "is running" +msgstr "" + +#: src/dird/ua_status.c:546 +msgid "is blocked" +msgstr "" + +#: src/dird/ua_status.c:549 +msgid "has terminated" +msgstr "" + +#: src/dird/ua_status.c:552 +msgid "has erred" +msgstr "" + +#: src/dird/ua_status.c:555 +msgid "has errors" +msgstr "" + +#: src/dird/ua_status.c:558 +msgid "has a fatal error" +msgstr "" + +#: src/dird/ua_status.c:561 +msgid "has verify differences" +msgstr "" + +#: src/dird/ua_status.c:564 +msgid "has been canceled" +msgstr "" + +#: src/dird/ua_status.c:568 +#, c-format +msgid "is waiting on Client %s" +msgstr "" + +#: src/dird/ua_status.c:574 +#, c-format +msgid "is waiting on Storage %s" +msgstr "" + +#: src/dird/ua_status.c:579 +msgid "is waiting on max Storage jobs" +msgstr "" + +#: src/dird/ua_status.c:582 +msgid "is waiting on max Client jobs" +msgstr "" + +#: src/dird/ua_status.c:585 +msgid "is waiting on max Job jobs" +msgstr "" + +#: src/dird/ua_status.c:588 +msgid "is waiting on max total jobs" +msgstr "" + +#: src/dird/ua_status.c:591 +msgid "is waiting for its start time" +msgstr "" + +#: src/dird/ua_status.c:594 +msgid "is waiting for higher priority jobs to finish" +msgstr "" + +#: src/dird/ua_status.c:599 +#, c-format +msgid "is in unknown state %c" +msgstr "" + +#: src/dird/ua_status.c:613 +msgid "is waiting for a mount request" +msgstr "" + +#: src/dird/ua_status.c:620 +msgid "is waiting for an appendable Volume" +msgstr "" + +#: src/dird/ua_status.c:627 +#, c-format +msgid "is waiting for Client %s to connect to Storage %s" +msgstr "" + +#: src/dird/ua_status.c:643 +#, c-format +msgid "%6d %-6s %-20s %s\n" +msgstr "" + +#: src/dird/ua_status.c:665 src/filed/status.c:211 src/stored/status.c:373 +msgid "No Terminated Jobs.\n" +msgstr "" + +#: src/dird/ua_status.c:670 src/stored/status.c:378 +msgid "" +"\n" +"Terminated Jobs:\n" +msgstr "" + +#: src/dird/ua_status.c:671 +msgid " JobId Level Files Bytes Status Finished Name \n" +msgstr "" + +#: src/dird/ua_status.c:672 +msgid "========================================================================\n" +msgstr "" + +#: src/dird/ua_status.c:703 src/filed/status.c:241 src/lib/util.c:178 +#: src/stored/status.c:402 +msgid "Created" +msgstr "" + +#: src/dird/ua_status.c:707 src/filed/status.c:245 src/lib/util.c:191 +#: src/lib/util.c:258 src/stored/status.c:406 +msgid "Error" +msgstr "" + +#: src/dird/ua_status.c:710 src/filed/status.c:248 src/stored/status.c:409 +msgid "Diffs" +msgstr "" + +#: src/dird/ua_status.c:716 src/filed/status.c:254 src/lib/util.c:187 +#: src/lib/util.c:254 src/stored/btape.c:1158 src/stored/status.c:415 +#: src/wx-console/wxbconfigpanel.cpp:180 +msgid "OK" +msgstr "" + +#: src/dird/ua_status.c:719 src/filed/status.c:257 src/stored/status.c:418 +msgid "Other" +msgstr "" + +#: src/dird/ua_status.c:722 src/filed/status.c:268 src/stored/status.c:429 +#, c-format +msgid "%6d %-6s %8s %14s %-7s %-8s %s\n" +msgstr "" + +#: src/dird/ua_status.c:730 src/stored/btape.c:180 +msgid "\n" +msgstr "" + +#: src/dird/ua_tree.c:58 +msgid "change current directory" +msgstr "" + +#: src/dird/ua_tree.c:59 +msgid "count marked files in and below the cd" +msgstr "" + +#: src/dird/ua_tree.c:60 src/dird/ua_tree.c:61 +msgid "long list current directory, wildcards allowed" +msgstr "" + +#: src/dird/ua_tree.c:62 +msgid "leave file selection mode" +msgstr "" + +#: src/dird/ua_tree.c:63 +msgid "estimate restore size" +msgstr "" + +#: src/dird/ua_tree.c:64 +msgid "same as done command" +msgstr "" + +#: src/dird/ua_tree.c:65 +msgid "find files, wildcards allowed" +msgstr "" + +#: src/dird/ua_tree.c:66 src/dird/ua_tree.c:75 +msgid "print help" +msgstr "" + +#: src/dird/ua_tree.c:67 +msgid "list current directory, wildcards allowed" +msgstr "" + +#: src/dird/ua_tree.c:68 +msgid "list the marked files in and below the cd" +msgstr "" + +#: src/dird/ua_tree.c:69 +msgid "mark dir/file to be restored recursively, wildcards allowed" +msgstr "" + +#: src/dird/ua_tree.c:70 +msgid "mark directory name to be restored (no files)" +msgstr "" + +#: src/dird/ua_tree.c:71 +msgid "print current working directory" +msgstr "" + +#: src/dird/ua_tree.c:72 +msgid "unmark dir/file to be restored recursively in dir" +msgstr "" + +#: src/dird/ua_tree.c:73 +msgid "unmark directory name only no recursion" +msgstr "" + +#: src/dird/ua_tree.c:74 +msgid "quit and do not do restore" +msgstr "" + +#: src/dird/ua_tree.c:94 +msgid "" +"\n" +"You are now entering file selection mode where you add (mark) and\n" +"remove (unmark) files to be restored. No files are initially added, unless\n" +"you used the \"all\" keyword on the command line.\n" +"Enter \"done\" to leave this mode.\n" +"\n" +msgstr "" + +#: src/dird/ua_tree.c:104 src/dird/ua_tree.c:664 src/dird/ua_tree.c:672 +#, c-format +msgid "cwd is: %s\n" +msgstr "" + +#: src/dird/ua_tree.c:125 +msgid "Illegal command. Enter \"done\" to exit.\n" +msgstr "" + +#: src/dird/ua_tree.c:298 src/dird/ua_tree.c:309 src/dird/ua_tree.c:326 +msgid "No files marked.\n" +msgstr "" + +#: src/dird/ua_tree.c:311 +msgid "1 file marked.\n" +msgstr "" + +#: src/dird/ua_tree.c:313 +#, c-format +msgid "%s files marked.\n" +msgstr "" + +#: src/dird/ua_tree.c:340 +msgid "No directories marked.\n" +msgstr "" + +#: src/dird/ua_tree.c:342 +msgid "1 directory marked.\n" +msgstr "" + +#: src/dird/ua_tree.c:344 +#, c-format +msgid "%s directories marked.\n" +msgstr "" + +#: src/dird/ua_tree.c:365 +#, c-format +msgid "%s total files/dirs. %s marked to be restored.\n" +msgstr "" + +#: src/dird/ua_tree.c:376 +msgid "No file specification given.\n" +msgstr "" + +#: src/dird/ua_tree.c:520 +#, c-format +msgid "Node %s has no children.\n" +msgstr "" + +#: src/dird/ua_tree.c:611 +#, c-format +msgid "%d total files; %d marked to be restored; %s bytes.\n" +msgstr "" + +#: src/dird/ua_tree.c:656 +msgid "Invalid path given.\n" +msgstr "" + +#: src/dird/ua_tree.c:683 src/dird/ua_tree.c:694 +msgid "No files unmarked.\n" +msgstr "" + +#: src/dird/ua_tree.c:696 +msgid "1 file unmarked.\n" +msgstr "" + +#: src/dird/ua_tree.c:698 +#, c-format +msgid "%d files unmarked.\n" +msgstr "" + +#: src/dird/ua_tree.c:709 src/dird/ua_tree.c:725 +msgid "No directories unmarked.\n" +msgstr "" + +#: src/dird/ua_tree.c:727 +msgid "1 directory unmarked.\n" +msgstr "" + +#: src/dird/ua_tree.c:729 +#, c-format +msgid "%d directories unmarked.\n" +msgstr "" + +#: src/dird/ua_update.c:79 +msgid "Update choice:\n" +msgstr "" + +#: src/dird/ua_update.c:80 +msgid "Volume parameters" +msgstr "" + +#: src/dird/ua_update.c:81 +msgid "Pool from resource" +msgstr "" + +#: src/dird/ua_update.c:82 +msgid "Slots from autochanger" +msgstr "" + +#: src/dird/ua_update.c:83 +msgid "item" +msgstr "" + +#: src/dird/ua_update.c:83 +msgid "Choose catalog item to update" +msgstr "" + +#: src/dird/ua_update.c:122 +#, c-format +msgid "Invalid VolStatus specified: %s\n" +msgstr "" + +#: src/dird/ua_update.c:131 +#, c-format +msgid "New Volume status is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:141 +#, c-format +msgid "Invalid retention period specified: %s\n" +msgstr "" + +#: src/dird/ua_update.c:149 +#, c-format +msgid "New retention period is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:160 +#, c-format +msgid "Invalid use duration specified: %s\n" +msgstr "" + +#: src/dird/ua_update.c:168 +#, c-format +msgid "New use duration is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:182 +#, c-format +msgid "New max jobs is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:195 +#, c-format +msgid "New max files is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:206 +#, c-format +msgid "Invalid max. bytes specification: %s\n" +msgstr "" + +#: src/dird/ua_update.c:214 +#, c-format +msgid "New Max bytes is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:228 src/dird/ua_update.c:252 +msgid "Invalid value. It must be yes or no.\n" +msgstr "" + +#: src/dird/ua_update.c:236 +#, c-format +msgid "New Recycle flag is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:260 +#, c-format +msgid "New InChanger flag is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:278 +#, c-format +msgid "Invalid slot, it must be between 0 and MaxVols=%d\n" +msgstr "" + +#: src/dird/ua_update.c:287 src/dird/ua_update.c:577 +#, c-format +msgid "Error updating media record Slot: ERR=%s" +msgstr "" + +#: src/dird/ua_update.c:289 +#, c-format +msgid "New Slot is: %d\n" +msgstr "" + +#: src/dird/ua_update.c:316 +#, c-format +msgid "New Pool is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:345 +#, c-format +msgid "Error updating Volume record: ERR=%s" +msgstr "" + +#: src/dird/ua_update.c:347 +#, c-format +msgid "Volume defaults updated from \"%s\" Pool record.\n" +msgstr "" + +#: src/dird/ua_update.c:369 +#, c-format +msgid "Error updating Volume records: ERR=%s" +msgstr "" + +#: src/dird/ua_update.c:371 +msgid "All Volume defaults updated from Pool record.\n" +msgstr "" + +#: src/dird/ua_update.c:391 +msgid "VolStatus" +msgstr "" + +#: src/dird/ua_update.c:392 +msgid "VolRetention" +msgstr "" + +#: src/dird/ua_update.c:393 +msgid "VolUse" +msgstr "" + +#: src/dird/ua_update.c:394 +msgid "MaxVolJobs" +msgstr "" + +#: src/dird/ua_update.c:395 +msgid "MaxVolFiles" +msgstr "" + +#: src/dird/ua_update.c:396 +msgid "MaxVolBytes" +msgstr "" + +#: src/dird/ua_update.c:397 +msgid "Recycle" +msgstr "" + +#: src/dird/ua_update.c:398 +msgid "InChanger" +msgstr "" + +#: src/dird/ua_update.c:399 src/dird/ua_update.c:472 +msgid "Slot" +msgstr "" + +#: src/dird/ua_update.c:401 +msgid "FromPool" +msgstr "" + +#: src/dird/ua_update.c:402 +msgid "AllFromPool" +msgstr "" + +#: src/dird/ua_update.c:463 +#, c-format +msgid "Updating Volume \"%s\"\n" +msgstr "" + +#: src/dird/ua_update.c:465 +msgid "Volume Status" +msgstr "" + +#: src/dird/ua_update.c:466 +msgid "Volume Retention Period" +msgstr "" + +#: src/dird/ua_update.c:467 +msgid "Volume Use Duration" +msgstr "" + +#: src/dird/ua_update.c:468 +msgid "Maximum Volume Jobs" +msgstr "" + +#: src/dird/ua_update.c:469 +msgid "Maximum Volume Files" +msgstr "" + +#: src/dird/ua_update.c:470 +msgid "Maximum Volume Bytes" +msgstr "" + +#: src/dird/ua_update.c:471 +msgid "Recycle Flag" +msgstr "" + +#: src/dird/ua_update.c:473 +msgid "InChanger Flag" +msgstr "" + +#: src/dird/ua_update.c:474 +msgid "Volume Files" +msgstr "" + +#: src/dird/ua_update.c:476 +msgid "Volume from Pool" +msgstr "" + +#: src/dird/ua_update.c:477 +msgid "All Volumes from Pool" +msgstr "" + +#: src/dird/ua_update.c:478 +msgid "Done" +msgstr "" + +#: src/dird/ua_update.c:489 +#, c-format +msgid "Current Volume status is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:490 +msgid "Possible Values are:\n" +msgstr "" + +#: src/dird/ua_update.c:501 +msgid "Choose new Volume Status" +msgstr "" + +#: src/dird/ua_update.c:507 +#, c-format +msgid "Current retention period is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:509 +msgid "Enter Volume Retention period: " +msgstr "" + +#: src/dird/ua_update.c:516 +#, c-format +msgid "Current use duration is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:518 +msgid "Enter Volume Use Duration: " +msgstr "" + +#: src/dird/ua_update.c:525 +#, c-format +msgid "Current max jobs is: %u\n" +msgstr "" + +#: src/dird/ua_update.c:526 +msgid "Enter new Maximum Jobs: " +msgstr "" + +#: src/dird/ua_update.c:533 +#, c-format +msgid "Current max files is: %u\n" +msgstr "" + +#: src/dird/ua_update.c:534 +msgid "Enter new Maximum Files: " +msgstr "" + +#: src/dird/ua_update.c:541 +#, c-format +msgid "Current value is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:542 +msgid "Enter new Maximum Bytes: " +msgstr "" + +#: src/dird/ua_update.c:550 +#, c-format +msgid "Current recycle flag is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:552 +msgid "Enter new Recycle status: " +msgstr "" + +#: src/dird/ua_update.c:559 +#, c-format +msgid "Current Slot is: %d\n" +msgstr "" + +#: src/dird/ua_update.c:560 +msgid "Enter new Slot: " +msgstr "" + +#: src/dird/ua_update.c:567 +#, c-format +msgid "Current InChanger flag is: %d\n" +msgstr "" + +#: src/dird/ua_update.c:568 +msgid "Set InChanger flag? yes/no: " +msgstr "" + +#: src/dird/ua_update.c:579 +#, c-format +msgid "New InChanger flag is: %d\n" +msgstr "" + +#: src/dird/ua_update.c:586 +msgid "" +"Warning changing Volume Files can result\n" +"in loss of data on your Volume\n" +"\n" +msgstr "" + +#: src/dird/ua_update.c:588 +#, c-format +msgid "Current Volume Files is: %u\n" +msgstr "" + +#: src/dird/ua_update.c:589 +msgid "Enter new number of Files for Volume: " +msgstr "" + +#: src/dird/ua_update.c:594 +msgid "Normally, you should only increase Volume Files by one!\n" +msgstr "" + +#: src/dird/ua_update.c:595 +msgid "Continue? (yes/no): " +msgstr "" + +#: src/dird/ua_update.c:605 +#, c-format +msgid "New Volume Files is: %u\n" +msgstr "" + +#: src/dird/ua_update.c:617 +#, c-format +msgid "Current Pool is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:618 +msgid "Enter new Pool name: " +msgstr "" + +#: src/dird/ua_update.c:631 +msgid "Selection terminated.\n" +msgstr "" + +#: src/dird/ua_update.c:664 +#, c-format +msgid "db_update_pool_record returned %d. ERR=%s\n" +msgstr "" + +#: src/dird/ua_update.c:671 +msgid "Pool DB record updated from resource.\n" +msgstr "" + +#: src/dird/verify.c:87 +msgid "" +"Unable to find JobId of previous InitCatalog Job.\n" +"Please run a Verify with Level=InitCatalog before\n" +"running the current Job.\n" +msgstr "" + +#: src/dird/verify.c:117 +#, c-format +msgid "Verifying against JobId=%d Job=%s\n" +msgstr "" + +#: src/dird/verify.c:187 +#, c-format +msgid "Start Verify JobId=%s Level=%s Job=%s\n" +msgstr "" + +#: src/dird/verify.c:266 +msgid "Deprecated feature ... use bootstrap.\n" +msgstr "" + +#: src/dird/verify.c:279 +#, c-format +msgid "Unimplemented Verify level %d(%c)\n" +msgstr "" + +#: src/dird/verify.c:331 +#, c-format +msgid "Unimplemented verify level %d\n" +msgstr "" + +#: src/dird/verify.c:386 +msgid "Verify OK" +msgstr "" + +#: src/dird/verify.c:390 +msgid "*** Verify Error ***" +msgstr "" + +#: src/dird/verify.c:394 +msgid "Verify warnings" +msgstr "" + +#: src/dird/verify.c:397 +msgid "Verify Canceled" +msgstr "" + +#: src/dird/verify.c:400 +msgid "Verify Differences" +msgstr "" + +#: src/dird/verify.c:405 +#, c-format +msgid "Inappropriate term code: %d %c\n" +msgstr "" + +#: src/dird/verify.c:419 +#, c-format +msgid "" +"Bacula %s (%s): %s\n" +" JobId: %d\n" +" Job: %s\n" +" FileSet: %s\n" +" Verify Level: %s\n" +" Client: %s\n" +" Verify JobId: %d\n" +" Verify Job: %s\n" +" Start time: %s\n" +" End time: %s\n" +" Files Expected: %s\n" +" Files Examined: %s\n" +" Non-fatal FD errors: %d\n" +" FD termination status: %s\n" +" SD termination status: %s\n" +" Termination: %s\n" +"\n" +msgstr "" + +#: src/dird/verify.c:454 +#, c-format +msgid "" +"Bacula %s (%s): %s\n" +" JobId: %d\n" +" Job: %s\n" +" FileSet: %s\n" +" Verify Level: %s\n" +" Client: %s\n" +" Verify JobId: %d\n" +" Verify Job: %s\n" +" Start time: %s\n" +" End time: %s\n" +" Files Examined: %s\n" +" Non-fatal FD errors: %d\n" +" FD termination status: %s\n" +" Termination: %s\n" +"\n" +msgstr "" + +#: src/dird/verify.c:530 +#, c-format +msgid "" +"birdSD.\n" +msgstr "" + +#: src/filed/backup.c:155 +#, c-format +msgid " Recursion turned off. Will not descend into %s\n" +msgstr "" + +#: src/filed/backup.c:162 +#, c-format +msgid " Filesystem change prohibited. Will not descend into %s\n" +msgstr "" + +#: src/filed/backup.c:168 +#, c-format +msgid " Disallowed filesystem. Will not descend into %s\n" +msgstr "" + +#: src/filed/backup.c:186 src/filed/verify.c:113 +#, c-format +msgid " Could not access %s: ERR=%s\n" +msgstr "" + +#: src/filed/backup.c:193 src/filed/verify.c:120 +#, c-format +msgid " Could not follow link %s: ERR=%s\n" +msgstr "" + +#: src/filed/backup.c:200 src/filed/verify.c:127 +#, c-format +msgid " Could not stat %s: ERR=%s\n" +msgstr "" + +#: src/filed/backup.c:207 src/filed/verify.c:133 +#, c-format +msgid " Unchanged file skipped: %s\n" +msgstr "" + +#: src/filed/backup.c:210 +#, c-format +msgid " Archive file not saved: %s\n" +msgstr "" + +#: src/filed/backup.c:214 src/filed/verify.c:147 +#, c-format +msgid " Could not open directory %s: ERR=%s\n" +msgstr "" + +#: src/filed/backup.c:220 +#, c-format +msgid " Unknown file type %d; not saved: %s\n" +msgstr "" + +#: src/filed/backup.c:240 +#, c-format +msgid "Python reader program \"%s\" not found.\n" +msgstr "" + +#: src/filed/backup.c:269 src/filed/verify.c:214 +#, c-format +msgid " Cannot open %s: ERR=%s.\n" +msgstr "" + +#: src/filed/backup.c:298 src/filed/verify.c:229 +#, c-format +msgid " Cannot open resource fork for %s: ERR=%s.\n" +msgstr "" + +#: src/filed/backup.c:349 +#, c-format +msgid "Unknown signature type %i.\n" +msgstr "" + +#: src/filed/backup.c:414 src/filed/backup.c:499 src/filed/backup.c:525 +#: src/filed/backup.c:557 src/filed/backup.c:570 src/filed/backup.c:578 +#: src/filed/backup.c:619 src/filed/backup.c:653 +#, c-format +msgid "Network send error to SD. ERR=%s\n" +msgstr "" + +#: src/filed/backup.c:479 +#, c-format +msgid "Compression error: %d\n" +msgstr "" + +#: src/filed/backup.c:516 +#, c-format +msgid "Read error on file %s. ERR=%s\n" +msgstr "" + +#: src/filed/backup.c:519 +msgid "Too many errors.\n" +msgstr "" + +#: src/filed/backup.c:548 +#, c-format +msgid "Error reading ACL of %s\n" +msgstr "" + +#: src/filed/filed.c:62 +#, c-format +msgid "" +"Copyright (C) 2000-2005 Kern Sibbald\n" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: bacula-fd [-f -s] [-c config_file] [-d debug_level]\n" +" -c use as configuration file\n" +" -dnn set debug level to nn\n" +" -f run in foreground (for debugging)\n" +" -g groupid\n" +" -i inetd request\n" +" -s no signals (for debugging)\n" +" -t test configuration file and exit\n" +" -u userid\n" +" -v verbose user messages\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/filed/filed.c:282 +#, c-format +msgid "" +"No File daemon resource defined in %s\n" +"Without that I don't know who I am :-(\n" +msgstr "" + +#: src/filed/filed.c:287 +#, c-format +msgid "Only one Client resource permitted in %s\n" +msgstr "" + +#: src/filed/filed.c:310 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"File daemon in %s.\n" +msgstr "" + +#: src/filed/filed.c:339 +#, c-format +msgid "No Director resource defined in %s\n" +msgstr "" + +#: src/filed/job.c:324 +#, c-format +msgid "2901 Job %s not found.\n" +msgstr "" + +#: src/filed/job.c:340 +#, c-format +msgid "2001 Job %s marked to be canceled.\n" +msgstr "" + +#: src/filed/job.c:343 +msgid "2902 Error scanning cancel command.\n" +msgstr "" + +#: src/filed/job.c:362 +#, c-format +msgid "2991 Bad setdebug command: %s\n" +msgstr "" + +#: src/filed/job.c:378 +#, c-format +msgid "Bad estimate command: %s" +msgstr "" + +#: src/filed/job.c:379 +msgid "2992 Bad estimate command.\n" +msgstr "" + +#: src/filed/job.c:402 +#, c-format +msgid "Bad Job Command: %s" +msgstr "" + +#: src/filed/job.c:422 +#, c-format +msgid "Bad RunBeforeJob command: %s\n" +msgstr "" + +#: src/filed/job.c:423 src/filed/job.c:436 +msgid "2905 Bad RunBeforeJob command.\n" +msgstr "" + +#: src/filed/job.c:449 +#, c-format +msgid "Bad RunAfter command: %s\n" +msgstr "" + +#: src/filed/job.c:450 +msgid "2905 Bad RunAfterJob command.\n" +msgstr "" + +#: src/filed/job.c:476 +#, c-format +msgid "%s could not execute. ERR=%s\n" +msgstr "" + +#: src/filed/job.c:485 +#, c-format +msgid "%s: %s\n" +msgstr "" + +#: src/filed/job.c:490 +#, c-format +msgid "%s returned non-zero status=%d. ERR=%s\n" +msgstr "" + +#: src/filed/job.c:575 +#, c-format +msgid "Error running program: %s. RtnStat=%d ERR=%s\n" +msgstr "" + +#: src/filed/job.c:585 +#, c-format +msgid "Cannot open FileSet input file: %s. ERR=%s\n" +msgstr "" + +#: src/filed/job.c:679 +#, c-format +msgid "REGEX %s compile error. ERR=%s\n" +msgstr "" + +#: src/filed/job.c:733 +#, c-format +msgid "Invalid FileSet command: %s\n" +msgstr "" + +#: src/filed/job.c:902 src/findlib/match.c:184 +#, c-format +msgid "Unknown include/exclude option: %c\n" +msgstr "" + +#: src/filed/job.c:962 src/stored/fd_cmds.c:329 +#, c-format +msgid "Could not create bootstrap file %s: ERR=%s\n" +msgstr "" + +#: src/filed/job.c:1061 +#, c-format +msgid "DIR and FD clocks differ by %d seconds, FD automatically adjusting.\n" +msgstr "" + +#: src/filed/job.c:1069 +#, c-format +msgid "Unknown backup level: %s\n" +msgstr "" + +#: src/filed/job.c:1081 +#, c-format +msgid "Bad level command: %s\n" +msgstr "" + +#: src/filed/job.c:1102 +#, c-format +msgid "Bad session command: %s" +msgstr "" + +#: src/filed/job.c:1123 +#, c-format +msgid "Bad storage command: %s" +msgstr "" + +#: src/filed/job.c:1132 +#, c-format +msgid "Failed to connect to Storage daemon: %s:%d\n" +msgstr "" + +#: src/filed/job.c:1144 +msgid "Failed to authenticate Storage daemon.\n" +msgstr "" + +#: src/filed/job.c:1170 +msgid "Cannot contact Storage daemon\n" +msgstr "" + +#: src/filed/job.c:1188 +#, c-format +msgid "Bad response to append open: %s\n" +msgstr "" + +#: src/filed/job.c:1193 +msgid "Bad response from stored to open command\n" +msgstr "" + +#: src/filed/job.c:1222 +#, c-format +msgid "Generate VSS snapshots. Driver=\"%s\", Drive(s)=\"%s\"\n" +msgstr "" + +#: src/filed/job.c:1225 +#, c-format +msgid "Generate VSS snapshots failed. ERR=%s\n" +msgstr "" + +#: src/filed/job.c:1232 +#, c-format +msgid "Generate VSS snapshot of drive \"%c:\\\" failed\n" +msgstr "" + +#: src/filed/job.c:1241 +#, c-format +msgid "VSS Writer: %s\n" +msgstr "" + +#: src/filed/job.c:1245 +msgid "No drive letters found for generating VSS snapshots.\n" +msgstr "" + +#: src/filed/job.c:1248 +msgid "VSS was not initialized properly. VSS support is disabled.\n" +msgstr "" + +#: src/filed/job.c:1297 +msgid "Append Close with SD failed.\n" +msgstr "" + +#: src/filed/job.c:1301 +#, c-format +msgid "Bad status %d returned from Storage Daemon.\n" +msgstr "" + +#: src/filed/job.c:1336 +#, c-format +msgid "2994 Bad verify command: %s\n" +msgstr "" + +#: src/filed/job.c:1351 src/filed/job.c:1390 +#, c-format +msgid "2994 Bad verify level: %s\n" +msgstr "" + +#: src/filed/job.c:1430 +#, c-format +msgid "Bad replace command. CMD=%s\n" +msgstr "" + +#: src/filed/job.c:1507 +msgid "Improper calling sequence.\n" +msgstr "" + +#: src/filed/job.c:1527 +#, c-format +msgid "Bad response to SD read open: %s\n" +msgstr "" + +#: src/filed/job.c:1532 +msgid "Bad response from stored to read open command\n" +msgstr "" + +#: src/filed/job.c:1598 +#, c-format +msgid "Comm error with SD. bad response to %s. ERR=%s\n" +msgstr "" + +#: src/filed/job.c:1601 +#, c-format +msgid "Bad response to %s command. Wanted %s, got %s\n" +msgstr "" + +#: src/filed/pythonfd.c:150 src/stored/pythonsd.c:154 +#, c-format +msgid "Cannot delete attribute %s" +msgstr "" + +#: src/filed/pythonfd.c:168 src/filed/pythonfd.c:184 src/stored/pythonsd.c:187 +#, c-format +msgid "Cannot find attribute %s" +msgstr "" + +#: src/filed/restore.c:55 +#, c-format +msgid "Size of data or stream of %s not correct. Original %s, restored %s.\n" +msgstr "" + +#: src/filed/restore.c:165 src/filed/verify_vol.c:90 +#, c-format +msgid "Record header scan error: %s\n" +msgstr "" + +#: src/filed/restore.c:172 src/filed/verify_vol.c:99 +#, c-format +msgid "Data record error. ERR=%s\n" +msgstr "" + +#: src/filed/restore.c:176 src/filed/verify_vol.c:103 +#, c-format +msgid "Actual data size %d not same as header %d\n" +msgstr "" + +#: src/filed/restore.c:201 src/filed/restore.c:383 +msgid "Logic error: output file should be open\n" +msgstr "" + +#: src/filed/restore.c:207 src/filed/restore.c:388 +msgid "Logic error: output file should not be open\n" +msgstr "" + +#: src/filed/restore.c:218 src/filed/verify_vol.c:142 +#: src/stored/bextract.c:289 src/stored/bls.c:371 src/stored/bscan.c:651 +#, c-format +msgid "Record header file index %ld not equal record index %ld\n" +msgstr "" + +#: src/filed/restore.c:231 src/stored/bextract.c:298 +#, c-format +msgid "%s stream not supported on this Client.\n" +msgstr "" + +#: src/filed/restore.c:308 +#, c-format +msgid " Cannot open resource fork for %s.\n" +msgstr "" + +#: src/filed/restore.c:331 +#, c-format +msgid " Invalid length of Finder Info (got %d, not 32)\n" +msgstr "" + +#: src/filed/restore.c:335 +#, c-format +msgid " Could not set Finder Info on %s\n" +msgstr "" + +#: src/filed/restore.c:347 +#, c-format +msgid "Can't restore ACL of %s\n" +msgstr "" + +#: src/filed/restore.c:359 +#, c-format +msgid "Can't restore default ACL of %s\n" +msgstr "" + +#: src/filed/restore.c:391 src/stored/bextract.c:455 +#, c-format +msgid "Unknown stream=%d ignored. This shouldn't happen!\n" +msgstr "" + +#: src/filed/restore.c:428 +#, c-format +msgid "" +"%d non-supported data streams and %d non-supported attrib streams ignored.\n" +msgstr "" + +#: src/filed/restore.c:432 +#, c-format +msgid "%d non-supported resource fork streams ignored.\n" +msgstr "" + +#: src/filed/restore.c:435 +#, c-format +msgid "%d non-supported Finder Info streams ignored.\n" +msgstr "" + +#: src/filed/restore.c:438 +#, c-format +msgid "%d non-supported acl streams ignored.\n" +msgstr "" + +#: src/filed/restore.c:450 +msgid "None" +msgstr "" + +#: src/filed/restore.c:454 +msgid "Zlib errno" +msgstr "" + +#: src/filed/restore.c:456 +msgid "Zlib stream error" +msgstr "" + +#: src/filed/restore.c:458 +msgid "Zlib data error" +msgstr "" + +#: src/filed/restore.c:460 +msgid "Zlib memory error" +msgstr "" + +#: src/filed/restore.c:462 +msgid "Zlib buffer error" +msgstr "" + +#: src/filed/restore.c:464 +msgid "Zlib version error" +msgstr "" + +#: src/filed/restore.c:466 src/lib/util.c:546 src/lib/util.c:556 +#: src/lib/util.c:564 src/lib/util.c:571 src/lib/util.c:578 src/lib/util.c:592 +#: src/lib/util.c:602 src/lib/util.c:609 src/lib/util.c:620 +msgid "*none*" +msgstr "" + +#: src/filed/restore.c:498 src/stored/bextract.c:387 +#, c-format +msgid "Seek to %s error on %s: ERR=%s\n" +msgstr "" + +#: src/filed/restore.c:522 +#, c-format +msgid "Uncompression error on file %s. ERR=%s\n" +msgstr "" + +#: src/filed/restore.c:530 src/stored/bextract.c:421 +msgid "GZIP data stream found, but GZIP not configured!\n" +msgstr "" + +#: src/filed/restore.c:539 src/stored/bextract.c:359 src/stored/bextract.c:409 +#, c-format +msgid "Write error on %s: %s\n" +msgstr "" + +#: src/filed/status.c:67 +#, c-format +msgid "%s Version: %s (%s) %s %s %s %s\n" +msgstr "" + +#: src/filed/status.c:71 +#, c-format +msgid "Daemon started %s, %d Job%s run since started.\n" +msgstr "" + +#: src/filed/status.c:127 +#, c-format +msgid " Sizeof: off_t=%d size_t=%d debug=%d trace=%d\n" +msgstr "" + +#: src/filed/status.c:138 +msgid "Running Jobs:\n" +msgstr "" + +#: src/filed/status.c:149 +#, c-format +msgid "Director connected at: %s\n" +msgstr "" + +#: src/filed/status.c:151 +#, c-format +msgid "JobId %d Job %s is running.\n" +msgstr "" + +#: src/filed/status.c:154 +#, c-format +msgid " %s%s Job started: %s\n" +msgstr "" + +#: src/filed/status.c:166 src/stored/status.c:323 +#, c-format +msgid " Files=%s Bytes=%s Bytes/sec=%s\n" +msgstr "" + +#: src/filed/status.c:171 +#, c-format +msgid " Files Examined=%s\n" +msgstr "" + +#: src/filed/status.c:176 +#, c-format +msgid " Processing file: %s\n" +msgstr "" + +#: src/filed/status.c:187 +msgid " SDSocket closed.\n" +msgstr "" + +#: src/filed/status.c:217 +msgid "Terminated Jobs:\n" +msgstr "" + +#: src/filed/status.c:219 +msgid " JobId Level Files Bytes Status Finished Name \n" +msgstr "" + +#: src/filed/status.c:323 src/filed/status.c:347 src/stored/status.c:513 +#: src/stored/status.c:536 +#, c-format +msgid "Bad .status command: %s\n" +msgstr "" + +#: src/filed/status.c:324 +msgid "2900 Bad .status command, missing argument.\n" +msgstr "" + +#: src/filed/status.c:348 +msgid "2900 Bad .status command, wrong argument.\n" +msgstr "" + +#: src/filed/status.c:385 src/stored/status.c:468 +msgid "Init Catalog" +msgstr "" + +#: src/filed/status.c:388 src/stored/status.c:471 +msgid "Volume to Catalog" +msgstr "" + +#: src/filed/status.c:391 src/stored/status.c:474 +msgid "Disk to Catalog" +msgstr "" + +#: src/filed/status.c:394 src/stored/status.c:477 +msgid "Data" +msgstr "" + +#: src/filed/status.c:400 src/lib/util.c:351 src/stored/status.c:483 +msgid "Unknown Job Level" +msgstr "" + +#: src/filed/status.c:451 +msgid "Bacula Idle" +msgstr "" + +#: src/filed/status.c:462 +msgid "Bacula Running" +msgstr "" + +#: src/filed/status.c:476 +msgid "Last Job Canceled" +msgstr "" + +#: src/filed/status.c:480 +msgid "Last Job Failed" +msgstr "" + +#: src/filed/status.c:484 +msgid "Last Job had Warnings" +msgstr "" + +#: src/filed/verify.c:45 +#, c-format +msgid "Cannot malloc %d network read buffer\n" +msgstr "" + +#: src/filed/verify.c:136 +#, c-format +msgid " Archive file skipped: %s\n" +msgstr "" + +#: src/filed/verify.c:139 +#, c-format +msgid " Recursion turned off. Directory skipped: %s\n" +msgstr "" + +#: src/filed/verify.c:142 +#, c-format +msgid " File system change prohibited. Directory skipped: %s\n" +msgstr "" + +#: src/filed/verify.c:152 +#, c-format +msgid " Unknown file type %d: %s\n" +msgstr "" + +#: src/filed/verify.c:195 src/filed/verify_vol.c:200 +#, c-format +msgid "Network error in send to Director: ERR=%s\n" +msgstr "" + +#: src/filed/verify.c:284 +#, c-format +msgid "Error reading file %s: ERR=%s\n" +msgstr "" + +#: src/filed/verify_vol.c:56 +msgid "Storage command not issued before Verify.\n" +msgstr "" + +#: src/filed/verify_vol.c:136 +#, c-format +msgid "Error scanning record header: %s\n" +msgstr "" + +#: src/findlib/attribs.c:335 +#, c-format +msgid "File size of restored file %s not correct. Original %s, restored %s.\n" +msgstr "" + +#: src/findlib/attribs.c:353 src/findlib/attribs.c:360 +#, c-format +msgid "Unable to set file owner %s: ERR=%s\n" +msgstr "" + +#: src/findlib/attribs.c:366 +#, c-format +msgid "Unable to set file modes %s: ERR=%s\n" +msgstr "" + +#: src/findlib/attribs.c:376 +#, c-format +msgid "Unable to set file times %s: ERR=%s\n" +msgstr "" + +#: src/findlib/attribs.c:390 +#, c-format +msgid "Unable to set file flags %s: ERR=%s\n" +msgstr "" + +#: src/findlib/attribs.c:635 +#, c-format +msgid "Error in %s file %s: ERR=%s\n" +msgstr "" + +#: src/findlib/attribs.c:652 +#, c-format +msgid "Error in %s: ERR=%s\n" +msgstr "" + +#: src/findlib/bfile.c:67 +msgid "GZIP data" +msgstr "" + +#: src/findlib/bfile.c:69 +msgid "GZIP sparse data" +msgstr "" + +#: src/findlib/bfile.c:71 +msgid "Win32 data" +msgstr "" + +#: src/findlib/bfile.c:73 +msgid "Win32 GZIP data" +msgstr "" + +#: src/findlib/bfile.c:75 +msgid "File attributes" +msgstr "" + +#: src/findlib/bfile.c:77 +msgid "File data" +msgstr "" + +#: src/findlib/bfile.c:79 +msgid "MD5 signature" +msgstr "" + +#: src/findlib/bfile.c:81 +msgid "Extended attributes" +msgstr "" + +#: src/findlib/bfile.c:83 +msgid "Sparse data" +msgstr "" + +#: src/findlib/bfile.c:85 +msgid "Program names" +msgstr "" + +#: src/findlib/bfile.c:87 +msgid "Program data" +msgstr "" + +#: src/findlib/bfile.c:89 +msgid "SHA1 signature" +msgstr "" + +#: src/findlib/bfile.c:91 +msgid "HFS+ resource fork" +msgstr "" + +#: src/findlib/bfile.c:93 +msgid "HFS+ Finder Info" +msgstr "" + +#: src/findlib/create_file.c:86 +#, c-format +msgid "File skipped. Not newer: %s\n" +msgstr "" + +#: src/findlib/create_file.c:93 +#, c-format +msgid "File skipped. Not older: %s\n" +msgstr "" + +#: src/findlib/create_file.c:99 +#, c-format +msgid "File skipped. Already exists: %s\n" +msgstr "" + +#: src/findlib/create_file.c:124 +#, c-format +msgid "File %s already exists and could not be replaced. ERR=%s.\n" +msgstr "" + +#: src/findlib/create_file.c:176 src/findlib/create_file.c:277 +#: src/findlib/create_file.c:328 +#, c-format +msgid "bpkt already open fid=%d\n" +msgstr "" + +#: src/findlib/create_file.c:198 +msgid "Could not save_dirn" +msgstr "" + +#: src/findlib/create_file.c:207 src/findlib/create_file.c:220 +#, c-format +msgid "Could not chdir to %s: ERR=%s\n" +msgstr "" + +#: src/findlib/create_file.c:240 +#, c-format +msgid "Could not create %s: ERR=%s\n" +msgstr "" + +#: src/findlib/create_file.c:253 +#, c-format +msgid "Cannot make fifo %s: ERR=%s\n" +msgstr "" + +#: src/findlib/create_file.c:261 +#, c-format +msgid "Cannot make node %s: ERR=%s\n" +msgstr "" + +#: src/findlib/create_file.c:297 +#, c-format +msgid "Could not symlink %s -> %s: ERR=%s\n" +msgstr "" + +#: src/findlib/create_file.c:307 +#, c-format +msgid "Could not hard link %s -> %s: ERR=%s\n" +msgstr "" + +#: src/findlib/create_file.c:358 +#, c-format +msgid "Original file %s not saved: type=%d\n" +msgstr "" + +#: src/findlib/create_file.c:361 +#, c-format +msgid "Unknown file type %d; not restored: %s\n" +msgstr "" + +#: src/findlib/create_file.c:392 +#, c-format +msgid "Zero length filename: %s\n" +msgstr "" + +#: src/findlib/enable_priv.c:85 +msgid "AdjustTokenPrivileges set " +msgstr "" + +#: src/findlib/find_one.c:168 +#, c-format +msgid "Top level directory \"%s\" has an unlisted fstype\n" +msgstr "" + +#: src/findlib/makepath.c:117 +#, c-format +msgid "Cannot create directory %s: ERR=%s\n" +msgstr "" + +#: src/findlib/makepath.c:121 src/findlib/makepath.c:378 +#, c-format +msgid "%s exists but is not a directory\n" +msgstr "" + +#: src/findlib/makepath.c:276 src/findlib/makepath.c:337 +#: src/findlib/makepath.c:397 +#, c-format +msgid "Cannot change owner and/or group of %s: ERR=%s\n" +msgstr "" + +#: src/findlib/makepath.c:297 +#, c-format +msgid "Cannot chdir to directory, %s: ERR=%s\n" +msgstr "" + +#: src/findlib/makepath.c:352 src/findlib/makepath.c:368 +#: src/findlib/makepath.c:402 +#, c-format +msgid "Cannot change permissions of %s: ERR=%s\n" +msgstr "" + +#: src/findlib/save-cwd.c:48 +#, c-format +msgid "Cannot open current directory: %s\n" +msgstr "" + +#: src/findlib/save-cwd.c:62 +#, c-format +msgid "Current directory: %s\n" +msgstr "" + +#: src/findlib/save-cwd.c:84 +#, c-format +msgid "Cannot get current directory: %s\n" +msgstr "" + +#: src/findlib/save-cwd.c:105 +#, c-format +msgid "Cannot return to %s from %s: %s\n" +msgstr "" + +#: src/findlib/save-cwd.c:109 +#, c-format +msgid "Cannot return to saved working directory from %s: %s\n" +msgstr "" + +#: src/findlib/save-cwd.c:115 +#, c-format +msgid "Cannot return to %s: %s\n" +msgstr "" + +#: src/findlib/save-cwd.c:119 +#, c-format +msgid "Cannot return to saved working directory: %s\n" +msgstr "" + +#: src/gnome2-console/authenticate.c:74 +#, c-format +msgid "%s: Director authorization problem.\n" +msgstr "" + +#: src/gnome2-console/authenticate.c:75 +msgid "Director authorization problem.\n" +msgstr "" + +#: src/gnome2-console/authenticate.c:77 +msgid "" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" + +#: src/gnome2-console/authenticate.c:87 +#, c-format +msgid "%s: Bad response to Hello command: ERR=%s\n" +msgstr "" + +#: src/gnome2-console/authenticate.c:89 +msgid "The Director is probably not running.\n" +msgstr "" + +#: src/gnome2-console/console.c:88 +#, c-format +msgid "" +"Copyright (C) 2002-2005 Kern Sibbald\n" +"\n" +"Version: %s (%s) %s %s %s\n" +"\n" +"Usage: gnome-console [-s] [-c config_file] [-d debug_level] [config_file]\n" +" -c set configuration file to file\n" +" -dnn set debug level to nn\n" +" -s no signals\n" +" -t test - read configuration and exit\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/gnome2-console/console.c:219 +#, c-format +msgid "Pthread cond init error = %s\n" +msgstr "" + +#: src/gnome2-console/console.c:357 +msgid " Not Connected" +msgstr "" + +#: src/gnome2-console/console.c:478 +#, c-format +msgid " Connecting to Director %s:%d" +msgstr "" + +#: src/gnome2-console/console.c:479 +#, c-format +msgid "" +"Connecting to Director %s:%d\n" +"\n" +msgstr "" + +#: src/gnome2-console/console.c:494 src/wx-console/console_thread.cpp:360 +#, c-format +msgid "Passphrase for Console \"%s\" TLS private key: " +msgstr "" + +#: src/gnome2-console/console.c:516 src/wx-console/console_thread.cpp:381 +#, c-format +msgid "Passphrase for Director \"%s\" TLS private key: " +msgstr "" + +#: src/gnome2-console/console.c:535 src/tray-monitor/tray-monitor.c:860 +#: src/wx-console/console_thread.cpp:399 +msgid "Director daemon" +msgstr "" + +#: src/gnome2-console/console.c:547 +msgid " Initializing ..." +msgstr "" + +#: src/gnome2-console/console.c:583 +msgid " Connected" +msgstr "" + +#: src/gnome2-console/console.c:591 +msgid " Processing command ..." +msgstr "" + +#: src/gnome2-console/console.c:626 +msgid " At prompt waiting for input ..." +msgstr "" + +#: src/gnome2-console/console.c:746 +msgid " Ready" +msgstr "" + +#: src/gnome2-console/console_conf.c:135 +#, c-format +msgid "Console: name=%s\n" +msgstr "" + +#: src/gnome2-console/console_conf.c:138 +#, c-format +msgid "ConsoleFont: name=%s font face=%s\n" +msgstr "" + +#: src/gnome2-console/interface.c:32 +msgid "_Connect" +msgstr "" + +#: src/gnome2-console/interface.c:33 src/gnome2-console/interface.c:232 +msgid "Connect to Director" +msgstr "" + +#: src/gnome2-console/interface.c:39 +msgid "_Disconnect" +msgstr "" + +#: src/gnome2-console/interface.c:40 +msgid "Disconnect from Director" +msgstr "" + +#: src/gnome2-console/interface.c:93 +msgid "_Display Messages" +msgstr "" + +#: src/gnome2-console/interface.c:129 +msgid "_File" +msgstr "" + +#: src/gnome2-console/interface.c:136 +msgid "_Edit" +msgstr "" + +#: src/gnome2-console/interface.c:143 +msgid "_View" +msgstr "" + +#: src/gnome2-console/interface.c:144 src/gnome2-console/interface.c:252 +msgid "Display Messages" +msgstr "" + +#: src/gnome2-console/interface.c:150 +msgid "_Settings" +msgstr "" + +#: src/gnome2-console/interface.c:157 +msgid "_Help" +msgstr "" + +#: src/gnome2-console/interface.c:197 +msgid "Bacula Console" +msgstr "" + +#: src/gnome2-console/interface.c:231 src/wx-console/wxbmainframe.cpp:229 +#: src/wx-console/wxbmainframe.cpp:597 +msgid "Connect" +msgstr "" + +#: src/gnome2-console/interface.c:241 +msgid "Run" +msgstr "" + +#: src/gnome2-console/interface.c:242 src/gnome2-console/interface.c:677 +#: src/gnome2-console/interface.c:690 +msgid "Run a Job" +msgstr "" + +#: src/gnome2-console/interface.c:251 +msgid "Msgs" +msgstr "" + +#: src/gnome2-console/interface.c:261 src/lib/util.c:292 +#: src/wx-console/wxbrestorepanel.cpp:384 +#: src/wx-console/wxbrestorepanel.cpp:1949 +msgid "Restore" +msgstr "" + +#: src/gnome2-console/interface.c:271 +msgid "Label" +msgstr "" + +#: src/gnome2-console/interface.c:299 +msgid " Command: " +msgstr "" + +#: src/gnome2-console/interface.c:307 +msgid "Enter Commands Here" +msgstr "" + +#: src/gnome2-console/interface.c:318 +msgid " Status: " +msgstr "" + +#: src/gnome2-console/interface.c:326 +msgid " " +msgstr "" + +#: src/gnome2-console/interface.c:422 +msgid "About Bacula Console" +msgstr "" + +#: src/gnome2-console/interface.c:436 +msgid "Bacula Console\n" +msgstr "" + +#: src/gnome2-console/interface.c:444 +msgid "Copyright (c) 2000 - 2004, Kern Sibbald and John Walker" +msgstr "" + +#: src/gnome2-console/interface.c:450 +msgid "Authors: Kern Sibbald and John Walker" +msgstr "" + +#: src/gnome2-console/interface.c:456 +msgid "It comes by night and sucks the essence from your computers" +msgstr "" + +#: src/gnome2-console/interface.c:521 src/gnome2-console/interface.c:536 +msgid "Select Director" +msgstr "" + +#: src/gnome2-console/interface.c:708 src/gnome2-console/interface.c:1616 +msgid "Job:" +msgstr "" + +#: src/gnome2-console/interface.c:728 +msgid " Type:" +msgstr "" + +#: src/gnome2-console/interface.c:757 src/gnome2-console/interface.c:1644 +#: src/wx-console/wxbrestorepanel.cpp:1862 +msgid "Client:" +msgstr "" + +#: src/gnome2-console/interface.c:787 src/gnome2-console/interface.c:1672 +msgid "FileSet: " +msgstr "" + +#: src/gnome2-console/interface.c:813 src/wx-console/wxbrestorepanel.cpp:1868 +msgid "Priority:" +msgstr "" + +#: src/gnome2-console/interface.c:836 +msgid "Level:" +msgstr "" + +#: src/gnome2-console/interface.c:866 src/gnome2-console/interface.c:1418 +#: src/gnome2-console/interface.c:1700 +msgid "Pool:" +msgstr "" + +#: src/gnome2-console/interface.c:895 src/gnome2-console/interface.c:1393 +#: src/gnome2-console/interface.c:1728 src/wx-console/wxbrestorepanel.cpp:1864 +msgid "Storage:" +msgstr "" + +#: src/gnome2-console/interface.c:924 +msgid "Messages:" +msgstr "" + +#: src/gnome2-console/interface.c:952 +msgid "Where: " +msgstr "" + +#: src/gnome2-console/interface.c:970 src/wx-console/wxbrestorepanel.cpp:1866 +msgid "When:" +msgstr "" + +#: src/gnome2-console/interface.c:988 src/wx-console/wxbrestorepanel.cpp:1847 +msgid "Bootstrap:" +msgstr "" + +#: src/gnome2-console/interface.c:1108 +msgid "_New" +msgstr "" + +#: src/gnome2-console/interface.c:1177 +msgid "Restore File Selection" +msgstr "" + +#: src/gnome2-console/interface.c:1226 +msgid "Current dir:" +msgstr "" + +#: src/gnome2-console/interface.c:1252 +msgid "Files Selected: " +msgstr "" + +#: src/gnome2-console/interface.c:1373 src/gnome2-console/interface.c:1383 +msgid "Label a Volume" +msgstr "" + +#: src/gnome2-console/interface.c:1444 +msgid "Volume Name:" +msgstr "" + +#: src/gnome2-console/interface.c:1459 +msgid "Slot:" +msgstr "" + +#: src/gnome2-console/interface.c:1585 +msgid "Restore Files Dialog" +msgstr "" + +#: src/gnome2-console/interface.c:1599 +msgid "Restore Files" +msgstr "" + +#: src/gnome2-console/interface.c:1756 +msgid "Before:" +msgstr "" + +#: src/gnome2-console/interface.c:1799 +msgid "Select Files" +msgstr "" + +#: src/gnome2-console/interface.c:1883 +msgid "Progress" +msgstr "" + +#: src/gnome2-console/restore.c:121 +msgid "Mark" +msgstr "" + +#: src/gnome2-console/restore.c:121 +msgid "File" +msgstr "" + +#: src/gnome2-console/restore.c:121 +msgid "Mode" +msgstr "" + +#: src/gnome2-console/restore.c:121 src/wx-console/wxbrestorepanel.cpp:288 +msgid "User" +msgstr "" + +#: src/gnome2-console/restore.c:121 src/wx-console/wxbrestorepanel.cpp:292 +msgid "Group" +msgstr "" + +#: src/gnome2-console/restore.c:121 src/wx-console/wxbrestorepanel.cpp:276 +msgid "Size" +msgstr "" + +#: src/gnome2-console/restore.c:121 src/wx-console/wxbrestorepanel.cpp:280 +msgid "Date" +msgstr "" + +#: src/gnome2-console/support.c:41 +#, c-format +msgid "Widget not found: %s" +msgstr "" + +#: src/gnome2-console/support.c:60 src/gnome2-console/support.c:85 +#, c-format +msgid "Couldn't find pixmap file: %s" +msgstr "" + +#: src/gnome2-console/support.c:92 +#, c-format +msgid "Failed to load pixbuf file: %s: %s\n" +msgstr "" + +#: src/lib/tls.c:105 +#, c-format +msgid "" +"Error with certificate at depth: %d, issuer = %s, subject = %s, ERR=%d:%s\n" +msgstr "" + +#: src/lib/tls.c:152 +msgid "Error initializing SSL context" +msgstr "" + +#: src/lib/tls.c:173 +msgid "Error loading certificate verification stores" +msgstr "" + +#: src/lib/tls.c:178 +msgid "" +"Either a certificate file or a directory must be specified as a verification " +"store\n" +msgstr "" + +#: src/lib/tls.c:189 +msgid "Error loading certificate file" +msgstr "" + +#: src/lib/tls.c:197 +msgid "Error loading private key" +msgstr "" + +#: src/lib/tls.c:205 +msgid "Unable to open DH parameters file" +msgstr "" + +#: src/lib/tls.c:211 +msgid "Unable to load DH parameters from specified file" +msgstr "" + +#: src/lib/tls.c:215 +msgid "Failed to set TLS Diffie-Hellman parameters" +msgstr "" + +#: src/lib/tls.c:224 +msgid "Error setting cipher list, no valid ciphers available\n" +msgstr "" + +#: src/lib/tls.c:272 +msgid "Peer failed to present a TLS certificate\n" +msgstr "" + +#: src/lib/tls.c:314 +#, c-format +msgid "Peer %s failed to present a TLS certificate\n" +msgstr "" + +#: src/lib/tls.c:417 +msgid "Error creating file descriptor-based BIO" +msgstr "" + +#: src/lib/tls.c:428 +msgid "Error creating new SSL object" +msgstr "" + +#: src/lib/tls.c:492 src/lib/tls.c:515 +msgid "Connect failure" +msgstr "" + +#: src/lib/tls.c:592 src/lib/tls.c:596 +msgid "TLS shutdown failure." +msgstr "" + +#: src/lib/tls.c:645 src/lib/tls.c:665 +msgid "TLS read/write failure." +msgstr "" + +#: src/lib/tls.c:723 src/lib/tls.c:780 src/stored/dev.c:209 +#: src/stored/dev.c:227 src/stored/dev.c:233 src/stored/stored_conf.c:593 +#, c-format +msgid "Unable to init mutex: ERR=%s\n" +msgstr "" + +#: src/lib/tls.c:743 src/lib/tls.c:812 +#, c-format +msgid "Unable to destroy mutex: ERR=%s\n" +msgstr "" + +#: src/lib/tls.c:877 +#, c-format +msgid "Unable to init OpenSSL threading: ERR=%s\n" +msgstr "" + +#: src/lib/tls.c:887 +msgid "Failed to seed OpenSSL PRNG\n" +msgstr "" + +#: src/lib/tls.c:913 +msgid "Failed to save OpenSSL PRNG\n" +msgstr "" + +#: src/lib/address_conf.c:50 +#, c-format +msgid "Only ipv4 and ipv6 are supported (%d)\n" +msgstr "" + +#: src/lib/address_conf.c:54 +#, c-format +msgid "Only ipv4 is supported (%d)\n" +msgstr "" + +#: src/lib/address_conf.c:163 +#, c-format +msgid "It was tried to assign a ipv6 address to a ipv4(%d)\n" +msgstr "" + +#: src/lib/address_conf.c:172 +#, c-format +msgid "It was tried to assign a ipv4 address to a ipv6(%d)\n" +msgstr "" + +#: src/lib/address_conf.c:251 +#, c-format +msgid "Can't add default address (%s)\n" +msgstr "" + +#: src/lib/address_conf.c:281 +msgid "the old style addresses cannot be mixed with new style" +msgstr "" + +#: src/lib/address_conf.c:304 +#, c-format +msgid "can't resolve service(%s)" +msgstr "" + +#: src/lib/address_conf.c:314 +#, c-format +msgid "can't resolve hostname(%s) %s" +msgstr "" + +#: src/lib/address_conf.c:403 +#, c-format +msgid "Expected a block begin { , got: %s" +msgstr "" + +#: src/lib/address_conf.c:408 +msgid "Empty addr block is not allowed" +msgstr "" + +#: src/lib/address_conf.c:412 +#, c-format +msgid "Expected a string, got: %s" +msgstr "" + +#: src/lib/address_conf.c:421 +#, c-format +msgid "Expected a string [ip|ipv4|ipv6], got: %s" +msgstr "" + +#: src/lib/address_conf.c:425 +#, c-format +msgid "Expected a string [ip|ipv4], got: %s" +msgstr "" + +#: src/lib/address_conf.c:430 src/lib/address_conf.c:460 +#, c-format +msgid "Expected a equal =, got: %s" +msgstr "" + +#: src/lib/address_conf.c:434 +#, c-format +msgid "Expected a block beginn { , got: %s" +msgstr "" + +#: src/lib/address_conf.c:441 src/lib/address_conf.c:456 +#, c-format +msgid "Expected a identifier [addr|port], got: %s" +msgstr "" + +#: src/lib/address_conf.c:446 +msgid "Only one port per address block" +msgstr "" + +#: src/lib/address_conf.c:452 +msgid "Only one addr per address block" +msgstr "" + +#: src/lib/address_conf.c:468 +#, c-format +msgid "Expected a number or a string, got: %s" +msgstr "" + +#: src/lib/address_conf.c:474 +#, c-format +msgid "Expected an IP number or a hostname, got: %s" +msgstr "" + +#: src/lib/address_conf.c:480 +msgid "State machine missmatch" +msgstr "" + +#: src/lib/address_conf.c:486 src/lib/address_conf.c:499 +#, c-format +msgid "Expected a end of block }, got: %s" +msgstr "" + +#: src/lib/address_conf.c:492 +#, c-format +msgid "Can't add hostname(%s) and port(%s) to addrlist (%s)" +msgstr "" + +#: src/lib/address_conf.c:508 +#, c-format +msgid "Expected a hostname or IP nummer, got: %s" +msgstr "" + +#: src/lib/address_conf.c:513 src/lib/address_conf.c:527 +#, c-format +msgid "can't add port (%s) to (%s)" +msgstr "" + +#: src/lib/address_conf.c:522 +#, c-format +msgid "Expected a port number or string, got: %s" +msgstr "" + +#: src/lib/attr.c:64 +#, c-format +msgid "Error scanning attributes: %s\n" +msgstr "" + +#: src/lib/berrno.c:48 +msgid "Child exited normally." +msgstr "" + +#: src/lib/berrno.c:55 +msgid "Unknown error during program execvp" +msgstr "" + +#: src/lib/berrno.c:58 +#, c-format +msgid "Child exited with code %d" +msgstr "" + +#: src/lib/berrno.c:66 +#, c-format +msgid "Child died from signal %d: %s" +msgstr "" + +#: src/lib/berrno.c:72 +msgid "Invalid errno. No error message possible." +msgstr "" + +#: src/lib/bget_msg.c:86 +msgid "Status OK\n" +msgstr "" + +#: src/lib/bget_msg.c:90 +#, c-format +msgid "bget_msg: unknown signal %d\n" +msgstr "" + +#: src/lib/bnet.c:109 +#, c-format +msgid "Attr spool write error. ERR=%s\n" +msgstr "" + +#: src/lib/bnet.c:209 src/lib/bnet.c:266 +#, c-format +msgid "Read expected %d got %d from %s:%s:%d\n" +msgstr "" + +#: src/lib/bnet.c:227 +#, c-format +msgid "Packet size too big from \"%s:%s:%d. Terminating connection.\n" +msgstr "" + +#: src/lib/bnet.c:256 +#, c-format +msgid "Read error from %s:%s:%d: ERR=%s\n" +msgstr "" + +#: src/lib/bnet.c:332 src/lib/bnet.c:348 +#, c-format +msgid "fread attr spool error. ERR=%s\n" +msgstr "" + +#: src/lib/bnet.c:392 +#, c-format +msgid "Write error sending len to %s:%s:%d: ERR=%s\n" +msgstr "" + +#: src/lib/bnet.c:397 src/lib/bnet.c:430 +#, c-format +msgid "Wrote %d bytes to %s:%s:%d, but only %d accepted.\n" +msgstr "" + +#: src/lib/bnet.c:424 +#, c-format +msgid "Write error sending %d bytes to %s:%s:%d: ERR=%s\n" +msgstr "" + +#: src/lib/bnet.c:450 src/lib/bnet.c:490 +msgid "TLS connection initialization failed.\n" +msgstr "" + +#: src/lib/bnet.c:458 +msgid "TLS Negotiation failed.\n" +msgstr "" + +#: src/lib/bnet.c:464 +msgid "" +"TLS certificate verification failed. Peer certificate did not match a " +"required commonName\n" +msgstr "" + +#: src/lib/bnet.c:502 +#, c-format +msgid "" +"TLS host certificate verification failed. Host %s did not match presented " +"certificate\n" +msgstr "" + +#: src/lib/bnet.c:516 src/lib/bnet.c:521 +msgid "TLS not configured.\n" +msgstr "" + +#: src/lib/bnet.c:617 +msgid "No problem." +msgstr "" + +#: src/lib/bnet.c:620 +msgid "Authoritative answer for host not found." +msgstr "" + +#: src/lib/bnet.c:623 +msgid "Non-authoritative for host not found, or ServerFail." +msgstr "" + +#: src/lib/bnet.c:626 +msgid "Non-recoverable errors, FORMERR, REFUSED, or NOTIMP." +msgstr "" + +#: src/lib/bnet.c:629 +msgid "Valid name, no data record of resquested type." +msgstr "" + +#: src/lib/bnet.c:632 +msgid "Unknown error." +msgstr "" + +#: src/lib/bnet.c:767 +#, c-format +msgid "gethostbyname() for host \"%s\" failed: ERR=%s\n" +msgstr "" + +#: src/lib/bnet.c:787 +#, c-format +msgid "Socket open error. proto=%d port=%d. ERR=%s\n" +msgstr "" + +#: src/lib/bnet.c:796 src/lib/bnet.c:821 src/lib/bnet_server.c:193 +#: src/lib/bnet_server.c:351 +#, c-format +msgid "Cannot set SO_KEEPALIVE on socket: %s\n" +msgstr "" + +#: src/lib/bnet.c:852 +#, c-format +msgid "" +"Could not connect to %s on %s:%d. ERR=%s\n" +"Retrying ...\n" +msgstr "" + +#: src/lib/bnet.c:858 +#, c-format +msgid "Unable to connect to %s on %s:%d. ERR=%s\n" +msgstr "" + +#: src/lib/bnet.c:936 +msgid "Could not malloc BSOCK data buffer\n" +msgstr "" + +#: src/lib/bnet.c:943 src/lib/bnet.c:967 +#, c-format +msgid "sockopt error: %s\n" +msgstr "" + +#: src/lib/bnet.c:949 src/lib/bnet.c:973 +#, c-format +msgid "Warning network buffer = %d bytes not max size.\n" +msgstr "" + +#: src/lib/bnet.c:953 src/lib/bnet.c:977 +#, c-format +msgid "Network buffer size %d not multiple of tape block size.\n" +msgstr "" + +#: src/lib/bnet.c:997 src/lib/bnet.c:1031 +#, c-format +msgid "fcntl F_GETFL error. ERR=%s\n" +msgstr "" + +#: src/lib/bnet.c:1003 src/lib/bnet.c:1037 src/lib/bnet.c:1062 +#, c-format +msgid "fcntl F_SETFL error. ERR=%s\n" +msgstr "" + +#: src/lib/bnet.c:1116 +#, c-format +msgid "Unknown sig %d" +msgstr "" + +#: src/lib/bnet_pkt.c:89 src/lib/bnet_pkt.c:147 +#, c-format +msgid "Unknown BPKT type: %d\n" +msgstr "" + +#: src/lib/bnet_server.c:96 +#, c-format +msgid "Cannot open stream socket. ERR=%s. Current %s All %s\n" +msgstr "" + +#: src/lib/bnet_server.c:109 src/lib/bnet_server.c:258 +#, c-format +msgid "Cannot set SO_REUSEADDR on socket: %s\n" +msgstr "" + +#: src/lib/bnet_server.c:118 +#, c-format +msgid "Cannot bind port %d: ERR=%s: Retrying ...\n" +msgstr "" + +#: src/lib/bnet_server.c:123 +#, c-format +msgid "Cannot bind port %d: ERR=%s.\n" +msgstr "" + +#: src/lib/bnet_server.c:134 +#, c-format +msgid "Could not init client queue: ERR=%s\n" +msgstr "" + +#: src/lib/bnet_server.c:157 src/lib/bnet_server.c:320 +#, c-format +msgid "Error in select: %s\n" +msgstr "" + +#: src/lib/bnet_server.c:178 src/lib/bnet_server.c:339 +#, c-format +msgid "Connection from %s:%d refused by hosts.access\n" +msgstr "" + +#: src/lib/bnet_server.c:204 +msgid "Could not create client BSOCK.\n" +msgstr "" + +#: src/lib/bnet_server.c:211 +#, c-format +msgid "Could not add job to client queue: ERR=%s\n" +msgstr "" + +#: src/lib/bnet_server.c:222 +#, c-format +msgid "Could not destroy client queue: ERR=%s\n" +msgstr "" + +#: src/lib/bnet_server.c:249 +#, c-format +msgid "Cannot open stream socket: %s\n" +msgstr "" + +#: src/lib/bnet_server.c:278 +#, c-format +msgid "Cannot bind port %d: ERR=%s: retrying ...\n" +msgstr "" + +#: src/lib/bnet_server.c:284 +msgid "Server socket" +msgstr "" + +#: src/lib/bnet_server.c:366 +#, c-format +msgid "Socket accept error for %s. ERR=%s\n" +msgstr "" + +#: src/lib/bpipe.c:282 src/lib/bpipe.c:361 +msgid "Program killed by Bacula watchdog (timeout)\n" +msgstr "" + +#: src/lib/bshm.c:69 +#, c-format +msgid "shmget failure key = %x\n" +msgstr "" + +#: src/lib/bshm.c:77 +#, c-format +msgid "Could not get %d bytes of shared memory: %s\n" +msgstr "" + +#: src/lib/bshm.c:102 +#, c-format +msgid "Could not attach shared memory: %s\n" +msgstr "" + +#: src/lib/bshm.c:123 +#, c-format +msgid "Error detaching shared memory: %s\n" +msgstr "" + +#: src/lib/bshm.c:139 +#, c-format +msgid "Could not destroy shared memory: %s\n" +msgstr "" + +#: src/lib/bsys.c:176 src/lib/bsys.c:192 src/lib/bsys.c:202 src/lib/bsys.c:214 +#, c-format +msgid "Out of memory: ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:256 +msgid "Buffer overflow.\n" +msgstr "" + +#: src/lib/bsys.c:322 +msgid "Bad errno" +msgstr "" + +#: src/lib/bsys.c:339 +msgid "Possible mutex deadlock.\n" +msgstr "" + +#: src/lib/bsys.c:343 src/lib/bsys.c:375 +#, c-format +msgid "Mutex lock failure. ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:346 +msgid "Possible mutex deadlock resolved.\n" +msgstr "" + +#: src/lib/bsys.c:358 +#, c-format +msgid "Mutex unlock not locked. ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:363 src/lib/bsys.c:385 +#, c-format +msgid "Mutex unlock failure. ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:399 +#, c-format +msgid "Memset for %d bytes at %s:%d\n" +msgstr "" + +#: src/lib/bsys.c:428 +#, c-format +msgid "Cannot open pid file. %s ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:432 +#, c-format +msgid "" +"%s is already running. pid=%d\n" +"Check file %s\n" +msgstr "" + +#: src/lib/bsys.c:445 +#, c-format +msgid "Could not open pid file. %s ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:565 +#, c-format +msgid "Could not create state file. %s ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:584 +#, c-format +msgid "Write final hdr error: ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:611 +#, c-format +msgid "Could not find specified group: %s\n" +msgstr "" + +#: src/lib/bsys.c:614 src/lib/bsys.c:618 +#, c-format +msgid "Could not set specified group: %s\n" +msgstr "" + +#: src/lib/bsys.c:627 +#, c-format +msgid "Could not find specified userid: %s\n" +msgstr "" + +#: src/lib/bsys.c:630 +#, c-format +msgid "Could not set specified userid: %s\n" +msgstr "" + +#: src/lib/btimers.c:241 +msgid "stop_btimer called with NULL btimer_id\n" +msgstr "" + +#: src/lib/cram-md5.c:76 src/lib/cram-md5.c:101 +msgid "1999 Authorization failed.\n" +msgstr "" + +#: src/lib/daemon.c:53 +#, c-format +msgid "Cannot fork to become daemon: %s\n" +msgstr "" + +#: src/lib/edit.c:400 +#, c-format +msgid "Illegal character \"%c\" in name.\n" +msgstr "" + +#: src/lib/edit.c:407 +msgid "Name too long.\n" +msgstr "" + +#: src/lib/events.c:161 +msgid "Events not available" +msgstr "" + +#: src/lib/jcr.c:278 +msgid "NULL jcr.\n" +msgstr "" + +#: src/lib/jcr.c:399 +#, c-format +msgid "JCR use_count=%d JobId=%d\n" +msgstr "" + +#: src/lib/jcr.c:680 +#, c-format +msgid "" +"Watchdog sending kill after %d secs to thread stalled reading Storage " +"daemon.\n" +msgstr "" + +#: src/lib/jcr.c:692 +#, c-format +msgid "" +"Watchdog sending kill after %d secs to thread stalled reading File daemon.\n" +msgstr "" + +#: src/lib/jcr.c:704 +#, c-format +msgid "" +"Watchdog sending kill after %d secs to thread stalled reading Director.\n" +msgstr "" + +#: src/lib/lex.c:79 src/wx-console/console_thread.cpp:186 +#, c-format +msgid "Problem probably begins at line %d.\n" +msgstr "" + +#: src/lib/lex.c:84 src/wx-console/console_thread.cpp:191 +#, c-format +msgid "" +"Config error: %s\n" +" : line %d, col %d of file %s\n" +"%s\n" +"%s" +msgstr "" + +#: src/lib/lex.c:88 +#, c-format +msgid "Config error: %s\n" +msgstr "" + +#: src/lib/lex.c:108 +msgid "Close of NULL file\n" +msgstr "" + +#: src/lib/lex.c:181 +msgid "get_char: called after EOF\n" +msgstr "" + +#: src/lib/lex.c:220 +#, c-format +msgid "Config token too long, file: %s, line %d, begins at line %d\n" +msgstr "" + +#: src/lib/lex.c:244 +msgid "none" +msgstr "" + +#: src/lib/lex.c:245 +msgid "comment" +msgstr "" + +#: src/lib/lex.c:246 +msgid "number" +msgstr "" + +#: src/lib/lex.c:247 +msgid "ip_addr" +msgstr "" + +#: src/lib/lex.c:248 +msgid "identifier" +msgstr "" + +#: src/lib/lex.c:249 +msgid "string" +msgstr "" + +#: src/lib/lex.c:250 +msgid "quoted_string" +msgstr "" + +#: src/lib/lex.c:286 +#, c-format +msgid "expected a positive integer number, got: %s" +msgstr "" + +#: src/lib/lex.c:292 +#, c-format +msgid "expected a postive integer number, got: %s" +msgstr "" + +#: src/lib/lex.c:504 +#, c-format +msgid "Cannot open included config file %s: %s\n" +msgstr "" + +#: src/lib/lex.c:539 +#, c-format +msgid "expected an integer or a range, got %s: %s" +msgstr "" + +#: src/lib/lex.c:553 src/lib/lex.c:561 src/lib/lex.c:572 src/lib/lex.c:580 +#, c-format +msgid "expected an integer number, got %s: %s" +msgstr "" + +#: src/lib/lex.c:590 +#, c-format +msgid "expected a name, got %s: %s" +msgstr "" + +#: src/lib/lex.c:594 +#, c-format +msgid "name %s length %d too long, max is %d\n" +msgstr "" + +#: src/lib/lex.c:602 +#, c-format +msgid "expected a string, got %s: %s" +msgstr "" + +#: src/lib/mem_pool.c:95 +#, c-format +msgid "MemPool index %d larger than max %d\n" +msgstr "" + +#: src/lib/mem_pool.c:113 src/lib/mem_pool.c:133 src/lib/mem_pool.c:168 +#: src/lib/mem_pool.c:239 src/lib/mem_pool.c:259 src/lib/mem_pool.c:297 +#: src/lib/mem_pool.c:550 +#, c-format +msgid "Out of memory requesting %d bytes\n" +msgstr "" + +#: src/lib/message.c:253 src/lib/message.c:263 +#, c-format +msgid "Could not open console message file %s: ERR=%s\n" +msgstr "" + +#: src/lib/message.c:268 +#, c-format +msgid "Could not get con mutex: ERR=%s\n" +msgstr "" + +#: src/lib/message.c:372 +#, c-format +msgid "open mail pipe %s failed: ERR=%s\n" +msgstr "" + +#: src/lib/message.c:378 +msgid "Bacula Message" +msgstr "" + +#: src/lib/message.c:431 +msgid "open mail pipe failed.\n" +msgstr "" + +#: src/lib/message.c:443 +#, c-format +msgid "close error: ERR=%s\n" +msgstr "" + +#: src/lib/message.c:454 +#, c-format +msgid "Mail prog: %s" +msgstr "" + +#: src/lib/message.c:463 +#, c-format +msgid "" +"Mail program terminated in error.\n" +"CMD=%s\n" +"ERR=%s\n" +msgstr "" + +#: src/lib/message.c:650 +#, c-format +msgid "" +"Operator mail program terminated in error.\n" +"CMD=%s\n" +"ERR=%s\n" +msgstr "" + +#: src/lib/message.c:667 src/lib/message.c:689 src/lib/message.c:705 +#, c-format +msgid "fopen %s failed: ERR=%s\n" +msgstr "" + +#: src/lib/message.c:933 +#, c-format +msgid "%s: ABORTING due to ERROR in %s:%d\n" +msgstr "" + +#: src/lib/message.c:937 +#, c-format +msgid "%s: ERROR TERMINATION at %s:%d\n" +msgstr "" + +#: src/lib/message.c:942 +#, c-format +msgid "%s: Fatal Error because: " +msgstr "" + +#: src/lib/message.c:944 +#, c-format +msgid "%s: Fatal Error at %s:%d because:\n" +msgstr "" + +#: src/lib/message.c:948 +#, c-format +msgid "%s: ERROR: " +msgstr "" + +#: src/lib/message.c:950 +#, c-format +msgid "%s: ERROR in %s:%d " +msgstr "" + +#: src/lib/message.c:953 +#, c-format +msgid "%s: Warning: " +msgstr "" + +#: src/lib/message.c:956 +#, c-format +msgid "%s: Security violation: " +msgstr "" + +#: src/lib/message.c:1032 +#, c-format +msgid "%s ABORTING due to ERROR\n" +msgstr "" + +#: src/lib/message.c:1035 +#, c-format +msgid "%s ERROR TERMINATION\n" +msgstr "" + +#: src/lib/message.c:1038 +#, c-format +msgid "%s: %s Fatal error: " +msgstr "" + +#: src/lib/message.c:1044 +#, c-format +msgid "%s: %s Error: " +msgstr "" + +#: src/lib/message.c:1050 +#, c-format +msgid "%s: %s Warning: " +msgstr "" + +#: src/lib/message.c:1053 +#, c-format +msgid "%s: %s Security violation: " +msgstr "" + +#: src/lib/parse_conf.c:160 +msgid "***UNKNOWN***" +msgstr "" + +#: src/lib/parse_conf.c:179 +#, c-format +msgid "Unable to initialize resource lock. ERR=%s\n" +msgstr "" + +#: src/lib/parse_conf.c:262 src/lib/parse_conf.c:281 +#, c-format +msgid "expected an =, got: %s" +msgstr "" + +#: src/lib/parse_conf.c:289 +#, c-format +msgid "Unknown item code: %d\n" +msgstr "" + +#: src/lib/parse_conf.c:328 +#, c-format +msgid "message type: %s not found" +msgstr "" + +#: src/lib/parse_conf.c:367 +#, c-format +msgid "Attempt to redefine name \"%s\" to \"%s\"." +msgstr "" + +#: src/lib/parse_conf.c:458 +#, c-format +msgid "Could not find config Resource %s referenced on line %d : %s\n" +msgstr "" + +#: src/lib/parse_conf.c:462 +#, c-format +msgid "Attempt to redefine resource \"%s\" referenced on line %d : %s\n" +msgstr "" + +#: src/lib/parse_conf.c:497 +#, c-format +msgid "Too many %s directives. Max. is %d. line %d: %s\n" +msgstr "" + +#: src/lib/parse_conf.c:507 +#, c-format +msgid "Could not find config Resource \"%s\" referenced on line %d : %s\n" +msgstr "" + +#: src/lib/parse_conf.c:569 +#, c-format +msgid "Missing config Resource \"%s\" referenced on line %d : %s\n" +msgstr "" + +#: src/lib/parse_conf.c:633 +#, c-format +msgid "expected a size number, got: %s" +msgstr "" + +#: src/lib/parse_conf.c:638 +#, c-format +msgid "expected a size, got: %s" +msgstr "" + +#: src/lib/parse_conf.c:675 src/lib/parse_conf.c:680 +#, c-format +msgid "expected a time period, got: %s" +msgstr "" + +#: src/lib/parse_conf.c:699 +#, c-format +msgid "Expect a %s or %s, got: %s" +msgstr "" + +#: src/lib/parse_conf.c:723 +#, c-format +msgid "Expected a Tape Label keyword, got: %s" +msgstr "" + +#: src/lib/parse_conf.c:772 +#, c-format +msgid "Cannot open config file \"%s\": %s\n" +msgstr "" + +#: src/lib/parse_conf.c:785 +#, c-format +msgid "Expected a Resource name identifier, got: %s" +msgstr "" + +#: src/lib/parse_conf.c:797 +#, c-format +msgid "expected resource name, got: %s" +msgstr "" + +#: src/lib/parse_conf.c:808 +#, c-format +msgid "not in resource definition: %s" +msgstr "" + +#: src/lib/parse_conf.c:833 +#, c-format +msgid "" +"Keyword \"%s\" not permitted in this resource.\n" +"Perhaps you left the trailing brace off of the previous resource." +msgstr "" + +#: src/lib/parse_conf.c:850 +#, c-format +msgid "unexpected token %d %s in resource definition" +msgstr "" + +#: src/lib/parse_conf.c:856 +#, c-format +msgid "Unknown parser state %d\n" +msgstr "" + +#: src/lib/parse_conf.c:861 +msgid "End of conf file reached with unclosed resource." +msgstr "" + +#: src/lib/pythonlib.c:108 +msgid "Could not initialize Python\n" +msgstr "" + +#: src/lib/pythonlib.c:113 +#, c-format +msgid "Could not Run Python string %s\n" +msgstr "" + +#: src/lib/pythonlib.c:125 +msgid "Could not initialize Python Job type.\n" +msgstr "" + +#: src/lib/pythonlib.c:130 +#, c-format +msgid "Could not import Python script %s/%s. Python disabled.\n" +msgstr "" + +#: src/lib/pythonlib.c:230 +msgid "Could not create Python Job Object.\n" +msgstr "" + +#: src/lib/pythonlib.c:243 src/lib/pythonlib.c:267 +#, c-format +msgid "Python function \"%s\" not found.\n" +msgstr "" + +#: src/lib/pythonlib.c:282 +#, c-format +msgid "Unknown Python daemon event %s\n" +msgstr "" + +#: src/lib/regex.c:1040 +msgid "Success" +msgstr "" + +#: src/lib/regex.c:1043 +msgid "No match" +msgstr "" + +#: src/lib/regex.c:1046 +msgid "Invalid regular expression" +msgstr "" + +#: src/lib/regex.c:1049 +msgid "Invalid collation character" +msgstr "" + +#: src/lib/regex.c:1052 +msgid "Invalid character class name" +msgstr "" + +#: src/lib/regex.c:1055 +msgid "Trailing backslash" +msgstr "" + +#: src/lib/regex.c:1058 +msgid "Invalid back reference" +msgstr "" + +#: src/lib/regex.c:1061 +msgid "Unmatched [ or [^" +msgstr "" + +#: src/lib/regex.c:1064 +msgid "Unmatched ( or \\(" +msgstr "" + +#: src/lib/regex.c:1067 +msgid "Unmatched \\{" +msgstr "" + +#: src/lib/regex.c:1070 +msgid "Invalid content of \\{\\}" +msgstr "" + +#: src/lib/regex.c:1073 +msgid "Invalid range end" +msgstr "" + +#: src/lib/regex.c:1076 +msgid "Memory exhausted" +msgstr "" + +#: src/lib/regex.c:1079 +msgid "Invalid preceding regular expression" +msgstr "" + +#: src/lib/regex.c:1082 +msgid "Premature end of regular expression" +msgstr "" + +#: src/lib/regex.c:1085 +msgid "Regular expression too big" +msgstr "" + +#: src/lib/regex.c:1088 +msgid "Unmatched ) or \\)" +msgstr "" + +#: src/lib/regex.c:5874 +msgid "No previous regular expression" +msgstr "" + +#: src/lib/res.c:66 +#, c-format +msgid "rwl_writelock failure at %s:%d: ERR=%s\n" +msgstr "" + +#: src/lib/res.c:76 +#, c-format +msgid "rwl_writeunlock failure at %s:%d:. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:289 +msgid "rwl_writeunlock called too many times.\n" +msgstr "" + +#: src/lib/rwlock.c:293 +msgid "rwl_writeunlock by non-owner.\n" +msgstr "" + +#: src/lib/rwlock.c:358 src/lib/semlock.c:248 +#, c-format +msgid "Write lock failed. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:365 src/lib/semlock.c:255 +#, c-format +msgid "Write unlock failed. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:375 src/lib/semlock.c:265 +#, c-format +msgid "Read lock failed. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:382 src/lib/semlock.c:272 +#, c-format +msgid "Read unlock failed. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:391 src/lib/semlock.c:281 +#, c-format +msgid "Thread %d found unchanged elements %d times\n" +msgstr "" + +#: src/lib/rwlock.c:423 src/lib/semlock.c:313 +#, c-format +msgid "Init rwlock failed. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:438 src/lib/semlock.c:328 +#, c-format +msgid "Create thread failed. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:449 src/lib/semlock.c:339 +#, c-format +msgid "Join thread failed. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:452 src/lib/semlock.c:342 +#, c-format +msgid "%02d: interval %d, writes %d, reads %d\n" +msgstr "" + +#: src/lib/rwlock.c:462 src/lib/semlock.c:352 +#, c-format +msgid "data %02d: value %d, %d writes\n" +msgstr "" + +#: src/lib/rwlock.c:467 src/lib/semlock.c:357 +#, c-format +msgid "Total: %d thread writes, %d data writes\n" +msgstr "" + +#: src/lib/rwlock.c:539 src/lib/semlock.c:429 +msgid "Try write lock" +msgstr "" + +#: src/lib/rwlock.c:545 src/lib/semlock.c:435 +msgid "Try read lock" +msgstr "" + +#: src/lib/rwlock.c:600 src/lib/semlock.c:490 +msgid "Create thread" +msgstr "" + +#: src/lib/rwlock.c:610 src/lib/semlock.c:500 +msgid "Join thread" +msgstr "" + +#: src/lib/rwlock.c:612 src/lib/semlock.c:502 +#, c-format +msgid "%02d: interval %d, updates %d, r_collisions %d, w_collisions %d\n" +msgstr "" + +#: src/lib/rwlock.c:624 src/lib/semlock.c:514 +#, c-format +msgid "data %02d: value %d, %d updates\n" +msgstr "" + +#: src/lib/semlock.c:185 +msgid "sem_unlock by non-owner.\n" +msgstr "" + +#: src/lib/signal.c:61 +msgid "Invalid signal number" +msgstr "" + +#: src/lib/signal.c:87 +#, c-format +msgid "Bacula interrupted by signal %d: %s\n" +msgstr "" + +#: src/lib/signal.c:100 +#, c-format +msgid "Kaboom! %s, %s got signal %d. Attempting traceback.\n" +msgstr "" + +#: src/lib/signal.c:102 +#, c-format +msgid "Kaboom! exepath=%s\n" +msgstr "" + +#: src/lib/signal.c:136 +#, c-format +msgid "Fork error: ERR=%s\n" +msgstr "" + +#: src/lib/signal.c:143 +#, c-format +msgid "Calling: %s %s %s\n" +msgstr "" + +#: src/lib/signal.c:145 +#, c-format +msgid "execv: %s failed: ERR=%s\n" +msgstr "" + +#: src/lib/signal.c:160 +#, c-format +msgid "Traceback complete, attempting cleanup ...\n" +msgstr "" + +#: src/lib/signal.c:168 +#, c-format +msgid "It looks like the traceback worked ...\n" +msgstr "" + +#: src/lib/signal.c:197 +#, c-format +msgid "BA_NSIG too small (%d) should be (%d)\n" +msgstr "" + +#: src/lib/signal.c:203 +msgid "UNKNOWN SIGNAL" +msgstr "" + +#: src/lib/signal.c:204 +msgid "Hangup" +msgstr "" + +#: src/lib/signal.c:205 +msgid "Interrupt" +msgstr "" + +#: src/lib/signal.c:206 +msgid "Quit" +msgstr "" + +#: src/lib/signal.c:207 +msgid "Illegal instruction" +msgstr "" + +#: src/lib/signal.c:208 +msgid "Trace/Breakpoint trap" +msgstr "" + +#: src/lib/signal.c:209 +msgid "Abort" +msgstr "" + +#: src/lib/signal.c:211 +msgid "EMT instruction (Emulation Trap)" +msgstr "" + +#: src/lib/signal.c:214 +msgid "IOT trap" +msgstr "" + +#: src/lib/signal.c:216 +msgid "BUS error" +msgstr "" + +#: src/lib/signal.c:217 +msgid "Floating-point exception" +msgstr "" + +#: src/lib/signal.c:218 +msgid "Kill, unblockable" +msgstr "" + +#: src/lib/signal.c:219 +msgid "User-defined signal 1" +msgstr "" + +#: src/lib/signal.c:220 +msgid "Segmentation violation" +msgstr "" + +#: src/lib/signal.c:221 +msgid "User-defined signal 2" +msgstr "" + +#: src/lib/signal.c:222 +msgid "Broken pipe" +msgstr "" + +#: src/lib/signal.c:223 +msgid "Alarm clock" +msgstr "" + +#: src/lib/signal.c:224 +msgid "Termination" +msgstr "" + +#: src/lib/signal.c:226 +msgid "Stack fault" +msgstr "" + +#: src/lib/signal.c:228 +msgid "Child status has changed" +msgstr "" + +#: src/lib/signal.c:229 +msgid "Continue" +msgstr "" + +#: src/lib/signal.c:230 +msgid "Stop, unblockable" +msgstr "" + +#: src/lib/signal.c:231 +msgid "Keyboard stop" +msgstr "" + +#: src/lib/signal.c:232 +msgid "Background read from tty" +msgstr "" + +#: src/lib/signal.c:233 +msgid "Background write to tty" +msgstr "" + +#: src/lib/signal.c:234 +msgid "Urgent condition on socket" +msgstr "" + +#: src/lib/signal.c:235 +msgid "CPU limit exceeded" +msgstr "" + +#: src/lib/signal.c:236 +msgid "File size limit exceeded" +msgstr "" + +#: src/lib/signal.c:237 +msgid "Virtual alarm clock" +msgstr "" + +#: src/lib/signal.c:238 +msgid "Profiling alarm clock" +msgstr "" + +#: src/lib/signal.c:239 +msgid "Window size change" +msgstr "" + +#: src/lib/signal.c:240 +msgid "I/O now possible" +msgstr "" + +#: src/lib/signal.c:242 +msgid "Power failure restart" +msgstr "" + +#: src/lib/signal.c:245 +msgid "No runnable lwp" +msgstr "" + +#: src/lib/signal.c:248 +msgid "SIGLWP special signal used by thread library" +msgstr "" + +#: src/lib/signal.c:251 +msgid "Checkpoint Freeze" +msgstr "" + +#: src/lib/signal.c:254 +msgid "Checkpoint Thaw" +msgstr "" + +#: src/lib/signal.c:257 +msgid "Thread Cancellation" +msgstr "" + +#: src/lib/signal.c:260 +msgid "Resource Lost (e.g. record-lock lost)" +msgstr "" + +#: src/lib/smartall.c:132 src/lib/smartall.c:223 src/lib/smartall.c:238 +msgid "Out of memory\n" +msgstr "" + +#: src/lib/smartall.c:160 +#, c-format +msgid "Attempt to free NULL called from %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:176 +#, c-format +msgid "qp->qnext->qprev != qp called from %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:180 +#, c-format +msgid "qp->qprev->qnext != qp called from %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:189 +#, c-format +msgid "Buffer overrun called from %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:260 +#, c-format +msgid "sm_realloc size: %d\n" +msgstr "" + +#: src/lib/smartall.c:301 +#, c-format +msgid "sm_realloc %d at %x from %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:363 +#, c-format +msgid "" +"\n" +"Orphaned buffers exist. Dump terminated following\n" +" discovery of bad links in chain of orphaned buffers.\n" +" Buffer address with bad links: %lx\n" +msgstr "" + +#: src/lib/smartall.c:374 +#, c-format +msgid "Orphaned buffer: %6u bytes allocated at line %d of %s %s\n" +msgstr "" + +#: src/lib/smartall.c:410 +#, c-format +msgid "Damaged buffer found. Called from %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:440 +#, c-format +msgid "" +"\n" +"Damaged buffers found at %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:443 +#, c-format +msgid " discovery of bad prev link.\n" +msgstr "" + +#: src/lib/smartall.c:446 +#, c-format +msgid " discovery of bad next link.\n" +msgstr "" + +#: src/lib/smartall.c:449 +#, c-format +msgid " discovery of data overrun.\n" +msgstr "" + +#: src/lib/smartall.c:452 +#, c-format +msgid " Buffer address: %lx\n" +msgstr "" + +#: src/lib/smartall.c:459 +#, c-format +msgid "Damaged buffer: %6u bytes allocated at line %d of %s %s\n" +msgstr "" + +#: src/lib/util.c:181 +msgid "Running" +msgstr "" + +#: src/lib/util.c:184 +msgid "Blocked" +msgstr "" + +#: src/lib/util.c:194 +msgid "Non-fatal error" +msgstr "" + +#: src/lib/util.c:197 src/lib/util.c:264 +msgid "Canceled" +msgstr "" + +#: src/lib/util.c:200 +msgid "Verify differences" +msgstr "" + +#: src/lib/util.c:203 +msgid "Waiting on FD" +msgstr "" + +#: src/lib/util.c:206 +msgid "Wait on SD" +msgstr "" + +#: src/lib/util.c:209 +msgid "Wait for new Volume" +msgstr "" + +#: src/lib/util.c:212 +msgid "Waiting for mount" +msgstr "" + +#: src/lib/util.c:215 +msgid "Waiting for Storage resource" +msgstr "" + +#: src/lib/util.c:218 +msgid "Waiting for Job resource" +msgstr "" + +#: src/lib/util.c:221 +msgid "Waiting for Client resource" +msgstr "" + +#: src/lib/util.c:224 +msgid "Waiting on Max Jobs" +msgstr "" + +#: src/lib/util.c:227 +msgid "Waiting for Start Time" +msgstr "" + +#: src/lib/util.c:230 +msgid "Waiting on Priority" +msgstr "" + +#: src/lib/util.c:237 +#, c-format +msgid "Unknown Job termination status=%d" +msgstr "" + +#: src/lib/util.c:261 +msgid "Fatal Error" +msgstr "" + +#: src/lib/util.c:267 +msgid "Differences" +msgstr "" + +#: src/lib/util.c:270 +msgid "Unknown term code" +msgstr "" + +#: src/lib/util.c:298 +msgid "Migrate" +msgstr "" + +#: src/lib/util.c:301 +msgid "Copy" +msgstr "" + +#: src/lib/util.c:304 +msgid "Unknown Type" +msgstr "" + +#: src/lib/util.c:336 +msgid "Verify Init Catalog" +msgstr "" + +#: src/lib/util.c:345 +msgid "Verify Data" +msgstr "" + +#: src/lib/util.c:647 +msgid "Working directory not defined. Cannot continue.\n" +msgstr "" + +#: src/lib/util.c:650 +#, c-format +msgid "Working Directory: \"%s\" not found. Cannot continue.\n" +msgstr "" + +#: src/lib/util.c:654 +#, c-format +msgid "Working Directory: \"%s\" is not a directory. Cannot continue.\n" +msgstr "" + +#: src/lib/var.c:2659 +msgid "everything ok" +msgstr "" + +#: src/lib/var.c:2660 +msgid "incomplete named character" +msgstr "" + +#: src/lib/var.c:2661 +msgid "incomplete hexadecimal value" +msgstr "" + +#: src/lib/var.c:2662 +msgid "invalid hexadecimal value" +msgstr "" + +#: src/lib/var.c:2663 +msgid "octal value too large" +msgstr "" + +#: src/lib/var.c:2664 +msgid "invalid octal value" +msgstr "" + +#: src/lib/var.c:2665 +msgid "incomplete octal value" +msgstr "" + +#: src/lib/var.c:2666 +msgid "incomplete grouped hexadecimal value" +msgstr "" + +#: src/lib/var.c:2667 +msgid "incorrect character class specification" +msgstr "" + +#: src/lib/var.c:2668 +msgid "invalid expansion configuration" +msgstr "" + +#: src/lib/var.c:2669 +msgid "out of memory" +msgstr "" + +#: src/lib/var.c:2670 +msgid "incomplete variable specification" +msgstr "" + +#: src/lib/var.c:2671 +msgid "undefined variable" +msgstr "" + +#: src/lib/var.c:2672 +msgid "input is neither text nor variable" +msgstr "" + +#: src/lib/var.c:2673 +msgid "unknown command character in variable" +msgstr "" + +#: src/lib/var.c:2674 +msgid "malformatted search and replace operation" +msgstr "" + +#: src/lib/var.c:2675 +msgid "unknown flag in search and replace operation" +msgstr "" + +#: src/lib/var.c:2676 +msgid "invalid regex in search and replace operation" +msgstr "" + +#: src/lib/var.c:2677 +msgid "missing parameter in command" +msgstr "" + +#: src/lib/var.c:2678 +msgid "empty search string in search and replace operation" +msgstr "" + +#: src/lib/var.c:2679 +msgid "start offset missing in cut operation" +msgstr "" + +#: src/lib/var.c:2680 +msgid "offsets in cut operation delimited by unknown character" +msgstr "" + +#: src/lib/var.c:2681 +msgid "range out of bounds in cut operation" +msgstr "" + +#: src/lib/var.c:2682 +msgid "offset out of bounds in cut operation" +msgstr "" + +#: src/lib/var.c:2683 +msgid "logic error in cut operation" +msgstr "" + +#: src/lib/var.c:2684 +msgid "malformatted transpose operation" +msgstr "" + +#: src/lib/var.c:2685 +msgid "source and target class mismatch in transpose operation" +msgstr "" + +#: src/lib/var.c:2686 +msgid "empty character class in transpose operation" +msgstr "" + +#: src/lib/var.c:2687 +msgid "incorrect character class in transpose operation" +msgstr "" + +#: src/lib/var.c:2688 +msgid "malformatted padding operation" +msgstr "" + +#: src/lib/var.c:2689 +msgid "width parameter missing in padding operation" +msgstr "" + +#: src/lib/var.c:2690 +msgid "fill string missing in padding operation" +msgstr "" + +#: src/lib/var.c:2691 +msgid "unknown quoted pair in search and replace operation" +msgstr "" + +#: src/lib/var.c:2692 +msgid "sub-matching reference out of range" +msgstr "" + +#: src/lib/var.c:2693 +msgid "invalid argument" +msgstr "" + +#: src/lib/var.c:2694 +msgid "incomplete quoted pair" +msgstr "" + +#: src/lib/var.c:2695 +msgid "lookup function does not support variable arrays" +msgstr "" + +#: src/lib/var.c:2696 +msgid "index of array variable contains an invalid character" +msgstr "" + +#: src/lib/var.c:2697 +msgid "index of array variable is incomplete" +msgstr "" + +#: src/lib/var.c:2698 +msgid "bracket expression in array variable's index not closed" +msgstr "" + +#: src/lib/var.c:2699 +msgid "division by zero error in index specification" +msgstr "" + +#: src/lib/var.c:2700 +msgid "unterminated loop construct" +msgstr "" + +#: src/lib/var.c:2701 +msgid "invalid character in loop limits" +msgstr "" + +#: src/lib/var.c:2702 +msgid "malformed operation argument list" +msgstr "" + +#: src/lib/var.c:2703 +msgid "undefined operation" +msgstr "" + +#: src/lib/var.c:2704 +msgid "formatting failure" +msgstr "" + +#: src/lib/var.c:2713 +msgid "unknown error" +msgstr "" + +#: src/lib/watchdog.c:74 +#, c-format +msgid "Unable to initialize watchdog lock. ERR=%s\n" +msgstr "" + +#: src/lib/watchdog.c:170 +msgid "BUG! register_watchdog called before start_watchdog\n" +msgstr "" + +#: src/lib/watchdog.c:173 +#, c-format +msgid "BUG! Watchdog %p has NULL callback\n" +msgstr "" + +#: src/lib/watchdog.c:176 +#, c-format +msgid "BUG! Watchdog %p has zero interval\n" +msgstr "" + +#: src/lib/watchdog.c:196 +msgid "BUG! unregister_watchdog_unlocked called before start_watchdog\n" +msgstr "" + +#: src/lib/watchdog.c:313 +#, c-format +msgid "rwl_writelock failure. ERR=%s\n" +msgstr "" + +#: src/lib/watchdog.c:327 +#, c-format +msgid "rwl_writeunlock failure. ERR=%s\n" +msgstr "" + +#: src/stored/acquire.c:96 +#, c-format +msgid "Hey! num_writers=%d!!!!\n" +msgstr "" + +#: src/stored/acquire.c:146 +#, c-format +msgid "Num_writers=%d not zero. Job %d canceled.\n" +msgstr "" + +#: src/stored/acquire.c:154 +#, c-format +msgid "No volumes specified. Job %d canceled.\n" +msgstr "" + +#: src/stored/acquire.c:182 src/stored/mount.c:73 +#, c-format +msgid "Job %d canceled.\n" +msgstr "" + +#: src/stored/acquire.c:193 +#, c-format +msgid "Open device %s Volume \"%s\" failed (EIO): ERR=%s\n" +msgstr "" + +#: src/stored/acquire.c:198 +#, c-format +msgid "Open device %s Volume \"%s\" failed: ERR=%s\n" +msgstr "" + +#: src/stored/acquire.c:263 src/stored/mount.c:67 +#, c-format +msgid "Too many errors trying to mount device %s.\n" +msgstr "" + +#: src/stored/acquire.c:272 +#, c-format +msgid "Ready to read from volume \"%s\" on device %s.\n" +msgstr "" + +#: src/stored/acquire.c:311 +#, c-format +msgid "Device %s is busy reading.\n" +msgstr "" + +#: src/stored/acquire.c:341 +#, c-format +msgid "Wanted Volume \"%s\", but device %s is busy writing on \"%s\" .\n" +msgstr "" + +#: src/stored/acquire.c:360 +#, c-format +msgid "" +"Cannot recycle volume \"%s\" on device %s because it is in use by another " +"job.\n" +msgstr "" + +#: src/stored/acquire.c:382 +#, c-format +msgid "Could not ready device %s for append.\n" +msgstr "" + +#: src/stored/acquire.c:459 src/stored/block.c:354 src/stored/block.c:677 +#: src/stored/block.c:746 +#, c-format +msgid "Could not create JobMedia record for Volume=\"%s\" Job=%s\n" +msgstr "" + +#: src/stored/acquire.c:501 +#, c-format +msgid "Alert: %s" +msgstr "" + +#: src/stored/acquire.c:509 +#, c-format +msgid "3997 Bad alert command: %s: ERR=%s.\n" +msgstr "" + +#: src/stored/ansi_label.c:83 +#, c-format +msgid "Read error on device %s in ANSI label. ERR=%s\n" +msgstr "" + +#: src/stored/ansi_label.c:93 +msgid "Insane! End of tape while reading ANSI label.\n" +msgstr "" + +#: src/stored/ansi_label.c:117 +msgid "No VOL1 label while reading ANSI/IBM label.\n" +msgstr "" + +#: src/stored/ansi_label.c:137 +#, c-format +msgid "Wanted ANSI Volume \"%s\" got \"%s\"\n" +msgstr "" + +#: src/stored/ansi_label.c:148 +msgid "No HDR1 label while reading ANSI label.\n" +msgstr "" + +#: src/stored/ansi_label.c:154 +#, c-format +msgid "ANSI/IBM Volume \"%s\" does not belong to Bacula.\n" +msgstr "" + +#: src/stored/ansi_label.c:165 +msgid "No HDR2 label while reading ANSI/IBM label.\n" +msgstr "" + +#: src/stored/ansi_label.c:179 +msgid "Unknown or bad ANSI/IBM label record.\n" +msgstr "" + +#: src/stored/ansi_label.c:186 +msgid "Too many records in while reading ANSI/IBM label.\n" +msgstr "" + +#: src/stored/ansi_label.c:285 +#, c-format +msgid "ANSI Volume label name \"%s\" longer than 6 chars.\n" +msgstr "" + +#: src/stored/ansi_label.c:302 +#, c-format +msgid "Could not write ANSI VOL1 label. ERR=%s\n" +msgstr "" + +#: src/stored/ansi_label.c:340 src/stored/ansi_label.c:369 +#, c-format +msgid "Could not write ANSI HDR1 label. ERR=%s\n" +msgstr "" + +#: src/stored/ansi_label.c:345 src/stored/ansi_label.c:376 +msgid "Could not write ANSI HDR1 label.\n" +msgstr "" + +#: src/stored/ansi_label.c:381 +#, c-format +msgid "Error writing EOF to tape. ERR=%s" +msgstr "" + +#: src/stored/ansi_label.c:386 +msgid "write_ansi_ibm_label called for non-ANSI/IBM type\n" +msgstr "" + +#: src/stored/append.c:49 +msgid "DCR is NULL!!!\n" +msgstr "" + +#: src/stored/append.c:54 +msgid "DEVICE is NULL!!!\n" +msgstr "" + +#: src/stored/append.c:66 +msgid "Unable to set network buffer size.\n" +msgstr "" + +#: src/stored/append.c:79 src/stored/append.c:88 src/stored/append.c:100 +#: src/stored/append.c:256 src/stored/append.c:271 src/stored/append.c:283 +#: src/stored/askdir.c:294 src/stored/askdir.c:295 +msgid "NULL Volume name. This shouldn't happen!!!\n" +msgstr "" + +#: src/stored/append.c:94 src/stored/btape.c:1854 +#, c-format +msgid "Write session label failed. ERR=%s\n" +msgstr "" + +#: src/stored/append.c:106 +#, c-format +msgid "Network send error to FD. ERR=%s\n" +msgstr "" + +#: src/stored/append.c:143 +#, c-format +msgid "Error reading data header from FD. ERR=%s\n" +msgstr "" + +#: src/stored/append.c:165 +#, c-format +msgid "Malformed data header from FD: %s\n" +msgstr "" + +#: src/stored/append.c:175 +msgid "File index from FD not positive or sequential\n" +msgstr "" + +#: src/stored/append.c:206 src/stored/append.c:276 src/stored/spool.c:248 +#, c-format +msgid "Fatal append error on device %s: ERR=%s\n" +msgstr "" + +#: src/stored/append.c:231 +#, c-format +msgid "Error updating file attributes. ERR=%s\n" +msgstr "" + +#: src/stored/append.c:244 +#, c-format +msgid "Network error on data channel. ERR=%s\n" +msgstr "" + +#: src/stored/append.c:265 src/stored/btape.c:1976 +#, c-format +msgid "Error writting end session label. ERR=%s\n" +msgstr "" + +#: src/stored/append.c:278 +msgid "Set ok=FALSE after write_block_to_device.\n" +msgstr "" + +#: src/stored/askdir.c:161 +msgid "Network error on bnet_recv in req_vol_info.\n" +msgstr "" + +#: src/stored/askdir.c:178 +#, c-format +msgid "Error getting Volume info: %s" +msgstr "" + +#: src/stored/askdir.c:299 src/stored/askdir.c:300 +msgid "Attempt to update_volume_info in read mode!!!\n" +msgstr "" + +#: src/stored/askdir.c:328 +#, c-format +msgid "Didn't get vol info vol=%s: ERR=%s" +msgstr "" + +#: src/stored/askdir.c:359 +#, c-format +msgid "Error creating JobMedia record: ERR=%s\n" +msgstr "" + +#: src/stored/askdir.c:366 +#, c-format +msgid "Error creating JobMedia record: %s\n" +msgstr "" + +#: src/stored/askdir.c:432 +#, c-format +msgid "Job %s canceled while waiting for mount on Storage Device \"%s\".\n" +msgstr "" + +#: src/stored/askdir.c:445 +#, c-format +msgid "" +"Job %s waiting. Cannot find any appendable volumes.\n" +"Please use the \"label\" command to create a new Volume for:\n" +" Storage: %s\n" +" Media type: %s\n" +" Pool: %s\n" +msgstr "" + +#: src/stored/askdir.c:469 src/stored/askdir.c:551 +#, c-format +msgid "Max time exceeded waiting to mount Storage Device %s for Job %s\n" +msgstr "" + +#: src/stored/askdir.c:479 +msgid "pthread error in mount_next_volume.\n" +msgstr "" + +#: src/stored/askdir.c:511 +msgid "Cannot request another volume: no volume name given.\n" +msgstr "" + +#: src/stored/askdir.c:517 +#, c-format +msgid "Job %s canceled while waiting for mount on Storage Device %s.\n" +msgstr "" + +#: src/stored/askdir.c:532 +#, c-format +msgid "Please mount Volume \"%s\" on Storage Device %s for Job %s\n" +msgstr "" + +#: src/stored/askdir.c:561 +msgid "pthread error in mount_volume\n" +msgstr "" + +#: src/stored/authenticate.c:53 +#, c-format +msgid "I only authenticate Directors, not %d\n" +msgstr "" + +#: src/stored/authenticate.c:120 +msgid "" +"Incorrect password given by Director.\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" + +#: src/stored/authenticate.c:178 +#, c-format +msgid "Unable to authenticate Director at %s.\n" +msgstr "" + +#: src/stored/authenticate.c:223 src/stored/authenticate.c:259 +#, c-format +msgid "" +"Incorrect authorization key from File daemon at %s rejected.\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" + +#: src/stored/autochanger.c:53 +#, c-format +msgid "No Changer Name given for device %s. Cannot continue.\n" +msgstr "" + +#: src/stored/autochanger.c:59 +#, c-format +msgid "No Changer Command given for device %s. Cannot continue.\n" +msgstr "" + +#: src/stored/autochanger.c:72 +#, c-format +msgid "" +"Media Type not the same for all devices in changer %s. Cannot continue.\n" +msgstr "" + +#: src/stored/autochanger.c:152 +#, c-format +msgid "3304 Issuing autochanger \"load slot %d, drive %d\" command.\n" +msgstr "" + +#: src/stored/autochanger.c:161 +#, c-format +msgid "3305 Autochanger \"load slot %d, drive %d\", status is OK.\n" +msgstr "" + +#: src/stored/autochanger.c:167 +#, c-format +msgid "3992 Bad autochanger \"load slot %d, drive %d\": ERR=%s.\n" +msgstr "" + +#: src/stored/autochanger.c:208 +msgid "3992 Missing Changer command.\n" +msgstr "" + +#: src/stored/autochanger.c:218 +#, c-format +msgid "3301 Issuing autochanger \"loaded drive %d\" command.\n" +msgstr "" + +#: src/stored/autochanger.c:227 +#, c-format +msgid "3302 Autochanger \"loaded drive %d\", result is Slot %d.\n" +msgstr "" + +#: src/stored/autochanger.c:231 +#, c-format +msgid "3302 Autochanger \"loaded drive %d\", result: nothing loaded.\n" +msgstr "" + +#: src/stored/autochanger.c:238 +#, c-format +msgid "3991 Bad autochanger \"loaded drive %d\" command: ERR=%s.\n" +msgstr "" + +#: src/stored/autochanger.c:297 src/stored/autochanger.c:380 +#, c-format +msgid "3307 Issuing autochanger \"unload slot %d, drive %d\" command.\n" +msgstr "" + +#: src/stored/autochanger.c:310 src/stored/autochanger.c:401 +#, c-format +msgid "3995 Bad autochanger \"unload slot %d, drive %d\": ERR=%s.\n" +msgstr "" + +#: src/stored/autochanger.c:369 +#, c-format +msgid "Volume %s is in use by device %s\n" +msgstr "" + +#: src/stored/autochanger.c:439 +#, c-format +msgid "3993 Device %s not an autochanger device.\n" +msgstr "" + +#: src/stored/autochanger.c:464 +#, c-format +msgid "3306 Issuing autochanger \"%s\" command.\n" +msgstr "" + +#: src/stored/autochanger.c:467 +msgid "3996 Open bpipe failed.\n" +msgstr "" + +#: src/stored/autochanger.c:494 +#, c-format +msgid "Autochanger error: ERR=%s\n" +msgstr "" + +#: src/stored/bcopy.c:58 +#, c-format +msgid "" +"Copyright (C) 2002-2005 Kern Sibbald.\n" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: bcopy [-d debug_level] \n" +" -b bootstrap specify a bootstrap file\n" +" -c specify configuration file\n" +" -d set debug level to nn\n" +" -i specify input Volume names (separated by |)\n" +" -o specify output Volume names (separated by |)\n" +" -p proceed inspite of errors\n" +" -v verbose\n" +" -w specify working directory (default /tmp)\n" +" -? print this message\n" +"\n" +msgstr "" + +#: src/stored/bcopy.c:137 src/stored/bextract.c:177 src/stored/bscan.c:221 +msgid "Wrong number of arguments: \n" +msgstr "" + +#: src/stored/bcopy.c:172 src/stored/btape.c:333 src/stored/device.c:266 +#, c-format +msgid "dev open failed: %s\n" +msgstr "" + +#: src/stored/bcopy.c:185 +msgid "Write of last block failed.\n" +msgstr "" + +#: src/stored/bcopy.c:188 +#, c-format +msgid "%u Jobs copied. %u records copied.\n" +msgstr "" + +#: src/stored/bcopy.c:205 src/stored/bscan.c:390 +#, c-format +msgid "Record: SessId=%u SessTim=%u FileIndex=%d Stream=%d len=%u\n" +msgstr "" + +#: src/stored/bcopy.c:220 +msgid "Volume is prelabeled. This volume cannot be copied.\n" +msgstr "" + +#: src/stored/bcopy.c:223 +msgid "Volume label not copied.\n" +msgstr "" + +#: src/stored/bcopy.c:235 src/stored/bcopy.c:242 src/stored/bcopy.c:265 +#: src/stored/btape.c:2342 +#, c-format +msgid "Cannot fixup device error. %s\n" +msgstr "" + +#: src/stored/bcopy.c:247 +msgid "EOM label not copied.\n" +msgstr "" + +#: src/stored/bcopy.c:250 +msgid "EOT label not copied.\n" +msgstr "" + +#: src/stored/bcopy.c:290 src/stored/bextract.c:479 src/stored/bls.c:443 +#: src/stored/bscan.c:1234 src/stored/btape.c:2690 +#, c-format +msgid "Mount Volume \"%s\" on device %s and press return when ready: " +msgstr "" + +#: src/stored/bextract.c:70 +#, c-format +msgid "" +"Copyright (C) 2000-2005 Kern Sibbald.\n" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: bextract \n" +" -b specify a bootstrap file\n" +" -c specify a configuration file\n" +" -d set debug level to nn\n" +" -e exclude list\n" +" -i include list\n" +" -p proceed inspite of I/O errors\n" +" -v verbose\n" +" -V specify Volume names (separated by |)\n" +" -? print this message\n" +"\n" +msgstr "" + +#: src/stored/bextract.c:127 src/stored/bls.c:128 +#, c-format +msgid "Could not open exclude file: %s, ERR=%s\n" +msgstr "" + +#: src/stored/bextract.c:142 src/stored/bls.c:142 +#, c-format +msgid "Could not open include file: %s, ERR=%s\n" +msgstr "" + +#: src/stored/bextract.c:198 +#, c-format +msgid "%d Program Name and/or Program Data Stream records ignored.\n" +msgstr "" + +#: src/stored/bextract.c:202 +#, c-format +msgid "%d Win32 data or Win32 gzip data stream records. Ignored.\n" +msgstr "" + +#: src/stored/bextract.c:226 +#, c-format +msgid "Cannot stat %s. It must exist. ERR=%s\n" +msgstr "" + +#: src/stored/bextract.c:230 +#, c-format +msgid "%s must be a directory.\n" +msgstr "" + +#: src/stored/bextract.c:251 +#, c-format +msgid "%u files restored.\n" +msgstr "" + +#: src/stored/bextract.c:278 src/stored/bextract.c:450 +msgid "Logic error output file should be open but is not.\n" +msgstr "" + +#: src/stored/bextract.c:285 src/stored/bls.c:364 src/stored/bscan.c:647 +msgid "Cannot continue.\n" +msgstr "" + +#: src/stored/bextract.c:347 +#, c-format +msgid "Seek error on %s: %s\n" +msgstr "" + +#: src/stored/bextract.c:400 +#, c-format +msgid "Uncompression error. ERR=%d\n" +msgstr "" + +#: src/stored/bextract.c:408 +msgid "===Write error===\n" +msgstr "" + +#: src/stored/bextract.c:441 +msgid "Got Program Name or Data Stream. Ignored.\n" +msgstr "" + +#: src/stored/block.c:79 +#, c-format +msgid "" +"Dump block %s %x: size=%d BlkNum=%d\n" +" Hdrcksum=%x cksum=%x\n" +msgstr "" + +#: src/stored/block.c:92 +#, c-format +msgid " Rec: VId=%u VT=%u FI=%s Strm=%s len=%d p=%x\n" +msgstr "" + +#: src/stored/block.c:148 +#, c-format +msgid "%d block read errors not printed.\n" +msgstr "" + +#: src/stored/block.c:236 src/stored/block.c:252 src/stored/block.c:262 +#, c-format +msgid "" +"Volume data error at %u:%u! Wanted ID: \"%s\", got \"%s\". Buffer " +"discarded.\n" +msgstr "" + +#: src/stored/block.c:276 +#, c-format +msgid "" +"Volume data error at %u:%u! Block length %u is insane (too large), probably " +"due to a bad archive.\n" +msgstr "" + +#: src/stored/block.c:302 +#, c-format +msgid "" +"Volume data error at %u:%u!\n" +"Block checksum mismatch in block=%u len=%d: calc=%x blk=%x\n" +msgstr "" + +#: src/stored/block.c:410 +msgid "Cannot write block. Device at EOM.\n" +msgstr "" + +#: src/stored/block.c:415 +msgid "Attempt to write on read-only Volume.\n" +msgstr "" + +#: src/stored/block.c:467 +#, c-format +msgid "User defined maximum volume capacity %s exceeded on device %s.\n" +msgstr "" + +#: src/stored/block.c:482 +#, c-format +msgid "Unable to write EOF. ERR=%s\n" +msgstr "" + +#: src/stored/block.c:508 src/stored/block.c:519 +msgid "Write block header zeroed.\n" +msgstr "" + +#: src/stored/block.c:537 +#, c-format +msgid "Write error at %u:%u on device %s. ERR=%s.\n" +msgstr "" + +#: src/stored/block.c:544 +#, c-format +msgid "End of Volume \"%s\" at %u:%u on device %s. Write of %u bytes got %d.\n" +msgstr "" + +#: src/stored/block.c:619 src/stored/block.c:625 +#, c-format +msgid "Backspace file at EOT failed. ERR=%s\n" +msgstr "" + +#: src/stored/block.c:632 +#, c-format +msgid "Backspace record at EOT failed. ERR=%s\n" +msgstr "" + +#: src/stored/block.c:649 +#, c-format +msgid "Re-read last block at EOT failed. ERR=%s" +msgstr "" + +#: src/stored/block.c:653 +msgid "Re-read of last block succeeded.\n" +msgstr "" + +#: src/stored/block.c:656 +#, c-format +msgid "Re-read of last block failed. Last block=%u Current block=%u.\n" +msgstr "" + +#: src/stored/block.c:685 +#, c-format +msgid "" +"Error writing final EOF to tape. This Volume may not be readable.\n" +"%s" +msgstr "" + +#: src/stored/block.c:795 src/stored/dvd.c:689 +#, c-format +msgid "" +"Error while writing, current part number is less than the total number of " +"parts (%d/%d, device=%s)\n" +msgstr "" + +#: src/stored/block.c:803 src/stored/block.c:913 +#, c-format +msgid "Unable to open device next part %s: ERR=%s\n" +msgstr "" + +#: src/stored/block.c:821 +#, c-format +msgid "" +"End of Volume \"%s\" at %u:%u on device %s (part_size=%s, free_space=%s, " +"free_space_errno=%d, errmsg=%s).\n" +msgstr "" + +#: src/stored/block.c:834 +#, c-format +msgid "" +"End of Volume \"%s\" at %u:%u on device %s (part_size=%s, free_space=%s, " +"free_space_errno=%d).\n" +msgstr "" + +#: src/stored/block.c:888 +#, c-format +msgid "Block buffer size looping problem on device %s\n" +msgstr "" + +#: src/stored/block.c:939 +#, c-format +msgid "Read error at file:blk %u:%u on device %s. ERR=%s.\n" +msgstr "" + +#: src/stored/block.c:952 +#, c-format +msgid "Read zero bytes at %u:%u on device %s.\n" +msgstr "" + +#: src/stored/block.c:965 +#, c-format +msgid "" +"Volume data error at %u:%u! Very short block of %d bytes on device %s " +"discarded.\n" +msgstr "" + +#: src/stored/block.c:990 +#, c-format +msgid "Block length %u is greater than buffer %u. Attempting recovery.\n" +msgstr "" + +#: src/stored/block.c:1009 +#, c-format +msgid "Setting block buffer size to %u bytes.\n" +msgstr "" + +#: src/stored/block.c:1024 +#, c-format +msgid "" +"Volume data error at %u:%u! Short block of %d bytes on device %s discarded.\n" +msgstr "" + +#: src/stored/bls.c:68 +#, c-format +msgid "" +"Copyright (C) 2000-2005 Kern Sibbald.\n" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: bls [options] \n" +" -b specify a bootstrap file\n" +" -c specify a config file\n" +" -d specify debug level\n" +" -e exclude list\n" +" -i include list\n" +" -j list jobs\n" +" -k list blocks\n" +" (no j or k option) list saved files\n" +" -L dump label\n" +" -p proceed inspite of errors\n" +" -v be verbose\n" +" -V specify Volume names (separated by |)\n" +" -? print this message\n" +"\n" +msgstr "" + +#: src/stored/bls.c:189 +msgid "No archive name specified\n" +msgstr "" + +#: src/stored/bls.c:224 +#, c-format +msgid "" +"\n" +"Warning, this Volume is a continuation of Volume %s\n" +msgstr "" + +#: src/stored/bls.c:267 +#, c-format +msgid "Got EOM at file %u on device %s, Volume \"%s\"\n" +msgstr "" + +#: src/stored/bls.c:278 +#, c-format +msgid "Mounted Volume \"%s\".\n" +msgstr "" + +#: src/stored/bls.c:280 +#, c-format +msgid "Got EOF at file %u on device %s, Volume \"%s\"\n" +msgstr "" + +#: src/stored/bls.c:304 +#, c-format +msgid "" +"File:blk=%u:%u blk_num=%u blen=%u First rec FI=%s SessId=%u SessTim=%u Strm=%" +"s rlen=%d\n" +msgstr "" + +#: src/stored/bls.c:313 +#, c-format +msgid "Block: %d size=%d\n" +msgstr "" + +#: src/stored/bls.c:380 +#, c-format +msgid "FileIndex=%d VolSessionId=%d VolSessionTime=%d Stream=%d DataLen=%d\n" +msgstr "" + +#: src/stored/bls.c:397 src/stored/read_record.c:322 +msgid "Fresh Volume Label" +msgstr "" + +#: src/stored/bls.c:400 src/stored/read_record.c:325 +msgid "Volume Label" +msgstr "" + +#: src/stored/bls.c:404 src/stored/label.c:969 +msgid "Begin Job Session" +msgstr "" + +#: src/stored/bls.c:408 src/stored/label.c:972 +msgid "End Job Session" +msgstr "" + +#: src/stored/bls.c:411 +msgid "End of Medium" +msgstr "" + +#: src/stored/bls.c:414 src/stored/label.c:981 +msgid "Unknown" +msgstr "" + +#: src/stored/bls.c:420 src/stored/read_record.c:343 +#, c-format +msgid "%s Record: VolSessionId=%d VolSessionTime=%d JobId=%d DataLen=%d\n" +msgstr "" + +#: src/stored/bscan.c:109 +#, c-format +msgid "" +"Copyright (C) 2001-2005 Kern Sibbald.\n" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: bscan [ options ] \n" +" -b bootstrap specify a bootstrap file\n" +" -c specify configuration file\n" +" -d set debug level to nn\n" +" -m update media info in database\n" +" -n specify the database name (default bacula)\n" +" -u specify database user name (default bacula)\n" +" -P specify database host (default NULL)\n" +" -p proceed inspite of I/O errors\n" +" -r list records\n" +" -s synchronize or store in database\n" +" -S show scan progress periodically\n" +" -v verbose\n" +" -V specify Volume names (separated by |)\n" +" -w specify working directory (default from conf file)\n" +" -? print this message\n" +"\n" +msgstr "" + +#: src/stored/bscan.c:234 src/stored/stored.c:265 +#, c-format +msgid "No Storage resource defined in %s. Cannot continue.\n" +msgstr "" + +#: src/stored/bscan.c:242 src/stored/stored.c:296 +#, c-format +msgid "No Working Directory defined in %s. Cannot continue.\n" +msgstr "" + +#: src/stored/bscan.c:250 +#, c-format +msgid "Working Directory: %s not found. Cannot continue.\n" +msgstr "" + +#: src/stored/bscan.c:254 +#, c-format +msgid "Working Directory: %s is not a directory. Cannot continue.\n" +msgstr "" + +#: src/stored/bscan.c:268 src/stored/bscan.c:341 +#, c-format +msgid "First Volume Size = %sn" +msgstr "" + +#: src/stored/bscan.c:274 +msgid "Could not init Bacula database\n" +msgstr "" + +#: src/stored/bscan.c:281 +#, c-format +msgid "Using Database: %s, User: %s\n" +msgstr "" + +#: src/stored/bscan.c:315 +#, c-format +msgid "Create JobMedia for Job %s\n" +msgstr "" + +#: src/stored/bscan.c:326 +#, c-format +msgid "Could not create JobMedia record for Volume=%s Job=%s\n" +msgstr "" + +#: src/stored/bscan.c:382 +#, c-format +msgid "done: %d%%\n" +msgstr "" + +#: src/stored/bscan.c:406 +msgid "Volume is prelabeled. This tape cannot be scanned.\n" +msgstr "" + +#: src/stored/bscan.c:418 +#, c-format +msgid "Pool record for %s found in DB.\n" +msgstr "" + +#: src/stored/bscan.c:422 +#, c-format +msgid "VOL_LABEL: Pool record not found for Pool: %s\n" +msgstr "" + +#: src/stored/bscan.c:428 +#, c-format +msgid "VOL_LABEL: PoolType mismatch. DB=%s Vol=%s\n" +msgstr "" + +#: src/stored/bscan.c:432 +#, c-format +msgid "Pool type \"%s\" is OK.\n" +msgstr "" + +#: src/stored/bscan.c:442 +#, c-format +msgid "Media record for %s found in DB.\n" +msgstr "" + +#: src/stored/bscan.c:449 +#, c-format +msgid "VOL_LABEL: Media record not found for Volume: %s\n" +msgstr "" + +#: src/stored/bscan.c:456 +#, c-format +msgid "VOL_LABEL: MediaType mismatch. DB=%s Vol=%s\n" +msgstr "" + +#: src/stored/bscan.c:460 +#, c-format +msgid "Media type \"%s\" is OK.\n" +msgstr "" + +#: src/stored/bscan.c:469 +#, c-format +msgid "VOL_LABEL: OK for Volume: %s\n" +msgstr "" + +#: src/stored/bscan.c:476 +#, c-format +msgid "%d \"errors\" ignored before first Start of Session record.\n" +msgstr "" + +#: src/stored/bscan.c:487 +#, c-format +msgid "SOS_LABEL: Found Job record for JobId: %d\n" +msgstr "" + +#: src/stored/bscan.c:492 +#, c-format +msgid "SOS_LABEL: Job record not found for JobId: %d\n" +msgstr "" + +#: src/stored/bscan.c:532 +#, c-format +msgid "SOS_LABEL: VolSessId mismatch for JobId=%u. DB=%d Vol=%d\n" +msgstr "" + +#: src/stored/bscan.c:538 +#, c-format +msgid "SOS_LABEL: VolSessTime mismatch for JobId=%u. DB=%d Vol=%d\n" +msgstr "" + +#: src/stored/bscan.c:544 +#, c-format +msgid "SOS_LABEL: PoolId mismatch for JobId=%u. DB=%d Vol=%d\n" +msgstr "" + +#: src/stored/bscan.c:562 src/stored/bscan.c:1013 +#, c-format +msgid "Could not find SessId=%d SessTime=%d for EOS record.\n" +msgstr "" + +#: src/stored/bscan.c:606 +#, c-format +msgid "Could not update job record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:617 +#, c-format +msgid "End of all Volumes. VolFiles=%u VolBlocks=%u VolBytes=%s\n" +msgstr "" + +#: src/stored/bscan.c:629 +#, c-format +msgid "Could not find Job for SessId=%d SessTime=%d record.\n" +msgstr "" + +#: src/stored/bscan.c:665 +#, c-format +msgid "%s file records. At file:blk=%s:%s bytes=%s\n" +msgstr "" + +#: src/stored/bscan.c:708 +#, c-format +msgid "Got MD5 record: %s\n" +msgstr "" + +#: src/stored/bscan.c:717 +#, c-format +msgid "Got SHA1 record: %s\n" +msgstr "" + +#: src/stored/bscan.c:725 +#, c-format +msgid "Got Prog Names Stream: %s\n" +msgstr "" + +#: src/stored/bscan.c:731 +msgid "Got Prog Data Stream record.\n" +msgstr "" + +#: src/stored/bscan.c:735 +#, c-format +msgid "Unknown stream type!!! stream=%d data=%s\n" +msgstr "" + +#: src/stored/bscan.c:799 +#, c-format +msgid "Could not create File Attributes record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:805 +#, c-format +msgid "Created File record: %s\n" +msgstr "" + +#: src/stored/bscan.c:842 +#, c-format +msgid "Could not create media record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:846 src/stored/bscan.c:867 +#, c-format +msgid "Could not update media record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:850 +#, c-format +msgid "Created Media record for Volume: %s\n" +msgstr "" + +#: src/stored/bscan.c:871 +#, c-format +msgid "Updated Media record at end of Volume: %s\n" +msgstr "" + +#: src/stored/bscan.c:888 +#, c-format +msgid "Could not create pool record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:892 +#, c-format +msgid "Created Pool record for Pool: %s\n" +msgstr "" + +#: src/stored/bscan.c:912 +#, c-format +msgid "Created Client record for Client: %s\n" +msgstr "" + +#: src/stored/bscan.c:929 +#, c-format +msgid "Fileset \"%s\" already exists.\n" +msgstr "" + +#: src/stored/bscan.c:933 +#, c-format +msgid "Could not create FileSet record \"%s\". ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:938 +#, c-format +msgid "Created FileSet record \"%s\"\n" +msgstr "" + +#: src/stored/bscan.c:985 +#, c-format +msgid "Could not create JobId record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:991 +#, c-format +msgid "Could not update job start record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:994 +#, c-format +msgid "Created new JobId=%u record for original JobId=%u\n" +msgstr "" + +#: src/stored/bscan.c:1044 +#, c-format +msgid "Could not update JobId=%u record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:1049 +#, c-format +msgid "Updated Job termination record for JobId=%u TermStat=%c\n" +msgstr "" + +#: src/stored/bscan.c:1071 +#, c-format +msgid "Job Termination code: %d" +msgstr "" + +#: src/stored/bscan.c:1076 +#, c-format +msgid "" +"%s\n" +"JobId: %d\n" +"Job: %s\n" +"FileSet: %s\n" +"Backup Level: %s\n" +"Client: %s\n" +"Start time: %s\n" +"End time: %s\n" +"Files Written: %s\n" +"Bytes Written: %s\n" +"Volume Session Id: %d\n" +"Volume Session Time: %d\n" +"Last Volume Bytes: %s\n" +"Termination: %s\n" +"\n" +msgstr "" + +#: src/stored/bscan.c:1140 +#, c-format +msgid "Could not create JobMedia record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:1144 +#, c-format +msgid "Created JobMedia record JobId %d, MediaId %d\n" +msgstr "" + +#: src/stored/bscan.c:1160 +#, c-format +msgid "Could not find SessId=%d SessTime=%d for MD5/SHA1 record.\n" +msgstr "" + +#: src/stored/bscan.c:1174 +#, c-format +msgid "Could not add MD5/SHA1 to File record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:1179 +msgid "Updated MD5/SHA1 record\n" +msgstr "" + +#: src/stored/btape.c:157 src/stored/stored.c:107 +#, c-format +msgid "Tape block size (%d) not multiple of system size (%d)\n" +msgstr "" + +#: src/stored/btape.c:161 src/stored/stored.c:111 +#, c-format +msgid "Tape block size (%d) is not a power of 2\n" +msgstr "" + +#: src/stored/btape.c:164 +#, c-format +msgid "" +"\n" +"\n" +"!!!! Warning large disk addressing disabled. off_t=%d should be 8 or " +"more !!!!!\n" +"\n" +"\n" +msgstr "" + +#: src/stored/btape.c:171 +#, c-format +msgid "32 bit printf/scanf problem. i=%d x32=%u y32=%u\n" +msgstr "" + +#: src/stored/btape.c:180 +msgid "64 bit printf/scanf problem. i=%d x64=%" +msgstr "" + +#: src/stored/btape.c:180 +msgid " y64=%" +msgstr "" + +#: src/stored/btape.c:184 +#, c-format +msgid "Tape block granularity is %d bytes.\n" +msgstr "" + +#: src/stored/btape.c:251 +msgid "No archive name specified.\n" +msgstr "" + +#: src/stored/btape.c:255 +msgid "Improper number of arguments specified.\n" +msgstr "" + +#: src/stored/btape.c:338 +#, c-format +msgid "open device %s: OK\n" +msgstr "" + +#: src/stored/btape.c:359 +msgid "Enter Volume Name: " +msgstr "" + +#: src/stored/btape.c:366 +#, c-format +msgid "Device open failed. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:371 +#, c-format +msgid "Wrote Volume label for volume \"%s\".\n" +msgstr "" + +#: src/stored/btape.c:385 +msgid "Volume has no label.\n" +msgstr "" + +#: src/stored/btape.c:388 +msgid "Volume label read correctly.\n" +msgstr "" + +#: src/stored/btape.c:391 +#, c-format +msgid "I/O error on device: ERR=%s" +msgstr "" + +#: src/stored/btape.c:394 +msgid "Volume name error\n" +msgstr "" + +#: src/stored/btape.c:397 +#, c-format +msgid "Error creating label. ERR=%s" +msgstr "" + +#: src/stored/btape.c:400 +msgid "Volume version error.\n" +msgstr "" + +#: src/stored/btape.c:403 +msgid "Bad Volume label type.\n" +msgstr "" + +#: src/stored/btape.c:406 +msgid "Unknown error.\n" +msgstr "" + +#: src/stored/btape.c:424 +#, c-format +msgid "Bad status from load. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:426 +#, c-format +msgid "Loaded %s\n" +msgstr "" + +#: src/stored/btape.c:435 src/stored/btape.c:775 src/stored/btape.c:817 +#: src/stored/btape.c:887 src/stored/btape.c:929 src/stored/btape.c:1198 +#, c-format +msgid "Bad status from rewind. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:438 src/stored/btape.c:1206 +#, c-format +msgid "Rewound %s\n" +msgstr "" + +#: src/stored/btape.c:465 src/stored/btape.c:1210 +#, c-format +msgid "Bad status from weof %d. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:469 +#, c-format +msgid "Wrote 1 EOF to %s\n" +msgstr "" + +#: src/stored/btape.c:472 +#, c-format +msgid "Wrote %d EOFs to %s\n" +msgstr "" + +#: src/stored/btape.c:490 +msgid "Moved to end of medium.\n" +msgstr "" + +#: src/stored/btape.c:517 +#, c-format +msgid "Bad status from bsf. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:519 +#, c-format +msgid "Backspaced %d file%s.\n" +msgstr "" + +#: src/stored/btape.c:536 +#, c-format +msgid "Bad status from bsr. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:538 +#, c-format +msgid "Backspaced %d record%s.\n" +msgstr "" + +#: src/stored/btape.c:548 src/stored/status.c:227 +#, c-format +msgid "Configured device capabilities:\n" +msgstr "" + +#: src/stored/btape.c:566 +#, c-format +msgid "Device status:\n" +msgstr "" + +#: src/stored/btape.c:580 src/stored/status.c:259 +#, c-format +msgid "Device parameters:\n" +msgstr "" + +#: src/stored/btape.c:585 +#, c-format +msgid "Status:\n" +msgstr "" + +#: src/stored/btape.c:600 +msgid "" +"Test writting larger and larger records.\n" +"This is a torture test for records.\n" +"I am going to write\n" +"larger and larger records. It will stop when the record size\n" +"plus the header exceeds the block size (by default about 64K)\n" +msgstr "" + +#: src/stored/btape.c:608 src/stored/btape.c:1815 +msgid "Command aborted.\n" +msgstr "" + +#: src/stored/btape.c:624 +#, c-format +msgid "Block %d i=%d\n" +msgstr "" + +#: src/stored/btape.c:650 +msgid "Skipping read backwards test because BSR turned off.\n" +msgstr "" + +#: src/stored/btape.c:654 +msgid "" +"\n" +"=== Write, backup, and re-read test ===\n" +"\n" +"I'm going to write three records and an EOF\n" +"then backup over the EOF and re-read the last record.\n" +"Bacula does this after writing the last block on the\n" +"tape to verify that the block was written correctly.\n" +"\n" +"This is not an *essential* feature ...\n" +"\n" +msgstr "" + +#: src/stored/btape.c:667 src/stored/btape.c:678 src/stored/btape.c:689 +#: src/stored/btape.c:787 src/stored/btape.c:803 src/stored/btape.c:899 +#: src/stored/btape.c:915 src/stored/btape.c:1524 src/stored/btape.c:2407 +msgid "Error writing record to block.\n" +msgstr "" + +#: src/stored/btape.c:671 src/stored/btape.c:682 src/stored/btape.c:693 +#: src/stored/btape.c:791 src/stored/btape.c:807 src/stored/btape.c:903 +#: src/stored/btape.c:919 src/stored/btape.c:1528 src/stored/btape.c:2411 +msgid "Error writing block to device.\n" +msgstr "" + +#: src/stored/btape.c:674 +#, c-format +msgid "Wrote first record of %d bytes.\n" +msgstr "" + +#: src/stored/btape.c:685 +#, c-format +msgid "Wrote second record of %d bytes.\n" +msgstr "" + +#: src/stored/btape.c:696 +#, c-format +msgid "Wrote third record of %d bytes.\n" +msgstr "" + +#: src/stored/btape.c:703 src/stored/btape.c:708 +#, c-format +msgid "Backspace file failed! ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:712 +msgid "Backspaced over EOF OK.\n" +msgstr "" + +#: src/stored/btape.c:714 +#, c-format +msgid "Backspace record failed! ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:717 +msgid "Backspace record OK.\n" +msgstr "" + +#: src/stored/btape.c:720 src/stored/btape.c:726 +#, c-format +msgid "Read block failed! ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:731 +msgid "Bad data in record. Test failed!\n" +msgstr "" + +#: src/stored/btape.c:735 +msgid "" +"\n" +"Block re-read correct. Test succeeded!\n" +msgstr "" + +#: src/stored/btape.c:736 +msgid "" +"=== End Write, backup, and re-read test ===\n" +"\n" +msgstr "" + +#: src/stored/btape.c:743 +msgid "" +"This is not terribly serious since Bacula only uses\n" +"this function to verify the last block written to the\n" +"tape. Bacula will skip the last block verification\n" +"if you add:\n" +"\n" +"Backward Space Record = No\n" +"\n" +"to your Storage daemon's Device resource definition.\n" +msgstr "" + +#: src/stored/btape.c:767 +msgid "" +"\n" +"=== Write, rewind, and re-read test ===\n" +"\n" +"I'm going to write 1000 records and an EOF\n" +"then write 1000 records and an EOF, then rewind,\n" +"and re-read the data to verify that it is correct.\n" +"\n" +"This is an *essential* feature ...\n" +"\n" +msgstr "" + +#: src/stored/btape.c:795 src/stored/btape.c:811 src/stored/btape.c:907 +#: src/stored/btape.c:923 +#, c-format +msgid "Wrote 1000 blocks of %d bytes.\n" +msgstr "" + +#: src/stored/btape.c:820 src/stored/btape.c:932 +msgid "Rewind OK.\n" +msgstr "" + +#: src/stored/btape.c:827 src/stored/btape.c:981 +msgid "Got EOF on tape.\n" +msgstr "" + +#: src/stored/btape.c:832 +#, c-format +msgid "Read block %d failed! ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:838 +#, c-format +msgid "Read record failed. Block %d! ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:844 src/stored/btape.c:1011 +#, c-format +msgid "Bad data in record. Expected %d, got %d at byte %d. Test failed!\n" +msgstr "" + +#: src/stored/btape.c:851 +msgid "1000 blocks re-read correctly.\n" +msgstr "" + +#: src/stored/btape.c:854 src/stored/btape.c:1018 +msgid "" +"=== Test Succeeded. End Write, rewind, and re-read test ===\n" +"\n" +msgstr "" + +#: src/stored/btape.c:879 +msgid "" +"\n" +"=== Write, rewind, and position test ===\n" +"\n" +"I'm going to write 1000 records and an EOF\n" +"then write 1000 records and an EOF, then rewind,\n" +"and position to a few blocks and verify that it is correct.\n" +"\n" +"This is an *essential* feature ...\n" +"\n" +msgstr "" + +#: src/stored/btape.c:972 +#, c-format +msgid "Reposition to file:block %d:%d\n" +msgstr "" + +#: src/stored/btape.c:974 +msgid "Reposition error.\n" +msgstr "" + +#: src/stored/btape.c:987 +#, c-format +msgid "" +"Read block %d failed! file=%d blk=%d. ERR=%s\n" +"\n" +msgstr "" + +#: src/stored/btape.c:989 +msgid "" +"This may be because the tape drive block size is not\n" +" set to variable blocking as normally used by Bacula.\n" +" Please see the Tape Testing chapter in the manual and \n" +" look for using mt with defblksize and setoptions\n" +"If your tape drive block size is correct, then perhaps\n" +" your SCSI driver is *really* stupid and does not\n" +" correctly report the file:block after a FSF. In this\n" +" case try setting:\n" +" Fast Forward Space File = no\n" +" in your Device resource.\n" +msgstr "" + +#: src/stored/btape.c:1005 +#, c-format +msgid "Read record failed! ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1016 +#, c-format +msgid "Block %d re-read correctly.\n" +msgstr "" + +#: src/stored/btape.c:1037 +msgid "" +"\n" +"\n" +"=== Append files test ===\n" +"\n" +"This test is essential to Bacula.\n" +"\n" +"I'm going to write one record in file 0,\n" +" two records in file 1,\n" +" and three records in file 2\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1061 +msgid "Now moving to end of medium.\n" +msgstr "" + +#: src/stored/btape.c:1063 src/stored/btape.c:1293 +#, c-format +msgid "We should be in file 3. I am at file %d. %s\n" +msgstr "" + +#: src/stored/btape.c:1064 src/stored/btape.c:1082 src/stored/btape.c:1282 +#: src/stored/btape.c:1294 src/stored/btape.c:1307 src/stored/btape.c:1324 +msgid "This is correct!" +msgstr "" + +#: src/stored/btape.c:1064 src/stored/btape.c:1082 src/stored/btape.c:1282 +#: src/stored/btape.c:1294 src/stored/btape.c:1307 src/stored/btape.c:1324 +msgid "This is NOT correct!!!!" +msgstr "" + +#: src/stored/btape.c:1070 +msgid "" +"\n" +"Now the important part, I am going to attempt to append to the tape.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1077 +msgid "" +"Done appending, there should be no I/O errors\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1078 +msgid "Doing Bacula scan of blocks:\n" +msgstr "" + +#: src/stored/btape.c:1080 +msgid "End scanning the tape.\n" +msgstr "" + +#: src/stored/btape.c:1081 src/stored/btape.c:1306 +#, c-format +msgid "We should be in file 4. I am at file %d. %s\n" +msgstr "" + +#: src/stored/btape.c:1106 +msgid "" +"\n" +"Autochanger enabled, but no name or no command device specified.\n" +msgstr "" + +#: src/stored/btape.c:1110 +msgid "" +"\n" +"Ah, I see you have an autochanger configured.\n" +"To test the autochanger you must have a blank tape\n" +" that I can write on in Slot 1.\n" +msgstr "" + +#: src/stored/btape.c:1113 +msgid "" +"\n" +"Do you wish to continue with the Autochanger test? (y/n): " +msgstr "" + +#: src/stored/btape.c:1120 +msgid "" +"\n" +"\n" +"=== Autochanger test ===\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1129 +msgid "3301 Issuing autochanger \"loaded\" command.\n" +msgstr "" + +#: src/stored/btape.c:1138 +#, c-format +msgid "3991 Bad autochanger command: %s\n" +msgstr "" + +#: src/stored/btape.c:1139 +#, c-format +msgid "3991 result=\"%s\": ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1143 +#, c-format +msgid "Slot %d loaded. I am going to unload it.\n" +msgstr "" + +#: src/stored/btape.c:1145 +msgid "Nothing loaded in the drive. OK.\n" +msgstr "" + +#: src/stored/btape.c:1153 +#, c-format +msgid "3302 Issuing autochanger \"unload %d %d\" command.\n" +msgstr "" + +#: src/stored/btape.c:1158 +#, c-format +msgid "unload status=%s %d\n" +msgstr "" + +#: src/stored/btape.c:1158 +msgid "Bad" +msgstr "" + +#: src/stored/btape.c:1161 +#, c-format +msgid "3992 Bad autochanger command: %s\n" +msgstr "" + +#: src/stored/btape.c:1162 +#, c-format +msgid "3992 result=\"%s\": ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1172 +#, c-format +msgid "3303 Issuing autochanger \"load %d %d\" command.\n" +msgstr "" + +#: src/stored/btape.c:1180 +#, c-format +msgid "3303 Autochanger \"load %d %d\" status is OK.\n" +msgstr "" + +#: src/stored/btape.c:1184 +#, c-format +msgid "3993 Bad autochanger command: %s\n" +msgstr "" + +#: src/stored/btape.c:1185 +#, c-format +msgid "3993 result=\"%s\": ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1200 +msgid "" +"\n" +"The test failed, probably because you need to put\n" +"a longer sleep time in the mtx-script in the load) case.\n" +"Adding a 30 second sleep and trying again ...\n" +msgstr "" + +#: src/stored/btape.c:1213 +#, c-format +msgid "Wrote EOF to %s\n" +msgstr "" + +#: src/stored/btape.c:1217 +#, c-format +msgid "" +"\n" +"The test worked this time. Please add:\n" +"\n" +" sleep %d\n" +"\n" +"to your mtx-changer script in the load) case.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1222 +msgid "" +"\n" +"The test autochanger worked!!\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1233 +msgid "You must correct this error or the Autochanger will not work.\n" +msgstr "" + +#: src/stored/btape.c:1251 +msgid "" +"\n" +"\n" +"=== Forward space files test ===\n" +"\n" +"This test is essential to Bacula.\n" +"\n" +"I'm going to write five files then test forward spacing\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1276 +msgid "Now forward spacing 1 file.\n" +msgstr "" + +#: src/stored/btape.c:1278 src/stored/btape.c:1290 src/stored/btape.c:1303 +#: src/stored/btape.c:1321 src/stored/btape.c:1490 +#, c-format +msgid "Bad status from fsr. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1281 +#, c-format +msgid "We should be in file 1. I am at file %d. %s\n" +msgstr "" + +#: src/stored/btape.c:1288 +msgid "Now forward spacing 2 files.\n" +msgstr "" + +#: src/stored/btape.c:1301 +msgid "Now forward spacing 4 files.\n" +msgstr "" + +#: src/stored/btape.c:1313 +msgid "" +"The test worked this time. Please add:\n" +"\n" +" Fast Forward Space File = no\n" +"\n" +"to your Device resource for this drive.\n" +msgstr "" + +#: src/stored/btape.c:1319 +msgid "Now forward spacing 1 more file.\n" +msgstr "" + +#: src/stored/btape.c:1323 +#, c-format +msgid "We should be in file 5. I am at file %d. %s\n" +msgstr "" + +#: src/stored/btape.c:1328 +msgid "" +"\n" +"=== End Forward space files test ===\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1332 +msgid "" +"\n" +"The forward space file test failed.\n" +msgstr "" + +#: src/stored/btape.c:1334 +msgid "" +"You have Fast Forward Space File enabled.\n" +"I am turning it off then retrying the test.\n" +msgstr "" + +#: src/stored/btape.c:1340 +msgid "" +"You must correct this error or Bacula will not work.\n" +"Some systems, e.g. OpenBSD, require you to set\n" +" Use MTIOCGET= no\n" +"in your device resource. Use with caution.\n" +msgstr "" + +#: src/stored/btape.c:1372 +msgid "" +"\n" +"Append test failed. Attempting again.\n" +"Setting \"Hardware End of Medium = no\n" +" and \"Fast Forward Space File = no\n" +"and retrying append test.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1380 +msgid "" +"\n" +"\n" +"It looks like the test worked this time, please add:\n" +"\n" +" Hardware End of Medium = No\n" +"\n" +" Fast Forward Space File = No\n" +"to your Device resource in the Storage conf file.\n" +msgstr "" + +#: src/stored/btape.c:1387 +msgid "" +"\n" +"\n" +"That appears *NOT* to have corrected the problem.\n" +msgstr "" + +#: src/stored/btape.c:1392 +msgid "" +"\n" +"\n" +"It looks like the append failed. Attempting again.\n" +"Setting \"BSF at EOM = yes\" and retrying append test.\n" +msgstr "" + +#: src/stored/btape.c:1397 +msgid "" +"\n" +"\n" +"It looks like the test worked this time, please add:\n" +"\n" +" Hardware End of Medium = No\n" +" Fast Forward Space File = No\n" +" BSF at EOM = yes\n" +"\n" +"to your Device resource in the Storage conf file.\n" +msgstr "" + +#: src/stored/btape.c:1408 +msgid "" +"\n" +"Append test failed.\n" +"\n" +"\n" +"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n" +"Unable to correct the problem. You MUST fix this\n" +"problem before Bacula can use your tape drive correctly\n" +"\n" +"Perhaps running Bacula in fixed block mode will work.\n" +"Do so by setting:\n" +"\n" +"Minimum Block Size = nnn\n" +"Maximum Block Size = nnn\n" +"\n" +"in your Storage daemon's Device definition.\n" +"nnn must match your tape driver's block size, which\n" +"can be determined by reading your tape manufacturers\n" +"information, and the information on your kernel dirver.\n" +"Fixed block sizes, however, are not normally an ideal solution.\n" +"\n" +"Some systems, e.g. OpenBSD, require you to set\n" +" Use MTIOCGET= no\n" +"in your device resource. Use with caution.\n" +msgstr "" + +#: src/stored/btape.c:1429 +msgid "" +"\n" +"The above Bacula scan should have output identical to what follows.\n" +"Please double check it ...\n" +"=== Sample correct output ===\n" +"1 block of 64448 bytes in file 1\n" +"End of File mark.\n" +"2 blocks of 64448 bytes in file 2\n" +"End of File mark.\n" +"3 blocks of 64448 bytes in file 3\n" +"End of File mark.\n" +"1 block of 64448 bytes in file 4\n" +"End of File mark.\n" +"Total files=4, blocks=7, bytes = 451,136\n" +"=== End sample correct output ===\n" +"\n" +"If the above scan output is not identical to the\n" +"sample output, you MUST correct the problem\n" +"or Bacula will not be able to write multiple Jobs to \n" +"the tape.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1468 +#, c-format +msgid "Bad status from fsf. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1472 +msgid "Forward spaced 1 file.\n" +msgstr "" + +#: src/stored/btape.c:1475 +#, c-format +msgid "Forward spaced %d files.\n" +msgstr "" + +#: src/stored/btape.c:1494 +msgid "Forward spaced 1 record.\n" +msgstr "" + +#: src/stored/btape.c:1497 +#, c-format +msgid "Forward spaced %d records.\n" +msgstr "" + +#: src/stored/btape.c:1531 +#, c-format +msgid "Wrote one record of %d bytes.\n" +msgstr "" + +#: src/stored/btape.c:1533 +msgid "Wrote block to device.\n" +msgstr "" + +#: src/stored/btape.c:1548 +msgid "Enter length to read: " +msgstr "" + +#: src/stored/btape.c:1553 +msgid "Bad length entered, using default of 1024 bytes.\n" +msgstr "" + +#: src/stored/btape.c:1562 +#, c-format +msgid "Read of %d bytes gives stat=%d. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1585 src/stored/btape.c:1634 +#, c-format +msgid "End of tape\n" +msgstr "" + +#: src/stored/btape.c:1590 +#, c-format +msgid "Starting scan at file %u\n" +msgstr "" + +#: src/stored/btape.c:1595 src/stored/dev.c:1229 +#, c-format +msgid "read error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/btape.c:1597 +#, c-format +msgid "Bad status from read %d. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1600 src/stored/btape.c:1614 src/stored/btape.c:1678 +#: src/stored/btape.c:1690 src/stored/btape.c:1703 src/stored/btape.c:1719 +#, c-format +msgid "1 block of %d bytes in file %d\n" +msgstr "" + +#: src/stored/btape.c:1603 src/stored/btape.c:1617 src/stored/btape.c:1681 +#: src/stored/btape.c:1693 src/stored/btape.c:1706 src/stored/btape.c:1722 +#, c-format +msgid "%d blocks of %d bytes in file %d\n" +msgstr "" + +#: src/stored/btape.c:1625 src/stored/btape.c:1697 +#, c-format +msgid "End of File mark.\n" +msgstr "" + +#: src/stored/btape.c:1646 src/stored/btape.c:1750 +#, c-format +msgid "Total files=%d, blocks=%d, bytes = %s\n" +msgstr "" + +#: src/stored/btape.c:1710 +#, c-format +msgid "Short block read.\n" +msgstr "" + +#: src/stored/btape.c:1713 +#, c-format +msgid "Error reading block. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1737 +#, c-format +msgid "" +"Blk_block: %u dev_blk=%u blen=%u First rec FI=%s SessId=%u SessTim=%u Strm=%" +"s rlen=%d\n" +msgstr "" + +#: src/stored/btape.c:1759 +#, c-format +msgid "Device status: %u. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1789 +msgid "" +"\n" +"This command simulates Bacula writing to a tape.\n" +"It requires either one or two blank tapes, which it\n" +"will label and write.\n" +"\n" +"If you have an autochanger configured, it will use\n" +"the tapes that are in slots 1 and 2, otherwise, you will\n" +"be prompted to insert the tapes when necessary.\n" +"\n" +"It will print a status approximately\n" +"every 322 MB, and write an EOF every 3.2 GB. If you have\n" +"selected the simple test option, after writing the first tape\n" +"it will rewind it and re-read the last block written.\n" +"\n" +"If you have selected the multiple tape test, when the first tape\n" +"fills, it will ask for a second, and after writing a few more \n" +"blocks, it will stop. Then it will begin re-reading the\n" +"two tapes.\n" +"\n" +"This may take a long time -- hours! ...\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1806 +msgid "" +"Do you want to run the simplified test (s) with one tape\n" +"or the complete multiple tape (m) test: (s/m) " +msgstr "" + +#: src/stored/btape.c:1809 +msgid "Simple test (single tape) selected.\n" +msgstr "" + +#: src/stored/btape.c:1812 +msgid "Multiple tape test selected.\n" +msgstr "" + +#: src/stored/btape.c:1828 +msgid "Rewind failed.\n" +msgstr "" + +#: src/stored/btape.c:1831 +msgid "Write EOF failed.\n" +msgstr "" + +#: src/stored/btape.c:1858 +msgid "Wrote Start of Session label.\n" +msgstr "" + +#: src/stored/btape.c:1889 +#, c-format +msgid "%s Begin writing Bacula records to tape ...\n" +msgstr "" + +#: src/stored/btape.c:1891 +#, c-format +msgid "%s Begin writing Bacula records to first tape ...\n" +msgstr "" + +#: src/stored/btape.c:1932 +#, c-format +msgid "Wrote blk_block=%u, dev_blk_num=%u VolBytes=%s rate=%.1f KB/s\n" +msgstr "" + +#: src/stored/btape.c:1942 +#, c-format +msgid "%s Flush block, write EOF\n" +msgstr "" + +#: src/stored/btape.c:1953 +msgid "Not OK\n" +msgstr "" + +#: src/stored/btape.c:1981 +msgid "Set ok=false after write_block_to_device.\n" +msgstr "" + +#: src/stored/btape.c:1984 +msgid "Wrote End of Session label.\n" +msgstr "" + +#: src/stored/btape.c:2008 +#, c-format +msgid "Wrote state file last_block_num1=%d last_block_num2=%d\n" +msgstr "" + +#: src/stored/btape.c:2012 +#, c-format +msgid "Could not create state file: %s ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:2020 +#, c-format +msgid "" +"\n" +"\n" +"%s Done filling tape at %d:%d. Now beginning re-read of tape ...\n" +msgstr "" + +#: src/stored/btape.c:2024 +#, c-format +msgid "" +"\n" +"\n" +"%s Done filling tapes at %d:%d. Now beginning re-read of first tape ...\n" +msgstr "" + +#: src/stored/btape.c:2063 +msgid "" +"\n" +"The state file level has changed. You must redo\n" +"the fill command.\n" +msgstr "" + +#: src/stored/btape.c:2069 +#, c-format +msgid "" +"\n" +"Could not find the state file: %s ERR=%s\n" +"You must redo the fill command.\n" +msgstr "" + +#: src/stored/btape.c:2111 +msgid "Mount first tape. Press enter when ready: " +msgstr "" + +#: src/stored/btape.c:2131 +msgid "Rewinding.\n" +msgstr "" + +#: src/stored/btape.c:2136 +#, c-format +msgid "Reading the first 10000 records from %u:%u.\n" +msgstr "" + +#: src/stored/btape.c:2140 src/stored/btape.c:2207 +#, c-format +msgid "Reposition from %u:%u to %u:%u\n" +msgstr "" + +#: src/stored/btape.c:2143 src/stored/btape.c:2194 src/stored/btape.c:2210 +#, c-format +msgid "Reposition error. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:2146 +#, c-format +msgid "Reading block %u.\n" +msgstr "" + +#: src/stored/btape.c:2148 src/stored/btape.c:2199 src/stored/btape.c:2215 +#, c-format +msgid "Error reading block: ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:2153 +msgid "" +"\n" +"The last block on the tape matches. Test succeeded.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:2155 +msgid "" +"\n" +"The last block of the first tape matches.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:2180 +msgid "Mount second tape. Press enter when ready: " +msgstr "" + +#: src/stored/btape.c:2192 +#, c-format +msgid "Reposition from %u:%u to 0:1\n" +msgstr "" + +#: src/stored/btape.c:2197 src/stored/btape.c:2213 +#, c-format +msgid "Reading block %d.\n" +msgstr "" + +#: src/stored/btape.c:2203 +msgid "" +"\n" +"The first block on the second tape matches.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:2219 +msgid "" +"\n" +"The last block on the second tape matches. Test succeeded.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:2234 +#, c-format +msgid "10000 records read now at %d:%d\n" +msgstr "" + +#: src/stored/btape.c:2257 src/stored/btape.c:2268 src/stored/btape.c:2316 +msgid "Last block written" +msgstr "" + +#: src/stored/btape.c:2259 src/stored/btape.c:2269 +msgid "Block read back" +msgstr "" + +#: src/stored/btape.c:2260 +#, c-format +msgid "" +"\n" +"\n" +"The blocks differ at byte %u\n" +msgstr "" + +#: src/stored/btape.c:2261 +msgid "" +"\n" +"\n" +"!!!! The last block written and the block\n" +"that was read back differ. The test FAILED !!!!\n" +"This must be corrected before you use Bacula\n" +"to write multi-tape Volumes.!!!!\n" +msgstr "" + +#: src/stored/btape.c:2300 +#, c-format +msgid "Last block at: %u:%u this_dev_block_num=%d\n" +msgstr "" + +#: src/stored/btape.c:2314 +#, c-format +msgid "Block not written: FileIndex=%u blk_block=%u Size=%u\n" +msgstr "" + +#: src/stored/btape.c:2318 +msgid "Block not written" +msgstr "" + +#: src/stored/btape.c:2333 +#, c-format +msgid "End of tape %d:%d. VolumeCapacity=%s. Write rate = %.1f KB/s\n" +msgstr "" + +#: src/stored/btape.c:2383 +msgid "Test writing blocks of 64512 bytes to tape.\n" +msgstr "" + +#: src/stored/btape.c:2385 +msgid "How many blocks do you want to write? (1000): " +msgstr "" + +#: src/stored/btape.c:2400 +#, c-format +msgid "Begin writing %d Bacula blocks to tape ...\n" +msgstr "" + +#: src/stored/btape.c:2452 +#, c-format +msgid "Begin writing raw blocks of %u bytes.\n" +msgstr "" + +#: src/stored/btape.c:2472 +#, c-format +msgid "Write failed at block %u. stat=%d ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:2502 +#, c-format +msgid "Begin writing Bacula blocks of %u bytes.\n" +msgstr "" + +#: src/stored/btape.c:2521 +#, c-format +msgid "Write failed at block %u.\n" +msgstr "" + +#: src/stored/btape.c:2528 +msgid "test autochanger" +msgstr "" + +#: src/stored/btape.c:2529 +msgid "backspace file" +msgstr "" + +#: src/stored/btape.c:2530 +msgid "backspace record" +msgstr "" + +#: src/stored/btape.c:2531 +msgid "fill tape using Bacula writes" +msgstr "" + +#: src/stored/btape.c:2532 +msgid "list device capabilities" +msgstr "" + +#: src/stored/btape.c:2533 +msgid "clear tape errors" +msgstr "" + +#: src/stored/btape.c:2534 +msgid "go to end of Bacula data for append" +msgstr "" + +#: src/stored/btape.c:2535 +msgid "go to the physical end of medium" +msgstr "" + +#: src/stored/btape.c:2536 +msgid "fill tape, write onto second volume" +msgstr "" + +#: src/stored/btape.c:2537 +msgid "read filled tape" +msgstr "" + +#: src/stored/btape.c:2538 +msgid "forward space a file" +msgstr "" + +#: src/stored/btape.c:2539 +msgid "forward space a record" +msgstr "" + +#: src/stored/btape.c:2541 +msgid "write a Bacula label to the tape" +msgstr "" + +#: src/stored/btape.c:2542 +msgid "load a tape" +msgstr "" + +#: src/stored/btape.c:2543 +msgid "quit btape" +msgstr "" + +#: src/stored/btape.c:2544 +msgid "use write() to fill tape" +msgstr "" + +#: src/stored/btape.c:2545 +msgid "read and print the Bacula tape label" +msgstr "" + +#: src/stored/btape.c:2546 +msgid "test record handling functions" +msgstr "" + +#: src/stored/btape.c:2547 +msgid "rewind the tape" +msgstr "" + +#: src/stored/btape.c:2548 +msgid "read() tape block by block to EOT and report" +msgstr "" + +#: src/stored/btape.c:2549 +msgid "Bacula read block by block to EOT and report" +msgstr "" + +#: src/stored/btape.c:2550 +msgid "print tape status" +msgstr "" + +#: src/stored/btape.c:2551 +msgid "General test Bacula tape functions" +msgstr "" + +#: src/stored/btape.c:2552 +msgid "write an EOF on the tape" +msgstr "" + +#: src/stored/btape.c:2553 +msgid "write a single Bacula block" +msgstr "" + +#: src/stored/btape.c:2554 +msgid "read a single record" +msgstr "" + +#: src/stored/btape.c:2555 +msgid "quick fill command" +msgstr "" + +#: src/stored/btape.c:2576 +#, c-format +msgid "%s is an illegal command\n" +msgstr "" + +#: src/stored/btape.c:2586 +#, c-format +msgid "Interactive commands:\n" +msgstr "" + +#: src/stored/btape.c:2596 +#, c-format +msgid "" +"Copyright (C) 2000-2005 Kern Sibbald.\n" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: btape \n" +" -b specify bootstrap file\n" +" -c set configuration file to file\n" +" -d set debug level to nn\n" +" -p proceed inspite of I/O errors\n" +" -s turn off signals\n" +" -v be verbose\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:2687 +#, c-format +msgid "Mount second Volume on device %s and press return when ready: " +msgstr "" + +#: src/stored/btape.c:2714 +#, c-format +msgid "Mount blank Volume on device %s and press return when ready: " +msgstr "" + +#: src/stored/btape.c:2732 +#, c-format +msgid "End of Volume \"%s\"\n" +msgstr "" + +#: src/stored/btape.c:2744 +#, c-format +msgid "Read block=%u, VolBytes=%s rate=%.1f KB/s\n" +msgstr "" + +#: src/stored/btape.c:2759 src/stored/mount.c:500 +#, c-format +msgid "Cannot open Dev=%s, Vol=%s\n" +msgstr "" + +#: src/stored/butil.c:46 +msgid "Nohdr," +msgstr "" + +#: src/stored/butil.c:49 +msgid "partial," +msgstr "" + +#: src/stored/butil.c:52 +msgid "empty," +msgstr "" + +#: src/stored/butil.c:55 +msgid "Nomatch," +msgstr "" + +#: src/stored/butil.c:58 +msgid "cont," +msgstr "" + +#: src/stored/butil.c:130 +msgid "Volume name or names is too long. Please use a .bsr file.\n" +msgstr "" + +#: src/stored/butil.c:150 +#, c-format +msgid "Cannot find device \"%s\" in config file %s.\n" +msgstr "" + +#: src/stored/butil.c:157 +#, c-format +msgid "Cannot init device %s\n" +msgstr "" + +#: src/stored/butil.c:178 +#, c-format +msgid "Cannot open %s\n" +msgstr "" + +#: src/stored/butil.c:261 +#, c-format +msgid "Could not find device \"%s\" in config file %s.\n" +msgstr "" + +#: src/stored/butil.c:266 +#, c-format +msgid "Using device: \"%s\" for reading.\n" +msgstr "" + +#: src/stored/butil.c:269 +#, c-format +msgid "Using device: \"%s\" for writing.\n" +msgstr "" + +#: src/stored/butil.c:285 +msgid "Unexpected End of Data\n" +msgstr "" + +#: src/stored/butil.c:287 +msgid "Unexpected End of Tape\n" +msgstr "" + +#: src/stored/butil.c:289 +msgid "Unexpected End of File\n" +msgstr "" + +#: src/stored/butil.c:291 +msgid "Tape Door is Open\n" +msgstr "" + +#: src/stored/butil.c:293 +msgid "Unexpected Tape is Off-line\n" +msgstr "" + +#: src/stored/dev.c:112 +#, c-format +msgid "Unable to stat device %s: ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:123 +#, c-format +msgid "" +"%s is an unknown device type. Must be tape or directory\n" +" or have RequiresMount=yes for DVD. st_mode=%x\n" +msgstr "" + +#: src/stored/dev.c:179 +#, c-format +msgid "Unable to stat mount point %s: ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:186 +msgid "" +"Mount and unmount commands must defined for a device which requires mount.\n" +msgstr "" + +#: src/stored/dev.c:189 +msgid "Write part command must be defined for a device which requires mount.\n" +msgstr "" + +#: src/stored/dev.c:194 +#, c-format +msgid "Block size %u on device %s is too large, using default %u\n" +msgstr "" + +#: src/stored/dev.c:199 +#, c-format +msgid "Max block size %u not multiple of device %s block size.\n" +msgstr "" + +#: src/stored/dev.c:215 src/stored/dev.c:221 +#, c-format +msgid "Unable to init cond variable: ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:312 +msgid "Illegal mode given to open dev.\n" +msgstr "" + +#: src/stored/dev.c:355 src/stored/device.c:295 +#, c-format +msgid "Unable to open device %s: ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:423 src/stored/dev.c:481 +#, c-format +msgid "Could not open file device %s. No Volume name given.\n" +msgstr "" + +#: src/stored/dev.c:449 src/stored/dev.c:562 +#, c-format +msgid "Could not open: %s, ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:506 +#, c-format +msgid "" +"The media in the device %s is not empty, please blank it before writing " +"anything to it.\n" +msgstr "" + +#: src/stored/dev.c:523 +#, c-format +msgid "There is no valid media in the device %s.\n" +msgstr "" + +#: src/stored/dev.c:530 +#, c-format +msgid "Could not mount device %s.\n" +msgstr "" + +#: src/stored/dev.c:588 +#, c-format +msgid "Could not fstat: %s, ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:631 +#, c-format +msgid "Bad call to rewind. Device %s not open\n" +msgstr "" + +#: src/stored/dev.c:677 +#, c-format +msgid "Rewind error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:687 src/stored/dev.c:802 src/stored/dev.c:938 +#: src/stored/dev.c:1457 +#, c-format +msgid "lseek_dev error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:727 +msgid "unknown blocked code" +msgstr "" + +#: src/stored/dev.c:772 +#, c-format +msgid "Bad call to eod_dev. Device %s not open\n" +msgstr "" + +#: src/stored/dev.c:838 +#, c-format +msgid "ioctl MTEOM error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:846 src/stored/dev.c:978 +#, c-format +msgid "ioctl MTIOCGET error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:924 +msgid "Bad device call. Device not open\n" +msgstr "" + +#: src/stored/dev.c:937 +#, c-format +msgid "Seek error: ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:973 +msgid " Bacula status:" +msgstr "" + +#: src/stored/dev.c:974 src/stored/dev.c:1023 src/stored/dev.c:1025 +#, c-format +msgid " file=%d block=%d\n" +msgstr "" + +#: src/stored/dev.c:982 +msgid " Device status:" +msgstr "" + +#: src/stored/dev.c:1047 +msgid "Bad call to load_dev. Device not open\n" +msgstr "" + +#: src/stored/dev.c:1058 src/stored/dev.c:1071 +#, c-format +msgid "ioctl MTLOAD error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:1107 +#, c-format +msgid "ioctl MTOFFL error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:1148 +msgid "Bad call to fsf_dev. Device not open\n" +msgstr "" + +#: src/stored/dev.c:1158 src/stored/dev.c:1279 +#, c-format +msgid "Device %s at End of Tape.\n" +msgstr "" + +#: src/stored/dev.c:1183 src/stored/dev.c:1259 +#, c-format +msgid "ioctl MTFSF error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:1308 +msgid "Bad call to bsf_dev. Device not open\n" +msgstr "" + +#: src/stored/dev.c:1314 +#, c-format +msgid "Device %s cannot BSF because it is not a tape.\n" +msgstr "" + +#: src/stored/dev.c:1329 +#, c-format +msgid "ioctl MTBSF error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:1349 +msgid "Bad call to fsr. Device not open\n" +msgstr "" + +#: src/stored/dev.c:1358 +#, c-format +msgid "ioctl MTFSR not permitted on %s.\n" +msgstr "" + +#: src/stored/dev.c:1386 +#, c-format +msgid "ioctl MTFSR %d error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:1406 +msgid "Bad call to bsr_dev. Device not open\n" +msgstr "" + +#: src/stored/dev.c:1416 +#, c-format +msgid "ioctl MTBSR not permitted on %s.\n" +msgstr "" + +#: src/stored/dev.c:1429 +#, c-format +msgid "ioctl MTBSR error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:1446 +msgid "Bad call to reposition_dev. Device not open\n" +msgstr "" + +#: src/stored/dev.c:1514 +msgid "Bad call to weof_dev. Device not open\n" +msgstr "" + +#: src/stored/dev.c:1524 +msgid "Attempt to WEOF on non-appendable Volume\n" +msgstr "" + +#: src/stored/dev.c:1541 +#, c-format +msgid "ioctl MTWEOF error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:1583 +msgid "Got ENOTTY on read/write!\n" +msgstr "" + +#: src/stored/dev.c:1630 +#, c-format +msgid "unknown func code %d" +msgstr "" + +#: src/stored/dev.c:1636 +#, c-format +msgid "I/O function \"%s\" not supported on this device.\n" +msgstr "" + +#: src/stored/dev.c:1761 src/stored/dvd.c:734 +#, c-format +msgid "Unable to truncate device %s. ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:1800 +msgid "Bad call to term_dev. Device not open\n" +msgstr "" + +#: src/stored/device.c:100 +#, c-format +msgid "End of medium on Volume \"%s\" Bytes=%s Blocks=%s at %s.\n" +msgstr "" + +#: src/stored/device.c:114 +#, c-format +msgid "New volume \"%s\" mounted on device %s at %s.\n" +msgstr "" + +#: src/stored/device.c:126 +#, c-format +msgid "write_block_to_device Volume label failed. ERR=%s" +msgstr "" + +#: src/stored/device.c:162 +#, c-format +msgid "write_block_to_device overflow block failed. ERR=%s" +msgstr "" + +#: src/stored/device.c:297 +#, c-format +msgid "Unable to open archive %s: ERR=%s\n" +msgstr "" + +#: src/stored/device.c:332 +#, c-format +msgid "Device write lock failure. ERR=%s\n" +msgstr "" + +#: src/stored/device.c:340 +#, c-format +msgid "Device write unlock failure. ERR=%s\n" +msgstr "" + +#: src/stored/device.c:359 +#, c-format +msgid "pthread_cond_wait failure. ERR=%s\n" +msgstr "" + +#: src/stored/dircmd.c:140 +msgid "Connection request failed.\n" +msgstr "" + +#: src/stored/dircmd.c:149 +#, c-format +msgid "Invalid connection. Len=%d\n" +msgstr "" + +#: src/stored/dircmd.c:241 +#, c-format +msgid "3991 Bad setdebug command: %s\n" +msgstr "" + +#: src/stored/dircmd.c:262 +#, c-format +msgid "3904 Job %s not found.\n" +msgstr "" + +#: src/stored/dircmd.c:283 +#, c-format +msgid "3000 Job %s marked to be canceled.\n" +msgstr "" + +#: src/stored/dircmd.c:287 +msgid "3903 Error scanning cancel command.\n" +msgstr "" + +#: src/stored/dircmd.c:364 src/stored/dircmd.c:680 src/stored/dircmd.c:756 +#: src/stored/dircmd.c:819 src/stored/dircmd.c:874 src/stored/dircmd.c:918 +#, c-format +msgid "3999 Device \"%s\" not found or could not be opened.\n" +msgstr "" + +#: src/stored/dircmd.c:369 +#, c-format +msgid "3903 Error scanning label command: %s\n" +msgstr "" + +#: src/stored/dircmd.c:412 +#, c-format +msgid "3920 Cannot label Volume because it is already labeled: \"%s\"\n" +msgstr "" + +#: src/stored/dircmd.c:419 +msgid "3921 Wrong volume mounted.\n" +msgstr "" + +#: src/stored/dircmd.c:423 +msgid "3922 Cannot relabel an ANSI/IBM labeled Volume.\n" +msgstr "" + +#: src/stored/dircmd.c:431 src/stored/dircmd.c:440 +#, c-format +msgid "3912 Failed to label Volume: ERR=%s\n" +msgstr "" + +#: src/stored/dircmd.c:443 +#, c-format +msgid "3913 Cannot label Volume. Unknown status %d from read_volume_label()\n" +msgstr "" + +#: src/stored/dircmd.c:476 +#, c-format +msgid "3001 Mounted Volume: %s\n" +msgstr "" + +#: src/stored/dircmd.c:480 src/stored/dircmd.c:954 +#, c-format +msgid "" +"3902 Cannot mount Volume on Storage Device %s because:\n" +"%s" +msgstr "" + +#: src/stored/dircmd.c:508 src/stored/reserve.c:634 +#, c-format +msgid "" +"\n" +" Device \"%s\" requested by DIR could not be opened or does not exist.\n" +msgstr "" + +#: src/stored/dircmd.c:529 src/stored/reserve.c:630 +#, c-format +msgid "" +"\n" +" Device \"%s\" in changer \"%s\" requested by DIR could not be opened or " +"does not exist.\n" +msgstr "" + +#: src/stored/dircmd.c:593 src/stored/dircmd.c:646 +#, c-format +msgid "3901 open device failed: ERR=%s\n" +msgstr "" + +#: src/stored/dircmd.c:613 src/stored/dircmd.c:637 +#, c-format +msgid "3001 Device %s is mounted with Volume \"%s\"\n" +msgstr "" + +#: src/stored/dircmd.c:616 src/stored/dircmd.c:640 src/stored/dircmd.c:655 +#, c-format +msgid "" +"3905 Device %s open but no Bacula volume is mounted.\n" +"If this is not a blank tape, try unmounting and remounting the Volume.\n" +msgstr "" + +#: src/stored/dircmd.c:625 +#, c-format +msgid "3001 Device %s is doing acquire.\n" +msgstr "" + +#: src/stored/dircmd.c:630 src/stored/dircmd.c:730 +#, c-format +msgid "3903 Device %s is being labeled.\n" +msgstr "" + +#: src/stored/dircmd.c:652 +#, c-format +msgid "3001 Device %s is already mounted with Volume \"%s\"\n" +msgstr "" + +#: src/stored/dircmd.c:661 +#, c-format +msgid "3002 Device %s is mounted.\n" +msgstr "" + +#: src/stored/dircmd.c:664 +#, c-format +msgid "3907 %s" +msgstr "" + +#: src/stored/dircmd.c:667 +#, c-format +msgid "3906 File device %s is always mounted.\n" +msgstr "" + +#: src/stored/dircmd.c:673 +#, c-format +msgid "3905 Bizarre wait state %d\n" +msgstr "" + +#: src/stored/dircmd.c:684 +#, c-format +msgid "3909 Error scanning mount command: %s\n" +msgstr "" + +#: src/stored/dircmd.c:711 +#, c-format +msgid "3901 Device %s is already unmounted.\n" +msgstr "" + +#: src/stored/dircmd.c:722 +#, c-format +msgid "3001 Device %s unmounted.\n" +msgstr "" + +#: src/stored/dircmd.c:726 +#, c-format +msgid "3902 Device %s is busy in acquire.\n" +msgstr "" + +#: src/stored/dircmd.c:749 +#, c-format +msgid "3002 Device %s unmounted.\n" +msgstr "" + +#: src/stored/dircmd.c:761 +#, c-format +msgid "3907 Error scanning unmount command: %s\n" +msgstr "" + +#: src/stored/dircmd.c:789 +#, c-format +msgid "3921 Device %s already released.\n" +msgstr "" + +#: src/stored/dircmd.c:796 +#, c-format +msgid "3922 Device %s waiting for mount.\n" +msgstr "" + +#: src/stored/dircmd.c:800 +#, c-format +msgid "3923 Device %s is busy in acquire.\n" +msgstr "" + +#: src/stored/dircmd.c:804 +#, c-format +msgid "3914 Device %s is being labeled.\n" +msgstr "" + +#: src/stored/dircmd.c:812 +#, c-format +msgid "3022 Device %s released.\n" +msgstr "" + +#: src/stored/dircmd.c:824 +#, c-format +msgid "3927 Error scanning release command: %s\n" +msgstr "" + +#: src/stored/dircmd.c:860 +#, c-format +msgid "3995 Device %s is not an autochanger.\n" +msgstr "" + +#: src/stored/dircmd.c:878 +#, c-format +msgid "3908 Error scanning autocharger drives/list/slots command: %s\n" +msgstr "" + +#: src/stored/dircmd.c:922 +#, c-format +msgid "3909 Error scanning readlabel command: %s\n" +msgstr "" + +#: src/stored/dircmd.c:950 +#, c-format +msgid "3001 Volume=%s Slot=%d\n" +msgstr "" + +#: src/stored/dircmd.c:979 +#, c-format +msgid "3910 Unable to open device %s: ERR=%s\n" +msgstr "" + +#: src/stored/dircmd.c:991 +#, c-format +msgid "3931 Device %s is BLOCKED. user unmounted.\n" +msgstr "" + +#: src/stored/dircmd.c:995 +#, c-format +msgid "" +"3932 Device %s is BLOCKED. user unmounted during wait for media/mount.\n" +msgstr "" + +#: src/stored/dircmd.c:999 +#, c-format +msgid "3933 Device %s is BLOCKED waiting for media.\n" +msgstr "" + +#: src/stored/dircmd.c:1003 +#, c-format +msgid "3934 Device %s is being initialized.\n" +msgstr "" + +#: src/stored/dircmd.c:1007 +#, c-format +msgid "3935 Device %s is blocked labeling a Volume.\n" +msgstr "" + +#: src/stored/dircmd.c:1011 +#, c-format +msgid "3935 Device %s is blocked for unknown reason.\n" +msgstr "" + +#: src/stored/dircmd.c:1016 +#, c-format +msgid "3936 Device %s is busy reading.\n" +msgstr "" + +#: src/stored/dircmd.c:1019 +#, c-format +msgid "3937 Device %s is busy with %d writer(s).\n" +msgstr "" + +#: src/stored/dvd.c:153 +#, c-format +msgid "Device %s cannot be mounted. ERR=%s\n" +msgstr "" + +#: src/stored/dvd.c:271 +#, c-format +msgid "Cannot run free space command (%s)\n" +msgstr "" + +#: src/stored/dvd.c:374 +#, c-format +msgid "Error while writing current part to the DVD: %s" +msgstr "" + +#: src/stored/dvd.c:394 +#, c-format +msgid "Remaining free space %s on %s\n" +msgstr "" + +#: src/stored/dvd.c:464 +#, c-format +msgid "Next Volume part already exists on DVD. Cannot continue: %s\n" +msgstr "" + +#: src/stored/dvd.c:481 +#, c-format +msgid "open_next_part can't unlink existing part %s, ERR=%s\n" +msgstr "" + +#: src/stored/dvd.c:700 +#, c-format +msgid "Unable to write part %s: ERR=%s\n" +msgstr "" + +#: src/stored/fd_cmds.c:340 +msgid "Error parsing bootstrap file.\n" +msgstr "" + +#: src/stored/job.c:79 +#, c-format +msgid "Bad Job Command from Director: %s\n" +msgstr "" + +#: src/stored/job.c:189 +#, c-format +msgid "Job name not found: %s\n" +msgstr "" + +#: src/stored/job.c:200 +#, c-format +msgid "Hey!!!! JobId %u Job %s already authenticated.\n" +msgstr "" + +#: src/stored/job.c:211 +msgid "Unable to authenticate File daemon\n" +msgstr "" + +#: src/stored/job.c:338 +msgid "In free_jcr(), but still attached to device!!!!\n" +msgstr "" + +#: src/stored/label.c:74 +msgid "BAD call to read_dev_volume_label\n" +msgstr "" + +#: src/stored/label.c:79 src/stored/label.c:120 src/stored/label.c:208 +#, c-format +msgid "Wrong Volume mounted on device %s: Wanted %s have %s\n" +msgstr "" + +#: src/stored/label.c:86 src/stored/label.c:123 src/stored/label.c:195 +#, c-format +msgid "Too many tries: %s" +msgstr "" + +#: src/stored/label.c:102 +#, c-format +msgid "Couldn't rewind device %s: ERR=%s\n" +msgstr "" + +#: src/stored/label.c:140 +#, c-format +msgid "" +"Requested Volume \"%s\" on %s is not a Bacula labeled Volume, because: ERR=%s" +msgstr "" + +#: src/stored/label.c:145 +msgid "Could not read Volume label from block.\n" +msgstr "" + +#: src/stored/label.c:148 +#, c-format +msgid "Could not unserialize Volume label: ERR=%s\n" +msgstr "" + +#: src/stored/label.c:153 +#, c-format +msgid "Volume Header Id bad: %s\n" +msgstr "" + +#: src/stored/label.c:180 +#, c-format +msgid "Volume on %s has wrong Bacula version. Wanted %d got %d\n" +msgstr "" + +#: src/stored/label.c:191 +#, c-format +msgid "Volume on %s has bad Bacula label type: %x\n" +msgstr "" + +#: src/stored/label.c:272 +#, c-format +msgid "Cannot write Volume label to block for device %s\n" +msgstr "" + +#: src/stored/label.c:400 +#, c-format +msgid "Rewind error on device %s: ERR=%s\n" +msgstr "" + +#: src/stored/label.c:405 +#, c-format +msgid "Truncate error on device %s: ERR=%s\n" +msgstr "" + +#: src/stored/label.c:427 +#, c-format +msgid "Unable to write device %s: ERR=%s\n" +msgstr "" + +#: src/stored/label.c:455 +#, c-format +msgid "Recycled volume \"%s\" on device %s, all previous data lost.\n" +msgstr "" + +#: src/stored/label.c:458 +#, c-format +msgid "Wrote label to prelabeled Volume \"%s\" on device %s\n" +msgstr "" + +#: src/stored/label.c:657 +#, c-format +msgid "Bad session label = %d\n" +msgstr "" + +#: src/stored/label.c:675 src/stored/label.c:682 +#, c-format +msgid "Error writing Session label to %s: %s\n" +msgstr "" + +#: src/stored/label.c:717 +#, c-format +msgid "Expecting Volume Label, got FI=%s Stream=%s len=%d\n" +msgstr "" + +#: src/stored/label.c:844 +#, c-format +msgid "Unknown %d" +msgstr "" + +#: src/stored/label.c:848 +#, c-format +msgid "" +"\n" +"Volume Label:\n" +"Id : %sVerNo : %d\n" +"VolName : %s\n" +"PrevVolName : %s\n" +"VolFile : %d\n" +"LabelType : %s\n" +"LabelSize : %d\n" +"PoolName : %s\n" +"MediaType : %s\n" +"PoolType : %s\n" +"HostName : %s\n" +msgstr "" + +#: src/stored/label.c:870 +#, c-format +msgid "Date label written: %s\n" +msgstr "" + +#: src/stored/label.c:876 +#, c-format +msgid "Date label written: %04d-%02d-%02d at %02d:%02d\n" +msgstr "" + +#: src/stored/label.c:896 +#, c-format +msgid "" +"\n" +"%s Record:\n" +"JobId : %d\n" +"VerNum : %d\n" +"PoolName : %s\n" +"PoolType : %s\n" +"JobName : %s\n" +"ClientName : %s\n" +msgstr "" + +#: src/stored/label.c:909 +#, c-format +msgid "" +"Job (unique name) : %s\n" +"FileSet : %s\n" +"JobType : %c\n" +"JobLevel : %c\n" +msgstr "" + +#: src/stored/label.c:918 +#, c-format +msgid "" +"JobFiles : %s\n" +"JobBytes : %s\n" +"StartBlock : %s\n" +"EndBlock : %s\n" +"StartFile : %s\n" +"EndFile : %s\n" +"JobErrors : %s\n" +"JobStatus : %c\n" +msgstr "" + +#: src/stored/label.c:939 +#, c-format +msgid "Date written : %s\n" +msgstr "" + +#: src/stored/label.c:944 +#, c-format +msgid "Date written : %04d-%02d-%02d at %02d:%02d\n" +msgstr "" + +#: src/stored/label.c:963 +msgid "Fresh Volume" +msgstr "" + +#: src/stored/label.c:966 +msgid "Volume" +msgstr "" + +#: src/stored/label.c:975 src/stored/read_record.c:336 +msgid "End of Media" +msgstr "" + +#: src/stored/label.c:978 +msgid "End of Tape" +msgstr "" + +#: src/stored/label.c:998 src/stored/label.c:1006 src/stored/label.c:1039 +#, c-format +msgid "%s Record: File:blk=%u:%u SessId=%d SessTime=%d JobId=%d DataLen=%d\n" +msgstr "" + +#: src/stored/label.c:1003 +msgid "End of physical tape.\n" +msgstr "" + +#: src/stored/label.c:1018 src/stored/label.c:1027 +#, c-format +msgid "%s Record: File:blk=%u:%u SessId=%d SessTime=%d JobId=%d\n" +msgstr "" + +#: src/stored/label.c:1020 +#, c-format +msgid " Job=%s Date=%s Level=%c Type=%c\n" +msgstr "" + +#: src/stored/label.c:1029 +#, c-format +msgid " Date=%s Level=%c Type=%c Files=%s Bytes=%s Errors=%d Status=%c\n" +msgstr "" + +#: src/stored/mount.c:198 src/stored/mount.c:295 +#, c-format +msgid "Volume \"%s\" not on device %s.\n" +msgstr "" + +#: src/stored/mount.c:231 +#, c-format +msgid "" +"Director wanted Volume \"%s\".\n" +" Current Volume \"%s\" not acceptable because:\n" +" %s" +msgstr "" + +#: src/stored/mount.c:285 +#, c-format +msgid "Labeled new Volume \"%s\" on device %s.\n" +msgstr "" + +#: src/stored/mount.c:290 +#, c-format +msgid "Warning device %s not configured to autolabel Volumes.\n" +msgstr "" + +#: src/stored/mount.c:342 +#, c-format +msgid "Volume \"%s\" previously written, moving to end of data.\n" +msgstr "" + +#: src/stored/mount.c:345 +#, c-format +msgid "Unable to position to end of data on device %s: ERR=%s\n" +msgstr "" + +#: src/stored/mount.c:357 +#, c-format +msgid "Ready to append to end of Volume \"%s\" at file=%d.\n" +msgstr "" + +#: src/stored/mount.c:360 +#, c-format +msgid "" +"I cannot write on Volume \"%s\" because:\n" +"The number of files mismatch! Volume=%u Catalog=%u\n" +msgstr "" + +#: src/stored/mount.c:388 +#, c-format +msgid "Ready to append to end of Volume \"%s\" at file address=%u.\n" +msgstr "" + +#: src/stored/mount.c:392 +#, c-format +msgid "" +"I cannot write on Volume \"%s\" because:\n" +"The EOD file address is wrong: Volume file address=%u != Catalog Endblock=%u" +"(+1)\n" +"You probably removed DVD last part in spool directory.\n" +msgstr "" + +#: src/stored/mount.c:418 +#, c-format +msgid "Marking Volume \"%s\" in Error in Catalog.\n" +msgstr "" + +#: src/stored/mount.c:434 +#, c-format +msgid "" +"Autochanger Volume \"%s\" not found in slot %d.\n" +" Setting InChanger to zero in catalog.\n" +msgstr "" + +#: src/stored/mount.c:453 +msgid "Hey!!!!! WroteVol non-zero !!!!!\n" +msgstr "" + +#: src/stored/parse_bsr.c:104 src/stored/parse_bsr.c:108 +#, c-format +msgid "" +"Bootstrap file error: %s\n" +" : Line %d, col %d of file %s\n" +"%s\n" +msgstr "" + +#: src/stored/parse_bsr.c:130 +#, c-format +msgid "Cannot open bootstrap file %s: %s\n" +msgstr "" + +#: src/stored/parse_bsr.c:260 +#, c-format +msgid "MediaType %s in bsr at inappropriate place.\n" +msgstr "" + +#: src/stored/parse_bsr.c:416 +msgid "JobType not yet implemented\n" +msgstr "" + +#: src/stored/parse_bsr.c:424 +msgid "JobLevel not yet implemented\n" +msgstr "" + +#: src/stored/parse_bsr.c:626 +#, c-format +msgid "VolFile : %u-%u\n" +msgstr "" + +#: src/stored/parse_bsr.c:634 +#, c-format +msgid "VolBlock : %u-%u\n" +msgstr "" + +#: src/stored/parse_bsr.c:644 +#, c-format +msgid "FileIndex : %u\n" +msgstr "" + +#: src/stored/parse_bsr.c:646 +#, c-format +msgid "FileIndex : %u-%u\n" +msgstr "" + +#: src/stored/parse_bsr.c:656 +#, c-format +msgid "JobId : %u\n" +msgstr "" + +#: src/stored/parse_bsr.c:658 +#, c-format +msgid "JobId : %u-%u\n" +msgstr "" + +#: src/stored/parse_bsr.c:668 +#, c-format +msgid "SessId : %u\n" +msgstr "" + +#: src/stored/parse_bsr.c:670 +#, c-format +msgid "SessId : %u-%u\n" +msgstr "" + +#: src/stored/parse_bsr.c:679 +#, c-format +msgid "VolumeName : %s\n" +msgstr "" + +#: src/stored/parse_bsr.c:688 +#, c-format +msgid "Client : %s\n" +msgstr "" + +#: src/stored/parse_bsr.c:696 +#, c-format +msgid "Job : %s\n" +msgstr "" + +#: src/stored/parse_bsr.c:704 +#, c-format +msgid "SessTime : %u\n" +msgstr "" + +#: src/stored/parse_bsr.c:718 +msgid "BSR is NULL\n" +msgstr "" + +#: src/stored/parse_bsr.c:722 +#, c-format +msgid "Next : 0x%x\n" +msgstr "" + +#: src/stored/parse_bsr.c:723 +#, c-format +msgid "Root bsr : 0x%x\n" +msgstr "" + +#: src/stored/parse_bsr.c:734 +#, c-format +msgid "Slot : %u\n" +msgstr "" + +#: src/stored/parse_bsr.c:737 +#, c-format +msgid "count : %u\n" +msgstr "" + +#: src/stored/parse_bsr.c:738 +#, c-format +msgid "found : %u\n" +msgstr "" + +#: src/stored/parse_bsr.c:741 +#, c-format +msgid "done : %s\n" +msgstr "" + +#: src/stored/parse_bsr.c:742 +#, c-format +msgid "positioning : %d\n" +msgstr "" + +#: src/stored/parse_bsr.c:743 +#, c-format +msgid "fast_reject : %d\n" +msgstr "" + +#: src/stored/pythonsd.c:202 +msgid "Error in ParseTuple\n" +msgstr "" + +#: src/stored/pythonsd.c:218 +msgid "Parse tuple error in job_write\n" +msgstr "" + +#: src/stored/pythonsd.c:254 +#, c-format +msgid "Error in Python method %s\n" +msgstr "" + +#: src/stored/read.c:55 +msgid "No Volume names found for restore.\n" +msgstr "" + +#: src/stored/read.c:109 +#, c-format +msgid ">filed: Error Hdr=%s\n" +msgstr "" + +#: src/stored/read.c:110 src/stored/read.c:125 +#, c-format +msgid "Error sending to File daemon. ERR=%s\n" +msgstr "" + +#: src/stored/read.c:124 +#, c-format +msgid "Error sending to FD. ERR=%s\n" +msgstr "" + +#: src/stored/read_record.c:68 +#, c-format +msgid "End of Volume at file %u on device %s, Volume \"%s\"\n" +msgstr "" + +#: src/stored/read_record.c:71 +msgid "End of all volumes.\n" +msgstr "" + +#: src/stored/read_record.c:105 +#, c-format +msgid "Got EOF at file %u on device %s, Volume \"%s\"\n" +msgstr "" + +#: src/stored/read_record.c:119 +msgid "Did fsr\n" +msgstr "" + +#: src/stored/read_record.c:276 +#, c-format +msgid "Reposition from (file:block) %u:%u to %u:%u\n" +msgstr "" + +#: src/stored/read_record.c:303 +#, c-format +msgid "Forward spacing to file:block %u:%u.\n" +msgstr "" + +#: src/stored/read_record.c:329 +msgid "Begin Session" +msgstr "" + +#: src/stored/read_record.c:333 +msgid "End Session" +msgstr "" + +#: src/stored/read_record.c:339 +#, c-format +msgid "Unknown code %d\n" +msgstr "" + +#: src/stored/record.c:60 +#, c-format +msgid "unknown: %d" +msgstr "" + +#: src/stored/record.c:343 +msgid "Damaged buffer\n" +msgstr "" + +#: src/stored/reserve.c:467 src/stored/reserve.c:479 +#, c-format +msgid "Failed command: %s\n" +msgstr "" + +#: src/stored/reserve.c:469 +#, c-format +msgid "" +"\n" +" Device \"%s\" with MediaType \"%s\" requested by DIR not found in SD " +"Device resources.\n" +msgstr "" + +#: src/stored/reserve.c:647 +#, c-format +msgid "3926 Could not get dcr for device: %s\n" +msgstr "" + +#: src/stored/reserve.c:709 +#, c-format +msgid "3601 JobId=%u device %s is BLOCKED due to user unmount.\n" +msgstr "" + +#: src/stored/reserve.c:718 +#, c-format +msgid "3602 JobId=%u device %s is busy (already reading/writing).\n" +msgstr "" + +#: src/stored/reserve.c:761 +#, c-format +msgid "3603 JobId=%u device %s is busy reading.\n" +msgstr "" + +#: src/stored/reserve.c:770 +#, c-format +msgid "3604 JobId=%u device %s is BLOCKED due to user unmount.\n" +msgstr "" + +#: src/stored/reserve.c:836 +#, c-format +msgid "3605 JobId=%u wants free drive but device %s is busy.\n" +msgstr "" + +#: src/stored/reserve.c:844 +#, c-format +msgid "3606 JobId=%u wants mounted, but drive %s has no Volume.\n" +msgstr "" + +#: src/stored/reserve.c:854 +#, c-format +msgid "3607 JobId=%u wants Vol=\"%s\" drive has Vol=\"%s\" on drive %s.\n" +msgstr "" + +#: src/stored/reserve.c:890 +#, c-format +msgid "3608 JobId=%u wants Pool=\"%s\" but have Pool=\"%s\" on drive %s.\n" +msgstr "" + +#: src/stored/reserve.c:933 +#, c-format +msgid "3609 JobId=%u wants Pool=\"%s\" but have Pool=\"%s\" on drive %s.\n" +msgstr "" + +#: src/stored/reserve.c:941 src/stored/reserve.c:945 +msgid "Logic error!!!! Should not get here.\n" +msgstr "" + +#: src/stored/reserve.c:942 +#, c-format +msgid "3910 JobId=%u Logic error!!!! drive %s Should not get here.\n" +msgstr "" + +#: src/stored/reserve.c:948 +#, c-format +msgid "3911 JobId=%u failed reserve drive %s.\n" +msgstr "" + +#: src/stored/spool.c:69 +#, c-format +msgid "" +"Data spooling: %u active jobs, %s bytes; %u total jobs, %s max bytes/job.\n" +msgstr "" + +#: src/stored/spool.c:75 +#, c-format +msgid "Attr spooling: %u active jobs, %s bytes; %u total jobs, %s max bytes.\n" +msgstr "" + +#: src/stored/spool.c:91 +msgid "Spooling data ...\n" +msgstr "" + +#: src/stored/spool.c:117 +#, c-format +msgid "Bad return from despool WroteVol=%d\n" +msgstr "" + +#: src/stored/spool.c:150 +#, c-format +msgid "Open data spool file %s failed: ERR=%s\n" +msgstr "" + +#: src/stored/spool.c:199 +#, c-format +msgid "Committing spooled data to Volume \"%s\". Despooling %s bytes ...\n" +msgstr "" + +#: src/stored/spool.c:204 +#, c-format +msgid "Writing spooled data to Volume. Despooling %s bytes ...\n" +msgstr "" + +#: src/stored/spool.c:258 src/stored/spool.c:432 src/stored/spool.c:470 +#, c-format +msgid "Ftruncate spool file failed: ERR=%s\n" +msgstr "" + +#: src/stored/spool.c:260 +#, c-format +msgid "Bad return from ftruncate. ERR=%s\n" +msgstr "" + +#: src/stored/spool.c:309 +#, c-format +msgid "Spool header read error. ERR=%s\n" +msgstr "" + +#: src/stored/spool.c:312 +#, c-format +msgid "Spool read error. Wanted %u bytes, got %d\n" +msgstr "" + +#: src/stored/spool.c:313 +#, c-format +msgid "Spool header read error. Wanted %u bytes, got %d\n" +msgstr "" + +#: src/stored/spool.c:319 src/stored/spool.c:320 +#, c-format +msgid "Spool block too big. Max %u bytes, got %u\n" +msgstr "" + +#: src/stored/spool.c:325 src/stored/spool.c:326 +#, c-format +msgid "Spool data read error. Wanted %u bytes, got %d\n" +msgstr "" + +#: src/stored/spool.c:383 +msgid "User specified spool size reached.\n" +msgstr "" + +#: src/stored/spool.c:385 +msgid "Bad return from despool in write_block.\n" +msgstr "" + +#: src/stored/spool.c:393 +msgid "Spooling data again ...\n" +msgstr "" + +#: src/stored/spool.c:424 +#, c-format +msgid "Error writing header to spool file. ERR=%s\n" +msgstr "" + +#: src/stored/spool.c:438 src/stored/spool.c:476 +msgid "Fatal despooling error." +msgstr "" + +#: src/stored/spool.c:445 +msgid "Retrying after header spooling error failed.\n" +msgstr "" + +#: src/stored/spool.c:459 +#, c-format +msgid "Error writing data to spool file. ERR=%s\n" +msgstr "" + +#: src/stored/spool.c:486 +msgid "Retrying after data spooling error failed.\n" +msgstr "" + +#: src/stored/spool.c:541 src/stored/spool.c:548 +#, c-format +msgid "Fseek on attributes file failed: ERR=%s\n" +msgstr "" + +#: src/stored/spool.c:558 +#, c-format +msgid "Sending spooled attrs to the Director. Despooling %s bytes ...\n" +msgstr "" + +#: src/stored/spool.c:585 +#, c-format +msgid "fopen attr spool file %s failed: ERR=%s\n" +msgstr "" + +#: src/stored/status.c:67 +#, c-format +msgid "" +"\n" +"%s Version: %s (%s) %s %s %s\n" +msgstr "" + +#: src/stored/status.c:103 +msgid "" +"\n" +"Device status:\n" +msgstr "" + +#: src/stored/status.c:105 +#, c-format +msgid "Autochanger \"%s\" with devices:\n" +msgstr "" + +#: src/stored/status.c:119 +#, c-format +msgid "Device %s is mounted with Volume=\"%s\" Pool=\"%s\"\n" +msgstr "" + +#: src/stored/status.c:123 +#, c-format +msgid "Device %s open but no Bacula volume is mounted.\n" +msgstr "" + +#: src/stored/status.c:133 +#, c-format +msgid " Total Bytes=%s Blocks=%s Bytes/block=%s\n" +msgstr "" + +#: src/stored/status.c:147 +#, c-format +msgid " Total Bytes Read=%s Blocks Read=%s Bytes/block=%s\n" +msgstr "" + +#: src/stored/status.c:152 +#, c-format +msgid " Positioned at File=%s Block=%s\n" +msgstr "" + +#: src/stored/status.c:158 +#, c-format +msgid "Device %s is not open or does not exist.\n" +msgstr "" + +#: src/stored/status.c:160 +#, c-format +msgid "Device \"%s\" is not open or does not exist.\n" +msgstr "" + +#: src/stored/status.c:165 src/stored/status.c:168 src/stored/status.c:172 +#: src/stored/status.c:174 +msgid "" +"====\n" +"\n" +msgstr "" + +#: src/stored/status.c:166 +msgid "In Use Volume status:\n" +msgstr "" + +#: src/stored/status.c:190 +msgid "" +"No DEVICE structure.\n" +"\n" +msgstr "" + +#: src/stored/status.c:195 +msgid " Device is BLOCKED. User unmounted.\n" +msgstr "" + +#: src/stored/status.c:198 +msgid " Device is BLOCKED. User unmounted during wait for media/mount.\n" +msgstr "" + +#: src/stored/status.c:202 +#, c-format +msgid " Device is BLOCKED waiting for mount of volume \"%s\".\n" +msgstr "" + +#: src/stored/status.c:205 +msgid " Device is BLOCKED waiting for media.\n" +msgstr "" + +#: src/stored/status.c:209 +msgid " Device is being initialized.\n" +msgstr "" + +#: src/stored/status.c:212 +msgid " Device is blocked labeling a Volume.\n" +msgstr "" + +#: src/stored/status.c:220 +#, c-format +msgid " Slot %d is loaded in drive %d.\n" +msgstr "" + +#: src/stored/status.c:223 +#, c-format +msgid " Drive %d is not loaded.\n" +msgstr "" + +#: src/stored/status.c:242 +msgid "Device state:\n" +msgstr "" + +#: src/stored/status.c:256 +#, c-format +msgid "" +"num_writers=%d JobStatus=%c block=%d\n" +"\n" +msgstr "" + +#: src/stored/status.c:260 +#, c-format +msgid "Archive name: %s Device name: %s\n" +msgstr "" + +#: src/stored/status.c:262 +#, c-format +msgid "File=%u block=%u\n" +msgstr "" + +#: src/stored/status.c:263 +#, c-format +msgid "Min block=%u Max block=%u\n" +msgstr "" + +#: src/stored/status.c:280 +#, c-format +msgid "%s Job %s waiting for Client connection.\n" +msgstr "" + +#: src/stored/status.c:295 +#, c-format +msgid "" +"Reading: %s %s job %s JobId=%d Volume=\"%s\"\n" +" pool=\"%s\" device=\"%s\"\n" +msgstr "" + +#: src/stored/status.c:307 +#, c-format +msgid "" +"Writing: %s %s job %s JobId=%d Volume=\"%s\"\n" +" pool=\"%s\" device=\"%s\"\n" +msgstr "" + +#: src/stored/status.c:330 +#, c-format +msgid " FDReadSeqNo=%s in_msg=%u out_msg=%d fd=%d\n" +msgstr "" + +#: src/stored/status.c:335 +msgid " FDSocket closed\n" +msgstr "" + +#: src/stored/status.c:352 +msgid "" +"\n" +"Jobs waiting to reserve a drive:\n" +msgstr "" + +#: src/stored/status.c:380 +msgid " JobId Level Files Bytes Status Finished Name \n" +msgstr "" + +#: src/stored/status.c:514 +msgid "3900 Bad .status command, missing argument.\n" +msgstr "" + +#: src/stored/status.c:537 +msgid "3900 Bad .status command, wrong argument.\n" +msgstr "" + +#: src/stored/stored.c:65 +#, c-format +msgid "" +"Copyright (C) 2000-2005 Kern Sibbald.\n" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: stored [options] [-c config_file] [config_file]\n" +" -c use as configuration file\n" +" -dnn set debug level to nn\n" +" -f run in foreground (for debugging)\n" +" -g set groupid to group\n" +" -p proceed despite I/O errors\n" +" -s no signals (for debugging)\n" +" -t test - read config and exit\n" +" -u userid to \n" +" -v verbose user messages\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/stored/stored.c:220 +msgid "Volume Session Time is ZERO!\n" +msgstr "" + +#: src/stored/stored.c:233 +#, c-format +msgid "Unable to create thread. ERR=%s\n" +msgstr "" + +#: src/stored/stored.c:271 +#, c-format +msgid "Only one Storage resource permitted in %s\n" +msgstr "" + +#: src/stored/stored.c:276 +#, c-format +msgid "No Director resource defined in %s. Cannot continue.\n" +msgstr "" + +#: src/stored/stored.c:281 +#, c-format +msgid "No Device resource defined in %s. Cannot continue.\n" +msgstr "" + +#: src/stored/stored.c:289 +#, c-format +msgid "No Messages resource defined in %s. Cannot continue.\n" +msgstr "" + +#: src/stored/stored.c:316 +#, c-format +msgid "\"TLS Certificate\" file not defined for Storage \"%s\" in %s.\n" +msgstr "" + +#: src/stored/stored.c:322 +#, c-format +msgid "\"TLS Key\" file not defined for Storage \"%s\" in %s.\n" +msgstr "" + +#: src/stored/stored.c:328 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Storage \"%s\" in %s. At least one CA certificate store is required when " +"using \"TLS Verify Peer\".\n" +msgstr "" + +#: src/stored/stored.c:455 +#, c-format +msgid "Could not initialize %s\n" +msgstr "" + +#: src/stored/stored.c:468 +#, c-format +msgid "Could not open device %s\n" +msgstr "" + +#: src/stored/stored.c:481 +#, c-format +msgid "Could not mount device %s\n" +msgstr "" + +#: src/stored/stored_conf.c:216 +#, c-format +msgid "Expected a Device Type keyword, got: %s" +msgstr "" + +#: src/stored/stored_conf.c:231 +#, c-format +msgid "Warning: no \"%s\" resource (%d) defined.\n" +msgstr "" + +#: src/stored/stored_conf.c:234 +#, c-format +msgid "dump_resource type=%d\n" +msgstr "" + +#: src/stored/stored_conf.c:350 +#, c-format +msgid "Warning: unknown resource type %d\n" +msgstr "" + +#: src/stored/stored_conf.c:539 +#, c-format +msgid "\"%s\" item is required in \"%s\" resource, but not found.\n" +msgstr "" + +#: src/stored/stored_conf.c:545 +#, c-format +msgid "Too many items in \"%s\" resource\n" +msgstr "" + +#: src/stored/stored_conf.c:579 +#, c-format +msgid "Cannot find AutoChanger resource %s\n" +msgstr "" + +#: src/stored/stored_conf.c:650 +#, c-format +msgid "" +"Attempt to define second \"%s\" resource named \"%s\" is not permitted.\n" +msgstr "" + +#: src/stored/wait.c:114 +#, c-format +msgid "pthread timedwait error. ERR=%s\n" +msgstr "" + +#: src/stored/wait.c:199 +#, c-format +msgid "Job %s waiting to reserve a device.\n" +msgstr "" + +#: src/tools/bsmtp.c:85 +#, c-format +msgid "Fatal malformed reply from %s: %s\n" +msgstr "" + +#: src/tools/bsmtp.c:121 +#, c-format +msgid "" +"\n" +"Usage: %s [-f from] [-h mailhost] [-s subject] [-c copy] [recipient ...]\n" +" -c set the Cc: field\n" +" -dnn set debug level to nn\n" +" -f set the From: field\n" +" -h use mailhost:port as the SMTP server\n" +" -s set the Subject: field\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/tools/bsmtp.c:204 +msgid "Fatal error: no recipient given.\n" +msgstr "" + +#: src/tools/bsmtp.c:225 +#, c-format +msgid "Fatal gethostname error: ERR=%s\n" +msgstr "" + +#: src/tools/bsmtp.c:229 +#, c-format +msgid "Fatal gethostbyname for myself failed \"%s\": ERR=%s\n" +msgstr "" + +#: src/tools/bsmtp.c:254 +#, c-format +msgid "Error unknown mail host \"%s\": ERR=%s\n" +msgstr "" + +#: src/tools/bsmtp.c:257 +msgid "Retrying connection using \"localhost\".\n" +msgstr "" + +#: src/tools/bsmtp.c:265 +#, c-format +msgid "Fatal error: Unknown address family for smtp host: %d\n" +msgstr "" + +#: src/tools/bsmtp.c:273 +#, c-format +msgid "Fatal socket error: ERR=%s\n" +msgstr "" + +#: src/tools/bsmtp.c:277 +#, c-format +msgid "Fatal connect error to %s: ERR=%s\n" +msgstr "" + +#: src/tools/bsmtp.c:282 +#, c-format +msgid "Fatal dup error: ERR=%s\n" +msgstr "" + +#: src/tools/bsmtp.c:286 src/tools/bsmtp.c:290 +#, c-format +msgid "Fatal fdopen error: ERR=%s\n" +msgstr "" + +#: src/tools/dbcheck.c:158 +msgid "" +"Warning skipping the additional parameters for working directory/dbname/user/" +"password/host.\n" +msgstr "" + +#: src/tools/dbcheck.c:174 +#, c-format +msgid "Error can not find the Catalog name[%s] in the given config file [%s]\n" +msgstr "" + +#: src/tools/dbcheck.c:176 +#, c-format +msgid "Error there is no Catalog section in the given config file [%s]\n" +msgstr "" + +#: src/tools/dbcheck.c:185 +msgid "Error no Director resource defined.\n" +msgstr "" + +#: src/tools/dbcheck.c:199 +msgid "Wrong number of arguments.\n" +msgstr "" + +#: src/tools/dbcheck.c:204 +msgid "Working directory not supplied.\n" +msgstr "" + +#: src/tools/dbcheck.c:269 +#, c-format +msgid "Hello, this is the database check/correct program.\n" +msgstr "" + +#: src/tools/dbcheck.c:271 +#, c-format +msgid "Modify database is on." +msgstr "" + +#: src/tools/dbcheck.c:273 +#, c-format +msgid "Modify database is off." +msgstr "" + +#: src/tools/dbcheck.c:275 src/tools/dbcheck.c:336 +#, c-format +msgid " Verbose is on.\n" +msgstr "" + +#: src/tools/dbcheck.c:277 src/tools/dbcheck.c:338 +#, c-format +msgid " Verbose is off.\n" +msgstr "" + +#: src/tools/dbcheck.c:279 +#, c-format +msgid "Please select the fuction you want to perform.\n" +msgstr "" + +#: src/tools/dbcheck.c:283 +#, c-format +msgid "" +"\n" +" 1) Toggle modify database flag\n" +" 2) Toggle verbose flag\n" +" 3) Repair bad Filename records\n" +" 4) Repair bad Path records\n" +" 5) Eliminate duplicate Filename records\n" +" 6) Eliminate duplicate Path records\n" +" 7) Eliminate orphaned Jobmedia records\n" +" 8) Eliminate orphaned File records\n" +" 9) Eliminate orphaned Path records\n" +" 10) Eliminate orphaned Filename records\n" +" 11) Eliminate orphaned FileSet records\n" +" 12) Eliminate orphaned Client records\n" +" 13) Eliminate orphaned Job records\n" +" 14) Eliminate all Admin records\n" +" 15) Eliminate all Restore records\n" +" 16) All (3-15)\n" +" 17) Quit\n" +msgstr "" + +#: src/tools/dbcheck.c:302 +#, c-format +msgid "" +"\n" +" 1) Toggle modify database flag\n" +" 2) Toggle verbose flag\n" +" 3) Check for bad Filename records\n" +" 4) Check for bad Path records\n" +" 5) Check for duplicate Filename records\n" +" 6) Check for duplicate Path records\n" +" 7) Check for orphaned Jobmedia records\n" +" 8) Check for orphaned File records\n" +" 9) Check for orphaned Path records\n" +" 10) Check for orphaned Filename records\n" +" 11) Check for orphaned FileSet records\n" +" 12) Check for orphaned Client records\n" +" 13) Check for orphaned Job records\n" +" 14) Check for all Admin records\n" +" 15) Check for all Restore records\n" +" 16) All (3-15)\n" +" 17) Quit\n" +msgstr "" + +#: src/tools/dbcheck.c:322 +msgid "Select function number: " +msgstr "" + +#: src/tools/dbcheck.c:329 +#, c-format +msgid "Database will be modified.\n" +msgstr "" + +#: src/tools/dbcheck.c:331 +#, c-format +msgid "Database will NOT be modified.\n" +msgstr "" + +#: src/tools/dbcheck.c:421 +#, c-format +msgid "JobId=%s Name=\"%s\" StartTime=%s\n" +msgstr "" + +#: src/tools/dbcheck.c:429 +#, c-format +msgid "Orphaned JobMediaId=%s JobId=%s Volume=\"%s\"\n" +msgstr "" + +#: src/tools/dbcheck.c:436 +#, c-format +msgid "Orphaned FileId=%s JobId=%s Volume=\"%s\"\n" +msgstr "" + +#: src/tools/dbcheck.c:443 +#, c-format +msgid "Orphaned FileSetId=%s FileSet=\"%s\" MD5=%s\n" +msgstr "" + +#: src/tools/dbcheck.c:450 +#, c-format +msgid "Orphaned ClientId=%s Name=\"%s\"\n" +msgstr "" + +#: src/tools/dbcheck.c:503 +#, c-format +msgid "Deleting: %s\n" +msgstr "" + +#: src/tools/dbcheck.c:577 +#, c-format +msgid "Checking for duplicate Filename entries.\n" +msgstr "" + +#: src/tools/dbcheck.c:586 +#, c-format +msgid "Found %d duplicate Filename records.\n" +msgstr "" + +#: src/tools/dbcheck.c:587 +msgid "Print the list? (yes/no): " +msgstr "" + +#: src/tools/dbcheck.c:603 src/tools/dbcheck.c:657 +#, c-format +msgid "Found %d for: %s\n" +msgstr "" + +#: src/tools/dbcheck.c:630 +#, c-format +msgid "Checking for duplicate Path entries.\n" +msgstr "" + +#: src/tools/dbcheck.c:640 +#, c-format +msgid "Found %d duplicate Path records.\n" +msgstr "" + +#: src/tools/dbcheck.c:641 src/tools/dbcheck.c:691 src/tools/dbcheck.c:723 +#: src/tools/dbcheck.c:755 src/tools/dbcheck.c:783 src/tools/dbcheck.c:811 +#: src/tools/dbcheck.c:849 src/tools/dbcheck.c:887 src/tools/dbcheck.c:918 +#: src/tools/dbcheck.c:948 src/tools/dbcheck.c:982 src/tools/dbcheck.c:1040 +msgid "Print them? (yes/no): " +msgstr "" + +#: src/tools/dbcheck.c:683 +#, c-format +msgid "Checking for orphaned JobMedia entries.\n" +msgstr "" + +#: src/tools/dbcheck.c:690 +#, c-format +msgid "Found %d orphaned JobMedia records.\n" +msgstr "" + +#: src/tools/dbcheck.c:703 +#, c-format +msgid "Deleting %d orphaned JobMedia records.\n" +msgstr "" + +#: src/tools/dbcheck.c:712 +#, c-format +msgid "Checking for orphaned File entries. This may take some time!\n" +msgstr "" + +#: src/tools/dbcheck.c:722 +#, c-format +msgid "Found %d orphaned File records.\n" +msgstr "" + +#: src/tools/dbcheck.c:735 +#, c-format +msgid "Deleting %d orphaned File records.\n" +msgstr "" + +#: src/tools/dbcheck.c:744 +#, c-format +msgid "Checking for orphaned Path entries. This may take some time!\n" +msgstr "" + +#: src/tools/dbcheck.c:754 +#, c-format +msgid "Found %d orphaned Path records.\n" +msgstr "" + +#: src/tools/dbcheck.c:763 +#, c-format +msgid "Deleting %d orphaned Path records.\n" +msgstr "" + +#: src/tools/dbcheck.c:772 +#, c-format +msgid "Checking for orphaned Filename entries. This may take some time!\n" +msgstr "" + +#: src/tools/dbcheck.c:782 +#, c-format +msgid "Found %d orphaned Filename records.\n" +msgstr "" + +#: src/tools/dbcheck.c:791 +#, c-format +msgid "Deleting %d orphaned Filename records.\n" +msgstr "" + +#: src/tools/dbcheck.c:800 +#, c-format +msgid "Checking for orphaned FileSet entries. This takes some time!\n" +msgstr "" + +#: src/tools/dbcheck.c:810 +#, c-format +msgid "Found %d orphaned FileSet records.\n" +msgstr "" + +#: src/tools/dbcheck.c:822 +#, c-format +msgid "Deleting %d orphaned FileSet records.\n" +msgstr "" + +#: src/tools/dbcheck.c:831 +#, c-format +msgid "Checking for orphaned Client entries.\n" +msgstr "" + +#: src/tools/dbcheck.c:848 +#, c-format +msgid "Found %d orphaned Client records.\n" +msgstr "" + +#: src/tools/dbcheck.c:860 +#, c-format +msgid "Deleting %d orphaned Client records.\n" +msgstr "" + +#: src/tools/dbcheck.c:869 +#, c-format +msgid "Checking for orphaned Job entries.\n" +msgstr "" + +#: src/tools/dbcheck.c:886 +#, c-format +msgid "Found %d orphaned Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:898 +#, c-format +msgid "Deleting %d orphaned Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:908 +#, c-format +msgid "Checking for Admin Job entries.\n" +msgstr "" + +#: src/tools/dbcheck.c:917 +#, c-format +msgid "Found %d Admin Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:929 +#, c-format +msgid "Deleting %d Admin Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:938 +#, c-format +msgid "Checking for Restore Job entries.\n" +msgstr "" + +#: src/tools/dbcheck.c:947 +#, c-format +msgid "Found %d Restore Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:959 +#, c-format +msgid "Deleting %d Restore Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:972 +#, c-format +msgid "Checking for Filenames with a trailing slash\n" +msgstr "" + +#: src/tools/dbcheck.c:981 +#, c-format +msgid "Found %d bad Filename records.\n" +msgstr "" + +#: src/tools/dbcheck.c:995 src/tools/dbcheck.c:1053 +#, c-format +msgid "Reparing %d bad Filename records.\n" +msgstr "" + +#: src/tools/dbcheck.c:1030 +#, c-format +msgid "Checking for Paths without a trailing slash\n" +msgstr "" + +#: src/tools/dbcheck.c:1039 +#, c-format +msgid "Found %d bad Path records.\n" +msgstr "" + +#: src/tools/fstype.c:34 +#, c-format +msgid "" +"\n" +"Usage: fstype [-d debug_level] path ...\n" +"\n" +" Print the file system type a given file/directory is on.\n" +" The following options are supported:\n" +"\n" +" -v print both path and file system type.\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/tools/fstype.c:86 +#, c-format +msgid "%s: unknown\n" +msgstr "" + +#: src/tools/testfind.c:49 +#, c-format +msgid "" +"\n" +"Usage: testfind [-d debug_level] [-] [pattern1 ...]\n" +" -a print extended attributes (Win32 debug)\n" +" -dnn set debug level to nn\n" +" -e specify file of exclude patterns\n" +" -i specify file of include patterns\n" +" - read pattern(s) from stdin\n" +" -? print this message.\n" +"\n" +"Patterns are used for file inclusion -- normally directories.\n" +"Debug level >= 1 prints each file found.\n" +"Debug level >= 10 prints path/file for catalog.\n" +"Errors are always printed.\n" +"Files/paths truncated is the number of files/paths with len > 255.\n" +"Truncation is only in the catalog.\n" +"\n" +msgstr "" + +#: src/tools/testfind.c:134 src/tools/testls.c:130 +#, c-format +msgid "Could not open include file: %s\n" +msgstr "" + +#: src/tools/testfind.c:147 src/tools/testls.c:143 +#, c-format +msgid "Could not open exclude file: %s\n" +msgstr "" + +#: src/tools/testfind.c:160 +#, c-format +msgid "" +"Total files : %d\n" +"Max file length: %d\n" +"Max path length: %d\n" +"Files truncated: %d\n" +"Paths truncated: %d\n" +"Hard links : %d\n" +msgstr "" + +#: src/tools/testfind.c:199 +#, c-format +msgid "Reg: %s\n" +msgstr "" + +#: src/tools/testfind.c:220 +msgid "\t[will not descend: recursion turned off]" +msgstr "" + +#: src/tools/testfind.c:222 +msgid "\t[will not descend: file system change not allowed]" +msgstr "" + +#: src/tools/testfind.c:224 +msgid "\t[will not descend: disallowed file system]" +msgstr "" + +#: src/tools/testfind.c:240 src/tools/testls.c:178 +#, c-format +msgid "Err: Could not access %s: %s\n" +msgstr "" + +#: src/tools/testfind.c:243 src/tools/testls.c:181 +#, c-format +msgid "Err: Could not follow ff->link %s: %s\n" +msgstr "" + +#: src/tools/testfind.c:246 src/tools/testls.c:184 +#, c-format +msgid "Err: Could not stat %s: %s\n" +msgstr "" + +#: src/tools/testfind.c:249 src/tools/testls.c:187 +#, c-format +msgid "Skip: File not saved. No change. %s\n" +msgstr "" + +#: src/tools/testfind.c:252 src/tools/testls.c:190 +#, c-format +msgid "Err: Attempt to backup archive. Not saved. %s\n" +msgstr "" + +#: src/tools/testfind.c:255 src/tools/testls.c:199 +#, c-format +msgid "Err: Could not open directory %s: %s\n" +msgstr "" + +#: src/tools/testfind.c:258 src/tools/testls.c:202 +#, c-format +msgid "Err: Unknown file ff->type %d: %s\n" +msgstr "" + +#: src/tools/testfind.c:308 +#, c-format +msgid "===== Filename truncated to 255 chars: %s\n" +msgstr "" + +#: src/tools/testfind.c:325 +#, c-format +msgid "========== Path name truncated to 255 chars: %s\n" +msgstr "" + +#: src/tools/testfind.c:334 +#, c-format +msgid "========== Path length is zero. File=%s\n" +msgstr "" + +#: src/tools/testfind.c:337 +#, c-format +msgid "Path: %s\n" +msgstr "" + +#: src/tools/testls.c:45 +#, c-format +msgid "" +"\n" +"Usage: testls [-d debug_level] [-] [pattern1 ...]\n" +" -a print extended attributes (Win32 debug)\n" +" -dnn set debug level to nn\n" +" -e specify file of exclude patterns\n" +" -i specify file of include patterns\n" +" - read pattern(s) from stdin\n" +" -? print this message.\n" +"\n" +"Patterns are file inclusion -- normally directories.\n" +"Debug level >= 1 prints each file found.\n" +"Debug level >= 10 prints path/file for catalog.\n" +"Errors always printed.\n" +"Files/paths truncated is number with len > 255.\n" +"Truncation is only in catalog.\n" +"\n" +msgstr "" + +#: src/tools/testls.c:193 +#, c-format +msgid "Recursion turned off. Directory not entered. %s\n" +msgstr "" + +#: src/tools/testls.c:196 +#, c-format +msgid "Skip: File system change prohibited. Directory not entered. %s\n" +msgstr "" + +#: src/tray-monitor/authenticate.c:78 +msgid "" +"Director authorization problem.\n" +"Most likely the passwords do not agree.\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors " +"for help.\n" +msgstr "" + +#: src/tray-monitor/authenticate.c:127 +msgid "" +"Director and Storage daemon passwords or names not the same.\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors " +"for help.\n" +msgstr "" + +#: src/tray-monitor/authenticate.c:172 +msgid "" +"Director and File daemon passwords or names not the same.\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors " +"for help.\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:102 +#, c-format +msgid "" +"Copyright (C) 2000-2004 Kern Sibbald and John Walker\n" +"Written by Nicolas Boichat (2004)\n" +"\n" +"Version: %s (%s) %s %s %s\n" +"\n" +"Usage: tray-monitor [-c config_file] [-d debug_level]\n" +" -c set configuration file to file\n" +" -dnn set debug level to nn\n" +" -t test - read configuration and exit\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:251 +#, c-format +msgid "" +"Error: %d Monitor resource defined in %s. You must define one and only one " +"Monitor resource.\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:282 +#, c-format +msgid "" +"No Client, Storage nor Director resource defined in %s\n" +"Without that I don't how to get status from the File, Storage or Director " +"Daemon :-(\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:304 +#, c-format +msgid "" +"Invalid refresh interval defined in %s\n" +"This value must be greater or equal to 1 second and less or equal to 10 " +"minutes (read value: %d).\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:319 +msgid "Open status window..." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:325 +msgid "Exit" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:337 +msgid "Bacula tray monitor" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:362 +msgid " (DIR)" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:366 +msgid " (FD)" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:370 +msgid " (SD)" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:383 +msgid "Unknown status." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:424 +msgid "Refresh interval in seconds: " +msgstr "" + +#: src/tray-monitor/tray-monitor.c:432 +msgid "Refresh now" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:436 +msgid "About" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:440 +msgid "Close" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:460 +#, c-format +msgid "Disconnecting from Director %s:%d\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:463 +#, c-format +msgid "Disconnecting from Client %s:%d\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:466 +#, c-format +msgid "Disconnecting from Storage %s:%d\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:502 src/tray-monitor/tray-monitor.c:512 +msgid "Bacula Tray Monitor" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:503 src/tray-monitor/tray-monitor.c:513 +msgid "" +"Copyright (C) 2004-2005 Kern Sibbald\n" +"Written by Nicolas Boichat\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:505 src/tray-monitor/tray-monitor.c:515 +msgid "Version:" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:583 +#, c-format +msgid "Error, currentitem is not a Client or a Storage..\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:656 +#, c-format +msgid "" +"Current job: %s\n" +"Last job: %s" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:668 +#, c-format +msgid " (%d errors)" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:671 +#, c-format +msgid " (%d error)" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:708 +msgid "No current job." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:711 +msgid "No last job." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:719 +msgid "Job status: Created" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:724 +msgid "Job status: Running" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:728 +msgid "Job status: Blocked" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:733 +msgid "Job status: Terminated" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:738 +msgid "Job status: Terminated in error" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:744 +msgid "Job status: Error" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:748 +msgid "Job status: Fatal error" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:753 +msgid "Job status: Verify differences" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:758 +msgid "Job status: Canceled" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:763 +msgid "Job status: Waiting on File daemon" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:768 +msgid "Job status: Waiting on the Storage daemon" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:773 +msgid "Job status: Waiting for new media" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:778 +msgid "Job status: Waiting for Mount" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:783 +msgid "Job status: Waiting for storage resource" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:788 +msgid "Job status: Waiting for job resource" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:793 +msgid "Job status: Waiting for Client resource" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:798 +msgid "Job status: Waiting for maximum jobs" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:803 +msgid "Job status: Waiting for start time" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:808 +msgid "Job status: Waiting for higher priority jobs to finish" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:813 +#, c-format +msgid "Unknown job status %c." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:814 +#, c-format +msgid "Job status: Unknown(%c)" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:821 +#, c-format +msgid "Bad scan : '%s' %d\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:859 +#, c-format +msgid "Connecting to Director %s:%d" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:865 +#, c-format +msgid "Connecting to Client %s:%d\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:866 +#, c-format +msgid "Connecting to Client %s:%d" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:872 +#, c-format +msgid "Connecting to Storage %s:%d\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:873 +#, c-format +msgid "Connecting to Storage %s:%d" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:878 src/tray-monitor/tray-monitor.c:916 +#, c-format +msgid "Error, currentitem is not a Client, a Storage or a Director..\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:884 +msgid "Cannot connect to daemon.\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:885 +msgid "Cannot connect to daemon." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:897 +#, c-format +msgid "Authentication error : %s" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:904 +msgid "Opened connection with Director daemon.\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:905 +msgid "Opened connection with Director daemon." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:908 +msgid "Opened connection with File daemon.\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:909 +msgid "Opened connection with File daemon." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:912 +msgid "Opened connection with Storage daemon.\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:913 +msgid "Opened connection with Storage daemon." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:948 +msgid "<< Error: BNET_PROMPT signal received. >>\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:953 src/wx-console/console_thread.cpp:465 +msgid "<< Heartbeat signal received, answered. >>\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:957 +#, c-format +msgid "<< Unexpected signal received : %s >>\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:962 +msgid "\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:966 +msgid "Error : BNET_HARDEOF or BNET_ERROR" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:972 +msgid "\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:976 +msgid "Error : Connection closed." +msgstr "" + +#: src/tray-monitor/tray_conf.c:161 +#, c-format +msgid "Monitor: name=%s FDtimeout=%s SDtimeout=%s\n" +msgstr "" + +#: src/tray-monitor/tray_conf.c:167 +#, c-format +msgid "Director: name=%s address=%s FDport=%d\n" +msgstr "" + +#: src/tray-monitor/tray_conf.c:171 +#, c-format +msgid "Client: name=%s address=%s FDport=%d\n" +msgstr "" + +#: src/tray-monitor/tray_conf.c:175 +#, c-format +msgid "Storage: name=%s address=%s SDport=%d\n" +msgstr "" + +#: src/wx-console/authenticate.c:129 +msgid "Bad response to Hello command: ERR=" +msgstr "" + +#: src/baconfig.h:55 +#, c-format +msgid "Failed ASSERT: %s\n" +msgstr "" + +#: src/baconfig.h:62 +msgid "*None*" +msgstr "" + +#: src/filed/win32/winmain.cpp:228 src/filed/win32/winmain.cpp:236 +msgid "Bacula Usage" +msgstr "" + +#: src/filed/win32/winmain.cpp:233 +msgid "Bad Command Line Options" +msgstr "" + +#: src/filed/win32/winmain.cpp:326 +msgid "Another instance of Bacula is already running" +msgstr "" + +#: src/filed/win32/winservice.cpp:131 src/filed/win32/winservice.cpp:145 +msgid "No existing instance of Bacula could be contacted" +msgstr "" + +#: src/filed/win32/winservice.cpp:218 +msgid "KERNEL32.DLL not found: Bacula service not started" +msgstr "" + +#: src/filed/win32/winservice.cpp:228 +msgid "Registry service not found: Bacula service not started" +msgstr "" + +#: src/filed/win32/winservice.cpp:230 +msgid "Registry service not found" +msgstr "" + +#: src/filed/win32/winservice.cpp:260 +msgid "StartServiceCtrlDispatcher failed." +msgstr "" + +#: src/filed/win32/winservice.cpp:278 +msgid "RegisterServiceCtlHandler failed" +msgstr "" + +#: src/filed/win32/winservice.cpp:279 +msgid "Contact Register Service Handler failure" +msgstr "" + +#: src/filed/win32/winservice.cpp:295 +msgid "ReportStatus STOPPED failed 1" +msgstr "" + +#: src/filed/win32/winservice.cpp:318 +msgid "Report Service failure" +msgstr "" + +#: src/filed/win32/winservice.cpp:355 +msgid "Unable to install Bacula service" +msgstr "" + +#: src/filed/win32/winservice.cpp:373 +msgid "Service command length too long" +msgstr "" + +#: src/filed/win32/winservice.cpp:374 +msgid "Service command length too long. Service not registered." +msgstr "" + +#: src/filed/win32/winservice.cpp:389 +msgid "Cannot write System Registry" +msgstr "" + +#: src/filed/win32/winservice.cpp:390 +msgid "" +"The System Registry could not be updated - the Bacula service was not " +"installed" +msgstr "" + +#: src/filed/win32/winservice.cpp:397 +msgid "Cannot add Bacula key to System Registry" +msgstr "" + +#: src/filed/win32/winservice.cpp:398 src/filed/win32/winservice.cpp:449 +msgid "The Bacula service could not be installed" +msgstr "" + +#: src/filed/win32/winservice.cpp:406 +msgid "" +"The Bacula File service was successfully installed.\n" +"The service may be started by double clicking on the\n" +"Bacula \"Start\" icon and will be automatically\n" +"be run the next time this machine is rebooted. " +msgstr "" + +#: src/filed/win32/winservice.cpp:424 +msgid "" +"The Service Control Manager could not be contacted - the Bacula service was " +"not installed" +msgstr "" + +#: src/filed/win32/winservice.cpp:455 +msgid "" +"Provides file backup and restore services. Bacula -- the network backup " +"solution." +msgstr "" + +#: src/filed/win32/winservice.cpp:462 +msgid "" +"The Bacula File service was successfully installed.\n" +"The service may be started from the Control Panel and will\n" +"automatically be run the next time this machine is rebooted." +msgstr "" + +#: src/filed/win32/winservice.cpp:471 +msgid "" +"Unknown Windows operating system.\n" +"Cannot install Bacula service.\n" +msgstr "" + +#: src/filed/win32/winservice.cpp:496 +msgid "" +"Could not find registry entry.\n" +"Service probably not registerd - the Bacula service was not removed" +msgstr "" + +#: src/filed/win32/winservice.cpp:501 +msgid "" +"Could not delete Registry key.\n" +"The Bacula service could not be removed" +msgstr "" + +#: src/filed/win32/winservice.cpp:511 +msgid "Bacula could not be contacted, probably not running" +msgstr "" + +#: src/filed/win32/winservice.cpp:517 src/filed/win32/winservice.cpp:553 +msgid "The Bacula service has been removed" +msgstr "" + +#: src/filed/win32/winservice.cpp:547 +msgid "The Bacula service could not be stopped" +msgstr "" + +#: src/filed/win32/winservice.cpp:555 +msgid "The Bacula service could not be removed" +msgstr "" + +#: src/filed/win32/winservice.cpp:560 +msgid "The Bacula service could not be found" +msgstr "" + +#: src/filed/win32/winservice.cpp:565 +msgid "The SCM could not be contacted - the Bacula service was not removed" +msgstr "" + +#: src/filed/win32/winservice.cpp:629 +msgid "SetServiceStatus failed" +msgstr "" + +#: src/filed/win32/winservice.cpp:657 +#, c-format +msgid "" +"\n" +"\n" +"%s error: %ld at %s:%d" +msgstr "" + +#: src/filed/win32/winservice.cpp:732 +#, c-format +msgid "Locked by: %s, duration: %ld seconds\n" +msgstr "" + +#: src/filed/win32/winservice.cpp:736 +#, c-format +msgid "No longer locked\n" +msgstr "" + +#: src/filed/win32/winservice.cpp:740 +msgid "Could not lock database" +msgstr "" + +#: src/wx-console/console_thread.cpp:101 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Director \"%s\" in config file.\n" +"At least one CA certificate store is required.\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:108 +msgid "" +"No Director resource defined in config file.\n" +"Without that I don't how to speak to the Director :-(\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:127 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Console \"%s\" in config file.\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:148 +msgid "Error while initializing windows sockets...\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:163 +msgid "Error while cleaning up windows sockets...\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:201 +msgid "Error while initializing library." +msgstr "" + +#: src/wx-console/console_thread.cpp:227 +msgid "Cryptographic library initialization failed.\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:231 +msgid "Please correct configuration file.\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:273 +msgid "Error : Library not initialized\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:284 +msgid "Error : No configuration file loaded\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:294 +msgid "Connecting...\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:310 +msgid "Error : No director defined in config file.\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:322 +msgid "Multiple directors found in your config file.\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:331 +#, c-format +msgid "Please choose a director (1-%d): " +msgstr "" + +#: src/wx-console/console_thread.cpp:403 +msgid "Failed to connect to the director\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:413 +msgid "Connected\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:470 +msgid "<< Unexpected signal received : " +msgstr "" + +#: src/wx-console/console_thread.cpp:490 +msgid "Connection terminated\n" +msgstr "" + +#: src/wx-console/main.cpp:101 +msgid "Bacula wx-console" +msgstr "" + +#: src/wx-console/main.cpp:106 src/wx-console/wxbmainframe.cpp:248 +#, c-format +msgid "Welcome to bacula wx-console %s (%s)!\n" +msgstr "" + +#: src/wx-console/wxbconfigfileeditor.cpp:44 +msgid "Config file editor" +msgstr "" + +#: src/wx-console/wxbconfigfileeditor.cpp:54 +msgid "# Bacula wx-console Configuration File\n" +msgstr "" + +#: src/wx-console/wxbconfigfileeditor.cpp:90 +msgid "Save and close" +msgstr "" + +#: src/wx-console/wxbconfigfileeditor.cpp:91 +msgid "Close without saving" +msgstr "" + +#: src/wx-console/wxbconfigfileeditor.cpp:118 +#, c-format +msgid "Unable to write to %s\n" +msgstr "" + +#: src/wx-console/wxbconfigfileeditor.cpp:119 +msgid "Error while saving" +msgstr "" + +#: src/wx-console/wxbconfigpanel.cpp:184 +msgid "Apply" +msgstr "" + +#: src/wx-console/wxbhistorytextctrl.cpp:61 +#: src/wx-console/wxbhistorytextctrl.cpp:132 +#: src/wx-console/wxbmainframe.cpp:272 +msgid "Type your command below:" +msgstr "" + +#: src/wx-console/wxbhistorytextctrl.cpp:96 +msgid "Unknown command." +msgstr "" + +#: src/wx-console/wxbhistorytextctrl.cpp:105 +msgid "Possible completions: " +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:227 +msgid "&About...\tF1" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:227 +msgid "Show about dialog" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:229 src/wx-console/wxbmainframe.cpp:598 +msgid "Connect to the director" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:230 +msgid "Disconnect" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:230 +msgid "Disconnect of the director" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:232 +msgid "Change of configuration file" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:232 +msgid "Change your default configuration file" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:233 +msgid "Edit your configuration file" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:235 +msgid "E&xit\tAlt-X" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:235 +msgid "Quit this program" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:239 +msgid "&File" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:240 +msgid "&Help" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:257 +msgid "Console" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:264 +msgid "" +"Warning : Unicode is disabled because you are using wxWidgets for GTK+ 1.2.\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:268 +msgid "" +"Warning : There is a problem with wxWidgets for GTK+ 2.0 without Unicode " +"support when handling non-ASCII filenames: Every non-ASCII character in such " +"filenames will be replaced by an interrogation mark.\n" +"If this behaviour disturbs you, please build wx-console against a Unicode " +"version of wxWidgets for GTK+ 2.0.\n" +"---\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:279 +msgid "Send" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:356 src/wx-console/wxbmainframe.cpp:368 +msgid "Error while parsing command line arguments, using defaults.\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:357 src/wx-console/wxbmainframe.cpp:369 +msgid "Usage: wx-console [-c configfile] [-w tmp]\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:397 +#, c-format +msgid "" +"It seems that it is the first time you run wx-console.\n" +"This file (%s) has been choosen as default configuration file.\n" +"Do you want to edit it? (if you click No you will have to select another " +"file)" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:399 +msgid "First run" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:416 +#, c-format +msgid "" +"Unable to read %s\n" +"Error: %s\n" +"Do you want to choose another one? (Press no to edit this file)" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:418 +msgid "Unable to read configuration file" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:430 +msgid "Please choose a configuration file to use" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:443 +msgid "This configuration file has been successfully read, use it as default?" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:444 +msgid "Configuration file read successfully" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:454 +#, c-format +msgid "Using this configuration file: %s\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:459 +msgid "Connecting to the director..." +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:474 +msgid "Failed to unregister a data parser !" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:482 +msgid "Quitting.\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:497 +msgid "" +"Welcome to Bacula wx-console.\n" +"Written by Nicolas Boichat \n" +"(C) 2005 Kern Sibbald\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:499 +msgid "About Bacula wx-console" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:505 +msgid "Please choose your default configuration file" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:509 +msgid "Use this configuration file as default?" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:510 +msgid "Configuration file" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:581 +msgid "Console thread terminated." +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:589 +msgid "Connection to the director lost. Quit program?" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:590 +msgid "Connection lost" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:606 +msgid "Connected to the director." +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:629 +msgid "Reconnect" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:630 +msgid "Reconnect to the director" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:644 +msgid "Disconnected of the director." +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:663 src/wx-console/wxbrestorepanel.cpp:689 +msgid "Unexpected question has been received.\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:686 src/wx-console/wxbmainframe.cpp:703 +msgid "wx-console: unexpected director's question." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:216 +#: src/wx-console/wxbrestorepanel.cpp:1895 +#: src/wx-console/wxbrestorepanel.cpp:1924 +msgid "Enter restore mode" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:219 +msgid "Cancel restore" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:245 +#: src/wx-console/wxbrestorepanel.cpp:299 +msgid "Add" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:247 +#: src/wx-console/wxbrestorepanel.cpp:301 +msgid "Remove" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:249 +#: src/wx-console/wxbrestorepanel.cpp:303 +msgid "Refresh" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:268 +msgid "M" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:272 +msgid "Filename" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:284 +msgid "Perm." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:317 +#: src/wx-console/wxbrestorepanel.cpp:330 +#: src/wx-console/wxbrestorepanel.cpp:482 +#: src/wx-console/wxbrestorepanel.cpp:492 +#: src/wx-console/wxbrestorepanel.cpp:495 +#: src/wx-console/wxbrestorepanel.cpp:1760 +#: src/wx-console/wxbrestorepanel.cpp:1846 +msgid "Job Name" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:319 +#: src/wx-console/wxbrestorepanel.cpp:335 +#: src/wx-console/wxbrestorepanel.cpp:434 +#: src/wx-console/wxbrestorepanel.cpp:435 +#: src/wx-console/wxbrestorepanel.cpp:445 +#: src/wx-console/wxbrestorepanel.cpp:446 +#: src/wx-console/wxbrestorepanel.cpp:1118 +#: src/wx-console/wxbrestorepanel.cpp:1191 +#: src/wx-console/wxbrestorepanel.cpp:1798 +#: src/wx-console/wxbrestorepanel.cpp:1800 +#: src/wx-console/wxbrestorepanel.cpp:1861 +msgid "Fileset" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:322 +#: src/wx-console/wxbrestorepanel.cpp:1185 +#: src/wx-console/wxbrestorepanel.cpp:1201 +#: src/wx-console/wxbrestorepanel.cpp:1203 +#: src/wx-console/wxbrestorepanel.cpp:1211 +#: src/wx-console/wxbrestorepanel.cpp:1213 +#: src/wx-console/wxbrestorepanel.cpp:1232 +#: src/wx-console/wxbrestorepanel.cpp:1239 +#: src/wx-console/wxbrestorepanel.cpp:1788 +#: src/wx-console/wxbrestorepanel.cpp:1799 +#: src/wx-console/wxbrestorepanel.cpp:1919 +msgid "Before" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:324 +msgid "Please configure parameters concerning files to restore :" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:333 +#: src/wx-console/wxbrestorepanel.cpp:1854 +msgid "always" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:333 +msgid "if newer" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:333 +msgid "if older" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:333 +#: src/wx-console/wxbrestorepanel.cpp:1857 +msgid "never" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:341 +msgid "Please configure parameters concerning files restoration :" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:406 +msgid "Getting parameters list." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:414 +msgid "Error : no clients returned by the director." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:438 +msgid "Error : no filesets returned by the director." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:462 +msgid "Error : no storage returned by the director." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:485 +#: src/wx-console/wxbrestorepanel.cpp:509 +msgid "Error : no jobs returned by the director." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:495 +msgid "RestoreFiles" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:530 +msgid "Please configure your restore parameters." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:541 +msgid "Building restore tree..." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:584 +msgid "Error while starting restore: " +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:674 +msgid "" +"Right click on a file or on a directory, or double-click on its mark to add " +"it to the restore list." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:711 +#: src/wx-console/wxbrestorepanel.cpp:733 +msgid "wx-console: unexpected restore question." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:744 +msgid " files selected to be restored." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:749 +msgid " file selected to be restored." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:756 +#, c-format +msgid "Please configure your restore (%ld files selected to be restored)..." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:766 +msgid "Restore failed : no file selected.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:767 +msgid "Restore failed : no file selected." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:777 +msgid "Restoring, please wait..." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:790 +msgid "Job started. JobId=" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:792 +msgid "Restore started, jobid=" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:796 +msgid "Job failed." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:797 +msgid "Restore failed, please look at messages.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:798 +msgid "Restore failed, please look at messages in console." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:804 +#: src/wx-console/wxbrestorepanel.cpp:805 +msgid "Failed to retrieve jobid.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:831 +msgid "" +"Restore is scheduled in more than two minutes, wx-console will not wait for " +"its completion.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:832 +msgid "" +"Restore is scheduled in more than two minutes, wx-console will not wait for " +"its completion." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:858 +msgid "Restore job created, but not yet running." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:863 +#, c-format +msgid "Restore job running, please wait (%ld of %ld files restored)..." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:867 +msgid "Restore job terminated successfully." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:868 +msgid "Restore job terminated successfully.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:873 +msgid "Restore job terminated in error, see messages in console." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:874 +msgid "Restore job terminated in error, see messages.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:879 +msgid "Restore job reported a non-fatal error." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:883 +msgid "Restore job reported a fatal error." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:888 +msgid "Restore job cancelled by user." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:889 +msgid "Restore job cancelled by user.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:894 +msgid "Restore job is waiting on File daemon." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:898 +msgid "Restore job is waiting for new media." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:902 +msgid "Restore job is waiting for storage resource." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:906 +msgid "Restore job is waiting for job resource." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:910 +msgid "Restore job is waiting for Client resource." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:914 +msgid "Restore job is waiting for maximum jobs." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:918 +msgid "Restore job is waiting for start time." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:922 +msgid "Restore job is waiting for higher priority jobs to finish." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:971 +msgid "" +"The restore job has not been started within one minute, wx-console will not " +"wait for its completion anymore.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:972 +msgid "" +"The restore job has not been started within one minute, wx-console will not " +"wait for its completion anymore." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:982 +msgid "Restore done successfully.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:983 +msgid "Restore done successfully." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1054 +msgid "Applying restore configuration changes..." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1105 +msgid "Failed to find the selected client." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1120 +msgid "Failed to find the selected fileset." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1135 +msgid "Failed to find the selected storage." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1152 +#: src/wx-console/wxbrestorepanel.cpp:1835 +msgid "Run Restore job" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1168 +msgid "Restore configuration changes were applied." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1177 +msgid "Restore cancelled.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1178 +msgid "Restore cancelled." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1200 +msgid "No results to list." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1202 +msgid "No backup found for this client." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1209 +msgid "ERROR" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1210 +msgid "Query failed" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1212 +msgid "Cannot get previous backups list, see console." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1845 +msgid "JobName:" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1849 +msgid "Where:" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1852 +msgid "Replace:" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1855 +msgid "ifnewer" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1856 +msgid "ifolder" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1860 +msgid "FileSet:" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1976 +msgid "Restoring..." +msgstr "" diff --git a/Branch-2.2/bacula/po/fi.po b/Branch-2.2/bacula/po/fi.po new file mode 100644 index 0000000000..ce567729cc --- /dev/null +++ b/Branch-2.2/bacula/po/fi.po @@ -0,0 +1,15930 @@ +# Finnish translations for branch package. +# Copyright (C) 2007 Kern Sibbald +# This file is distributed under the same license as the branch package. +# Kern Sibbald , 2007. +# +msgid "" +msgstr "" +"Project-Id-Version: branch 2.0\n" +"Report-Msgid-Bugs-To: bacula-devel@lists.sourceforge.net\n" +"POT-Creation-Date: 2007-08-10 23:23+0200\n" +"PO-Revision-Date: 2007-02-03 19:16+0100\n" +"Last-Translator: Kern Sibbald \n" +"Language-Team: Finnish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: src/cats/bdb.c:161 +msgid "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n" +msgstr "" + +#: src/cats/bdb.c:162 +msgid "WARNING!!!! The Internal Database is NOT OPERATIONAL!\n" +msgstr "" + +#: src/cats/bdb.c:163 +msgid "You should use SQLite, PostgreSQL, or MySQL\n" +msgstr "" + +#: src/cats/bdb.c:185 src/cats/mysql.c:152 src/cats/postgresql.c:161 +#: src/cats/sqlite.c:160 +#, c-format +msgid "Unable to initialize DB lock. ERR=%s\n" +msgstr "" + +#: src/cats/bdb.c:195 +#, c-format +msgid "Unable to open Catalog DB control file %s: ERR=%s\n" +msgstr "" + +#: src/cats/bdb.c:250 +#, c-format +msgid "Error reading catalog DB control file. ERR=%s\n" +msgstr "" + +#: src/cats/bdb.c:253 +#, c-format +msgid "" +"Error, catalog DB control file wrong version. Wanted %d, got %d\n" +"Please reinitialize the working directory.\n" +msgstr "" + +#: src/cats/bdb_update.c:88 src/cats/bdb_update.c:119 +#, c-format +msgid "Error updating DB Job file. ERR=%s\n" +msgstr "" + +#: src/cats/bdb_update.c:158 src/cats/bdb_update.c:194 +#, c-format +msgid "Error updating DB Media file. ERR=%s\n" +msgstr "" + +#: src/cats/mysql.c:82 +msgid "A user name for MySQL must be supplied.\n" +msgstr "" + +#: src/cats/mysql.c:190 +#, c-format +msgid "" +"Unable to connect to MySQL server.\n" +"Database=%s User=%s\n" +"MySQL connect failed either server not running or your authorization is " +"incorrect.\n" +msgstr "" + +#: src/cats/mysql.c:367 src/cats/postgresql.c:304 src/cats/sqlite.c:351 +#, c-format +msgid "Query failed: %s: ERR=%s\n" +msgstr "" + +#: src/cats/postgresql.c:85 +msgid "A user name for PostgreSQL must be supplied.\n" +msgstr "" + +#: src/cats/postgresql.c:148 +msgid "" +"PostgreSQL configuration problem. PostgreSQL library is not thread safe. " +"Connot continue.\n" +msgstr "" + +#: src/cats/postgresql.c:198 +#, c-format +msgid "" +"Unable to connect to PostgreSQL server.\n" +"Database=%s User=%s\n" +"It is probably not running or your password is incorrect.\n" +msgstr "" + +#: src/cats/postgresql.c:590 +#, c-format +msgid "error fetching currval: %s\n" +msgstr "" + +#: src/cats/postgresql.c:682 src/cats/postgresql.c:729 +#, c-format +msgid "error ending batch mode: %s\n" +msgstr "" + +#: src/cats/sql.c:139 +#, c-format +msgid "" +"query %s failed:\n" +"%s\n" +msgstr "" + +#: src/cats/sql.c:161 +#, c-format +msgid "" +"insert %s failed:\n" +"%s\n" +msgstr "" + +#: src/cats/sql.c:175 +#, c-format +msgid "Insertion problem: affected_rows=%s\n" +msgstr "" + +#: src/cats/sql.c:195 +#, c-format +msgid "" +"update %s failed:\n" +"%s\n" +msgstr "" + +#: src/cats/sql.c:205 +#, c-format +msgid "Update failed: affected_rows=%s for %s\n" +msgstr "" + +#: src/cats/sql.c:226 +#, c-format +msgid "" +"delete %s failed:\n" +"%s\n" +msgstr "" + +#: src/cats/sql.c:252 src/cats/sql.c:259 src/cats/sql_create.c:1018 +#: src/cats/sql_get.c:185 src/cats/sql_get.c:236 src/cats/sql_get.c:604 +#: src/cats/sql_get.c:680 src/cats/sql_get.c:951 +#, c-format +msgid "error fetching row: %s\n" +msgstr "" + +#: src/cats/sql.c:369 src/dird/catreq.c:404 src/dird/catreq.c:478 +#: src/dird/fd_cmds.c:638 src/dird/fd_cmds.c:696 +#, c-format +msgid "Attribute create error. %s" +msgstr "" + +#: src/cats/sql.c:450 +#, c-format +msgid "Path length is zero. File=%s\n" +msgstr "" + +#: src/cats/sql.c:494 +msgid "No results to list.\n" +msgstr "" + +#: src/cats/sql_create.c:95 +#, c-format +msgid "Create DB Job record %s failed. ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:146 +#, c-format +msgid "Create JobMedia record %s failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:155 +#, c-format +msgid "Update Media record %s failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:185 +#, c-format +msgid "pool record %s already exists\n" +msgstr "" + +#: src/cats/sql_create.c:212 +#, c-format +msgid "Create db Pool record %s failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:243 +#, c-format +msgid "Device record %s already exists\n" +msgstr "" + +#: src/cats/sql_create.c:259 +#, c-format +msgid "Create db Device record %s failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:292 +#, c-format +msgid "More than one Storage record!: %d\n" +msgstr "" + +#: src/cats/sql_create.c:297 +#, c-format +msgid "error fetching Storage row: %s\n" +msgstr "" + +#: src/cats/sql_create.c:317 +#, c-format +msgid "Create DB Storage record %s failed. ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:349 +#, c-format +msgid "mediatype record %s already exists\n" +msgstr "" + +#: src/cats/sql_create.c:365 +#, c-format +msgid "Create db mediatype record %s failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:400 +#, c-format +msgid "Volume \"%s\" already exists.\n" +msgstr "" + +#: src/cats/sql_create.c:445 +#, c-format +msgid "Create DB Media record %s failed. ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:493 +#, c-format +msgid "More than one Client!: %d\n" +msgstr "" + +#: src/cats/sql_create.c:498 +#, c-format +msgid "error fetching Client row: %s\n" +msgstr "" + +#: src/cats/sql_create.c:525 +#, c-format +msgid "Create DB Client record %s failed. ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:568 +#, c-format +msgid "Create DB Counters record %s failed. ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:601 +#, c-format +msgid "More than one FileSet!: %d\n" +msgstr "" + +#: src/cats/sql_create.c:606 +#, c-format +msgid "error fetching FileSet row: ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:636 +#, c-format +msgid "Create DB FileSet record %s failed. ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:850 src/dird/job.c:131 src/dird/ua_output.c:628 +#, c-format +msgid "Could not open database \"%s\".\n" +msgstr "" + +#: src/cats/sql_create.c:873 src/cats/sql_create.c:914 +#, c-format +msgid "Attempt to put non-attributes into catalog. Stream=%d\n" +msgstr "" + +#: src/cats/sql_create.c:978 +#, c-format +msgid "Create db File record %s failed. ERR=%s" +msgstr "" + +#: src/cats/sql_create.c:1011 src/cats/sql_get.c:229 +#, c-format +msgid "More than one Path!: %s for path: %s\n" +msgstr "" + +#: src/cats/sql_create.c:1042 +#, c-format +msgid "Create db Path record %s failed. ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:1075 +#, c-format +msgid "More than one Filename! %s for file: %s\n" +msgstr "" + +#: src/cats/sql_create.c:1081 +#, c-format +msgid "Error fetching row for file=%s: ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:1097 +#, c-format +msgid "Create db Filename record %s failed. ERR=%s\n" +msgstr "" + +#: src/cats/sql_delete.c:80 +#, c-format +msgid "No pool record %s exists\n" +msgstr "" + +#: src/cats/sql_delete.c:85 +#, c-format +msgid "Expecting one pool record, got %d\n" +msgstr "" + +#: src/cats/sql_delete.c:91 +#, c-format +msgid "Error fetching row %s\n" +msgstr "" + +#: src/cats/sql_find.c:98 src/cats/sql_find.c:127 +#, c-format +msgid "" +"Query error for start time request: ERR=%s\n" +"CMD=%s\n" +msgstr "" + +#: src/cats/sql_find.c:104 +msgid "No prior Full backup Job record found.\n" +msgstr "" + +#: src/cats/sql_find.c:116 +#, c-format +msgid "Unknown level=%d\n" +msgstr "" + +#: src/cats/sql_find.c:133 +#, c-format +msgid "" +"No Job record found: ERR=%s\n" +"CMD=%s\n" +msgstr "" + +#: src/cats/sql_find.c:232 +#, c-format +msgid "Unknown Job level=%d\n" +msgstr "" + +#: src/cats/sql_find.c:242 +#, c-format +msgid "No Job found for: %s.\n" +msgstr "" + +#: src/cats/sql_find.c:253 +#, c-format +msgid "No Job found for: %s\n" +msgstr "" + +#: src/cats/sql_find.c:332 +#, c-format +msgid "Request for Volume item %d greater than max %d or less than 1\n" +msgstr "" + +#: src/cats/sql_find.c:347 +#, c-format +msgid "No Volume record found for item %d.\n" +msgstr "" + +#: src/cats/sql_get.c:135 +#, c-format +msgid "get_file_record want 1 got rows=%d\n" +msgstr "" + +#: src/cats/sql_get.c:140 +#, c-format +msgid "Error fetching row: %s\n" +msgstr "" + +#: src/cats/sql_get.c:148 +#, c-format +msgid "File record for PathId=%s FilenameId=%s not found.\n" +msgstr "" + +#: src/cats/sql_get.c:154 +msgid "File record not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:179 +#, c-format +msgid "More than one Filename!: %s for file: %s\n" +msgstr "" + +#: src/cats/sql_get.c:189 +#, c-format +msgid "Get DB Filename record %s found bad record: %d\n" +msgstr "" + +#: src/cats/sql_get.c:195 +#, c-format +msgid "Filename record: %s not found.\n" +msgstr "" + +#: src/cats/sql_get.c:199 +#, c-format +msgid "Filename record: %s not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:240 +#, c-format +msgid "Get DB path record %s found bad record: %s\n" +msgstr "" + +#: src/cats/sql_get.c:253 +#, c-format +msgid "Path record: %s not found.\n" +msgstr "" + +#: src/cats/sql_get.c:257 +#, c-format +msgid "Path record: %s not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:294 +#, c-format +msgid "No Job found for JobId %s\n" +msgstr "" + +#: src/cats/sql_get.c:363 src/cats/sql_get.c:419 +#, c-format +msgid "No volumes found for JobId=%d\n" +msgstr "" + +#: src/cats/sql_get.c:369 src/cats/sql_get.c:430 +#, c-format +msgid "Error fetching row %d: ERR=%s\n" +msgstr "" + +#: src/cats/sql_get.c:383 +#, c-format +msgid "No Volume for JobId %d found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:520 +#, c-format +msgid "Pool id select failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_get.c:557 +#, c-format +msgid "Client id select failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_get.c:599 +#, c-format +msgid "More than one Pool!: %s\n" +msgstr "" + +#: src/cats/sql_get.c:641 +msgid "Pool record not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:675 +#, c-format +msgid "More than one Client!: %s\n" +msgstr "" + +#: src/cats/sql_get.c:692 src/cats/sql_get.c:696 +msgid "Client record not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:721 +#, c-format +msgid "More than one Counter!: %d\n" +msgstr "" + +#: src/cats/sql_get.c:726 +#, c-format +msgid "error fetching Counter row: %s\n" +msgstr "" + +#: src/cats/sql_get.c:746 +#, c-format +msgid "Counter record: %s not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:782 +#, c-format +msgid "Error got %s FileSets but expected only one!\n" +msgstr "" + +#: src/cats/sql_get.c:787 +#, c-format +msgid "FileSet record \"%s\" not found.\n" +msgstr "" + +#: src/cats/sql_get.c:797 +msgid "FileSet record not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:855 +#, c-format +msgid "Media id select failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_get.c:893 +#, c-format +msgid "query dbids failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_get.c:946 +#, c-format +msgid "More than one Volume!: %s\n" +msgstr "" + +#: src/cats/sql_get.c:1001 +#, c-format +msgid "Media record MediaId=%s not found.\n" +msgstr "" + +#: src/cats/sql_get.c:1004 +#, c-format +msgid "Media record for Volume \"%s\" not found.\n" +msgstr "" + +#: src/cats/sql_get.c:1011 +#, c-format +msgid "Media record for MediaId=%u not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:1014 +#, c-format +msgid "Media record for Vol=%s not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_list.c:62 +#, c-format +msgid "Query failed: %s\n" +msgstr "" + +#: src/cats/sqlite.c:174 +#, c-format +msgid "Database %s does not exist, please create it.\n" +msgstr "" + +#: src/cats/sqlite.c:204 +#, c-format +msgid "Unable to open Database=%s. ERR=%s\n" +msgstr "" + +#: src/cats/sqlite.c:205 src/lib/bnet_server.c:391 +msgid "unknown" +msgstr "" + +#: src/dird/admin.c:63 +#, c-format +msgid "Start Admin JobId %d, Job=%s\n" +msgstr "" + +#: src/dird/admin.c:89 src/dird/backup.c:355 src/dird/migrate.c:1077 +#, c-format +msgid "Error getting Job record for Job report: ERR=%s" +msgstr "" + +#: src/dird/admin.c:97 +msgid "Admin OK" +msgstr "" + +#: src/dird/admin.c:101 +msgid "*** Admin Error ***" +msgstr "" + +#: src/dird/admin.c:105 +msgid "Admin Canceled" +msgstr "" + +#: src/dird/admin.c:109 src/dird/backup.c:405 src/dird/restore.c:279 +#, c-format +msgid "Inappropriate term code: %c\n" +msgstr "" + +#: src/dird/admin.c:115 +msgid "Bacula " +msgstr "" + +#: src/dird/admin.c:115 src/console/console.c:114 +#, c-format +msgid " (" +msgstr "" + +#: src/dird/admin.c:115 +#, c-format +msgid "" +"): %s\n" +" JobId: %d\n" +" Job: %s\n" +" Start time: %s\n" +" End time: %s\n" +" Termination: %s\n" +"\n" +msgstr "" + +#: src/dird/authenticate.c:80 src/dird/authenticate.c:81 +#: src/tray-monitor/authenticate.c:132 +#, c-format +msgid "Error sending Hello to Storage daemon. ERR=%s\n" +msgstr "" + +#: src/dird/authenticate.c:106 +msgid "Director and Storage daemon passwords or names not the same.\n" +msgstr "" + +#: src/dird/authenticate.c:108 +#, c-format +msgid "" +"Director unable to authenticate with Storage daemon at \"%s:%d\". Possible " +"causes:\n" +"Passwords or names not the same or\n" +"Maximum Concurrent Jobs exceeded on the SD or\n" +"SD networking messed up (restart daemon).\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" + +#: src/dird/authenticate.c:120 src/console/authenticate.c:114 +#: src/filed/authenticate.c:251 src/stored/authenticate.c:131 +#: src/stored/authenticate.c:232 src/wx-console/authenticate.c:127 +msgid "" +"Authorization problem: Remote server did not advertise required TLS " +"support.\n" +msgstr "" + +#: src/dird/authenticate.c:127 src/console/authenticate.c:121 +#: src/filed/authenticate.c:147 src/filed/authenticate.c:259 +#: src/stored/authenticate.c:139 src/stored/authenticate.c:240 +#: src/wx-console/authenticate.c:133 +msgid "Authorization problem: Remote server requires TLS.\n" +msgstr "" + +#: src/dird/authenticate.c:136 +#, c-format +msgid "TLS negotiation failed with SD at \"%s:%d\"\n" +msgstr "" + +#: src/dird/authenticate.c:145 +#, c-format +msgid "bdird set configuration file to file\n" +" -dnn set debug level to nn\n" +" -f run in foreground (for debugging)\n" +" -g groupid\n" +" -r run now\n" +" -s no signals\n" +" -t test - read configuration and exit\n" +" -u userid\n" +" -v verbose user messages\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/dird/dird.c:224 src/console/console.c:426 src/filed/filed.c:182 +#: src/gnome2-console/console.c:286 src/stored/stored.c:210 +msgid "Cryptography library initialization failed.\n" +msgstr "" + +#: src/dird/dird.c:228 src/dird/dird.c:234 src/dird/dird.c:474 +#: src/dird/dird.c:477 src/console/console.c:430 src/filed/filed.c:187 +#: src/gnome2-console/console.c:290 src/stored/stored.c:214 +#, c-format +msgid "Please correct configuration file: %s\n" +msgstr "" + +#: src/dird/dird.c:460 +msgid "Too many open reload requests. Request ignored.\n" +msgstr "" + +#: src/dird/dird.c:475 +msgid "Out of reload table entries. Giving up.\n" +msgstr "" + +#: src/dird/dird.c:478 +msgid "Resetting previous configuration.\n" +msgstr "" + +#: src/dird/dird.c:541 +#, c-format +msgid "" +"No Director resource defined in %s\n" +"Without that I don't know who I am :-(\n" +msgstr "" + +#: src/dird/dird.c:549 src/filed/filed.c:281 +#, c-format +msgid "No Messages resource defined in %s\n" +msgstr "" + +#: src/dird/dird.c:554 +#, c-format +msgid "Only one Director resource permitted in %s\n" +msgstr "" + +#: src/dird/dird.c:563 src/dird/dird.c:764 src/dird/dird.c:816 +#: src/dird/dird.c:920 src/console/console.c:657 src/console/console.c:686 +#: src/filed/filed.c:288 src/filed/filed.c:446 +#: src/gnome2-console/console.c:153 src/gnome2-console/console.c:182 +#: src/stored/stored.c:332 src/wx-console/console_thread.cpp:114 +#: src/wx-console/console_thread.cpp:140 +msgid "TLS required but not configured in Bacula.\n" +msgstr "" + +#: src/dird/dird.c:569 src/filed/filed.c:455 src/stored/stored.c:384 +#, c-format +msgid "\"TLS Certificate\" file not defined for Director \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird.c:575 src/filed/filed.c:461 src/stored/stored.c:390 +#, c-format +msgid "\"TLS Key\" file not defined for Director \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird.c:581 src/filed/filed.c:467 src/stored/stored.c:396 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Director \"%s\" in %s. At least one CA certificate store is required when " +"using \"TLS Verify Peer\".\n" +msgstr "" + +#: src/dird/dird.c:600 src/filed/filed.c:486 src/stored/stored.c:415 +#, c-format +msgid "Failed to initialize TLS context for Director \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird.c:608 +#, c-format +msgid "No Job records defined in %s\n" +msgstr "" + +#: src/dird/dird.c:666 src/dird/dird.c:679 +#, c-format +msgid "Hey something is wrong. p=0x%lu\n" +msgstr "" + +#: src/dird/dird.c:738 +#, c-format +msgid "\"%s\" directive in Job \"%s\" resource is required, but not found.\n" +msgstr "" + +#: src/dird/dird.c:745 +msgid "Too many items in Job resource\n" +msgstr "" + +#: src/dird/dird.c:749 +#, c-format +msgid "No storage specified in Job \"%s\" nor in Pool.\n" +msgstr "" + +#: src/dird/dird.c:771 +#, c-format +msgid "\"TLS Certificate\" file not defined for Console \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird.c:777 +#, c-format +msgid "\"TLS Key\" file not defined for Console \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird.c:783 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Console \"%s\" in %s. At least one CA certificate store is required when " +"using \"TLS Verify Peer\".\n" +msgstr "" + +#: src/dird/dird.c:800 src/dird/dird.c:840 src/filed/filed.c:312 +#, c-format +msgid "Failed to initialize TLS context for File daemon \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird.c:823 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"File daemon \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird.c:872 src/dird/dird.c:874 +#, c-format +msgid "Could not open Catalog \"%s\", database \"%s\".\n" +msgstr "" + +#: src/dird/dird.c:877 +#, c-format +msgid "%s" +msgstr "" + +#: src/dird/dird.c:926 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Storage \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird.c:942 src/stored/stored.c:370 +#, c-format +msgid "Failed to initialize TLS context for Storage \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird_conf.c:508 src/tray-monitor/tray_conf.c:168 +#, c-format +msgid "No %s resource defined\n" +msgstr "" + +#: src/dird/dird_conf.c:517 +#, c-format +msgid "Director: name=%s MaxJobs=%d FDtimeout=%s SDtimeout=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:522 +#, c-format +msgid " query_file=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:525 src/dird/dird_conf.c:545 src/dird/dird_conf.c:559 +#: src/dird/dird_conf.c:607 src/dird/dird_conf.c:611 src/dird/dird_conf.c:615 +#: src/dird/dird_conf.c:633 src/dird/dird_conf.c:650 src/dird/dird_conf.c:654 +#: src/dird/dird_conf.c:658 src/dird/dird_conf.c:662 src/dird/dird_conf.c:666 +#: src/dird/dird_conf.c:679 src/dird/dird_conf.c:880 +msgid " --> " +msgstr "" + +#: src/dird/dird_conf.c:530 +#, c-format +msgid "Console: name=%s SSL=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:535 +#, c-format +msgid "Counter: name=%s min=%d max=%d cur=%d wrapcntr=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:540 +#, c-format +msgid "Counter: name=%s min=%d max=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:551 +#, c-format +msgid "Client: name=%s address=%s FDport=%d MaxJobs=%u\n" +msgstr "" + +#: src/dird/dird_conf.c:554 +#, c-format +msgid " JobRetention=%s FileRetention=%s AutoPrune=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:566 +#, c-format +msgid "" +"Device: name=%s ok=%d num_writers=%d max_writers=%d\n" +" reserved=%d open=%d append=%d read=%d labeled=%d offline=%d autochgr=%" +"d\n" +" poolid=%s volname=%s MediaType=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:576 +#, c-format +msgid "" +"Storage: name=%s address=%s SDport=%d MaxJobs=%u\n" +" DeviceName=%s MediaType=%s StorageId=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:585 +#, c-format +msgid "" +"Catalog: name=%s address=%s DBport=%d db_name=%s\n" +" db_user=%s MutliDBConn=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:593 +#, c-format +msgid "%s: name=%s JobType=%d level=%s Priority=%d Enabled=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:594 src/dird/ua_cmds.c:478 src/dird/ua_prune.c:365 +#: src/dird/ua_run.c:266 src/dird/ua_select.c:263 src/dird/ua_select.c:286 +msgid "Job" +msgstr "" + +#: src/dird/dird_conf.c:594 +msgid "JobDefs" +msgstr "" + +#: src/dird/dird_conf.c:598 +#, c-format +msgid "" +" MaxJobs=%u Resched=%d Times=%d Interval=%s Spool=%d WritePartAfterJob=%" +"d\n" +msgstr "" + +#: src/dird/dird_conf.c:604 +#, c-format +msgid " SelectionType=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:619 +#, c-format +msgid " --> Where=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:622 +#, c-format +msgid " --> RegexWhere=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:625 +#, c-format +msgid " --> Bootstrap=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:628 +#, c-format +msgid " --> WriteBootstrap=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:640 src/lib/runscript.c:261 +msgid " --> RunScript\n" +msgstr "" + +#: src/dird/dird_conf.c:641 src/lib/runscript.c:262 +#, c-format +msgid " --> Command=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:642 src/lib/runscript.c:263 +#, c-format +msgid " --> Target=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:643 src/lib/runscript.c:264 +#, c-format +msgid " --> RunOnSuccess=%u\n" +msgstr "" + +#: src/dird/dird_conf.c:644 src/lib/runscript.c:265 +#, c-format +msgid " --> RunOnFailure=%u\n" +msgstr "" + +#: src/dird/dird_conf.c:645 src/lib/runscript.c:266 +#, c-format +msgid " --> FailJobOnError=%u\n" +msgstr "" + +#: src/dird/dird_conf.c:646 src/lib/runscript.c:267 +#, c-format +msgid " --> RunWhen=%u\n" +msgstr "" + +#: src/dird/dird_conf.c:672 +#, c-format +msgid " --> Run=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:676 +#, c-format +msgid " --> SelectionPattern=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:686 +#, c-format +msgid "FileSet: name=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:763 src/dird/dird_conf.c:842 +#, c-format +msgid "Schedule: name=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:768 +#, c-format +msgid " --> Run Level=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:769 +msgid " hour=" +msgstr "" + +#: src/dird/dird_conf.c:778 +msgid " mday=" +msgstr "" + +#: src/dird/dird_conf.c:787 +msgid " month=" +msgstr "" + +#: src/dird/dird_conf.c:796 +msgid " wday=" +msgstr "" + +#: src/dird/dird_conf.c:805 +msgid " wom=" +msgstr "" + +#: src/dird/dird_conf.c:814 +msgid " woy=" +msgstr "" + +#: src/dird/dird_conf.c:823 +#, c-format +msgid " mins=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:825 src/dird/dird_conf.c:829 src/dird/dird_conf.c:833 +msgid " --> " +msgstr "" + +#: src/dird/dird_conf.c:846 +#, c-format +msgid "Pool: name=%s PoolType=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:848 +#, c-format +msgid " use_cat=%d use_once=%d cat_files=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:851 +#, c-format +msgid " max_vols=%d auto_prune=%d VolRetention=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:854 +#, c-format +msgid " VolUse=%s recycle=%d LabelFormat=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:858 +#, c-format +msgid " CleaningPrefix=%s LabelType=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:860 +#, c-format +msgid " RecyleOldest=%d PurgeOldest=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:863 +#, c-format +msgid " MaxVolJobs=%d MaxVolFiles=%d MaxVolBytes=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:867 +#, c-format +msgid " MigTime=%s MigHiBytes=%s MigLoBytes=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:872 +#, c-format +msgid " NextPool=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:875 +#, c-format +msgid " RecyclePool=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:886 +#, c-format +msgid "Messages: name=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:888 +#, c-format +msgid " mailcmd=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:890 +#, c-format +msgid " opcmd=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:893 src/tray-monitor/tray_conf.c:199 +#, c-format +msgid "Unknown resource type %d in dump_resource.\n" +msgstr "" + +#: src/dird/dird_conf.c:1199 src/tray-monitor/tray_conf.c:257 +#, c-format +msgid "Unknown resource type %d in free_resource.\n" +msgstr "" + +#: src/dird/dird_conf.c:1231 src/dird/dird_conf.c:1246 +#: src/dird/dird_conf.c:1842 src/console/console_conf.c:257 +#: src/filed/filed_conf.c:347 src/gnome2-console/console_conf.c:258 +#: src/tray-monitor/tray_conf.c:288 src/wx-console/console_conf.c:265 +#, c-format +msgid "%s item is required in %s resource, but not found.\n" +msgstr "" + +#: src/dird/dird_conf.c:1237 src/lib/parse_conf.c:234 +#: src/tray-monitor/tray_conf.c:294 +#, c-format +msgid "Too many items in %s resource\n" +msgstr "" + +#: src/dird/dird_conf.c:1277 +#, c-format +msgid "Cannot find Pool resource %s\n" +msgstr "" + +#: src/dird/dird_conf.c:1286 +#, c-format +msgid "Cannot find Console resource %s\n" +msgstr "" + +#: src/dird/dird_conf.c:1292 src/filed/filed_conf.c:367 +#: src/stored/stored_conf.c:584 +#, c-format +msgid "Cannot find Director resource %s\n" +msgstr "" + +#: src/dird/dird_conf.c:1299 src/stored/stored_conf.c:590 +#, c-format +msgid "Cannot find Storage resource %s\n" +msgstr "" + +#: src/dird/dird_conf.c:1308 +#, c-format +msgid "Cannot find Job resource %s\n" +msgstr "" + +#: src/dird/dird_conf.c:1357 +#, c-format +msgid "Cannot find Counter resource %s\n" +msgstr "" + +#: src/dird/dird_conf.c:1365 src/filed/filed_conf.c:373 +#, c-format +msgid "Cannot find Client resource %s\n" +msgstr "" + +#: src/dird/dird_conf.c:1378 +#, c-format +msgid "Cannot find Schedule resource %s\n" +msgstr "" + +#: src/dird/dird_conf.c:1383 src/dird/dird_conf.c:1443 +#: src/tray-monitor/tray_conf.c:314 src/tray-monitor/tray_conf.c:352 +#, c-format +msgid "Unknown resource type %d in save_resource.\n" +msgstr "" + +#: src/dird/dird_conf.c:1458 +#, c-format +msgid "Name item is required in %s resource, but not found.\n" +msgstr "" + +#: src/dird/dird_conf.c:1466 src/console/console_conf.c:320 +#: src/filed/filed_conf.c:432 src/gnome2-console/console_conf.c:327 +#: src/tray-monitor/tray_conf.c:372 src/wx-console/console_conf.c:328 +#, c-format +msgid "Attempt to define second %s resource named \"%s\" is not permitted.\n" +msgstr "" + +#: src/dird/dird_conf.c:1471 +#, c-format +msgid "Inserting %s res: %s index=%d pass=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:1543 +#, c-format +msgid "Expected a Migration Job Type keyword, got: %s" +msgstr "" + +#: src/dird/dird_conf.c:1569 +#, c-format +msgid "Expected a Job Type keyword, got: %s" +msgstr "" + +#: src/dird/dird_conf.c:1593 +#, c-format +msgid "Expected a Job Level keyword, got: %s" +msgstr "" + +#: src/dird/dird_conf.c:1613 +#, c-format +msgid "Expected a Restore replacement option, got: %s" +msgstr "" + +#: src/dird/dird_conf.c:1661 src/dird/dird_conf.c:1771 +#: src/lib/parse_conf.c:723 src/lib/parse_conf.c:738 +#, c-format +msgid "Expect %s, got: %s" +msgstr "" + +#: src/dird/dird_conf.c:1683 src/lib/parse_conf.c:482 +#, c-format +msgid "Could not find config Resource %s referenced on line %d : %s\n" +msgstr "" + +#: src/dird/dird_conf.c:1811 src/dird/inc_conf.c:645 +#, c-format +msgid "Expecting open brace. Got %s" +msgstr "" + +#: src/dird/dird_conf.c:1819 src/dird/inc_conf.c:360 src/dird/inc_conf.c:660 +#, c-format +msgid "Expecting keyword, got: %s\n" +msgstr "" + +#: src/dird/dird_conf.c:1825 src/dird/inc_conf.c:368 src/dird/inc_conf.c:666 +#: src/lib/parse_conf.c:874 +#, c-format +msgid "expected an equals, got: %s" +msgstr "" + +#: src/dird/dird_conf.c:1836 src/dird/inc_conf.c:378 src/dird/inc_conf.c:675 +#, c-format +msgid "Keyword %s not permitted in this resource" +msgstr "" + +#: src/dird/expand.c:255 +#, c-format +msgid "Count not update counter %s: ERR=%s\n" +msgstr "" + +#: src/dird/expand.c:427 +#, c-format +msgid "Cannot create var context: ERR=%s\n" +msgstr "" + +#: src/dird/expand.c:432 +#, c-format +msgid "Cannot set var callback: ERR=%s\n" +msgstr "" + +#: src/dird/expand.c:438 +#, c-format +msgid "Cannot set var operate: ERR=%s\n" +msgstr "" + +#: src/dird/expand.c:444 src/dird/expand.c:459 +#, c-format +msgid "Cannot unescape string: ERR=%s\n" +msgstr "" + +#: src/dird/expand.c:452 +#, c-format +msgid "Cannot expand expression \"%s\": ERR=%s\n" +msgstr "" + +#: src/dird/expand.c:470 +#, c-format +msgid "Cannot destroy var context: ERR=%s\n" +msgstr "" + +#: src/dird/fd_cmds.c:94 src/tray-monitor/tray-monitor.c:914 +msgid "File daemon" +msgstr "" + +#: src/dird/fd_cmds.c:125 +#, c-format +msgid "File daemon \"%s\" rejected Job command: %s\n" +msgstr "" + +#: src/dird/fd_cmds.c:138 +#, c-format +msgid "Error updating Client record. ERR=%s\n" +msgstr "" + +#: src/dird/fd_cmds.c:143 +#, c-format +msgid "FD gave bad response to JobId command: %s\n" +msgstr "" + +#: src/dird/fd_cmds.c:165 src/dird/fd_cmds.c:201 +msgid ", since=" +msgstr "" + +#: src/dird/fd_cmds.c:185 +msgid "No prior or suitable Full backup found in catalog. Doing FULL backup.\n" +msgstr "" + +#: src/dird/fd_cmds.c:186 src/dird/fd_cmds.c:194 +#, c-format +msgid " (upgraded from %s)" +msgstr "" + +#: src/dird/fd_cmds.c:192 +#, c-format +msgid "Prior failed job found in catalog. Upgrading to %s.\n" +msgstr "" + +#: src/dird/fd_cmds.c:253 +#, c-format +msgid "Unimplemented backup level %d %c\n" +msgstr "" + +#: src/dird/fd_cmds.c:356 src/filed/job.c:640 +#, c-format +msgid "Cannot run program: %s. ERR=%s\n" +msgstr "" + +#: src/dird/fd_cmds.c:367 src/dird/fd_cmds.c:392 src/dird/fd_cmds.c:406 +msgid ">filed: write error on socket\n" +msgstr "" + +#: src/dird/fd_cmds.c:373 +#, c-format +msgid "Error running program: %s. ERR=%s\n" +msgstr "" + +#: src/dird/fd_cmds.c:382 +#, c-format +msgid "Cannot open included file: %s. ERR=%s\n" +msgstr "" + +#: src/dird/fd_cmds.c:477 src/filed/job.c:1831 +#, c-format +msgid "Could not open bootstrap file %s: ERR=%s\n" +msgstr "" + +#: src/dird/fd_cmds.c:583 +#, c-format +msgid "Client \"%s\" RunScript failed.\n" +msgstr "" + +#: src/dird/fd_cmds.c:619 +#, c-format +msgid "" +" | ] -- cancel a job" +msgstr "" + +#: src/dird/ua_cmds.c:108 +msgid "create DB Pool from resource" +msgstr "" + +#: src/dird/ua_cmds.c:109 +msgid "delete [pool= | media volume=]" +msgstr "" + +#: src/dird/ua_cmds.c:110 +msgid "disable -- disable a job" +msgstr "" + +#: src/dird/ua_cmds.c:111 +msgid "enable -- enable a job" +msgstr "" + +#: src/dird/ua_cmds.c:112 +msgid "performs FileSet estimate, listing gives full listing" +msgstr "" + +#: src/dird/ua_cmds.c:113 src/console/console.c:171 +msgid "exit = quit" +msgstr "" + +#: src/dird/ua_cmds.c:114 +msgid "gui [on|off] -- non-interactive gui mode" +msgstr "" + +#: src/dird/ua_cmds.c:115 src/stored/btape.c:2540 +msgid "print this command" +msgstr "" + +#: src/dird/ua_cmds.c:116 +msgid "" +"list [pools | jobs | jobtotals | media | files ]; " +"from catalog" +msgstr "" + +#: src/dird/ua_cmds.c:117 +msgid "label a tape" +msgstr "" + +#: src/dird/ua_cmds.c:118 +msgid "full or long list like list command" +msgstr "" + +#: src/dird/ua_cmds.c:119 +msgid "print current memory usage" +msgstr "" + +#: src/dird/ua_cmds.c:120 +msgid "messages" +msgstr "" + +#: src/dird/ua_cmds.c:121 +msgid "mount " +msgstr "" + +#: src/dird/ua_cmds.c:122 +msgid "prune expired records from catalog" +msgstr "" + +#: src/dird/ua_cmds.c:123 +msgid "purge records from catalog" +msgstr "" + +#: src/dird/ua_cmds.c:124 +msgid "python control commands" +msgstr "" + +#: src/dird/ua_cmds.c:125 src/console/console.c:164 +msgid "quit" +msgstr "" + +#: src/dird/ua_cmds.c:126 +msgid "query catalog" +msgstr "" + +#: src/dird/ua_cmds.c:127 +msgid "restore files" +msgstr "" + +#: src/dird/ua_cmds.c:128 +msgid "relabel a tape" +msgstr "" + +#: src/dird/ua_cmds.c:129 +msgid "release " +msgstr "" + +#: src/dird/ua_cmds.c:130 +msgid "reload conf file" +msgstr "" + +#: src/dird/ua_cmds.c:131 +msgid "run " +msgstr "" + +#: src/dird/ua_cmds.c:132 +msgid "status [storage | client]=" +msgstr "" + +#: src/dird/ua_cmds.c:133 +msgid "sets debug level" +msgstr "" + +#: src/dird/ua_cmds.c:134 +msgid "sets new client address -- if authorized" +msgstr "" + +#: src/dird/ua_cmds.c:135 +msgid "show (resource records) [jobs | pools | ... | all]" +msgstr "" + +#: src/dird/ua_cmds.c:136 +msgid "use SQL to query catalog" +msgstr "" + +#: src/dird/ua_cmds.c:137 src/console/console.c:167 +msgid "print current time" +msgstr "" + +#: src/dird/ua_cmds.c:138 +msgid "turn on/off trace to file" +msgstr "" + +#: src/dird/ua_cmds.c:139 +msgid "unmount " +msgstr "" + +#: src/dird/ua_cmds.c:140 +msgid "umount for old-time Unix guys" +msgstr "" + +#: src/dird/ua_cmds.c:141 +msgid "update Volume, Pool or slots" +msgstr "" + +#: src/dird/ua_cmds.c:142 +msgid "use catalog xxx" +msgstr "" + +#: src/dird/ua_cmds.c:143 +msgid "does variable expansion" +msgstr "" + +#: src/dird/ua_cmds.c:144 +msgid "print Director version" +msgstr "" + +#: src/dird/ua_cmds.c:145 +msgid "" +"wait until no jobs are running [ | | " +"]" +msgstr "" + +#: src/dird/ua_cmds.c:186 +#, c-format +msgid "%s: is an invalid command.\n" +msgstr "" + +#: src/dird/ua_cmds.c:227 +msgid "" +"You probably don't want to be using this command since it\n" +"creates database records without labeling the Volumes.\n" +"You probably want to use the \"label\" command.\n" +"\n" +msgstr "" + +#: src/dird/ua_cmds.c:246 +#, c-format +msgid "Pool already has maximum volumes=%d\n" +msgstr "" + +#: src/dird/ua_cmds.c:248 +msgid "Enter new maximum (zero for unlimited): " +msgstr "" + +#: src/dird/ua_cmds.c:269 +#, c-format +msgid "Enter number of Volumes to create. 0=>fixed name. Max=%d: " +msgstr "" + +#: src/dird/ua_cmds.c:275 +#, c-format +msgid "The number must be between 0 and %d\n" +msgstr "" + +#: src/dird/ua_cmds.c:282 +msgid "Enter Volume name: " +msgstr "" + +#: src/dird/ua_cmds.c:286 +msgid "Enter base volume name: " +msgstr "" + +#: src/dird/ua_cmds.c:295 src/dird/ua_label.c:645 +msgid "Volume name too long.\n" +msgstr "" + +#: src/dird/ua_cmds.c:299 src/dird/ua_label.c:651 src/lib/edit.c:459 +msgid "Volume name must be at least one character long.\n" +msgstr "" + +#: src/dird/ua_cmds.c:308 +msgid "Enter the starting number: " +msgstr "" + +#: src/dird/ua_cmds.c:313 +msgid "Start number must be greater than zero.\n" +msgstr "" + +#: src/dird/ua_cmds.c:324 +msgid "Enter slot (0 for none): " +msgstr "" + +#: src/dird/ua_cmds.c:328 +msgid "InChanger? yes/no: " +msgstr "" + +#: src/dird/ua_cmds.c:356 +#, c-format +msgid "%d Volumes created in pool %s\n" +msgstr "" + +#: src/dird/ua_cmds.c:372 src/dird/ua_cmds.c:1035 +msgid "Turn on or off? " +msgstr "" + +#: src/dird/ua_cmds.c:403 +#, c-format +msgid "JobId %s is not running. Use Job name to cancel inactive jobs.\n" +msgstr "" + +#: src/dird/ua_cmds.c:412 src/dird/ua_cmds.c:422 +#, c-format +msgid "Warning Job %s is not running. Continuing anyway ...\n" +msgstr "" + +#: src/dird/ua_cmds.c:432 src/dird/ua_cmds.c:708 src/dird/ua_cmds.c:754 +msgid "Unauthorized command from this console.\n" +msgstr "" + +#: src/dird/ua_cmds.c:457 src/filed/status.c:201 src/stored/status.c:447 +msgid "No Jobs running.\n" +msgstr "" + +#: src/dird/ua_cmds.c:459 +msgid "None of your jobs are running.\n" +msgstr "" + +#: src/dird/ua_cmds.c:464 +msgid "Select Job:\n" +msgstr "" + +#: src/dird/ua_cmds.c:473 +#, c-format +msgid "JobId=%s Job=%s" +msgstr "" + +#: src/dird/ua_cmds.c:478 +msgid "Choose Job to cancel" +msgstr "" + +#: src/dird/ua_cmds.c:483 +#, c-format +msgid "" +"Cancel: %s\n" +"\n" +"%s" +msgstr "" + +#: src/dird/ua_cmds.c:484 +msgid "Confirm cancel?" +msgstr "" + +#: src/dird/ua_cmds.c:490 +msgid "Confirm cancel (yes/no): " +msgstr "" + +#: src/dird/ua_cmds.c:498 src/dird/ua_cmds.c:749 +#, c-format +msgid "Job \"%s\" not found.\n" +msgstr "" + +#: src/dird/ua_cmds.c:595 +#, c-format +msgid "" +"Can't set %s RecyclePool to %s, %s is not in database.\n" +"Try to update it with 'update pool=%s'\n" +msgstr "" + +#: src/dird/ua_cmds.c:662 +#, c-format +msgid "" +"Error: Pool %s already exists.\n" +"Use update to change it.\n" +msgstr "" + +#: src/dird/ua_cmds.c:673 +#, c-format +msgid "Pool %s created.\n" +msgstr "" + +#: src/dird/ua_cmds.c:690 +msgid "Python interpreter restarted.\n" +msgstr "" + +#: src/dird/ua_cmds.c:692 src/dird/ua_cmds.c:1275 +msgid "Nothing done.\n" +msgstr "" + +#: src/dird/ua_cmds.c:715 src/dird/ua_run.c:1224 +#, c-format +msgid "Client \"%s\" not found.\n" +msgstr "" + +#: src/dird/ua_cmds.c:724 +#, c-format +msgid "Client \"%s\" address set to %s\n" +msgstr "" + +#: src/dird/ua_cmds.c:758 +#, c-format +msgid "Job \"%s\" %sabled\n" +msgstr "" + +#: src/dird/ua_cmds.c:785 src/dird/ua_dotcmds.c:177 src/dird/ua_status.c:311 +#, c-format +msgid "Connecting to Storage daemon %s at %s:%d\n" +msgstr "" + +#: src/dird/ua_cmds.c:791 src/dird/ua_dotcmds.c:183 src/dird/ua_status.c:322 +msgid "Connected to storage daemon\n" +msgstr "" + +#: src/dird/ua_cmds.c:811 src/dird/ua_cmds.c:1162 src/dird/ua_dotcmds.c:203 +#: src/dird/ua_status.c:349 +#, c-format +msgid "Connecting to Client %s at %s:%d\n" +msgstr "" + +#: src/dird/ua_cmds.c:814 src/dird/ua_cmds.c:1165 src/dird/ua_dotcmds.c:206 +msgid "Failed to connect to Client.\n" +msgstr "" + +#: src/dird/ua_cmds.c:930 +msgid "Enter new debug level: " +msgstr "" + +#: src/dird/ua_cmds.c:996 src/dird/ua_dotcmds.c:282 +msgid "Available daemons are: \n" +msgstr "" + +#: src/dird/ua_cmds.c:997 src/dird/ua_dotcmds.c:283 +msgid "Director" +msgstr "" + +#: src/dird/ua_cmds.c:998 src/dird/ua_dotcmds.c:284 src/dird/ua_run.c:265 +#: src/dird/ua_select.c:168 src/wx-console/wxbrestorepanel.cpp:339 +#: src/wx-console/wxbrestorepanel.cpp:355 +#: src/wx-console/wxbrestorepanel.cpp:479 +#: src/wx-console/wxbrestorepanel.cpp:480 +#: src/wx-console/wxbrestorepanel.cpp:490 +#: src/wx-console/wxbrestorepanel.cpp:491 +#: src/wx-console/wxbrestorepanel.cpp:1154 +#: src/wx-console/wxbrestorepanel.cpp:1818 +#: src/wx-console/wxbrestorepanel.cpp:1889 +msgid "Storage" +msgstr "" + +#: src/dird/ua_cmds.c:999 src/dird/ua_dotcmds.c:285 src/dird/ua_run.c:271 +#: src/dird/ua_select.c:311 src/dird/ua_select.c:420 +#: src/wx-console/wxbrestorepanel.cpp:336 +#: src/wx-console/wxbrestorepanel.cpp:354 +#: src/wx-console/wxbrestorepanel.cpp:431 +#: src/wx-console/wxbrestorepanel.cpp:432 +#: src/wx-console/wxbrestorepanel.cpp:442 +#: src/wx-console/wxbrestorepanel.cpp:443 +#: src/wx-console/wxbrestorepanel.cpp:690 +#: src/wx-console/wxbrestorepanel.cpp:1124 +#: src/wx-console/wxbrestorepanel.cpp:1211 +#: src/wx-console/wxbrestorepanel.cpp:1811 +#: src/wx-console/wxbrestorepanel.cpp:1813 +#: src/wx-console/wxbrestorepanel.cpp:1887 +#: src/wx-console/wxbrestorepanel.cpp:1943 +msgid "Client" +msgstr "" + +#: src/dird/ua_cmds.c:1000 +msgid "All" +msgstr "" + +#: src/dird/ua_cmds.c:1001 +msgid "Select daemon type to set debug level" +msgstr "" + +#: src/dird/ua_cmds.c:1091 src/dird/ua_cmds.c:1130 src/dird/ua_cmds.c:1798 +#, c-format +msgid "No authorization for Job \"%s\"\n" +msgstr "" + +#: src/dird/ua_cmds.c:1101 +#, c-format +msgid "No authorization for FileSet \"%s\"\n" +msgstr "" + +#: src/dird/ua_cmds.c:1113 src/dird/ua_run.c:217 +#, c-format +msgid "Level %s not valid.\n" +msgstr "" + +#: src/dird/ua_cmds.c:1126 +msgid "No job specified.\n" +msgstr "" + +#: src/dird/ua_cmds.c:1170 +msgid "Error sending include list.\n" +msgstr "" + +#: src/dird/ua_cmds.c:1175 +msgid "Error sending exclude list.\n" +msgstr "" + +#: src/dird/ua_cmds.c:1261 +msgid "" +"In general it is not a good idea to delete either a\n" +"Pool or a Volume since they may contain data.\n" +"\n" +msgstr "" + +#: src/dird/ua_cmds.c:1264 +msgid "Choose catalog item to delete" +msgstr "" + +#: src/dird/ua_cmds.c:1332 +msgid "Enter JobId to delete: " +msgstr "" + +#: src/dird/ua_cmds.c:1367 +#, c-format +msgid "Job %s and associated records deleted from the catalog.\n" +msgstr "" + +#: src/dird/ua_cmds.c:1381 +#, c-format +msgid "" +"\n" +"This command will delete volume %s\n" +"and all Jobs saved on that volume from the Catalog\n" +msgstr "" + +#: src/dird/ua_cmds.c:1385 +#, c-format +msgid "Are you sure you want to delete Volume \"%s\"? (yes/no): " +msgstr "" + +#: src/dird/ua_cmds.c:1409 +#, c-format +msgid "Are you sure you want to delete Pool \"%s\"? (yes/no): " +msgstr "" + +#: src/dird/ua_cmds.c:1523 +#, c-format +msgid "Using Catalog name=%s DB=%s\n" +msgstr "" + +#: src/dird/ua_cmds.c:1583 +msgid "ERR: Can't open db\n" +msgstr "" + +#: src/dird/ua_cmds.c:1619 +msgid "ERR: Job was not found\n" +msgstr "" + +#: src/dird/ua_cmds.c:1695 src/dird/ua_tree.c:664 src/stored/btape.c:2587 +#, c-format +msgid "" +" Command Description\n" +" ======= ===========\n" +msgstr "" + +#: src/dird/ua_cmds.c:1697 +#, c-format +msgid " %-10s %s\n" +msgstr "" + +#: src/dird/ua_cmds.c:1699 +msgid "" +"\n" +"When at a prompt, entering a period cancels the command.\n" +"\n" +msgstr "" + +#: src/dird/ua_cmds.c:1716 src/dird/ua_status.c:263 src/stored/status.c:79 +#, c-format +msgid "%s Version: %s (%s) %s %s %s\n" +msgstr "" + +#: src/dird/ua_cmds.c:1759 src/dird/ua_cmds.c:1786 src/dird/ua_cmds.c:1808 +#, c-format +msgid "No authorization for Catalog \"%s\"\n" +msgstr "" + +#: src/dird/ua_cmds.c:1776 +#, c-format +msgid "No authorization for Client \"%s\"\n" +msgstr "" + +#: src/dird/ua_cmds.c:1831 src/dird/ua_select.c:221 +msgid "Could not find a Catalog resource\n" +msgstr "" + +#: src/dird/ua_cmds.c:1844 +#, c-format +msgid "Could not open catalog database \"%s\".\n" +msgstr "" + +#: src/dird/ua_cmds.c:1854 +#, c-format +msgid "Using Catalog \"%s\"\n" +msgstr "" + +#: src/dird/ua_dotcmds.c:138 +msgid ": is an invalid command.\n" +msgstr "" + +#: src/dird/ua_dotcmds.c:238 src/dird/ua_dotcmds.c:288 +msgid "The Director will segment fault.\n" +msgstr "" + +#: src/dird/ua_dotcmds.c:286 +msgid "Select daemon type to make die" +msgstr "" + +#: src/dird/ua_dotcmds.c:453 +msgid "Access to specified Client or FileSet not allowed.\n" +msgstr "" + +#: src/dird/ua_dotcmds.c:458 src/dird/ua_dotcmds.c:494 +#: src/dird/ua_restore.c:882 src/dird/ua_restore.c:911 +#: src/dird/ua_restore.c:932 +#, c-format +msgid "Query failed: %s. ERR=%s\n" +msgstr "" + +#: src/dird/ua_dotcmds.c:489 +msgid "query keyword not found.\n" +msgstr "" + +#: src/dird/ua_input.c:95 +msgid "Enter slot" +msgstr "" + +#: src/dird/ua_input.c:99 src/dird/ua_input.c:105 +#, c-format +msgid "Expected a positive integer, got: %s\n" +msgstr "" + +#: src/dird/ua_input.c:123 src/dird/ua_run.c:446 src/dird/ua_update.c:245 +#: src/dird/ua_update.c:265 src/dird/ua_update.c:609 +#: src/stored/parse_bsr.c:779 src/tools/dbcheck.c:1202 +msgid "yes" +msgstr "" + +#: src/dird/ua_input.c:127 src/dird/ua_update.c:245 src/dird/ua_update.c:265 +#: src/dird/ua_update.c:609 src/stored/parse_bsr.c:779 +msgid "no" +msgstr "" + +#: src/dird/ua_input.c:162 +msgid "Invalid response. You must answer yes or no.\n" +msgstr "" + +#: src/dird/ua_input.c:185 +msgid "Invalid Enabled value, it must be yes, no, archived, 0, 1, or 2\n" +msgstr "" + +#: src/dird/ua_label.c:102 +msgid "Negative numbers not permitted\n" +msgstr "" + +#: src/dird/ua_label.c:108 +msgid "Range end is not integer.\n" +msgstr "" + +#: src/dird/ua_label.c:113 +msgid "Range start is not an integer.\n" +msgstr "" + +#: src/dird/ua_label.c:119 +msgid "Range end not bigger than start.\n" +msgstr "" + +#: src/dird/ua_label.c:125 +msgid "Input value is not an integer.\n" +msgstr "" + +#: src/dird/ua_label.c:131 +msgid "Values must be be greater than zero.\n" +msgstr "" + +#: src/dird/ua_label.c:135 +msgid "Slot too large.\n" +msgstr "" + +#: src/dird/ua_label.c:184 src/dird/ua_label.c:349 src/dird/ua_run.c:1199 +msgid "command line" +msgstr "" + +#: src/dird/ua_label.c:202 src/dird/ua_label.c:513 +msgid "No slots in changer to scan.\n" +msgstr "" + +#: src/dird/ua_label.c:214 src/dird/ua_label.c:524 +msgid "No Volumes found to label, or no barcodes.\n" +msgstr "" + +#: src/dird/ua_label.c:224 +#, c-format +msgid "Slot %d greater than max %d ignored.\n" +msgstr "" + +#: src/dird/ua_label.c:253 +#, c-format +msgid "No VolName for Slot=%d InChanger set to zero.\n" +msgstr "" + +#: src/dird/ua_label.c:271 +#, c-format +msgid "Catalog record for Volume \"%s\" updated to reference slot %d.\n" +msgstr "" + +#: src/dird/ua_label.c:275 +#, c-format +msgid "Catalog record for Volume \"%s\" is up to date.\n" +msgstr "" + +#: src/dird/ua_label.c:281 +#, c-format +msgid "Volume \"%s\" not found in catalog. Slot=%d InChanger set to zero.\n" +msgstr "" + +#: src/dird/ua_label.c:378 +#, c-format +msgid "" +"Volume \"%s\" has VolStatus %s. It must be Purged or Recycled before " +"relabeling.\n" +msgstr "" + +#: src/dird/ua_label.c:394 +msgid "Enter new Volume name: " +msgstr "" + +#: src/dird/ua_label.c:407 +#, c-format +msgid "Media record for new Volume \"%s\" already exists.\n" +msgstr "" + +#: src/dird/ua_label.c:425 +msgid "Enter slot (0 or Enter for none): " +msgstr "" + +#: src/dird/ua_label.c:453 +#, c-format +msgid "Delete of Volume \"%s\" failed. ERR=%s" +msgstr "" + +#: src/dird/ua_label.c:456 +#, c-format +msgid "Old volume \"%s\" deleted from catalog.\n" +msgstr "" + +#: src/dird/ua_label.c:467 +#, c-format +msgid "Requesting to mount %s ...\n" +msgstr "" + +#: src/dird/ua_label.c:489 +msgid "Do not forget to mount the drive!!!\n" +msgstr "" + +#: src/dird/ua_label.c:529 +msgid "" +"The following Volumes will be labeled:\n" +"Slot Volume\n" +"==============\n" +msgstr "" + +#: src/dird/ua_label.c:538 +msgid "Do you want to label these Volumes? (yes|no): " +msgstr "" + +#: src/dird/ua_label.c:559 +#, c-format +msgid "Media record for Slot %d Volume \"%s\" already exists.\n" +msgstr "" + +#: src/dird/ua_label.c:565 +#, c-format +msgid "Error setting InChanger: ERR=%s" +msgstr "" + +#: src/dird/ua_label.c:588 +#, c-format +msgid "Maximum pool Volumes=%d reached.\n" +msgstr "" + +#: src/dird/ua_label.c:595 +#, c-format +msgid "Catalog record for cleaning tape \"%s\" successfully created.\n" +msgstr "" + +#: src/dird/ua_label.c:602 +#, c-format +msgid "Catalog error on cleaning tape: %s" +msgstr "" + +#: src/dird/ua_label.c:638 +#, c-format +msgid "Illegal character \"%c\" in a volume name.\n" +msgstr "" + +#: src/dird/ua_label.c:685 +#, c-format +msgid "Sending relabel command from \"%s\" to \"%s\" ...\n" +msgstr "" + +#: src/dird/ua_label.c:692 +#, c-format +msgid "Sending label command for Volume \"%s\" Slot %d ...\n" +msgstr "" + +#: src/dird/ua_label.c:733 +#, c-format +msgid "Catalog record for Volume \"%s\", Slot %d successfully created.\n" +msgstr "" + +#: src/dird/ua_label.c:746 +#, c-format +msgid "Label command failed for Volume %s.\n" +msgstr "" + +#: src/dird/ua_label.c:756 +#, c-format +msgid "Connecting to Storage daemon %s at %s:%d ...\n" +msgstr "" + +#: src/dird/ua_label.c:784 +msgid "Could not open SD socket.\n" +msgstr "" + +#: src/dird/ua_label.c:856 src/dird/ua_label.c:866 +#, c-format +msgid "Invalid Slot number: %s\n" +msgstr "" + +#: src/dird/ua_label.c:875 +#, c-format +msgid "Invalid Volume name: %s\n" +msgstr "" + +#: src/dird/ua_label.c:954 +#, c-format +msgid "Device \"%s\" has %d slots.\n" +msgstr "" + +#: src/dird/ua_label.c:1003 +#, c-format +msgid "Pool \"%s\" resource not found for volume \"%s\"!\n" +msgstr "" + +#: src/dird/ua_output.c:73 src/dird/ua_output.c:97 +msgid "ON or OFF keyword missing.\n" +msgstr "" + +#: src/dird/ua_output.c:185 +msgid "Keywords for the show command are:\n" +msgstr "" + +#: src/dird/ua_output.c:191 +#, c-format +msgid "%s resource %s not found.\n" +msgstr "" + +#: src/dird/ua_output.c:194 +#, c-format +msgid "Resource %s not found\n" +msgstr "" + +#: src/dird/ua_output.c:262 +msgid "Hey! DB is NULL\n" +msgstr "" + +#: src/dird/ua_output.c:376 +#, c-format +msgid "Jobid %d used %d Volume(s): %s\n" +msgstr "" + +#: src/dird/ua_output.c:394 +msgid "No Pool specified.\n" +msgstr "" + +#: src/dird/ua_output.c:405 src/dird/ua_select.c:488 +#, c-format +msgid "Error obtaining pool ids. ERR=%s\n" +msgstr "" + +#: src/dird/ua_output.c:415 +#, c-format +msgid "Pool: %s\n" +msgstr "" + +#: src/dird/ua_output.c:431 src/dird/ua_status.c:481 +msgid "Ignoring invalid value for days. Max is 50.\n" +msgstr "" + +#: src/dird/ua_output.c:440 +#, c-format +msgid "Unknown list keyword: %s\n" +msgstr "" + +#: src/dird/ua_output.c:466 +#, c-format +msgid "%s is not a job name.\n" +msgstr "" + +#: src/dird/ua_output.c:477 +#, c-format +msgid "Could not Pool Job %s\n" +msgstr "" + +#: src/dird/ua_output.c:489 +#, c-format +msgid "Could not find next Volume for Job %s (Pool=%s, Level=%s).\n" +msgstr "" + +#: src/dird/ua_output.c:493 +#, c-format +msgid "" +"The next Volume to be used by Job \"%s\" (Pool=%s, Level=%s) will be %s\n" +msgstr "" + +#: src/dird/ua_output.c:503 +#, c-format +msgid "Could not find next Volume for Job %s.\n" +msgstr "" + +#: src/dird/ua_output.c:702 +msgid "You have no messages.\n" +msgstr "" + +#: src/dird/ua_prune.c:132 +msgid "Choose item to prune" +msgstr "" + +#: src/dird/ua_prune.c:156 +#, c-format +msgid "Cannot prune Volume \"%s\" because it is archived.\n" +msgstr "" + +#: src/dird/ua_prune.c:218 +msgid "No Files found to prune.\n" +msgstr "" + +#: src/dird/ua_prune.c:240 +#, c-format +msgid "Pruned Files from %s Jobs for client %s from catalog.\n" +msgstr "" + +#: src/dird/ua_prune.c:364 +#, c-format +msgid "Pruned %d %s for client %s from catalog.\n" +msgstr "" + +#: src/dird/ua_prune.c:365 +msgid "Jobs" +msgstr "" + +#: src/dird/ua_prune.c:367 +msgid "No Jobs found to prune.\n" +msgstr "" + +#: src/dird/ua_purge.c:90 +msgid "" +"\n" +"This command is can be DANGEROUS!!!\n" +"\n" +"It purges (deletes) all Files from a Job,\n" +"JobId, Client or Volume; or it purges (deletes)\n" +"all Jobs from a Client or Volume without regard\n" +"for retention periods. Normally you should use the\n" +"PRUNE command, which respects retention periods.\n" +msgstr "" + +#: src/dird/ua_purge.c:152 +msgid "Choose item to purge" +msgstr "" + +#: src/dird/ua_purge.c:199 +#, c-format +msgid "Begin purging files for Client \"%s\"\n" +msgstr "" + +#: src/dird/ua_purge.c:208 src/dird/ua_purge.c:258 +#, c-format +msgid "No Files found for client %s to purge from %s catalog.\n" +msgstr "" + +#: src/dird/ua_purge.c:211 +#, c-format +msgid "Files for %d Jobs for client \"%s\" purged from %s catalog.\n" +msgstr "" + +#: src/dird/ua_purge.c:249 +#, c-format +msgid "Begin purging jobs from Client \"%s\"\n" +msgstr "" + +#: src/dird/ua_purge.c:261 +#, c-format +msgid "%d Jobs for client %s purged from %s catalog.\n" +msgstr "" + +#: src/dird/ua_purge.c:407 +#, c-format +msgid "" +"\n" +"Volume \"%s\" has VolStatus \"%s\" and cannot be purged.\n" +"The VolStatus must be: Append, Full, Used, or Error to be purged.\n" +msgstr "" + +#: src/dird/ua_purge.c:440 +#, c-format +msgid "%d File%s on Volume \"%s\" purged from catalog.\n" +msgstr "" + +#: src/dird/ua_purge.c:481 +#, c-format +msgid "" +"There are no more Jobs associated with Volume \"%s\". Marking it purged.\n" +msgstr "" + +#: src/dird/ua_purge.c:522 +#, c-format +msgid "Unable move recycled Volume in full Pool \"%s\" MaxVols=%d\n" +msgstr "" + +#: src/dird/ua_purge.c:535 +#, c-format +msgid "All records pruned from Volume \"%s\"; marking it \"Purged\"\n" +msgstr "" + +#: src/dird/ua_purge.c:540 +#, c-format +msgid "Cannot purge Volume with VolStatus=%s\n" +msgstr "" + +#: src/dird/ua_query.c:72 src/findlib/create_file.c:283 +#: src/findlib/create_file.c:383 +#, c-format +msgid "Could not open %s: ERR=%s\n" +msgstr "" + +#: src/dird/ua_query.c:77 +msgid "Available queries:\n" +msgstr "" + +#: src/dird/ua_query.c:84 +msgid "Choose a query" +msgstr "" + +#: src/dird/ua_query.c:98 +msgid "Could not find query.\n" +msgstr "" + +#: src/dird/ua_query.c:116 +msgid "Too many prompts in query, max is 9.\n" +msgstr "" + +#: src/dird/ua_query.c:219 +#, c-format +msgid "Warning prompt %d missing.\n" +msgstr "" + +#: src/dird/ua_query.c:264 +msgid "" +"Entering SQL query mode.\n" +"Terminate each query with a semicolon.\n" +"Terminate query mode with a blank line.\n" +msgstr "" + +#: src/dird/ua_query.c:267 src/dird/ua_query.c:283 +msgid "Enter SQL query: " +msgstr "" + +#: src/dird/ua_query.c:285 +msgid "Add to SQL query: " +msgstr "" + +#: src/dird/ua_query.c:288 +msgid "End query mode.\n" +msgstr "" + +#: src/dird/ua_restore.c:133 +msgid "\"RegexWhere\" specification not authorized.\n" +msgstr "" + +#: src/dird/ua_restore.c:140 +msgid "\"where\" specification not authorized.\n" +msgstr "" + +#: src/dird/ua_restore.c:162 +msgid "" +"No Restore Job Resource found in bacula-dir.conf.\n" +"You must create at least one before running this command.\n" +msgstr "" + +#: src/dird/ua_restore.c:178 +msgid "Restore not done.\n" +msgstr "" + +#: src/dird/ua_restore.c:190 +msgid "Unable to construct a valid BSR. Cannot continue.\n" +msgstr "" + +#: src/dird/ua_restore.c:194 src/dird/ua_restore.c:209 +msgid "No files selected to be restored.\n" +msgstr "" + +#: src/dird/ua_restore.c:202 +msgid "" +"\n" +"1 file selected to be restored.\n" +"\n" +msgstr "" + +#: src/dird/ua_restore.c:205 +#, c-format +msgid "" +"\n" +"%s files selected to be restored.\n" +"\n" +msgstr "" + +#: src/dird/ua_restore.c:224 +msgid "No Client resource found!\n" +msgstr "" + +#: src/dird/ua_restore.c:329 +#, c-format +msgid "Missing value for keyword: %s\n" +msgstr "" + +#: src/dird/ua_restore.c:407 +msgid "List last 20 Jobs run" +msgstr "" + +#: src/dird/ua_restore.c:408 +msgid "List Jobs where a given File is saved" +msgstr "" + +#: src/dird/ua_restore.c:409 +msgid "Enter list of comma separated JobIds to select" +msgstr "" + +#: src/dird/ua_restore.c:410 +msgid "Enter SQL list command" +msgstr "" + +#: src/dird/ua_restore.c:411 +msgid "Select the most recent backup for a client" +msgstr "" + +#: src/dird/ua_restore.c:412 +msgid "Select backup for a client before a specified time" +msgstr "" + +#: src/dird/ua_restore.c:413 +msgid "Enter a list of files to restore" +msgstr "" + +#: src/dird/ua_restore.c:414 +msgid "Enter a list of files to restore before a specified time" +msgstr "" + +#: src/dird/ua_restore.c:415 +msgid "Find the JobIds of the most recent backup for a client" +msgstr "" + +#: src/dird/ua_restore.c:416 +msgid "Find the JobIds for a backup for a client before a specified time" +msgstr "" + +#: src/dird/ua_restore.c:417 +msgid "Enter a list of directories to restore for found JobIds" +msgstr "" + +#: src/dird/ua_restore.c:418 src/dird/ua_status.c:760 src/filed/status.c:256 +#: src/stored/status.c:521 src/wx-console/wxbconfigpanel.cpp:212 +msgid "Cancel" +msgstr "" + +#: src/dird/ua_restore.c:459 +#, c-format +msgid "Unknown keyword: %s\n" +msgstr "" + +#: src/dird/ua_restore.c:488 src/dird/ua_update.c:833 +#, c-format +msgid "Improper date format: %s\n" +msgstr "" + +#: src/dird/ua_restore.c:523 src/dird/ua_select.c:620 +#, c-format +msgid "Error: Pool resource \"%s\" does not exist.\n" +msgstr "" + +#: src/dird/ua_restore.c:528 +#, c-format +msgid "Error: Pool resource \"%s\" access not allowed.\n" +msgstr "" + +#: src/dird/ua_restore.c:544 +msgid "" +"\n" +"First you select one or more JobIds that contain files\n" +"to be restored. You will be presented several methods\n" +"of specifying the JobIds. Then you will be allowed to\n" +"select which files from those JobIds are to be restored.\n" +"\n" +msgstr "" + +#: src/dird/ua_restore.c:556 +msgid "To select the JobIds, you have the following choices:\n" +msgstr "" + +#: src/dird/ua_restore.c:561 +msgid "Select item: " +msgstr "" + +#: src/dird/ua_restore.c:566 src/dird/ua_restore.c:601 +msgid "SQL query not authorized.\n" +msgstr "" + +#: src/dird/ua_restore.c:579 +msgid "Enter Filename (no path):" +msgstr "" + +#: src/dird/ua_restore.c:594 src/dird/ua_restore.c:702 +msgid "Enter JobId(s), comma separated, to restore: " +msgstr "" + +#: src/dird/ua_restore.c:604 +msgid "Enter SQL list command: " +msgstr "" + +#: src/dird/ua_restore.c:638 src/dird/ua_restore.c:661 +msgid "" +"Enter file names with paths, or < to enter a filename\n" +"containing a list of file names with paths, and terminate\n" +"them with a blank line.\n" +msgstr "" + +#: src/dird/ua_restore.c:642 src/dird/ua_restore.c:665 +msgid "Enter full filename: " +msgstr "" + +#: src/dird/ua_restore.c:700 +#, c-format +msgid "You have already selected the following JobIds: %s\n" +msgstr "" + +#: src/dird/ua_restore.c:717 +msgid "" +"Enter full directory names or start the name\n" +"with a < to indicate it is a filename containing a list\n" +"of directories and terminate them with a blank line.\n" +msgstr "" + +#: src/dird/ua_restore.c:721 +msgid "Enter directory name: " +msgstr "" + +#: src/dird/ua_restore.c:752 +msgid "Invalid JobId in list.\n" +msgstr "" + +#: src/dird/ua_restore.c:765 +#, c-format +msgid "Unable to get Job record for JobId=%s: ERR=%s\n" +msgstr "" + +#: src/dird/ua_restore.c:771 +#, c-format +msgid "Access to JobId=%s (Job \"%s\") not authorized. Not selected.\n" +msgstr "" + +#: src/dird/ua_restore.c:784 +msgid "No Jobs selected.\n" +msgstr "" + +#: src/dird/ua_restore.c:788 +#, c-format +msgid "You have selected the following JobIds: %s\n" +msgstr "" + +#: src/dird/ua_restore.c:790 +#, c-format +msgid "You have selected the following JobId: %s\n" +msgstr "" + +#: src/dird/ua_restore.c:800 +msgid "" +"The restored files will the most current backup\n" +"BEFORE the date you specify below.\n" +"\n" +msgstr "" + +#: src/dird/ua_restore.c:803 +msgid "Enter date as YYYY-MM-DD HH:MM:SS :" +msgstr "" + +#: src/dird/ua_restore.c:809 +msgid "Improper date format.\n" +msgstr "" + +#: src/dird/ua_restore.c:830 +#, c-format +msgid "Cannot open file %s: ERR=%s\n" +msgstr "" + +#: src/dird/ua_restore.c:838 src/dird/ua_restore.c:842 +#, c-format +msgid "Error occurred on line %d of file \"%s\"\n" +msgstr "" + +#: src/dird/ua_restore.c:886 src/dird/ua_restore.c:915 +#, c-format +msgid "No database record found for: %s\n" +msgstr "" + +#: src/dird/ua_restore.c:902 +msgid "No JobId specified cannot continue.\n" +msgstr "" + +#: src/dird/ua_restore.c:936 +#, c-format +msgid "No table found: %s\n" +msgstr "" + +#: src/dird/ua_restore.c:1033 +#, c-format +msgid "" +"\n" +"Building directory tree for JobId %s ... " +msgstr "" + +#: src/dird/ua_restore.c:1045 +msgid "" +"\n" +"There were no files inserted into the tree, so file selection\n" +"is not possible.Most likely your retention policy pruned the files\n" +msgstr "" + +#: src/dird/ua_restore.c:1047 +msgid "" +"\n" +"Do you want to restore all the files? (yes|no): " +msgstr "" + +#: src/dird/ua_restore.c:1063 +#, c-format +msgid "" +"\n" +"1 Job, %s files inserted into the tree and marked for extraction.\n" +msgstr "" + +#: src/dird/ua_restore.c:1067 +#, c-format +msgid "" +"\n" +"1 Job, %s files inserted into the tree.\n" +msgstr "" + +#: src/dird/ua_restore.c:1073 +#, c-format +msgid "" +"\n" +"%d Jobs, %s files inserted into the tree and marked for extraction.\n" +msgstr "" + +#: src/dird/ua_restore.c:1077 +#, c-format +msgid "" +"\n" +"%d Jobs, %s files inserted into the tree.\n" +msgstr "" + +#: src/dird/ua_restore.c:1150 +#, c-format +msgid "Error getting FileSet \"%s\": ERR=%s\n" +msgstr "" + +#: src/dird/ua_restore.c:1158 src/dird/ua_select.c:183 +msgid "The defined FileSet resources are:\n" +msgstr "" + +#: src/dird/ua_restore.c:1162 src/dird/ua_run.c:267 src/dird/ua_select.c:191 +msgid "FileSet" +msgstr "" + +#: src/dird/ua_restore.c:1162 src/dird/ua_select.c:191 +msgid "Select FileSet resource" +msgstr "" + +#: src/dird/ua_restore.c:1164 +#, c-format +msgid "No FileSet found for client \"%s\".\n" +msgstr "" + +#: src/dird/ua_restore.c:1170 +#, c-format +msgid "Error getting FileSet record: %s\n" +msgstr "" + +#: src/dird/ua_restore.c:1171 +msgid "" +"This probably means you modified the FileSet.\n" +"Continuing anyway.\n" +msgstr "" + +#: src/dird/ua_restore.c:1186 +#, c-format +msgid "Pool \"%s\" not found, using any pool.\n" +msgstr "" + +#: src/dird/ua_restore.c:1213 src/dird/ua_restore.c:1229 +#, c-format +msgid "No Full backup before %s found.\n" +msgstr "" + +#: src/dird/ua_restore.c:1252 +msgid "No jobs found.\n" +msgstr "" + +#: src/dird/ua_restore.c:1411 +#, c-format +msgid "Warning default storage overridden by \"%s\" on command line.\n" +msgstr "" + +#: src/dird/ua_restore.c:1427 +#, c-format +msgid "Storage \"%s\" not found, using Storage \"%s\" from MediaType \"%s\".\n" +msgstr "" + +#: src/dird/ua_restore.c:1435 +#, c-format +msgid "" +"\n" +"Unable to find Storage resource for\n" +"MediaType \"%s\", needed by the Jobs you selected.\n" +msgstr "" + +#: src/dird/ua_run.c:152 src/dird/ua_run.c:338 +msgid "Invalid time, using current time.\n" +msgstr "" + +#: src/dird/ua_run.c:174 +#, c-format +msgid "Invalid replace option: %s\n" +msgstr "" + +#: src/dird/ua_run.c:242 +msgid "OK to run? (yes/mod/no): " +msgstr "" + +#: src/dird/ua_run.c:260 src/dird/ua_select.c:63 +msgid "mod" +msgstr "" + +#: src/dird/ua_run.c:263 src/dird/ua_update.c:518 +msgid "Parameters to modify:\n" +msgstr "" + +#: src/dird/ua_run.c:264 +msgid "Level" +msgstr "" + +#: src/dird/ua_run.c:269 +msgid "Restore Client" +msgstr "" + +#: src/dird/ua_run.c:273 src/wx-console/wxbrestorepanel.cpp:356 +#: src/wx-console/wxbrestorepanel.cpp:844 +#: src/wx-console/wxbrestorepanel.cpp:1891 +msgid "When" +msgstr "" + +#: src/dird/ua_run.c:274 src/wx-console/wxbrestorepanel.cpp:357 +#: src/wx-console/wxbrestorepanel.cpp:1117 +#: src/wx-console/wxbrestorepanel.cpp:1894 +msgid "Priority" +msgstr "" + +#: src/dird/ua_run.c:278 src/dird/ua_select.c:506 src/dird/ua_select.c:596 +#: src/dird/ua_update.c:529 src/wx-console/wxbrestorepanel.cpp:338 +#: src/wx-console/wxbrestorepanel.cpp:527 +#: src/wx-console/wxbrestorepanel.cpp:537 +#: src/wx-console/wxbrestorepanel.cpp:1807 +msgid "Pool" +msgstr "" + +#: src/dird/ua_run.c:280 +msgid "Verify Job" +msgstr "" + +#: src/dird/ua_run.c:283 src/wx-console/wxbrestorepanel.cpp:349 +#: src/wx-console/wxbrestorepanel.cpp:1872 +msgid "Bootstrap" +msgstr "" + +#: src/dird/ua_run.c:284 src/wx-console/wxbrestorepanel.cpp:350 +#: src/wx-console/wxbrestorepanel.cpp:1093 +#: src/wx-console/wxbrestorepanel.cpp:1874 +msgid "Where" +msgstr "" + +#: src/dird/ua_run.c:285 +msgid "File Relocation" +msgstr "" + +#: src/dird/ua_run.c:286 src/wx-console/wxbrestorepanel.cpp:352 +#: src/wx-console/wxbrestorepanel.cpp:1101 +#: src/wx-console/wxbrestorepanel.cpp:1878 +#: src/wx-console/wxbrestorepanel.cpp:1879 +#: src/wx-console/wxbrestorepanel.cpp:1880 +#: src/wx-console/wxbrestorepanel.cpp:1881 +#: src/wx-console/wxbrestorepanel.cpp:1882 +msgid "Replace" +msgstr "" + +#: src/dird/ua_run.c:287 +msgid "JobId" +msgstr "" + +#: src/dird/ua_run.c:289 src/dird/ua_run.c:487 src/dird/ua_update.c:535 +msgid "Select parameter to modify" +msgstr "" + +#: src/dird/ua_run.c:298 src/dird/ua_run.c:1205 +msgid "user selection" +msgstr "" + +#: src/dird/ua_run.c:330 +msgid "" +"Please enter desired start time as YYYY-MM-DD HH:MM:SS (return for now): " +msgstr "" + +#: src/dird/ua_run.c:345 +msgid "Enter new Priority: " +msgstr "" + +#: src/dird/ua_run.c:349 +msgid "Priority must be a positive integer.\n" +msgstr "" + +#: src/dird/ua_run.c:369 +msgid "Please enter the Bootstrap file name: " +msgstr "" + +#: src/dird/ua_run.c:380 +#, c-format +msgid "Warning cannot open %s: ERR=%s\n" +msgstr "" + +#: src/dird/ua_run.c:399 +msgid "Please enter path prefix for restore (/ for none): " +msgstr "" + +#: src/dird/ua_run.c:421 +msgid "Replace:\n" +msgstr "" + +#: src/dird/ua_run.c:425 +msgid "Select replace option" +msgstr "" + +#: src/dird/ua_run.c:435 +msgid "" +"You must set the bootstrap file to NULL to be able to specify a JobId.\n" +msgstr "" + +#: src/dird/ua_run.c:455 +msgid "Job failed.\n" +msgstr "" + +#: src/dird/ua_run.c:458 +#, c-format +msgid "Job queued. JobId=%s\n" +msgstr "" + +#: src/dird/ua_run.c:464 +msgid "Job not run.\n" +msgstr "" + +#: src/dird/ua_run.c:476 +#, c-format +msgid "strip_prefix=%s add_prefix=%s add_suffix=%s\n" +msgstr "" + +#: src/dird/ua_run.c:479 +msgid "This will replace your current Where value\n" +msgstr "" + +#: src/dird/ua_run.c:480 +msgid "Strip prefix" +msgstr "" + +#: src/dird/ua_run.c:481 +msgid "Add prefix" +msgstr "" + +#: src/dird/ua_run.c:482 +msgid "Add file suffix" +msgstr "" + +#: src/dird/ua_run.c:483 +msgid "Enter a regexp" +msgstr "" + +#: src/dird/ua_run.c:484 +msgid "Test filename manipulation" +msgstr "" + +#: src/dird/ua_run.c:485 +msgid "Use this ?" +msgstr "" + +#: src/dird/ua_run.c:490 +msgid "Please enter path prefix to strip: " +msgstr "" + +#: src/dird/ua_run.c:498 +msgid "Please enter path prefix to add (/ for none): " +msgstr "" + +#: src/dird/ua_run.c:509 +msgid "Please enter file suffix to add: " +msgstr "" + +#: src/dird/ua_run.c:516 +msgid "Please enter a valid regexp (!from!to!): " +msgstr "" + +#: src/dird/ua_run.c:529 +#, c-format +msgid "regexwhere=%s\n" +msgstr "" + +#: src/dird/ua_run.c:535 +#, c-format +msgid "strip_prefix=%s add_prefix=%s add_suffix=%s result=%s\n" +msgstr "" + +#: src/dird/ua_run.c:542 +msgid "Cannot use your regexp\n" +msgstr "" + +#: src/dird/ua_run.c:546 +msgid "Please enter filename to test: " +msgstr "" + +#: src/dird/ua_run.c:548 +#, c-format +msgid "%s -> %s\n" +msgstr "" + +#: src/dird/ua_run.c:592 +msgid "Cannot use your regexp.\n" +msgstr "" + +#: src/dird/ua_run.c:605 src/dird/ua_run.c:631 +msgid "Levels:\n" +msgstr "" + +#: src/dird/ua_run.c:606 src/filed/status.c:373 src/lib/util.c:329 +#: src/stored/status.c:560 +msgid "Base" +msgstr "" + +#: src/dird/ua_run.c:607 src/filed/status.c:375 src/lib/util.c:331 +#: src/stored/status.c:562 +msgid "Full" +msgstr "" + +#: src/dird/ua_run.c:608 src/filed/status.c:378 src/lib/util.c:334 +#: src/stored/status.c:565 +msgid "Incremental" +msgstr "" + +#: src/dird/ua_run.c:609 src/filed/status.c:381 src/lib/util.c:337 +#: src/stored/status.c:568 +msgid "Differential" +msgstr "" + +#: src/dird/ua_run.c:610 src/filed/status.c:384 src/lib/util.c:340 +#: src/stored/status.c:571 +msgid "Since" +msgstr "" + +#: src/dird/ua_run.c:611 src/dird/ua_run.c:637 +msgid "Select level" +msgstr "" + +#: src/dird/ua_run.c:632 +msgid "Initialize Catalog" +msgstr "" + +#: src/dird/ua_run.c:633 src/filed/status.c:387 src/lib/util.c:343 +#: src/stored/status.c:574 +msgid "Verify Catalog" +msgstr "" + +#: src/dird/ua_run.c:634 src/lib/util.c:349 +msgid "Verify Volume to Catalog" +msgstr "" + +#: src/dird/ua_run.c:635 src/lib/util.c:352 +msgid "Verify Disk to Catalog" +msgstr "" + +#: src/dird/ua_run.c:636 +msgid "Verify Volume Data (not yet implemented)" +msgstr "" + +#: src/dird/ua_run.c:657 +msgid "Level not appropriate for this Job. Cannot be changed.\n" +msgstr "" + +#: src/dird/ua_run.c:671 +#, c-format +msgid "" +"Run %s job\n" +"JobName: %s\n" +"FileSet: %s\n" +"Client: %s\n" +"Storage: %s\n" +"When: %s\n" +"Priority: %d\n" +msgstr "" + +#: src/dird/ua_run.c:678 src/lib/util.c:296 +msgid "Admin" +msgstr "" + +#: src/dird/ua_run.c:691 +#, c-format +msgid "" +"Run %s job\n" +"JobName: %s\n" +"Level: %s\n" +"Client: %s\n" +"FileSet: %s\n" +"Pool: %s (From %s)\n" +"Storage: %s (From %s)\n" +"When: %s\n" +"Priority: %d\n" +msgstr "" + +#: src/dird/ua_run.c:700 src/lib/util.c:287 +msgid "Backup" +msgstr "" + +#: src/dird/ua_run.c:723 +#, c-format +msgid "" +"Run %s job\n" +"JobName: %s\n" +"Level: %s\n" +"Client: %s\n" +"FileSet: %s\n" +"Pool: %s (From %s)\n" +"Storage: %s (From %s)\n" +"Verify Job: %s\n" +"Verify List: %s\n" +"When: %s\n" +"Priority: %d\n" +msgstr "" + +#: src/dird/ua_run.c:734 src/lib/util.c:290 +msgid "Verify" +msgstr "" + +#: src/dird/ua_run.c:752 +msgid "Please enter a JobId for restore: " +msgstr "" + +#: src/dird/ua_run.c:764 +#, c-format +msgid "" +"Run Restore job\n" +"JobName: f%s\n" +"Bootstrap: %s\n" +"RegexWhere: %s\n" +"Replace: %s\n" +"FileSet: %s\n" +"Backup Client: %s\n" +"Restore Client: %s\n" +"Storage: %s\n" +"When: %s\n" +"Catalog: %s\n" +"Priority: %d\n" +msgstr "" + +#: src/dird/ua_run.c:789 +#, c-format +msgid "" +"Run Restore job\n" +"JobName: %s\n" +"Bootstrap: %s\n" +"Where: %s\n" +"Replace: %s\n" +"FileSet: %s\n" +"Backup Client: %s\n" +"Restore Client: %s\n" +"Storage: %s\n" +"When: %s\n" +"Catalog: %s\n" +"Priority: %d\n" +msgstr "" + +#: src/dird/ua_run.c:816 +#, c-format +msgid "" +"Run Restore job\n" +"JobName: %s\n" +"Bootstrap: %s\n" +msgstr "" + +#: src/dird/ua_run.c:824 +#, c-format +msgid "RegexWhere: %s\n" +msgstr "" + +#: src/dird/ua_run.c:827 +#, c-format +msgid "Where: %s\n" +msgstr "" + +#: src/dird/ua_run.c:831 +#, c-format +msgid "" +"Replace: %s\n" +"Client: %s\n" +"Storage: %s\n" +"JobId: %s\n" +"When: %s\n" +"Catalog: %s\n" +"Priority: %d\n" +msgstr "" + +#: src/dird/ua_run.c:850 +#, c-format +msgid "" +"Run Migration job\n" +"JobName: %s\n" +"Bootstrap: %s\n" +"Client: %s\n" +"FileSet: %s\n" +"Pool: %s (From %s)\n" +"Read Storage: %s (From %s)\n" +"Write Storage: %s (From %s)\n" +"JobId: %s\n" +"When: %s\n" +"Catalog: %s\n" +"Priority: %d\n" +msgstr "" + +#: src/dird/ua_run.c:875 +#, c-format +msgid "Unknown Job Type=%d\n" +msgstr "" + +#: src/dird/ua_run.c:935 +#, c-format +msgid "Value missing for keyword %s\n" +msgstr "" + +#: src/dird/ua_run.c:942 +msgid "Job name specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:950 +msgid "JobId specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:959 src/dird/ua_run.c:1103 +msgid "Client specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:967 +msgid "FileSet specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:975 +msgid "Level specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:984 +msgid "Storage specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:992 +msgid "RegexWhere or Where specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:997 +msgid "No authorization for \"regexwhere\" specification.\n" +msgstr "" + +#: src/dird/ua_run.c:1004 +msgid "Where or RegexWhere specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:1009 +msgid "No authoriztion for \"where\" specification.\n" +msgstr "" + +#: src/dird/ua_run.c:1016 +msgid "Bootstrap specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:1024 +msgid "Replace specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:1032 +msgid "When specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:1040 +msgid "Priority specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:1045 +msgid "Priority must be positive nonzero setting it to 10.\n" +msgstr "" + +#: src/dird/ua_run.c:1055 +msgid "Verify Job specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:1087 +msgid "Migration Job specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:1095 +msgid "Pool specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:1111 +msgid "Restore Client specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:1135 +#, c-format +msgid "Invalid keyword: %s\n" +msgstr "" + +#: src/dird/ua_run.c:1146 +#, c-format +msgid "Catalog \"%s\" not found\n" +msgstr "" + +#: src/dird/ua_run.c:1150 +#, c-format +msgid "No authorization. Catalog \"%s\".\n" +msgstr "" + +#: src/dird/ua_run.c:1161 +#, c-format +msgid "Job \"%s\" not found\n" +msgstr "" + +#: src/dird/ua_run.c:1168 +msgid "A job name must be specified.\n" +msgstr "" + +#: src/dird/ua_run.c:1174 +#, c-format +msgid "No authorization. Job \"%s\".\n" +msgstr "" + +#: src/dird/ua_run.c:1182 +#, c-format +msgid "Pool \"%s\" not found.\n" +msgstr "" + +#: src/dird/ua_run.c:1192 +#, c-format +msgid "No authorization. Pool \"%s\".\n" +msgstr "" + +#: src/dird/ua_run.c:1202 +#, c-format +msgid "Storage \"%s\" not found.\n" +msgstr "" + +#: src/dird/ua_run.c:1214 +#, c-format +msgid "No authorization. Storage \"%s\".\n" +msgstr "" + +#: src/dird/ua_run.c:1234 src/dird/ua_run.c:1254 +#, c-format +msgid "No authorization. Client \"%s\".\n" +msgstr "" + +#: src/dird/ua_run.c:1244 +#, c-format +msgid "Restore Client \"%s\" not found.\n" +msgstr "" + +#: src/dird/ua_run.c:1264 +#, c-format +msgid "FileSet \"%s\" not found.\n" +msgstr "" + +#: src/dird/ua_run.c:1273 +#, c-format +msgid "No authorization. FileSet \"%s\".\n" +msgstr "" + +#: src/dird/ua_run.c:1281 +#, c-format +msgid "Verify Job \"%s\" not found.\n" +msgstr "" + +#: src/dird/ua_run.c:1291 +#, c-format +msgid "Migration Job \"%s\" not found.\n" +msgstr "" + +#: src/dird/ua_select.c:55 +#, c-format +msgid "The current %s retention period is: %s\n" +msgstr "" + +#: src/dird/ua_select.c:60 +msgid "Continue? (yes/mod/no): " +msgstr "" + +#: src/dird/ua_select.c:64 +msgid "Enter new retention period: " +msgstr "" + +#: src/dird/ua_select.c:68 +msgid "Invalid period.\n" +msgstr "" + +#: src/dird/ua_select.c:144 +msgid "You have the following choices:\n" +msgstr "" + +#: src/dird/ua_select.c:160 +msgid "The defined Storage resources are:\n" +msgstr "" + +#: src/dird/ua_select.c:168 +msgid "Select Storage resource" +msgstr "" + +#: src/dird/ua_select.c:224 +msgid "You must specify a \"use \" command before continuing.\n" +msgstr "" + +#: src/dird/ua_select.c:230 +msgid "The defined Catalog resources are:\n" +msgstr "" + +#: src/dird/ua_select.c:238 +msgid "Catalog" +msgstr "" + +#: src/dird/ua_select.c:238 +msgid "Select Catalog resource" +msgstr "" + +#: src/dird/ua_select.c:255 +msgid "The defined Job resources are:\n" +msgstr "" + +#: src/dird/ua_select.c:263 +msgid "Select Job resource" +msgstr "" + +#: src/dird/ua_select.c:278 +msgid "The defined Restore Job resources are:\n" +msgstr "" + +#: src/dird/ua_select.c:286 +msgid "Select Restore Job" +msgstr "" + +#: src/dird/ua_select.c:303 +msgid "The defined Client resources are:\n" +msgstr "" + +#: src/dird/ua_select.c:311 +msgid "Select Client (File daemon) resource" +msgstr "" + +#: src/dird/ua_select.c:338 +#, c-format +msgid "Error: Client resource %s does not exist.\n" +msgstr "" + +#: src/dird/ua_select.c:363 +#, c-format +msgid "Could not find Client %s: ERR=%s" +msgstr "" + +#: src/dird/ua_select.c:373 src/dird/ua_select.c:427 +#, c-format +msgid "Could not find Client \"%s\": ERR=%s" +msgstr "" + +#: src/dird/ua_select.c:402 +#, c-format +msgid "Error obtaining client ids. ERR=%s\n" +msgstr "" + +#: src/dird/ua_select.c:406 +msgid "No clients defined. You must run a job before using this command.\n" +msgstr "" + +#: src/dird/ua_select.c:410 +msgid "Defined Clients:\n" +msgstr "" + +#: src/dird/ua_select.c:420 +msgid "Select the Client" +msgstr "" + +#: src/dird/ua_select.c:453 src/dird/ua_select.c:477 src/dird/ua_select.c:513 +#, c-format +msgid "Could not find Pool \"%s\": ERR=%s" +msgstr "" + +#: src/dird/ua_select.c:492 +msgid "No pools defined. Use the \"create\" command to create one.\n" +msgstr "" + +#: src/dird/ua_select.c:496 +msgid "Defined Pools:\n" +msgstr "" + +#: src/dird/ua_select.c:506 +msgid "Select the Pool" +msgstr "" + +#: src/dird/ua_select.c:536 +#, c-format +msgid "No access to Pool \"%s\"\n" +msgstr "" + +#: src/dird/ua_select.c:562 +msgid "Enter MediaId or Volume name: " +msgstr "" + +#: src/dird/ua_select.c:588 +msgid "The defined Pool resources are:\n" +msgstr "" + +#: src/dird/ua_select.c:596 +msgid "Select Pool resource" +msgstr "" + +#: src/dird/ua_select.c:631 +msgid "Enter the JobId to select: " +msgstr "" + +#: src/dird/ua_select.c:669 +#, c-format +msgid "Could not find Job \"%s\": ERR=%s" +msgstr "" + +#: src/dird/ua_select.c:749 +#, c-format +msgid "Automatically selected %s: %s\n" +msgstr "" + +#: src/dird/ua_select.c:754 +#, c-format +msgid "Cannot select %s in batch mode.\n" +msgstr "" + +#: src/dird/ua_select.c:772 +#, c-format +msgid "Selection list for \"%s\" is empty!\n" +msgstr "" + +#: src/dird/ua_select.c:778 +#, c-format +msgid "Automatically selected: %s\n" +msgstr "" + +#: src/dird/ua_select.c:790 +msgid "Selection aborted, nothing done.\n" +msgstr "" + +#: src/dird/ua_select.c:795 +#, c-format +msgid "Please enter a number between 1 and %d\n" +msgstr "" + +#: src/dird/ua_select.c:844 +msgid "Storage name given twice.\n" +msgstr "" + +#: src/dird/ua_select.c:861 +#, c-format +msgid "Expecting jobid=nn command, got: %s\n" +msgstr "" + +#: src/dird/ua_select.c:865 +#, c-format +msgid "JobId %s is not running.\n" +msgstr "" + +#: src/dird/ua_select.c:875 +#, c-format +msgid "Expecting job=xxx, got: %s.\n" +msgstr "" + +#: src/dird/ua_select.c:879 src/dird/ua_select.c:891 +#, c-format +msgid "Job \"%s\" is not running.\n" +msgstr "" + +#: src/dird/ua_select.c:887 +#, c-format +msgid "Expecting ujobid=xxx, got: %s.\n" +msgstr "" + +#: src/dird/ua_select.c:907 +#, c-format +msgid "Storage resource \"%s\": not found\n" +msgstr "" + +#: src/dird/ua_select.c:939 +msgid "Enter autochanger drive[0]: " +msgstr "" + +#: src/dird/ua_select.c:960 +msgid "Enter autochanger slot: " +msgstr "" + +#: src/dird/ua_select.c:990 +msgid "Media Types defined in conf file:\n" +msgstr "" + +#: src/dird/ua_select.c:996 +msgid "Media Type" +msgstr "" + +#: src/dird/ua_select.c:996 +msgid "Select the Media Type" +msgstr "" + +#: src/dird/ua_server.c:72 +#, c-format +msgid "Cannot create UA thread: %s\n" +msgstr "" + +#: src/dird/ua_server.c:159 +msgid "You have messages.\n" +msgstr "" + +#: src/dird/ua_status.c:143 +msgid "Status available for:\n" +msgstr "" + +#: src/dird/ua_status.c:149 +msgid "Select daemon type for status" +msgstr "" + +#: src/dird/ua_status.c:267 +#, c-format +msgid "Daemon started %s, 1 Job run since started.\n" +msgstr "" + +#: src/dird/ua_status.c:270 +#, c-format +msgid "Daemon started %s, %d Jobs run since started.\n" +msgstr "" + +#: src/dird/ua_status.c:273 src/filed/status.c:129 src/stored/status.c:90 +#, c-format +msgid " Heap: heap=%s smbytes=%s max_bytes=%s bufs=%s max_bufs=%s\n" +msgstr "" + +#: src/dird/ua_status.c:299 src/dird/ua_status.c:526 src/dird/ua_status.c:702 +#: src/filed/status.c:204 src/filed/status.c:220 src/filed/status.c:282 +msgid "====\n" +msgstr "" + +#: src/dird/ua_status.c:314 +#, c-format +msgid "" +"\n" +"Failed to connect to Storage daemon %s.\n" +"====\n" +msgstr "" + +#: src/dird/ua_status.c:352 +#, c-format +msgid "" +"Failed to connect to Client %s.\n" +"====\n" +msgstr "" + +#: src/dird/ua_status.c:360 +msgid "Connected to file daemon\n" +msgstr "" + +#: src/dird/ua_status.c:375 +msgid "" +"\n" +"Scheduled Jobs:\n" +msgstr "" + +#: src/dird/ua_status.c:376 +msgid "" +"Level Type Pri Scheduled Name Volume\n" +msgstr "" + +#: src/dird/ua_status.c:377 +msgid "===================================================================================\n" +msgstr "" + +#: src/dird/ua_status.c:429 +#, c-format +msgid "%-14s %-8s %3d %-18s %-18s %s\n" +msgstr "" + +#: src/dird/ua_status.c:524 +msgid "No Scheduled Jobs.\n" +msgstr "" + +#: src/dird/ua_status.c:541 src/filed/status.c:144 src/stored/status.c:370 +msgid "" +"\n" +"Running Jobs:\n" +msgstr "" + +#: src/dird/ua_status.c:549 +#, c-format +msgid "Console connected at %s\n" +msgstr "" + +#: src/dird/ua_status.c:559 +msgid "" +"No Jobs running.\n" +"====\n" +msgstr "" + +#: src/dird/ua_status.c:564 +msgid " JobId Level Name Status\n" +msgstr "" + +#: src/dird/ua_status.c:565 src/filed/status.c:226 +msgid "======================================================================\n" +msgstr "" + +#: src/dird/ua_status.c:573 +msgid "is waiting execution" +msgstr "" + +#: src/dird/ua_status.c:576 +msgid "is running" +msgstr "" + +#: src/dird/ua_status.c:579 +msgid "is blocked" +msgstr "" + +#: src/dird/ua_status.c:582 +msgid "has terminated" +msgstr "" + +#: src/dird/ua_status.c:585 +msgid "has erred" +msgstr "" + +#: src/dird/ua_status.c:588 +msgid "has errors" +msgstr "" + +#: src/dird/ua_status.c:591 +msgid "has a fatal error" +msgstr "" + +#: src/dird/ua_status.c:594 +msgid "has verify differences" +msgstr "" + +#: src/dird/ua_status.c:597 +msgid "has been canceled" +msgstr "" + +#: src/dird/ua_status.c:602 +msgid "is waiting on Client" +msgstr "" + +#: src/dird/ua_status.c:604 +#, c-format +msgid "is waiting on Client %s" +msgstr "" + +#: src/dird/ua_status.c:612 src/dird/ua_status.c:614 +#, c-format +msgid "is waiting on Storage %s" +msgstr "" + +#: src/dird/ua_status.c:616 +msgid "is waiting on Storage" +msgstr "" + +#: src/dird/ua_status.c:622 +msgid "is waiting on max Storage jobs" +msgstr "" + +#: src/dird/ua_status.c:625 +msgid "is waiting on max Client jobs" +msgstr "" + +#: src/dird/ua_status.c:628 +msgid "is waiting on max Job jobs" +msgstr "" + +#: src/dird/ua_status.c:631 +msgid "is waiting on max total jobs" +msgstr "" + +#: src/dird/ua_status.c:634 +msgid "is waiting for its start time" +msgstr "" + +#: src/dird/ua_status.c:637 +msgid "is waiting for higher priority jobs to finish" +msgstr "" + +#: src/dird/ua_status.c:642 +#, c-format +msgid "is in unknown state %c" +msgstr "" + +#: src/dird/ua_status.c:656 +msgid "is waiting for a mount request" +msgstr "" + +#: src/dird/ua_status.c:663 +msgid "is waiting for an appendable Volume" +msgstr "" + +#: src/dird/ua_status.c:671 +msgid "is waiting for Client to connect to Storage daemon" +msgstr "" + +#: src/dird/ua_status.c:673 +#, c-format +msgid "is waiting for Client %s to connect to Storage %s" +msgstr "" + +#: src/dird/ua_status.c:690 +#, c-format +msgid "%6d %-6s %-20s %s\n" +msgstr "" + +#: src/dird/ua_status.c:712 +msgid "No Terminated Jobs.\n" +msgstr "" + +#: src/dird/ua_status.c:717 src/filed/status.c:216 src/stored/status.c:482 +msgid "" +"\n" +"Terminated Jobs:\n" +msgstr "" + +#: src/dird/ua_status.c:718 src/filed/status.c:224 src/stored/status.c:489 +msgid " JobId Level Files Bytes Status Finished Name \n" +msgstr "" + +#: src/dird/ua_status.c:719 +msgid "====================================================================\n" +msgstr "" + +#: src/dird/ua_status.c:750 src/filed/status.c:246 src/lib/util.c:179 +#: src/stored/status.c:511 +msgid "Created" +msgstr "" + +#: src/dird/ua_status.c:754 src/filed/status.c:250 src/lib/util.c:192 +#: src/lib/util.c:259 src/stored/status.c:515 +msgid "Error" +msgstr "" + +#: src/dird/ua_status.c:757 src/filed/status.c:253 src/stored/status.c:518 +msgid "Diffs" +msgstr "" + +#: src/dird/ua_status.c:763 src/filed/status.c:259 src/lib/util.c:188 +#: src/lib/util.c:255 src/stored/btape.c:1189 src/stored/status.c:524 +#: src/wx-console/wxbconfigpanel.cpp:201 +msgid "OK" +msgstr "" + +#: src/dird/ua_status.c:766 src/filed/status.c:262 src/stored/status.c:527 +msgid "Other" +msgstr "" + +#: src/dird/ua_status.c:769 src/filed/status.c:273 src/stored/status.c:538 +#, c-format +msgid "%6d %-6s %8s %10s %-7s %-8s %s\n" +msgstr "" + +#: src/dird/ua_status.c:777 src/stored/btape.c:195 +msgid "\n" +msgstr "" + +#: src/dird/ua_tree.c:72 +msgid "change current directory" +msgstr "" + +#: src/dird/ua_tree.c:73 +msgid "count marked files in and below the cd" +msgstr "" + +#: src/dird/ua_tree.c:74 src/dird/ua_tree.c:75 +msgid "long list current directory, wildcards allowed" +msgstr "" + +#: src/dird/ua_tree.c:76 +msgid "leave file selection mode" +msgstr "" + +#: src/dird/ua_tree.c:77 +msgid "estimate restore size" +msgstr "" + +#: src/dird/ua_tree.c:78 +msgid "same as done command" +msgstr "" + +#: src/dird/ua_tree.c:79 +msgid "find files, wildcards allowed" +msgstr "" + +#: src/dird/ua_tree.c:80 src/dird/ua_tree.c:90 +msgid "print help" +msgstr "" + +#: src/dird/ua_tree.c:81 +msgid "list current directory, wildcards allowed" +msgstr "" + +#: src/dird/ua_tree.c:82 +msgid "list the marked files in and below the cd" +msgstr "" + +#: src/dird/ua_tree.c:83 +msgid "mark dir/file to be restored recursively, wildcards allowed" +msgstr "" + +#: src/dird/ua_tree.c:84 +msgid "mark directory name to be restored (no files)" +msgstr "" + +#: src/dird/ua_tree.c:85 src/dird/ua_tree.c:86 +msgid "print current working directory" +msgstr "" + +#: src/dird/ua_tree.c:87 +msgid "unmark dir/file to be restored recursively in dir" +msgstr "" + +#: src/dird/ua_tree.c:88 +msgid "unmark directory name only no recursion" +msgstr "" + +#: src/dird/ua_tree.c:89 +msgid "quit and do not do restore" +msgstr "" + +#: src/dird/ua_tree.c:110 +msgid "" +"\n" +"You are now entering file selection mode where you add (mark) and\n" +"remove (unmark) files to be restored. No files are initially added, unless\n" +"you used the \"all\" keyword on the command line.\n" +"Enter \"done\" to leave this mode.\n" +"\n" +msgstr "" + +#: src/dird/ua_tree.c:120 src/dird/ua_tree.c:716 +#, c-format +msgid "cwd is: %s\n" +msgstr "" + +#: src/dird/ua_tree.c:129 src/dird/ua_tree.c:144 +msgid "Invalid command. Enter \"done\" to exit.\n" +msgstr "" + +#: src/dird/ua_tree.c:331 src/dird/ua_tree.c:343 src/dird/ua_tree.c:360 +msgid "No files marked.\n" +msgstr "" + +#: src/dird/ua_tree.c:345 +msgid "1 file marked.\n" +msgstr "" + +#: src/dird/ua_tree.c:347 +#, c-format +msgid "%s files marked.\n" +msgstr "" + +#: src/dird/ua_tree.c:375 +msgid "No directories marked.\n" +msgstr "" + +#: src/dird/ua_tree.c:377 +msgid "1 directory marked.\n" +msgstr "" + +#: src/dird/ua_tree.c:379 +#, c-format +msgid "%s directories marked.\n" +msgstr "" + +#: src/dird/ua_tree.c:400 +#, c-format +msgid "%s total files/dirs. %s marked to be restored.\n" +msgstr "" + +#: src/dird/ua_tree.c:411 +msgid "No file specification given.\n" +msgstr "" + +#: src/dird/ua_tree.c:562 +#, c-format +msgid "Node %s has no children.\n" +msgstr "" + +#: src/dird/ua_tree.c:653 +#, c-format +msgid "%d total files; %d marked to be restored; %s bytes.\n" +msgstr "" + +#: src/dird/ua_tree.c:687 +msgid "Too few or too many arguments. Try using double quotes.\n" +msgstr "" + +#: src/dird/ua_tree.c:699 +msgid "Invalid path given.\n" +msgstr "" + +#: src/dird/ua_tree.c:735 src/dird/ua_tree.c:747 +msgid "No files unmarked.\n" +msgstr "" + +#: src/dird/ua_tree.c:749 +msgid "1 file unmarked.\n" +msgstr "" + +#: src/dird/ua_tree.c:752 +#, c-format +msgid "%s files unmarked.\n" +msgstr "" + +#: src/dird/ua_tree.c:763 src/dird/ua_tree.c:780 +msgid "No directories unmarked.\n" +msgstr "" + +#: src/dird/ua_tree.c:782 +msgid "1 directory unmarked.\n" +msgstr "" + +#: src/dird/ua_tree.c:784 +#, c-format +msgid "%d directories unmarked.\n" +msgstr "" + +#: src/dird/ua_update.c:89 +msgid "Update choice:\n" +msgstr "" + +#: src/dird/ua_update.c:90 +msgid "Volume parameters" +msgstr "" + +#: src/dird/ua_update.c:91 +msgid "Pool from resource" +msgstr "" + +#: src/dird/ua_update.c:92 +msgid "Slots from autochanger" +msgstr "" + +#: src/dird/ua_update.c:93 +msgid "item" +msgstr "" + +#: src/dird/ua_update.c:93 +msgid "Choose catalog item to update" +msgstr "" + +#: src/dird/ua_update.c:133 +#, c-format +msgid "Invalid VolStatus specified: %s\n" +msgstr "" + +#: src/dird/ua_update.c:142 +#, c-format +msgid "New Volume status is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:152 +#, c-format +msgid "Invalid retention period specified: %s\n" +msgstr "" + +#: src/dird/ua_update.c:160 +#, c-format +msgid "New retention period is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:171 +#, c-format +msgid "Invalid use duration specified: %s\n" +msgstr "" + +#: src/dird/ua_update.c:179 +#, c-format +msgid "New use duration is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:193 +#, c-format +msgid "New max jobs is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:206 +#, c-format +msgid "New max files is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:217 +#, c-format +msgid "Invalid max. bytes specification: %s\n" +msgstr "" + +#: src/dird/ua_update.c:225 +#, c-format +msgid "New Max bytes is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:236 src/dird/ua_update.c:256 +msgid "Invalid value. It must be yes or no.\n" +msgstr "" + +#: src/dird/ua_update.c:244 +#, c-format +msgid "New Recycle flag is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:264 +#, c-format +msgid "New InChanger flag is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:282 +#, c-format +msgid "Invalid slot, it must be between 0 and MaxVols=%d\n" +msgstr "" + +#: src/dird/ua_update.c:291 src/dird/ua_update.c:637 +#, c-format +msgid "Error updating media record Slot: ERR=%s" +msgstr "" + +#: src/dird/ua_update.c:293 +#, c-format +msgid "New Slot is: %d\n" +msgstr "" + +#: src/dird/ua_update.c:318 +#, c-format +msgid "New Pool is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:352 +#, c-format +msgid "New RecyclePool is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:372 +#, c-format +msgid "Error updating Volume record: ERR=%s" +msgstr "" + +#: src/dird/ua_update.c:374 +#, c-format +msgid "Volume defaults updated from \"%s\" Pool record.\n" +msgstr "" + +#: src/dird/ua_update.c:398 +#, c-format +msgid "Error updating Volume records: ERR=%s" +msgstr "" + +#: src/dird/ua_update.c:400 +#, c-format +msgid "All Volume defaults updated from \"%s\" Pool record.\n" +msgstr "" + +#: src/dird/ua_update.c:412 +#, c-format +msgid "Error updating media record Enabled: ERR=%s" +msgstr "" + +#: src/dird/ua_update.c:414 +#, c-format +msgid "New Enabled is: %d\n" +msgstr "" + +#: src/dird/ua_update.c:519 +msgid "Volume Status" +msgstr "" + +#: src/dird/ua_update.c:520 +msgid "Volume Retention Period" +msgstr "" + +#: src/dird/ua_update.c:521 +msgid "Volume Use Duration" +msgstr "" + +#: src/dird/ua_update.c:522 +msgid "Maximum Volume Jobs" +msgstr "" + +#: src/dird/ua_update.c:523 +msgid "Maximum Volume Files" +msgstr "" + +#: src/dird/ua_update.c:524 +msgid "Maximum Volume Bytes" +msgstr "" + +#: src/dird/ua_update.c:525 +msgid "Recycle Flag" +msgstr "" + +#: src/dird/ua_update.c:526 +msgid "Slot" +msgstr "" + +#: src/dird/ua_update.c:527 +msgid "InChanger Flag" +msgstr "" + +#: src/dird/ua_update.c:528 +msgid "Volume Files" +msgstr "" + +#: src/dird/ua_update.c:530 +msgid "Volume from Pool" +msgstr "" + +#: src/dird/ua_update.c:531 +msgid "All Volumes from Pool" +msgstr "" + +#: src/dird/ua_update.c:532 +msgid "Enabled" +msgstr "" + +#: src/dird/ua_update.c:533 +msgid "RecyclePool" +msgstr "" + +#: src/dird/ua_update.c:534 +msgid "Done" +msgstr "" + +#: src/dird/ua_update.c:542 +#, c-format +msgid "Updating Volume \"%s\"\n" +msgstr "" + +#: src/dird/ua_update.c:547 +#, c-format +msgid "Current Volume status is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:548 +msgid "Possible Values are:\n" +msgstr "" + +#: src/dird/ua_update.c:559 +msgid "Choose new Volume Status" +msgstr "" + +#: src/dird/ua_update.c:565 +#, c-format +msgid "Current retention period is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:567 +msgid "Enter Volume Retention period: " +msgstr "" + +#: src/dird/ua_update.c:574 +#, c-format +msgid "Current use duration is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:576 +msgid "Enter Volume Use Duration: " +msgstr "" + +#: src/dird/ua_update.c:583 +#, c-format +msgid "Current max jobs is: %u\n" +msgstr "" + +#: src/dird/ua_update.c:584 +msgid "Enter new Maximum Jobs: " +msgstr "" + +#: src/dird/ua_update.c:591 +#, c-format +msgid "Current max files is: %u\n" +msgstr "" + +#: src/dird/ua_update.c:592 +msgid "Enter new Maximum Files: " +msgstr "" + +#: src/dird/ua_update.c:599 +#, c-format +msgid "Current value is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:600 +msgid "Enter new Maximum Bytes: " +msgstr "" + +#: src/dird/ua_update.c:608 +#, c-format +msgid "Current recycle flag is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:610 +msgid "Enter new Recycle status: " +msgstr "" + +#: src/dird/ua_update.c:617 +#, c-format +msgid "Current Slot is: %d\n" +msgstr "" + +#: src/dird/ua_update.c:618 +msgid "Enter new Slot: " +msgstr "" + +#: src/dird/ua_update.c:625 +#, c-format +msgid "Current InChanger flag is: %d\n" +msgstr "" + +#: src/dird/ua_update.c:626 +#, c-format +msgid "Set InChanger flag for Volume \"%s\": yes/no: " +msgstr "" + +#: src/dird/ua_update.c:639 +#, c-format +msgid "New InChanger flag is: %d\n" +msgstr "" + +#: src/dird/ua_update.c:646 +msgid "" +"Warning changing Volume Files can result\n" +"in loss of data on your Volume\n" +"\n" +msgstr "" + +#: src/dird/ua_update.c:648 +#, c-format +msgid "Current Volume Files is: %u\n" +msgstr "" + +#: src/dird/ua_update.c:649 +msgid "Enter new number of Files for Volume: " +msgstr "" + +#: src/dird/ua_update.c:654 +msgid "Normally, you should only increase Volume Files by one!\n" +msgstr "" + +#: src/dird/ua_update.c:655 +msgid "Increase Volume Files? (yes/no): " +msgstr "" + +#: src/dird/ua_update.c:665 +#, c-format +msgid "New Volume Files is: %u\n" +msgstr "" + +#: src/dird/ua_update.c:677 +#, c-format +msgid "Current Pool is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:678 +msgid "Enter new Pool name: " +msgstr "" + +#: src/dird/ua_update.c:695 +#, c-format +msgid "Current Enabled is: %d\n" +msgstr "" + +#: src/dird/ua_update.c:696 +msgid "Enter new Enabled: " +msgstr "" + +#: src/dird/ua_update.c:715 +#, c-format +msgid "Current RecyclePool is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:717 +msgid "No current RecyclePool\n" +msgstr "" + +#: src/dird/ua_update.c:719 +msgid "Enter new RecyclePool name: " +msgstr "" + +#: src/dird/ua_update.c:726 +msgid "Selection terminated.\n" +msgstr "" + +#: src/dird/ua_update.c:760 +#, c-format +msgid "db_update_pool_record returned %d. ERR=%s\n" +msgstr "" + +#: src/dird/ua_update.c:767 +msgid "Pool DB record updated from resource.\n" +msgstr "" + +#: src/dird/ua_update.c:794 +msgid "Expect JobId keyword, not found.\n" +msgstr "" + +#: src/dird/ua_update.c:819 +msgid "Neither Client nor StartTime specified.\n" +msgstr "" + +#: src/dird/verify.c:120 +msgid "" +"Unable to find JobId of previous InitCatalog Job.\n" +"Please run a Verify with Level=InitCatalog before\n" +"running the current Job.\n" +msgstr "" + +#: src/dird/verify.c:125 +msgid "Unable to find JobId of previous Job for this client.\n" +msgstr "" + +#: src/dird/verify.c:141 +#, c-format +msgid "Could not get job record for previous Job. ERR=%s" +msgstr "" + +#: src/dird/verify.c:146 +#, c-format +msgid "Last Job %d did not terminate normally. JobStatus=%c\n" +msgstr "" + +#: src/dird/verify.c:150 +#, c-format +msgid "Verifying against JobId=%d Job=%s\n" +msgstr "" + +#: src/dird/verify.c:179 +#, c-format +msgid "Start Verify JobId=%s Level=%s Job=%s\n" +msgstr "" + +#: src/dird/verify.c:263 +msgid "Deprecated feature ... use bootstrap.\n" +msgstr "" + +#: src/dird/verify.c:276 +#, c-format +msgid "Unimplemented Verify level %d(%c)\n" +msgstr "" + +#: src/dird/verify.c:330 +#, c-format +msgid "Unimplemented verify level %d\n" +msgstr "" + +#: src/dird/verify.c:384 +msgid "Verify OK" +msgstr "" + +#: src/dird/verify.c:388 +msgid "*** Verify Error ***" +msgstr "" + +#: src/dird/verify.c:392 +msgid "Verify warnings" +msgstr "" + +#: src/dird/verify.c:395 +msgid "Verify Canceled" +msgstr "" + +#: src/dird/verify.c:398 +msgid "Verify Differences" +msgstr "" + +#: src/dird/verify.c:403 +#, c-format +msgid "Inappropriate term code: %d %c\n" +msgstr "" + +#: src/dird/verify.c:417 +#, c-format +msgid "" +"Bacula %s %s (%s): %s\n" +" Build OS: %s %s %s\n" +" JobId: %d\n" +" Job: %s\n" +" FileSet: %s\n" +" Verify Level: %s\n" +" Client: %s\n" +" Verify JobId: %d\n" +" Verify Job: %s\n" +" Start time: %s\n" +" End time: %s\n" +" Files Expected: %s\n" +" Files Examined: %s\n" +" Non-fatal FD errors: %d\n" +" FD termination status: %s\n" +" SD termination status: %s\n" +" Termination: %s\n" +"\n" +msgstr "" + +#: src/dird/verify.c:452 +#, c-format +msgid "" +"Bacula %s %s (%s): %s\n" +" Build: %s %s %s\n" +" JobId: %d\n" +" Job: %s\n" +" FileSet: %s\n" +" Verify Level: %s\n" +" Client: %s\n" +" Verify JobId: %d\n" +" Verify Job: %s\n" +" Start time: %s\n" +" End time: %s\n" +" Files Examined: %s\n" +" Non-fatal FD errors: %d\n" +" FD termination status: %s\n" +" Termination: %s\n" +"\n" +msgstr "" + +#: src/dird/verify.c:531 +#, c-format +msgid "" +"bird set configuration file to file\n" +" -dnn set debug level to nn\n" +" -n no conio\n" +" -s no signals\n" +" -t test - read configuration and exit\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/console/console.c:162 +msgid "input from file" +msgstr "" + +#: src/console/console.c:163 +msgid "output to file" +msgstr "" + +#: src/console/console.c:165 +msgid "output to file and terminal" +msgstr "" + +#: src/console/console.c:166 +msgid "sleep specified time" +msgstr "" + +#: src/console/console.c:168 +msgid "print Console's version" +msgstr "" + +#: src/console/console.c:169 +msgid "echo command string" +msgstr "" + +#: src/console/console.c:170 +msgid "execute an external command" +msgstr "" + +#: src/console/console.c:172 +msgid "zed_keys = use zed keys instead of bash keys" +msgstr "" + +#: src/console/console.c:205 +msgid ": is an invalid command\n" +msgstr "" + +#: src/console/console.c:462 +msgid "Available Directors:\n" +msgstr "" + +#: src/console/console.c:466 +#, c-format +msgid "%2d: %s at %s:%d\n" +msgstr "" + +#: src/console/console.c:470 +msgid "Select Director by entering a number: " +msgstr "" + +#: src/console/console.c:475 +#, c-format +msgid "%s is not a number. You must enter a number between 1 and %d\n" +msgstr "" + +#: src/console/console.c:481 +#, c-format +msgid "You must enter a number between 1 and %d\n" +msgstr "" + +#: src/console/console.c:521 src/tray-monitor/tray-monitor.c:905 +#, c-format +msgid "Connecting to Director %s:%d\n" +msgstr "" + +#: src/console/console.c:538 src/gnome2-console/console.c:526 +#: src/wx-console/console_thread.cpp:391 +#, c-format +msgid "Failed to initialize TLS context for Console \"%s\".\n" +msgstr "" + +#: src/console/console.c:558 src/gnome2-console/console.c:548 +#: src/wx-console/console_thread.cpp:412 +#, c-format +msgid "Failed to initialize TLS context for Director \"%s\".\n" +msgstr "" + +#: src/console/console.c:588 +msgid "Enter a period to cancel a command.\n" +msgstr "" + +#: src/console/console.c:664 src/gnome2-console/console.c:160 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Director \"%s\" in %s. At least one CA certificate store is required.\n" +msgstr "" + +#: src/console/console.c:673 src/gnome2-console/console.c:169 +#, c-format +msgid "" +"No Director resource defined in %s\n" +"Without that I don't how to speak to the Director :-(\n" +msgstr "" + +#: src/console/console.c:693 src/gnome2-console/console.c:189 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Console \"%s\" in %s.\n" +msgstr "" + +#: src/console/console.c:849 +msgid "Too many arguments on input command.\n" +msgstr "" + +#: src/console/console.c:853 +msgid "First argument to input command must be a filename.\n" +msgstr "" + +#: src/console/console.c:858 +#, c-format +msgid "Cannot open file %s for input. ERR=%s\n" +msgstr "" + +#: src/console/console.c:888 +msgid "Too many arguments on output/tee command.\n" +msgstr "" + +#: src/console/console.c:905 +#, c-format +msgid "Cannot open file %s for output. ERR=%s\n" +msgstr "" + +#: src/console/console.c:924 +msgid "Too many arguments. Enclose command in double quotes.\n" +msgstr "" + +#: src/console/console.c:933 +#, c-format +msgid "Cannot popen(\"%s\", \"r\"): ERR=%s\n" +msgstr "" + +#: src/console/console.c:945 src/stored/autochanger.c:549 +#, c-format +msgid "Autochanger error: ERR=%s\n" +msgstr "" + +#: src/console/console_conf.c:138 src/gnome2-console/console_conf.c:134 +#: src/wx-console/console_conf.c:147 +#, c-format +msgid "No record for %d %s\n" +msgstr "" + +#: src/console/console_conf.c:147 src/wx-console/console_conf.c:156 +#, c-format +msgid "Console: name=%s rcfile=%s histfile=%s\n" +msgstr "" + +#: src/console/console_conf.c:151 src/gnome2-console/console_conf.c:143 +#: src/wx-console/console_conf.c:160 +#, c-format +msgid "Director: name=%s address=%s DIRport=%d\n" +msgstr "" + +#: src/console/console_conf.c:155 src/console/console_conf.c:231 +#: src/console/console_conf.c:276 src/console/console_conf.c:303 +#: src/filed/filed_conf.c:319 src/filed/filed_conf.c:384 +#: src/filed/filed_conf.c:414 src/gnome2-console/console_conf.c:154 +#: src/gnome2-console/console_conf.c:232 src/gnome2-console/console_conf.c:280 +#: src/gnome2-console/console_conf.c:310 src/stored/stored_conf.c:528 +#: src/stored/stored_conf.c:616 src/stored/stored_conf.c:651 +#: src/wx-console/console_conf.c:164 src/wx-console/console_conf.c:239 +#: src/wx-console/console_conf.c:284 src/wx-console/console_conf.c:311 +#, c-format +msgid "Unknown resource type %d\n" +msgstr "" + +#: src/filed/acl.c:104 src/filed/acl.c:110 +msgid "ACL support not configured for your machine.\n" +msgstr "" + +#: src/filed/acl.c:186 +#, c-format +msgid "acl_to_text error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:215 +#, c-format +msgid "acl_delete_def_file error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:223 +#, c-format +msgid "acl_from_text error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:237 +#, c-format +msgid "ac_valid error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:252 +#, c-format +msgid "acl_set_file error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:286 +#, c-format +msgid "acltostr error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:303 src/filed/acl.c:311 +#, c-format +msgid "strtoacl error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:323 +#, c-format +msgid "setacl error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:359 +#, c-format +msgid "acltotext error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:376 +#, c-format +msgid "aclfromtext error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:388 +#, c-format +msgid "acl(SETACL) error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/authenticate.c:60 +#, c-format +msgid "I only authenticate directors, not %d\n" +msgstr "" + +#: src/filed/authenticate.c:68 src/stored/authenticate.c:66 +#, c-format +msgid "Bad Hello command from Director at %s. Len=%d.\n" +msgstr "" + +#: src/filed/authenticate.c:80 src/stored/authenticate.c:77 +#, c-format +msgid "Bad Hello command from Director at %s: %s\n" +msgstr "" + +#: src/filed/authenticate.c:92 +#, c-format +msgid "Connection from unknown Director %s at %s rejected.\n" +msgstr "" + +#: src/filed/authenticate.c:132 +#, c-format +msgid "Incorrect password given by Director at %s.\n" +msgstr "" + +#: src/filed/authenticate.c:139 +msgid "" +"Authorization problem: Remote server did not advertize required TLS " +"support.\n" +msgstr "" + +#: src/filed/authenticate.c:193 src/stored/dircmd.c:199 +msgid "Unable to authenticate Director\n" +msgstr "" + +#: src/filed/authenticate.c:244 +msgid "" +"Authorization key rejected by Storage daemon.\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" + +#: src/filed/backup.c:86 +msgid "Cannot set buffer size FD->SD.\n" +msgstr "" + +#: src/filed/backup.c:129 src/filed/backup.c:138 +msgid "An error occurred while encrypting the stream.\n" +msgstr "" + +#: src/filed/backup.c:255 +#, c-format +msgid " Recursion turned off. Will not descend from %s into %s\n" +msgstr "" + +#: src/filed/backup.c:262 +#, c-format +msgid " %s is a different filesystem. Will not descend from %s into %s\n" +msgstr "" + +#: src/filed/backup.c:268 +#, c-format +msgid " Disallowed filesystem. Will not descend from %s into %s\n" +msgstr "" + +#: src/filed/backup.c:273 +#, c-format +msgid " Disallowed drive type. Will not descend into %s\n" +msgstr "" + +#: src/filed/backup.c:292 src/filed/verify.c:123 +#, c-format +msgid " Could not access %s: ERR=%s\n" +msgstr "" + +#: src/filed/backup.c:299 src/filed/verify.c:130 +#, c-format +msgid " Could not follow link %s: ERR=%s\n" +msgstr "" + +#: src/filed/backup.c:306 src/filed/verify.c:137 +#, c-format +msgid " Could not stat %s: ERR=%s\n" +msgstr "" + +#: src/filed/backup.c:313 src/filed/verify.c:143 +#, c-format +msgid " Unchanged file skipped: %s\n" +msgstr "" + +#: src/filed/backup.c:316 +#, c-format +msgid " Archive file not saved: %s\n" +msgstr "" + +#: src/filed/backup.c:320 src/filed/verify.c:158 +#, c-format +msgid " Could not open directory %s: ERR=%s\n" +msgstr "" + +#: src/filed/backup.c:326 +#, c-format +msgid " Unknown file type %d; not saved: %s\n" +msgstr "" + +#: src/filed/backup.c:366 src/filed/verify.c:239 +#, c-format +msgid "%s digest initialization failed\n" +msgstr "" + +#: src/filed/backup.c:380 +#, c-format +msgid "%s signature digest initialization failed\n" +msgstr "" + +#: src/filed/backup.c:400 +#, c-format +msgid "Python reader program \"%s\" not found.\n" +msgstr "" + +#: src/filed/backup.c:462 src/filed/verify.c:300 +#, c-format +msgid " Cannot open %s: ERR=%s.\n" +msgstr "" + +#: src/filed/backup.c:499 src/filed/verify.c:314 +#, c-format +msgid " Cannot open resource fork for %s: ERR=%s.\n" +msgstr "" + +#: src/filed/backup.c:556 +msgid "Failed to allocate memory for crypto signature.\n" +msgstr "" + +#: src/filed/backup.c:561 src/filed/backup.c:567 src/filed/backup.c:582 +msgid "An error occurred while signing the stream.\n" +msgstr "" + +#: src/filed/backup.c:606 +msgid "An error occurred finalizing signing the stream.\n" +msgstr "" + +#: src/filed/backup.c:693 +#, c-format +msgid "Compression deflateParams error: %d\n" +msgstr "" + +#: src/filed/backup.c:705 +msgid "Encrypting sparse data not supported.\n" +msgstr "" + +#: src/filed/backup.c:712 +msgid "Failed to initialize encryption context.\n" +msgstr "" + +#: src/filed/backup.c:735 src/filed/backup.c:891 src/filed/backup.c:926 +#: src/filed/backup.c:937 src/filed/backup.c:983 src/filed/backup.c:996 +#: src/filed/backup.c:1004 src/filed/backup.c:1050 src/filed/backup.c:1086 +#, c-format +msgid "Network send error to SD. ERR=%s\n" +msgstr "" + +#: src/filed/backup.c:814 +#, c-format +msgid "Compression deflate error: %d\n" +msgstr "" + +#: src/filed/backup.c:821 +#, c-format +msgid "Compression deflateReset error: %d\n" +msgstr "" + +#: src/filed/backup.c:864 src/filed/backup.c:880 +msgid "Encryption error\n" +msgstr "" + +#: src/filed/backup.c:904 +#, c-format +msgid "Read error on file %s. ERR=%s\n" +msgstr "" + +#: src/filed/backup.c:907 +msgid "Too many errors.\n" +msgstr "" + +#: src/filed/backup.c:917 +msgid "Encryption padding error\n" +msgstr "" + +#: src/filed/backup.c:974 +#, c-format +msgid "Error reading ACL of %s\n" +msgstr "" + +#: src/filed/backup.c:1029 +msgid "Invalid file flags, no supported data stream type.\n" +msgstr "" + +#: src/filed/filed.c:65 +#, c-format +msgid "" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: bacula-fd [-f -s] [-c config_file] [-d debug_level]\n" +" -c use as configuration file\n" +" -dnn set debug level to nn\n" +" -f run in foreground (for debugging)\n" +" -g groupid\n" +" -s no signals (for debugging)\n" +" -t test configuration file and exit\n" +" -u userid\n" +" -v verbose user messages\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/filed/filed.c:268 +#, c-format +msgid "" +"No File daemon resource defined in %s\n" +"Without that I don't know who I am :-(\n" +msgstr "" + +#: src/filed/filed.c:273 +#, c-format +msgid "Only one Client resource permitted in %s\n" +msgstr "" + +#: src/filed/filed.c:296 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"File daemon in %s.\n" +msgstr "" + +#: src/filed/filed.c:320 +msgid "PKI encryption/signing enabled but not compiled into Bacula.\n" +msgstr "" + +#: src/filed/filed.c:331 +#, c-format +msgid "" +"\"PKI Key Pair\" must be defined for File daemon \"%s\" in %s if either " +"\"PKI Sign\" or \"PKI Encrypt\" are enabled.\n" +msgstr "" + +#: src/filed/filed.c:343 src/filed/filed.c:374 src/filed/filed.c:415 +msgid "Failed to allocate a new keypair object.\n" +msgstr "" + +#: src/filed/filed.c:347 +#, c-format +msgid "Failed to load public certificate for File daemon \"%s\" in %s.\n" +msgstr "" + +#: src/filed/filed.c:353 +#, c-format +msgid "Failed to load private key for File daemon \"%s\" in %s.\n" +msgstr "" + +#: src/filed/filed.c:383 +#, c-format +msgid "Failed to load private key from file %s for File daemon \"%s\" in %s.\n" +msgstr "" + +#: src/filed/filed.c:390 +#, c-format +msgid "" +"Failed to load trusted signer certificate from file %s for File daemon \"%s" +"\" in %s.\n" +msgstr "" + +#: src/filed/filed.c:421 +#, c-format +msgid "" +"Failed to load master key certificate from file %s for File daemon \"%s\" in " +"%s.\n" +msgstr "" + +#: src/filed/filed.c:437 +#, c-format +msgid "No Director resource defined in %s\n" +msgstr "" + +#: src/filed/job.c:373 +#, c-format +msgid "2901 Job %s not found.\n" +msgstr "" + +#: src/filed/job.c:382 +#, c-format +msgid "2001 Job %s marked to be canceled.\n" +msgstr "" + +#: src/filed/job.c:385 +msgid "2902 Error scanning cancel command.\n" +msgstr "" + +#: src/filed/job.c:404 +#, c-format +msgid "2991 Bad setdebug command: %s\n" +msgstr "" + +#: src/filed/job.c:420 +#, c-format +msgid "Bad estimate command: %s" +msgstr "" + +#: src/filed/job.c:421 +msgid "2992 Bad estimate command.\n" +msgstr "" + +#: src/filed/job.c:444 +#, c-format +msgid "Bad Job Command: %s" +msgstr "" + +#: src/filed/job.c:465 +#, c-format +msgid "Bad RunBeforeJob command: %s\n" +msgstr "" + +#: src/filed/job.c:466 src/filed/job.c:484 +msgid "2905 Bad RunBeforeJob command.\n" +msgstr "" + +#: src/filed/job.c:495 +msgid "2905 Bad RunBeforeNow command.\n" +msgstr "" + +#: src/filed/job.c:514 +#, c-format +msgid "Bad RunAfter command: %s\n" +msgstr "" + +#: src/filed/job.c:515 +msgid "2905 Bad RunAfterJob command.\n" +msgstr "" + +#: src/filed/job.c:549 +#, c-format +msgid "Bad RunScript command: %s\n" +msgstr "" + +#: src/filed/job.c:550 +msgid "2905 Bad RunScript command.\n" +msgstr "" + +#: src/filed/job.c:652 +#, c-format +msgid "Error running program: %s. stat=%d: ERR=%s\n" +msgstr "" + +#: src/filed/job.c:662 +#, c-format +msgid "Cannot open FileSet input file: %s. ERR=%s\n" +msgstr "" + +#: src/filed/job.c:758 +#, c-format +msgid "REGEX %s compile error. ERR=%s\n" +msgstr "" + +#: src/filed/job.c:820 +#, c-format +msgid "Invalid FileSet command: %s\n" +msgstr "" + +#: src/filed/job.c:1054 src/findlib/match.c:199 src/tools/testfind.c:635 +#, c-format +msgid "Unknown include/exclude option: %c\n" +msgstr "" + +#: src/filed/job.c:1123 src/stored/fd_cmds.c:355 +#, c-format +msgid "Could not create bootstrap file %s: ERR=%s\n" +msgstr "" + +#: src/filed/job.c:1232 +#, c-format +msgid "DIR and FD clocks differ by %d seconds, FD automatically adjusting.\n" +msgstr "" + +#: src/filed/job.c:1240 +#, c-format +msgid "Unknown backup level: %s\n" +msgstr "" + +#: src/filed/job.c:1252 +#, c-format +msgid "Bad level command: %s\n" +msgstr "" + +#: src/filed/job.c:1273 +#, c-format +msgid "Bad session command: %s" +msgstr "" + +#: src/filed/job.c:1294 +#, c-format +msgid "Bad storage command: %s" +msgstr "" + +#: src/filed/job.c:1303 +#, c-format +msgid "Failed to connect to Storage daemon: %s:%d\n" +msgstr "" + +#: src/filed/job.c:1315 +msgid "Failed to authenticate Storage daemon.\n" +msgstr "" + +#: src/filed/job.c:1353 +msgid "Cannot contact Storage daemon\n" +msgstr "" + +#: src/filed/job.c:1371 +#, c-format +msgid "Bad response to append open: %s\n" +msgstr "" + +#: src/filed/job.c:1376 +msgid "Bad response from stored to open command\n" +msgstr "" + +#: src/filed/job.c:1403 +#, c-format +msgid "Generate VSS snapshots. Driver=\"%s\", Drive(s)=\"%s\"\n" +msgstr "" + +#: src/filed/job.c:1405 +msgid "Generate VSS snapshots failed.\n" +msgstr "" + +#: src/filed/job.c:1412 +#, c-format +msgid "" +"Generate VSS snapshot of drive \"%c:\\\" failed. VSS support is disabled on " +"this drive.\n" +msgstr "" + +#: src/filed/job.c:1419 +#, c-format +msgid "VSS Writer (PrepareForBackup): %s\n" +msgstr "" + +#: src/filed/job.c:1424 +msgid "No drive letters found for generating VSS snapshots.\n" +msgstr "" + +#: src/filed/job.c:1428 +#, c-format +msgid "VSS was not initialized properly. VSS support is disabled. ERR=%s\n" +msgstr "" + +#: src/filed/job.c:1478 +msgid "Append Close with SD failed.\n" +msgstr "" + +#: src/filed/job.c:1482 +#, c-format +msgid "Bad status %d returned from Storage Daemon.\n" +msgstr "" + +#: src/filed/job.c:1500 +#, c-format +msgid "VSS Writer (BackupComplete): %s\n" +msgstr "" + +#: src/filed/job.c:1528 +#, c-format +msgid "2994 Bad verify command: %s\n" +msgstr "" + +#: src/filed/job.c:1543 src/filed/job.c:1582 +#, c-format +msgid "2994 Bad verify level: %s\n" +msgstr "" + +#: src/filed/job.c:1626 +#, c-format +msgid "Bad replace command. CMD=%s\n" +msgstr "" + +#: src/filed/job.c:1644 +#, c-format +msgid "Bad where regexp. where=%s\n" +msgstr "" + +#: src/filed/job.c:1718 +msgid "Improper calling sequence.\n" +msgstr "" + +#: src/filed/job.c:1738 +#, c-format +msgid "Bad response to SD read open: %s\n" +msgstr "" + +#: src/filed/job.c:1743 +msgid "Bad response from stored to read open command\n" +msgstr "" + +#: src/filed/job.c:1807 +#, c-format +msgid "Comm error with SD. bad response to %s. ERR=%s\n" +msgstr "" + +#: src/filed/job.c:1810 +#, c-format +msgid "Bad response to %s command. Wanted %s, got %s\n" +msgstr "" + +#: src/filed/pythonfd.c:157 src/stored/pythonsd.c:162 +#, c-format +msgid "Cannot delete attribute %s" +msgstr "" + +#: src/filed/pythonfd.c:175 src/filed/pythonfd.c:191 src/stored/pythonsd.c:195 +#, c-format +msgid "Cannot find attribute %s" +msgstr "" + +#: src/filed/restore.c:133 +#, c-format +msgid "Size of data or stream of %s not correct. Original %s, restored %s.\n" +msgstr "" + +#: src/filed/restore.c:255 src/filed/verify_vol.c:99 +#, c-format +msgid "Record header scan error: %s\n" +msgstr "" + +#: src/filed/restore.c:263 src/filed/verify_vol.c:108 +#, c-format +msgid "Data record error. ERR=%s\n" +msgstr "" + +#: src/filed/restore.c:267 src/filed/verify_vol.c:112 +#, c-format +msgid "Actual data size %d not same as header %d\n" +msgstr "" + +#: src/filed/restore.c:294 src/filed/restore.c:639 +msgid "Logic error: output file should be open\n" +msgstr "" + +#: src/filed/restore.c:315 src/filed/restore.c:652 +msgid "Logic error: output file should not be open\n" +msgstr "" + +#: src/filed/restore.c:326 src/filed/verify_vol.c:151 +#: src/stored/bextract.c:302 src/stored/bls.c:383 src/stored/bscan.c:663 +#, c-format +msgid "Record header file index %ld not equal record index %ld\n" +msgstr "" + +#: src/filed/restore.c:339 src/stored/bextract.c:311 +#, c-format +msgid "%s stream not supported on this Client.\n" +msgstr "" + +#: src/filed/restore.c:391 +msgid "Unexpected cryptographic session data stream.\n" +msgstr "" + +#: src/filed/restore.c:399 +msgid "" +"No private decryption keys have been defined to decrypt encrypted backup " +"data.\n" +msgstr "" + +#: src/filed/restore.c:410 +msgid "Could not create digest.\n" +msgstr "" + +#: src/filed/restore.c:424 +msgid "Missing private key required to decrypt encrypted backup data.\n" +msgstr "" + +#: src/filed/restore.c:427 +msgid "Decrypt of the session key failed.\n" +msgstr "" + +#: src/filed/restore.c:431 +#, c-format +msgid "An error occurred while decoding encrypted session data stream: %s\n" +msgstr "" + +#: src/filed/restore.c:480 src/filed/restore.c:526 +#, c-format +msgid "Missing encryption session data stream for %s\n" +msgstr "" + +#: src/filed/restore.c:488 src/filed/restore.c:533 +#, c-format +msgid "Failed to initialize decryption context for %s\n" +msgstr "" + +#: src/filed/restore.c:545 +#, c-format +msgid " Cannot open resource fork for %s.\n" +msgstr "" + +#: src/filed/restore.c:571 +#, c-format +msgid " Invalid length of Finder Info (got %d, not 32)\n" +msgstr "" + +#: src/filed/restore.c:575 +#, c-format +msgid " Could not set Finder Info on %s\n" +msgstr "" + +#: src/filed/restore.c:588 +#, c-format +msgid "Can't restore ACL of %s\n" +msgstr "" + +#: src/filed/restore.c:600 +#, c-format +msgid "Can't restore default ACL of %s\n" +msgstr "" + +#: src/filed/restore.c:610 +msgid "Unexpected cryptographic signature data stream.\n" +msgstr "" + +#: src/filed/restore.c:616 +#, c-format +msgid "Failed to decode message signature for %s\n" +msgstr "" + +#: src/filed/restore.c:655 src/stored/bextract.c:469 +#, c-format +msgid "Unknown stream=%d ignored. This shouldn't happen!\n" +msgstr "" + +#: src/filed/restore.c:732 +#, c-format +msgid "" +"%d non-supported data streams and %d non-supported attrib streams ignored.\n" +msgstr "" + +#: src/filed/restore.c:736 +#, c-format +msgid "%d non-supported resource fork streams ignored.\n" +msgstr "" + +#: src/filed/restore.c:739 +#, c-format +msgid "%d non-supported Finder Info streams ignored.\n" +msgstr "" + +#: src/filed/restore.c:742 +#, c-format +msgid "%d non-supported acl streams ignored.\n" +msgstr "" + +#: src/filed/restore.c:745 +#, c-format +msgid "%d non-supported crypto streams ignored.\n" +msgstr "" + +#: src/filed/restore.c:757 +msgid "None" +msgstr "" + +#: src/filed/restore.c:761 +msgid "Zlib errno" +msgstr "" + +#: src/filed/restore.c:763 +msgid "Zlib stream error" +msgstr "" + +#: src/filed/restore.c:765 +msgid "Zlib data error" +msgstr "" + +#: src/filed/restore.c:767 +msgid "Zlib memory error" +msgstr "" + +#: src/filed/restore.c:769 +msgid "Zlib buffer error" +msgstr "" + +#: src/filed/restore.c:771 +msgid "Zlib version error" +msgstr "" + +#: src/filed/restore.c:773 src/lib/util.c:591 src/lib/util.c:601 +#: src/lib/util.c:609 src/lib/util.c:616 src/lib/util.c:623 src/lib/util.c:637 +#: src/lib/util.c:647 src/lib/util.c:654 src/lib/util.c:665 +msgid "*none*" +msgstr "" + +#: src/filed/restore.c:809 +#, c-format +msgid "Missing cryptographic signature for %s\n" +msgstr "" + +#: src/filed/restore.c:838 src/filed/restore.c:862 +#, c-format +msgid "Signature validation failed for file %s: ERR=%s\n" +msgstr "" + +#: src/filed/restore.c:852 +#, c-format +msgid "Digest one file failed for file: %s\n" +msgstr "" + +#: src/filed/restore.c:883 +#, c-format +msgid "Signature validation failed for %s: %s\n" +msgstr "" + +#: src/filed/restore.c:909 src/stored/bextract.c:400 +#, c-format +msgid "Seek to %s error on %s: ERR=%s\n" +msgstr "" + +#: src/filed/restore.c:936 +#, c-format +msgid "Uncompression error on file %s. ERR=%s\n" +msgstr "" + +#: src/filed/restore.c:945 src/stored/bextract.c:434 +msgid "GZIP data stream found, but GZIP not configured!\n" +msgstr "" + +#: src/filed/restore.c:968 +#, c-format +msgid "Write error in Win32 Block Decomposition on %s: %s\n" +msgstr "" + +#: src/filed/restore.c:974 src/stored/bextract.c:372 src/stored/bextract.c:422 +#, c-format +msgid "Write error on %s: %s\n" +msgstr "" + +#: src/filed/restore.c:1023 +msgid "Decryption error\n" +msgstr "" + +#: src/filed/restore.c:1113 +#, c-format +msgid "Decryption error. buf_len=%d decrypt_len=%d on file %s\n" +msgstr "" + +#: src/filed/restore.c:1217 +msgid "Open File Manager paused\n" +msgstr "" + +#: src/filed/restore.c:1221 +msgid "FAILED to pause Open File Manager\n" +msgstr "" + +#: src/filed/restore.c:1229 +#, c-format +msgid "Running as '%s'. Privmask=%#08x\n" +msgstr "" + +#: src/filed/restore.c:1231 +msgid "Failed to retrieve current UserName\n" +msgstr "" + +#: src/filed/status.c:77 +#, c-format +msgid "%s Version: %s (%s) %s %s %s %s\n" +msgstr "" + +#: src/filed/status.c:81 src/stored/status.c:86 +#, c-format +msgid "Daemon started %s, %d Job%s run since started.\n" +msgstr "" + +#: src/filed/status.c:136 +#, c-format +msgid " Sizeof: boffset_t=%d size_t=%d debug=%d trace=%d\n" +msgstr "" + +#: src/filed/status.c:155 +#, c-format +msgid "Director connected at: %s\n" +msgstr "" + +#: src/filed/status.c:157 +#, c-format +msgid "JobId %d Job %s is running.\n" +msgstr "" + +#: src/filed/status.c:160 +#, c-format +msgid " %s%s Job started: %s\n" +msgstr "" + +#: src/filed/status.c:172 +#, c-format +msgid " Files=%s Bytes=%s Bytes/sec=%s Errors=%d\n" +msgstr "" + +#: src/filed/status.c:178 +#, c-format +msgid " Files Examined=%s\n" +msgstr "" + +#: src/filed/status.c:183 +#, c-format +msgid " Processing file: %s\n" +msgstr "" + +#: src/filed/status.c:194 +msgid " SDSocket closed.\n" +msgstr "" + +#: src/filed/status.c:328 src/filed/status.c:352 src/stored/status.c:636 +#: src/stored/status.c:659 +#, c-format +msgid "Bad .status command: %s\n" +msgstr "" + +#: src/filed/status.c:329 +msgid "2900 Bad .status command, missing argument.\n" +msgstr "" + +#: src/filed/status.c:353 +msgid "2900 Bad .status command, wrong argument.\n" +msgstr "" + +#: src/filed/status.c:390 src/stored/status.c:577 +msgid "Init Catalog" +msgstr "" + +#: src/filed/status.c:393 src/stored/status.c:580 +msgid "Volume to Catalog" +msgstr "" + +#: src/filed/status.c:396 src/stored/status.c:583 +msgid "Disk to Catalog" +msgstr "" + +#: src/filed/status.c:399 src/stored/status.c:586 +msgid "Data" +msgstr "" + +#: src/filed/status.c:405 src/lib/util.c:361 src/stored/status.c:592 +msgid "Unknown Job Level" +msgstr "" + +#: src/filed/status.c:421 +msgid "Bacula Client: Idle" +msgstr "" + +#: src/filed/status.c:432 +msgid "Bacula Client: Running" +msgstr "" + +#: src/filed/status.c:446 +msgid "Bacula Client: Last Job Canceled" +msgstr "" + +#: src/filed/status.c:450 +msgid "Bacula Client: Last Job Failed" +msgstr "" + +#: src/filed/status.c:454 +msgid "Bacula Client: Last Job had Warnings" +msgstr "" + +#: src/filed/verify.c:53 +#, c-format +msgid "Cannot malloc %d network read buffer\n" +msgstr "" + +#: src/filed/verify.c:146 +#, c-format +msgid " Archive file skipped: %s\n" +msgstr "" + +#: src/filed/verify.c:149 +#, c-format +msgid " Recursion turned off. Directory skipped: %s\n" +msgstr "" + +#: src/filed/verify.c:153 +#, c-format +msgid " File system change prohibited. Directory skipped: %s\n" +msgstr "" + +#: src/filed/verify.c:163 +#, c-format +msgid " Unknown file type %d: %s\n" +msgstr "" + +#: src/filed/verify.c:206 src/filed/verify_vol.c:209 +#, c-format +msgid "Network error in send to Director: ERR=%s\n" +msgstr "" + +#: src/filed/verify.c:352 +#, c-format +msgid "Error reading file %s: ERR=%s\n" +msgstr "" + +#: src/filed/verify_vol.c:65 +msgid "Storage command not issued before Verify.\n" +msgstr "" + +#: src/filed/verify_vol.c:145 +#, c-format +msgid "Error scanning record header: %s\n" +msgstr "" + +#: src/findlib/attribs.c:408 +#, c-format +msgid "File size of restored file %s not correct. Original %s, restored %s.\n" +msgstr "" + +#: src/findlib/attribs.c:434 src/findlib/attribs.c:441 +#, c-format +msgid "Unable to set file owner %s: ERR=%s\n" +msgstr "" + +#: src/findlib/attribs.c:447 +#, c-format +msgid "Unable to set file modes %s: ERR=%s\n" +msgstr "" + +#: src/findlib/attribs.c:457 +#, c-format +msgid "Unable to set file times %s: ERR=%s\n" +msgstr "" + +#: src/findlib/attribs.c:471 +#, c-format +msgid "Unable to set file flags %s: ERR=%s\n" +msgstr "" + +#: src/findlib/attribs.c:714 +#, c-format +msgid "Error in %s file %s: ERR=%s\n" +msgstr "" + +#: src/findlib/attribs.c:731 +#, c-format +msgid "Error in %s: ERR=%s\n" +msgstr "" + +#: src/findlib/bfile.c:82 +msgid "Unix attributes" +msgstr "" + +#: src/findlib/bfile.c:84 +msgid "File data" +msgstr "" + +#: src/findlib/bfile.c:86 +msgid "MD5 digest" +msgstr "" + +#: src/findlib/bfile.c:88 +msgid "GZIP data" +msgstr "" + +#: src/findlib/bfile.c:90 +msgid "Extended attributes" +msgstr "" + +#: src/findlib/bfile.c:92 +msgid "Sparse data" +msgstr "" + +#: src/findlib/bfile.c:94 +msgid "GZIP sparse data" +msgstr "" + +#: src/findlib/bfile.c:96 +msgid "Program names" +msgstr "" + +#: src/findlib/bfile.c:98 +msgid "Program data" +msgstr "" + +#: src/findlib/bfile.c:100 +msgid "SHA1 digest" +msgstr "" + +#: src/findlib/bfile.c:102 +msgid "Win32 data" +msgstr "" + +#: src/findlib/bfile.c:104 +msgid "Win32 GZIP data" +msgstr "" + +#: src/findlib/bfile.c:106 +msgid "MacOS Fork data" +msgstr "" + +#: src/findlib/bfile.c:108 +msgid "HFS+ attribs" +msgstr "" + +#: src/findlib/bfile.c:110 +msgid "Standard Unix ACL attribs" +msgstr "" + +#: src/findlib/bfile.c:112 +msgid "Default Unix ACL attribs" +msgstr "" + +#: src/findlib/bfile.c:114 +msgid "SHA256 digest" +msgstr "" + +#: src/findlib/bfile.c:116 +msgid "SHA512 digest" +msgstr "" + +#: src/findlib/bfile.c:118 +msgid "Signed digest" +msgstr "" + +#: src/findlib/bfile.c:120 +msgid "Encrypted File data" +msgstr "" + +#: src/findlib/bfile.c:122 +msgid "Encrypted Win32 data" +msgstr "" + +#: src/findlib/bfile.c:124 +msgid "Encrypted session data" +msgstr "" + +#: src/findlib/bfile.c:126 +msgid "Encrypted GZIP data" +msgstr "" + +#: src/findlib/bfile.c:128 +msgid "Encrypted Win32 GZIP data" +msgstr "" + +#: src/findlib/bfile.c:130 +msgid "Encrypted MacOS fork data" +msgstr "" + +#: src/findlib/create_file.c:123 +#, c-format +msgid "File skipped. Not newer: %s\n" +msgstr "" + +#: src/findlib/create_file.c:130 +#, c-format +msgid "File skipped. Not older: %s\n" +msgstr "" + +#: src/findlib/create_file.c:136 +#, c-format +msgid "File skipped. Already exists: %s\n" +msgstr "" + +#: src/findlib/create_file.c:162 +#, c-format +msgid "File %s already exists and could not be replaced. ERR=%s.\n" +msgstr "" + +#: src/findlib/create_file.c:214 src/findlib/create_file.c:277 +#: src/findlib/create_file.c:370 +#, c-format +msgid "bpkt already open fid=%d\n" +msgstr "" + +#: src/findlib/create_file.c:222 +#, c-format +msgid "Could not create %s: ERR=%s\n" +msgstr "" + +#: src/findlib/create_file.c:236 +#, c-format +msgid "Cannot make fifo %s: ERR=%s\n" +msgstr "" + +#: src/findlib/create_file.c:254 +#, c-format +msgid "Cannot make node %s: ERR=%s\n" +msgstr "" + +#: src/findlib/create_file.c:299 +#, c-format +msgid "Could not symlink %s -> %s: ERR=%s\n" +msgstr "" + +#: src/findlib/create_file.c:324 src/findlib/create_file.c:335 +#, c-format +msgid "Could not restore file flags for file %s: ERR=%s\n" +msgstr "" + +#: src/findlib/create_file.c:328 src/findlib/create_file.c:343 +#, c-format +msgid "Could not hard link %s -> %s: ERR=%s\n" +msgstr "" + +#: src/findlib/create_file.c:339 +#, c-format +msgid "Could not reset file flags for file %s: ERR=%s\n" +msgstr "" + +#: src/findlib/create_file.c:402 +#, c-format +msgid "Original file %s not saved: type=%d\n" +msgstr "" + +#: src/findlib/create_file.c:405 +#, c-format +msgid "Unknown file type %d; not restored: %s\n" +msgstr "" + +#: src/findlib/create_file.c:449 +#, c-format +msgid "Zero length filename: %s\n" +msgstr "" + +#: src/findlib/enable_priv.c:92 +msgid "AdjustTokenPrivileges set " +msgstr "" + +#: src/findlib/find_one.c:228 +#, c-format +msgid "Cannot stat file %s: ERR=%s\n" +msgstr "" + +#: src/findlib/find_one.c:234 +#, c-format +msgid "%s mtime changed during backup.\n" +msgstr "" + +#: src/findlib/find_one.c:240 +#, c-format +msgid "%s ctime changed during backup.\n" +msgstr "" + +#: src/findlib/find_one.c:246 src/findlib/find_one.c:253 +#, c-format +msgid "%s size changed during backup.\n" +msgstr "" + +#: src/findlib/find_one.c:310 +#, c-format +msgid "Top level directory \"%s\" has unlisted fstype \"%s\"\n" +msgstr "" + +#: src/findlib/find_one.c:325 +#, c-format +msgid "Top level directory \"%s\" has an unlisted drive type \"%s\"\n" +msgstr "" + +#: src/findlib/makepath.c:116 +#, c-format +msgid "Cannot create directory %s: ERR=%s\n" +msgstr "" + +#: src/findlib/makepath.c:120 src/findlib/makepath.c:398 +#, c-format +msgid "%s exists but is not a directory\n" +msgstr "" + +#: src/findlib/makepath.c:229 +#, c-format +msgid "%c: is not a valid drive\n" +msgstr "" + +#: src/findlib/makepath.c:296 src/findlib/makepath.c:357 +#: src/findlib/makepath.c:417 +#, c-format +msgid "Cannot change owner and/or group of %s: ERR=%s\n" +msgstr "" + +#: src/findlib/makepath.c:317 +#, c-format +msgid "Cannot chdir to directory, %s: ERR=%s\n" +msgstr "" + +#: src/findlib/makepath.c:372 src/findlib/makepath.c:388 +#: src/findlib/makepath.c:422 +#, c-format +msgid "Cannot change permissions of %s: ERR=%s\n" +msgstr "" + +#: src/findlib/save-cwd.c:48 +#, c-format +msgid "Cannot open current directory: %s\n" +msgstr "" + +#: src/findlib/save-cwd.c:62 +#, c-format +msgid "Current directory: %s\n" +msgstr "" + +#: src/findlib/save-cwd.c:84 +#, c-format +msgid "Cannot get current directory: %s\n" +msgstr "" + +#: src/findlib/save-cwd.c:105 +#, c-format +msgid "Cannot return to %s from %s: %s\n" +msgstr "" + +#: src/findlib/save-cwd.c:109 +#, c-format +msgid "Cannot return to saved working directory from %s: %s\n" +msgstr "" + +#: src/findlib/save-cwd.c:115 +#, c-format +msgid "Cannot return to %s: %s\n" +msgstr "" + +#: src/findlib/save-cwd.c:119 +#, c-format +msgid "Cannot return to saved working directory: %s\n" +msgstr "" + +#: src/gnome2-console/authenticate.c:87 +#, c-format +msgid "%s: Director authorization problem.\n" +msgstr "" + +#: src/gnome2-console/authenticate.c:88 +msgid "Director authorization problem.\n" +msgstr "" + +#: src/gnome2-console/authenticate.c:90 +msgid "" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" + +#: src/gnome2-console/authenticate.c:100 +#, c-format +msgid "%s: Bad response to Hello command: ERR=%s\n" +msgstr "" + +#: src/gnome2-console/authenticate.c:102 +msgid "The Director is probably not running.\n" +msgstr "" + +#: src/gnome2-console/console.c:102 +#, c-format +msgid "" +"\n" +"Version: %s (%s) %s %s %s\n" +"\n" +"Usage: bgnome-console [-s] [-c config_file] [-d debug_level] [config_file]\n" +" -c set configuration file to file\n" +" -dnn set debug level to nn\n" +" -s no signals\n" +" -t test - read configuration and exit\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/gnome2-console/console.c:234 +#, c-format +msgid "Pthread cond init error = %s\n" +msgstr "" + +#: src/gnome2-console/console.c:379 +msgid " Not Connected" +msgstr "" + +#: src/gnome2-console/console.c:500 +#, c-format +msgid " Connecting to Director %s:%d" +msgstr "" + +#: src/gnome2-console/console.c:501 +#, c-format +msgid "" +"Connecting to Director %s:%d\n" +"\n" +msgstr "" + +#: src/gnome2-console/console.c:516 src/wx-console/console_thread.cpp:381 +#, c-format +msgid "Passphrase for Console \"%s\" TLS private key: " +msgstr "" + +#: src/gnome2-console/console.c:538 src/wx-console/console_thread.cpp:402 +#, c-format +msgid "Passphrase for Director \"%s\" TLS private key: " +msgstr "" + +#: src/gnome2-console/console.c:557 src/tray-monitor/tray-monitor.c:907 +#: src/wx-console/console_thread.cpp:420 +msgid "Director daemon" +msgstr "" + +#: src/gnome2-console/console.c:569 +msgid " Initializing ..." +msgstr "" + +#: src/gnome2-console/console.c:605 +msgid " Connected" +msgstr "" + +#: src/gnome2-console/console.c:613 +msgid " Processing command ..." +msgstr "" + +#: src/gnome2-console/console.c:648 +msgid " At prompt waiting for input ..." +msgstr "" + +#: src/gnome2-console/console.c:768 +msgid " Ready" +msgstr "" + +#: src/gnome2-console/console_conf.c:147 +#, c-format +msgid "Console: name=%s\n" +msgstr "" + +#: src/gnome2-console/console_conf.c:150 src/tray-monitor/tray_conf.c:195 +#, c-format +msgid "ConsoleFont: name=%s font face=%s\n" +msgstr "" + +#: src/gnome2-console/interface.c:202 +msgid "Bacula Console" +msgstr "" + +#: src/gnome2-console/interface.c:235 src/wx-console/wxbmainframe.cpp:248 +#: src/wx-console/wxbmainframe.cpp:619 +msgid "Connect" +msgstr "" + +#: src/gnome2-console/interface.c:238 +msgid "Connect to Director" +msgstr "" + +#: src/gnome2-console/interface.c:242 +msgid "Run" +msgstr "" + +#: src/gnome2-console/interface.c:245 src/gnome2-console/interface.c:682 +#: src/gnome2-console/interface.c:696 +msgid "Run a Job" +msgstr "" + +#: src/gnome2-console/interface.c:249 +msgid "Dir Status" +msgstr "" + +#: src/gnome2-console/interface.c:255 src/lib/util.c:293 +#: src/wx-console/wxbrestorepanel.cpp:404 +#: src/wx-console/wxbrestorepanel.cpp:1974 +msgid "Restore" +msgstr "" + +#: src/gnome2-console/interface.c:261 +msgid "Label" +msgstr "" + +#: src/gnome2-console/interface.c:267 +msgid "Msgs" +msgstr "" + +#: src/gnome2-console/interface.c:270 +msgid "Display Messages" +msgstr "" + +#: src/gnome2-console/interface.c:294 +msgid " Command: " +msgstr "" + +#: src/gnome2-console/interface.c:303 +msgid "Enter Commands Here" +msgstr "" + +#: src/gnome2-console/interface.c:314 +msgid " Status: " +msgstr "" + +#: src/gnome2-console/interface.c:323 src/gnome2-console/interface.c:1709 +msgid " " +msgstr "" + +#: src/gnome2-console/interface.c:424 +msgid "About Bacula Console" +msgstr "" + +#: src/gnome2-console/interface.c:439 +msgid "Bacula Console\n" +msgstr "" + +#: src/gnome2-console/interface.c:448 +msgid "Copyright (c) 2000 - 2004, Kern Sibbald and John Walker" +msgstr "" + +#: src/gnome2-console/interface.c:453 +msgid "Authors: Kern Sibbald and John Walker" +msgstr "" + +#: src/gnome2-console/interface.c:458 +msgid "It comes by night and sucks the essence from your computers" +msgstr "" + +#: src/gnome2-console/interface.c:523 src/gnome2-console/interface.c:540 +msgid "Select Director" +msgstr "" + +#: src/gnome2-console/interface.c:570 +msgid " " +msgstr "" + +#: src/gnome2-console/interface.c:715 src/gnome2-console/interface.c:1631 +msgid "Job:" +msgstr "" + +#: src/gnome2-console/interface.c:736 +msgid " Type:" +msgstr "" + +#: src/gnome2-console/interface.c:756 src/gnome2-console/interface.c:785 +#: src/gnome2-console/interface.c:1284 src/gnome2-console/interface.c:1680 +msgid " " +msgstr "" + +#: src/gnome2-console/interface.c:765 src/gnome2-console/interface.c:1660 +#: src/wx-console/wxbrestorepanel.cpp:1886 +msgid "Client:" +msgstr "" + +#: src/gnome2-console/interface.c:795 src/gnome2-console/interface.c:1689 +msgid "FileSet: " +msgstr "" + +#: src/gnome2-console/interface.c:820 src/wx-console/wxbrestorepanel.cpp:1893 +msgid "Priority:" +msgstr "" + +#: src/gnome2-console/interface.c:836 +msgid "Level:" +msgstr "" + +#: src/gnome2-console/interface.c:857 +msgid " " +msgstr "" + +#: src/gnome2-console/interface.c:867 src/gnome2-console/interface.c:1433 +#: src/gnome2-console/interface.c:1718 +msgid "Pool:" +msgstr "" + +#: src/gnome2-console/interface.c:888 src/gnome2-console/interface.c:919 +#: src/gnome2-console/interface.c:949 src/gnome2-console/interface.c:969 +#: src/gnome2-console/interface.c:989 src/gnome2-console/interface.c:1009 +#: src/gnome2-console/interface.c:1014 src/gnome2-console/interface.c:1483 +#: src/gnome2-console/interface.c:1739 src/gnome2-console/interface.c:1769 +#: src/gnome2-console/interface.c:1788 src/gnome2-console/interface.c:1793 +msgid " " +msgstr "" + +#: src/gnome2-console/interface.c:898 src/gnome2-console/interface.c:1407 +#: src/gnome2-console/interface.c:1748 src/wx-console/wxbrestorepanel.cpp:1888 +msgid "Storage:" +msgstr "" + +#: src/gnome2-console/interface.c:929 +msgid "Messages:" +msgstr "" + +#: src/gnome2-console/interface.c:959 +msgid "Where: " +msgstr "" + +#: src/gnome2-console/interface.c:979 src/wx-console/wxbrestorepanel.cpp:1890 +msgid "When:" +msgstr "" + +#: src/gnome2-console/interface.c:999 src/wx-console/wxbrestorepanel.cpp:1871 +msgid "Bootstrap:" +msgstr "" + +#: src/gnome2-console/interface.c:1194 +msgid "Restore File Selection" +msgstr "" + +#: src/gnome2-console/interface.c:1238 +msgid "Current dir:" +msgstr "" + +#: src/gnome2-console/interface.c:1265 +msgid "Files Selected: " +msgstr "" + +#: src/gnome2-console/interface.c:1385 src/gnome2-console/interface.c:1396 +msgid "Label a Volume" +msgstr "" + +#: src/gnome2-console/interface.c:1458 +msgid "Volume Name:" +msgstr "" + +#: src/gnome2-console/interface.c:1472 +msgid "Slot:" +msgstr "" + +#: src/gnome2-console/interface.c:1598 +msgid "Restore Files Dialog" +msgstr "" + +#: src/gnome2-console/interface.c:1613 +msgid "Restore Files" +msgstr "" + +#: src/gnome2-console/interface.c:1778 +msgid "Before:" +msgstr "" + +#: src/gnome2-console/interface.c:1824 +msgid "Select Files" +msgstr "" + +#: src/gnome2-console/interface.c:1907 +msgid "Progress" +msgstr "" + +#: src/gnome2-console/restore.c:149 +msgid "Mark" +msgstr "" + +#: src/gnome2-console/restore.c:149 +msgid "File" +msgstr "" + +#: src/gnome2-console/restore.c:149 +msgid "Mode" +msgstr "" + +#: src/gnome2-console/restore.c:149 src/wx-console/wxbrestorepanel.cpp:306 +msgid "User" +msgstr "" + +#: src/gnome2-console/restore.c:149 src/wx-console/wxbrestorepanel.cpp:310 +msgid "Group" +msgstr "" + +#: src/gnome2-console/restore.c:149 src/wx-console/wxbrestorepanel.cpp:294 +msgid "Size" +msgstr "" + +#: src/gnome2-console/restore.c:149 src/wx-console/wxbrestorepanel.cpp:298 +msgid "Date" +msgstr "" + +#: src/gnome2-console/support.c:60 src/gnome2-console/support.c:85 +#, c-format +msgid "Couldn't find pixmap file: %s" +msgstr "" + +#: src/lib/address_conf.c:63 +#, c-format +msgid "Only ipv4 and ipv6 are supported (%d)\n" +msgstr "" + +#: src/lib/address_conf.c:67 +#, c-format +msgid "Only ipv4 is supported (%d)\n" +msgstr "" + +#: src/lib/address_conf.c:176 +#, c-format +msgid "It was tried to assign a ipv6 address to a ipv4(%d)\n" +msgstr "" + +#: src/lib/address_conf.c:185 +#, c-format +msgid "It was tried to assign a ipv4 address to a ipv6(%d)\n" +msgstr "" + +#: src/lib/address_conf.c:264 +#, c-format +msgid "Can't add default address (%s)\n" +msgstr "" + +#: src/lib/address_conf.c:293 +msgid "the old style addresses cannot be mixed with new style" +msgstr "" + +#: src/lib/address_conf.c:314 +#, c-format +msgid "can't resolve service(%s)" +msgstr "" + +#: src/lib/address_conf.c:323 +#, c-format +msgid "can't resolve hostname(%s) %s" +msgstr "" + +#: src/lib/address_conf.c:413 src/lib/address_conf.c:444 +#, c-format +msgid "Expected a block begin { , got: %s" +msgstr "" + +#: src/lib/address_conf.c:418 +msgid "Empty addr block is not allowed" +msgstr "" + +#: src/lib/address_conf.c:422 +#, c-format +msgid "Expected a string, got: %s" +msgstr "" + +#: src/lib/address_conf.c:431 +#, c-format +msgid "Expected a string [ip|ipv4|ipv6], got: %s" +msgstr "" + +#: src/lib/address_conf.c:435 +#, c-format +msgid "Expected a string [ip|ipv4], got: %s" +msgstr "" + +#: src/lib/address_conf.c:440 src/lib/address_conf.c:470 +#, c-format +msgid "Expected a equal =, got: %s" +msgstr "" + +#: src/lib/address_conf.c:451 src/lib/address_conf.c:466 +#, c-format +msgid "Expected a identifier [addr|port], got: %s" +msgstr "" + +#: src/lib/address_conf.c:456 +msgid "Only one port per address block" +msgstr "" + +#: src/lib/address_conf.c:462 +msgid "Only one addr per address block" +msgstr "" + +#: src/lib/address_conf.c:478 +#, c-format +msgid "Expected a number or a string, got: %s" +msgstr "" + +#: src/lib/address_conf.c:484 src/lib/address_conf.c:517 +#, c-format +msgid "Expected an IP number or a hostname, got: %s" +msgstr "" + +#: src/lib/address_conf.c:490 +msgid "State machine missmatch" +msgstr "" + +#: src/lib/address_conf.c:496 src/lib/address_conf.c:508 +#, c-format +msgid "Expected a end of block }, got: %s" +msgstr "" + +#: src/lib/address_conf.c:502 +#, c-format +msgid "Can't add hostname(%s) and port(%s) to addrlist (%s)" +msgstr "" + +#: src/lib/address_conf.c:522 src/lib/address_conf.c:536 +#, c-format +msgid "can't add port (%s) to (%s)" +msgstr "" + +#: src/lib/address_conf.c:531 +#, c-format +msgid "Expected a port number or string, got: %s" +msgstr "" + +#: src/lib/attr.c:76 +#, c-format +msgid "Error scanning attributes: %s\n" +msgstr "" + +#: src/lib/berrno.c:62 +msgid "Child exited normally." +msgstr "" + +#: src/lib/berrno.c:69 +msgid "Unknown error during program execvp" +msgstr "" + +#: src/lib/berrno.c:72 +#, c-format +msgid "Child exited with code %d" +msgstr "" + +#: src/lib/berrno.c:80 +#, c-format +msgid "Child died from signal %d: %s" +msgstr "" + +#: src/lib/berrno.c:86 +msgid "Invalid errno. No error message possible." +msgstr "" + +#: src/lib/bget_msg.c:99 +msgid "Status OK\n" +msgstr "" + +#: src/lib/bget_msg.c:103 +#, c-format +msgid "bget_msg: unknown signal %d\n" +msgstr "" + +#: src/lib/bnet.c:118 +#, c-format +msgid "Attr spool write error. ERR=%s\n" +msgstr "" + +#: src/lib/bnet.c:244 src/lib/bnet.c:283 +msgid "TLS connection initialization failed.\n" +msgstr "" + +#: src/lib/bnet.c:252 +msgid "TLS Negotiation failed.\n" +msgstr "" + +#: src/lib/bnet.c:258 src/lib/bnet.c:298 +msgid "" +"TLS certificate verification failed. Peer certificate did not match a " +"required commonName\n" +msgstr "" + +#: src/lib/bnet.c:305 +#, c-format +msgid "" +"TLS host certificate verification failed. Host %s did not match presented " +"certificate\n" +msgstr "" + +#: src/lib/bnet.c:322 +msgid "TLS enabled but not configured.\n" +msgstr "" + +#: src/lib/bnet.c:328 +msgid "TLS enable but not configured.\n" +msgstr "" + +#: src/lib/bnet.c:386 +msgid "No problem." +msgstr "" + +#: src/lib/bnet.c:389 +msgid "Authoritative answer for host not found." +msgstr "" + +#: src/lib/bnet.c:392 +msgid "Non-authoritative for host not found, or ServerFail." +msgstr "" + +#: src/lib/bnet.c:395 +msgid "Non-recoverable errors, FORMERR, REFUSED, or NOTIMP." +msgstr "" + +#: src/lib/bnet.c:398 +msgid "Valid name, no data record of resquested type." +msgstr "" + +#: src/lib/bnet.c:401 +msgid "Unknown error." +msgstr "" + +#: src/lib/bnet.c:655 +#, c-format +msgid "Unknown sig %d" +msgstr "" + +#: src/lib/bnet_server.c:109 +#, c-format +msgid "Cannot open stream socket. ERR=%s. Current %s All %s\n" +msgstr "" + +#: src/lib/bnet_server.c:122 src/lib/bnet_server.c:275 +#, c-format +msgid "Cannot set SO_REUSEADDR on socket: %s\n" +msgstr "" + +#: src/lib/bnet_server.c:131 +#, c-format +msgid "Cannot bind port %d: ERR=%s: Retrying ...\n" +msgstr "" + +#: src/lib/bnet_server.c:136 +#, c-format +msgid "Cannot bind port %d: ERR=%s.\n" +msgstr "" + +#: src/lib/bnet_server.c:147 +#, c-format +msgid "Could not init client queue: ERR=%s\n" +msgstr "" + +#: src/lib/bnet_server.c:166 src/lib/bnet_server.c:338 +#, c-format +msgid "Error in select: %s\n" +msgstr "" + +#: src/lib/bnet_server.c:187 src/lib/bnet_server.c:357 +#, c-format +msgid "Connection from %s:%d refused by hosts.access\n" +msgstr "" + +#: src/lib/bnet_server.c:202 src/lib/bnet_server.c:370 +#, c-format +msgid "Cannot set SO_KEEPALIVE on socket: %s\n" +msgstr "" + +#: src/lib/bnet_server.c:213 +msgid "Could not create client BSOCK.\n" +msgstr "" + +#: src/lib/bnet_server.c:220 +#, c-format +msgid "Could not add job to client queue: ERR=%s\n" +msgstr "" + +#: src/lib/bnet_server.c:237 +#, c-format +msgid "Could not destroy client queue: ERR=%s\n" +msgstr "" + +#: src/lib/bnet_server.c:265 +#, c-format +msgid "Cannot open stream socket: %s\n" +msgstr "" + +#: src/lib/bnet_server.c:295 +#, c-format +msgid "Cannot bind port %d: ERR=%s: retrying ...\n" +msgstr "" + +#: src/lib/bnet_server.c:301 +msgid "Server socket" +msgstr "" + +#: src/lib/bnet_server.c:301 src/lib/bnet_server.c:398 +msgid "client" +msgstr "" + +#: src/lib/bnet_server.c:386 +#, c-format +msgid "Socket accept error for %s. ERR=%s\n" +msgstr "" + +#: src/lib/bpipe.c:362 src/lib/bpipe.c:452 +msgid "Program killed by Bacula watchdog (timeout)\n" +msgstr "" + +#: src/lib/bsys.c:208 src/lib/bsys.c:225 src/lib/bsys.c:249 src/lib/bsys.c:262 +#, c-format +msgid "Out of memory: ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:304 +msgid "Buffer overflow.\n" +msgstr "" + +#: src/lib/bsys.c:370 +msgid "Bad errno" +msgstr "" + +#: src/lib/bsys.c:387 +msgid "Possible mutex deadlock.\n" +msgstr "" + +#: src/lib/bsys.c:391 src/lib/bsys.c:424 +#, c-format +msgid "Mutex lock failure. ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:394 +msgid "Possible mutex deadlock resolved.\n" +msgstr "" + +#: src/lib/bsys.c:407 +#, c-format +msgid "Mutex unlock not locked. ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:412 src/lib/bsys.c:434 +#, c-format +msgid "Mutex unlock failure. ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:448 +#, c-format +msgid "Memset for %d bytes at %s:%d\n" +msgstr "" + +#: src/lib/bsys.c:478 +#, c-format +msgid "Cannot open pid file. %s ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:493 +#, c-format +msgid "" +"%s is already running. pid=%d\n" +"Check file %s\n" +msgstr "" + +#: src/lib/bsys.c:507 +#, c-format +msgid "Could not open pid file. %s ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:615 +#, c-format +msgid "Could not create state file. %s ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:634 +#, c-format +msgid "Write final hdr error: ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:670 +#, c-format +msgid "Could not find userid=%s: ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:676 +#, c-format +msgid "Could not find password entry. ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:689 +#, c-format +msgid "Could not find group=%s: ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:697 +#, c-format +msgid "Could not initgroups for group=%s, userid=%s: ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:700 +#, c-format +msgid "Could not initgroups for userid=%s: ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:707 +#, c-format +msgid "Could not set group=%s: ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:713 +#, c-format +msgid "Could not set specified userid: %s\n" +msgstr "" + +#: src/lib/btimers.c:254 +msgid "stop_btimer called with NULL btimer_id\n" +msgstr "" + +#: src/lib/cram-md5.c:109 src/lib/cram-md5.c:137 +msgid "1999 Authorization failed.\n" +msgstr "" + +#: src/lib/crypto.c:435 +msgid "Unable to open certificate file" +msgstr "" + +#: src/lib/crypto.c:442 +msgid "Unable to read certificate from file" +msgstr "" + +#: src/lib/crypto.c:448 +msgid "Unable to extract public key from certificate" +msgstr "" + +#: src/lib/crypto.c:455 +msgid "" +"Provided certificate does not include the required subjectKeyIdentifier " +"extension." +msgstr "" + +#: src/lib/crypto.c:462 +#, c-format +msgid "Unsupported key type provided: %d\n" +msgstr "" + +#: src/lib/crypto.c:499 src/lib/crypto.c:547 +msgid "Unable to open private key file" +msgstr "" + +#: src/lib/crypto.c:529 src/lib/crypto.c:563 +msgid "Unable to read private key from file" +msgstr "" + +#: src/lib/crypto.c:622 +#, c-format +msgid "Unsupported digest type: %d\n" +msgstr "" + +#: src/lib/crypto.c:636 +msgid "OpenSSL digest initialization failed" +msgstr "" + +#: src/lib/crypto.c:650 +msgid "OpenSSL digest update failed" +msgstr "" + +#: src/lib/crypto.c:668 +msgid "OpenSSL digest finalize failed" +msgstr "" + +#: src/lib/crypto.c:766 +msgid "OpenSSL digest_new failed" +msgstr "" + +#: src/lib/crypto.c:772 +msgid "OpenSSL sign get digest failed" +msgstr "" + +#: src/lib/crypto.c:811 src/lib/crypto.c:815 +msgid "OpenSSL digest Verify final failed" +msgstr "" + +#: src/lib/crypto.c:820 +msgid "No signers found for crypto verify.\n" +msgstr "" + +#: src/lib/crypto.c:881 +msgid "Signature creation failed" +msgstr "" + +#: src/lib/crypto.c:959 +msgid "Signature decoding failed" +msgstr "" + +#: src/lib/crypto.c:1036 +msgid "Unsupported cipher type specified\n" +msgstr "" + +#: src/lib/crypto.c:1185 +msgid "CryptoData decoding failed" +msgstr "" + +#: src/lib/crypto.c:1229 +msgid "Failure decrypting the session key" +msgstr "" + +#: src/lib/crypto.c:1280 +#, c-format +msgid "Unsupported contentEncryptionAlgorithm: %d\n" +msgstr "" + +#: src/lib/crypto.c:1290 src/lib/crypto.c:1296 +msgid "OpenSSL cipher context initialization failed" +msgstr "" + +#: src/lib/crypto.c:1303 +msgid "Encryption session provided an invalid symmetric key" +msgstr "" + +#: src/lib/crypto.c:1309 +msgid "Encryption session provided an invalid IV" +msgstr "" + +#: src/lib/crypto.c:1315 +msgid "OpenSSL cipher context key/IV initialization failed" +msgstr "" + +#: src/lib/crypto.c:1385 +#, c-format +msgid "Unable to init OpenSSL threading: ERR=%s\n" +msgstr "" + +#: src/lib/crypto.c:1398 +msgid "Failed to seed OpenSSL PRNG\n" +msgstr "" + +#: src/lib/crypto.c:1424 +msgid "Failed to save OpenSSL PRNG\n" +msgstr "" + +#: src/lib/crypto.c:1485 +#, c-format +msgid "Unsupported digest type=%d specified\n" +msgstr "" + +#: src/lib/crypto.c:1505 +#, c-format +msgid "SHA1Update() returned an error: %d\n" +msgstr "" + +#: src/lib/crypto.c:1648 +msgid "No error" +msgstr "" + +#: src/lib/crypto.c:1650 +msgid "Signer not found" +msgstr "" + +#: src/lib/crypto.c:1652 +msgid "Recipient not found" +msgstr "" + +#: src/lib/crypto.c:1654 +msgid "Unsupported digest algorithm" +msgstr "" + +#: src/lib/crypto.c:1656 +msgid "Unsupported encryption algorithm" +msgstr "" + +#: src/lib/crypto.c:1658 +msgid "Signature is invalid" +msgstr "" + +#: src/lib/crypto.c:1660 +msgid "Decryption error" +msgstr "" + +#: src/lib/crypto.c:1663 +msgid "Internal error" +msgstr "" + +#: src/lib/crypto.c:1665 +msgid "Unknown error" +msgstr "" + +#: src/lib/daemon.c:66 +#, c-format +msgid "Cannot fork to become daemon: %s\n" +msgstr "" + +#: src/lib/edit.c:446 +#, c-format +msgid "Illegal character \"%c\" in name.\n" +msgstr "" + +#: src/lib/edit.c:453 +msgid "Name too long.\n" +msgstr "" + +#: src/lib/jcr.c:297 +msgid "NULL jcr.\n" +msgstr "" + +#: src/lib/jcr.c:430 +#, c-format +msgid "JCR use_count=%d JobId=%d\n" +msgstr "" + +#: src/lib/jcr.c:762 +#, c-format +msgid "" +"Watchdog sending kill after %d secs to thread stalled reading Storage " +"daemon.\n" +msgstr "" + +#: src/lib/jcr.c:774 +#, c-format +msgid "" +"Watchdog sending kill after %d secs to thread stalled reading File daemon.\n" +msgstr "" + +#: src/lib/jcr.c:786 +#, c-format +msgid "" +"Watchdog sending kill after %d secs to thread stalled reading Director.\n" +msgstr "" + +#: src/lib/lex.c:93 src/wx-console/console_thread.cpp:208 +#, c-format +msgid "Problem probably begins at line %d.\n" +msgstr "" + +#: src/lib/lex.c:98 src/wx-console/console_thread.cpp:213 +#, c-format +msgid "" +"Config error: %s\n" +" : line %d, col %d of file %s\n" +"%s\n" +"%s" +msgstr "" + +#: src/lib/lex.c:102 +#, c-format +msgid "Config error: %s\n" +msgstr "" + +#: src/lib/lex.c:131 +msgid "Close of NULL file\n" +msgstr "" + +#: src/lib/lex.c:226 +msgid "get_char: called after EOF\n" +msgstr "" + +#: src/lib/lex.c:268 +#, c-format +msgid "Config token too long, file: %s, line %d, begins at line %d\n" +msgstr "" + +#: src/lib/lex.c:292 +msgid "none" +msgstr "" + +#: src/lib/lex.c:293 +msgid "comment" +msgstr "" + +#: src/lib/lex.c:294 +msgid "number" +msgstr "" + +#: src/lib/lex.c:295 +msgid "ip_addr" +msgstr "" + +#: src/lib/lex.c:296 +msgid "identifier" +msgstr "" + +#: src/lib/lex.c:297 +msgid "string" +msgstr "" + +#: src/lib/lex.c:298 +msgid "quoted_string" +msgstr "" + +#: src/lib/lex.c:299 +msgid "UTF-8 Byte Order Mark" +msgstr "" + +#: src/lib/lex.c:300 +msgid "UTF-16le Byte Order Mark" +msgstr "" + +#: src/lib/lex.c:338 src/lib/lex.c:344 +#, c-format +msgid "expected a positive integer number, got: %s" +msgstr "" + +#: src/lib/lex.c:454 +msgid "" +"This config file appears to be in an unsupported Unicode format (UTF-16be). " +"Please resave as UTF-8\n" +msgstr "" + +#: src/lib/lex.c:583 +#, c-format +msgid "Cannot open included config file %s: %s\n" +msgstr "" + +#: src/lib/lex.c:642 +#, c-format +msgid "expected an integer or a range, got %s: %s" +msgstr "" + +#: src/lib/lex.c:656 src/lib/lex.c:664 src/lib/lex.c:675 src/lib/lex.c:683 +#, c-format +msgid "expected an integer number, got %s: %s" +msgstr "" + +#: src/lib/lex.c:693 +#, c-format +msgid "expected a name, got %s: %s" +msgstr "" + +#: src/lib/lex.c:697 +#, c-format +msgid "name %s length %d too long, max is %d\n" +msgstr "" + +#: src/lib/lex.c:705 +#, c-format +msgid "expected a string, got %s: %s" +msgstr "" + +#: src/lib/mem_pool.c:108 +#, c-format +msgid "MemPool index %d larger than max %d\n" +msgstr "" + +#: src/lib/mem_pool.c:126 src/lib/mem_pool.c:146 src/lib/mem_pool.c:181 +#: src/lib/mem_pool.c:253 src/lib/mem_pool.c:273 src/lib/mem_pool.c:311 +#: src/lib/mem_pool.c:583 +#, c-format +msgid "Out of memory requesting %d bytes\n" +msgstr "" + +#: src/lib/message.c:268 src/lib/message.c:278 +#, c-format +msgid "Could not open console message file %s: ERR=%s\n" +msgstr "" + +#: src/lib/message.c:283 +#, c-format +msgid "Could not get con mutex: ERR=%s\n" +msgstr "" + +#: src/lib/message.c:387 +#, c-format +msgid "open mail pipe %s failed: ERR=%s\n" +msgstr "" + +#: src/lib/message.c:393 +msgid "Bacula Message" +msgstr "" + +#: src/lib/message.c:453 +msgid "open mail pipe failed.\n" +msgstr "" + +#: src/lib/message.c:465 +#, c-format +msgid "close error: ERR=%s\n" +msgstr "" + +#: src/lib/message.c:476 +#, c-format +msgid "Mail prog: %s" +msgstr "" + +#: src/lib/message.c:485 +#, c-format +msgid "" +"Mail program terminated in error.\n" +"CMD=%s\n" +"ERR=%s\n" +msgstr "" + +#: src/lib/message.c:584 src/lib/message.c:735 +#, c-format +msgid "fopen %s failed: ERR=%s\n" +msgstr "" + +#: src/lib/message.c:717 +#, c-format +msgid "" +"Operator mail program terminated in error.\n" +"CMD=%s\n" +"ERR=%s\n" +msgstr "" + +#: src/lib/message.c:1015 +#, c-format +msgid "%s: ABORTING due to ERROR in %s:%d\n" +msgstr "" + +#: src/lib/message.c:1019 +#, c-format +msgid "%s: ERROR TERMINATION at %s:%d\n" +msgstr "" + +#: src/lib/message.c:1024 +#, c-format +msgid "%s: Fatal Error because: " +msgstr "" + +#: src/lib/message.c:1026 +#, c-format +msgid "%s: Fatal Error at %s:%d because:\n" +msgstr "" + +#: src/lib/message.c:1030 +#, c-format +msgid "%s: ERROR: " +msgstr "" + +#: src/lib/message.c:1032 +#, c-format +msgid "%s: ERROR in %s:%d " +msgstr "" + +#: src/lib/message.c:1035 +#, c-format +msgid "%s: Warning: " +msgstr "" + +#: src/lib/message.c:1038 +#, c-format +msgid "%s: Security violation: " +msgstr "" + +#: src/lib/message.c:1114 +#, c-format +msgid "%s ABORTING due to ERROR\n" +msgstr "" + +#: src/lib/message.c:1117 +#, c-format +msgid "%s ERROR TERMINATION\n" +msgstr "" + +#: src/lib/message.c:1120 +#, c-format +msgid "%s: %s Fatal error: " +msgstr "" + +#: src/lib/message.c:1126 +#, c-format +msgid "%s: %s Error: " +msgstr "" + +#: src/lib/message.c:1132 +#, c-format +msgid "%s: %s Warning: " +msgstr "" + +#: src/lib/message.c:1135 +#, c-format +msgid "%s: %s Security violation: " +msgstr "" + +#: src/lib/openssl.c:118 src/lib/openssl.c:179 src/stored/dev.c:218 +#: src/stored/dev.c:236 src/stored/dev.c:243 src/stored/stored_conf.c:611 +#, c-format +msgid "Unable to init mutex: ERR=%s\n" +msgstr "" + +#: src/lib/openssl.c:140 src/lib/openssl.c:213 +#, c-format +msgid "Unable to destroy mutex: ERR=%s\n" +msgstr "" + +#: src/lib/parse_conf.c:180 +msgid "***UNKNOWN***" +msgstr "" + +#: src/lib/parse_conf.c:200 +#, c-format +msgid "Unable to initialize resource lock. ERR=%s\n" +msgstr "" + +#: src/lib/parse_conf.c:287 src/lib/parse_conf.c:306 +#, c-format +msgid "expected an =, got: %s" +msgstr "" + +#: src/lib/parse_conf.c:314 +#, c-format +msgid "Unknown item code: %d\n" +msgstr "" + +#: src/lib/parse_conf.c:354 +#, c-format +msgid "message type: %s not found" +msgstr "" + +#: src/lib/parse_conf.c:391 +#, c-format +msgid "Attempt to redefine name \"%s\" to \"%s\"." +msgstr "" + +#: src/lib/parse_conf.c:486 +#, c-format +msgid "Attempt to redefine resource \"%s\" referenced on line %d : %s\n" +msgstr "" + +#: src/lib/parse_conf.c:521 +#, c-format +msgid "Too many %s directives. Max. is %d. line %d: %s\n" +msgstr "" + +#: src/lib/parse_conf.c:531 +#, c-format +msgid "Could not find config Resource \"%s\" referenced on line %d : %s\n" +msgstr "" + +#: src/lib/parse_conf.c:593 +#, c-format +msgid "Missing config Resource \"%s\" referenced on line %d : %s\n" +msgstr "" + +#: src/lib/parse_conf.c:657 +#, c-format +msgid "expected a size number, got: %s" +msgstr "" + +#: src/lib/parse_conf.c:662 +#, c-format +msgid "expected a size, got: %s" +msgstr "" + +#: src/lib/parse_conf.c:699 src/lib/parse_conf.c:704 +#, c-format +msgid "expected a time period, got: %s" +msgstr "" + +#: src/lib/parse_conf.c:763 +#, c-format +msgid "Expected a Tape Label keyword, got: %s" +msgstr "" + +#: src/lib/parse_conf.c:819 +#, c-format +msgid "Cannot open config file \"%s\": %s\n" +msgstr "" + +#: src/lib/parse_conf.c:835 +msgid "" +"Currently we cannot handle UTF-16 source files. Please convert the conf file " +"to UTF-8\n" +msgstr "" + +#: src/lib/parse_conf.c:839 +#, c-format +msgid "Expected a Resource name identifier, got: %s" +msgstr "" + +#: src/lib/parse_conf.c:852 +#, c-format +msgid "expected resource name, got: %s" +msgstr "" + +#: src/lib/parse_conf.c:863 +#, c-format +msgid "not in resource definition: %s" +msgstr "" + +#: src/lib/parse_conf.c:888 +#, c-format +msgid "" +"Keyword \"%s\" not permitted in this resource.\n" +"Perhaps you left the trailing brace off of the previous resource." +msgstr "" + +#: src/lib/parse_conf.c:899 +msgid "Name not specified for resource" +msgstr "" + +#: src/lib/parse_conf.c:908 +#, c-format +msgid "unexpected token %d %s in resource definition" +msgstr "" + +#: src/lib/parse_conf.c:914 +#, c-format +msgid "Unknown parser state %d\n" +msgstr "" + +#: src/lib/parse_conf.c:919 +msgid "End of conf file reached with unclosed resource." +msgstr "" + +#: src/lib/pythonlib.c:127 +msgid "Could not initialize Python\n" +msgstr "" + +#: src/lib/pythonlib.c:132 +#, c-format +msgid "Could not Run Python string %s\n" +msgstr "" + +#: src/lib/pythonlib.c:144 +msgid "Could not initialize Python Job type.\n" +msgstr "" + +#: src/lib/pythonlib.c:149 +#, c-format +msgid "Could not import Python script %s/%s. Python disabled.\n" +msgstr "" + +#: src/lib/pythonlib.c:252 +msgid "Could not create Python Job Object.\n" +msgstr "" + +#: src/lib/pythonlib.c:265 src/lib/pythonlib.c:289 +#, c-format +msgid "Python function \"%s\" not found.\n" +msgstr "" + +#: src/lib/pythonlib.c:304 +#, c-format +msgid "Unknown Python daemon event %s\n" +msgstr "" + +#: src/lib/pythonlib.c:329 +#, c-format +msgid "Unable to initialize the Python lock. ERR=%s\n" +msgstr "" + +#: src/lib/res.c:66 +#, c-format +msgid "rwl_writelock failure at %s:%d: ERR=%s\n" +msgstr "" + +#: src/lib/res.c:76 +#, c-format +msgid "rwl_writeunlock failure at %s:%d:. ERR=%s\n" +msgstr "" + +#: src/lib/runscript.c:212 +#, c-format +msgid "%s: run command \"%s\"\n" +msgstr "" + +#: src/lib/runscript.c:218 +#, c-format +msgid "Runscript: %s could not execute. ERR=%s\n" +msgstr "" + +#: src/lib/runscript.c:227 +#, c-format +msgid "%s: %s\n" +msgstr "" + +#: src/lib/runscript.c:232 +#, c-format +msgid "Runscript: %s returned non-zero status=%d. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:297 +msgid "rwl_writeunlock called too many times.\n" +msgstr "" + +#: src/lib/rwlock.c:301 +msgid "rwl_writeunlock by non-owner.\n" +msgstr "" + +#: src/lib/rwlock.c:367 +#, c-format +msgid "Write lock failed. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:375 +#, c-format +msgid "Write unlock failed. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:386 +#, c-format +msgid "Read lock failed. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:394 +#, c-format +msgid "Read unlock failed. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:403 +#, c-format +msgid "Thread %d found unchanged elements %d times\n" +msgstr "" + +#: src/lib/rwlock.c:436 +#, c-format +msgid "Init rwlock failed. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:452 +#, c-format +msgid "Create thread failed. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:464 +#, c-format +msgid "Join thread failed. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:467 +#, c-format +msgid "%02d: interval %d, writes %d, reads %d\n" +msgstr "" + +#: src/lib/rwlock.c:477 +#, c-format +msgid "data %02d: value %d, %d writes\n" +msgstr "" + +#: src/lib/rwlock.c:482 +#, c-format +msgid "Total: %d thread writes, %d data writes\n" +msgstr "" + +#: src/lib/rwlock.c:554 +msgid "Try write lock" +msgstr "" + +#: src/lib/rwlock.c:560 +msgid "Try read lock" +msgstr "" + +#: src/lib/rwlock.c:615 +msgid "Create thread" +msgstr "" + +#: src/lib/rwlock.c:625 +msgid "Join thread" +msgstr "" + +#: src/lib/rwlock.c:627 +#, c-format +msgid "%02d: interval %d, updates %d, r_collisions %d, w_collisions %d\n" +msgstr "" + +#: src/lib/rwlock.c:639 +#, c-format +msgid "data %02d: value %d, %d updates\n" +msgstr "" + +#: src/lib/signal.c:68 +msgid "Invalid signal number" +msgstr "" + +#: src/lib/signal.c:94 +#, c-format +msgid "Bacula interrupted by signal %d: %s\n" +msgstr "" + +#: src/lib/signal.c:107 +#, c-format +msgid "Kaboom! %s, %s got signal %d - %s. Attempting traceback.\n" +msgstr "" + +#: src/lib/signal.c:109 +#, c-format +msgid "Kaboom! exepath=%s\n" +msgstr "" + +#: src/lib/signal.c:143 +#, c-format +msgid "Fork error: ERR=%s\n" +msgstr "" + +#: src/lib/signal.c:150 +#, c-format +msgid "Calling: %s %s %s\n" +msgstr "" + +#: src/lib/signal.c:153 +#, c-format +msgid "execv: %s failed: ERR=%s\n" +msgstr "" + +#: src/lib/signal.c:168 +#, c-format +msgid "Traceback complete, attempting cleanup ...\n" +msgstr "" + +#: src/lib/signal.c:176 +#, c-format +msgid "It looks like the traceback worked ...\n" +msgstr "" + +#: src/lib/signal.c:205 +#, c-format +msgid "BA_NSIG too small (%d) should be (%d)\n" +msgstr "" + +#: src/lib/signal.c:211 +msgid "UNKNOWN SIGNAL" +msgstr "" + +#: src/lib/signal.c:212 +msgid "Hangup" +msgstr "" + +#: src/lib/signal.c:213 +msgid "Interrupt" +msgstr "" + +#: src/lib/signal.c:214 +msgid "Quit" +msgstr "" + +#: src/lib/signal.c:215 +msgid "Illegal instruction" +msgstr "" + +#: src/lib/signal.c:216 +msgid "Trace/Breakpoint trap" +msgstr "" + +#: src/lib/signal.c:217 +msgid "Abort" +msgstr "" + +#: src/lib/signal.c:219 +msgid "EMT instruction (Emulation Trap)" +msgstr "" + +#: src/lib/signal.c:222 +msgid "IOT trap" +msgstr "" + +#: src/lib/signal.c:224 +msgid "BUS error" +msgstr "" + +#: src/lib/signal.c:225 +msgid "Floating-point exception" +msgstr "" + +#: src/lib/signal.c:226 +msgid "Kill, unblockable" +msgstr "" + +#: src/lib/signal.c:227 +msgid "User-defined signal 1" +msgstr "" + +#: src/lib/signal.c:228 +msgid "Segmentation violation" +msgstr "" + +#: src/lib/signal.c:229 +msgid "User-defined signal 2" +msgstr "" + +#: src/lib/signal.c:230 +msgid "Broken pipe" +msgstr "" + +#: src/lib/signal.c:231 +msgid "Alarm clock" +msgstr "" + +#: src/lib/signal.c:232 +msgid "Termination" +msgstr "" + +#: src/lib/signal.c:234 +msgid "Stack fault" +msgstr "" + +#: src/lib/signal.c:236 +msgid "Child status has changed" +msgstr "" + +#: src/lib/signal.c:237 +msgid "Continue" +msgstr "" + +#: src/lib/signal.c:238 +msgid "Stop, unblockable" +msgstr "" + +#: src/lib/signal.c:239 +msgid "Keyboard stop" +msgstr "" + +#: src/lib/signal.c:240 +msgid "Background read from tty" +msgstr "" + +#: src/lib/signal.c:241 +msgid "Background write to tty" +msgstr "" + +#: src/lib/signal.c:242 +msgid "Urgent condition on socket" +msgstr "" + +#: src/lib/signal.c:243 +msgid "CPU limit exceeded" +msgstr "" + +#: src/lib/signal.c:244 +msgid "File size limit exceeded" +msgstr "" + +#: src/lib/signal.c:245 +msgid "Virtual alarm clock" +msgstr "" + +#: src/lib/signal.c:246 +msgid "Profiling alarm clock" +msgstr "" + +#: src/lib/signal.c:247 +msgid "Window size change" +msgstr "" + +#: src/lib/signal.c:248 +msgid "I/O now possible" +msgstr "" + +#: src/lib/signal.c:250 +msgid "Power failure restart" +msgstr "" + +#: src/lib/signal.c:253 +msgid "No runnable lwp" +msgstr "" + +#: src/lib/signal.c:256 +msgid "SIGLWP special signal used by thread library" +msgstr "" + +#: src/lib/signal.c:259 +msgid "Checkpoint Freeze" +msgstr "" + +#: src/lib/signal.c:262 +msgid "Checkpoint Thaw" +msgstr "" + +#: src/lib/signal.c:265 +msgid "Thread Cancellation" +msgstr "" + +#: src/lib/signal.c:268 +msgid "Resource Lost (e.g. record-lock lost)" +msgstr "" + +#: src/lib/smartall.c:146 src/lib/smartall.c:255 src/lib/smartall.c:270 +msgid "Out of memory\n" +msgstr "" + +#: src/lib/smartall.c:151 +msgid "Too much memory used." +msgstr "" + +#: src/lib/smartall.c:180 +#, c-format +msgid "Attempt to free NULL called from %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:194 +#, c-format +msgid "double free from %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:202 +#, c-format +msgid "qp->qnext->qprev != qp called from %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:206 +#, c-format +msgid "qp->qprev->qnext != qp called from %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:215 +#, c-format +msgid "Buffer overrun called from %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:292 +#, c-format +msgid "sm_realloc size: %d\n" +msgstr "" + +#: src/lib/smartall.c:330 +#, c-format +msgid "sm_realloc %d at %x from %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:392 +#, c-format +msgid "" +"\n" +"Orphaned buffers exist. Dump terminated following\n" +" discovery of bad links in chain of orphaned buffers.\n" +" Buffer address with bad links: %p\n" +msgstr "" + +#: src/lib/smartall.c:404 +#, c-format +msgid "%s buffer: %s %6u bytes buf=%p allocated at %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:440 +#, c-format +msgid "Damaged buffer found. Called from %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:470 +#, c-format +msgid "" +"\n" +"Damaged buffers found at %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:473 +#, c-format +msgid " discovery of bad prev link.\n" +msgstr "" + +#: src/lib/smartall.c:476 +#, c-format +msgid " discovery of bad next link.\n" +msgstr "" + +#: src/lib/smartall.c:479 +#, c-format +msgid " discovery of data overrun.\n" +msgstr "" + +#: src/lib/smartall.c:482 +#, c-format +msgid " Buffer address: %p\n" +msgstr "" + +#: src/lib/smartall.c:489 +#, c-format +msgid "Damaged buffer: %6u bytes allocated at line %d of %s %s\n" +msgstr "" + +#: src/lib/tls.c:93 +#, c-format +msgid "" +"Error with certificate at depth: %d, issuer = %s, subject = %s, ERR=%d:%s\n" +msgstr "" + +#: src/lib/tls.c:130 +msgid "Error initializing SSL context" +msgstr "" + +#: src/lib/tls.c:151 +msgid "Error loading certificate verification stores" +msgstr "" + +#: src/lib/tls.c:156 +msgid "" +"Either a certificate file or a directory must be specified as a verification " +"store\n" +msgstr "" + +#: src/lib/tls.c:167 +msgid "Error loading certificate file" +msgstr "" + +#: src/lib/tls.c:175 +msgid "Error loading private key" +msgstr "" + +#: src/lib/tls.c:183 +msgid "Unable to open DH parameters file" +msgstr "" + +#: src/lib/tls.c:189 +msgid "Unable to load DH parameters from specified file" +msgstr "" + +#: src/lib/tls.c:193 +msgid "Failed to set TLS Diffie-Hellman parameters" +msgstr "" + +#: src/lib/tls.c:203 +msgid "Error setting cipher list, no valid ciphers available\n" +msgstr "" + +#: src/lib/tls.c:262 +msgid "Peer failed to present a TLS certificate\n" +msgstr "" + +#: src/lib/tls.c:305 +#, c-format +msgid "Peer %s failed to present a TLS certificate\n" +msgstr "" + +#: src/lib/tls.c:407 +msgid "Error creating file descriptor-based BIO" +msgstr "" + +#: src/lib/tls.c:418 +msgid "Error creating new SSL object" +msgstr "" + +#: src/lib/tls.c:481 src/lib/tls.c:504 +msgid "Connect failure" +msgstr "" + +#: src/lib/tls.c:576 src/lib/tls.c:580 +msgid "TLS shutdown failure." +msgstr "" + +#: src/lib/tls.c:639 +msgid "TLS read/write failure." +msgstr "" + +#: src/lib/util.c:182 +msgid "Running" +msgstr "" + +#: src/lib/util.c:185 +msgid "Blocked" +msgstr "" + +#: src/lib/util.c:195 +msgid "Non-fatal error" +msgstr "" + +#: src/lib/util.c:198 src/lib/util.c:265 +msgid "Canceled" +msgstr "" + +#: src/lib/util.c:201 +msgid "Verify differences" +msgstr "" + +#: src/lib/util.c:204 +msgid "Waiting on FD" +msgstr "" + +#: src/lib/util.c:207 +msgid "Wait on SD" +msgstr "" + +#: src/lib/util.c:210 +msgid "Wait for new Volume" +msgstr "" + +#: src/lib/util.c:213 +msgid "Waiting for mount" +msgstr "" + +#: src/lib/util.c:216 +msgid "Waiting for Storage resource" +msgstr "" + +#: src/lib/util.c:219 +msgid "Waiting for Job resource" +msgstr "" + +#: src/lib/util.c:222 +msgid "Waiting for Client resource" +msgstr "" + +#: src/lib/util.c:225 +msgid "Waiting on Max Jobs" +msgstr "" + +#: src/lib/util.c:228 +msgid "Waiting for Start Time" +msgstr "" + +#: src/lib/util.c:231 +msgid "Waiting on Priority" +msgstr "" + +#: src/lib/util.c:238 +#, c-format +msgid "Unknown Job termination status=%d" +msgstr "" + +#: src/lib/util.c:262 +msgid "Fatal Error" +msgstr "" + +#: src/lib/util.c:268 +msgid "Differences" +msgstr "" + +#: src/lib/util.c:271 +msgid "Unknown term code" +msgstr "" + +#: src/lib/util.c:299 +msgid "Migrate" +msgstr "" + +#: src/lib/util.c:302 +msgid "Copy" +msgstr "" + +#: src/lib/util.c:305 src/wx-console/wxbmainframe.cpp:276 +msgid "Console" +msgstr "" + +#: src/lib/util.c:308 +msgid "System or Console" +msgstr "" + +#: src/lib/util.c:311 +msgid "Scan" +msgstr "" + +#: src/lib/util.c:314 +msgid "Unknown Type" +msgstr "" + +#: src/lib/util.c:346 +msgid "Verify Init Catalog" +msgstr "" + +#: src/lib/util.c:355 +msgid "Verify Data" +msgstr "" + +#: src/lib/util.c:692 +msgid "Working directory not defined. Cannot continue.\n" +msgstr "" + +#: src/lib/util.c:695 +#, c-format +msgid "Working Directory: \"%s\" not found. Cannot continue.\n" +msgstr "" + +#: src/lib/util.c:699 +#, c-format +msgid "Working Directory: \"%s\" is not a directory. Cannot continue.\n" +msgstr "" + +#: src/lib/var.c:2669 +msgid "everything ok" +msgstr "" + +#: src/lib/var.c:2670 +msgid "incomplete named character" +msgstr "" + +#: src/lib/var.c:2671 +msgid "incomplete hexadecimal value" +msgstr "" + +#: src/lib/var.c:2672 +msgid "invalid hexadecimal value" +msgstr "" + +#: src/lib/var.c:2673 +msgid "octal value too large" +msgstr "" + +#: src/lib/var.c:2674 +msgid "invalid octal value" +msgstr "" + +#: src/lib/var.c:2675 +msgid "incomplete octal value" +msgstr "" + +#: src/lib/var.c:2676 +msgid "incomplete grouped hexadecimal value" +msgstr "" + +#: src/lib/var.c:2677 +msgid "incorrect character class specification" +msgstr "" + +#: src/lib/var.c:2678 +msgid "invalid expansion configuration" +msgstr "" + +#: src/lib/var.c:2679 +msgid "out of memory" +msgstr "" + +#: src/lib/var.c:2680 +msgid "incomplete variable specification" +msgstr "" + +#: src/lib/var.c:2681 +msgid "undefined variable" +msgstr "" + +#: src/lib/var.c:2682 +msgid "input is neither text nor variable" +msgstr "" + +#: src/lib/var.c:2683 +msgid "unknown command character in variable" +msgstr "" + +#: src/lib/var.c:2684 +msgid "malformatted search and replace operation" +msgstr "" + +#: src/lib/var.c:2685 +msgid "unknown flag in search and replace operation" +msgstr "" + +#: src/lib/var.c:2686 +msgid "invalid regex in search and replace operation" +msgstr "" + +#: src/lib/var.c:2687 +msgid "missing parameter in command" +msgstr "" + +#: src/lib/var.c:2688 +msgid "empty search string in search and replace operation" +msgstr "" + +#: src/lib/var.c:2689 +msgid "start offset missing in cut operation" +msgstr "" + +#: src/lib/var.c:2690 +msgid "offsets in cut operation delimited by unknown character" +msgstr "" + +#: src/lib/var.c:2691 +msgid "range out of bounds in cut operation" +msgstr "" + +#: src/lib/var.c:2692 +msgid "offset out of bounds in cut operation" +msgstr "" + +#: src/lib/var.c:2693 +msgid "logic error in cut operation" +msgstr "" + +#: src/lib/var.c:2694 +msgid "malformatted transpose operation" +msgstr "" + +#: src/lib/var.c:2695 +msgid "source and target class mismatch in transpose operation" +msgstr "" + +#: src/lib/var.c:2696 +msgid "empty character class in transpose operation" +msgstr "" + +#: src/lib/var.c:2697 +msgid "incorrect character class in transpose operation" +msgstr "" + +#: src/lib/var.c:2698 +msgid "malformatted padding operation" +msgstr "" + +#: src/lib/var.c:2699 +msgid "width parameter missing in padding operation" +msgstr "" + +#: src/lib/var.c:2700 +msgid "fill string missing in padding operation" +msgstr "" + +#: src/lib/var.c:2701 +msgid "unknown quoted pair in search and replace operation" +msgstr "" + +#: src/lib/var.c:2702 +msgid "sub-matching reference out of range" +msgstr "" + +#: src/lib/var.c:2703 +msgid "invalid argument" +msgstr "" + +#: src/lib/var.c:2704 +msgid "incomplete quoted pair" +msgstr "" + +#: src/lib/var.c:2705 +msgid "lookup function does not support variable arrays" +msgstr "" + +#: src/lib/var.c:2706 +msgid "index of array variable contains an invalid character" +msgstr "" + +#: src/lib/var.c:2707 +msgid "index of array variable is incomplete" +msgstr "" + +#: src/lib/var.c:2708 +msgid "bracket expression in array variable's index not closed" +msgstr "" + +#: src/lib/var.c:2709 +msgid "division by zero error in index specification" +msgstr "" + +#: src/lib/var.c:2710 +msgid "unterminated loop construct" +msgstr "" + +#: src/lib/var.c:2711 +msgid "invalid character in loop limits" +msgstr "" + +#: src/lib/var.c:2712 +msgid "malformed operation argument list" +msgstr "" + +#: src/lib/var.c:2713 +msgid "undefined operation" +msgstr "" + +#: src/lib/var.c:2714 +msgid "formatting failure" +msgstr "" + +#: src/lib/var.c:2723 +msgid "unknown error" +msgstr "" + +#: src/lib/watchdog.c:83 +#, c-format +msgid "Unable to initialize watchdog lock. ERR=%s\n" +msgstr "" + +#: src/lib/watchdog.c:180 +msgid "BUG! register_watchdog called before start_watchdog\n" +msgstr "" + +#: src/lib/watchdog.c:183 +#, c-format +msgid "BUG! Watchdog %p has NULL callback\n" +msgstr "" + +#: src/lib/watchdog.c:186 +#, c-format +msgid "BUG! Watchdog %p has zero interval\n" +msgstr "" + +#: src/lib/watchdog.c:206 +msgid "BUG! unregister_watchdog_unlocked called before start_watchdog\n" +msgstr "" + +#: src/lib/watchdog.c:325 +#, c-format +msgid "rwl_writelock failure. ERR=%s\n" +msgstr "" + +#: src/lib/watchdog.c:340 +#, c-format +msgid "rwl_writeunlock failure. ERR=%s\n" +msgstr "" + +#: src/stored/acquire.c:69 +#, c-format +msgid "Acquire read: num_writers=%d not zero. Job %d canceled.\n" +msgstr "" + +#: src/stored/acquire.c:78 +#, c-format +msgid "No volumes specified for reading. Job %s canceled.\n" +msgstr "" + +#: src/stored/acquire.c:87 +#, c-format +msgid "Logic error: no next volume to read. Numvol=%d Curvol=%d\n" +msgstr "" + +#: src/stored/acquire.c:113 +#, c-format +msgid "" +"Changing device. Want Media Type=\"%s\" have=\"%s\"\n" +" device=%s\n" +msgstr "" + +#: src/stored/acquire.c:151 +#, c-format +msgid "Media Type change. New device %s chosen.\n" +msgstr "" + +#: src/stored/acquire.c:162 +#, c-format +msgid "No suitable device found to read Volume \"%s\"\n" +msgstr "" + +#: src/stored/acquire.c:191 +#, c-format +msgid "Job %s canceled.\n" +msgstr "" + +#: src/stored/acquire.c:205 +#, c-format +msgid "Read open device %s Volume \"%s\" failed: ERR=%s\n" +msgstr "" + +#: src/stored/acquire.c:276 +#, c-format +msgid "Too many errors trying to mount device %s for reading.\n" +msgstr "" + +#: src/stored/acquire.c:285 +#, c-format +msgid "Ready to read from volume \"%s\" on device %s.\n" +msgstr "" + +#: src/stored/acquire.c:328 +#, c-format +msgid "Want to append, but device %s is busy reading.\n" +msgstr "" + +#: src/stored/acquire.c:358 +#, c-format +msgid "" +"Wanted to append to Volume \"%s\", but device %s is busy writing on \"%s" +"\" .\n" +msgstr "" + +#: src/stored/acquire.c:377 +#, c-format +msgid "" +"Cannot recycle volume \"%s\" on device %s because it is in use by another " +"job.\n" +msgstr "" + +#: src/stored/acquire.c:402 +#, c-format +msgid "" +"Invalid tape position on volume \"%s\" on device %s. Expected %d, got %d\n" +msgstr "" + +#: src/stored/acquire.c:422 +#, c-format +msgid "Could not ready device %s for append.\n" +msgstr "" + +#: src/stored/acquire.c:506 src/stored/block.c:367 src/stored/block.c:713 +#: src/stored/block.c:788 +#, c-format +msgid "Could not create JobMedia record for Volume=\"%s\" Job=%s\n" +msgstr "" + +#: src/stored/acquire.c:547 +#, c-format +msgid "Alert: %s" +msgstr "" + +#: src/stored/acquire.c:555 +#, c-format +msgid "3997 Bad alert command: %s: ERR=%s.\n" +msgstr "" + +#: src/stored/ansi_label.c:96 +#, c-format +msgid "Read error on device %s in ANSI label. ERR=%s\n" +msgstr "" + +#: src/stored/ansi_label.c:106 +msgid "Insane! End of tape while reading ANSI label.\n" +msgstr "" + +#: src/stored/ansi_label.c:130 +msgid "No VOL1 label while reading ANSI/IBM label.\n" +msgstr "" + +#: src/stored/ansi_label.c:150 +#, c-format +msgid "Wanted ANSI Volume \"%s\" got \"%s\"\n" +msgstr "" + +#: src/stored/ansi_label.c:161 +msgid "No HDR1 label while reading ANSI label.\n" +msgstr "" + +#: src/stored/ansi_label.c:167 +#, c-format +msgid "ANSI/IBM Volume \"%s\" does not belong to Bacula.\n" +msgstr "" + +#: src/stored/ansi_label.c:178 +msgid "No HDR2 label while reading ANSI/IBM label.\n" +msgstr "" + +#: src/stored/ansi_label.c:192 +msgid "Unknown or bad ANSI/IBM label record.\n" +msgstr "" + +#: src/stored/ansi_label.c:199 +msgid "Too many records in while reading ANSI/IBM label.\n" +msgstr "" + +#: src/stored/ansi_label.c:298 +#, c-format +msgid "ANSI Volume label name \"%s\" longer than 6 chars.\n" +msgstr "" + +#: src/stored/ansi_label.c:315 +#, c-format +msgid "Could not write ANSI VOL1 label. ERR=%s\n" +msgstr "" + +#: src/stored/ansi_label.c:353 src/stored/ansi_label.c:382 +#, c-format +msgid "Could not write ANSI HDR1 label. ERR=%s\n" +msgstr "" + +#: src/stored/ansi_label.c:358 src/stored/ansi_label.c:389 +msgid "Could not write ANSI HDR1 label.\n" +msgstr "" + +#: src/stored/ansi_label.c:394 +#, c-format +msgid "Error writing EOF to tape. ERR=%s" +msgstr "" + +#: src/stored/ansi_label.c:399 +msgid "write_ansi_ibm_label called for non-ANSI/IBM type\n" +msgstr "" + +#: src/stored/append.c:64 +msgid "DCR is NULL!!!\n" +msgstr "" + +#: src/stored/append.c:69 +msgid "DEVICE is NULL!!!\n" +msgstr "" + +#: src/stored/append.c:81 +msgid "Unable to set network buffer size.\n" +msgstr "" + +#: src/stored/append.c:94 src/stored/append.c:103 src/stored/append.c:115 +#: src/stored/append.c:298 src/stored/append.c:309 src/stored/askdir.c:332 +#: src/stored/askdir.c:333 +msgid "NULL Volume name. This shouldn't happen!!!\n" +msgstr "" + +#: src/stored/append.c:109 src/stored/btape.c:1889 +#, c-format +msgid "Write session label failed. ERR=%s\n" +msgstr "" + +#: src/stored/append.c:121 +#, c-format +msgid "Network send error to FD. ERR=%s\n" +msgstr "" + +#: src/stored/append.c:158 +#, c-format +msgid "Error reading data header from FD. ERR=%s\n" +msgstr "" + +#: src/stored/append.c:180 +#, c-format +msgid "Malformed data header from FD: %s\n" +msgstr "" + +#: src/stored/append.c:190 +msgid "File index from FD not positive or sequential\n" +msgstr "" + +#: src/stored/append.c:244 src/stored/mac.c:248 +#, c-format +msgid "Error updating file attributes. ERR=%s\n" +msgstr "" + +#: src/stored/append.c:258 +#, c-format +msgid "Network error on data channel. ERR=%s\n" +msgstr "" + +#: src/stored/append.c:279 +#, c-format +msgid "" +"Job write elapsed time = %02d:%02d:%02d, Transfer rate = %s bytes/second\n" +msgstr "" + +#: src/stored/append.c:292 src/stored/btape.c:2013 +#, c-format +msgid "Error writting end session label. ERR=%s\n" +msgstr "" + +#: src/stored/append.c:303 src/stored/mac.c:124 src/stored/mac.c:220 +#: src/stored/spool.c:293 +#, c-format +msgid "Fatal append error on device %s: ERR=%s\n" +msgstr "" + +#: src/stored/append.c:305 src/stored/mac.c:126 +msgid "Set ok=FALSE after write_block_to_device.\n" +msgstr "" + +#: src/stored/askdir.c:178 +msgid "Network error on bnet_recv in req_vol_info.\n" +msgstr "" + +#: src/stored/askdir.c:195 +#, c-format +msgid "Error getting Volume info: %s" +msgstr "" + +#: src/stored/askdir.c:363 +#, c-format +msgid "Didn't get vol info vol=%s: ERR=%s" +msgstr "" + +#: src/stored/askdir.c:405 +#, c-format +msgid "Error creating JobMedia record: ERR=%s\n" +msgstr "" + +#: src/stored/askdir.c:412 +#, c-format +msgid "Error creating JobMedia record: %s\n" +msgstr "" + +#: src/stored/askdir.c:478 +#, c-format +msgid "Job %s canceled while waiting for mount on Storage Device \"%s\".\n" +msgstr "" + +#: src/stored/askdir.c:491 +#, c-format +msgid "" +"Job %s waiting. Cannot find any appendable volumes.\n" +"Please use the \"label\" command to create a new Volume for:\n" +" Storage: %s\n" +" Pool: %s\n" +" Media type: %s\n" +msgstr "" + +#: src/stored/askdir.c:515 src/stored/askdir.c:605 +#, c-format +msgid "Max time exceeded waiting to mount Storage Device %s for Job %s\n" +msgstr "" + +#: src/stored/askdir.c:525 +msgid "pthread error in mount_next_volume.\n" +msgstr "" + +#: src/stored/askdir.c:557 +msgid "Cannot request another volume: no volume name given.\n" +msgstr "" + +#: src/stored/askdir.c:563 +#, c-format +msgid "Job %s canceled while waiting for mount on Storage Device %s.\n" +msgstr "" + +#: src/stored/askdir.c:578 +#, c-format +msgid "" +"Please mount Volume \"%s\" or label a new one for:\n" +" Job: %s\n" +" Storage: %s\n" +" Pool: %s\n" +" Media type: %s\n" +msgstr "" + +#: src/stored/askdir.c:615 +msgid "pthread error in mount_volume\n" +msgstr "" + +#: src/stored/authenticate.c:60 +#, c-format +msgid "I only authenticate Directors, not %d\n" +msgstr "" + +#: src/stored/authenticate.c:90 +#, c-format +msgid "" +"Connection from unknown Director %s at %s rejected.\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" + +#: src/stored/authenticate.c:123 +msgid "" +"Incorrect password given by Director.\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" + +#: src/stored/authenticate.c:179 +#, c-format +msgid "Unable to authenticate Director at %s.\n" +msgstr "" + +#: src/stored/authenticate.c:223 src/stored/authenticate.c:257 +#, c-format +msgid "" +"Incorrect authorization key from File daemon at %s rejected.\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" + +#: src/stored/autochanger.c:66 +#, c-format +msgid "No Changer Name given for device %s. Cannot continue.\n" +msgstr "" + +#: src/stored/autochanger.c:72 +#, c-format +msgid "No Changer Command given for device %s. Cannot continue.\n" +msgstr "" + +#: src/stored/autochanger.c:85 +#, c-format +msgid "" +"Media Type not the same for all devices in changer %s. Cannot continue.\n" +msgstr "" + +#: src/stored/autochanger.c:149 +#, c-format +msgid "" +"Invalid slot=%d defined in catalog for Volume \"%s\" on %s. Manual load my " +"be required.\n" +msgstr "" + +#: src/stored/autochanger.c:154 +#, c-format +msgid "No \"Changer Device\" for %s. Manual load of Volume may be required.\n" +msgstr "" + +#: src/stored/autochanger.c:158 +#, c-format +msgid "No \"Changer Command\" for %s. Manual load of Volume may be requird.\n" +msgstr "" + +#: src/stored/autochanger.c:188 +#, c-format +msgid "3304 Issuing autochanger \"load slot %d, drive %d\" command.\n" +msgstr "" + +#: src/stored/autochanger.c:196 +#, c-format +msgid "3305 Autochanger \"load slot %d, drive %d\", status is OK.\n" +msgstr "" + +#: src/stored/autochanger.c:205 +#, c-format +msgid "" +"3992 Bad autochanger \"load slot %d, drive %d\": ERR=%s.\n" +"Results=%s\n" +msgstr "" + +#: src/stored/autochanger.c:251 +msgid "3992 Missing Changer command.\n" +msgstr "" + +#: src/stored/autochanger.c:265 +#, c-format +msgid "3301 Issuing autochanger \"loaded? drive %d\" command.\n" +msgstr "" + +#: src/stored/autochanger.c:275 +#, c-format +msgid "3302 Autochanger \"loaded? drive %d\", result is Slot %d.\n" +msgstr "" + +#: src/stored/autochanger.c:279 +#, c-format +msgid "3302 Autochanger \"loaded? drive %d\", result: nothing loaded.\n" +msgstr "" + +#: src/stored/autochanger.c:286 +#, c-format +msgid "" +"3991 Bad autochanger \"loaded? drive %d\" command: ERR=%s.\n" +"Results=%s\n" +msgstr "" + +#: src/stored/autochanger.c:345 src/stored/autochanger.c:436 +#, c-format +msgid "3307 Issuing autochanger \"unload slot %d, drive %d\" command.\n" +msgstr "" + +#: src/stored/autochanger.c:359 +#, c-format +msgid "" +"3995 Bad autochanger \"unload slot %d, drive %d\": ERR=%s\n" +"Results=%s\n" +msgstr "" + +#: src/stored/autochanger.c:423 +#, c-format +msgid "Volume \"%s\" is in use by device %s\n" +msgstr "" + +#: src/stored/autochanger.c:458 +#, c-format +msgid "3995 Bad autochanger \"unload slot %d, drive %d\": ERR=%s.\n" +msgstr "" + +#: src/stored/autochanger.c:498 +#, c-format +msgid "3993 Device %s not an autochanger device.\n" +msgstr "" + +#: src/stored/autochanger.c:519 +#, c-format +msgid "3306 Issuing autochanger \"%s\" command.\n" +msgstr "" + +#: src/stored/autochanger.c:522 +msgid "3996 Open bpipe failed.\n" +msgstr "" + +#: src/stored/bcopy.c:72 +#, c-format +msgid "" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: bcopy [-d debug_level] \n" +" -b bootstrap specify a bootstrap file\n" +" -c specify configuration file\n" +" -d set debug level to nn\n" +" -i specify input Volume names (separated by |)\n" +" -o specify output Volume names (separated by |)\n" +" -p proceed inspite of errors\n" +" -v verbose\n" +" -w specify working directory (default /tmp)\n" +" -? print this message\n" +"\n" +msgstr "" + +#: src/stored/bcopy.c:151 src/stored/bextract.c:187 src/stored/bscan.c:228 +msgid "Wrong number of arguments: \n" +msgstr "" + +#: src/stored/bcopy.c:191 src/stored/btape.c:364 src/stored/device.c:296 +#, c-format +msgid "dev open failed: %s\n" +msgstr "" + +#: src/stored/bcopy.c:204 +msgid "Write of last block failed.\n" +msgstr "" + +#: src/stored/bcopy.c:207 +#, c-format +msgid "%u Jobs copied. %u records copied.\n" +msgstr "" + +#: src/stored/bcopy.c:224 src/stored/bscan.c:402 +#, c-format +msgid "Record: SessId=%u SessTim=%u FileIndex=%d Stream=%d len=%u\n" +msgstr "" + +#: src/stored/bcopy.c:239 +msgid "Volume is prelabeled. This volume cannot be copied.\n" +msgstr "" + +#: src/stored/bcopy.c:242 +msgid "Volume label not copied.\n" +msgstr "" + +#: src/stored/bcopy.c:254 src/stored/bcopy.c:261 src/stored/bcopy.c:284 +#: src/stored/btape.c:2386 +#, c-format +msgid "Cannot fixup device error. %s\n" +msgstr "" + +#: src/stored/bcopy.c:266 +msgid "EOM label not copied.\n" +msgstr "" + +#: src/stored/bcopy.c:269 +msgid "EOT label not copied.\n" +msgstr "" + +#: src/stored/bcopy.c:305 src/stored/bextract.c:489 src/stored/bls.c:452 +#: src/stored/bscan.c:1283 src/stored/btape.c:2685 +#, c-format +msgid "Mount Volume \"%s\" on device %s and press return when ready: " +msgstr "" + +#: src/stored/bextract.c:78 +#, c-format +msgid "" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: bextract \n" +" -b specify a bootstrap file\n" +" -c specify a configuration file\n" +" -d set debug level to nn\n" +" -e exclude list\n" +" -i include list\n" +" -p proceed inspite of I/O errors\n" +" -v verbose\n" +" -V specify Volume names (separated by |)\n" +" -? print this message\n" +"\n" +msgstr "" + +#: src/stored/bextract.c:137 src/stored/bls.c:140 +#, c-format +msgid "Could not open exclude file: %s, ERR=%s\n" +msgstr "" + +#: src/stored/bextract.c:152 src/stored/bls.c:154 +#, c-format +msgid "Could not open include file: %s, ERR=%s\n" +msgstr "" + +#: src/stored/bextract.c:208 +#, c-format +msgid "%d Program Name and/or Program Data Stream records ignored.\n" +msgstr "" + +#: src/stored/bextract.c:212 +#, c-format +msgid "%d Win32 data or Win32 gzip data stream records. Ignored.\n" +msgstr "" + +#: src/stored/bextract.c:239 +#, c-format +msgid "Cannot stat %s. It must exist. ERR=%s\n" +msgstr "" + +#: src/stored/bextract.c:243 +#, c-format +msgid "%s must be a directory.\n" +msgstr "" + +#: src/stored/bextract.c:264 +#, c-format +msgid "%u files restored.\n" +msgstr "" + +#: src/stored/bextract.c:291 src/stored/bextract.c:464 +msgid "Logic error output file should be open but is not.\n" +msgstr "" + +#: src/stored/bextract.c:298 src/stored/bls.c:376 src/stored/bscan.c:659 +msgid "Cannot continue.\n" +msgstr "" + +#: src/stored/bextract.c:360 +#, c-format +msgid "Seek error on %s: %s\n" +msgstr "" + +#: src/stored/bextract.c:413 +#, c-format +msgid "Uncompression error. ERR=%d\n" +msgstr "" + +#: src/stored/bextract.c:421 +msgid "===Write error===\n" +msgstr "" + +#: src/stored/bextract.c:455 +msgid "Got Program Name or Data Stream. Ignored.\n" +msgstr "" + +#: src/stored/block.c:91 +#, c-format +msgid "" +"Dump block %s %x: size=%d BlkNum=%d\n" +" Hdrcksum=%x cksum=%x\n" +msgstr "" + +#: src/stored/block.c:104 +#, c-format +msgid " Rec: VId=%u VT=%u FI=%s Strm=%s len=%d p=%x\n" +msgstr "" + +#: src/stored/block.c:160 +#, c-format +msgid "%d block read errors not printed.\n" +msgstr "" + +#: src/stored/block.c:248 src/stored/block.c:264 src/stored/block.c:274 +#, c-format +msgid "" +"Volume data error at %u:%u! Wanted ID: \"%s\", got \"%s\". Buffer " +"discarded.\n" +msgstr "" + +#: src/stored/block.c:288 +#, c-format +msgid "" +"Volume data error at %u:%u! Block length %u is insane (too large), probably " +"due to a bad archive.\n" +msgstr "" + +#: src/stored/block.c:314 +#, c-format +msgid "" +"Volume data error at %u:%u!\n" +"Block checksum mismatch in block=%u len=%d: calc=%x blk=%x\n" +msgstr "" + +#: src/stored/block.c:425 +msgid "Cannot write block. Device at EOM.\n" +msgstr "" + +#: src/stored/block.c:430 +msgid "Attempt to write on read-only Volume.\n" +msgstr "" + +#: src/stored/block.c:482 +#, c-format +msgid "User defined maximum volume capacity %s exceeded on device %s.\n" +msgstr "" + +#: src/stored/block.c:497 +#, c-format +msgid "Unable to write EOF. ERR=%s\n" +msgstr "" + +#: src/stored/block.c:523 src/stored/block.c:548 +msgid "Write block header zeroed.\n" +msgstr "" + +#: src/stored/block.c:567 +#, c-format +msgid "Write error at %u:%u on device %s. ERR=%s.\n" +msgstr "" + +#: src/stored/block.c:574 +#, c-format +msgid "End of Volume \"%s\" at %u:%u on device %s. Write of %u bytes got %d.\n" +msgstr "" + +#: src/stored/block.c:650 src/stored/block.c:656 +#, c-format +msgid "Backspace file at EOT failed. ERR=%s\n" +msgstr "" + +#: src/stored/block.c:663 +#, c-format +msgid "Backspace record at EOT failed. ERR=%s\n" +msgstr "" + +#: src/stored/block.c:680 +#, c-format +msgid "Re-read last block at EOT failed. ERR=%s" +msgstr "" + +#: src/stored/block.c:690 +#, c-format +msgid "" +"Re-read of last block OK, but block numbers differ. Last block=%u Current " +"block=%u.\n" +msgstr "" + +#: src/stored/block.c:693 +msgid "Re-read of last block succeeded.\n" +msgstr "" + +#: src/stored/block.c:721 +#, c-format +msgid "" +"Error writing final EOF to tape. This Volume may not be readable.\n" +"%s" +msgstr "" + +#: src/stored/block.c:735 +#, c-format +msgid "" +"Error writing final part to DVD. This Volume may not be readable.\n" +"%s" +msgstr "" + +#: src/stored/block.c:837 +#, c-format +msgid "" +"Error while writing, current part number is less than the total number of " +"parts (%d/%d, device=%s)\n" +msgstr "" + +#: src/stored/block.c:845 +#, c-format +msgid "Unable to open device next part %s: ERR=%s\n" +msgstr "" + +#: src/stored/block.c:865 +#, c-format +msgid "" +"End of Volume \"%s\" at %u:%u on device %s (part_size=%s, free_space=%s, " +"free_space_errno=%d, errmsg=%s).\n" +msgstr "" + +#: src/stored/block.c:878 +#, c-format +msgid "" +"End of Volume \"%s\" at %u:%u on device %s (part_size=%s, free_space=%s, " +"free_space_errno=%d).\n" +msgstr "" + +#: src/stored/block.c:934 +#, c-format +msgid "Block buffer size looping problem on device %s\n" +msgstr "" + +#: src/stored/block.c:962 +#, c-format +msgid "Unable to open device part=%d %s: ERR=%s\n" +msgstr "" + +#: src/stored/block.c:988 +#, c-format +msgid "Read error on fd=%d at file:blk %u:%u on device %s. ERR=%s.\n" +msgstr "" + +#: src/stored/block.c:1001 +#, c-format +msgid "Read zero bytes at %u:%u on device %s.\n" +msgstr "" + +#: src/stored/block.c:1014 +#, c-format +msgid "" +"Volume data error at %u:%u! Very short block of %d bytes on device %s " +"discarded.\n" +msgstr "" + +#: src/stored/block.c:1039 +#, c-format +msgid "Block length %u is greater than buffer %u. Attempting recovery.\n" +msgstr "" + +#: src/stored/block.c:1058 +#, c-format +msgid "Setting block buffer size to %u bytes.\n" +msgstr "" + +#: src/stored/block.c:1073 +#, c-format +msgid "" +"Volume data error at %u:%u! Short block of %d bytes on device %s discarded.\n" +msgstr "" + +#: src/stored/bls.c:78 +#, c-format +msgid "" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: bls [options] \n" +" -b specify a bootstrap file\n" +" -c specify a config file\n" +" -d specify debug level\n" +" -e exclude list\n" +" -i include list\n" +" -j list jobs\n" +" -k list blocks\n" +" (no j or k option) list saved files\n" +" -L dump label\n" +" -p proceed inspite of errors\n" +" -v be verbose\n" +" -V specify Volume names (separated by |)\n" +" -? print this message\n" +"\n" +msgstr "" + +#: src/stored/bls.c:201 +msgid "No archive name specified\n" +msgstr "" + +#: src/stored/bls.c:236 +#, c-format +msgid "" +"\n" +"Warning, this Volume is a continuation of Volume %s\n" +msgstr "" + +#: src/stored/bls.c:279 +#, c-format +msgid "Got EOM at file %u on device %s, Volume \"%s\"\n" +msgstr "" + +#: src/stored/bls.c:290 +#, c-format +msgid "Mounted Volume \"%s\".\n" +msgstr "" + +#: src/stored/bls.c:292 +#, c-format +msgid "End of file %u on device %s, Volume \"%s\"\n" +msgstr "" + +#: src/stored/bls.c:316 +#, c-format +msgid "" +"File:blk=%u:%u blk_num=%u blen=%u First rec FI=%s SessId=%u SessTim=%u Strm=%" +"s rlen=%d\n" +msgstr "" + +#: src/stored/bls.c:325 +#, c-format +msgid "Block: %d size=%d\n" +msgstr "" + +#: src/stored/bls.c:392 +#, c-format +msgid "FileIndex=%d VolSessionId=%d VolSessionTime=%d Stream=%d DataLen=%d\n" +msgstr "" + +#: src/stored/bls.c:409 src/stored/read_record.c:388 +msgid "Fresh Volume Label" +msgstr "" + +#: src/stored/bls.c:412 src/stored/read_record.c:391 +msgid "Volume Label" +msgstr "" + +#: src/stored/bls.c:416 src/stored/label.c:1031 +msgid "Begin Job Session" +msgstr "" + +#: src/stored/bls.c:420 src/stored/label.c:1034 +msgid "End Job Session" +msgstr "" + +#: src/stored/bls.c:424 +msgid "End of Medium" +msgstr "" + +#: src/stored/bls.c:427 src/stored/label.c:1043 +msgid "Unknown" +msgstr "" + +#: src/stored/bls.c:433 src/stored/read_record.c:409 +#, c-format +msgid "%s Record: VolSessionId=%d VolSessionTime=%d JobId=%d DataLen=%d\n" +msgstr "" + +#: src/stored/bscan.c:115 +#, c-format +msgid "" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: bscan [ options ] \n" +" -b bootstrap specify a bootstrap file\n" +" -c specify configuration file\n" +" -d set debug level to nn\n" +" -m update media info in database\n" +" -n specify the database name (default bacula)\n" +" -u specify database user name (default bacula)\n" +" -P specify database host (default NULL)\n" +" -p proceed inspite of I/O errors\n" +" -r list records\n" +" -s synchronize or store in database\n" +" -S show scan progress periodically\n" +" -v verbose\n" +" -V specify Volume names (separated by |)\n" +" -w specify working directory (default from conf file)\n" +" -? print this message\n" +"\n" +msgstr "" + +#: src/stored/bscan.c:241 src/stored/stored.c:288 +#, c-format +msgid "No Storage resource defined in %s. Cannot continue.\n" +msgstr "" + +#: src/stored/bscan.c:249 src/stored/stored.c:319 +#, c-format +msgid "No Working Directory defined in %s. Cannot continue.\n" +msgstr "" + +#: src/stored/bscan.c:257 +#, c-format +msgid "Working Directory: %s not found. Cannot continue.\n" +msgstr "" + +#: src/stored/bscan.c:261 +#, c-format +msgid "Working Directory: %s is not a directory. Cannot continue.\n" +msgstr "" + +#: src/stored/bscan.c:275 src/stored/bscan.c:349 +#, c-format +msgid "First Volume Size = %sn" +msgstr "" + +#: src/stored/bscan.c:281 +msgid "Could not init Bacula database\n" +msgstr "" + +#: src/stored/bscan.c:288 +#, c-format +msgid "Using Database: %s, User: %s\n" +msgstr "" + +#: src/stored/bscan.c:323 +#, c-format +msgid "Create JobMedia for Job %s\n" +msgstr "" + +#: src/stored/bscan.c:331 +#, c-format +msgid "Could not create JobMedia record for Volume=%s Job=%s\n" +msgstr "" + +#: src/stored/bscan.c:394 +#, c-format +msgid "done: %d%%\n" +msgstr "" + +#: src/stored/bscan.c:418 +msgid "Volume is prelabeled. This tape cannot be scanned.\n" +msgstr "" + +#: src/stored/bscan.c:430 +#, c-format +msgid "Pool record for %s found in DB.\n" +msgstr "" + +#: src/stored/bscan.c:434 +#, c-format +msgid "VOL_LABEL: Pool record not found for Pool: %s\n" +msgstr "" + +#: src/stored/bscan.c:440 +#, c-format +msgid "VOL_LABEL: PoolType mismatch. DB=%s Vol=%s\n" +msgstr "" + +#: src/stored/bscan.c:444 +#, c-format +msgid "Pool type \"%s\" is OK.\n" +msgstr "" + +#: src/stored/bscan.c:454 +#, c-format +msgid "Media record for %s found in DB.\n" +msgstr "" + +#: src/stored/bscan.c:461 +#, c-format +msgid "VOL_LABEL: Media record not found for Volume: %s\n" +msgstr "" + +#: src/stored/bscan.c:468 +#, c-format +msgid "VOL_LABEL: MediaType mismatch. DB=%s Vol=%s\n" +msgstr "" + +#: src/stored/bscan.c:472 +#, c-format +msgid "Media type \"%s\" is OK.\n" +msgstr "" + +#: src/stored/bscan.c:481 +#, c-format +msgid "VOL_LABEL: OK for Volume: %s\n" +msgstr "" + +#: src/stored/bscan.c:488 +#, c-format +msgid "%d \"errors\" ignored before first Start of Session record.\n" +msgstr "" + +#: src/stored/bscan.c:499 +#, c-format +msgid "SOS_LABEL: Found Job record for JobId: %d\n" +msgstr "" + +#: src/stored/bscan.c:504 +#, c-format +msgid "SOS_LABEL: Job record not found for JobId: %d\n" +msgstr "" + +#: src/stored/bscan.c:544 +#, c-format +msgid "SOS_LABEL: VolSessId mismatch for JobId=%u. DB=%d Vol=%d\n" +msgstr "" + +#: src/stored/bscan.c:550 +#, c-format +msgid "SOS_LABEL: VolSessTime mismatch for JobId=%u. DB=%d Vol=%d\n" +msgstr "" + +#: src/stored/bscan.c:556 +#, c-format +msgid "SOS_LABEL: PoolId mismatch for JobId=%u. DB=%d Vol=%d\n" +msgstr "" + +#: src/stored/bscan.c:574 src/stored/bscan.c:1077 +#, c-format +msgid "Could not find SessId=%d SessTime=%d for EOS record.\n" +msgstr "" + +#: src/stored/bscan.c:618 +#, c-format +msgid "Could not update job record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:629 +#, c-format +msgid "End of all Volumes. VolFiles=%u VolBlocks=%u VolBytes=%s\n" +msgstr "" + +#: src/stored/bscan.c:641 +#, c-format +msgid "Could not find Job for SessId=%d SessTime=%d record.\n" +msgstr "" + +#: src/stored/bscan.c:677 +#, c-format +msgid "%s file records. At file:blk=%s:%s bytes=%s\n" +msgstr "" + +#: src/stored/bscan.c:731 +#, c-format +msgid "Got MD5 record: %s\n" +msgstr "" + +#: src/stored/bscan.c:739 +#, c-format +msgid "Got SHA1 record: %s\n" +msgstr "" + +#: src/stored/bscan.c:747 +#, c-format +msgid "Got SHA256 record: %s\n" +msgstr "" + +#: src/stored/bscan.c:755 +#, c-format +msgid "Got SHA512 record: %s\n" +msgstr "" + +#: src/stored/bscan.c:763 src/stored/bscan.c:770 +msgid "Got signed digest record\n" +msgstr "" + +#: src/stored/bscan.c:776 +#, c-format +msgid "Got Prog Names Stream: %s\n" +msgstr "" + +#: src/stored/bscan.c:782 +msgid "Got Prog Data Stream record.\n" +msgstr "" + +#: src/stored/bscan.c:792 +#, c-format +msgid "Unknown stream type!!! stream=%d len=%i\n" +msgstr "" + +#: src/stored/bscan.c:856 +#, c-format +msgid "Could not create File Attributes record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:862 +#, c-format +msgid "Created File record: %s\n" +msgstr "" + +#: src/stored/bscan.c:906 +#, c-format +msgid "Could not create media record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:910 src/stored/bscan.c:931 +#, c-format +msgid "Could not update media record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:914 +#, c-format +msgid "Created Media record for Volume: %s\n" +msgstr "" + +#: src/stored/bscan.c:935 +#, c-format +msgid "Updated Media record at end of Volume: %s\n" +msgstr "" + +#: src/stored/bscan.c:952 +#, c-format +msgid "Could not create pool record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:956 +#, c-format +msgid "Created Pool record for Pool: %s\n" +msgstr "" + +#: src/stored/bscan.c:976 +#, c-format +msgid "Created Client record for Client: %s\n" +msgstr "" + +#: src/stored/bscan.c:993 +#, c-format +msgid "Fileset \"%s\" already exists.\n" +msgstr "" + +#: src/stored/bscan.c:997 +#, c-format +msgid "Could not create FileSet record \"%s\". ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:1002 +#, c-format +msgid "Created FileSet record \"%s\"\n" +msgstr "" + +#: src/stored/bscan.c:1049 +#, c-format +msgid "Could not create JobId record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:1055 +#, c-format +msgid "Could not update job start record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:1058 +#, c-format +msgid "Created new JobId=%u record for original JobId=%u\n" +msgstr "" + +#: src/stored/bscan.c:1108 +#, c-format +msgid "Could not update JobId=%u record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:1113 +#, c-format +msgid "Updated Job termination record for JobId=%u Level=%s TermStat=%c\n" +msgstr "" + +#: src/stored/bscan.c:1135 +#, c-format +msgid "Job Termination code: %d" +msgstr "" + +#: src/stored/bscan.c:1140 +#, c-format +msgid "" +"%s\n" +"JobId: %d\n" +"Job: %s\n" +"FileSet: %s\n" +"Backup Level: %s\n" +"Client: %s\n" +"Start time: %s\n" +"End time: %s\n" +"Files Written: %s\n" +"Bytes Written: %s\n" +"Volume Session Id: %d\n" +"Volume Session Time: %d\n" +"Last Volume Bytes: %s\n" +"Termination: %s\n" +"\n" +msgstr "" + +#: src/stored/bscan.c:1197 +#, c-format +msgid "Could not create JobMedia record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:1201 +#, c-format +msgid "Created JobMedia record JobId %d, MediaId %d\n" +msgstr "" + +#: src/stored/bscan.c:1217 +#, c-format +msgid "Could not find SessId=%d SessTime=%d for MD5/SHA1 record.\n" +msgstr "" + +#: src/stored/bscan.c:1231 +#, c-format +msgid "Could not add MD5/SHA1 to File record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:1236 +msgid "Updated MD5/SHA1 record\n" +msgstr "" + +#: src/stored/btape.c:172 src/stored/stored.c:128 +#, c-format +msgid "Tape block size (%d) not multiple of system size (%d)\n" +msgstr "" + +#: src/stored/btape.c:176 src/stored/stored.c:132 +#, c-format +msgid "Tape block size (%d) is not a power of 2\n" +msgstr "" + +#: src/stored/btape.c:179 +#, c-format +msgid "" +"\n" +"\n" +"!!!! Warning large disk addressing disabled. boffset_t=%d should be 8 or " +"more !!!!!\n" +"\n" +"\n" +msgstr "" + +#: src/stored/btape.c:186 +#, c-format +msgid "32 bit printf/scanf problem. i=%d x32=%u y32=%u\n" +msgstr "" + +#: src/stored/btape.c:195 +msgid "64 bit printf/scanf problem. i=%d x64=%" +msgstr "" + +#: src/stored/btape.c:195 +msgid " y64=%" +msgstr "" + +#: src/stored/btape.c:200 +#, c-format +msgid "Tape block granularity is %d bytes.\n" +msgstr "" + +#: src/stored/btape.c:269 +msgid "No archive name specified.\n" +msgstr "" + +#: src/stored/btape.c:273 +msgid "Improper number of arguments specified.\n" +msgstr "" + +#: src/stored/btape.c:287 +msgid "btape does not work with DVD storage.\n" +msgstr "" + +#: src/stored/btape.c:292 +msgid "btape only works with tape storage.\n" +msgstr "" + +#: src/stored/btape.c:368 +#, c-format +msgid "open device %s: OK\n" +msgstr "" + +#: src/stored/btape.c:391 +msgid "Enter Volume Name: " +msgstr "" + +#: src/stored/btape.c:398 +#, c-format +msgid "Device open failed. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:404 +#, c-format +msgid "Wrote Volume label for volume \"%s\".\n" +msgstr "" + +#: src/stored/btape.c:418 +msgid "Volume has no label.\n" +msgstr "" + +#: src/stored/btape.c:421 +msgid "Volume label read correctly.\n" +msgstr "" + +#: src/stored/btape.c:424 +#, c-format +msgid "I/O error on device: ERR=%s" +msgstr "" + +#: src/stored/btape.c:427 +msgid "Volume name error\n" +msgstr "" + +#: src/stored/btape.c:430 +#, c-format +msgid "Error creating label. ERR=%s" +msgstr "" + +#: src/stored/btape.c:433 +msgid "Volume version error.\n" +msgstr "" + +#: src/stored/btape.c:436 +msgid "Bad Volume label type.\n" +msgstr "" + +#: src/stored/btape.c:439 +msgid "Unknown error.\n" +msgstr "" + +#: src/stored/btape.c:457 +#, c-format +msgid "Bad status from load. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:459 +#, c-format +msgid "Loaded %s\n" +msgstr "" + +#: src/stored/btape.c:468 src/stored/btape.c:807 src/stored/btape.c:849 +#: src/stored/btape.c:919 src/stored/btape.c:961 src/stored/btape.c:1229 +#, c-format +msgid "Bad status from rewind. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:471 src/stored/btape.c:1237 +#, c-format +msgid "Rewound %s\n" +msgstr "" + +#: src/stored/btape.c:497 src/stored/btape.c:1241 +#, c-format +msgid "Bad status from weof. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:501 +#, c-format +msgid "Wrote 1 EOF to %s\n" +msgstr "" + +#: src/stored/btape.c:504 +#, c-format +msgid "Wrote %d EOFs to %s\n" +msgstr "" + +#: src/stored/btape.c:522 +msgid "Moved to end of medium.\n" +msgstr "" + +#: src/stored/btape.c:549 +#, c-format +msgid "Bad status from bsf. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:551 +#, c-format +msgid "Backspaced %d file%s.\n" +msgstr "" + +#: src/stored/btape.c:568 +#, c-format +msgid "Bad status from bsr. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:570 +#, c-format +msgid "Backspaced %d record%s.\n" +msgstr "" + +#: src/stored/btape.c:580 src/stored/status.c:302 +#, c-format +msgid "Configured device capabilities:\n" +msgstr "" + +#: src/stored/btape.c:598 +#, c-format +msgid "Device status:\n" +msgstr "" + +#: src/stored/btape.c:612 src/stored/status.c:341 +#, c-format +msgid "Device parameters:\n" +msgstr "" + +#: src/stored/btape.c:617 +#, c-format +msgid "Status:\n" +msgstr "" + +#: src/stored/btape.c:632 +msgid "" +"Test writting larger and larger records.\n" +"This is a torture test for records.\n" +"I am going to write\n" +"larger and larger records. It will stop when the record size\n" +"plus the header exceeds the block size (by default about 64K)\n" +msgstr "" + +#: src/stored/btape.c:638 +msgid "Do you want to continue? (y/n): " +msgstr "" + +#: src/stored/btape.c:640 src/stored/btape.c:1857 +msgid "Command aborted.\n" +msgstr "" + +#: src/stored/btape.c:656 +#, c-format +msgid "Block %d i=%d\n" +msgstr "" + +#: src/stored/btape.c:682 +msgid "Skipping read backwards test because BSR turned off.\n" +msgstr "" + +#: src/stored/btape.c:686 +msgid "" +"\n" +"=== Write, backup, and re-read test ===\n" +"\n" +"I'm going to write three records and an EOF\n" +"then backup over the EOF and re-read the last record.\n" +"Bacula does this after writing the last block on the\n" +"tape to verify that the block was written correctly.\n" +"\n" +"This is not an *essential* feature ...\n" +"\n" +msgstr "" + +#: src/stored/btape.c:699 src/stored/btape.c:710 src/stored/btape.c:721 +#: src/stored/btape.c:819 src/stored/btape.c:835 src/stored/btape.c:931 +#: src/stored/btape.c:947 src/stored/btape.c:1566 src/stored/btape.c:2451 +msgid "Error writing record to block.\n" +msgstr "" + +#: src/stored/btape.c:703 src/stored/btape.c:714 src/stored/btape.c:725 +#: src/stored/btape.c:823 src/stored/btape.c:839 src/stored/btape.c:935 +#: src/stored/btape.c:951 src/stored/btape.c:1570 src/stored/btape.c:2455 +msgid "Error writing block to device.\n" +msgstr "" + +#: src/stored/btape.c:706 +#, c-format +msgid "Wrote first record of %d bytes.\n" +msgstr "" + +#: src/stored/btape.c:717 +#, c-format +msgid "Wrote second record of %d bytes.\n" +msgstr "" + +#: src/stored/btape.c:728 +#, c-format +msgid "Wrote third record of %d bytes.\n" +msgstr "" + +#: src/stored/btape.c:735 src/stored/btape.c:740 +#, c-format +msgid "Backspace file failed! ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:744 +msgid "Backspaced over EOF OK.\n" +msgstr "" + +#: src/stored/btape.c:746 +#, c-format +msgid "Backspace record failed! ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:749 +msgid "Backspace record OK.\n" +msgstr "" + +#: src/stored/btape.c:752 src/stored/btape.c:758 +#, c-format +msgid "Read block failed! ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:763 +msgid "Bad data in record. Test failed!\n" +msgstr "" + +#: src/stored/btape.c:767 +msgid "" +"\n" +"Block re-read correct. Test succeeded!\n" +msgstr "" + +#: src/stored/btape.c:768 +msgid "" +"=== End Write, backup, and re-read test ===\n" +"\n" +msgstr "" + +#: src/stored/btape.c:775 +msgid "" +"This is not terribly serious since Bacula only uses\n" +"this function to verify the last block written to the\n" +"tape. Bacula will skip the last block verification\n" +"if you add:\n" +"\n" +"Backward Space Record = No\n" +"\n" +"to your Storage daemon's Device resource definition.\n" +msgstr "" + +#: src/stored/btape.c:799 +msgid "" +"\n" +"=== Write, rewind, and re-read test ===\n" +"\n" +"I'm going to write 1000 records and an EOF\n" +"then write 1000 records and an EOF, then rewind,\n" +"and re-read the data to verify that it is correct.\n" +"\n" +"This is an *essential* feature ...\n" +"\n" +msgstr "" + +#: src/stored/btape.c:827 src/stored/btape.c:843 src/stored/btape.c:939 +#: src/stored/btape.c:955 +#, c-format +msgid "Wrote 1000 blocks of %d bytes.\n" +msgstr "" + +#: src/stored/btape.c:852 src/stored/btape.c:964 +msgid "Rewind OK.\n" +msgstr "" + +#: src/stored/btape.c:859 src/stored/btape.c:1013 +msgid "Got EOF on tape.\n" +msgstr "" + +#: src/stored/btape.c:864 +#, c-format +msgid "Read block %d failed! ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:870 +#, c-format +msgid "Read record failed. Block %d! ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:876 src/stored/btape.c:1043 +#, c-format +msgid "Bad data in record. Expected %d, got %d at byte %d. Test failed!\n" +msgstr "" + +#: src/stored/btape.c:883 +msgid "1000 blocks re-read correctly.\n" +msgstr "" + +#: src/stored/btape.c:886 src/stored/btape.c:1050 +msgid "" +"=== Test Succeeded. End Write, rewind, and re-read test ===\n" +"\n" +msgstr "" + +#: src/stored/btape.c:911 +msgid "" +"\n" +"=== Write, rewind, and position test ===\n" +"\n" +"I'm going to write 1000 records and an EOF\n" +"then write 1000 records and an EOF, then rewind,\n" +"and position to a few blocks and verify that it is correct.\n" +"\n" +"This is an *essential* feature ...\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1004 +#, c-format +msgid "Reposition to file:block %d:%d\n" +msgstr "" + +#: src/stored/btape.c:1006 +msgid "Reposition error.\n" +msgstr "" + +#: src/stored/btape.c:1019 +#, c-format +msgid "" +"Read block %d failed! file=%d blk=%d. ERR=%s\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1021 +msgid "" +"This may be because the tape drive block size is not\n" +" set to variable blocking as normally used by Bacula.\n" +" Please see the Tape Testing chapter in the manual and \n" +" look for using mt with defblksize and setoptions\n" +"If your tape drive block size is correct, then perhaps\n" +" your SCSI driver is *really* stupid and does not\n" +" correctly report the file:block after a FSF. In this\n" +" case try setting:\n" +" Fast Forward Space File = no\n" +" in your Device resource.\n" +msgstr "" + +#: src/stored/btape.c:1037 +#, c-format +msgid "Read record failed! ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1048 +#, c-format +msgid "Block %d re-read correctly.\n" +msgstr "" + +#: src/stored/btape.c:1069 +msgid "" +"\n" +"\n" +"=== Append files test ===\n" +"\n" +"This test is essential to Bacula.\n" +"\n" +"I'm going to write one record in file 0,\n" +" two records in file 1,\n" +" and three records in file 2\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1093 +msgid "Now moving to end of medium.\n" +msgstr "" + +#: src/stored/btape.c:1095 src/stored/btape.c:1324 +#, c-format +msgid "We should be in file 3. I am at file %d. %s\n" +msgstr "" + +#: src/stored/btape.c:1096 src/stored/btape.c:1114 src/stored/btape.c:1313 +#: src/stored/btape.c:1325 src/stored/btape.c:1338 src/stored/btape.c:1355 +msgid "This is correct!" +msgstr "" + +#: src/stored/btape.c:1096 src/stored/btape.c:1114 src/stored/btape.c:1313 +#: src/stored/btape.c:1325 src/stored/btape.c:1338 src/stored/btape.c:1355 +msgid "This is NOT correct!!!!" +msgstr "" + +#: src/stored/btape.c:1102 +msgid "" +"\n" +"Now the important part, I am going to attempt to append to the tape.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1109 +msgid "" +"Done appending, there should be no I/O errors\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1110 +msgid "Doing Bacula scan of blocks:\n" +msgstr "" + +#: src/stored/btape.c:1112 +msgid "End scanning the tape.\n" +msgstr "" + +#: src/stored/btape.c:1113 src/stored/btape.c:1337 +#, c-format +msgid "We should be in file 4. I am at file %d. %s\n" +msgstr "" + +#: src/stored/btape.c:1138 +msgid "" +"\n" +"Autochanger enabled, but no name or no command device specified.\n" +msgstr "" + +#: src/stored/btape.c:1142 +msgid "" +"\n" +"Ah, I see you have an autochanger configured.\n" +"To test the autochanger you must have a blank tape\n" +" that I can write on in Slot 1.\n" +msgstr "" + +#: src/stored/btape.c:1145 +msgid "" +"\n" +"Do you wish to continue with the Autochanger test? (y/n): " +msgstr "" + +#: src/stored/btape.c:1152 +msgid "" +"\n" +"\n" +"=== Autochanger test ===\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1161 +msgid "3301 Issuing autochanger \"loaded\" command.\n" +msgstr "" + +#: src/stored/btape.c:1170 +#, c-format +msgid "3991 Bad autochanger command: %s\n" +msgstr "" + +#: src/stored/btape.c:1171 +#, c-format +msgid "3991 result=\"%s\": ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1175 +#, c-format +msgid "Slot %d loaded. I am going to unload it.\n" +msgstr "" + +#: src/stored/btape.c:1177 +msgid "Nothing loaded in the drive. OK.\n" +msgstr "" + +#: src/stored/btape.c:1184 +#, c-format +msgid "3302 Issuing autochanger \"unload %d %d\" command.\n" +msgstr "" + +#: src/stored/btape.c:1189 +#, c-format +msgid "unload status=%s %d\n" +msgstr "" + +#: src/stored/btape.c:1189 +msgid "Bad" +msgstr "" + +#: src/stored/btape.c:1192 +#, c-format +msgid "3992 Bad autochanger command: %s\n" +msgstr "" + +#: src/stored/btape.c:1193 +#, c-format +msgid "3992 result=\"%s\": ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1203 +#, c-format +msgid "3303 Issuing autochanger \"load %d %d\" command.\n" +msgstr "" + +#: src/stored/btape.c:1211 +#, c-format +msgid "3303 Autochanger \"load %d %d\" status is OK.\n" +msgstr "" + +#: src/stored/btape.c:1215 +#, c-format +msgid "3993 Bad autochanger command: %s\n" +msgstr "" + +#: src/stored/btape.c:1216 +#, c-format +msgid "3993 result=\"%s\": ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1231 +msgid "" +"\n" +"The test failed, probably because you need to put\n" +"a longer sleep time in the mtx-script in the load) case.\n" +"Adding a 30 second sleep and trying again ...\n" +msgstr "" + +#: src/stored/btape.c:1244 +#, c-format +msgid "Wrote EOF to %s\n" +msgstr "" + +#: src/stored/btape.c:1248 +#, c-format +msgid "" +"\n" +"The test worked this time. Please add:\n" +"\n" +" sleep %d\n" +"\n" +"to your mtx-changer script in the load) case.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1253 +msgid "" +"\n" +"The test autochanger worked!!\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1264 +msgid "You must correct this error or the Autochanger will not work.\n" +msgstr "" + +#: src/stored/btape.c:1282 +msgid "" +"\n" +"\n" +"=== Forward space files test ===\n" +"\n" +"This test is essential to Bacula.\n" +"\n" +"I'm going to write five files then test forward spacing\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1307 +msgid "Now forward spacing 1 file.\n" +msgstr "" + +#: src/stored/btape.c:1309 src/stored/btape.c:1321 src/stored/btape.c:1334 +#: src/stored/btape.c:1352 src/stored/btape.c:1521 +#, c-format +msgid "Bad status from fsr. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1312 +#, c-format +msgid "We should be in file 1. I am at file %d. %s\n" +msgstr "" + +#: src/stored/btape.c:1319 +msgid "Now forward spacing 2 files.\n" +msgstr "" + +#: src/stored/btape.c:1332 +msgid "Now forward spacing 4 files.\n" +msgstr "" + +#: src/stored/btape.c:1344 +msgid "" +"The test worked this time. Please add:\n" +"\n" +" Fast Forward Space File = no\n" +"\n" +"to your Device resource for this drive.\n" +msgstr "" + +#: src/stored/btape.c:1350 +msgid "Now forward spacing 1 more file.\n" +msgstr "" + +#: src/stored/btape.c:1354 +#, c-format +msgid "We should be in file 5. I am at file %d. %s\n" +msgstr "" + +#: src/stored/btape.c:1359 +msgid "" +"\n" +"=== End Forward space files test ===\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1363 +msgid "" +"\n" +"The forward space file test failed.\n" +msgstr "" + +#: src/stored/btape.c:1365 +msgid "" +"You have Fast Forward Space File enabled.\n" +"I am turning it off then retrying the test.\n" +msgstr "" + +#: src/stored/btape.c:1371 +msgid "" +"You must correct this error or Bacula will not work.\n" +"Some systems, e.g. OpenBSD, require you to set\n" +" Use MTIOCGET= no\n" +"in your device resource. Use with caution.\n" +msgstr "" + +#: src/stored/btape.c:1403 +msgid "" +"\n" +"Append test failed. Attempting again.\n" +"Setting \"Hardware End of Medium = no\n" +" and \"Fast Forward Space File = no\n" +"and retrying append test.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1411 +msgid "" +"\n" +"\n" +"It looks like the test worked this time, please add:\n" +"\n" +" Hardware End of Medium = No\n" +"\n" +" Fast Forward Space File = No\n" +"to your Device resource in the Storage conf file.\n" +msgstr "" + +#: src/stored/btape.c:1418 +msgid "" +"\n" +"\n" +"That appears *NOT* to have corrected the problem.\n" +msgstr "" + +#: src/stored/btape.c:1423 +msgid "" +"\n" +"\n" +"It looks like the append failed. Attempting again.\n" +"Setting \"BSF at EOM = yes\" and retrying append test.\n" +msgstr "" + +#: src/stored/btape.c:1428 +msgid "" +"\n" +"\n" +"It looks like the test worked this time, please add:\n" +"\n" +" Hardware End of Medium = No\n" +" Fast Forward Space File = No\n" +" BSF at EOM = yes\n" +"\n" +"to your Device resource in the Storage conf file.\n" +msgstr "" + +#: src/stored/btape.c:1439 +msgid "" +"\n" +"Append test failed.\n" +"\n" +"\n" +"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n" +"Unable to correct the problem. You MUST fix this\n" +"problem before Bacula can use your tape drive correctly\n" +"\n" +"Perhaps running Bacula in fixed block mode will work.\n" +"Do so by setting:\n" +"\n" +"Minimum Block Size = nnn\n" +"Maximum Block Size = nnn\n" +"\n" +"in your Storage daemon's Device definition.\n" +"nnn must match your tape driver's block size, which\n" +"can be determined by reading your tape manufacturers\n" +"information, and the information on your kernel dirver.\n" +"Fixed block sizes, however, are not normally an ideal solution.\n" +"\n" +"Some systems, e.g. OpenBSD, require you to set\n" +" Use MTIOCGET= no\n" +"in your device resource. Use with caution.\n" +msgstr "" + +#: src/stored/btape.c:1460 +msgid "" +"\n" +"The above Bacula scan should have output identical to what follows.\n" +"Please double check it ...\n" +"=== Sample correct output ===\n" +"1 block of 64448 bytes in file 1\n" +"End of File mark.\n" +"2 blocks of 64448 bytes in file 2\n" +"End of File mark.\n" +"3 blocks of 64448 bytes in file 3\n" +"End of File mark.\n" +"1 block of 64448 bytes in file 4\n" +"End of File mark.\n" +"Total files=4, blocks=7, bytes = 451,136\n" +"=== End sample correct output ===\n" +"\n" +"If the above scan output is not identical to the\n" +"sample output, you MUST correct the problem\n" +"or Bacula will not be able to write multiple Jobs to \n" +"the tape.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1499 +#, c-format +msgid "Bad status from fsf. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1503 +msgid "Forward spaced 1 file.\n" +msgstr "" + +#: src/stored/btape.c:1506 +#, c-format +msgid "Forward spaced %d files.\n" +msgstr "" + +#: src/stored/btape.c:1525 +msgid "Forward spaced 1 record.\n" +msgstr "" + +#: src/stored/btape.c:1528 +#, c-format +msgid "Forward spaced %d records.\n" +msgstr "" + +#: src/stored/btape.c:1573 +#, c-format +msgid "Wrote one record of %d bytes.\n" +msgstr "" + +#: src/stored/btape.c:1575 +msgid "Wrote block to device.\n" +msgstr "" + +#: src/stored/btape.c:1590 +msgid "Enter length to read: " +msgstr "" + +#: src/stored/btape.c:1595 +msgid "Bad length entered, using default of 1024 bytes.\n" +msgstr "" + +#: src/stored/btape.c:1604 +#, c-format +msgid "Read of %d bytes gives stat=%d. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1627 src/stored/btape.c:1676 +#, c-format +msgid "End of tape\n" +msgstr "" + +#: src/stored/btape.c:1632 +#, c-format +msgid "Starting scan at file %u\n" +msgstr "" + +#: src/stored/btape.c:1637 src/stored/dev.c:1314 +#, c-format +msgid "read error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/btape.c:1639 +#, c-format +msgid "Bad status from read %d. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1642 src/stored/btape.c:1656 src/stored/btape.c:1720 +#: src/stored/btape.c:1732 src/stored/btape.c:1745 src/stored/btape.c:1761 +#, c-format +msgid "1 block of %d bytes in file %d\n" +msgstr "" + +#: src/stored/btape.c:1645 src/stored/btape.c:1659 src/stored/btape.c:1723 +#: src/stored/btape.c:1735 src/stored/btape.c:1748 src/stored/btape.c:1764 +#, c-format +msgid "%d blocks of %d bytes in file %d\n" +msgstr "" + +#: src/stored/btape.c:1667 src/stored/btape.c:1739 +#, c-format +msgid "End of File mark.\n" +msgstr "" + +#: src/stored/btape.c:1688 src/stored/btape.c:1792 +#, c-format +msgid "Total files=%d, blocks=%d, bytes = %s\n" +msgstr "" + +#: src/stored/btape.c:1752 +#, c-format +msgid "Short block read.\n" +msgstr "" + +#: src/stored/btape.c:1755 +#, c-format +msgid "Error reading block. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1779 +#, c-format +msgid "" +"Blk_block: %u dev_blk=%u blen=%u First rec FI=%s SessId=%u SessTim=%u Strm=%" +"s rlen=%d\n" +msgstr "" + +#: src/stored/btape.c:1801 +#, c-format +msgid "Device status: %u. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1831 +msgid "" +"\n" +"This command simulates Bacula writing to a tape.\n" +"It requires either one or two blank tapes, which it\n" +"will label and write.\n" +"\n" +"If you have an autochanger configured, it will use\n" +"the tapes that are in slots 1 and 2, otherwise, you will\n" +"be prompted to insert the tapes when necessary.\n" +"\n" +"It will print a status approximately\n" +"every 322 MB, and write an EOF every 3.2 GB. If you have\n" +"selected the simple test option, after writing the first tape\n" +"it will rewind it and re-read the last block written.\n" +"\n" +"If you have selected the multiple tape test, when the first tape\n" +"fills, it will ask for a second, and after writing a few more \n" +"blocks, it will stop. Then it will begin re-reading the\n" +"two tapes.\n" +"\n" +"This may take a long time -- hours! ...\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1848 +msgid "" +"Do you want to run the simplified test (s) with one tape\n" +"or the complete multiple tape (m) test: (s/m) " +msgstr "" + +#: src/stored/btape.c:1851 +msgid "Simple test (single tape) selected.\n" +msgstr "" + +#: src/stored/btape.c:1854 +msgid "Multiple tape test selected.\n" +msgstr "" + +#: src/stored/btape.c:1893 +msgid "Wrote Start of Session label.\n" +msgstr "" + +#: src/stored/btape.c:1924 +#, c-format +msgid "%s Begin writing Bacula records to tape ...\n" +msgstr "" + +#: src/stored/btape.c:1926 +#, c-format +msgid "%s Begin writing Bacula records to first tape ...\n" +msgstr "" + +#: src/stored/btape.c:1967 +#, c-format +msgid "Wrote blk_block=%u, dev_blk_num=%u VolBytes=%s rate=%.1f KB/s\n" +msgstr "" + +#: src/stored/btape.c:1977 +#, c-format +msgid "%s Flush block, write EOF\n" +msgstr "" + +#: src/stored/btape.c:1988 +msgid "Not OK\n" +msgstr "" + +#: src/stored/btape.c:2018 +msgid "Set ok=false after write_block_to_device.\n" +msgstr "" + +#: src/stored/btape.c:2021 +msgid "Wrote End of Session label.\n" +msgstr "" + +#: src/stored/btape.c:2045 +#, c-format +msgid "Wrote state file last_block_num1=%d last_block_num2=%d\n" +msgstr "" + +#: src/stored/btape.c:2049 +#, c-format +msgid "Could not create state file: %s ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:2057 +#, c-format +msgid "" +"\n" +"\n" +"%s Done filling tape at %d:%d. Now beginning re-read of tape ...\n" +msgstr "" + +#: src/stored/btape.c:2061 +#, c-format +msgid "" +"\n" +"\n" +"%s Done filling tapes at %d:%d. Now beginning re-read of first tape ...\n" +msgstr "" + +#: src/stored/btape.c:2100 +msgid "" +"\n" +"The state file level has changed. You must redo\n" +"the fill command.\n" +msgstr "" + +#: src/stored/btape.c:2106 +#, c-format +msgid "" +"\n" +"Could not find the state file: %s ERR=%s\n" +"You must redo the fill command.\n" +msgstr "" + +#: src/stored/btape.c:2162 +msgid "Mount first tape. Press enter when ready: " +msgstr "" + +#: src/stored/btape.c:2177 +msgid "Rewinding.\n" +msgstr "" + +#: src/stored/btape.c:2182 +#, c-format +msgid "Reading the first 10000 records from %u:%u.\n" +msgstr "" + +#: src/stored/btape.c:2186 src/stored/btape.c:2251 +#, c-format +msgid "Reposition from %u:%u to %u:%u\n" +msgstr "" + +#: src/stored/btape.c:2189 src/stored/btape.c:2238 src/stored/btape.c:2254 +#, c-format +msgid "Reposition error. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:2192 +#, c-format +msgid "Reading block %u.\n" +msgstr "" + +#: src/stored/btape.c:2194 src/stored/btape.c:2243 src/stored/btape.c:2259 +#, c-format +msgid "Error reading block: ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:2199 +msgid "" +"\n" +"The last block on the tape matches. Test succeeded.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:2201 +msgid "" +"\n" +"The last block of the first tape matches.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:2224 +msgid "Mount second tape. Press enter when ready: " +msgstr "" + +#: src/stored/btape.c:2236 +#, c-format +msgid "Reposition from %u:%u to 0:1\n" +msgstr "" + +#: src/stored/btape.c:2241 src/stored/btape.c:2257 +#, c-format +msgid "Reading block %d.\n" +msgstr "" + +#: src/stored/btape.c:2247 +msgid "" +"\n" +"The first block on the second tape matches.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:2263 +msgid "" +"\n" +"The last block on the second tape matches. Test succeeded.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:2278 +#, c-format +msgid "10000 records read now at %d:%d\n" +msgstr "" + +#: src/stored/btape.c:2301 src/stored/btape.c:2312 src/stored/btape.c:2360 +msgid "Last block written" +msgstr "" + +#: src/stored/btape.c:2303 src/stored/btape.c:2313 +msgid "Block read back" +msgstr "" + +#: src/stored/btape.c:2304 +#, c-format +msgid "" +"\n" +"\n" +"The blocks differ at byte %u\n" +msgstr "" + +#: src/stored/btape.c:2305 +msgid "" +"\n" +"\n" +"!!!! The last block written and the block\n" +"that was read back differ. The test FAILED !!!!\n" +"This must be corrected before you use Bacula\n" +"to write multi-tape Volumes.!!!!\n" +msgstr "" + +#: src/stored/btape.c:2344 +#, c-format +msgid "Last block at: %u:%u this_dev_block_num=%d\n" +msgstr "" + +#: src/stored/btape.c:2358 +#, c-format +msgid "Block not written: FileIndex=%u blk_block=%u Size=%u\n" +msgstr "" + +#: src/stored/btape.c:2362 +msgid "Block not written" +msgstr "" + +#: src/stored/btape.c:2377 +#, c-format +msgid "End of tape %d:%d. VolumeCapacity=%s. Write rate = %.1f KB/s\n" +msgstr "" + +#: src/stored/btape.c:2427 +msgid "Test writing blocks of 64512 bytes to tape.\n" +msgstr "" + +#: src/stored/btape.c:2429 +msgid "How many blocks do you want to write? (1000): " +msgstr "" + +#: src/stored/btape.c:2444 +#, c-format +msgid "Begin writing %d Bacula blocks to tape ...\n" +msgstr "" + +#: src/stored/btape.c:2496 +#, c-format +msgid "Begin writing raw blocks of %u bytes.\n" +msgstr "" + +#: src/stored/btape.c:2520 +#, c-format +msgid "Write failed at block %u. stat=%d ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:2529 +msgid "test autochanger" +msgstr "" + +#: src/stored/btape.c:2530 +msgid "backspace file" +msgstr "" + +#: src/stored/btape.c:2531 +msgid "backspace record" +msgstr "" + +#: src/stored/btape.c:2532 +msgid "list device capabilities" +msgstr "" + +#: src/stored/btape.c:2533 +msgid "clear tape errors" +msgstr "" + +#: src/stored/btape.c:2534 +msgid "go to end of Bacula data for append" +msgstr "" + +#: src/stored/btape.c:2535 +msgid "go to the physical end of medium" +msgstr "" + +#: src/stored/btape.c:2536 +msgid "fill tape, write onto second volume" +msgstr "" + +#: src/stored/btape.c:2537 +msgid "read filled tape" +msgstr "" + +#: src/stored/btape.c:2538 +msgid "forward space a file" +msgstr "" + +#: src/stored/btape.c:2539 +msgid "forward space a record" +msgstr "" + +#: src/stored/btape.c:2541 +msgid "write a Bacula label to the tape" +msgstr "" + +#: src/stored/btape.c:2542 +msgid "load a tape" +msgstr "" + +#: src/stored/btape.c:2543 +msgid "quit btape" +msgstr "" + +#: src/stored/btape.c:2544 +msgid "use write() to fill tape" +msgstr "" + +#: src/stored/btape.c:2545 +msgid "read and print the Bacula tape label" +msgstr "" + +#: src/stored/btape.c:2546 +msgid "test record handling functions" +msgstr "" + +#: src/stored/btape.c:2547 +msgid "rewind the tape" +msgstr "" + +#: src/stored/btape.c:2548 +msgid "read() tape block by block to EOT and report" +msgstr "" + +#: src/stored/btape.c:2549 +msgid "Bacula read block by block to EOT and report" +msgstr "" + +#: src/stored/btape.c:2550 +msgid "print tape status" +msgstr "" + +#: src/stored/btape.c:2551 +msgid "General test Bacula tape functions" +msgstr "" + +#: src/stored/btape.c:2552 +msgid "write an EOF on the tape" +msgstr "" + +#: src/stored/btape.c:2553 +msgid "write a single Bacula block" +msgstr "" + +#: src/stored/btape.c:2554 +msgid "read a single record" +msgstr "" + +#: src/stored/btape.c:2555 +msgid "read a single Bacula block" +msgstr "" + +#: src/stored/btape.c:2556 +msgid "quick fill command" +msgstr "" + +#: src/stored/btape.c:2577 +#, c-format +msgid "\"%s\" is an invalid command\n" +msgstr "" + +#: src/stored/btape.c:2586 +#, c-format +msgid "Interactive commands:\n" +msgstr "" + +#: src/stored/btape.c:2597 +#, c-format +msgid "" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: btape \n" +" -b specify bootstrap file\n" +" -c set configuration file to file\n" +" -d set debug level to nn\n" +" -p proceed inspite of I/O errors\n" +" -s turn off signals\n" +" -v be verbose\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:2682 +#, c-format +msgid "Mount second Volume on device %s and press return when ready: " +msgstr "" + +#: src/stored/btape.c:2709 +#, c-format +msgid "Mount blank Volume on device %s and press return when ready: " +msgstr "" + +#: src/stored/btape.c:2727 +#, c-format +msgid "End of Volume \"%s\" %d records.\n" +msgstr "" + +#: src/stored/btape.c:2740 +#, c-format +msgid "Read block=%u, VolBytes=%s rate=%.1f KB/s\n" +msgstr "" + +#: src/stored/btape.c:2752 src/stored/mount.c:627 +#, c-format +msgid "Cannot open Dev=%s, Vol=%s\n" +msgstr "" + +#: src/stored/butil.c:59 +msgid "Nohdr," +msgstr "" + +#: src/stored/butil.c:62 +msgid "partial," +msgstr "" + +#: src/stored/butil.c:65 +msgid "empty," +msgstr "" + +#: src/stored/butil.c:68 +msgid "Nomatch," +msgstr "" + +#: src/stored/butil.c:71 +msgid "cont," +msgstr "" + +#: src/stored/butil.c:147 +msgid "Volume name or names is too long. Please use a .bsr file.\n" +msgstr "" + +#: src/stored/butil.c:167 +#, c-format +msgid "Cannot find device \"%s\" in config file %s.\n" +msgstr "" + +#: src/stored/butil.c:174 +#, c-format +msgid "Cannot init device %s\n" +msgstr "" + +#: src/stored/butil.c:194 +#, c-format +msgid "Cannot open %s\n" +msgstr "" + +#: src/stored/butil.c:277 +#, c-format +msgid "Could not find device \"%s\" in config file %s.\n" +msgstr "" + +#: src/stored/butil.c:282 +#, c-format +msgid "Using device: \"%s\" for reading.\n" +msgstr "" + +#: src/stored/butil.c:285 +#, c-format +msgid "Using device: \"%s\" for writing.\n" +msgstr "" + +#: src/stored/butil.c:301 +msgid "Unexpected End of Data\n" +msgstr "" + +#: src/stored/butil.c:303 +msgid "Unexpected End of Tape\n" +msgstr "" + +#: src/stored/butil.c:305 +msgid "Unexpected End of File\n" +msgstr "" + +#: src/stored/butil.c:307 +msgid "Tape Door is Open\n" +msgstr "" + +#: src/stored/butil.c:309 +msgid "Unexpected Tape is Off-line\n" +msgstr "" + +#: src/stored/dev.c:119 +#, c-format +msgid "Unable to stat device %s: ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:130 +#, c-format +msgid "" +"%s is an unknown device type. Must be tape or directory\n" +" or have RequiresMount=yes for DVD. st_mode=%x\n" +msgstr "" + +#: src/stored/dev.c:189 +#, c-format +msgid "Unable to stat mount point %s: ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:195 +msgid "" +"Mount and unmount commands must defined for a device which requires mount.\n" +msgstr "" + +#: src/stored/dev.c:198 +msgid "Write part command must be defined for a device which requires mount.\n" +msgstr "" + +#: src/stored/dev.c:203 +#, c-format +msgid "Block size %u on device %s is too large, using default %u\n" +msgstr "" + +#: src/stored/dev.c:208 +#, c-format +msgid "Max block size %u not multiple of device %s block size.\n" +msgstr "" + +#: src/stored/dev.c:224 src/stored/dev.c:230 +#, c-format +msgid "Unable to init cond variable: ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:326 +msgid "Illegal mode given to open dev.\n" +msgstr "" + +#: src/stored/dev.c:421 src/stored/device.c:325 +#, c-format +msgid "Unable to open device %s: ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:456 +#, c-format +msgid "Could not open file device %s. No Volume name given.\n" +msgstr "" + +#: src/stored/dev.c:479 src/stored/dev.c:647 +#, c-format +msgid "Could not open: %s, ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:523 +#, c-format +msgid "Could not open DVD device %s. No Volume name given.\n" +msgstr "" + +#: src/stored/dev.c:572 +#, c-format +msgid "The DVD in device %s contains data, please blank it before writing.\n" +msgstr "" + +#: src/stored/dev.c:593 +#, c-format +msgid "Unable to stat DVD part 1 file %s: ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:601 +#, c-format +msgid "DVD part 1 is not a regular file %s.\n" +msgstr "" + +#: src/stored/dev.c:621 +#, c-format +msgid "There is no valid DVD in device %s.\n" +msgstr "" + +#: src/stored/dev.c:627 +#, c-format +msgid "Could not mount DVD device %s.\n" +msgstr "" + +#: src/stored/dev.c:677 +#, c-format +msgid "Could not fstat: %s, ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:711 +#, c-format +msgid "Bad call to rewind. Device %s not open\n" +msgstr "" + +#: src/stored/dev.c:750 +#, c-format +msgid "No tape loaded or drive offline on %s.\n" +msgstr "" + +#: src/stored/dev.c:760 +#, c-format +msgid "Rewind error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:770 src/stored/dev.c:848 src/stored/dev.c:985 +#: src/stored/dev.c:1561 +#, c-format +msgid "lseek error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:819 +#, c-format +msgid "Bad call to eod. Device %s not open\n" +msgstr "" + +#: src/stored/dev.c:884 +#, c-format +msgid "ioctl MTEOM error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:893 src/stored/dev.c:1026 +#, c-format +msgid "ioctl MTIOCGET error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:971 +msgid "Bad device call. Device not open\n" +msgstr "" + +#: src/stored/dev.c:984 +#, c-format +msgid "Seek error: ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:1021 +msgid " Bacula status:" +msgstr "" + +#: src/stored/dev.c:1022 src/stored/dev.c:1105 src/stored/dev.c:1107 +#, c-format +msgid " file=%d block=%d\n" +msgstr "" + +#: src/stored/dev.c:1030 +msgid " Device status:" +msgstr "" + +#: src/stored/dev.c:1129 +msgid "Bad call to load_dev. Device not open\n" +msgstr "" + +#: src/stored/dev.c:1140 src/stored/dev.c:1153 +#, c-format +msgid "ioctl MTLOAD error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:1184 +#, c-format +msgid "ioctl MTOFFL error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:1225 +msgid "Bad call to fsf. Device not open\n" +msgstr "" + +#: src/stored/dev.c:1236 src/stored/dev.c:1363 +#, c-format +msgid "Device %s at End of Tape.\n" +msgstr "" + +#: src/stored/dev.c:1267 src/stored/dev.c:1343 +#, c-format +msgid "ioctl MTFSF error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:1392 +msgid "Bad call to bsf. Device not open\n" +msgstr "" + +#: src/stored/dev.c:1398 +#, c-format +msgid "Device %s cannot BSF because it is not a tape.\n" +msgstr "" + +#: src/stored/dev.c:1415 +#, c-format +msgid "ioctl MTBSF error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:1434 +msgid "Bad call to fsr. Device not open\n" +msgstr "" + +#: src/stored/dev.c:1444 +#, c-format +msgid "ioctl MTFSR not permitted on %s.\n" +msgstr "" + +#: src/stored/dev.c:1472 +#, c-format +msgid "ioctl MTFSR %d error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:1490 +msgid "Bad call to bsr_dev. Device not open\n" +msgstr "" + +#: src/stored/dev.c:1500 +#, c-format +msgid "ioctl MTBSR not permitted on %s.\n" +msgstr "" + +#: src/stored/dev.c:1514 +#, c-format +msgid "ioctl MTBSR error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:1550 +msgid "Bad call to reposition. Device not open\n" +msgstr "" + +#: src/stored/dev.c:1629 +msgid "Bad call to weof_dev. Device not open\n" +msgstr "" + +#: src/stored/dev.c:1639 +msgid "Attempt to WEOF on non-appendable Volume\n" +msgstr "" + +#: src/stored/dev.c:1657 +#, c-format +msgid "ioctl MTWEOF error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:1756 +#, c-format +msgid "unknown func code %d" +msgstr "" + +#: src/stored/dev.c:1762 +#, c-format +msgid "I/O function \"%s\" not supported on this device.\n" +msgstr "" + +#: src/stored/dev.c:1917 +#, c-format +msgid "Unable to truncate device %s. ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:2016 src/stored/dev.c:2021 +#, c-format +msgid "Device %s cannot be %smounted. ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:2429 +#, c-format +msgid "Unable to set eotmodel on device %s: ERR=%s\n" +msgstr "" + +#: src/stored/device.c:120 +#, c-format +msgid "End of medium on Volume \"%s\" Bytes=%s Blocks=%s at %s.\n" +msgstr "" + +#: src/stored/device.c:136 +#, c-format +msgid "New volume \"%s\" mounted on device %s at %s.\n" +msgstr "" + +#: src/stored/device.c:148 +#, c-format +msgid "write_block_to_device Volume label failed. ERR=%s" +msgstr "" + +#: src/stored/device.c:183 +#, c-format +msgid "write_block_to_device overflow block failed. ERR=%s" +msgstr "" + +#: src/stored/device.c:327 +#, c-format +msgid "Unable to open archive %s: ERR=%s\n" +msgstr "" + +#: src/stored/dircmd.c:154 +msgid "Connection request failed.\n" +msgstr "" + +#: src/stored/dircmd.c:163 +#, c-format +msgid "Invalid connection. Len=%d\n" +msgstr "" + +#: src/stored/dircmd.c:274 +#, c-format +msgid "3991 Bad setdebug command: %s\n" +msgstr "" + +#: src/stored/dircmd.c:295 +#, c-format +msgid "3904 Job %s not found.\n" +msgstr "" + +#: src/stored/dircmd.c:321 +#, c-format +msgid "Job %s marked to be canceled.\n" +msgstr "" + +#: src/stored/dircmd.c:322 +#, c-format +msgid "3000 Job %s marked to be canceled.\n" +msgstr "" + +#: src/stored/dircmd.c:326 +msgid "3903 Error scanning cancel command.\n" +msgstr "" + +#: src/stored/dircmd.c:402 src/stored/dircmd.c:758 src/stored/dircmd.c:848 +#: src/stored/dircmd.c:920 src/stored/dircmd.c:983 src/stored/dircmd.c:1026 +#, c-format +msgid "3999 Device \"%s\" not found or could not be opened.\n" +msgstr "" + +#: src/stored/dircmd.c:407 +#, c-format +msgid "3903 Error scanning label command: %s\n" +msgstr "" + +#: src/stored/dircmd.c:457 +#, c-format +msgid "3910 Unable to open device %s: ERR=%s\n" +msgstr "" + +#: src/stored/dircmd.c:474 +#, c-format +msgid "3920 Cannot label Volume because it is already labeled: \"%s\"\n" +msgstr "" + +#: src/stored/dircmd.c:481 +msgid "3921 Wrong volume mounted.\n" +msgstr "" + +#: src/stored/dircmd.c:485 +msgid "3922 Cannot relabel an ANSI/IBM labeled Volume.\n" +msgstr "" + +#: src/stored/dircmd.c:493 +#, c-format +msgid "3912 Failed to label Volume: ERR=%s\n" +msgstr "" + +#: src/stored/dircmd.c:503 +#, c-format +msgid "3914 Failed to label Volume (no media): ERR=%s\n" +msgstr "" + +#: src/stored/dircmd.c:506 +#, c-format +msgid "3913 Cannot label Volume. Unknown status %d from read_volume_label()\n" +msgstr "" + +#: src/stored/dircmd.c:539 +#, c-format +msgid "3001 Mounted Volume: %s\n" +msgstr "" + +#: src/stored/dircmd.c:543 src/stored/dircmd.c:1062 +#, c-format +msgid "" +"3902 Cannot mount Volume on Storage Device %s because:\n" +"%s" +msgstr "" + +#: src/stored/dircmd.c:571 src/stored/reserve.c:1073 +#, c-format +msgid "" +"\n" +" Device \"%s\" requested by DIR could not be opened or does not exist.\n" +msgstr "" + +#: src/stored/dircmd.c:593 src/stored/reserve.c:1069 +#, c-format +msgid "" +"\n" +" Device \"%s\" in changer \"%s\" requested by DIR could not be opened or " +"does not exist.\n" +msgstr "" + +#: src/stored/dircmd.c:668 src/stored/dircmd.c:725 +#, c-format +msgid "3901 open device failed: ERR=%s\n" +msgstr "" + +#: src/stored/dircmd.c:688 src/stored/dircmd.c:716 +#, c-format +msgid "3001 Device %s is mounted with Volume \"%s\"\n" +msgstr "" + +#: src/stored/dircmd.c:691 src/stored/dircmd.c:719 src/stored/dircmd.c:734 +#, c-format +msgid "" +"3905 Device %s open but no Bacula volume is mounted.\n" +"If this is not a blank tape, try unmounting and remounting the Volume.\n" +msgstr "" + +#: src/stored/dircmd.c:701 +#, c-format +msgid "3001 Device %s is doing acquire.\n" +msgstr "" + +#: src/stored/dircmd.c:706 src/stored/dircmd.c:820 +#, c-format +msgid "3903 Device %s is being labeled.\n" +msgstr "" + +#: src/stored/dircmd.c:731 +#, c-format +msgid "3001 Device %s is already mounted with Volume \"%s\"\n" +msgstr "" + +#: src/stored/dircmd.c:740 +#, c-format +msgid "3002 Device %s is mounted.\n" +msgstr "" + +#: src/stored/dircmd.c:743 src/stored/dircmd.c:793 src/stored/dircmd.c:808 +#: src/stored/dircmd.c:839 +#, c-format +msgid "3907 %s" +msgstr "" + +#: src/stored/dircmd.c:746 +#, c-format +msgid "3906 File device %s is always mounted.\n" +msgstr "" + +#: src/stored/dircmd.c:752 +#, c-format +msgid "3905 Bizarre wait state %d\n" +msgstr "" + +#: src/stored/dircmd.c:762 +#, c-format +msgid "3909 Error scanning mount command: %s\n" +msgstr "" + +#: src/stored/dircmd.c:790 src/stored/dircmd.c:841 +#, c-format +msgid "3002 Device %s unmounted.\n" +msgstr "" + +#: src/stored/dircmd.c:797 +#, c-format +msgid "3901 Device %s is already unmounted.\n" +msgstr "" + +#: src/stored/dircmd.c:811 +#, c-format +msgid "3001 Device %s unmounted.\n" +msgstr "" + +#: src/stored/dircmd.c:816 +#, c-format +msgid "3902 Device %s is busy in acquire.\n" +msgstr "" + +#: src/stored/dircmd.c:853 +#, c-format +msgid "3907 Error scanning unmount command: %s\n" +msgstr "" + +#: src/stored/dircmd.c:884 +#, c-format +msgid "3921 Device %s already released.\n" +msgstr "" + +#: src/stored/dircmd.c:891 +#, c-format +msgid "3922 Device %s waiting for sysop.\n" +msgstr "" + +#: src/stored/dircmd.c:897 +#, c-format +msgid "3922 Device %s waiting for mount.\n" +msgstr "" + +#: src/stored/dircmd.c:901 +#, c-format +msgid "3923 Device %s is busy in acquire.\n" +msgstr "" + +#: src/stored/dircmd.c:905 +#, c-format +msgid "3914 Device %s is being labeled.\n" +msgstr "" + +#: src/stored/dircmd.c:914 +#, c-format +msgid "3022 Device %s released.\n" +msgstr "" + +#: src/stored/dircmd.c:925 +#, c-format +msgid "3927 Error scanning release command: %s\n" +msgstr "" + +#: src/stored/dircmd.c:970 +#, c-format +msgid "3995 Device %s is not an autochanger.\n" +msgstr "" + +#: src/stored/dircmd.c:987 +#, c-format +msgid "3908 Error scanning autocharger drives/list/slots command: %s\n" +msgstr "" + +#: src/stored/dircmd.c:1030 +#, c-format +msgid "3909 Error scanning readlabel command: %s\n" +msgstr "" + +#: src/stored/dircmd.c:1058 +#, c-format +msgid "3001 Volume=%s Slot=%d\n" +msgstr "" + +#: src/stored/dircmd.c:1090 +#, c-format +msgid "3931 Device %s is BLOCKED. user unmounted.\n" +msgstr "" + +#: src/stored/dircmd.c:1094 +#, c-format +msgid "" +"3932 Device %s is BLOCKED. user unmounted during wait for media/mount.\n" +msgstr "" + +#: src/stored/dircmd.c:1098 +#, c-format +msgid "3933 Device %s is BLOCKED waiting for media.\n" +msgstr "" + +#: src/stored/dircmd.c:1102 +#, c-format +msgid "3934 Device %s is being initialized.\n" +msgstr "" + +#: src/stored/dircmd.c:1106 +#, c-format +msgid "3935 Device %s is blocked labeling a Volume.\n" +msgstr "" + +#: src/stored/dircmd.c:1110 +#, c-format +msgid "3935 Device %s is blocked for unknown reason.\n" +msgstr "" + +#: src/stored/dircmd.c:1115 +#, c-format +msgid "3936 Device %s is busy reading.\n" +msgstr "" + +#: src/stored/dircmd.c:1118 +#, c-format +msgid "3937 Device %s is busy with %d writer(s).\n" +msgstr "" + +#: src/stored/dvd.c:112 +msgid "No FreeSpace command defined.\n" +msgstr "" + +#: src/stored/dvd.c:146 +#, c-format +msgid "Cannot run free space command. Results=%s ERR=%s\n" +msgstr "" + +#: src/stored/dvd.c:262 +#, c-format +msgid "Error writing part %d to the DVD: ERR=%s\n" +msgstr "" + +#: src/stored/dvd.c:264 +#, c-format +msgid "Error while writing current part to the DVD: %s" +msgstr "" + +#: src/stored/dvd.c:274 +#, c-format +msgid "Part %d (%lld bytes) written to DVD.\n" +msgstr "" + +#: src/stored/dvd.c:293 +#, c-format +msgid "Remaining free space %s on %s\n" +msgstr "" + +#: src/stored/dvd.c:359 +#, c-format +msgid "Next Volume part already exists on DVD. Cannot continue: %s\n" +msgstr "" + +#: src/stored/dvd.c:378 +#, c-format +msgid "open_next_part can't unlink existing part %s, ERR=%s\n" +msgstr "" + +#: src/stored/dvd.c:579 +#, c-format +msgid "" +"Error writing. Current part less than total number of parts (%d/%d, device=%" +"s)\n" +msgstr "" + +#: src/stored/dvd.c:586 +#, c-format +msgid "Unable to write last on %s: ERR=%s\n" +msgstr "" + +#: src/stored/fd_cmds.c:368 +msgid "Error parsing bootstrap file.\n" +msgstr "" + +#: src/stored/job.c:207 +#, c-format +msgid "Job name not found: %s\n" +msgstr "" + +#: src/stored/job.c:218 +#, c-format +msgid "Hey!!!! JobId %u Job %s already authenticated.\n" +msgstr "" + +#: src/stored/job.c:229 +msgid "Unable to authenticate File daemon\n" +msgstr "" + +#: src/stored/job.c:351 +msgid "In free_jcr(), but still attached to device!!!!\n" +msgstr "" + +#: src/stored/label.c:91 src/stored/label.c:132 src/stored/label.c:226 +#, c-format +msgid "Wrong Volume mounted on device %s: Wanted %s have %s\n" +msgstr "" + +#: src/stored/label.c:98 src/stored/label.c:135 src/stored/label.c:208 +#, c-format +msgid "Too many tries: %s" +msgstr "" + +#: src/stored/label.c:114 +#, c-format +msgid "Couldn't rewind device %s: ERR=%s\n" +msgstr "" + +#: src/stored/label.c:152 +#, c-format +msgid "" +"Requested Volume \"%s\" on %s is not a Bacula labeled Volume, because: ERR=%s" +msgstr "" + +#: src/stored/label.c:157 +msgid "Could not read Volume label from block.\n" +msgstr "" + +#: src/stored/label.c:160 +#, c-format +msgid "Could not unserialize Volume label: ERR=%s\n" +msgstr "" + +#: src/stored/label.c:165 +#, c-format +msgid "Volume Header Id bad: %s\n" +msgstr "" + +#: src/stored/label.c:193 +#, c-format +msgid "Volume on %s has wrong Bacula version. Wanted %d got %d\n" +msgstr "" + +#: src/stored/label.c:204 +#, c-format +msgid "Volume on %s has bad Bacula label type: %x\n" +msgstr "" + +#: src/stored/label.c:217 src/stored/label.c:402 +#, c-format +msgid "Could not reserve volume %s on %s\n" +msgstr "" + +#: src/stored/label.c:290 +#, c-format +msgid "Cannot write Volume label to block for device %s\n" +msgstr "" + +#: src/stored/label.c:449 +#, c-format +msgid "Rewind error on device %s: ERR=%s\n" +msgstr "" + +#: src/stored/label.c:455 +#, c-format +msgid "Truncate error on device %s: ERR=%s\n" +msgstr "" + +#: src/stored/label.c:461 +#, c-format +msgid "Failed to re-open DVD after truncate on device %s: ERR=%s\n" +msgstr "" + +#: src/stored/label.c:484 +#, c-format +msgid "Unable to write device %s: ERR=%s\n" +msgstr "" + +#: src/stored/label.c:512 +#, c-format +msgid "Recycled volume \"%s\" on device %s, all previous data lost.\n" +msgstr "" + +#: src/stored/label.c:515 +#, c-format +msgid "Wrote label to prelabeled Volume \"%s\" on device %s\n" +msgstr "" + +#: src/stored/label.c:719 +#, c-format +msgid "Bad session label = %d\n" +msgstr "" + +#: src/stored/label.c:737 src/stored/label.c:744 +#, c-format +msgid "Error writing Session label to %s: %s\n" +msgstr "" + +#: src/stored/label.c:779 +#, c-format +msgid "Expecting Volume Label, got FI=%s Stream=%s len=%d\n" +msgstr "" + +#: src/stored/label.c:906 +#, c-format +msgid "Unknown %d" +msgstr "" + +#: src/stored/label.c:910 +#, c-format +msgid "" +"\n" +"Volume Label:\n" +"Id : %sVerNo : %d\n" +"VolName : %s\n" +"PrevVolName : %s\n" +"VolFile : %d\n" +"LabelType : %s\n" +"LabelSize : %d\n" +"PoolName : %s\n" +"MediaType : %s\n" +"PoolType : %s\n" +"HostName : %s\n" +msgstr "" + +#: src/stored/label.c:932 +#, c-format +msgid "Date label written: %s\n" +msgstr "" + +#: src/stored/label.c:938 +#, c-format +msgid "Date label written: %04d-%02d-%02d at %02d:%02d\n" +msgstr "" + +#: src/stored/label.c:958 +#, c-format +msgid "" +"\n" +"%s Record:\n" +"JobId : %d\n" +"VerNum : %d\n" +"PoolName : %s\n" +"PoolType : %s\n" +"JobName : %s\n" +"ClientName : %s\n" +msgstr "" + +#: src/stored/label.c:971 +#, c-format +msgid "" +"Job (unique name) : %s\n" +"FileSet : %s\n" +"JobType : %c\n" +"JobLevel : %c\n" +msgstr "" + +#: src/stored/label.c:980 +#, c-format +msgid "" +"JobFiles : %s\n" +"JobBytes : %s\n" +"StartBlock : %s\n" +"EndBlock : %s\n" +"StartFile : %s\n" +"EndFile : %s\n" +"JobErrors : %s\n" +"JobStatus : %c\n" +msgstr "" + +#: src/stored/label.c:1001 +#, c-format +msgid "Date written : %s\n" +msgstr "" + +#: src/stored/label.c:1006 +#, c-format +msgid "Date written : %04d-%02d-%02d at %02d:%02d\n" +msgstr "" + +#: src/stored/label.c:1025 +msgid "Fresh Volume" +msgstr "" + +#: src/stored/label.c:1028 +msgid "Volume" +msgstr "" + +#: src/stored/label.c:1037 src/stored/read_record.c:402 +msgid "End of Media" +msgstr "" + +#: src/stored/label.c:1040 +msgid "End of Tape" +msgstr "" + +#: src/stored/label.c:1060 src/stored/label.c:1068 src/stored/label.c:1101 +#, c-format +msgid "%s Record: File:blk=%u:%u SessId=%d SessTime=%d JobId=%d DataLen=%d\n" +msgstr "" + +#: src/stored/label.c:1065 +msgid "End of physical tape.\n" +msgstr "" + +#: src/stored/label.c:1080 src/stored/label.c:1089 +#, c-format +msgid "%s Record: File:blk=%u:%u SessId=%d SessTime=%d JobId=%d\n" +msgstr "" + +#: src/stored/label.c:1082 +#, c-format +msgid " Job=%s Date=%s Level=%c Type=%c\n" +msgstr "" + +#: src/stored/label.c:1091 +#, c-format +msgid " Date=%s Level=%c Type=%c Files=%s Bytes=%s Errors=%d Status=%c\n" +msgstr "" + +#: src/stored/mac.c:79 +msgid "Read and write devices not properly initialized.\n" +msgstr "" + +#: src/stored/mac.c:87 +#, c-format +msgid "No Volume names found for %s.\n" +msgstr "" + +#: src/stored/mount.c:90 +#, c-format +msgid "Too many errors trying to mount device %s.\n" +msgstr "" + +#: src/stored/mount.c:96 +#, c-format +msgid "Job %d canceled.\n" +msgstr "" + +#: src/stored/mount.c:211 +#, c-format +msgid "Could not open device %s: ERR=%s\n" +msgstr "" + +#: src/stored/mount.c:254 src/stored/mount.c:533 +#, c-format +msgid "Volume \"%s\" not on device %s.\n" +msgstr "" + +#: src/stored/mount.c:292 +#, c-format +msgid "" +"Director wanted Volume \"%s\".\n" +" Current Volume \"%s\" not acceptable because:\n" +" %s" +msgstr "" + +#: src/stored/mount.c:375 +#, c-format +msgid "Volume \"%s\" previously written, moving to end of data.\n" +msgstr "" + +#: src/stored/mount.c:378 +#, c-format +msgid "Unable to position to end of data on device %s: ERR=%s\n" +msgstr "" + +#: src/stored/mount.c:386 +#, c-format +msgid "Ready to append to end of Volume \"%s\" part=%d size=%s\n" +msgstr "" + +#: src/stored/mount.c:390 +#, c-format +msgid "" +"Bacula cannot write on DVD Volume \"%s\" because: The sizes do not match! " +"Volume=%s Catalog=%s\n" +msgstr "" + +#: src/stored/mount.c:404 +#, c-format +msgid "Ready to append to end of Volume \"%s\" at file=%d.\n" +msgstr "" + +#: src/stored/mount.c:407 +#, c-format +msgid "" +"Bacula cannot write on tape Volume \"%s\" because:\n" +"The number of files mismatch! Volume=%u Catalog=%u\n" +msgstr "" + +#: src/stored/mount.c:418 +#, c-format +msgid "Ready to append to end of Volume \"%s\" size=%s\n" +msgstr "" + +#: src/stored/mount.c:422 +#, c-format +msgid "" +"Bacula cannot write on disk Volume \"%s\" because: The sizes do not match! " +"Volume=%s Catalog=%s\n" +msgstr "" + +#: src/stored/mount.c:452 +#, c-format +msgid "Ready to append to end of Volume \"%s\" at file address=%u.\n" +msgstr "" + +#: src/stored/mount.c:456 +#, c-format +msgid "" +"Bacula cannot write on Volume \"%s\" because:\n" +"The EOD file address is wrong: Volume file address=%u != Catalog Endblock=%u" +"(+1)\n" +"Perhaps You removed the DVD last part in spool directory.\n" +msgstr "" + +#: src/stored/mount.c:523 +#, c-format +msgid "Labeled new Volume \"%s\" on device %s.\n" +msgstr "" + +#: src/stored/mount.c:528 +#, c-format +msgid "Device %s not configured to autolabel Volumes.\n" +msgstr "" + +#: src/stored/mount.c:548 +#, c-format +msgid "Marking Volume \"%s\" in Error in Catalog.\n" +msgstr "" + +#: src/stored/mount.c:564 +#, c-format +msgid "" +"Autochanger Volume \"%s\" not found in slot %d.\n" +" Setting InChanger to zero in catalog.\n" +msgstr "" + +#: src/stored/mount.c:583 +msgid "Hey!!!!! WroteVol non-zero !!!!!\n" +msgstr "" + +#: src/stored/parse_bsr.c:118 src/stored/parse_bsr.c:122 +#, c-format +msgid "" +"Bootstrap file error: %s\n" +" : Line %d, col %d of file %s\n" +"%s\n" +msgstr "" + +#: src/stored/parse_bsr.c:144 +#, c-format +msgid "Cannot open bootstrap file %s: %s\n" +msgstr "" + +#: src/stored/parse_bsr.c:274 +#, c-format +msgid "MediaType %s in bsr at inappropriate place.\n" +msgstr "" + +#: src/stored/parse_bsr.c:295 +#, c-format +msgid "Device \"%s\" in bsr at inappropriate place.\n" +msgstr "" + +#: src/stored/parse_bsr.c:452 +msgid "JobType not yet implemented\n" +msgstr "" + +#: src/stored/parse_bsr.c:460 +msgid "JobLevel not yet implemented\n" +msgstr "" + +#: src/stored/parse_bsr.c:643 +#, c-format +msgid "Slot %d in bsr at inappropriate place.\n" +msgstr "" + +#: src/stored/parse_bsr.c:667 +#, c-format +msgid "VolFile : %u-%u\n" +msgstr "" + +#: src/stored/parse_bsr.c:675 +#, c-format +msgid "VolBlock : %u-%u\n" +msgstr "" + +#: src/stored/parse_bsr.c:685 +#, c-format +msgid "FileIndex : %u\n" +msgstr "" + +#: src/stored/parse_bsr.c:687 +#, c-format +msgid "FileIndex : %u-%u\n" +msgstr "" + +#: src/stored/parse_bsr.c:697 +#, c-format +msgid "JobId : %u\n" +msgstr "" + +#: src/stored/parse_bsr.c:699 +#, c-format +msgid "JobId : %u-%u\n" +msgstr "" + +#: src/stored/parse_bsr.c:709 +#, c-format +msgid "SessId : %u\n" +msgstr "" + +#: src/stored/parse_bsr.c:711 +#, c-format +msgid "SessId : %u-%u\n" +msgstr "" + +#: src/stored/parse_bsr.c:720 +#, c-format +msgid "VolumeName : %s\n" +msgstr "" + +#: src/stored/parse_bsr.c:721 +#, c-format +msgid " MediaType : %s\n" +msgstr "" + +#: src/stored/parse_bsr.c:722 +#, c-format +msgid " Device : %s\n" +msgstr "" + +#: src/stored/parse_bsr.c:723 +#, c-format +msgid " Slot : %d\n" +msgstr "" + +#: src/stored/parse_bsr.c:732 +#, c-format +msgid "Client : %s\n" +msgstr "" + +#: src/stored/parse_bsr.c:740 +#, c-format +msgid "Job : %s\n" +msgstr "" + +#: src/stored/parse_bsr.c:748 +#, c-format +msgid "SessTime : %u\n" +msgstr "" + +#: src/stored/parse_bsr.c:759 +msgid "BSR is NULL\n" +msgstr "" + +#: src/stored/parse_bsr.c:763 +#, c-format +msgid "Next : 0x%x\n" +msgstr "" + +#: src/stored/parse_bsr.c:764 +#, c-format +msgid "Root bsr : 0x%x\n" +msgstr "" + +#: src/stored/parse_bsr.c:775 +#, c-format +msgid "count : %u\n" +msgstr "" + +#: src/stored/parse_bsr.c:776 +#, c-format +msgid "found : %u\n" +msgstr "" + +#: src/stored/parse_bsr.c:779 +#, c-format +msgid "done : %s\n" +msgstr "" + +#: src/stored/parse_bsr.c:780 +#, c-format +msgid "positioning : %d\n" +msgstr "" + +#: src/stored/parse_bsr.c:781 +#, c-format +msgid "fast_reject : %d\n" +msgstr "" + +#: src/stored/pythonsd.c:210 +msgid "Error in ParseTuple\n" +msgstr "" + +#: src/stored/pythonsd.c:226 +msgid "Parse tuple error in job_write\n" +msgstr "" + +#: src/stored/pythonsd.c:263 +#, c-format +msgid "Error in Python method %s\n" +msgstr "" + +#: src/stored/read.c:68 +msgid "No Volume names found for restore.\n" +msgstr "" + +#: src/stored/read.c:122 +#, c-format +msgid ">filed: Error Hdr=%s\n" +msgstr "" + +#: src/stored/read.c:123 src/stored/read.c:138 +#, c-format +msgid "Error sending to File daemon. ERR=%s\n" +msgstr "" + +#: src/stored/read.c:137 +#, c-format +msgid "Error sending to FD. ERR=%s\n" +msgstr "" + +#: src/stored/read_record.c:83 +#, c-format +msgid "End of Volume at file %u on device %s, Volume \"%s\"\n" +msgstr "" + +#: src/stored/read_record.c:86 +msgid "End of all volumes.\n" +msgstr "" + +#: src/stored/read_record.c:129 +msgid "part" +msgstr "" + +#: src/stored/read_record.c:132 +msgid "file" +msgstr "" + +#: src/stored/read_record.c:135 +#, c-format +msgid "End of %s %u on device %s, Volume \"%s\"\n" +msgstr "" + +#: src/stored/read_record.c:149 +msgid "Did fsr in attemp to skip bad record.\n" +msgstr "" + +#: src/stored/read_record.c:342 +#, c-format +msgid "Reposition from (file:block) %u:%u to %u:%u\n" +msgstr "" + +#: src/stored/read_record.c:370 +#, c-format +msgid "Forward spacing Volume \"%s\" to file:block %u:%u.\n" +msgstr "" + +#: src/stored/read_record.c:395 +msgid "Begin Session" +msgstr "" + +#: src/stored/read_record.c:399 +msgid "End Session" +msgstr "" + +#: src/stored/read_record.c:405 +#, c-format +msgid "Unknown code %d\n" +msgstr "" + +#: src/stored/record.c:71 +#, c-format +msgid "unknown: %d" +msgstr "" + +#: src/stored/record.c:378 +msgid "Damaged buffer\n" +msgstr "" + +#: src/stored/record.c:549 +#, c-format +msgid "Sanity check failed. maxlen=%d datalen=%d. Block discarded.\n" +msgstr "" + +#: src/stored/reserve.c:93 +#, c-format +msgid "Unable to initialize reservation lock. ERR=%s\n" +msgstr "" + +#: src/stored/reserve.c:99 +#, c-format +msgid "Unable to initialize volume list lock. ERR=%s\n" +msgstr "" + +#: src/stored/reserve.c:429 +#, c-format +msgid "Hey! num_writers=%d!!!!\n" +msgstr "" + +#: src/stored/reserve.c:643 +msgid "3939 Could not get dcr\n" +msgstr "" + +#: src/stored/reserve.c:766 src/stored/reserve.c:777 +#, c-format +msgid "Failed command: %s\n" +msgstr "" + +#: src/stored/reserve.c:767 +#, c-format +msgid "" +"\n" +" Device \"%s\" with MediaType \"%s\" requested by DIR not found in SD " +"Device resources.\n" +msgstr "" + +#: src/stored/reserve.c:1085 +#, c-format +msgid "3926 Could not get dcr for device: %s\n" +msgstr "" + +#: src/stored/reserve.c:1180 +#, c-format +msgid "3601 JobId=%u device %s is BLOCKED due to user unmount.\n" +msgstr "" + +#: src/stored/reserve.c:1190 +#, c-format +msgid "3602 JobId=%u device %s is busy (already reading/writing).\n" +msgstr "" + +#: src/stored/reserve.c:1237 +#, c-format +msgid "3603 JobId=%u device %s is busy reading.\n" +msgstr "" + +#: src/stored/reserve.c:1246 +#, c-format +msgid "3604 JobId=%u device %s is BLOCKED due to user unmount.\n" +msgstr "" + +#: src/stored/reserve.c:1314 +#, c-format +msgid "3605 JobId=%u wants free drive but device %s is busy.\n" +msgstr "" + +#: src/stored/reserve.c:1322 +#, c-format +msgid "3606 JobId=%u prefers mounted drives, but drive %s has no Volume.\n" +msgstr "" + +#: src/stored/reserve.c:1345 +#, c-format +msgid "3607 JobId=%u wants Vol=\"%s\" drive has Vol=\"%s\" on drive %s.\n" +msgstr "" + +#: src/stored/reserve.c:1387 +#, c-format +msgid "" +"3608 JobId=%u wants Pool=\"%s\" but have Pool=\"%s\" nreserve=%d on drive %" +"s.\n" +msgstr "" + +#: src/stored/reserve.c:1431 +#, c-format +msgid "3609 JobId=%u wants Pool=\"%s\" but has Pool=\"%s\" on drive %s.\n" +msgstr "" + +#: src/stored/reserve.c:1439 +#, c-format +msgid "Logic error!!!! JobId=%u Should not get here.\n" +msgstr "" + +#: src/stored/reserve.c:1440 +#, c-format +msgid "3910 JobId=%u Logic error!!!! drive %s Should not get here.\n" +msgstr "" + +#: src/stored/reserve.c:1443 +msgid "Logic error!!!! Should not get here.\n" +msgstr "" + +#: src/stored/reserve.c:1446 +#, c-format +msgid "3911 JobId=%u failed reserve drive %s.\n" +msgstr "" + +#: src/stored/spool.c:84 +msgid "Spooling statistics:\n" +msgstr "" + +#: src/stored/spool.c:87 +#, c-format +msgid "" +"Data spooling: %u active jobs, %s bytes; %u total jobs, %s max bytes/job.\n" +msgstr "" + +#: src/stored/spool.c:95 +#, c-format +msgid "Attr spooling: %u active jobs, %s bytes; %u total jobs, %s max bytes.\n" +msgstr "" + +#: src/stored/spool.c:115 +msgid "Spooling data ...\n" +msgstr "" + +#: src/stored/spool.c:141 +#, c-format +msgid "Bad return from despool WroteVol=%d\n" +msgstr "" + +#: src/stored/spool.c:174 +#, c-format +msgid "Open data spool file %s failed: ERR=%s\n" +msgstr "" + +#: src/stored/spool.c:232 +#, c-format +msgid "Committing spooled data to Volume \"%s\". Despooling %s bytes ...\n" +msgstr "" + +#: src/stored/spool.c:236 +#, c-format +msgid "Writing spooled data to Volume. Despooling %s bytes ...\n" +msgstr "" + +#: src/stored/spool.c:306 +#, c-format +msgid "" +"Despooling elapsed time = %02d:%02d:%02d, Transfer rate = %s bytes/second\n" +msgstr "" + +#: src/stored/spool.c:315 src/stored/spool.c:504 src/stored/spool.c:546 +#, c-format +msgid "Ftruncate spool file failed: ERR=%s\n" +msgstr "" + +#: src/stored/spool.c:376 +#, c-format +msgid "Spool header read error. ERR=%s\n" +msgstr "" + +#: src/stored/spool.c:379 +#, c-format +msgid "Spool read error. Wanted %u bytes, got %d\n" +msgstr "" + +#: src/stored/spool.c:380 +#, c-format +msgid "Spool header read error. Wanted %u bytes, got %d\n" +msgstr "" + +#: src/stored/spool.c:386 src/stored/spool.c:387 +#, c-format +msgid "Spool block too big. Max %u bytes, got %u\n" +msgstr "" + +#: src/stored/spool.c:392 src/stored/spool.c:393 +#, c-format +msgid "Spool data read error. Wanted %u bytes, got %d\n" +msgstr "" + +#: src/stored/spool.c:450 +msgid "User specified spool size reached.\n" +msgstr "" + +#: src/stored/spool.c:452 +msgid "Bad return from despool in write_block.\n" +msgstr "" + +#: src/stored/spool.c:460 +msgid "Spooling data again ...\n" +msgstr "" + +#: src/stored/spool.c:491 +#, c-format +msgid "Error writing header to spool file. ERR=%s\n" +msgstr "" + +#: src/stored/spool.c:510 src/stored/spool.c:552 +msgid "Fatal despooling error." +msgstr "" + +#: src/stored/spool.c:517 +msgid "Retrying after header spooling error failed.\n" +msgstr "" + +#: src/stored/spool.c:531 +#, c-format +msgid "Error writing data to spool file. ERR=%s\n" +msgstr "" + +#: src/stored/spool.c:562 +msgid "Retrying after data spooling error failed.\n" +msgstr "" + +#: src/stored/spool.c:617 src/stored/spool.c:624 +#, c-format +msgid "Fseek on attributes file failed: ERR=%s\n" +msgstr "" + +#: src/stored/spool.c:634 +#, c-format +msgid "Sending spooled attrs to the Director. Despooling %s bytes ...\n" +msgstr "" + +#: src/stored/spool.c:661 +#, c-format +msgid "fopen attr spool file %s failed: ERR=%s\n" +msgstr "" + +#: src/stored/status.c:120 +msgid "" +"\n" +"Device status:\n" +msgstr "" + +#: src/stored/status.c:124 +#, c-format +msgid "Autochanger \"%s\" with devices:\n" +msgstr "" + +#: src/stored/status.c:142 +#, c-format +msgid "" +"Device %s is mounted with:\n" +" Volume: %s\n" +" Pool: %s\n" +" Media type: %s\n" +msgstr "" + +#: src/stored/status.c:152 +#, c-format +msgid "Device %s open but no Bacula volume is currently mounted.\n" +msgstr "" + +#: src/stored/status.c:163 +#, c-format +msgid " Total Bytes=%s Blocks=%s Bytes/block=%s\n" +msgstr "" + +#: src/stored/status.c:178 +#, c-format +msgid " Total Bytes Read=%s Blocks Read=%s Bytes/block=%s\n" +msgstr "" + +#: src/stored/status.c:184 +#, c-format +msgid " Positioned at File=%s Block=%s\n" +msgstr "" + +#: src/stored/status.c:191 +#, c-format +msgid "Device %s is not open.\n" +msgstr "" + +#: src/stored/status.c:195 +#, c-format +msgid "Device \"%s\" is not open or does not exist.\n" +msgstr "" + +#: src/stored/status.c:201 +msgid "In Use Volume status:\n" +msgstr "" + +#: src/stored/status.c:208 src/stored/status.c:210 +msgid "" +"====\n" +"\n" +msgstr "" + +#: src/stored/status.c:227 +msgid "" +"No DEVICE structure.\n" +"\n" +msgstr "" + +#: src/stored/status.c:234 +msgid " Device is BLOCKED. User unmounted.\n" +msgstr "" + +#: src/stored/status.c:238 +msgid " Device is BLOCKED. User unmounted during wait for media/mount.\n" +msgstr "" + +#: src/stored/status.c:250 +#, c-format +msgid "" +" Device is BLOCKED waiting for mount of volume \"%s\",\n" +" Pool: %s\n" +" Media type: %s\n" +msgstr "" + +#: src/stored/status.c:259 +#, c-format +msgid "" +" Device is BLOCKED waiting to create a volume for:\n" +" Pool: %s\n" +" Media type: %s\n" +msgstr "" + +#: src/stored/status.c:271 +msgid " Device is BLOCKED waiting for media.\n" +msgstr "" + +#: src/stored/status.c:277 +msgid " Device is being initialized.\n" +msgstr "" + +#: src/stored/status.c:281 +msgid " Device is blocked labeling a Volume.\n" +msgstr "" + +#: src/stored/status.c:290 +#, c-format +msgid " Slot %d is loaded in drive %d.\n" +msgstr "" + +#: src/stored/status.c:294 +#, c-format +msgid " Drive %d is not loaded.\n" +msgstr "" + +#: src/stored/status.c:297 +#, c-format +msgid " Drive %d status unknown.\n" +msgstr "" + +#: src/stored/status.c:320 +msgid "Device state:\n" +msgstr "" + +#: src/stored/status.c:338 +#, c-format +msgid "" +"num_writers=%d block=%d\n" +"\n" +msgstr "" + +#: src/stored/status.c:344 +#, c-format +msgid "Archive name: %s Device name: %s\n" +msgstr "" + +#: src/stored/status.c:348 +#, c-format +msgid "File=%u block=%u\n" +msgstr "" + +#: src/stored/status.c:351 +#, c-format +msgid "Min block=%u Max block=%u\n" +msgstr "" + +#: src/stored/status.c:375 +#, c-format +msgid "%s Job %s waiting for Client connection.\n" +msgstr "" + +#: src/stored/status.c:391 +#, c-format +msgid "" +"Reading: %s %s job %s JobId=%d Volume=\"%s\"\n" +" pool=\"%s\" device=%s\n" +msgstr "" + +#: src/stored/status.c:404 +#, c-format +msgid "" +"Writing: %s %s job %s JobId=%d Volume=\"%s\"\n" +" pool=\"%s\" device=%s\n" +msgstr "" + +#: src/stored/status.c:415 +#, c-format +msgid " spooling=%d despooling=%d despool_wait=%d\n" +msgstr "" + +#: src/stored/status.c:424 +#, c-format +msgid " Files=%s Bytes=%s Bytes/sec=%s\n" +msgstr "" + +#: src/stored/status.c:432 +#, c-format +msgid " FDReadSeqNo=%s in_msg=%u out_msg=%d fd=%d\n" +msgstr "" + +#: src/stored/status.c:438 +msgid " FDSocket closed\n" +msgstr "" + +#: src/stored/status.c:460 +msgid "" +"\n" +"Jobs waiting to reserve a drive:\n" +msgstr "" + +#: src/stored/status.c:491 +msgid "===================================================================\n" +msgstr "" + +#: src/stored/status.c:637 +msgid "3900 Bad .status command, missing argument.\n" +msgstr "" + +#: src/stored/status.c:660 +msgid "3900 Bad .status command, wrong argument.\n" +msgstr "" + +#: src/stored/status.c:674 +msgid "Bacula Storage: Idle" +msgstr "" + +#: src/stored/status.c:685 +msgid "Bacula Storage: Running" +msgstr "" + +#: src/stored/status.c:699 +msgid "Bacula Storage: Last Job Canceled" +msgstr "" + +#: src/stored/status.c:703 +msgid "Bacula Storage: Last Job Failed" +msgstr "" + +#: src/stored/status.c:707 +msgid "Bacula Storage: Last Job had Warnings" +msgstr "" + +#: src/stored/stored.c:82 +#, c-format +msgid "" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: stored [options] [-c config_file] [config_file]\n" +" -c use as configuration file\n" +" -dnn set debug level to nn\n" +" -f run in foreground (for debugging)\n" +" -g set groupid to group\n" +" -p proceed despite I/O errors\n" +" -s no signals (for debugging)\n" +" -t test - read config and exit\n" +" -u userid to \n" +" -v verbose user messages\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/stored/stored.c:243 +msgid "Volume Session Time is ZERO!\n" +msgstr "" + +#: src/stored/stored.c:256 +#, c-format +msgid "Unable to create thread. ERR=%s\n" +msgstr "" + +#: src/stored/stored.c:294 +#, c-format +msgid "Only one Storage resource permitted in %s\n" +msgstr "" + +#: src/stored/stored.c:299 +#, c-format +msgid "No Director resource defined in %s. Cannot continue.\n" +msgstr "" + +#: src/stored/stored.c:304 +#, c-format +msgid "No Device resource defined in %s. Cannot continue.\n" +msgstr "" + +#: src/stored/stored.c:312 +#, c-format +msgid "No Messages resource defined in %s. Cannot continue.\n" +msgstr "" + +#: src/stored/stored.c:339 +#, c-format +msgid "\"TLS Certificate\" file not defined for Storage \"%s\" in %s.\n" +msgstr "" + +#: src/stored/stored.c:345 +#, c-format +msgid "\"TLS Key\" file not defined for Storage \"%s\" in %s.\n" +msgstr "" + +#: src/stored/stored.c:351 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Storage \"%s\" in %s. At least one CA certificate store is required when " +"using \"TLS Verify Peer\".\n" +msgstr "" + +#: src/stored/stored.c:482 +#, c-format +msgid "Could not initialize %s\n" +msgstr "" + +#: src/stored/stored.c:495 +#, c-format +msgid "Could not open device %s\n" +msgstr "" + +#: src/stored/stored.c:508 +#, c-format +msgid "Could not mount device %s\n" +msgstr "" + +#: src/stored/stored_conf.c:234 +#, c-format +msgid "Expected a Device Type keyword, got: %s" +msgstr "" + +#: src/stored/stored_conf.c:249 +#, c-format +msgid "Warning: no \"%s\" resource (%d) defined.\n" +msgstr "" + +#: src/stored/stored_conf.c:252 +#, c-format +msgid "dump_resource type=%d\n" +msgstr "" + +#: src/stored/stored_conf.c:368 +#, c-format +msgid "Warning: unknown resource type %d\n" +msgstr "" + +#: src/stored/stored_conf.c:557 +#, c-format +msgid "\"%s\" item is required in \"%s\" resource, but not found.\n" +msgstr "" + +#: src/stored/stored_conf.c:563 +#, c-format +msgid "Too many items in \"%s\" resource\n" +msgstr "" + +#: src/stored/stored_conf.c:597 +#, c-format +msgid "Cannot find AutoChanger resource %s\n" +msgstr "" + +#: src/stored/stored_conf.c:669 +#, c-format +msgid "" +"Attempt to define second \"%s\" resource named \"%s\" is not permitted.\n" +msgstr "" + +#: src/stored/wait.c:127 +#, c-format +msgid "pthread timedwait error. ERR=%s\n" +msgstr "" + +#: src/stored/wait.c:217 +#, c-format +msgid "JobId=%s, Job %s waiting to reserve a device.\n" +msgstr "" + +#: src/tools/bregex.c:147 src/tools/bwild.c:122 +#, c-format +msgid "Could not open data file: %s\n" +msgstr "" + +#: src/tools/bsmtp.c:117 +#, c-format +msgid "Fatal malformed reply from %s: %s\n" +msgstr "" + +#: src/tools/bsmtp.c:125 +#, c-format +msgid "Fatal fgets error: ERR=%s\n" +msgstr "" + +#: src/tools/bsmtp.c:156 +#, c-format +msgid "" +"\n" +"Usage: %s [-f from] [-h mailhost] [-s subject] [-c copy] [recipient ...]\n" +" -8 set charset utf-8\n" +" -c set the Cc: field\n" +" -dnn set debug level to nn\n" +" -f set the From: field\n" +" -h use mailhost:port as the SMTP server\n" +" -s set the Subject: field\n" +" -r set the Reply-To: field\n" +" -l set the maximum number of lines that should be sent " +"(default: unlimited)\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/tools/bsmtp.c:287 +msgid "Fatal error: no recipient given.\n" +msgstr "" + +#: src/tools/bsmtp.c:316 +#, c-format +msgid "Fatal gethostname error: ERR=%s\n" +msgstr "" + +#: src/tools/bsmtp.c:320 +#, c-format +msgid "Fatal gethostbyname for myself failed \"%s\": ERR=%s\n" +msgstr "" + +#: src/tools/bsmtp.c:356 +#, c-format +msgid "Error unknown mail host \"%s\": ERR=%s\n" +msgstr "" + +#: src/tools/bsmtp.c:359 +msgid "Retrying connection using \"localhost\".\n" +msgstr "" + +#: src/tools/bsmtp.c:367 +#, c-format +msgid "Fatal error: Unknown address family for smtp host: %d\n" +msgstr "" + +#: src/tools/bsmtp.c:376 src/tools/bsmtp.c:381 +#, c-format +msgid "Fatal socket error: ERR=%s\n" +msgstr "" + +#: src/tools/bsmtp.c:386 +#, c-format +msgid "Fatal connect error to %s: ERR=%s\n" +msgstr "" + +#: src/tools/bsmtp.c:394 +#, c-format +msgid "Fatal _open_osfhandle error: ERR=%s\n" +msgstr "" + +#: src/tools/bsmtp.c:401 src/tools/bsmtp.c:405 src/tools/bsmtp.c:414 +#: src/tools/bsmtp.c:418 +#, c-format +msgid "Fatal fdopen error: ERR=%s\n" +msgstr "" + +#: src/tools/bsmtp.c:410 +#, c-format +msgid "Fatal dup error: ERR=%s\n" +msgstr "" + +#: src/tools/dbcheck.c:175 +msgid "" +"Warning skipping the additional parameters for working directory/dbname/user/" +"password/host.\n" +msgstr "" + +#: src/tools/dbcheck.c:191 +#, c-format +msgid "Error can not find the Catalog name[%s] in the given config file [%s]\n" +msgstr "" + +#: src/tools/dbcheck.c:193 +#, c-format +msgid "Error there is no Catalog section in the given config file [%s]\n" +msgstr "" + +#: src/tools/dbcheck.c:202 +msgid "Error no Director resource defined.\n" +msgstr "" + +#: src/tools/dbcheck.c:216 +msgid "Wrong number of arguments.\n" +msgstr "" + +#: src/tools/dbcheck.c:221 +msgid "Working directory not supplied.\n" +msgstr "" + +#: src/tools/dbcheck.c:285 +#, c-format +msgid "Hello, this is the database check/correct program.\n" +msgstr "" + +#: src/tools/dbcheck.c:287 +#, c-format +msgid "Modify database is on." +msgstr "" + +#: src/tools/dbcheck.c:289 +#, c-format +msgid "Modify database is off." +msgstr "" + +#: src/tools/dbcheck.c:291 src/tools/dbcheck.c:352 +#, c-format +msgid " Verbose is on.\n" +msgstr "" + +#: src/tools/dbcheck.c:293 src/tools/dbcheck.c:354 +#, c-format +msgid " Verbose is off.\n" +msgstr "" + +#: src/tools/dbcheck.c:295 +#, c-format +msgid "Please select the fuction you want to perform.\n" +msgstr "" + +#: src/tools/dbcheck.c:299 +#, c-format +msgid "" +"\n" +" 1) Toggle modify database flag\n" +" 2) Toggle verbose flag\n" +" 3) Repair bad Filename records\n" +" 4) Repair bad Path records\n" +" 5) Eliminate duplicate Filename records\n" +" 6) Eliminate duplicate Path records\n" +" 7) Eliminate orphaned Jobmedia records\n" +" 8) Eliminate orphaned File records\n" +" 9) Eliminate orphaned Path records\n" +" 10) Eliminate orphaned Filename records\n" +" 11) Eliminate orphaned FileSet records\n" +" 12) Eliminate orphaned Client records\n" +" 13) Eliminate orphaned Job records\n" +" 14) Eliminate all Admin records\n" +" 15) Eliminate all Restore records\n" +" 16) All (3-15)\n" +" 17) Quit\n" +msgstr "" + +#: src/tools/dbcheck.c:318 +#, c-format +msgid "" +"\n" +" 1) Toggle modify database flag\n" +" 2) Toggle verbose flag\n" +" 3) Check for bad Filename records\n" +" 4) Check for bad Path records\n" +" 5) Check for duplicate Filename records\n" +" 6) Check for duplicate Path records\n" +" 7) Check for orphaned Jobmedia records\n" +" 8) Check for orphaned File records\n" +" 9) Check for orphaned Path records\n" +" 10) Check for orphaned Filename records\n" +" 11) Check for orphaned FileSet records\n" +" 12) Check for orphaned Client records\n" +" 13) Check for orphaned Job records\n" +" 14) Check for all Admin records\n" +" 15) Check for all Restore records\n" +" 16) All (3-15)\n" +" 17) Quit\n" +msgstr "" + +#: src/tools/dbcheck.c:338 +msgid "Select function number: " +msgstr "" + +#: src/tools/dbcheck.c:345 +#, c-format +msgid "Database will be modified.\n" +msgstr "" + +#: src/tools/dbcheck.c:347 +#, c-format +msgid "Database will NOT be modified.\n" +msgstr "" + +#: src/tools/dbcheck.c:437 +#, c-format +msgid "JobId=%s Name=\"%s\" StartTime=%s\n" +msgstr "" + +#: src/tools/dbcheck.c:445 +#, c-format +msgid "Orphaned JobMediaId=%s JobId=%s Volume=\"%s\"\n" +msgstr "" + +#: src/tools/dbcheck.c:452 +#, c-format +msgid "Orphaned FileId=%s JobId=%s Volume=\"%s\"\n" +msgstr "" + +#: src/tools/dbcheck.c:459 +#, c-format +msgid "Orphaned FileSetId=%s FileSet=\"%s\" MD5=%s\n" +msgstr "" + +#: src/tools/dbcheck.c:466 +#, c-format +msgid "Orphaned ClientId=%s Name=\"%s\"\n" +msgstr "" + +#: src/tools/dbcheck.c:520 +#, c-format +msgid "Deleting: %s\n" +msgstr "" + +#: src/tools/dbcheck.c:594 +#, c-format +msgid "Checking for duplicate Filename entries.\n" +msgstr "" + +#: src/tools/dbcheck.c:603 +#, c-format +msgid "Found %d duplicate Filename records.\n" +msgstr "" + +#: src/tools/dbcheck.c:604 +msgid "Print the list? (yes/no): " +msgstr "" + +#: src/tools/dbcheck.c:623 src/tools/dbcheck.c:681 +#, c-format +msgid "Found %d for: %s\n" +msgstr "" + +#: src/tools/dbcheck.c:651 +#, c-format +msgid "Checking for duplicate Path entries.\n" +msgstr "" + +#: src/tools/dbcheck.c:661 +#, c-format +msgid "Found %d duplicate Path records.\n" +msgstr "" + +#: src/tools/dbcheck.c:662 src/tools/dbcheck.c:716 src/tools/dbcheck.c:760 +#: src/tools/dbcheck.c:803 src/tools/dbcheck.c:842 src/tools/dbcheck.c:880 +#: src/tools/dbcheck.c:921 src/tools/dbcheck.c:962 src/tools/dbcheck.c:1000 +#: src/tools/dbcheck.c:1033 src/tools/dbcheck.c:1070 src/tools/dbcheck.c:1134 +msgid "Print them? (yes/no): " +msgstr "" + +#: src/tools/dbcheck.c:709 +#, c-format +msgid "Checking for orphaned JobMedia entries.\n" +msgstr "" + +#: src/tools/dbcheck.c:715 +#, c-format +msgid "Found %d orphaned JobMedia records.\n" +msgstr "" + +#: src/tools/dbcheck.c:733 +#, c-format +msgid "Deleting %d orphaned JobMedia records.\n" +msgstr "" + +#: src/tools/dbcheck.c:750 +#, c-format +msgid "Checking for orphaned File entries. This may take some time!\n" +msgstr "" + +#: src/tools/dbcheck.c:759 +#, c-format +msgid "Found %d orphaned File records.\n" +msgstr "" + +#: src/tools/dbcheck.c:776 +#, c-format +msgid "Deleting %d orphaned File records.\n" +msgstr "" + +#: src/tools/dbcheck.c:793 +#, c-format +msgid "Checking for orphaned Path entries. This may take some time!\n" +msgstr "" + +#: src/tools/dbcheck.c:802 +#, c-format +msgid "Found %d orphaned Path records.\n" +msgstr "" + +#: src/tools/dbcheck.c:815 +#, c-format +msgid "Deleting %d orphaned Path records.\n" +msgstr "" + +#: src/tools/dbcheck.c:832 +#, c-format +msgid "Checking for orphaned Filename entries. This may take some time!\n" +msgstr "" + +#: src/tools/dbcheck.c:841 +#, c-format +msgid "Found %d orphaned Filename records.\n" +msgstr "" + +#: src/tools/dbcheck.c:854 +#, c-format +msgid "Deleting %d orphaned Filename records.\n" +msgstr "" + +#: src/tools/dbcheck.c:869 +#, c-format +msgid "Checking for orphaned FileSet entries. This takes some time!\n" +msgstr "" + +#: src/tools/dbcheck.c:879 +#, c-format +msgid "Found %d orphaned FileSet records.\n" +msgstr "" + +#: src/tools/dbcheck.c:894 +#, c-format +msgid "Deleting %d orphaned FileSet records.\n" +msgstr "" + +#: src/tools/dbcheck.c:903 +#, c-format +msgid "Checking for orphaned Client entries.\n" +msgstr "" + +#: src/tools/dbcheck.c:920 +#, c-format +msgid "Found %d orphaned Client records.\n" +msgstr "" + +#: src/tools/dbcheck.c:935 +#, c-format +msgid "Deleting %d orphaned Client records.\n" +msgstr "" + +#: src/tools/dbcheck.c:944 +#, c-format +msgid "Checking for orphaned Job entries.\n" +msgstr "" + +#: src/tools/dbcheck.c:961 +#, c-format +msgid "Found %d orphaned Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:976 +#, c-format +msgid "Deleting %d orphaned Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:978 +#, c-format +msgid "Deleting JobMedia records of orphaned Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:980 +#, c-format +msgid "Deleting Log records of orphaned Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:990 +#, c-format +msgid "Checking for Admin Job entries.\n" +msgstr "" + +#: src/tools/dbcheck.c:999 +#, c-format +msgid "Found %d Admin Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:1014 +#, c-format +msgid "Deleting %d Admin Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:1023 +#, c-format +msgid "Checking for Restore Job entries.\n" +msgstr "" + +#: src/tools/dbcheck.c:1032 +#, c-format +msgid "Found %d Restore Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:1047 +#, c-format +msgid "Deleting %d Restore Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:1060 +#, c-format +msgid "Checking for Filenames with a trailing slash\n" +msgstr "" + +#: src/tools/dbcheck.c:1069 +#, c-format +msgid "Found %d bad Filename records.\n" +msgstr "" + +#: src/tools/dbcheck.c:1087 src/tools/dbcheck.c:1150 +#, c-format +msgid "Reparing %d bad Filename records.\n" +msgstr "" + +#: src/tools/dbcheck.c:1124 +#, c-format +msgid "Checking for Paths without a trailing slash\n" +msgstr "" + +#: src/tools/dbcheck.c:1133 +#, c-format +msgid "Found %d bad Path records.\n" +msgstr "" + +#: src/tools/drivetype.c:47 +#, c-format +msgid "" +"\n" +"Usage: drivetype [-v] path ...\n" +"\n" +" Print the drive type a given file/directory is on.\n" +" The following options are supported:\n" +"\n" +" -v print both path and file system type.\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/tools/drivetype.c:101 src/tools/fstype.c:101 +#, c-format +msgid "%s: unknown\n" +msgstr "" + +#: src/tools/fstype.c:47 +#, c-format +msgid "" +"\n" +"Usage: fstype [-v] path ...\n" +"\n" +" Print the file system type a given file/directory is on.\n" +" The following options are supported:\n" +"\n" +" -v print both path and file system type.\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/tools/testfind.c:66 +#, c-format +msgid "" +"\n" +"Usage: testfind [-d debug_level] [-] [pattern1 ...]\n" +" -a print extended attributes (Win32 debug)\n" +" -dnn set debug level to nn\n" +" -c specify config file containing FileSet resources\n" +" -f specify which FileSet to use\n" +" -? print this message.\n" +"\n" +"Patterns are used for file inclusion -- normally directories.\n" +"Debug level >= 1 prints each file found.\n" +"Debug level >= 10 prints path/file for catalog.\n" +"Errors are always printed.\n" +"Files/paths truncated is the number of files/paths with len > 255.\n" +"Truncation is only in the catalog.\n" +"\n" +msgstr "" + +#: src/tools/testfind.c:225 +#, c-format +msgid "" +"\n" +"Total files : %d\n" +"Max file length: %d\n" +"Max path length: %d\n" +"Files truncated: %d\n" +"Paths truncated: %d\n" +"Hard links : %d\n" +msgstr "" + +#: src/tools/testfind.c:265 +#, c-format +msgid "Reg: %s\n" +msgstr "" + +#: src/tools/testfind.c:287 +msgid "\t[will not descend: recursion turned off]" +msgstr "" + +#: src/tools/testfind.c:289 +msgid "\t[will not descend: file system change not allowed]" +msgstr "" + +#: src/tools/testfind.c:291 +msgid "\t[will not descend: disallowed file system]" +msgstr "" + +#: src/tools/testfind.c:293 +msgid "\t[will not descend: disallowed drive type]" +msgstr "" + +#: src/tools/testfind.c:309 src/tools/testls.c:188 +#, c-format +msgid "Err: Could not access %s: %s\n" +msgstr "" + +#: src/tools/testfind.c:312 src/tools/testls.c:191 +#, c-format +msgid "Err: Could not follow ff->link %s: %s\n" +msgstr "" + +#: src/tools/testfind.c:315 src/tools/testls.c:194 +#, c-format +msgid "Err: Could not stat %s: %s\n" +msgstr "" + +#: src/tools/testfind.c:318 src/tools/testls.c:197 +#, c-format +msgid "Skip: File not saved. No change. %s\n" +msgstr "" + +#: src/tools/testfind.c:321 src/tools/testls.c:200 +#, c-format +msgid "Err: Attempt to backup archive. Not saved. %s\n" +msgstr "" + +#: src/tools/testfind.c:324 src/tools/testls.c:209 +#, c-format +msgid "Err: Could not open directory %s: %s\n" +msgstr "" + +#: src/tools/testfind.c:327 src/tools/testls.c:212 +#, c-format +msgid "Err: Unknown file ff->type %d: %s\n" +msgstr "" + +#: src/tools/testfind.c:377 +#, c-format +msgid "===== Filename truncated to 255 chars: %s\n" +msgstr "" + +#: src/tools/testfind.c:394 +#, c-format +msgid "========== Path name truncated to 255 chars: %s\n" +msgstr "" + +#: src/tools/testfind.c:403 +#, c-format +msgid "========== Path length is zero. File=%s\n" +msgstr "" + +#: src/tools/testfind.c:406 +#, c-format +msgid "Path: %s\n" +msgstr "" + +#: src/tools/testls.c:55 +#, c-format +msgid "" +"\n" +"Usage: testls [-d debug_level] [-] [pattern1 ...]\n" +" -a print extended attributes (Win32 debug)\n" +" -dnn set debug level to nn\n" +" -e specify file of exclude patterns\n" +" -i specify file of include patterns\n" +" - read pattern(s) from stdin\n" +" -? print this message.\n" +"\n" +"Patterns are file inclusion -- normally directories.\n" +"Debug level >= 1 prints each file found.\n" +"Debug level >= 10 prints path/file for catalog.\n" +"Errors always printed.\n" +"Files/paths truncated is number with len > 255.\n" +"Truncation is only in catalog.\n" +"\n" +msgstr "" + +#: src/tools/testls.c:140 +#, c-format +msgid "Could not open include file: %s\n" +msgstr "" + +#: src/tools/testls.c:153 +#, c-format +msgid "Could not open exclude file: %s\n" +msgstr "" + +#: src/tools/testls.c:203 +#, c-format +msgid "Recursion turned off. Directory not entered. %s\n" +msgstr "" + +#: src/tools/testls.c:206 +#, c-format +msgid "Skip: File system change prohibited. Directory not entered. %s\n" +msgstr "" + +#: src/tray-monitor/authenticate.c:88 +msgid "" +"Director authorization problem.\n" +"Most likely the passwords do not agree.\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" + +#: src/tray-monitor/authenticate.c:138 +msgid "" +"Director and Storage daemon passwords or names not the same.\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" + +#: src/tray-monitor/authenticate.c:145 +#, c-format +msgid "bdird set configuration file to file\n" +" -dnn set debug level to nn\n" +" -t test - read configuration and exit\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:262 +#, c-format +msgid "" +"Error: %d Monitor resources defined in %s. You must define one and only one " +"Monitor resource.\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:293 +#, c-format +msgid "" +"No Client, Storage or Director resource defined in %s\n" +"Without that I don't how to get status from the File, Storage or Director " +"Daemon :-(\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:315 +#, c-format +msgid "" +"Invalid refresh interval defined in %s\n" +"This value must be greater or equal to 1 second and less or equal to 10 " +"minutes (read value: %d).\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:330 +msgid "Open status window..." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:336 +msgid "Exit" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:348 +msgid "Bacula tray monitor" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:373 +msgid " (DIR)" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:377 +msgid " (FD)" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:381 +msgid " (SD)" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:394 +msgid "Unknown status." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:464 +msgid "Refresh interval in seconds: " +msgstr "" + +#: src/tray-monitor/tray-monitor.c:472 +msgid "Refresh now" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:476 +msgid "About" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:480 +msgid "Close" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:500 +#, c-format +msgid "Disconnecting from Director %s:%d\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:503 +#, c-format +msgid "Disconnecting from Client %s:%d\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:506 +#, c-format +msgid "Disconnecting from Storage %s:%d\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:543 src/tray-monitor/tray-monitor.c:554 +msgid "Bacula Tray Monitor" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:545 src/tray-monitor/tray-monitor.c:556 +msgid "Written by Nicolas Boichat\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:546 src/tray-monitor/tray-monitor.c:557 +msgid "Version" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:625 +#, c-format +msgid "Error, currentitem is not a Client or a Storage..\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:699 +#, c-format +msgid "" +"Current job: %s\n" +"Last job: %s" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:711 +#, c-format +msgid " (%d errors)" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:714 +#, c-format +msgid " (%d error)" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:752 +msgid "No current job." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:755 +msgid "No last job." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:763 +msgid "Job status: Created" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:768 +msgid "Job status: Running" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:772 +msgid "Job status: Blocked" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:777 +msgid "Job status: Terminated" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:782 +msgid "Job status: Terminated in error" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:788 +msgid "Job status: Error" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:792 +msgid "Job status: Fatal error" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:797 +msgid "Job status: Verify differences" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:802 +msgid "Job status: Canceled" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:807 +msgid "Job status: Waiting on File daemon" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:812 +msgid "Job status: Waiting on the Storage daemon" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:817 +msgid "Job status: Waiting for new media" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:822 +msgid "Job status: Waiting for Mount" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:827 +msgid "Job status: Waiting for storage resource" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:832 +msgid "Job status: Waiting for job resource" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:837 +msgid "Job status: Waiting for Client resource" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:842 +msgid "Job status: Waiting for maximum jobs" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:847 +msgid "Job status: Waiting for start time" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:852 +msgid "Job status: Waiting for higher priority jobs to finish" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:857 +#, c-format +msgid "Unknown job status %c." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:858 +#, c-format +msgid "Job status: Unknown(%c)" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:865 +#, c-format +msgid "Bad scan : '%s' %d\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:906 +#, c-format +msgid "Connecting to Director %s:%d" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:912 +#, c-format +msgid "Connecting to Client %s:%d\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:913 +#, c-format +msgid "Connecting to Client %s:%d" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:919 +#, c-format +msgid "Connecting to Storage %s:%d\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:920 +#, c-format +msgid "Connecting to Storage %s:%d" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:925 src/tray-monitor/tray-monitor.c:963 +#, c-format +msgid "Error, currentitem is not a Client, a Storage or a Director..\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:931 +msgid "Cannot connect to daemon.\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:932 +msgid "Cannot connect to daemon." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:944 +#, c-format +msgid "Authentication error : %s" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:951 +msgid "Opened connection with Director daemon.\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:952 +msgid "Opened connection with Director daemon." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:955 +msgid "Opened connection with File daemon.\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:956 +msgid "Opened connection with File daemon." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:959 +msgid "Opened connection with Storage daemon.\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:960 +msgid "Opened connection with Storage daemon." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:997 +msgid "<< Error: BNET_PROMPT signal received. >>\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:1002 src/wx-console/console_thread.cpp:486 +msgid "<< Heartbeat signal received, answered. >>\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:1006 +#, c-format +msgid "<< Unexpected signal received : %s >>\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:1011 +msgid "\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:1015 +msgid "Error : BNET_HARDEOF or BNET_ERROR" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:1021 +msgid "\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:1025 +msgid "Error : Connection closed." +msgstr "" + +#: src/tray-monitor/tray_conf.c:177 +#, c-format +msgid "Monitor: name=%s FDtimeout=%s SDtimeout=%s\n" +msgstr "" + +#: src/tray-monitor/tray_conf.c:183 +#, c-format +msgid "Director: name=%s address=%s FDport=%d\n" +msgstr "" + +#: src/tray-monitor/tray_conf.c:187 +#, c-format +msgid "Client: name=%s address=%s FDport=%d\n" +msgstr "" + +#: src/tray-monitor/tray_conf.c:191 +#, c-format +msgid "Storage: name=%s address=%s SDport=%d\n" +msgstr "" + +#: src/wx-console/authenticate.c:150 +msgid "Bad response to Hello command: ERR=" +msgstr "" + +#: src/baconfig.h:72 +#, c-format +msgid "Failed ASSERT: %s\n" +msgstr "" + +#: src/baconfig.h:79 +msgid "*None*" +msgstr "" + +#: src/win32/dird/winmain.cpp:193 src/win32/dird/winmain.cpp:200 +#: src/win32/filed/winmain.cpp:224 src/win32/filed/winmain.cpp:231 +#: src/win32/stored/baculasd/winmain.cpp:225 +#: src/win32/stored/baculasd/winmain.cpp:232 +msgid "Bacula Usage" +msgstr "" + +#: src/win32/dird/winmain.cpp:197 src/win32/filed/winmain.cpp:228 +#: src/win32/stored/baculasd/winmain.cpp:229 +msgid "Bad Command Line Options" +msgstr "" + +#: src/win32/dird/winservice.cpp:119 src/win32/filed/winservice.cpp:238 +#: src/win32/stored/baculasd/winservice.cpp:169 +msgid "StartServiceCtrlDispatcher failed." +msgstr "" + +#: src/win32/dird/winservice.cpp:135 src/win32/filed/winservice.cpp:256 +#: src/win32/stored/baculasd/winservice.cpp:185 +msgid "RegisterServiceCtlHandler failed" +msgstr "" + +#: src/win32/dird/winservice.cpp:136 src/win32/filed/winservice.cpp:257 +#: src/win32/stored/baculasd/winservice.cpp:186 +msgid "Contact Register Service Handler failure" +msgstr "" + +#: src/win32/dird/winservice.cpp:152 src/win32/filed/winservice.cpp:273 +#: src/win32/stored/baculasd/winservice.cpp:202 +msgid "ReportStatus STOPPED failed 1" +msgstr "" + +#: src/win32/dird/winservice.cpp:175 src/win32/filed/winservice.cpp:296 +#: src/win32/stored/baculasd/winservice.cpp:225 +msgid "Report Service failure" +msgstr "" + +#: src/win32/dird/winservice.cpp:211 +msgid "Unable to install Bacula Director service" +msgstr "" + +#: src/win32/dird/winservice.cpp:219 src/win32/filed/winservice.cpp:340 +#: src/win32/stored/baculasd/winservice.cpp:269 +msgid "Service command length too long" +msgstr "" + +#: src/win32/dird/winservice.cpp:220 src/win32/filed/winservice.cpp:341 +#: src/win32/stored/baculasd/winservice.cpp:270 +msgid "Service command length too long. Service not registered." +msgstr "" + +#: src/win32/dird/winservice.cpp:233 +msgid "" +"The Service Control Manager could not be contacted - the Bacula Director " +"service was not installed" +msgstr "" + +#: src/win32/dird/winservice.cpp:258 +msgid "The Bacula Director service could not be installed" +msgstr "" + +#: src/win32/dird/winservice.cpp:264 +msgid "Provides director services. Bacula -- the network backup solution." +msgstr "" + +#: src/win32/dird/winservice.cpp:272 +msgid "" +"The Bacula Director service was successfully installed.\n" +"The service may be started from the Control Panel and will\n" +"automatically be run the next time this machine is rebooted." +msgstr "" + +#: src/win32/dird/winservice.cpp:311 +msgid "The Bacula Director service could not be stopped" +msgstr "" + +#: src/win32/dird/winservice.cpp:318 +msgid "The Bacula Director service has been removed" +msgstr "" + +#: src/win32/dird/winservice.cpp:321 +msgid "The Bacula Director service could not be removed" +msgstr "" + +#: src/win32/dird/winservice.cpp:326 +msgid "The Bacula Director service could not be found" +msgstr "" + +#: src/win32/dird/winservice.cpp:331 +msgid "" +"The SCM could not be contacted - the Bacula Director service was not removed" +msgstr "" + +#: src/win32/dird/winservice.cpp:393 src/win32/filed/winservice.cpp:604 +#: src/win32/stored/baculasd/winservice.cpp:443 +msgid "SetServiceStatus failed" +msgstr "" + +#: src/win32/dird/winservice.cpp:421 src/win32/filed/winservice.cpp:632 +#: src/win32/stored/baculasd/winservice.cpp:471 +#, c-format +msgid "" +"\n" +"\n" +"%s error: %ld at %s:%d" +msgstr "" + +#: src/win32/dird/winservice.cpp:496 src/win32/filed/winservice.cpp:706 +#: src/win32/stored/baculasd/winservice.cpp:546 +#, c-format +msgid "Locked by: %s, duration: %ld seconds\n" +msgstr "" + +#: src/win32/dird/winservice.cpp:500 src/win32/filed/winservice.cpp:710 +#: src/win32/stored/baculasd/winservice.cpp:550 +#, c-format +msgid "No longer locked\n" +msgstr "" + +#: src/win32/dird/winservice.cpp:504 src/win32/filed/winservice.cpp:714 +#: src/win32/stored/baculasd/winservice.cpp:554 +msgid "Could not lock database" +msgstr "" + +#: src/win32/filed/winmain.cpp:326 src/win32/stored/baculasd/winmain.cpp:326 +msgid "Another instance of Bacula is already running" +msgstr "" + +#: src/win32/filed/winservice.cpp:111 src/win32/filed/winservice.cpp:125 +msgid "No existing instance of Bacula File service could be contacted" +msgstr "" + +#: src/win32/filed/winservice.cpp:196 +msgid "KERNEL32.DLL not found: Bacula service not started" +msgstr "" + +#: src/win32/filed/winservice.cpp:206 +msgid "Registry service not found: Bacula service not started" +msgstr "" + +#: src/win32/filed/winservice.cpp:208 +msgid "Registry service not found" +msgstr "" + +#: src/win32/filed/winservice.cpp:332 +msgid "Unable to install Bacula File service" +msgstr "" + +#: src/win32/filed/winservice.cpp:356 +msgid "Cannot write System Registry" +msgstr "" + +#: src/win32/filed/winservice.cpp:357 +msgid "" +"The System Registry could not be updated - the Bacula service was not " +"installed" +msgstr "" + +#: src/win32/filed/winservice.cpp:364 +msgid "Cannot add Bacula key to System Registry" +msgstr "" + +#: src/win32/filed/winservice.cpp:365 src/win32/filed/winservice.cpp:418 +msgid "The Bacula service could not be installed" +msgstr "" + +#: src/win32/filed/winservice.cpp:374 +msgid "" +"The Bacula File service was successfully installed.\n" +"The service may be started by double clicking on the\n" +"Bacula \"Start\" icon and will be automatically\n" +"be run the next time this machine is rebooted. " +msgstr "" + +#: src/win32/filed/winservice.cpp:393 +msgid "" +"The Service Control Manager could not be contacted - the Bacula service was " +"not installed" +msgstr "" + +#: src/win32/filed/winservice.cpp:424 +msgid "" +"Provides file backup and restore services. Bacula -- the network backup " +"solution." +msgstr "" + +#: src/win32/filed/winservice.cpp:432 +msgid "" +"The Bacula File service was successfully installed.\n" +"The service may be started from the Control Panel and will\n" +"automatically be run the next time this machine is rebooted." +msgstr "" + +#: src/win32/filed/winservice.cpp:442 +msgid "" +"Unknown Windows operating system.\n" +"Cannot install Bacula service.\n" +msgstr "" + +#: src/win32/filed/winservice.cpp:467 +msgid "" +"Could not find registry entry.\n" +"Service probably not registerd - the Bacula service was not removed" +msgstr "" + +#: src/win32/filed/winservice.cpp:472 +msgid "" +"Could not delete Registry key.\n" +"The Bacula service could not be removed" +msgstr "" + +#: src/win32/filed/winservice.cpp:482 +msgid "Bacula could not be contacted, probably not running" +msgstr "" + +#: src/win32/filed/winservice.cpp:489 +msgid "The Bacula service has been removed" +msgstr "" + +#: src/win32/filed/winservice.cpp:520 +msgid "The Bacula file service could not be stopped" +msgstr "" + +#: src/win32/filed/winservice.cpp:527 +msgid "The Bacula file service has been removed" +msgstr "" + +#: src/win32/filed/winservice.cpp:530 +msgid "The Bacula file service could not be removed" +msgstr "" + +#: src/win32/filed/winservice.cpp:535 +msgid "The Bacula file service could not be found" +msgstr "" + +#: src/win32/filed/winservice.cpp:540 +msgid "" +"The SCM could not be contacted - the Bacula file service was not removed" +msgstr "" + +#: src/win32/stored/baculasd/winservice.cpp:85 +#: src/win32/stored/baculasd/winservice.cpp:99 +msgid "No existing instance of Bacula storage service could be contacted" +msgstr "" + +#: src/win32/stored/baculasd/winservice.cpp:261 +msgid "Unable to install Bacula Storage service" +msgstr "" + +#: src/win32/stored/baculasd/winservice.cpp:283 +msgid "" +"The Service Control Manager could not be contacted - the Bacula Storage " +"service was not installed" +msgstr "" + +#: src/win32/stored/baculasd/winservice.cpp:308 +msgid "The Bacula Storage service could not be installed" +msgstr "" + +#: src/win32/stored/baculasd/winservice.cpp:314 +msgid "Provides storage services. Bacula -- the network backup solution." +msgstr "" + +#: src/win32/stored/baculasd/winservice.cpp:322 +msgid "" +"The Bacula Storage service was successfully installed.\n" +"The service may be started from the Control Panel and will\n" +"automatically be run the next time this machine is rebooted." +msgstr "" + +#: src/win32/stored/baculasd/winservice.cpp:361 +msgid "The Bacula Storage service could not be stopped" +msgstr "" + +#: src/win32/stored/baculasd/winservice.cpp:368 +msgid "The Bacula Storage service has been removed" +msgstr "" + +#: src/win32/stored/baculasd/winservice.cpp:371 +msgid "The Bacula Storage service could not be removed" +msgstr "" + +#: src/win32/stored/baculasd/winservice.cpp:376 +msgid "The Bacula Storage service could not be found" +msgstr "" + +#: src/win32/stored/baculasd/winservice.cpp:381 +msgid "" +"The SCM could not be contacted - the Bacula Storage service was not removed" +msgstr "" + +#: src/wx-console/console_thread.cpp:121 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Director \"%s\" in config file.\n" +"At least one CA certificate store is required.\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:128 +msgid "" +"No Director resource defined in config file.\n" +"Without that I don't how to speak to the Director :-(\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:147 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Console \"%s\" in config file.\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:169 +msgid "Error while initializing windows sockets...\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:185 +msgid "Error while cleaning up windows sockets...\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:224 +msgid "Error while initializing library." +msgstr "" + +#: src/wx-console/console_thread.cpp:248 +msgid "Cryptographic library initialization failed.\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:252 +msgid "Please correct configuration file.\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:294 +msgid "Error : Library not initialized\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:305 +msgid "Error : No configuration file loaded\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:315 +msgid "Connecting...\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:331 +msgid "Error : No director defined in config file.\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:343 +msgid "Multiple directors found in your config file.\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:352 +#, c-format +msgid "Please choose a director (1-%d): " +msgstr "" + +#: src/wx-console/console_thread.cpp:424 +msgid "Failed to connect to the director\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:434 +msgid "Connected\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:491 +msgid "<< Unexpected signal received : " +msgstr "" + +#: src/wx-console/console_thread.cpp:511 +msgid "Connection terminated\n" +msgstr "" + +#: src/wx-console/main.cpp:119 +msgid "Bacula bwx-console" +msgstr "" + +#: src/wx-console/main.cpp:124 src/wx-console/wxbmainframe.cpp:267 +#, c-format +msgid "Welcome to bacula bwx-console %s (%s)!\n" +msgstr "" + +#: src/wx-console/wxbconfigfileeditor.cpp:65 +msgid "Config file editor" +msgstr "" + +#: src/wx-console/wxbconfigfileeditor.cpp:75 +msgid "# Bacula bwx-console Configuration File\n" +msgstr "" + +#: src/wx-console/wxbconfigfileeditor.cpp:111 +msgid "Save and close" +msgstr "" + +#: src/wx-console/wxbconfigfileeditor.cpp:112 +msgid "Close without saving" +msgstr "" + +#: src/wx-console/wxbconfigfileeditor.cpp:139 +#, c-format +msgid "Unable to write to %s\n" +msgstr "" + +#: src/wx-console/wxbconfigfileeditor.cpp:140 +msgid "Error while saving" +msgstr "" + +#: src/wx-console/wxbconfigpanel.cpp:205 +msgid "Apply" +msgstr "" + +#: src/wx-console/wxbhistorytextctrl.cpp:82 +#: src/wx-console/wxbhistorytextctrl.cpp:153 +#: src/wx-console/wxbmainframe.cpp:291 +msgid "Type your command below:" +msgstr "" + +#: src/wx-console/wxbhistorytextctrl.cpp:117 +msgid "Unknown command." +msgstr "" + +#: src/wx-console/wxbhistorytextctrl.cpp:126 +msgid "Possible completions: " +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:246 +msgid "&About...\tF1" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:246 +msgid "Show about dialog" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:248 src/wx-console/wxbmainframe.cpp:620 +msgid "Connect to the director" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:249 +msgid "Disconnect" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:249 +msgid "Disconnect of the director" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:251 +msgid "Change of configuration file" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:251 +msgid "Change your default configuration file" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:252 +msgid "Edit your configuration file" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:254 +msgid "E&xit\tAlt-X" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:254 +msgid "Quit this program" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:258 +msgid "&File" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:259 +msgid "&Help" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:283 +msgid "" +"Warning : Unicode is disabled because you are using wxWidgets for GTK+ 1.2.\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:287 +msgid "" +"Warning : There is a problem with wxWidgets for GTK+ 2.0 without Unicode " +"support when handling non-ASCII filenames: Every non-ASCII character in such " +"filenames will be replaced by an interrogation mark.\n" +"If this behaviour disturbs you, please build bwx-console against a Unicode " +"version of wxWidgets for GTK+ 2.0.\n" +"---\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:298 +msgid "Send" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:375 src/wx-console/wxbmainframe.cpp:387 +msgid "Error while parsing command line arguments, using defaults.\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:376 src/wx-console/wxbmainframe.cpp:388 +msgid "Usage: bwx-console [-c configfile] [-w tmp]\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:417 +#, c-format +msgid "" +"It seems that it is the first time you run bwx-console.\n" +"This file (%s) has been choosen as default configuration file.\n" +"Do you want to edit it? (if you click No you will have to select another " +"file)" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:419 +msgid "First run" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:436 +#, c-format +msgid "" +"Unable to read %s\n" +"Error: %s\n" +"Do you want to choose another one? (Press no to edit this file)" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:438 +msgid "Unable to read configuration file" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:450 +msgid "Please choose a configuration file to use" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:463 +msgid "This configuration file has been successfully read, use it as default?" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:464 +msgid "Configuration file read successfully" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:474 +#, c-format +msgid "Using this configuration file: %s\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:479 +msgid "Connecting to the director..." +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:494 +msgid "Failed to unregister a data parser !" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:502 +msgid "Quitting.\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:517 +msgid "" +"Welcome to Bacula bwx-console.\n" +"Written by Nicolas Boichat \n" +"Copyright (C), 2005-2007 Free Software Foundation Europe, e.V.\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:521 +msgid "About Bacula bwx-console" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:527 +msgid "Please choose your default configuration file" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:531 +msgid "Use this configuration file as default?" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:532 +msgid "Configuration file" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:603 +msgid "Console thread terminated." +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:611 +msgid "Connection to the director lost. Quit program?" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:612 +msgid "Connection lost" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:628 +msgid "Connected to the director." +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:651 +msgid "Reconnect" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:652 +msgid "Reconnect to the director" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:666 +msgid "Disconnected of the director." +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:685 src/wx-console/wxbrestorepanel.cpp:710 +msgid "Unexpected question has been received.\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:708 src/wx-console/wxbmainframe.cpp:725 +msgid "bwx-console: unexpected director's question." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:234 +#: src/wx-console/wxbrestorepanel.cpp:1920 +#: src/wx-console/wxbrestorepanel.cpp:1949 +msgid "Enter restore mode" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:237 +msgid "Cancel restore" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:263 +#: src/wx-console/wxbrestorepanel.cpp:317 +msgid "Add" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:265 +#: src/wx-console/wxbrestorepanel.cpp:319 +msgid "Remove" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:267 +#: src/wx-console/wxbrestorepanel.cpp:321 +msgid "Refresh" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:286 +msgid "M" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:290 +msgid "Filename" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:302 +msgid "Perm." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:335 +#: src/wx-console/wxbrestorepanel.cpp:348 +#: src/wx-console/wxbrestorepanel.cpp:503 +#: src/wx-console/wxbrestorepanel.cpp:513 +#: src/wx-console/wxbrestorepanel.cpp:516 +#: src/wx-console/wxbrestorepanel.cpp:1784 +#: src/wx-console/wxbrestorepanel.cpp:1870 +msgid "Job Name" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:337 +#: src/wx-console/wxbrestorepanel.cpp:353 +#: src/wx-console/wxbrestorepanel.cpp:455 +#: src/wx-console/wxbrestorepanel.cpp:456 +#: src/wx-console/wxbrestorepanel.cpp:466 +#: src/wx-console/wxbrestorepanel.cpp:467 +#: src/wx-console/wxbrestorepanel.cpp:1139 +#: src/wx-console/wxbrestorepanel.cpp:1212 +#: src/wx-console/wxbrestorepanel.cpp:1822 +#: src/wx-console/wxbrestorepanel.cpp:1824 +#: src/wx-console/wxbrestorepanel.cpp:1885 +msgid "Fileset" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:340 +#: src/wx-console/wxbrestorepanel.cpp:1206 +#: src/wx-console/wxbrestorepanel.cpp:1222 +#: src/wx-console/wxbrestorepanel.cpp:1224 +#: src/wx-console/wxbrestorepanel.cpp:1232 +#: src/wx-console/wxbrestorepanel.cpp:1234 +#: src/wx-console/wxbrestorepanel.cpp:1253 +#: src/wx-console/wxbrestorepanel.cpp:1260 +#: src/wx-console/wxbrestorepanel.cpp:1812 +#: src/wx-console/wxbrestorepanel.cpp:1823 +#: src/wx-console/wxbrestorepanel.cpp:1944 +msgid "Before" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:342 +msgid "Please configure parameters concerning files to restore :" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:351 +#: src/wx-console/wxbrestorepanel.cpp:1878 +msgid "always" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:351 +msgid "if newer" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:351 +msgid "if older" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:351 +#: src/wx-console/wxbrestorepanel.cpp:1881 +msgid "never" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:359 +msgid "Please configure parameters concerning files restoration :" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:427 +msgid "Getting parameters list." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:435 +msgid "Error : no clients returned by the director." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:459 +msgid "Error : no filesets returned by the director." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:483 +msgid "Error : no storage returned by the director." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:506 +#: src/wx-console/wxbrestorepanel.cpp:530 +msgid "Error : no jobs returned by the director." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:516 +msgid "RestoreFiles" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:551 +msgid "Please configure your restore parameters." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:562 +msgid "Building restore tree..." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:605 +msgid "Error while starting restore: " +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:695 +msgid "" +"Right click on a file or on a directory, or double-click on its mark to add " +"it to the restore list." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:732 +#: src/wx-console/wxbrestorepanel.cpp:754 +msgid "bwx-console: unexpected restore question." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:765 +msgid " files selected to be restored." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:770 +msgid " file selected to be restored." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:777 +#, c-format +msgid "Please configure your restore (%ld files selected to be restored)..." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:787 +msgid "Restore failed : no file selected.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:788 +msgid "Restore failed : no file selected." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:798 +msgid "Restoring, please wait..." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:811 +msgid "Job queued. JobId=" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:813 +msgid "Restore queued, jobid=" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:817 +msgid "Job failed." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:818 +msgid "Restore failed, please look at messages.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:819 +msgid "Restore failed, please look at messages in console." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:825 +#: src/wx-console/wxbrestorepanel.cpp:826 +msgid "Failed to retrieve jobid.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:852 +msgid "" +"Restore is scheduled in more than two minutes, bwx-console will not wait for " +"its completion.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:853 +msgid "" +"Restore is scheduled in more than two minutes, bwx-console will not wait for " +"its completion." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:879 +msgid "Restore job created, but not yet running." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:884 +#, c-format +msgid "Restore job running, please wait (%ld of %ld files restored)..." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:888 +msgid "Restore job terminated successfully." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:889 +msgid "Restore job terminated successfully.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:894 +msgid "Restore job terminated in error, see messages in console." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:895 +msgid "Restore job terminated in error, see messages.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:900 +msgid "Restore job reported a non-fatal error." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:904 +msgid "Restore job reported a fatal error." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:909 +msgid "Restore job cancelled by user." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:910 +msgid "Restore job cancelled by user.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:915 +msgid "Restore job is waiting on File daemon." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:919 +msgid "Restore job is waiting for new media." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:923 +msgid "Restore job is waiting for storage resource." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:927 +msgid "Restore job is waiting for job resource." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:931 +msgid "Restore job is waiting for Client resource." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:935 +msgid "Restore job is waiting for maximum jobs." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:939 +msgid "Restore job is waiting for start time." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:943 +msgid "Restore job is waiting for higher priority jobs to finish." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:992 +msgid "" +"The restore job has not been started within one minute, bwx-console will not " +"wait for its completion anymore.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:993 +msgid "" +"The restore job has not been started within one minute, bwx-console will not " +"wait for its completion anymore." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1003 +msgid "Restore done successfully.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1004 +msgid "Restore done successfully." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1075 +msgid "Applying restore configuration changes..." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1126 +msgid "Failed to find the selected client." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1141 +msgid "Failed to find the selected fileset." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1156 +msgid "Failed to find the selected storage." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1173 +#: src/wx-console/wxbrestorepanel.cpp:1859 +msgid "Run Restore job" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1189 +msgid "Restore configuration changes were applied." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1198 +msgid "Restore cancelled.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1199 +msgid "Restore cancelled." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1221 +msgid "No results to list." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1223 +msgid "No backup found for this client." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1230 +msgid "ERROR" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1231 +msgid "Query failed" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1233 +msgid "Cannot get previous backups list, see console." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1869 +msgid "JobName:" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1873 +msgid "Where:" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1876 +msgid "Replace:" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1879 +msgid "ifnewer" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1880 +msgid "ifolder" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1884 +msgid "FileSet:" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:2001 +msgid "Restoring..." +msgstr "" diff --git a/Branch-2.2/bacula/po/fr.po b/Branch-2.2/bacula/po/fr.po new file mode 100644 index 0000000000..50e6b1b2fc --- /dev/null +++ b/Branch-2.2/bacula/po/fr.po @@ -0,0 +1,17323 @@ +# French translations for Bacula package +# Traduction anglaise du package Bacula. +# Copyright (C) 2005-2006 Free Software Foundation Europe e.V. +# Nicolas Boichat , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: Bacula 1.38\n" +"Report-Msgid-Bugs-To: bacula-devel@lists.sourceforge.net\n" +"POT-Creation-Date: 2008-01-26 09:48+0100\n" +"PO-Revision-Date: 2008-01-24 22:54+0100\n" +"Last-Translator: Eric Bollengier \n" +"Language-Team: French \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: patches/testing/bregsed.c:131 src/tools/bregtest.c:131 +#: src/tools/bwild.c:122 src/tools/bregex.c:147 +#, c-format +msgid "Could not open data file: %s\n" +msgstr "Impossible d'ouvrir le fichier de données %s.\n" + +#: src/dird/next_vol.c:146 +#, c-format +msgid "Purging oldest volume \"%s\"\n" +msgstr "" + +#: src/dird/next_vol.c:152 +#, c-format +msgid "Pruning oldest volume \"%s\"\n" +msgstr "" + +#: src/dird/next_vol.c:171 +msgid "We seem to be looping trying to find the next volume. I give up.\n" +msgstr "" + +#: src/dird/next_vol.c:197 +#, c-format +msgid "Max Volume bytes exceeded. Marking Volume \"%s\" as Full.\n" +msgstr "" + +#: src/dird/next_vol.c:204 +#, c-format +msgid "Volume used once. Marking Volume \"%s\" as Used.\n" +msgstr "Volume utilisé une fois. Marquage du volume « %s » comme Used.\n" + +#: src/dird/next_vol.c:211 +#, c-format +msgid "Max Volume jobs exceeded. Marking Volume \"%s\" as Used.\n" +msgstr "" + +#: src/dird/next_vol.c:220 +#, c-format +msgid "Max Volume files exceeded. Marking Volume \"%s\" as Used.\n" +msgstr "" +"Nombre de fichier maximum atteind. Marquage du volume « %s » comme Used.\n" + +#: src/dird/next_vol.c:230 +#, c-format +msgid "Max configured use duration exceeded. Marking Volume \"%s\" as Used.\n" +msgstr "" + +#: src/dird/next_vol.c:240 +#, c-format +msgid "Catalog error updating volume \"%s\". ERR=%s" +msgstr "" + +#: src/dird/next_vol.c:261 +msgid "volume has expired" +msgstr "le volume a expiré" + +#: src/dird/next_vol.c:279 src/dird/next_vol.c:315 +#, c-format +msgid "Recycled current volume \"%s\"\n" +msgstr "" + +#: src/dird/next_vol.c:284 +msgid "and recycling of current volume failed" +msgstr "" + +#: src/dird/next_vol.c:290 +msgid "but should be Append, Purged or Recycle" +msgstr "mais doit être Append, Purged ou bien Recycle" + +#: src/dird/next_vol.c:318 +msgid "" +"but should be Append, Purged or Recycle (recycling of the current volume " +"failed)" +msgstr "" + +#: src/dird/next_vol.c:322 +msgid "" +"but should be Append, Purged or Recycle (cannot automatically recycle " +"current volume, as it still contains unpruned data or the Volume Retention " +"time has not expired.)" +msgstr "" + +#: src/dird/next_vol.c:380 +#, c-format +msgid "Unable to get Pool record: ERR=%s" +msgstr "" + +#: src/dird/next_vol.c:387 +#, c-format +msgid "Unable add Scratch Volume, Pool \"%s\" full MaxVols=%d\n" +msgstr "" +"Impossible d'ajouter un volume du Scratch, le Pool « %s » est plein. MaxVols=" +"%d\n" + +#: src/dird/next_vol.c:406 +#, c-format +msgid "Failed to move Scratch Volume. ERR=%s\n" +msgstr "Impossible de déplacer un Volume du Scratch. ERR=%s\n" + +#: src/dird/next_vol.c:411 +#, c-format +msgid "Using Volume \"%s\" from 'Scratch' pool.\n" +msgstr "Utilisation du Volume « %s » du pool « Scratch ».\n" + +#: src/dird/fd_cmds.c:94 +#, fuzzy +msgid "Client: " +msgstr "Client" + +#: src/dird/fd_cmds.c:127 +#, c-format +msgid "File daemon \"%s\" rejected Job command: %s\n" +msgstr "" + +#: src/dird/fd_cmds.c:140 +#, c-format +msgid "Error updating Client record. ERR=%s\n" +msgstr "" + +#: src/dird/fd_cmds.c:145 +#, c-format +msgid "FD gave bad response to JobId command: %s\n" +msgstr "" + +#: src/dird/fd_cmds.c:167 src/dird/fd_cmds.c:203 +msgid ", since=" +msgstr ", depuis=" + +#: src/dird/fd_cmds.c:187 +msgid "No prior or suitable Full backup found in catalog. Doing FULL backup.\n" +msgstr "Pas de précédent backup Full utilisable. Lancement d'un backup FULL.\n" + +#: src/dird/fd_cmds.c:188 src/dird/fd_cmds.c:196 +#, c-format +msgid " (upgraded from %s)" +msgstr " (à la place de %s)" + +#: src/dird/fd_cmds.c:194 +#, c-format +msgid "Prior failed job found in catalog. Upgrading to %s.\n" +msgstr "Le job précédent était en erreur. Passage au type %s.\n" + +#: src/dird/fd_cmds.c:255 +#, c-format +msgid "Unimplemented backup level %d %c\n" +msgstr "" + +#: src/dird/fd_cmds.c:358 src/filed/job.c:640 +#, c-format +msgid "Cannot run program: %s. ERR=%s\n" +msgstr "Impossible de lancer la commande : %s. ERR=%s\n" + +#: src/dird/fd_cmds.c:369 src/dird/fd_cmds.c:394 src/dird/fd_cmds.c:408 +msgid ">filed: write error on socket\n" +msgstr "" + +#: src/dird/fd_cmds.c:375 +#, c-format +msgid "Error running program: %s. ERR=%s\n" +msgstr "Erreur dans l'exécution de la commande : %s. ERR=%s\n" + +#: src/dird/fd_cmds.c:384 +#, c-format +msgid "Cannot open included file: %s. ERR=%s\n" +msgstr "Impossible d'ouvrir le fichier inclus : %s. ERR=%s\n" + +#: src/dird/fd_cmds.c:479 src/filed/job.c:1831 +#, c-format +msgid "Could not open bootstrap file %s: ERR=%s\n" +msgstr "Impossible d'ouvrir le fichier bootstrap %s : ERR=%s\n" + +#: src/dird/fd_cmds.c:585 +#, fuzzy, c-format +msgid "Client \"%s\" RunScript failed.\n" +msgstr "le client « %s » est introuvable.\n" + +#: src/dird/fd_cmds.c:621 +#, c-format +msgid "" +"\" command before continuing.\n" +msgstr "" + +#: src/dird/ua_select.c:230 +msgid "The defined Catalog resources are:\n" +msgstr "Les Catalogues définis sont :\n" + +#: src/dird/ua_select.c:238 +msgid "Catalog" +msgstr "Catalogue" + +#: src/dird/ua_select.c:238 +msgid "Select Catalog resource" +msgstr "Sélectionnez le Catalogue" + +#: src/dird/ua_select.c:255 +msgid "The defined Job resources are:\n" +msgstr "Les Job définis sont :\n" + +#: src/dird/ua_select.c:263 src/dird/ua_select.c:286 src/dird/ua_cmds.c:476 +#: src/dird/ua_prune.c:365 src/dird/dird_conf.c:600 src/dird/ua_run.c:265 +msgid "Job" +msgstr "Job" + +#: src/dird/ua_select.c:263 +msgid "Select Job resource" +msgstr "Sélectionnez le Job" + +#: src/dird/ua_select.c:278 +msgid "The defined Restore Job resources are:\n" +msgstr "Les Job de restauration sont :\n" + +#: src/dird/ua_select.c:286 +msgid "Select Restore Job" +msgstr "Sélectionnez le Job de restauration" + +#: src/dird/ua_select.c:303 +msgid "The defined Client resources are:\n" +msgstr "Les clients définis sont :\n" + +#: src/dird/ua_select.c:311 src/dird/ua_select.c:420 src/dird/ua_cmds.c:997 +#: src/dird/ua_dotcmds.c:285 src/dird/ua_run.c:270 +#: src/wx-console/wxbrestorepanel.cpp:336 +#: src/wx-console/wxbrestorepanel.cpp:354 +#: src/wx-console/wxbrestorepanel.cpp:431 +#: src/wx-console/wxbrestorepanel.cpp:432 +#: src/wx-console/wxbrestorepanel.cpp:442 +#: src/wx-console/wxbrestorepanel.cpp:443 +#: src/wx-console/wxbrestorepanel.cpp:690 +#: src/wx-console/wxbrestorepanel.cpp:1124 +#: src/wx-console/wxbrestorepanel.cpp:1211 +#: src/wx-console/wxbrestorepanel.cpp:1811 +#: src/wx-console/wxbrestorepanel.cpp:1813 +#: src/wx-console/wxbrestorepanel.cpp:1887 +#: src/wx-console/wxbrestorepanel.cpp:1943 +msgid "Client" +msgstr "Client" + +#: src/dird/ua_select.c:311 +msgid "Select Client (File daemon) resource" +msgstr "Sélectionnez le client (File daemon)" + +#: src/dird/ua_select.c:338 +#, c-format +msgid "Error: Client resource %s does not exist.\n" +msgstr "Erreur : le client %s n'est pas définie.\n" + +#: src/dird/ua_select.c:363 +#, c-format +msgid "Could not find Client %s: ERR=%s" +msgstr "Impossible de trouver le client %s : ERR=%s" + +#: src/dird/ua_select.c:373 src/dird/ua_select.c:427 +#, c-format +msgid "Could not find Client \"%s\": ERR=%s" +msgstr "Impossible de trouver le client « %s » : ERR=%s" + +#: src/dird/ua_select.c:402 +#, c-format +msgid "Error obtaining client ids. ERR=%s\n" +msgstr "Erreur pendant l'obtention de l'identifiant du Client. ERR=%s\n" + +#: src/dird/ua_select.c:406 +msgid "No clients defined. You must run a job before using this command.\n" +msgstr "" +"Pas de client défini. Vous devez lancer une sauvegarde avant d'utiliser " +"cette commande.\n" + +#: src/dird/ua_select.c:410 +msgid "Defined Clients:\n" +msgstr "Clients définis :\n" + +#: src/dird/ua_select.c:420 +msgid "Select the Client" +msgstr "Sélectionnez le client" + +#: src/dird/ua_select.c:453 src/dird/ua_select.c:477 src/dird/ua_select.c:513 +#, c-format +msgid "Could not find Pool \"%s\": ERR=%s" +msgstr "Impossible de trouver le Pool « %s » : ERR=%s" + +#: src/dird/ua_select.c:492 +msgid "No pools defined. Use the \"create\" command to create one.\n" +msgstr "" +"Pas de Pool défini. Utilisez la commande « create » pour en créer un.\n" + +#: src/dird/ua_select.c:496 +msgid "Defined Pools:\n" +msgstr "Pools définis :\n" + +#: src/dird/ua_select.c:506 +msgid "Select the Pool" +msgstr "Sélectionnez le Pool" + +#: src/dird/ua_select.c:536 +#, c-format +msgid "No access to Pool \"%s\"\n" +msgstr "Pas d'accès au Pool « %s »\n" + +#: src/dird/ua_select.c:562 +msgid "Enter MediaId or Volume name: " +msgstr "Saisissez le MediaId ou le nom du Volume : " + +#: src/dird/ua_select.c:588 +msgid "The defined Pool resources are:\n" +msgstr "Les Pools définis sont :\n" + +#: src/dird/ua_select.c:596 +msgid "Select Pool resource" +msgstr "Sélectionnez le Pool" + +#: src/dird/ua_select.c:620 src/dird/ua_restore.c:523 +#, c-format +msgid "Error: Pool resource \"%s\" does not exist.\n" +msgstr "Erreur : le Pool « %s » n'existe pas.\n" + +#: src/dird/ua_select.c:631 +msgid "Enter the JobId to select: " +msgstr "Entrez le JobId à sélectionner : " + +#: src/dird/ua_select.c:669 +#, c-format +msgid "Could not find Job \"%s\": ERR=%s" +msgstr "Impossible de trouver le Job « %s » : ERR=%s" + +#: src/dird/ua_select.c:749 +#, c-format +msgid "Automatically selected %s: %s\n" +msgstr "Sélection automatique %s : %s\n" + +#: src/dird/ua_select.c:754 +#, c-format +msgid "Cannot select %s in batch mode.\n" +msgstr "Impossible de choisir %s en mode batch.\n" + +#: src/dird/ua_select.c:772 +#, c-format +msgid "Selection list for \"%s\" is empty!\n" +msgstr "La sélection pour « %s » est vide !\n" + +#: src/dird/ua_select.c:778 +#, c-format +msgid "Automatically selected: %s\n" +msgstr "Sélection automatique : %s\n" + +#: src/dird/ua_select.c:790 +msgid "Selection aborted, nothing done.\n" +msgstr "Sélection annulée, rien de fait.\n" + +#: src/dird/ua_select.c:795 +#, c-format +msgid "Please enter a number between 1 and %d\n" +msgstr "Merci de saisir un nombre entre 1 et %d\n" + +#: src/dird/ua_select.c:844 +msgid "Storage name given twice.\n" +msgstr "" + +#: src/dird/ua_select.c:861 +#, c-format +msgid "Expecting jobid=nn command, got: %s\n" +msgstr "Attendait l'option jobid=nn, pas : %s\n" + +#: src/dird/ua_select.c:865 +#, c-format +msgid "JobId %s is not running.\n" +msgstr "JobId %s n'est pas en cours.\n" + +#: src/dird/ua_select.c:875 +#, c-format +msgid "Expecting job=xxx, got: %s.\n" +msgstr "Attendait l'option job=xxx, pas : %s\n" + +#: src/dird/ua_select.c:879 src/dird/ua_select.c:891 +#, c-format +msgid "Job \"%s\" is not running.\n" +msgstr "Job « %s » n'est pas en cours.\n" + +#: src/dird/ua_select.c:887 +#, c-format +msgid "Expecting ujobid=xxx, got: %s.\n" +msgstr "Attendait l'option ujobid=xxx, pas : %s\n" + +#: src/dird/ua_select.c:907 +#, c-format +msgid "Storage resource \"%s\": not found\n" +msgstr "Storage resource « %s » : non trouvé\n" + +#: src/dird/ua_select.c:939 +msgid "Enter autochanger drive[0]: " +msgstr "Saisissez le numéro du lecteur de l'autochanger [0] : " + +#: src/dird/ua_select.c:960 +msgid "Enter autochanger slot: " +msgstr "Saisissez le slot de l'autochanger [0] : " + +#: src/dird/ua_select.c:990 +msgid "Media Types defined in conf file:\n" +msgstr "" + +#: src/dird/ua_select.c:996 +msgid "Media Type" +msgstr "" + +#: src/dird/ua_select.c:996 +msgid "Select the Media Type" +msgstr "Choisissez le type de Media" + +#: src/dird/verify.c:120 +msgid "" +"Unable to find JobId of previous InitCatalog Job.\n" +"Please run a Verify with Level=InitCatalog before\n" +"running the current Job.\n" +msgstr "" +"Impossible de trouvé JobId d'un précédent Job « InitCatalog.\n" +"Il faut lancer un Job Verify avec l'option Level=InitCatalog avant\n" +"de lancer le Job courant.\n" + +#: src/dird/verify.c:125 +msgid "Unable to find JobId of previous Job for this client.\n" +msgstr "Impossible de trouver JobId d'un précédent Job pour ce client.\n" + +#: src/dird/verify.c:141 +#, c-format +msgid "Could not get job record for previous Job. ERR=%s" +msgstr "" + +#: src/dird/verify.c:146 +#, c-format +msgid "Last Job %d did not terminate normally. JobStatus=%c\n" +msgstr "Le dernier job %d ne s'est pas terminé correctement. JobStatus=%c\n" + +#: src/dird/verify.c:150 +#, c-format +msgid "Verifying against JobId=%d Job=%s\n" +msgstr "" + +#: src/dird/verify.c:179 +#, c-format +msgid "Start Verify JobId=%s Level=%s Job=%s\n" +msgstr "" + +#: src/dird/verify.c:263 +msgid "Deprecated feature ... use bootstrap.\n" +msgstr "" + +#: src/dird/verify.c:276 +#, c-format +msgid "Unimplemented Verify level %d(%c)\n" +msgstr "" + +#: src/dird/verify.c:330 +#, c-format +msgid "Unimplemented verify level %d\n" +msgstr "" + +#: src/dird/verify.c:388 +msgid "Verify OK" +msgstr "Vérification OK" + +#: src/dird/verify.c:392 +msgid "*** Verify Error ***" +msgstr "*** Erreur de Vérification ***" + +#: src/dird/verify.c:396 +msgid "Verify warnings" +msgstr "" + +#: src/dird/verify.c:399 +msgid "Verify Canceled" +msgstr "Vérification annulée" + +#: src/dird/verify.c:402 +msgid "Verify Differences" +msgstr "" + +#: src/dird/verify.c:407 +#, c-format +msgid "Inappropriate term code: %d %c\n" +msgstr "" + +#: src/dird/verify.c:421 +#, fuzzy, c-format +msgid "" +"Bacula %s %s (%s): %s\n" +" Build OS: %s %s %s\n" +" JobId: %d\n" +" Job: %s\n" +" FileSet: %s\n" +" Verify Level: %s\n" +" Client: %s\n" +" Verify JobId: %d\n" +" Verify Job: %s\n" +" Start time: %s\n" +" End time: %s\n" +" Files Expected: %s\n" +" Files Examined: %s\n" +" Non-fatal FD errors: %d\n" +" FD termination status: %s\n" +" SD termination status: %s\n" +" Termination: %s\n" +"\n" +msgstr "" +"Bacula %s %s (%s): %s\n" +" Build OS: %s %s %s\n" +" JobId : %d\n" +" Job : %s\n" +" FileSet: %s\n" +" Client : %s\n" +" Début : %s\n" +" Fin : %s\n" +" Fichiers attendus : %s\n" +" Fichiers restaurés : %s\n" +" Octets restaurés : %s\n" +" Débit : %.1f Ko/s\n" +" Erreurs du FD : %d\n" +" Statut de fin du FD : %s\n" +" Statut de fin du SD : %s\n" +" Etat : %s\n" + +#: src/dird/verify.c:456 +#, fuzzy, c-format +msgid "" +"Bacula %s %s (%s): %s\n" +" Build: %s %s %s\n" +" JobId: %d\n" +" Job: %s\n" +" FileSet: %s\n" +" Verify Level: %s\n" +" Client: %s\n" +" Verify JobId: %d\n" +" Verify Job: %s\n" +" Start time: %s\n" +" End time: %s\n" +" Files Examined: %s\n" +" Non-fatal FD errors: %d\n" +" FD termination status: %s\n" +" Termination: %s\n" +"\n" +msgstr "" +"Bacula %s (%s) : %s\n" +" JobId : %d\n" +" Job : %s\n" +" Client : %s\n" +" Début : %s\n" +" Fin : %s\n" +" Fichiers attendus : %s\n" +" Fichiers restaurés : %s\n" +" Octets restaurés : %s\n" +" Débit : %.1f Ko/s\n" +" Erreurs du FD : %d\n" +" Statut de fin du FD : %s\n" +" Statut de fin du SD : %s\n" +" Etat : %s\n" + +#: src/dird/verify.c:535 +#, c-format +msgid "" +"bird | ] -- cancel a job" +msgstr "cancel [ | ] -- annulation d'un job" + +#: src/dird/ua_cmds.c:108 +msgid "create DB Pool from resource" +msgstr "" + +#: src/dird/ua_cmds.c:109 +msgid "delete [pool= | media volume=]" +msgstr "delete [pool= | media volume=]" + +#: src/dird/ua_cmds.c:110 +msgid "disable -- disable a job" +msgstr "disable -- désactive un job" + +#: src/dird/ua_cmds.c:111 +msgid "enable -- enable a job" +msgstr "enable -- active un job" + +#: src/dird/ua_cmds.c:112 +msgid "performs FileSet estimate, listing gives full listing" +msgstr "" +"estimate -- estime un FileSet (listing donne la liste des fichiers)" + +#: src/dird/ua_cmds.c:113 src/console/console.c:171 +msgid "exit = quit" +msgstr "exit = quit" + +#: src/dird/ua_cmds.c:114 +msgid "gui [on|off] -- non-interactive gui mode" +msgstr "gui [on|off] -- mode non interactif (pour interface graphique)" + +#: src/dird/ua_cmds.c:115 src/stored/btape.c:2544 +msgid "print this command" +msgstr "affiche cette commande" + +#: src/dird/ua_cmds.c:116 +msgid "" +"list [pools | jobs | jobtotals | media | files ]; " +"from catalog" +msgstr "" +"list [pools | jobs | jobtotals | media | files ] " +"-- depuis le catalogue" + +#: src/dird/ua_cmds.c:117 +msgid "label a tape" +msgstr "labéliser une bande" + +#: src/dird/ua_cmds.c:118 +msgid "full or long list like list command" +msgstr "" + +#: src/dird/ua_cmds.c:119 +msgid "messages" +msgstr "messages" + +#: src/dird/ua_cmds.c:120 +#, fuzzy +msgid "print current memory usage" +msgstr "affiche la date courante" + +#: src/dird/ua_cmds.c:121 +msgid "mount " +msgstr "" + +#: src/dird/ua_cmds.c:122 +msgid "prune expired records from catalog" +msgstr "purge les entrées expirées du catalogue" + +#: src/dird/ua_cmds.c:123 +msgid "purge records from catalog" +msgstr "purge les enregistrements du catalogue" + +#: src/dird/ua_cmds.c:124 +msgid "python control commands" +msgstr "" + +#: src/dird/ua_cmds.c:125 src/console/console.c:164 +msgid "quit" +msgstr "quit" + +#: src/dird/ua_cmds.c:126 +msgid "query catalog" +msgstr "interroger le catalogue" + +#: src/dird/ua_cmds.c:127 +msgid "restore files" +msgstr "restauration de fichier" + +#: src/dird/ua_cmds.c:128 +msgid "relabel a tape" +msgstr "re-labélise une bande" + +#: src/dird/ua_cmds.c:129 +msgid "release " +msgstr "" + +#: src/dird/ua_cmds.c:130 +msgid "reload conf file" +msgstr "recharge la configuration" + +#: src/dird/ua_cmds.c:131 +msgid "run " +msgstr "run -- lance un job" + +#: src/dird/ua_cmds.c:132 +msgid "status [storage | client]=" +msgstr "status [storage | client]= -- affiche le statut d'un composant" + +#: src/dird/ua_cmds.c:133 +msgid "sets debug level" +msgstr "positionne le niveau de debug" + +#: src/dird/ua_cmds.c:134 +msgid "sets new client address -- if authorized" +msgstr "" + +#: src/dird/ua_cmds.c:135 +msgid "show (resource records) [jobs | pools | ... | all]" +msgstr "" + +#: src/dird/ua_cmds.c:136 +msgid "use SQL to query catalog" +msgstr "passer des commandes SQL pour interroger le catalogue" + +#: src/dird/ua_cmds.c:137 src/console/console.c:167 +msgid "print current time" +msgstr "affiche la date courante" + +#: src/dird/ua_cmds.c:138 +msgid "turn on/off trace to file" +msgstr "active/désactive le fichier de trace" + +#: src/dird/ua_cmds.c:139 +msgid "unmount " +msgstr "unmount -- démonte un lecteur" + +#: src/dird/ua_cmds.c:140 +msgid "umount for old-time Unix guys" +msgstr "umount -- démonte un lecteur" + +#: src/dird/ua_cmds.c:141 +msgid "update Volume, Pool or slots" +msgstr "met à jour un volume, un pool ou bien des slots" + +#: src/dird/ua_cmds.c:142 +msgid "use catalog xxx" +msgstr "utilise le catalogue xxx" + +#: src/dird/ua_cmds.c:143 +msgid "does variable expansion" +msgstr "" + +#: src/dird/ua_cmds.c:144 +msgid "print Director version" +msgstr "affiche la version du Director" + +#: src/dird/ua_cmds.c:145 +msgid "" +"wait until no jobs are running [ | | " +"]" +msgstr "" + +#: src/dird/ua_cmds.c:186 +#, c-format +msgid "%s: is an invalid command.\n" +msgstr "%s : est une commande invalide.\n" + +#: src/dird/ua_cmds.c:227 +msgid "" +"You probably don't want to be using this command since it\n" +"creates database records without labeling the Volumes.\n" +"You probably want to use the \"label\" command.\n" +"\n" +msgstr "" + +#: src/dird/ua_cmds.c:246 +#, c-format +msgid "Pool already has maximum volumes=%d\n" +msgstr "Le pool a déjà atteint le nombre maximum de volume=%d\n" + +#: src/dird/ua_cmds.c:247 +msgid "Enter new maximum (zero for unlimited): " +msgstr "Entrez le nouveau maximum (zéro pour illimité) : " + +#: src/dird/ua_cmds.c:267 +#, c-format +msgid "Enter number of Volumes to create. 0=>fixed name. Max=%d: " +msgstr "Entrez le nombre de Volume à créer. 0=>nom fixé. Max=%d : " + +#: src/dird/ua_cmds.c:273 +#, c-format +msgid "The number must be between 0 and %d\n" +msgstr "Le nombre doit être entre 0 et %d\n" + +#: src/dird/ua_cmds.c:280 +msgid "Enter Volume name: " +msgstr "Entrez le nom du Volume : " + +#: src/dird/ua_cmds.c:284 +msgid "Enter base volume name: " +msgstr "Entrez le nom de base du volume : " + +#: src/dird/ua_cmds.c:306 +msgid "Enter the starting number: " +msgstr "Entrez le nombre de départ : " + +#: src/dird/ua_cmds.c:311 +msgid "Start number must be greater than zero.\n" +msgstr "Le nombre de départ doit être supérieur à zéro.\n" + +#: src/dird/ua_cmds.c:322 +msgid "Enter slot (0 for none): " +msgstr "Saisissez le slot (0 pour aucun) : " + +#: src/dird/ua_cmds.c:326 +msgid "InChanger? yes/no: " +msgstr "InChanger ? oui/non : " + +#: src/dird/ua_cmds.c:354 +#, c-format +msgid "%d Volumes created in pool %s\n" +msgstr "%d Volumes créés dans le pool %s\n" + +#: src/dird/ua_cmds.c:370 src/dird/ua_cmds.c:1033 +msgid "Turn on or off? " +msgstr "Activer ou désactiver ? (on/off) " + +#: src/dird/ua_cmds.c:401 +#, c-format +msgid "JobId %s is not running. Use Job name to cancel inactive jobs.\n" +msgstr "" +"JobId %s n'est pas en cours. Utilisez le nom du Job pour annuler un job " +"inactif.\n" + +#: src/dird/ua_cmds.c:410 src/dird/ua_cmds.c:420 +#, c-format +msgid "Warning Job %s is not running. Continuing anyway ...\n" +msgstr "Attention le Job %s n'est pas en cours. Continuons quand même...\n" + +#: src/dird/ua_cmds.c:430 src/dird/ua_cmds.c:706 src/dird/ua_cmds.c:752 +msgid "Unauthorized command from this console.\n" +msgstr "Commande interdite depuis cette console.\n" + +#: src/dird/ua_cmds.c:455 src/filed/status.c:201 src/stored/status.c:447 +msgid "No Jobs running.\n" +msgstr "Pas de job en cours.\n" + +#: src/dird/ua_cmds.c:457 +msgid "None of your jobs are running.\n" +msgstr "Aucun de vos jobs ne sont en cours.\n" + +#: src/dird/ua_cmds.c:462 +msgid "Select Job:\n" +msgstr "Sélectionnez le Job :\n" + +#: src/dird/ua_cmds.c:471 +#, c-format +msgid "JobId=%s Job=%s" +msgstr "JobId=%s Job=%s" + +#: src/dird/ua_cmds.c:476 +msgid "Choose Job to cancel" +msgstr "Sélectionnez le Job à annuler" + +#: src/dird/ua_cmds.c:481 +#, fuzzy, c-format +msgid "" +"Cancel: %s\n" +"\n" +"%s" +msgstr "Annulé" + +#: src/dird/ua_cmds.c:482 +#, fuzzy +msgid "Confirm cancel?" +msgstr "Confirmez l'annulation (oui/non) : " + +#: src/dird/ua_cmds.c:488 +msgid "Confirm cancel (yes/no): " +msgstr "Confirmez l'annulation (oui/non) : " + +#: src/dird/ua_cmds.c:496 src/dird/ua_cmds.c:747 +#, c-format +msgid "Job \"%s\" not found.\n" +msgstr "Job « %s » non trouvé.\n" + +#: src/dird/ua_cmds.c:593 +#, c-format +msgid "" +"Can't set %s RecyclePool to %s, %s is not in database.\n" +"Try to update it with 'update pool=%s'\n" +msgstr "" + +#: src/dird/ua_cmds.c:660 +#, c-format +msgid "" +"Error: Pool %s already exists.\n" +"Use update to change it.\n" +msgstr "" +"Erreur : Pool %s est déjà défini.\n" +"Utilisez update pour le changer\n" + +#: src/dird/ua_cmds.c:671 +#, c-format +msgid "Pool %s created.\n" +msgstr "Pool %s créé.\n" + +#: src/dird/ua_cmds.c:688 +msgid "Python interpreter restarted.\n" +msgstr "" + +#: src/dird/ua_cmds.c:690 src/dird/ua_cmds.c:1273 +msgid "Nothing done.\n" +msgstr "Rien de fait.\n" + +#: src/dird/ua_cmds.c:713 src/dird/ua_run.c:1225 +#, c-format +msgid "Client \"%s\" not found.\n" +msgstr "le client « %s » est introuvable.\n" + +#: src/dird/ua_cmds.c:722 +#, c-format +msgid "Client \"%s\" address set to %s\n" +msgstr "Client « %s » adresse positionné à %s\n" + +#: src/dird/ua_cmds.c:756 +#, c-format +msgid "Job \"%s\" %sabled\n" +msgstr "" + +#: src/dird/ua_cmds.c:812 src/dird/ua_cmds.c:1163 src/dird/ua_dotcmds.c:206 +msgid "Failed to connect to Client.\n" +msgstr "Impossible de se connecter au Client.\n" + +#: src/dird/ua_cmds.c:928 +msgid "Enter new debug level: " +msgstr "Saisissez le nouveau niveau de debug : " + +#: src/dird/ua_cmds.c:994 src/dird/ua_dotcmds.c:282 +msgid "Available daemons are: \n" +msgstr "Les démons disponibles sont :\n" + +#: src/dird/ua_cmds.c:995 src/dird/ua_dotcmds.c:283 +msgid "Director" +msgstr "Director" + +#: src/dird/ua_cmds.c:998 +msgid "All" +msgstr "" + +#: src/dird/ua_cmds.c:999 +msgid "Select daemon type to set debug level" +msgstr "Sélectionnez le composant a mettre à jour" + +#: src/dird/ua_cmds.c:1089 src/dird/ua_cmds.c:1128 src/dird/ua_cmds.c:1796 +#, c-format +msgid "No authorization for Job \"%s\"\n" +msgstr "" + +#: src/dird/ua_cmds.c:1099 +#, fuzzy, c-format +msgid "No authorization for FileSet \"%s\"\n" +msgstr "Pas d'enregistrement trouvé en base pour : %s\n" + +#: src/dird/ua_cmds.c:1111 src/dird/ua_run.c:217 +#, c-format +msgid "Level %s not valid.\n" +msgstr "Le type %s est invalide.\n" + +#: src/dird/ua_cmds.c:1124 +msgid "No job specified.\n" +msgstr "Pas de job sélectionné.\n" + +#: src/dird/ua_cmds.c:1168 +msgid "Error sending include list.\n" +msgstr "Erreur pendant l'envoi de la liste d'inclusion.\n" + +#: src/dird/ua_cmds.c:1173 +msgid "Error sending exclude list.\n" +msgstr "Erreur pendant l'envoi de la liste d'exclusion.\n" + +#: src/dird/ua_cmds.c:1259 +msgid "" +"In general it is not a good idea to delete either a\n" +"Pool or a Volume since they may contain data.\n" +"\n" +msgstr "" +"Généralement supprimer un pool ou bien un volume\n" +"n'est pas une bonne idée car ils peuvent contenir des données.\n" +"\n" + +#: src/dird/ua_cmds.c:1262 +msgid "Choose catalog item to delete" +msgstr "Choisissez l'objet du catalogue à supprimer" + +#: src/dird/ua_cmds.c:1330 +msgid "Enter JobId to delete: " +msgstr "Saisissez le JobId à supprimer : " + +#: src/dird/ua_cmds.c:1365 +#, c-format +msgid "Job %s and associated records deleted from the catalog.\n" +msgstr "" +"Le Job %s et les enregistrements associés ont été supprimés du catalogue.\n" + +#: src/dird/ua_cmds.c:1379 +#, c-format +msgid "" +"\n" +"This command will delete volume %s\n" +"and all Jobs saved on that volume from the Catalog\n" +msgstr "" +"\n" +"Cette commande va supprimer le Volume %s\n" +"et tous les Jobs sauvegardés sur celui-ci du Catalogue\n" + +#: src/dird/ua_cmds.c:1383 +#, fuzzy, c-format +msgid "Are you sure you want to delete Volume \"%s\"? (yes/no): " +msgstr "Êtes vous certain de vouloir supprimer ce Volume ? (oui/non) : " + +#: src/dird/ua_cmds.c:1407 +#, fuzzy, c-format +msgid "Are you sure you want to delete Pool \"%s\"? (yes/no): " +msgstr "Êtes vous certain de vouloir supprimer ce Pool ? (oui/non) : " + +#: src/dird/ua_cmds.c:1521 +#, c-format +msgid "Using Catalog name=%s DB=%s\n" +msgstr "Utilisation du Catalogue name=%s DB=%s\n" + +#: src/dird/ua_cmds.c:1581 +msgid "ERR: Can't open db\n" +msgstr "" + +#: src/dird/ua_cmds.c:1617 +msgid "ERR: Job was not found\n" +msgstr "ERR: Job %s non trouvé\n" + +#: src/dird/ua_cmds.c:1693 src/dird/ua_tree.c:665 src/stored/btape.c:2591 +#, c-format +msgid "" +" Command Description\n" +" ======= ===========\n" +msgstr "" +" Commande Description\n" +" ======== ===========\n" + +#: src/dird/ua_cmds.c:1695 +#, c-format +msgid " %-10s %s\n" +msgstr " %-10s %s\n" + +#: src/dird/ua_cmds.c:1697 +msgid "" +"\n" +"When at a prompt, entering a period cancels the command.\n" +"\n" +msgstr "" +"\n" +"Sur une question, tapez un point (.) pour annuler la commande en cours.\n" + +#: src/dird/ua_cmds.c:1757 src/dird/ua_cmds.c:1784 src/dird/ua_cmds.c:1806 +#, c-format +msgid "No authorization for Catalog \"%s\"\n" +msgstr "" + +#: src/dird/ua_cmds.c:1774 +#, fuzzy, c-format +msgid "No authorization for Client \"%s\"\n" +msgstr "Pas d'enregistrement trouvé en base pour : %s\n" + +#: src/dird/ua_cmds.c:1842 +#, c-format +msgid "Could not open catalog database \"%s\".\n" +msgstr "Impossible d'ouvrir le catalogue « %s ».\n" + +#: src/dird/ua_cmds.c:1852 +#, c-format +msgid "Using Catalog \"%s\"\n" +msgstr "Utilisation du Catalogue « %s »\n" + +#: src/dird/inc_conf.c:279 +#, fuzzy, c-format +msgid "Expected a strip path positive integer, got:%s:" +msgstr "Attendait un entier positif, pas : %s\n" + +#: src/dird/inc_conf.c:299 +#, c-format +msgid "Expected a FileSet option keyword, got:%s:" +msgstr "Attendait une option de FileSet, eu : %s:" + +#: src/dird/inc_conf.c:332 +msgid "Old style Include/Exclude not supported\n" +msgstr "" + +#: src/dird/inc_conf.c:360 src/dird/inc_conf.c:660 src/dird/dird_conf.c:1842 +#, c-format +msgid "Expecting keyword, got: %s\n" +msgstr "Attendait un mot clef, eu : %s\n" + +#: src/dird/inc_conf.c:368 src/dird/inc_conf.c:666 src/dird/dird_conf.c:1848 +#: src/lib/parse_conf.c:887 +#, c-format +msgid "expected an equals, got: %s" +msgstr "attendait un égale, eu : %s" + +#: src/dird/inc_conf.c:378 src/dird/inc_conf.c:675 src/dird/dird_conf.c:1859 +#, c-format +msgid "Keyword %s not permitted in this resource" +msgstr "" + +#: src/dird/inc_conf.c:431 +#, c-format +msgid "Regex compile error. ERR=%s\n" +msgstr "" + +#: src/dird/inc_conf.c:452 +#, c-format +msgid "Expected a regex string, got: %s\n" +msgstr "" + +#: src/dird/inc_conf.c:544 +#, c-format +msgid "Expected a wild-card string, got: %s\n" +msgstr "" + +#: src/dird/inc_conf.c:567 +#, c-format +msgid "Expected an fstype string, got: %s\n" +msgstr "" + +#: src/dird/inc_conf.c:590 +#, c-format +msgid "Expected an drivetype string, got: %s\n" +msgstr "Attendait un type de lecteur, pas : %s\n" + +#: src/dird/inc_conf.c:614 +#, c-format +msgid "Backslash found. Use forward slashes or quote the string.: %s\n" +msgstr "" + +#: src/dird/inc_conf.c:629 +#, c-format +msgid "Expected a filename, got: %s" +msgstr "Attendait un nom de fichier, eu : %s" + +#: src/dird/inc_conf.c:645 src/dird/dird_conf.c:1834 +#, c-format +msgid "Expecting open brace. Got %s" +msgstr "Attendait {, eu : %s" + +#: src/dird/inc_conf.c:700 +#, c-format +msgid "Expected a FileSet keyword, got: %s" +msgstr "Attendait le mot clef FileSet, eu : %s" + +#: src/dird/authenticate.c:80 src/dird/authenticate.c:81 +#: src/tray-monitor/authenticate.c:132 +#, c-format +msgid "Error sending Hello to Storage daemon. ERR=%s\n" +msgstr "" + +#: src/dird/authenticate.c:106 +msgid "Director and Storage daemon passwords or names not the same.\n" +msgstr "" + +#: src/dird/authenticate.c:108 +#, fuzzy, c-format +msgid "" +"Director unable to authenticate with Storage daemon at \"%s:%d\". Possible " +"causes:\n" +"Passwords or names not the same or\n" +"Maximum Concurrent Jobs exceeded on the SD or\n" +"SD networking messed up (restart daemon).\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" +"Le Director a rencontré un problème d'authentification avec le Storage " +"Daemon \"%s:%d\".\n" +"Les causes possibles sont :\n" +"- Les mots de pass ne correspondent pas ;\n" +"- Le nombre maximum de job concurrent est atteint sur le SD ;\n" +"- La connexion réseau du SD est tombée (il faut le redémarrer).\n" +"Vous trouverez de l'aide sur\n" +"http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors\n" + +#: src/dird/authenticate.c:120 src/filed/authenticate.c:253 +#: src/wx-console/authenticate.c:127 src/stored/authenticate.c:134 +#: src/stored/authenticate.c:235 src/console/authenticate.c:114 +msgid "" +"Authorization problem: Remote server did not advertise required TLS " +"support.\n" +msgstr "" + +#: src/dird/authenticate.c:127 src/filed/authenticate.c:149 +#: src/filed/authenticate.c:261 src/wx-console/authenticate.c:133 +#: src/stored/authenticate.c:142 src/stored/authenticate.c:243 +#: src/console/authenticate.c:121 +msgid "Authorization problem: Remote server requires TLS.\n" +msgstr "" + +#: src/dird/authenticate.c:136 +#, fuzzy, c-format +msgid "TLS negotiation failed with SD at \"%s:%d\"\n" +msgstr "Négociation TLS échouée avec le SD « %s:%d ».\n" + +#: src/dird/authenticate.c:145 +#, c-format +msgid "bdird set configuration file to file\n" +" -dnn set debug level to nn\n" +" -f run in foreground (for debugging)\n" +" -g groupid\n" +" -r run now\n" +" -s no signals\n" +" -t test - read configuration and exit\n" +" -u userid\n" +" -v verbose user messages\n" +" -? print this message.\n" +"\n" +msgstr "" +"\n" +"Version : %s (%s)\n" +"\n" +"Usage : dird [-f -s] [-c config_file] [-d debug_level] [config_file]\n" +" -c utilise fich comme fichier de configuration\n" +" -dnn positionne le niveau de debug à nn\n" +" -f reste en avant-plan (pour debugger)\n" +" -g groupid\n" +" -r lance maintenant\n" +" -s pas de signaux\n" +" -t test - lit seulement le fichier de configuration\n" +" -u userid\n" +" -v affiche les messages utilisateurs\n" +" -? affiche ce message.\n" +"\n" + +#: src/dird/dird.c:225 src/filed/filed.c:182 src/gnome2-console/console.c:286 +#: src/stored/stored.c:210 src/console/console.c:426 +#: src/qt-console/main.cpp:132 +msgid "Cryptography library initialization failed.\n" +msgstr "" + +#: src/dird/dird.c:229 src/dird/dird.c:246 src/dird/dird.c:477 +#: src/dird/dird.c:480 src/filed/filed.c:187 src/gnome2-console/console.c:290 +#: src/stored/stored.c:214 src/console/console.c:430 +#: src/qt-console/main.cpp:136 +#, c-format +msgid "Please correct configuration file: %s\n" +msgstr "Merci de corriger le fichier de configuration : %s\n" + +#: src/dird/dird.c:463 +msgid "Too many open reload requests. Request ignored.\n" +msgstr "" + +#: src/dird/dird.c:478 +msgid "Out of reload table entries. Giving up.\n" +msgstr "" + +#: src/dird/dird.c:481 +msgid "Resetting previous configuration.\n" +msgstr "Retour à la dernière configuration.\n" + +#: src/dird/dird.c:544 +#, c-format +msgid "" +"No Director resource defined in %s\n" +"Without that I don't know who I am :-(\n" +msgstr "" + +#: src/dird/dird.c:552 src/filed/filed.c:290 +#, c-format +msgid "No Messages resource defined in %s\n" +msgstr "" + +#: src/dird/dird.c:557 +#, c-format +msgid "Only one Director resource permitted in %s\n" +msgstr "" + +#: src/dird/dird.c:566 src/dird/dird.c:768 src/dird/dird.c:820 +#: src/dird/dird.c:924 src/filed/filed.c:297 src/filed/filed.c:455 +#: src/gnome2-console/console.c:153 src/gnome2-console/console.c:182 +#: src/stored/stored.c:333 src/console/console.c:657 src/console/console.c:686 +#: src/qt-console/main.cpp:209 src/qt-console/main.cpp:238 +#: src/wx-console/console_thread.cpp:114 src/wx-console/console_thread.cpp:140 +msgid "TLS required but not configured in Bacula.\n" +msgstr "" + +#: src/dird/dird.c:572 src/filed/filed.c:464 src/stored/stored.c:385 +#, c-format +msgid "\"TLS Certificate\" file not defined for Director \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird.c:578 src/filed/filed.c:470 src/stored/stored.c:391 +#, c-format +msgid "\"TLS Key\" file not defined for Director \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird.c:584 src/filed/filed.c:476 src/stored/stored.c:397 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Director \"%s\" in %s. At least one CA certificate store is required when " +"using \"TLS Verify Peer\".\n" +msgstr "" + +#: src/dird/dird.c:603 src/filed/filed.c:495 src/stored/stored.c:416 +#, c-format +msgid "Failed to initialize TLS context for Director \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird.c:611 +#, c-format +msgid "No Job records defined in %s\n" +msgstr "" + +#: src/dird/dird.c:669 src/dird/dird.c:682 +#, c-format +msgid "Hey something is wrong. p=0x%lu\n" +msgstr "" + +#: src/dird/dird.c:742 +#, c-format +msgid "\"%s\" directive in Job \"%s\" resource is required, but not found.\n" +msgstr "" + +#: src/dird/dird.c:749 +msgid "Too many items in Job resource\n" +msgstr "" + +#: src/dird/dird.c:753 +#, c-format +msgid "No storage specified in Job \"%s\" nor in Pool.\n" +msgstr "Pas de Storage spécifié dans le job « %s » ni dans le Pool.\n" + +#: src/dird/dird.c:775 +#, c-format +msgid "\"TLS Certificate\" file not defined for Console \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird.c:781 +#, c-format +msgid "\"TLS Key\" file not defined for Console \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird.c:787 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Console \"%s\" in %s. At least one CA certificate store is required when " +"using \"TLS Verify Peer\".\n" +msgstr "" + +#: src/dird/dird.c:804 src/dird/dird.c:844 src/filed/filed.c:321 +#, c-format +msgid "Failed to initialize TLS context for File daemon \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird.c:827 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"File daemon \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird.c:876 src/dird/dird.c:878 +#, c-format +msgid "Could not open Catalog \"%s\", database \"%s\".\n" +msgstr "" +"Impossible d'ouvrir le catalogue « %s », sur la base de données « %s ».\n" + +#: src/dird/dird.c:881 +#, c-format +msgid "%s" +msgstr "%s" + +#: src/dird/dird.c:930 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Storage \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird.c:946 src/stored/stored.c:371 +#, c-format +msgid "Failed to initialize TLS context for Storage \"%s\" in %s.\n" +msgstr "" + +#: src/dird/ua_dotcmds.c:138 +msgid ": is an invalid command.\n" +msgstr ": est une commande invalide.\n" + +#: src/dird/ua_dotcmds.c:238 src/dird/ua_dotcmds.c:288 +msgid "The Director will segment fault.\n" +msgstr "" + +#: src/dird/ua_dotcmds.c:286 +msgid "Select daemon type to make die" +msgstr "Sélectionnez le composant a tuer" + +#: src/dird/ua_dotcmds.c:453 +msgid "Access to specified Client or FileSet not allowed.\n" +msgstr "" + +#: src/dird/ua_dotcmds.c:493 +#, fuzzy +msgid "query keyword not found.\n" +msgstr "%s ressource %s introuvable.\n" + +#: src/dird/restore.c:87 +msgid "" +"Cannot restore without a bootstrap file.\n" +"You probably ran a restore job directly. All restore jobs must\n" +"be run using the restore command.\n" +msgstr "" + +#: src/dird/restore.c:96 +#, c-format +msgid "Start Restore Job %s\n" +msgstr "Démarrage du Job de restauration %s\n" + +#: src/dird/restore.c:258 +msgid "Restore OK -- warning file count mismatch" +msgstr "Restauration Ok -- attention le nombre de fichier ne correspond pas" + +#: src/dird/restore.c:260 +msgid "Restore OK" +msgstr "Restauration OK" + +#: src/dird/restore.c:265 +msgid "*** Restore Error ***" +msgstr "*** Restauration en erreur ***" + +#: src/dird/restore.c:275 +msgid "Restore Canceled" +msgstr "Restauration annulée" + +#: src/dird/restore.c:302 +#, fuzzy, c-format +msgid "" +"Bacula %s %s (%s): %s\n" +" Build OS: %s %s %s\n" +" JobId: %d\n" +" Job: %s\n" +" Restore Client: %s\n" +" Start time: %s\n" +" End time: %s\n" +" Files Expected: %s\n" +" Files Restored: %s\n" +" Bytes Restored: %s\n" +" Rate: %.1f KB/s\n" +" FD Errors: %d\n" +" FD termination status: %s\n" +" SD termination status: %s\n" +" Termination: %s\n" +"\n" +msgstr "" +"Bacula %s %s (%s): %s\n" +" Build OS: %s %s %s\n" +" JobId : %d\n" +" Job : %s\n" +" Client : %s\n" +" Début : %s\n" +" Fin : %s\n" +" Fichiers attendus : %s\n" +" Fichiers restaurés : %s\n" +" Octets restaurés : %s\n" +" Débit : %.1f Ko/s\n" +" Erreurs du FD : %d\n" +" Statut de fin du FD : %s\n" +" Statut de fin du SD : %s\n" +" Etat : %s\n" + +#: src/dird/ua_tree.c:72 +msgid "change current directory" +msgstr "change le répertoire courant" + +#: src/dird/ua_tree.c:73 +msgid "count marked files in and below the cd" +msgstr "compte le nombre de fichiers marqués à partir du répertoire courant" + +#: src/dird/ua_tree.c:74 src/dird/ua_tree.c:75 +msgid "long list current directory, wildcards allowed" +msgstr "liste détaillée du répertoire courant, les jocker (*) fonctionnent" + +#: src/dird/ua_tree.c:76 +msgid "leave file selection mode" +msgstr "sort de la sélection des fichiers" + +#: src/dird/ua_tree.c:77 +msgid "estimate restore size" +msgstr "estime la taille de la restauration" + +#: src/dird/ua_tree.c:78 +msgid "same as done command" +msgstr "synonyme de la commande « done »" + +#: src/dird/ua_tree.c:79 +msgid "find files, wildcards allowed" +msgstr "recherche des fichiers, les jokers (*) fonctionnent" + +#: src/dird/ua_tree.c:80 src/dird/ua_tree.c:90 +msgid "print help" +msgstr "affiche l'aide" + +#: src/dird/ua_tree.c:81 +msgid "list current directory, wildcards allowed" +msgstr "affiche le contenu du répertoire courant, les jokers (*) fonctionnent" + +#: src/dird/ua_tree.c:82 +msgid "list the marked files in and below the cd" +msgstr "liste les fichiers marqués à partir du répertoire courant" + +#: src/dird/ua_tree.c:83 +msgid "mark dir/file to be restored recursively, wildcards allowed" +msgstr "" +"marque récursivement les fichiers/répertoires pour être restaurés, les " +"jokers (*) fonctionnent" + +#: src/dird/ua_tree.c:84 +msgid "mark directory name to be restored (no files)" +msgstr "marque un répertoire (seulement) pour la restauration" + +#: src/dird/ua_tree.c:85 src/dird/ua_tree.c:86 +msgid "print current working directory" +msgstr "affiche le répertoire courant" + +#: src/dird/ua_tree.c:87 +msgid "unmark dir/file to be restored recursively in dir" +msgstr "dé-sélectionne les fichiers/répertoires récursivement" + +#: src/dird/ua_tree.c:88 +msgid "unmark directory name only no recursion" +msgstr "dé-sélectionne seulement un répertoire" + +#: src/dird/ua_tree.c:89 +msgid "quit and do not do restore" +msgstr "quitte et annule la restauration" + +#: src/dird/ua_tree.c:110 +msgid "" +"\n" +"You are now entering file selection mode where you add (mark) and\n" +"remove (unmark) files to be restored. No files are initially added, unless\n" +"you used the \"all\" keyword on the command line.\n" +"Enter \"done\" to leave this mode.\n" +"\n" +msgstr "" +"\n" +"Vous êtes dans le mode de sélection des fichiers ou vous devez ajouter " +"(mark)\n" +"et supprimez (unmark) les fichiers à restaurer. Aucun fichier n'est " +"sélectionné\n" +"par défaut sauf si vous avez utilisé l'option « all » dans la commande.\n" +"Terminez votre saisie par « done »\n" +"\n" + +#: src/dird/ua_tree.c:121 src/dird/ua_tree.c:717 +#, c-format +msgid "cwd is: %s\n" +msgstr "Le répertoire courant est : %s\n" + +#: src/dird/ua_tree.c:130 src/dird/ua_tree.c:145 +msgid "Invalid command. Enter \"done\" to exit.\n" +msgstr "Commande invalide. Tapez « done » pour quitter.\n" + +#: src/dird/ua_tree.c:333 src/dird/ua_tree.c:345 src/dird/ua_tree.c:362 +msgid "No files marked.\n" +msgstr "Aucun fichier sélectionné.\n" + +#: src/dird/ua_tree.c:347 +msgid "1 file marked.\n" +msgstr "1 fichier sélectionné.\n" + +#: src/dird/ua_tree.c:349 +#, c-format +msgid "%s files marked.\n" +msgstr "%s fichiers sélectionnés.\n" + +#: src/dird/ua_tree.c:377 +msgid "No directories marked.\n" +msgstr "Pas de répertoire sélectionné.\n" + +#: src/dird/ua_tree.c:379 +msgid "1 directory marked.\n" +msgstr "1 répertoire sélectionné.\n" + +#: src/dird/ua_tree.c:381 +#, c-format +msgid "%s directories marked.\n" +msgstr "%s répertoires sélectionnés.\n" + +#: src/dird/ua_tree.c:402 +#, c-format +msgid "%s total files/dirs. %s marked to be restored.\n" +msgstr "" +"%s fichiers/répertoires au total. %s sélectionné pour la restauration.\n" + +#: src/dird/ua_tree.c:413 +msgid "No file specification given.\n" +msgstr "" + +#: src/dird/ua_tree.c:561 +#, c-format +msgid "Node %s has no children.\n" +msgstr "Le noeud %s n'a pas de fils.\n" + +#: src/dird/ua_tree.c:654 +#, c-format +msgid "%d total files; %d marked to be restored; %s bytes.\n" +msgstr "%d fichiers en tout ; %d marqués pour la restauration ; %s octets.\n" + +#: src/dird/ua_tree.c:688 +msgid "Too few or too many arguments. Try using double quotes.\n" +msgstr "" +"Trop ou pas assez d'arguments sur la commande. Essayez d'utiliser des " +"« \" »\n" + +#: src/dird/ua_tree.c:700 +msgid "Invalid path given.\n" +msgstr "" + +#: src/dird/ua_tree.c:736 src/dird/ua_tree.c:748 +msgid "No files unmarked.\n" +msgstr "Pas de fichier dé-sélectionné.\n" + +#: src/dird/ua_tree.c:750 +msgid "1 file unmarked.\n" +msgstr "1 fichier dé-sélectionné.\n" + +#: src/dird/ua_tree.c:753 +#, c-format +msgid "%s files unmarked.\n" +msgstr "%s fichiers dé-sélectionnés.\n" + +#: src/dird/ua_tree.c:764 src/dird/ua_tree.c:781 +msgid "No directories unmarked.\n" +msgstr "Pas de répertoire dé-sélectionné\n" + +#: src/dird/ua_tree.c:783 +msgid "1 directory unmarked.\n" +msgstr "1 répertoire dé-sélectionné\n" + +#: src/dird/ua_tree.c:785 +#, c-format +msgid "%d directories unmarked.\n" +msgstr "%d répertoires dé-sélectionnés.\n" + +#: src/dird/recycle.c:112 +#, c-format +msgid "Recycled volume \"%s\"\n" +msgstr "Volume recyclé « %s »\n" + +#: src/dird/bsr.c:188 +#, c-format +msgid "Unable to get Job record. ERR=%s\n" +msgstr "" + +#: src/dird/bsr.c:195 +#, c-format +msgid "Unable to get Job Volume Parameters. ERR=%s\n" +msgstr "" + +#: src/dird/bsr.c:247 +#, c-format +msgid "Unable to create bootstrap file %s. ERR=%s\n" +msgstr "Impossible de créer le fichier bootstrap %s. ERR=%s\n" + +#: src/dird/bsr.c:256 +msgid "No files found to restore/migrate. No bootstrap file written.\n" +msgstr "" +"Aucun fichier trouvé pour la restauration/migration. Pas de fichier " +"Bootstrap écrit.\n" + +#: src/dird/bsr.c:260 +msgid "Error writing bsr file.\n" +msgstr "Erreur pendant l'écriture du fichier bsr.\n" + +#: src/dird/bsr.c:266 +#, c-format +msgid "Bootstrap records written to %s\n" +msgstr "Fichier bootstrap écrit sur %s\n" + +#: src/dird/bsr.c:270 +msgid "" +"The job will require the following\n" +" Volume(s) Storage(s) SD Device(s)\n" +"===========================================================================\n" +msgstr "" +"Ce job va utiliser les éléments suivants :\n" +" Volume(s) Storage(s) SD Device(s)\n" +"===========================================================================\n" + +#: src/dird/bsr.c:316 +msgid "No Volumes found to restore.\n" +msgstr "Aucun volume trouvé pour la restauration.\n" + +#: src/dird/dird_conf.c:510 src/tray-monitor/tray_conf.c:168 +#, c-format +msgid "No %s resource defined\n" +msgstr "" + +#: src/dird/dird_conf.c:519 +#, c-format +msgid "Director: name=%s MaxJobs=%d FDtimeout=%s SDtimeout=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:524 +#, c-format +msgid " query_file=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:527 src/dird/dird_conf.c:547 src/dird/dird_conf.c:561 +#: src/dird/dird_conf.c:613 src/dird/dird_conf.c:617 src/dird/dird_conf.c:621 +#: src/dird/dird_conf.c:639 src/dird/dird_conf.c:656 src/dird/dird_conf.c:660 +#: src/dird/dird_conf.c:664 src/dird/dird_conf.c:668 src/dird/dird_conf.c:672 +#: src/dird/dird_conf.c:685 src/dird/dird_conf.c:892 src/dird/dird_conf.c:899 +msgid " --> " +msgstr "" + +#: src/dird/dird_conf.c:532 +#, c-format +msgid "Console: name=%s SSL=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:537 +#, c-format +msgid "Counter: name=%s min=%d max=%d cur=%d wrapcntr=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:542 +#, c-format +msgid "Counter: name=%s min=%d max=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:553 +#, c-format +msgid "Client: name=%s address=%s FDport=%d MaxJobs=%u\n" +msgstr "" + +#: src/dird/dird_conf.c:556 +#, c-format +msgid " JobRetention=%s FileRetention=%s AutoPrune=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:569 +#, c-format +msgid "" +"Device: name=%s ok=%d num_writers=%d max_writers=%d\n" +" reserved=%d open=%d append=%d read=%d labeled=%d offline=%d autochgr=%" +"d\n" +" poolid=%s volname=%s MediaType=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:580 +#, c-format +msgid "" +"Storage: name=%s address=%s SDport=%d MaxJobs=%u\n" +" DeviceName=%s MediaType=%s StorageId=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:590 +#, c-format +msgid "" +"Catalog: name=%s address=%s DBport=%d db_name=%s\n" +" db_user=%s MutliDBConn=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:599 +#, c-format +msgid "%s: name=%s JobType=%d level=%s Priority=%d Enabled=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:600 +msgid "JobDefs" +msgstr "JobDefs" + +#: src/dird/dird_conf.c:604 +#, c-format +msgid "" +" MaxJobs=%u Resched=%d Times=%d Interval=%s Spool=%d WritePartAfterJob=%" +"d\n" +msgstr "" + +#: src/dird/dird_conf.c:610 +#, c-format +msgid " SelectionType=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:625 +#, c-format +msgid " --> Where=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:628 +#, c-format +msgid " --> RegexWhere=%s\n" +msgstr " --> RegexWhere=%s\n" + +#: src/dird/dird_conf.c:631 +#, c-format +msgid " --> Bootstrap=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:634 +#, c-format +msgid " --> WriteBootstrap=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:646 src/lib/runscript.c:263 +msgid " --> RunScript\n" +msgstr " --> RunScript\n" + +#: src/dird/dird_conf.c:647 src/lib/runscript.c:264 +#, c-format +msgid " --> Command=%s\n" +msgstr " --> Command=%s\n" + +#: src/dird/dird_conf.c:648 src/lib/runscript.c:265 +#, c-format +msgid " --> Target=%s\n" +msgstr " --> Target=%s\n" + +#: src/dird/dird_conf.c:649 src/lib/runscript.c:266 +#, c-format +msgid " --> RunOnSuccess=%u\n" +msgstr " --> RunOnSuccess=%u\n" + +#: src/dird/dird_conf.c:650 src/lib/runscript.c:267 +#, c-format +msgid " --> RunOnFailure=%u\n" +msgstr " --> RunOnFailure=%u\n" + +#: src/dird/dird_conf.c:651 src/lib/runscript.c:268 +#, fuzzy, c-format +msgid " --> FailJobOnError=%u\n" +msgstr " --> AbortJobOnError=%u\n" + +#: src/dird/dird_conf.c:652 src/lib/runscript.c:269 +#, c-format +msgid " --> RunWhen=%u\n" +msgstr " --> RunWhen=%u\n" + +#: src/dird/dird_conf.c:678 +#, c-format +msgid " --> Run=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:682 +#, c-format +msgid " --> SelectionPattern=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:693 +#, c-format +msgid "FileSet: name=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:771 src/dird/dird_conf.c:850 +#, c-format +msgid "Schedule: name=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:776 +#, c-format +msgid " --> Run Level=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:777 +msgid " hour=" +msgstr "" + +#: src/dird/dird_conf.c:786 +msgid " mday=" +msgstr "" + +#: src/dird/dird_conf.c:795 +msgid " month=" +msgstr "" + +#: src/dird/dird_conf.c:804 +msgid " wday=" +msgstr "" + +#: src/dird/dird_conf.c:813 +msgid " wom=" +msgstr "" + +#: src/dird/dird_conf.c:822 +msgid " woy=" +msgstr "" + +#: src/dird/dird_conf.c:831 +#, c-format +msgid " mins=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:833 src/dird/dird_conf.c:837 src/dird/dird_conf.c:841 +msgid " --> " +msgstr "" + +#: src/dird/dird_conf.c:855 +#, c-format +msgid "Pool: name=%s PoolType=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:857 +#, c-format +msgid " use_cat=%d use_once=%d cat_files=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:860 +#, c-format +msgid " max_vols=%d auto_prune=%d VolRetention=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:863 +#, c-format +msgid " VolUse=%s recycle=%d LabelFormat=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:867 +#, c-format +msgid " CleaningPrefix=%s LabelType=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:869 +#, c-format +msgid " RecyleOldest=%d PurgeOldest=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:872 +#, c-format +msgid " MaxVolJobs=%d MaxVolFiles=%d MaxVolBytes=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:876 +#, c-format +msgid " MigTime=%s MigHiBytes=%s MigLoBytes=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:881 +#, c-format +msgid " NextPool=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:884 +#, c-format +msgid " RecyclePool=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:887 +#, fuzzy, c-format +msgid " Catalog=%s\n" +msgstr "Utilisation du Catalogue « %s »\n" + +#: src/dird/dird_conf.c:907 +#, c-format +msgid "Messages: name=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:909 +#, c-format +msgid " mailcmd=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:911 +#, c-format +msgid " opcmd=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:915 src/tray-monitor/tray_conf.c:199 +#, c-format +msgid "Unknown resource type %d in dump_resource.\n" +msgstr "" + +#: src/dird/dird_conf.c:1221 src/tray-monitor/tray_conf.c:257 +#, c-format +msgid "Unknown resource type %d in free_resource.\n" +msgstr "" + +#: src/dird/dird_conf.c:1253 src/dird/dird_conf.c:1268 +#: src/dird/dird_conf.c:1865 src/filed/filed_conf.c:347 +#: src/gnome2-console/console_conf.c:258 src/wx-console/console_conf.c:265 +#: src/console/console_conf.c:257 src/tray-monitor/tray_conf.c:288 +#: src/qt-console/bat_conf.cpp:260 +#, c-format +msgid "%s item is required in %s resource, but not found.\n" +msgstr "" + +#: src/dird/dird_conf.c:1259 src/tray-monitor/tray_conf.c:294 +#: src/lib/parse_conf.c:233 +#, c-format +msgid "Too many items in %s resource\n" +msgstr "Trop d'élément dans la ressource %s\n" + +#: src/dird/dird_conf.c:1299 +#, c-format +msgid "Cannot find Pool resource %s\n" +msgstr "Impossible de trouver la ressource Pool « %s »\n" + +#: src/dird/dird_conf.c:1308 +#, c-format +msgid "Cannot find Console resource %s\n" +msgstr "Impossible de trouver la ressource Console « %s »\n" + +#: src/dird/dird_conf.c:1314 src/filed/filed_conf.c:367 +#: src/stored/stored_conf.c:584 +#, c-format +msgid "Cannot find Director resource %s\n" +msgstr "Impossible de trouver la ressource Director « %s »\n" + +#: src/dird/dird_conf.c:1321 src/stored/stored_conf.c:590 +#, c-format +msgid "Cannot find Storage resource %s\n" +msgstr "Impossible de trouver la ressource Storage « %s »\n" + +#: src/dird/dird_conf.c:1330 +#, c-format +msgid "Cannot find Job resource %s\n" +msgstr "Impossible de trouver la ressource Job « %s »\n" + +#: src/dird/dird_conf.c:1379 +#, c-format +msgid "Cannot find Counter resource %s\n" +msgstr "Impossible de trouver la ressource Counter « %s »\n" + +#: src/dird/dird_conf.c:1387 src/filed/filed_conf.c:373 +#, c-format +msgid "Cannot find Client resource %s\n" +msgstr "Impossible de trouver la ressource Client « %s »\n" + +#: src/dird/dird_conf.c:1400 +#, c-format +msgid "Cannot find Schedule resource %s\n" +msgstr "Impossible de trouver la ressource Schedule « %s »\n" + +#: src/dird/dird_conf.c:1405 src/dird/dird_conf.c:1465 +#: src/tray-monitor/tray_conf.c:314 src/tray-monitor/tray_conf.c:352 +#, c-format +msgid "Unknown resource type %d in save_resource.\n" +msgstr "" + +#: src/dird/dird_conf.c:1480 +#, c-format +msgid "Name item is required in %s resource, but not found.\n" +msgstr "" + +#: src/dird/dird_conf.c:1488 src/filed/filed_conf.c:432 +#: src/gnome2-console/console_conf.c:327 src/wx-console/console_conf.c:328 +#: src/console/console_conf.c:320 src/tray-monitor/tray_conf.c:372 +#: src/qt-console/bat_conf.cpp:329 +#, c-format +msgid "Attempt to define second %s resource named \"%s\" is not permitted.\n" +msgstr "" + +#: src/dird/dird_conf.c:1493 +#, c-format +msgid "Inserting %s res: %s index=%d pass=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:1565 +#, c-format +msgid "Expected a Migration Job Type keyword, got: %s" +msgstr "Attendait un type de Job de Migration, eu : %s" + +#: src/dird/dird_conf.c:1591 +#, c-format +msgid "Expected a Job Type keyword, got: %s" +msgstr "" + +#: src/dird/dird_conf.c:1615 +#, c-format +msgid "Expected a Job Level keyword, got: %s" +msgstr "Attendait un niveau de sauvegarde, eu : %s" + +#: src/dird/dird_conf.c:1635 +#, c-format +msgid "Expected a Restore replacement option, got: %s" +msgstr "Attendait un niveau de remplacement, eu : %s" + +#: src/dird/dird_conf.c:1683 src/dird/dird_conf.c:1794 +#: src/lib/parse_conf.c:723 src/lib/parse_conf.c:738 +#, c-format +msgid "Expect %s, got: %s" +msgstr "Attendait %s, a pas : %s" + +#: src/dird/dird_conf.c:1705 src/lib/parse_conf.c:482 +#, c-format +msgid "Could not find config Resource %s referenced on line %d : %s\n" +msgstr "" + +#: src/dird/admin.c:63 +#, c-format +msgid "Start Admin JobId %d, Job=%s\n" +msgstr "" + +#: src/dird/admin.c:97 +msgid "Admin OK" +msgstr "Admin OK" + +#: src/dird/admin.c:101 +msgid "*** Admin Error ***" +msgstr "*** Admin en Erreur ***" + +#: src/dird/admin.c:105 +msgid "Admin Canceled" +msgstr "Admin Annulé" + +#: src/dird/admin.c:115 +msgid "Bacula " +msgstr "Bacula " + +#: src/dird/ua_run.c:152 src/dird/ua_run.c:337 +msgid "Invalid time, using current time.\n" +msgstr "" + +#: src/dird/ua_run.c:174 +#, c-format +msgid "Invalid replace option: %s\n" +msgstr "Option d'écrasement (Replace) invalide : %s\n" + +#: src/dird/ua_run.c:242 +msgid "OK to run? (yes/mod/no): " +msgstr "OK pour le lancement ? (oui/mod/non) : " + +#: src/dird/ua_run.c:263 +msgid "Level" +msgstr "Type" + +#: src/dird/ua_run.c:268 +#, fuzzy +msgid "Restore Client" +msgstr "Restauration annulée" + +#: src/dird/ua_run.c:272 src/wx-console/wxbrestorepanel.cpp:356 +#: src/wx-console/wxbrestorepanel.cpp:844 +#: src/wx-console/wxbrestorepanel.cpp:1891 +msgid "When" +msgstr "Quand" + +#: src/dird/ua_run.c:273 src/wx-console/wxbrestorepanel.cpp:357 +#: src/wx-console/wxbrestorepanel.cpp:1117 +#: src/wx-console/wxbrestorepanel.cpp:1894 +msgid "Priority" +msgstr "Priorité" + +#: src/dird/ua_run.c:279 +msgid "Verify Job" +msgstr "Job de vérification" + +#: src/dird/ua_run.c:282 src/wx-console/wxbrestorepanel.cpp:349 +#: src/wx-console/wxbrestorepanel.cpp:1872 +msgid "Bootstrap" +msgstr "Bootstrap" + +#: src/dird/ua_run.c:283 src/wx-console/wxbrestorepanel.cpp:350 +#: src/wx-console/wxbrestorepanel.cpp:1093 +#: src/wx-console/wxbrestorepanel.cpp:1874 +msgid "Where" +msgstr "Destination" + +#: src/dird/ua_run.c:284 +msgid "File Relocation" +msgstr "" + +#: src/dird/ua_run.c:285 src/wx-console/wxbrestorepanel.cpp:352 +#: src/wx-console/wxbrestorepanel.cpp:1101 +#: src/wx-console/wxbrestorepanel.cpp:1878 +#: src/wx-console/wxbrestorepanel.cpp:1879 +#: src/wx-console/wxbrestorepanel.cpp:1880 +#: src/wx-console/wxbrestorepanel.cpp:1881 +#: src/wx-console/wxbrestorepanel.cpp:1882 +msgid "Replace" +msgstr "Écrasement" + +#: src/dird/ua_run.c:286 +msgid "JobId" +msgstr "JobId" + +#: src/dird/ua_run.c:297 src/dird/ua_run.c:1206 +msgid "user selection" +msgstr "" + +#: src/dird/ua_run.c:329 +msgid "" +"Please enter desired start time as YYYY-MM-DD HH:MM:SS (return for now): " +msgstr "" +"Saisissez la date de lancement (YYYY-MM-DD HH:MM:SS) (ou maintenant) : " + +#: src/dird/ua_run.c:344 +msgid "Enter new Priority: " +msgstr "Saisissez la nouvelle priorité : " + +#: src/dird/ua_run.c:348 +msgid "Priority must be a positive integer.\n" +msgstr "La priorité doit être un entier positif.\n" + +#: src/dird/ua_run.c:368 +msgid "Please enter the Bootstrap file name: " +msgstr "Saisissez le nom du fichier Bootstrap : " + +# Impossible d'ouvrir %s : ERR=%s +#: src/dird/ua_run.c:380 +#, c-format +msgid "Warning cannot open %s: ERR=%s\n" +msgstr "Impossible d'ouvrir %s : ERR=%s\n" + +#: src/dird/ua_run.c:399 +msgid "Please enter path prefix for restore (/ for none): " +msgstr "Saisissez le chemin (prefix) pour la restauration (/ pour aucun) : " + +#: src/dird/ua_run.c:421 +msgid "Replace:\n" +msgstr "Écrasement :\n" + +#: src/dird/ua_run.c:425 +msgid "Select replace option" +msgstr "Saisissez l'option d'écrasement" + +#: src/dird/ua_run.c:436 +msgid "" +"You must set the bootstrap file to NULL to be able to specify a JobId.\n" +msgstr "" +"Vous ne devez pas spécifié de fichier bootstrap pour pouvoir utiliser un " +"JobId.\n" + +#: src/dird/ua_run.c:456 +msgid "Job failed.\n" +msgstr "Job échoué.\n" + +#: src/dird/ua_run.c:459 +#, c-format +msgid "Job queued. JobId=%s\n" +msgstr "Job mis en queue. JobId=%s\n" + +#: src/dird/ua_run.c:465 +msgid "Job not run.\n" +msgstr "Job non lancé.\n" + +#: src/dird/ua_run.c:477 +#, c-format +msgid "strip_prefix=%s add_prefix=%s add_suffix=%s\n" +msgstr "" + +#: src/dird/ua_run.c:480 +msgid "This will replace your current Where value\n" +msgstr "" + +#: src/dird/ua_run.c:481 +msgid "Strip prefix" +msgstr "" + +#: src/dird/ua_run.c:482 +msgid "Add prefix" +msgstr "" + +#: src/dird/ua_run.c:483 +msgid "Add file suffix" +msgstr "" + +#: src/dird/ua_run.c:484 +msgid "Enter a regexp" +msgstr "" + +#: src/dird/ua_run.c:485 +msgid "Test filename manipulation" +msgstr "" + +#: src/dird/ua_run.c:486 +msgid "Use this ?" +msgstr "" + +#: src/dird/ua_run.c:491 +msgid "Please enter path prefix to strip: " +msgstr "Saisissez le début du chemin (prefix) à enlever : " + +#: src/dird/ua_run.c:499 +msgid "Please enter path prefix to add (/ for none): " +msgstr "Saisissez le chemin (prefix) à ajouter (/ pour aucun) : " + +#: src/dird/ua_run.c:510 +msgid "Please enter file suffix to add: " +msgstr "Saisissez une extention à ajouter aux fichiers : " + +#: src/dird/ua_run.c:517 +msgid "Please enter a valid regexp (!from!to!): " +msgstr "Saisissez une regexp valide (!rechercher!remplacer!) : " + +#: src/dird/ua_run.c:530 +#, c-format +msgid "regexwhere=%s\n" +msgstr "" + +#: src/dird/ua_run.c:536 +#, c-format +msgid "strip_prefix=%s add_prefix=%s add_suffix=%s result=%s\n" +msgstr "" + +#: src/dird/ua_run.c:543 +msgid "Cannot use your regexp\n" +msgstr "Impossible d'utiliser votre regexp\n" + +#: src/dird/ua_run.c:547 +msgid "Please enter filename to test: " +msgstr "Saisissez un nom de fichier à tester : " + +#: src/dird/ua_run.c:549 +#, c-format +msgid "%s -> %s\n" +msgstr "%s -> %s\n" + +#: src/dird/ua_run.c:593 +msgid "Cannot use your regexp.\n" +msgstr "Impossible d'utiliser votre regexp.\n" + +#: src/dird/ua_run.c:606 src/dird/ua_run.c:632 +msgid "Levels:\n" +msgstr "Types :\n" + +#: src/dird/ua_run.c:607 src/filed/status.c:373 src/stored/status.c:560 +#: src/lib/util.c:335 +msgid "Base" +msgstr "Base" + +#: src/dird/ua_run.c:608 src/filed/status.c:375 src/stored/status.c:562 +#: src/lib/util.c:337 +msgid "Full" +msgstr "Full" + +#: src/dird/ua_run.c:609 src/filed/status.c:378 src/stored/status.c:565 +#: src/lib/util.c:340 +msgid "Incremental" +msgstr "Incrémental" + +#: src/dird/ua_run.c:610 src/filed/status.c:381 src/stored/status.c:568 +#: src/lib/util.c:343 +msgid "Differential" +msgstr "Différentiel" + +#: src/dird/ua_run.c:611 src/filed/status.c:384 src/stored/status.c:571 +#: src/lib/util.c:346 +msgid "Since" +msgstr "Depuis" + +#: src/dird/ua_run.c:612 src/dird/ua_run.c:638 +msgid "Select level" +msgstr "Saisissez le type" + +#: src/dird/ua_run.c:633 +msgid "Initialize Catalog" +msgstr "Initialisez le catalogue" + +#: src/dird/ua_run.c:634 src/filed/status.c:387 src/stored/status.c:574 +#: src/lib/util.c:349 +msgid "Verify Catalog" +msgstr "" + +#: src/dird/ua_run.c:635 src/lib/util.c:355 +msgid "Verify Volume to Catalog" +msgstr "" + +#: src/dird/ua_run.c:636 src/lib/util.c:358 +msgid "Verify Disk to Catalog" +msgstr "" + +#: src/dird/ua_run.c:637 +msgid "Verify Volume Data (not yet implemented)" +msgstr "Vérification des données sur le volume (pas encore implémenté)" + +#: src/dird/ua_run.c:658 +msgid "Level not appropriate for this Job. Cannot be changed.\n" +msgstr "" + +#: src/dird/ua_run.c:672 +#, c-format +msgid "" +"Run %s job\n" +"JobName: %s\n" +"FileSet: %s\n" +"Client: %s\n" +"Storage: %s\n" +"When: %s\n" +"Priority: %d\n" +msgstr "" +"Lancement du job %s\n" +"JobName : %s\n" +"FileSet : %s\n" +"Client : %s\n" +"Storage : %s\n" +"Quand : %s\n" +"Priorité : %d\n" + +#: src/dird/ua_run.c:679 src/lib/util.c:302 +msgid "Admin" +msgstr "Admin" + +#: src/dird/ua_run.c:692 +#, c-format +msgid "" +"Run %s job\n" +"JobName: %s\n" +"Level: %s\n" +"Client: %s\n" +"FileSet: %s\n" +"Pool: %s (From %s)\n" +"Storage: %s (From %s)\n" +"When: %s\n" +"Priority: %d\n" +msgstr "" +"Lancement du job %s\n" +"JobName : %s\n" +"Niveau : %s\n" +"Client : %s\n" +"FileSet : %s\n" +"Pool : %s (Depuis %s)\n" +"Storage : %s (Depuis %s)\n" +"Quand : %s\n" +"Priorité : %d\n" + +#: src/dird/ua_run.c:701 src/lib/util.c:293 +msgid "Backup" +msgstr "Backup" + +#: src/dird/ua_run.c:724 +#, c-format +msgid "" +"Run %s job\n" +"JobName: %s\n" +"Level: %s\n" +"Client: %s\n" +"FileSet: %s\n" +"Pool: %s (From %s)\n" +"Storage: %s (From %s)\n" +"Verify Job: %s\n" +"Verify List: %s\n" +"When: %s\n" +"Priority: %d\n" +msgstr "" +"Lancement du job %s\n" +"JobName : %s\n" +"Niveau : %s\n" +"Client : %s\n" +"FileSet : %s\n" +"Pool : %s (Depuis %s)\n" +"Storage : %s (Depuis %s)\n" +"Verify Job : %s\n" +"Verify List: %s\n" +"Quand : %s\n" +"Priorité : %d\n" + +#: src/dird/ua_run.c:735 src/lib/util.c:296 +msgid "Verify" +msgstr "Vérifier" + +#: src/dird/ua_run.c:753 +msgid "Please enter a JobId for restore: " +msgstr "Saisissez le JobId pour la restauration : " + +#: src/dird/ua_run.c:765 +#, fuzzy, c-format +msgid "" +"Run Restore job\n" +"JobName: f%s\n" +"Bootstrap: %s\n" +"RegexWhere: %s\n" +"Replace: %s\n" +"FileSet: %s\n" +"Backup Client: %s\n" +"Restore Client: %s\n" +"Storage: %s\n" +"When: %s\n" +"Catalog: %s\n" +"Priority: %d\n" +msgstr "" +"Lancement de la restauration\n" +"JobName : %s\n" +"Bootstrap : %s\n" +"RegexWhere : %s\n" +"Écrasement : %s\n" +"FileSet : %s\n" +"Backup Client : %s\n" +"Restore Client : %s\n" +"Storage : %s\n" +"Quand : %s\n" +"Catalogue : %s\n" +"Priorité : %d\n" + +#: src/dird/ua_run.c:790 +#, c-format +msgid "" +"Run Restore job\n" +"JobName: %s\n" +"Bootstrap: %s\n" +"Where: %s\n" +"Replace: %s\n" +"FileSet: %s\n" +"Backup Client: %s\n" +"Restore Client: %s\n" +"Storage: %s\n" +"When: %s\n" +"Catalog: %s\n" +"Priority: %d\n" +msgstr "" +"Lancement de la restauration\n" +"JobName : %s\n" +"Bootstrap : %s\n" +"Déplacement : %s\n" +"Écrasement : %s\n" +"FileSet : %s\n" +"Backup Client : %s\n" +"Restore Client : %s\n" +"Storage : %s\n" +"Quand : %s\n" +"Catalogue : %s\n" +"Priorité : %d\n" + +#: src/dird/ua_run.c:817 +#, c-format +msgid "" +"Run Restore job\n" +"JobName: %s\n" +"Bootstrap: %s\n" +msgstr "" +"Lancement de la restauration\n" +"JobName : %s\n" +"Bootstrap : %s\n" + +#: src/dird/ua_run.c:825 +#, c-format +msgid "RegexWhere: %s\n" +msgstr "" + +#: src/dird/ua_run.c:828 +#, c-format +msgid "Where: %s\n" +msgstr "Where : %s\n" + +#: src/dird/ua_run.c:832 +#, c-format +msgid "" +"Replace: %s\n" +"Client: %s\n" +"Storage: %s\n" +"JobId: %s\n" +"When: %s\n" +"Catalog: %s\n" +"Priority: %d\n" +msgstr "" +"Écrasement : %s\n" +"Client : %s\n" +"Storage : %s\n" +"JobId : %s\n" +"Quand : %s\n" +"Catalogue : %s\n" +"Priorité : %d\n" + +#: src/dird/ua_run.c:851 +#, fuzzy, c-format +msgid "" +"Run Migration job\n" +"JobName: %s\n" +"Bootstrap: %s\n" +"Client: %s\n" +"FileSet: %s\n" +"Pool: %s (From %s)\n" +"Read Storage: %s (From %s)\n" +"Write Storage: %s (From %s)\n" +"JobId: %s\n" +"When: %s\n" +"Catalog: %s\n" +"Priority: %d\n" +msgstr "" +"Lancement de la restauration\n" +"JobName : %s\n" +"Bootstrap : %s\n" +"Destination : %s\n" +"Écrasement : %s\n" +"Client : %s\n" +"Storage : %s\n" +"JobId : %s\n" +"Quand : %s\n" +"Catalogue : %s\n" +"Priorité : %d\n" + +#: src/dird/ua_run.c:876 +#, c-format +msgid "Unknown Job Type=%d\n" +msgstr "Job du Type=%d inconnu\n" + +#: src/dird/ua_run.c:936 +#, c-format +msgid "Value missing for keyword %s\n" +msgstr "" + +#: src/dird/ua_run.c:943 +msgid "Job name specified twice.\n" +msgstr "Le job est déjà spécifié.\n" + +#: src/dird/ua_run.c:951 +msgid "JobId specified twice.\n" +msgstr "Le JobId est déjà spécifié.\n" + +#: src/dird/ua_run.c:960 src/dird/ua_run.c:1104 +msgid "Client specified twice.\n" +msgstr "Le client est déjà spécifié.\n" + +#: src/dird/ua_run.c:968 +msgid "FileSet specified twice.\n" +msgstr "Le FileSet est déjà spécifié.\n" + +#: src/dird/ua_run.c:976 +msgid "Level specified twice.\n" +msgstr "Le type (Level) est déjà spécifié.\n" + +#: src/dird/ua_run.c:985 +msgid "Storage specified twice.\n" +msgstr "Le Storage est déjà spécifié.\n" + +#: src/dird/ua_run.c:993 +msgid "RegexWhere or Where specified twice.\n" +msgstr "RegexWhere ou Where est déjà spécifiée.\n" + +#: src/dird/ua_run.c:998 +#, fuzzy +msgid "No authorization for \"regexwhere\" specification.\n" +msgstr "La destination (Where) est déjà spécifiée.\n" + +#: src/dird/ua_run.c:1005 +msgid "Where or RegexWhere specified twice.\n" +msgstr "RegexWhere ou Where est déjà spécifiée.\n" + +#: src/dird/ua_run.c:1010 +#, fuzzy +msgid "No authoriztion for \"where\" specification.\n" +msgstr "Pas d'enregistrement trouvé en base pour : %s\n" + +#: src/dird/ua_run.c:1017 +msgid "Bootstrap specified twice.\n" +msgstr "Le bootstrap est déjà spécifié.\n" + +#: src/dird/ua_run.c:1025 +msgid "Replace specified twice.\n" +msgstr "L'option d'écrasement (Replace) est déjà spécifié.\n" + +#: src/dird/ua_run.c:1033 +msgid "When specified twice.\n" +msgstr "La planification (When) est déjà spécifiée.\n" + +#: src/dird/ua_run.c:1041 +msgid "Priority specified twice.\n" +msgstr "La priorité (Priority) est déjà spécifiée.\n" + +#: src/dird/ua_run.c:1046 +msgid "Priority must be positive nonzero setting it to 10.\n" +msgstr "" +"La priorité doit être supérieure à zéro. Utilisation d'une priorité de 10.\n" + +#: src/dird/ua_run.c:1056 +msgid "Verify Job specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:1088 +msgid "Migration Job specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:1096 +msgid "Pool specified twice.\n" +msgstr "Le pool est déjà spécifié.\n" + +#: src/dird/ua_run.c:1112 +#, fuzzy +msgid "Restore Client specified twice.\n" +msgstr "Le client est déjà spécifié.\n" + +#: src/dird/ua_run.c:1136 +#, c-format +msgid "Invalid keyword: %s\n" +msgstr "Argument invalide : %s\n" + +#: src/dird/ua_run.c:1147 +#, c-format +msgid "Catalog \"%s\" not found\n" +msgstr "Le catalogue « %s » est introuvable\n" + +#: src/dird/ua_run.c:1151 +#, c-format +msgid "No authorization. Catalog \"%s\".\n" +msgstr "" + +#: src/dird/ua_run.c:1162 +#, c-format +msgid "Job \"%s\" not found\n" +msgstr "Le job « %s » est introuvable\n" + +#: src/dird/ua_run.c:1169 +msgid "A job name must be specified.\n" +msgstr "Un nom de Job doit être spécifié.\n" + +#: src/dird/ua_run.c:1175 +#, c-format +msgid "No authorization. Job \"%s\".\n" +msgstr "" + +#: src/dird/ua_run.c:1183 +#, c-format +msgid "Pool \"%s\" not found.\n" +msgstr "Le pool « %s » est introuvable.\n" + +#: src/dird/ua_run.c:1193 +#, c-format +msgid "No authorization. Pool \"%s\".\n" +msgstr "" + +#: src/dird/ua_run.c:1203 +#, c-format +msgid "Storage \"%s\" not found.\n" +msgstr "Le Storage « %s » est introuvable.\n" + +#: src/dird/ua_run.c:1215 +#, c-format +msgid "No authorization. Storage \"%s\".\n" +msgstr "" + +#: src/dird/ua_run.c:1235 src/dird/ua_run.c:1255 +#, c-format +msgid "No authorization. Client \"%s\".\n" +msgstr "" + +#: src/dird/ua_run.c:1245 +#, fuzzy, c-format +msgid "Restore Client \"%s\" not found.\n" +msgstr "le client « %s » est introuvable.\n" + +#: src/dird/ua_run.c:1265 +#, c-format +msgid "FileSet \"%s\" not found.\n" +msgstr "Le FileSet « %s » est introuvable.\n" + +#: src/dird/ua_run.c:1274 +#, c-format +msgid "No authorization. FileSet \"%s\".\n" +msgstr "" + +#: src/dird/ua_run.c:1282 +#, c-format +msgid "Verify Job \"%s\" not found.\n" +msgstr "" + +#: src/dird/ua_run.c:1292 +#, c-format +msgid "Migration Job \"%s\" not found.\n" +msgstr "" + +#: src/dird/jobq.c:75 +#, c-format +msgid "pthread_attr_init: ERR=%s\n" +msgstr "" + +#: src/dird/jobq.c:84 +#, c-format +msgid "pthread_mutex_init: ERR=%s\n" +msgstr "" + +#: src/dird/jobq.c:90 +#, c-format +msgid "pthread_cond_init: ERR=%s\n" +msgstr "" + +#: src/dird/jobq.c:123 src/dird/jobq.c:257 src/dird/jobq.c:322 +#: src/dird/jobq.c:403 +#, c-format +msgid "pthread_mutex_lock: ERR=%s\n" +msgstr "" + +#: src/dird/jobq.c:136 +#, c-format +msgid "pthread_cond_broadcast: ERR=%s\n" +msgstr "" + +#: src/dird/jobq.c:144 +#, c-format +msgid "pthread_cond_wait: ERR=%s\n" +msgstr "" + +#: src/dird/jobq.c:152 +#, c-format +msgid "pthread_mutex_unlock: ERR=%s\n" +msgstr "" + +#: src/dird/jobq.c:188 +#, c-format +msgid "Job %s waiting %d seconds for scheduled start time.\n" +msgstr "" + +#: src/dird/jobq.c:250 +#, c-format +msgid "pthread_thread_create: ERR=%s\n" +msgstr "" + +#: src/dird/jobq.c:368 +#, c-format +msgid "pthread_cond_signal: ERR=%s\n" +msgstr "" + +#: src/dird/jobq.c:377 +#, c-format +msgid "pthread_create: ERR=%s\n" +msgstr "" + +#: src/dird/jobq.c:515 +#, c-format +msgid "Rescheduled Job %s at %s to re-run in %d seconds (%s).\n" +msgstr "" + +#: src/dird/jobq.c:544 src/dird/jobq.c:549 +msgid "previous Job" +msgstr "" + +#: src/dird/jobq.c:704 +#, c-format +msgid "" +"Job canceled. Attempt to read and write same device.\n" +" Read storage \"%s\" (From %s) -- Write storage \"%s\" (From %s)\n" +msgstr "" + +#: src/dird/ua_server.c:72 +#, c-format +msgid "Cannot create UA thread: %s\n" +msgstr "" + +#: src/dird/ua_server.c:160 +msgid "You have messages.\n" +msgstr "Vous avez des messages.\n" + +#: src/filed/acl.c:104 src/filed/acl.c:110 +msgid "ACL support not configured for your machine.\n" +msgstr "" + +#: src/filed/acl.c:186 +#, fuzzy, c-format +msgid "acl_to_text error on file \"%s\": ERR=%s\n" +msgstr "Impossible d'ouvrir le fichier %s : ERR=%s\n" + +#: src/filed/acl.c:215 +#, fuzzy, c-format +msgid "acl_delete_def_file error on file \"%s\": ERR=%s\n" +msgstr "" +"Impossible de récupérer les informations du Media pour le Volume %s : ERR=%" +"s\n" + +#: src/filed/acl.c:223 +#, fuzzy, c-format +msgid "acl_from_text error on file \"%s\": ERR=%s\n" +msgstr "Impossible d'ouvrir le fichier %s : ERR=%s\n" + +#: src/filed/acl.c:237 +#, fuzzy, c-format +msgid "ac_valid error on file \"%s\": ERR=%s\n" +msgstr "Impossible d'ouvrir le fichier %s : ERR=%s\n" + +#: src/filed/acl.c:252 +#, fuzzy, c-format +msgid "acl_set_file error on file \"%s\": ERR=%s\n" +msgstr "Impossible d'ouvrir le fichier %s : ERR=%s\n" + +#: src/filed/acl.c:286 +#, fuzzy, c-format +msgid "acltostr error on file \"%s\": ERR=%s\n" +msgstr "Impossible d'ouvrir le fichier %s : ERR=%s\n" + +#: src/filed/acl.c:303 src/filed/acl.c:311 +#, fuzzy, c-format +msgid "strtoacl error on file \"%s\": ERR=%s\n" +msgstr "Impossible d'ouvrir le fichier %s : ERR=%s\n" + +#: src/filed/acl.c:323 +#, fuzzy, c-format +msgid "setacl error on file \"%s\": ERR=%s\n" +msgstr "Impossible d'ouvrir le fichier %s : ERR=%s\n" + +#: src/filed/acl.c:359 +#, fuzzy, c-format +msgid "acltotext error on file \"%s\": ERR=%s\n" +msgstr "Impossible d'ouvrir le fichier %s : ERR=%s\n" + +#: src/filed/acl.c:376 +#, fuzzy, c-format +msgid "aclfromtext error on file \"%s\": ERR=%s\n" +msgstr "Impossible d'ouvrir le fichier %s : ERR=%s\n" + +#: src/filed/acl.c:388 +#, fuzzy, c-format +msgid "acl(SETACL) error on file \"%s\": ERR=%s\n" +msgstr "Impossible d'ouvrir le fichier %s : ERR=%s\n" + +#: src/filed/verify.c:53 +#, c-format +msgid "Cannot malloc %d network read buffer\n" +msgstr "" + +#: src/filed/verify.c:123 src/filed/backup.c:292 +#, c-format +msgid " Could not access %s: ERR=%s\n" +msgstr "" + +#: src/filed/verify.c:130 src/filed/backup.c:299 +#, c-format +msgid " Could not follow link %s: ERR=%s\n" +msgstr "" + +#: src/filed/verify.c:137 src/filed/backup.c:306 +#, c-format +msgid " Could not stat %s: ERR=%s\n" +msgstr "" + +#: src/filed/verify.c:143 src/filed/backup.c:313 +#, c-format +msgid " Unchanged file skipped: %s\n" +msgstr "" + +#: src/filed/verify.c:146 +#, c-format +msgid " Archive file skipped: %s\n" +msgstr "" + +#: src/filed/verify.c:149 +#, c-format +msgid " Recursion turned off. Directory skipped: %s\n" +msgstr "" + +#: src/filed/verify.c:153 +#, c-format +msgid " File system change prohibited. Directory skipped: %s\n" +msgstr "" + +#: src/filed/verify.c:158 src/filed/backup.c:320 +#, c-format +msgid " Could not open directory %s: ERR=%s\n" +msgstr "" + +#: src/filed/verify.c:163 +#, c-format +msgid " Unknown file type %d: %s\n" +msgstr "" + +#: src/filed/verify.c:206 src/filed/verify_vol.c:209 +#, c-format +msgid "Network error in send to Director: ERR=%s\n" +msgstr "" + +#: src/filed/verify.c:239 src/filed/backup.c:366 +#, c-format +msgid "%s digest initialization failed\n" +msgstr "" + +#: src/filed/verify.c:300 src/filed/backup.c:462 +#, c-format +msgid " Cannot open %s: ERR=%s.\n" +msgstr "" + +#: src/filed/verify.c:314 src/filed/backup.c:499 +#, c-format +msgid " Cannot open resource fork for %s: ERR=%s.\n" +msgstr "" + +#: src/filed/verify.c:352 +#, c-format +msgid "Error reading file %s: ERR=%s\n" +msgstr "" + +#: src/filed/backup.c:86 +msgid "Cannot set buffer size FD->SD.\n" +msgstr "" + +#: src/filed/backup.c:129 src/filed/backup.c:138 +msgid "An error occurred while encrypting the stream.\n" +msgstr "" + +#: src/filed/backup.c:255 +#, c-format +msgid " Recursion turned off. Will not descend from %s into %s\n" +msgstr "" + +#: src/filed/backup.c:262 +#, c-format +msgid " %s is a different filesystem. Will not descend from %s into %s\n" +msgstr "" + +#: src/filed/backup.c:268 +#, c-format +msgid " Disallowed filesystem. Will not descend from %s into %s\n" +msgstr "" + +#: src/filed/backup.c:273 +#, c-format +msgid " Disallowed drive type. Will not descend into %s\n" +msgstr "" + +#: src/filed/backup.c:316 +#, c-format +msgid " Archive file not saved: %s\n" +msgstr "" + +#: src/filed/backup.c:326 +#, c-format +msgid " Unknown file type %d; not saved: %s\n" +msgstr "" + +#: src/filed/backup.c:380 +#, c-format +msgid "%s signature digest initialization failed\n" +msgstr "" + +#: src/filed/backup.c:400 +#, c-format +msgid "Python reader program \"%s\" not found.\n" +msgstr "" + +#: src/filed/backup.c:556 +#, fuzzy +msgid "Failed to allocate memory for crypto signature.\n" +msgstr "Impossible de se connecter au Director\n" + +#: src/filed/backup.c:561 src/filed/backup.c:567 src/filed/backup.c:582 +msgid "An error occurred while signing the stream.\n" +msgstr "" + +#: src/filed/backup.c:606 +msgid "An error occurred finalizing signing the stream.\n" +msgstr "" + +#: src/filed/backup.c:693 +#, c-format +msgid "Compression deflateParams error: %d\n" +msgstr "" + +#: src/filed/backup.c:705 +msgid "Encrypting sparse data not supported.\n" +msgstr "" + +#: src/filed/backup.c:712 +#, fuzzy +msgid "Failed to initialize encryption context.\n" +msgstr "Impossible d'initialiser le contexte TLS pour la Console « %s ».\n" + +#: src/filed/backup.c:735 src/filed/backup.c:891 src/filed/backup.c:926 +#: src/filed/backup.c:937 src/filed/backup.c:983 src/filed/backup.c:996 +#: src/filed/backup.c:1004 src/filed/backup.c:1050 src/filed/backup.c:1086 +#, c-format +msgid "Network send error to SD. ERR=%s\n" +msgstr "" + +#: src/filed/backup.c:814 +#, c-format +msgid "Compression deflate error: %d\n" +msgstr "" + +#: src/filed/backup.c:821 +#, c-format +msgid "Compression deflateReset error: %d\n" +msgstr "" + +#: src/filed/backup.c:864 src/filed/backup.c:880 +msgid "Encryption error\n" +msgstr "" + +#: src/filed/backup.c:904 +#, c-format +msgid "Read error on file %s. ERR=%s\n" +msgstr "" + +#: src/filed/backup.c:907 +msgid "Too many errors.\n" +msgstr "" + +#: src/filed/backup.c:917 +msgid "Encryption padding error\n" +msgstr "" + +#: src/filed/backup.c:974 +#, c-format +msgid "Error reading ACL of %s\n" +msgstr "" + +#: src/filed/backup.c:1029 +msgid "Invalid file flags, no supported data stream type.\n" +msgstr "" + +#: src/filed/job.c:373 +#, c-format +msgid "2901 Job %s not found.\n" +msgstr "2901 Le job %s est introuvable.\n" + +#: src/filed/job.c:382 +#, c-format +msgid "2001 Job %s marked to be canceled.\n" +msgstr "2001 Le job %s va être annulé.\n" + +#: src/filed/job.c:385 +msgid "2902 Error scanning cancel command.\n" +msgstr "2902 Erreur dans le décodage de la commande d'annulation.\n" + +#: src/filed/job.c:404 +#, c-format +msgid "2991 Bad setdebug command: %s\n" +msgstr "2991 Erreur dans la commande setdebug : %s\n" + +#: src/filed/job.c:420 +#, c-format +msgid "Bad estimate command: %s" +msgstr "" + +#: src/filed/job.c:421 +msgid "2992 Bad estimate command.\n" +msgstr "" + +#: src/filed/job.c:444 +#, c-format +msgid "Bad Job Command: %s" +msgstr "" + +#: src/filed/job.c:465 +#, c-format +msgid "Bad RunBeforeJob command: %s\n" +msgstr "" + +#: src/filed/job.c:466 src/filed/job.c:484 +msgid "2905 Bad RunBeforeJob command.\n" +msgstr "" + +#: src/filed/job.c:495 +msgid "2905 Bad RunBeforeNow command.\n" +msgstr "" + +#: src/filed/job.c:514 +#, c-format +msgid "Bad RunAfter command: %s\n" +msgstr "" + +#: src/filed/job.c:515 +msgid "2905 Bad RunAfterJob command.\n" +msgstr "" + +#: src/filed/job.c:549 +#, c-format +msgid "Bad RunScript command: %s\n" +msgstr "Erreur dans la commande RunScript : %s\n" + +#: src/filed/job.c:550 +msgid "2905 Bad RunScript command.\n" +msgstr "2905 Erreur sur la commande RunScript.\n" + +#: src/filed/job.c:652 +#, c-format +msgid "Error running program: %s. stat=%d: ERR=%s\n" +msgstr "Erreur dans l'exécution de la commande : %s. stat=%d: ERR=%s\n" + +#: src/filed/job.c:662 +#, c-format +msgid "Cannot open FileSet input file: %s. ERR=%s\n" +msgstr "" + +#: src/filed/job.c:758 +#, c-format +msgid "REGEX %s compile error. ERR=%s\n" +msgstr "" + +#: src/filed/job.c:820 +#, c-format +msgid "Invalid FileSet command: %s\n" +msgstr "" + +#: src/filed/job.c:1054 src/tools/testfind.c:635 src/findlib/match.c:199 +#, c-format +msgid "Unknown include/exclude option: %c\n" +msgstr "" + +#: src/filed/job.c:1123 src/stored/fd_cmds.c:356 +#, c-format +msgid "Could not create bootstrap file %s: ERR=%s\n" +msgstr "Impossible de créer le fichier bootstrap %s : ERR=%s\n" + +#: src/filed/job.c:1232 +#, fuzzy, c-format +msgid "" +"DIR and FD clocks differ by %d seconds, FD automatically compensating.\n" +msgstr "" +"L'horloge du client et du director ont %d secondes d'écart, le client s'est " +"ajusté automatiquement.\n" + +#: src/filed/job.c:1240 +#, c-format +msgid "Unknown backup level: %s\n" +msgstr "" + +#: src/filed/job.c:1252 +#, c-format +msgid "Bad level command: %s\n" +msgstr "" + +#: src/filed/job.c:1273 +#, c-format +msgid "Bad session command: %s" +msgstr "" + +#: src/filed/job.c:1294 +#, c-format +msgid "Bad storage command: %s" +msgstr "" + +#: src/filed/job.c:1303 +#, c-format +msgid "Failed to connect to Storage daemon: %s:%d\n" +msgstr "" + +#: src/filed/job.c:1315 +msgid "Failed to authenticate Storage daemon.\n" +msgstr "" + +#: src/filed/job.c:1353 +msgid "Cannot contact Storage daemon\n" +msgstr "Impossible de se connecter au démon Storage\n" + +#: src/filed/job.c:1371 +#, c-format +msgid "Bad response to append open: %s\n" +msgstr "" + +#: src/filed/job.c:1376 +msgid "Bad response from stored to open command\n" +msgstr "" + +#: src/filed/job.c:1403 +#, c-format +msgid "Generate VSS snapshots. Driver=\"%s\", Drive(s)=\"%s\"\n" +msgstr "Création des snapshot VSS. Driver=« %s », Lecteur(s)=« %s »\n" + +#: src/filed/job.c:1405 +msgid "Generate VSS snapshots failed.\n" +msgstr "Erreur durant la création des snapshots VSS.\n" + +#: src/filed/job.c:1412 +#, c-format +msgid "" +"Generate VSS snapshot of drive \"%c:\\\" failed. VSS support is disabled on " +"this drive.\n" +msgstr "" +"Erreur lors de la création du snapshot VSS du lecteur « %c:\\\\ ». Le VSS " +"est désactivé sur ce lecteur.\n" + +#: src/filed/job.c:1419 +#, c-format +msgid "VSS Writer (PrepareForBackup): %s\n" +msgstr "" + +#: src/filed/job.c:1424 +msgid "No drive letters found for generating VSS snapshots.\n" +msgstr "" + +#: src/filed/job.c:1428 +#, c-format +msgid "VSS was not initialized properly. VSS support is disabled. ERR=%s\n" +msgstr "" + +#: src/filed/job.c:1478 +msgid "Append Close with SD failed.\n" +msgstr "" + +#: src/filed/job.c:1482 +#, c-format +msgid "Bad status %d returned from Storage Daemon.\n" +msgstr "" + +#: src/filed/job.c:1500 +#, c-format +msgid "VSS Writer (BackupComplete): %s\n" +msgstr "" + +#: src/filed/job.c:1528 +#, c-format +msgid "2994 Bad verify command: %s\n" +msgstr "" + +#: src/filed/job.c:1543 src/filed/job.c:1582 +#, c-format +msgid "2994 Bad verify level: %s\n" +msgstr "" + +#: src/filed/job.c:1626 +#, c-format +msgid "Bad replace command. CMD=%s\n" +msgstr "" + +#: src/filed/job.c:1644 +#, c-format +msgid "Bad where regexp. where=%s\n" +msgstr "" + +#: src/filed/job.c:1718 +msgid "Improper calling sequence.\n" +msgstr "" + +#: src/filed/job.c:1738 +#, c-format +msgid "Bad response to SD read open: %s\n" +msgstr "" + +#: src/filed/job.c:1743 +msgid "Bad response from stored to read open command\n" +msgstr "" + +#: src/filed/job.c:1807 +#, c-format +msgid "Comm error with SD. bad response to %s. ERR=%s\n" +msgstr "" + +#: src/filed/job.c:1810 +#, c-format +msgid "Bad response to %s command. Wanted %s, got %s\n" +msgstr "" + +#: src/filed/authenticate.c:62 +#, c-format +msgid "I only authenticate directors, not %d\n" +msgstr "" + +#: src/filed/authenticate.c:70 src/stored/authenticate.c:69 +#, c-format +msgid "Bad Hello command from Director at %s. Len=%d.\n" +msgstr "" + +#: src/filed/authenticate.c:82 src/stored/authenticate.c:80 +#, c-format +msgid "Bad Hello command from Director at %s: %s\n" +msgstr "" + +#: src/filed/authenticate.c:94 +#, fuzzy, c-format +msgid "Connection from unknown Director %s at %s rejected.\n" +msgstr "Connexion au Director %s:%d\n" + +#: src/filed/authenticate.c:134 +#, c-format +msgid "Incorrect password given by Director at %s.\n" +msgstr "" + +#: src/filed/authenticate.c:141 +msgid "" +"Authorization problem: Remote server did not advertize required TLS " +"support.\n" +msgstr "" + +#: src/filed/authenticate.c:195 src/stored/dircmd.c:204 +msgid "Unable to authenticate Director\n" +msgstr "" + +#: src/filed/authenticate.c:246 +msgid "" +"Authorization key rejected by Storage daemon.\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" + +#: src/filed/restore.c:133 +#, c-format +msgid "Size of data or stream of %s not correct. Original %s, restored %s.\n" +msgstr "" + +#: src/filed/restore.c:255 src/filed/verify_vol.c:99 +#, c-format +msgid "Record header scan error: %s\n" +msgstr "" + +#: src/filed/restore.c:263 src/filed/verify_vol.c:108 +#, c-format +msgid "Data record error. ERR=%s\n" +msgstr "" + +#: src/filed/restore.c:267 src/filed/verify_vol.c:112 +#, c-format +msgid "Actual data size %d not same as header %d\n" +msgstr "" + +#: src/filed/restore.c:294 src/filed/restore.c:639 +msgid "Logic error: output file should be open\n" +msgstr "" + +#: src/filed/restore.c:315 src/filed/restore.c:652 +msgid "Logic error: output file should not be open\n" +msgstr "" + +#: src/filed/restore.c:326 src/filed/verify_vol.c:151 +#: src/stored/bextract.c:307 src/stored/bls.c:390 src/stored/bscan.c:670 +#, c-format +msgid "Record header file index %ld not equal record index %ld\n" +msgstr "" + +#: src/filed/restore.c:339 src/stored/bextract.c:316 +#, c-format +msgid "%s stream not supported on this Client.\n" +msgstr "" + +#: src/filed/restore.c:391 +msgid "Unexpected cryptographic session data stream.\n" +msgstr "" + +#: src/filed/restore.c:399 +msgid "" +"No private decryption keys have been defined to decrypt encrypted backup " +"data.\n" +msgstr "" + +#: src/filed/restore.c:410 +#, fuzzy +msgid "Could not create digest.\n" +msgstr "Impossible de créer la structure BSOCK cliente.\n" + +#: src/filed/restore.c:424 +msgid "Missing private key required to decrypt encrypted backup data.\n" +msgstr "" + +#: src/filed/restore.c:427 +#, fuzzy +msgid "Decrypt of the session key failed.\n" +msgstr "Impossible de décrypter la clef de session" + +#: src/filed/restore.c:431 +#, c-format +msgid "An error occurred while decoding encrypted session data stream: %s\n" +msgstr "" + +#: src/filed/restore.c:480 src/filed/restore.c:526 +#, c-format +msgid "Missing encryption session data stream for %s\n" +msgstr "" + +#: src/filed/restore.c:488 src/filed/restore.c:533 +#, c-format +msgid "Failed to initialize decryption context for %s\n" +msgstr "" + +#: src/filed/restore.c:545 +#, c-format +msgid " Cannot open resource fork for %s.\n" +msgstr "" + +#: src/filed/restore.c:571 +#, c-format +msgid " Invalid length of Finder Info (got %d, not 32)\n" +msgstr "" + +#: src/filed/restore.c:575 +#, c-format +msgid " Could not set Finder Info on %s\n" +msgstr "" + +#: src/filed/restore.c:588 +#, c-format +msgid "Can't restore ACL of %s\n" +msgstr "" + +#: src/filed/restore.c:600 +#, c-format +msgid "Can't restore default ACL of %s\n" +msgstr "" + +#: src/filed/restore.c:610 +msgid "Unexpected cryptographic signature data stream.\n" +msgstr "" + +#: src/filed/restore.c:616 +#, c-format +msgid "Failed to decode message signature for %s\n" +msgstr "" + +#: src/filed/restore.c:655 src/stored/bextract.c:474 +#, c-format +msgid "Unknown stream=%d ignored. This shouldn't happen!\n" +msgstr "" + +#: src/filed/restore.c:732 +#, c-format +msgid "" +"%d non-supported data streams and %d non-supported attrib streams ignored.\n" +msgstr "" + +#: src/filed/restore.c:736 +#, c-format +msgid "%d non-supported resource fork streams ignored.\n" +msgstr "" + +#: src/filed/restore.c:739 +#, c-format +msgid "%d non-supported Finder Info streams ignored.\n" +msgstr "" + +#: src/filed/restore.c:742 +#, c-format +msgid "%d non-supported acl streams ignored.\n" +msgstr "" + +#: src/filed/restore.c:745 +#, fuzzy, c-format +msgid "%d non-supported crypto streams ignored.\n" +msgstr "contentEncryptionAlgorithm non supporté : %d\n" + +#: src/filed/restore.c:757 +msgid "None" +msgstr "" + +#: src/filed/restore.c:761 +msgid "Zlib errno" +msgstr "" + +#: src/filed/restore.c:763 +msgid "Zlib stream error" +msgstr "" + +#: src/filed/restore.c:765 +msgid "Zlib data error" +msgstr "" + +#: src/filed/restore.c:767 +msgid "Zlib memory error" +msgstr "" + +#: src/filed/restore.c:769 +msgid "Zlib buffer error" +msgstr "" + +#: src/filed/restore.c:771 +msgid "Zlib version error" +msgstr "" + +#: src/filed/restore.c:773 src/lib/util.c:597 src/lib/util.c:607 +#: src/lib/util.c:615 src/lib/util.c:622 src/lib/util.c:629 src/lib/util.c:643 +#: src/lib/util.c:653 src/lib/util.c:660 src/lib/util.c:671 +msgid "*none*" +msgstr "" + +#: src/filed/restore.c:809 +#, c-format +msgid "Missing cryptographic signature for %s\n" +msgstr "" + +#: src/filed/restore.c:838 src/filed/restore.c:862 +#, fuzzy, c-format +msgid "Signature validation failed for file %s: ERR=%s\n" +msgstr "Impossible de créer le fichier bootstrap %s : ERR=%s\n" + +#: src/filed/restore.c:852 +#, fuzzy, c-format +msgid "Digest one file failed for file: %s\n" +msgstr "Impossible de créer le fichier bootstrap %s : ERR=%s\n" + +#: src/filed/restore.c:883 +#, c-format +msgid "Signature validation failed for %s: %s\n" +msgstr "" + +#: src/filed/restore.c:909 src/stored/bextract.c:405 +#, c-format +msgid "Seek to %s error on %s: ERR=%s\n" +msgstr "" + +#: src/filed/restore.c:936 +#, c-format +msgid "Uncompression error on file %s. ERR=%s\n" +msgstr "" + +#: src/filed/restore.c:945 src/stored/bextract.c:439 +msgid "GZIP data stream found, but GZIP not configured!\n" +msgstr "" + +#: src/filed/restore.c:968 +#, c-format +msgid "Write error in Win32 Block Decomposition on %s: %s\n" +msgstr "" + +#: src/filed/restore.c:974 src/stored/bextract.c:377 src/stored/bextract.c:427 +#, c-format +msgid "Write error on %s: %s\n" +msgstr "" + +#: src/filed/restore.c:1023 +msgid "Decryption error\n" +msgstr "" + +#: src/filed/restore.c:1113 +#, c-format +msgid "Decryption error. buf_len=%d decrypt_len=%d on file %s\n" +msgstr "" + +#: src/filed/restore.c:1217 +msgid "Open File Manager paused\n" +msgstr "" + +#: src/filed/restore.c:1221 +msgid "FAILED to pause Open File Manager\n" +msgstr "" + +#: src/filed/restore.c:1229 +#, c-format +msgid "Running as '%s'. Privmask=%#08x\n" +msgstr "" + +#: src/filed/restore.c:1231 +msgid "Failed to retrieve current UserName\n" +msgstr "" + +#: src/filed/filed.c:65 +#, fuzzy, c-format +msgid "" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: bacula-fd [-f -s] [-c config_file] [-d debug_level]\n" +" -c use as configuration file\n" +" -dnn set debug level to nn\n" +" -f run in foreground (for debugging)\n" +" -g groupid\n" +" -s no signals (for debugging)\n" +" -t test configuration file and exit\n" +" -u userid\n" +" -v verbose user messages\n" +" -? print this message.\n" +"\n" +msgstr "" +"\n" +"Version : %s (%s)\n" +"\n" +"Usage : dird [-f -s] [-c config_file] [-d debug_level] [config_file]\n" +" -c utilise fich comme fichier de configuration\n" +" -dnn positionne le niveau de debug à nn\n" +" -f reste en avant-plan (pour debugger)\n" +" -g groupid\n" +" -r lance maintenant\n" +" -s pas de signaux\n" +" -t test - lit seulement le fichier de configuration\n" +" -u userid\n" +" -v affiche les messages utilisateurs\n" +" -? affiche ce message.\n" +"\n" + +#: src/filed/filed.c:277 +#, c-format +msgid "" +"No File daemon resource defined in %s\n" +"Without that I don't know who I am :-(\n" +msgstr "" + +#: src/filed/filed.c:282 +#, c-format +msgid "Only one Client resource permitted in %s\n" +msgstr "" + +#: src/filed/filed.c:305 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"File daemon in %s.\n" +msgstr "" + +#: src/filed/filed.c:329 +msgid "PKI encryption/signing enabled but not compiled into Bacula.\n" +msgstr "" + +#: src/filed/filed.c:340 +#, c-format +msgid "" +"\"PKI Key Pair\" must be defined for File daemon \"%s\" in %s if either " +"\"PKI Sign\" or \"PKI Encrypt\" are enabled.\n" +msgstr "" + +#: src/filed/filed.c:352 src/filed/filed.c:383 src/filed/filed.c:424 +#, fuzzy +msgid "Failed to allocate a new keypair object.\n" +msgstr "Impossible de se connecter au Director\n" + +#: src/filed/filed.c:356 +#, c-format +msgid "Failed to load public certificate for File daemon \"%s\" in %s.\n" +msgstr "" + +#: src/filed/filed.c:362 +#, c-format +msgid "Failed to load private key for File daemon \"%s\" in %s.\n" +msgstr "" + +#: src/filed/filed.c:392 +#, c-format +msgid "Failed to load private key from file %s for File daemon \"%s\" in %s.\n" +msgstr "" + +#: src/filed/filed.c:399 +#, c-format +msgid "" +"Failed to load trusted signer certificate from file %s for File daemon \"%s" +"\" in %s.\n" +msgstr "" + +#: src/filed/filed.c:430 +#, c-format +msgid "" +"Failed to load master key certificate from file %s for File daemon \"%s\" in " +"%s.\n" +msgstr "" + +#: src/filed/filed.c:446 +#, c-format +msgid "No Director resource defined in %s\n" +msgstr "" + +#: src/filed/status.c:77 +#, c-format +msgid "%s Version: %s (%s) %s %s %s %s\n" +msgstr "" + +#: src/filed/status.c:81 src/stored/status.c:86 +#, c-format +msgid "Daemon started %s, %d Job%s run since started.\n" +msgstr "Démon démarré le %s, %d job%s lancés depuis.\n" + +#: src/filed/status.c:136 +#, c-format +msgid " Sizeof: boffset_t=%d size_t=%d debug=%d trace=%d\n" +msgstr "" + +#: src/filed/status.c:155 +#, c-format +msgid "Director connected at: %s\n" +msgstr "Connexion du director le %s\n" + +#: src/filed/status.c:157 +#, c-format +msgid "JobId %d Job %s is running.\n" +msgstr "" + +#: src/filed/status.c:160 +#, c-format +msgid " %s%s Job started: %s\n" +msgstr "" + +#: src/filed/status.c:172 +#, fuzzy, c-format +msgid " Files=%s Bytes=%s Bytes/sec=%s Errors=%d\n" +msgstr " Total Octets=%s Blocs=%s Octets/Bloc=%s\n" + +#: src/filed/status.c:178 +#, c-format +msgid " Files Examined=%s\n" +msgstr "" + +#: src/filed/status.c:183 +#, c-format +msgid " Processing file: %s\n" +msgstr "" + +#: src/filed/status.c:194 +msgid " SDSocket closed.\n" +msgstr "" + +#: src/filed/status.c:328 src/filed/status.c:352 src/stored/status.c:636 +#: src/stored/status.c:659 +#, c-format +msgid "Bad .status command: %s\n" +msgstr "" + +#: src/filed/status.c:329 +msgid "2900 Bad .status command, missing argument.\n" +msgstr "" + +#: src/filed/status.c:353 +msgid "2900 Bad .status command, wrong argument.\n" +msgstr "" + +#: src/filed/status.c:390 src/stored/status.c:577 +msgid "Init Catalog" +msgstr "" + +#: src/filed/status.c:393 src/stored/status.c:580 +msgid "Volume to Catalog" +msgstr "" + +#: src/filed/status.c:396 src/stored/status.c:583 +msgid "Disk to Catalog" +msgstr "" + +#: src/filed/status.c:399 src/stored/status.c:586 +msgid "Data" +msgstr "" + +#: src/filed/status.c:405 src/stored/status.c:592 src/lib/util.c:367 +msgid "Unknown Job Level" +msgstr "" + +#: src/filed/status.c:421 +msgid "Bacula Client: Idle" +msgstr "" + +#: src/filed/status.c:432 +msgid "Bacula Client: Running" +msgstr "" + +#: src/filed/status.c:446 +msgid "Bacula Client: Last Job Canceled" +msgstr "" + +#: src/filed/status.c:450 +msgid "Bacula Client: Last Job Failed" +msgstr "" + +#: src/filed/status.c:454 +msgid "Bacula Client: Last Job had Warnings" +msgstr "" + +#: src/filed/verify_vol.c:65 +msgid "Storage command not issued before Verify.\n" +msgstr "" + +#: src/filed/verify_vol.c:145 +#, c-format +msgid "Error scanning record header: %s\n" +msgstr "" + +#: src/filed/filed_conf.c:319 src/filed/filed_conf.c:384 +#: src/filed/filed_conf.c:414 src/gnome2-console/console_conf.c:154 +#: src/gnome2-console/console_conf.c:232 src/gnome2-console/console_conf.c:280 +#: src/gnome2-console/console_conf.c:310 src/wx-console/console_conf.c:164 +#: src/wx-console/console_conf.c:239 src/wx-console/console_conf.c:284 +#: src/wx-console/console_conf.c:311 src/stored/stored_conf.c:528 +#: src/stored/stored_conf.c:616 src/stored/stored_conf.c:651 +#: src/console/console_conf.c:155 src/console/console_conf.c:231 +#: src/console/console_conf.c:276 src/console/console_conf.c:303 +#: src/qt-console/bat_conf.cpp:156 src/qt-console/bat_conf.cpp:234 +#: src/qt-console/bat_conf.cpp:282 src/qt-console/bat_conf.cpp:312 +#, c-format +msgid "Unknown resource type %d\n" +msgstr "" + +#: src/filed/pythonfd.c:157 src/stored/pythonsd.c:162 +#, c-format +msgid "Cannot delete attribute %s" +msgstr "" + +#: src/filed/pythonfd.c:175 src/filed/pythonfd.c:191 src/stored/pythonsd.c:195 +#, c-format +msgid "Cannot find attribute %s" +msgstr "" + +#: src/gnome2-console/interface.c:202 +#, fuzzy +msgid "Bacula Console" +msgstr "Message de Bacula" + +#: src/gnome2-console/interface.c:235 src/wx-console/wxbmainframe.cpp:248 +#: src/wx-console/wxbmainframe.cpp:619 +#, fuzzy +msgid "Connect" +msgstr "Connexion...\n" + +#: src/gnome2-console/interface.c:238 +#, fuzzy +msgid "Connect to Director" +msgstr "Impossible de se connecter au Director\n" + +#: src/gnome2-console/interface.c:242 +#, fuzzy +msgid "Run" +msgstr "En cours" + +#: src/gnome2-console/interface.c:245 src/gnome2-console/interface.c:682 +#: src/gnome2-console/interface.c:696 +#, fuzzy +msgid "Run a Job" +msgstr "Job en cours :\n" + +#: src/gnome2-console/interface.c:249 +#, fuzzy +msgid "Dir Status" +msgstr "Statut :\n" + +#: src/gnome2-console/interface.c:255 src/lib/util.c:299 +#: src/wx-console/wxbrestorepanel.cpp:404 +#: src/wx-console/wxbrestorepanel.cpp:1974 +msgid "Restore" +msgstr "Restaurer" + +#: src/gnome2-console/interface.c:261 +#, fuzzy +msgid "Label" +msgstr "Type" + +#: src/gnome2-console/interface.c:267 +msgid "Msgs" +msgstr "" + +#: src/gnome2-console/interface.c:270 +#, fuzzy +msgid "Display Messages" +msgstr "Message de Bacula" + +#: src/gnome2-console/interface.c:294 +#, fuzzy +msgid " Command: " +msgstr "Erreur sur la commande : %s\n" + +#: src/gnome2-console/interface.c:303 +#, fuzzy +msgid "Enter Commands Here" +msgstr "Exécuter une requête SQL : " + +#: src/gnome2-console/interface.c:314 +#, fuzzy +msgid " Status: " +msgstr "Statut :\n" + +#: src/gnome2-console/interface.c:323 src/gnome2-console/interface.c:1709 +#, fuzzy +msgid " " +msgstr " (" + +#: src/gnome2-console/interface.c:424 +msgid "About Bacula Console" +msgstr "" + +#: src/gnome2-console/interface.c:439 +#, fuzzy +msgid "Bacula Console\n" +msgstr "Message de Bacula" + +#: src/gnome2-console/interface.c:448 +#, fuzzy +msgid "Copyright (c) 2000 - 2004, Kern Sibbald and John Walker" +msgstr "" +"Copyright (C) 2000-2005 Kern Sibbald\n" +"\n" +"Version : " + +#: src/gnome2-console/interface.c:453 +msgid "Authors: Kern Sibbald and John Walker" +msgstr "" + +#: src/gnome2-console/interface.c:458 +msgid "It comes by night and sucks the essence from your computers" +msgstr "" + +#: src/gnome2-console/interface.c:523 src/gnome2-console/interface.c:540 +#, fuzzy +msgid "Select Director" +msgstr "Director" + +#: src/gnome2-console/interface.c:570 +msgid " " +msgstr "" + +#: src/gnome2-console/interface.c:715 src/gnome2-console/interface.c:1631 +#, fuzzy +msgid "Job:" +msgstr "Job" + +#: src/gnome2-console/interface.c:736 +msgid " Type:" +msgstr "" + +#: src/gnome2-console/interface.c:756 src/gnome2-console/interface.c:785 +#: src/gnome2-console/interface.c:1284 src/gnome2-console/interface.c:1680 +#, fuzzy +msgid " " +msgstr " (" + +#: src/gnome2-console/interface.c:765 src/gnome2-console/interface.c:1660 +#: src/wx-console/wxbrestorepanel.cpp:1886 +#, fuzzy +msgid "Client:" +msgstr "Client" + +#: src/gnome2-console/interface.c:795 src/gnome2-console/interface.c:1689 +#, fuzzy +msgid "FileSet: " +msgstr "FileSet" + +#: src/gnome2-console/interface.c:820 src/wx-console/wxbrestorepanel.cpp:1893 +#, fuzzy +msgid "Priority:" +msgstr "Priorité" + +#: src/gnome2-console/interface.c:836 +#, fuzzy +msgid "Level:" +msgstr "Type" + +#: src/gnome2-console/interface.c:857 +msgid " " +msgstr "" + +#: src/gnome2-console/interface.c:867 src/gnome2-console/interface.c:1433 +#: src/gnome2-console/interface.c:1718 +#, fuzzy +msgid "Pool:" +msgstr "Pool" + +#: src/gnome2-console/interface.c:888 src/gnome2-console/interface.c:919 +#: src/gnome2-console/interface.c:949 src/gnome2-console/interface.c:969 +#: src/gnome2-console/interface.c:989 src/gnome2-console/interface.c:1009 +#: src/gnome2-console/interface.c:1014 src/gnome2-console/interface.c:1483 +#: src/gnome2-console/interface.c:1739 src/gnome2-console/interface.c:1769 +#: src/gnome2-console/interface.c:1788 src/gnome2-console/interface.c:1793 +msgid " " +msgstr "" + +#: src/gnome2-console/interface.c:898 src/gnome2-console/interface.c:1407 +#: src/gnome2-console/interface.c:1748 src/wx-console/wxbrestorepanel.cpp:1888 +#, fuzzy +msgid "Storage:" +msgstr "Stockage" + +#: src/gnome2-console/interface.c:929 +#, fuzzy +msgid "Messages:" +msgstr "messages" + +#: src/gnome2-console/interface.c:959 +#, fuzzy +msgid "Where: " +msgstr "Destination" + +#: src/gnome2-console/interface.c:979 src/wx-console/wxbrestorepanel.cpp:1890 +#, fuzzy +msgid "When:" +msgstr "Quand" + +#: src/gnome2-console/interface.c:999 src/wx-console/wxbrestorepanel.cpp:1871 +#, fuzzy +msgid "Bootstrap:" +msgstr "Bootstrap" + +#: src/gnome2-console/interface.c:1194 +#, fuzzy +msgid "Restore File Selection" +msgstr "restauration de fichier" + +#: src/gnome2-console/interface.c:1238 +#, fuzzy +msgid "Current dir:" +msgstr "Le slot courant est : %d\n" + +#: src/gnome2-console/interface.c:1265 +#, fuzzy +msgid "Files Selected: " +msgstr "" +"\n" +"%u fichiers sélectionnés pour la restauration.\n" + +#: src/gnome2-console/interface.c:1385 src/gnome2-console/interface.c:1396 +#, fuzzy +msgid "Label a Volume" +msgstr "labéliser une bande" + +#: src/gnome2-console/interface.c:1458 +#, fuzzy +msgid "Volume Name:" +msgstr "Saisissez un nom de Volume : " + +#: src/gnome2-console/interface.c:1472 +msgid "Slot:" +msgstr "" + +#: src/gnome2-console/interface.c:1598 +#, fuzzy +msgid "Restore Files Dialog" +msgstr "restauration de fichier" + +#: src/gnome2-console/interface.c:1613 +#, fuzzy +msgid "Restore Files" +msgstr "restauration de fichier" + +#: src/gnome2-console/interface.c:1778 +#, fuzzy +msgid "Before:" +msgstr "Restaurer" + +#: src/gnome2-console/interface.c:1824 +#, fuzzy +msgid "Select Files" +msgstr "Saisissez le type" + +#: src/gnome2-console/interface.c:1907 +msgid "Progress" +msgstr "" + +#: src/gnome2-console/console.c:102 +#, fuzzy, c-format +msgid "" +"\n" +"Version: %s (%s) %s %s %s\n" +"\n" +"Usage: bgnome-console [-s] [-c config_file] [-d debug_level] [config_file]\n" +" -c set configuration file to file\n" +" -dnn set debug level to nn\n" +" -s no signals\n" +" -t test - read configuration and exit\n" +" -? print this message.\n" +"\n" +msgstr "" +") %s %s %s\n" +"\n" +"Usage : bconsole [-s] [-c config_file] [-d niveau_debug]\n" +" -c set configuration file to file\n" +" -dnn set debug level to nn\n" +" -s no signals\n" +" -t test - lecture de la configuration et sortie\n" +"\n" + +#: src/gnome2-console/console.c:160 src/console/console.c:664 +#: src/qt-console/main.cpp:216 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Director \"%s\" in %s. At least one CA certificate store is required.\n" +msgstr "" + +#: src/gnome2-console/console.c:169 src/console/console.c:673 +#: src/qt-console/main.cpp:225 +#, c-format +msgid "" +"No Director resource defined in %s\n" +"Without that I don't how to speak to the Director :-(\n" +msgstr "" +"Pas de director défini pour %s\n" +"Sans cette définition, il n'est pas possible de se connecter à celui-ci.\n" + +#: src/gnome2-console/console.c:189 src/console/console.c:693 +#: src/qt-console/main.cpp:245 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Console \"%s\" in %s.\n" +msgstr "" + +#: src/gnome2-console/console.c:234 +#, fuzzy, c-format +msgid "Pthread cond init error = %s\n" +msgstr "Erreur pendant l'écriture des attributs dans le spool. ERR=%s\n" + +#: src/gnome2-console/console.c:379 +#, fuzzy +msgid " Not Connected" +msgstr "Connexion...\n" + +#: src/gnome2-console/console.c:500 +#, fuzzy, c-format +msgid " Connecting to Director %s:%d" +msgstr "Connexion au Director %s:%d\n" + +#: src/gnome2-console/console.c:501 src/qt-console/bcomm/dircomm.cpp:121 +#: src/qt-console/console/console.cpp:138 +#, fuzzy, c-format +msgid "" +"Connecting to Director %s:%d\n" +"\n" +msgstr "Connexion au Director %s:%d\n" + +#: src/gnome2-console/console.c:516 src/wx-console/console_thread.cpp:381 +#, c-format +msgid "Passphrase for Console \"%s\" TLS private key: " +msgstr "" + +#: src/gnome2-console/console.c:526 src/console/console.c:538 +#: src/qt-console/bcomm/dircomm.cpp:141 src/qt-console/console/console.cpp:163 +#: src/wx-console/console_thread.cpp:391 +#, c-format +msgid "Failed to initialize TLS context for Console \"%s\".\n" +msgstr "Impossible d'initialiser le contexte TLS pour la Console « %s ».\n" + +#: src/gnome2-console/console.c:538 src/wx-console/console_thread.cpp:402 +#, c-format +msgid "Passphrase for Director \"%s\" TLS private key: " +msgstr "" + +#: src/gnome2-console/console.c:548 src/console/console.c:558 +#: src/qt-console/bcomm/dircomm.cpp:161 src/qt-console/console/console.cpp:183 +#: src/wx-console/console_thread.cpp:412 +#, c-format +msgid "Failed to initialize TLS context for Director \"%s\".\n" +msgstr "Impossible d'initialiser le contexte TLS pour le Director « %s ».\n" + +#: src/gnome2-console/console.c:557 src/tray-monitor/tray-monitor.c:922 +#: src/qt-console/bcomm/dircomm.cpp:177 src/qt-console/console/console.cpp:199 +#: src/wx-console/console_thread.cpp:420 +#, fuzzy +msgid "Director daemon" +msgstr "Director" + +#: src/gnome2-console/console.c:569 +msgid " Initializing ..." +msgstr "" + +#: src/gnome2-console/console.c:605 +#, fuzzy +msgid " Connected" +msgstr "Connexion...\n" + +#: src/gnome2-console/console.c:613 +msgid " Processing command ..." +msgstr "" + +#: src/gnome2-console/console.c:648 +msgid " At prompt waiting for input ..." +msgstr "" + +#: src/gnome2-console/console.c:768 +msgid " Ready" +msgstr "" + +#: src/gnome2-console/console_conf.c:134 src/wx-console/console_conf.c:147 +#: src/console/console_conf.c:138 src/qt-console/bat_conf.cpp:136 +#, c-format +msgid "No record for %d %s\n" +msgstr "" + +#: src/gnome2-console/console_conf.c:143 src/wx-console/console_conf.c:160 +#: src/console/console_conf.c:151 src/qt-console/bat_conf.cpp:145 +#, c-format +msgid "Director: name=%s address=%s DIRport=%d\n" +msgstr "" + +#: src/gnome2-console/console_conf.c:147 src/qt-console/bat_conf.cpp:149 +#, fuzzy, c-format +msgid "Console: name=%s\n" +msgstr "Console connecté à %s\n" + +#: src/gnome2-console/console_conf.c:150 src/tray-monitor/tray_conf.c:195 +#: src/qt-console/bat_conf.cpp:152 +#, c-format +msgid "ConsoleFont: name=%s font face=%s\n" +msgstr "" + +#: src/gnome2-console/support.c:60 src/gnome2-console/support.c:85 +#, fuzzy, c-format +msgid "Couldn't find pixmap file: %s" +msgstr "Impossible d'ouvrir le fichier de données %s.\n" + +#: src/gnome2-console/authenticate.c:87 +#, c-format +msgid "%s: Director authorization problem.\n" +msgstr "" + +#: src/gnome2-console/authenticate.c:88 +#, fuzzy +msgid "Director authorization problem.\n" +msgstr "Pas d'enregistrement trouvé en base pour : %s\n" + +#: src/gnome2-console/authenticate.c:90 +#, fuzzy +msgid "" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" +"Problème d'authentification entre le client et le director.\n" +"Le plus souvent, les mots de pass ne correspondent pas.\n" +"Vous trouverez de l'aide sur\n" +"http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors\n" + +#: src/gnome2-console/authenticate.c:98 src/console/authenticate.c:143 +#: src/tray-monitor/authenticate.c:97 +#, c-format +msgid "Bad response to Hello command: ERR=%s\n" +msgstr "Mauvaise réponse à la commande Hello : ERR=%s\n" + +#: src/gnome2-console/authenticate.c:100 +#, fuzzy, c-format +msgid "%s: Bad response to Hello command: ERR=%s\n" +msgstr "Mauvaise réponse à la commande Hello : ERR=%s\n" + +#: src/gnome2-console/authenticate.c:102 +msgid "The Director is probably not running.\n" +msgstr "" + +#: src/gnome2-console/authenticate.c:108 src/wx-console/authenticate.c:157 +#: src/console/authenticate.c:150 src/tray-monitor/authenticate.c:104 +msgid "Director rejected Hello command\n" +msgstr "Le director a rejeté la commande Hello\n" + +#: src/gnome2-console/restore.c:149 +msgid "Mark" +msgstr "" + +#: src/gnome2-console/restore.c:149 +#, fuzzy +msgid "File" +msgstr "FileSet" + +#: src/gnome2-console/restore.c:149 +msgid "Mode" +msgstr "" + +#: src/gnome2-console/restore.c:149 src/wx-console/wxbrestorepanel.cpp:306 +msgid "User" +msgstr "" + +#: src/gnome2-console/restore.c:149 src/wx-console/wxbrestorepanel.cpp:310 +msgid "Group" +msgstr "" + +#: src/gnome2-console/restore.c:149 src/wx-console/wxbrestorepanel.cpp:294 +#, fuzzy +msgid "Size" +msgstr "Depuis" + +#: src/gnome2-console/restore.c:149 src/wx-console/wxbrestorepanel.cpp:298 +msgid "Date" +msgstr "" + +#: src/cats/sql.c:138 +#, c-format +msgid "" +"query %s failed:\n" +"%s\n" +msgstr "" + +#: src/cats/sql.c:160 +#, c-format +msgid "" +"insert %s failed:\n" +"%s\n" +msgstr "" + +#: src/cats/sql.c:174 +#, c-format +msgid "Insertion problem: affected_rows=%s\n" +msgstr "" + +#: src/cats/sql.c:194 +#, c-format +msgid "" +"update %s failed:\n" +"%s\n" +msgstr "" + +#: src/cats/sql.c:204 +#, c-format +msgid "Update failed: affected_rows=%s for %s\n" +msgstr "" + +#: src/cats/sql.c:225 +#, c-format +msgid "" +"delete %s failed:\n" +"%s\n" +msgstr "" + +#: src/cats/sql.c:251 src/cats/sql.c:258 src/cats/sql_create.c:1031 +#: src/cats/sql_get.c:185 src/cats/sql_get.c:236 src/cats/sql_get.c:604 +#: src/cats/sql_get.c:680 src/cats/sql_get.c:951 +#, c-format +msgid "error fetching row: %s\n" +msgstr "" + +#: src/cats/sql.c:449 +#, c-format +msgid "Path length is zero. File=%s\n" +msgstr "" + +#: src/cats/sql.c:493 +msgid "No results to list.\n" +msgstr "Liste vide.\n" + +#: src/cats/sqlite.c:162 src/cats/mysql.c:153 src/cats/postgresql.c:162 +#: src/cats/bdb.c:185 +#, c-format +msgid "Unable to initialize DB lock. ERR=%s\n" +msgstr "Impossible d'initialiser le verrou sur la base. ERR=%s\n" + +#: src/cats/sqlite.c:176 +#, c-format +msgid "Database %s does not exist, please create it.\n" +msgstr "" + +#: src/cats/sqlite.c:206 +#, c-format +msgid "Unable to open Database=%s. ERR=%s\n" +msgstr "" + +#: src/cats/sqlite.c:207 src/lib/bnet_server.c:391 +msgid "unknown" +msgstr "inconnu" + +#: src/cats/sqlite.c:359 src/cats/mysql.c:315 src/cats/postgresql.c:319 +#, c-format +msgid "Query failed: %s: ERR=%s\n" +msgstr "" + +#: src/cats/sql_find.c:98 src/cats/sql_find.c:127 +#, c-format +msgid "" +"Query error for start time request: ERR=%s\n" +"CMD=%s\n" +msgstr "" + +#: src/cats/sql_find.c:104 +msgid "No prior Full backup Job record found.\n" +msgstr "Pas de précédent backup Full en base.\n" + +#: src/cats/sql_find.c:116 +#, c-format +msgid "Unknown level=%d\n" +msgstr "" + +#: src/cats/sql_find.c:133 +#, c-format +msgid "" +"No Job record found: ERR=%s\n" +"CMD=%s\n" +msgstr "" + +#: src/cats/sql_find.c:232 +#, c-format +msgid "Unknown Job level=%d\n" +msgstr "Niveau de job inconnu %d\n" + +#: src/cats/sql_find.c:242 +#, c-format +msgid "No Job found for: %s.\n" +msgstr "Pas de job trouvé pour : %s.\n" + +#: src/cats/sql_find.c:253 +#, c-format +msgid "No Job found for: %s\n" +msgstr "Pas de job trouvé pour %s\n" + +#: src/cats/sql_find.c:332 +#, fuzzy, c-format +msgid "Request for Volume item %d greater than max %d or less than 1\n" +msgstr "Le slot %d est ignoré car il est supérieur au maximum %d.\n" + +#: src/cats/sql_find.c:347 +#, c-format +msgid "No Volume record found for item %d.\n" +msgstr "Pas de volume trouvé en base pour l'objet %d.\n" + +#: src/cats/mysql.c:82 +msgid "A user name for MySQL must be supplied.\n" +msgstr "Un nom d'utilisateur MySQL doit être fourni.\n" + +#: src/cats/mysql.c:191 +#, c-format +msgid "" +"Unable to connect to MySQL server.\n" +"Database=%s User=%s\n" +"MySQL connect failed either server not running or your authorization is " +"incorrect.\n" +msgstr "" +"Impossible de se connecter au serveur MySQL.\n" +"Base=%s Utilisateur=%s\n" +"Le serveur n'est pas démarré ou bien votre password est invalide.\n" + +#: src/cats/sql_delete.c:80 +#, c-format +msgid "No pool record %s exists\n" +msgstr "" + +#: src/cats/sql_delete.c:85 +#, c-format +msgid "Expecting one pool record, got %d\n" +msgstr "" + +#: src/cats/sql_delete.c:91 +#, c-format +msgid "Error fetching row %s\n" +msgstr "" + +#: src/cats/sql_create.c:95 +#, c-format +msgid "Create DB Job record %s failed. ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:146 +#, c-format +msgid "Create JobMedia record %s failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:155 +#, c-format +msgid "Update Media record %s failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:185 +#, c-format +msgid "pool record %s already exists\n" +msgstr "Le pool %s existe déjà en base\n" + +#: src/cats/sql_create.c:212 +#, c-format +msgid "Create db Pool record %s failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:243 +#, c-format +msgid "Device record %s already exists\n" +msgstr "Le device %s existe déjà en base\n" + +#: src/cats/sql_create.c:259 +#, c-format +msgid "Create db Device record %s failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:292 +#, c-format +msgid "More than one Storage record!: %d\n" +msgstr "" + +#: src/cats/sql_create.c:297 +#, c-format +msgid "error fetching Storage row: %s\n" +msgstr "" + +#: src/cats/sql_create.c:317 +#, c-format +msgid "Create DB Storage record %s failed. ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:349 +#, c-format +msgid "mediatype record %s already exists\n" +msgstr "" + +#: src/cats/sql_create.c:365 +#, c-format +msgid "Create db mediatype record %s failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:400 +#, c-format +msgid "Volume \"%s\" already exists.\n" +msgstr "Le volume « %s » existe déjà en base.\n" + +#: src/cats/sql_create.c:445 +#, c-format +msgid "Create DB Media record %s failed. ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:493 +#, c-format +msgid "More than one Client!: %d\n" +msgstr "" + +#: src/cats/sql_create.c:498 +#, c-format +msgid "error fetching Client row: %s\n" +msgstr "" + +#: src/cats/sql_create.c:525 +#, c-format +msgid "Create DB Client record %s failed. ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:568 +#, c-format +msgid "Create DB Counters record %s failed. ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:601 +#, c-format +msgid "More than one FileSet!: %d\n" +msgstr "" + +#: src/cats/sql_create.c:606 +#, c-format +msgid "error fetching FileSet row: ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:636 +#, c-format +msgid "Create DB FileSet record %s failed. ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:857 +#, fuzzy, c-format +msgid "Could not init batch database: \"%s\".\n" +msgstr "Impossible d'ouvrir la base de données « %s ».\n" + +#: src/cats/sql_create.c:864 +#, fuzzy, c-format +msgid "Could not open database \"%s\": ERR=%s\n" +msgstr "Impossible d'ouvrir la base de données « %s ».\n" + +#: src/cats/sql_create.c:886 src/cats/sql_create.c:927 +#, c-format +msgid "Attempt to put non-attributes into catalog. Stream=%d\n" +msgstr "" + +#: src/cats/sql_create.c:991 +#, c-format +msgid "Create db File record %s failed. ERR=%s" +msgstr "" + +#: src/cats/sql_create.c:1024 src/cats/sql_get.c:229 +#, c-format +msgid "More than one Path!: %s for path: %s\n" +msgstr "" + +#: src/cats/sql_create.c:1055 +#, c-format +msgid "Create db Path record %s failed. ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:1088 +#, c-format +msgid "More than one Filename! %s for file: %s\n" +msgstr "" + +#: src/cats/sql_create.c:1094 +#, c-format +msgid "Error fetching row for file=%s: ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:1110 +#, c-format +msgid "Create db Filename record %s failed. ERR=%s\n" +msgstr "" + +#: src/cats/sql_get.c:135 +#, c-format +msgid "get_file_record want 1 got rows=%d\n" +msgstr "" + +#: src/cats/sql_get.c:140 +#, c-format +msgid "Error fetching row: %s\n" +msgstr "" + +#: src/cats/sql_get.c:148 +#, c-format +msgid "File record for PathId=%s FilenameId=%s not found.\n" +msgstr "" + +#: src/cats/sql_get.c:154 +msgid "File record not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:179 +#, c-format +msgid "More than one Filename!: %s for file: %s\n" +msgstr "" + +#: src/cats/sql_get.c:189 +#, c-format +msgid "Get DB Filename record %s found bad record: %d\n" +msgstr "" + +#: src/cats/sql_get.c:195 +#, c-format +msgid "Filename record: %s not found.\n" +msgstr "" + +#: src/cats/sql_get.c:199 +#, c-format +msgid "Filename record: %s not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:240 +#, c-format +msgid "Get DB path record %s found bad record: %s\n" +msgstr "" + +#: src/cats/sql_get.c:253 +#, c-format +msgid "Path record: %s not found.\n" +msgstr "" + +#: src/cats/sql_get.c:257 +#, c-format +msgid "Path record: %s not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:294 +#, c-format +msgid "No Job found for JobId %s\n" +msgstr "" + +#: src/cats/sql_get.c:363 src/cats/sql_get.c:419 +#, c-format +msgid "No volumes found for JobId=%d\n" +msgstr "" + +#: src/cats/sql_get.c:369 src/cats/sql_get.c:430 +#, c-format +msgid "Error fetching row %d: ERR=%s\n" +msgstr "" + +#: src/cats/sql_get.c:383 +#, c-format +msgid "No Volume for JobId %d found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:520 +#, c-format +msgid "Pool id select failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_get.c:557 +#, c-format +msgid "Client id select failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_get.c:599 +#, c-format +msgid "More than one Pool!: %s\n" +msgstr "" + +#: src/cats/sql_get.c:641 +msgid "Pool record not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:675 +#, c-format +msgid "More than one Client!: %s\n" +msgstr "" + +#: src/cats/sql_get.c:692 src/cats/sql_get.c:696 +msgid "Client record not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:721 +#, c-format +msgid "More than one Counter!: %d\n" +msgstr "" + +#: src/cats/sql_get.c:726 +#, c-format +msgid "error fetching Counter row: %s\n" +msgstr "" + +#: src/cats/sql_get.c:746 +#, c-format +msgid "Counter record: %s not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:782 +#, c-format +msgid "Error got %s FileSets but expected only one!\n" +msgstr "" + +#: src/cats/sql_get.c:787 +#, c-format +msgid "FileSet record \"%s\" not found.\n" +msgstr "" + +#: src/cats/sql_get.c:797 +msgid "FileSet record not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:855 +#, c-format +msgid "Media id select failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_get.c:893 +#, fuzzy, c-format +msgid "query dbids failed: ERR=%s\n" +msgstr "fopen %s en erreur : ERR=%s\n" + +#: src/cats/sql_get.c:946 +#, c-format +msgid "More than one Volume!: %s\n" +msgstr "" + +#: src/cats/sql_get.c:1001 +#, c-format +msgid "Media record MediaId=%s not found.\n" +msgstr "" + +#: src/cats/sql_get.c:1004 +#, c-format +msgid "Media record for Volume \"%s\" not found.\n" +msgstr "" + +#: src/cats/sql_get.c:1011 +#, c-format +msgid "Media record for MediaId=%u not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:1014 +#, c-format +msgid "Media record for Vol=%s not found in Catalog.\n" +msgstr "" + +#: src/cats/postgresql.c:86 +msgid "A user name for PostgreSQL must be supplied.\n" +msgstr "Un nom d'utilisateur PostgreSQL doit être fourni.\n" + +#: src/cats/postgresql.c:149 +msgid "" +"PostgreSQL configuration problem. PostgreSQL library is not thread safe. " +"Connot continue.\n" +msgstr "" + +#: src/cats/postgresql.c:199 +#, c-format +msgid "" +"Unable to connect to PostgreSQL server.\n" +"Database=%s User=%s\n" +"It is probably not running or your password is incorrect.\n" +msgstr "" +"Impossible de se connecter au serveur PostgreSQL.\n" +"Base=%s Utilisateur=%s\n" +"Le serveur n'est pas démarré ou bien votre password est invalide.\n" + +#: src/cats/postgresql.c:300 +msgid "PQescapeStringConn returned non-zero.\n" +msgstr "" + +#: src/cats/postgresql.c:605 +#, c-format +msgid "error fetching currval: %s\n" +msgstr "" + +#: src/cats/postgresql.c:699 src/cats/postgresql.c:746 +#, c-format +msgid "error ending batch mode: %s\n" +msgstr "erreur en terminant le mode batch: %s\n" + +#: src/cats/bdb.c:161 +msgid "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n" +msgstr "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n" + +#: src/cats/bdb.c:162 +msgid "WARNING!!!! The Internal Database is NOT OPERATIONAL!\n" +msgstr "ATTENTION !!!! La base interne n'est pas OPÉRATIONNELLE !\n" + +#: src/cats/bdb.c:163 +msgid "You should use SQLite, PostgreSQL, or MySQL\n" +msgstr "Vous devez utiliser SQLite, PostgreSQL, ou MySQL\n" + +#: src/cats/bdb.c:195 +#, fuzzy, c-format +msgid "Unable to open Catalog DB control file %s: ERR=%s\n" +msgstr "Impossible de créer le fichier bootstrap %s. ERR=%s\n" + +#: src/cats/bdb.c:250 +#, fuzzy, c-format +msgid "Error reading catalog DB control file. ERR=%s\n" +msgstr "" +"Erreur pendant l'écriture des données vers le fichier de spool. ERR=%s\n" + +#: src/cats/bdb.c:253 +#, c-format +msgid "" +"Error, catalog DB control file wrong version. Wanted %d, got %d\n" +"Please reinitialize the working directory.\n" +msgstr "" + +#: src/cats/bdb_update.c:88 src/cats/bdb_update.c:119 +#, fuzzy, c-format +msgid "Error updating DB Job file. ERR=%s\n" +msgstr "" +"Erreur pendant l'écriture des données vers le fichier de spool. ERR=%s\n" + +#: src/cats/bdb_update.c:158 src/cats/bdb_update.c:194 +#, fuzzy, c-format +msgid "Error updating DB Media file. ERR=%s\n" +msgstr "Impossible de mettre à jour les informations du Volume : ERR=%s" + +#: src/cats/sql_list.c:62 +#, c-format +msgid "Query failed: %s\n" +msgstr "Erreur sur la requête : %s\n" + +#: src/wx-console/console_conf.c:156 src/console/console_conf.c:147 +#, c-format +msgid "Console: name=%s rcfile=%s histfile=%s\n" +msgstr "" + +#: src/wx-console/authenticate.c:142 src/console/authenticate.c:131 +msgid "TLS negotiation failed\n" +msgstr "" + +#: src/wx-console/authenticate.c:150 +#, fuzzy +msgid "Bad response to Hello command: ERR=" +msgstr "Mauvaise réponse à la commande Hello : ERR=%s\n" + +#: src/wx-console/authenticate.c:167 src/console/authenticate.c:160 +msgid "" +"Director authorization problem.\n" +"Most likely the passwords do not agree.\n" +"If you are using TLS, there may have been a certificate validation error " +"during the TLS handshake.\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" +"Problème d'authentification avec le director.\n" +"Le plus souvent, les mots de pass ne correspondent pas.\n" +"Si vous utilisez TLS, il peut y avoir une erreur de validation du " +"certificat\n" +"pendant l'initialisation de la connexion TLS.\n" +"Vous trouverez de l'aide sur\n" +"http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors\n" + +#: src/stored/fd_cmds.c:369 +msgid "Error parsing bootstrap file.\n" +msgstr "" + +#: src/stored/autochanger.c:66 +#, c-format +msgid "No Changer Name given for device %s. Cannot continue.\n" +msgstr "" + +#: src/stored/autochanger.c:72 +#, c-format +msgid "No Changer Command given for device %s. Cannot continue.\n" +msgstr "" + +#: src/stored/autochanger.c:85 +#, c-format +msgid "" +"Media Type not the same for all devices in changer %s. Cannot continue.\n" +msgstr "" + +#: src/stored/autochanger.c:149 +#, c-format +msgid "" +"Invalid slot=%d defined in catalog for Volume \"%s\" on %s. Manual load my " +"be required.\n" +msgstr "" + +#: src/stored/autochanger.c:154 +#, c-format +msgid "No \"Changer Device\" for %s. Manual load of Volume may be required.\n" +msgstr "" + +#: src/stored/autochanger.c:158 +#, c-format +msgid "No \"Changer Command\" for %s. Manual load of Volume may be requird.\n" +msgstr "" + +#: src/stored/autochanger.c:188 +#, c-format +msgid "3304 Issuing autochanger \"load slot %d, drive %d\" command.\n" +msgstr "" +"3304 Envoi de la commande « load slot %d, drive %d » à l'autochangeur.\n" + +#: src/stored/autochanger.c:196 +#, c-format +msgid "3305 Autochanger \"load slot %d, drive %d\", status is OK.\n" +msgstr "3305 Autochangeur « load slot %d, drive %d », le résultat est OK.\n" + +#: src/stored/autochanger.c:205 +#, c-format +msgid "" +"3992 Bad autochanger \"load slot %d, drive %d\": ERR=%s.\n" +"Results=%s\n" +msgstr "" +"3992 Erreur sur l'autochangeur « load slot %d, drive %d » : ERR=%s.\n" +"Resultat=%s\n" + +#: src/stored/autochanger.c:251 +msgid "3992 Missing Changer command.\n" +msgstr "" + +#: src/stored/autochanger.c:265 +#, c-format +msgid "3301 Issuing autochanger \"loaded? drive %d\" command.\n" +msgstr "3301 Envoi de la commande « loaded? drive %d » à l'autochangeur.\n" + +#: src/stored/autochanger.c:275 +#, c-format +msgid "3302 Autochanger \"loaded? drive %d\", result is Slot %d.\n" +msgstr "3302 Autochangeur « loaded drive %d », le resultat est Slot %d.\n" + +#: src/stored/autochanger.c:279 +#, c-format +msgid "3302 Autochanger \"loaded? drive %d\", result: nothing loaded.\n" +msgstr "3302 Autochangeur « loaded drive %d », résultat : lecteur vide.\n" + +#: src/stored/autochanger.c:286 +#, c-format +msgid "" +"3991 Bad autochanger \"loaded? drive %d\" command: ERR=%s.\n" +"Results=%s\n" +msgstr "" +"3991 Erreur sur l'autochangeur « loaded drive %d » : ERR=%s.\n" +"Resultat=%s\n" + +#: src/stored/autochanger.c:345 src/stored/autochanger.c:436 +#, c-format +msgid "3307 Issuing autochanger \"unload slot %d, drive %d\" command.\n" +msgstr "" +"3307 Envoi de la commande « unload slot %d, drive %d » à l'autochangeur.\n" + +#: src/stored/autochanger.c:359 +#, c-format +msgid "" +"3995 Bad autochanger \"unload slot %d, drive %d\": ERR=%s\n" +"Results=%s\n" +msgstr "" +"3995 Erreur sur l'autochangeur « unload slot %d, drive %d » : ERR=%s.\n" +"Resultat=%s\n" + +#: src/stored/autochanger.c:423 +#, c-format +msgid "Volume \"%s\" is in use by device %s\n" +msgstr "Le volume « %s » est utilisé par le device %s\n" + +#: src/stored/autochanger.c:458 +#, c-format +msgid "3995 Bad autochanger \"unload slot %d, drive %d\": ERR=%s.\n" +msgstr "" +"3995 Erreur sur l'autochangeur « unload slot %d, drive %d » : ERR=%s.\n" + +#: src/stored/autochanger.c:498 +#, c-format +msgid "3993 Device %s not an autochanger device.\n" +msgstr "3993 Le Device %s n'est pas un autochangeur.\n" + +#: src/stored/autochanger.c:519 +#, c-format +msgid "3306 Issuing autochanger \"%s\" command.\n" +msgstr "3306 Envoi de la commande « %s » à l'autochangeur.\n" + +#: src/stored/autochanger.c:522 +msgid "3996 Open bpipe failed.\n" +msgstr "" + +#: src/stored/autochanger.c:549 src/console/console.c:945 +#, c-format +msgid "Autochanger error: ERR=%s\n" +msgstr "Erreur sur l'autochangeur : ERR=%s\n" + +#: src/stored/stored.c:82 +#, fuzzy, c-format +msgid "" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: stored [options] [-c config_file] [config_file]\n" +" -c use as configuration file\n" +" -dnn set debug level to nn\n" +" -f run in foreground (for debugging)\n" +" -g set groupid to group\n" +" -p proceed despite I/O errors\n" +" -s no signals (for debugging)\n" +" -t test - read config and exit\n" +" -u userid to \n" +" -v verbose user messages\n" +" -? print this message.\n" +"\n" +msgstr "" +"Copyright (C) 2000-2005 Kern Sibbald.\n" +"\n" +"Version : %s (%s)\n" +"\n" +"Usage : dird [-f -s] [-c config_file] [-d debug_level] [config_file]\n" +" -c utilise fich comme fichier de configuration\n" +" -dnn positionne le niveau de debug à nn\n" +" -f reste en avant-plan (pour debugger)\n" +" -g groupid\n" +" -r lance maintenant\n" +" -s pas de signaux\n" +" -t test - lit seulement le fichier de configuration\n" +" -u userid\n" +" -v affiche les messages utilisateurs\n" +" -? affiche ce message.\n" +"\n" + +#: src/stored/stored.c:128 src/stored/btape.c:172 +#, c-format +msgid "Tape block size (%d) not multiple of system size (%d)\n" +msgstr "" + +#: src/stored/stored.c:132 src/stored/btape.c:176 +#, c-format +msgid "Tape block size (%d) is not a power of 2\n" +msgstr "" + +#: src/stored/stored.c:243 +msgid "Volume Session Time is ZERO!\n" +msgstr "" + +#: src/stored/stored.c:257 +#, c-format +msgid "Unable to create thread. ERR=%s\n" +msgstr "" + +#: src/stored/stored.c:289 src/stored/bscan.c:246 +#, c-format +msgid "No Storage resource defined in %s. Cannot continue.\n" +msgstr "" + +#: src/stored/stored.c:295 +#, c-format +msgid "Only one Storage resource permitted in %s\n" +msgstr "" + +#: src/stored/stored.c:300 +#, c-format +msgid "No Director resource defined in %s. Cannot continue.\n" +msgstr "" + +#: src/stored/stored.c:305 +#, c-format +msgid "No Device resource defined in %s. Cannot continue.\n" +msgstr "" + +#: src/stored/stored.c:313 +#, c-format +msgid "No Messages resource defined in %s. Cannot continue.\n" +msgstr "" + +#: src/stored/stored.c:320 src/stored/bscan.c:254 +#, c-format +msgid "No Working Directory defined in %s. Cannot continue.\n" +msgstr "" + +#: src/stored/stored.c:340 +#, c-format +msgid "\"TLS Certificate\" file not defined for Storage \"%s\" in %s.\n" +msgstr "" + +#: src/stored/stored.c:346 +#, c-format +msgid "\"TLS Key\" file not defined for Storage \"%s\" in %s.\n" +msgstr "" + +#: src/stored/stored.c:352 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Storage \"%s\" in %s. At least one CA certificate store is required when " +"using \"TLS Verify Peer\".\n" +msgstr "" + +#: src/stored/stored.c:484 +#, c-format +msgid "Could not initialize %s\n" +msgstr "Impossible d'initialiser %s\n" + +#: src/stored/stored.c:497 +#, c-format +msgid "Could not open device %s\n" +msgstr "Impossible d'ouvrir le device %s\n" + +#: src/stored/stored.c:510 +#, c-format +msgid "Could not mount device %s\n" +msgstr "Impossible de monter le device %s\n" + +#: src/stored/wait.c:127 +#, c-format +msgid "pthread timedwait error. ERR=%s\n" +msgstr "" + +#: src/stored/wait.c:227 +#, fuzzy, c-format +msgid "JobId=%s, Job %s waiting to reserve a device.\n" +msgstr "Le job %s est en attente de réservation d'un device.\n" + +#: src/stored/stored_conf.c:234 +#, c-format +msgid "Expected a Device Type keyword, got: %s" +msgstr "" + +#: src/stored/stored_conf.c:249 +#, c-format +msgid "Warning: no \"%s\" resource (%d) defined.\n" +msgstr "" + +#: src/stored/stored_conf.c:252 +#, c-format +msgid "dump_resource type=%d\n" +msgstr "" + +#: src/stored/stored_conf.c:368 +#, c-format +msgid "Warning: unknown resource type %d\n" +msgstr "" + +#: src/stored/stored_conf.c:557 +#, c-format +msgid "\"%s\" item is required in \"%s\" resource, but not found.\n" +msgstr "" + +#: src/stored/stored_conf.c:563 +#, c-format +msgid "Too many items in \"%s\" resource\n" +msgstr "Trop d'éléments dans la ressource « %s »\n" + +#: src/stored/stored_conf.c:597 +#, c-format +msgid "Cannot find AutoChanger resource %s\n" +msgstr "Impossible de trouver la ressource AutoChanger %s\n" + +#: src/stored/stored_conf.c:611 src/stored/dev.c:229 src/stored/dev.c:247 +#: src/stored/dev.c:254 src/lib/openssl.c:118 src/lib/openssl.c:179 +#, c-format +msgid "Unable to init mutex: ERR=%s\n" +msgstr "Impossible d'initialiser le muxtex : ERR=%s\n" + +#: src/stored/stored_conf.c:669 +#, c-format +msgid "" +"Attempt to define second \"%s\" resource named \"%s\" is not permitted.\n" +msgstr "" + +#: src/stored/pythonsd.c:210 +msgid "Error in ParseTuple\n" +msgstr "" + +#: src/stored/pythonsd.c:226 +msgid "Parse tuple error in job_write\n" +msgstr "" + +#: src/stored/pythonsd.c:263 +#, c-format +msgid "Error in Python method %s\n" +msgstr "" + +#: src/stored/read_record.c:83 +#, c-format +msgid "End of Volume at file %u on device %s, Volume \"%s\"\n" +msgstr "Fin de Volume au fichier %u sur le Device %s, Volume « %s »\n" + +#: src/stored/read_record.c:86 +msgid "End of all volumes.\n" +msgstr "Fin de tous les Volumes.\n" + +#: src/stored/read_record.c:129 +msgid "part" +msgstr "" + +#: src/stored/read_record.c:132 +msgid "file" +msgstr "" + +#: src/stored/read_record.c:135 +#, c-format +msgid "End of %s %u on device %s, Volume \"%s\"\n" +msgstr "Fin de %s %u sur le device %s, Volume « %s »\n" + +#: src/stored/read_record.c:149 +msgid "Did fsr in attemp to skip bad record.\n" +msgstr "" + +#: src/stored/read_record.c:342 +#, c-format +msgid "Reposition from (file:block) %u:%u to %u:%u\n" +msgstr "Repositionnement de (fichier:bloc) %u:%u à %u:%u\n" + +#: src/stored/read_record.c:370 +#, c-format +msgid "Forward spacing Volume \"%s\" to file:block %u:%u.\n" +msgstr "Postionnement en avant du Volume « %s » sur le fichier:bloc %u:%u.\n" + +#: src/stored/read_record.c:388 src/stored/bcopy.c:312 src/stored/bls.c:416 +msgid "Fresh Volume Label" +msgstr "" + +#: src/stored/read_record.c:391 src/stored/bcopy.c:315 src/stored/bls.c:419 +msgid "Volume Label" +msgstr "" + +#: src/stored/read_record.c:395 +msgid "Begin Session" +msgstr "" + +#: src/stored/read_record.c:399 +msgid "End Session" +msgstr "" + +#: src/stored/read_record.c:402 src/stored/label.c:1032 +msgid "End of Media" +msgstr "" + +#: src/stored/read_record.c:405 +#, c-format +msgid "Unknown code %d\n" +msgstr "" + +#: src/stored/read_record.c:409 src/stored/bcopy.c:337 src/stored/bls.c:440 +#, c-format +msgid "%s Record: VolSessionId=%d VolSessionTime=%d JobId=%d DataLen=%d\n" +msgstr "" + +#: src/stored/read.c:68 +msgid "No Volume names found for restore.\n" +msgstr "" + +#: src/stored/read.c:122 +#, c-format +msgid ">filed: Error Hdr=%s\n" +msgstr "" + +#: src/stored/read.c:123 src/stored/read.c:138 +#, c-format +msgid "Error sending to File daemon. ERR=%s\n" +msgstr "" + +#: src/stored/read.c:137 +#, c-format +msgid "Error sending to FD. ERR=%s\n" +msgstr "" + +#: src/stored/reserve.c:93 +#, fuzzy, c-format +msgid "Unable to initialize reservation lock. ERR=%s\n" +msgstr "Impossible d'initialiser le verrou sur la base. ERR=%s\n" + +#: src/stored/reserve.c:99 +#, fuzzy, c-format +msgid "Unable to initialize volume list lock. ERR=%s\n" +msgstr "Impossible d'initialiser le verrou sur la base. ERR=%s\n" + +#: src/stored/reserve.c:434 +#, c-format +msgid "Hey! num_writers=%d!!!!\n" +msgstr "" + +#: src/stored/reserve.c:649 +#, fuzzy +msgid "3939 Could not get dcr\n" +msgstr "Impossible de créer la structure BSOCK cliente.\n" + +#: src/stored/reserve.c:772 src/stored/reserve.c:783 +#, c-format +msgid "Failed command: %s\n" +msgstr "Erreur sur la commande : %s\n" + +#: src/stored/reserve.c:773 +#, c-format +msgid "" +"\n" +" Device \"%s\" with MediaType \"%s\" requested by DIR not found in SD " +"Device resources.\n" +msgstr "" + +#: src/stored/reserve.c:1076 src/stored/dircmd.c:596 +#, c-format +msgid "" +"\n" +" Device \"%s\" in changer \"%s\" requested by DIR could not be opened or " +"does not exist.\n" +msgstr "" + +#: src/stored/reserve.c:1080 src/stored/dircmd.c:574 +#, c-format +msgid "" +"\n" +" Device \"%s\" requested by DIR could not be opened or does not exist.\n" +msgstr "" + +#: src/stored/reserve.c:1092 +#, c-format +msgid "3926 Could not get dcr for device: %s\n" +msgstr "" + +#: src/stored/reserve.c:1207 +#, c-format +msgid "3601 JobId=%u device %s is BLOCKED due to user unmount.\n" +msgstr "" +"3601 JobId=%u device %s est BLOQUÉ car il a été demonté par l'utilisateur.\n" + +#: src/stored/reserve.c:1217 +#, c-format +msgid "3602 JobId=%u device %s is busy (already reading/writing).\n" +msgstr "3602 JobId=%u device %s est occupé (à lire ou écrire).\n" + +#: src/stored/reserve.c:1264 +#, c-format +msgid "3603 JobId=%u device %s is busy reading.\n" +msgstr "3603 JobId=%u device %s est occupé en lecture.\n" + +#: src/stored/reserve.c:1273 +#, c-format +msgid "3604 JobId=%u device %s is BLOCKED due to user unmount.\n" +msgstr "" +"3604 JobId=%u device %s est bloqué car il a été démonté par l'utilisateur " +"(unmount).\n" + +#: src/stored/reserve.c:1314 +#, fuzzy, c-format +msgid "" +"3608 JobId=%u wants Pool=\"%s\" but have Pool=\"%s\" nreserve=%d on drive %" +"s.\n" +msgstr "" +"3608 JobId=%u voulait le Pool=« %s », mais c'est le Pool=« %s » qui est dans " +"le drive %s.\n" + +#: src/stored/reserve.c:1336 +#, fuzzy, c-format +msgid "3610 JobId=%u Volume max jobs exceeded on drive %s.\n" +msgstr "" +"3607 JobId=%u voulait Vol=« %s », c'est le Vol=« %s » qui est dans le drive %" +"s.\n" + +#: src/stored/reserve.c:1391 +#, c-format +msgid "3605 JobId=%u wants free drive but device %s is busy.\n" +msgstr "" +"3605 JobId=%u voulait libérer le lecteur, mais le device %s est occupé.\n" + +#: src/stored/reserve.c:1399 +#, c-format +msgid "3606 JobId=%u prefers mounted drives, but drive %s has no Volume.\n" +msgstr "3606 JobId=%u voulait un lecteur monté, mais le lecteur %s est vide.\n" + +#: src/stored/reserve.c:1422 +#, c-format +msgid "3607 JobId=%u wants Vol=\"%s\" drive has Vol=\"%s\" on drive %s.\n" +msgstr "" +"3607 JobId=%u voulait Vol=« %s », c'est le Vol=« %s » qui est dans le drive %" +"s.\n" + +#: src/stored/reserve.c:1479 +#, c-format +msgid "Logic error!!!! JobId=%u Should not get here.\n" +msgstr "" + +#: src/stored/reserve.c:1480 +#, c-format +msgid "3910 JobId=%u Logic error!!!! drive %s Should not get here.\n" +msgstr "" + +#: src/stored/reserve.c:1483 +msgid "Logic error!!!! Should not get here.\n" +msgstr "" + +#: src/stored/reserve.c:1486 +#, c-format +msgid "3911 JobId=%u failed reserve drive %s.\n" +msgstr "" + +#: src/stored/bcopy.c:74 +#, fuzzy, c-format +msgid "" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: bcopy [-d debug_level] \n" +" -b bootstrap specify a bootstrap file\n" +" -c specify configuration file\n" +" -d set debug level to \n" +" -i specify input Volume names (separated by |)\n" +" -o specify output Volume names (separated by |)\n" +" -p proceed inspite of errors\n" +" -v verbose\n" +" -w specify working directory (default /tmp)\n" +" -? print this message\n" +"\n" +msgstr "" +"\n" +"Version : %s (%s)\n" +"\n" +"Usage : dird [-f -s] [-c config_file] [-d debug_level] [config_file]\n" +" -c utilise fich comme fichier de configuration\n" +" -dnn positionne le niveau de debug à nn\n" +" -f reste en avant-plan (pour debugger)\n" +" -g groupid\n" +" -r lance maintenant\n" +" -s pas de signaux\n" +" -t test - lit seulement le fichier de configuration\n" +" -u userid\n" +" -v affiche les messages utilisateurs\n" +" -? affiche ce message.\n" +"\n" + +#: src/stored/bcopy.c:159 src/stored/bextract.c:192 src/stored/bscan.c:233 +#: src/tools/bbatch.c:161 +msgid "Wrong number of arguments: \n" +msgstr "" + +#: src/stored/bcopy.c:199 src/stored/btape.c:368 src/stored/device.c:297 +#, c-format +msgid "dev open failed: %s\n" +msgstr "" + +#: src/stored/bcopy.c:214 +msgid "Write of last block failed.\n" +msgstr "" + +#: src/stored/bcopy.c:218 +#, c-format +msgid "%u Jobs copied. %u records copied.\n" +msgstr "" + +#: src/stored/bcopy.c:235 src/stored/bscan.c:408 +#, c-format +msgid "Record: SessId=%u SessTim=%u FileIndex=%d Stream=%d len=%u\n" +msgstr "" + +#: src/stored/bcopy.c:251 +msgid "Volume is prelabeled. This volume cannot be copied.\n" +msgstr "" + +#: src/stored/bcopy.c:254 +msgid "Volume label not copied.\n" +msgstr "" + +#: src/stored/bcopy.c:266 src/stored/bcopy.c:274 src/stored/bcopy.c:298 +#: src/stored/btape.c:2390 +#, c-format +msgid "Cannot fixup device error. %s\n" +msgstr "" + +#: src/stored/bcopy.c:280 +msgid "EOM label not copied.\n" +msgstr "" + +#: src/stored/bcopy.c:283 +msgid "EOT label not copied.\n" +msgstr "" + +#: src/stored/bcopy.c:319 src/stored/label.c:1026 src/stored/bls.c:423 +msgid "Begin Job Session" +msgstr "" + +#: src/stored/bcopy.c:323 src/stored/label.c:1029 src/stored/bls.c:427 +msgid "End Job Session" +msgstr "" + +#: src/stored/bcopy.c:328 src/stored/bls.c:431 +msgid "End of Medium" +msgstr "" + +#: src/stored/bcopy.c:331 src/stored/label.c:1038 src/stored/bls.c:434 +msgid "Unknown" +msgstr "" + +#: src/stored/bcopy.c:355 src/stored/bextract.c:494 src/stored/bls.c:459 +#: src/stored/bscan.c:1300 src/stored/btape.c:2689 +#, c-format +msgid "Mount Volume \"%s\" on device %s and press return when ready: " +msgstr "" + +#: src/stored/bextract.c:78 +#, fuzzy, c-format +msgid "" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: bextract \n" +" -b specify a bootstrap file\n" +" -c specify a configuration file\n" +" -d set debug level to \n" +" -e exclude list\n" +" -i include list\n" +" -p proceed inspite of I/O errors\n" +" -v verbose\n" +" -V specify Volume names (separated by |)\n" +" -? print this message\n" +"\n" +msgstr "" +"Copyright (C) 2000-2005 Kern Sibbald.\n" +"\n" +"Version : %s (%s)\n" +"\n" +"Usage : dird [-f -s] [-c config_file] [-d debug_level] [config_file]\n" +" -c utilise fich comme fichier de configuration\n" +" -dnn positionne le niveau de debug à nn\n" +" -f reste en avant-plan (pour debugger)\n" +" -g groupid\n" +" -r lance maintenant\n" +" -s pas de signaux\n" +" -t test - lit seulement le fichier de configuration\n" +" -u userid\n" +" -v affiche les messages utilisateurs\n" +" -? affiche ce message.\n" +"\n" + +#: src/stored/bextract.c:142 src/stored/bls.c:146 +#, c-format +msgid "Could not open exclude file: %s, ERR=%s\n" +msgstr "" + +#: src/stored/bextract.c:157 src/stored/bls.c:161 +#, c-format +msgid "Could not open include file: %s, ERR=%s\n" +msgstr "" + +#: src/stored/bextract.c:213 +#, c-format +msgid "%d Program Name and/or Program Data Stream records ignored.\n" +msgstr "" + +#: src/stored/bextract.c:217 +#, c-format +msgid "%d Win32 data or Win32 gzip data stream records. Ignored.\n" +msgstr "" + +#: src/stored/bextract.c:244 +#, c-format +msgid "Cannot stat %s. It must exist. ERR=%s\n" +msgstr "" + +#: src/stored/bextract.c:248 +#, c-format +msgid "%s must be a directory.\n" +msgstr "%s doit être un répertoire.\n" + +#: src/stored/bextract.c:269 +#, c-format +msgid "%u files restored.\n" +msgstr "%u fichiers restaurés.\n" + +#: src/stored/bextract.c:296 src/stored/bextract.c:469 +msgid "Logic error output file should be open but is not.\n" +msgstr "" + +#: src/stored/bextract.c:303 src/stored/bls.c:383 src/stored/bscan.c:666 +msgid "Cannot continue.\n" +msgstr "" + +#: src/stored/bextract.c:365 +#, c-format +msgid "Seek error on %s: %s\n" +msgstr "" + +#: src/stored/bextract.c:418 +#, c-format +msgid "Uncompression error. ERR=%d\n" +msgstr "Erreur de décompression. ERR=%d\n" + +#: src/stored/bextract.c:426 +msgid "===Write error===\n" +msgstr "===Erreur d'écriture===\n" + +#: src/stored/bextract.c:460 +msgid "Got Program Name or Data Stream. Ignored.\n" +msgstr "" + +#: src/stored/dvd.c:112 +msgid "No FreeSpace command defined.\n" +msgstr "" + +#: src/stored/dvd.c:146 +#, fuzzy, c-format +msgid "Cannot run free space command. Results=%s ERR=%s\n" +msgstr "Impossible de lancer la commande : %s. ERR=%s\n" + +#: src/stored/dvd.c:262 +#, fuzzy, c-format +msgid "Error writing part %d to the DVD: ERR=%s\n" +msgstr "Erreur dans l'exécution de la commande : %s. ERR=%s\n" + +#: src/stored/dvd.c:264 +#, c-format +msgid "Error while writing current part to the DVD: %s" +msgstr "" + +#: src/stored/dvd.c:274 +#, c-format +msgid "Part %d (%lld bytes) written to DVD.\n" +msgstr "" + +#: src/stored/dvd.c:293 +#, c-format +msgid "Remaining free space %s on %s\n" +msgstr "" + +#: src/stored/dvd.c:359 +#, c-format +msgid "Next Volume part already exists on DVD. Cannot continue: %s\n" +msgstr "" + +#: src/stored/dvd.c:378 +#, c-format +msgid "open_next_part can't unlink existing part %s, ERR=%s\n" +msgstr "" + +#: src/stored/dvd.c:579 +#, c-format +msgid "" +"Error writing. Current part less than total number of parts (%d/%d, device=%" +"s)\n" +msgstr "" + +#: src/stored/dvd.c:586 +#, fuzzy, c-format +msgid "Unable to write last on %s: ERR=%s\n" +msgstr "Impossible de se connecter à %s sur %s:%d. ERR=%s\n" + +#: src/stored/label.c:91 src/stored/label.c:131 src/stored/label.c:225 +#, c-format +msgid "Wrong Volume mounted on device %s: Wanted %s have %s\n" +msgstr "" + +#: src/stored/label.c:98 src/stored/label.c:134 src/stored/label.c:207 +#, c-format +msgid "Too many tries: %s" +msgstr "" + +#: src/stored/label.c:114 +#, c-format +msgid "Couldn't rewind device %s: ERR=%s\n" +msgstr "" + +#: src/stored/label.c:151 +#, c-format +msgid "" +"Requested Volume \"%s\" on %s is not a Bacula labeled Volume, because: ERR=%s" +msgstr "" + +#: src/stored/label.c:156 +msgid "Could not read Volume label from block.\n" +msgstr "Impossible de lire le label du Volume depuis le média.\n" + +#: src/stored/label.c:159 +#, c-format +msgid "Could not unserialize Volume label: ERR=%s\n" +msgstr "" + +#: src/stored/label.c:164 +#, c-format +msgid "Volume Header Id bad: %s\n" +msgstr "" + +#: src/stored/label.c:192 +#, c-format +msgid "Volume on %s has wrong Bacula version. Wanted %d got %d\n" +msgstr "" + +#: src/stored/label.c:203 +#, c-format +msgid "Volume on %s has bad Bacula label type: %x\n" +msgstr "Le volume sur %s possède un mauvais label Bacula : %x\n" + +#: src/stored/label.c:216 src/stored/label.c:402 +#, fuzzy, c-format +msgid "Could not reserve volume %s on %s\n" +msgstr "Impossible de trouver le prochain volume pour le Job %s.\n" + +#: src/stored/label.c:289 +#, c-format +msgid "Cannot write Volume label to block for device %s\n" +msgstr "Impossible d'écrire le label du Volume sur le Device %s\n" + +#: src/stored/label.c:449 +#, c-format +msgid "Rewind error on device %s: ERR=%s\n" +msgstr "" + +#: src/stored/label.c:455 +#, c-format +msgid "Truncate error on device %s: ERR=%s\n" +msgstr "" + +#: src/stored/label.c:461 +#, fuzzy, c-format +msgid "Failed to re-open DVD after truncate on device %s: ERR=%s\n" +msgstr "" +"Impossible de se positionner à la fin du média sur le device %s : ERR=%s\n" + +#: src/stored/label.c:484 +#, c-format +msgid "Unable to write device %s: ERR=%s\n" +msgstr "" + +#: src/stored/label.c:512 +#, c-format +msgid "Recycled volume \"%s\" on device %s, all previous data lost.\n" +msgstr "" +"Recyclage du volume « %s » sur le lecteur %s, les précédentes données sont " +"perdues.\n" + +#: src/stored/label.c:515 +#, c-format +msgid "Wrote label to prelabeled Volume \"%s\" on device %s\n" +msgstr "" +"Écriture du label sur le Volume pré-labélisé « %s » sur le lecteur %s\n" + +#: src/stored/label.c:719 +#, fuzzy, c-format +msgid "Bad Volume session label = %d\n" +msgstr "Le Volume n'a pas de label.\n" + +#: src/stored/label.c:774 +#, c-format +msgid "Expecting Volume Label, got FI=%s Stream=%s len=%d\n" +msgstr "" + +#: src/stored/label.c:901 +#, c-format +msgid "Unknown %d" +msgstr "" + +#: src/stored/label.c:905 +#, c-format +msgid "" +"\n" +"Volume Label:\n" +"Id : %sVerNo : %d\n" +"VolName : %s\n" +"PrevVolName : %s\n" +"VolFile : %d\n" +"LabelType : %s\n" +"LabelSize : %d\n" +"PoolName : %s\n" +"MediaType : %s\n" +"PoolType : %s\n" +"HostName : %s\n" +msgstr "" + +#: src/stored/label.c:927 +#, c-format +msgid "Date label written: %s\n" +msgstr "" + +#: src/stored/label.c:933 +#, c-format +msgid "Date label written: %04d-%02d-%02d at %02d:%02d\n" +msgstr "" + +#: src/stored/label.c:953 +#, c-format +msgid "" +"\n" +"%s Record:\n" +"JobId : %d\n" +"VerNum : %d\n" +"PoolName : %s\n" +"PoolType : %s\n" +"JobName : %s\n" +"ClientName : %s\n" +msgstr "" + +#: src/stored/label.c:966 +#, c-format +msgid "" +"Job (unique name) : %s\n" +"FileSet : %s\n" +"JobType : %c\n" +"JobLevel : %c\n" +msgstr "" + +#: src/stored/label.c:975 +#, c-format +msgid "" +"JobFiles : %s\n" +"JobBytes : %s\n" +"StartBlock : %s\n" +"EndBlock : %s\n" +"StartFile : %s\n" +"EndFile : %s\n" +"JobErrors : %s\n" +"JobStatus : %c\n" +msgstr "" + +#: src/stored/label.c:996 +#, c-format +msgid "Date written : %s\n" +msgstr "" + +#: src/stored/label.c:1001 +#, c-format +msgid "Date written : %04d-%02d-%02d at %02d:%02d\n" +msgstr "" + +#: src/stored/label.c:1020 +msgid "Fresh Volume" +msgstr "" + +#: src/stored/label.c:1023 +msgid "Volume" +msgstr "" + +#: src/stored/label.c:1035 +msgid "End of Tape" +msgstr "" + +#: src/stored/label.c:1055 src/stored/label.c:1063 src/stored/label.c:1096 +#, c-format +msgid "%s Record: File:blk=%u:%u SessId=%d SessTime=%d JobId=%d DataLen=%d\n" +msgstr "" + +#: src/stored/label.c:1060 +msgid "End of physical tape.\n" +msgstr "" + +#: src/stored/label.c:1075 src/stored/label.c:1084 +#, c-format +msgid "%s Record: File:blk=%u:%u SessId=%d SessTime=%d JobId=%d\n" +msgstr "" + +#: src/stored/label.c:1077 +#, c-format +msgid " Job=%s Date=%s Level=%c Type=%c\n" +msgstr "" + +#: src/stored/label.c:1086 +#, c-format +msgid " Date=%s Level=%c Type=%c Files=%s Bytes=%s Errors=%d Status=%c\n" +msgstr "" + +#: src/stored/parse_bsr.c:118 src/stored/parse_bsr.c:122 +#, c-format +msgid "" +"Bootstrap file error: %s\n" +" : Line %d, col %d of file %s\n" +"%s\n" +msgstr "" + +#: src/stored/parse_bsr.c:144 +#, c-format +msgid "Cannot open bootstrap file %s: %s\n" +msgstr "" + +#: src/stored/parse_bsr.c:274 +#, c-format +msgid "MediaType %s in bsr at inappropriate place.\n" +msgstr "" + +#: src/stored/parse_bsr.c:295 +#, c-format +msgid "Device \"%s\" in bsr at inappropriate place.\n" +msgstr "" + +#: src/stored/parse_bsr.c:452 +msgid "JobType not yet implemented\n" +msgstr "" + +#: src/stored/parse_bsr.c:460 +msgid "JobLevel not yet implemented\n" +msgstr "" + +#: src/stored/parse_bsr.c:643 +#, c-format +msgid "Slot %d in bsr at inappropriate place.\n" +msgstr "" + +#: src/stored/parse_bsr.c:667 +#, c-format +msgid "VolFile : %u-%u\n" +msgstr "" + +#: src/stored/parse_bsr.c:675 +#, c-format +msgid "VolBlock : %u-%u\n" +msgstr "" + +#: src/stored/parse_bsr.c:685 +#, c-format +msgid "FileIndex : %u\n" +msgstr "" + +#: src/stored/parse_bsr.c:687 +#, c-format +msgid "FileIndex : %u-%u\n" +msgstr "" + +#: src/stored/parse_bsr.c:697 +#, c-format +msgid "JobId : %u\n" +msgstr "" + +#: src/stored/parse_bsr.c:699 +#, c-format +msgid "JobId : %u-%u\n" +msgstr "" + +#: src/stored/parse_bsr.c:709 +#, c-format +msgid "SessId : %u\n" +msgstr "" + +#: src/stored/parse_bsr.c:711 +#, c-format +msgid "SessId : %u-%u\n" +msgstr "" + +#: src/stored/parse_bsr.c:720 +#, c-format +msgid "VolumeName : %s\n" +msgstr "" + +#: src/stored/parse_bsr.c:721 +#, c-format +msgid " MediaType : %s\n" +msgstr "" + +#: src/stored/parse_bsr.c:722 +#, c-format +msgid " Device : %s\n" +msgstr "" + +#: src/stored/parse_bsr.c:723 +#, c-format +msgid " Slot : %d\n" +msgstr "" + +#: src/stored/parse_bsr.c:732 +#, c-format +msgid "Client : %s\n" +msgstr "" + +#: src/stored/parse_bsr.c:740 +#, c-format +msgid "Job : %s\n" +msgstr "" + +#: src/stored/parse_bsr.c:748 +#, c-format +msgid "SessTime : %u\n" +msgstr "" + +#: src/stored/parse_bsr.c:759 +msgid "BSR is NULL\n" +msgstr "" + +#: src/stored/parse_bsr.c:763 +#, c-format +msgid "Next : 0x%x\n" +msgstr "" + +#: src/stored/parse_bsr.c:764 +#, c-format +msgid "Root bsr : 0x%x\n" +msgstr "" + +#: src/stored/parse_bsr.c:775 +#, c-format +msgid "count : %u\n" +msgstr "" + +#: src/stored/parse_bsr.c:776 +#, c-format +msgid "found : %u\n" +msgstr "" + +#: src/stored/parse_bsr.c:779 +#, c-format +msgid "done : %s\n" +msgstr "" + +#: src/stored/parse_bsr.c:780 +#, c-format +msgid "positioning : %d\n" +msgstr "" + +#: src/stored/parse_bsr.c:781 +#, c-format +msgid "fast_reject : %d\n" +msgstr "" + +#: src/stored/bls.c:78 +#, fuzzy, c-format +msgid "" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: bls [options] \n" +" -b specify a bootstrap file\n" +" -c specify a config file\n" +" -d set debug level to \n" +" -e exclude list\n" +" -i include list\n" +" -j list jobs\n" +" -k list blocks\n" +" (no j or k option) list saved files\n" +" -L dump label\n" +" -p proceed inspite of errors\n" +" -v be verbose\n" +" -V specify Volume names (separated by |)\n" +" -? print this message\n" +"\n" +msgstr "" +"Copyright (C) 2000-2005 Kern Sibbald.\n" +"\n" +"Version : %s (%s)\n" +"\n" +"Usage : dird [-f -s] [-c config_file] [-d debug_level] [config_file]\n" +" -c utilise fich comme fichier de configuration\n" +" -dnn positionne le niveau de debug à nn\n" +" -f reste en avant-plan (pour debugger)\n" +" -g groupid\n" +" -r lance maintenant\n" +" -s pas de signaux\n" +" -t test - lit seulement le fichier de configuration\n" +" -u userid\n" +" -v affiche les messages utilisateurs\n" +" -? affiche ce message.\n" +"\n" + +#: src/stored/bls.c:208 +msgid "No archive name specified\n" +msgstr "" + +#: src/stored/bls.c:243 +#, c-format +msgid "" +"\n" +"Warning, this Volume is a continuation of Volume %s\n" +msgstr "" + +#: src/stored/bls.c:286 +#, c-format +msgid "Got EOM at file %u on device %s, Volume \"%s\"\n" +msgstr "" + +#: src/stored/bls.c:297 +#, c-format +msgid "Mounted Volume \"%s\".\n" +msgstr "" + +#: src/stored/bls.c:299 +#, c-format +msgid "End of file %u on device %s, Volume \"%s\"\n" +msgstr "" + +#: src/stored/bls.c:323 +#, c-format +msgid "" +"File:blk=%u:%u blk_num=%u blen=%u First rec FI=%s SessId=%u SessTim=%u Strm=%" +"s rlen=%d\n" +msgstr "" + +#: src/stored/bls.c:332 +#, c-format +msgid "Block: %d size=%d\n" +msgstr "Bloc : %d taille=%d\n" + +#: src/stored/bls.c:399 +#, c-format +msgid "FileIndex=%d VolSessionId=%d VolSessionTime=%d Stream=%d DataLen=%d\n" +msgstr "" + +#: src/stored/status.c:120 +msgid "" +"\n" +"Device status:\n" +msgstr "" +"\n" +"Statut du Device :\n" + +#: src/stored/status.c:124 +#, c-format +msgid "Autochanger \"%s\" with devices:\n" +msgstr "Autochangeur « %s » avec les Devices :\n" + +#: src/stored/status.c:142 +#, fuzzy, c-format +msgid "" +"Device %s is mounted with:\n" +" Volume: %s\n" +" Pool: %s\n" +" Media type: %s\n" +msgstr "" +"Le Job %s est en attente. Bacula n'a pas pu trouver de media disponible.\n" +"Merci de créer un nouveau volume via la commande « label » pour :\n" +" Storage : %s\n" +" Type du Media : %s\n" +" Pool : %s\n" + +#: src/stored/status.c:152 +#, c-format +msgid "Device %s open but no Bacula volume is currently mounted.\n" +msgstr "Le Device %s est ouvert, mais il n'y a pas de Volume Bacula monté.\n" + +#: src/stored/status.c:163 +#, c-format +msgid " Total Bytes=%s Blocks=%s Bytes/block=%s\n" +msgstr " Total Octets=%s Blocs=%s Octets/Bloc=%s\n" + +#: src/stored/status.c:178 +#, c-format +msgid " Total Bytes Read=%s Blocks Read=%s Bytes/block=%s\n" +msgstr " Total des Octets lu=%s Blocs lu=%s Octets/Bloc=%s\n" + +#: src/stored/status.c:184 +#, c-format +msgid " Positioned at File=%s Block=%s\n" +msgstr " Positionné sur Fichier=%s Bloc=%s\n" + +#: src/stored/status.c:191 +#, c-format +msgid "Device %s is not open.\n" +msgstr "Le Device %s n'est pas ouvert.\n" + +#: src/stored/status.c:195 +#, c-format +msgid "Device \"%s\" is not open or does not exist.\n" +msgstr "Le Device « %s » n'est pas ouvert ou il n'existe pas.\n" + +#: src/stored/status.c:201 +msgid "In Use Volume status:\n" +msgstr "Volume en cours d'utilisation :\n" + +#: src/stored/status.c:208 src/stored/status.c:210 +msgid "" +"====\n" +"\n" +msgstr "" +"====\n" +"\n" + +#: src/stored/status.c:227 +msgid "" +"No DEVICE structure.\n" +"\n" +msgstr "" + +#: src/stored/status.c:234 +msgid " Device is BLOCKED. User unmounted.\n" +msgstr " Le Device est BLOQUÉ. Démonté par l'utilisateur.\n" + +#: src/stored/status.c:238 +msgid " Device is BLOCKED. User unmounted during wait for media/mount.\n" +msgstr "" +" Le Device est BLOQUÉ. Démonté par l'utilisateur à cause d'un chargement " +"de média.\n" + +#: src/stored/status.c:250 +#, fuzzy, c-format +msgid "" +" Device is BLOCKED waiting for mount of volume \"%s\",\n" +" Pool: %s\n" +" Media type: %s\n" +msgstr " Le Device est BLOQUÉ en attente du montage du volume « %s ».\n" + +#: src/stored/status.c:259 +#, c-format +msgid "" +" Device is BLOCKED waiting to create a volume for:\n" +" Pool: %s\n" +" Media type: %s\n" +msgstr "" + +#: src/stored/status.c:271 +msgid " Device is BLOCKED waiting for media.\n" +msgstr " Le Device est BLOQUÉ en attente d'un média.\n" + +#: src/stored/status.c:277 +msgid " Device is being initialized.\n" +msgstr " Le Device est en cours d'initialisation.\n" + +#: src/stored/status.c:281 +msgid " Device is blocked labeling a Volume.\n" +msgstr " Le Device est occupé à labéliser un Volume.\n" + +#: src/stored/status.c:290 +#, c-format +msgid " Slot %d is loaded in drive %d.\n" +msgstr " Le slot %d est chargé dans le lecteur %d.\n" + +#: src/stored/status.c:294 +#, c-format +msgid " Drive %d is not loaded.\n" +msgstr " Le lecteur %d n'est pas chargé.\n" + +#: src/stored/status.c:297 +#, c-format +msgid " Drive %d status unknown.\n" +msgstr " Le statut du lecteur %d est inconnu.\n" + +#: src/stored/status.c:302 src/stored/btape.c:584 +#, c-format +msgid "Configured device capabilities:\n" +msgstr "" + +#: src/stored/status.c:320 +msgid "Device state:\n" +msgstr "" + +#: src/stored/status.c:338 +#, c-format +msgid "" +"num_writers=%d block=%d\n" +"\n" +msgstr "" + +#: src/stored/status.c:341 src/stored/btape.c:616 +#, c-format +msgid "Device parameters:\n" +msgstr "" + +#: src/stored/status.c:344 +#, c-format +msgid "Archive name: %s Device name: %s\n" +msgstr "" + +#: src/stored/status.c:348 +#, c-format +msgid "File=%u block=%u\n" +msgstr "Fichier=%u bloc=%u\n" + +#: src/stored/status.c:351 +#, c-format +msgid "Min block=%u Max block=%u\n" +msgstr "Min bloc=%u Max bloc=%u\n" + +#: src/stored/status.c:375 +#, c-format +msgid "%s Job %s waiting for Client connection.\n" +msgstr "%s Job %s est en attente de la connexion du Client.\n" + +#: src/stored/status.c:391 +#, fuzzy, c-format +msgid "" +"Reading: %s %s job %s JobId=%d Volume=\"%s\"\n" +" pool=\"%s\" device=%s\n" +msgstr "" +"Lecture : %s %s job %s JobId=%d Volume=« %s »\n" +" pool=« %s » device=« %s »\n" + +#: src/stored/status.c:404 +#, fuzzy, c-format +msgid "" +"Writing: %s %s job %s JobId=%d Volume=\"%s\"\n" +" pool=\"%s\" device=%s\n" +msgstr "" +"Ecriture : %s %s job %s JobId=%d Volume=« %s »\n" +" pool=« %s » device=« %s »\n" + +#: src/stored/status.c:415 +#, c-format +msgid " spooling=%d despooling=%d despool_wait=%d\n" +msgstr "" + +#: src/stored/status.c:424 +#, c-format +msgid " Files=%s Bytes=%s Bytes/sec=%s\n" +msgstr "" + +#: src/stored/status.c:432 +#, c-format +msgid " FDReadSeqNo=%s in_msg=%u out_msg=%d fd=%d\n" +msgstr "" + +#: src/stored/status.c:438 +msgid " FDSocket closed\n" +msgstr "" + +#: src/stored/status.c:460 +msgid "" +"\n" +"Jobs waiting to reserve a drive:\n" +msgstr "" +"\n" +"Jobs en attente de réservation de lecteur :\n" + +#: src/stored/status.c:491 +msgid "===================================================================\n" +msgstr "===================================================================\n" + +#: src/stored/status.c:637 +msgid "3900 Bad .status command, missing argument.\n" +msgstr "" + +#: src/stored/status.c:660 +msgid "3900 Bad .status command, wrong argument.\n" +msgstr "" + +#: src/stored/status.c:674 +msgid "Bacula Storage: Idle" +msgstr "Bacula Storage : En attente" + +#: src/stored/status.c:685 +msgid "Bacula Storage: Running" +msgstr "Bacula Storage : En cours" + +#: src/stored/status.c:699 +msgid "Bacula Storage: Last Job Canceled" +msgstr "Bacula Storage : Dernier Job annulé" + +#: src/stored/status.c:703 +msgid "Bacula Storage: Last Job Failed" +msgstr "Bacula Storage : Dernier Job en erreur" + +#: src/stored/status.c:707 +msgid "Bacula Storage: Last Job had Warnings" +msgstr "Bacula Storage : Le dernier Job avait des erreurs" + +#: src/stored/bscan.c:115 +#, fuzzy, c-format +msgid "" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: bscan [ options ] \n" +" -b bootstrap specify a bootstrap file\n" +" -c specify configuration file\n" +" -d set debug level to \n" +" -m update media info in database\n" +" -n specify the database name (default bacula)\n" +" -u specify database user name (default bacula)\n" +" -P specify database password (default none)\n" +" -h specify database host (default NULL)\n" +" -p proceed inspite of I/O errors\n" +" -r list records\n" +" -s synchronize or store in database\n" +" -S show scan progress periodically\n" +" -v verbose\n" +" -V specify Volume names (separated by |)\n" +" -w specify working directory (default from conf file)\n" +" -? print this message\n" +"\n" +msgstr "" +"Copyright (C) 2000-2005 Kern Sibbald.\n" +"\n" +"Version : %s (%s)\n" +"\n" +"Usage : dird [-f -s] [-c config_file] [-d debug_level] [config_file]\n" +" -c utilise fich comme fichier de configuration\n" +" -dnn positionne le niveau de debug à nn\n" +" -f reste en avant-plan (pour debugger)\n" +" -g groupid\n" +" -r lance maintenant\n" +" -s pas de signaux\n" +" -t test - lit seulement le fichier de configuration\n" +" -u userid\n" +" -v affiche les messages utilisateurs\n" +" -? affiche ce message.\n" +"\n" + +#: src/stored/bscan.c:262 +#, c-format +msgid "Working Directory: %s not found. Cannot continue.\n" +msgstr "" + +#: src/stored/bscan.c:266 +#, c-format +msgid "Working Directory: %s is not a directory. Cannot continue.\n" +msgstr "" + +#: src/stored/bscan.c:280 src/stored/bscan.c:355 +#, c-format +msgid "First Volume Size = %sn" +msgstr "" + +#: src/stored/bscan.c:286 src/tools/bbatch.c:196 +msgid "Could not init Bacula database\n" +msgstr "" + +#: src/stored/bscan.c:293 src/tools/bbatch.c:203 +#, c-format +msgid "Using Database: %s, User: %s\n" +msgstr "" + +#: src/stored/bscan.c:328 +#, c-format +msgid "Create JobMedia for Job %s\n" +msgstr "" + +#: src/stored/bscan.c:337 +#, c-format +msgid "Could not create JobMedia record for Volume=%s Job=%s\n" +msgstr "" + +#: src/stored/bscan.c:400 +#, c-format +msgid "done: %d%%\n" +msgstr "" + +#: src/stored/bscan.c:424 +msgid "Volume is prelabeled. This tape cannot be scanned.\n" +msgstr "" + +#: src/stored/bscan.c:436 +#, c-format +msgid "Pool record for %s found in DB.\n" +msgstr "" + +#: src/stored/bscan.c:440 +#, c-format +msgid "VOL_LABEL: Pool record not found for Pool: %s\n" +msgstr "" + +#: src/stored/bscan.c:446 +#, c-format +msgid "VOL_LABEL: PoolType mismatch. DB=%s Vol=%s\n" +msgstr "" + +#: src/stored/bscan.c:450 +#, c-format +msgid "Pool type \"%s\" is OK.\n" +msgstr "" + +#: src/stored/bscan.c:460 +#, c-format +msgid "Media record for %s found in DB.\n" +msgstr "" + +#: src/stored/bscan.c:467 +#, c-format +msgid "VOL_LABEL: Media record not found for Volume: %s\n" +msgstr "" + +#: src/stored/bscan.c:474 +#, c-format +msgid "VOL_LABEL: MediaType mismatch. DB=%s Vol=%s\n" +msgstr "" + +#: src/stored/bscan.c:478 +#, c-format +msgid "Media type \"%s\" is OK.\n" +msgstr "" + +#: src/stored/bscan.c:488 +#, c-format +msgid "VOL_LABEL: OK for Volume: %s\n" +msgstr "" + +#: src/stored/bscan.c:495 +#, c-format +msgid "%d \"errors\" ignored before first Start of Session record.\n" +msgstr "" + +#: src/stored/bscan.c:506 +#, c-format +msgid "SOS_LABEL: Found Job record for JobId: %d\n" +msgstr "" + +#: src/stored/bscan.c:511 +#, c-format +msgid "SOS_LABEL: Job record not found for JobId: %d\n" +msgstr "" + +#: src/stored/bscan.c:551 +#, c-format +msgid "SOS_LABEL: VolSessId mismatch for JobId=%u. DB=%d Vol=%d\n" +msgstr "" + +#: src/stored/bscan.c:557 +#, c-format +msgid "SOS_LABEL: VolSessTime mismatch for JobId=%u. DB=%d Vol=%d\n" +msgstr "" + +#: src/stored/bscan.c:563 +#, c-format +msgid "SOS_LABEL: PoolId mismatch for JobId=%u. DB=%d Vol=%d\n" +msgstr "" + +#: src/stored/bscan.c:581 src/stored/bscan.c:1093 +#, c-format +msgid "Could not find SessId=%d SessTime=%d for EOS record.\n" +msgstr "" + +#: src/stored/bscan.c:625 +#, c-format +msgid "Could not update job record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:636 +#, c-format +msgid "End of all Volumes. VolFiles=%u VolBlocks=%u VolBytes=%s\n" +msgstr "" + +#: src/stored/bscan.c:648 +#, c-format +msgid "Could not find Job for SessId=%d SessTime=%d record.\n" +msgstr "" + +#: src/stored/bscan.c:684 +#, c-format +msgid "%s file records. At file:blk=%s:%s bytes=%s\n" +msgstr "" + +#: src/stored/bscan.c:738 +#, c-format +msgid "Got MD5 record: %s\n" +msgstr "" + +#: src/stored/bscan.c:746 +#, c-format +msgid "Got SHA1 record: %s\n" +msgstr "" + +#: src/stored/bscan.c:754 +#, c-format +msgid "Got SHA256 record: %s\n" +msgstr "" + +#: src/stored/bscan.c:762 +#, c-format +msgid "Got SHA512 record: %s\n" +msgstr "" + +#: src/stored/bscan.c:770 src/stored/bscan.c:777 +msgid "Got signed digest record\n" +msgstr "" + +#: src/stored/bscan.c:783 +#, c-format +msgid "Got Prog Names Stream: %s\n" +msgstr "" + +#: src/stored/bscan.c:789 +msgid "Got Prog Data Stream record.\n" +msgstr "" + +#: src/stored/bscan.c:799 +#, c-format +msgid "Unknown stream type!!! stream=%d len=%i\n" +msgstr "" + +#: src/stored/bscan.c:863 +#, c-format +msgid "Could not create File Attributes record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:869 +#, c-format +msgid "Created File record: %s\n" +msgstr "" + +#: src/stored/bscan.c:913 +#, c-format +msgid "Could not create media record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:917 src/stored/bscan.c:938 +#, c-format +msgid "Could not update media record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:921 +#, c-format +msgid "Created Media record for Volume: %s\n" +msgstr "" + +#: src/stored/bscan.c:942 +#, c-format +msgid "Updated Media record at end of Volume: %s\n" +msgstr "" + +#: src/stored/bscan.c:959 +#, c-format +msgid "Could not create pool record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:963 +#, c-format +msgid "Created Pool record for Pool: %s\n" +msgstr "" + +#: src/stored/bscan.c:982 +#, fuzzy, c-format +msgid "Could not get Client record. ERR=%s\n" +msgstr "Impossible d'initialiser la queue cliente : ERR=%s\n" + +#: src/stored/bscan.c:992 +#, c-format +msgid "Created Client record for Client: %s\n" +msgstr "" + +#: src/stored/bscan.c:1009 +#, c-format +msgid "Fileset \"%s\" already exists.\n" +msgstr "" + +#: src/stored/bscan.c:1013 +#, c-format +msgid "Could not create FileSet record \"%s\". ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:1018 +#, c-format +msgid "Created FileSet record \"%s\"\n" +msgstr "" + +#: src/stored/bscan.c:1065 +#, c-format +msgid "Could not create JobId record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:1071 +#, c-format +msgid "Could not update job start record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:1074 +#, c-format +msgid "Created new JobId=%u record for original JobId=%u\n" +msgstr "" + +#: src/stored/bscan.c:1124 +#, c-format +msgid "Could not update JobId=%u record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:1129 +#, c-format +msgid "Updated Job termination record for JobId=%u Level=%s TermStat=%c\n" +msgstr "" + +#: src/stored/bscan.c:1151 +#, c-format +msgid "Job Termination code: %d" +msgstr "" + +#: src/stored/bscan.c:1156 +#, c-format +msgid "" +"%s\n" +"JobId: %d\n" +"Job: %s\n" +"FileSet: %s\n" +"Backup Level: %s\n" +"Client: %s\n" +"Start time: %s\n" +"End time: %s\n" +"Files Written: %s\n" +"Bytes Written: %s\n" +"Volume Session Id: %d\n" +"Volume Session Time: %d\n" +"Last Volume Bytes: %s\n" +"Termination: %s\n" +"\n" +msgstr "" + +#: src/stored/bscan.c:1214 +#, c-format +msgid "Could not create JobMedia record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:1218 +#, c-format +msgid "Created JobMedia record JobId %d, MediaId %d\n" +msgstr "" + +#: src/stored/bscan.c:1234 +#, c-format +msgid "Could not find SessId=%d SessTime=%d for MD5/SHA1 record.\n" +msgstr "" + +#: src/stored/bscan.c:1248 +#, c-format +msgid "Could not add MD5/SHA1 to File record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:1253 +msgid "Updated MD5/SHA1 record\n" +msgstr "" + +#: src/stored/lock.c:217 +#, fuzzy, c-format +msgid "pthread_cond_wait failure. ERR=%s\n" +msgstr "Erreur sur l'ouverture du périphérique. ERR=%s\n" + +#: src/stored/lock.c:313 +#, fuzzy +msgid "unknown blocked code" +msgstr "source inconnue" + +#: src/stored/btape.c:179 +#, c-format +msgid "" +"\n" +"\n" +"!!!! Warning large disk addressing disabled. boffset_t=%d should be 8 or " +"more !!!!!\n" +"\n" +"\n" +msgstr "" + +#: src/stored/btape.c:186 +#, c-format +msgid "32 bit printf/scanf problem. i=%d x32=%u y32=%u\n" +msgstr "" + +#: src/stored/btape.c:195 +msgid "64 bit printf/scanf problem. i=%d x64=%" +msgstr "" + +#: src/stored/btape.c:200 +#, c-format +msgid "Tape block granularity is %d bytes.\n" +msgstr "" + +#: src/stored/btape.c:273 +msgid "No archive name specified.\n" +msgstr "" + +#: src/stored/btape.c:277 +msgid "Improper number of arguments specified.\n" +msgstr "" + +#: src/stored/btape.c:291 +msgid "btape does not work with DVD storage.\n" +msgstr "" + +#: src/stored/btape.c:296 +msgid "btape only works with tape storage.\n" +msgstr "" + +#: src/stored/btape.c:372 +#, c-format +msgid "open device %s: OK\n" +msgstr "" + +#: src/stored/btape.c:395 +msgid "Enter Volume Name: " +msgstr "Saisissez un nom de Volume : " + +#: src/stored/btape.c:402 +#, c-format +msgid "Device open failed. ERR=%s\n" +msgstr "Erreur sur l'ouverture du périphérique. ERR=%s\n" + +#: src/stored/btape.c:408 +#, c-format +msgid "Wrote Volume label for volume \"%s\".\n" +msgstr "" + +#: src/stored/btape.c:422 +msgid "Volume has no label.\n" +msgstr "Le Volume n'a pas de label.\n" + +#: src/stored/btape.c:425 +msgid "Volume label read correctly.\n" +msgstr "" + +#: src/stored/btape.c:428 +#, c-format +msgid "I/O error on device: ERR=%s" +msgstr "" + +#: src/stored/btape.c:431 +msgid "Volume name error\n" +msgstr "" + +#: src/stored/btape.c:434 +#, c-format +msgid "Error creating label. ERR=%s" +msgstr "" + +#: src/stored/btape.c:437 +msgid "Volume version error.\n" +msgstr "" + +#: src/stored/btape.c:440 +msgid "Bad Volume label type.\n" +msgstr "" + +#: src/stored/btape.c:443 +msgid "Unknown error.\n" +msgstr "" + +#: src/stored/btape.c:461 +#, c-format +msgid "Bad status from load. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:463 +#, c-format +msgid "Loaded %s\n" +msgstr "" + +#: src/stored/btape.c:472 src/stored/btape.c:811 src/stored/btape.c:853 +#: src/stored/btape.c:923 src/stored/btape.c:965 src/stored/btape.c:1233 +#, c-format +msgid "Bad status from rewind. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:475 src/stored/btape.c:1241 +#, c-format +msgid "Rewound %s\n" +msgstr "" + +#: src/stored/btape.c:501 src/stored/btape.c:1245 +#, c-format +msgid "Bad status from weof. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:505 +#, c-format +msgid "Wrote 1 EOF to %s\n" +msgstr "" + +#: src/stored/btape.c:508 +#, c-format +msgid "Wrote %d EOFs to %s\n" +msgstr "" + +#: src/stored/btape.c:526 +msgid "Moved to end of medium.\n" +msgstr "" + +#: src/stored/btape.c:553 +#, c-format +msgid "Bad status from bsf. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:555 +#, c-format +msgid "Backspaced %d file%s.\n" +msgstr "" + +#: src/stored/btape.c:572 +#, c-format +msgid "Bad status from bsr. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:574 +#, c-format +msgid "Backspaced %d record%s.\n" +msgstr "" + +#: src/stored/btape.c:602 +#, c-format +msgid "Device status:\n" +msgstr "" + +#: src/stored/btape.c:621 +#, c-format +msgid "Status:\n" +msgstr "Statut :\n" + +#: src/stored/btape.c:636 +msgid "" +"Test writting larger and larger records.\n" +"This is a torture test for records.\n" +"I am going to write\n" +"larger and larger records. It will stop when the record size\n" +"plus the header exceeds the block size (by default about 64K)\n" +msgstr "" + +#: src/stored/btape.c:642 +msgid "Do you want to continue? (y/n): " +msgstr "Voulez vous continuer ? (y/n) : " + +#: src/stored/btape.c:644 src/stored/btape.c:1861 +msgid "Command aborted.\n" +msgstr "Commande annulée.\n" + +#: src/stored/btape.c:660 +#, c-format +msgid "Block %d i=%d\n" +msgstr "" + +#: src/stored/btape.c:686 +msgid "Skipping read backwards test because BSR turned off.\n" +msgstr "" + +#: src/stored/btape.c:690 +msgid "" +"\n" +"=== Write, backup, and re-read test ===\n" +"\n" +"I'm going to write three records and an EOF\n" +"then backup over the EOF and re-read the last record.\n" +"Bacula does this after writing the last block on the\n" +"tape to verify that the block was written correctly.\n" +"\n" +"This is not an *essential* feature ...\n" +"\n" +msgstr "" + +#: src/stored/btape.c:703 src/stored/btape.c:714 src/stored/btape.c:725 +#: src/stored/btape.c:823 src/stored/btape.c:839 src/stored/btape.c:935 +#: src/stored/btape.c:951 src/stored/btape.c:1570 src/stored/btape.c:2455 +msgid "Error writing record to block.\n" +msgstr "" + +#: src/stored/btape.c:707 src/stored/btape.c:718 src/stored/btape.c:729 +#: src/stored/btape.c:827 src/stored/btape.c:843 src/stored/btape.c:939 +#: src/stored/btape.c:955 src/stored/btape.c:1574 src/stored/btape.c:2459 +msgid "Error writing block to device.\n" +msgstr "" + +#: src/stored/btape.c:710 +#, c-format +msgid "Wrote first record of %d bytes.\n" +msgstr "" + +#: src/stored/btape.c:721 +#, c-format +msgid "Wrote second record of %d bytes.\n" +msgstr "" + +#: src/stored/btape.c:732 +#, c-format +msgid "Wrote third record of %d bytes.\n" +msgstr "" + +#: src/stored/btape.c:739 src/stored/btape.c:744 +#, c-format +msgid "Backspace file failed! ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:748 +msgid "Backspaced over EOF OK.\n" +msgstr "" + +#: src/stored/btape.c:750 +#, c-format +msgid "Backspace record failed! ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:753 +msgid "Backspace record OK.\n" +msgstr "" + +#: src/stored/btape.c:756 src/stored/btape.c:762 +#, c-format +msgid "Read block failed! ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:767 +msgid "Bad data in record. Test failed!\n" +msgstr "" + +#: src/stored/btape.c:771 +msgid "" +"\n" +"Block re-read correct. Test succeeded!\n" +msgstr "" + +#: src/stored/btape.c:772 +msgid "" +"=== End Write, backup, and re-read test ===\n" +"\n" +msgstr "" + +#: src/stored/btape.c:779 +msgid "" +"This is not terribly serious since Bacula only uses\n" +"this function to verify the last block written to the\n" +"tape. Bacula will skip the last block verification\n" +"if you add:\n" +"\n" +"Backward Space Record = No\n" +"\n" +"to your Storage daemon's Device resource definition.\n" +msgstr "" + +#: src/stored/btape.c:803 +msgid "" +"\n" +"=== Write, rewind, and re-read test ===\n" +"\n" +"I'm going to write 1000 records and an EOF\n" +"then write 1000 records and an EOF, then rewind,\n" +"and re-read the data to verify that it is correct.\n" +"\n" +"This is an *essential* feature ...\n" +"\n" +msgstr "" + +#: src/stored/btape.c:831 src/stored/btape.c:847 src/stored/btape.c:943 +#: src/stored/btape.c:959 +#, c-format +msgid "Wrote 1000 blocks of %d bytes.\n" +msgstr "Ecriture de 1000 blocs de %d octets.\n" + +#: src/stored/btape.c:856 src/stored/btape.c:968 +msgid "Rewind OK.\n" +msgstr "" + +#: src/stored/btape.c:863 src/stored/btape.c:1017 +msgid "Got EOF on tape.\n" +msgstr "" + +#: src/stored/btape.c:868 +#, c-format +msgid "Read block %d failed! ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:874 +#, c-format +msgid "Read record failed. Block %d! ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:880 src/stored/btape.c:1047 +#, c-format +msgid "Bad data in record. Expected %d, got %d at byte %d. Test failed!\n" +msgstr "" + +#: src/stored/btape.c:887 +msgid "1000 blocks re-read correctly.\n" +msgstr "1000 blocs relus correctement.\n" + +#: src/stored/btape.c:890 src/stored/btape.c:1054 +msgid "" +"=== Test Succeeded. End Write, rewind, and re-read test ===\n" +"\n" +msgstr "" + +#: src/stored/btape.c:915 +msgid "" +"\n" +"=== Write, rewind, and position test ===\n" +"\n" +"I'm going to write 1000 records and an EOF\n" +"then write 1000 records and an EOF, then rewind,\n" +"and position to a few blocks and verify that it is correct.\n" +"\n" +"This is an *essential* feature ...\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1008 +#, c-format +msgid "Reposition to file:block %d:%d\n" +msgstr "" + +#: src/stored/btape.c:1010 +msgid "Reposition error.\n" +msgstr "" + +#: src/stored/btape.c:1023 +#, c-format +msgid "" +"Read block %d failed! file=%d blk=%d. ERR=%s\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1025 +msgid "" +"This may be because the tape drive block size is not\n" +" set to variable blocking as normally used by Bacula.\n" +" Please see the Tape Testing chapter in the manual and \n" +" look for using mt with defblksize and setoptions\n" +"If your tape drive block size is correct, then perhaps\n" +" your SCSI driver is *really* stupid and does not\n" +" correctly report the file:block after a FSF. In this\n" +" case try setting:\n" +" Fast Forward Space File = no\n" +" in your Device resource.\n" +msgstr "" + +#: src/stored/btape.c:1041 +#, c-format +msgid "Read record failed! ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1052 +#, c-format +msgid "Block %d re-read correctly.\n" +msgstr "" + +#: src/stored/btape.c:1073 +msgid "" +"\n" +"\n" +"=== Append files test ===\n" +"\n" +"This test is essential to Bacula.\n" +"\n" +"I'm going to write one record in file 0,\n" +" two records in file 1,\n" +" and three records in file 2\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1097 +msgid "Now moving to end of medium.\n" +msgstr "" + +#: src/stored/btape.c:1099 src/stored/btape.c:1328 +#, c-format +msgid "We should be in file 3. I am at file %d. %s\n" +msgstr "" + +#: src/stored/btape.c:1100 src/stored/btape.c:1118 src/stored/btape.c:1317 +#: src/stored/btape.c:1329 src/stored/btape.c:1342 src/stored/btape.c:1359 +msgid "This is correct!" +msgstr "" + +#: src/stored/btape.c:1100 src/stored/btape.c:1118 src/stored/btape.c:1317 +#: src/stored/btape.c:1329 src/stored/btape.c:1342 src/stored/btape.c:1359 +msgid "This is NOT correct!!!!" +msgstr "" + +#: src/stored/btape.c:1106 +msgid "" +"\n" +"Now the important part, I am going to attempt to append to the tape.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1113 +msgid "" +"Done appending, there should be no I/O errors\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1114 +msgid "Doing Bacula scan of blocks:\n" +msgstr "" + +#: src/stored/btape.c:1116 +msgid "End scanning the tape.\n" +msgstr "" + +#: src/stored/btape.c:1117 src/stored/btape.c:1341 +#, c-format +msgid "We should be in file 4. I am at file %d. %s\n" +msgstr "" + +#: src/stored/btape.c:1142 +msgid "" +"\n" +"Autochanger enabled, but no name or no command device specified.\n" +msgstr "" + +#: src/stored/btape.c:1146 +msgid "" +"\n" +"Ah, I see you have an autochanger configured.\n" +"To test the autochanger you must have a blank tape\n" +" that I can write on in Slot 1.\n" +msgstr "" + +#: src/stored/btape.c:1149 +msgid "" +"\n" +"Do you wish to continue with the Autochanger test? (y/n): " +msgstr "" + +#: src/stored/btape.c:1156 +msgid "" +"\n" +"\n" +"=== Autochanger test ===\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1165 +msgid "3301 Issuing autochanger \"loaded\" command.\n" +msgstr "" + +#: src/stored/btape.c:1174 +#, c-format +msgid "3991 Bad autochanger command: %s\n" +msgstr "" + +#: src/stored/btape.c:1175 +#, c-format +msgid "3991 result=\"%s\": ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1179 +#, c-format +msgid "Slot %d loaded. I am going to unload it.\n" +msgstr "" + +#: src/stored/btape.c:1181 +msgid "Nothing loaded in the drive. OK.\n" +msgstr "" + +#: src/stored/btape.c:1188 +#, c-format +msgid "3302 Issuing autochanger \"unload %d %d\" command.\n" +msgstr "" + +#: src/stored/btape.c:1193 +#, c-format +msgid "unload status=%s %d\n" +msgstr "" + +#: src/stored/btape.c:1193 +msgid "Bad" +msgstr "" + +#: src/stored/btape.c:1196 +#, c-format +msgid "3992 Bad autochanger command: %s\n" +msgstr "" + +#: src/stored/btape.c:1197 +#, c-format +msgid "3992 result=\"%s\": ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1207 +#, c-format +msgid "3303 Issuing autochanger \"load %d %d\" command.\n" +msgstr "" + +#: src/stored/btape.c:1215 +#, c-format +msgid "3303 Autochanger \"load %d %d\" status is OK.\n" +msgstr "" + +#: src/stored/btape.c:1219 +#, c-format +msgid "3993 Bad autochanger command: %s\n" +msgstr "" + +#: src/stored/btape.c:1220 +#, c-format +msgid "3993 result=\"%s\": ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1235 +msgid "" +"\n" +"The test failed, probably because you need to put\n" +"a longer sleep time in the mtx-script in the load) case.\n" +"Adding a 30 second sleep and trying again ...\n" +msgstr "" + +#: src/stored/btape.c:1248 +#, c-format +msgid "Wrote EOF to %s\n" +msgstr "" + +#: src/stored/btape.c:1252 +#, c-format +msgid "" +"\n" +"The test worked this time. Please add:\n" +"\n" +" sleep %d\n" +"\n" +"to your mtx-changer script in the load) case.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1257 +msgid "" +"\n" +"The test autochanger worked!!\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1268 +msgid "You must correct this error or the Autochanger will not work.\n" +msgstr "" + +#: src/stored/btape.c:1286 +msgid "" +"\n" +"\n" +"=== Forward space files test ===\n" +"\n" +"This test is essential to Bacula.\n" +"\n" +"I'm going to write five files then test forward spacing\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1311 +msgid "Now forward spacing 1 file.\n" +msgstr "" + +#: src/stored/btape.c:1313 src/stored/btape.c:1325 src/stored/btape.c:1338 +#: src/stored/btape.c:1356 src/stored/btape.c:1525 +#, c-format +msgid "Bad status from fsr. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1316 +#, c-format +msgid "We should be in file 1. I am at file %d. %s\n" +msgstr "" + +#: src/stored/btape.c:1323 +msgid "Now forward spacing 2 files.\n" +msgstr "" + +#: src/stored/btape.c:1336 +msgid "Now forward spacing 4 files.\n" +msgstr "" + +#: src/stored/btape.c:1348 +msgid "" +"The test worked this time. Please add:\n" +"\n" +" Fast Forward Space File = no\n" +"\n" +"to your Device resource for this drive.\n" +msgstr "" + +#: src/stored/btape.c:1354 +msgid "Now forward spacing 1 more file.\n" +msgstr "" + +#: src/stored/btape.c:1358 +#, c-format +msgid "We should be in file 5. I am at file %d. %s\n" +msgstr "" + +#: src/stored/btape.c:1363 +msgid "" +"\n" +"=== End Forward space files test ===\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1367 +msgid "" +"\n" +"The forward space file test failed.\n" +msgstr "" + +#: src/stored/btape.c:1369 +msgid "" +"You have Fast Forward Space File enabled.\n" +"I am turning it off then retrying the test.\n" +msgstr "" + +#: src/stored/btape.c:1375 +msgid "" +"You must correct this error or Bacula will not work.\n" +"Some systems, e.g. OpenBSD, require you to set\n" +" Use MTIOCGET= no\n" +"in your device resource. Use with caution.\n" +msgstr "" + +#: src/stored/btape.c:1407 +msgid "" +"\n" +"Append test failed. Attempting again.\n" +"Setting \"Hardware End of Medium = no\n" +" and \"Fast Forward Space File = no\n" +"and retrying append test.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1415 +msgid "" +"\n" +"\n" +"It looks like the test worked this time, please add:\n" +"\n" +" Hardware End of Medium = No\n" +"\n" +" Fast Forward Space File = No\n" +"to your Device resource in the Storage conf file.\n" +msgstr "" + +#: src/stored/btape.c:1422 +msgid "" +"\n" +"\n" +"That appears *NOT* to have corrected the problem.\n" +msgstr "" + +#: src/stored/btape.c:1427 +msgid "" +"\n" +"\n" +"It looks like the append failed. Attempting again.\n" +"Setting \"BSF at EOM = yes\" and retrying append test.\n" +msgstr "" + +#: src/stored/btape.c:1432 +msgid "" +"\n" +"\n" +"It looks like the test worked this time, please add:\n" +"\n" +" Hardware End of Medium = No\n" +" Fast Forward Space File = No\n" +" BSF at EOM = yes\n" +"\n" +"to your Device resource in the Storage conf file.\n" +msgstr "" + +#: src/stored/btape.c:1443 +msgid "" +"\n" +"Append test failed.\n" +"\n" +"\n" +"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n" +"Unable to correct the problem. You MUST fix this\n" +"problem before Bacula can use your tape drive correctly\n" +"\n" +"Perhaps running Bacula in fixed block mode will work.\n" +"Do so by setting:\n" +"\n" +"Minimum Block Size = nnn\n" +"Maximum Block Size = nnn\n" +"\n" +"in your Storage daemon's Device definition.\n" +"nnn must match your tape driver's block size, which\n" +"can be determined by reading your tape manufacturers\n" +"information, and the information on your kernel dirver.\n" +"Fixed block sizes, however, are not normally an ideal solution.\n" +"\n" +"Some systems, e.g. OpenBSD, require you to set\n" +" Use MTIOCGET= no\n" +"in your device resource. Use with caution.\n" +msgstr "" + +#: src/stored/btape.c:1464 +msgid "" +"\n" +"The above Bacula scan should have output identical to what follows.\n" +"Please double check it ...\n" +"=== Sample correct output ===\n" +"1 block of 64448 bytes in file 1\n" +"End of File mark.\n" +"2 blocks of 64448 bytes in file 2\n" +"End of File mark.\n" +"3 blocks of 64448 bytes in file 3\n" +"End of File mark.\n" +"1 block of 64448 bytes in file 4\n" +"End of File mark.\n" +"Total files=4, blocks=7, bytes = 451,136\n" +"=== End sample correct output ===\n" +"\n" +"If the above scan output is not identical to the\n" +"sample output, you MUST correct the problem\n" +"or Bacula will not be able to write multiple Jobs to \n" +"the tape.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1503 +#, c-format +msgid "Bad status from fsf. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1507 +msgid "Forward spaced 1 file.\n" +msgstr "" + +#: src/stored/btape.c:1510 +#, c-format +msgid "Forward spaced %d files.\n" +msgstr "" + +#: src/stored/btape.c:1529 +msgid "Forward spaced 1 record.\n" +msgstr "" + +#: src/stored/btape.c:1532 +#, c-format +msgid "Forward spaced %d records.\n" +msgstr "" + +#: src/stored/btape.c:1577 +#, c-format +msgid "Wrote one record of %d bytes.\n" +msgstr "" + +#: src/stored/btape.c:1579 +msgid "Wrote block to device.\n" +msgstr "" + +#: src/stored/btape.c:1594 +msgid "Enter length to read: " +msgstr "" + +#: src/stored/btape.c:1599 +msgid "Bad length entered, using default of 1024 bytes.\n" +msgstr "" + +#: src/stored/btape.c:1608 +#, c-format +msgid "Read of %d bytes gives stat=%d. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1631 src/stored/btape.c:1680 +#, c-format +msgid "End of tape\n" +msgstr "" + +#: src/stored/btape.c:1636 +#, c-format +msgid "Starting scan at file %u\n" +msgstr "" + +#: src/stored/btape.c:1641 src/stored/dev.c:1325 +#, c-format +msgid "read error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/btape.c:1643 +#, c-format +msgid "Bad status from read %d. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1646 src/stored/btape.c:1660 src/stored/btape.c:1724 +#: src/stored/btape.c:1736 src/stored/btape.c:1749 src/stored/btape.c:1765 +#, c-format +msgid "1 block of %d bytes in file %d\n" +msgstr "" + +#: src/stored/btape.c:1649 src/stored/btape.c:1663 src/stored/btape.c:1727 +#: src/stored/btape.c:1739 src/stored/btape.c:1752 src/stored/btape.c:1768 +#, c-format +msgid "%d blocks of %d bytes in file %d\n" +msgstr "" + +#: src/stored/btape.c:1671 src/stored/btape.c:1743 +#, c-format +msgid "End of File mark.\n" +msgstr "" + +#: src/stored/btape.c:1692 src/stored/btape.c:1796 +#, c-format +msgid "Total files=%d, blocks=%d, bytes = %s\n" +msgstr "" + +#: src/stored/btape.c:1756 +#, c-format +msgid "Short block read.\n" +msgstr "" + +#: src/stored/btape.c:1759 +#, c-format +msgid "Error reading block. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1783 +#, c-format +msgid "" +"Blk_block: %u dev_blk=%u blen=%u First rec FI=%s SessId=%u SessTim=%u Strm=%" +"s rlen=%d\n" +msgstr "" + +#: src/stored/btape.c:1805 +#, c-format +msgid "Device status: %u. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1835 +msgid "" +"\n" +"This command simulates Bacula writing to a tape.\n" +"It requires either one or two blank tapes, which it\n" +"will label and write.\n" +"\n" +"If you have an autochanger configured, it will use\n" +"the tapes that are in slots 1 and 2, otherwise, you will\n" +"be prompted to insert the tapes when necessary.\n" +"\n" +"It will print a status approximately\n" +"every 322 MB, and write an EOF every 3.2 GB. If you have\n" +"selected the simple test option, after writing the first tape\n" +"it will rewind it and re-read the last block written.\n" +"\n" +"If you have selected the multiple tape test, when the first tape\n" +"fills, it will ask for a second, and after writing a few more \n" +"blocks, it will stop. Then it will begin re-reading the\n" +"two tapes.\n" +"\n" +"This may take a long time -- hours! ...\n" +"\n" +msgstr "" +"\n" +"Cette commande simule l'écriture d'une bande par Bacula.\n" +"Ce test requiert une ou deux bandes vierges qui vont être\n" +"labélisées et écrites.\n" +"\n" +"Si vous avez configuré un autochangeur, il utilisera les bandes\n" +"des slots 1 et 2, sinon, le programme vous demandera d'insérer\n" +"les bandes quand cela sera nécessaire.\n" +"\n" +"L'état d'avancement sera affiché tous les 322 Mo, et un EOF sera \n" +"écrit tous les 3,2 Go. Si vous avez choisi le test simple, après avoir\n" +"rempli la bande, elle sera rembobinée et le dernier bloc écrit sera\n" +"relu.\n" +"\n" +"Si vous avez choisi le test multi-bande, quand la première bande sera\n" +"remplie vous devrez insérer la nouvelle et après l'écriture de quelques\n" +"blocs les deux bandes seront relues.\n" +"\n" +"Ce test peut durer longtemps (voir des heures).\n" + +#: src/stored/btape.c:1852 +msgid "" +"Do you want to run the simplified test (s) with one tape\n" +"or the complete multiple tape (m) test: (s/m) " +msgstr "" +"Voulez vous lancer le test simplifié (s) utilisant une seule bande\n" +"ou bien le test multi-bande complet (m) : (s/m) " + +#: src/stored/btape.c:1855 +msgid "Simple test (single tape) selected.\n" +msgstr "Sélection du test simplifié (utilisant une seule bande).\n" + +#: src/stored/btape.c:1858 +msgid "Multiple tape test selected.\n" +msgstr "Sélection du test multiple.\n" + +#: src/stored/btape.c:1893 src/stored/append.c:109 +#, c-format +msgid "Write session label failed. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1897 +msgid "Wrote Start of Session label.\n" +msgstr "Écriture du label de début de session.\n" + +#: src/stored/btape.c:1928 +#, c-format +msgid "%s Begin writing Bacula records to tape ...\n" +msgstr "" + +#: src/stored/btape.c:1930 +#, c-format +msgid "%s Begin writing Bacula records to first tape ...\n" +msgstr "" + +#: src/stored/btape.c:1971 +#, c-format +msgid "Wrote blk_block=%u, dev_blk_num=%u VolBytes=%s rate=%.1f KB/s\n" +msgstr "Écriture blk_block=%u, dev_blk_num=%u VolBytes=%s rate=%.1f KB/s\n" + +#: src/stored/btape.c:1981 +#, c-format +msgid "%s Flush block, write EOF\n" +msgstr "Flush de %s blocs, écriture de EOF\n" + +#: src/stored/btape.c:1992 +msgid "Not OK\n" +msgstr "" + +#: src/stored/btape.c:2017 src/stored/append.c:292 +#, c-format +msgid "Error writting end session label. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:2022 +msgid "Set ok=false after write_block_to_device.\n" +msgstr "" + +#: src/stored/btape.c:2025 +msgid "Wrote End of Session label.\n" +msgstr "Écriture du label de fin de session.\n" + +#: src/stored/btape.c:2049 +#, c-format +msgid "Wrote state file last_block_num1=%d last_block_num2=%d\n" +msgstr "Écriture du fichier d'état last_block_num1=%d last_block_num2=%d\n" + +#: src/stored/btape.c:2053 +#, c-format +msgid "Could not create state file: %s ERR=%s\n" +msgstr "Impossible de créer le fichier d'état : %s ERR=%s\n" + +#: src/stored/btape.c:2061 +#, c-format +msgid "" +"\n" +"\n" +"%s Done filling tape at %d:%d. Now beginning re-read of tape ...\n" +msgstr "" + +#: src/stored/btape.c:2065 +#, c-format +msgid "" +"\n" +"\n" +"%s Done filling tapes at %d:%d. Now beginning re-read of first tape ...\n" +msgstr "" + +#: src/stored/btape.c:2104 +msgid "" +"\n" +"The state file level has changed. You must redo\n" +"the fill command.\n" +msgstr "" + +#: src/stored/btape.c:2110 +#, c-format +msgid "" +"\n" +"Could not find the state file: %s ERR=%s\n" +"You must redo the fill command.\n" +msgstr "" +"\n" +"Impossible de trouver le fichier d'état : %s ERR=%s\n" +"Vous devez relancer la commande « fill ».\n" + +#: src/stored/btape.c:2166 +msgid "Mount first tape. Press enter when ready: " +msgstr "Chargez la première bande et appuyez sur « Entrée » : " + +#: src/stored/btape.c:2181 +msgid "Rewinding.\n" +msgstr "Rembobinage.\n" + +#: src/stored/btape.c:2186 +#, c-format +msgid "Reading the first 10000 records from %u:%u.\n" +msgstr "Lecture des 10000 premiers enregistrements depuis %u:%u.\n" + +#: src/stored/btape.c:2190 src/stored/btape.c:2255 +#, c-format +msgid "Reposition from %u:%u to %u:%u\n" +msgstr "Re-positionnement de %u:%u à %u:%u\n" + +#: src/stored/btape.c:2193 src/stored/btape.c:2242 src/stored/btape.c:2258 +#, c-format +msgid "Reposition error. ERR=%s\n" +msgstr "Erreur pendant le re-positionnement. ERR=%s\n" + +#: src/stored/btape.c:2196 +#, c-format +msgid "Reading block %u.\n" +msgstr "Lecture du bloc %u.\n" + +#: src/stored/btape.c:2198 src/stored/btape.c:2247 src/stored/btape.c:2263 +#, c-format +msgid "Error reading block: ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:2203 +msgid "" +"\n" +"The last block on the tape matches. Test succeeded.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:2205 +msgid "" +"\n" +"The last block of the first tape matches.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:2228 +msgid "Mount second tape. Press enter when ready: " +msgstr "Chargez une deuxième bande et appuyez sur « Entrée » : " + +#: src/stored/btape.c:2240 +#, c-format +msgid "Reposition from %u:%u to 0:1\n" +msgstr "Re-positionnement de %u:%u à 0:1\n" + +#: src/stored/btape.c:2245 src/stored/btape.c:2261 +#, c-format +msgid "Reading block %d.\n" +msgstr "Lecture du bloc %d.\n" + +#: src/stored/btape.c:2251 +msgid "" +"\n" +"The first block on the second tape matches.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:2267 +msgid "" +"\n" +"The last block on the second tape matches. Test succeeded.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:2282 +#, c-format +msgid "10000 records read now at %d:%d\n" +msgstr "10000 enregistrements lus maintenant à %d:%d\n" + +#: src/stored/btape.c:2305 src/stored/btape.c:2316 src/stored/btape.c:2364 +msgid "Last block written" +msgstr "Dernier bloc écrit" + +#: src/stored/btape.c:2307 src/stored/btape.c:2317 +msgid "Block read back" +msgstr "" + +#: src/stored/btape.c:2308 +#, c-format +msgid "" +"\n" +"\n" +"The blocks differ at byte %u\n" +msgstr "" + +#: src/stored/btape.c:2309 +msgid "" +"\n" +"\n" +"!!!! The last block written and the block\n" +"that was read back differ. The test FAILED !!!!\n" +"This must be corrected before you use Bacula\n" +"to write multi-tape Volumes.!!!!\n" +msgstr "" + +#: src/stored/btape.c:2348 +#, c-format +msgid "Last block at: %u:%u this_dev_block_num=%d\n" +msgstr "" + +#: src/stored/btape.c:2362 +#, c-format +msgid "Block not written: FileIndex=%u blk_block=%u Size=%u\n" +msgstr "" + +#: src/stored/btape.c:2366 +msgid "Block not written" +msgstr "Bloc non écrit" + +#: src/stored/btape.c:2381 +#, c-format +msgid "End of tape %d:%d. VolumeCapacity=%s. Write rate = %.1f KB/s\n" +msgstr "" + +#: src/stored/btape.c:2431 +msgid "Test writing blocks of 64512 bytes to tape.\n" +msgstr "" + +#: src/stored/btape.c:2433 +msgid "How many blocks do you want to write? (1000): " +msgstr "" + +#: src/stored/btape.c:2448 +#, c-format +msgid "Begin writing %d Bacula blocks to tape ...\n" +msgstr "" + +#: src/stored/btape.c:2500 +#, c-format +msgid "Begin writing raw blocks of %u bytes.\n" +msgstr "" + +#: src/stored/btape.c:2524 +#, c-format +msgid "Write failed at block %u. stat=%d ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:2533 +msgid "test autochanger" +msgstr "" + +#: src/stored/btape.c:2534 +msgid "backspace file" +msgstr "" + +#: src/stored/btape.c:2535 +msgid "backspace record" +msgstr "" + +#: src/stored/btape.c:2536 +msgid "list device capabilities" +msgstr "" + +#: src/stored/btape.c:2537 +msgid "clear tape errors" +msgstr "" + +#: src/stored/btape.c:2538 +msgid "go to end of Bacula data for append" +msgstr "" + +#: src/stored/btape.c:2539 +msgid "go to the physical end of medium" +msgstr "" + +#: src/stored/btape.c:2540 +msgid "fill tape, write onto second volume" +msgstr "" + +#: src/stored/btape.c:2541 +msgid "read filled tape" +msgstr "" + +#: src/stored/btape.c:2542 +msgid "forward space a file" +msgstr "" + +#: src/stored/btape.c:2543 +msgid "forward space a record" +msgstr "" + +#: src/stored/btape.c:2545 +msgid "write a Bacula label to the tape" +msgstr "" + +#: src/stored/btape.c:2546 +msgid "load a tape" +msgstr "" + +#: src/stored/btape.c:2547 +msgid "quit btape" +msgstr "" + +#: src/stored/btape.c:2548 +msgid "use write() to fill tape" +msgstr "" + +#: src/stored/btape.c:2549 +msgid "read and print the Bacula tape label" +msgstr "" + +#: src/stored/btape.c:2550 +msgid "test record handling functions" +msgstr "" + +#: src/stored/btape.c:2551 +msgid "rewind the tape" +msgstr "rembobine la bande" + +#: src/stored/btape.c:2552 +msgid "read() tape block by block to EOT and report" +msgstr "" + +#: src/stored/btape.c:2553 +msgid "Bacula read block by block to EOT and report" +msgstr "Bacula lit bloc par bloc jusqu'à la fin de la bande (EOT) et résume" + +#: src/stored/btape.c:2554 +msgid "print tape status" +msgstr "" + +#: src/stored/btape.c:2555 +msgid "General test Bacula tape functions" +msgstr "test général des fonctions Bacula sur un lecteur de bande" + +#: src/stored/btape.c:2556 +msgid "write an EOF on the tape" +msgstr "écrit un EOF sur la bande" + +#: src/stored/btape.c:2557 +msgid "write a single Bacula block" +msgstr "écrit un seul bloc bacula" + +#: src/stored/btape.c:2558 +msgid "read a single record" +msgstr "lit un seul enregistrement" + +#: src/stored/btape.c:2559 +msgid "read a single Bacula block" +msgstr "lit un seul bloc bacula" + +#: src/stored/btape.c:2560 +msgid "quick fill command" +msgstr "" + +#: src/stored/btape.c:2581 +#, c-format +msgid "\"%s\" is an invalid command\n" +msgstr "« %s » est une commande invalide.\n" + +#: src/stored/btape.c:2590 +#, c-format +msgid "Interactive commands:\n" +msgstr "" + +#: src/stored/btape.c:2601 +#, fuzzy, c-format +msgid "" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: btape \n" +" -b specify bootstrap file\n" +" -c set configuration file to file\n" +" -d set debug level to \n" +" -p proceed inspite of I/O errors\n" +" -s turn off signals\n" +" -v be verbose\n" +" -? print this message.\n" +"\n" +msgstr "" +") %s %s %s\n" +"\n" +"Usage : bconsole [-s] [-c config_file] [-d niveau_debug]\n" +" -c set configuration file to file\n" +" -dnn set debug level to nn\n" +" -s no signals\n" +" -t test - lecture de la configuration et sortie\n" +"\n" + +#: src/stored/btape.c:2686 +#, c-format +msgid "Mount second Volume on device %s and press return when ready: " +msgstr "" + +#: src/stored/btape.c:2713 +#, c-format +msgid "Mount blank Volume on device %s and press return when ready: " +msgstr "" + +#: src/stored/btape.c:2731 +#, fuzzy, c-format +msgid "End of Volume \"%s\" %d records.\n" +msgstr "Le volume « %s » existe déjà en base.\n" + +#: src/stored/btape.c:2744 +#, c-format +msgid "Read block=%u, VolBytes=%s rate=%.1f KB/s\n" +msgstr "" + +#: src/stored/btape.c:2756 src/stored/mount.c:634 +#, c-format +msgid "Cannot open Dev=%s, Vol=%s\n" +msgstr "" + +#: src/stored/spool.c:84 +#, fuzzy +msgid "Spooling statistics:\n" +msgstr "Spooling des données...\n" + +#: src/stored/spool.c:87 +#, c-format +msgid "" +"Data spooling: %u active jobs, %s bytes; %u total jobs, %s max bytes/job.\n" +msgstr "" + +#: src/stored/spool.c:95 +#, c-format +msgid "Attr spooling: %u active jobs, %s bytes; %u total jobs, %s max bytes.\n" +msgstr "" + +#: src/stored/spool.c:115 +msgid "Spooling data ...\n" +msgstr "Spooling des données...\n" + +#: src/stored/spool.c:141 +#, c-format +msgid "Bad return from despool WroteVol=%d\n" +msgstr "" + +#: src/stored/spool.c:174 +#, c-format +msgid "Open data spool file %s failed: ERR=%s\n" +msgstr "Erreur pendant l'ouverture fichier de spool %s. ERR=%s\n" + +#: src/stored/spool.c:232 +#, c-format +msgid "Committing spooled data to Volume \"%s\". Despooling %s bytes ...\n" +msgstr "" +"Transfert des données spoolées sur le Volume « %s ». Transfert de %s " +"octets...\n" + +#: src/stored/spool.c:236 +#, c-format +msgid "Writing spooled data to Volume. Despooling %s bytes ...\n" +msgstr "" +"Écriture des données spoolées sur le Volume. Transfert de %s octets...\n" + +#: src/stored/spool.c:293 src/stored/mac.c:124 src/stored/mac.c:220 +#: src/stored/append.c:303 +#, c-format +msgid "Fatal append error on device %s: ERR=%s\n" +msgstr "" + +#: src/stored/spool.c:306 +#, c-format +msgid "" +"Despooling elapsed time = %02d:%02d:%02d, Transfer rate = %s bytes/second\n" +msgstr "" +"Temps du transfert des données spoolées = %02d:%02d:%02d, Taux de transfert " +"= %s o/s\n" + +#: src/stored/spool.c:315 src/stored/spool.c:504 src/stored/spool.c:546 +#, c-format +msgid "Ftruncate spool file failed: ERR=%s\n" +msgstr "" + +#: src/stored/spool.c:376 +#, c-format +msgid "Spool header read error. ERR=%s\n" +msgstr "" + +#: src/stored/spool.c:379 +#, c-format +msgid "Spool read error. Wanted %u bytes, got %d\n" +msgstr "" + +#: src/stored/spool.c:380 +#, c-format +msgid "Spool header read error. Wanted %u bytes, got %d\n" +msgstr "" + +#: src/stored/spool.c:386 src/stored/spool.c:387 +#, c-format +msgid "Spool block too big. Max %u bytes, got %u\n" +msgstr "" + +#: src/stored/spool.c:392 src/stored/spool.c:393 +#, c-format +msgid "Spool data read error. Wanted %u bytes, got %d\n" +msgstr "" + +#: src/stored/spool.c:450 +msgid "User specified spool size reached.\n" +msgstr "Taille du spool spécifiée par l'utlisateur atteinte.\n" + +#: src/stored/spool.c:452 +msgid "Bad return from despool in write_block.\n" +msgstr "" + +#: src/stored/spool.c:460 +msgid "Spooling data again ...\n" +msgstr "Reprise du spool des données...\n" + +#: src/stored/spool.c:491 +#, c-format +msgid "Error writing header to spool file. ERR=%s\n" +msgstr "" + +#: src/stored/spool.c:510 src/stored/spool.c:552 +msgid "Fatal despooling error." +msgstr "" + +#: src/stored/spool.c:517 +msgid "Retrying after header spooling error failed.\n" +msgstr "" + +#: src/stored/spool.c:531 +#, c-format +msgid "Error writing data to spool file. ERR=%s\n" +msgstr "" +"Erreur pendant l'écriture des données vers le fichier de spool. ERR=%s\n" + +#: src/stored/spool.c:562 +msgid "Retrying after data spooling error failed.\n" +msgstr "" + +#: src/stored/spool.c:617 src/stored/spool.c:624 +#, c-format +msgid "Fseek on attributes file failed: ERR=%s\n" +msgstr "" + +#: src/stored/spool.c:636 +#, c-format +msgid "Sending spooled attrs to the Director. Despooling %s bytes ...\n" +msgstr "" +"Transfert des attributs spoolés au Director. Transfert de %s octets...\n" + +# Impossible d'ouvrir le fichier de spool des attributs : ERR=%s +#: src/stored/spool.c:663 +#, c-format +msgid "fopen attr spool file %s failed: ERR=%s\n" +msgstr "Impossible d'ouvrir le fichier de spool des attributs %s : ERR=%s\n" + +#: src/stored/device.c:120 +#, c-format +msgid "End of medium on Volume \"%s\" Bytes=%s Blocks=%s at %s.\n" +msgstr "Fin de média sur le Volume « %s » Octets=%s Blocs=%s à %s.\n" + +#: src/stored/device.c:137 +#, c-format +msgid "New volume \"%s\" mounted on device %s at %s.\n" +msgstr "Nouveau volume « %s » monté sur le device %s à %s.\n" + +#: src/stored/device.c:149 +#, c-format +msgid "write_block_to_device Volume label failed. ERR=%s" +msgstr "" + +#: src/stored/device.c:184 +#, c-format +msgid "write_block_to_device overflow block failed. ERR=%s" +msgstr "" + +#: src/stored/device.c:326 src/stored/dev.c:432 +#, c-format +msgid "Unable to open device %s: ERR=%s\n" +msgstr "" + +#: src/stored/device.c:328 +#, c-format +msgid "Unable to open archive %s: ERR=%s\n" +msgstr "" + +#: src/stored/mac.c:79 +msgid "Read and write devices not properly initialized.\n" +msgstr "" + +#: src/stored/mac.c:87 +#, c-format +msgid "No Volume names found for %s.\n" +msgstr "" + +#: src/stored/mac.c:126 src/stored/append.c:305 +msgid "Set ok=FALSE after write_block_to_device.\n" +msgstr "" + +#: src/stored/mac.c:249 src/stored/append.c:244 +#, c-format +msgid "Error updating file attributes. ERR=%s\n" +msgstr "" + +#: src/stored/mount.c:90 +#, c-format +msgid "Too many errors trying to mount device %s.\n" +msgstr "" + +#: src/stored/mount.c:96 +#, c-format +msgid "Job %d canceled.\n" +msgstr "Le job %d est annulé.\n" + +#: src/stored/mount.c:215 +#, fuzzy, c-format +msgid "Could not open device %s: ERR=%s\n" +msgstr "Impossible d'ouvrir %s : ERR=%s\n" + +#: src/stored/mount.c:258 src/stored/mount.c:539 +#, c-format +msgid "Volume \"%s\" not on device %s.\n" +msgstr "Le volume « %s » n'est pas dans le device %s.\n" + +#: src/stored/mount.c:298 +#, c-format +msgid "" +"Director wanted Volume \"%s\".\n" +" Current Volume \"%s\" not acceptable because:\n" +" %s" +msgstr "" +"Le director voulait utiliser le volume « %s ».\n" +" Le volume courant « %s » n'est pas utilisable car :\n" +" %s" + +#: src/stored/mount.c:381 +#, c-format +msgid "Volume \"%s\" previously written, moving to end of data.\n" +msgstr "Le volume « %s » contient des données, re-positionnement à la fin.\n" + +#: src/stored/mount.c:384 +#, c-format +msgid "Unable to position to end of data on device %s: ERR=%s\n" +msgstr "" +"Impossible de se positionner à la fin du média sur le device %s : ERR=%s\n" + +#: src/stored/mount.c:392 +#, c-format +msgid "Ready to append to end of Volume \"%s\" part=%d size=%s\n" +msgstr "" +"Prêt à ajouter des données à la fin du volume « %s » part=%d size=%s\n" +"\n" + +#: src/stored/mount.c:396 +#, fuzzy, c-format +msgid "" +"Bacula cannot write on DVD Volume \"%s\" because: The sizes do not match! " +"Volume=%s Catalog=%s\n" +msgstr "" +"Impossible d'écrire sur le volume « %s » car :\n" +"Les tailles ne correspondent pas. Volume=%s Catalogue=%s\n" + +#: src/stored/mount.c:410 +#, c-format +msgid "Ready to append to end of Volume \"%s\" at file=%d.\n" +msgstr "Prêt à ajouter des données à la fin du volume « %s » file=%d.\n" + +#: src/stored/mount.c:413 +#, fuzzy, c-format +msgid "" +"Bacula cannot write on tape Volume \"%s\" because:\n" +"The number of files mismatch! Volume=%u Catalog=%u\n" +msgstr "" +"Impossible d'écrire sur le volume « %s » \n" +"car le nombre de fichiers ne correspond pas. Volume=%u Catalogue=%u\n" + +#: src/stored/mount.c:424 +#, c-format +msgid "Ready to append to end of Volume \"%s\" size=%s\n" +msgstr "Prêt à ajouter des données à la fin du volume « %s » size=%s\n" + +#: src/stored/mount.c:428 +#, c-format +msgid "" +"Bacula cannot write on disk Volume \"%s\" because: The sizes do not match! " +"Volume=%s Catalog=%s\n" +msgstr "" +"Impossible d'écrire sur le volume « %s » car : Les tailles ne correspondent " +"pas. Volume=%s Catalogue=%s\n" + +#: src/stored/mount.c:458 +#, c-format +msgid "Ready to append to end of Volume \"%s\" at file address=%u.\n" +msgstr "Prêt à ajouter des données à la fin du volume « %s » file adress=%u.\n" + +#: src/stored/mount.c:462 +#, c-format +msgid "" +"Bacula cannot write on Volume \"%s\" because:\n" +"The EOD file address is wrong: Volume file address=%u != Catalog Endblock=%u" +"(+1)\n" +"Perhaps You removed the DVD last part in spool directory.\n" +msgstr "" + +#: src/stored/mount.c:529 +#, c-format +msgid "Labeled new Volume \"%s\" on device %s.\n" +msgstr "Le nouveau volume « %s » a été labélisé sur le device %s.\n" + +#: src/stored/mount.c:534 +#, c-format +msgid "Device %s not configured to autolabel Volumes.\n" +msgstr "" +"Attention, le device %s n'est pas configuré pour labéliser automatiquement " +"les volumes.\n" + +#: src/stored/mount.c:554 +#, c-format +msgid "Marking Volume \"%s\" in Error in Catalog.\n" +msgstr "Le volume « %s » est marqué en Erreur dans le catalogue.\n" + +#: src/stored/mount.c:570 +#, c-format +msgid "" +"Autochanger Volume \"%s\" not found in slot %d.\n" +" Setting InChanger to zero in catalog.\n" +msgstr "" + +#: src/stored/mount.c:589 +msgid "Hey!!!!! WroteVol non-zero !!!!!\n" +msgstr "" + +#: src/stored/dircmd.c:154 +msgid "Connection request failed.\n" +msgstr "Demande de connexion échouée.\n" + +#: src/stored/dircmd.c:164 +#, c-format +msgid "Invalid connection. Len=%d\n" +msgstr "Connexion invalide. Len=%d\n" + +#: src/stored/dircmd.c:279 +#, c-format +msgid "3991 Bad setdebug command: %s\n" +msgstr "" + +#: src/stored/dircmd.c:300 +#, c-format +msgid "3904 Job %s not found.\n" +msgstr "3904 Job %s non trouvé.\n" + +#: src/stored/dircmd.c:324 +#, c-format +msgid "Job %s marked to be canceled.\n" +msgstr "Le job %s est marqué pour être annulé.\n" + +#: src/stored/dircmd.c:325 +#, c-format +msgid "3000 Job %s marked to be canceled.\n" +msgstr "3000 Job %s marqué pour être annulé.\n" + +#: src/stored/dircmd.c:329 +msgid "3903 Error scanning cancel command.\n" +msgstr "" + +#: src/stored/dircmd.c:405 src/stored/dircmd.c:761 src/stored/dircmd.c:851 +#: src/stored/dircmd.c:923 src/stored/dircmd.c:986 src/stored/dircmd.c:1029 +#, c-format +msgid "3999 Device \"%s\" not found or could not be opened.\n" +msgstr "" + +#: src/stored/dircmd.c:410 +#, c-format +msgid "3903 Error scanning label command: %s\n" +msgstr "" + +#: src/stored/dircmd.c:460 +#, c-format +msgid "3910 Unable to open device %s: ERR=%s\n" +msgstr "3910 Impossible d'ouvrir le device %s : ERR=%s\n" + +#: src/stored/dircmd.c:477 +#, c-format +msgid "3920 Cannot label Volume because it is already labeled: \"%s\"\n" +msgstr "" +"3920 Impossible de labéliser le Volume car il possède déjà le label : « %" +"s »\n" + +#: src/stored/dircmd.c:484 +msgid "3921 Wrong volume mounted.\n" +msgstr "3921 Mauvais volume monté.\n" + +#: src/stored/dircmd.c:488 +msgid "3922 Cannot relabel an ANSI/IBM labeled Volume.\n" +msgstr "3922 Impossible de re-labéliser un Volume ANSI/IBM.\n" + +#: src/stored/dircmd.c:496 +#, c-format +msgid "3912 Failed to label Volume: ERR=%s\n" +msgstr "3912 Impossible de labéliser le Volume : ERR=%s\n" + +#: src/stored/dircmd.c:506 +#, c-format +msgid "3914 Failed to label Volume (no media): ERR=%s\n" +msgstr "3914 Impossible de labéliser le Volume (pas de volume): ERR=%s\n" + +#: src/stored/dircmd.c:509 +#, c-format +msgid "3913 Cannot label Volume. Unknown status %d from read_volume_label()\n" +msgstr "" + +#: src/stored/dircmd.c:542 +#, c-format +msgid "3001 Mounted Volume: %s\n" +msgstr "3001 Volume monté : %s\n" + +#: src/stored/dircmd.c:546 src/stored/dircmd.c:1065 +#, c-format +msgid "" +"3902 Cannot mount Volume on Storage Device %s because:\n" +"%s" +msgstr "" +"3902 Impossible de monté le volume dans le storage device %s car :\n" +"%s" + +#: src/stored/dircmd.c:671 src/stored/dircmd.c:728 +#, c-format +msgid "3901 open device failed: ERR=%s\n" +msgstr "3901 l'ouverture du device a échoué : ERR=%s\n" + +#: src/stored/dircmd.c:691 src/stored/dircmd.c:719 +#, c-format +msgid "3001 Device %s is mounted with Volume \"%s\"\n" +msgstr "3001 Device %s est monté avec le volume « %s »\n" + +#: src/stored/dircmd.c:694 src/stored/dircmd.c:722 src/stored/dircmd.c:737 +#, c-format +msgid "" +"3905 Device %s open but no Bacula volume is mounted.\n" +"If this is not a blank tape, try unmounting and remounting the Volume.\n" +msgstr "" +"3905 Le device %s est ouvert mais il n'y a pas de volume Bacula monté.\n" +"Si ce n'est pas une cartouche vierge, essayer de la démonter puis de la " +"remonter.\n" + +#: src/stored/dircmd.c:704 +#, c-format +msgid "3001 Device %s is doing acquire.\n" +msgstr "" + +#: src/stored/dircmd.c:709 src/stored/dircmd.c:823 +#, c-format +msgid "3903 Device %s is being labeled.\n" +msgstr "" + +#: src/stored/dircmd.c:734 +#, c-format +msgid "3001 Device %s is already mounted with Volume \"%s\"\n" +msgstr "3001 Device %s est déjà monté avec le volume « %s »\n" + +#: src/stored/dircmd.c:743 +#, c-format +msgid "3002 Device %s is mounted.\n" +msgstr "3002 Le device %s est monté.\n" + +#: src/stored/dircmd.c:746 src/stored/dircmd.c:796 src/stored/dircmd.c:811 +#: src/stored/dircmd.c:842 +#, c-format +msgid "3907 %s" +msgstr "3907 %s" + +#: src/stored/dircmd.c:749 +#, c-format +msgid "3906 File device %s is always mounted.\n" +msgstr "3906 Le device fichier %s est toujours monté.\n" + +#: src/stored/dircmd.c:755 +#, c-format +msgid "3905 Bizarre wait state %d\n" +msgstr "" + +#: src/stored/dircmd.c:765 +#, c-format +msgid "3909 Error scanning mount command: %s\n" +msgstr "3909 Erreur pendant la lecture de la commande de montage : %s\n" + +#: src/stored/dircmd.c:793 src/stored/dircmd.c:844 +#, c-format +msgid "3002 Device %s unmounted.\n" +msgstr "3002 Le device %s est démonté.\n" + +#: src/stored/dircmd.c:800 +#, c-format +msgid "3901 Device %s is already unmounted.\n" +msgstr "3901 Le device %s est déjà démonté.\n" + +#: src/stored/dircmd.c:814 +#, c-format +msgid "3001 Device %s unmounted.\n" +msgstr "3001 Le device %s est démonté.\n" + +#: src/stored/dircmd.c:819 +#, c-format +msgid "3902 Device %s is busy in acquire.\n" +msgstr "3902 Le Device %s est occupé en acquisition.\n" + +#: src/stored/dircmd.c:856 +#, c-format +msgid "3907 Error scanning unmount command: %s\n" +msgstr "" + +#: src/stored/dircmd.c:887 +#, c-format +msgid "3921 Device %s already released.\n" +msgstr "3921 Le Device %s est déjà libéré.\n" + +#: src/stored/dircmd.c:894 +#, c-format +msgid "3922 Device %s waiting for sysop.\n" +msgstr "3922 Device %s est en attente d'une intervention sysop.\n" + +#: src/stored/dircmd.c:900 +#, c-format +msgid "3922 Device %s waiting for mount.\n" +msgstr "3922 Le Device %s est en atttente d'un montage.\n" + +#: src/stored/dircmd.c:904 +#, c-format +msgid "3923 Device %s is busy in acquire.\n" +msgstr "" + +#: src/stored/dircmd.c:908 +#, c-format +msgid "3914 Device %s is being labeled.\n" +msgstr "" + +#: src/stored/dircmd.c:917 +#, c-format +msgid "3022 Device %s released.\n" +msgstr "3022 Le device %s est libéré.\n" + +#: src/stored/dircmd.c:928 +#, c-format +msgid "3927 Error scanning release command: %s\n" +msgstr "" + +#: src/stored/dircmd.c:973 +#, c-format +msgid "3995 Device %s is not an autochanger.\n" +msgstr "3995 Le Device %s n'est pas un autochangeur.\n" + +#: src/stored/dircmd.c:990 +#, c-format +msgid "3908 Error scanning autocharger drives/list/slots command: %s\n" +msgstr "" + +#: src/stored/dircmd.c:1033 +#, c-format +msgid "3909 Error scanning readlabel command: %s\n" +msgstr "" + +#: src/stored/dircmd.c:1061 +#, c-format +msgid "3001 Volume=%s Slot=%d\n" +msgstr "3001 Volume=%s Slot=%d\n" + +#: src/stored/dircmd.c:1093 +#, c-format +msgid "3931 Device %s is BLOCKED. user unmounted.\n" +msgstr "3931 Device %s est BLOQUÉ, démonté par l'utilisateur.\n" + +#: src/stored/dircmd.c:1097 +#, c-format +msgid "" +"3932 Device %s is BLOCKED. user unmounted during wait for media/mount.\n" +msgstr "" +"3932 Device %s est BLOQUÉ, démonté par l'utilisateur alors que bacula était " +"en attente d'un média.\n" + +#: src/stored/dircmd.c:1101 +#, c-format +msgid "3933 Device %s is BLOCKED waiting for media.\n" +msgstr "3933 Device %s est bloqué en attente d'un media.\n" + +#: src/stored/dircmd.c:1105 +#, c-format +msgid "3934 Device %s is being initialized.\n" +msgstr "3934 Device %s est en cours d'initialisation.\n" + +#: src/stored/dircmd.c:1109 +#, c-format +msgid "3935 Device %s is blocked labeling a Volume.\n" +msgstr "3935 Device %s est bloqué par une labélisation de volume.\n" + +#: src/stored/dircmd.c:1113 +#, c-format +msgid "3935 Device %s is blocked for unknown reason.\n" +msgstr "3935 Device %s est bloqué pour une raison inconnue.\n" + +#: src/stored/dircmd.c:1118 +#, c-format +msgid "3936 Device %s is busy reading.\n" +msgstr "3936 Device %s est occupé en lecture.\n" + +#: src/stored/dircmd.c:1121 +#, c-format +msgid "3937 Device %s is busy with %d writer(s).\n" +msgstr "3937 Device %s est occupé avec %d flux en écriture.\n" + +#: src/stored/append.c:64 +msgid "DCR is NULL!!!\n" +msgstr "" + +#: src/stored/append.c:69 +msgid "DEVICE is NULL!!!\n" +msgstr "" + +#: src/stored/append.c:81 +msgid "Unable to set network buffer size.\n" +msgstr "" + +#: src/stored/append.c:94 src/stored/append.c:103 src/stored/append.c:115 +#: src/stored/append.c:298 src/stored/append.c:309 src/stored/askdir.c:334 +#: src/stored/askdir.c:335 +msgid "NULL Volume name. This shouldn't happen!!!\n" +msgstr "" + +#: src/stored/append.c:121 +#, c-format +msgid "Network send error to FD. ERR=%s\n" +msgstr "" + +#: src/stored/append.c:158 +#, c-format +msgid "Error reading data header from FD. ERR=%s\n" +msgstr "" + +#: src/stored/append.c:180 +#, c-format +msgid "Malformed data header from FD: %s\n" +msgstr "" + +#: src/stored/append.c:190 +msgid "File index from FD not positive or sequential\n" +msgstr "" + +#: src/stored/append.c:258 +#, c-format +msgid "Network error on data channel. ERR=%s\n" +msgstr "" + +#: src/stored/append.c:279 +#, c-format +msgid "" +"Job write elapsed time = %02d:%02d:%02d, Transfer rate = %s bytes/second\n" +msgstr "Temps d'écriture du job = %02d:%02d:%02d, Taux de transfert = %s o/s\n" + +#: src/stored/job.c:225 +#, fuzzy, c-format +msgid "FD connect failed: Job name not found: %s\n" +msgstr "Job non trouvé : %s\n" + +#: src/stored/job.c:236 +#, c-format +msgid "Hey!!!! JobId %u Job %s already authenticated.\n" +msgstr "" + +#: src/stored/job.c:247 +msgid "Unable to authenticate File daemon\n" +msgstr "" + +#: src/stored/job.c:369 +msgid "In free_jcr(), but still attached to device!!!!\n" +msgstr "" + +#: src/stored/askdir.c:178 +msgid "Network error on bnet_recv in req_vol_info.\n" +msgstr "" + +#: src/stored/askdir.c:196 +#, c-format +msgid "Error getting Volume info: %s" +msgstr "Erreur pendant la récupération des informations sur un Volume : %s" + +#: src/stored/askdir.c:369 +#, c-format +msgid "Didn't get vol info vol=%s: ERR=%s" +msgstr "" + +#: src/stored/askdir.c:411 +#, c-format +msgid "Error creating JobMedia record: ERR=%s\n" +msgstr "" + +#: src/stored/askdir.c:418 +#, c-format +msgid "Error creating JobMedia record: %s\n" +msgstr "" + +#: src/stored/askdir.c:485 +#, c-format +msgid "Job %s canceled while waiting for mount on Storage Device \"%s\".\n" +msgstr "" +"Le job %s a été annulé alors qu'il attendait un montage sur le Storage " +"Device « %s ».\n" + +#: src/stored/askdir.c:498 +#, c-format +msgid "" +"Job %s waiting. Cannot find any appendable volumes.\n" +"Please use the \"label\" command to create a new Volume for:\n" +" Storage: %s\n" +" Pool: %s\n" +" Media type: %s\n" +msgstr "" +"Le Job %s est en attente. Bacula n'a pas pu trouver de media disponible.\n" +"Merci de créer un nouveau volume via la commande « label » pour :\n" +" Storage : %s\n" +" Pool : %s\n" +" Type du Media : %s\n" + +#: src/stored/askdir.c:522 src/stored/askdir.c:612 +#, c-format +msgid "Max time exceeded waiting to mount Storage Device %s for Job %s\n" +msgstr "" + +#: src/stored/askdir.c:532 +msgid "pthread error in mount_next_volume.\n" +msgstr "" + +#: src/stored/askdir.c:564 +msgid "Cannot request another volume: no volume name given.\n" +msgstr "" + +#: src/stored/askdir.c:570 +#, c-format +msgid "Job %s canceled while waiting for mount on Storage Device %s.\n" +msgstr "" +"Le Job %s a été annulé pendant qu'il attendait le montage sur le Storage " +"Device %s.\n" + +#: src/stored/askdir.c:585 +#, c-format +msgid "" +"Please mount Volume \"%s\" or label a new one for:\n" +" Job: %s\n" +" Storage: %s\n" +" Pool: %s\n" +" Media type: %s\n" +msgstr "" +"Merci de monter ou de créer un nouveau volume pour :\n" +" Job : %s\n" +" Storage : %s\n" +" Pool : %s\n" +" Type du Media : %s\n" + +#: src/stored/askdir.c:622 +msgid "pthread error in mount_volume\n" +msgstr "" + +#: src/stored/dev.c:120 +#, c-format +msgid "Unable to stat device %s: ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:131 +#, c-format +msgid "" +"%s is an unknown device type. Must be tape or directory\n" +" or have RequiresMount=yes for DVD. st_mode=%x\n" +msgstr "" + +#: src/stored/dev.c:190 +#, c-format +msgid "Unable to stat mount point %s: ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:196 +msgid "" +"Mount and unmount commands must defined for a device which requires mount.\n" +msgstr "" + +#: src/stored/dev.c:199 +msgid "Write part command must be defined for a device which requires mount.\n" +msgstr "" + +#: src/stored/dev.c:210 +#, c-format +msgid "Min block size > max on device %s\n" +msgstr "" + +#: src/stored/dev.c:214 +#, c-format +msgid "Block size %u on device %s is too large, using default %u\n" +msgstr "" +"La taille de bloc %u sur le Device %s est trop grande, utilisation de la " +"valeur par défaut %u\n" + +#: src/stored/dev.c:219 +#, c-format +msgid "Max block size %u not multiple of device %s block size.\n" +msgstr "" + +#: src/stored/dev.c:235 src/stored/dev.c:241 +#, c-format +msgid "Unable to init cond variable: ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:337 +msgid "Illegal mode given to open dev.\n" +msgstr "" + +#: src/stored/dev.c:467 +#, c-format +msgid "Could not open file device %s. No Volume name given.\n" +msgstr "" + +#: src/stored/dev.c:490 src/stored/dev.c:658 +#, c-format +msgid "Could not open: %s, ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:534 +#, fuzzy, c-format +msgid "Could not open DVD device %s. No Volume name given.\n" +msgstr "Le volume « %s » n'est pas dans le device %s.\n" + +#: src/stored/dev.c:583 +#, c-format +msgid "The DVD in device %s contains data, please blank it before writing.\n" +msgstr "" + +#: src/stored/dev.c:604 +#, fuzzy, c-format +msgid "Unable to stat DVD part 1 file %s: ERR=%s\n" +msgstr "Impossible de créer le fichier bootstrap %s. ERR=%s\n" + +#: src/stored/dev.c:612 +#, c-format +msgid "DVD part 1 is not a regular file %s.\n" +msgstr "" + +#: src/stored/dev.c:632 +#, fuzzy, c-format +msgid "There is no valid DVD in device %s.\n" +msgstr "Le volume « %s » n'est pas dans le device %s.\n" + +#: src/stored/dev.c:638 +#, fuzzy, c-format +msgid "Could not mount DVD device %s.\n" +msgstr "Le volume « %s » n'est pas dans le device %s.\n" + +#: src/stored/dev.c:688 +#, c-format +msgid "Could not fstat: %s, ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:722 +#, c-format +msgid "Bad call to rewind. Device %s not open\n" +msgstr "" + +#: src/stored/dev.c:761 +#, c-format +msgid "No tape loaded or drive offline on %s.\n" +msgstr "" + +#: src/stored/dev.c:771 +#, c-format +msgid "Rewind error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:781 src/stored/dev.c:859 src/stored/dev.c:996 +#: src/stored/dev.c:1572 +#, c-format +msgid "lseek error on %s. ERR=%s.\n" +msgstr "erreur de déplacement (lseek) sur %s : ERR=%s\n" + +#: src/stored/dev.c:830 +#, fuzzy, c-format +msgid "Bad call to eod. Device %s not open\n" +msgstr "Le Device %s n'est pas ouvert.\n" + +#: src/stored/dev.c:895 +#, c-format +msgid "ioctl MTEOM error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:904 src/stored/dev.c:1037 +#, c-format +msgid "ioctl MTIOCGET error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:982 +msgid "Bad device call. Device not open\n" +msgstr "" + +#: src/stored/dev.c:995 +#, c-format +msgid "Seek error: ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:1032 +msgid " Bacula status:" +msgstr "" + +#: src/stored/dev.c:1033 src/stored/dev.c:1116 src/stored/dev.c:1118 +#, c-format +msgid " file=%d block=%d\n" +msgstr " fichier=%d bloc=%d\n" + +#: src/stored/dev.c:1041 +msgid " Device status:" +msgstr "" + +#: src/stored/dev.c:1140 +msgid "Bad call to load_dev. Device not open\n" +msgstr "" + +#: src/stored/dev.c:1151 src/stored/dev.c:1164 +#, c-format +msgid "ioctl MTLOAD error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:1195 +#, c-format +msgid "ioctl MTOFFL error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:1236 +msgid "Bad call to fsf. Device not open\n" +msgstr "" + +#: src/stored/dev.c:1247 src/stored/dev.c:1374 +#, c-format +msgid "Device %s at End of Tape.\n" +msgstr "" + +#: src/stored/dev.c:1278 src/stored/dev.c:1354 +#, c-format +msgid "ioctl MTFSF error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:1403 +msgid "Bad call to bsf. Device not open\n" +msgstr "" + +#: src/stored/dev.c:1409 +#, c-format +msgid "Device %s cannot BSF because it is not a tape.\n" +msgstr "" + +#: src/stored/dev.c:1426 +#, c-format +msgid "ioctl MTBSF error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:1445 +msgid "Bad call to fsr. Device not open\n" +msgstr "" + +#: src/stored/dev.c:1455 +#, c-format +msgid "ioctl MTFSR not permitted on %s.\n" +msgstr "" + +#: src/stored/dev.c:1483 +#, c-format +msgid "ioctl MTFSR %d error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:1501 +msgid "Bad call to bsr_dev. Device not open\n" +msgstr "" + +#: src/stored/dev.c:1511 +#, c-format +msgid "ioctl MTBSR not permitted on %s.\n" +msgstr "" + +#: src/stored/dev.c:1525 +#, c-format +msgid "ioctl MTBSR error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:1561 +msgid "Bad call to reposition. Device not open\n" +msgstr "" + +#: src/stored/dev.c:1640 +msgid "Bad call to weof_dev. Device not open\n" +msgstr "" + +#: src/stored/dev.c:1650 +msgid "Attempt to WEOF on non-appendable Volume\n" +msgstr "" + +#: src/stored/dev.c:1668 +#, c-format +msgid "ioctl MTWEOF error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:1767 +#, c-format +msgid "unknown func code %d" +msgstr "" + +#: src/stored/dev.c:1773 +#, c-format +msgid "I/O function \"%s\" not supported on this device.\n" +msgstr "" + +#: src/stored/dev.c:1929 +#, c-format +msgid "Unable to truncate device %s. ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:2028 src/stored/dev.c:2033 +#, c-format +msgid "Device %s cannot be %smounted. ERR=%s\n" +msgstr "Le Device %s ne peut pas être %smounted. ERR=%s\n" + +#: src/stored/dev.c:2441 +#, fuzzy, c-format +msgid "Unable to set eotmodel on device %s: ERR=%s\n" +msgstr "3910 Impossible d'ouvrir le device %s : ERR=%s\n" + +#: src/stored/authenticate.c:63 +#, c-format +msgid "I only authenticate Directors, not %d\n" +msgstr "" + +#: src/stored/authenticate.c:93 +#, c-format +msgid "" +"Connection from unknown Director %s at %s rejected.\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" + +#: src/stored/authenticate.c:126 +msgid "" +"Incorrect password given by Director.\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" + +#: src/stored/authenticate.c:182 +#, c-format +msgid "Unable to authenticate Director at %s.\n" +msgstr "" + +#: src/stored/authenticate.c:226 src/stored/authenticate.c:260 +#, c-format +msgid "" +"Incorrect authorization key from File daemon at %s rejected.\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" + +#: src/stored/record.c:71 +#, c-format +msgid "unknown: %d" +msgstr "" + +#: src/stored/record.c:378 +msgid "Damaged buffer\n" +msgstr "" + +#: src/stored/record.c:549 +#, c-format +msgid "Sanity check failed. maxlen=%d datalen=%d. Block discarded.\n" +msgstr "" + +#: src/stored/butil.c:59 +msgid "Nohdr," +msgstr "" + +#: src/stored/butil.c:62 +msgid "partial," +msgstr "" + +#: src/stored/butil.c:65 +msgid "empty," +msgstr "" + +#: src/stored/butil.c:68 +msgid "Nomatch," +msgstr "" + +#: src/stored/butil.c:71 +msgid "cont," +msgstr "" + +#: src/stored/butil.c:147 +msgid "Volume name or names is too long. Please use a .bsr file.\n" +msgstr "" + +#: src/stored/butil.c:167 +#, c-format +msgid "Cannot find device \"%s\" in config file %s.\n" +msgstr "" + +#: src/stored/butil.c:174 +#, c-format +msgid "Cannot init device %s\n" +msgstr "" + +#: src/stored/butil.c:194 +#, c-format +msgid "Cannot open %s\n" +msgstr "" + +#: src/stored/butil.c:277 +#, c-format +msgid "Could not find device \"%s\" in config file %s.\n" +msgstr "" + +#: src/stored/butil.c:282 +#, c-format +msgid "Using device: \"%s\" for reading.\n" +msgstr "" + +#: src/stored/butil.c:285 +#, c-format +msgid "Using device: \"%s\" for writing.\n" +msgstr "" + +#: src/stored/butil.c:301 +msgid "Unexpected End of Data\n" +msgstr "" + +#: src/stored/butil.c:303 +msgid "Unexpected End of Tape\n" +msgstr "" + +#: src/stored/butil.c:305 +msgid "Unexpected End of File\n" +msgstr "" + +#: src/stored/butil.c:307 +msgid "Tape Door is Open\n" +msgstr "" + +#: src/stored/butil.c:309 +msgid "Unexpected Tape is Off-line\n" +msgstr "" + +#: src/stored/acquire.c:70 +#, c-format +msgid "Acquire read: num_writers=%d not zero. Job %d canceled.\n" +msgstr "" + +#: src/stored/acquire.c:79 +#, c-format +msgid "No volumes specified for reading. Job %s canceled.\n" +msgstr "Pas de volume spécifié pour la lecture. Abandon du job %s.\n" + +#: src/stored/acquire.c:88 +#, c-format +msgid "Logic error: no next volume to read. Numvol=%d Curvol=%d\n" +msgstr "" + +#: src/stored/acquire.c:114 +#, c-format +msgid "" +"Changing device. Want Media Type=\"%s\" have=\"%s\"\n" +" device=%s\n" +msgstr "" + +#: src/stored/acquire.c:152 +#, c-format +msgid "Media Type change. New device %s chosen.\n" +msgstr "" + +#: src/stored/acquire.c:163 +#, c-format +msgid "No suitable device found to read Volume \"%s\"\n" +msgstr "" + +#: src/stored/acquire.c:192 +#, c-format +msgid "Job %s canceled.\n" +msgstr "Le job %s est annulé.\n" + +#: src/stored/acquire.c:206 +#, c-format +msgid "Read open device %s Volume \"%s\" failed: ERR=%s\n" +msgstr "" + +#: src/stored/acquire.c:277 +#, c-format +msgid "Too many errors trying to mount device %s for reading.\n" +msgstr "" + +#: src/stored/acquire.c:286 +#, c-format +msgid "Ready to read from volume \"%s\" on device %s.\n" +msgstr "Prêt à lire les données du volume « %s » depuis le device %s.\n" + +#: src/stored/acquire.c:336 +#, fuzzy, c-format +msgid "Want to append, but device %s is busy reading.\n" +msgstr "3603 JobId=%u device %s est occupé en lecture.\n" + +#: src/stored/acquire.c:378 +#, c-format +msgid "" +"Cannot recycle volume \"%s\" on device %s because it is in use by another " +"job.\n" +msgstr "" +"Impossible de recycler le volume « %s » sur le device %s car il est utilisé " +"par un autre job.\n" + +#: src/stored/acquire.c:404 +#, fuzzy, c-format +msgid "" +"Invalid tape position on volume \"%s\" on device %s. Expected %d, got %d\n" +msgstr "" +"Fin du volume « %s » à %u:%u sur le device %s. Ecriture de %u octets, eu %" +"d.\n" + +#: src/stored/acquire.c:426 +#, c-format +msgid "Could not ready device %s for append.\n" +msgstr "" + +#: src/stored/acquire.c:524 src/stored/block.c:368 src/stored/block.c:718 +#: src/stored/block.c:794 +#, c-format +msgid "Could not create JobMedia record for Volume=\"%s\" Job=%s\n" +msgstr "Impossible de créer un JobMedia en base pour le Volume=%s Job=%s\n" + +#: src/stored/acquire.c:565 +#, c-format +msgid "Alert: %s" +msgstr "Alert: %s" + +#: src/stored/acquire.c:573 +#, c-format +msgid "3997 Bad alert command: %s: ERR=%s.\n" +msgstr "" + +#: src/stored/ansi_label.c:96 +#, c-format +msgid "Read error on device %s in ANSI label. ERR=%s\n" +msgstr "" + +#: src/stored/ansi_label.c:106 +msgid "Insane! End of tape while reading ANSI label.\n" +msgstr "" + +#: src/stored/ansi_label.c:132 +msgid "No VOL1 label while reading ANSI/IBM label.\n" +msgstr "" + +#: src/stored/ansi_label.c:152 +#, c-format +msgid "Wanted ANSI Volume \"%s\" got \"%s\"\n" +msgstr "" + +#: src/stored/ansi_label.c:163 +msgid "No HDR1 label while reading ANSI label.\n" +msgstr "" + +#: src/stored/ansi_label.c:169 +#, c-format +msgid "ANSI/IBM Volume \"%s\" does not belong to Bacula.\n" +msgstr "" + +#: src/stored/ansi_label.c:181 +msgid "No HDR2 label while reading ANSI/IBM label.\n" +msgstr "" + +#: src/stored/ansi_label.c:196 +msgid "Unknown or bad ANSI/IBM label record.\n" +msgstr "" + +#: src/stored/ansi_label.c:204 +msgid "Too many records in while reading ANSI/IBM label.\n" +msgstr "" + +#: src/stored/ansi_label.c:303 +#, c-format +msgid "ANSI Volume label name \"%s\" longer than 6 chars.\n" +msgstr "" + +#: src/stored/ansi_label.c:320 +#, c-format +msgid "Could not write ANSI VOL1 label. ERR=%s\n" +msgstr "" + +#: src/stored/ansi_label.c:358 src/stored/ansi_label.c:387 +#, c-format +msgid "Could not write ANSI HDR1 label. ERR=%s\n" +msgstr "" + +#: src/stored/ansi_label.c:363 src/stored/ansi_label.c:394 +msgid "Could not write ANSI HDR1 label.\n" +msgstr "" + +#: src/stored/ansi_label.c:399 +#, c-format +msgid "Error writing EOF to tape. ERR=%s" +msgstr "" + +#: src/stored/ansi_label.c:404 +msgid "write_ansi_ibm_label called for non-ANSI/IBM type\n" +msgstr "" + +#: src/stored/block.c:91 +#, c-format +msgid "" +"Dump block %s %x: size=%d BlkNum=%d\n" +" Hdrcksum=%x cksum=%x\n" +msgstr "" + +#: src/stored/block.c:104 +#, c-format +msgid " Rec: VId=%u VT=%u FI=%s Strm=%s len=%d p=%x\n" +msgstr "" + +#: src/stored/block.c:160 +#, c-format +msgid "%d block read errors not printed.\n" +msgstr "" + +#: src/stored/block.c:248 src/stored/block.c:264 src/stored/block.c:274 +#, c-format +msgid "" +"Volume data error at %u:%u! Wanted ID: \"%s\", got \"%s\". Buffer " +"discarded.\n" +msgstr "" + +#: src/stored/block.c:289 +#, c-format +msgid "" +"Volume data error at %u:%u! Block length %u is insane (too large), probably " +"due to a bad archive.\n" +msgstr "" + +#: src/stored/block.c:315 +#, c-format +msgid "" +"Volume data error at %u:%u!\n" +"Block checksum mismatch in block=%u len=%d: calc=%x blk=%x\n" +msgstr "" + +#: src/stored/block.c:426 +msgid "Cannot write block. Device at EOM.\n" +msgstr "Impossible d'écrire un bloc. Le Device est au bout EOM.\n" + +#: src/stored/block.c:431 +msgid "Attempt to write on read-only Volume.\n" +msgstr "" + +#: src/stored/block.c:483 +#, c-format +msgid "User defined maximum volume capacity %s exceeded on device %s.\n" +msgstr "" + +#: src/stored/block.c:498 +#, c-format +msgid "Unable to write EOF. ERR=%s\n" +msgstr "Impossible d'écrire le marqueur EOF. ERR=%s\n" + +#: src/stored/block.c:524 src/stored/block.c:549 +msgid "Write block header zeroed.\n" +msgstr "" + +#: src/stored/block.c:568 +#, c-format +msgid "Write error at %u:%u on device %s. ERR=%s.\n" +msgstr "Erreur d'écriture à %u:%u sur le device %s. ERR=%s\n" + +#: src/stored/block.c:575 +#, c-format +msgid "End of Volume \"%s\" at %u:%u on device %s. Write of %u bytes got %d.\n" +msgstr "" +"Fin du volume « %s » à %u:%u sur le device %s. Ecriture de %u octets, eu %" +"d.\n" + +#: src/stored/block.c:655 src/stored/block.c:661 +#, c-format +msgid "Backspace file at EOT failed. ERR=%s\n" +msgstr "" + +#: src/stored/block.c:668 +#, c-format +msgid "Backspace record at EOT failed. ERR=%s\n" +msgstr "" + +#: src/stored/block.c:685 +#, c-format +msgid "Re-read last block at EOT failed. ERR=%s" +msgstr "Erreur sur la re-lecture du dernier bloc en EOT. ERR=%s" + +#: src/stored/block.c:695 +#, c-format +msgid "" +"Re-read of last block OK, but block numbers differ. Last block=%u Current " +"block=%u.\n" +msgstr "" + +#: src/stored/block.c:698 +msgid "Re-read of last block succeeded.\n" +msgstr "La re-lecture du dernier bloc écrit a réussi.\n" + +#: src/stored/block.c:726 +#, c-format +msgid "" +"Error writing final EOF to tape. This Volume may not be readable.\n" +"%s" +msgstr "" + +#: src/stored/block.c:740 +#, c-format +msgid "" +"Error writing final part to DVD. This Volume may not be readable.\n" +"%s" +msgstr "" + +#: src/stored/block.c:843 +#, c-format +msgid "" +"Error while writing, current part number is less than the total number of " +"parts (%d/%d, device=%s)\n" +msgstr "" + +#: src/stored/block.c:851 +#, c-format +msgid "Unable to open device next part %s: ERR=%s\n" +msgstr "" + +#: src/stored/block.c:871 +#, c-format +msgid "" +"End of Volume \"%s\" at %u:%u on device %s (part_size=%s, free_space=%s, " +"free_space_errno=%d, errmsg=%s).\n" +msgstr "" + +#: src/stored/block.c:884 +#, c-format +msgid "" +"End of Volume \"%s\" at %u:%u on device %s (part_size=%s, free_space=%s, " +"free_space_errno=%d).\n" +msgstr "" + +#: src/stored/block.c:940 +#, c-format +msgid "Block buffer size looping problem on device %s\n" +msgstr "" + +#: src/stored/block.c:968 +#, fuzzy, c-format +msgid "Unable to open device part=%d %s: ERR=%s\n" +msgstr "3910 Impossible d'ouvrir le device %s : ERR=%s\n" + +#: src/stored/block.c:994 +#, c-format +msgid "Read error on fd=%d at file:blk %u:%u on device %s. ERR=%s.\n" +msgstr "" + +#: src/stored/block.c:1007 +#, c-format +msgid "Read zero bytes at %u:%u on device %s.\n" +msgstr "" + +#: src/stored/block.c:1031 +#, c-format +msgid "" +"Volume data error at %u:%u! Very short block of %d bytes on device %s " +"discarded.\n" +msgstr "" + +#: src/stored/block.c:1056 +#, c-format +msgid "Block length %u is greater than buffer %u. Attempting recovery.\n" +msgstr "" + +#: src/stored/block.c:1075 +#, c-format +msgid "Setting block buffer size to %u bytes.\n" +msgstr "" + +#: src/stored/block.c:1090 +#, c-format +msgid "" +"Volume data error at %u:%u! Short block of %d bytes on device %s discarded.\n" +msgstr "" + +#: src/tools/testls.c:55 +#, c-format +msgid "" +"\n" +"Usage: testls [-d debug_level] [-] [pattern1 ...]\n" +" -a print extended attributes (Win32 debug)\n" +" -dnn set debug level to nn\n" +" -e specify file of exclude patterns\n" +" -i specify file of include patterns\n" +" - read pattern(s) from stdin\n" +" -? print this message.\n" +"\n" +"Patterns are file inclusion -- normally directories.\n" +"Debug level >= 1 prints each file found.\n" +"Debug level >= 10 prints path/file for catalog.\n" +"Errors always printed.\n" +"Files/paths truncated is number with len > 255.\n" +"Truncation is only in catalog.\n" +"\n" +msgstr "" + +#: src/tools/testls.c:140 +#, c-format +msgid "Could not open include file: %s\n" +msgstr "" + +#: src/tools/testls.c:153 +#, c-format +msgid "Could not open exclude file: %s\n" +msgstr "" + +#: src/tools/testls.c:188 src/tools/testfind.c:309 +#, c-format +msgid "Err: Could not access %s: %s\n" +msgstr "" + +#: src/tools/testls.c:191 src/tools/testfind.c:312 +#, c-format +msgid "Err: Could not follow ff->link %s: %s\n" +msgstr "" + +#: src/tools/testls.c:194 src/tools/testfind.c:315 +#, c-format +msgid "Err: Could not stat %s: %s\n" +msgstr "" + +#: src/tools/testls.c:197 src/tools/testfind.c:318 +#, c-format +msgid "Skip: File not saved. No change. %s\n" +msgstr "" + +#: src/tools/testls.c:200 src/tools/testfind.c:321 +#, c-format +msgid "Err: Attempt to backup archive. Not saved. %s\n" +msgstr "" + +#: src/tools/testls.c:203 +#, c-format +msgid "Recursion turned off. Directory not entered. %s\n" +msgstr "" + +#: src/tools/testls.c:206 +#, c-format +msgid "Skip: File system change prohibited. Directory not entered. %s\n" +msgstr "" + +#: src/tools/testls.c:209 src/tools/testfind.c:324 +#, c-format +msgid "Err: Could not open directory %s: %s\n" +msgstr "" + +#: src/tools/testls.c:212 src/tools/testfind.c:327 +#, c-format +msgid "Err: Unknown file ff->type %d: %s\n" +msgstr "" + +#: src/tools/testfind.c:66 +#, c-format +msgid "" +"\n" +"Usage: testfind [-d debug_level] [-] [pattern1 ...]\n" +" -a print extended attributes (Win32 debug)\n" +" -dnn set debug level to nn\n" +" -c specify config file containing FileSet resources\n" +" -f specify which FileSet to use\n" +" -? print this message.\n" +"\n" +"Patterns are used for file inclusion -- normally directories.\n" +"Debug level >= 1 prints each file found.\n" +"Debug level >= 10 prints path/file for catalog.\n" +"Errors are always printed.\n" +"Files/paths truncated is the number of files/paths with len > 255.\n" +"Truncation is only in the catalog.\n" +"\n" +msgstr "" + +#: src/tools/testfind.c:225 +#, c-format +msgid "" +"\n" +"Total files : %d\n" +"Max file length: %d\n" +"Max path length: %d\n" +"Files truncated: %d\n" +"Paths truncated: %d\n" +"Hard links : %d\n" +msgstr "" + +#: src/tools/testfind.c:265 +#, c-format +msgid "Reg: %s\n" +msgstr "" + +#: src/tools/testfind.c:287 +msgid "\t[will not descend: recursion turned off]" +msgstr "" + +#: src/tools/testfind.c:289 +msgid "\t[will not descend: file system change not allowed]" +msgstr "" + +#: src/tools/testfind.c:291 +msgid "\t[will not descend: disallowed file system]" +msgstr "" + +#: src/tools/testfind.c:293 +msgid "\t[will not descend: disallowed drive type]" +msgstr "" + +#: src/tools/testfind.c:377 +#, c-format +msgid "===== Filename truncated to 255 chars: %s\n" +msgstr "" + +#: src/tools/testfind.c:394 +#, c-format +msgid "========== Path name truncated to 255 chars: %s\n" +msgstr "" + +#: src/tools/testfind.c:403 +#, c-format +msgid "========== Path length is zero. File=%s\n" +msgstr "" + +#: src/tools/testfind.c:406 +#, c-format +msgid "Path: %s\n" +msgstr "" + +#: src/tools/bbatch.c:78 +#, c-format +msgid "" +"\n" +"Version: %s (%s)\n" +"Example : bbatch -w /path/to/workdir -h localhost -f dat1 -f dat -f datx\n" +" will start 3 thread and load dat1, dat and datx in your catalog\n" +"See bbatch.c to generate datafile\n" +"\n" +"Usage: bbatch [ options ] -w working/dir -f datafile\n" +" -d set debug level to nn\n" +" -n specify the database name (default bacula)\n" +" -u specify database user name (default bacula)\n" +" -P specify database host (default NULL)\n" +" -w specify working directory\n" +" -v verbose\n" +" -f specify data file\n" +" -? print this message\n" +"\n" +msgstr "" + +#: src/tools/bbatch.c:261 +#, fuzzy, c-format +msgid "Error opening datafile %s\n" +msgstr "Impossible d'ouvrir le fichier de données %s.\n" + +#: src/tools/bbatch.c:271 +#, fuzzy +msgid "Error while inserting file\n" +msgstr "Entrez le nombre de départ : " + +#: src/tools/dbcheck.c:175 +msgid "" +"Warning skipping the additional parameters for working directory/dbname/user/" +"password/host.\n" +msgstr "" + +#: src/tools/dbcheck.c:191 +#, c-format +msgid "Error can not find the Catalog name[%s] in the given config file [%s]\n" +msgstr "" + +#: src/tools/dbcheck.c:193 +#, c-format +msgid "Error there is no Catalog section in the given config file [%s]\n" +msgstr "" + +#: src/tools/dbcheck.c:202 +msgid "Error no Director resource defined.\n" +msgstr "" + +#: src/tools/dbcheck.c:216 +msgid "Wrong number of arguments.\n" +msgstr "" + +#: src/tools/dbcheck.c:221 +msgid "Working directory not supplied.\n" +msgstr "" + +#: src/tools/dbcheck.c:285 +#, c-format +msgid "Hello, this is the database check/correct program.\n" +msgstr "" + +#: src/tools/dbcheck.c:287 +#, c-format +msgid "Modify database is on." +msgstr "" + +#: src/tools/dbcheck.c:289 +#, c-format +msgid "Modify database is off." +msgstr "" + +#: src/tools/dbcheck.c:291 src/tools/dbcheck.c:352 +#, c-format +msgid " Verbose is on.\n" +msgstr "" + +#: src/tools/dbcheck.c:293 src/tools/dbcheck.c:354 +#, c-format +msgid " Verbose is off.\n" +msgstr "" + +#: src/tools/dbcheck.c:295 +#, c-format +msgid "Please select the fuction you want to perform.\n" +msgstr "" + +#: src/tools/dbcheck.c:299 +#, c-format +msgid "" +"\n" +" 1) Toggle modify database flag\n" +" 2) Toggle verbose flag\n" +" 3) Repair bad Filename records\n" +" 4) Repair bad Path records\n" +" 5) Eliminate duplicate Filename records\n" +" 6) Eliminate duplicate Path records\n" +" 7) Eliminate orphaned Jobmedia records\n" +" 8) Eliminate orphaned File records\n" +" 9) Eliminate orphaned Path records\n" +" 10) Eliminate orphaned Filename records\n" +" 11) Eliminate orphaned FileSet records\n" +" 12) Eliminate orphaned Client records\n" +" 13) Eliminate orphaned Job records\n" +" 14) Eliminate all Admin records\n" +" 15) Eliminate all Restore records\n" +" 16) All (3-15)\n" +" 17) Quit\n" +msgstr "" + +#: src/tools/dbcheck.c:318 +#, c-format +msgid "" +"\n" +" 1) Toggle modify database flag\n" +" 2) Toggle verbose flag\n" +" 3) Check for bad Filename records\n" +" 4) Check for bad Path records\n" +" 5) Check for duplicate Filename records\n" +" 6) Check for duplicate Path records\n" +" 7) Check for orphaned Jobmedia records\n" +" 8) Check for orphaned File records\n" +" 9) Check for orphaned Path records\n" +" 10) Check for orphaned Filename records\n" +" 11) Check for orphaned FileSet records\n" +" 12) Check for orphaned Client records\n" +" 13) Check for orphaned Job records\n" +" 14) Check for all Admin records\n" +" 15) Check for all Restore records\n" +" 16) All (3-15)\n" +" 17) Quit\n" +msgstr "" + +#: src/tools/dbcheck.c:338 +msgid "Select function number: " +msgstr "" + +#: src/tools/dbcheck.c:345 +#, c-format +msgid "Database will be modified.\n" +msgstr "" + +#: src/tools/dbcheck.c:347 +#, c-format +msgid "Database will NOT be modified.\n" +msgstr "" + +#: src/tools/dbcheck.c:437 +#, c-format +msgid "JobId=%s Name=\"%s\" StartTime=%s\n" +msgstr "" + +#: src/tools/dbcheck.c:445 +#, c-format +msgid "Orphaned JobMediaId=%s JobId=%s Volume=\"%s\"\n" +msgstr "" + +#: src/tools/dbcheck.c:452 +#, c-format +msgid "Orphaned FileId=%s JobId=%s Volume=\"%s\"\n" +msgstr "" + +#: src/tools/dbcheck.c:459 +#, c-format +msgid "Orphaned FileSetId=%s FileSet=\"%s\" MD5=%s\n" +msgstr "" + +#: src/tools/dbcheck.c:466 +#, c-format +msgid "Orphaned ClientId=%s Name=\"%s\"\n" +msgstr "" + +#: src/tools/dbcheck.c:520 +#, c-format +msgid "Deleting: %s\n" +msgstr "" + +#: src/tools/dbcheck.c:594 +#, c-format +msgid "Checking for duplicate Filename entries.\n" +msgstr "" + +#: src/tools/dbcheck.c:603 +#, c-format +msgid "Found %d duplicate Filename records.\n" +msgstr "" + +#: src/tools/dbcheck.c:604 +msgid "Print the list? (yes/no): " +msgstr "" + +#: src/tools/dbcheck.c:623 src/tools/dbcheck.c:681 +#, c-format +msgid "Found %d for: %s\n" +msgstr "" + +#: src/tools/dbcheck.c:651 +#, c-format +msgid "Checking for duplicate Path entries.\n" +msgstr "" + +#: src/tools/dbcheck.c:661 +#, c-format +msgid "Found %d duplicate Path records.\n" +msgstr "" + +#: src/tools/dbcheck.c:662 src/tools/dbcheck.c:716 src/tools/dbcheck.c:760 +#: src/tools/dbcheck.c:803 src/tools/dbcheck.c:842 src/tools/dbcheck.c:880 +#: src/tools/dbcheck.c:921 src/tools/dbcheck.c:962 src/tools/dbcheck.c:1000 +#: src/tools/dbcheck.c:1033 src/tools/dbcheck.c:1070 src/tools/dbcheck.c:1134 +msgid "Print them? (yes/no): " +msgstr "" + +#: src/tools/dbcheck.c:709 +#, c-format +msgid "Checking for orphaned JobMedia entries.\n" +msgstr "" + +#: src/tools/dbcheck.c:715 +#, c-format +msgid "Found %d orphaned JobMedia records.\n" +msgstr "" + +#: src/tools/dbcheck.c:733 +#, c-format +msgid "Deleting %d orphaned JobMedia records.\n" +msgstr "" + +#: src/tools/dbcheck.c:750 +#, c-format +msgid "Checking for orphaned File entries. This may take some time!\n" +msgstr "" + +#: src/tools/dbcheck.c:759 +#, c-format +msgid "Found %d orphaned File records.\n" +msgstr "" + +#: src/tools/dbcheck.c:776 +#, c-format +msgid "Deleting %d orphaned File records.\n" +msgstr "" + +#: src/tools/dbcheck.c:793 +#, c-format +msgid "Checking for orphaned Path entries. This may take some time!\n" +msgstr "" + +#: src/tools/dbcheck.c:802 +#, c-format +msgid "Found %d orphaned Path records.\n" +msgstr "" + +#: src/tools/dbcheck.c:815 +#, c-format +msgid "Deleting %d orphaned Path records.\n" +msgstr "" + +#: src/tools/dbcheck.c:832 +#, c-format +msgid "Checking for orphaned Filename entries. This may take some time!\n" +msgstr "" + +#: src/tools/dbcheck.c:841 +#, c-format +msgid "Found %d orphaned Filename records.\n" +msgstr "" + +#: src/tools/dbcheck.c:854 +#, c-format +msgid "Deleting %d orphaned Filename records.\n" +msgstr "" + +#: src/tools/dbcheck.c:869 +#, c-format +msgid "Checking for orphaned FileSet entries. This takes some time!\n" +msgstr "" + +#: src/tools/dbcheck.c:879 +#, c-format +msgid "Found %d orphaned FileSet records.\n" +msgstr "" + +#: src/tools/dbcheck.c:894 +#, c-format +msgid "Deleting %d orphaned FileSet records.\n" +msgstr "" + +#: src/tools/dbcheck.c:903 +#, c-format +msgid "Checking for orphaned Client entries.\n" +msgstr "" + +#: src/tools/dbcheck.c:920 +#, c-format +msgid "Found %d orphaned Client records.\n" +msgstr "" + +#: src/tools/dbcheck.c:935 +#, c-format +msgid "Deleting %d orphaned Client records.\n" +msgstr "" + +#: src/tools/dbcheck.c:944 +#, c-format +msgid "Checking for orphaned Job entries.\n" +msgstr "" + +#: src/tools/dbcheck.c:961 +#, c-format +msgid "Found %d orphaned Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:976 +#, c-format +msgid "Deleting %d orphaned Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:978 +#, c-format +msgid "Deleting JobMedia records of orphaned Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:980 +#, c-format +msgid "Deleting Log records of orphaned Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:990 +#, c-format +msgid "Checking for Admin Job entries.\n" +msgstr "" + +#: src/tools/dbcheck.c:999 +#, c-format +msgid "Found %d Admin Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:1014 +#, c-format +msgid "Deleting %d Admin Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:1023 +#, c-format +msgid "Checking for Restore Job entries.\n" +msgstr "" + +#: src/tools/dbcheck.c:1032 +#, c-format +msgid "Found %d Restore Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:1047 +#, c-format +msgid "Deleting %d Restore Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:1060 +#, c-format +msgid "Checking for Filenames with a trailing slash\n" +msgstr "" + +#: src/tools/dbcheck.c:1069 +#, c-format +msgid "Found %d bad Filename records.\n" +msgstr "" + +#: src/tools/dbcheck.c:1087 src/tools/dbcheck.c:1150 +#, c-format +msgid "Reparing %d bad Filename records.\n" +msgstr "" + +#: src/tools/dbcheck.c:1124 +#, c-format +msgid "Checking for Paths without a trailing slash\n" +msgstr "" + +#: src/tools/dbcheck.c:1133 +#, c-format +msgid "Found %d bad Path records.\n" +msgstr "" + +#: src/tools/bsmtp.c:145 +#, c-format +msgid "Fatal malformed reply from %s: %s\n" +msgstr "" + +#: src/tools/bsmtp.c:153 +#, fuzzy, c-format +msgid "Fatal fgets error: ERR=%s\n" +msgstr "erreur de fermeture : ERR=%s\n" + +#: src/tools/bsmtp.c:186 +#, c-format +msgid "" +"\n" +"Usage: %s [-f from] [-h mailhost] [-s subject] [-c copy] [recipient ...]\n" +" -8 set charset utf-8\n" +" -c set the Cc: field\n" +" -dnn set debug level to nn\n" +" -f set the From: field\n" +" -h use mailhost:port as the SMTP server\n" +" -s set the Subject: field\n" +" -r set the Reply-To: field\n" +" -l set the maximum number of lines that should be sent " +"(default: unlimited)\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/tools/bsmtp.c:336 +msgid "Fatal error: no recipient given.\n" +msgstr "" + +#: src/tools/bsmtp.c:365 +#, c-format +msgid "Fatal gethostname error: ERR=%s\n" +msgstr "" + +#: src/tools/bsmtp.c:369 +#, c-format +msgid "Fatal gethostbyname for myself failed \"%s\": ERR=%s\n" +msgstr "" + +#: src/tools/bsmtp.c:405 +#, c-format +msgid "Error unknown mail host \"%s\": ERR=%s\n" +msgstr "" + +#: src/tools/bsmtp.c:408 +msgid "Retrying connection using \"localhost\".\n" +msgstr "" + +#: src/tools/bsmtp.c:416 +#, c-format +msgid "Fatal error: Unknown address family for smtp host: %d\n" +msgstr "" + +#: src/tools/bsmtp.c:425 src/tools/bsmtp.c:430 +#, c-format +msgid "Fatal socket error: ERR=%s\n" +msgstr "" + +#: src/tools/bsmtp.c:435 +#, c-format +msgid "Fatal connect error to %s: ERR=%s\n" +msgstr "" + +#: src/tools/bsmtp.c:443 +#, fuzzy, c-format +msgid "Fatal _open_osfhandle error: ERR=%s\n" +msgstr "erreur de fermeture : ERR=%s\n" + +#: src/tools/bsmtp.c:450 src/tools/bsmtp.c:454 src/tools/bsmtp.c:463 +#: src/tools/bsmtp.c:467 +#, c-format +msgid "Fatal fdopen error: ERR=%s\n" +msgstr "" + +#: src/tools/bsmtp.c:459 +#, c-format +msgid "Fatal dup error: ERR=%s\n" +msgstr "" + +#: src/tools/fstype.c:47 +#, c-format +msgid "" +"\n" +"Usage: fstype [-v] path ...\n" +"\n" +" Print the file system type a given file/directory is on.\n" +" The following options are supported:\n" +"\n" +" -v print both path and file system type.\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/tools/fstype.c:101 src/tools/drivetype.c:101 +#, c-format +msgid "%s: unknown\n" +msgstr "" + +#: src/tools/drivetype.c:47 +#, c-format +msgid "" +"\n" +"Usage: drivetype [-v] path ...\n" +"\n" +" Print the drive type a given file/directory is on.\n" +" The following options are supported:\n" +"\n" +" -v print both path and file system type.\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/console/console.c:114 +#, c-format +msgid "" +"\n" +"Version: " +msgstr "" +"\n" +"Version : " + +#: src/console/console.c:162 +msgid "input from file" +msgstr "" + +#: src/console/console.c:163 +msgid "output to file" +msgstr "" + +#: src/console/console.c:165 +msgid "output to file and terminal" +msgstr "" + +#: src/console/console.c:166 +msgid "sleep specified time" +msgstr "" + +#: src/console/console.c:168 +msgid "print Console's version" +msgstr "" + +#: src/console/console.c:169 +msgid "echo command string" +msgstr "" + +#: src/console/console.c:170 +msgid "execute an external command" +msgstr "" + +#: src/console/console.c:172 +msgid "zed_keys = use zed keys instead of bash keys" +msgstr "" + +#: src/console/console.c:205 +msgid ": is an invalid command\n" +msgstr "%s : est une commande invalide.\n" + +#: src/console/console.c:462 +msgid "Available Directors:\n" +msgstr "" + +#: src/console/console.c:466 +#, c-format +msgid "%2d: %s at %s:%d\n" +msgstr "" + +#: src/console/console.c:470 +msgid "Select Director by entering a number: " +msgstr "" + +#: src/console/console.c:475 +#, c-format +msgid "%s is not a number. You must enter a number between 1 and %d\n" +msgstr "%s n'est pas un nombre. Vous devez saisir un nombre entre 1 et %d\n" + +#: src/console/console.c:481 +#, c-format +msgid "You must enter a number between 1 and %d\n" +msgstr "Vous devez saisir un nombre entre 1 et %d\n" + +#: src/console/console.c:521 src/tray-monitor/tray-monitor.c:920 +#, c-format +msgid "Connecting to Director %s:%d\n" +msgstr "Connexion au Director %s:%d\n" + +#: src/console/console.c:588 +msgid "Enter a period to cancel a command.\n" +msgstr "Tapez un point (.) pour annuler une commande.\n" + +#: src/console/console.c:849 +msgid "Too many arguments on input command.\n" +msgstr "Trop d'arguments sur la commande.\n" + +#: src/console/console.c:853 +msgid "First argument to input command must be a filename.\n" +msgstr "Le premier argument de la commande doit être un fichier.\n" + +#: src/console/console.c:858 +#, c-format +msgid "Cannot open file %s for input. ERR=%s\n" +msgstr "Impossible d'ouvrir le fichier %s pour lecture. ERR=%s\n" + +#: src/console/console.c:888 +msgid "Too many arguments on output/tee command.\n" +msgstr "" + +#: src/console/console.c:905 +#, c-format +msgid "Cannot open file %s for output. ERR=%s\n" +msgstr "Impossible d'ouvrir le fichier %s pour la sortie. ERR=%s\n" + +#: src/console/console.c:924 +msgid "Too many arguments. Enclose command in double quotes.\n" +msgstr "" +"Trop d'arguments sur la commande. Essayez d'utiliser des « \" » autour des " +"commandes\n" + +#: src/console/console.c:933 +#, fuzzy, c-format +msgid "Cannot popen(\"%s\", \"r\"): ERR=%s\n" +msgstr "Impossible d'ouvrir le fichier %s : ERR=%s\n" + +#: src/tray-monitor/authenticate.c:88 +msgid "" +"Director authorization problem.\n" +"Most likely the passwords do not agree.\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" +"Problème d'authentification avec le director.\n" +"Le plus souvent, les mots de pass ne correspondent pas.\n" +"Vous trouverez de l'aide sur\n" +"http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors\n" + +#: src/tray-monitor/authenticate.c:138 +msgid "" +"Director and Storage daemon passwords or names not the same.\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" +"Problème d'authentification entre le storage et le director.\n" +"Le plus souvent, les mots de pass ne correspondent pas.\n" +"Vous trouverez de l'aide sur\n" +"http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors\n" + +#: src/tray-monitor/authenticate.c:145 +#, fuzzy, c-format +msgid "bdird set configuration file to file\n" +" -dnn set debug level to nn\n" +" -t test - read configuration and exit\n" +" -? print this message.\n" +"\n" +msgstr "" +") %s %s %s\n" +"\n" +"Usage : bconsole [-s] [-c config_file] [-d niveau_debug]\n" +" -c set configuration file to file\n" +" -dnn set debug level to nn\n" +" -s no signals\n" +" -t test - lecture de la configuration et sortie\n" +"\n" + +#: src/tray-monitor/tray-monitor.c:261 +#, c-format +msgid "" +"Error: %d Monitor resources defined in %s. You must define one and only one " +"Monitor resource.\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:292 +#, fuzzy, c-format +msgid "" +"No Client, Storage or Director resource defined in %s\n" +"Without that I don't how to get status from the File, Storage or Director " +"Daemon :-(\n" +msgstr "" +"Pas de director défini pour %s\n" +"Sans cette définition, il n'est pas possible de se connecter à celui-ci.\n" + +#: src/tray-monitor/tray-monitor.c:314 +#, c-format +msgid "" +"Invalid refresh interval defined in %s\n" +"This value must be greater or equal to 1 second and less or equal to 10 " +"minutes (read value: %d).\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:321 +#, fuzzy +msgid "Bacula daemon status monitor" +msgstr "Bacula Storage : En cours" + +#: src/tray-monitor/tray-monitor.c:330 +msgid "Open status window..." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:336 +msgid "Exit" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:348 +#, fuzzy +msgid "Bacula tray monitor" +msgstr "Bacula Storage : En cours" + +#: src/tray-monitor/tray-monitor.c:373 +msgid " (DIR)" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:377 +msgid " (FD)" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:381 +msgid " (SD)" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:394 +#, fuzzy +msgid "Unknown status." +msgstr "Erreur inconnue." + +#: src/tray-monitor/tray-monitor.c:464 +msgid "Refresh interval in seconds: " +msgstr "" + +#: src/tray-monitor/tray-monitor.c:472 +msgid "Refresh now" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:476 +#, fuzzy +msgid "About" +msgstr "Abort" + +#: src/tray-monitor/tray-monitor.c:480 +msgid "Close" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:500 +#, fuzzy, c-format +msgid "Disconnecting from Director %s:%d\n" +msgstr "Connexion au Director %s:%d\n" + +#: src/tray-monitor/tray-monitor.c:503 +#, fuzzy, c-format +msgid "Disconnecting from Client %s:%d\n" +msgstr "Connexion au client %s (%s:%d)\n" + +#: src/tray-monitor/tray-monitor.c:506 +#, fuzzy, c-format +msgid "Disconnecting from Storage %s:%d\n" +msgstr "Connexion au Director %s:%d\n" + +#: src/tray-monitor/tray-monitor.c:544 src/tray-monitor/tray-monitor.c:555 +msgid "Bacula Tray Monitor" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:546 src/tray-monitor/tray-monitor.c:557 +msgid "Written by Nicolas Boichat\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:547 src/tray-monitor/tray-monitor.c:558 +msgid "Version" +msgstr "Version" + +#: src/tray-monitor/tray-monitor.c:640 +#, c-format +msgid "Error, currentitem is not a Client or a Storage..\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:714 +#, fuzzy, c-format +msgid "" +"Current job: %s\n" +"Last job: %s" +msgstr "Le statut actuel du volume (Volume status) est : %s\n" + +#: src/tray-monitor/tray-monitor.c:726 +#, fuzzy, c-format +msgid " (%d errors)" +msgstr "est en erreur" + +#: src/tray-monitor/tray-monitor.c:729 +#, fuzzy, c-format +msgid " (%d error)" +msgstr "BUS error" + +#: src/tray-monitor/tray-monitor.c:767 +#, fuzzy +msgid "No current job." +msgstr "Pas de RecyclePool courant\n" + +#: src/tray-monitor/tray-monitor.c:770 +msgid "No last job." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:778 +msgid "Job status: Created" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:783 +#, fuzzy +msgid "Job status: Running" +msgstr "Pas de job en cours.\n" + +#: src/tray-monitor/tray-monitor.c:787 +msgid "Job status: Blocked" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:792 +#, fuzzy +msgid "Job status: Terminated" +msgstr "est terminé" + +#: src/tray-monitor/tray-monitor.c:797 +msgid "Job status: Terminated in error" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:803 +msgid "Job status: Error" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:807 +#, fuzzy +msgid "Job status: Fatal error" +msgstr "%s : %s Erreur fatale : " + +#: src/tray-monitor/tray-monitor.c:812 +#, fuzzy +msgid "Job status: Verify differences" +msgstr "Vérification des différences" + +#: src/tray-monitor/tray-monitor.c:817 +#, fuzzy +msgid "Job status: Canceled" +msgstr "Le job %s est annulé.\n" + +#: src/tray-monitor/tray-monitor.c:822 +#, fuzzy +msgid "Job status: Waiting on File daemon" +msgstr "%s Job %s est en attente de la connexion du Client.\n" + +#: src/tray-monitor/tray-monitor.c:827 +#, fuzzy +msgid "Job status: Waiting on the Storage daemon" +msgstr "est en attente du Storage %s" + +#: src/tray-monitor/tray-monitor.c:832 +#, fuzzy +msgid "Job status: Waiting for new media" +msgstr " Le Device est BLOQUÉ en attente d'un média.\n" + +#: src/tray-monitor/tray-monitor.c:837 +#, fuzzy +msgid "Job status: Waiting for Mount" +msgstr "En attente d'un montage" + +#: src/tray-monitor/tray-monitor.c:842 +#, fuzzy +msgid "Job status: Waiting for storage resource" +msgstr "En attente du Storage" + +#: src/tray-monitor/tray-monitor.c:847 +#, fuzzy +msgid "Job status: Waiting for job resource" +msgstr "En attente du Storage" + +#: src/tray-monitor/tray-monitor.c:852 +#, fuzzy +msgid "Job status: Waiting for Client resource" +msgstr "%s Job %s est en attente de la connexion du Client.\n" + +#: src/tray-monitor/tray-monitor.c:857 +msgid "Job status: Waiting for maximum jobs" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:862 +#, fuzzy +msgid "Job status: Waiting for start time" +msgstr "attend son heure de démarrage" + +#: src/tray-monitor/tray-monitor.c:867 +#, fuzzy +msgid "Job status: Waiting for higher priority jobs to finish" +msgstr "attend qu'un job plus prioritaire se termine" + +#: src/tray-monitor/tray-monitor.c:872 +#, fuzzy, c-format +msgid "Unknown job status %c." +msgstr "est dans un état inconnu %c" + +#: src/tray-monitor/tray-monitor.c:873 +#, c-format +msgid "Job status: Unknown(%c)" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:880 +#, c-format +msgid "Bad scan : '%s' %d\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:921 src/qt-console/bcomm/dircomm.cpp:120 +#: src/qt-console/console/console.cpp:137 +#, fuzzy, c-format +msgid "Connecting to Director %s:%d" +msgstr "Connexion au Director %s:%d\n" + +#: src/tray-monitor/tray-monitor.c:927 +#, fuzzy, c-format +msgid "Connecting to Client %s:%d\n" +msgstr "Connexion au client %s (%s:%d)\n" + +#: src/tray-monitor/tray-monitor.c:928 +#, fuzzy, c-format +msgid "Connecting to Client %s:%d" +msgstr "Connexion au client %s (%s:%d)\n" + +#: src/tray-monitor/tray-monitor.c:929 +msgid "File daemon" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:934 +#, fuzzy, c-format +msgid "Connecting to Storage %s:%d\n" +msgstr "Connexion au Director %s:%d\n" + +#: src/tray-monitor/tray-monitor.c:935 +#, fuzzy, c-format +msgid "Connecting to Storage %s:%d" +msgstr "Connexion au Director %s:%d\n" + +#: src/tray-monitor/tray-monitor.c:940 src/tray-monitor/tray-monitor.c:978 +#, c-format +msgid "Error, currentitem is not a Client, a Storage or a Director..\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:946 +#, fuzzy +msgid "Cannot connect to daemon.\n" +msgstr "Impossible de se connecter au démon Storage\n" + +#: src/tray-monitor/tray-monitor.c:947 +#, fuzzy +msgid "Cannot connect to daemon." +msgstr "Impossible de se connecter au démon Storage\n" + +#: src/tray-monitor/tray-monitor.c:959 +#, fuzzy, c-format +msgid "Authentication error : %s" +msgstr "Erreur sur l'autochangeur : ERR=%s\n" + +#: src/tray-monitor/tray-monitor.c:966 +#, fuzzy +msgid "Opened connection with Director daemon.\n" +msgstr "Impossible de se connecter au Storage daemon.\n" + +#: src/tray-monitor/tray-monitor.c:967 +#, fuzzy +msgid "Opened connection with Director daemon." +msgstr "Impossible de se connecter au Storage daemon.\n" + +#: src/tray-monitor/tray-monitor.c:970 +#, fuzzy +msgid "Opened connection with File daemon.\n" +msgstr "Impossible de se connecter au client.\n" + +#: src/tray-monitor/tray-monitor.c:971 +#, fuzzy +msgid "Opened connection with File daemon." +msgstr "Impossible de se connecter au client.\n" + +#: src/tray-monitor/tray-monitor.c:974 +#, fuzzy +msgid "Opened connection with Storage daemon.\n" +msgstr "Impossible de se connecter au Storage daemon.\n" + +#: src/tray-monitor/tray-monitor.c:975 +#, fuzzy +msgid "Opened connection with Storage daemon." +msgstr "Impossible de se connecter au Storage daemon.\n" + +#: src/tray-monitor/tray-monitor.c:1012 +msgid "<< Error: BNET_PROMPT signal received. >>\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:1017 src/wx-console/console_thread.cpp:486 +msgid "<< Heartbeat signal received, answered. >>\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:1021 +#, c-format +msgid "<< Unexpected signal received : %s >>\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:1026 +#, fuzzy +msgid "\n" +msgstr "%s : ERREUR : " + +#: src/tray-monitor/tray-monitor.c:1030 +msgid "Error : BNET_HARDEOF or BNET_ERROR" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:1036 +msgid "\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:1040 +#, fuzzy +msgid "Error : Connection closed." +msgstr "Connexion...\n" + +#: src/tray-monitor/tray_conf.c:177 +#, c-format +msgid "Monitor: name=%s FDtimeout=%s SDtimeout=%s\n" +msgstr "" + +#: src/tray-monitor/tray_conf.c:183 +#, c-format +msgid "Director: name=%s address=%s FDport=%d\n" +msgstr "" + +#: src/tray-monitor/tray_conf.c:187 +#, fuzzy, c-format +msgid "Client: name=%s address=%s FDport=%d\n" +msgstr "Client « %s » adresse positionné à %s\n" + +#: src/tray-monitor/tray_conf.c:191 +#, c-format +msgid "Storage: name=%s address=%s SDport=%d\n" +msgstr "" + +#: src/lib/cram-md5.c:111 src/lib/cram-md5.c:139 +msgid "1999 Authorization failed.\n" +msgstr "" + +#: src/lib/mem_pool.c:108 +#, c-format +msgid "MemPool index %d larger than max %d\n" +msgstr "" + +#: src/lib/mem_pool.c:126 src/lib/mem_pool.c:146 src/lib/mem_pool.c:181 +#: src/lib/mem_pool.c:253 src/lib/mem_pool.c:273 src/lib/mem_pool.c:311 +#: src/lib/mem_pool.c:583 +#, c-format +msgid "Out of memory requesting %d bytes\n" +msgstr "Plus de mémoire à l'allocation de %d octets\n" + +#: src/lib/util.c:182 +msgid "Running" +msgstr "En cours" + +#: src/lib/util.c:185 +msgid "Blocked" +msgstr "Bloqué" + +#: src/lib/util.c:195 +msgid "Non-fatal error" +msgstr "Erreur non fatale" + +#: src/lib/util.c:198 src/lib/util.c:271 +msgid "Canceled" +msgstr "Annulé" + +#: src/lib/util.c:201 +msgid "Verify differences" +msgstr "Vérification des différences" + +#: src/lib/util.c:204 +msgid "Waiting on FD" +msgstr "En attente du FD" + +#: src/lib/util.c:207 +msgid "Wait on SD" +msgstr "En attente du SD" + +#: src/lib/util.c:210 +msgid "Wait for new Volume" +msgstr "En attente d'un nouveau Volume" + +#: src/lib/util.c:213 +msgid "Waiting for mount" +msgstr "En attente d'un montage" + +#: src/lib/util.c:216 +msgid "Waiting for Storage resource" +msgstr "En attente du Storage" + +#: src/lib/util.c:219 +msgid "Waiting for Job resource" +msgstr "" + +#: src/lib/util.c:222 +msgid "Waiting for Client resource" +msgstr "" + +#: src/lib/util.c:225 +msgid "Waiting on Max Jobs" +msgstr "" + +#: src/lib/util.c:228 +msgid "Waiting for Start Time" +msgstr "" + +#: src/lib/util.c:231 +msgid "Waiting on Priority" +msgstr "" + +#: src/lib/util.c:244 +#, c-format +msgid "Unknown Job termination status=%d" +msgstr "" + +#: src/lib/util.c:268 +msgid "Fatal Error" +msgstr "" + +#: src/lib/util.c:274 +msgid "Differences" +msgstr "" + +#: src/lib/util.c:277 +msgid "Unknown term code" +msgstr "" + +#: src/lib/util.c:305 +msgid "Migrate" +msgstr "Migrer" + +#: src/lib/util.c:308 +msgid "Copy" +msgstr "Copier" + +#: src/lib/util.c:311 src/wx-console/wxbmainframe.cpp:276 +msgid "Console" +msgstr "" + +#: src/lib/util.c:314 +msgid "System or Console" +msgstr "" + +#: src/lib/util.c:317 +msgid "Scan" +msgstr "" + +#: src/lib/util.c:320 +msgid "Unknown Type" +msgstr "" + +#: src/lib/util.c:352 +msgid "Verify Init Catalog" +msgstr "" + +#: src/lib/util.c:361 +msgid "Verify Data" +msgstr "" + +#: src/lib/util.c:705 +msgid "Working directory not defined. Cannot continue.\n" +msgstr "" + +#: src/lib/util.c:708 +#, c-format +msgid "Working Directory: \"%s\" not found. Cannot continue.\n" +msgstr "" + +#: src/lib/util.c:712 +#, c-format +msgid "Working Directory: \"%s\" is not a directory. Cannot continue.\n" +msgstr "" + +#: src/lib/message.c:274 src/lib/message.c:284 +#, c-format +msgid "Could not open console message file %s: ERR=%s\n" +msgstr "" + +#: src/lib/message.c:289 +#, c-format +msgid "Could not get con mutex: ERR=%s\n" +msgstr "" + +#: src/lib/message.c:393 +#, c-format +msgid "open mail pipe %s failed: ERR=%s\n" +msgstr "" + +#: src/lib/message.c:399 +msgid "Bacula Message" +msgstr "Message de Bacula" + +#: src/lib/message.c:459 +msgid "open mail pipe failed.\n" +msgstr "" + +#: src/lib/message.c:471 +#, c-format +msgid "close error: ERR=%s\n" +msgstr "erreur de fermeture : ERR=%s\n" + +#: src/lib/message.c:482 +#, c-format +msgid "Mail prog: %s" +msgstr "" + +#: src/lib/message.c:491 +#, c-format +msgid "" +"Mail program terminated in error.\n" +"CMD=%s\n" +"ERR=%s\n" +msgstr "" +"La commande mail s'est terminée en erreur.\n" +"CMD=%s\n" +"ERR=%s\n" + +#: src/lib/message.c:590 src/lib/message.c:743 +#, c-format +msgid "fopen %s failed: ERR=%s\n" +msgstr "fopen %s en erreur : ERR=%s\n" + +#: src/lib/message.c:725 +#, c-format +msgid "" +"Operator mail program terminated in error.\n" +"CMD=%s\n" +"ERR=%s\n" +msgstr "" + +#: src/lib/message.c:1024 +#, c-format +msgid "%s: ABORTING due to ERROR in %s:%d\n" +msgstr "" + +#: src/lib/message.c:1028 +#, c-format +msgid "%s: ERROR TERMINATION at %s:%d\n" +msgstr "" + +#: src/lib/message.c:1033 +#, c-format +msgid "%s: Fatal Error because: " +msgstr "%s : Erreur Fatale car : " + +#: src/lib/message.c:1035 +#, c-format +msgid "%s: Fatal Error at %s:%d because:\n" +msgstr "%s : Erreur Fatale à %s:%d car :\n" + +#: src/lib/message.c:1039 +#, c-format +msgid "%s: ERROR: " +msgstr "%s : ERREUR : " + +#: src/lib/message.c:1041 +#, c-format +msgid "%s: ERROR in %s:%d " +msgstr "%s : ERREUR dans %s:%d " + +#: src/lib/message.c:1044 +#, c-format +msgid "%s: Warning: " +msgstr "%s : Attention : " + +#: src/lib/message.c:1047 +#, c-format +msgid "%s: Security violation: " +msgstr "" + +#: src/lib/message.c:1122 +#, c-format +msgid "%s ABORTING due to ERROR\n" +msgstr "" + +#: src/lib/message.c:1125 +#, c-format +msgid "%s ERROR TERMINATION\n" +msgstr "" + +#: src/lib/message.c:1128 +#, c-format +msgid "%s JobId %u: Fatal error: " +msgstr "%s JobId %u: Erreur fatale : " + +#: src/lib/message.c:1134 +#, c-format +msgid "%s JobId %u: Error: " +msgstr "%s JobId %u : Erreur : " + +#: src/lib/message.c:1140 +#, c-format +msgid "%s JobId %u: Warning: " +msgstr "%s JobId %u : Attention : " + +#: src/lib/message.c:1143 +#, c-format +msgid "%s JobId %u: Security violation: " +msgstr "" + +#: src/lib/berrno.c:62 +msgid "Child exited normally." +msgstr "" + +#: src/lib/berrno.c:69 +msgid "Unknown error during program execvp" +msgstr "" + +#: src/lib/berrno.c:72 +#, c-format +msgid "Child exited with code %d" +msgstr "" + +#: src/lib/berrno.c:80 +#, c-format +msgid "Child died from signal %d: %s" +msgstr "Le processus fils est mort par le signal %d : %s" + +#: src/lib/berrno.c:86 +msgid "Invalid errno. No error message possible." +msgstr "" + +#: src/lib/bnet.c:118 +#, c-format +msgid "Attr spool write error. ERR=%s\n" +msgstr "Erreur pendant l'écriture des attributs dans le spool. ERR=%s\n" + +#: src/lib/bnet.c:244 src/lib/bnet.c:284 +msgid "TLS connection initialization failed.\n" +msgstr "Initialisation de la connexion TLS échouée.\n" + +#: src/lib/bnet.c:252 +msgid "TLS Negotiation failed.\n" +msgstr "Négociation TLS échouée.\n" + +#: src/lib/bnet.c:258 src/lib/bnet.c:299 +msgid "" +"TLS certificate verification failed. Peer certificate did not match a " +"required commonName\n" +msgstr "" + +#: src/lib/bnet.c:306 +#, c-format +msgid "" +"TLS host certificate verification failed. Host %s did not match presented " +"certificate\n" +msgstr "" + +#: src/lib/bnet.c:323 +msgid "TLS enabled but not configured.\n" +msgstr "TLS activé mais non configuré.\n" + +#: src/lib/bnet.c:329 +msgid "TLS enable but not configured.\n" +msgstr "TLS actif mais non configuré.\n" + +#: src/lib/bnet.c:387 +msgid "No problem." +msgstr "Pas de problème." + +#: src/lib/bnet.c:390 +msgid "Authoritative answer for host not found." +msgstr "" + +#: src/lib/bnet.c:393 +msgid "Non-authoritative for host not found, or ServerFail." +msgstr "" + +#: src/lib/bnet.c:396 +msgid "Non-recoverable errors, FORMERR, REFUSED, or NOTIMP." +msgstr "" + +#: src/lib/bnet.c:399 +msgid "Valid name, no data record of resquested type." +msgstr "" + +#: src/lib/bnet.c:402 +msgid "Unknown error." +msgstr "Erreur inconnue." + +#: src/lib/bnet.c:656 +#, c-format +msgid "Unknown sig %d" +msgstr "sig inconnu %d" + +#: src/lib/bpipe.c:362 src/lib/bpipe.c:452 +msgid "Program killed by Bacula watchdog (timeout)\n" +msgstr "" + +#: src/lib/watchdog.c:83 +#, c-format +msgid "Unable to initialize watchdog lock. ERR=%s\n" +msgstr "" + +#: src/lib/watchdog.c:180 +msgid "BUG! register_watchdog called before start_watchdog\n" +msgstr "" + +#: src/lib/watchdog.c:183 +#, c-format +msgid "BUG! Watchdog %p has NULL callback\n" +msgstr "" + +#: src/lib/watchdog.c:186 +#, c-format +msgid "BUG! Watchdog %p has zero interval\n" +msgstr "" + +#: src/lib/watchdog.c:206 +msgid "BUG! unregister_watchdog_unlocked called before start_watchdog\n" +msgstr "" + +#: src/lib/watchdog.c:325 +#, c-format +msgid "rwl_writelock failure. ERR=%s\n" +msgstr "" + +#: src/lib/watchdog.c:340 +#, c-format +msgid "rwl_writeunlock failure. ERR=%s\n" +msgstr "" + +#: src/lib/bsock.c:122 +#, c-format +msgid "" +"Could not connect to %s on %s:%d. ERR=%s\n" +"Retrying ...\n" +msgstr "" +"Impossible de se connecter à %s sur %s:%d. ERR=%s\n" +"Réessaie...\n" + +#: src/lib/bsock.c:128 +#, c-format +msgid "Unable to connect to %s on %s:%d. ERR=%s\n" +msgstr "Impossible de se connecter à %s sur %s:%d. ERR=%s\n" + +#: src/lib/bsock.c:181 +#, fuzzy, c-format +msgid "gethostbyname() for host \"%s\" failed: ERR=%s\n" +msgstr "Impossible de supprimer le volume « %s ». ERR=%s" + +#: src/lib/bsock.c:201 +#, c-format +msgid "Socket open error. proto=%d port=%d. ERR=%s\n" +msgstr "Ouverture de la socket en erreur. proto=%d port=%d. ERR=%s\n" + +#: src/lib/bsock.c:210 src/lib/bsock.c:246 src/lib/bnet_server.c:202 +#: src/lib/bnet_server.c:370 +#, c-format +msgid "Cannot set SO_KEEPALIVE on socket: %s\n" +msgstr "Impossible de positionner SO_KEEPALIVE sur la socket : %s\n" + +#: src/lib/bsock.c:218 +#, fuzzy, c-format +msgid "Cannot set SO_KEEPIDLE on socket: %s\n" +msgstr "Impossible de positionner SO_KEEPALIVE sur la socket : %s\n" + +#: src/lib/bsock.c:304 +#, fuzzy, c-format +msgid "Write error sending %d bytes to %s:%s:%d: ERR=%s\n" +msgstr "Erreur de lecture de %s:%s:%d : ERR=%s\n" + +#: src/lib/bsock.c:310 +#, c-format +msgid "Wrote %d bytes to %s:%s:%d, but only %d accepted.\n" +msgstr "" + +#: src/lib/bsock.c:396 src/lib/bsock.c:453 +#, c-format +msgid "Read expected %d got %d from %s:%s:%d\n" +msgstr "Attendait %d en lecture, eu %d de %s:%s:%d\n" + +#: src/lib/bsock.c:414 +#, c-format +msgid "Packet size too big from \"%s:%s:%d. Terminating connection.\n" +msgstr "" + +#: src/lib/bsock.c:443 +#, c-format +msgid "Read error from %s:%s:%d: ERR=%s\n" +msgstr "Erreur de lecture de %s:%s:%d : ERR=%s\n" + +#: src/lib/bsock.c:507 src/lib/bsock.c:523 +#, fuzzy, c-format +msgid "fread attr spool error. ERR=%s\n" +msgstr "Erreur pendant l'écriture des attributs dans le spool. ERR=%s\n" + +#: src/lib/bsock.c:584 +#, fuzzy +msgid "Could not malloc BSOCK data buffer\n" +msgstr "Impossible d'ouvrir la base de données « %s ».\n" + +#: src/lib/bsock.c:591 src/lib/bsock.c:615 +#, c-format +msgid "sockopt error: %s\n" +msgstr "erreur sockopt : %s\n" + +#: src/lib/bsock.c:597 src/lib/bsock.c:621 +#, c-format +msgid "Warning network buffer = %d bytes not max size.\n" +msgstr "" + +#: src/lib/bsock.c:601 src/lib/bsock.c:625 +#, c-format +msgid "Network buffer size %d not multiple of tape block size.\n" +msgstr "" +"La taille du buffer réseau %d n'est pas un multiple de la taille de bloc du " +"lecteur.\n" + +#: src/lib/bsock.c:646 src/lib/bsock.c:680 +#, fuzzy, c-format +msgid "fcntl F_GETFL error. ERR=%s\n" +msgstr "erreur de fermeture : ERR=%s\n" + +#: src/lib/bsock.c:652 src/lib/bsock.c:686 src/lib/bsock.c:711 +#, fuzzy, c-format +msgid "fcntl F_SETFL error. ERR=%s\n" +msgstr "erreur de fermeture : ERR=%s\n" + +#: src/lib/bsock.c:873 src/qt-console/bcomm/dircomm_auth.cpp:106 +#: src/qt-console/console/authenticate.cpp:105 +#, fuzzy, c-format +msgid "Director authorization problem at \"%s:%d\"\n" +msgstr "Pas d'enregistrement trouvé en base pour : %s\n" + +#: src/lib/bsock.c:880 src/qt-console/bcomm/dircomm_auth.cpp:113 +#: src/qt-console/console/authenticate.cpp:112 +#, c-format +msgid "" +"Authorization problem: Remote server at \"%s:%d\" did not advertise required " +"TLS support.\n" +msgstr "" + +#: src/lib/bsock.c:888 src/qt-console/bcomm/dircomm_auth.cpp:121 +#: src/qt-console/console/authenticate.cpp:120 +#, c-format +msgid "" +"Authorization problem with Director at \"%s:%d\": Remote server requires " +"TLS.\n" +msgstr "" + +#: src/lib/bsock.c:900 src/qt-console/bcomm/dircomm_auth.cpp:133 +#: src/qt-console/console/authenticate.cpp:132 +#, fuzzy, c-format +msgid "TLS negotiation failed with Director at \"%s:%d\"\n" +msgstr "Négociation TLS échouée avec le SD « %s:%d ».\n" + +#: src/lib/bsock.c:910 src/qt-console/bcomm/dircomm_auth.cpp:143 +#: src/qt-console/console/authenticate.cpp:142 +#, fuzzy, c-format +msgid "" +"Bad response to Hello command: ERR=%s\n" +"The Director at \"%s:%d\" is probably not running.\n" +msgstr "Mauvaise réponse à la commande Hello : ERR=%s\n" + +#: src/lib/bsock.c:919 src/qt-console/bcomm/dircomm_auth.cpp:152 +#: src/qt-console/console/authenticate.cpp:151 +#, fuzzy, c-format +msgid "Director at \"%s:%d\" rejected Hello command\n" +msgstr "Le File Daemon « %s:%d » a rejeté la commande Hello\n" + +#: src/lib/bsock.c:929 src/qt-console/bcomm/dircomm_auth.cpp:162 +#: src/qt-console/console/authenticate.cpp:161 +#, fuzzy, c-format +msgid "" +"Authorization problem with Director at \"%s:%d\"\n" +"Most likely the passwords do not agree.\n" +"If you are using TLS, there may have been a certificate validation error " +"during the TLS handshake.\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" +"Problème d'authentification avec le director.\n" +"Le plus souvent, les mots de pass ne correspondent pas.\n" +"Si vous utilisez TLS, il peut y avoir une erreur de validation du " +"certificat\n" +"pendant l'initialisation de la connexion TLS.\n" +"Vous trouverez de l'aide sur\n" +"http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors\n" + +#: src/lib/btimers.c:254 +msgid "stop_btimer called with NULL btimer_id\n" +msgstr "" + +#: src/lib/pythonlib.c:127 +msgid "Could not initialize Python\n" +msgstr "Impossible d'initialiser le Python\n" + +#: src/lib/pythonlib.c:132 +#, c-format +msgid "Could not Run Python string %s\n" +msgstr "Impossible de lancer la commande Python %s\n" + +#: src/lib/pythonlib.c:144 +msgid "Could not initialize Python Job type.\n" +msgstr "" + +#: src/lib/pythonlib.c:149 +#, c-format +msgid "Could not import Python script %s/%s. Python disabled.\n" +msgstr "" + +#: src/lib/pythonlib.c:252 +msgid "Could not create Python Job Object.\n" +msgstr "" + +#: src/lib/pythonlib.c:265 src/lib/pythonlib.c:289 +#, c-format +msgid "Python function \"%s\" not found.\n" +msgstr "" + +#: src/lib/pythonlib.c:304 +#, c-format +msgid "Unknown Python daemon event %s\n" +msgstr "" + +#: src/lib/pythonlib.c:329 +#, fuzzy, c-format +msgid "Unable to initialize the Python lock. ERR=%s\n" +msgstr "Impossible d'initialiser le verrou sur la base. ERR=%s\n" + +#: src/lib/attr.c:79 +#, c-format +msgid "Error scanning attributes: %s\n" +msgstr "Erreur pendant la lecture des attributs : %s\n" + +#: src/lib/jcr.c:297 +msgid "NULL jcr.\n" +msgstr "NULL jcr.\n" + +#: src/lib/jcr.c:431 +#, c-format +msgid "JCR use_count=%d JobId=%d\n" +msgstr "JCR use_count=%d JobId=%d\n" + +#: src/lib/jcr.c:762 +#, c-format +msgid "" +"Watchdog sending kill after %d secs to thread stalled reading Storage " +"daemon.\n" +msgstr "" +"Le watchdog a envoyé un signal après %d secs au thread bloqué en écoute du " +"SD.\n" + +#: src/lib/jcr.c:774 +#, c-format +msgid "" +"Watchdog sending kill after %d secs to thread stalled reading File daemon.\n" +msgstr "" +"Le watchdog a envoyé un signal après %d secs au thread bloqué en écoute du " +"FD.\n" + +#: src/lib/jcr.c:786 +#, c-format +msgid "" +"Watchdog sending kill after %d secs to thread stalled reading Director.\n" +msgstr "" +"Le watchdog a envoyé un signal après %d secs au thread bloqué en écoute du " +"Director.\n" + +#: src/lib/parse_conf.c:188 +msgid "***UNKNOWN***" +msgstr "" + +#: src/lib/parse_conf.c:286 src/lib/parse_conf.c:306 +#, c-format +msgid "expected an =, got: %s" +msgstr "attendait un =, eu : %s" + +#: src/lib/parse_conf.c:314 +#, c-format +msgid "Unknown item code: %d\n" +msgstr "" + +#: src/lib/parse_conf.c:354 +#, c-format +msgid "message type: %s not found" +msgstr "" + +#: src/lib/parse_conf.c:391 +#, c-format +msgid "Attempt to redefine name \"%s\" to \"%s\"." +msgstr "" + +#: src/lib/parse_conf.c:486 +#, c-format +msgid "Attempt to redefine resource \"%s\" referenced on line %d : %s\n" +msgstr "" + +#: src/lib/parse_conf.c:521 +#, c-format +msgid "Too many %s directives. Max. is %d. line %d: %s\n" +msgstr "" + +#: src/lib/parse_conf.c:531 +#, c-format +msgid "Could not find config Resource \"%s\" referenced on line %d : %s\n" +msgstr "Impossible de trouver la ressource « %s » utilisée ligne %d : %s\n" + +#: src/lib/parse_conf.c:593 +#, c-format +msgid "Missing config Resource \"%s\" referenced on line %d : %s\n" +msgstr "Impossible de trouver la ressource « %s » utilisée ligne %d : %s\n" + +#: src/lib/parse_conf.c:657 +#, c-format +msgid "expected a size number, got: %s" +msgstr "attendait une taille, eu : %s" + +#: src/lib/parse_conf.c:662 +#, c-format +msgid "expected a size, got: %s" +msgstr "" + +#: src/lib/parse_conf.c:699 src/lib/parse_conf.c:704 +#, c-format +msgid "expected a time period, got: %s" +msgstr "" + +#: src/lib/parse_conf.c:763 +#, c-format +msgid "Expected a Tape Label keyword, got: %s" +msgstr "Attendait un Label de lecteur, a pas : %s" + +#: src/lib/parse_conf.c:798 +#, c-format +msgid "Unable to initialize resource lock. ERR=%s\n" +msgstr "" + +#: src/lib/parse_conf.c:828 +#, c-format +msgid "Cannot open config file \"%s\": %s\n" +msgstr "Impossible d'ouvrir le fichier de configuration « %s » : %s\n" + +#: src/lib/parse_conf.c:845 +msgid "" +"Currently we cannot handle UTF-16 source files. Please convert the conf file " +"to UTF-8\n" +msgstr "" + +#: src/lib/parse_conf.c:849 +#, c-format +msgid "Expected a Resource name identifier, got: %s" +msgstr "Attendait un identifiant de Ressource, a pas : %s" + +#: src/lib/parse_conf.c:865 +#, c-format +msgid "expected resource name, got: %s" +msgstr "attendait un nom de ressource, eu : %s" + +#: src/lib/parse_conf.c:876 +#, c-format +msgid "not in resource definition: %s" +msgstr "" + +#: src/lib/parse_conf.c:901 +#, c-format +msgid "" +"Keyword \"%s\" not permitted in this resource.\n" +"Perhaps you left the trailing brace off of the previous resource." +msgstr "" + +#: src/lib/parse_conf.c:912 +msgid "Name not specified for resource" +msgstr "" + +#: src/lib/parse_conf.c:921 +#, c-format +msgid "unexpected token %d %s in resource definition" +msgstr "mot clés inattendu %d %s dans la définition de la ressource" + +#: src/lib/parse_conf.c:927 +#, c-format +msgid "Unknown parser state %d\n" +msgstr "" + +#: src/lib/parse_conf.c:932 +msgid "End of conf file reached with unclosed resource." +msgstr "" + +#: src/lib/res.c:66 +#, c-format +msgid "rwl_writelock failure at %s:%d: ERR=%s\n" +msgstr "rwl_writelock en échec sur %s:%d : ERR=%s\n" + +#: src/lib/res.c:76 +#, c-format +msgid "rwl_writeunlock failure at %s:%d:. ERR=%s\n" +msgstr "rwl_writeunlock en échec sur %s:%d :. ERR=%s\n" + +#: src/lib/rwlock.c:297 +msgid "rwl_writeunlock called too many times.\n" +msgstr "" + +#: src/lib/rwlock.c:301 +msgid "rwl_writeunlock by non-owner.\n" +msgstr "" + +#: src/lib/rwlock.c:367 +#, c-format +msgid "Write lock failed. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:375 +#, c-format +msgid "Write unlock failed. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:386 +#, c-format +msgid "Read lock failed. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:394 +#, c-format +msgid "Read unlock failed. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:403 +#, c-format +msgid "Thread %d found unchanged elements %d times\n" +msgstr "" + +#: src/lib/rwlock.c:436 +#, c-format +msgid "Init rwlock failed. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:452 +#, c-format +msgid "Create thread failed. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:464 +#, c-format +msgid "Join thread failed. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:467 +#, c-format +msgid "%02d: interval %d, writes %d, reads %d\n" +msgstr "" + +#: src/lib/rwlock.c:477 +#, c-format +msgid "data %02d: value %d, %d writes\n" +msgstr "" + +#: src/lib/rwlock.c:482 +#, c-format +msgid "Total: %d thread writes, %d data writes\n" +msgstr "" + +#: src/lib/rwlock.c:554 +msgid "Try write lock" +msgstr "" + +#: src/lib/rwlock.c:560 +msgid "Try read lock" +msgstr "" + +#: src/lib/rwlock.c:615 +msgid "Create thread" +msgstr "" + +#: src/lib/rwlock.c:625 +msgid "Join thread" +msgstr "" + +#: src/lib/rwlock.c:627 +#, c-format +msgid "%02d: interval %d, updates %d, r_collisions %d, w_collisions %d\n" +msgstr "" + +#: src/lib/rwlock.c:639 +#, c-format +msgid "data %02d: value %d, %d updates\n" +msgstr "" + +#: src/lib/daemon.c:66 +#, fuzzy, c-format +msgid "Cannot fork to become daemon: ERR=%s\n" +msgstr "Impossible de forker pour passer en mode démon : %s\n" + +#: src/lib/tls.c:93 +#, c-format +msgid "" +"Error with certificate at depth: %d, issuer = %s, subject = %s, ERR=%d:%s\n" +msgstr "" + +#: src/lib/tls.c:130 +msgid "Error initializing SSL context" +msgstr "Erreur pendant l'initialisation du contexte SSL" + +#: src/lib/tls.c:151 +msgid "Error loading certificate verification stores" +msgstr "" + +#: src/lib/tls.c:156 +msgid "" +"Either a certificate file or a directory must be specified as a verification " +"store\n" +msgstr "" + +#: src/lib/tls.c:167 +msgid "Error loading certificate file" +msgstr "Erreur dans le chargement du certificat" + +#: src/lib/tls.c:175 +msgid "Error loading private key" +msgstr "Erreur dans le chargement de la clef privée" + +#: src/lib/tls.c:183 +msgid "Unable to open DH parameters file" +msgstr "Impossible d'ouvrir le fichier de paramètre DH" + +#: src/lib/tls.c:189 +msgid "Unable to load DH parameters from specified file" +msgstr "Impossible de charger les paramètres DH à partir du fichier spécifié" + +#: src/lib/tls.c:193 +msgid "Failed to set TLS Diffie-Hellman parameters" +msgstr "Impossible de positionner les paramètres TLS Diffie-Hellman" + +#: src/lib/tls.c:203 +msgid "Error setting cipher list, no valid ciphers available\n" +msgstr "" + +#: src/lib/tls.c:262 +msgid "Peer failed to present a TLS certificate\n" +msgstr "" + +#: src/lib/tls.c:305 +#, c-format +msgid "Peer %s failed to present a TLS certificate\n" +msgstr "" + +#: src/lib/tls.c:407 +msgid "Error creating file descriptor-based BIO" +msgstr "" + +#: src/lib/tls.c:418 +msgid "Error creating new SSL object" +msgstr "Erreur pendant la création d'un nouvel objet SSL" + +#: src/lib/tls.c:481 src/lib/tls.c:504 +msgid "Connect failure" +msgstr "Erreur de connexion" + +#: src/lib/tls.c:576 src/lib/tls.c:580 +msgid "TLS shutdown failure." +msgstr "" + +#: src/lib/tls.c:647 +msgid "TLS read/write failure." +msgstr "" + +#: src/lib/signal.c:68 +msgid "Invalid signal number" +msgstr "" + +#: src/lib/signal.c:94 +#, c-format +msgid "Bacula interrupted by signal %d: %s\n" +msgstr "Bacula a reçu le signal %d : %s\n" + +#: src/lib/signal.c:107 +#, fuzzy, c-format +msgid "Kaboom! %s, %s got signal %d - %s. Attempting traceback.\n" +msgstr "Kaboom ! %s, %s a reçu le signal %d. Tentative de dump des traces.\n" + +#: src/lib/signal.c:109 +#, c-format +msgid "Kaboom! exepath=%s\n" +msgstr "Kaboom ! exepath=%s\n" + +#: src/lib/signal.c:143 +#, c-format +msgid "Fork error: ERR=%s\n" +msgstr "Fork en erreur : ERR=%s\n" + +#: src/lib/signal.c:150 +#, c-format +msgid "Calling: %s %s %s\n" +msgstr "Exécution : %s %s %s\n" + +#: src/lib/signal.c:153 +#, c-format +msgid "execv: %s failed: ERR=%s\n" +msgstr "execv : %s en échec : ERR=%s\n" + +#: src/lib/signal.c:168 +#, c-format +msgid "Traceback complete, attempting cleanup ...\n" +msgstr "" + +#: src/lib/signal.c:176 +#, c-format +msgid "It looks like the traceback worked ...\n" +msgstr "" + +#: src/lib/signal.c:205 +#, c-format +msgid "BA_NSIG too small (%d) should be (%d)\n" +msgstr "BA_NSIG trop petit (%d) devrait être (%d)\n" + +#: src/lib/signal.c:211 +msgid "UNKNOWN SIGNAL" +msgstr "SIGNAL INCONNU" + +#: src/lib/signal.c:212 +msgid "Hangup" +msgstr "Hangup" + +#: src/lib/signal.c:213 +msgid "Interrupt" +msgstr "" + +#: src/lib/signal.c:214 +msgid "Quit" +msgstr "Quit" + +#: src/lib/signal.c:215 +msgid "Illegal instruction" +msgstr "" + +#: src/lib/signal.c:216 +msgid "Trace/Breakpoint trap" +msgstr "" + +#: src/lib/signal.c:217 +msgid "Abort" +msgstr "Abort" + +#: src/lib/signal.c:219 +msgid "EMT instruction (Emulation Trap)" +msgstr "" + +#: src/lib/signal.c:222 +msgid "IOT trap" +msgstr "IOT trap" + +#: src/lib/signal.c:224 +msgid "BUS error" +msgstr "BUS error" + +#: src/lib/signal.c:225 +msgid "Floating-point exception" +msgstr "" + +#: src/lib/signal.c:226 +msgid "Kill, unblockable" +msgstr "" + +#: src/lib/signal.c:227 +msgid "User-defined signal 1" +msgstr "" + +#: src/lib/signal.c:228 +msgid "Segmentation violation" +msgstr "Erreur de segmentation" + +#: src/lib/signal.c:229 +msgid "User-defined signal 2" +msgstr "" + +#: src/lib/signal.c:230 +msgid "Broken pipe" +msgstr "Tube brisé" + +#: src/lib/signal.c:231 +msgid "Alarm clock" +msgstr "Alarm clock" + +#: src/lib/signal.c:232 +msgid "Termination" +msgstr "" + +#: src/lib/signal.c:234 +msgid "Stack fault" +msgstr "" + +#: src/lib/signal.c:236 +msgid "Child status has changed" +msgstr "" + +#: src/lib/signal.c:237 +msgid "Continue" +msgstr "Continue" + +#: src/lib/signal.c:238 +msgid "Stop, unblockable" +msgstr "" + +#: src/lib/signal.c:239 +msgid "Keyboard stop" +msgstr "" + +#: src/lib/signal.c:240 +msgid "Background read from tty" +msgstr "" + +#: src/lib/signal.c:241 +msgid "Background write to tty" +msgstr "" + +#: src/lib/signal.c:242 +msgid "Urgent condition on socket" +msgstr "" + +#: src/lib/signal.c:243 +msgid "CPU limit exceeded" +msgstr "" + +#: src/lib/signal.c:244 +msgid "File size limit exceeded" +msgstr "" + +#: src/lib/signal.c:245 +msgid "Virtual alarm clock" +msgstr "" + +#: src/lib/signal.c:246 +msgid "Profiling alarm clock" +msgstr "" + +#: src/lib/signal.c:247 +msgid "Window size change" +msgstr "" + +#: src/lib/signal.c:248 +msgid "I/O now possible" +msgstr "" + +#: src/lib/signal.c:250 +msgid "Power failure restart" +msgstr "" + +#: src/lib/signal.c:253 +msgid "No runnable lwp" +msgstr "" + +#: src/lib/signal.c:256 +msgid "SIGLWP special signal used by thread library" +msgstr "" + +#: src/lib/signal.c:259 +msgid "Checkpoint Freeze" +msgstr "" + +#: src/lib/signal.c:262 +msgid "Checkpoint Thaw" +msgstr "" + +#: src/lib/signal.c:265 +msgid "Thread Cancellation" +msgstr "" + +#: src/lib/signal.c:268 +msgid "Resource Lost (e.g. record-lock lost)" +msgstr "" + +#: src/lib/bnet_server.c:109 +#, c-format +msgid "Cannot open stream socket. ERR=%s. Current %s All %s\n" +msgstr "" + +#: src/lib/bnet_server.c:122 src/lib/bnet_server.c:275 +#, c-format +msgid "Cannot set SO_REUSEADDR on socket: %s\n" +msgstr "Impossible de positionner l'option SO_REUSEADDR sur la socket : %s\n" + +#: src/lib/bnet_server.c:131 +#, c-format +msgid "Cannot bind port %d: ERR=%s: Retrying ...\n" +msgstr "Impossible de s'attacher au port %d : ERR=%s : Réessaie...\n" + +#: src/lib/bnet_server.c:136 +#, c-format +msgid "Cannot bind port %d: ERR=%s.\n" +msgstr "Impossible de s'attacher au port %d : ERR=%s.\n" + +#: src/lib/bnet_server.c:147 +#, c-format +msgid "Could not init client queue: ERR=%s\n" +msgstr "Impossible d'initialiser la queue cliente : ERR=%s\n" + +#: src/lib/bnet_server.c:166 src/lib/bnet_server.c:338 +#, c-format +msgid "Error in select: %s\n" +msgstr "Erreur sur le select : %s\n" + +#: src/lib/bnet_server.c:187 src/lib/bnet_server.c:357 +#, c-format +msgid "Connection from %s:%d refused by hosts.access\n" +msgstr "Connexion depuis %s:%d refusée par hosts.access\n" + +#: src/lib/bnet_server.c:213 +msgid "Could not create client BSOCK.\n" +msgstr "Impossible de créer la structure BSOCK cliente.\n" + +#: src/lib/bnet_server.c:220 +#, c-format +msgid "Could not add job to client queue: ERR=%s\n" +msgstr "Impossible d'ajouter le job à la queue cliente : ERR=%s\n" + +#: src/lib/bnet_server.c:237 +#, c-format +msgid "Could not destroy client queue: ERR=%s\n" +msgstr "Impossible de détruire la queue cliente : ERR=%s\n" + +#: src/lib/bnet_server.c:265 +#, c-format +msgid "Cannot open stream socket: %s\n" +msgstr "" + +#: src/lib/bnet_server.c:295 +#, c-format +msgid "Cannot bind port %d: ERR=%s: retrying ...\n" +msgstr "Impossible de s'attacher au port %d : ERR=%s : Réessaie...\n" + +#: src/lib/bnet_server.c:301 +msgid "Server socket" +msgstr "Socket serveur" + +#: src/lib/bnet_server.c:301 src/lib/bnet_server.c:398 +msgid "client" +msgstr "client" + +#: src/lib/bnet_server.c:386 +#, c-format +msgid "Socket accept error for %s. ERR=%s\n" +msgstr "" + +#: src/lib/smartall.c:146 src/lib/smartall.c:255 src/lib/smartall.c:270 +msgid "Out of memory\n" +msgstr "Plus de mémoire\n" + +#: src/lib/smartall.c:151 +msgid "Too much memory used." +msgstr "" + +#: src/lib/smartall.c:180 +#, c-format +msgid "Attempt to free NULL called from %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:194 +#, c-format +msgid "double free from %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:202 +#, c-format +msgid "qp->qnext->qprev != qp called from %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:206 +#, c-format +msgid "qp->qprev->qnext != qp called from %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:215 +#, c-format +msgid "Buffer overrun called from %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:292 +#, c-format +msgid "sm_realloc size: %d\n" +msgstr "" + +#: src/lib/smartall.c:330 +#, c-format +msgid "sm_realloc %d at %x from %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:392 +#, c-format +msgid "" +"\n" +"Orphaned buffers exist. Dump terminated following\n" +" discovery of bad links in chain of orphaned buffers.\n" +" Buffer address with bad links: %p\n" +msgstr "" + +#: src/lib/smartall.c:404 +#, c-format +msgid "%s buffer: %s %6u bytes buf=%p allocated at %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:440 +#, c-format +msgid "Damaged buffer found. Called from %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:470 +#, c-format +msgid "" +"\n" +"Damaged buffers found at %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:473 +#, c-format +msgid " discovery of bad prev link.\n" +msgstr "" + +#: src/lib/smartall.c:476 +#, c-format +msgid " discovery of bad next link.\n" +msgstr "" + +#: src/lib/smartall.c:479 +#, c-format +msgid " discovery of data overrun.\n" +msgstr "" + +#: src/lib/smartall.c:482 +#, fuzzy, c-format +msgid " Buffer address: %p\n" +msgstr " Adresse du buffer : %lx\n" + +#: src/lib/smartall.c:489 +#, c-format +msgid "Damaged buffer: %6u bytes allocated at line %d of %s %s\n" +msgstr "" + +#: src/lib/bsys.c:208 src/lib/bsys.c:225 src/lib/bsys.c:249 src/lib/bsys.c:262 +#, c-format +msgid "Out of memory: ERR=%s\n" +msgstr "Plus de mémoire : ERR=%s\n" + +#: src/lib/bsys.c:304 +msgid "Buffer overflow.\n" +msgstr "Buffer overflow.\n" + +#: src/lib/bsys.c:370 +msgid "Bad errno" +msgstr "Mauvais errno" + +#: src/lib/bsys.c:387 +msgid "Possible mutex deadlock.\n" +msgstr "" + +#: src/lib/bsys.c:391 src/lib/bsys.c:424 +#, c-format +msgid "Mutex lock failure. ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:394 +msgid "Possible mutex deadlock resolved.\n" +msgstr "" + +#: src/lib/bsys.c:407 +#, c-format +msgid "Mutex unlock not locked. ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:412 src/lib/bsys.c:434 +#, c-format +msgid "Mutex unlock failure. ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:448 +#, c-format +msgid "Memset for %d bytes at %s:%d\n" +msgstr "" + +#: src/lib/bsys.c:478 +#, c-format +msgid "Cannot open pid file. %s ERR=%s\n" +msgstr "Impossible d'ouvrir le fichier contenant le pid. %s ERR=%s\n" + +#: src/lib/bsys.c:493 +#, c-format +msgid "" +"%s is already running. pid=%d\n" +"Check file %s\n" +msgstr "" + +#: src/lib/bsys.c:507 +#, c-format +msgid "Could not open pid file. %s ERR=%s\n" +msgstr "Impossible d'ouvrir le fichier pid. %s ERR=%s\n" + +#: src/lib/bsys.c:615 +#, c-format +msgid "Could not create state file. %s ERR=%s\n" +msgstr "Impossible de créer le fichier d'état. %s ERR=%s\n" + +#: src/lib/bsys.c:634 +#, c-format +msgid "Write final hdr error: ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:670 +#, c-format +msgid "Could not find userid=%s: ERR=%s\n" +msgstr "Impossible de trouver le userid %s : ERR=%s\n" + +#: src/lib/bsys.c:676 +#, fuzzy, c-format +msgid "Could not find password entry. ERR=%s\n" +msgstr "Impossible de trouver le client %s : ERR=%s\n" + +#: src/lib/bsys.c:689 +#, c-format +msgid "Could not find group=%s: ERR=%s\n" +msgstr "Impossible de trouver le groupe=%s : ERR=%s\n" + +#: src/lib/bsys.c:697 +#, c-format +msgid "Could not initgroups for group=%s, userid=%s: ERR=%s\n" +msgstr "" +"Impossible d'utiliser initgroups pour le groupe=%s, userid=%s: ERR=%s\n" +"\n" + +#: src/lib/bsys.c:700 +#, fuzzy, c-format +msgid "Could not initgroups for userid=%s: ERR=%s\n" +msgstr "Impossible d'ouvrir %s : ERR=%s\n" + +#: src/lib/bsys.c:707 +#, fuzzy, c-format +msgid "Could not set group=%s: ERR=%s\n" +msgstr "Impossible d'ouvrir %s : ERR=%s\n" + +#: src/lib/bsys.c:713 +#, c-format +msgid "Could not set specified userid: %s\n" +msgstr "" + +#: src/lib/crypto.c:435 +msgid "Unable to open certificate file" +msgstr "Impossible d'ouvrir de fichier de certificat" + +#: src/lib/crypto.c:442 +msgid "Unable to read certificate from file" +msgstr "Impossible de lire le certificat à partir du fichier" + +#: src/lib/crypto.c:448 +msgid "Unable to extract public key from certificate" +msgstr "Impossible d'extraire la clef publique à partir du certificat" + +#: src/lib/crypto.c:455 +msgid "" +"Provided certificate does not include the required subjectKeyIdentifier " +"extension." +msgstr "" +"Le certificat fournis n'inclus pas l'extension subjectKeyIdentifier requise" + +#: src/lib/crypto.c:462 +#, c-format +msgid "Unsupported key type provided: %d\n" +msgstr "Type de clef fourni non supporté : %d\n" + +#: src/lib/crypto.c:499 src/lib/crypto.c:547 +msgid "Unable to open private key file" +msgstr "Impossible d'ouvrir le fichier de clef privée" + +#: src/lib/crypto.c:529 src/lib/crypto.c:563 +msgid "Unable to read private key from file" +msgstr "Impossible de lire la clef privée à partir du fichier" + +#: src/lib/crypto.c:622 +#, c-format +msgid "Unsupported digest type: %d\n" +msgstr "Le digest spécifié n'est pas supporté : %d\n" + +#: src/lib/crypto.c:636 +msgid "OpenSSL digest initialization failed" +msgstr "" + +#: src/lib/crypto.c:650 +msgid "OpenSSL digest update failed" +msgstr "" + +#: src/lib/crypto.c:668 +#, fuzzy +msgid "OpenSSL digest finalize failed" +msgstr "Initialisation du contexte clef/IV du cipher OpenSSL à échoué" + +#: src/lib/crypto.c:766 +msgid "OpenSSL digest_new failed" +msgstr "" + +#: src/lib/crypto.c:772 +msgid "OpenSSL sign get digest failed" +msgstr "" + +#: src/lib/crypto.c:811 src/lib/crypto.c:815 +#, fuzzy +msgid "OpenSSL digest Verify final failed" +msgstr "Initialisation du contexte clef/IV du cipher OpenSSL à échoué" + +#: src/lib/crypto.c:820 +#, fuzzy +msgid "No signers found for crypto verify.\n" +msgstr "Aucun volume trouvé pour la restauration.\n" + +#: src/lib/crypto.c:881 +msgid "Signature creation failed" +msgstr "La création de la signature a échouée" + +#: src/lib/crypto.c:959 +msgid "Signature decoding failed" +msgstr "Le décodage de la signature a échoué" + +#: src/lib/crypto.c:1036 +msgid "Unsupported cipher type specified\n" +msgstr "Le cipher spécifié est non supporté\n" + +#: src/lib/crypto.c:1185 +msgid "CryptoData decoding failed" +msgstr "Le décodage du CryptoData a échoué" + +#: src/lib/crypto.c:1229 +msgid "Failure decrypting the session key" +msgstr "Impossible de décrypter la clef de session" + +#: src/lib/crypto.c:1280 +#, c-format +msgid "Unsupported contentEncryptionAlgorithm: %d\n" +msgstr "contentEncryptionAlgorithm non supporté : %d\n" + +#: src/lib/crypto.c:1290 src/lib/crypto.c:1296 +msgid "OpenSSL cipher context initialization failed" +msgstr "Initialisation du contexte clef/IV du cipher OpenSSL à échoué" + +#: src/lib/crypto.c:1303 +msgid "Encryption session provided an invalid symmetric key" +msgstr "" + +#: src/lib/crypto.c:1309 +msgid "Encryption session provided an invalid IV" +msgstr "" + +#: src/lib/crypto.c:1315 +msgid "OpenSSL cipher context key/IV initialization failed" +msgstr "" + +#: src/lib/crypto.c:1385 +#, c-format +msgid "Unable to init OpenSSL threading: ERR=%s\n" +msgstr "Impossible d'initialiser le thread OpenSSL : ERR=%s\n" + +#: src/lib/crypto.c:1398 +msgid "Failed to seed OpenSSL PRNG\n" +msgstr "" + +#: src/lib/crypto.c:1424 +msgid "Failed to save OpenSSL PRNG\n" +msgstr "Impossible de sauvegarder le PRNG OpenSSL\n" + +#: src/lib/crypto.c:1485 +#, fuzzy, c-format +msgid "Unsupported digest type=%d specified\n" +msgstr "Le cipher spécifié est non supporté\n" + +#: src/lib/crypto.c:1505 +#, c-format +msgid "SHA1Update() returned an error: %d\n" +msgstr "" + +#: src/lib/crypto.c:1648 +#, fuzzy +msgid "No error" +msgstr "BUS error" + +#: src/lib/crypto.c:1650 +#, fuzzy +msgid "Signer not found" +msgstr "Le Storage « %s » est introuvable.\n" + +#: src/lib/crypto.c:1652 +#, fuzzy +msgid "Recipient not found" +msgstr "Ressource %s introuvable\n" + +#: src/lib/crypto.c:1654 +#, fuzzy +msgid "Unsupported digest algorithm" +msgstr "Le digest spécifié n'est pas supporté : %d\n" + +#: src/lib/crypto.c:1656 +#, fuzzy +msgid "Unsupported encryption algorithm" +msgstr "contentEncryptionAlgorithm non supporté : %d\n" + +#: src/lib/crypto.c:1658 +#, fuzzy +msgid "Signature is invalid" +msgstr "La création de la signature a échouée" + +#: src/lib/crypto.c:1660 +msgid "Decryption error" +msgstr "" + +#: src/lib/crypto.c:1663 +#, fuzzy +msgid "Internal error" +msgstr "Erreur non fatale" + +#: src/lib/crypto.c:1665 +#, fuzzy +msgid "Unknown error" +msgstr "Erreur inconnue." + +#: src/lib/openssl.c:140 src/lib/openssl.c:213 +#, c-format +msgid "Unable to destroy mutex: ERR=%s\n" +msgstr "Impossible de détruire le mutex : ERR=%s\n" + +#: src/lib/edit.c:446 +#, c-format +msgid "Illegal character \"%c\" in name.\n" +msgstr "Caractère illégal « %c » dans le nom.\n" + +#: src/lib/edit.c:453 +msgid "Name too long.\n" +msgstr "Nom trop long.\n" + +#: src/lib/bget_msg.c:99 +msgid "Status OK\n" +msgstr "Statut OK\n" + +#: src/lib/bget_msg.c:103 +#, c-format +msgid "bget_msg: unknown signal %d\n" +msgstr "" + +#: src/lib/lex.c:93 src/wx-console/console_thread.cpp:208 +#, c-format +msgid "Problem probably begins at line %d.\n" +msgstr "Le problème commence sûrement au début de la ligne %d.\n" + +#: src/lib/lex.c:98 src/wx-console/console_thread.cpp:213 +#, c-format +msgid "" +"Config error: %s\n" +" : line %d, col %d of file %s\n" +"%s\n" +"%s" +msgstr "" +"Erreur de config : %s\n" +" : ligne %d, col %d du fichier %s\n" +"%s\n" +"%s" + +#: src/lib/lex.c:102 +#, c-format +msgid "Config error: %s\n" +msgstr "Erreur de config : %s\n" + +#: src/lib/lex.c:131 +msgid "Close of NULL file\n" +msgstr "" + +#: src/lib/lex.c:226 +msgid "" +"get_char: called after EOF. You may have a open double quote without the " +"closing double quote.\n" +msgstr "" + +#: src/lib/lex.c:269 +#, c-format +msgid "Config token too long, file: %s, line %d, begins at line %d\n" +msgstr "Config token trop long, fichier : %s, ligne %d, débutant ligne %d\n" + +#: src/lib/lex.c:293 +msgid "none" +msgstr "none" + +#: src/lib/lex.c:294 +msgid "comment" +msgstr "comment" + +#: src/lib/lex.c:295 +msgid "number" +msgstr "number" + +#: src/lib/lex.c:296 +msgid "ip_addr" +msgstr "ip_addr" + +# identifiant +#: src/lib/lex.c:297 +msgid "identifier" +msgstr "identifier" + +#: src/lib/lex.c:298 +msgid "string" +msgstr "string" + +#: src/lib/lex.c:299 +msgid "quoted_string" +msgstr "quoted_string" + +#: src/lib/lex.c:300 +#, fuzzy +msgid "include" +msgstr "Depuis" + +#: src/lib/lex.c:301 +#, fuzzy +msgid "include_quoted_string" +msgstr "quoted_string" + +#: src/lib/lex.c:302 +msgid "UTF-8 Byte Order Mark" +msgstr "" + +#: src/lib/lex.c:303 +msgid "UTF-16le Byte Order Mark" +msgstr "" + +#: src/lib/lex.c:341 src/lib/lex.c:347 +#, c-format +msgid "expected a positive integer number, got: %s" +msgstr "attendait un nombre entier positif, pas : %s" + +#: src/lib/lex.c:457 +msgid "" +"This config file appears to be in an unsupported Unicode format (UTF-16be). " +"Please resave as UTF-8\n" +msgstr "" + +#: src/lib/lex.c:596 src/lib/lex.c:624 +#, c-format +msgid "Cannot open included config file %s: %s\n" +msgstr "Impossible d'ouvrir le fichier de configuration inclus %s : %s\n" + +#: src/lib/lex.c:683 +#, c-format +msgid "expected an integer or a range, got %s: %s" +msgstr "attendait un entier ou bien un intervalle, pas %s : %s" + +#: src/lib/lex.c:697 src/lib/lex.c:705 src/lib/lex.c:716 src/lib/lex.c:724 +#, c-format +msgid "expected an integer number, got %s: %s" +msgstr "attendait un nombre entier, pas %s : %s" + +#: src/lib/lex.c:734 +#, c-format +msgid "expected a name, got %s: %s" +msgstr "attendait un nom, pas %s : %s" + +#: src/lib/lex.c:738 +#, c-format +msgid "name %s length %d too long, max is %d\n" +msgstr "la longueur du nom %s (%d) est trop grande, le max est %d\n" + +#: src/lib/lex.c:746 +#, c-format +msgid "expected a string, got %s: %s" +msgstr "attendait une chaîne, pas %s : %s" + +#: src/lib/var.c:2669 +msgid "everything ok" +msgstr "tout est ok" + +#: src/lib/var.c:2670 +msgid "incomplete named character" +msgstr "" + +#: src/lib/var.c:2671 +msgid "incomplete hexadecimal value" +msgstr "valeur hexadécimale incomplète" + +#: src/lib/var.c:2672 +msgid "invalid hexadecimal value" +msgstr "valeur hexadécimale invalide" + +#: src/lib/var.c:2673 +msgid "octal value too large" +msgstr "valeur octal trop grande" + +#: src/lib/var.c:2674 +msgid "invalid octal value" +msgstr "valeur octal invalide" + +#: src/lib/var.c:2675 +msgid "incomplete octal value" +msgstr "valeur octal incomplète" + +#: src/lib/var.c:2676 +msgid "incomplete grouped hexadecimal value" +msgstr "" + +#: src/lib/var.c:2677 +msgid "incorrect character class specification" +msgstr "" + +#: src/lib/var.c:2678 +msgid "invalid expansion configuration" +msgstr "" + +#: src/lib/var.c:2679 +msgid "out of memory" +msgstr "plus de mémoire" + +#: src/lib/var.c:2680 +msgid "incomplete variable specification" +msgstr "" + +#: src/lib/var.c:2681 +msgid "undefined variable" +msgstr "variable non définie" + +#: src/lib/var.c:2682 +msgid "input is neither text nor variable" +msgstr "l'entrée n'est ni du texte ni une variable" + +#: src/lib/var.c:2683 +msgid "unknown command character in variable" +msgstr "" + +#: src/lib/var.c:2684 +msgid "malformatted search and replace operation" +msgstr "" + +#: src/lib/var.c:2685 +msgid "unknown flag in search and replace operation" +msgstr "" + +#: src/lib/var.c:2686 +msgid "invalid regex in search and replace operation" +msgstr "" + +#: src/lib/var.c:2687 +msgid "missing parameter in command" +msgstr "" + +#: src/lib/var.c:2688 +msgid "empty search string in search and replace operation" +msgstr "" + +#: src/lib/var.c:2689 +msgid "start offset missing in cut operation" +msgstr "" + +#: src/lib/var.c:2690 +msgid "offsets in cut operation delimited by unknown character" +msgstr "" + +#: src/lib/var.c:2691 +msgid "range out of bounds in cut operation" +msgstr "" + +#: src/lib/var.c:2692 +msgid "offset out of bounds in cut operation" +msgstr "" + +#: src/lib/var.c:2693 +msgid "logic error in cut operation" +msgstr "" + +#: src/lib/var.c:2694 +msgid "malformatted transpose operation" +msgstr "" + +#: src/lib/var.c:2695 +msgid "source and target class mismatch in transpose operation" +msgstr "" + +#: src/lib/var.c:2696 +msgid "empty character class in transpose operation" +msgstr "" + +#: src/lib/var.c:2697 +msgid "incorrect character class in transpose operation" +msgstr "" + +#: src/lib/var.c:2698 +msgid "malformatted padding operation" +msgstr "" + +#: src/lib/var.c:2699 +msgid "width parameter missing in padding operation" +msgstr "" + +#: src/lib/var.c:2700 +msgid "fill string missing in padding operation" +msgstr "" + +#: src/lib/var.c:2701 +msgid "unknown quoted pair in search and replace operation" +msgstr "" + +#: src/lib/var.c:2702 +msgid "sub-matching reference out of range" +msgstr "" + +#: src/lib/var.c:2703 +msgid "invalid argument" +msgstr "argument invalide" + +#: src/lib/var.c:2704 +msgid "incomplete quoted pair" +msgstr "" + +#: src/lib/var.c:2705 +msgid "lookup function does not support variable arrays" +msgstr "" + +#: src/lib/var.c:2706 +msgid "index of array variable contains an invalid character" +msgstr "" + +#: src/lib/var.c:2707 +msgid "index of array variable is incomplete" +msgstr "" + +#: src/lib/var.c:2708 +msgid "bracket expression in array variable's index not closed" +msgstr "" + +#: src/lib/var.c:2709 +msgid "division by zero error in index specification" +msgstr "" + +#: src/lib/var.c:2710 +msgid "unterminated loop construct" +msgstr "" + +#: src/lib/var.c:2711 +msgid "invalid character in loop limits" +msgstr "" + +#: src/lib/var.c:2712 +msgid "malformed operation argument list" +msgstr "" + +#: src/lib/var.c:2713 +msgid "undefined operation" +msgstr "opération indéfinie" + +#: src/lib/var.c:2714 +msgid "formatting failure" +msgstr "" + +#: src/lib/var.c:2723 +msgid "unknown error" +msgstr "erreur inconnue" + +#: src/lib/runscript.c:214 +#, c-format +msgid "%s: run command \"%s\"\n" +msgstr "%s: exécution de la commande « %s »\n" + +#: src/lib/runscript.c:220 +#, c-format +msgid "Runscript: %s could not execute. ERR=%s\n" +msgstr "Runscript : impossible d'exécuter %s. ERR=%s\n" + +#: src/lib/runscript.c:229 +#, c-format +msgid "%s: %s\n" +msgstr "%s: %s\n" + +#: src/lib/runscript.c:234 +#, c-format +msgid "Runscript: %s returned non-zero status=%d. ERR=%s\n" +msgstr "" +"Runscript : %s s'est terminé avec un statut différent de 0 statut=%d. ERR=%" +"s\n" + +#: src/lib/address_conf.c:63 +#, c-format +msgid "Only ipv4 and ipv6 are supported (%d)\n" +msgstr "Seulement l'ipv4 et l'ipv6 sont supportés (%d)\n" + +#: src/lib/address_conf.c:67 +#, c-format +msgid "Only ipv4 is supported (%d)\n" +msgstr "Seulement l'ipv4 est supporté (%d)\n" + +#: src/lib/address_conf.c:176 +#, c-format +msgid "It was tried to assign a ipv6 address to a ipv4(%d)\n" +msgstr "" + +#: src/lib/address_conf.c:185 +#, c-format +msgid "It was tried to assign a ipv4 address to a ipv6(%d)\n" +msgstr "" + +#: src/lib/address_conf.c:264 +#, c-format +msgid "Can't add default address (%s)\n" +msgstr "Impossible d'ajouter l'adresse par défaut (%s)\n" + +#: src/lib/address_conf.c:293 +msgid "the old style addresses cannot be mixed with new style" +msgstr "" + +#: src/lib/address_conf.c:314 +#, c-format +msgid "can't resolve service(%s)" +msgstr "impossible de trouver une correspondance pour le service (%s)" + +#: src/lib/address_conf.c:323 +#, c-format +msgid "can't resolve hostname(%s) %s" +msgstr "impossible de résoudre le hostname (%s) %s" + +#: src/lib/address_conf.c:413 src/lib/address_conf.c:444 +#, c-format +msgid "Expected a block begin { , got: %s" +msgstr "Attendait un début de bloc {, pas : %s" + +#: src/lib/address_conf.c:418 +msgid "Empty addr block is not allowed" +msgstr "" + +#: src/lib/address_conf.c:422 +#, c-format +msgid "Expected a string, got: %s" +msgstr "Attendait une chaîne, pas : %s" + +#: src/lib/address_conf.c:431 +#, c-format +msgid "Expected a string [ip|ipv4|ipv6], got: %s" +msgstr "Attentait la chaîne [ip|ipv4|ipv6], pas : %s" + +#: src/lib/address_conf.c:435 +#, c-format +msgid "Expected a string [ip|ipv4], got: %s" +msgstr "Attendait la chaîne [ip|ipv4], pas : %s" + +#: src/lib/address_conf.c:440 src/lib/address_conf.c:470 +#, c-format +msgid "Expected a equal =, got: %s" +msgstr "Attendait un égal =, pas : %s" + +#: src/lib/address_conf.c:451 src/lib/address_conf.c:466 +#, c-format +msgid "Expected a identifier [addr|port], got: %s" +msgstr "Attendait un identifiant [addr|port], pas : %s" + +#: src/lib/address_conf.c:456 +msgid "Only one port per address block" +msgstr "Seulement un port par bloc d'adresse" + +#: src/lib/address_conf.c:462 +msgid "Only one addr per address block" +msgstr "Seulement une adresse par bloc d'adresse" + +#: src/lib/address_conf.c:478 +#, c-format +msgid "Expected a number or a string, got: %s" +msgstr "Attendait un nombre ou une chaîne, pas : %s" + +#: src/lib/address_conf.c:484 src/lib/address_conf.c:517 +#, c-format +msgid "Expected an IP number or a hostname, got: %s" +msgstr "Attendait une adresse IP ou un nom de machine, pas : %s" + +#: src/lib/address_conf.c:490 +msgid "State machine missmatch" +msgstr "" + +#: src/lib/address_conf.c:496 src/lib/address_conf.c:508 +#, c-format +msgid "Expected a end of block }, got: %s" +msgstr "Attendait une fin de bloc }, pas : %s" + +#: src/lib/address_conf.c:502 +#, c-format +msgid "Can't add hostname(%s) and port(%s) to addrlist (%s)" +msgstr "" +"Impossible d'ajouter le hostname (%s) et le port (%s) à la liste d'adresse (%" +"s)" + +#: src/lib/address_conf.c:522 src/lib/address_conf.c:536 +#, c-format +msgid "can't add port (%s) to (%s)" +msgstr "impossible d'ajouter le port (%s) à (%s)" + +#: src/lib/address_conf.c:531 +#, c-format +msgid "Expected a port number or string, got: %s" +msgstr "Attendait un numéro de port ou une chaîne, pas : %s" + +#: src/findlib/create_file.c:123 +#, c-format +msgid "File skipped. Not newer: %s\n" +msgstr "" + +#: src/findlib/create_file.c:130 +#, c-format +msgid "File skipped. Not older: %s\n" +msgstr "" + +#: src/findlib/create_file.c:136 +#, c-format +msgid "File skipped. Already exists: %s\n" +msgstr "" + +#: src/findlib/create_file.c:162 +#, c-format +msgid "File %s already exists and could not be replaced. ERR=%s.\n" +msgstr "" + +#: src/findlib/create_file.c:214 src/findlib/create_file.c:277 +#: src/findlib/create_file.c:370 +#, c-format +msgid "bpkt already open fid=%d\n" +msgstr "" + +#: src/findlib/create_file.c:222 +#, c-format +msgid "Could not create %s: ERR=%s\n" +msgstr "" + +#: src/findlib/create_file.c:236 +#, c-format +msgid "Cannot make fifo %s: ERR=%s\n" +msgstr "" + +#: src/findlib/create_file.c:254 +#, c-format +msgid "Cannot make node %s: ERR=%s\n" +msgstr "" + +#: src/findlib/create_file.c:299 +#, c-format +msgid "Could not symlink %s -> %s: ERR=%s\n" +msgstr "" + +#: src/findlib/create_file.c:324 src/findlib/create_file.c:335 +#, fuzzy, c-format +msgid "Could not restore file flags for file %s: ERR=%s\n" +msgstr "Impossible de créer le fichier bootstrap %s : ERR=%s\n" + +#: src/findlib/create_file.c:328 src/findlib/create_file.c:343 +#, c-format +msgid "Could not hard link %s -> %s: ERR=%s\n" +msgstr "" + +#: src/findlib/create_file.c:339 +#, fuzzy, c-format +msgid "Could not reset file flags for file %s: ERR=%s\n" +msgstr "Impossible de créer le fichier bootstrap %s : ERR=%s\n" + +#: src/findlib/create_file.c:402 +#, c-format +msgid "Original file %s not saved: type=%d\n" +msgstr "" + +#: src/findlib/create_file.c:405 +#, c-format +msgid "Unknown file type %d; not restored: %s\n" +msgstr "" + +#: src/findlib/create_file.c:449 +#, c-format +msgid "Zero length filename: %s\n" +msgstr "" + +#: src/findlib/attribs.c:419 +#, c-format +msgid "File size of restored file %s not correct. Original %s, restored %s.\n" +msgstr "" + +#: src/findlib/attribs.c:445 src/findlib/attribs.c:452 +#, c-format +msgid "Unable to set file owner %s: ERR=%s\n" +msgstr "" + +#: src/findlib/attribs.c:458 +#, c-format +msgid "Unable to set file modes %s: ERR=%s\n" +msgstr "" + +#: src/findlib/attribs.c:468 +#, c-format +msgid "Unable to set file times %s: ERR=%s\n" +msgstr "" + +#: src/findlib/attribs.c:482 +#, c-format +msgid "Unable to set file flags %s: ERR=%s\n" +msgstr "" + +#: src/findlib/attribs.c:725 +#, c-format +msgid "Error in %s file %s: ERR=%s\n" +msgstr "" + +#: src/findlib/attribs.c:742 +#, c-format +msgid "Error in %s: ERR=%s\n" +msgstr "" + +#: src/findlib/save-cwd.c:48 +#, c-format +msgid "Cannot open current directory: %s\n" +msgstr "" + +#: src/findlib/save-cwd.c:62 +#, c-format +msgid "Current directory: %s\n" +msgstr "" + +#: src/findlib/save-cwd.c:84 +#, c-format +msgid "Cannot get current directory: %s\n" +msgstr "" + +#: src/findlib/save-cwd.c:105 +#, c-format +msgid "Cannot return to %s from %s: %s\n" +msgstr "" + +#: src/findlib/save-cwd.c:109 +#, c-format +msgid "Cannot return to saved working directory from %s: %s\n" +msgstr "" + +#: src/findlib/save-cwd.c:115 +#, c-format +msgid "Cannot return to %s: %s\n" +msgstr "" + +#: src/findlib/save-cwd.c:119 +#, c-format +msgid "Cannot return to saved working directory: %s\n" +msgstr "" + +#: src/findlib/find_one.c:228 +#, fuzzy, c-format +msgid "Cannot stat file %s: ERR=%s\n" +msgstr "Impossible d'ouvrir le fichier %s : ERR=%s\n" + +#: src/findlib/find_one.c:234 +#, c-format +msgid "%s mtime changed during backup.\n" +msgstr "" + +#: src/findlib/find_one.c:240 +#, c-format +msgid "%s ctime changed during backup.\n" +msgstr "" + +#: src/findlib/find_one.c:246 src/findlib/find_one.c:253 +#, c-format +msgid "%s size changed during backup.\n" +msgstr "" + +#: src/findlib/find_one.c:310 +#, c-format +msgid "Top level directory \"%s\" has unlisted fstype \"%s\"\n" +msgstr "" + +#: src/findlib/find_one.c:325 +#, c-format +msgid "Top level directory \"%s\" has an unlisted drive type \"%s\"\n" +msgstr "" + +#: src/findlib/bfile.c:82 +msgid "Unix attributes" +msgstr "" + +#: src/findlib/bfile.c:84 +msgid "File data" +msgstr "" + +#: src/findlib/bfile.c:86 +msgid "MD5 digest" +msgstr "" + +#: src/findlib/bfile.c:88 +msgid "GZIP data" +msgstr "" + +#: src/findlib/bfile.c:90 +msgid "Extended attributes" +msgstr "" + +#: src/findlib/bfile.c:92 +msgid "Sparse data" +msgstr "" + +#: src/findlib/bfile.c:94 +msgid "GZIP sparse data" +msgstr "" + +#: src/findlib/bfile.c:96 +msgid "Program names" +msgstr "" + +#: src/findlib/bfile.c:98 +msgid "Program data" +msgstr "" + +#: src/findlib/bfile.c:100 +msgid "SHA1 digest" +msgstr "" + +#: src/findlib/bfile.c:102 +msgid "Win32 data" +msgstr "" + +#: src/findlib/bfile.c:104 +msgid "Win32 GZIP data" +msgstr "" + +#: src/findlib/bfile.c:106 +msgid "MacOS Fork data" +msgstr "" + +#: src/findlib/bfile.c:108 +msgid "HFS+ attribs" +msgstr "" + +#: src/findlib/bfile.c:110 +msgid "Standard Unix ACL attribs" +msgstr "" + +#: src/findlib/bfile.c:112 +msgid "Default Unix ACL attribs" +msgstr "" + +#: src/findlib/bfile.c:114 +msgid "SHA256 digest" +msgstr "" + +#: src/findlib/bfile.c:116 +msgid "SHA512 digest" +msgstr "" + +#: src/findlib/bfile.c:118 +msgid "Signed digest" +msgstr "" + +#: src/findlib/bfile.c:120 +msgid "Encrypted File data" +msgstr "" + +#: src/findlib/bfile.c:122 +msgid "Encrypted Win32 data" +msgstr "" + +#: src/findlib/bfile.c:124 +msgid "Encrypted session data" +msgstr "" + +#: src/findlib/bfile.c:126 +msgid "Encrypted GZIP data" +msgstr "" + +#: src/findlib/bfile.c:128 +msgid "Encrypted Win32 GZIP data" +msgstr "" + +#: src/findlib/bfile.c:130 +msgid "Encrypted MacOS fork data" +msgstr "" + +#: src/findlib/enable_priv.c:92 +msgid "AdjustTokenPrivileges set " +msgstr "" + +#: src/findlib/makepath.c:116 +#, c-format +msgid "Cannot create directory %s: ERR=%s\n" +msgstr "" + +#: src/findlib/makepath.c:120 src/findlib/makepath.c:398 +#, c-format +msgid "%s exists but is not a directory\n" +msgstr "" + +#: src/findlib/makepath.c:229 +#, c-format +msgid "%c: is not a valid drive\n" +msgstr "" + +#: src/findlib/makepath.c:296 src/findlib/makepath.c:357 +#: src/findlib/makepath.c:417 +#, c-format +msgid "Cannot change owner and/or group of %s: ERR=%s\n" +msgstr "" + +#: src/findlib/makepath.c:317 +#, c-format +msgid "Cannot chdir to directory, %s: ERR=%s\n" +msgstr "" + +#: src/findlib/makepath.c:372 src/findlib/makepath.c:388 +#: src/findlib/makepath.c:422 +#, c-format +msgid "Cannot change permissions of %s: ERR=%s\n" +msgstr "" + +#: src/baconfig.h:72 +#, c-format +msgid "Failed ASSERT: %s\n" +msgstr "" + +#: src/baconfig.h:79 +msgid "*None*" +msgstr "" + +#: src/qt-console/bcomm/dircomm.cpp:203 src/qt-console/console/console.cpp:226 +msgid "Initializing ..." +msgstr "" + +#: src/qt-console/bcomm/dircomm.cpp:209 src/qt-console/console/console.cpp:254 +#, fuzzy +msgid "Connected" +msgstr "Connexion...\n" + +#: src/qt-console/bcomm/dircomm.cpp:288 src/qt-console/bcomm/dircomm.cpp:410 +#: src/qt-console/console/console.cpp:528 +#: src/qt-console/console/console.cpp:650 +msgid "Processing command ..." +msgstr "" + +#: src/qt-console/bcomm/dircomm.cpp:404 src/qt-console/console/console.cpp:644 +#, fuzzy +msgid "Command completed ..." +msgstr "Commande annulée.\n" + +#: src/qt-console/bcomm/dircomm.cpp:416 src/qt-console/console/console.cpp:656 +msgid "At main prompt waiting for input ..." +msgstr "" + +#: src/qt-console/bcomm/dircomm.cpp:423 src/qt-console/console/console.cpp:663 +msgid "At prompt waiting for input ..." +msgstr "" + +#: src/qt-console/bcomm/dircomm.cpp:428 src/qt-console/console/console.cpp:668 +#, fuzzy +msgid "Command failed." +msgstr "Commande annulée.\n" + +#: src/qt-console/bcomm/dircomm.cpp:483 src/qt-console/console/console.cpp:730 +#, fuzzy +msgid "Director disconnected." +msgstr "Connexion du director le %s\n" + +#: src/qt-console/main.cpp:155 +#, fuzzy, c-format +msgid "" +"\n" +"Version: %s (%s) %s %s %s\n" +"\n" +"Usage: bat [-s] [-c config_file] [-d debug_level] [config_file]\n" +" -c set configuration file to file\n" +" -dnn set debug level to nn\n" +" -s no signals\n" +" -t test - read configuration and exit\n" +" -? print this message.\n" +"\n" +msgstr "" +") %s %s %s\n" +"\n" +"Usage : bconsole [-s] [-c config_file] [-d niveau_debug]\n" +" -c set configuration file to file\n" +" -dnn set debug level to nn\n" +" -s no signals\n" +" -t test - lecture de la configuration et sortie\n" +"\n" + +#: src/wx-console/wxbmainframe.cpp:246 +msgid "&About...\tF1" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:246 +msgid "Show about dialog" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:248 src/wx-console/wxbmainframe.cpp:620 +#, fuzzy +msgid "Connect to the director" +msgstr "Impossible de se connecter au Director\n" + +#: src/wx-console/wxbmainframe.cpp:249 +#, fuzzy +msgid "Disconnect" +msgstr "Connexion...\n" + +#: src/wx-console/wxbmainframe.cpp:249 +#, fuzzy +msgid "Disconnect of the director" +msgstr "Impossible de se connecter au Director\n" + +#: src/wx-console/wxbmainframe.cpp:251 +#, fuzzy +msgid "Change of configuration file" +msgstr "La création de la signature a échouée" + +#: src/wx-console/wxbmainframe.cpp:251 +#, fuzzy +msgid "Change your default configuration file" +msgstr "Impossible de lire le certificat à partir du fichier" + +#: src/wx-console/wxbmainframe.cpp:252 +#, fuzzy +msgid "Edit your configuration file" +msgstr "La création de la signature a échouée" + +#: src/wx-console/wxbmainframe.cpp:254 +msgid "E&xit\tAlt-X" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:254 +msgid "Quit this program" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:258 +#, fuzzy +msgid "&File" +msgstr "FileSet" + +#: src/wx-console/wxbmainframe.cpp:259 +msgid "&Help" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:267 src/wx-console/main.cpp:124 +#, c-format +msgid "Welcome to bacula bwx-console %s (%s)!\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:283 +msgid "" +"Warning : Unicode is disabled because you are using wxWidgets for GTK+ 1.2.\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:287 +msgid "" +"Warning : There is a problem with wxWidgets for GTK+ 2.0 without Unicode " +"support when handling non-ASCII filenames: Every non-ASCII character in such " +"filenames will be replaced by an interrogation mark.\n" +"If this behaviour disturbs you, please build bwx-console against a Unicode " +"version of wxWidgets for GTK+ 2.0.\n" +"---\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:291 +#: src/wx-console/wxbhistorytextctrl.cpp:82 +#: src/wx-console/wxbhistorytextctrl.cpp:153 +msgid "Type your command below:" +msgstr "Saisissez votre commande ci-dessous : " + +#: src/wx-console/wxbmainframe.cpp:298 +msgid "Send" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:375 src/wx-console/wxbmainframe.cpp:387 +msgid "Error while parsing command line arguments, using defaults.\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:376 src/wx-console/wxbmainframe.cpp:388 +msgid "Usage: bwx-console [-c configfile] [-w tmp]\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:417 +#, c-format +msgid "" +"It seems that it is the first time you run bwx-console.\n" +"This file (%s) has been choosen as default configuration file.\n" +"Do you want to edit it? (if you click No you will have to select another " +"file)" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:419 +#, fuzzy +msgid "First run" +msgstr "est en cours" + +#: src/wx-console/wxbmainframe.cpp:436 +#, c-format +msgid "" +"Unable to read %s\n" +"Error: %s\n" +"Do you want to choose another one? (Press no to edit this file)" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:438 +#, fuzzy +msgid "Unable to read configuration file" +msgstr "Impossible de lire le certificat à partir du fichier" + +#: src/wx-console/wxbmainframe.cpp:450 +#, fuzzy +msgid "Please choose a configuration file to use" +msgstr "Merci de corriger le fichier de configuration : %s\n" + +#: src/wx-console/wxbmainframe.cpp:463 +msgid "This configuration file has been successfully read, use it as default?" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:464 +#, fuzzy +msgid "Configuration file read successfully" +msgstr "La création de la signature a échouée" + +#: src/wx-console/wxbmainframe.cpp:474 +#, fuzzy, c-format +msgid "Using this configuration file: %s\n" +msgstr "Merci de corriger le fichier de configuration : %s\n" + +#: src/wx-console/wxbmainframe.cpp:479 +#, fuzzy +msgid "Connecting to the director..." +msgstr "Connexion au Director %s:%d\n" + +#: src/wx-console/wxbmainframe.cpp:494 +msgid "Failed to unregister a data parser !" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:502 +msgid "Quitting.\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:517 +msgid "" +"Welcome to Bacula bwx-console.\n" +"Written by Nicolas Boichat \n" +"Copyright (C), 2005-2007 Free Software Foundation Europe, e.V.\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:521 +msgid "About Bacula bwx-console" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:527 +#, fuzzy +msgid "Please choose your default configuration file" +msgstr "Merci de corriger le fichier de configuration : %s\n" + +#: src/wx-console/wxbmainframe.cpp:531 +#, fuzzy +msgid "Use this configuration file as default?" +msgstr "Merci de corriger le fichier de configuration : %s\n" + +#: src/wx-console/wxbmainframe.cpp:532 +#, fuzzy +msgid "Configuration file" +msgstr "La création de la signature a échouée" + +#: src/wx-console/wxbmainframe.cpp:603 +#, fuzzy +msgid "Console thread terminated." +msgstr "est terminé" + +#: src/wx-console/wxbmainframe.cpp:611 +#, fuzzy +msgid "Connection to the director lost. Quit program?" +msgstr "Connexion au Director %s:%d\n" + +#: src/wx-console/wxbmainframe.cpp:612 +#, fuzzy +msgid "Connection lost" +msgstr "Connexion...\n" + +#: src/wx-console/wxbmainframe.cpp:628 +#, fuzzy +msgid "Connected to the director." +msgstr "Impossible de se connecter au Director\n" + +#: src/wx-console/wxbmainframe.cpp:651 +#, fuzzy +msgid "Reconnect" +msgstr "Connexion...\n" + +#: src/wx-console/wxbmainframe.cpp:652 +#, fuzzy +msgid "Reconnect to the director" +msgstr "Impossible de se connecter au Director\n" + +#: src/wx-console/wxbmainframe.cpp:666 +#, fuzzy +msgid "Disconnected of the director." +msgstr "Impossible de se connecter au Director\n" + +#: src/wx-console/wxbmainframe.cpp:685 src/wx-console/wxbrestorepanel.cpp:710 +msgid "Unexpected question has been received.\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:708 src/wx-console/wxbmainframe.cpp:725 +msgid "bwx-console: unexpected director's question." +msgstr "" + +#: src/wx-console/main.cpp:119 +#, fuzzy +msgid "Bacula bwx-console" +msgstr "Message de Bacula" + +#: src/wx-console/wxbconfigpanel.cpp:205 +msgid "Apply" +msgstr "" + +#: src/wx-console/wxbhistorytextctrl.cpp:117 +#, fuzzy +msgid "Unknown command." +msgstr "Erreur inconnue." + +#: src/wx-console/wxbhistorytextctrl.cpp:126 +#, fuzzy +msgid "Possible completions: " +msgstr "Les valeurs possibles sont :\n" + +#: src/wx-console/wxbrestorepanel.cpp:234 +#: src/wx-console/wxbrestorepanel.cpp:1920 +#: src/wx-console/wxbrestorepanel.cpp:1949 +#, fuzzy +msgid "Enter restore mode" +msgstr "Saisissez le nom d'un répertoire : " + +#: src/wx-console/wxbrestorepanel.cpp:237 +#, fuzzy +msgid "Cancel restore" +msgstr "Annulé" + +#: src/wx-console/wxbrestorepanel.cpp:263 +#: src/wx-console/wxbrestorepanel.cpp:317 +msgid "Add" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:265 +#: src/wx-console/wxbrestorepanel.cpp:319 +#, fuzzy +msgid "Remove" +msgstr "Restaurer" + +#: src/wx-console/wxbrestorepanel.cpp:267 +#: src/wx-console/wxbrestorepanel.cpp:321 +#, fuzzy +msgid "Refresh" +msgstr "Restaurer" + +#: src/wx-console/wxbrestorepanel.cpp:286 +msgid "M" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:290 +#, fuzzy +msgid "Filename" +msgstr "FileSet" + +#: src/wx-console/wxbrestorepanel.cpp:302 +msgid "Perm." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:335 +#: src/wx-console/wxbrestorepanel.cpp:348 +#: src/wx-console/wxbrestorepanel.cpp:503 +#: src/wx-console/wxbrestorepanel.cpp:513 +#: src/wx-console/wxbrestorepanel.cpp:516 +#: src/wx-console/wxbrestorepanel.cpp:1784 +#: src/wx-console/wxbrestorepanel.cpp:1870 +#, fuzzy +msgid "Job Name" +msgstr "Job échoué.\n" + +#: src/wx-console/wxbrestorepanel.cpp:337 +#: src/wx-console/wxbrestorepanel.cpp:353 +#: src/wx-console/wxbrestorepanel.cpp:455 +#: src/wx-console/wxbrestorepanel.cpp:456 +#: src/wx-console/wxbrestorepanel.cpp:466 +#: src/wx-console/wxbrestorepanel.cpp:467 +#: src/wx-console/wxbrestorepanel.cpp:1139 +#: src/wx-console/wxbrestorepanel.cpp:1212 +#: src/wx-console/wxbrestorepanel.cpp:1822 +#: src/wx-console/wxbrestorepanel.cpp:1824 +#: src/wx-console/wxbrestorepanel.cpp:1885 +#, fuzzy +msgid "Fileset" +msgstr "FileSet" + +#: src/wx-console/wxbrestorepanel.cpp:340 +#: src/wx-console/wxbrestorepanel.cpp:1206 +#: src/wx-console/wxbrestorepanel.cpp:1222 +#: src/wx-console/wxbrestorepanel.cpp:1224 +#: src/wx-console/wxbrestorepanel.cpp:1232 +#: src/wx-console/wxbrestorepanel.cpp:1234 +#: src/wx-console/wxbrestorepanel.cpp:1253 +#: src/wx-console/wxbrestorepanel.cpp:1260 +#: src/wx-console/wxbrestorepanel.cpp:1812 +#: src/wx-console/wxbrestorepanel.cpp:1823 +#: src/wx-console/wxbrestorepanel.cpp:1944 +#, fuzzy +msgid "Before" +msgstr "Restaurer" + +#: src/wx-console/wxbrestorepanel.cpp:342 +#, fuzzy +msgid "Please configure parameters concerning files to restore :" +msgstr "Aucun fichier sélectionné pour la restauration.\n" + +#: src/wx-console/wxbrestorepanel.cpp:351 +#: src/wx-console/wxbrestorepanel.cpp:1878 +msgid "always" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:351 +#, fuzzy +msgid "if newer" +msgstr "Type" + +#: src/wx-console/wxbrestorepanel.cpp:351 +msgid "if older" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:351 +#: src/wx-console/wxbrestorepanel.cpp:1881 +#, fuzzy +msgid "never" +msgstr "Type" + +#: src/wx-console/wxbrestorepanel.cpp:359 +msgid "Please configure parameters concerning files restoration :" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:427 +msgid "Getting parameters list." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:435 +#, fuzzy +msgid "Error : no clients returned by the director." +msgstr "Impossible de se connecter au Director\n" + +#: src/wx-console/wxbrestorepanel.cpp:459 +msgid "Error : no filesets returned by the director." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:483 +#, fuzzy +msgid "Error : no storage returned by the director." +msgstr "Impossible de se connecter au Director\n" + +#: src/wx-console/wxbrestorepanel.cpp:506 +#: src/wx-console/wxbrestorepanel.cpp:530 +#, fuzzy +msgid "Error : no jobs returned by the director." +msgstr "Impossible de se connecter au Director\n" + +#: src/wx-console/wxbrestorepanel.cpp:516 +#, fuzzy +msgid "RestoreFiles" +msgstr "restauration de fichier" + +#: src/wx-console/wxbrestorepanel.cpp:551 +#, fuzzy +msgid "Please configure your restore parameters." +msgstr "Aucun fichier sélectionné pour la restauration.\n" + +#: src/wx-console/wxbrestorepanel.cpp:562 +#, fuzzy +msgid "Building restore tree..." +msgstr "" +"\n" +"Analyse des répertoires pour le JobId %s..." + +#: src/wx-console/wxbrestorepanel.cpp:605 +#, fuzzy +msgid "Error while starting restore: " +msgstr "Entrez le nombre de départ : " + +#: src/wx-console/wxbrestorepanel.cpp:695 +msgid "" +"Right click on a file or on a directory, or double-click on its mark to add " +"it to the restore list." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:732 +#: src/wx-console/wxbrestorepanel.cpp:754 +msgid "bwx-console: unexpected restore question." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:765 +#, fuzzy +msgid " files selected to be restored." +msgstr "Aucun fichier sélectionné pour la restauration.\n" + +#: src/wx-console/wxbrestorepanel.cpp:770 +#, fuzzy +msgid " file selected to be restored." +msgstr "Aucun fichier sélectionné pour la restauration.\n" + +#: src/wx-console/wxbrestorepanel.cpp:777 +#, fuzzy, c-format +msgid "Please configure your restore (%ld files selected to be restored)..." +msgstr "Aucun fichier sélectionné pour la restauration.\n" + +#: src/wx-console/wxbrestorepanel.cpp:787 +#, fuzzy +msgid "Restore failed : no file selected.\n" +msgstr "Impossible de créer le fichier bootstrap %s : ERR=%s\n" + +#: src/wx-console/wxbrestorepanel.cpp:788 +#, fuzzy +msgid "Restore failed : no file selected." +msgstr "Impossible de se connecter au Client.\n" + +#: src/wx-console/wxbrestorepanel.cpp:798 +#, fuzzy +msgid "Restoring, please wait..." +msgstr "string" + +#: src/wx-console/wxbrestorepanel.cpp:811 +#, fuzzy +msgid "Job queued. JobId=" +msgstr "Job mis en queue. JobId=%s\n" + +#: src/wx-console/wxbrestorepanel.cpp:813 +#, fuzzy +msgid "Restore queued, jobid=" +msgstr "Job démarré. JobId=%s\n" + +#: src/wx-console/wxbrestorepanel.cpp:817 +#, fuzzy +msgid "Job failed." +msgstr "Job échoué.\n" + +#: src/wx-console/wxbrestorepanel.cpp:818 +msgid "Restore failed, please look at messages.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:819 +msgid "Restore failed, please look at messages in console." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:825 +#: src/wx-console/wxbrestorepanel.cpp:826 +#, fuzzy +msgid "Failed to retrieve jobid.\n" +msgstr "Impossible de se connecter au Client.\n" + +#: src/wx-console/wxbrestorepanel.cpp:852 +msgid "" +"Restore is scheduled in more than two minutes, bwx-console will not wait for " +"its completion.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:853 +msgid "" +"Restore is scheduled in more than two minutes, bwx-console will not wait for " +"its completion." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:879 +#, fuzzy +msgid "Restore job created, but not yet running." +msgstr "Restauration annulée" + +#: src/wx-console/wxbrestorepanel.cpp:884 +#, fuzzy, c-format +msgid "Restore job running, please wait (%ld of %ld files restored)..." +msgstr "%s Job %s est en attente de la connexion du Client.\n" + +#: src/wx-console/wxbrestorepanel.cpp:888 +#, fuzzy +msgid "Restore job terminated successfully." +msgstr "Restauration non effectuée.\n" + +#: src/wx-console/wxbrestorepanel.cpp:889 +#, fuzzy +msgid "Restore job terminated successfully.\n" +msgstr "Restauration non effectuée.\n" + +#: src/wx-console/wxbrestorepanel.cpp:894 +msgid "Restore job terminated in error, see messages in console." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:895 +#, fuzzy +msgid "Restore job terminated in error, see messages.\n" +msgstr " Le Device est BLOQUÉ en attente d'un média.\n" + +#: src/wx-console/wxbrestorepanel.cpp:900 +msgid "Restore job reported a non-fatal error." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:904 +#, fuzzy +msgid "Restore job reported a fatal error." +msgstr "Restauration annulée" + +#: src/wx-console/wxbrestorepanel.cpp:909 +#, fuzzy +msgid "Restore job cancelled by user." +msgstr "Restauration annulée" + +#: src/wx-console/wxbrestorepanel.cpp:910 +#, fuzzy +msgid "Restore job cancelled by user.\n" +msgstr "Restauration annulée" + +#: src/wx-console/wxbrestorepanel.cpp:915 +#, fuzzy +msgid "Restore job is waiting on File daemon." +msgstr "%s Job %s est en attente de la connexion du Client.\n" + +#: src/wx-console/wxbrestorepanel.cpp:919 +#, fuzzy +msgid "Restore job is waiting for new media." +msgstr " Le Device est BLOQUÉ en attente d'un média.\n" + +#: src/wx-console/wxbrestorepanel.cpp:923 +#, fuzzy +msgid "Restore job is waiting for storage resource." +msgstr "En attente du Storage" + +#: src/wx-console/wxbrestorepanel.cpp:927 +#, fuzzy +msgid "Restore job is waiting for job resource." +msgstr "En attente du Storage" + +#: src/wx-console/wxbrestorepanel.cpp:931 +#, fuzzy +msgid "Restore job is waiting for Client resource." +msgstr "%s Job %s est en attente de la connexion du Client.\n" + +#: src/wx-console/wxbrestorepanel.cpp:935 +#, fuzzy +msgid "Restore job is waiting for maximum jobs." +msgstr "En attente du Storage" + +#: src/wx-console/wxbrestorepanel.cpp:939 +#, fuzzy +msgid "Restore job is waiting for start time." +msgstr "attend son heure de démarrage" + +#: src/wx-console/wxbrestorepanel.cpp:943 +#, fuzzy +msgid "Restore job is waiting for higher priority jobs to finish." +msgstr "attend qu'un job plus prioritaire se termine" + +#: src/wx-console/wxbrestorepanel.cpp:992 +msgid "" +"The restore job has not been started within one minute, bwx-console will not " +"wait for its completion anymore.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:993 +msgid "" +"The restore job has not been started within one minute, bwx-console will not " +"wait for its completion anymore." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1003 +#, fuzzy +msgid "Restore done successfully.\n" +msgstr "Restauration non effectuée.\n" + +#: src/wx-console/wxbrestorepanel.cpp:1004 +#, fuzzy +msgid "Restore done successfully." +msgstr "Restauration non effectuée.\n" + +#: src/wx-console/wxbrestorepanel.cpp:1075 +msgid "Applying restore configuration changes..." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1126 +#, fuzzy +msgid "Failed to find the selected client." +msgstr "Impossible de se connecter au Client.\n" + +#: src/wx-console/wxbrestorepanel.cpp:1141 +#, fuzzy +msgid "Failed to find the selected fileset." +msgstr "Impossible de se connecter au Client.\n" + +#: src/wx-console/wxbrestorepanel.cpp:1156 +#, fuzzy +msgid "Failed to find the selected storage." +msgstr "Impossible de se connecter au Storage daemon.\n" + +#: src/wx-console/wxbrestorepanel.cpp:1173 +#: src/wx-console/wxbrestorepanel.cpp:1859 +#, fuzzy +msgid "Run Restore job" +msgstr "Sélectionnez le Job de restauration" + +#: src/wx-console/wxbrestorepanel.cpp:1189 +msgid "Restore configuration changes were applied." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1198 +#, fuzzy +msgid "Restore cancelled.\n" +msgstr "Restauration annulée" + +#: src/wx-console/wxbrestorepanel.cpp:1199 +#, fuzzy +msgid "Restore cancelled." +msgstr "Restauration annulée" + +#: src/wx-console/wxbrestorepanel.cpp:1221 +#, fuzzy +msgid "No results to list." +msgstr "Liste vide.\n" + +#: src/wx-console/wxbrestorepanel.cpp:1223 +#, fuzzy +msgid "No backup found for this client." +msgstr "Pas de job trouvé pour : %s.\n" + +#: src/wx-console/wxbrestorepanel.cpp:1230 +#, fuzzy +msgid "ERROR" +msgstr "%s : ERREUR : " + +#: src/wx-console/wxbrestorepanel.cpp:1231 +#, fuzzy +msgid "Query failed" +msgstr "Erreur sur la requête : %s\n" + +#: src/wx-console/wxbrestorepanel.cpp:1233 +msgid "Cannot get previous backups list, see console." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1869 +#, fuzzy +msgid "JobName:" +msgstr "Job échoué.\n" + +#: src/wx-console/wxbrestorepanel.cpp:1873 +#, fuzzy +msgid "Where:" +msgstr "Destination" + +#: src/wx-console/wxbrestorepanel.cpp:1876 +#, fuzzy +msgid "Replace:" +msgstr "Écrasement :\n" + +#: src/wx-console/wxbrestorepanel.cpp:1879 +#, fuzzy +msgid "ifnewer" +msgstr "Type" + +#: src/wx-console/wxbrestorepanel.cpp:1880 +msgid "ifolder" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1884 +#, fuzzy +msgid "FileSet:" +msgstr "FileSet" + +#: src/wx-console/wxbrestorepanel.cpp:2001 +#, fuzzy +msgid "Restoring..." +msgstr "string" + +#: src/wx-console/console_thread.cpp:121 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Director \"%s\" in config file.\n" +"At least one CA certificate store is required.\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:128 +#, fuzzy +msgid "" +"No Director resource defined in config file.\n" +"Without that I don't how to speak to the Director :-(\n" +msgstr "" +"Pas de director défini pour %s\n" +"Sans cette définition, il n'est pas possible de se connecter à celui-ci.\n" + +#: src/wx-console/console_thread.cpp:147 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Console \"%s\" in config file.\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:169 +#, fuzzy +msgid "Error while initializing windows sockets...\n" +msgstr "Erreur pendant l'initialisation du contexte SSL" + +#: src/wx-console/console_thread.cpp:185 +#, fuzzy +msgid "Error while cleaning up windows sockets...\n" +msgstr "Erreur pendant l'initialisation du contexte SSL" + +#: src/wx-console/console_thread.cpp:224 +#, fuzzy +msgid "Error while initializing library." +msgstr "Erreur pendant l'initialisation du contexte SSL" + +#: src/wx-console/console_thread.cpp:248 +#, fuzzy +msgid "Cryptographic library initialization failed.\n" +msgstr "Initialisation de la connexion TLS échouée.\n" + +#: src/wx-console/console_thread.cpp:252 +#, fuzzy +msgid "Please correct configuration file.\n" +msgstr "Merci de corriger le fichier de configuration : %s\n" + +#: src/wx-console/console_thread.cpp:294 +#, fuzzy +msgid "Error : Library not initialized\n" +msgstr "Impossible d'initialiser %s\n" + +#: src/wx-console/console_thread.cpp:305 +#, fuzzy +msgid "Error : No configuration file loaded\n" +msgstr "La création de la signature a échouée" + +#: src/wx-console/console_thread.cpp:315 +msgid "Connecting...\n" +msgstr "Connexion...\n" + +#: src/wx-console/console_thread.cpp:331 +msgid "Error : No director defined in config file.\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:343 +msgid "Multiple directors found in your config file.\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:352 +#, c-format +msgid "Please choose a director (1-%d): " +msgstr "" + +#: src/wx-console/console_thread.cpp:424 +msgid "Failed to connect to the director\n" +msgstr "Impossible de se connecter au Director\n" + +#: src/wx-console/console_thread.cpp:434 +#, fuzzy +msgid "Connected\n" +msgstr "Connexion...\n" + +#: src/wx-console/console_thread.cpp:491 +msgid "<< Unexpected signal received : " +msgstr "" + +#: src/wx-console/console_thread.cpp:511 +#, fuzzy +msgid "Connection terminated\n" +msgstr "Sélection terminée.\n" + +#: src/wx-console/wxbconfigfileeditor.cpp:65 +#, fuzzy +msgid "Config file editor" +msgstr "La création de la signature a échouée" + +#: src/wx-console/wxbconfigfileeditor.cpp:75 +#, fuzzy +msgid "# Bacula bwx-console Configuration File\n" +msgstr "Merci de corriger le fichier de configuration : %s\n" + +#: src/wx-console/wxbconfigfileeditor.cpp:111 +msgid "Save and close" +msgstr "" + +#: src/wx-console/wxbconfigfileeditor.cpp:112 +msgid "Close without saving" +msgstr "" + +#: src/wx-console/wxbconfigfileeditor.cpp:139 +#, fuzzy, c-format +msgid "Unable to write to %s\n" +msgstr "Impossible d'écrire le marqueur EOF. ERR=%s\n" + +#: src/wx-console/wxbconfigfileeditor.cpp:140 +#, fuzzy +msgid "Error while saving" +msgstr "Entrez le nombre de départ : " + +#: src/win32/libwin32/service.cpp:109 +msgid "RegisterServiceCtlHandler failed" +msgstr "" + +#: src/win32/libwin32/service.cpp:110 +#, fuzzy +msgid "Failure contacting the Service Handler" +msgstr "Impossible de décrypter la clef de session" + +#: src/win32/libwin32/service.cpp:121 +msgid "Service start report failed" +msgstr "" + +#: src/win32/libwin32/service.cpp:174 +msgid "StartServiceCtrlDispatcher failed." +msgstr "" + +#: src/win32/libwin32/service.cpp:181 +msgid "KERNEL32.DLL not found: Bacula service not started" +msgstr "" + +#: src/win32/libwin32/service.cpp:191 +#, fuzzy +msgid "Registry service not found: Bacula service not started" +msgstr "Ressource %s introuvable\n" + +#: src/win32/libwin32/service.cpp:193 +#, fuzzy +msgid "Registry service entry point not found" +msgstr "Ressource %s introuvable\n" + +#: src/win32/libwin32/service.cpp:214 +msgid "Report Service failure" +msgstr "" + +#: src/win32/libwin32/service.cpp:245 +#, fuzzy +msgid "Unable to install the service" +msgstr "Impossible d'écrire le marqueur EOF. ERR=%s\n" + +#: src/win32/libwin32/service.cpp:253 +msgid "Service command length too long" +msgstr "" + +#: src/win32/libwin32/service.cpp:254 +msgid "Service command length too long. Service not registered." +msgstr "" + +#: src/win32/libwin32/service.cpp:267 +msgid "" +"The Service Control Manager could not be contacted - the service was not " +"installed" +msgstr "" + +#: src/win32/libwin32/service.cpp:290 src/win32/libwin32/service.cpp:319 +#: src/win32/libwin32/service.cpp:366 src/win32/libwin32/service.cpp:373 +#: src/win32/libwin32/service.cpp:377 +#, fuzzy +msgid "The Bacula service: " +msgstr "Bacula Storage : Dernier Job annulé" + +#: src/win32/libwin32/service.cpp:297 +msgid "" +"Provides file backup and restore services. Bacula -- the network backup " +"solution." +msgstr "" + +#: src/win32/libwin32/service.cpp:308 +msgid "Cannot write System Registry for " +msgstr "" + +#: src/win32/libwin32/service.cpp:309 +msgid "" +"The System Registry could not be updated - the Bacula service was not " +"installed" +msgstr "" + +#: src/win32/libwin32/service.cpp:318 +msgid "Cannot add Bacula key to System Registry" +msgstr "" + +#: src/win32/libwin32/service.cpp:329 +msgid "The " +msgstr "" + +#: src/win32/libwin32/service.cpp:384 +msgid "A existing Bacula service: " +msgstr "" + +#: src/win32/libwin32/service.cpp:392 +#, fuzzy +msgid "" +"The service Manager could not be contacted - the Bacula service was not " +"removed" +msgstr "Ressource %s introuvable\n" + +#: src/win32/libwin32/service.cpp:404 +msgid "" +"Could not find registry entry.\n" +"Service probably not registerd - the Bacula service was not removed" +msgstr "" + +#: src/win32/libwin32/service.cpp:410 +#, fuzzy +msgid "Could not delete Registry key for " +msgstr "Impossible de détruire la mémoire partagée : %s\n" + +#: src/win32/libwin32/service.cpp:420 +msgid "Bacula could not be contacted, probably not running" +msgstr "" + +#: src/win32/libwin32/service.cpp:427 +msgid "The Bacula service has been removed" +msgstr "" + +#: src/win32/libwin32/service.cpp:468 +msgid "SetServiceStatus failed" +msgstr "" + +#: src/win32/libwin32/service.cpp:494 +#, c-format +msgid "" +"\n" +"\n" +"%s error: %ld at %s:%d" +msgstr "" + +#: src/win32/libwin32/service.cpp:570 +#, c-format +msgid "Locked by: %s, duration: %ld seconds\n" +msgstr "" + +#: src/win32/libwin32/service.cpp:574 +#, c-format +msgid "No longer locked\n" +msgstr "" + +#: src/win32/libwin32/service.cpp:578 +#, fuzzy +msgid "Could not lock database" +msgstr "Impossible d'ouvrir la base de données « %s ».\n" + +#: src/win32/libwin32/main.cpp:237 +msgid "Bad Command Line Option" +msgstr "" + +#~ msgid " (" +#~ msgstr " (" + +#~ msgid "" +#~ "): %s\n" +#~ " JobId: %d\n" +#~ " Job: %s\n" +#~ " Start time: %s\n" +#~ " End time: %s\n" +#~ " Termination: %s\n" +#~ "\n" +#~ msgstr "" +#~ ") : %s\n" +#~ " JobId : %d\n" +#~ " Job : %s\n" +#~ " Début : %s\n" +#~ " Fin : %s\n" +#~ " Statut de fin : %s\n" +#~ "\n" + +#~ msgid "" +#~ ") %s %s %s\n" +#~ "\n" +#~ "Usage: bconsole [-s] [-c config_file] [-d debug_level]\n" +#~ " -c set configuration file to file\n" +#~ " -dnn set debug level to nn\n" +#~ " -n no conio\n" +#~ " -s no signals\n" +#~ " -t test - read configuration and exit\n" +#~ " -? print this message.\n" +#~ "\n" +#~ msgstr "" +#~ ") %s %s %s\n" +#~ "\n" +#~ "Usage : bconsole [-s] [-c config_file] [-d niveau_debug]\n" +#~ " -c utilise le fichier de configuration file\n" +#~ " -dnn positionne le niveau de debug a nn\n" +#~ " -n n'utilise pas conio\n" +#~ " -s no signals\n" +#~ " -t test - lecture de la configuration et sortie\n" +#~ " -? affiche ce message\n" + +#, fuzzy +#~ msgid " could not be installed" +#~ msgstr "Bacula Storage : Dernier Job en erreur" + +#, fuzzy +#~ msgid " has been removed" +#~ msgstr "a été annulé" + +#, fuzzy +#~ msgid " could not be removed" +#~ msgstr "Impossible d'ouvrir le device %s\n" + +#, fuzzy +#~ msgid "" +#~ ".\n" +#~ "The Bacula service could not be removed" +#~ msgstr "Ressource %s introuvable\n" + +#, fuzzy +#~ msgid "" +#~ "Wanted to append to Volume \"%s\", but device %s is busy writing on \"%s" +#~ "\" .\n" +#~ msgstr "" +#~ "Voulait le Volume « %s », mais le Device %s est occupé à écrire sur « %" +#~ "s ».\n" + +#~ msgid "%s: %s Warning: " +#~ msgstr "%s : %s Attention : " + +#~ msgid "get_char: called after EOF\n" +#~ msgstr "get_char : appelé après EOF\n" + +#, fuzzy +#~ msgid "Bacula Usage" +#~ msgstr "Message de Bacula" + +#, fuzzy +#~ msgid "Unable to get Volume record: ERR=%s" +#~ msgstr "Impossible de mettre à jour les informations du Volume : ERR=%s" + +#~ msgid "Unable to update Volume record: ERR=%s" +#~ msgstr "Impossible de mettre à jour les informations du Volume : ERR=%s" + +#~ msgid "Do you want to continue? (yes|no): " +#~ msgstr "Voulez vous continuer ? (oui/non) : " + +#~ msgid "Continue? (yes/no): " +#~ msgstr "Continuez ? (oui/non) : " + +#, fuzzy +#~ msgid "Invalid MediaId found.\n" +#~ msgstr "Période invalide.\n" + +#~ msgid "Device %s is mounted with Volume=\"%s\" Pool=\"%s\"\n" +#~ msgstr "Le Device %s est monté avec le Volume=« %s » Pool=« %s »\n" + +#, fuzzy +#~ msgid "Forbidden \"where\" specified.\n" +#~ msgstr "La destination (Where) est déjà spécifiée.\n" + +#~ msgid " --> MaxRunTime=%u\n" +#~ msgstr " --> MaxRunTime=%u\n" + +#~ msgid " --> MaxWaitTime=%u\n" +#~ msgstr " --> MaxWaitTime=%u\n" + +#~ msgid " --> MaxStartDelay=%u\n" +#~ msgstr " --> MaxStartDelay=%u\n" + +#~ msgid "Max sched run time exceeded. Job canceled.\n" +#~ msgstr "" +#~ "Temps d'exécution maximum depuis la planification atteind. Abandon du " +#~ "job.\n" + +#~ msgid "Please mount Volume \"%s\" on Storage Device %s for Job %s\n" +#~ msgstr "" +#~ "Merci de monter le Volume « %s » sur le Storage Device « %s » pour le Job " +#~ "%s\n" + +#~ msgid "Job %s not found.\n" +#~ msgstr "Job %s non trouvé.\n" + +#~ msgid "%s Version: %s (%s)\n" +#~ msgstr "%s Version : %s (%s)\n" + +#~ msgid "There are no Jobs associated with Volume \"%s\". Prune not needed.\n" +#~ msgstr "" +#~ "Il n'y a pas de job associé avec le volume « %s ». Pas besoin de purger " +#~ "le catalogue (prune).\n" + +#~ msgid "" +#~ "There are no Jobs associated with Volume \"%s\". Marking it purged.\n" +#~ msgstr "" +#~ "Il n'y a pas de job associé avec le volume « %s ». Il doit être marqué\n" +#~ "comme purgé.\n" + +#~ msgid "Pruned %d %s on Volume \"%s\" from catalog.\n" +#~ msgstr "Purge du catalogue (prune) de %d %s sur le volume « %s ».\n" + +#~ msgid "%d Files for client \"%s\" purged from %s catalog.\n" +#~ msgstr "%d fichiers du client « %s » purgé du catalogue %s.\n" + +#~ msgid "No Jobs found for client %s to purge from %s catalog.\n" +#~ msgstr "Pas de job à purger pour le client « %s » dans le catalogue %s.\n" + +#~ msgid "" +#~ "Run Restore job\n" +#~ "JobName: %s\n" +#~ "Bootstrap: %s\n" +#~ "Where: %s\n" +#~ "Replace: %s\n" +#~ "FileSet: %s\n" +#~ "Client: %s\n" +#~ "Storage: %s\n" +#~ "When: %s\n" +#~ "Catalog: %s\n" +#~ "Priority: %d\n" +#~ msgstr "" +#~ "Lancement de la restauration\n" +#~ "JobName : %s\n" +#~ "Bootstrap : %s\n" +#~ "Destination : %s\n" +#~ "Écrasement : %s\n" +#~ "FileSet : %s\n" +#~ "Client : %s\n" +#~ "Storage : %s\n" +#~ "Quand : %s\n" +#~ "Catalogue : %s\n" +#~ "Priorité : %d\n" + +#~ msgid "Item 1 selected automatically.\n" +#~ msgstr "Sélection automatique de l'objet 1.\n" + +#~ msgid "OpenSSL error occured" +#~ msgstr "Une erreur OpenSSL s'est produite" + +#~ msgid "Device %s is busy reading.\n" +#~ msgstr "Le device %s est occupé en lecture.\n" + +#, fuzzy +#~ msgid "Job started. JobId=" +#~ msgstr "Job démarré. JobId=%s\n" + +#, fuzzy +#~ msgid "NextPool in Pool resource" +#~ msgstr "Sélectionnez le Pool" + +#~ msgid "%s: is an illegal command.\n" +#~ msgstr "%s : est une commande invalide.\n" + +#, fuzzy +#~ msgid "\"%s\" is an illegal command\n" +#~ msgstr "%s est une commande invalide\n" + +#, fuzzy +#~ msgid "" +#~ ")\n" +#~ "\n" +#~ "Usage: dird [-f -s] [-c config_file] [-d debug_level] [config_file]\n" +#~ " -c set configuration file to file\n" +#~ " -dnn set debug level to nn\n" +#~ " -f run in foreground (for debugging)\n" +#~ " -r run now\n" +#~ " -s no signals\n" +#~ " -t test - read configuration and exit\n" +#~ " -? print this message.\n" +#~ "\n" +#~ msgstr "" +#~ "Copyright (C) 2000-2005 Kern Sibbald.\n" +#~ "\n" +#~ "Version : %s (%s)\n" +#~ "\n" +#~ "Usage : dird [-f -s] [-c config_file] [-d debug_level] [config_file]\n" +#~ " -c utilise fich comme fichier de configuration\n" +#~ " -dnn positionne le niveau de debug à nn\n" +#~ " -f reste en avant-plan (pour debugger)\n" +#~ " -g groupid\n" +#~ " -r lance maintenant\n" +#~ " -s pas de signaux\n" +#~ " -t test - lit seulement le fichier de configuration\n" +#~ " -u userid\n" +#~ " -v affiche les messages utilisateurs\n" +#~ " -? affiche ce message.\n" +#~ "\n" + +#, fuzzy +#~ msgid "No Client record defined for job %s\n" +#~ msgstr "Pas d'enregistrement trouvé en base pour : %s\n" + +#, fuzzy +#~ msgid "No FileSet record defined for job %s\n" +#~ msgstr "Pas de volume trouvé en base pour l'objet %d.\n" + +#, fuzzy +#~ msgid "No Storage resource defined for job %s\n" +#~ msgstr "Pas d'enregistrement trouvé en base pour : %s\n" + +#, fuzzy +#~ msgid "No Pool resource defined for job %s\n" +#~ msgstr "La ressource Pool « %s » est introuvable !\n" + +#, fuzzy +#~ msgid "1 file (%s)" +#~ msgstr "Nouveau Fichier : %s\n" + +#, fuzzy +#~ msgid "%d files (%s)" +#~ msgstr "Nouveau Fichier : %s\n" + +#, fuzzy +#~ msgid "1 file selected (%s)" +#~ msgstr "" +#~ "\n" +#~ "1 fichier sélectionne pour la restauration.\n" +#~ "\n" + +#, fuzzy +#~ msgid "Command not found." +#~ msgstr "Commande annulée.\n" + +#, fuzzy +#~ msgid "Command exited abnormally." +#~ msgstr "Commande annulée.\n" + +#, fuzzy +#~ msgid "Do you want to create a new archive with these files?" +#~ msgstr "" +#~ "\n" +#~ "Voulez vous restaurer tous les fichiers ? (oui|non) : " + +#, fuzzy +#~ msgid "Create _Folder" +#~ msgstr "Crée" + +#~ msgid "Write failed at block %u.\n" +#~ msgstr "Impossible d'écrire au bloc %u.\n" + +#, fuzzy +#~ msgid "" +#~ "Copyright (C) 2004-2006 Kern Sibbald\n" +#~ "Written by Nicolas Boichat\n" +#~ msgstr "" +#~ "Copyright (C) 2000-2005 Kern Sibbald\n" +#~ "\n" +#~ "Version : " + +#~ msgid "Cannot restore without bootstrap file.\n" +#~ msgstr "Impossible de restaurer sans un fichier bootstrap.\n" + +#~ msgid "Using default Catalog name=%s DB=%s\n" +#~ msgstr "Utilisation du Catalogue par défaut name=%s DB=%s\n" + +#~ msgid "Terminated Jobs:\n" +#~ msgstr "Job terminés :\n" + +#, fuzzy +#~ msgid "3912 Failed to truncate previous DVD volume.\n" +#~ msgstr "3912 Impossible de labéliser le Volume : ERR=%s\n" + +#~ msgid "Rewind failed.\n" +#~ msgstr "Impossible de Rembobiner.\n" + +#~ msgid "Write EOF failed.\n" +#~ msgstr "Impossible d'écrire le EOF.\n" + +#~ msgid "Success" +#~ msgstr "Succès" + +#~ msgid "No match" +#~ msgstr "Aucune correspondance" + +#~ msgid "Invalid regular expression" +#~ msgstr "Expression régulière invalide" + +#~ msgid "Invalid back reference" +#~ msgstr "Référence arrière invalide" + +#~ msgid "Regular expression too big" +#~ msgstr "Expression régulière trop grande" + +#~ msgid "Could not get %d bytes of shared memory: %s\n" +#~ msgstr "Impossible de récupérer %d octets de mémoire partagée : %s\n" + +#~ msgid "catalog" +#~ msgstr "catalog" + +#~ msgid "fd" +#~ msgstr "fd" + +#~ msgid "========================================================================\n" +#~ msgstr "========================================================================\n" + +#~ msgid "The job will require the following Volumes:\n" +#~ msgstr "Le job va utiliser les volumes suivants :\n" + +#~ msgid "readlabel %s Slot=%d drive=%d\n" +#~ msgstr "readlabel %s Slot=%d drive=%d\n" + +#~ msgid "autochanger list %s \n" +#~ msgstr "autochanger list %s \n" + +#~ msgid "autochanger slots %s\n" +#~ msgstr "autochanger slots %s\n" + +#~ msgid "autochanger drives %s\n" +#~ msgstr "autochanger drives %s\n" + +#~ msgid "No MediaType found for your JobIds.\n" +#~ msgstr "Pas de MediaType trouvé pour vos JobIds\n" + +#~ msgid "off" +#~ msgstr "off" + +#~ msgid "jobid" +#~ msgstr "jobid" + +#~ msgid "job" +#~ msgstr "job" + +#~ msgid "restart" +#~ msgstr "restart" + +#~ msgid "" +#~ "\n" +#~ "%s Version: %s (%s) %s %s %s\n" +#~ msgstr "" +#~ "\n" +#~ "%s Version : %s (%s) %s %s %s\n" diff --git a/Branch-2.2/bacula/po/insert-header.sin b/Branch-2.2/bacula/po/insert-header.sin new file mode 100644 index 0000000000..b26de01f6c --- /dev/null +++ b/Branch-2.2/bacula/po/insert-header.sin @@ -0,0 +1,23 @@ +# Sed script that inserts the file called HEADER before the header entry. +# +# At each occurrence of a line starting with "msgid ", we execute the following +# commands. At the first occurrence, insert the file. At the following +# occurrences, do nothing. The distinction between the first and the following +# occurrences is achieved by looking at the hold space. +/^msgid /{ +x +# Test if the hold space is empty. +s/m/m/ +ta +# Yes it was empty. First occurrence. Read the file. +r HEADER +# Output the file's contents by reading the next line. But don't lose the +# current line while doing this. +g +N +bb +:a +# The hold space was nonempty. Following occurrences. Do nothing. +x +:b +} diff --git a/Branch-2.2/bacula/po/it.po b/Branch-2.2/bacula/po/it.po new file mode 100644 index 0000000000..cdc8e8bae0 --- /dev/null +++ b/Branch-2.2/bacula/po/it.po @@ -0,0 +1,15930 @@ +# Italian translations for Bacula package +# Traduzioni italiane per il pacchetto Bacula.. +# Copyright (C) 2005-2006 Free Software Foundation Europe e.V. +# , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: Bacula 1.38\n" +"Report-Msgid-Bugs-To: bacula-devel@lists.sourceforge.net\n" +"POT-Creation-Date: 2007-08-10 23:23+0200\n" +"PO-Revision-Date: 2005-08-08 17:50+0200\n" +"Last-Translator: \n" +"Language-Team: Italian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: src/cats/bdb.c:161 +msgid "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n" +msgstr "" + +#: src/cats/bdb.c:162 +msgid "WARNING!!!! The Internal Database is NOT OPERATIONAL!\n" +msgstr "" + +#: src/cats/bdb.c:163 +msgid "You should use SQLite, PostgreSQL, or MySQL\n" +msgstr "" + +#: src/cats/bdb.c:185 src/cats/mysql.c:152 src/cats/postgresql.c:161 +#: src/cats/sqlite.c:160 +#, c-format +msgid "Unable to initialize DB lock. ERR=%s\n" +msgstr "" + +#: src/cats/bdb.c:195 +#, c-format +msgid "Unable to open Catalog DB control file %s: ERR=%s\n" +msgstr "" + +#: src/cats/bdb.c:250 +#, c-format +msgid "Error reading catalog DB control file. ERR=%s\n" +msgstr "" + +#: src/cats/bdb.c:253 +#, c-format +msgid "" +"Error, catalog DB control file wrong version. Wanted %d, got %d\n" +"Please reinitialize the working directory.\n" +msgstr "" + +#: src/cats/bdb_update.c:88 src/cats/bdb_update.c:119 +#, c-format +msgid "Error updating DB Job file. ERR=%s\n" +msgstr "" + +#: src/cats/bdb_update.c:158 src/cats/bdb_update.c:194 +#, c-format +msgid "Error updating DB Media file. ERR=%s\n" +msgstr "" + +#: src/cats/mysql.c:82 +msgid "A user name for MySQL must be supplied.\n" +msgstr "" + +#: src/cats/mysql.c:190 +#, c-format +msgid "" +"Unable to connect to MySQL server.\n" +"Database=%s User=%s\n" +"MySQL connect failed either server not running or your authorization is " +"incorrect.\n" +msgstr "" + +#: src/cats/mysql.c:367 src/cats/postgresql.c:304 src/cats/sqlite.c:351 +#, c-format +msgid "Query failed: %s: ERR=%s\n" +msgstr "" + +#: src/cats/postgresql.c:85 +msgid "A user name for PostgreSQL must be supplied.\n" +msgstr "" + +#: src/cats/postgresql.c:148 +msgid "" +"PostgreSQL configuration problem. PostgreSQL library is not thread safe. " +"Connot continue.\n" +msgstr "" + +#: src/cats/postgresql.c:198 +#, c-format +msgid "" +"Unable to connect to PostgreSQL server.\n" +"Database=%s User=%s\n" +"It is probably not running or your password is incorrect.\n" +msgstr "" + +#: src/cats/postgresql.c:590 +#, c-format +msgid "error fetching currval: %s\n" +msgstr "" + +#: src/cats/postgresql.c:682 src/cats/postgresql.c:729 +#, c-format +msgid "error ending batch mode: %s\n" +msgstr "" + +#: src/cats/sql.c:139 +#, c-format +msgid "" +"query %s failed:\n" +"%s\n" +msgstr "" + +#: src/cats/sql.c:161 +#, c-format +msgid "" +"insert %s failed:\n" +"%s\n" +msgstr "" + +#: src/cats/sql.c:175 +#, c-format +msgid "Insertion problem: affected_rows=%s\n" +msgstr "" + +#: src/cats/sql.c:195 +#, c-format +msgid "" +"update %s failed:\n" +"%s\n" +msgstr "" + +#: src/cats/sql.c:205 +#, c-format +msgid "Update failed: affected_rows=%s for %s\n" +msgstr "" + +#: src/cats/sql.c:226 +#, c-format +msgid "" +"delete %s failed:\n" +"%s\n" +msgstr "" + +#: src/cats/sql.c:252 src/cats/sql.c:259 src/cats/sql_create.c:1018 +#: src/cats/sql_get.c:185 src/cats/sql_get.c:236 src/cats/sql_get.c:604 +#: src/cats/sql_get.c:680 src/cats/sql_get.c:951 +#, c-format +msgid "error fetching row: %s\n" +msgstr "" + +#: src/cats/sql.c:369 src/dird/catreq.c:404 src/dird/catreq.c:478 +#: src/dird/fd_cmds.c:638 src/dird/fd_cmds.c:696 +#, c-format +msgid "Attribute create error. %s" +msgstr "" + +#: src/cats/sql.c:450 +#, c-format +msgid "Path length is zero. File=%s\n" +msgstr "" + +#: src/cats/sql.c:494 +msgid "No results to list.\n" +msgstr "" + +#: src/cats/sql_create.c:95 +#, c-format +msgid "Create DB Job record %s failed. ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:146 +#, c-format +msgid "Create JobMedia record %s failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:155 +#, c-format +msgid "Update Media record %s failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:185 +#, c-format +msgid "pool record %s already exists\n" +msgstr "" + +#: src/cats/sql_create.c:212 +#, c-format +msgid "Create db Pool record %s failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:243 +#, c-format +msgid "Device record %s already exists\n" +msgstr "" + +#: src/cats/sql_create.c:259 +#, c-format +msgid "Create db Device record %s failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:292 +#, c-format +msgid "More than one Storage record!: %d\n" +msgstr "" + +#: src/cats/sql_create.c:297 +#, c-format +msgid "error fetching Storage row: %s\n" +msgstr "" + +#: src/cats/sql_create.c:317 +#, c-format +msgid "Create DB Storage record %s failed. ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:349 +#, c-format +msgid "mediatype record %s already exists\n" +msgstr "" + +#: src/cats/sql_create.c:365 +#, c-format +msgid "Create db mediatype record %s failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:400 +#, c-format +msgid "Volume \"%s\" already exists.\n" +msgstr "" + +#: src/cats/sql_create.c:445 +#, c-format +msgid "Create DB Media record %s failed. ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:493 +#, c-format +msgid "More than one Client!: %d\n" +msgstr "" + +#: src/cats/sql_create.c:498 +#, c-format +msgid "error fetching Client row: %s\n" +msgstr "" + +#: src/cats/sql_create.c:525 +#, c-format +msgid "Create DB Client record %s failed. ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:568 +#, c-format +msgid "Create DB Counters record %s failed. ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:601 +#, c-format +msgid "More than one FileSet!: %d\n" +msgstr "" + +#: src/cats/sql_create.c:606 +#, c-format +msgid "error fetching FileSet row: ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:636 +#, c-format +msgid "Create DB FileSet record %s failed. ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:850 src/dird/job.c:131 src/dird/ua_output.c:628 +#, c-format +msgid "Could not open database \"%s\".\n" +msgstr "" + +#: src/cats/sql_create.c:873 src/cats/sql_create.c:914 +#, c-format +msgid "Attempt to put non-attributes into catalog. Stream=%d\n" +msgstr "" + +#: src/cats/sql_create.c:978 +#, c-format +msgid "Create db File record %s failed. ERR=%s" +msgstr "" + +#: src/cats/sql_create.c:1011 src/cats/sql_get.c:229 +#, c-format +msgid "More than one Path!: %s for path: %s\n" +msgstr "" + +#: src/cats/sql_create.c:1042 +#, c-format +msgid "Create db Path record %s failed. ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:1075 +#, c-format +msgid "More than one Filename! %s for file: %s\n" +msgstr "" + +#: src/cats/sql_create.c:1081 +#, c-format +msgid "Error fetching row for file=%s: ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:1097 +#, c-format +msgid "Create db Filename record %s failed. ERR=%s\n" +msgstr "" + +#: src/cats/sql_delete.c:80 +#, c-format +msgid "No pool record %s exists\n" +msgstr "" + +#: src/cats/sql_delete.c:85 +#, c-format +msgid "Expecting one pool record, got %d\n" +msgstr "" + +#: src/cats/sql_delete.c:91 +#, c-format +msgid "Error fetching row %s\n" +msgstr "" + +#: src/cats/sql_find.c:98 src/cats/sql_find.c:127 +#, c-format +msgid "" +"Query error for start time request: ERR=%s\n" +"CMD=%s\n" +msgstr "" + +#: src/cats/sql_find.c:104 +msgid "No prior Full backup Job record found.\n" +msgstr "" + +#: src/cats/sql_find.c:116 +#, c-format +msgid "Unknown level=%d\n" +msgstr "" + +#: src/cats/sql_find.c:133 +#, c-format +msgid "" +"No Job record found: ERR=%s\n" +"CMD=%s\n" +msgstr "" + +#: src/cats/sql_find.c:232 +#, c-format +msgid "Unknown Job level=%d\n" +msgstr "" + +#: src/cats/sql_find.c:242 +#, c-format +msgid "No Job found for: %s.\n" +msgstr "" + +#: src/cats/sql_find.c:253 +#, c-format +msgid "No Job found for: %s\n" +msgstr "" + +#: src/cats/sql_find.c:332 +#, c-format +msgid "Request for Volume item %d greater than max %d or less than 1\n" +msgstr "" + +#: src/cats/sql_find.c:347 +#, c-format +msgid "No Volume record found for item %d.\n" +msgstr "" + +#: src/cats/sql_get.c:135 +#, c-format +msgid "get_file_record want 1 got rows=%d\n" +msgstr "" + +#: src/cats/sql_get.c:140 +#, c-format +msgid "Error fetching row: %s\n" +msgstr "" + +#: src/cats/sql_get.c:148 +#, c-format +msgid "File record for PathId=%s FilenameId=%s not found.\n" +msgstr "" + +#: src/cats/sql_get.c:154 +msgid "File record not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:179 +#, c-format +msgid "More than one Filename!: %s for file: %s\n" +msgstr "" + +#: src/cats/sql_get.c:189 +#, c-format +msgid "Get DB Filename record %s found bad record: %d\n" +msgstr "" + +#: src/cats/sql_get.c:195 +#, c-format +msgid "Filename record: %s not found.\n" +msgstr "" + +#: src/cats/sql_get.c:199 +#, c-format +msgid "Filename record: %s not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:240 +#, c-format +msgid "Get DB path record %s found bad record: %s\n" +msgstr "" + +#: src/cats/sql_get.c:253 +#, c-format +msgid "Path record: %s not found.\n" +msgstr "" + +#: src/cats/sql_get.c:257 +#, c-format +msgid "Path record: %s not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:294 +#, c-format +msgid "No Job found for JobId %s\n" +msgstr "" + +#: src/cats/sql_get.c:363 src/cats/sql_get.c:419 +#, c-format +msgid "No volumes found for JobId=%d\n" +msgstr "" + +#: src/cats/sql_get.c:369 src/cats/sql_get.c:430 +#, c-format +msgid "Error fetching row %d: ERR=%s\n" +msgstr "" + +#: src/cats/sql_get.c:383 +#, c-format +msgid "No Volume for JobId %d found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:520 +#, c-format +msgid "Pool id select failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_get.c:557 +#, c-format +msgid "Client id select failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_get.c:599 +#, c-format +msgid "More than one Pool!: %s\n" +msgstr "" + +#: src/cats/sql_get.c:641 +msgid "Pool record not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:675 +#, c-format +msgid "More than one Client!: %s\n" +msgstr "" + +#: src/cats/sql_get.c:692 src/cats/sql_get.c:696 +msgid "Client record not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:721 +#, c-format +msgid "More than one Counter!: %d\n" +msgstr "" + +#: src/cats/sql_get.c:726 +#, c-format +msgid "error fetching Counter row: %s\n" +msgstr "" + +#: src/cats/sql_get.c:746 +#, c-format +msgid "Counter record: %s not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:782 +#, c-format +msgid "Error got %s FileSets but expected only one!\n" +msgstr "" + +#: src/cats/sql_get.c:787 +#, c-format +msgid "FileSet record \"%s\" not found.\n" +msgstr "" + +#: src/cats/sql_get.c:797 +msgid "FileSet record not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:855 +#, c-format +msgid "Media id select failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_get.c:893 +#, c-format +msgid "query dbids failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_get.c:946 +#, c-format +msgid "More than one Volume!: %s\n" +msgstr "" + +#: src/cats/sql_get.c:1001 +#, c-format +msgid "Media record MediaId=%s not found.\n" +msgstr "" + +#: src/cats/sql_get.c:1004 +#, c-format +msgid "Media record for Volume \"%s\" not found.\n" +msgstr "" + +#: src/cats/sql_get.c:1011 +#, c-format +msgid "Media record for MediaId=%u not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:1014 +#, c-format +msgid "Media record for Vol=%s not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_list.c:62 +#, c-format +msgid "Query failed: %s\n" +msgstr "" + +#: src/cats/sqlite.c:174 +#, c-format +msgid "Database %s does not exist, please create it.\n" +msgstr "" + +#: src/cats/sqlite.c:204 +#, c-format +msgid "Unable to open Database=%s. ERR=%s\n" +msgstr "" + +#: src/cats/sqlite.c:205 src/lib/bnet_server.c:391 +msgid "unknown" +msgstr "" + +#: src/dird/admin.c:63 +#, c-format +msgid "Start Admin JobId %d, Job=%s\n" +msgstr "" + +#: src/dird/admin.c:89 src/dird/backup.c:355 src/dird/migrate.c:1077 +#, c-format +msgid "Error getting Job record for Job report: ERR=%s" +msgstr "" + +#: src/dird/admin.c:97 +msgid "Admin OK" +msgstr "" + +#: src/dird/admin.c:101 +msgid "*** Admin Error ***" +msgstr "" + +#: src/dird/admin.c:105 +msgid "Admin Canceled" +msgstr "" + +#: src/dird/admin.c:109 src/dird/backup.c:405 src/dird/restore.c:279 +#, c-format +msgid "Inappropriate term code: %c\n" +msgstr "" + +#: src/dird/admin.c:115 +msgid "Bacula " +msgstr "" + +#: src/dird/admin.c:115 src/console/console.c:114 +#, c-format +msgid " (" +msgstr "" + +#: src/dird/admin.c:115 +#, c-format +msgid "" +"): %s\n" +" JobId: %d\n" +" Job: %s\n" +" Start time: %s\n" +" End time: %s\n" +" Termination: %s\n" +"\n" +msgstr "" + +#: src/dird/authenticate.c:80 src/dird/authenticate.c:81 +#: src/tray-monitor/authenticate.c:132 +#, c-format +msgid "Error sending Hello to Storage daemon. ERR=%s\n" +msgstr "" + +#: src/dird/authenticate.c:106 +msgid "Director and Storage daemon passwords or names not the same.\n" +msgstr "" + +#: src/dird/authenticate.c:108 +#, c-format +msgid "" +"Director unable to authenticate with Storage daemon at \"%s:%d\". Possible " +"causes:\n" +"Passwords or names not the same or\n" +"Maximum Concurrent Jobs exceeded on the SD or\n" +"SD networking messed up (restart daemon).\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" + +#: src/dird/authenticate.c:120 src/console/authenticate.c:114 +#: src/filed/authenticate.c:251 src/stored/authenticate.c:131 +#: src/stored/authenticate.c:232 src/wx-console/authenticate.c:127 +msgid "" +"Authorization problem: Remote server did not advertise required TLS " +"support.\n" +msgstr "" + +#: src/dird/authenticate.c:127 src/console/authenticate.c:121 +#: src/filed/authenticate.c:147 src/filed/authenticate.c:259 +#: src/stored/authenticate.c:139 src/stored/authenticate.c:240 +#: src/wx-console/authenticate.c:133 +msgid "Authorization problem: Remote server requires TLS.\n" +msgstr "" + +#: src/dird/authenticate.c:136 +#, c-format +msgid "TLS negotiation failed with SD at \"%s:%d\"\n" +msgstr "" + +#: src/dird/authenticate.c:145 +#, c-format +msgid "bdird set configuration file to file\n" +" -dnn set debug level to nn\n" +" -f run in foreground (for debugging)\n" +" -g groupid\n" +" -r run now\n" +" -s no signals\n" +" -t test - read configuration and exit\n" +" -u userid\n" +" -v verbose user messages\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/dird/dird.c:224 src/console/console.c:426 src/filed/filed.c:182 +#: src/gnome2-console/console.c:286 src/stored/stored.c:210 +msgid "Cryptography library initialization failed.\n" +msgstr "" + +#: src/dird/dird.c:228 src/dird/dird.c:234 src/dird/dird.c:474 +#: src/dird/dird.c:477 src/console/console.c:430 src/filed/filed.c:187 +#: src/gnome2-console/console.c:290 src/stored/stored.c:214 +#, c-format +msgid "Please correct configuration file: %s\n" +msgstr "" + +#: src/dird/dird.c:460 +msgid "Too many open reload requests. Request ignored.\n" +msgstr "" + +#: src/dird/dird.c:475 +msgid "Out of reload table entries. Giving up.\n" +msgstr "" + +#: src/dird/dird.c:478 +msgid "Resetting previous configuration.\n" +msgstr "" + +#: src/dird/dird.c:541 +#, c-format +msgid "" +"No Director resource defined in %s\n" +"Without that I don't know who I am :-(\n" +msgstr "" + +#: src/dird/dird.c:549 src/filed/filed.c:281 +#, c-format +msgid "No Messages resource defined in %s\n" +msgstr "" + +#: src/dird/dird.c:554 +#, c-format +msgid "Only one Director resource permitted in %s\n" +msgstr "" + +#: src/dird/dird.c:563 src/dird/dird.c:764 src/dird/dird.c:816 +#: src/dird/dird.c:920 src/console/console.c:657 src/console/console.c:686 +#: src/filed/filed.c:288 src/filed/filed.c:446 +#: src/gnome2-console/console.c:153 src/gnome2-console/console.c:182 +#: src/stored/stored.c:332 src/wx-console/console_thread.cpp:114 +#: src/wx-console/console_thread.cpp:140 +msgid "TLS required but not configured in Bacula.\n" +msgstr "" + +#: src/dird/dird.c:569 src/filed/filed.c:455 src/stored/stored.c:384 +#, c-format +msgid "\"TLS Certificate\" file not defined for Director \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird.c:575 src/filed/filed.c:461 src/stored/stored.c:390 +#, c-format +msgid "\"TLS Key\" file not defined for Director \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird.c:581 src/filed/filed.c:467 src/stored/stored.c:396 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Director \"%s\" in %s. At least one CA certificate store is required when " +"using \"TLS Verify Peer\".\n" +msgstr "" + +#: src/dird/dird.c:600 src/filed/filed.c:486 src/stored/stored.c:415 +#, c-format +msgid "Failed to initialize TLS context for Director \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird.c:608 +#, c-format +msgid "No Job records defined in %s\n" +msgstr "" + +#: src/dird/dird.c:666 src/dird/dird.c:679 +#, c-format +msgid "Hey something is wrong. p=0x%lu\n" +msgstr "" + +#: src/dird/dird.c:738 +#, c-format +msgid "\"%s\" directive in Job \"%s\" resource is required, but not found.\n" +msgstr "" + +#: src/dird/dird.c:745 +msgid "Too many items in Job resource\n" +msgstr "" + +#: src/dird/dird.c:749 +#, c-format +msgid "No storage specified in Job \"%s\" nor in Pool.\n" +msgstr "" + +#: src/dird/dird.c:771 +#, c-format +msgid "\"TLS Certificate\" file not defined for Console \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird.c:777 +#, c-format +msgid "\"TLS Key\" file not defined for Console \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird.c:783 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Console \"%s\" in %s. At least one CA certificate store is required when " +"using \"TLS Verify Peer\".\n" +msgstr "" + +#: src/dird/dird.c:800 src/dird/dird.c:840 src/filed/filed.c:312 +#, c-format +msgid "Failed to initialize TLS context for File daemon \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird.c:823 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"File daemon \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird.c:872 src/dird/dird.c:874 +#, c-format +msgid "Could not open Catalog \"%s\", database \"%s\".\n" +msgstr "" + +#: src/dird/dird.c:877 +#, c-format +msgid "%s" +msgstr "" + +#: src/dird/dird.c:926 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Storage \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird.c:942 src/stored/stored.c:370 +#, c-format +msgid "Failed to initialize TLS context for Storage \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird_conf.c:508 src/tray-monitor/tray_conf.c:168 +#, c-format +msgid "No %s resource defined\n" +msgstr "" + +#: src/dird/dird_conf.c:517 +#, c-format +msgid "Director: name=%s MaxJobs=%d FDtimeout=%s SDtimeout=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:522 +#, c-format +msgid " query_file=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:525 src/dird/dird_conf.c:545 src/dird/dird_conf.c:559 +#: src/dird/dird_conf.c:607 src/dird/dird_conf.c:611 src/dird/dird_conf.c:615 +#: src/dird/dird_conf.c:633 src/dird/dird_conf.c:650 src/dird/dird_conf.c:654 +#: src/dird/dird_conf.c:658 src/dird/dird_conf.c:662 src/dird/dird_conf.c:666 +#: src/dird/dird_conf.c:679 src/dird/dird_conf.c:880 +msgid " --> " +msgstr "" + +#: src/dird/dird_conf.c:530 +#, c-format +msgid "Console: name=%s SSL=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:535 +#, c-format +msgid "Counter: name=%s min=%d max=%d cur=%d wrapcntr=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:540 +#, c-format +msgid "Counter: name=%s min=%d max=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:551 +#, c-format +msgid "Client: name=%s address=%s FDport=%d MaxJobs=%u\n" +msgstr "" + +#: src/dird/dird_conf.c:554 +#, c-format +msgid " JobRetention=%s FileRetention=%s AutoPrune=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:566 +#, c-format +msgid "" +"Device: name=%s ok=%d num_writers=%d max_writers=%d\n" +" reserved=%d open=%d append=%d read=%d labeled=%d offline=%d autochgr=%" +"d\n" +" poolid=%s volname=%s MediaType=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:576 +#, c-format +msgid "" +"Storage: name=%s address=%s SDport=%d MaxJobs=%u\n" +" DeviceName=%s MediaType=%s StorageId=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:585 +#, c-format +msgid "" +"Catalog: name=%s address=%s DBport=%d db_name=%s\n" +" db_user=%s MutliDBConn=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:593 +#, c-format +msgid "%s: name=%s JobType=%d level=%s Priority=%d Enabled=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:594 src/dird/ua_cmds.c:478 src/dird/ua_prune.c:365 +#: src/dird/ua_run.c:266 src/dird/ua_select.c:263 src/dird/ua_select.c:286 +msgid "Job" +msgstr "" + +#: src/dird/dird_conf.c:594 +msgid "JobDefs" +msgstr "" + +#: src/dird/dird_conf.c:598 +#, c-format +msgid "" +" MaxJobs=%u Resched=%d Times=%d Interval=%s Spool=%d WritePartAfterJob=%" +"d\n" +msgstr "" + +#: src/dird/dird_conf.c:604 +#, c-format +msgid " SelectionType=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:619 +#, c-format +msgid " --> Where=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:622 +#, c-format +msgid " --> RegexWhere=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:625 +#, c-format +msgid " --> Bootstrap=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:628 +#, c-format +msgid " --> WriteBootstrap=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:640 src/lib/runscript.c:261 +msgid " --> RunScript\n" +msgstr "" + +#: src/dird/dird_conf.c:641 src/lib/runscript.c:262 +#, c-format +msgid " --> Command=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:642 src/lib/runscript.c:263 +#, c-format +msgid " --> Target=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:643 src/lib/runscript.c:264 +#, c-format +msgid " --> RunOnSuccess=%u\n" +msgstr "" + +#: src/dird/dird_conf.c:644 src/lib/runscript.c:265 +#, c-format +msgid " --> RunOnFailure=%u\n" +msgstr "" + +#: src/dird/dird_conf.c:645 src/lib/runscript.c:266 +#, c-format +msgid " --> FailJobOnError=%u\n" +msgstr "" + +#: src/dird/dird_conf.c:646 src/lib/runscript.c:267 +#, c-format +msgid " --> RunWhen=%u\n" +msgstr "" + +#: src/dird/dird_conf.c:672 +#, c-format +msgid " --> Run=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:676 +#, c-format +msgid " --> SelectionPattern=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:686 +#, c-format +msgid "FileSet: name=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:763 src/dird/dird_conf.c:842 +#, c-format +msgid "Schedule: name=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:768 +#, c-format +msgid " --> Run Level=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:769 +msgid " hour=" +msgstr "" + +#: src/dird/dird_conf.c:778 +msgid " mday=" +msgstr "" + +#: src/dird/dird_conf.c:787 +msgid " month=" +msgstr "" + +#: src/dird/dird_conf.c:796 +msgid " wday=" +msgstr "" + +#: src/dird/dird_conf.c:805 +msgid " wom=" +msgstr "" + +#: src/dird/dird_conf.c:814 +msgid " woy=" +msgstr "" + +#: src/dird/dird_conf.c:823 +#, c-format +msgid " mins=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:825 src/dird/dird_conf.c:829 src/dird/dird_conf.c:833 +msgid " --> " +msgstr "" + +#: src/dird/dird_conf.c:846 +#, c-format +msgid "Pool: name=%s PoolType=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:848 +#, c-format +msgid " use_cat=%d use_once=%d cat_files=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:851 +#, c-format +msgid " max_vols=%d auto_prune=%d VolRetention=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:854 +#, c-format +msgid " VolUse=%s recycle=%d LabelFormat=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:858 +#, c-format +msgid " CleaningPrefix=%s LabelType=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:860 +#, c-format +msgid " RecyleOldest=%d PurgeOldest=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:863 +#, c-format +msgid " MaxVolJobs=%d MaxVolFiles=%d MaxVolBytes=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:867 +#, c-format +msgid " MigTime=%s MigHiBytes=%s MigLoBytes=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:872 +#, c-format +msgid " NextPool=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:875 +#, c-format +msgid " RecyclePool=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:886 +#, c-format +msgid "Messages: name=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:888 +#, c-format +msgid " mailcmd=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:890 +#, c-format +msgid " opcmd=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:893 src/tray-monitor/tray_conf.c:199 +#, c-format +msgid "Unknown resource type %d in dump_resource.\n" +msgstr "" + +#: src/dird/dird_conf.c:1199 src/tray-monitor/tray_conf.c:257 +#, c-format +msgid "Unknown resource type %d in free_resource.\n" +msgstr "" + +#: src/dird/dird_conf.c:1231 src/dird/dird_conf.c:1246 +#: src/dird/dird_conf.c:1842 src/console/console_conf.c:257 +#: src/filed/filed_conf.c:347 src/gnome2-console/console_conf.c:258 +#: src/tray-monitor/tray_conf.c:288 src/wx-console/console_conf.c:265 +#, c-format +msgid "%s item is required in %s resource, but not found.\n" +msgstr "" + +#: src/dird/dird_conf.c:1237 src/lib/parse_conf.c:234 +#: src/tray-monitor/tray_conf.c:294 +#, c-format +msgid "Too many items in %s resource\n" +msgstr "" + +#: src/dird/dird_conf.c:1277 +#, c-format +msgid "Cannot find Pool resource %s\n" +msgstr "" + +#: src/dird/dird_conf.c:1286 +#, c-format +msgid "Cannot find Console resource %s\n" +msgstr "" + +#: src/dird/dird_conf.c:1292 src/filed/filed_conf.c:367 +#: src/stored/stored_conf.c:584 +#, c-format +msgid "Cannot find Director resource %s\n" +msgstr "" + +#: src/dird/dird_conf.c:1299 src/stored/stored_conf.c:590 +#, c-format +msgid "Cannot find Storage resource %s\n" +msgstr "" + +#: src/dird/dird_conf.c:1308 +#, c-format +msgid "Cannot find Job resource %s\n" +msgstr "" + +#: src/dird/dird_conf.c:1357 +#, c-format +msgid "Cannot find Counter resource %s\n" +msgstr "" + +#: src/dird/dird_conf.c:1365 src/filed/filed_conf.c:373 +#, c-format +msgid "Cannot find Client resource %s\n" +msgstr "" + +#: src/dird/dird_conf.c:1378 +#, c-format +msgid "Cannot find Schedule resource %s\n" +msgstr "" + +#: src/dird/dird_conf.c:1383 src/dird/dird_conf.c:1443 +#: src/tray-monitor/tray_conf.c:314 src/tray-monitor/tray_conf.c:352 +#, c-format +msgid "Unknown resource type %d in save_resource.\n" +msgstr "" + +#: src/dird/dird_conf.c:1458 +#, c-format +msgid "Name item is required in %s resource, but not found.\n" +msgstr "" + +#: src/dird/dird_conf.c:1466 src/console/console_conf.c:320 +#: src/filed/filed_conf.c:432 src/gnome2-console/console_conf.c:327 +#: src/tray-monitor/tray_conf.c:372 src/wx-console/console_conf.c:328 +#, c-format +msgid "Attempt to define second %s resource named \"%s\" is not permitted.\n" +msgstr "" + +#: src/dird/dird_conf.c:1471 +#, c-format +msgid "Inserting %s res: %s index=%d pass=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:1543 +#, c-format +msgid "Expected a Migration Job Type keyword, got: %s" +msgstr "" + +#: src/dird/dird_conf.c:1569 +#, c-format +msgid "Expected a Job Type keyword, got: %s" +msgstr "" + +#: src/dird/dird_conf.c:1593 +#, c-format +msgid "Expected a Job Level keyword, got: %s" +msgstr "" + +#: src/dird/dird_conf.c:1613 +#, c-format +msgid "Expected a Restore replacement option, got: %s" +msgstr "" + +#: src/dird/dird_conf.c:1661 src/dird/dird_conf.c:1771 +#: src/lib/parse_conf.c:723 src/lib/parse_conf.c:738 +#, c-format +msgid "Expect %s, got: %s" +msgstr "" + +#: src/dird/dird_conf.c:1683 src/lib/parse_conf.c:482 +#, c-format +msgid "Could not find config Resource %s referenced on line %d : %s\n" +msgstr "" + +#: src/dird/dird_conf.c:1811 src/dird/inc_conf.c:645 +#, c-format +msgid "Expecting open brace. Got %s" +msgstr "" + +#: src/dird/dird_conf.c:1819 src/dird/inc_conf.c:360 src/dird/inc_conf.c:660 +#, c-format +msgid "Expecting keyword, got: %s\n" +msgstr "" + +#: src/dird/dird_conf.c:1825 src/dird/inc_conf.c:368 src/dird/inc_conf.c:666 +#: src/lib/parse_conf.c:874 +#, c-format +msgid "expected an equals, got: %s" +msgstr "" + +#: src/dird/dird_conf.c:1836 src/dird/inc_conf.c:378 src/dird/inc_conf.c:675 +#, c-format +msgid "Keyword %s not permitted in this resource" +msgstr "" + +#: src/dird/expand.c:255 +#, c-format +msgid "Count not update counter %s: ERR=%s\n" +msgstr "" + +#: src/dird/expand.c:427 +#, c-format +msgid "Cannot create var context: ERR=%s\n" +msgstr "" + +#: src/dird/expand.c:432 +#, c-format +msgid "Cannot set var callback: ERR=%s\n" +msgstr "" + +#: src/dird/expand.c:438 +#, c-format +msgid "Cannot set var operate: ERR=%s\n" +msgstr "" + +#: src/dird/expand.c:444 src/dird/expand.c:459 +#, c-format +msgid "Cannot unescape string: ERR=%s\n" +msgstr "" + +#: src/dird/expand.c:452 +#, c-format +msgid "Cannot expand expression \"%s\": ERR=%s\n" +msgstr "" + +#: src/dird/expand.c:470 +#, c-format +msgid "Cannot destroy var context: ERR=%s\n" +msgstr "" + +#: src/dird/fd_cmds.c:94 src/tray-monitor/tray-monitor.c:914 +msgid "File daemon" +msgstr "" + +#: src/dird/fd_cmds.c:125 +#, c-format +msgid "File daemon \"%s\" rejected Job command: %s\n" +msgstr "" + +#: src/dird/fd_cmds.c:138 +#, c-format +msgid "Error updating Client record. ERR=%s\n" +msgstr "" + +#: src/dird/fd_cmds.c:143 +#, c-format +msgid "FD gave bad response to JobId command: %s\n" +msgstr "" + +#: src/dird/fd_cmds.c:165 src/dird/fd_cmds.c:201 +msgid ", since=" +msgstr "" + +#: src/dird/fd_cmds.c:185 +msgid "No prior or suitable Full backup found in catalog. Doing FULL backup.\n" +msgstr "" + +#: src/dird/fd_cmds.c:186 src/dird/fd_cmds.c:194 +#, c-format +msgid " (upgraded from %s)" +msgstr "" + +#: src/dird/fd_cmds.c:192 +#, c-format +msgid "Prior failed job found in catalog. Upgrading to %s.\n" +msgstr "" + +#: src/dird/fd_cmds.c:253 +#, c-format +msgid "Unimplemented backup level %d %c\n" +msgstr "" + +#: src/dird/fd_cmds.c:356 src/filed/job.c:640 +#, c-format +msgid "Cannot run program: %s. ERR=%s\n" +msgstr "" + +#: src/dird/fd_cmds.c:367 src/dird/fd_cmds.c:392 src/dird/fd_cmds.c:406 +msgid ">filed: write error on socket\n" +msgstr "" + +#: src/dird/fd_cmds.c:373 +#, c-format +msgid "Error running program: %s. ERR=%s\n" +msgstr "" + +#: src/dird/fd_cmds.c:382 +#, c-format +msgid "Cannot open included file: %s. ERR=%s\n" +msgstr "" + +#: src/dird/fd_cmds.c:477 src/filed/job.c:1831 +#, c-format +msgid "Could not open bootstrap file %s: ERR=%s\n" +msgstr "" + +#: src/dird/fd_cmds.c:583 +#, c-format +msgid "Client \"%s\" RunScript failed.\n" +msgstr "" + +#: src/dird/fd_cmds.c:619 +#, c-format +msgid "" +" | ] -- cancel a job" +msgstr "" + +#: src/dird/ua_cmds.c:108 +msgid "create DB Pool from resource" +msgstr "" + +#: src/dird/ua_cmds.c:109 +msgid "delete [pool= | media volume=]" +msgstr "" + +#: src/dird/ua_cmds.c:110 +msgid "disable -- disable a job" +msgstr "" + +#: src/dird/ua_cmds.c:111 +msgid "enable -- enable a job" +msgstr "" + +#: src/dird/ua_cmds.c:112 +msgid "performs FileSet estimate, listing gives full listing" +msgstr "" + +#: src/dird/ua_cmds.c:113 src/console/console.c:171 +msgid "exit = quit" +msgstr "" + +#: src/dird/ua_cmds.c:114 +msgid "gui [on|off] -- non-interactive gui mode" +msgstr "" + +#: src/dird/ua_cmds.c:115 src/stored/btape.c:2540 +msgid "print this command" +msgstr "" + +#: src/dird/ua_cmds.c:116 +msgid "" +"list [pools | jobs | jobtotals | media | files ]; " +"from catalog" +msgstr "" + +#: src/dird/ua_cmds.c:117 +msgid "label a tape" +msgstr "" + +#: src/dird/ua_cmds.c:118 +msgid "full or long list like list command" +msgstr "" + +#: src/dird/ua_cmds.c:119 +msgid "print current memory usage" +msgstr "" + +#: src/dird/ua_cmds.c:120 +msgid "messages" +msgstr "" + +#: src/dird/ua_cmds.c:121 +msgid "mount " +msgstr "" + +#: src/dird/ua_cmds.c:122 +msgid "prune expired records from catalog" +msgstr "" + +#: src/dird/ua_cmds.c:123 +msgid "purge records from catalog" +msgstr "" + +#: src/dird/ua_cmds.c:124 +msgid "python control commands" +msgstr "" + +#: src/dird/ua_cmds.c:125 src/console/console.c:164 +msgid "quit" +msgstr "" + +#: src/dird/ua_cmds.c:126 +msgid "query catalog" +msgstr "" + +#: src/dird/ua_cmds.c:127 +msgid "restore files" +msgstr "" + +#: src/dird/ua_cmds.c:128 +msgid "relabel a tape" +msgstr "" + +#: src/dird/ua_cmds.c:129 +msgid "release " +msgstr "" + +#: src/dird/ua_cmds.c:130 +msgid "reload conf file" +msgstr "" + +#: src/dird/ua_cmds.c:131 +msgid "run " +msgstr "" + +#: src/dird/ua_cmds.c:132 +msgid "status [storage | client]=" +msgstr "" + +#: src/dird/ua_cmds.c:133 +msgid "sets debug level" +msgstr "" + +#: src/dird/ua_cmds.c:134 +msgid "sets new client address -- if authorized" +msgstr "" + +#: src/dird/ua_cmds.c:135 +msgid "show (resource records) [jobs | pools | ... | all]" +msgstr "" + +#: src/dird/ua_cmds.c:136 +msgid "use SQL to query catalog" +msgstr "" + +#: src/dird/ua_cmds.c:137 src/console/console.c:167 +msgid "print current time" +msgstr "" + +#: src/dird/ua_cmds.c:138 +msgid "turn on/off trace to file" +msgstr "" + +#: src/dird/ua_cmds.c:139 +msgid "unmount " +msgstr "" + +#: src/dird/ua_cmds.c:140 +msgid "umount for old-time Unix guys" +msgstr "" + +#: src/dird/ua_cmds.c:141 +msgid "update Volume, Pool or slots" +msgstr "" + +#: src/dird/ua_cmds.c:142 +msgid "use catalog xxx" +msgstr "" + +#: src/dird/ua_cmds.c:143 +msgid "does variable expansion" +msgstr "" + +#: src/dird/ua_cmds.c:144 +msgid "print Director version" +msgstr "" + +#: src/dird/ua_cmds.c:145 +msgid "" +"wait until no jobs are running [ | | " +"]" +msgstr "" + +#: src/dird/ua_cmds.c:186 +#, c-format +msgid "%s: is an invalid command.\n" +msgstr "" + +#: src/dird/ua_cmds.c:227 +msgid "" +"You probably don't want to be using this command since it\n" +"creates database records without labeling the Volumes.\n" +"You probably want to use the \"label\" command.\n" +"\n" +msgstr "" + +#: src/dird/ua_cmds.c:246 +#, c-format +msgid "Pool already has maximum volumes=%d\n" +msgstr "" + +#: src/dird/ua_cmds.c:248 +msgid "Enter new maximum (zero for unlimited): " +msgstr "" + +#: src/dird/ua_cmds.c:269 +#, c-format +msgid "Enter number of Volumes to create. 0=>fixed name. Max=%d: " +msgstr "" + +#: src/dird/ua_cmds.c:275 +#, c-format +msgid "The number must be between 0 and %d\n" +msgstr "" + +#: src/dird/ua_cmds.c:282 +msgid "Enter Volume name: " +msgstr "" + +#: src/dird/ua_cmds.c:286 +msgid "Enter base volume name: " +msgstr "" + +#: src/dird/ua_cmds.c:295 src/dird/ua_label.c:645 +msgid "Volume name too long.\n" +msgstr "" + +#: src/dird/ua_cmds.c:299 src/dird/ua_label.c:651 src/lib/edit.c:459 +msgid "Volume name must be at least one character long.\n" +msgstr "" + +#: src/dird/ua_cmds.c:308 +msgid "Enter the starting number: " +msgstr "" + +#: src/dird/ua_cmds.c:313 +msgid "Start number must be greater than zero.\n" +msgstr "" + +#: src/dird/ua_cmds.c:324 +msgid "Enter slot (0 for none): " +msgstr "" + +#: src/dird/ua_cmds.c:328 +msgid "InChanger? yes/no: " +msgstr "" + +#: src/dird/ua_cmds.c:356 +#, c-format +msgid "%d Volumes created in pool %s\n" +msgstr "" + +#: src/dird/ua_cmds.c:372 src/dird/ua_cmds.c:1035 +msgid "Turn on or off? " +msgstr "" + +#: src/dird/ua_cmds.c:403 +#, c-format +msgid "JobId %s is not running. Use Job name to cancel inactive jobs.\n" +msgstr "" + +#: src/dird/ua_cmds.c:412 src/dird/ua_cmds.c:422 +#, c-format +msgid "Warning Job %s is not running. Continuing anyway ...\n" +msgstr "" + +#: src/dird/ua_cmds.c:432 src/dird/ua_cmds.c:708 src/dird/ua_cmds.c:754 +msgid "Unauthorized command from this console.\n" +msgstr "" + +#: src/dird/ua_cmds.c:457 src/filed/status.c:201 src/stored/status.c:447 +msgid "No Jobs running.\n" +msgstr "" + +#: src/dird/ua_cmds.c:459 +msgid "None of your jobs are running.\n" +msgstr "" + +#: src/dird/ua_cmds.c:464 +msgid "Select Job:\n" +msgstr "" + +#: src/dird/ua_cmds.c:473 +#, c-format +msgid "JobId=%s Job=%s" +msgstr "" + +#: src/dird/ua_cmds.c:478 +msgid "Choose Job to cancel" +msgstr "" + +#: src/dird/ua_cmds.c:483 +#, c-format +msgid "" +"Cancel: %s\n" +"\n" +"%s" +msgstr "" + +#: src/dird/ua_cmds.c:484 +msgid "Confirm cancel?" +msgstr "" + +#: src/dird/ua_cmds.c:490 +msgid "Confirm cancel (yes/no): " +msgstr "" + +#: src/dird/ua_cmds.c:498 src/dird/ua_cmds.c:749 +#, c-format +msgid "Job \"%s\" not found.\n" +msgstr "" + +#: src/dird/ua_cmds.c:595 +#, c-format +msgid "" +"Can't set %s RecyclePool to %s, %s is not in database.\n" +"Try to update it with 'update pool=%s'\n" +msgstr "" + +#: src/dird/ua_cmds.c:662 +#, c-format +msgid "" +"Error: Pool %s already exists.\n" +"Use update to change it.\n" +msgstr "" + +#: src/dird/ua_cmds.c:673 +#, c-format +msgid "Pool %s created.\n" +msgstr "" + +#: src/dird/ua_cmds.c:690 +msgid "Python interpreter restarted.\n" +msgstr "" + +#: src/dird/ua_cmds.c:692 src/dird/ua_cmds.c:1275 +msgid "Nothing done.\n" +msgstr "" + +#: src/dird/ua_cmds.c:715 src/dird/ua_run.c:1224 +#, c-format +msgid "Client \"%s\" not found.\n" +msgstr "" + +#: src/dird/ua_cmds.c:724 +#, c-format +msgid "Client \"%s\" address set to %s\n" +msgstr "" + +#: src/dird/ua_cmds.c:758 +#, c-format +msgid "Job \"%s\" %sabled\n" +msgstr "" + +#: src/dird/ua_cmds.c:785 src/dird/ua_dotcmds.c:177 src/dird/ua_status.c:311 +#, c-format +msgid "Connecting to Storage daemon %s at %s:%d\n" +msgstr "" + +#: src/dird/ua_cmds.c:791 src/dird/ua_dotcmds.c:183 src/dird/ua_status.c:322 +msgid "Connected to storage daemon\n" +msgstr "" + +#: src/dird/ua_cmds.c:811 src/dird/ua_cmds.c:1162 src/dird/ua_dotcmds.c:203 +#: src/dird/ua_status.c:349 +#, c-format +msgid "Connecting to Client %s at %s:%d\n" +msgstr "" + +#: src/dird/ua_cmds.c:814 src/dird/ua_cmds.c:1165 src/dird/ua_dotcmds.c:206 +msgid "Failed to connect to Client.\n" +msgstr "" + +#: src/dird/ua_cmds.c:930 +msgid "Enter new debug level: " +msgstr "" + +#: src/dird/ua_cmds.c:996 src/dird/ua_dotcmds.c:282 +msgid "Available daemons are: \n" +msgstr "" + +#: src/dird/ua_cmds.c:997 src/dird/ua_dotcmds.c:283 +msgid "Director" +msgstr "" + +#: src/dird/ua_cmds.c:998 src/dird/ua_dotcmds.c:284 src/dird/ua_run.c:265 +#: src/dird/ua_select.c:168 src/wx-console/wxbrestorepanel.cpp:339 +#: src/wx-console/wxbrestorepanel.cpp:355 +#: src/wx-console/wxbrestorepanel.cpp:479 +#: src/wx-console/wxbrestorepanel.cpp:480 +#: src/wx-console/wxbrestorepanel.cpp:490 +#: src/wx-console/wxbrestorepanel.cpp:491 +#: src/wx-console/wxbrestorepanel.cpp:1154 +#: src/wx-console/wxbrestorepanel.cpp:1818 +#: src/wx-console/wxbrestorepanel.cpp:1889 +msgid "Storage" +msgstr "" + +#: src/dird/ua_cmds.c:999 src/dird/ua_dotcmds.c:285 src/dird/ua_run.c:271 +#: src/dird/ua_select.c:311 src/dird/ua_select.c:420 +#: src/wx-console/wxbrestorepanel.cpp:336 +#: src/wx-console/wxbrestorepanel.cpp:354 +#: src/wx-console/wxbrestorepanel.cpp:431 +#: src/wx-console/wxbrestorepanel.cpp:432 +#: src/wx-console/wxbrestorepanel.cpp:442 +#: src/wx-console/wxbrestorepanel.cpp:443 +#: src/wx-console/wxbrestorepanel.cpp:690 +#: src/wx-console/wxbrestorepanel.cpp:1124 +#: src/wx-console/wxbrestorepanel.cpp:1211 +#: src/wx-console/wxbrestorepanel.cpp:1811 +#: src/wx-console/wxbrestorepanel.cpp:1813 +#: src/wx-console/wxbrestorepanel.cpp:1887 +#: src/wx-console/wxbrestorepanel.cpp:1943 +msgid "Client" +msgstr "" + +#: src/dird/ua_cmds.c:1000 +msgid "All" +msgstr "" + +#: src/dird/ua_cmds.c:1001 +msgid "Select daemon type to set debug level" +msgstr "" + +#: src/dird/ua_cmds.c:1091 src/dird/ua_cmds.c:1130 src/dird/ua_cmds.c:1798 +#, c-format +msgid "No authorization for Job \"%s\"\n" +msgstr "" + +#: src/dird/ua_cmds.c:1101 +#, c-format +msgid "No authorization for FileSet \"%s\"\n" +msgstr "" + +#: src/dird/ua_cmds.c:1113 src/dird/ua_run.c:217 +#, c-format +msgid "Level %s not valid.\n" +msgstr "" + +#: src/dird/ua_cmds.c:1126 +msgid "No job specified.\n" +msgstr "" + +#: src/dird/ua_cmds.c:1170 +msgid "Error sending include list.\n" +msgstr "" + +#: src/dird/ua_cmds.c:1175 +msgid "Error sending exclude list.\n" +msgstr "" + +#: src/dird/ua_cmds.c:1261 +msgid "" +"In general it is not a good idea to delete either a\n" +"Pool or a Volume since they may contain data.\n" +"\n" +msgstr "" + +#: src/dird/ua_cmds.c:1264 +msgid "Choose catalog item to delete" +msgstr "" + +#: src/dird/ua_cmds.c:1332 +msgid "Enter JobId to delete: " +msgstr "" + +#: src/dird/ua_cmds.c:1367 +#, c-format +msgid "Job %s and associated records deleted from the catalog.\n" +msgstr "" + +#: src/dird/ua_cmds.c:1381 +#, c-format +msgid "" +"\n" +"This command will delete volume %s\n" +"and all Jobs saved on that volume from the Catalog\n" +msgstr "" + +#: src/dird/ua_cmds.c:1385 +#, c-format +msgid "Are you sure you want to delete Volume \"%s\"? (yes/no): " +msgstr "" + +#: src/dird/ua_cmds.c:1409 +#, c-format +msgid "Are you sure you want to delete Pool \"%s\"? (yes/no): " +msgstr "" + +#: src/dird/ua_cmds.c:1523 +#, c-format +msgid "Using Catalog name=%s DB=%s\n" +msgstr "" + +#: src/dird/ua_cmds.c:1583 +msgid "ERR: Can't open db\n" +msgstr "" + +#: src/dird/ua_cmds.c:1619 +msgid "ERR: Job was not found\n" +msgstr "" + +#: src/dird/ua_cmds.c:1695 src/dird/ua_tree.c:664 src/stored/btape.c:2587 +#, c-format +msgid "" +" Command Description\n" +" ======= ===========\n" +msgstr "" + +#: src/dird/ua_cmds.c:1697 +#, c-format +msgid " %-10s %s\n" +msgstr "" + +#: src/dird/ua_cmds.c:1699 +msgid "" +"\n" +"When at a prompt, entering a period cancels the command.\n" +"\n" +msgstr "" + +#: src/dird/ua_cmds.c:1716 src/dird/ua_status.c:263 src/stored/status.c:79 +#, c-format +msgid "%s Version: %s (%s) %s %s %s\n" +msgstr "" + +#: src/dird/ua_cmds.c:1759 src/dird/ua_cmds.c:1786 src/dird/ua_cmds.c:1808 +#, c-format +msgid "No authorization for Catalog \"%s\"\n" +msgstr "" + +#: src/dird/ua_cmds.c:1776 +#, c-format +msgid "No authorization for Client \"%s\"\n" +msgstr "" + +#: src/dird/ua_cmds.c:1831 src/dird/ua_select.c:221 +msgid "Could not find a Catalog resource\n" +msgstr "" + +#: src/dird/ua_cmds.c:1844 +#, c-format +msgid "Could not open catalog database \"%s\".\n" +msgstr "" + +#: src/dird/ua_cmds.c:1854 +#, c-format +msgid "Using Catalog \"%s\"\n" +msgstr "" + +#: src/dird/ua_dotcmds.c:138 +msgid ": is an invalid command.\n" +msgstr "" + +#: src/dird/ua_dotcmds.c:238 src/dird/ua_dotcmds.c:288 +msgid "The Director will segment fault.\n" +msgstr "" + +#: src/dird/ua_dotcmds.c:286 +msgid "Select daemon type to make die" +msgstr "" + +#: src/dird/ua_dotcmds.c:453 +msgid "Access to specified Client or FileSet not allowed.\n" +msgstr "" + +#: src/dird/ua_dotcmds.c:458 src/dird/ua_dotcmds.c:494 +#: src/dird/ua_restore.c:882 src/dird/ua_restore.c:911 +#: src/dird/ua_restore.c:932 +#, c-format +msgid "Query failed: %s. ERR=%s\n" +msgstr "" + +#: src/dird/ua_dotcmds.c:489 +msgid "query keyword not found.\n" +msgstr "" + +#: src/dird/ua_input.c:95 +msgid "Enter slot" +msgstr "" + +#: src/dird/ua_input.c:99 src/dird/ua_input.c:105 +#, c-format +msgid "Expected a positive integer, got: %s\n" +msgstr "" + +#: src/dird/ua_input.c:123 src/dird/ua_run.c:446 src/dird/ua_update.c:245 +#: src/dird/ua_update.c:265 src/dird/ua_update.c:609 +#: src/stored/parse_bsr.c:779 src/tools/dbcheck.c:1202 +msgid "yes" +msgstr "" + +#: src/dird/ua_input.c:127 src/dird/ua_update.c:245 src/dird/ua_update.c:265 +#: src/dird/ua_update.c:609 src/stored/parse_bsr.c:779 +msgid "no" +msgstr "" + +#: src/dird/ua_input.c:162 +msgid "Invalid response. You must answer yes or no.\n" +msgstr "" + +#: src/dird/ua_input.c:185 +msgid "Invalid Enabled value, it must be yes, no, archived, 0, 1, or 2\n" +msgstr "" + +#: src/dird/ua_label.c:102 +msgid "Negative numbers not permitted\n" +msgstr "" + +#: src/dird/ua_label.c:108 +msgid "Range end is not integer.\n" +msgstr "" + +#: src/dird/ua_label.c:113 +msgid "Range start is not an integer.\n" +msgstr "" + +#: src/dird/ua_label.c:119 +msgid "Range end not bigger than start.\n" +msgstr "" + +#: src/dird/ua_label.c:125 +msgid "Input value is not an integer.\n" +msgstr "" + +#: src/dird/ua_label.c:131 +msgid "Values must be be greater than zero.\n" +msgstr "" + +#: src/dird/ua_label.c:135 +msgid "Slot too large.\n" +msgstr "" + +#: src/dird/ua_label.c:184 src/dird/ua_label.c:349 src/dird/ua_run.c:1199 +msgid "command line" +msgstr "" + +#: src/dird/ua_label.c:202 src/dird/ua_label.c:513 +msgid "No slots in changer to scan.\n" +msgstr "" + +#: src/dird/ua_label.c:214 src/dird/ua_label.c:524 +msgid "No Volumes found to label, or no barcodes.\n" +msgstr "" + +#: src/dird/ua_label.c:224 +#, c-format +msgid "Slot %d greater than max %d ignored.\n" +msgstr "" + +#: src/dird/ua_label.c:253 +#, c-format +msgid "No VolName for Slot=%d InChanger set to zero.\n" +msgstr "" + +#: src/dird/ua_label.c:271 +#, c-format +msgid "Catalog record for Volume \"%s\" updated to reference slot %d.\n" +msgstr "" + +#: src/dird/ua_label.c:275 +#, c-format +msgid "Catalog record for Volume \"%s\" is up to date.\n" +msgstr "" + +#: src/dird/ua_label.c:281 +#, c-format +msgid "Volume \"%s\" not found in catalog. Slot=%d InChanger set to zero.\n" +msgstr "" + +#: src/dird/ua_label.c:378 +#, c-format +msgid "" +"Volume \"%s\" has VolStatus %s. It must be Purged or Recycled before " +"relabeling.\n" +msgstr "" + +#: src/dird/ua_label.c:394 +msgid "Enter new Volume name: " +msgstr "" + +#: src/dird/ua_label.c:407 +#, c-format +msgid "Media record for new Volume \"%s\" already exists.\n" +msgstr "" + +#: src/dird/ua_label.c:425 +msgid "Enter slot (0 or Enter for none): " +msgstr "" + +#: src/dird/ua_label.c:453 +#, c-format +msgid "Delete of Volume \"%s\" failed. ERR=%s" +msgstr "" + +#: src/dird/ua_label.c:456 +#, c-format +msgid "Old volume \"%s\" deleted from catalog.\n" +msgstr "" + +#: src/dird/ua_label.c:467 +#, c-format +msgid "Requesting to mount %s ...\n" +msgstr "" + +#: src/dird/ua_label.c:489 +msgid "Do not forget to mount the drive!!!\n" +msgstr "" + +#: src/dird/ua_label.c:529 +msgid "" +"The following Volumes will be labeled:\n" +"Slot Volume\n" +"==============\n" +msgstr "" + +#: src/dird/ua_label.c:538 +msgid "Do you want to label these Volumes? (yes|no): " +msgstr "" + +#: src/dird/ua_label.c:559 +#, c-format +msgid "Media record for Slot %d Volume \"%s\" already exists.\n" +msgstr "" + +#: src/dird/ua_label.c:565 +#, c-format +msgid "Error setting InChanger: ERR=%s" +msgstr "" + +#: src/dird/ua_label.c:588 +#, c-format +msgid "Maximum pool Volumes=%d reached.\n" +msgstr "" + +#: src/dird/ua_label.c:595 +#, c-format +msgid "Catalog record for cleaning tape \"%s\" successfully created.\n" +msgstr "" + +#: src/dird/ua_label.c:602 +#, c-format +msgid "Catalog error on cleaning tape: %s" +msgstr "" + +#: src/dird/ua_label.c:638 +#, c-format +msgid "Illegal character \"%c\" in a volume name.\n" +msgstr "" + +#: src/dird/ua_label.c:685 +#, c-format +msgid "Sending relabel command from \"%s\" to \"%s\" ...\n" +msgstr "" + +#: src/dird/ua_label.c:692 +#, c-format +msgid "Sending label command for Volume \"%s\" Slot %d ...\n" +msgstr "" + +#: src/dird/ua_label.c:733 +#, c-format +msgid "Catalog record for Volume \"%s\", Slot %d successfully created.\n" +msgstr "" + +#: src/dird/ua_label.c:746 +#, c-format +msgid "Label command failed for Volume %s.\n" +msgstr "" + +#: src/dird/ua_label.c:756 +#, c-format +msgid "Connecting to Storage daemon %s at %s:%d ...\n" +msgstr "" + +#: src/dird/ua_label.c:784 +msgid "Could not open SD socket.\n" +msgstr "" + +#: src/dird/ua_label.c:856 src/dird/ua_label.c:866 +#, c-format +msgid "Invalid Slot number: %s\n" +msgstr "" + +#: src/dird/ua_label.c:875 +#, c-format +msgid "Invalid Volume name: %s\n" +msgstr "" + +#: src/dird/ua_label.c:954 +#, c-format +msgid "Device \"%s\" has %d slots.\n" +msgstr "" + +#: src/dird/ua_label.c:1003 +#, c-format +msgid "Pool \"%s\" resource not found for volume \"%s\"!\n" +msgstr "" + +#: src/dird/ua_output.c:73 src/dird/ua_output.c:97 +msgid "ON or OFF keyword missing.\n" +msgstr "" + +#: src/dird/ua_output.c:185 +msgid "Keywords for the show command are:\n" +msgstr "" + +#: src/dird/ua_output.c:191 +#, c-format +msgid "%s resource %s not found.\n" +msgstr "" + +#: src/dird/ua_output.c:194 +#, c-format +msgid "Resource %s not found\n" +msgstr "" + +#: src/dird/ua_output.c:262 +msgid "Hey! DB is NULL\n" +msgstr "" + +#: src/dird/ua_output.c:376 +#, c-format +msgid "Jobid %d used %d Volume(s): %s\n" +msgstr "" + +#: src/dird/ua_output.c:394 +msgid "No Pool specified.\n" +msgstr "" + +#: src/dird/ua_output.c:405 src/dird/ua_select.c:488 +#, c-format +msgid "Error obtaining pool ids. ERR=%s\n" +msgstr "" + +#: src/dird/ua_output.c:415 +#, c-format +msgid "Pool: %s\n" +msgstr "" + +#: src/dird/ua_output.c:431 src/dird/ua_status.c:481 +msgid "Ignoring invalid value for days. Max is 50.\n" +msgstr "" + +#: src/dird/ua_output.c:440 +#, c-format +msgid "Unknown list keyword: %s\n" +msgstr "" + +#: src/dird/ua_output.c:466 +#, c-format +msgid "%s is not a job name.\n" +msgstr "" + +#: src/dird/ua_output.c:477 +#, c-format +msgid "Could not Pool Job %s\n" +msgstr "" + +#: src/dird/ua_output.c:489 +#, c-format +msgid "Could not find next Volume for Job %s (Pool=%s, Level=%s).\n" +msgstr "" + +#: src/dird/ua_output.c:493 +#, c-format +msgid "" +"The next Volume to be used by Job \"%s\" (Pool=%s, Level=%s) will be %s\n" +msgstr "" + +#: src/dird/ua_output.c:503 +#, c-format +msgid "Could not find next Volume for Job %s.\n" +msgstr "" + +#: src/dird/ua_output.c:702 +msgid "You have no messages.\n" +msgstr "" + +#: src/dird/ua_prune.c:132 +msgid "Choose item to prune" +msgstr "" + +#: src/dird/ua_prune.c:156 +#, c-format +msgid "Cannot prune Volume \"%s\" because it is archived.\n" +msgstr "" + +#: src/dird/ua_prune.c:218 +msgid "No Files found to prune.\n" +msgstr "" + +#: src/dird/ua_prune.c:240 +#, c-format +msgid "Pruned Files from %s Jobs for client %s from catalog.\n" +msgstr "" + +#: src/dird/ua_prune.c:364 +#, c-format +msgid "Pruned %d %s for client %s from catalog.\n" +msgstr "" + +#: src/dird/ua_prune.c:365 +msgid "Jobs" +msgstr "" + +#: src/dird/ua_prune.c:367 +msgid "No Jobs found to prune.\n" +msgstr "" + +#: src/dird/ua_purge.c:90 +msgid "" +"\n" +"This command is can be DANGEROUS!!!\n" +"\n" +"It purges (deletes) all Files from a Job,\n" +"JobId, Client or Volume; or it purges (deletes)\n" +"all Jobs from a Client or Volume without regard\n" +"for retention periods. Normally you should use the\n" +"PRUNE command, which respects retention periods.\n" +msgstr "" + +#: src/dird/ua_purge.c:152 +msgid "Choose item to purge" +msgstr "" + +#: src/dird/ua_purge.c:199 +#, c-format +msgid "Begin purging files for Client \"%s\"\n" +msgstr "" + +#: src/dird/ua_purge.c:208 src/dird/ua_purge.c:258 +#, c-format +msgid "No Files found for client %s to purge from %s catalog.\n" +msgstr "" + +#: src/dird/ua_purge.c:211 +#, c-format +msgid "Files for %d Jobs for client \"%s\" purged from %s catalog.\n" +msgstr "" + +#: src/dird/ua_purge.c:249 +#, c-format +msgid "Begin purging jobs from Client \"%s\"\n" +msgstr "" + +#: src/dird/ua_purge.c:261 +#, c-format +msgid "%d Jobs for client %s purged from %s catalog.\n" +msgstr "" + +#: src/dird/ua_purge.c:407 +#, c-format +msgid "" +"\n" +"Volume \"%s\" has VolStatus \"%s\" and cannot be purged.\n" +"The VolStatus must be: Append, Full, Used, or Error to be purged.\n" +msgstr "" + +#: src/dird/ua_purge.c:440 +#, c-format +msgid "%d File%s on Volume \"%s\" purged from catalog.\n" +msgstr "" + +#: src/dird/ua_purge.c:481 +#, c-format +msgid "" +"There are no more Jobs associated with Volume \"%s\". Marking it purged.\n" +msgstr "" + +#: src/dird/ua_purge.c:522 +#, c-format +msgid "Unable move recycled Volume in full Pool \"%s\" MaxVols=%d\n" +msgstr "" + +#: src/dird/ua_purge.c:535 +#, c-format +msgid "All records pruned from Volume \"%s\"; marking it \"Purged\"\n" +msgstr "" + +#: src/dird/ua_purge.c:540 +#, c-format +msgid "Cannot purge Volume with VolStatus=%s\n" +msgstr "" + +#: src/dird/ua_query.c:72 src/findlib/create_file.c:283 +#: src/findlib/create_file.c:383 +#, c-format +msgid "Could not open %s: ERR=%s\n" +msgstr "" + +#: src/dird/ua_query.c:77 +msgid "Available queries:\n" +msgstr "" + +#: src/dird/ua_query.c:84 +msgid "Choose a query" +msgstr "" + +#: src/dird/ua_query.c:98 +msgid "Could not find query.\n" +msgstr "" + +#: src/dird/ua_query.c:116 +msgid "Too many prompts in query, max is 9.\n" +msgstr "" + +#: src/dird/ua_query.c:219 +#, c-format +msgid "Warning prompt %d missing.\n" +msgstr "" + +#: src/dird/ua_query.c:264 +msgid "" +"Entering SQL query mode.\n" +"Terminate each query with a semicolon.\n" +"Terminate query mode with a blank line.\n" +msgstr "" + +#: src/dird/ua_query.c:267 src/dird/ua_query.c:283 +msgid "Enter SQL query: " +msgstr "" + +#: src/dird/ua_query.c:285 +msgid "Add to SQL query: " +msgstr "" + +#: src/dird/ua_query.c:288 +msgid "End query mode.\n" +msgstr "" + +#: src/dird/ua_restore.c:133 +msgid "\"RegexWhere\" specification not authorized.\n" +msgstr "" + +#: src/dird/ua_restore.c:140 +msgid "\"where\" specification not authorized.\n" +msgstr "" + +#: src/dird/ua_restore.c:162 +msgid "" +"No Restore Job Resource found in bacula-dir.conf.\n" +"You must create at least one before running this command.\n" +msgstr "" + +#: src/dird/ua_restore.c:178 +msgid "Restore not done.\n" +msgstr "" + +#: src/dird/ua_restore.c:190 +msgid "Unable to construct a valid BSR. Cannot continue.\n" +msgstr "" + +#: src/dird/ua_restore.c:194 src/dird/ua_restore.c:209 +msgid "No files selected to be restored.\n" +msgstr "" + +#: src/dird/ua_restore.c:202 +msgid "" +"\n" +"1 file selected to be restored.\n" +"\n" +msgstr "" + +#: src/dird/ua_restore.c:205 +#, c-format +msgid "" +"\n" +"%s files selected to be restored.\n" +"\n" +msgstr "" + +#: src/dird/ua_restore.c:224 +msgid "No Client resource found!\n" +msgstr "" + +#: src/dird/ua_restore.c:329 +#, c-format +msgid "Missing value for keyword: %s\n" +msgstr "" + +#: src/dird/ua_restore.c:407 +msgid "List last 20 Jobs run" +msgstr "" + +#: src/dird/ua_restore.c:408 +msgid "List Jobs where a given File is saved" +msgstr "" + +#: src/dird/ua_restore.c:409 +msgid "Enter list of comma separated JobIds to select" +msgstr "" + +#: src/dird/ua_restore.c:410 +msgid "Enter SQL list command" +msgstr "" + +#: src/dird/ua_restore.c:411 +msgid "Select the most recent backup for a client" +msgstr "" + +#: src/dird/ua_restore.c:412 +msgid "Select backup for a client before a specified time" +msgstr "" + +#: src/dird/ua_restore.c:413 +msgid "Enter a list of files to restore" +msgstr "" + +#: src/dird/ua_restore.c:414 +msgid "Enter a list of files to restore before a specified time" +msgstr "" + +#: src/dird/ua_restore.c:415 +msgid "Find the JobIds of the most recent backup for a client" +msgstr "" + +#: src/dird/ua_restore.c:416 +msgid "Find the JobIds for a backup for a client before a specified time" +msgstr "" + +#: src/dird/ua_restore.c:417 +msgid "Enter a list of directories to restore for found JobIds" +msgstr "" + +#: src/dird/ua_restore.c:418 src/dird/ua_status.c:760 src/filed/status.c:256 +#: src/stored/status.c:521 src/wx-console/wxbconfigpanel.cpp:212 +msgid "Cancel" +msgstr "" + +#: src/dird/ua_restore.c:459 +#, c-format +msgid "Unknown keyword: %s\n" +msgstr "" + +#: src/dird/ua_restore.c:488 src/dird/ua_update.c:833 +#, c-format +msgid "Improper date format: %s\n" +msgstr "" + +#: src/dird/ua_restore.c:523 src/dird/ua_select.c:620 +#, c-format +msgid "Error: Pool resource \"%s\" does not exist.\n" +msgstr "" + +#: src/dird/ua_restore.c:528 +#, c-format +msgid "Error: Pool resource \"%s\" access not allowed.\n" +msgstr "" + +#: src/dird/ua_restore.c:544 +msgid "" +"\n" +"First you select one or more JobIds that contain files\n" +"to be restored. You will be presented several methods\n" +"of specifying the JobIds. Then you will be allowed to\n" +"select which files from those JobIds are to be restored.\n" +"\n" +msgstr "" + +#: src/dird/ua_restore.c:556 +msgid "To select the JobIds, you have the following choices:\n" +msgstr "" + +#: src/dird/ua_restore.c:561 +msgid "Select item: " +msgstr "" + +#: src/dird/ua_restore.c:566 src/dird/ua_restore.c:601 +msgid "SQL query not authorized.\n" +msgstr "" + +#: src/dird/ua_restore.c:579 +msgid "Enter Filename (no path):" +msgstr "" + +#: src/dird/ua_restore.c:594 src/dird/ua_restore.c:702 +msgid "Enter JobId(s), comma separated, to restore: " +msgstr "" + +#: src/dird/ua_restore.c:604 +msgid "Enter SQL list command: " +msgstr "" + +#: src/dird/ua_restore.c:638 src/dird/ua_restore.c:661 +msgid "" +"Enter file names with paths, or < to enter a filename\n" +"containing a list of file names with paths, and terminate\n" +"them with a blank line.\n" +msgstr "" + +#: src/dird/ua_restore.c:642 src/dird/ua_restore.c:665 +msgid "Enter full filename: " +msgstr "" + +#: src/dird/ua_restore.c:700 +#, c-format +msgid "You have already selected the following JobIds: %s\n" +msgstr "" + +#: src/dird/ua_restore.c:717 +msgid "" +"Enter full directory names or start the name\n" +"with a < to indicate it is a filename containing a list\n" +"of directories and terminate them with a blank line.\n" +msgstr "" + +#: src/dird/ua_restore.c:721 +msgid "Enter directory name: " +msgstr "" + +#: src/dird/ua_restore.c:752 +msgid "Invalid JobId in list.\n" +msgstr "" + +#: src/dird/ua_restore.c:765 +#, c-format +msgid "Unable to get Job record for JobId=%s: ERR=%s\n" +msgstr "" + +#: src/dird/ua_restore.c:771 +#, c-format +msgid "Access to JobId=%s (Job \"%s\") not authorized. Not selected.\n" +msgstr "" + +#: src/dird/ua_restore.c:784 +msgid "No Jobs selected.\n" +msgstr "" + +#: src/dird/ua_restore.c:788 +#, c-format +msgid "You have selected the following JobIds: %s\n" +msgstr "" + +#: src/dird/ua_restore.c:790 +#, c-format +msgid "You have selected the following JobId: %s\n" +msgstr "" + +#: src/dird/ua_restore.c:800 +msgid "" +"The restored files will the most current backup\n" +"BEFORE the date you specify below.\n" +"\n" +msgstr "" + +#: src/dird/ua_restore.c:803 +msgid "Enter date as YYYY-MM-DD HH:MM:SS :" +msgstr "" + +#: src/dird/ua_restore.c:809 +msgid "Improper date format.\n" +msgstr "" + +#: src/dird/ua_restore.c:830 +#, c-format +msgid "Cannot open file %s: ERR=%s\n" +msgstr "" + +#: src/dird/ua_restore.c:838 src/dird/ua_restore.c:842 +#, c-format +msgid "Error occurred on line %d of file \"%s\"\n" +msgstr "" + +#: src/dird/ua_restore.c:886 src/dird/ua_restore.c:915 +#, c-format +msgid "No database record found for: %s\n" +msgstr "" + +#: src/dird/ua_restore.c:902 +msgid "No JobId specified cannot continue.\n" +msgstr "" + +#: src/dird/ua_restore.c:936 +#, c-format +msgid "No table found: %s\n" +msgstr "" + +#: src/dird/ua_restore.c:1033 +#, c-format +msgid "" +"\n" +"Building directory tree for JobId %s ... " +msgstr "" + +#: src/dird/ua_restore.c:1045 +msgid "" +"\n" +"There were no files inserted into the tree, so file selection\n" +"is not possible.Most likely your retention policy pruned the files\n" +msgstr "" + +#: src/dird/ua_restore.c:1047 +msgid "" +"\n" +"Do you want to restore all the files? (yes|no): " +msgstr "" + +#: src/dird/ua_restore.c:1063 +#, c-format +msgid "" +"\n" +"1 Job, %s files inserted into the tree and marked for extraction.\n" +msgstr "" + +#: src/dird/ua_restore.c:1067 +#, c-format +msgid "" +"\n" +"1 Job, %s files inserted into the tree.\n" +msgstr "" + +#: src/dird/ua_restore.c:1073 +#, c-format +msgid "" +"\n" +"%d Jobs, %s files inserted into the tree and marked for extraction.\n" +msgstr "" + +#: src/dird/ua_restore.c:1077 +#, c-format +msgid "" +"\n" +"%d Jobs, %s files inserted into the tree.\n" +msgstr "" + +#: src/dird/ua_restore.c:1150 +#, c-format +msgid "Error getting FileSet \"%s\": ERR=%s\n" +msgstr "" + +#: src/dird/ua_restore.c:1158 src/dird/ua_select.c:183 +msgid "The defined FileSet resources are:\n" +msgstr "" + +#: src/dird/ua_restore.c:1162 src/dird/ua_run.c:267 src/dird/ua_select.c:191 +msgid "FileSet" +msgstr "" + +#: src/dird/ua_restore.c:1162 src/dird/ua_select.c:191 +msgid "Select FileSet resource" +msgstr "" + +#: src/dird/ua_restore.c:1164 +#, c-format +msgid "No FileSet found for client \"%s\".\n" +msgstr "" + +#: src/dird/ua_restore.c:1170 +#, c-format +msgid "Error getting FileSet record: %s\n" +msgstr "" + +#: src/dird/ua_restore.c:1171 +msgid "" +"This probably means you modified the FileSet.\n" +"Continuing anyway.\n" +msgstr "" + +#: src/dird/ua_restore.c:1186 +#, c-format +msgid "Pool \"%s\" not found, using any pool.\n" +msgstr "" + +#: src/dird/ua_restore.c:1213 src/dird/ua_restore.c:1229 +#, c-format +msgid "No Full backup before %s found.\n" +msgstr "" + +#: src/dird/ua_restore.c:1252 +msgid "No jobs found.\n" +msgstr "" + +#: src/dird/ua_restore.c:1411 +#, c-format +msgid "Warning default storage overridden by \"%s\" on command line.\n" +msgstr "" + +#: src/dird/ua_restore.c:1427 +#, c-format +msgid "Storage \"%s\" not found, using Storage \"%s\" from MediaType \"%s\".\n" +msgstr "" + +#: src/dird/ua_restore.c:1435 +#, c-format +msgid "" +"\n" +"Unable to find Storage resource for\n" +"MediaType \"%s\", needed by the Jobs you selected.\n" +msgstr "" + +#: src/dird/ua_run.c:152 src/dird/ua_run.c:338 +msgid "Invalid time, using current time.\n" +msgstr "" + +#: src/dird/ua_run.c:174 +#, c-format +msgid "Invalid replace option: %s\n" +msgstr "" + +#: src/dird/ua_run.c:242 +msgid "OK to run? (yes/mod/no): " +msgstr "" + +#: src/dird/ua_run.c:260 src/dird/ua_select.c:63 +msgid "mod" +msgstr "" + +#: src/dird/ua_run.c:263 src/dird/ua_update.c:518 +msgid "Parameters to modify:\n" +msgstr "" + +#: src/dird/ua_run.c:264 +msgid "Level" +msgstr "" + +#: src/dird/ua_run.c:269 +msgid "Restore Client" +msgstr "" + +#: src/dird/ua_run.c:273 src/wx-console/wxbrestorepanel.cpp:356 +#: src/wx-console/wxbrestorepanel.cpp:844 +#: src/wx-console/wxbrestorepanel.cpp:1891 +msgid "When" +msgstr "" + +#: src/dird/ua_run.c:274 src/wx-console/wxbrestorepanel.cpp:357 +#: src/wx-console/wxbrestorepanel.cpp:1117 +#: src/wx-console/wxbrestorepanel.cpp:1894 +msgid "Priority" +msgstr "" + +#: src/dird/ua_run.c:278 src/dird/ua_select.c:506 src/dird/ua_select.c:596 +#: src/dird/ua_update.c:529 src/wx-console/wxbrestorepanel.cpp:338 +#: src/wx-console/wxbrestorepanel.cpp:527 +#: src/wx-console/wxbrestorepanel.cpp:537 +#: src/wx-console/wxbrestorepanel.cpp:1807 +msgid "Pool" +msgstr "" + +#: src/dird/ua_run.c:280 +msgid "Verify Job" +msgstr "" + +#: src/dird/ua_run.c:283 src/wx-console/wxbrestorepanel.cpp:349 +#: src/wx-console/wxbrestorepanel.cpp:1872 +msgid "Bootstrap" +msgstr "" + +#: src/dird/ua_run.c:284 src/wx-console/wxbrestorepanel.cpp:350 +#: src/wx-console/wxbrestorepanel.cpp:1093 +#: src/wx-console/wxbrestorepanel.cpp:1874 +msgid "Where" +msgstr "" + +#: src/dird/ua_run.c:285 +msgid "File Relocation" +msgstr "" + +#: src/dird/ua_run.c:286 src/wx-console/wxbrestorepanel.cpp:352 +#: src/wx-console/wxbrestorepanel.cpp:1101 +#: src/wx-console/wxbrestorepanel.cpp:1878 +#: src/wx-console/wxbrestorepanel.cpp:1879 +#: src/wx-console/wxbrestorepanel.cpp:1880 +#: src/wx-console/wxbrestorepanel.cpp:1881 +#: src/wx-console/wxbrestorepanel.cpp:1882 +msgid "Replace" +msgstr "" + +#: src/dird/ua_run.c:287 +msgid "JobId" +msgstr "" + +#: src/dird/ua_run.c:289 src/dird/ua_run.c:487 src/dird/ua_update.c:535 +msgid "Select parameter to modify" +msgstr "" + +#: src/dird/ua_run.c:298 src/dird/ua_run.c:1205 +msgid "user selection" +msgstr "" + +#: src/dird/ua_run.c:330 +msgid "" +"Please enter desired start time as YYYY-MM-DD HH:MM:SS (return for now): " +msgstr "" + +#: src/dird/ua_run.c:345 +msgid "Enter new Priority: " +msgstr "" + +#: src/dird/ua_run.c:349 +msgid "Priority must be a positive integer.\n" +msgstr "" + +#: src/dird/ua_run.c:369 +msgid "Please enter the Bootstrap file name: " +msgstr "" + +#: src/dird/ua_run.c:380 +#, c-format +msgid "Warning cannot open %s: ERR=%s\n" +msgstr "" + +#: src/dird/ua_run.c:399 +msgid "Please enter path prefix for restore (/ for none): " +msgstr "" + +#: src/dird/ua_run.c:421 +msgid "Replace:\n" +msgstr "" + +#: src/dird/ua_run.c:425 +msgid "Select replace option" +msgstr "" + +#: src/dird/ua_run.c:435 +msgid "" +"You must set the bootstrap file to NULL to be able to specify a JobId.\n" +msgstr "" + +#: src/dird/ua_run.c:455 +msgid "Job failed.\n" +msgstr "" + +#: src/dird/ua_run.c:458 +#, c-format +msgid "Job queued. JobId=%s\n" +msgstr "" + +#: src/dird/ua_run.c:464 +msgid "Job not run.\n" +msgstr "" + +#: src/dird/ua_run.c:476 +#, c-format +msgid "strip_prefix=%s add_prefix=%s add_suffix=%s\n" +msgstr "" + +#: src/dird/ua_run.c:479 +msgid "This will replace your current Where value\n" +msgstr "" + +#: src/dird/ua_run.c:480 +msgid "Strip prefix" +msgstr "" + +#: src/dird/ua_run.c:481 +msgid "Add prefix" +msgstr "" + +#: src/dird/ua_run.c:482 +msgid "Add file suffix" +msgstr "" + +#: src/dird/ua_run.c:483 +msgid "Enter a regexp" +msgstr "" + +#: src/dird/ua_run.c:484 +msgid "Test filename manipulation" +msgstr "" + +#: src/dird/ua_run.c:485 +msgid "Use this ?" +msgstr "" + +#: src/dird/ua_run.c:490 +msgid "Please enter path prefix to strip: " +msgstr "" + +#: src/dird/ua_run.c:498 +msgid "Please enter path prefix to add (/ for none): " +msgstr "" + +#: src/dird/ua_run.c:509 +msgid "Please enter file suffix to add: " +msgstr "" + +#: src/dird/ua_run.c:516 +msgid "Please enter a valid regexp (!from!to!): " +msgstr "" + +#: src/dird/ua_run.c:529 +#, c-format +msgid "regexwhere=%s\n" +msgstr "" + +#: src/dird/ua_run.c:535 +#, c-format +msgid "strip_prefix=%s add_prefix=%s add_suffix=%s result=%s\n" +msgstr "" + +#: src/dird/ua_run.c:542 +msgid "Cannot use your regexp\n" +msgstr "" + +#: src/dird/ua_run.c:546 +msgid "Please enter filename to test: " +msgstr "" + +#: src/dird/ua_run.c:548 +#, c-format +msgid "%s -> %s\n" +msgstr "" + +#: src/dird/ua_run.c:592 +msgid "Cannot use your regexp.\n" +msgstr "" + +#: src/dird/ua_run.c:605 src/dird/ua_run.c:631 +msgid "Levels:\n" +msgstr "" + +#: src/dird/ua_run.c:606 src/filed/status.c:373 src/lib/util.c:329 +#: src/stored/status.c:560 +msgid "Base" +msgstr "" + +#: src/dird/ua_run.c:607 src/filed/status.c:375 src/lib/util.c:331 +#: src/stored/status.c:562 +msgid "Full" +msgstr "" + +#: src/dird/ua_run.c:608 src/filed/status.c:378 src/lib/util.c:334 +#: src/stored/status.c:565 +msgid "Incremental" +msgstr "" + +#: src/dird/ua_run.c:609 src/filed/status.c:381 src/lib/util.c:337 +#: src/stored/status.c:568 +msgid "Differential" +msgstr "" + +#: src/dird/ua_run.c:610 src/filed/status.c:384 src/lib/util.c:340 +#: src/stored/status.c:571 +msgid "Since" +msgstr "" + +#: src/dird/ua_run.c:611 src/dird/ua_run.c:637 +msgid "Select level" +msgstr "" + +#: src/dird/ua_run.c:632 +msgid "Initialize Catalog" +msgstr "" + +#: src/dird/ua_run.c:633 src/filed/status.c:387 src/lib/util.c:343 +#: src/stored/status.c:574 +msgid "Verify Catalog" +msgstr "" + +#: src/dird/ua_run.c:634 src/lib/util.c:349 +msgid "Verify Volume to Catalog" +msgstr "" + +#: src/dird/ua_run.c:635 src/lib/util.c:352 +msgid "Verify Disk to Catalog" +msgstr "" + +#: src/dird/ua_run.c:636 +msgid "Verify Volume Data (not yet implemented)" +msgstr "" + +#: src/dird/ua_run.c:657 +msgid "Level not appropriate for this Job. Cannot be changed.\n" +msgstr "" + +#: src/dird/ua_run.c:671 +#, c-format +msgid "" +"Run %s job\n" +"JobName: %s\n" +"FileSet: %s\n" +"Client: %s\n" +"Storage: %s\n" +"When: %s\n" +"Priority: %d\n" +msgstr "" + +#: src/dird/ua_run.c:678 src/lib/util.c:296 +msgid "Admin" +msgstr "" + +#: src/dird/ua_run.c:691 +#, c-format +msgid "" +"Run %s job\n" +"JobName: %s\n" +"Level: %s\n" +"Client: %s\n" +"FileSet: %s\n" +"Pool: %s (From %s)\n" +"Storage: %s (From %s)\n" +"When: %s\n" +"Priority: %d\n" +msgstr "" + +#: src/dird/ua_run.c:700 src/lib/util.c:287 +msgid "Backup" +msgstr "" + +#: src/dird/ua_run.c:723 +#, c-format +msgid "" +"Run %s job\n" +"JobName: %s\n" +"Level: %s\n" +"Client: %s\n" +"FileSet: %s\n" +"Pool: %s (From %s)\n" +"Storage: %s (From %s)\n" +"Verify Job: %s\n" +"Verify List: %s\n" +"When: %s\n" +"Priority: %d\n" +msgstr "" + +#: src/dird/ua_run.c:734 src/lib/util.c:290 +msgid "Verify" +msgstr "" + +#: src/dird/ua_run.c:752 +msgid "Please enter a JobId for restore: " +msgstr "" + +#: src/dird/ua_run.c:764 +#, c-format +msgid "" +"Run Restore job\n" +"JobName: f%s\n" +"Bootstrap: %s\n" +"RegexWhere: %s\n" +"Replace: %s\n" +"FileSet: %s\n" +"Backup Client: %s\n" +"Restore Client: %s\n" +"Storage: %s\n" +"When: %s\n" +"Catalog: %s\n" +"Priority: %d\n" +msgstr "" + +#: src/dird/ua_run.c:789 +#, c-format +msgid "" +"Run Restore job\n" +"JobName: %s\n" +"Bootstrap: %s\n" +"Where: %s\n" +"Replace: %s\n" +"FileSet: %s\n" +"Backup Client: %s\n" +"Restore Client: %s\n" +"Storage: %s\n" +"When: %s\n" +"Catalog: %s\n" +"Priority: %d\n" +msgstr "" + +#: src/dird/ua_run.c:816 +#, c-format +msgid "" +"Run Restore job\n" +"JobName: %s\n" +"Bootstrap: %s\n" +msgstr "" + +#: src/dird/ua_run.c:824 +#, c-format +msgid "RegexWhere: %s\n" +msgstr "" + +#: src/dird/ua_run.c:827 +#, c-format +msgid "Where: %s\n" +msgstr "" + +#: src/dird/ua_run.c:831 +#, c-format +msgid "" +"Replace: %s\n" +"Client: %s\n" +"Storage: %s\n" +"JobId: %s\n" +"When: %s\n" +"Catalog: %s\n" +"Priority: %d\n" +msgstr "" + +#: src/dird/ua_run.c:850 +#, c-format +msgid "" +"Run Migration job\n" +"JobName: %s\n" +"Bootstrap: %s\n" +"Client: %s\n" +"FileSet: %s\n" +"Pool: %s (From %s)\n" +"Read Storage: %s (From %s)\n" +"Write Storage: %s (From %s)\n" +"JobId: %s\n" +"When: %s\n" +"Catalog: %s\n" +"Priority: %d\n" +msgstr "" + +#: src/dird/ua_run.c:875 +#, c-format +msgid "Unknown Job Type=%d\n" +msgstr "" + +#: src/dird/ua_run.c:935 +#, c-format +msgid "Value missing for keyword %s\n" +msgstr "" + +#: src/dird/ua_run.c:942 +msgid "Job name specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:950 +msgid "JobId specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:959 src/dird/ua_run.c:1103 +msgid "Client specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:967 +msgid "FileSet specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:975 +msgid "Level specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:984 +msgid "Storage specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:992 +msgid "RegexWhere or Where specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:997 +msgid "No authorization for \"regexwhere\" specification.\n" +msgstr "" + +#: src/dird/ua_run.c:1004 +msgid "Where or RegexWhere specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:1009 +msgid "No authoriztion for \"where\" specification.\n" +msgstr "" + +#: src/dird/ua_run.c:1016 +msgid "Bootstrap specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:1024 +msgid "Replace specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:1032 +msgid "When specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:1040 +msgid "Priority specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:1045 +msgid "Priority must be positive nonzero setting it to 10.\n" +msgstr "" + +#: src/dird/ua_run.c:1055 +msgid "Verify Job specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:1087 +msgid "Migration Job specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:1095 +msgid "Pool specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:1111 +msgid "Restore Client specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:1135 +#, c-format +msgid "Invalid keyword: %s\n" +msgstr "" + +#: src/dird/ua_run.c:1146 +#, c-format +msgid "Catalog \"%s\" not found\n" +msgstr "" + +#: src/dird/ua_run.c:1150 +#, c-format +msgid "No authorization. Catalog \"%s\".\n" +msgstr "" + +#: src/dird/ua_run.c:1161 +#, c-format +msgid "Job \"%s\" not found\n" +msgstr "" + +#: src/dird/ua_run.c:1168 +msgid "A job name must be specified.\n" +msgstr "" + +#: src/dird/ua_run.c:1174 +#, c-format +msgid "No authorization. Job \"%s\".\n" +msgstr "" + +#: src/dird/ua_run.c:1182 +#, c-format +msgid "Pool \"%s\" not found.\n" +msgstr "" + +#: src/dird/ua_run.c:1192 +#, c-format +msgid "No authorization. Pool \"%s\".\n" +msgstr "" + +#: src/dird/ua_run.c:1202 +#, c-format +msgid "Storage \"%s\" not found.\n" +msgstr "" + +#: src/dird/ua_run.c:1214 +#, c-format +msgid "No authorization. Storage \"%s\".\n" +msgstr "" + +#: src/dird/ua_run.c:1234 src/dird/ua_run.c:1254 +#, c-format +msgid "No authorization. Client \"%s\".\n" +msgstr "" + +#: src/dird/ua_run.c:1244 +#, c-format +msgid "Restore Client \"%s\" not found.\n" +msgstr "" + +#: src/dird/ua_run.c:1264 +#, c-format +msgid "FileSet \"%s\" not found.\n" +msgstr "" + +#: src/dird/ua_run.c:1273 +#, c-format +msgid "No authorization. FileSet \"%s\".\n" +msgstr "" + +#: src/dird/ua_run.c:1281 +#, c-format +msgid "Verify Job \"%s\" not found.\n" +msgstr "" + +#: src/dird/ua_run.c:1291 +#, c-format +msgid "Migration Job \"%s\" not found.\n" +msgstr "" + +#: src/dird/ua_select.c:55 +#, c-format +msgid "The current %s retention period is: %s\n" +msgstr "" + +#: src/dird/ua_select.c:60 +msgid "Continue? (yes/mod/no): " +msgstr "" + +#: src/dird/ua_select.c:64 +msgid "Enter new retention period: " +msgstr "" + +#: src/dird/ua_select.c:68 +msgid "Invalid period.\n" +msgstr "" + +#: src/dird/ua_select.c:144 +msgid "You have the following choices:\n" +msgstr "" + +#: src/dird/ua_select.c:160 +msgid "The defined Storage resources are:\n" +msgstr "" + +#: src/dird/ua_select.c:168 +msgid "Select Storage resource" +msgstr "" + +#: src/dird/ua_select.c:224 +msgid "You must specify a \"use \" command before continuing.\n" +msgstr "" + +#: src/dird/ua_select.c:230 +msgid "The defined Catalog resources are:\n" +msgstr "" + +#: src/dird/ua_select.c:238 +msgid "Catalog" +msgstr "" + +#: src/dird/ua_select.c:238 +msgid "Select Catalog resource" +msgstr "" + +#: src/dird/ua_select.c:255 +msgid "The defined Job resources are:\n" +msgstr "" + +#: src/dird/ua_select.c:263 +msgid "Select Job resource" +msgstr "" + +#: src/dird/ua_select.c:278 +msgid "The defined Restore Job resources are:\n" +msgstr "" + +#: src/dird/ua_select.c:286 +msgid "Select Restore Job" +msgstr "" + +#: src/dird/ua_select.c:303 +msgid "The defined Client resources are:\n" +msgstr "" + +#: src/dird/ua_select.c:311 +msgid "Select Client (File daemon) resource" +msgstr "" + +#: src/dird/ua_select.c:338 +#, c-format +msgid "Error: Client resource %s does not exist.\n" +msgstr "" + +#: src/dird/ua_select.c:363 +#, c-format +msgid "Could not find Client %s: ERR=%s" +msgstr "" + +#: src/dird/ua_select.c:373 src/dird/ua_select.c:427 +#, c-format +msgid "Could not find Client \"%s\": ERR=%s" +msgstr "" + +#: src/dird/ua_select.c:402 +#, c-format +msgid "Error obtaining client ids. ERR=%s\n" +msgstr "" + +#: src/dird/ua_select.c:406 +msgid "No clients defined. You must run a job before using this command.\n" +msgstr "" + +#: src/dird/ua_select.c:410 +msgid "Defined Clients:\n" +msgstr "" + +#: src/dird/ua_select.c:420 +msgid "Select the Client" +msgstr "" + +#: src/dird/ua_select.c:453 src/dird/ua_select.c:477 src/dird/ua_select.c:513 +#, c-format +msgid "Could not find Pool \"%s\": ERR=%s" +msgstr "" + +#: src/dird/ua_select.c:492 +msgid "No pools defined. Use the \"create\" command to create one.\n" +msgstr "" + +#: src/dird/ua_select.c:496 +msgid "Defined Pools:\n" +msgstr "" + +#: src/dird/ua_select.c:506 +msgid "Select the Pool" +msgstr "" + +#: src/dird/ua_select.c:536 +#, c-format +msgid "No access to Pool \"%s\"\n" +msgstr "" + +#: src/dird/ua_select.c:562 +msgid "Enter MediaId or Volume name: " +msgstr "" + +#: src/dird/ua_select.c:588 +msgid "The defined Pool resources are:\n" +msgstr "" + +#: src/dird/ua_select.c:596 +msgid "Select Pool resource" +msgstr "" + +#: src/dird/ua_select.c:631 +msgid "Enter the JobId to select: " +msgstr "" + +#: src/dird/ua_select.c:669 +#, c-format +msgid "Could not find Job \"%s\": ERR=%s" +msgstr "" + +#: src/dird/ua_select.c:749 +#, c-format +msgid "Automatically selected %s: %s\n" +msgstr "" + +#: src/dird/ua_select.c:754 +#, c-format +msgid "Cannot select %s in batch mode.\n" +msgstr "" + +#: src/dird/ua_select.c:772 +#, c-format +msgid "Selection list for \"%s\" is empty!\n" +msgstr "" + +#: src/dird/ua_select.c:778 +#, c-format +msgid "Automatically selected: %s\n" +msgstr "" + +#: src/dird/ua_select.c:790 +msgid "Selection aborted, nothing done.\n" +msgstr "" + +#: src/dird/ua_select.c:795 +#, c-format +msgid "Please enter a number between 1 and %d\n" +msgstr "" + +#: src/dird/ua_select.c:844 +msgid "Storage name given twice.\n" +msgstr "" + +#: src/dird/ua_select.c:861 +#, c-format +msgid "Expecting jobid=nn command, got: %s\n" +msgstr "" + +#: src/dird/ua_select.c:865 +#, c-format +msgid "JobId %s is not running.\n" +msgstr "" + +#: src/dird/ua_select.c:875 +#, c-format +msgid "Expecting job=xxx, got: %s.\n" +msgstr "" + +#: src/dird/ua_select.c:879 src/dird/ua_select.c:891 +#, c-format +msgid "Job \"%s\" is not running.\n" +msgstr "" + +#: src/dird/ua_select.c:887 +#, c-format +msgid "Expecting ujobid=xxx, got: %s.\n" +msgstr "" + +#: src/dird/ua_select.c:907 +#, c-format +msgid "Storage resource \"%s\": not found\n" +msgstr "" + +#: src/dird/ua_select.c:939 +msgid "Enter autochanger drive[0]: " +msgstr "" + +#: src/dird/ua_select.c:960 +msgid "Enter autochanger slot: " +msgstr "" + +#: src/dird/ua_select.c:990 +msgid "Media Types defined in conf file:\n" +msgstr "" + +#: src/dird/ua_select.c:996 +msgid "Media Type" +msgstr "" + +#: src/dird/ua_select.c:996 +msgid "Select the Media Type" +msgstr "" + +#: src/dird/ua_server.c:72 +#, c-format +msgid "Cannot create UA thread: %s\n" +msgstr "" + +#: src/dird/ua_server.c:159 +msgid "You have messages.\n" +msgstr "" + +#: src/dird/ua_status.c:143 +msgid "Status available for:\n" +msgstr "" + +#: src/dird/ua_status.c:149 +msgid "Select daemon type for status" +msgstr "" + +#: src/dird/ua_status.c:267 +#, c-format +msgid "Daemon started %s, 1 Job run since started.\n" +msgstr "" + +#: src/dird/ua_status.c:270 +#, c-format +msgid "Daemon started %s, %d Jobs run since started.\n" +msgstr "" + +#: src/dird/ua_status.c:273 src/filed/status.c:129 src/stored/status.c:90 +#, c-format +msgid " Heap: heap=%s smbytes=%s max_bytes=%s bufs=%s max_bufs=%s\n" +msgstr "" + +#: src/dird/ua_status.c:299 src/dird/ua_status.c:526 src/dird/ua_status.c:702 +#: src/filed/status.c:204 src/filed/status.c:220 src/filed/status.c:282 +msgid "====\n" +msgstr "" + +#: src/dird/ua_status.c:314 +#, c-format +msgid "" +"\n" +"Failed to connect to Storage daemon %s.\n" +"====\n" +msgstr "" + +#: src/dird/ua_status.c:352 +#, c-format +msgid "" +"Failed to connect to Client %s.\n" +"====\n" +msgstr "" + +#: src/dird/ua_status.c:360 +msgid "Connected to file daemon\n" +msgstr "" + +#: src/dird/ua_status.c:375 +msgid "" +"\n" +"Scheduled Jobs:\n" +msgstr "" + +#: src/dird/ua_status.c:376 +msgid "" +"Level Type Pri Scheduled Name Volume\n" +msgstr "" + +#: src/dird/ua_status.c:377 +msgid "===================================================================================\n" +msgstr "" + +#: src/dird/ua_status.c:429 +#, c-format +msgid "%-14s %-8s %3d %-18s %-18s %s\n" +msgstr "" + +#: src/dird/ua_status.c:524 +msgid "No Scheduled Jobs.\n" +msgstr "" + +#: src/dird/ua_status.c:541 src/filed/status.c:144 src/stored/status.c:370 +msgid "" +"\n" +"Running Jobs:\n" +msgstr "" + +#: src/dird/ua_status.c:549 +#, c-format +msgid "Console connected at %s\n" +msgstr "" + +#: src/dird/ua_status.c:559 +msgid "" +"No Jobs running.\n" +"====\n" +msgstr "" + +#: src/dird/ua_status.c:564 +msgid " JobId Level Name Status\n" +msgstr "" + +#: src/dird/ua_status.c:565 src/filed/status.c:226 +msgid "======================================================================\n" +msgstr "" + +#: src/dird/ua_status.c:573 +msgid "is waiting execution" +msgstr "" + +#: src/dird/ua_status.c:576 +msgid "is running" +msgstr "" + +#: src/dird/ua_status.c:579 +msgid "is blocked" +msgstr "" + +#: src/dird/ua_status.c:582 +msgid "has terminated" +msgstr "" + +#: src/dird/ua_status.c:585 +msgid "has erred" +msgstr "" + +#: src/dird/ua_status.c:588 +msgid "has errors" +msgstr "" + +#: src/dird/ua_status.c:591 +msgid "has a fatal error" +msgstr "" + +#: src/dird/ua_status.c:594 +msgid "has verify differences" +msgstr "" + +#: src/dird/ua_status.c:597 +msgid "has been canceled" +msgstr "" + +#: src/dird/ua_status.c:602 +msgid "is waiting on Client" +msgstr "" + +#: src/dird/ua_status.c:604 +#, c-format +msgid "is waiting on Client %s" +msgstr "" + +#: src/dird/ua_status.c:612 src/dird/ua_status.c:614 +#, c-format +msgid "is waiting on Storage %s" +msgstr "" + +#: src/dird/ua_status.c:616 +msgid "is waiting on Storage" +msgstr "" + +#: src/dird/ua_status.c:622 +msgid "is waiting on max Storage jobs" +msgstr "" + +#: src/dird/ua_status.c:625 +msgid "is waiting on max Client jobs" +msgstr "" + +#: src/dird/ua_status.c:628 +msgid "is waiting on max Job jobs" +msgstr "" + +#: src/dird/ua_status.c:631 +msgid "is waiting on max total jobs" +msgstr "" + +#: src/dird/ua_status.c:634 +msgid "is waiting for its start time" +msgstr "" + +#: src/dird/ua_status.c:637 +msgid "is waiting for higher priority jobs to finish" +msgstr "" + +#: src/dird/ua_status.c:642 +#, c-format +msgid "is in unknown state %c" +msgstr "" + +#: src/dird/ua_status.c:656 +msgid "is waiting for a mount request" +msgstr "" + +#: src/dird/ua_status.c:663 +msgid "is waiting for an appendable Volume" +msgstr "" + +#: src/dird/ua_status.c:671 +msgid "is waiting for Client to connect to Storage daemon" +msgstr "" + +#: src/dird/ua_status.c:673 +#, c-format +msgid "is waiting for Client %s to connect to Storage %s" +msgstr "" + +#: src/dird/ua_status.c:690 +#, c-format +msgid "%6d %-6s %-20s %s\n" +msgstr "" + +#: src/dird/ua_status.c:712 +msgid "No Terminated Jobs.\n" +msgstr "" + +#: src/dird/ua_status.c:717 src/filed/status.c:216 src/stored/status.c:482 +msgid "" +"\n" +"Terminated Jobs:\n" +msgstr "" + +#: src/dird/ua_status.c:718 src/filed/status.c:224 src/stored/status.c:489 +msgid " JobId Level Files Bytes Status Finished Name \n" +msgstr "" + +#: src/dird/ua_status.c:719 +msgid "====================================================================\n" +msgstr "" + +#: src/dird/ua_status.c:750 src/filed/status.c:246 src/lib/util.c:179 +#: src/stored/status.c:511 +msgid "Created" +msgstr "" + +#: src/dird/ua_status.c:754 src/filed/status.c:250 src/lib/util.c:192 +#: src/lib/util.c:259 src/stored/status.c:515 +msgid "Error" +msgstr "" + +#: src/dird/ua_status.c:757 src/filed/status.c:253 src/stored/status.c:518 +msgid "Diffs" +msgstr "" + +#: src/dird/ua_status.c:763 src/filed/status.c:259 src/lib/util.c:188 +#: src/lib/util.c:255 src/stored/btape.c:1189 src/stored/status.c:524 +#: src/wx-console/wxbconfigpanel.cpp:201 +msgid "OK" +msgstr "" + +#: src/dird/ua_status.c:766 src/filed/status.c:262 src/stored/status.c:527 +msgid "Other" +msgstr "" + +#: src/dird/ua_status.c:769 src/filed/status.c:273 src/stored/status.c:538 +#, c-format +msgid "%6d %-6s %8s %10s %-7s %-8s %s\n" +msgstr "" + +#: src/dird/ua_status.c:777 src/stored/btape.c:195 +msgid "\n" +msgstr "" + +#: src/dird/ua_tree.c:72 +msgid "change current directory" +msgstr "" + +#: src/dird/ua_tree.c:73 +msgid "count marked files in and below the cd" +msgstr "" + +#: src/dird/ua_tree.c:74 src/dird/ua_tree.c:75 +msgid "long list current directory, wildcards allowed" +msgstr "" + +#: src/dird/ua_tree.c:76 +msgid "leave file selection mode" +msgstr "" + +#: src/dird/ua_tree.c:77 +msgid "estimate restore size" +msgstr "" + +#: src/dird/ua_tree.c:78 +msgid "same as done command" +msgstr "" + +#: src/dird/ua_tree.c:79 +msgid "find files, wildcards allowed" +msgstr "" + +#: src/dird/ua_tree.c:80 src/dird/ua_tree.c:90 +msgid "print help" +msgstr "" + +#: src/dird/ua_tree.c:81 +msgid "list current directory, wildcards allowed" +msgstr "" + +#: src/dird/ua_tree.c:82 +msgid "list the marked files in and below the cd" +msgstr "" + +#: src/dird/ua_tree.c:83 +msgid "mark dir/file to be restored recursively, wildcards allowed" +msgstr "" + +#: src/dird/ua_tree.c:84 +msgid "mark directory name to be restored (no files)" +msgstr "" + +#: src/dird/ua_tree.c:85 src/dird/ua_tree.c:86 +msgid "print current working directory" +msgstr "" + +#: src/dird/ua_tree.c:87 +msgid "unmark dir/file to be restored recursively in dir" +msgstr "" + +#: src/dird/ua_tree.c:88 +msgid "unmark directory name only no recursion" +msgstr "" + +#: src/dird/ua_tree.c:89 +msgid "quit and do not do restore" +msgstr "" + +#: src/dird/ua_tree.c:110 +msgid "" +"\n" +"You are now entering file selection mode where you add (mark) and\n" +"remove (unmark) files to be restored. No files are initially added, unless\n" +"you used the \"all\" keyword on the command line.\n" +"Enter \"done\" to leave this mode.\n" +"\n" +msgstr "" + +#: src/dird/ua_tree.c:120 src/dird/ua_tree.c:716 +#, c-format +msgid "cwd is: %s\n" +msgstr "" + +#: src/dird/ua_tree.c:129 src/dird/ua_tree.c:144 +msgid "Invalid command. Enter \"done\" to exit.\n" +msgstr "" + +#: src/dird/ua_tree.c:331 src/dird/ua_tree.c:343 src/dird/ua_tree.c:360 +msgid "No files marked.\n" +msgstr "" + +#: src/dird/ua_tree.c:345 +msgid "1 file marked.\n" +msgstr "" + +#: src/dird/ua_tree.c:347 +#, c-format +msgid "%s files marked.\n" +msgstr "" + +#: src/dird/ua_tree.c:375 +msgid "No directories marked.\n" +msgstr "" + +#: src/dird/ua_tree.c:377 +msgid "1 directory marked.\n" +msgstr "" + +#: src/dird/ua_tree.c:379 +#, c-format +msgid "%s directories marked.\n" +msgstr "" + +#: src/dird/ua_tree.c:400 +#, c-format +msgid "%s total files/dirs. %s marked to be restored.\n" +msgstr "" + +#: src/dird/ua_tree.c:411 +msgid "No file specification given.\n" +msgstr "" + +#: src/dird/ua_tree.c:562 +#, c-format +msgid "Node %s has no children.\n" +msgstr "" + +#: src/dird/ua_tree.c:653 +#, c-format +msgid "%d total files; %d marked to be restored; %s bytes.\n" +msgstr "" + +#: src/dird/ua_tree.c:687 +msgid "Too few or too many arguments. Try using double quotes.\n" +msgstr "" + +#: src/dird/ua_tree.c:699 +msgid "Invalid path given.\n" +msgstr "" + +#: src/dird/ua_tree.c:735 src/dird/ua_tree.c:747 +msgid "No files unmarked.\n" +msgstr "" + +#: src/dird/ua_tree.c:749 +msgid "1 file unmarked.\n" +msgstr "" + +#: src/dird/ua_tree.c:752 +#, c-format +msgid "%s files unmarked.\n" +msgstr "" + +#: src/dird/ua_tree.c:763 src/dird/ua_tree.c:780 +msgid "No directories unmarked.\n" +msgstr "" + +#: src/dird/ua_tree.c:782 +msgid "1 directory unmarked.\n" +msgstr "" + +#: src/dird/ua_tree.c:784 +#, c-format +msgid "%d directories unmarked.\n" +msgstr "" + +#: src/dird/ua_update.c:89 +msgid "Update choice:\n" +msgstr "" + +#: src/dird/ua_update.c:90 +msgid "Volume parameters" +msgstr "" + +#: src/dird/ua_update.c:91 +msgid "Pool from resource" +msgstr "" + +#: src/dird/ua_update.c:92 +msgid "Slots from autochanger" +msgstr "" + +#: src/dird/ua_update.c:93 +msgid "item" +msgstr "" + +#: src/dird/ua_update.c:93 +msgid "Choose catalog item to update" +msgstr "" + +#: src/dird/ua_update.c:133 +#, c-format +msgid "Invalid VolStatus specified: %s\n" +msgstr "" + +#: src/dird/ua_update.c:142 +#, c-format +msgid "New Volume status is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:152 +#, c-format +msgid "Invalid retention period specified: %s\n" +msgstr "" + +#: src/dird/ua_update.c:160 +#, c-format +msgid "New retention period is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:171 +#, c-format +msgid "Invalid use duration specified: %s\n" +msgstr "" + +#: src/dird/ua_update.c:179 +#, c-format +msgid "New use duration is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:193 +#, c-format +msgid "New max jobs is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:206 +#, c-format +msgid "New max files is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:217 +#, c-format +msgid "Invalid max. bytes specification: %s\n" +msgstr "" + +#: src/dird/ua_update.c:225 +#, c-format +msgid "New Max bytes is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:236 src/dird/ua_update.c:256 +msgid "Invalid value. It must be yes or no.\n" +msgstr "" + +#: src/dird/ua_update.c:244 +#, c-format +msgid "New Recycle flag is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:264 +#, c-format +msgid "New InChanger flag is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:282 +#, c-format +msgid "Invalid slot, it must be between 0 and MaxVols=%d\n" +msgstr "" + +#: src/dird/ua_update.c:291 src/dird/ua_update.c:637 +#, c-format +msgid "Error updating media record Slot: ERR=%s" +msgstr "" + +#: src/dird/ua_update.c:293 +#, c-format +msgid "New Slot is: %d\n" +msgstr "" + +#: src/dird/ua_update.c:318 +#, c-format +msgid "New Pool is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:352 +#, c-format +msgid "New RecyclePool is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:372 +#, c-format +msgid "Error updating Volume record: ERR=%s" +msgstr "" + +#: src/dird/ua_update.c:374 +#, c-format +msgid "Volume defaults updated from \"%s\" Pool record.\n" +msgstr "" + +#: src/dird/ua_update.c:398 +#, c-format +msgid "Error updating Volume records: ERR=%s" +msgstr "" + +#: src/dird/ua_update.c:400 +#, c-format +msgid "All Volume defaults updated from \"%s\" Pool record.\n" +msgstr "" + +#: src/dird/ua_update.c:412 +#, c-format +msgid "Error updating media record Enabled: ERR=%s" +msgstr "" + +#: src/dird/ua_update.c:414 +#, c-format +msgid "New Enabled is: %d\n" +msgstr "" + +#: src/dird/ua_update.c:519 +msgid "Volume Status" +msgstr "" + +#: src/dird/ua_update.c:520 +msgid "Volume Retention Period" +msgstr "" + +#: src/dird/ua_update.c:521 +msgid "Volume Use Duration" +msgstr "" + +#: src/dird/ua_update.c:522 +msgid "Maximum Volume Jobs" +msgstr "" + +#: src/dird/ua_update.c:523 +msgid "Maximum Volume Files" +msgstr "" + +#: src/dird/ua_update.c:524 +msgid "Maximum Volume Bytes" +msgstr "" + +#: src/dird/ua_update.c:525 +msgid "Recycle Flag" +msgstr "" + +#: src/dird/ua_update.c:526 +msgid "Slot" +msgstr "" + +#: src/dird/ua_update.c:527 +msgid "InChanger Flag" +msgstr "" + +#: src/dird/ua_update.c:528 +msgid "Volume Files" +msgstr "" + +#: src/dird/ua_update.c:530 +msgid "Volume from Pool" +msgstr "" + +#: src/dird/ua_update.c:531 +msgid "All Volumes from Pool" +msgstr "" + +#: src/dird/ua_update.c:532 +msgid "Enabled" +msgstr "" + +#: src/dird/ua_update.c:533 +msgid "RecyclePool" +msgstr "" + +#: src/dird/ua_update.c:534 +msgid "Done" +msgstr "" + +#: src/dird/ua_update.c:542 +#, c-format +msgid "Updating Volume \"%s\"\n" +msgstr "" + +#: src/dird/ua_update.c:547 +#, c-format +msgid "Current Volume status is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:548 +msgid "Possible Values are:\n" +msgstr "" + +#: src/dird/ua_update.c:559 +msgid "Choose new Volume Status" +msgstr "" + +#: src/dird/ua_update.c:565 +#, c-format +msgid "Current retention period is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:567 +msgid "Enter Volume Retention period: " +msgstr "" + +#: src/dird/ua_update.c:574 +#, c-format +msgid "Current use duration is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:576 +msgid "Enter Volume Use Duration: " +msgstr "" + +#: src/dird/ua_update.c:583 +#, c-format +msgid "Current max jobs is: %u\n" +msgstr "" + +#: src/dird/ua_update.c:584 +msgid "Enter new Maximum Jobs: " +msgstr "" + +#: src/dird/ua_update.c:591 +#, c-format +msgid "Current max files is: %u\n" +msgstr "" + +#: src/dird/ua_update.c:592 +msgid "Enter new Maximum Files: " +msgstr "" + +#: src/dird/ua_update.c:599 +#, c-format +msgid "Current value is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:600 +msgid "Enter new Maximum Bytes: " +msgstr "" + +#: src/dird/ua_update.c:608 +#, c-format +msgid "Current recycle flag is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:610 +msgid "Enter new Recycle status: " +msgstr "" + +#: src/dird/ua_update.c:617 +#, c-format +msgid "Current Slot is: %d\n" +msgstr "" + +#: src/dird/ua_update.c:618 +msgid "Enter new Slot: " +msgstr "" + +#: src/dird/ua_update.c:625 +#, c-format +msgid "Current InChanger flag is: %d\n" +msgstr "" + +#: src/dird/ua_update.c:626 +#, c-format +msgid "Set InChanger flag for Volume \"%s\": yes/no: " +msgstr "" + +#: src/dird/ua_update.c:639 +#, c-format +msgid "New InChanger flag is: %d\n" +msgstr "" + +#: src/dird/ua_update.c:646 +msgid "" +"Warning changing Volume Files can result\n" +"in loss of data on your Volume\n" +"\n" +msgstr "" + +#: src/dird/ua_update.c:648 +#, c-format +msgid "Current Volume Files is: %u\n" +msgstr "" + +#: src/dird/ua_update.c:649 +msgid "Enter new number of Files for Volume: " +msgstr "" + +#: src/dird/ua_update.c:654 +msgid "Normally, you should only increase Volume Files by one!\n" +msgstr "" + +#: src/dird/ua_update.c:655 +msgid "Increase Volume Files? (yes/no): " +msgstr "" + +#: src/dird/ua_update.c:665 +#, c-format +msgid "New Volume Files is: %u\n" +msgstr "" + +#: src/dird/ua_update.c:677 +#, c-format +msgid "Current Pool is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:678 +msgid "Enter new Pool name: " +msgstr "" + +#: src/dird/ua_update.c:695 +#, c-format +msgid "Current Enabled is: %d\n" +msgstr "" + +#: src/dird/ua_update.c:696 +msgid "Enter new Enabled: " +msgstr "" + +#: src/dird/ua_update.c:715 +#, c-format +msgid "Current RecyclePool is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:717 +msgid "No current RecyclePool\n" +msgstr "" + +#: src/dird/ua_update.c:719 +msgid "Enter new RecyclePool name: " +msgstr "" + +#: src/dird/ua_update.c:726 +msgid "Selection terminated.\n" +msgstr "" + +#: src/dird/ua_update.c:760 +#, c-format +msgid "db_update_pool_record returned %d. ERR=%s\n" +msgstr "" + +#: src/dird/ua_update.c:767 +msgid "Pool DB record updated from resource.\n" +msgstr "" + +#: src/dird/ua_update.c:794 +msgid "Expect JobId keyword, not found.\n" +msgstr "" + +#: src/dird/ua_update.c:819 +msgid "Neither Client nor StartTime specified.\n" +msgstr "" + +#: src/dird/verify.c:120 +msgid "" +"Unable to find JobId of previous InitCatalog Job.\n" +"Please run a Verify with Level=InitCatalog before\n" +"running the current Job.\n" +msgstr "" + +#: src/dird/verify.c:125 +msgid "Unable to find JobId of previous Job for this client.\n" +msgstr "" + +#: src/dird/verify.c:141 +#, c-format +msgid "Could not get job record for previous Job. ERR=%s" +msgstr "" + +#: src/dird/verify.c:146 +#, c-format +msgid "Last Job %d did not terminate normally. JobStatus=%c\n" +msgstr "" + +#: src/dird/verify.c:150 +#, c-format +msgid "Verifying against JobId=%d Job=%s\n" +msgstr "" + +#: src/dird/verify.c:179 +#, c-format +msgid "Start Verify JobId=%s Level=%s Job=%s\n" +msgstr "" + +#: src/dird/verify.c:263 +msgid "Deprecated feature ... use bootstrap.\n" +msgstr "" + +#: src/dird/verify.c:276 +#, c-format +msgid "Unimplemented Verify level %d(%c)\n" +msgstr "" + +#: src/dird/verify.c:330 +#, c-format +msgid "Unimplemented verify level %d\n" +msgstr "" + +#: src/dird/verify.c:384 +msgid "Verify OK" +msgstr "" + +#: src/dird/verify.c:388 +msgid "*** Verify Error ***" +msgstr "" + +#: src/dird/verify.c:392 +msgid "Verify warnings" +msgstr "" + +#: src/dird/verify.c:395 +msgid "Verify Canceled" +msgstr "" + +#: src/dird/verify.c:398 +msgid "Verify Differences" +msgstr "" + +#: src/dird/verify.c:403 +#, c-format +msgid "Inappropriate term code: %d %c\n" +msgstr "" + +#: src/dird/verify.c:417 +#, c-format +msgid "" +"Bacula %s %s (%s): %s\n" +" Build OS: %s %s %s\n" +" JobId: %d\n" +" Job: %s\n" +" FileSet: %s\n" +" Verify Level: %s\n" +" Client: %s\n" +" Verify JobId: %d\n" +" Verify Job: %s\n" +" Start time: %s\n" +" End time: %s\n" +" Files Expected: %s\n" +" Files Examined: %s\n" +" Non-fatal FD errors: %d\n" +" FD termination status: %s\n" +" SD termination status: %s\n" +" Termination: %s\n" +"\n" +msgstr "" + +#: src/dird/verify.c:452 +#, c-format +msgid "" +"Bacula %s %s (%s): %s\n" +" Build: %s %s %s\n" +" JobId: %d\n" +" Job: %s\n" +" FileSet: %s\n" +" Verify Level: %s\n" +" Client: %s\n" +" Verify JobId: %d\n" +" Verify Job: %s\n" +" Start time: %s\n" +" End time: %s\n" +" Files Examined: %s\n" +" Non-fatal FD errors: %d\n" +" FD termination status: %s\n" +" Termination: %s\n" +"\n" +msgstr "" + +#: src/dird/verify.c:531 +#, c-format +msgid "" +"bird set configuration file to file\n" +" -dnn set debug level to nn\n" +" -n no conio\n" +" -s no signals\n" +" -t test - read configuration and exit\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/console/console.c:162 +msgid "input from file" +msgstr "" + +#: src/console/console.c:163 +msgid "output to file" +msgstr "" + +#: src/console/console.c:165 +msgid "output to file and terminal" +msgstr "" + +#: src/console/console.c:166 +msgid "sleep specified time" +msgstr "" + +#: src/console/console.c:168 +msgid "print Console's version" +msgstr "" + +#: src/console/console.c:169 +msgid "echo command string" +msgstr "" + +#: src/console/console.c:170 +msgid "execute an external command" +msgstr "" + +#: src/console/console.c:172 +msgid "zed_keys = use zed keys instead of bash keys" +msgstr "" + +#: src/console/console.c:205 +msgid ": is an invalid command\n" +msgstr "" + +#: src/console/console.c:462 +msgid "Available Directors:\n" +msgstr "" + +#: src/console/console.c:466 +#, c-format +msgid "%2d: %s at %s:%d\n" +msgstr "" + +#: src/console/console.c:470 +msgid "Select Director by entering a number: " +msgstr "" + +#: src/console/console.c:475 +#, c-format +msgid "%s is not a number. You must enter a number between 1 and %d\n" +msgstr "" + +#: src/console/console.c:481 +#, c-format +msgid "You must enter a number between 1 and %d\n" +msgstr "" + +#: src/console/console.c:521 src/tray-monitor/tray-monitor.c:905 +#, c-format +msgid "Connecting to Director %s:%d\n" +msgstr "" + +#: src/console/console.c:538 src/gnome2-console/console.c:526 +#: src/wx-console/console_thread.cpp:391 +#, c-format +msgid "Failed to initialize TLS context for Console \"%s\".\n" +msgstr "" + +#: src/console/console.c:558 src/gnome2-console/console.c:548 +#: src/wx-console/console_thread.cpp:412 +#, c-format +msgid "Failed to initialize TLS context for Director \"%s\".\n" +msgstr "" + +#: src/console/console.c:588 +msgid "Enter a period to cancel a command.\n" +msgstr "" + +#: src/console/console.c:664 src/gnome2-console/console.c:160 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Director \"%s\" in %s. At least one CA certificate store is required.\n" +msgstr "" + +#: src/console/console.c:673 src/gnome2-console/console.c:169 +#, c-format +msgid "" +"No Director resource defined in %s\n" +"Without that I don't how to speak to the Director :-(\n" +msgstr "" + +#: src/console/console.c:693 src/gnome2-console/console.c:189 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Console \"%s\" in %s.\n" +msgstr "" + +#: src/console/console.c:849 +msgid "Too many arguments on input command.\n" +msgstr "" + +#: src/console/console.c:853 +msgid "First argument to input command must be a filename.\n" +msgstr "" + +#: src/console/console.c:858 +#, c-format +msgid "Cannot open file %s for input. ERR=%s\n" +msgstr "" + +#: src/console/console.c:888 +msgid "Too many arguments on output/tee command.\n" +msgstr "" + +#: src/console/console.c:905 +#, c-format +msgid "Cannot open file %s for output. ERR=%s\n" +msgstr "" + +#: src/console/console.c:924 +msgid "Too many arguments. Enclose command in double quotes.\n" +msgstr "" + +#: src/console/console.c:933 +#, c-format +msgid "Cannot popen(\"%s\", \"r\"): ERR=%s\n" +msgstr "" + +#: src/console/console.c:945 src/stored/autochanger.c:549 +#, c-format +msgid "Autochanger error: ERR=%s\n" +msgstr "" + +#: src/console/console_conf.c:138 src/gnome2-console/console_conf.c:134 +#: src/wx-console/console_conf.c:147 +#, c-format +msgid "No record for %d %s\n" +msgstr "" + +#: src/console/console_conf.c:147 src/wx-console/console_conf.c:156 +#, c-format +msgid "Console: name=%s rcfile=%s histfile=%s\n" +msgstr "" + +#: src/console/console_conf.c:151 src/gnome2-console/console_conf.c:143 +#: src/wx-console/console_conf.c:160 +#, c-format +msgid "Director: name=%s address=%s DIRport=%d\n" +msgstr "" + +#: src/console/console_conf.c:155 src/console/console_conf.c:231 +#: src/console/console_conf.c:276 src/console/console_conf.c:303 +#: src/filed/filed_conf.c:319 src/filed/filed_conf.c:384 +#: src/filed/filed_conf.c:414 src/gnome2-console/console_conf.c:154 +#: src/gnome2-console/console_conf.c:232 src/gnome2-console/console_conf.c:280 +#: src/gnome2-console/console_conf.c:310 src/stored/stored_conf.c:528 +#: src/stored/stored_conf.c:616 src/stored/stored_conf.c:651 +#: src/wx-console/console_conf.c:164 src/wx-console/console_conf.c:239 +#: src/wx-console/console_conf.c:284 src/wx-console/console_conf.c:311 +#, c-format +msgid "Unknown resource type %d\n" +msgstr "" + +#: src/filed/acl.c:104 src/filed/acl.c:110 +msgid "ACL support not configured for your machine.\n" +msgstr "" + +#: src/filed/acl.c:186 +#, c-format +msgid "acl_to_text error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:215 +#, c-format +msgid "acl_delete_def_file error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:223 +#, c-format +msgid "acl_from_text error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:237 +#, c-format +msgid "ac_valid error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:252 +#, c-format +msgid "acl_set_file error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:286 +#, c-format +msgid "acltostr error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:303 src/filed/acl.c:311 +#, c-format +msgid "strtoacl error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:323 +#, c-format +msgid "setacl error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:359 +#, c-format +msgid "acltotext error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:376 +#, c-format +msgid "aclfromtext error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:388 +#, c-format +msgid "acl(SETACL) error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/authenticate.c:60 +#, c-format +msgid "I only authenticate directors, not %d\n" +msgstr "" + +#: src/filed/authenticate.c:68 src/stored/authenticate.c:66 +#, c-format +msgid "Bad Hello command from Director at %s. Len=%d.\n" +msgstr "" + +#: src/filed/authenticate.c:80 src/stored/authenticate.c:77 +#, c-format +msgid "Bad Hello command from Director at %s: %s\n" +msgstr "" + +#: src/filed/authenticate.c:92 +#, c-format +msgid "Connection from unknown Director %s at %s rejected.\n" +msgstr "" + +#: src/filed/authenticate.c:132 +#, c-format +msgid "Incorrect password given by Director at %s.\n" +msgstr "" + +#: src/filed/authenticate.c:139 +msgid "" +"Authorization problem: Remote server did not advertize required TLS " +"support.\n" +msgstr "" + +#: src/filed/authenticate.c:193 src/stored/dircmd.c:199 +msgid "Unable to authenticate Director\n" +msgstr "" + +#: src/filed/authenticate.c:244 +msgid "" +"Authorization key rejected by Storage daemon.\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" + +#: src/filed/backup.c:86 +msgid "Cannot set buffer size FD->SD.\n" +msgstr "" + +#: src/filed/backup.c:129 src/filed/backup.c:138 +msgid "An error occurred while encrypting the stream.\n" +msgstr "" + +#: src/filed/backup.c:255 +#, c-format +msgid " Recursion turned off. Will not descend from %s into %s\n" +msgstr "" + +#: src/filed/backup.c:262 +#, c-format +msgid " %s is a different filesystem. Will not descend from %s into %s\n" +msgstr "" + +#: src/filed/backup.c:268 +#, c-format +msgid " Disallowed filesystem. Will not descend from %s into %s\n" +msgstr "" + +#: src/filed/backup.c:273 +#, c-format +msgid " Disallowed drive type. Will not descend into %s\n" +msgstr "" + +#: src/filed/backup.c:292 src/filed/verify.c:123 +#, c-format +msgid " Could not access %s: ERR=%s\n" +msgstr "" + +#: src/filed/backup.c:299 src/filed/verify.c:130 +#, c-format +msgid " Could not follow link %s: ERR=%s\n" +msgstr "" + +#: src/filed/backup.c:306 src/filed/verify.c:137 +#, c-format +msgid " Could not stat %s: ERR=%s\n" +msgstr "" + +#: src/filed/backup.c:313 src/filed/verify.c:143 +#, c-format +msgid " Unchanged file skipped: %s\n" +msgstr "" + +#: src/filed/backup.c:316 +#, c-format +msgid " Archive file not saved: %s\n" +msgstr "" + +#: src/filed/backup.c:320 src/filed/verify.c:158 +#, c-format +msgid " Could not open directory %s: ERR=%s\n" +msgstr "" + +#: src/filed/backup.c:326 +#, c-format +msgid " Unknown file type %d; not saved: %s\n" +msgstr "" + +#: src/filed/backup.c:366 src/filed/verify.c:239 +#, c-format +msgid "%s digest initialization failed\n" +msgstr "" + +#: src/filed/backup.c:380 +#, c-format +msgid "%s signature digest initialization failed\n" +msgstr "" + +#: src/filed/backup.c:400 +#, c-format +msgid "Python reader program \"%s\" not found.\n" +msgstr "" + +#: src/filed/backup.c:462 src/filed/verify.c:300 +#, c-format +msgid " Cannot open %s: ERR=%s.\n" +msgstr "" + +#: src/filed/backup.c:499 src/filed/verify.c:314 +#, c-format +msgid " Cannot open resource fork for %s: ERR=%s.\n" +msgstr "" + +#: src/filed/backup.c:556 +msgid "Failed to allocate memory for crypto signature.\n" +msgstr "" + +#: src/filed/backup.c:561 src/filed/backup.c:567 src/filed/backup.c:582 +msgid "An error occurred while signing the stream.\n" +msgstr "" + +#: src/filed/backup.c:606 +msgid "An error occurred finalizing signing the stream.\n" +msgstr "" + +#: src/filed/backup.c:693 +#, c-format +msgid "Compression deflateParams error: %d\n" +msgstr "" + +#: src/filed/backup.c:705 +msgid "Encrypting sparse data not supported.\n" +msgstr "" + +#: src/filed/backup.c:712 +msgid "Failed to initialize encryption context.\n" +msgstr "" + +#: src/filed/backup.c:735 src/filed/backup.c:891 src/filed/backup.c:926 +#: src/filed/backup.c:937 src/filed/backup.c:983 src/filed/backup.c:996 +#: src/filed/backup.c:1004 src/filed/backup.c:1050 src/filed/backup.c:1086 +#, c-format +msgid "Network send error to SD. ERR=%s\n" +msgstr "" + +#: src/filed/backup.c:814 +#, c-format +msgid "Compression deflate error: %d\n" +msgstr "" + +#: src/filed/backup.c:821 +#, c-format +msgid "Compression deflateReset error: %d\n" +msgstr "" + +#: src/filed/backup.c:864 src/filed/backup.c:880 +msgid "Encryption error\n" +msgstr "" + +#: src/filed/backup.c:904 +#, c-format +msgid "Read error on file %s. ERR=%s\n" +msgstr "" + +#: src/filed/backup.c:907 +msgid "Too many errors.\n" +msgstr "" + +#: src/filed/backup.c:917 +msgid "Encryption padding error\n" +msgstr "" + +#: src/filed/backup.c:974 +#, c-format +msgid "Error reading ACL of %s\n" +msgstr "" + +#: src/filed/backup.c:1029 +msgid "Invalid file flags, no supported data stream type.\n" +msgstr "" + +#: src/filed/filed.c:65 +#, c-format +msgid "" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: bacula-fd [-f -s] [-c config_file] [-d debug_level]\n" +" -c use as configuration file\n" +" -dnn set debug level to nn\n" +" -f run in foreground (for debugging)\n" +" -g groupid\n" +" -s no signals (for debugging)\n" +" -t test configuration file and exit\n" +" -u userid\n" +" -v verbose user messages\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/filed/filed.c:268 +#, c-format +msgid "" +"No File daemon resource defined in %s\n" +"Without that I don't know who I am :-(\n" +msgstr "" + +#: src/filed/filed.c:273 +#, c-format +msgid "Only one Client resource permitted in %s\n" +msgstr "" + +#: src/filed/filed.c:296 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"File daemon in %s.\n" +msgstr "" + +#: src/filed/filed.c:320 +msgid "PKI encryption/signing enabled but not compiled into Bacula.\n" +msgstr "" + +#: src/filed/filed.c:331 +#, c-format +msgid "" +"\"PKI Key Pair\" must be defined for File daemon \"%s\" in %s if either " +"\"PKI Sign\" or \"PKI Encrypt\" are enabled.\n" +msgstr "" + +#: src/filed/filed.c:343 src/filed/filed.c:374 src/filed/filed.c:415 +msgid "Failed to allocate a new keypair object.\n" +msgstr "" + +#: src/filed/filed.c:347 +#, c-format +msgid "Failed to load public certificate for File daemon \"%s\" in %s.\n" +msgstr "" + +#: src/filed/filed.c:353 +#, c-format +msgid "Failed to load private key for File daemon \"%s\" in %s.\n" +msgstr "" + +#: src/filed/filed.c:383 +#, c-format +msgid "Failed to load private key from file %s for File daemon \"%s\" in %s.\n" +msgstr "" + +#: src/filed/filed.c:390 +#, c-format +msgid "" +"Failed to load trusted signer certificate from file %s for File daemon \"%s" +"\" in %s.\n" +msgstr "" + +#: src/filed/filed.c:421 +#, c-format +msgid "" +"Failed to load master key certificate from file %s for File daemon \"%s\" in " +"%s.\n" +msgstr "" + +#: src/filed/filed.c:437 +#, c-format +msgid "No Director resource defined in %s\n" +msgstr "" + +#: src/filed/job.c:373 +#, c-format +msgid "2901 Job %s not found.\n" +msgstr "" + +#: src/filed/job.c:382 +#, c-format +msgid "2001 Job %s marked to be canceled.\n" +msgstr "" + +#: src/filed/job.c:385 +msgid "2902 Error scanning cancel command.\n" +msgstr "" + +#: src/filed/job.c:404 +#, c-format +msgid "2991 Bad setdebug command: %s\n" +msgstr "" + +#: src/filed/job.c:420 +#, c-format +msgid "Bad estimate command: %s" +msgstr "" + +#: src/filed/job.c:421 +msgid "2992 Bad estimate command.\n" +msgstr "" + +#: src/filed/job.c:444 +#, c-format +msgid "Bad Job Command: %s" +msgstr "" + +#: src/filed/job.c:465 +#, c-format +msgid "Bad RunBeforeJob command: %s\n" +msgstr "" + +#: src/filed/job.c:466 src/filed/job.c:484 +msgid "2905 Bad RunBeforeJob command.\n" +msgstr "" + +#: src/filed/job.c:495 +msgid "2905 Bad RunBeforeNow command.\n" +msgstr "" + +#: src/filed/job.c:514 +#, c-format +msgid "Bad RunAfter command: %s\n" +msgstr "" + +#: src/filed/job.c:515 +msgid "2905 Bad RunAfterJob command.\n" +msgstr "" + +#: src/filed/job.c:549 +#, c-format +msgid "Bad RunScript command: %s\n" +msgstr "" + +#: src/filed/job.c:550 +msgid "2905 Bad RunScript command.\n" +msgstr "" + +#: src/filed/job.c:652 +#, c-format +msgid "Error running program: %s. stat=%d: ERR=%s\n" +msgstr "" + +#: src/filed/job.c:662 +#, c-format +msgid "Cannot open FileSet input file: %s. ERR=%s\n" +msgstr "" + +#: src/filed/job.c:758 +#, c-format +msgid "REGEX %s compile error. ERR=%s\n" +msgstr "" + +#: src/filed/job.c:820 +#, c-format +msgid "Invalid FileSet command: %s\n" +msgstr "" + +#: src/filed/job.c:1054 src/findlib/match.c:199 src/tools/testfind.c:635 +#, c-format +msgid "Unknown include/exclude option: %c\n" +msgstr "" + +#: src/filed/job.c:1123 src/stored/fd_cmds.c:355 +#, c-format +msgid "Could not create bootstrap file %s: ERR=%s\n" +msgstr "" + +#: src/filed/job.c:1232 +#, c-format +msgid "DIR and FD clocks differ by %d seconds, FD automatically adjusting.\n" +msgstr "" + +#: src/filed/job.c:1240 +#, c-format +msgid "Unknown backup level: %s\n" +msgstr "" + +#: src/filed/job.c:1252 +#, c-format +msgid "Bad level command: %s\n" +msgstr "" + +#: src/filed/job.c:1273 +#, c-format +msgid "Bad session command: %s" +msgstr "" + +#: src/filed/job.c:1294 +#, c-format +msgid "Bad storage command: %s" +msgstr "" + +#: src/filed/job.c:1303 +#, c-format +msgid "Failed to connect to Storage daemon: %s:%d\n" +msgstr "" + +#: src/filed/job.c:1315 +msgid "Failed to authenticate Storage daemon.\n" +msgstr "" + +#: src/filed/job.c:1353 +msgid "Cannot contact Storage daemon\n" +msgstr "" + +#: src/filed/job.c:1371 +#, c-format +msgid "Bad response to append open: %s\n" +msgstr "" + +#: src/filed/job.c:1376 +msgid "Bad response from stored to open command\n" +msgstr "" + +#: src/filed/job.c:1403 +#, c-format +msgid "Generate VSS snapshots. Driver=\"%s\", Drive(s)=\"%s\"\n" +msgstr "" + +#: src/filed/job.c:1405 +msgid "Generate VSS snapshots failed.\n" +msgstr "" + +#: src/filed/job.c:1412 +#, c-format +msgid "" +"Generate VSS snapshot of drive \"%c:\\\" failed. VSS support is disabled on " +"this drive.\n" +msgstr "" + +#: src/filed/job.c:1419 +#, c-format +msgid "VSS Writer (PrepareForBackup): %s\n" +msgstr "" + +#: src/filed/job.c:1424 +msgid "No drive letters found for generating VSS snapshots.\n" +msgstr "" + +#: src/filed/job.c:1428 +#, c-format +msgid "VSS was not initialized properly. VSS support is disabled. ERR=%s\n" +msgstr "" + +#: src/filed/job.c:1478 +msgid "Append Close with SD failed.\n" +msgstr "" + +#: src/filed/job.c:1482 +#, c-format +msgid "Bad status %d returned from Storage Daemon.\n" +msgstr "" + +#: src/filed/job.c:1500 +#, c-format +msgid "VSS Writer (BackupComplete): %s\n" +msgstr "" + +#: src/filed/job.c:1528 +#, c-format +msgid "2994 Bad verify command: %s\n" +msgstr "" + +#: src/filed/job.c:1543 src/filed/job.c:1582 +#, c-format +msgid "2994 Bad verify level: %s\n" +msgstr "" + +#: src/filed/job.c:1626 +#, c-format +msgid "Bad replace command. CMD=%s\n" +msgstr "" + +#: src/filed/job.c:1644 +#, c-format +msgid "Bad where regexp. where=%s\n" +msgstr "" + +#: src/filed/job.c:1718 +msgid "Improper calling sequence.\n" +msgstr "" + +#: src/filed/job.c:1738 +#, c-format +msgid "Bad response to SD read open: %s\n" +msgstr "" + +#: src/filed/job.c:1743 +msgid "Bad response from stored to read open command\n" +msgstr "" + +#: src/filed/job.c:1807 +#, c-format +msgid "Comm error with SD. bad response to %s. ERR=%s\n" +msgstr "" + +#: src/filed/job.c:1810 +#, c-format +msgid "Bad response to %s command. Wanted %s, got %s\n" +msgstr "" + +#: src/filed/pythonfd.c:157 src/stored/pythonsd.c:162 +#, c-format +msgid "Cannot delete attribute %s" +msgstr "" + +#: src/filed/pythonfd.c:175 src/filed/pythonfd.c:191 src/stored/pythonsd.c:195 +#, c-format +msgid "Cannot find attribute %s" +msgstr "" + +#: src/filed/restore.c:133 +#, c-format +msgid "Size of data or stream of %s not correct. Original %s, restored %s.\n" +msgstr "" + +#: src/filed/restore.c:255 src/filed/verify_vol.c:99 +#, c-format +msgid "Record header scan error: %s\n" +msgstr "" + +#: src/filed/restore.c:263 src/filed/verify_vol.c:108 +#, c-format +msgid "Data record error. ERR=%s\n" +msgstr "" + +#: src/filed/restore.c:267 src/filed/verify_vol.c:112 +#, c-format +msgid "Actual data size %d not same as header %d\n" +msgstr "" + +#: src/filed/restore.c:294 src/filed/restore.c:639 +msgid "Logic error: output file should be open\n" +msgstr "" + +#: src/filed/restore.c:315 src/filed/restore.c:652 +msgid "Logic error: output file should not be open\n" +msgstr "" + +#: src/filed/restore.c:326 src/filed/verify_vol.c:151 +#: src/stored/bextract.c:302 src/stored/bls.c:383 src/stored/bscan.c:663 +#, c-format +msgid "Record header file index %ld not equal record index %ld\n" +msgstr "" + +#: src/filed/restore.c:339 src/stored/bextract.c:311 +#, c-format +msgid "%s stream not supported on this Client.\n" +msgstr "" + +#: src/filed/restore.c:391 +msgid "Unexpected cryptographic session data stream.\n" +msgstr "" + +#: src/filed/restore.c:399 +msgid "" +"No private decryption keys have been defined to decrypt encrypted backup " +"data.\n" +msgstr "" + +#: src/filed/restore.c:410 +msgid "Could not create digest.\n" +msgstr "" + +#: src/filed/restore.c:424 +msgid "Missing private key required to decrypt encrypted backup data.\n" +msgstr "" + +#: src/filed/restore.c:427 +msgid "Decrypt of the session key failed.\n" +msgstr "" + +#: src/filed/restore.c:431 +#, c-format +msgid "An error occurred while decoding encrypted session data stream: %s\n" +msgstr "" + +#: src/filed/restore.c:480 src/filed/restore.c:526 +#, c-format +msgid "Missing encryption session data stream for %s\n" +msgstr "" + +#: src/filed/restore.c:488 src/filed/restore.c:533 +#, c-format +msgid "Failed to initialize decryption context for %s\n" +msgstr "" + +#: src/filed/restore.c:545 +#, c-format +msgid " Cannot open resource fork for %s.\n" +msgstr "" + +#: src/filed/restore.c:571 +#, c-format +msgid " Invalid length of Finder Info (got %d, not 32)\n" +msgstr "" + +#: src/filed/restore.c:575 +#, c-format +msgid " Could not set Finder Info on %s\n" +msgstr "" + +#: src/filed/restore.c:588 +#, c-format +msgid "Can't restore ACL of %s\n" +msgstr "" + +#: src/filed/restore.c:600 +#, c-format +msgid "Can't restore default ACL of %s\n" +msgstr "" + +#: src/filed/restore.c:610 +msgid "Unexpected cryptographic signature data stream.\n" +msgstr "" + +#: src/filed/restore.c:616 +#, c-format +msgid "Failed to decode message signature for %s\n" +msgstr "" + +#: src/filed/restore.c:655 src/stored/bextract.c:469 +#, c-format +msgid "Unknown stream=%d ignored. This shouldn't happen!\n" +msgstr "" + +#: src/filed/restore.c:732 +#, c-format +msgid "" +"%d non-supported data streams and %d non-supported attrib streams ignored.\n" +msgstr "" + +#: src/filed/restore.c:736 +#, c-format +msgid "%d non-supported resource fork streams ignored.\n" +msgstr "" + +#: src/filed/restore.c:739 +#, c-format +msgid "%d non-supported Finder Info streams ignored.\n" +msgstr "" + +#: src/filed/restore.c:742 +#, c-format +msgid "%d non-supported acl streams ignored.\n" +msgstr "" + +#: src/filed/restore.c:745 +#, c-format +msgid "%d non-supported crypto streams ignored.\n" +msgstr "" + +#: src/filed/restore.c:757 +msgid "None" +msgstr "" + +#: src/filed/restore.c:761 +msgid "Zlib errno" +msgstr "" + +#: src/filed/restore.c:763 +msgid "Zlib stream error" +msgstr "" + +#: src/filed/restore.c:765 +msgid "Zlib data error" +msgstr "" + +#: src/filed/restore.c:767 +msgid "Zlib memory error" +msgstr "" + +#: src/filed/restore.c:769 +msgid "Zlib buffer error" +msgstr "" + +#: src/filed/restore.c:771 +msgid "Zlib version error" +msgstr "" + +#: src/filed/restore.c:773 src/lib/util.c:591 src/lib/util.c:601 +#: src/lib/util.c:609 src/lib/util.c:616 src/lib/util.c:623 src/lib/util.c:637 +#: src/lib/util.c:647 src/lib/util.c:654 src/lib/util.c:665 +msgid "*none*" +msgstr "" + +#: src/filed/restore.c:809 +#, c-format +msgid "Missing cryptographic signature for %s\n" +msgstr "" + +#: src/filed/restore.c:838 src/filed/restore.c:862 +#, c-format +msgid "Signature validation failed for file %s: ERR=%s\n" +msgstr "" + +#: src/filed/restore.c:852 +#, c-format +msgid "Digest one file failed for file: %s\n" +msgstr "" + +#: src/filed/restore.c:883 +#, c-format +msgid "Signature validation failed for %s: %s\n" +msgstr "" + +#: src/filed/restore.c:909 src/stored/bextract.c:400 +#, c-format +msgid "Seek to %s error on %s: ERR=%s\n" +msgstr "" + +#: src/filed/restore.c:936 +#, c-format +msgid "Uncompression error on file %s. ERR=%s\n" +msgstr "" + +#: src/filed/restore.c:945 src/stored/bextract.c:434 +msgid "GZIP data stream found, but GZIP not configured!\n" +msgstr "" + +#: src/filed/restore.c:968 +#, c-format +msgid "Write error in Win32 Block Decomposition on %s: %s\n" +msgstr "" + +#: src/filed/restore.c:974 src/stored/bextract.c:372 src/stored/bextract.c:422 +#, c-format +msgid "Write error on %s: %s\n" +msgstr "" + +#: src/filed/restore.c:1023 +msgid "Decryption error\n" +msgstr "" + +#: src/filed/restore.c:1113 +#, c-format +msgid "Decryption error. buf_len=%d decrypt_len=%d on file %s\n" +msgstr "" + +#: src/filed/restore.c:1217 +msgid "Open File Manager paused\n" +msgstr "" + +#: src/filed/restore.c:1221 +msgid "FAILED to pause Open File Manager\n" +msgstr "" + +#: src/filed/restore.c:1229 +#, c-format +msgid "Running as '%s'. Privmask=%#08x\n" +msgstr "" + +#: src/filed/restore.c:1231 +msgid "Failed to retrieve current UserName\n" +msgstr "" + +#: src/filed/status.c:77 +#, c-format +msgid "%s Version: %s (%s) %s %s %s %s\n" +msgstr "" + +#: src/filed/status.c:81 src/stored/status.c:86 +#, c-format +msgid "Daemon started %s, %d Job%s run since started.\n" +msgstr "" + +#: src/filed/status.c:136 +#, c-format +msgid " Sizeof: boffset_t=%d size_t=%d debug=%d trace=%d\n" +msgstr "" + +#: src/filed/status.c:155 +#, c-format +msgid "Director connected at: %s\n" +msgstr "" + +#: src/filed/status.c:157 +#, c-format +msgid "JobId %d Job %s is running.\n" +msgstr "" + +#: src/filed/status.c:160 +#, c-format +msgid " %s%s Job started: %s\n" +msgstr "" + +#: src/filed/status.c:172 +#, c-format +msgid " Files=%s Bytes=%s Bytes/sec=%s Errors=%d\n" +msgstr "" + +#: src/filed/status.c:178 +#, c-format +msgid " Files Examined=%s\n" +msgstr "" + +#: src/filed/status.c:183 +#, c-format +msgid " Processing file: %s\n" +msgstr "" + +#: src/filed/status.c:194 +msgid " SDSocket closed.\n" +msgstr "" + +#: src/filed/status.c:328 src/filed/status.c:352 src/stored/status.c:636 +#: src/stored/status.c:659 +#, c-format +msgid "Bad .status command: %s\n" +msgstr "" + +#: src/filed/status.c:329 +msgid "2900 Bad .status command, missing argument.\n" +msgstr "" + +#: src/filed/status.c:353 +msgid "2900 Bad .status command, wrong argument.\n" +msgstr "" + +#: src/filed/status.c:390 src/stored/status.c:577 +msgid "Init Catalog" +msgstr "" + +#: src/filed/status.c:393 src/stored/status.c:580 +msgid "Volume to Catalog" +msgstr "" + +#: src/filed/status.c:396 src/stored/status.c:583 +msgid "Disk to Catalog" +msgstr "" + +#: src/filed/status.c:399 src/stored/status.c:586 +msgid "Data" +msgstr "" + +#: src/filed/status.c:405 src/lib/util.c:361 src/stored/status.c:592 +msgid "Unknown Job Level" +msgstr "" + +#: src/filed/status.c:421 +msgid "Bacula Client: Idle" +msgstr "" + +#: src/filed/status.c:432 +msgid "Bacula Client: Running" +msgstr "" + +#: src/filed/status.c:446 +msgid "Bacula Client: Last Job Canceled" +msgstr "" + +#: src/filed/status.c:450 +msgid "Bacula Client: Last Job Failed" +msgstr "" + +#: src/filed/status.c:454 +msgid "Bacula Client: Last Job had Warnings" +msgstr "" + +#: src/filed/verify.c:53 +#, c-format +msgid "Cannot malloc %d network read buffer\n" +msgstr "" + +#: src/filed/verify.c:146 +#, c-format +msgid " Archive file skipped: %s\n" +msgstr "" + +#: src/filed/verify.c:149 +#, c-format +msgid " Recursion turned off. Directory skipped: %s\n" +msgstr "" + +#: src/filed/verify.c:153 +#, c-format +msgid " File system change prohibited. Directory skipped: %s\n" +msgstr "" + +#: src/filed/verify.c:163 +#, c-format +msgid " Unknown file type %d: %s\n" +msgstr "" + +#: src/filed/verify.c:206 src/filed/verify_vol.c:209 +#, c-format +msgid "Network error in send to Director: ERR=%s\n" +msgstr "" + +#: src/filed/verify.c:352 +#, c-format +msgid "Error reading file %s: ERR=%s\n" +msgstr "" + +#: src/filed/verify_vol.c:65 +msgid "Storage command not issued before Verify.\n" +msgstr "" + +#: src/filed/verify_vol.c:145 +#, c-format +msgid "Error scanning record header: %s\n" +msgstr "" + +#: src/findlib/attribs.c:408 +#, c-format +msgid "File size of restored file %s not correct. Original %s, restored %s.\n" +msgstr "" + +#: src/findlib/attribs.c:434 src/findlib/attribs.c:441 +#, c-format +msgid "Unable to set file owner %s: ERR=%s\n" +msgstr "" + +#: src/findlib/attribs.c:447 +#, c-format +msgid "Unable to set file modes %s: ERR=%s\n" +msgstr "" + +#: src/findlib/attribs.c:457 +#, c-format +msgid "Unable to set file times %s: ERR=%s\n" +msgstr "" + +#: src/findlib/attribs.c:471 +#, c-format +msgid "Unable to set file flags %s: ERR=%s\n" +msgstr "" + +#: src/findlib/attribs.c:714 +#, c-format +msgid "Error in %s file %s: ERR=%s\n" +msgstr "" + +#: src/findlib/attribs.c:731 +#, c-format +msgid "Error in %s: ERR=%s\n" +msgstr "" + +#: src/findlib/bfile.c:82 +msgid "Unix attributes" +msgstr "" + +#: src/findlib/bfile.c:84 +msgid "File data" +msgstr "" + +#: src/findlib/bfile.c:86 +msgid "MD5 digest" +msgstr "" + +#: src/findlib/bfile.c:88 +msgid "GZIP data" +msgstr "" + +#: src/findlib/bfile.c:90 +msgid "Extended attributes" +msgstr "" + +#: src/findlib/bfile.c:92 +msgid "Sparse data" +msgstr "" + +#: src/findlib/bfile.c:94 +msgid "GZIP sparse data" +msgstr "" + +#: src/findlib/bfile.c:96 +msgid "Program names" +msgstr "" + +#: src/findlib/bfile.c:98 +msgid "Program data" +msgstr "" + +#: src/findlib/bfile.c:100 +msgid "SHA1 digest" +msgstr "" + +#: src/findlib/bfile.c:102 +msgid "Win32 data" +msgstr "" + +#: src/findlib/bfile.c:104 +msgid "Win32 GZIP data" +msgstr "" + +#: src/findlib/bfile.c:106 +msgid "MacOS Fork data" +msgstr "" + +#: src/findlib/bfile.c:108 +msgid "HFS+ attribs" +msgstr "" + +#: src/findlib/bfile.c:110 +msgid "Standard Unix ACL attribs" +msgstr "" + +#: src/findlib/bfile.c:112 +msgid "Default Unix ACL attribs" +msgstr "" + +#: src/findlib/bfile.c:114 +msgid "SHA256 digest" +msgstr "" + +#: src/findlib/bfile.c:116 +msgid "SHA512 digest" +msgstr "" + +#: src/findlib/bfile.c:118 +msgid "Signed digest" +msgstr "" + +#: src/findlib/bfile.c:120 +msgid "Encrypted File data" +msgstr "" + +#: src/findlib/bfile.c:122 +msgid "Encrypted Win32 data" +msgstr "" + +#: src/findlib/bfile.c:124 +msgid "Encrypted session data" +msgstr "" + +#: src/findlib/bfile.c:126 +msgid "Encrypted GZIP data" +msgstr "" + +#: src/findlib/bfile.c:128 +msgid "Encrypted Win32 GZIP data" +msgstr "" + +#: src/findlib/bfile.c:130 +msgid "Encrypted MacOS fork data" +msgstr "" + +#: src/findlib/create_file.c:123 +#, c-format +msgid "File skipped. Not newer: %s\n" +msgstr "" + +#: src/findlib/create_file.c:130 +#, c-format +msgid "File skipped. Not older: %s\n" +msgstr "" + +#: src/findlib/create_file.c:136 +#, c-format +msgid "File skipped. Already exists: %s\n" +msgstr "" + +#: src/findlib/create_file.c:162 +#, c-format +msgid "File %s already exists and could not be replaced. ERR=%s.\n" +msgstr "" + +#: src/findlib/create_file.c:214 src/findlib/create_file.c:277 +#: src/findlib/create_file.c:370 +#, c-format +msgid "bpkt already open fid=%d\n" +msgstr "" + +#: src/findlib/create_file.c:222 +#, c-format +msgid "Could not create %s: ERR=%s\n" +msgstr "" + +#: src/findlib/create_file.c:236 +#, c-format +msgid "Cannot make fifo %s: ERR=%s\n" +msgstr "" + +#: src/findlib/create_file.c:254 +#, c-format +msgid "Cannot make node %s: ERR=%s\n" +msgstr "" + +#: src/findlib/create_file.c:299 +#, c-format +msgid "Could not symlink %s -> %s: ERR=%s\n" +msgstr "" + +#: src/findlib/create_file.c:324 src/findlib/create_file.c:335 +#, c-format +msgid "Could not restore file flags for file %s: ERR=%s\n" +msgstr "" + +#: src/findlib/create_file.c:328 src/findlib/create_file.c:343 +#, c-format +msgid "Could not hard link %s -> %s: ERR=%s\n" +msgstr "" + +#: src/findlib/create_file.c:339 +#, c-format +msgid "Could not reset file flags for file %s: ERR=%s\n" +msgstr "" + +#: src/findlib/create_file.c:402 +#, c-format +msgid "Original file %s not saved: type=%d\n" +msgstr "" + +#: src/findlib/create_file.c:405 +#, c-format +msgid "Unknown file type %d; not restored: %s\n" +msgstr "" + +#: src/findlib/create_file.c:449 +#, c-format +msgid "Zero length filename: %s\n" +msgstr "" + +#: src/findlib/enable_priv.c:92 +msgid "AdjustTokenPrivileges set " +msgstr "" + +#: src/findlib/find_one.c:228 +#, c-format +msgid "Cannot stat file %s: ERR=%s\n" +msgstr "" + +#: src/findlib/find_one.c:234 +#, c-format +msgid "%s mtime changed during backup.\n" +msgstr "" + +#: src/findlib/find_one.c:240 +#, c-format +msgid "%s ctime changed during backup.\n" +msgstr "" + +#: src/findlib/find_one.c:246 src/findlib/find_one.c:253 +#, c-format +msgid "%s size changed during backup.\n" +msgstr "" + +#: src/findlib/find_one.c:310 +#, c-format +msgid "Top level directory \"%s\" has unlisted fstype \"%s\"\n" +msgstr "" + +#: src/findlib/find_one.c:325 +#, c-format +msgid "Top level directory \"%s\" has an unlisted drive type \"%s\"\n" +msgstr "" + +#: src/findlib/makepath.c:116 +#, c-format +msgid "Cannot create directory %s: ERR=%s\n" +msgstr "" + +#: src/findlib/makepath.c:120 src/findlib/makepath.c:398 +#, c-format +msgid "%s exists but is not a directory\n" +msgstr "" + +#: src/findlib/makepath.c:229 +#, c-format +msgid "%c: is not a valid drive\n" +msgstr "" + +#: src/findlib/makepath.c:296 src/findlib/makepath.c:357 +#: src/findlib/makepath.c:417 +#, c-format +msgid "Cannot change owner and/or group of %s: ERR=%s\n" +msgstr "" + +#: src/findlib/makepath.c:317 +#, c-format +msgid "Cannot chdir to directory, %s: ERR=%s\n" +msgstr "" + +#: src/findlib/makepath.c:372 src/findlib/makepath.c:388 +#: src/findlib/makepath.c:422 +#, c-format +msgid "Cannot change permissions of %s: ERR=%s\n" +msgstr "" + +#: src/findlib/save-cwd.c:48 +#, c-format +msgid "Cannot open current directory: %s\n" +msgstr "" + +#: src/findlib/save-cwd.c:62 +#, c-format +msgid "Current directory: %s\n" +msgstr "" + +#: src/findlib/save-cwd.c:84 +#, c-format +msgid "Cannot get current directory: %s\n" +msgstr "" + +#: src/findlib/save-cwd.c:105 +#, c-format +msgid "Cannot return to %s from %s: %s\n" +msgstr "" + +#: src/findlib/save-cwd.c:109 +#, c-format +msgid "Cannot return to saved working directory from %s: %s\n" +msgstr "" + +#: src/findlib/save-cwd.c:115 +#, c-format +msgid "Cannot return to %s: %s\n" +msgstr "" + +#: src/findlib/save-cwd.c:119 +#, c-format +msgid "Cannot return to saved working directory: %s\n" +msgstr "" + +#: src/gnome2-console/authenticate.c:87 +#, c-format +msgid "%s: Director authorization problem.\n" +msgstr "" + +#: src/gnome2-console/authenticate.c:88 +msgid "Director authorization problem.\n" +msgstr "" + +#: src/gnome2-console/authenticate.c:90 +msgid "" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" + +#: src/gnome2-console/authenticate.c:100 +#, c-format +msgid "%s: Bad response to Hello command: ERR=%s\n" +msgstr "" + +#: src/gnome2-console/authenticate.c:102 +msgid "The Director is probably not running.\n" +msgstr "" + +#: src/gnome2-console/console.c:102 +#, c-format +msgid "" +"\n" +"Version: %s (%s) %s %s %s\n" +"\n" +"Usage: bgnome-console [-s] [-c config_file] [-d debug_level] [config_file]\n" +" -c set configuration file to file\n" +" -dnn set debug level to nn\n" +" -s no signals\n" +" -t test - read configuration and exit\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/gnome2-console/console.c:234 +#, c-format +msgid "Pthread cond init error = %s\n" +msgstr "" + +#: src/gnome2-console/console.c:379 +msgid " Not Connected" +msgstr "" + +#: src/gnome2-console/console.c:500 +#, c-format +msgid " Connecting to Director %s:%d" +msgstr "" + +#: src/gnome2-console/console.c:501 +#, c-format +msgid "" +"Connecting to Director %s:%d\n" +"\n" +msgstr "" + +#: src/gnome2-console/console.c:516 src/wx-console/console_thread.cpp:381 +#, c-format +msgid "Passphrase for Console \"%s\" TLS private key: " +msgstr "" + +#: src/gnome2-console/console.c:538 src/wx-console/console_thread.cpp:402 +#, c-format +msgid "Passphrase for Director \"%s\" TLS private key: " +msgstr "" + +#: src/gnome2-console/console.c:557 src/tray-monitor/tray-monitor.c:907 +#: src/wx-console/console_thread.cpp:420 +msgid "Director daemon" +msgstr "" + +#: src/gnome2-console/console.c:569 +msgid " Initializing ..." +msgstr "" + +#: src/gnome2-console/console.c:605 +msgid " Connected" +msgstr "" + +#: src/gnome2-console/console.c:613 +msgid " Processing command ..." +msgstr "" + +#: src/gnome2-console/console.c:648 +msgid " At prompt waiting for input ..." +msgstr "" + +#: src/gnome2-console/console.c:768 +msgid " Ready" +msgstr "" + +#: src/gnome2-console/console_conf.c:147 +#, c-format +msgid "Console: name=%s\n" +msgstr "" + +#: src/gnome2-console/console_conf.c:150 src/tray-monitor/tray_conf.c:195 +#, c-format +msgid "ConsoleFont: name=%s font face=%s\n" +msgstr "" + +#: src/gnome2-console/interface.c:202 +msgid "Bacula Console" +msgstr "" + +#: src/gnome2-console/interface.c:235 src/wx-console/wxbmainframe.cpp:248 +#: src/wx-console/wxbmainframe.cpp:619 +msgid "Connect" +msgstr "" + +#: src/gnome2-console/interface.c:238 +msgid "Connect to Director" +msgstr "" + +#: src/gnome2-console/interface.c:242 +msgid "Run" +msgstr "" + +#: src/gnome2-console/interface.c:245 src/gnome2-console/interface.c:682 +#: src/gnome2-console/interface.c:696 +msgid "Run a Job" +msgstr "" + +#: src/gnome2-console/interface.c:249 +msgid "Dir Status" +msgstr "" + +#: src/gnome2-console/interface.c:255 src/lib/util.c:293 +#: src/wx-console/wxbrestorepanel.cpp:404 +#: src/wx-console/wxbrestorepanel.cpp:1974 +msgid "Restore" +msgstr "" + +#: src/gnome2-console/interface.c:261 +msgid "Label" +msgstr "" + +#: src/gnome2-console/interface.c:267 +msgid "Msgs" +msgstr "" + +#: src/gnome2-console/interface.c:270 +msgid "Display Messages" +msgstr "" + +#: src/gnome2-console/interface.c:294 +msgid " Command: " +msgstr "" + +#: src/gnome2-console/interface.c:303 +msgid "Enter Commands Here" +msgstr "" + +#: src/gnome2-console/interface.c:314 +msgid " Status: " +msgstr "" + +#: src/gnome2-console/interface.c:323 src/gnome2-console/interface.c:1709 +msgid " " +msgstr "" + +#: src/gnome2-console/interface.c:424 +msgid "About Bacula Console" +msgstr "" + +#: src/gnome2-console/interface.c:439 +msgid "Bacula Console\n" +msgstr "" + +#: src/gnome2-console/interface.c:448 +msgid "Copyright (c) 2000 - 2004, Kern Sibbald and John Walker" +msgstr "" + +#: src/gnome2-console/interface.c:453 +msgid "Authors: Kern Sibbald and John Walker" +msgstr "" + +#: src/gnome2-console/interface.c:458 +msgid "It comes by night and sucks the essence from your computers" +msgstr "" + +#: src/gnome2-console/interface.c:523 src/gnome2-console/interface.c:540 +msgid "Select Director" +msgstr "" + +#: src/gnome2-console/interface.c:570 +msgid " " +msgstr "" + +#: src/gnome2-console/interface.c:715 src/gnome2-console/interface.c:1631 +msgid "Job:" +msgstr "" + +#: src/gnome2-console/interface.c:736 +msgid " Type:" +msgstr "" + +#: src/gnome2-console/interface.c:756 src/gnome2-console/interface.c:785 +#: src/gnome2-console/interface.c:1284 src/gnome2-console/interface.c:1680 +msgid " " +msgstr "" + +#: src/gnome2-console/interface.c:765 src/gnome2-console/interface.c:1660 +#: src/wx-console/wxbrestorepanel.cpp:1886 +msgid "Client:" +msgstr "" + +#: src/gnome2-console/interface.c:795 src/gnome2-console/interface.c:1689 +msgid "FileSet: " +msgstr "" + +#: src/gnome2-console/interface.c:820 src/wx-console/wxbrestorepanel.cpp:1893 +msgid "Priority:" +msgstr "" + +#: src/gnome2-console/interface.c:836 +msgid "Level:" +msgstr "" + +#: src/gnome2-console/interface.c:857 +msgid " " +msgstr "" + +#: src/gnome2-console/interface.c:867 src/gnome2-console/interface.c:1433 +#: src/gnome2-console/interface.c:1718 +msgid "Pool:" +msgstr "" + +#: src/gnome2-console/interface.c:888 src/gnome2-console/interface.c:919 +#: src/gnome2-console/interface.c:949 src/gnome2-console/interface.c:969 +#: src/gnome2-console/interface.c:989 src/gnome2-console/interface.c:1009 +#: src/gnome2-console/interface.c:1014 src/gnome2-console/interface.c:1483 +#: src/gnome2-console/interface.c:1739 src/gnome2-console/interface.c:1769 +#: src/gnome2-console/interface.c:1788 src/gnome2-console/interface.c:1793 +msgid " " +msgstr "" + +#: src/gnome2-console/interface.c:898 src/gnome2-console/interface.c:1407 +#: src/gnome2-console/interface.c:1748 src/wx-console/wxbrestorepanel.cpp:1888 +msgid "Storage:" +msgstr "" + +#: src/gnome2-console/interface.c:929 +msgid "Messages:" +msgstr "" + +#: src/gnome2-console/interface.c:959 +msgid "Where: " +msgstr "" + +#: src/gnome2-console/interface.c:979 src/wx-console/wxbrestorepanel.cpp:1890 +msgid "When:" +msgstr "" + +#: src/gnome2-console/interface.c:999 src/wx-console/wxbrestorepanel.cpp:1871 +msgid "Bootstrap:" +msgstr "" + +#: src/gnome2-console/interface.c:1194 +msgid "Restore File Selection" +msgstr "" + +#: src/gnome2-console/interface.c:1238 +msgid "Current dir:" +msgstr "" + +#: src/gnome2-console/interface.c:1265 +msgid "Files Selected: " +msgstr "" + +#: src/gnome2-console/interface.c:1385 src/gnome2-console/interface.c:1396 +msgid "Label a Volume" +msgstr "" + +#: src/gnome2-console/interface.c:1458 +msgid "Volume Name:" +msgstr "" + +#: src/gnome2-console/interface.c:1472 +msgid "Slot:" +msgstr "" + +#: src/gnome2-console/interface.c:1598 +msgid "Restore Files Dialog" +msgstr "" + +#: src/gnome2-console/interface.c:1613 +msgid "Restore Files" +msgstr "" + +#: src/gnome2-console/interface.c:1778 +msgid "Before:" +msgstr "" + +#: src/gnome2-console/interface.c:1824 +msgid "Select Files" +msgstr "" + +#: src/gnome2-console/interface.c:1907 +msgid "Progress" +msgstr "" + +#: src/gnome2-console/restore.c:149 +msgid "Mark" +msgstr "" + +#: src/gnome2-console/restore.c:149 +msgid "File" +msgstr "" + +#: src/gnome2-console/restore.c:149 +msgid "Mode" +msgstr "" + +#: src/gnome2-console/restore.c:149 src/wx-console/wxbrestorepanel.cpp:306 +msgid "User" +msgstr "" + +#: src/gnome2-console/restore.c:149 src/wx-console/wxbrestorepanel.cpp:310 +msgid "Group" +msgstr "" + +#: src/gnome2-console/restore.c:149 src/wx-console/wxbrestorepanel.cpp:294 +msgid "Size" +msgstr "" + +#: src/gnome2-console/restore.c:149 src/wx-console/wxbrestorepanel.cpp:298 +msgid "Date" +msgstr "" + +#: src/gnome2-console/support.c:60 src/gnome2-console/support.c:85 +#, c-format +msgid "Couldn't find pixmap file: %s" +msgstr "" + +#: src/lib/address_conf.c:63 +#, c-format +msgid "Only ipv4 and ipv6 are supported (%d)\n" +msgstr "" + +#: src/lib/address_conf.c:67 +#, c-format +msgid "Only ipv4 is supported (%d)\n" +msgstr "" + +#: src/lib/address_conf.c:176 +#, c-format +msgid "It was tried to assign a ipv6 address to a ipv4(%d)\n" +msgstr "" + +#: src/lib/address_conf.c:185 +#, c-format +msgid "It was tried to assign a ipv4 address to a ipv6(%d)\n" +msgstr "" + +#: src/lib/address_conf.c:264 +#, c-format +msgid "Can't add default address (%s)\n" +msgstr "" + +#: src/lib/address_conf.c:293 +msgid "the old style addresses cannot be mixed with new style" +msgstr "" + +#: src/lib/address_conf.c:314 +#, c-format +msgid "can't resolve service(%s)" +msgstr "" + +#: src/lib/address_conf.c:323 +#, c-format +msgid "can't resolve hostname(%s) %s" +msgstr "" + +#: src/lib/address_conf.c:413 src/lib/address_conf.c:444 +#, c-format +msgid "Expected a block begin { , got: %s" +msgstr "" + +#: src/lib/address_conf.c:418 +msgid "Empty addr block is not allowed" +msgstr "" + +#: src/lib/address_conf.c:422 +#, c-format +msgid "Expected a string, got: %s" +msgstr "" + +#: src/lib/address_conf.c:431 +#, c-format +msgid "Expected a string [ip|ipv4|ipv6], got: %s" +msgstr "" + +#: src/lib/address_conf.c:435 +#, c-format +msgid "Expected a string [ip|ipv4], got: %s" +msgstr "" + +#: src/lib/address_conf.c:440 src/lib/address_conf.c:470 +#, c-format +msgid "Expected a equal =, got: %s" +msgstr "" + +#: src/lib/address_conf.c:451 src/lib/address_conf.c:466 +#, c-format +msgid "Expected a identifier [addr|port], got: %s" +msgstr "" + +#: src/lib/address_conf.c:456 +msgid "Only one port per address block" +msgstr "" + +#: src/lib/address_conf.c:462 +msgid "Only one addr per address block" +msgstr "" + +#: src/lib/address_conf.c:478 +#, c-format +msgid "Expected a number or a string, got: %s" +msgstr "" + +#: src/lib/address_conf.c:484 src/lib/address_conf.c:517 +#, c-format +msgid "Expected an IP number or a hostname, got: %s" +msgstr "" + +#: src/lib/address_conf.c:490 +msgid "State machine missmatch" +msgstr "" + +#: src/lib/address_conf.c:496 src/lib/address_conf.c:508 +#, c-format +msgid "Expected a end of block }, got: %s" +msgstr "" + +#: src/lib/address_conf.c:502 +#, c-format +msgid "Can't add hostname(%s) and port(%s) to addrlist (%s)" +msgstr "" + +#: src/lib/address_conf.c:522 src/lib/address_conf.c:536 +#, c-format +msgid "can't add port (%s) to (%s)" +msgstr "" + +#: src/lib/address_conf.c:531 +#, c-format +msgid "Expected a port number or string, got: %s" +msgstr "" + +#: src/lib/attr.c:76 +#, c-format +msgid "Error scanning attributes: %s\n" +msgstr "" + +#: src/lib/berrno.c:62 +msgid "Child exited normally." +msgstr "" + +#: src/lib/berrno.c:69 +msgid "Unknown error during program execvp" +msgstr "" + +#: src/lib/berrno.c:72 +#, c-format +msgid "Child exited with code %d" +msgstr "" + +#: src/lib/berrno.c:80 +#, c-format +msgid "Child died from signal %d: %s" +msgstr "" + +#: src/lib/berrno.c:86 +msgid "Invalid errno. No error message possible." +msgstr "" + +#: src/lib/bget_msg.c:99 +msgid "Status OK\n" +msgstr "" + +#: src/lib/bget_msg.c:103 +#, c-format +msgid "bget_msg: unknown signal %d\n" +msgstr "" + +#: src/lib/bnet.c:118 +#, c-format +msgid "Attr spool write error. ERR=%s\n" +msgstr "" + +#: src/lib/bnet.c:244 src/lib/bnet.c:283 +msgid "TLS connection initialization failed.\n" +msgstr "" + +#: src/lib/bnet.c:252 +msgid "TLS Negotiation failed.\n" +msgstr "" + +#: src/lib/bnet.c:258 src/lib/bnet.c:298 +msgid "" +"TLS certificate verification failed. Peer certificate did not match a " +"required commonName\n" +msgstr "" + +#: src/lib/bnet.c:305 +#, c-format +msgid "" +"TLS host certificate verification failed. Host %s did not match presented " +"certificate\n" +msgstr "" + +#: src/lib/bnet.c:322 +msgid "TLS enabled but not configured.\n" +msgstr "" + +#: src/lib/bnet.c:328 +msgid "TLS enable but not configured.\n" +msgstr "" + +#: src/lib/bnet.c:386 +msgid "No problem." +msgstr "" + +#: src/lib/bnet.c:389 +msgid "Authoritative answer for host not found." +msgstr "" + +#: src/lib/bnet.c:392 +msgid "Non-authoritative for host not found, or ServerFail." +msgstr "" + +#: src/lib/bnet.c:395 +msgid "Non-recoverable errors, FORMERR, REFUSED, or NOTIMP." +msgstr "" + +#: src/lib/bnet.c:398 +msgid "Valid name, no data record of resquested type." +msgstr "" + +#: src/lib/bnet.c:401 +msgid "Unknown error." +msgstr "" + +#: src/lib/bnet.c:655 +#, c-format +msgid "Unknown sig %d" +msgstr "" + +#: src/lib/bnet_server.c:109 +#, c-format +msgid "Cannot open stream socket. ERR=%s. Current %s All %s\n" +msgstr "" + +#: src/lib/bnet_server.c:122 src/lib/bnet_server.c:275 +#, c-format +msgid "Cannot set SO_REUSEADDR on socket: %s\n" +msgstr "" + +#: src/lib/bnet_server.c:131 +#, c-format +msgid "Cannot bind port %d: ERR=%s: Retrying ...\n" +msgstr "" + +#: src/lib/bnet_server.c:136 +#, c-format +msgid "Cannot bind port %d: ERR=%s.\n" +msgstr "" + +#: src/lib/bnet_server.c:147 +#, c-format +msgid "Could not init client queue: ERR=%s\n" +msgstr "" + +#: src/lib/bnet_server.c:166 src/lib/bnet_server.c:338 +#, c-format +msgid "Error in select: %s\n" +msgstr "" + +#: src/lib/bnet_server.c:187 src/lib/bnet_server.c:357 +#, c-format +msgid "Connection from %s:%d refused by hosts.access\n" +msgstr "" + +#: src/lib/bnet_server.c:202 src/lib/bnet_server.c:370 +#, c-format +msgid "Cannot set SO_KEEPALIVE on socket: %s\n" +msgstr "" + +#: src/lib/bnet_server.c:213 +msgid "Could not create client BSOCK.\n" +msgstr "" + +#: src/lib/bnet_server.c:220 +#, c-format +msgid "Could not add job to client queue: ERR=%s\n" +msgstr "" + +#: src/lib/bnet_server.c:237 +#, c-format +msgid "Could not destroy client queue: ERR=%s\n" +msgstr "" + +#: src/lib/bnet_server.c:265 +#, c-format +msgid "Cannot open stream socket: %s\n" +msgstr "" + +#: src/lib/bnet_server.c:295 +#, c-format +msgid "Cannot bind port %d: ERR=%s: retrying ...\n" +msgstr "" + +#: src/lib/bnet_server.c:301 +msgid "Server socket" +msgstr "" + +#: src/lib/bnet_server.c:301 src/lib/bnet_server.c:398 +msgid "client" +msgstr "" + +#: src/lib/bnet_server.c:386 +#, c-format +msgid "Socket accept error for %s. ERR=%s\n" +msgstr "" + +#: src/lib/bpipe.c:362 src/lib/bpipe.c:452 +msgid "Program killed by Bacula watchdog (timeout)\n" +msgstr "" + +#: src/lib/bsys.c:208 src/lib/bsys.c:225 src/lib/bsys.c:249 src/lib/bsys.c:262 +#, c-format +msgid "Out of memory: ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:304 +msgid "Buffer overflow.\n" +msgstr "" + +#: src/lib/bsys.c:370 +msgid "Bad errno" +msgstr "" + +#: src/lib/bsys.c:387 +msgid "Possible mutex deadlock.\n" +msgstr "" + +#: src/lib/bsys.c:391 src/lib/bsys.c:424 +#, c-format +msgid "Mutex lock failure. ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:394 +msgid "Possible mutex deadlock resolved.\n" +msgstr "" + +#: src/lib/bsys.c:407 +#, c-format +msgid "Mutex unlock not locked. ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:412 src/lib/bsys.c:434 +#, c-format +msgid "Mutex unlock failure. ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:448 +#, c-format +msgid "Memset for %d bytes at %s:%d\n" +msgstr "" + +#: src/lib/bsys.c:478 +#, c-format +msgid "Cannot open pid file. %s ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:493 +#, c-format +msgid "" +"%s is already running. pid=%d\n" +"Check file %s\n" +msgstr "" + +#: src/lib/bsys.c:507 +#, c-format +msgid "Could not open pid file. %s ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:615 +#, c-format +msgid "Could not create state file. %s ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:634 +#, c-format +msgid "Write final hdr error: ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:670 +#, c-format +msgid "Could not find userid=%s: ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:676 +#, c-format +msgid "Could not find password entry. ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:689 +#, c-format +msgid "Could not find group=%s: ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:697 +#, c-format +msgid "Could not initgroups for group=%s, userid=%s: ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:700 +#, c-format +msgid "Could not initgroups for userid=%s: ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:707 +#, c-format +msgid "Could not set group=%s: ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:713 +#, c-format +msgid "Could not set specified userid: %s\n" +msgstr "" + +#: src/lib/btimers.c:254 +msgid "stop_btimer called with NULL btimer_id\n" +msgstr "" + +#: src/lib/cram-md5.c:109 src/lib/cram-md5.c:137 +msgid "1999 Authorization failed.\n" +msgstr "" + +#: src/lib/crypto.c:435 +msgid "Unable to open certificate file" +msgstr "" + +#: src/lib/crypto.c:442 +msgid "Unable to read certificate from file" +msgstr "" + +#: src/lib/crypto.c:448 +msgid "Unable to extract public key from certificate" +msgstr "" + +#: src/lib/crypto.c:455 +msgid "" +"Provided certificate does not include the required subjectKeyIdentifier " +"extension." +msgstr "" + +#: src/lib/crypto.c:462 +#, c-format +msgid "Unsupported key type provided: %d\n" +msgstr "" + +#: src/lib/crypto.c:499 src/lib/crypto.c:547 +msgid "Unable to open private key file" +msgstr "" + +#: src/lib/crypto.c:529 src/lib/crypto.c:563 +msgid "Unable to read private key from file" +msgstr "" + +#: src/lib/crypto.c:622 +#, c-format +msgid "Unsupported digest type: %d\n" +msgstr "" + +#: src/lib/crypto.c:636 +msgid "OpenSSL digest initialization failed" +msgstr "" + +#: src/lib/crypto.c:650 +msgid "OpenSSL digest update failed" +msgstr "" + +#: src/lib/crypto.c:668 +msgid "OpenSSL digest finalize failed" +msgstr "" + +#: src/lib/crypto.c:766 +msgid "OpenSSL digest_new failed" +msgstr "" + +#: src/lib/crypto.c:772 +msgid "OpenSSL sign get digest failed" +msgstr "" + +#: src/lib/crypto.c:811 src/lib/crypto.c:815 +msgid "OpenSSL digest Verify final failed" +msgstr "" + +#: src/lib/crypto.c:820 +msgid "No signers found for crypto verify.\n" +msgstr "" + +#: src/lib/crypto.c:881 +msgid "Signature creation failed" +msgstr "" + +#: src/lib/crypto.c:959 +msgid "Signature decoding failed" +msgstr "" + +#: src/lib/crypto.c:1036 +msgid "Unsupported cipher type specified\n" +msgstr "" + +#: src/lib/crypto.c:1185 +msgid "CryptoData decoding failed" +msgstr "" + +#: src/lib/crypto.c:1229 +msgid "Failure decrypting the session key" +msgstr "" + +#: src/lib/crypto.c:1280 +#, c-format +msgid "Unsupported contentEncryptionAlgorithm: %d\n" +msgstr "" + +#: src/lib/crypto.c:1290 src/lib/crypto.c:1296 +msgid "OpenSSL cipher context initialization failed" +msgstr "" + +#: src/lib/crypto.c:1303 +msgid "Encryption session provided an invalid symmetric key" +msgstr "" + +#: src/lib/crypto.c:1309 +msgid "Encryption session provided an invalid IV" +msgstr "" + +#: src/lib/crypto.c:1315 +msgid "OpenSSL cipher context key/IV initialization failed" +msgstr "" + +#: src/lib/crypto.c:1385 +#, c-format +msgid "Unable to init OpenSSL threading: ERR=%s\n" +msgstr "" + +#: src/lib/crypto.c:1398 +msgid "Failed to seed OpenSSL PRNG\n" +msgstr "" + +#: src/lib/crypto.c:1424 +msgid "Failed to save OpenSSL PRNG\n" +msgstr "" + +#: src/lib/crypto.c:1485 +#, c-format +msgid "Unsupported digest type=%d specified\n" +msgstr "" + +#: src/lib/crypto.c:1505 +#, c-format +msgid "SHA1Update() returned an error: %d\n" +msgstr "" + +#: src/lib/crypto.c:1648 +msgid "No error" +msgstr "" + +#: src/lib/crypto.c:1650 +msgid "Signer not found" +msgstr "" + +#: src/lib/crypto.c:1652 +msgid "Recipient not found" +msgstr "" + +#: src/lib/crypto.c:1654 +msgid "Unsupported digest algorithm" +msgstr "" + +#: src/lib/crypto.c:1656 +msgid "Unsupported encryption algorithm" +msgstr "" + +#: src/lib/crypto.c:1658 +msgid "Signature is invalid" +msgstr "" + +#: src/lib/crypto.c:1660 +msgid "Decryption error" +msgstr "" + +#: src/lib/crypto.c:1663 +msgid "Internal error" +msgstr "" + +#: src/lib/crypto.c:1665 +msgid "Unknown error" +msgstr "" + +#: src/lib/daemon.c:66 +#, c-format +msgid "Cannot fork to become daemon: %s\n" +msgstr "" + +#: src/lib/edit.c:446 +#, c-format +msgid "Illegal character \"%c\" in name.\n" +msgstr "" + +#: src/lib/edit.c:453 +msgid "Name too long.\n" +msgstr "" + +#: src/lib/jcr.c:297 +msgid "NULL jcr.\n" +msgstr "" + +#: src/lib/jcr.c:430 +#, c-format +msgid "JCR use_count=%d JobId=%d\n" +msgstr "" + +#: src/lib/jcr.c:762 +#, c-format +msgid "" +"Watchdog sending kill after %d secs to thread stalled reading Storage " +"daemon.\n" +msgstr "" + +#: src/lib/jcr.c:774 +#, c-format +msgid "" +"Watchdog sending kill after %d secs to thread stalled reading File daemon.\n" +msgstr "" + +#: src/lib/jcr.c:786 +#, c-format +msgid "" +"Watchdog sending kill after %d secs to thread stalled reading Director.\n" +msgstr "" + +#: src/lib/lex.c:93 src/wx-console/console_thread.cpp:208 +#, c-format +msgid "Problem probably begins at line %d.\n" +msgstr "" + +#: src/lib/lex.c:98 src/wx-console/console_thread.cpp:213 +#, c-format +msgid "" +"Config error: %s\n" +" : line %d, col %d of file %s\n" +"%s\n" +"%s" +msgstr "" + +#: src/lib/lex.c:102 +#, c-format +msgid "Config error: %s\n" +msgstr "" + +#: src/lib/lex.c:131 +msgid "Close of NULL file\n" +msgstr "" + +#: src/lib/lex.c:226 +msgid "get_char: called after EOF\n" +msgstr "" + +#: src/lib/lex.c:268 +#, c-format +msgid "Config token too long, file: %s, line %d, begins at line %d\n" +msgstr "" + +#: src/lib/lex.c:292 +msgid "none" +msgstr "" + +#: src/lib/lex.c:293 +msgid "comment" +msgstr "" + +#: src/lib/lex.c:294 +msgid "number" +msgstr "" + +#: src/lib/lex.c:295 +msgid "ip_addr" +msgstr "" + +#: src/lib/lex.c:296 +msgid "identifier" +msgstr "" + +#: src/lib/lex.c:297 +msgid "string" +msgstr "" + +#: src/lib/lex.c:298 +msgid "quoted_string" +msgstr "" + +#: src/lib/lex.c:299 +msgid "UTF-8 Byte Order Mark" +msgstr "" + +#: src/lib/lex.c:300 +msgid "UTF-16le Byte Order Mark" +msgstr "" + +#: src/lib/lex.c:338 src/lib/lex.c:344 +#, c-format +msgid "expected a positive integer number, got: %s" +msgstr "" + +#: src/lib/lex.c:454 +msgid "" +"This config file appears to be in an unsupported Unicode format (UTF-16be). " +"Please resave as UTF-8\n" +msgstr "" + +#: src/lib/lex.c:583 +#, c-format +msgid "Cannot open included config file %s: %s\n" +msgstr "" + +#: src/lib/lex.c:642 +#, c-format +msgid "expected an integer or a range, got %s: %s" +msgstr "" + +#: src/lib/lex.c:656 src/lib/lex.c:664 src/lib/lex.c:675 src/lib/lex.c:683 +#, c-format +msgid "expected an integer number, got %s: %s" +msgstr "" + +#: src/lib/lex.c:693 +#, c-format +msgid "expected a name, got %s: %s" +msgstr "" + +#: src/lib/lex.c:697 +#, c-format +msgid "name %s length %d too long, max is %d\n" +msgstr "" + +#: src/lib/lex.c:705 +#, c-format +msgid "expected a string, got %s: %s" +msgstr "" + +#: src/lib/mem_pool.c:108 +#, c-format +msgid "MemPool index %d larger than max %d\n" +msgstr "" + +#: src/lib/mem_pool.c:126 src/lib/mem_pool.c:146 src/lib/mem_pool.c:181 +#: src/lib/mem_pool.c:253 src/lib/mem_pool.c:273 src/lib/mem_pool.c:311 +#: src/lib/mem_pool.c:583 +#, c-format +msgid "Out of memory requesting %d bytes\n" +msgstr "" + +#: src/lib/message.c:268 src/lib/message.c:278 +#, c-format +msgid "Could not open console message file %s: ERR=%s\n" +msgstr "" + +#: src/lib/message.c:283 +#, c-format +msgid "Could not get con mutex: ERR=%s\n" +msgstr "" + +#: src/lib/message.c:387 +#, c-format +msgid "open mail pipe %s failed: ERR=%s\n" +msgstr "" + +#: src/lib/message.c:393 +msgid "Bacula Message" +msgstr "" + +#: src/lib/message.c:453 +msgid "open mail pipe failed.\n" +msgstr "" + +#: src/lib/message.c:465 +#, c-format +msgid "close error: ERR=%s\n" +msgstr "" + +#: src/lib/message.c:476 +#, c-format +msgid "Mail prog: %s" +msgstr "" + +#: src/lib/message.c:485 +#, c-format +msgid "" +"Mail program terminated in error.\n" +"CMD=%s\n" +"ERR=%s\n" +msgstr "" + +#: src/lib/message.c:584 src/lib/message.c:735 +#, c-format +msgid "fopen %s failed: ERR=%s\n" +msgstr "" + +#: src/lib/message.c:717 +#, c-format +msgid "" +"Operator mail program terminated in error.\n" +"CMD=%s\n" +"ERR=%s\n" +msgstr "" + +#: src/lib/message.c:1015 +#, c-format +msgid "%s: ABORTING due to ERROR in %s:%d\n" +msgstr "" + +#: src/lib/message.c:1019 +#, c-format +msgid "%s: ERROR TERMINATION at %s:%d\n" +msgstr "" + +#: src/lib/message.c:1024 +#, c-format +msgid "%s: Fatal Error because: " +msgstr "" + +#: src/lib/message.c:1026 +#, c-format +msgid "%s: Fatal Error at %s:%d because:\n" +msgstr "" + +#: src/lib/message.c:1030 +#, c-format +msgid "%s: ERROR: " +msgstr "" + +#: src/lib/message.c:1032 +#, c-format +msgid "%s: ERROR in %s:%d " +msgstr "" + +#: src/lib/message.c:1035 +#, c-format +msgid "%s: Warning: " +msgstr "" + +#: src/lib/message.c:1038 +#, c-format +msgid "%s: Security violation: " +msgstr "" + +#: src/lib/message.c:1114 +#, c-format +msgid "%s ABORTING due to ERROR\n" +msgstr "" + +#: src/lib/message.c:1117 +#, c-format +msgid "%s ERROR TERMINATION\n" +msgstr "" + +#: src/lib/message.c:1120 +#, c-format +msgid "%s: %s Fatal error: " +msgstr "" + +#: src/lib/message.c:1126 +#, c-format +msgid "%s: %s Error: " +msgstr "" + +#: src/lib/message.c:1132 +#, c-format +msgid "%s: %s Warning: " +msgstr "" + +#: src/lib/message.c:1135 +#, c-format +msgid "%s: %s Security violation: " +msgstr "" + +#: src/lib/openssl.c:118 src/lib/openssl.c:179 src/stored/dev.c:218 +#: src/stored/dev.c:236 src/stored/dev.c:243 src/stored/stored_conf.c:611 +#, c-format +msgid "Unable to init mutex: ERR=%s\n" +msgstr "" + +#: src/lib/openssl.c:140 src/lib/openssl.c:213 +#, c-format +msgid "Unable to destroy mutex: ERR=%s\n" +msgstr "" + +#: src/lib/parse_conf.c:180 +msgid "***UNKNOWN***" +msgstr "" + +#: src/lib/parse_conf.c:200 +#, c-format +msgid "Unable to initialize resource lock. ERR=%s\n" +msgstr "" + +#: src/lib/parse_conf.c:287 src/lib/parse_conf.c:306 +#, c-format +msgid "expected an =, got: %s" +msgstr "" + +#: src/lib/parse_conf.c:314 +#, c-format +msgid "Unknown item code: %d\n" +msgstr "" + +#: src/lib/parse_conf.c:354 +#, c-format +msgid "message type: %s not found" +msgstr "" + +#: src/lib/parse_conf.c:391 +#, c-format +msgid "Attempt to redefine name \"%s\" to \"%s\"." +msgstr "" + +#: src/lib/parse_conf.c:486 +#, c-format +msgid "Attempt to redefine resource \"%s\" referenced on line %d : %s\n" +msgstr "" + +#: src/lib/parse_conf.c:521 +#, c-format +msgid "Too many %s directives. Max. is %d. line %d: %s\n" +msgstr "" + +#: src/lib/parse_conf.c:531 +#, c-format +msgid "Could not find config Resource \"%s\" referenced on line %d : %s\n" +msgstr "" + +#: src/lib/parse_conf.c:593 +#, c-format +msgid "Missing config Resource \"%s\" referenced on line %d : %s\n" +msgstr "" + +#: src/lib/parse_conf.c:657 +#, c-format +msgid "expected a size number, got: %s" +msgstr "" + +#: src/lib/parse_conf.c:662 +#, c-format +msgid "expected a size, got: %s" +msgstr "" + +#: src/lib/parse_conf.c:699 src/lib/parse_conf.c:704 +#, c-format +msgid "expected a time period, got: %s" +msgstr "" + +#: src/lib/parse_conf.c:763 +#, c-format +msgid "Expected a Tape Label keyword, got: %s" +msgstr "" + +#: src/lib/parse_conf.c:819 +#, c-format +msgid "Cannot open config file \"%s\": %s\n" +msgstr "" + +#: src/lib/parse_conf.c:835 +msgid "" +"Currently we cannot handle UTF-16 source files. Please convert the conf file " +"to UTF-8\n" +msgstr "" + +#: src/lib/parse_conf.c:839 +#, c-format +msgid "Expected a Resource name identifier, got: %s" +msgstr "" + +#: src/lib/parse_conf.c:852 +#, c-format +msgid "expected resource name, got: %s" +msgstr "" + +#: src/lib/parse_conf.c:863 +#, c-format +msgid "not in resource definition: %s" +msgstr "" + +#: src/lib/parse_conf.c:888 +#, c-format +msgid "" +"Keyword \"%s\" not permitted in this resource.\n" +"Perhaps you left the trailing brace off of the previous resource." +msgstr "" + +#: src/lib/parse_conf.c:899 +msgid "Name not specified for resource" +msgstr "" + +#: src/lib/parse_conf.c:908 +#, c-format +msgid "unexpected token %d %s in resource definition" +msgstr "" + +#: src/lib/parse_conf.c:914 +#, c-format +msgid "Unknown parser state %d\n" +msgstr "" + +#: src/lib/parse_conf.c:919 +msgid "End of conf file reached with unclosed resource." +msgstr "" + +#: src/lib/pythonlib.c:127 +msgid "Could not initialize Python\n" +msgstr "" + +#: src/lib/pythonlib.c:132 +#, c-format +msgid "Could not Run Python string %s\n" +msgstr "" + +#: src/lib/pythonlib.c:144 +msgid "Could not initialize Python Job type.\n" +msgstr "" + +#: src/lib/pythonlib.c:149 +#, c-format +msgid "Could not import Python script %s/%s. Python disabled.\n" +msgstr "" + +#: src/lib/pythonlib.c:252 +msgid "Could not create Python Job Object.\n" +msgstr "" + +#: src/lib/pythonlib.c:265 src/lib/pythonlib.c:289 +#, c-format +msgid "Python function \"%s\" not found.\n" +msgstr "" + +#: src/lib/pythonlib.c:304 +#, c-format +msgid "Unknown Python daemon event %s\n" +msgstr "" + +#: src/lib/pythonlib.c:329 +#, c-format +msgid "Unable to initialize the Python lock. ERR=%s\n" +msgstr "" + +#: src/lib/res.c:66 +#, c-format +msgid "rwl_writelock failure at %s:%d: ERR=%s\n" +msgstr "" + +#: src/lib/res.c:76 +#, c-format +msgid "rwl_writeunlock failure at %s:%d:. ERR=%s\n" +msgstr "" + +#: src/lib/runscript.c:212 +#, c-format +msgid "%s: run command \"%s\"\n" +msgstr "" + +#: src/lib/runscript.c:218 +#, c-format +msgid "Runscript: %s could not execute. ERR=%s\n" +msgstr "" + +#: src/lib/runscript.c:227 +#, c-format +msgid "%s: %s\n" +msgstr "" + +#: src/lib/runscript.c:232 +#, c-format +msgid "Runscript: %s returned non-zero status=%d. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:297 +msgid "rwl_writeunlock called too many times.\n" +msgstr "" + +#: src/lib/rwlock.c:301 +msgid "rwl_writeunlock by non-owner.\n" +msgstr "" + +#: src/lib/rwlock.c:367 +#, c-format +msgid "Write lock failed. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:375 +#, c-format +msgid "Write unlock failed. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:386 +#, c-format +msgid "Read lock failed. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:394 +#, c-format +msgid "Read unlock failed. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:403 +#, c-format +msgid "Thread %d found unchanged elements %d times\n" +msgstr "" + +#: src/lib/rwlock.c:436 +#, c-format +msgid "Init rwlock failed. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:452 +#, c-format +msgid "Create thread failed. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:464 +#, c-format +msgid "Join thread failed. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:467 +#, c-format +msgid "%02d: interval %d, writes %d, reads %d\n" +msgstr "" + +#: src/lib/rwlock.c:477 +#, c-format +msgid "data %02d: value %d, %d writes\n" +msgstr "" + +#: src/lib/rwlock.c:482 +#, c-format +msgid "Total: %d thread writes, %d data writes\n" +msgstr "" + +#: src/lib/rwlock.c:554 +msgid "Try write lock" +msgstr "" + +#: src/lib/rwlock.c:560 +msgid "Try read lock" +msgstr "" + +#: src/lib/rwlock.c:615 +msgid "Create thread" +msgstr "" + +#: src/lib/rwlock.c:625 +msgid "Join thread" +msgstr "" + +#: src/lib/rwlock.c:627 +#, c-format +msgid "%02d: interval %d, updates %d, r_collisions %d, w_collisions %d\n" +msgstr "" + +#: src/lib/rwlock.c:639 +#, c-format +msgid "data %02d: value %d, %d updates\n" +msgstr "" + +#: src/lib/signal.c:68 +msgid "Invalid signal number" +msgstr "" + +#: src/lib/signal.c:94 +#, c-format +msgid "Bacula interrupted by signal %d: %s\n" +msgstr "" + +#: src/lib/signal.c:107 +#, c-format +msgid "Kaboom! %s, %s got signal %d - %s. Attempting traceback.\n" +msgstr "" + +#: src/lib/signal.c:109 +#, c-format +msgid "Kaboom! exepath=%s\n" +msgstr "" + +#: src/lib/signal.c:143 +#, c-format +msgid "Fork error: ERR=%s\n" +msgstr "" + +#: src/lib/signal.c:150 +#, c-format +msgid "Calling: %s %s %s\n" +msgstr "" + +#: src/lib/signal.c:153 +#, c-format +msgid "execv: %s failed: ERR=%s\n" +msgstr "" + +#: src/lib/signal.c:168 +#, c-format +msgid "Traceback complete, attempting cleanup ...\n" +msgstr "" + +#: src/lib/signal.c:176 +#, c-format +msgid "It looks like the traceback worked ...\n" +msgstr "" + +#: src/lib/signal.c:205 +#, c-format +msgid "BA_NSIG too small (%d) should be (%d)\n" +msgstr "" + +#: src/lib/signal.c:211 +msgid "UNKNOWN SIGNAL" +msgstr "" + +#: src/lib/signal.c:212 +msgid "Hangup" +msgstr "" + +#: src/lib/signal.c:213 +msgid "Interrupt" +msgstr "" + +#: src/lib/signal.c:214 +msgid "Quit" +msgstr "" + +#: src/lib/signal.c:215 +msgid "Illegal instruction" +msgstr "" + +#: src/lib/signal.c:216 +msgid "Trace/Breakpoint trap" +msgstr "" + +#: src/lib/signal.c:217 +msgid "Abort" +msgstr "" + +#: src/lib/signal.c:219 +msgid "EMT instruction (Emulation Trap)" +msgstr "" + +#: src/lib/signal.c:222 +msgid "IOT trap" +msgstr "" + +#: src/lib/signal.c:224 +msgid "BUS error" +msgstr "" + +#: src/lib/signal.c:225 +msgid "Floating-point exception" +msgstr "" + +#: src/lib/signal.c:226 +msgid "Kill, unblockable" +msgstr "" + +#: src/lib/signal.c:227 +msgid "User-defined signal 1" +msgstr "" + +#: src/lib/signal.c:228 +msgid "Segmentation violation" +msgstr "" + +#: src/lib/signal.c:229 +msgid "User-defined signal 2" +msgstr "" + +#: src/lib/signal.c:230 +msgid "Broken pipe" +msgstr "" + +#: src/lib/signal.c:231 +msgid "Alarm clock" +msgstr "" + +#: src/lib/signal.c:232 +msgid "Termination" +msgstr "" + +#: src/lib/signal.c:234 +msgid "Stack fault" +msgstr "" + +#: src/lib/signal.c:236 +msgid "Child status has changed" +msgstr "" + +#: src/lib/signal.c:237 +msgid "Continue" +msgstr "" + +#: src/lib/signal.c:238 +msgid "Stop, unblockable" +msgstr "" + +#: src/lib/signal.c:239 +msgid "Keyboard stop" +msgstr "" + +#: src/lib/signal.c:240 +msgid "Background read from tty" +msgstr "" + +#: src/lib/signal.c:241 +msgid "Background write to tty" +msgstr "" + +#: src/lib/signal.c:242 +msgid "Urgent condition on socket" +msgstr "" + +#: src/lib/signal.c:243 +msgid "CPU limit exceeded" +msgstr "" + +#: src/lib/signal.c:244 +msgid "File size limit exceeded" +msgstr "" + +#: src/lib/signal.c:245 +msgid "Virtual alarm clock" +msgstr "" + +#: src/lib/signal.c:246 +msgid "Profiling alarm clock" +msgstr "" + +#: src/lib/signal.c:247 +msgid "Window size change" +msgstr "" + +#: src/lib/signal.c:248 +msgid "I/O now possible" +msgstr "" + +#: src/lib/signal.c:250 +msgid "Power failure restart" +msgstr "" + +#: src/lib/signal.c:253 +msgid "No runnable lwp" +msgstr "" + +#: src/lib/signal.c:256 +msgid "SIGLWP special signal used by thread library" +msgstr "" + +#: src/lib/signal.c:259 +msgid "Checkpoint Freeze" +msgstr "" + +#: src/lib/signal.c:262 +msgid "Checkpoint Thaw" +msgstr "" + +#: src/lib/signal.c:265 +msgid "Thread Cancellation" +msgstr "" + +#: src/lib/signal.c:268 +msgid "Resource Lost (e.g. record-lock lost)" +msgstr "" + +#: src/lib/smartall.c:146 src/lib/smartall.c:255 src/lib/smartall.c:270 +msgid "Out of memory\n" +msgstr "" + +#: src/lib/smartall.c:151 +msgid "Too much memory used." +msgstr "" + +#: src/lib/smartall.c:180 +#, c-format +msgid "Attempt to free NULL called from %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:194 +#, c-format +msgid "double free from %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:202 +#, c-format +msgid "qp->qnext->qprev != qp called from %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:206 +#, c-format +msgid "qp->qprev->qnext != qp called from %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:215 +#, c-format +msgid "Buffer overrun called from %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:292 +#, c-format +msgid "sm_realloc size: %d\n" +msgstr "" + +#: src/lib/smartall.c:330 +#, c-format +msgid "sm_realloc %d at %x from %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:392 +#, c-format +msgid "" +"\n" +"Orphaned buffers exist. Dump terminated following\n" +" discovery of bad links in chain of orphaned buffers.\n" +" Buffer address with bad links: %p\n" +msgstr "" + +#: src/lib/smartall.c:404 +#, c-format +msgid "%s buffer: %s %6u bytes buf=%p allocated at %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:440 +#, c-format +msgid "Damaged buffer found. Called from %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:470 +#, c-format +msgid "" +"\n" +"Damaged buffers found at %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:473 +#, c-format +msgid " discovery of bad prev link.\n" +msgstr "" + +#: src/lib/smartall.c:476 +#, c-format +msgid " discovery of bad next link.\n" +msgstr "" + +#: src/lib/smartall.c:479 +#, c-format +msgid " discovery of data overrun.\n" +msgstr "" + +#: src/lib/smartall.c:482 +#, c-format +msgid " Buffer address: %p\n" +msgstr "" + +#: src/lib/smartall.c:489 +#, c-format +msgid "Damaged buffer: %6u bytes allocated at line %d of %s %s\n" +msgstr "" + +#: src/lib/tls.c:93 +#, c-format +msgid "" +"Error with certificate at depth: %d, issuer = %s, subject = %s, ERR=%d:%s\n" +msgstr "" + +#: src/lib/tls.c:130 +msgid "Error initializing SSL context" +msgstr "" + +#: src/lib/tls.c:151 +msgid "Error loading certificate verification stores" +msgstr "" + +#: src/lib/tls.c:156 +msgid "" +"Either a certificate file or a directory must be specified as a verification " +"store\n" +msgstr "" + +#: src/lib/tls.c:167 +msgid "Error loading certificate file" +msgstr "" + +#: src/lib/tls.c:175 +msgid "Error loading private key" +msgstr "" + +#: src/lib/tls.c:183 +msgid "Unable to open DH parameters file" +msgstr "" + +#: src/lib/tls.c:189 +msgid "Unable to load DH parameters from specified file" +msgstr "" + +#: src/lib/tls.c:193 +msgid "Failed to set TLS Diffie-Hellman parameters" +msgstr "" + +#: src/lib/tls.c:203 +msgid "Error setting cipher list, no valid ciphers available\n" +msgstr "" + +#: src/lib/tls.c:262 +msgid "Peer failed to present a TLS certificate\n" +msgstr "" + +#: src/lib/tls.c:305 +#, c-format +msgid "Peer %s failed to present a TLS certificate\n" +msgstr "" + +#: src/lib/tls.c:407 +msgid "Error creating file descriptor-based BIO" +msgstr "" + +#: src/lib/tls.c:418 +msgid "Error creating new SSL object" +msgstr "" + +#: src/lib/tls.c:481 src/lib/tls.c:504 +msgid "Connect failure" +msgstr "" + +#: src/lib/tls.c:576 src/lib/tls.c:580 +msgid "TLS shutdown failure." +msgstr "" + +#: src/lib/tls.c:639 +msgid "TLS read/write failure." +msgstr "" + +#: src/lib/util.c:182 +msgid "Running" +msgstr "" + +#: src/lib/util.c:185 +msgid "Blocked" +msgstr "" + +#: src/lib/util.c:195 +msgid "Non-fatal error" +msgstr "" + +#: src/lib/util.c:198 src/lib/util.c:265 +msgid "Canceled" +msgstr "" + +#: src/lib/util.c:201 +msgid "Verify differences" +msgstr "" + +#: src/lib/util.c:204 +msgid "Waiting on FD" +msgstr "" + +#: src/lib/util.c:207 +msgid "Wait on SD" +msgstr "" + +#: src/lib/util.c:210 +msgid "Wait for new Volume" +msgstr "" + +#: src/lib/util.c:213 +msgid "Waiting for mount" +msgstr "" + +#: src/lib/util.c:216 +msgid "Waiting for Storage resource" +msgstr "" + +#: src/lib/util.c:219 +msgid "Waiting for Job resource" +msgstr "" + +#: src/lib/util.c:222 +msgid "Waiting for Client resource" +msgstr "" + +#: src/lib/util.c:225 +msgid "Waiting on Max Jobs" +msgstr "" + +#: src/lib/util.c:228 +msgid "Waiting for Start Time" +msgstr "" + +#: src/lib/util.c:231 +msgid "Waiting on Priority" +msgstr "" + +#: src/lib/util.c:238 +#, c-format +msgid "Unknown Job termination status=%d" +msgstr "" + +#: src/lib/util.c:262 +msgid "Fatal Error" +msgstr "" + +#: src/lib/util.c:268 +msgid "Differences" +msgstr "" + +#: src/lib/util.c:271 +msgid "Unknown term code" +msgstr "" + +#: src/lib/util.c:299 +msgid "Migrate" +msgstr "" + +#: src/lib/util.c:302 +msgid "Copy" +msgstr "" + +#: src/lib/util.c:305 src/wx-console/wxbmainframe.cpp:276 +msgid "Console" +msgstr "" + +#: src/lib/util.c:308 +msgid "System or Console" +msgstr "" + +#: src/lib/util.c:311 +msgid "Scan" +msgstr "" + +#: src/lib/util.c:314 +msgid "Unknown Type" +msgstr "" + +#: src/lib/util.c:346 +msgid "Verify Init Catalog" +msgstr "" + +#: src/lib/util.c:355 +msgid "Verify Data" +msgstr "" + +#: src/lib/util.c:692 +msgid "Working directory not defined. Cannot continue.\n" +msgstr "" + +#: src/lib/util.c:695 +#, c-format +msgid "Working Directory: \"%s\" not found. Cannot continue.\n" +msgstr "" + +#: src/lib/util.c:699 +#, c-format +msgid "Working Directory: \"%s\" is not a directory. Cannot continue.\n" +msgstr "" + +#: src/lib/var.c:2669 +msgid "everything ok" +msgstr "" + +#: src/lib/var.c:2670 +msgid "incomplete named character" +msgstr "" + +#: src/lib/var.c:2671 +msgid "incomplete hexadecimal value" +msgstr "" + +#: src/lib/var.c:2672 +msgid "invalid hexadecimal value" +msgstr "" + +#: src/lib/var.c:2673 +msgid "octal value too large" +msgstr "" + +#: src/lib/var.c:2674 +msgid "invalid octal value" +msgstr "" + +#: src/lib/var.c:2675 +msgid "incomplete octal value" +msgstr "" + +#: src/lib/var.c:2676 +msgid "incomplete grouped hexadecimal value" +msgstr "" + +#: src/lib/var.c:2677 +msgid "incorrect character class specification" +msgstr "" + +#: src/lib/var.c:2678 +msgid "invalid expansion configuration" +msgstr "" + +#: src/lib/var.c:2679 +msgid "out of memory" +msgstr "" + +#: src/lib/var.c:2680 +msgid "incomplete variable specification" +msgstr "" + +#: src/lib/var.c:2681 +msgid "undefined variable" +msgstr "" + +#: src/lib/var.c:2682 +msgid "input is neither text nor variable" +msgstr "" + +#: src/lib/var.c:2683 +msgid "unknown command character in variable" +msgstr "" + +#: src/lib/var.c:2684 +msgid "malformatted search and replace operation" +msgstr "" + +#: src/lib/var.c:2685 +msgid "unknown flag in search and replace operation" +msgstr "" + +#: src/lib/var.c:2686 +msgid "invalid regex in search and replace operation" +msgstr "" + +#: src/lib/var.c:2687 +msgid "missing parameter in command" +msgstr "" + +#: src/lib/var.c:2688 +msgid "empty search string in search and replace operation" +msgstr "" + +#: src/lib/var.c:2689 +msgid "start offset missing in cut operation" +msgstr "" + +#: src/lib/var.c:2690 +msgid "offsets in cut operation delimited by unknown character" +msgstr "" + +#: src/lib/var.c:2691 +msgid "range out of bounds in cut operation" +msgstr "" + +#: src/lib/var.c:2692 +msgid "offset out of bounds in cut operation" +msgstr "" + +#: src/lib/var.c:2693 +msgid "logic error in cut operation" +msgstr "" + +#: src/lib/var.c:2694 +msgid "malformatted transpose operation" +msgstr "" + +#: src/lib/var.c:2695 +msgid "source and target class mismatch in transpose operation" +msgstr "" + +#: src/lib/var.c:2696 +msgid "empty character class in transpose operation" +msgstr "" + +#: src/lib/var.c:2697 +msgid "incorrect character class in transpose operation" +msgstr "" + +#: src/lib/var.c:2698 +msgid "malformatted padding operation" +msgstr "" + +#: src/lib/var.c:2699 +msgid "width parameter missing in padding operation" +msgstr "" + +#: src/lib/var.c:2700 +msgid "fill string missing in padding operation" +msgstr "" + +#: src/lib/var.c:2701 +msgid "unknown quoted pair in search and replace operation" +msgstr "" + +#: src/lib/var.c:2702 +msgid "sub-matching reference out of range" +msgstr "" + +#: src/lib/var.c:2703 +msgid "invalid argument" +msgstr "" + +#: src/lib/var.c:2704 +msgid "incomplete quoted pair" +msgstr "" + +#: src/lib/var.c:2705 +msgid "lookup function does not support variable arrays" +msgstr "" + +#: src/lib/var.c:2706 +msgid "index of array variable contains an invalid character" +msgstr "" + +#: src/lib/var.c:2707 +msgid "index of array variable is incomplete" +msgstr "" + +#: src/lib/var.c:2708 +msgid "bracket expression in array variable's index not closed" +msgstr "" + +#: src/lib/var.c:2709 +msgid "division by zero error in index specification" +msgstr "" + +#: src/lib/var.c:2710 +msgid "unterminated loop construct" +msgstr "" + +#: src/lib/var.c:2711 +msgid "invalid character in loop limits" +msgstr "" + +#: src/lib/var.c:2712 +msgid "malformed operation argument list" +msgstr "" + +#: src/lib/var.c:2713 +msgid "undefined operation" +msgstr "" + +#: src/lib/var.c:2714 +msgid "formatting failure" +msgstr "" + +#: src/lib/var.c:2723 +msgid "unknown error" +msgstr "" + +#: src/lib/watchdog.c:83 +#, c-format +msgid "Unable to initialize watchdog lock. ERR=%s\n" +msgstr "" + +#: src/lib/watchdog.c:180 +msgid "BUG! register_watchdog called before start_watchdog\n" +msgstr "" + +#: src/lib/watchdog.c:183 +#, c-format +msgid "BUG! Watchdog %p has NULL callback\n" +msgstr "" + +#: src/lib/watchdog.c:186 +#, c-format +msgid "BUG! Watchdog %p has zero interval\n" +msgstr "" + +#: src/lib/watchdog.c:206 +msgid "BUG! unregister_watchdog_unlocked called before start_watchdog\n" +msgstr "" + +#: src/lib/watchdog.c:325 +#, c-format +msgid "rwl_writelock failure. ERR=%s\n" +msgstr "" + +#: src/lib/watchdog.c:340 +#, c-format +msgid "rwl_writeunlock failure. ERR=%s\n" +msgstr "" + +#: src/stored/acquire.c:69 +#, c-format +msgid "Acquire read: num_writers=%d not zero. Job %d canceled.\n" +msgstr "" + +#: src/stored/acquire.c:78 +#, c-format +msgid "No volumes specified for reading. Job %s canceled.\n" +msgstr "" + +#: src/stored/acquire.c:87 +#, c-format +msgid "Logic error: no next volume to read. Numvol=%d Curvol=%d\n" +msgstr "" + +#: src/stored/acquire.c:113 +#, c-format +msgid "" +"Changing device. Want Media Type=\"%s\" have=\"%s\"\n" +" device=%s\n" +msgstr "" + +#: src/stored/acquire.c:151 +#, c-format +msgid "Media Type change. New device %s chosen.\n" +msgstr "" + +#: src/stored/acquire.c:162 +#, c-format +msgid "No suitable device found to read Volume \"%s\"\n" +msgstr "" + +#: src/stored/acquire.c:191 +#, c-format +msgid "Job %s canceled.\n" +msgstr "" + +#: src/stored/acquire.c:205 +#, c-format +msgid "Read open device %s Volume \"%s\" failed: ERR=%s\n" +msgstr "" + +#: src/stored/acquire.c:276 +#, c-format +msgid "Too many errors trying to mount device %s for reading.\n" +msgstr "" + +#: src/stored/acquire.c:285 +#, c-format +msgid "Ready to read from volume \"%s\" on device %s.\n" +msgstr "" + +#: src/stored/acquire.c:328 +#, c-format +msgid "Want to append, but device %s is busy reading.\n" +msgstr "" + +#: src/stored/acquire.c:358 +#, c-format +msgid "" +"Wanted to append to Volume \"%s\", but device %s is busy writing on \"%s" +"\" .\n" +msgstr "" + +#: src/stored/acquire.c:377 +#, c-format +msgid "" +"Cannot recycle volume \"%s\" on device %s because it is in use by another " +"job.\n" +msgstr "" + +#: src/stored/acquire.c:402 +#, c-format +msgid "" +"Invalid tape position on volume \"%s\" on device %s. Expected %d, got %d\n" +msgstr "" + +#: src/stored/acquire.c:422 +#, c-format +msgid "Could not ready device %s for append.\n" +msgstr "" + +#: src/stored/acquire.c:506 src/stored/block.c:367 src/stored/block.c:713 +#: src/stored/block.c:788 +#, c-format +msgid "Could not create JobMedia record for Volume=\"%s\" Job=%s\n" +msgstr "" + +#: src/stored/acquire.c:547 +#, c-format +msgid "Alert: %s" +msgstr "" + +#: src/stored/acquire.c:555 +#, c-format +msgid "3997 Bad alert command: %s: ERR=%s.\n" +msgstr "" + +#: src/stored/ansi_label.c:96 +#, c-format +msgid "Read error on device %s in ANSI label. ERR=%s\n" +msgstr "" + +#: src/stored/ansi_label.c:106 +msgid "Insane! End of tape while reading ANSI label.\n" +msgstr "" + +#: src/stored/ansi_label.c:130 +msgid "No VOL1 label while reading ANSI/IBM label.\n" +msgstr "" + +#: src/stored/ansi_label.c:150 +#, c-format +msgid "Wanted ANSI Volume \"%s\" got \"%s\"\n" +msgstr "" + +#: src/stored/ansi_label.c:161 +msgid "No HDR1 label while reading ANSI label.\n" +msgstr "" + +#: src/stored/ansi_label.c:167 +#, c-format +msgid "ANSI/IBM Volume \"%s\" does not belong to Bacula.\n" +msgstr "" + +#: src/stored/ansi_label.c:178 +msgid "No HDR2 label while reading ANSI/IBM label.\n" +msgstr "" + +#: src/stored/ansi_label.c:192 +msgid "Unknown or bad ANSI/IBM label record.\n" +msgstr "" + +#: src/stored/ansi_label.c:199 +msgid "Too many records in while reading ANSI/IBM label.\n" +msgstr "" + +#: src/stored/ansi_label.c:298 +#, c-format +msgid "ANSI Volume label name \"%s\" longer than 6 chars.\n" +msgstr "" + +#: src/stored/ansi_label.c:315 +#, c-format +msgid "Could not write ANSI VOL1 label. ERR=%s\n" +msgstr "" + +#: src/stored/ansi_label.c:353 src/stored/ansi_label.c:382 +#, c-format +msgid "Could not write ANSI HDR1 label. ERR=%s\n" +msgstr "" + +#: src/stored/ansi_label.c:358 src/stored/ansi_label.c:389 +msgid "Could not write ANSI HDR1 label.\n" +msgstr "" + +#: src/stored/ansi_label.c:394 +#, c-format +msgid "Error writing EOF to tape. ERR=%s" +msgstr "" + +#: src/stored/ansi_label.c:399 +msgid "write_ansi_ibm_label called for non-ANSI/IBM type\n" +msgstr "" + +#: src/stored/append.c:64 +msgid "DCR is NULL!!!\n" +msgstr "" + +#: src/stored/append.c:69 +msgid "DEVICE is NULL!!!\n" +msgstr "" + +#: src/stored/append.c:81 +msgid "Unable to set network buffer size.\n" +msgstr "" + +#: src/stored/append.c:94 src/stored/append.c:103 src/stored/append.c:115 +#: src/stored/append.c:298 src/stored/append.c:309 src/stored/askdir.c:332 +#: src/stored/askdir.c:333 +msgid "NULL Volume name. This shouldn't happen!!!\n" +msgstr "" + +#: src/stored/append.c:109 src/stored/btape.c:1889 +#, c-format +msgid "Write session label failed. ERR=%s\n" +msgstr "" + +#: src/stored/append.c:121 +#, c-format +msgid "Network send error to FD. ERR=%s\n" +msgstr "" + +#: src/stored/append.c:158 +#, c-format +msgid "Error reading data header from FD. ERR=%s\n" +msgstr "" + +#: src/stored/append.c:180 +#, c-format +msgid "Malformed data header from FD: %s\n" +msgstr "" + +#: src/stored/append.c:190 +msgid "File index from FD not positive or sequential\n" +msgstr "" + +#: src/stored/append.c:244 src/stored/mac.c:248 +#, c-format +msgid "Error updating file attributes. ERR=%s\n" +msgstr "" + +#: src/stored/append.c:258 +#, c-format +msgid "Network error on data channel. ERR=%s\n" +msgstr "" + +#: src/stored/append.c:279 +#, c-format +msgid "" +"Job write elapsed time = %02d:%02d:%02d, Transfer rate = %s bytes/second\n" +msgstr "" + +#: src/stored/append.c:292 src/stored/btape.c:2013 +#, c-format +msgid "Error writting end session label. ERR=%s\n" +msgstr "" + +#: src/stored/append.c:303 src/stored/mac.c:124 src/stored/mac.c:220 +#: src/stored/spool.c:293 +#, c-format +msgid "Fatal append error on device %s: ERR=%s\n" +msgstr "" + +#: src/stored/append.c:305 src/stored/mac.c:126 +msgid "Set ok=FALSE after write_block_to_device.\n" +msgstr "" + +#: src/stored/askdir.c:178 +msgid "Network error on bnet_recv in req_vol_info.\n" +msgstr "" + +#: src/stored/askdir.c:195 +#, c-format +msgid "Error getting Volume info: %s" +msgstr "" + +#: src/stored/askdir.c:363 +#, c-format +msgid "Didn't get vol info vol=%s: ERR=%s" +msgstr "" + +#: src/stored/askdir.c:405 +#, c-format +msgid "Error creating JobMedia record: ERR=%s\n" +msgstr "" + +#: src/stored/askdir.c:412 +#, c-format +msgid "Error creating JobMedia record: %s\n" +msgstr "" + +#: src/stored/askdir.c:478 +#, c-format +msgid "Job %s canceled while waiting for mount on Storage Device \"%s\".\n" +msgstr "" + +#: src/stored/askdir.c:491 +#, c-format +msgid "" +"Job %s waiting. Cannot find any appendable volumes.\n" +"Please use the \"label\" command to create a new Volume for:\n" +" Storage: %s\n" +" Pool: %s\n" +" Media type: %s\n" +msgstr "" + +#: src/stored/askdir.c:515 src/stored/askdir.c:605 +#, c-format +msgid "Max time exceeded waiting to mount Storage Device %s for Job %s\n" +msgstr "" + +#: src/stored/askdir.c:525 +msgid "pthread error in mount_next_volume.\n" +msgstr "" + +#: src/stored/askdir.c:557 +msgid "Cannot request another volume: no volume name given.\n" +msgstr "" + +#: src/stored/askdir.c:563 +#, c-format +msgid "Job %s canceled while waiting for mount on Storage Device %s.\n" +msgstr "" + +#: src/stored/askdir.c:578 +#, c-format +msgid "" +"Please mount Volume \"%s\" or label a new one for:\n" +" Job: %s\n" +" Storage: %s\n" +" Pool: %s\n" +" Media type: %s\n" +msgstr "" + +#: src/stored/askdir.c:615 +msgid "pthread error in mount_volume\n" +msgstr "" + +#: src/stored/authenticate.c:60 +#, c-format +msgid "I only authenticate Directors, not %d\n" +msgstr "" + +#: src/stored/authenticate.c:90 +#, c-format +msgid "" +"Connection from unknown Director %s at %s rejected.\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" + +#: src/stored/authenticate.c:123 +msgid "" +"Incorrect password given by Director.\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" + +#: src/stored/authenticate.c:179 +#, c-format +msgid "Unable to authenticate Director at %s.\n" +msgstr "" + +#: src/stored/authenticate.c:223 src/stored/authenticate.c:257 +#, c-format +msgid "" +"Incorrect authorization key from File daemon at %s rejected.\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" + +#: src/stored/autochanger.c:66 +#, c-format +msgid "No Changer Name given for device %s. Cannot continue.\n" +msgstr "" + +#: src/stored/autochanger.c:72 +#, c-format +msgid "No Changer Command given for device %s. Cannot continue.\n" +msgstr "" + +#: src/stored/autochanger.c:85 +#, c-format +msgid "" +"Media Type not the same for all devices in changer %s. Cannot continue.\n" +msgstr "" + +#: src/stored/autochanger.c:149 +#, c-format +msgid "" +"Invalid slot=%d defined in catalog for Volume \"%s\" on %s. Manual load my " +"be required.\n" +msgstr "" + +#: src/stored/autochanger.c:154 +#, c-format +msgid "No \"Changer Device\" for %s. Manual load of Volume may be required.\n" +msgstr "" + +#: src/stored/autochanger.c:158 +#, c-format +msgid "No \"Changer Command\" for %s. Manual load of Volume may be requird.\n" +msgstr "" + +#: src/stored/autochanger.c:188 +#, c-format +msgid "3304 Issuing autochanger \"load slot %d, drive %d\" command.\n" +msgstr "" + +#: src/stored/autochanger.c:196 +#, c-format +msgid "3305 Autochanger \"load slot %d, drive %d\", status is OK.\n" +msgstr "" + +#: src/stored/autochanger.c:205 +#, c-format +msgid "" +"3992 Bad autochanger \"load slot %d, drive %d\": ERR=%s.\n" +"Results=%s\n" +msgstr "" + +#: src/stored/autochanger.c:251 +msgid "3992 Missing Changer command.\n" +msgstr "" + +#: src/stored/autochanger.c:265 +#, c-format +msgid "3301 Issuing autochanger \"loaded? drive %d\" command.\n" +msgstr "" + +#: src/stored/autochanger.c:275 +#, c-format +msgid "3302 Autochanger \"loaded? drive %d\", result is Slot %d.\n" +msgstr "" + +#: src/stored/autochanger.c:279 +#, c-format +msgid "3302 Autochanger \"loaded? drive %d\", result: nothing loaded.\n" +msgstr "" + +#: src/stored/autochanger.c:286 +#, c-format +msgid "" +"3991 Bad autochanger \"loaded? drive %d\" command: ERR=%s.\n" +"Results=%s\n" +msgstr "" + +#: src/stored/autochanger.c:345 src/stored/autochanger.c:436 +#, c-format +msgid "3307 Issuing autochanger \"unload slot %d, drive %d\" command.\n" +msgstr "" + +#: src/stored/autochanger.c:359 +#, c-format +msgid "" +"3995 Bad autochanger \"unload slot %d, drive %d\": ERR=%s\n" +"Results=%s\n" +msgstr "" + +#: src/stored/autochanger.c:423 +#, c-format +msgid "Volume \"%s\" is in use by device %s\n" +msgstr "" + +#: src/stored/autochanger.c:458 +#, c-format +msgid "3995 Bad autochanger \"unload slot %d, drive %d\": ERR=%s.\n" +msgstr "" + +#: src/stored/autochanger.c:498 +#, c-format +msgid "3993 Device %s not an autochanger device.\n" +msgstr "" + +#: src/stored/autochanger.c:519 +#, c-format +msgid "3306 Issuing autochanger \"%s\" command.\n" +msgstr "" + +#: src/stored/autochanger.c:522 +msgid "3996 Open bpipe failed.\n" +msgstr "" + +#: src/stored/bcopy.c:72 +#, c-format +msgid "" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: bcopy [-d debug_level] \n" +" -b bootstrap specify a bootstrap file\n" +" -c specify configuration file\n" +" -d set debug level to nn\n" +" -i specify input Volume names (separated by |)\n" +" -o specify output Volume names (separated by |)\n" +" -p proceed inspite of errors\n" +" -v verbose\n" +" -w specify working directory (default /tmp)\n" +" -? print this message\n" +"\n" +msgstr "" + +#: src/stored/bcopy.c:151 src/stored/bextract.c:187 src/stored/bscan.c:228 +msgid "Wrong number of arguments: \n" +msgstr "" + +#: src/stored/bcopy.c:191 src/stored/btape.c:364 src/stored/device.c:296 +#, c-format +msgid "dev open failed: %s\n" +msgstr "" + +#: src/stored/bcopy.c:204 +msgid "Write of last block failed.\n" +msgstr "" + +#: src/stored/bcopy.c:207 +#, c-format +msgid "%u Jobs copied. %u records copied.\n" +msgstr "" + +#: src/stored/bcopy.c:224 src/stored/bscan.c:402 +#, c-format +msgid "Record: SessId=%u SessTim=%u FileIndex=%d Stream=%d len=%u\n" +msgstr "" + +#: src/stored/bcopy.c:239 +msgid "Volume is prelabeled. This volume cannot be copied.\n" +msgstr "" + +#: src/stored/bcopy.c:242 +msgid "Volume label not copied.\n" +msgstr "" + +#: src/stored/bcopy.c:254 src/stored/bcopy.c:261 src/stored/bcopy.c:284 +#: src/stored/btape.c:2386 +#, c-format +msgid "Cannot fixup device error. %s\n" +msgstr "" + +#: src/stored/bcopy.c:266 +msgid "EOM label not copied.\n" +msgstr "" + +#: src/stored/bcopy.c:269 +msgid "EOT label not copied.\n" +msgstr "" + +#: src/stored/bcopy.c:305 src/stored/bextract.c:489 src/stored/bls.c:452 +#: src/stored/bscan.c:1283 src/stored/btape.c:2685 +#, c-format +msgid "Mount Volume \"%s\" on device %s and press return when ready: " +msgstr "" + +#: src/stored/bextract.c:78 +#, c-format +msgid "" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: bextract \n" +" -b specify a bootstrap file\n" +" -c specify a configuration file\n" +" -d set debug level to nn\n" +" -e exclude list\n" +" -i include list\n" +" -p proceed inspite of I/O errors\n" +" -v verbose\n" +" -V specify Volume names (separated by |)\n" +" -? print this message\n" +"\n" +msgstr "" + +#: src/stored/bextract.c:137 src/stored/bls.c:140 +#, c-format +msgid "Could not open exclude file: %s, ERR=%s\n" +msgstr "" + +#: src/stored/bextract.c:152 src/stored/bls.c:154 +#, c-format +msgid "Could not open include file: %s, ERR=%s\n" +msgstr "" + +#: src/stored/bextract.c:208 +#, c-format +msgid "%d Program Name and/or Program Data Stream records ignored.\n" +msgstr "" + +#: src/stored/bextract.c:212 +#, c-format +msgid "%d Win32 data or Win32 gzip data stream records. Ignored.\n" +msgstr "" + +#: src/stored/bextract.c:239 +#, c-format +msgid "Cannot stat %s. It must exist. ERR=%s\n" +msgstr "" + +#: src/stored/bextract.c:243 +#, c-format +msgid "%s must be a directory.\n" +msgstr "" + +#: src/stored/bextract.c:264 +#, c-format +msgid "%u files restored.\n" +msgstr "" + +#: src/stored/bextract.c:291 src/stored/bextract.c:464 +msgid "Logic error output file should be open but is not.\n" +msgstr "" + +#: src/stored/bextract.c:298 src/stored/bls.c:376 src/stored/bscan.c:659 +msgid "Cannot continue.\n" +msgstr "" + +#: src/stored/bextract.c:360 +#, c-format +msgid "Seek error on %s: %s\n" +msgstr "" + +#: src/stored/bextract.c:413 +#, c-format +msgid "Uncompression error. ERR=%d\n" +msgstr "" + +#: src/stored/bextract.c:421 +msgid "===Write error===\n" +msgstr "" + +#: src/stored/bextract.c:455 +msgid "Got Program Name or Data Stream. Ignored.\n" +msgstr "" + +#: src/stored/block.c:91 +#, c-format +msgid "" +"Dump block %s %x: size=%d BlkNum=%d\n" +" Hdrcksum=%x cksum=%x\n" +msgstr "" + +#: src/stored/block.c:104 +#, c-format +msgid " Rec: VId=%u VT=%u FI=%s Strm=%s len=%d p=%x\n" +msgstr "" + +#: src/stored/block.c:160 +#, c-format +msgid "%d block read errors not printed.\n" +msgstr "" + +#: src/stored/block.c:248 src/stored/block.c:264 src/stored/block.c:274 +#, c-format +msgid "" +"Volume data error at %u:%u! Wanted ID: \"%s\", got \"%s\". Buffer " +"discarded.\n" +msgstr "" + +#: src/stored/block.c:288 +#, c-format +msgid "" +"Volume data error at %u:%u! Block length %u is insane (too large), probably " +"due to a bad archive.\n" +msgstr "" + +#: src/stored/block.c:314 +#, c-format +msgid "" +"Volume data error at %u:%u!\n" +"Block checksum mismatch in block=%u len=%d: calc=%x blk=%x\n" +msgstr "" + +#: src/stored/block.c:425 +msgid "Cannot write block. Device at EOM.\n" +msgstr "" + +#: src/stored/block.c:430 +msgid "Attempt to write on read-only Volume.\n" +msgstr "" + +#: src/stored/block.c:482 +#, c-format +msgid "User defined maximum volume capacity %s exceeded on device %s.\n" +msgstr "" + +#: src/stored/block.c:497 +#, c-format +msgid "Unable to write EOF. ERR=%s\n" +msgstr "" + +#: src/stored/block.c:523 src/stored/block.c:548 +msgid "Write block header zeroed.\n" +msgstr "" + +#: src/stored/block.c:567 +#, c-format +msgid "Write error at %u:%u on device %s. ERR=%s.\n" +msgstr "" + +#: src/stored/block.c:574 +#, c-format +msgid "End of Volume \"%s\" at %u:%u on device %s. Write of %u bytes got %d.\n" +msgstr "" + +#: src/stored/block.c:650 src/stored/block.c:656 +#, c-format +msgid "Backspace file at EOT failed. ERR=%s\n" +msgstr "" + +#: src/stored/block.c:663 +#, c-format +msgid "Backspace record at EOT failed. ERR=%s\n" +msgstr "" + +#: src/stored/block.c:680 +#, c-format +msgid "Re-read last block at EOT failed. ERR=%s" +msgstr "" + +#: src/stored/block.c:690 +#, c-format +msgid "" +"Re-read of last block OK, but block numbers differ. Last block=%u Current " +"block=%u.\n" +msgstr "" + +#: src/stored/block.c:693 +msgid "Re-read of last block succeeded.\n" +msgstr "" + +#: src/stored/block.c:721 +#, c-format +msgid "" +"Error writing final EOF to tape. This Volume may not be readable.\n" +"%s" +msgstr "" + +#: src/stored/block.c:735 +#, c-format +msgid "" +"Error writing final part to DVD. This Volume may not be readable.\n" +"%s" +msgstr "" + +#: src/stored/block.c:837 +#, c-format +msgid "" +"Error while writing, current part number is less than the total number of " +"parts (%d/%d, device=%s)\n" +msgstr "" + +#: src/stored/block.c:845 +#, c-format +msgid "Unable to open device next part %s: ERR=%s\n" +msgstr "" + +#: src/stored/block.c:865 +#, c-format +msgid "" +"End of Volume \"%s\" at %u:%u on device %s (part_size=%s, free_space=%s, " +"free_space_errno=%d, errmsg=%s).\n" +msgstr "" + +#: src/stored/block.c:878 +#, c-format +msgid "" +"End of Volume \"%s\" at %u:%u on device %s (part_size=%s, free_space=%s, " +"free_space_errno=%d).\n" +msgstr "" + +#: src/stored/block.c:934 +#, c-format +msgid "Block buffer size looping problem on device %s\n" +msgstr "" + +#: src/stored/block.c:962 +#, c-format +msgid "Unable to open device part=%d %s: ERR=%s\n" +msgstr "" + +#: src/stored/block.c:988 +#, c-format +msgid "Read error on fd=%d at file:blk %u:%u on device %s. ERR=%s.\n" +msgstr "" + +#: src/stored/block.c:1001 +#, c-format +msgid "Read zero bytes at %u:%u on device %s.\n" +msgstr "" + +#: src/stored/block.c:1014 +#, c-format +msgid "" +"Volume data error at %u:%u! Very short block of %d bytes on device %s " +"discarded.\n" +msgstr "" + +#: src/stored/block.c:1039 +#, c-format +msgid "Block length %u is greater than buffer %u. Attempting recovery.\n" +msgstr "" + +#: src/stored/block.c:1058 +#, c-format +msgid "Setting block buffer size to %u bytes.\n" +msgstr "" + +#: src/stored/block.c:1073 +#, c-format +msgid "" +"Volume data error at %u:%u! Short block of %d bytes on device %s discarded.\n" +msgstr "" + +#: src/stored/bls.c:78 +#, c-format +msgid "" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: bls [options] \n" +" -b specify a bootstrap file\n" +" -c specify a config file\n" +" -d specify debug level\n" +" -e exclude list\n" +" -i include list\n" +" -j list jobs\n" +" -k list blocks\n" +" (no j or k option) list saved files\n" +" -L dump label\n" +" -p proceed inspite of errors\n" +" -v be verbose\n" +" -V specify Volume names (separated by |)\n" +" -? print this message\n" +"\n" +msgstr "" + +#: src/stored/bls.c:201 +msgid "No archive name specified\n" +msgstr "" + +#: src/stored/bls.c:236 +#, c-format +msgid "" +"\n" +"Warning, this Volume is a continuation of Volume %s\n" +msgstr "" + +#: src/stored/bls.c:279 +#, c-format +msgid "Got EOM at file %u on device %s, Volume \"%s\"\n" +msgstr "" + +#: src/stored/bls.c:290 +#, c-format +msgid "Mounted Volume \"%s\".\n" +msgstr "" + +#: src/stored/bls.c:292 +#, c-format +msgid "End of file %u on device %s, Volume \"%s\"\n" +msgstr "" + +#: src/stored/bls.c:316 +#, c-format +msgid "" +"File:blk=%u:%u blk_num=%u blen=%u First rec FI=%s SessId=%u SessTim=%u Strm=%" +"s rlen=%d\n" +msgstr "" + +#: src/stored/bls.c:325 +#, c-format +msgid "Block: %d size=%d\n" +msgstr "" + +#: src/stored/bls.c:392 +#, c-format +msgid "FileIndex=%d VolSessionId=%d VolSessionTime=%d Stream=%d DataLen=%d\n" +msgstr "" + +#: src/stored/bls.c:409 src/stored/read_record.c:388 +msgid "Fresh Volume Label" +msgstr "" + +#: src/stored/bls.c:412 src/stored/read_record.c:391 +msgid "Volume Label" +msgstr "" + +#: src/stored/bls.c:416 src/stored/label.c:1031 +msgid "Begin Job Session" +msgstr "" + +#: src/stored/bls.c:420 src/stored/label.c:1034 +msgid "End Job Session" +msgstr "" + +#: src/stored/bls.c:424 +msgid "End of Medium" +msgstr "" + +#: src/stored/bls.c:427 src/stored/label.c:1043 +msgid "Unknown" +msgstr "" + +#: src/stored/bls.c:433 src/stored/read_record.c:409 +#, c-format +msgid "%s Record: VolSessionId=%d VolSessionTime=%d JobId=%d DataLen=%d\n" +msgstr "" + +#: src/stored/bscan.c:115 +#, c-format +msgid "" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: bscan [ options ] \n" +" -b bootstrap specify a bootstrap file\n" +" -c specify configuration file\n" +" -d set debug level to nn\n" +" -m update media info in database\n" +" -n specify the database name (default bacula)\n" +" -u specify database user name (default bacula)\n" +" -P specify database host (default NULL)\n" +" -p proceed inspite of I/O errors\n" +" -r list records\n" +" -s synchronize or store in database\n" +" -S show scan progress periodically\n" +" -v verbose\n" +" -V specify Volume names (separated by |)\n" +" -w specify working directory (default from conf file)\n" +" -? print this message\n" +"\n" +msgstr "" + +#: src/stored/bscan.c:241 src/stored/stored.c:288 +#, c-format +msgid "No Storage resource defined in %s. Cannot continue.\n" +msgstr "" + +#: src/stored/bscan.c:249 src/stored/stored.c:319 +#, c-format +msgid "No Working Directory defined in %s. Cannot continue.\n" +msgstr "" + +#: src/stored/bscan.c:257 +#, c-format +msgid "Working Directory: %s not found. Cannot continue.\n" +msgstr "" + +#: src/stored/bscan.c:261 +#, c-format +msgid "Working Directory: %s is not a directory. Cannot continue.\n" +msgstr "" + +#: src/stored/bscan.c:275 src/stored/bscan.c:349 +#, c-format +msgid "First Volume Size = %sn" +msgstr "" + +#: src/stored/bscan.c:281 +msgid "Could not init Bacula database\n" +msgstr "" + +#: src/stored/bscan.c:288 +#, c-format +msgid "Using Database: %s, User: %s\n" +msgstr "" + +#: src/stored/bscan.c:323 +#, c-format +msgid "Create JobMedia for Job %s\n" +msgstr "" + +#: src/stored/bscan.c:331 +#, c-format +msgid "Could not create JobMedia record for Volume=%s Job=%s\n" +msgstr "" + +#: src/stored/bscan.c:394 +#, c-format +msgid "done: %d%%\n" +msgstr "" + +#: src/stored/bscan.c:418 +msgid "Volume is prelabeled. This tape cannot be scanned.\n" +msgstr "" + +#: src/stored/bscan.c:430 +#, c-format +msgid "Pool record for %s found in DB.\n" +msgstr "" + +#: src/stored/bscan.c:434 +#, c-format +msgid "VOL_LABEL: Pool record not found for Pool: %s\n" +msgstr "" + +#: src/stored/bscan.c:440 +#, c-format +msgid "VOL_LABEL: PoolType mismatch. DB=%s Vol=%s\n" +msgstr "" + +#: src/stored/bscan.c:444 +#, c-format +msgid "Pool type \"%s\" is OK.\n" +msgstr "" + +#: src/stored/bscan.c:454 +#, c-format +msgid "Media record for %s found in DB.\n" +msgstr "" + +#: src/stored/bscan.c:461 +#, c-format +msgid "VOL_LABEL: Media record not found for Volume: %s\n" +msgstr "" + +#: src/stored/bscan.c:468 +#, c-format +msgid "VOL_LABEL: MediaType mismatch. DB=%s Vol=%s\n" +msgstr "" + +#: src/stored/bscan.c:472 +#, c-format +msgid "Media type \"%s\" is OK.\n" +msgstr "" + +#: src/stored/bscan.c:481 +#, c-format +msgid "VOL_LABEL: OK for Volume: %s\n" +msgstr "" + +#: src/stored/bscan.c:488 +#, c-format +msgid "%d \"errors\" ignored before first Start of Session record.\n" +msgstr "" + +#: src/stored/bscan.c:499 +#, c-format +msgid "SOS_LABEL: Found Job record for JobId: %d\n" +msgstr "" + +#: src/stored/bscan.c:504 +#, c-format +msgid "SOS_LABEL: Job record not found for JobId: %d\n" +msgstr "" + +#: src/stored/bscan.c:544 +#, c-format +msgid "SOS_LABEL: VolSessId mismatch for JobId=%u. DB=%d Vol=%d\n" +msgstr "" + +#: src/stored/bscan.c:550 +#, c-format +msgid "SOS_LABEL: VolSessTime mismatch for JobId=%u. DB=%d Vol=%d\n" +msgstr "" + +#: src/stored/bscan.c:556 +#, c-format +msgid "SOS_LABEL: PoolId mismatch for JobId=%u. DB=%d Vol=%d\n" +msgstr "" + +#: src/stored/bscan.c:574 src/stored/bscan.c:1077 +#, c-format +msgid "Could not find SessId=%d SessTime=%d for EOS record.\n" +msgstr "" + +#: src/stored/bscan.c:618 +#, c-format +msgid "Could not update job record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:629 +#, c-format +msgid "End of all Volumes. VolFiles=%u VolBlocks=%u VolBytes=%s\n" +msgstr "" + +#: src/stored/bscan.c:641 +#, c-format +msgid "Could not find Job for SessId=%d SessTime=%d record.\n" +msgstr "" + +#: src/stored/bscan.c:677 +#, c-format +msgid "%s file records. At file:blk=%s:%s bytes=%s\n" +msgstr "" + +#: src/stored/bscan.c:731 +#, c-format +msgid "Got MD5 record: %s\n" +msgstr "" + +#: src/stored/bscan.c:739 +#, c-format +msgid "Got SHA1 record: %s\n" +msgstr "" + +#: src/stored/bscan.c:747 +#, c-format +msgid "Got SHA256 record: %s\n" +msgstr "" + +#: src/stored/bscan.c:755 +#, c-format +msgid "Got SHA512 record: %s\n" +msgstr "" + +#: src/stored/bscan.c:763 src/stored/bscan.c:770 +msgid "Got signed digest record\n" +msgstr "" + +#: src/stored/bscan.c:776 +#, c-format +msgid "Got Prog Names Stream: %s\n" +msgstr "" + +#: src/stored/bscan.c:782 +msgid "Got Prog Data Stream record.\n" +msgstr "" + +#: src/stored/bscan.c:792 +#, c-format +msgid "Unknown stream type!!! stream=%d len=%i\n" +msgstr "" + +#: src/stored/bscan.c:856 +#, c-format +msgid "Could not create File Attributes record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:862 +#, c-format +msgid "Created File record: %s\n" +msgstr "" + +#: src/stored/bscan.c:906 +#, c-format +msgid "Could not create media record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:910 src/stored/bscan.c:931 +#, c-format +msgid "Could not update media record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:914 +#, c-format +msgid "Created Media record for Volume: %s\n" +msgstr "" + +#: src/stored/bscan.c:935 +#, c-format +msgid "Updated Media record at end of Volume: %s\n" +msgstr "" + +#: src/stored/bscan.c:952 +#, c-format +msgid "Could not create pool record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:956 +#, c-format +msgid "Created Pool record for Pool: %s\n" +msgstr "" + +#: src/stored/bscan.c:976 +#, c-format +msgid "Created Client record for Client: %s\n" +msgstr "" + +#: src/stored/bscan.c:993 +#, c-format +msgid "Fileset \"%s\" already exists.\n" +msgstr "" + +#: src/stored/bscan.c:997 +#, c-format +msgid "Could not create FileSet record \"%s\". ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:1002 +#, c-format +msgid "Created FileSet record \"%s\"\n" +msgstr "" + +#: src/stored/bscan.c:1049 +#, c-format +msgid "Could not create JobId record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:1055 +#, c-format +msgid "Could not update job start record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:1058 +#, c-format +msgid "Created new JobId=%u record for original JobId=%u\n" +msgstr "" + +#: src/stored/bscan.c:1108 +#, c-format +msgid "Could not update JobId=%u record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:1113 +#, c-format +msgid "Updated Job termination record for JobId=%u Level=%s TermStat=%c\n" +msgstr "" + +#: src/stored/bscan.c:1135 +#, c-format +msgid "Job Termination code: %d" +msgstr "" + +#: src/stored/bscan.c:1140 +#, c-format +msgid "" +"%s\n" +"JobId: %d\n" +"Job: %s\n" +"FileSet: %s\n" +"Backup Level: %s\n" +"Client: %s\n" +"Start time: %s\n" +"End time: %s\n" +"Files Written: %s\n" +"Bytes Written: %s\n" +"Volume Session Id: %d\n" +"Volume Session Time: %d\n" +"Last Volume Bytes: %s\n" +"Termination: %s\n" +"\n" +msgstr "" + +#: src/stored/bscan.c:1197 +#, c-format +msgid "Could not create JobMedia record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:1201 +#, c-format +msgid "Created JobMedia record JobId %d, MediaId %d\n" +msgstr "" + +#: src/stored/bscan.c:1217 +#, c-format +msgid "Could not find SessId=%d SessTime=%d for MD5/SHA1 record.\n" +msgstr "" + +#: src/stored/bscan.c:1231 +#, c-format +msgid "Could not add MD5/SHA1 to File record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:1236 +msgid "Updated MD5/SHA1 record\n" +msgstr "" + +#: src/stored/btape.c:172 src/stored/stored.c:128 +#, c-format +msgid "Tape block size (%d) not multiple of system size (%d)\n" +msgstr "" + +#: src/stored/btape.c:176 src/stored/stored.c:132 +#, c-format +msgid "Tape block size (%d) is not a power of 2\n" +msgstr "" + +#: src/stored/btape.c:179 +#, c-format +msgid "" +"\n" +"\n" +"!!!! Warning large disk addressing disabled. boffset_t=%d should be 8 or " +"more !!!!!\n" +"\n" +"\n" +msgstr "" + +#: src/stored/btape.c:186 +#, c-format +msgid "32 bit printf/scanf problem. i=%d x32=%u y32=%u\n" +msgstr "" + +#: src/stored/btape.c:195 +msgid "64 bit printf/scanf problem. i=%d x64=%" +msgstr "" + +#: src/stored/btape.c:195 +msgid " y64=%" +msgstr "" + +#: src/stored/btape.c:200 +#, c-format +msgid "Tape block granularity is %d bytes.\n" +msgstr "" + +#: src/stored/btape.c:269 +msgid "No archive name specified.\n" +msgstr "" + +#: src/stored/btape.c:273 +msgid "Improper number of arguments specified.\n" +msgstr "" + +#: src/stored/btape.c:287 +msgid "btape does not work with DVD storage.\n" +msgstr "" + +#: src/stored/btape.c:292 +msgid "btape only works with tape storage.\n" +msgstr "" + +#: src/stored/btape.c:368 +#, c-format +msgid "open device %s: OK\n" +msgstr "" + +#: src/stored/btape.c:391 +msgid "Enter Volume Name: " +msgstr "" + +#: src/stored/btape.c:398 +#, c-format +msgid "Device open failed. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:404 +#, c-format +msgid "Wrote Volume label for volume \"%s\".\n" +msgstr "" + +#: src/stored/btape.c:418 +msgid "Volume has no label.\n" +msgstr "" + +#: src/stored/btape.c:421 +msgid "Volume label read correctly.\n" +msgstr "" + +#: src/stored/btape.c:424 +#, c-format +msgid "I/O error on device: ERR=%s" +msgstr "" + +#: src/stored/btape.c:427 +msgid "Volume name error\n" +msgstr "" + +#: src/stored/btape.c:430 +#, c-format +msgid "Error creating label. ERR=%s" +msgstr "" + +#: src/stored/btape.c:433 +msgid "Volume version error.\n" +msgstr "" + +#: src/stored/btape.c:436 +msgid "Bad Volume label type.\n" +msgstr "" + +#: src/stored/btape.c:439 +msgid "Unknown error.\n" +msgstr "" + +#: src/stored/btape.c:457 +#, c-format +msgid "Bad status from load. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:459 +#, c-format +msgid "Loaded %s\n" +msgstr "" + +#: src/stored/btape.c:468 src/stored/btape.c:807 src/stored/btape.c:849 +#: src/stored/btape.c:919 src/stored/btape.c:961 src/stored/btape.c:1229 +#, c-format +msgid "Bad status from rewind. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:471 src/stored/btape.c:1237 +#, c-format +msgid "Rewound %s\n" +msgstr "" + +#: src/stored/btape.c:497 src/stored/btape.c:1241 +#, c-format +msgid "Bad status from weof. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:501 +#, c-format +msgid "Wrote 1 EOF to %s\n" +msgstr "" + +#: src/stored/btape.c:504 +#, c-format +msgid "Wrote %d EOFs to %s\n" +msgstr "" + +#: src/stored/btape.c:522 +msgid "Moved to end of medium.\n" +msgstr "" + +#: src/stored/btape.c:549 +#, c-format +msgid "Bad status from bsf. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:551 +#, c-format +msgid "Backspaced %d file%s.\n" +msgstr "" + +#: src/stored/btape.c:568 +#, c-format +msgid "Bad status from bsr. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:570 +#, c-format +msgid "Backspaced %d record%s.\n" +msgstr "" + +#: src/stored/btape.c:580 src/stored/status.c:302 +#, c-format +msgid "Configured device capabilities:\n" +msgstr "" + +#: src/stored/btape.c:598 +#, c-format +msgid "Device status:\n" +msgstr "" + +#: src/stored/btape.c:612 src/stored/status.c:341 +#, c-format +msgid "Device parameters:\n" +msgstr "" + +#: src/stored/btape.c:617 +#, c-format +msgid "Status:\n" +msgstr "" + +#: src/stored/btape.c:632 +msgid "" +"Test writting larger and larger records.\n" +"This is a torture test for records.\n" +"I am going to write\n" +"larger and larger records. It will stop when the record size\n" +"plus the header exceeds the block size (by default about 64K)\n" +msgstr "" + +#: src/stored/btape.c:638 +msgid "Do you want to continue? (y/n): " +msgstr "" + +#: src/stored/btape.c:640 src/stored/btape.c:1857 +msgid "Command aborted.\n" +msgstr "" + +#: src/stored/btape.c:656 +#, c-format +msgid "Block %d i=%d\n" +msgstr "" + +#: src/stored/btape.c:682 +msgid "Skipping read backwards test because BSR turned off.\n" +msgstr "" + +#: src/stored/btape.c:686 +msgid "" +"\n" +"=== Write, backup, and re-read test ===\n" +"\n" +"I'm going to write three records and an EOF\n" +"then backup over the EOF and re-read the last record.\n" +"Bacula does this after writing the last block on the\n" +"tape to verify that the block was written correctly.\n" +"\n" +"This is not an *essential* feature ...\n" +"\n" +msgstr "" + +#: src/stored/btape.c:699 src/stored/btape.c:710 src/stored/btape.c:721 +#: src/stored/btape.c:819 src/stored/btape.c:835 src/stored/btape.c:931 +#: src/stored/btape.c:947 src/stored/btape.c:1566 src/stored/btape.c:2451 +msgid "Error writing record to block.\n" +msgstr "" + +#: src/stored/btape.c:703 src/stored/btape.c:714 src/stored/btape.c:725 +#: src/stored/btape.c:823 src/stored/btape.c:839 src/stored/btape.c:935 +#: src/stored/btape.c:951 src/stored/btape.c:1570 src/stored/btape.c:2455 +msgid "Error writing block to device.\n" +msgstr "" + +#: src/stored/btape.c:706 +#, c-format +msgid "Wrote first record of %d bytes.\n" +msgstr "" + +#: src/stored/btape.c:717 +#, c-format +msgid "Wrote second record of %d bytes.\n" +msgstr "" + +#: src/stored/btape.c:728 +#, c-format +msgid "Wrote third record of %d bytes.\n" +msgstr "" + +#: src/stored/btape.c:735 src/stored/btape.c:740 +#, c-format +msgid "Backspace file failed! ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:744 +msgid "Backspaced over EOF OK.\n" +msgstr "" + +#: src/stored/btape.c:746 +#, c-format +msgid "Backspace record failed! ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:749 +msgid "Backspace record OK.\n" +msgstr "" + +#: src/stored/btape.c:752 src/stored/btape.c:758 +#, c-format +msgid "Read block failed! ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:763 +msgid "Bad data in record. Test failed!\n" +msgstr "" + +#: src/stored/btape.c:767 +msgid "" +"\n" +"Block re-read correct. Test succeeded!\n" +msgstr "" + +#: src/stored/btape.c:768 +msgid "" +"=== End Write, backup, and re-read test ===\n" +"\n" +msgstr "" + +#: src/stored/btape.c:775 +msgid "" +"This is not terribly serious since Bacula only uses\n" +"this function to verify the last block written to the\n" +"tape. Bacula will skip the last block verification\n" +"if you add:\n" +"\n" +"Backward Space Record = No\n" +"\n" +"to your Storage daemon's Device resource definition.\n" +msgstr "" + +#: src/stored/btape.c:799 +msgid "" +"\n" +"=== Write, rewind, and re-read test ===\n" +"\n" +"I'm going to write 1000 records and an EOF\n" +"then write 1000 records and an EOF, then rewind,\n" +"and re-read the data to verify that it is correct.\n" +"\n" +"This is an *essential* feature ...\n" +"\n" +msgstr "" + +#: src/stored/btape.c:827 src/stored/btape.c:843 src/stored/btape.c:939 +#: src/stored/btape.c:955 +#, c-format +msgid "Wrote 1000 blocks of %d bytes.\n" +msgstr "" + +#: src/stored/btape.c:852 src/stored/btape.c:964 +msgid "Rewind OK.\n" +msgstr "" + +#: src/stored/btape.c:859 src/stored/btape.c:1013 +msgid "Got EOF on tape.\n" +msgstr "" + +#: src/stored/btape.c:864 +#, c-format +msgid "Read block %d failed! ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:870 +#, c-format +msgid "Read record failed. Block %d! ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:876 src/stored/btape.c:1043 +#, c-format +msgid "Bad data in record. Expected %d, got %d at byte %d. Test failed!\n" +msgstr "" + +#: src/stored/btape.c:883 +msgid "1000 blocks re-read correctly.\n" +msgstr "" + +#: src/stored/btape.c:886 src/stored/btape.c:1050 +msgid "" +"=== Test Succeeded. End Write, rewind, and re-read test ===\n" +"\n" +msgstr "" + +#: src/stored/btape.c:911 +msgid "" +"\n" +"=== Write, rewind, and position test ===\n" +"\n" +"I'm going to write 1000 records and an EOF\n" +"then write 1000 records and an EOF, then rewind,\n" +"and position to a few blocks and verify that it is correct.\n" +"\n" +"This is an *essential* feature ...\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1004 +#, c-format +msgid "Reposition to file:block %d:%d\n" +msgstr "" + +#: src/stored/btape.c:1006 +msgid "Reposition error.\n" +msgstr "" + +#: src/stored/btape.c:1019 +#, c-format +msgid "" +"Read block %d failed! file=%d blk=%d. ERR=%s\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1021 +msgid "" +"This may be because the tape drive block size is not\n" +" set to variable blocking as normally used by Bacula.\n" +" Please see the Tape Testing chapter in the manual and \n" +" look for using mt with defblksize and setoptions\n" +"If your tape drive block size is correct, then perhaps\n" +" your SCSI driver is *really* stupid and does not\n" +" correctly report the file:block after a FSF. In this\n" +" case try setting:\n" +" Fast Forward Space File = no\n" +" in your Device resource.\n" +msgstr "" + +#: src/stored/btape.c:1037 +#, c-format +msgid "Read record failed! ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1048 +#, c-format +msgid "Block %d re-read correctly.\n" +msgstr "" + +#: src/stored/btape.c:1069 +msgid "" +"\n" +"\n" +"=== Append files test ===\n" +"\n" +"This test is essential to Bacula.\n" +"\n" +"I'm going to write one record in file 0,\n" +" two records in file 1,\n" +" and three records in file 2\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1093 +msgid "Now moving to end of medium.\n" +msgstr "" + +#: src/stored/btape.c:1095 src/stored/btape.c:1324 +#, c-format +msgid "We should be in file 3. I am at file %d. %s\n" +msgstr "" + +#: src/stored/btape.c:1096 src/stored/btape.c:1114 src/stored/btape.c:1313 +#: src/stored/btape.c:1325 src/stored/btape.c:1338 src/stored/btape.c:1355 +msgid "This is correct!" +msgstr "" + +#: src/stored/btape.c:1096 src/stored/btape.c:1114 src/stored/btape.c:1313 +#: src/stored/btape.c:1325 src/stored/btape.c:1338 src/stored/btape.c:1355 +msgid "This is NOT correct!!!!" +msgstr "" + +#: src/stored/btape.c:1102 +msgid "" +"\n" +"Now the important part, I am going to attempt to append to the tape.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1109 +msgid "" +"Done appending, there should be no I/O errors\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1110 +msgid "Doing Bacula scan of blocks:\n" +msgstr "" + +#: src/stored/btape.c:1112 +msgid "End scanning the tape.\n" +msgstr "" + +#: src/stored/btape.c:1113 src/stored/btape.c:1337 +#, c-format +msgid "We should be in file 4. I am at file %d. %s\n" +msgstr "" + +#: src/stored/btape.c:1138 +msgid "" +"\n" +"Autochanger enabled, but no name or no command device specified.\n" +msgstr "" + +#: src/stored/btape.c:1142 +msgid "" +"\n" +"Ah, I see you have an autochanger configured.\n" +"To test the autochanger you must have a blank tape\n" +" that I can write on in Slot 1.\n" +msgstr "" + +#: src/stored/btape.c:1145 +msgid "" +"\n" +"Do you wish to continue with the Autochanger test? (y/n): " +msgstr "" + +#: src/stored/btape.c:1152 +msgid "" +"\n" +"\n" +"=== Autochanger test ===\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1161 +msgid "3301 Issuing autochanger \"loaded\" command.\n" +msgstr "" + +#: src/stored/btape.c:1170 +#, c-format +msgid "3991 Bad autochanger command: %s\n" +msgstr "" + +#: src/stored/btape.c:1171 +#, c-format +msgid "3991 result=\"%s\": ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1175 +#, c-format +msgid "Slot %d loaded. I am going to unload it.\n" +msgstr "" + +#: src/stored/btape.c:1177 +msgid "Nothing loaded in the drive. OK.\n" +msgstr "" + +#: src/stored/btape.c:1184 +#, c-format +msgid "3302 Issuing autochanger \"unload %d %d\" command.\n" +msgstr "" + +#: src/stored/btape.c:1189 +#, c-format +msgid "unload status=%s %d\n" +msgstr "" + +#: src/stored/btape.c:1189 +msgid "Bad" +msgstr "" + +#: src/stored/btape.c:1192 +#, c-format +msgid "3992 Bad autochanger command: %s\n" +msgstr "" + +#: src/stored/btape.c:1193 +#, c-format +msgid "3992 result=\"%s\": ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1203 +#, c-format +msgid "3303 Issuing autochanger \"load %d %d\" command.\n" +msgstr "" + +#: src/stored/btape.c:1211 +#, c-format +msgid "3303 Autochanger \"load %d %d\" status is OK.\n" +msgstr "" + +#: src/stored/btape.c:1215 +#, c-format +msgid "3993 Bad autochanger command: %s\n" +msgstr "" + +#: src/stored/btape.c:1216 +#, c-format +msgid "3993 result=\"%s\": ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1231 +msgid "" +"\n" +"The test failed, probably because you need to put\n" +"a longer sleep time in the mtx-script in the load) case.\n" +"Adding a 30 second sleep and trying again ...\n" +msgstr "" + +#: src/stored/btape.c:1244 +#, c-format +msgid "Wrote EOF to %s\n" +msgstr "" + +#: src/stored/btape.c:1248 +#, c-format +msgid "" +"\n" +"The test worked this time. Please add:\n" +"\n" +" sleep %d\n" +"\n" +"to your mtx-changer script in the load) case.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1253 +msgid "" +"\n" +"The test autochanger worked!!\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1264 +msgid "You must correct this error or the Autochanger will not work.\n" +msgstr "" + +#: src/stored/btape.c:1282 +msgid "" +"\n" +"\n" +"=== Forward space files test ===\n" +"\n" +"This test is essential to Bacula.\n" +"\n" +"I'm going to write five files then test forward spacing\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1307 +msgid "Now forward spacing 1 file.\n" +msgstr "" + +#: src/stored/btape.c:1309 src/stored/btape.c:1321 src/stored/btape.c:1334 +#: src/stored/btape.c:1352 src/stored/btape.c:1521 +#, c-format +msgid "Bad status from fsr. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1312 +#, c-format +msgid "We should be in file 1. I am at file %d. %s\n" +msgstr "" + +#: src/stored/btape.c:1319 +msgid "Now forward spacing 2 files.\n" +msgstr "" + +#: src/stored/btape.c:1332 +msgid "Now forward spacing 4 files.\n" +msgstr "" + +#: src/stored/btape.c:1344 +msgid "" +"The test worked this time. Please add:\n" +"\n" +" Fast Forward Space File = no\n" +"\n" +"to your Device resource for this drive.\n" +msgstr "" + +#: src/stored/btape.c:1350 +msgid "Now forward spacing 1 more file.\n" +msgstr "" + +#: src/stored/btape.c:1354 +#, c-format +msgid "We should be in file 5. I am at file %d. %s\n" +msgstr "" + +#: src/stored/btape.c:1359 +msgid "" +"\n" +"=== End Forward space files test ===\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1363 +msgid "" +"\n" +"The forward space file test failed.\n" +msgstr "" + +#: src/stored/btape.c:1365 +msgid "" +"You have Fast Forward Space File enabled.\n" +"I am turning it off then retrying the test.\n" +msgstr "" + +#: src/stored/btape.c:1371 +msgid "" +"You must correct this error or Bacula will not work.\n" +"Some systems, e.g. OpenBSD, require you to set\n" +" Use MTIOCGET= no\n" +"in your device resource. Use with caution.\n" +msgstr "" + +#: src/stored/btape.c:1403 +msgid "" +"\n" +"Append test failed. Attempting again.\n" +"Setting \"Hardware End of Medium = no\n" +" and \"Fast Forward Space File = no\n" +"and retrying append test.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1411 +msgid "" +"\n" +"\n" +"It looks like the test worked this time, please add:\n" +"\n" +" Hardware End of Medium = No\n" +"\n" +" Fast Forward Space File = No\n" +"to your Device resource in the Storage conf file.\n" +msgstr "" + +#: src/stored/btape.c:1418 +msgid "" +"\n" +"\n" +"That appears *NOT* to have corrected the problem.\n" +msgstr "" + +#: src/stored/btape.c:1423 +msgid "" +"\n" +"\n" +"It looks like the append failed. Attempting again.\n" +"Setting \"BSF at EOM = yes\" and retrying append test.\n" +msgstr "" + +#: src/stored/btape.c:1428 +msgid "" +"\n" +"\n" +"It looks like the test worked this time, please add:\n" +"\n" +" Hardware End of Medium = No\n" +" Fast Forward Space File = No\n" +" BSF at EOM = yes\n" +"\n" +"to your Device resource in the Storage conf file.\n" +msgstr "" + +#: src/stored/btape.c:1439 +msgid "" +"\n" +"Append test failed.\n" +"\n" +"\n" +"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n" +"Unable to correct the problem. You MUST fix this\n" +"problem before Bacula can use your tape drive correctly\n" +"\n" +"Perhaps running Bacula in fixed block mode will work.\n" +"Do so by setting:\n" +"\n" +"Minimum Block Size = nnn\n" +"Maximum Block Size = nnn\n" +"\n" +"in your Storage daemon's Device definition.\n" +"nnn must match your tape driver's block size, which\n" +"can be determined by reading your tape manufacturers\n" +"information, and the information on your kernel dirver.\n" +"Fixed block sizes, however, are not normally an ideal solution.\n" +"\n" +"Some systems, e.g. OpenBSD, require you to set\n" +" Use MTIOCGET= no\n" +"in your device resource. Use with caution.\n" +msgstr "" + +#: src/stored/btape.c:1460 +msgid "" +"\n" +"The above Bacula scan should have output identical to what follows.\n" +"Please double check it ...\n" +"=== Sample correct output ===\n" +"1 block of 64448 bytes in file 1\n" +"End of File mark.\n" +"2 blocks of 64448 bytes in file 2\n" +"End of File mark.\n" +"3 blocks of 64448 bytes in file 3\n" +"End of File mark.\n" +"1 block of 64448 bytes in file 4\n" +"End of File mark.\n" +"Total files=4, blocks=7, bytes = 451,136\n" +"=== End sample correct output ===\n" +"\n" +"If the above scan output is not identical to the\n" +"sample output, you MUST correct the problem\n" +"or Bacula will not be able to write multiple Jobs to \n" +"the tape.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1499 +#, c-format +msgid "Bad status from fsf. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1503 +msgid "Forward spaced 1 file.\n" +msgstr "" + +#: src/stored/btape.c:1506 +#, c-format +msgid "Forward spaced %d files.\n" +msgstr "" + +#: src/stored/btape.c:1525 +msgid "Forward spaced 1 record.\n" +msgstr "" + +#: src/stored/btape.c:1528 +#, c-format +msgid "Forward spaced %d records.\n" +msgstr "" + +#: src/stored/btape.c:1573 +#, c-format +msgid "Wrote one record of %d bytes.\n" +msgstr "" + +#: src/stored/btape.c:1575 +msgid "Wrote block to device.\n" +msgstr "" + +#: src/stored/btape.c:1590 +msgid "Enter length to read: " +msgstr "" + +#: src/stored/btape.c:1595 +msgid "Bad length entered, using default of 1024 bytes.\n" +msgstr "" + +#: src/stored/btape.c:1604 +#, c-format +msgid "Read of %d bytes gives stat=%d. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1627 src/stored/btape.c:1676 +#, c-format +msgid "End of tape\n" +msgstr "" + +#: src/stored/btape.c:1632 +#, c-format +msgid "Starting scan at file %u\n" +msgstr "" + +#: src/stored/btape.c:1637 src/stored/dev.c:1314 +#, c-format +msgid "read error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/btape.c:1639 +#, c-format +msgid "Bad status from read %d. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1642 src/stored/btape.c:1656 src/stored/btape.c:1720 +#: src/stored/btape.c:1732 src/stored/btape.c:1745 src/stored/btape.c:1761 +#, c-format +msgid "1 block of %d bytes in file %d\n" +msgstr "" + +#: src/stored/btape.c:1645 src/stored/btape.c:1659 src/stored/btape.c:1723 +#: src/stored/btape.c:1735 src/stored/btape.c:1748 src/stored/btape.c:1764 +#, c-format +msgid "%d blocks of %d bytes in file %d\n" +msgstr "" + +#: src/stored/btape.c:1667 src/stored/btape.c:1739 +#, c-format +msgid "End of File mark.\n" +msgstr "" + +#: src/stored/btape.c:1688 src/stored/btape.c:1792 +#, c-format +msgid "Total files=%d, blocks=%d, bytes = %s\n" +msgstr "" + +#: src/stored/btape.c:1752 +#, c-format +msgid "Short block read.\n" +msgstr "" + +#: src/stored/btape.c:1755 +#, c-format +msgid "Error reading block. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1779 +#, c-format +msgid "" +"Blk_block: %u dev_blk=%u blen=%u First rec FI=%s SessId=%u SessTim=%u Strm=%" +"s rlen=%d\n" +msgstr "" + +#: src/stored/btape.c:1801 +#, c-format +msgid "Device status: %u. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1831 +msgid "" +"\n" +"This command simulates Bacula writing to a tape.\n" +"It requires either one or two blank tapes, which it\n" +"will label and write.\n" +"\n" +"If you have an autochanger configured, it will use\n" +"the tapes that are in slots 1 and 2, otherwise, you will\n" +"be prompted to insert the tapes when necessary.\n" +"\n" +"It will print a status approximately\n" +"every 322 MB, and write an EOF every 3.2 GB. If you have\n" +"selected the simple test option, after writing the first tape\n" +"it will rewind it and re-read the last block written.\n" +"\n" +"If you have selected the multiple tape test, when the first tape\n" +"fills, it will ask for a second, and after writing a few more \n" +"blocks, it will stop. Then it will begin re-reading the\n" +"two tapes.\n" +"\n" +"This may take a long time -- hours! ...\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1848 +msgid "" +"Do you want to run the simplified test (s) with one tape\n" +"or the complete multiple tape (m) test: (s/m) " +msgstr "" + +#: src/stored/btape.c:1851 +msgid "Simple test (single tape) selected.\n" +msgstr "" + +#: src/stored/btape.c:1854 +msgid "Multiple tape test selected.\n" +msgstr "" + +#: src/stored/btape.c:1893 +msgid "Wrote Start of Session label.\n" +msgstr "" + +#: src/stored/btape.c:1924 +#, c-format +msgid "%s Begin writing Bacula records to tape ...\n" +msgstr "" + +#: src/stored/btape.c:1926 +#, c-format +msgid "%s Begin writing Bacula records to first tape ...\n" +msgstr "" + +#: src/stored/btape.c:1967 +#, c-format +msgid "Wrote blk_block=%u, dev_blk_num=%u VolBytes=%s rate=%.1f KB/s\n" +msgstr "" + +#: src/stored/btape.c:1977 +#, c-format +msgid "%s Flush block, write EOF\n" +msgstr "" + +#: src/stored/btape.c:1988 +msgid "Not OK\n" +msgstr "" + +#: src/stored/btape.c:2018 +msgid "Set ok=false after write_block_to_device.\n" +msgstr "" + +#: src/stored/btape.c:2021 +msgid "Wrote End of Session label.\n" +msgstr "" + +#: src/stored/btape.c:2045 +#, c-format +msgid "Wrote state file last_block_num1=%d last_block_num2=%d\n" +msgstr "" + +#: src/stored/btape.c:2049 +#, c-format +msgid "Could not create state file: %s ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:2057 +#, c-format +msgid "" +"\n" +"\n" +"%s Done filling tape at %d:%d. Now beginning re-read of tape ...\n" +msgstr "" + +#: src/stored/btape.c:2061 +#, c-format +msgid "" +"\n" +"\n" +"%s Done filling tapes at %d:%d. Now beginning re-read of first tape ...\n" +msgstr "" + +#: src/stored/btape.c:2100 +msgid "" +"\n" +"The state file level has changed. You must redo\n" +"the fill command.\n" +msgstr "" + +#: src/stored/btape.c:2106 +#, c-format +msgid "" +"\n" +"Could not find the state file: %s ERR=%s\n" +"You must redo the fill command.\n" +msgstr "" + +#: src/stored/btape.c:2162 +msgid "Mount first tape. Press enter when ready: " +msgstr "" + +#: src/stored/btape.c:2177 +msgid "Rewinding.\n" +msgstr "" + +#: src/stored/btape.c:2182 +#, c-format +msgid "Reading the first 10000 records from %u:%u.\n" +msgstr "" + +#: src/stored/btape.c:2186 src/stored/btape.c:2251 +#, c-format +msgid "Reposition from %u:%u to %u:%u\n" +msgstr "" + +#: src/stored/btape.c:2189 src/stored/btape.c:2238 src/stored/btape.c:2254 +#, c-format +msgid "Reposition error. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:2192 +#, c-format +msgid "Reading block %u.\n" +msgstr "" + +#: src/stored/btape.c:2194 src/stored/btape.c:2243 src/stored/btape.c:2259 +#, c-format +msgid "Error reading block: ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:2199 +msgid "" +"\n" +"The last block on the tape matches. Test succeeded.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:2201 +msgid "" +"\n" +"The last block of the first tape matches.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:2224 +msgid "Mount second tape. Press enter when ready: " +msgstr "" + +#: src/stored/btape.c:2236 +#, c-format +msgid "Reposition from %u:%u to 0:1\n" +msgstr "" + +#: src/stored/btape.c:2241 src/stored/btape.c:2257 +#, c-format +msgid "Reading block %d.\n" +msgstr "" + +#: src/stored/btape.c:2247 +msgid "" +"\n" +"The first block on the second tape matches.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:2263 +msgid "" +"\n" +"The last block on the second tape matches. Test succeeded.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:2278 +#, c-format +msgid "10000 records read now at %d:%d\n" +msgstr "" + +#: src/stored/btape.c:2301 src/stored/btape.c:2312 src/stored/btape.c:2360 +msgid "Last block written" +msgstr "" + +#: src/stored/btape.c:2303 src/stored/btape.c:2313 +msgid "Block read back" +msgstr "" + +#: src/stored/btape.c:2304 +#, c-format +msgid "" +"\n" +"\n" +"The blocks differ at byte %u\n" +msgstr "" + +#: src/stored/btape.c:2305 +msgid "" +"\n" +"\n" +"!!!! The last block written and the block\n" +"that was read back differ. The test FAILED !!!!\n" +"This must be corrected before you use Bacula\n" +"to write multi-tape Volumes.!!!!\n" +msgstr "" + +#: src/stored/btape.c:2344 +#, c-format +msgid "Last block at: %u:%u this_dev_block_num=%d\n" +msgstr "" + +#: src/stored/btape.c:2358 +#, c-format +msgid "Block not written: FileIndex=%u blk_block=%u Size=%u\n" +msgstr "" + +#: src/stored/btape.c:2362 +msgid "Block not written" +msgstr "" + +#: src/stored/btape.c:2377 +#, c-format +msgid "End of tape %d:%d. VolumeCapacity=%s. Write rate = %.1f KB/s\n" +msgstr "" + +#: src/stored/btape.c:2427 +msgid "Test writing blocks of 64512 bytes to tape.\n" +msgstr "" + +#: src/stored/btape.c:2429 +msgid "How many blocks do you want to write? (1000): " +msgstr "" + +#: src/stored/btape.c:2444 +#, c-format +msgid "Begin writing %d Bacula blocks to tape ...\n" +msgstr "" + +#: src/stored/btape.c:2496 +#, c-format +msgid "Begin writing raw blocks of %u bytes.\n" +msgstr "" + +#: src/stored/btape.c:2520 +#, c-format +msgid "Write failed at block %u. stat=%d ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:2529 +msgid "test autochanger" +msgstr "" + +#: src/stored/btape.c:2530 +msgid "backspace file" +msgstr "" + +#: src/stored/btape.c:2531 +msgid "backspace record" +msgstr "" + +#: src/stored/btape.c:2532 +msgid "list device capabilities" +msgstr "" + +#: src/stored/btape.c:2533 +msgid "clear tape errors" +msgstr "" + +#: src/stored/btape.c:2534 +msgid "go to end of Bacula data for append" +msgstr "" + +#: src/stored/btape.c:2535 +msgid "go to the physical end of medium" +msgstr "" + +#: src/stored/btape.c:2536 +msgid "fill tape, write onto second volume" +msgstr "" + +#: src/stored/btape.c:2537 +msgid "read filled tape" +msgstr "" + +#: src/stored/btape.c:2538 +msgid "forward space a file" +msgstr "" + +#: src/stored/btape.c:2539 +msgid "forward space a record" +msgstr "" + +#: src/stored/btape.c:2541 +msgid "write a Bacula label to the tape" +msgstr "" + +#: src/stored/btape.c:2542 +msgid "load a tape" +msgstr "" + +#: src/stored/btape.c:2543 +msgid "quit btape" +msgstr "" + +#: src/stored/btape.c:2544 +msgid "use write() to fill tape" +msgstr "" + +#: src/stored/btape.c:2545 +msgid "read and print the Bacula tape label" +msgstr "" + +#: src/stored/btape.c:2546 +msgid "test record handling functions" +msgstr "" + +#: src/stored/btape.c:2547 +msgid "rewind the tape" +msgstr "" + +#: src/stored/btape.c:2548 +msgid "read() tape block by block to EOT and report" +msgstr "" + +#: src/stored/btape.c:2549 +msgid "Bacula read block by block to EOT and report" +msgstr "" + +#: src/stored/btape.c:2550 +msgid "print tape status" +msgstr "" + +#: src/stored/btape.c:2551 +msgid "General test Bacula tape functions" +msgstr "" + +#: src/stored/btape.c:2552 +msgid "write an EOF on the tape" +msgstr "" + +#: src/stored/btape.c:2553 +msgid "write a single Bacula block" +msgstr "" + +#: src/stored/btape.c:2554 +msgid "read a single record" +msgstr "" + +#: src/stored/btape.c:2555 +msgid "read a single Bacula block" +msgstr "" + +#: src/stored/btape.c:2556 +msgid "quick fill command" +msgstr "" + +#: src/stored/btape.c:2577 +#, c-format +msgid "\"%s\" is an invalid command\n" +msgstr "" + +#: src/stored/btape.c:2586 +#, c-format +msgid "Interactive commands:\n" +msgstr "" + +#: src/stored/btape.c:2597 +#, c-format +msgid "" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: btape \n" +" -b specify bootstrap file\n" +" -c set configuration file to file\n" +" -d set debug level to nn\n" +" -p proceed inspite of I/O errors\n" +" -s turn off signals\n" +" -v be verbose\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:2682 +#, c-format +msgid "Mount second Volume on device %s and press return when ready: " +msgstr "" + +#: src/stored/btape.c:2709 +#, c-format +msgid "Mount blank Volume on device %s and press return when ready: " +msgstr "" + +#: src/stored/btape.c:2727 +#, c-format +msgid "End of Volume \"%s\" %d records.\n" +msgstr "" + +#: src/stored/btape.c:2740 +#, c-format +msgid "Read block=%u, VolBytes=%s rate=%.1f KB/s\n" +msgstr "" + +#: src/stored/btape.c:2752 src/stored/mount.c:627 +#, c-format +msgid "Cannot open Dev=%s, Vol=%s\n" +msgstr "" + +#: src/stored/butil.c:59 +msgid "Nohdr," +msgstr "" + +#: src/stored/butil.c:62 +msgid "partial," +msgstr "" + +#: src/stored/butil.c:65 +msgid "empty," +msgstr "" + +#: src/stored/butil.c:68 +msgid "Nomatch," +msgstr "" + +#: src/stored/butil.c:71 +msgid "cont," +msgstr "" + +#: src/stored/butil.c:147 +msgid "Volume name or names is too long. Please use a .bsr file.\n" +msgstr "" + +#: src/stored/butil.c:167 +#, c-format +msgid "Cannot find device \"%s\" in config file %s.\n" +msgstr "" + +#: src/stored/butil.c:174 +#, c-format +msgid "Cannot init device %s\n" +msgstr "" + +#: src/stored/butil.c:194 +#, c-format +msgid "Cannot open %s\n" +msgstr "" + +#: src/stored/butil.c:277 +#, c-format +msgid "Could not find device \"%s\" in config file %s.\n" +msgstr "" + +#: src/stored/butil.c:282 +#, c-format +msgid "Using device: \"%s\" for reading.\n" +msgstr "" + +#: src/stored/butil.c:285 +#, c-format +msgid "Using device: \"%s\" for writing.\n" +msgstr "" + +#: src/stored/butil.c:301 +msgid "Unexpected End of Data\n" +msgstr "" + +#: src/stored/butil.c:303 +msgid "Unexpected End of Tape\n" +msgstr "" + +#: src/stored/butil.c:305 +msgid "Unexpected End of File\n" +msgstr "" + +#: src/stored/butil.c:307 +msgid "Tape Door is Open\n" +msgstr "" + +#: src/stored/butil.c:309 +msgid "Unexpected Tape is Off-line\n" +msgstr "" + +#: src/stored/dev.c:119 +#, c-format +msgid "Unable to stat device %s: ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:130 +#, c-format +msgid "" +"%s is an unknown device type. Must be tape or directory\n" +" or have RequiresMount=yes for DVD. st_mode=%x\n" +msgstr "" + +#: src/stored/dev.c:189 +#, c-format +msgid "Unable to stat mount point %s: ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:195 +msgid "" +"Mount and unmount commands must defined for a device which requires mount.\n" +msgstr "" + +#: src/stored/dev.c:198 +msgid "Write part command must be defined for a device which requires mount.\n" +msgstr "" + +#: src/stored/dev.c:203 +#, c-format +msgid "Block size %u on device %s is too large, using default %u\n" +msgstr "" + +#: src/stored/dev.c:208 +#, c-format +msgid "Max block size %u not multiple of device %s block size.\n" +msgstr "" + +#: src/stored/dev.c:224 src/stored/dev.c:230 +#, c-format +msgid "Unable to init cond variable: ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:326 +msgid "Illegal mode given to open dev.\n" +msgstr "" + +#: src/stored/dev.c:421 src/stored/device.c:325 +#, c-format +msgid "Unable to open device %s: ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:456 +#, c-format +msgid "Could not open file device %s. No Volume name given.\n" +msgstr "" + +#: src/stored/dev.c:479 src/stored/dev.c:647 +#, c-format +msgid "Could not open: %s, ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:523 +#, c-format +msgid "Could not open DVD device %s. No Volume name given.\n" +msgstr "" + +#: src/stored/dev.c:572 +#, c-format +msgid "The DVD in device %s contains data, please blank it before writing.\n" +msgstr "" + +#: src/stored/dev.c:593 +#, c-format +msgid "Unable to stat DVD part 1 file %s: ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:601 +#, c-format +msgid "DVD part 1 is not a regular file %s.\n" +msgstr "" + +#: src/stored/dev.c:621 +#, c-format +msgid "There is no valid DVD in device %s.\n" +msgstr "" + +#: src/stored/dev.c:627 +#, c-format +msgid "Could not mount DVD device %s.\n" +msgstr "" + +#: src/stored/dev.c:677 +#, c-format +msgid "Could not fstat: %s, ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:711 +#, c-format +msgid "Bad call to rewind. Device %s not open\n" +msgstr "" + +#: src/stored/dev.c:750 +#, c-format +msgid "No tape loaded or drive offline on %s.\n" +msgstr "" + +#: src/stored/dev.c:760 +#, c-format +msgid "Rewind error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:770 src/stored/dev.c:848 src/stored/dev.c:985 +#: src/stored/dev.c:1561 +#, c-format +msgid "lseek error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:819 +#, c-format +msgid "Bad call to eod. Device %s not open\n" +msgstr "" + +#: src/stored/dev.c:884 +#, c-format +msgid "ioctl MTEOM error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:893 src/stored/dev.c:1026 +#, c-format +msgid "ioctl MTIOCGET error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:971 +msgid "Bad device call. Device not open\n" +msgstr "" + +#: src/stored/dev.c:984 +#, c-format +msgid "Seek error: ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:1021 +msgid " Bacula status:" +msgstr "" + +#: src/stored/dev.c:1022 src/stored/dev.c:1105 src/stored/dev.c:1107 +#, c-format +msgid " file=%d block=%d\n" +msgstr "" + +#: src/stored/dev.c:1030 +msgid " Device status:" +msgstr "" + +#: src/stored/dev.c:1129 +msgid "Bad call to load_dev. Device not open\n" +msgstr "" + +#: src/stored/dev.c:1140 src/stored/dev.c:1153 +#, c-format +msgid "ioctl MTLOAD error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:1184 +#, c-format +msgid "ioctl MTOFFL error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:1225 +msgid "Bad call to fsf. Device not open\n" +msgstr "" + +#: src/stored/dev.c:1236 src/stored/dev.c:1363 +#, c-format +msgid "Device %s at End of Tape.\n" +msgstr "" + +#: src/stored/dev.c:1267 src/stored/dev.c:1343 +#, c-format +msgid "ioctl MTFSF error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:1392 +msgid "Bad call to bsf. Device not open\n" +msgstr "" + +#: src/stored/dev.c:1398 +#, c-format +msgid "Device %s cannot BSF because it is not a tape.\n" +msgstr "" + +#: src/stored/dev.c:1415 +#, c-format +msgid "ioctl MTBSF error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:1434 +msgid "Bad call to fsr. Device not open\n" +msgstr "" + +#: src/stored/dev.c:1444 +#, c-format +msgid "ioctl MTFSR not permitted on %s.\n" +msgstr "" + +#: src/stored/dev.c:1472 +#, c-format +msgid "ioctl MTFSR %d error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:1490 +msgid "Bad call to bsr_dev. Device not open\n" +msgstr "" + +#: src/stored/dev.c:1500 +#, c-format +msgid "ioctl MTBSR not permitted on %s.\n" +msgstr "" + +#: src/stored/dev.c:1514 +#, c-format +msgid "ioctl MTBSR error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:1550 +msgid "Bad call to reposition. Device not open\n" +msgstr "" + +#: src/stored/dev.c:1629 +msgid "Bad call to weof_dev. Device not open\n" +msgstr "" + +#: src/stored/dev.c:1639 +msgid "Attempt to WEOF on non-appendable Volume\n" +msgstr "" + +#: src/stored/dev.c:1657 +#, c-format +msgid "ioctl MTWEOF error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:1756 +#, c-format +msgid "unknown func code %d" +msgstr "" + +#: src/stored/dev.c:1762 +#, c-format +msgid "I/O function \"%s\" not supported on this device.\n" +msgstr "" + +#: src/stored/dev.c:1917 +#, c-format +msgid "Unable to truncate device %s. ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:2016 src/stored/dev.c:2021 +#, c-format +msgid "Device %s cannot be %smounted. ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:2429 +#, c-format +msgid "Unable to set eotmodel on device %s: ERR=%s\n" +msgstr "" + +#: src/stored/device.c:120 +#, c-format +msgid "End of medium on Volume \"%s\" Bytes=%s Blocks=%s at %s.\n" +msgstr "" + +#: src/stored/device.c:136 +#, c-format +msgid "New volume \"%s\" mounted on device %s at %s.\n" +msgstr "" + +#: src/stored/device.c:148 +#, c-format +msgid "write_block_to_device Volume label failed. ERR=%s" +msgstr "" + +#: src/stored/device.c:183 +#, c-format +msgid "write_block_to_device overflow block failed. ERR=%s" +msgstr "" + +#: src/stored/device.c:327 +#, c-format +msgid "Unable to open archive %s: ERR=%s\n" +msgstr "" + +#: src/stored/dircmd.c:154 +msgid "Connection request failed.\n" +msgstr "" + +#: src/stored/dircmd.c:163 +#, c-format +msgid "Invalid connection. Len=%d\n" +msgstr "" + +#: src/stored/dircmd.c:274 +#, c-format +msgid "3991 Bad setdebug command: %s\n" +msgstr "" + +#: src/stored/dircmd.c:295 +#, c-format +msgid "3904 Job %s not found.\n" +msgstr "" + +#: src/stored/dircmd.c:321 +#, c-format +msgid "Job %s marked to be canceled.\n" +msgstr "" + +#: src/stored/dircmd.c:322 +#, c-format +msgid "3000 Job %s marked to be canceled.\n" +msgstr "" + +#: src/stored/dircmd.c:326 +msgid "3903 Error scanning cancel command.\n" +msgstr "" + +#: src/stored/dircmd.c:402 src/stored/dircmd.c:758 src/stored/dircmd.c:848 +#: src/stored/dircmd.c:920 src/stored/dircmd.c:983 src/stored/dircmd.c:1026 +#, c-format +msgid "3999 Device \"%s\" not found or could not be opened.\n" +msgstr "" + +#: src/stored/dircmd.c:407 +#, c-format +msgid "3903 Error scanning label command: %s\n" +msgstr "" + +#: src/stored/dircmd.c:457 +#, c-format +msgid "3910 Unable to open device %s: ERR=%s\n" +msgstr "" + +#: src/stored/dircmd.c:474 +#, c-format +msgid "3920 Cannot label Volume because it is already labeled: \"%s\"\n" +msgstr "" + +#: src/stored/dircmd.c:481 +msgid "3921 Wrong volume mounted.\n" +msgstr "" + +#: src/stored/dircmd.c:485 +msgid "3922 Cannot relabel an ANSI/IBM labeled Volume.\n" +msgstr "" + +#: src/stored/dircmd.c:493 +#, c-format +msgid "3912 Failed to label Volume: ERR=%s\n" +msgstr "" + +#: src/stored/dircmd.c:503 +#, c-format +msgid "3914 Failed to label Volume (no media): ERR=%s\n" +msgstr "" + +#: src/stored/dircmd.c:506 +#, c-format +msgid "3913 Cannot label Volume. Unknown status %d from read_volume_label()\n" +msgstr "" + +#: src/stored/dircmd.c:539 +#, c-format +msgid "3001 Mounted Volume: %s\n" +msgstr "" + +#: src/stored/dircmd.c:543 src/stored/dircmd.c:1062 +#, c-format +msgid "" +"3902 Cannot mount Volume on Storage Device %s because:\n" +"%s" +msgstr "" + +#: src/stored/dircmd.c:571 src/stored/reserve.c:1073 +#, c-format +msgid "" +"\n" +" Device \"%s\" requested by DIR could not be opened or does not exist.\n" +msgstr "" + +#: src/stored/dircmd.c:593 src/stored/reserve.c:1069 +#, c-format +msgid "" +"\n" +" Device \"%s\" in changer \"%s\" requested by DIR could not be opened or " +"does not exist.\n" +msgstr "" + +#: src/stored/dircmd.c:668 src/stored/dircmd.c:725 +#, c-format +msgid "3901 open device failed: ERR=%s\n" +msgstr "" + +#: src/stored/dircmd.c:688 src/stored/dircmd.c:716 +#, c-format +msgid "3001 Device %s is mounted with Volume \"%s\"\n" +msgstr "" + +#: src/stored/dircmd.c:691 src/stored/dircmd.c:719 src/stored/dircmd.c:734 +#, c-format +msgid "" +"3905 Device %s open but no Bacula volume is mounted.\n" +"If this is not a blank tape, try unmounting and remounting the Volume.\n" +msgstr "" + +#: src/stored/dircmd.c:701 +#, c-format +msgid "3001 Device %s is doing acquire.\n" +msgstr "" + +#: src/stored/dircmd.c:706 src/stored/dircmd.c:820 +#, c-format +msgid "3903 Device %s is being labeled.\n" +msgstr "" + +#: src/stored/dircmd.c:731 +#, c-format +msgid "3001 Device %s is already mounted with Volume \"%s\"\n" +msgstr "" + +#: src/stored/dircmd.c:740 +#, c-format +msgid "3002 Device %s is mounted.\n" +msgstr "" + +#: src/stored/dircmd.c:743 src/stored/dircmd.c:793 src/stored/dircmd.c:808 +#: src/stored/dircmd.c:839 +#, c-format +msgid "3907 %s" +msgstr "" + +#: src/stored/dircmd.c:746 +#, c-format +msgid "3906 File device %s is always mounted.\n" +msgstr "" + +#: src/stored/dircmd.c:752 +#, c-format +msgid "3905 Bizarre wait state %d\n" +msgstr "" + +#: src/stored/dircmd.c:762 +#, c-format +msgid "3909 Error scanning mount command: %s\n" +msgstr "" + +#: src/stored/dircmd.c:790 src/stored/dircmd.c:841 +#, c-format +msgid "3002 Device %s unmounted.\n" +msgstr "" + +#: src/stored/dircmd.c:797 +#, c-format +msgid "3901 Device %s is already unmounted.\n" +msgstr "" + +#: src/stored/dircmd.c:811 +#, c-format +msgid "3001 Device %s unmounted.\n" +msgstr "" + +#: src/stored/dircmd.c:816 +#, c-format +msgid "3902 Device %s is busy in acquire.\n" +msgstr "" + +#: src/stored/dircmd.c:853 +#, c-format +msgid "3907 Error scanning unmount command: %s\n" +msgstr "" + +#: src/stored/dircmd.c:884 +#, c-format +msgid "3921 Device %s already released.\n" +msgstr "" + +#: src/stored/dircmd.c:891 +#, c-format +msgid "3922 Device %s waiting for sysop.\n" +msgstr "" + +#: src/stored/dircmd.c:897 +#, c-format +msgid "3922 Device %s waiting for mount.\n" +msgstr "" + +#: src/stored/dircmd.c:901 +#, c-format +msgid "3923 Device %s is busy in acquire.\n" +msgstr "" + +#: src/stored/dircmd.c:905 +#, c-format +msgid "3914 Device %s is being labeled.\n" +msgstr "" + +#: src/stored/dircmd.c:914 +#, c-format +msgid "3022 Device %s released.\n" +msgstr "" + +#: src/stored/dircmd.c:925 +#, c-format +msgid "3927 Error scanning release command: %s\n" +msgstr "" + +#: src/stored/dircmd.c:970 +#, c-format +msgid "3995 Device %s is not an autochanger.\n" +msgstr "" + +#: src/stored/dircmd.c:987 +#, c-format +msgid "3908 Error scanning autocharger drives/list/slots command: %s\n" +msgstr "" + +#: src/stored/dircmd.c:1030 +#, c-format +msgid "3909 Error scanning readlabel command: %s\n" +msgstr "" + +#: src/stored/dircmd.c:1058 +#, c-format +msgid "3001 Volume=%s Slot=%d\n" +msgstr "" + +#: src/stored/dircmd.c:1090 +#, c-format +msgid "3931 Device %s is BLOCKED. user unmounted.\n" +msgstr "" + +#: src/stored/dircmd.c:1094 +#, c-format +msgid "" +"3932 Device %s is BLOCKED. user unmounted during wait for media/mount.\n" +msgstr "" + +#: src/stored/dircmd.c:1098 +#, c-format +msgid "3933 Device %s is BLOCKED waiting for media.\n" +msgstr "" + +#: src/stored/dircmd.c:1102 +#, c-format +msgid "3934 Device %s is being initialized.\n" +msgstr "" + +#: src/stored/dircmd.c:1106 +#, c-format +msgid "3935 Device %s is blocked labeling a Volume.\n" +msgstr "" + +#: src/stored/dircmd.c:1110 +#, c-format +msgid "3935 Device %s is blocked for unknown reason.\n" +msgstr "" + +#: src/stored/dircmd.c:1115 +#, c-format +msgid "3936 Device %s is busy reading.\n" +msgstr "" + +#: src/stored/dircmd.c:1118 +#, c-format +msgid "3937 Device %s is busy with %d writer(s).\n" +msgstr "" + +#: src/stored/dvd.c:112 +msgid "No FreeSpace command defined.\n" +msgstr "" + +#: src/stored/dvd.c:146 +#, c-format +msgid "Cannot run free space command. Results=%s ERR=%s\n" +msgstr "" + +#: src/stored/dvd.c:262 +#, c-format +msgid "Error writing part %d to the DVD: ERR=%s\n" +msgstr "" + +#: src/stored/dvd.c:264 +#, c-format +msgid "Error while writing current part to the DVD: %s" +msgstr "" + +#: src/stored/dvd.c:274 +#, c-format +msgid "Part %d (%lld bytes) written to DVD.\n" +msgstr "" + +#: src/stored/dvd.c:293 +#, c-format +msgid "Remaining free space %s on %s\n" +msgstr "" + +#: src/stored/dvd.c:359 +#, c-format +msgid "Next Volume part already exists on DVD. Cannot continue: %s\n" +msgstr "" + +#: src/stored/dvd.c:378 +#, c-format +msgid "open_next_part can't unlink existing part %s, ERR=%s\n" +msgstr "" + +#: src/stored/dvd.c:579 +#, c-format +msgid "" +"Error writing. Current part less than total number of parts (%d/%d, device=%" +"s)\n" +msgstr "" + +#: src/stored/dvd.c:586 +#, c-format +msgid "Unable to write last on %s: ERR=%s\n" +msgstr "" + +#: src/stored/fd_cmds.c:368 +msgid "Error parsing bootstrap file.\n" +msgstr "" + +#: src/stored/job.c:207 +#, c-format +msgid "Job name not found: %s\n" +msgstr "" + +#: src/stored/job.c:218 +#, c-format +msgid "Hey!!!! JobId %u Job %s already authenticated.\n" +msgstr "" + +#: src/stored/job.c:229 +msgid "Unable to authenticate File daemon\n" +msgstr "" + +#: src/stored/job.c:351 +msgid "In free_jcr(), but still attached to device!!!!\n" +msgstr "" + +#: src/stored/label.c:91 src/stored/label.c:132 src/stored/label.c:226 +#, c-format +msgid "Wrong Volume mounted on device %s: Wanted %s have %s\n" +msgstr "" + +#: src/stored/label.c:98 src/stored/label.c:135 src/stored/label.c:208 +#, c-format +msgid "Too many tries: %s" +msgstr "" + +#: src/stored/label.c:114 +#, c-format +msgid "Couldn't rewind device %s: ERR=%s\n" +msgstr "" + +#: src/stored/label.c:152 +#, c-format +msgid "" +"Requested Volume \"%s\" on %s is not a Bacula labeled Volume, because: ERR=%s" +msgstr "" + +#: src/stored/label.c:157 +msgid "Could not read Volume label from block.\n" +msgstr "" + +#: src/stored/label.c:160 +#, c-format +msgid "Could not unserialize Volume label: ERR=%s\n" +msgstr "" + +#: src/stored/label.c:165 +#, c-format +msgid "Volume Header Id bad: %s\n" +msgstr "" + +#: src/stored/label.c:193 +#, c-format +msgid "Volume on %s has wrong Bacula version. Wanted %d got %d\n" +msgstr "" + +#: src/stored/label.c:204 +#, c-format +msgid "Volume on %s has bad Bacula label type: %x\n" +msgstr "" + +#: src/stored/label.c:217 src/stored/label.c:402 +#, c-format +msgid "Could not reserve volume %s on %s\n" +msgstr "" + +#: src/stored/label.c:290 +#, c-format +msgid "Cannot write Volume label to block for device %s\n" +msgstr "" + +#: src/stored/label.c:449 +#, c-format +msgid "Rewind error on device %s: ERR=%s\n" +msgstr "" + +#: src/stored/label.c:455 +#, c-format +msgid "Truncate error on device %s: ERR=%s\n" +msgstr "" + +#: src/stored/label.c:461 +#, c-format +msgid "Failed to re-open DVD after truncate on device %s: ERR=%s\n" +msgstr "" + +#: src/stored/label.c:484 +#, c-format +msgid "Unable to write device %s: ERR=%s\n" +msgstr "" + +#: src/stored/label.c:512 +#, c-format +msgid "Recycled volume \"%s\" on device %s, all previous data lost.\n" +msgstr "" + +#: src/stored/label.c:515 +#, c-format +msgid "Wrote label to prelabeled Volume \"%s\" on device %s\n" +msgstr "" + +#: src/stored/label.c:719 +#, c-format +msgid "Bad session label = %d\n" +msgstr "" + +#: src/stored/label.c:737 src/stored/label.c:744 +#, c-format +msgid "Error writing Session label to %s: %s\n" +msgstr "" + +#: src/stored/label.c:779 +#, c-format +msgid "Expecting Volume Label, got FI=%s Stream=%s len=%d\n" +msgstr "" + +#: src/stored/label.c:906 +#, c-format +msgid "Unknown %d" +msgstr "" + +#: src/stored/label.c:910 +#, c-format +msgid "" +"\n" +"Volume Label:\n" +"Id : %sVerNo : %d\n" +"VolName : %s\n" +"PrevVolName : %s\n" +"VolFile : %d\n" +"LabelType : %s\n" +"LabelSize : %d\n" +"PoolName : %s\n" +"MediaType : %s\n" +"PoolType : %s\n" +"HostName : %s\n" +msgstr "" + +#: src/stored/label.c:932 +#, c-format +msgid "Date label written: %s\n" +msgstr "" + +#: src/stored/label.c:938 +#, c-format +msgid "Date label written: %04d-%02d-%02d at %02d:%02d\n" +msgstr "" + +#: src/stored/label.c:958 +#, c-format +msgid "" +"\n" +"%s Record:\n" +"JobId : %d\n" +"VerNum : %d\n" +"PoolName : %s\n" +"PoolType : %s\n" +"JobName : %s\n" +"ClientName : %s\n" +msgstr "" + +#: src/stored/label.c:971 +#, c-format +msgid "" +"Job (unique name) : %s\n" +"FileSet : %s\n" +"JobType : %c\n" +"JobLevel : %c\n" +msgstr "" + +#: src/stored/label.c:980 +#, c-format +msgid "" +"JobFiles : %s\n" +"JobBytes : %s\n" +"StartBlock : %s\n" +"EndBlock : %s\n" +"StartFile : %s\n" +"EndFile : %s\n" +"JobErrors : %s\n" +"JobStatus : %c\n" +msgstr "" + +#: src/stored/label.c:1001 +#, c-format +msgid "Date written : %s\n" +msgstr "" + +#: src/stored/label.c:1006 +#, c-format +msgid "Date written : %04d-%02d-%02d at %02d:%02d\n" +msgstr "" + +#: src/stored/label.c:1025 +msgid "Fresh Volume" +msgstr "" + +#: src/stored/label.c:1028 +msgid "Volume" +msgstr "" + +#: src/stored/label.c:1037 src/stored/read_record.c:402 +msgid "End of Media" +msgstr "" + +#: src/stored/label.c:1040 +msgid "End of Tape" +msgstr "" + +#: src/stored/label.c:1060 src/stored/label.c:1068 src/stored/label.c:1101 +#, c-format +msgid "%s Record: File:blk=%u:%u SessId=%d SessTime=%d JobId=%d DataLen=%d\n" +msgstr "" + +#: src/stored/label.c:1065 +msgid "End of physical tape.\n" +msgstr "" + +#: src/stored/label.c:1080 src/stored/label.c:1089 +#, c-format +msgid "%s Record: File:blk=%u:%u SessId=%d SessTime=%d JobId=%d\n" +msgstr "" + +#: src/stored/label.c:1082 +#, c-format +msgid " Job=%s Date=%s Level=%c Type=%c\n" +msgstr "" + +#: src/stored/label.c:1091 +#, c-format +msgid " Date=%s Level=%c Type=%c Files=%s Bytes=%s Errors=%d Status=%c\n" +msgstr "" + +#: src/stored/mac.c:79 +msgid "Read and write devices not properly initialized.\n" +msgstr "" + +#: src/stored/mac.c:87 +#, c-format +msgid "No Volume names found for %s.\n" +msgstr "" + +#: src/stored/mount.c:90 +#, c-format +msgid "Too many errors trying to mount device %s.\n" +msgstr "" + +#: src/stored/mount.c:96 +#, c-format +msgid "Job %d canceled.\n" +msgstr "" + +#: src/stored/mount.c:211 +#, c-format +msgid "Could not open device %s: ERR=%s\n" +msgstr "" + +#: src/stored/mount.c:254 src/stored/mount.c:533 +#, c-format +msgid "Volume \"%s\" not on device %s.\n" +msgstr "" + +#: src/stored/mount.c:292 +#, c-format +msgid "" +"Director wanted Volume \"%s\".\n" +" Current Volume \"%s\" not acceptable because:\n" +" %s" +msgstr "" + +#: src/stored/mount.c:375 +#, c-format +msgid "Volume \"%s\" previously written, moving to end of data.\n" +msgstr "" + +#: src/stored/mount.c:378 +#, c-format +msgid "Unable to position to end of data on device %s: ERR=%s\n" +msgstr "" + +#: src/stored/mount.c:386 +#, c-format +msgid "Ready to append to end of Volume \"%s\" part=%d size=%s\n" +msgstr "" + +#: src/stored/mount.c:390 +#, c-format +msgid "" +"Bacula cannot write on DVD Volume \"%s\" because: The sizes do not match! " +"Volume=%s Catalog=%s\n" +msgstr "" + +#: src/stored/mount.c:404 +#, c-format +msgid "Ready to append to end of Volume \"%s\" at file=%d.\n" +msgstr "" + +#: src/stored/mount.c:407 +#, c-format +msgid "" +"Bacula cannot write on tape Volume \"%s\" because:\n" +"The number of files mismatch! Volume=%u Catalog=%u\n" +msgstr "" + +#: src/stored/mount.c:418 +#, c-format +msgid "Ready to append to end of Volume \"%s\" size=%s\n" +msgstr "" + +#: src/stored/mount.c:422 +#, c-format +msgid "" +"Bacula cannot write on disk Volume \"%s\" because: The sizes do not match! " +"Volume=%s Catalog=%s\n" +msgstr "" + +#: src/stored/mount.c:452 +#, c-format +msgid "Ready to append to end of Volume \"%s\" at file address=%u.\n" +msgstr "" + +#: src/stored/mount.c:456 +#, c-format +msgid "" +"Bacula cannot write on Volume \"%s\" because:\n" +"The EOD file address is wrong: Volume file address=%u != Catalog Endblock=%u" +"(+1)\n" +"Perhaps You removed the DVD last part in spool directory.\n" +msgstr "" + +#: src/stored/mount.c:523 +#, c-format +msgid "Labeled new Volume \"%s\" on device %s.\n" +msgstr "" + +#: src/stored/mount.c:528 +#, c-format +msgid "Device %s not configured to autolabel Volumes.\n" +msgstr "" + +#: src/stored/mount.c:548 +#, c-format +msgid "Marking Volume \"%s\" in Error in Catalog.\n" +msgstr "" + +#: src/stored/mount.c:564 +#, c-format +msgid "" +"Autochanger Volume \"%s\" not found in slot %d.\n" +" Setting InChanger to zero in catalog.\n" +msgstr "" + +#: src/stored/mount.c:583 +msgid "Hey!!!!! WroteVol non-zero !!!!!\n" +msgstr "" + +#: src/stored/parse_bsr.c:118 src/stored/parse_bsr.c:122 +#, c-format +msgid "" +"Bootstrap file error: %s\n" +" : Line %d, col %d of file %s\n" +"%s\n" +msgstr "" + +#: src/stored/parse_bsr.c:144 +#, c-format +msgid "Cannot open bootstrap file %s: %s\n" +msgstr "" + +#: src/stored/parse_bsr.c:274 +#, c-format +msgid "MediaType %s in bsr at inappropriate place.\n" +msgstr "" + +#: src/stored/parse_bsr.c:295 +#, c-format +msgid "Device \"%s\" in bsr at inappropriate place.\n" +msgstr "" + +#: src/stored/parse_bsr.c:452 +msgid "JobType not yet implemented\n" +msgstr "" + +#: src/stored/parse_bsr.c:460 +msgid "JobLevel not yet implemented\n" +msgstr "" + +#: src/stored/parse_bsr.c:643 +#, c-format +msgid "Slot %d in bsr at inappropriate place.\n" +msgstr "" + +#: src/stored/parse_bsr.c:667 +#, c-format +msgid "VolFile : %u-%u\n" +msgstr "" + +#: src/stored/parse_bsr.c:675 +#, c-format +msgid "VolBlock : %u-%u\n" +msgstr "" + +#: src/stored/parse_bsr.c:685 +#, c-format +msgid "FileIndex : %u\n" +msgstr "" + +#: src/stored/parse_bsr.c:687 +#, c-format +msgid "FileIndex : %u-%u\n" +msgstr "" + +#: src/stored/parse_bsr.c:697 +#, c-format +msgid "JobId : %u\n" +msgstr "" + +#: src/stored/parse_bsr.c:699 +#, c-format +msgid "JobId : %u-%u\n" +msgstr "" + +#: src/stored/parse_bsr.c:709 +#, c-format +msgid "SessId : %u\n" +msgstr "" + +#: src/stored/parse_bsr.c:711 +#, c-format +msgid "SessId : %u-%u\n" +msgstr "" + +#: src/stored/parse_bsr.c:720 +#, c-format +msgid "VolumeName : %s\n" +msgstr "" + +#: src/stored/parse_bsr.c:721 +#, c-format +msgid " MediaType : %s\n" +msgstr "" + +#: src/stored/parse_bsr.c:722 +#, c-format +msgid " Device : %s\n" +msgstr "" + +#: src/stored/parse_bsr.c:723 +#, c-format +msgid " Slot : %d\n" +msgstr "" + +#: src/stored/parse_bsr.c:732 +#, c-format +msgid "Client : %s\n" +msgstr "" + +#: src/stored/parse_bsr.c:740 +#, c-format +msgid "Job : %s\n" +msgstr "" + +#: src/stored/parse_bsr.c:748 +#, c-format +msgid "SessTime : %u\n" +msgstr "" + +#: src/stored/parse_bsr.c:759 +msgid "BSR is NULL\n" +msgstr "" + +#: src/stored/parse_bsr.c:763 +#, c-format +msgid "Next : 0x%x\n" +msgstr "" + +#: src/stored/parse_bsr.c:764 +#, c-format +msgid "Root bsr : 0x%x\n" +msgstr "" + +#: src/stored/parse_bsr.c:775 +#, c-format +msgid "count : %u\n" +msgstr "" + +#: src/stored/parse_bsr.c:776 +#, c-format +msgid "found : %u\n" +msgstr "" + +#: src/stored/parse_bsr.c:779 +#, c-format +msgid "done : %s\n" +msgstr "" + +#: src/stored/parse_bsr.c:780 +#, c-format +msgid "positioning : %d\n" +msgstr "" + +#: src/stored/parse_bsr.c:781 +#, c-format +msgid "fast_reject : %d\n" +msgstr "" + +#: src/stored/pythonsd.c:210 +msgid "Error in ParseTuple\n" +msgstr "" + +#: src/stored/pythonsd.c:226 +msgid "Parse tuple error in job_write\n" +msgstr "" + +#: src/stored/pythonsd.c:263 +#, c-format +msgid "Error in Python method %s\n" +msgstr "" + +#: src/stored/read.c:68 +msgid "No Volume names found for restore.\n" +msgstr "" + +#: src/stored/read.c:122 +#, c-format +msgid ">filed: Error Hdr=%s\n" +msgstr "" + +#: src/stored/read.c:123 src/stored/read.c:138 +#, c-format +msgid "Error sending to File daemon. ERR=%s\n" +msgstr "" + +#: src/stored/read.c:137 +#, c-format +msgid "Error sending to FD. ERR=%s\n" +msgstr "" + +#: src/stored/read_record.c:83 +#, c-format +msgid "End of Volume at file %u on device %s, Volume \"%s\"\n" +msgstr "" + +#: src/stored/read_record.c:86 +msgid "End of all volumes.\n" +msgstr "" + +#: src/stored/read_record.c:129 +msgid "part" +msgstr "" + +#: src/stored/read_record.c:132 +msgid "file" +msgstr "" + +#: src/stored/read_record.c:135 +#, c-format +msgid "End of %s %u on device %s, Volume \"%s\"\n" +msgstr "" + +#: src/stored/read_record.c:149 +msgid "Did fsr in attemp to skip bad record.\n" +msgstr "" + +#: src/stored/read_record.c:342 +#, c-format +msgid "Reposition from (file:block) %u:%u to %u:%u\n" +msgstr "" + +#: src/stored/read_record.c:370 +#, c-format +msgid "Forward spacing Volume \"%s\" to file:block %u:%u.\n" +msgstr "" + +#: src/stored/read_record.c:395 +msgid "Begin Session" +msgstr "" + +#: src/stored/read_record.c:399 +msgid "End Session" +msgstr "" + +#: src/stored/read_record.c:405 +#, c-format +msgid "Unknown code %d\n" +msgstr "" + +#: src/stored/record.c:71 +#, c-format +msgid "unknown: %d" +msgstr "" + +#: src/stored/record.c:378 +msgid "Damaged buffer\n" +msgstr "" + +#: src/stored/record.c:549 +#, c-format +msgid "Sanity check failed. maxlen=%d datalen=%d. Block discarded.\n" +msgstr "" + +#: src/stored/reserve.c:93 +#, c-format +msgid "Unable to initialize reservation lock. ERR=%s\n" +msgstr "" + +#: src/stored/reserve.c:99 +#, c-format +msgid "Unable to initialize volume list lock. ERR=%s\n" +msgstr "" + +#: src/stored/reserve.c:429 +#, c-format +msgid "Hey! num_writers=%d!!!!\n" +msgstr "" + +#: src/stored/reserve.c:643 +msgid "3939 Could not get dcr\n" +msgstr "" + +#: src/stored/reserve.c:766 src/stored/reserve.c:777 +#, c-format +msgid "Failed command: %s\n" +msgstr "" + +#: src/stored/reserve.c:767 +#, c-format +msgid "" +"\n" +" Device \"%s\" with MediaType \"%s\" requested by DIR not found in SD " +"Device resources.\n" +msgstr "" + +#: src/stored/reserve.c:1085 +#, c-format +msgid "3926 Could not get dcr for device: %s\n" +msgstr "" + +#: src/stored/reserve.c:1180 +#, c-format +msgid "3601 JobId=%u device %s is BLOCKED due to user unmount.\n" +msgstr "" + +#: src/stored/reserve.c:1190 +#, c-format +msgid "3602 JobId=%u device %s is busy (already reading/writing).\n" +msgstr "" + +#: src/stored/reserve.c:1237 +#, c-format +msgid "3603 JobId=%u device %s is busy reading.\n" +msgstr "" + +#: src/stored/reserve.c:1246 +#, c-format +msgid "3604 JobId=%u device %s is BLOCKED due to user unmount.\n" +msgstr "" + +#: src/stored/reserve.c:1314 +#, c-format +msgid "3605 JobId=%u wants free drive but device %s is busy.\n" +msgstr "" + +#: src/stored/reserve.c:1322 +#, c-format +msgid "3606 JobId=%u prefers mounted drives, but drive %s has no Volume.\n" +msgstr "" + +#: src/stored/reserve.c:1345 +#, c-format +msgid "3607 JobId=%u wants Vol=\"%s\" drive has Vol=\"%s\" on drive %s.\n" +msgstr "" + +#: src/stored/reserve.c:1387 +#, c-format +msgid "" +"3608 JobId=%u wants Pool=\"%s\" but have Pool=\"%s\" nreserve=%d on drive %" +"s.\n" +msgstr "" + +#: src/stored/reserve.c:1431 +#, c-format +msgid "3609 JobId=%u wants Pool=\"%s\" but has Pool=\"%s\" on drive %s.\n" +msgstr "" + +#: src/stored/reserve.c:1439 +#, c-format +msgid "Logic error!!!! JobId=%u Should not get here.\n" +msgstr "" + +#: src/stored/reserve.c:1440 +#, c-format +msgid "3910 JobId=%u Logic error!!!! drive %s Should not get here.\n" +msgstr "" + +#: src/stored/reserve.c:1443 +msgid "Logic error!!!! Should not get here.\n" +msgstr "" + +#: src/stored/reserve.c:1446 +#, c-format +msgid "3911 JobId=%u failed reserve drive %s.\n" +msgstr "" + +#: src/stored/spool.c:84 +msgid "Spooling statistics:\n" +msgstr "" + +#: src/stored/spool.c:87 +#, c-format +msgid "" +"Data spooling: %u active jobs, %s bytes; %u total jobs, %s max bytes/job.\n" +msgstr "" + +#: src/stored/spool.c:95 +#, c-format +msgid "Attr spooling: %u active jobs, %s bytes; %u total jobs, %s max bytes.\n" +msgstr "" + +#: src/stored/spool.c:115 +msgid "Spooling data ...\n" +msgstr "" + +#: src/stored/spool.c:141 +#, c-format +msgid "Bad return from despool WroteVol=%d\n" +msgstr "" + +#: src/stored/spool.c:174 +#, c-format +msgid "Open data spool file %s failed: ERR=%s\n" +msgstr "" + +#: src/stored/spool.c:232 +#, c-format +msgid "Committing spooled data to Volume \"%s\". Despooling %s bytes ...\n" +msgstr "" + +#: src/stored/spool.c:236 +#, c-format +msgid "Writing spooled data to Volume. Despooling %s bytes ...\n" +msgstr "" + +#: src/stored/spool.c:306 +#, c-format +msgid "" +"Despooling elapsed time = %02d:%02d:%02d, Transfer rate = %s bytes/second\n" +msgstr "" + +#: src/stored/spool.c:315 src/stored/spool.c:504 src/stored/spool.c:546 +#, c-format +msgid "Ftruncate spool file failed: ERR=%s\n" +msgstr "" + +#: src/stored/spool.c:376 +#, c-format +msgid "Spool header read error. ERR=%s\n" +msgstr "" + +#: src/stored/spool.c:379 +#, c-format +msgid "Spool read error. Wanted %u bytes, got %d\n" +msgstr "" + +#: src/stored/spool.c:380 +#, c-format +msgid "Spool header read error. Wanted %u bytes, got %d\n" +msgstr "" + +#: src/stored/spool.c:386 src/stored/spool.c:387 +#, c-format +msgid "Spool block too big. Max %u bytes, got %u\n" +msgstr "" + +#: src/stored/spool.c:392 src/stored/spool.c:393 +#, c-format +msgid "Spool data read error. Wanted %u bytes, got %d\n" +msgstr "" + +#: src/stored/spool.c:450 +msgid "User specified spool size reached.\n" +msgstr "" + +#: src/stored/spool.c:452 +msgid "Bad return from despool in write_block.\n" +msgstr "" + +#: src/stored/spool.c:460 +msgid "Spooling data again ...\n" +msgstr "" + +#: src/stored/spool.c:491 +#, c-format +msgid "Error writing header to spool file. ERR=%s\n" +msgstr "" + +#: src/stored/spool.c:510 src/stored/spool.c:552 +msgid "Fatal despooling error." +msgstr "" + +#: src/stored/spool.c:517 +msgid "Retrying after header spooling error failed.\n" +msgstr "" + +#: src/stored/spool.c:531 +#, c-format +msgid "Error writing data to spool file. ERR=%s\n" +msgstr "" + +#: src/stored/spool.c:562 +msgid "Retrying after data spooling error failed.\n" +msgstr "" + +#: src/stored/spool.c:617 src/stored/spool.c:624 +#, c-format +msgid "Fseek on attributes file failed: ERR=%s\n" +msgstr "" + +#: src/stored/spool.c:634 +#, c-format +msgid "Sending spooled attrs to the Director. Despooling %s bytes ...\n" +msgstr "" + +#: src/stored/spool.c:661 +#, c-format +msgid "fopen attr spool file %s failed: ERR=%s\n" +msgstr "" + +#: src/stored/status.c:120 +msgid "" +"\n" +"Device status:\n" +msgstr "" + +#: src/stored/status.c:124 +#, c-format +msgid "Autochanger \"%s\" with devices:\n" +msgstr "" + +#: src/stored/status.c:142 +#, c-format +msgid "" +"Device %s is mounted with:\n" +" Volume: %s\n" +" Pool: %s\n" +" Media type: %s\n" +msgstr "" + +#: src/stored/status.c:152 +#, c-format +msgid "Device %s open but no Bacula volume is currently mounted.\n" +msgstr "" + +#: src/stored/status.c:163 +#, c-format +msgid " Total Bytes=%s Blocks=%s Bytes/block=%s\n" +msgstr "" + +#: src/stored/status.c:178 +#, c-format +msgid " Total Bytes Read=%s Blocks Read=%s Bytes/block=%s\n" +msgstr "" + +#: src/stored/status.c:184 +#, c-format +msgid " Positioned at File=%s Block=%s\n" +msgstr "" + +#: src/stored/status.c:191 +#, c-format +msgid "Device %s is not open.\n" +msgstr "" + +#: src/stored/status.c:195 +#, c-format +msgid "Device \"%s\" is not open or does not exist.\n" +msgstr "" + +#: src/stored/status.c:201 +msgid "In Use Volume status:\n" +msgstr "" + +#: src/stored/status.c:208 src/stored/status.c:210 +msgid "" +"====\n" +"\n" +msgstr "" + +#: src/stored/status.c:227 +msgid "" +"No DEVICE structure.\n" +"\n" +msgstr "" + +#: src/stored/status.c:234 +msgid " Device is BLOCKED. User unmounted.\n" +msgstr "" + +#: src/stored/status.c:238 +msgid " Device is BLOCKED. User unmounted during wait for media/mount.\n" +msgstr "" + +#: src/stored/status.c:250 +#, c-format +msgid "" +" Device is BLOCKED waiting for mount of volume \"%s\",\n" +" Pool: %s\n" +" Media type: %s\n" +msgstr "" + +#: src/stored/status.c:259 +#, c-format +msgid "" +" Device is BLOCKED waiting to create a volume for:\n" +" Pool: %s\n" +" Media type: %s\n" +msgstr "" + +#: src/stored/status.c:271 +msgid " Device is BLOCKED waiting for media.\n" +msgstr "" + +#: src/stored/status.c:277 +msgid " Device is being initialized.\n" +msgstr "" + +#: src/stored/status.c:281 +msgid " Device is blocked labeling a Volume.\n" +msgstr "" + +#: src/stored/status.c:290 +#, c-format +msgid " Slot %d is loaded in drive %d.\n" +msgstr "" + +#: src/stored/status.c:294 +#, c-format +msgid " Drive %d is not loaded.\n" +msgstr "" + +#: src/stored/status.c:297 +#, c-format +msgid " Drive %d status unknown.\n" +msgstr "" + +#: src/stored/status.c:320 +msgid "Device state:\n" +msgstr "" + +#: src/stored/status.c:338 +#, c-format +msgid "" +"num_writers=%d block=%d\n" +"\n" +msgstr "" + +#: src/stored/status.c:344 +#, c-format +msgid "Archive name: %s Device name: %s\n" +msgstr "" + +#: src/stored/status.c:348 +#, c-format +msgid "File=%u block=%u\n" +msgstr "" + +#: src/stored/status.c:351 +#, c-format +msgid "Min block=%u Max block=%u\n" +msgstr "" + +#: src/stored/status.c:375 +#, c-format +msgid "%s Job %s waiting for Client connection.\n" +msgstr "" + +#: src/stored/status.c:391 +#, c-format +msgid "" +"Reading: %s %s job %s JobId=%d Volume=\"%s\"\n" +" pool=\"%s\" device=%s\n" +msgstr "" + +#: src/stored/status.c:404 +#, c-format +msgid "" +"Writing: %s %s job %s JobId=%d Volume=\"%s\"\n" +" pool=\"%s\" device=%s\n" +msgstr "" + +#: src/stored/status.c:415 +#, c-format +msgid " spooling=%d despooling=%d despool_wait=%d\n" +msgstr "" + +#: src/stored/status.c:424 +#, c-format +msgid " Files=%s Bytes=%s Bytes/sec=%s\n" +msgstr "" + +#: src/stored/status.c:432 +#, c-format +msgid " FDReadSeqNo=%s in_msg=%u out_msg=%d fd=%d\n" +msgstr "" + +#: src/stored/status.c:438 +msgid " FDSocket closed\n" +msgstr "" + +#: src/stored/status.c:460 +msgid "" +"\n" +"Jobs waiting to reserve a drive:\n" +msgstr "" + +#: src/stored/status.c:491 +msgid "===================================================================\n" +msgstr "" + +#: src/stored/status.c:637 +msgid "3900 Bad .status command, missing argument.\n" +msgstr "" + +#: src/stored/status.c:660 +msgid "3900 Bad .status command, wrong argument.\n" +msgstr "" + +#: src/stored/status.c:674 +msgid "Bacula Storage: Idle" +msgstr "" + +#: src/stored/status.c:685 +msgid "Bacula Storage: Running" +msgstr "" + +#: src/stored/status.c:699 +msgid "Bacula Storage: Last Job Canceled" +msgstr "" + +#: src/stored/status.c:703 +msgid "Bacula Storage: Last Job Failed" +msgstr "" + +#: src/stored/status.c:707 +msgid "Bacula Storage: Last Job had Warnings" +msgstr "" + +#: src/stored/stored.c:82 +#, c-format +msgid "" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: stored [options] [-c config_file] [config_file]\n" +" -c use as configuration file\n" +" -dnn set debug level to nn\n" +" -f run in foreground (for debugging)\n" +" -g set groupid to group\n" +" -p proceed despite I/O errors\n" +" -s no signals (for debugging)\n" +" -t test - read config and exit\n" +" -u userid to \n" +" -v verbose user messages\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/stored/stored.c:243 +msgid "Volume Session Time is ZERO!\n" +msgstr "" + +#: src/stored/stored.c:256 +#, c-format +msgid "Unable to create thread. ERR=%s\n" +msgstr "" + +#: src/stored/stored.c:294 +#, c-format +msgid "Only one Storage resource permitted in %s\n" +msgstr "" + +#: src/stored/stored.c:299 +#, c-format +msgid "No Director resource defined in %s. Cannot continue.\n" +msgstr "" + +#: src/stored/stored.c:304 +#, c-format +msgid "No Device resource defined in %s. Cannot continue.\n" +msgstr "" + +#: src/stored/stored.c:312 +#, c-format +msgid "No Messages resource defined in %s. Cannot continue.\n" +msgstr "" + +#: src/stored/stored.c:339 +#, c-format +msgid "\"TLS Certificate\" file not defined for Storage \"%s\" in %s.\n" +msgstr "" + +#: src/stored/stored.c:345 +#, c-format +msgid "\"TLS Key\" file not defined for Storage \"%s\" in %s.\n" +msgstr "" + +#: src/stored/stored.c:351 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Storage \"%s\" in %s. At least one CA certificate store is required when " +"using \"TLS Verify Peer\".\n" +msgstr "" + +#: src/stored/stored.c:482 +#, c-format +msgid "Could not initialize %s\n" +msgstr "" + +#: src/stored/stored.c:495 +#, c-format +msgid "Could not open device %s\n" +msgstr "" + +#: src/stored/stored.c:508 +#, c-format +msgid "Could not mount device %s\n" +msgstr "" + +#: src/stored/stored_conf.c:234 +#, c-format +msgid "Expected a Device Type keyword, got: %s" +msgstr "" + +#: src/stored/stored_conf.c:249 +#, c-format +msgid "Warning: no \"%s\" resource (%d) defined.\n" +msgstr "" + +#: src/stored/stored_conf.c:252 +#, c-format +msgid "dump_resource type=%d\n" +msgstr "" + +#: src/stored/stored_conf.c:368 +#, c-format +msgid "Warning: unknown resource type %d\n" +msgstr "" + +#: src/stored/stored_conf.c:557 +#, c-format +msgid "\"%s\" item is required in \"%s\" resource, but not found.\n" +msgstr "" + +#: src/stored/stored_conf.c:563 +#, c-format +msgid "Too many items in \"%s\" resource\n" +msgstr "" + +#: src/stored/stored_conf.c:597 +#, c-format +msgid "Cannot find AutoChanger resource %s\n" +msgstr "" + +#: src/stored/stored_conf.c:669 +#, c-format +msgid "" +"Attempt to define second \"%s\" resource named \"%s\" is not permitted.\n" +msgstr "" + +#: src/stored/wait.c:127 +#, c-format +msgid "pthread timedwait error. ERR=%s\n" +msgstr "" + +#: src/stored/wait.c:217 +#, c-format +msgid "JobId=%s, Job %s waiting to reserve a device.\n" +msgstr "" + +#: src/tools/bregex.c:147 src/tools/bwild.c:122 +#, c-format +msgid "Could not open data file: %s\n" +msgstr "" + +#: src/tools/bsmtp.c:117 +#, c-format +msgid "Fatal malformed reply from %s: %s\n" +msgstr "" + +#: src/tools/bsmtp.c:125 +#, c-format +msgid "Fatal fgets error: ERR=%s\n" +msgstr "" + +#: src/tools/bsmtp.c:156 +#, c-format +msgid "" +"\n" +"Usage: %s [-f from] [-h mailhost] [-s subject] [-c copy] [recipient ...]\n" +" -8 set charset utf-8\n" +" -c set the Cc: field\n" +" -dnn set debug level to nn\n" +" -f set the From: field\n" +" -h use mailhost:port as the SMTP server\n" +" -s set the Subject: field\n" +" -r set the Reply-To: field\n" +" -l set the maximum number of lines that should be sent " +"(default: unlimited)\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/tools/bsmtp.c:287 +msgid "Fatal error: no recipient given.\n" +msgstr "" + +#: src/tools/bsmtp.c:316 +#, c-format +msgid "Fatal gethostname error: ERR=%s\n" +msgstr "" + +#: src/tools/bsmtp.c:320 +#, c-format +msgid "Fatal gethostbyname for myself failed \"%s\": ERR=%s\n" +msgstr "" + +#: src/tools/bsmtp.c:356 +#, c-format +msgid "Error unknown mail host \"%s\": ERR=%s\n" +msgstr "" + +#: src/tools/bsmtp.c:359 +msgid "Retrying connection using \"localhost\".\n" +msgstr "" + +#: src/tools/bsmtp.c:367 +#, c-format +msgid "Fatal error: Unknown address family for smtp host: %d\n" +msgstr "" + +#: src/tools/bsmtp.c:376 src/tools/bsmtp.c:381 +#, c-format +msgid "Fatal socket error: ERR=%s\n" +msgstr "" + +#: src/tools/bsmtp.c:386 +#, c-format +msgid "Fatal connect error to %s: ERR=%s\n" +msgstr "" + +#: src/tools/bsmtp.c:394 +#, c-format +msgid "Fatal _open_osfhandle error: ERR=%s\n" +msgstr "" + +#: src/tools/bsmtp.c:401 src/tools/bsmtp.c:405 src/tools/bsmtp.c:414 +#: src/tools/bsmtp.c:418 +#, c-format +msgid "Fatal fdopen error: ERR=%s\n" +msgstr "" + +#: src/tools/bsmtp.c:410 +#, c-format +msgid "Fatal dup error: ERR=%s\n" +msgstr "" + +#: src/tools/dbcheck.c:175 +msgid "" +"Warning skipping the additional parameters for working directory/dbname/user/" +"password/host.\n" +msgstr "" + +#: src/tools/dbcheck.c:191 +#, c-format +msgid "Error can not find the Catalog name[%s] in the given config file [%s]\n" +msgstr "" + +#: src/tools/dbcheck.c:193 +#, c-format +msgid "Error there is no Catalog section in the given config file [%s]\n" +msgstr "" + +#: src/tools/dbcheck.c:202 +msgid "Error no Director resource defined.\n" +msgstr "" + +#: src/tools/dbcheck.c:216 +msgid "Wrong number of arguments.\n" +msgstr "" + +#: src/tools/dbcheck.c:221 +msgid "Working directory not supplied.\n" +msgstr "" + +#: src/tools/dbcheck.c:285 +#, c-format +msgid "Hello, this is the database check/correct program.\n" +msgstr "" + +#: src/tools/dbcheck.c:287 +#, c-format +msgid "Modify database is on." +msgstr "" + +#: src/tools/dbcheck.c:289 +#, c-format +msgid "Modify database is off." +msgstr "" + +#: src/tools/dbcheck.c:291 src/tools/dbcheck.c:352 +#, c-format +msgid " Verbose is on.\n" +msgstr "" + +#: src/tools/dbcheck.c:293 src/tools/dbcheck.c:354 +#, c-format +msgid " Verbose is off.\n" +msgstr "" + +#: src/tools/dbcheck.c:295 +#, c-format +msgid "Please select the fuction you want to perform.\n" +msgstr "" + +#: src/tools/dbcheck.c:299 +#, c-format +msgid "" +"\n" +" 1) Toggle modify database flag\n" +" 2) Toggle verbose flag\n" +" 3) Repair bad Filename records\n" +" 4) Repair bad Path records\n" +" 5) Eliminate duplicate Filename records\n" +" 6) Eliminate duplicate Path records\n" +" 7) Eliminate orphaned Jobmedia records\n" +" 8) Eliminate orphaned File records\n" +" 9) Eliminate orphaned Path records\n" +" 10) Eliminate orphaned Filename records\n" +" 11) Eliminate orphaned FileSet records\n" +" 12) Eliminate orphaned Client records\n" +" 13) Eliminate orphaned Job records\n" +" 14) Eliminate all Admin records\n" +" 15) Eliminate all Restore records\n" +" 16) All (3-15)\n" +" 17) Quit\n" +msgstr "" + +#: src/tools/dbcheck.c:318 +#, c-format +msgid "" +"\n" +" 1) Toggle modify database flag\n" +" 2) Toggle verbose flag\n" +" 3) Check for bad Filename records\n" +" 4) Check for bad Path records\n" +" 5) Check for duplicate Filename records\n" +" 6) Check for duplicate Path records\n" +" 7) Check for orphaned Jobmedia records\n" +" 8) Check for orphaned File records\n" +" 9) Check for orphaned Path records\n" +" 10) Check for orphaned Filename records\n" +" 11) Check for orphaned FileSet records\n" +" 12) Check for orphaned Client records\n" +" 13) Check for orphaned Job records\n" +" 14) Check for all Admin records\n" +" 15) Check for all Restore records\n" +" 16) All (3-15)\n" +" 17) Quit\n" +msgstr "" + +#: src/tools/dbcheck.c:338 +msgid "Select function number: " +msgstr "" + +#: src/tools/dbcheck.c:345 +#, c-format +msgid "Database will be modified.\n" +msgstr "" + +#: src/tools/dbcheck.c:347 +#, c-format +msgid "Database will NOT be modified.\n" +msgstr "" + +#: src/tools/dbcheck.c:437 +#, c-format +msgid "JobId=%s Name=\"%s\" StartTime=%s\n" +msgstr "" + +#: src/tools/dbcheck.c:445 +#, c-format +msgid "Orphaned JobMediaId=%s JobId=%s Volume=\"%s\"\n" +msgstr "" + +#: src/tools/dbcheck.c:452 +#, c-format +msgid "Orphaned FileId=%s JobId=%s Volume=\"%s\"\n" +msgstr "" + +#: src/tools/dbcheck.c:459 +#, c-format +msgid "Orphaned FileSetId=%s FileSet=\"%s\" MD5=%s\n" +msgstr "" + +#: src/tools/dbcheck.c:466 +#, c-format +msgid "Orphaned ClientId=%s Name=\"%s\"\n" +msgstr "" + +#: src/tools/dbcheck.c:520 +#, c-format +msgid "Deleting: %s\n" +msgstr "" + +#: src/tools/dbcheck.c:594 +#, c-format +msgid "Checking for duplicate Filename entries.\n" +msgstr "" + +#: src/tools/dbcheck.c:603 +#, c-format +msgid "Found %d duplicate Filename records.\n" +msgstr "" + +#: src/tools/dbcheck.c:604 +msgid "Print the list? (yes/no): " +msgstr "" + +#: src/tools/dbcheck.c:623 src/tools/dbcheck.c:681 +#, c-format +msgid "Found %d for: %s\n" +msgstr "" + +#: src/tools/dbcheck.c:651 +#, c-format +msgid "Checking for duplicate Path entries.\n" +msgstr "" + +#: src/tools/dbcheck.c:661 +#, c-format +msgid "Found %d duplicate Path records.\n" +msgstr "" + +#: src/tools/dbcheck.c:662 src/tools/dbcheck.c:716 src/tools/dbcheck.c:760 +#: src/tools/dbcheck.c:803 src/tools/dbcheck.c:842 src/tools/dbcheck.c:880 +#: src/tools/dbcheck.c:921 src/tools/dbcheck.c:962 src/tools/dbcheck.c:1000 +#: src/tools/dbcheck.c:1033 src/tools/dbcheck.c:1070 src/tools/dbcheck.c:1134 +msgid "Print them? (yes/no): " +msgstr "" + +#: src/tools/dbcheck.c:709 +#, c-format +msgid "Checking for orphaned JobMedia entries.\n" +msgstr "" + +#: src/tools/dbcheck.c:715 +#, c-format +msgid "Found %d orphaned JobMedia records.\n" +msgstr "" + +#: src/tools/dbcheck.c:733 +#, c-format +msgid "Deleting %d orphaned JobMedia records.\n" +msgstr "" + +#: src/tools/dbcheck.c:750 +#, c-format +msgid "Checking for orphaned File entries. This may take some time!\n" +msgstr "" + +#: src/tools/dbcheck.c:759 +#, c-format +msgid "Found %d orphaned File records.\n" +msgstr "" + +#: src/tools/dbcheck.c:776 +#, c-format +msgid "Deleting %d orphaned File records.\n" +msgstr "" + +#: src/tools/dbcheck.c:793 +#, c-format +msgid "Checking for orphaned Path entries. This may take some time!\n" +msgstr "" + +#: src/tools/dbcheck.c:802 +#, c-format +msgid "Found %d orphaned Path records.\n" +msgstr "" + +#: src/tools/dbcheck.c:815 +#, c-format +msgid "Deleting %d orphaned Path records.\n" +msgstr "" + +#: src/tools/dbcheck.c:832 +#, c-format +msgid "Checking for orphaned Filename entries. This may take some time!\n" +msgstr "" + +#: src/tools/dbcheck.c:841 +#, c-format +msgid "Found %d orphaned Filename records.\n" +msgstr "" + +#: src/tools/dbcheck.c:854 +#, c-format +msgid "Deleting %d orphaned Filename records.\n" +msgstr "" + +#: src/tools/dbcheck.c:869 +#, c-format +msgid "Checking for orphaned FileSet entries. This takes some time!\n" +msgstr "" + +#: src/tools/dbcheck.c:879 +#, c-format +msgid "Found %d orphaned FileSet records.\n" +msgstr "" + +#: src/tools/dbcheck.c:894 +#, c-format +msgid "Deleting %d orphaned FileSet records.\n" +msgstr "" + +#: src/tools/dbcheck.c:903 +#, c-format +msgid "Checking for orphaned Client entries.\n" +msgstr "" + +#: src/tools/dbcheck.c:920 +#, c-format +msgid "Found %d orphaned Client records.\n" +msgstr "" + +#: src/tools/dbcheck.c:935 +#, c-format +msgid "Deleting %d orphaned Client records.\n" +msgstr "" + +#: src/tools/dbcheck.c:944 +#, c-format +msgid "Checking for orphaned Job entries.\n" +msgstr "" + +#: src/tools/dbcheck.c:961 +#, c-format +msgid "Found %d orphaned Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:976 +#, c-format +msgid "Deleting %d orphaned Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:978 +#, c-format +msgid "Deleting JobMedia records of orphaned Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:980 +#, c-format +msgid "Deleting Log records of orphaned Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:990 +#, c-format +msgid "Checking for Admin Job entries.\n" +msgstr "" + +#: src/tools/dbcheck.c:999 +#, c-format +msgid "Found %d Admin Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:1014 +#, c-format +msgid "Deleting %d Admin Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:1023 +#, c-format +msgid "Checking for Restore Job entries.\n" +msgstr "" + +#: src/tools/dbcheck.c:1032 +#, c-format +msgid "Found %d Restore Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:1047 +#, c-format +msgid "Deleting %d Restore Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:1060 +#, c-format +msgid "Checking for Filenames with a trailing slash\n" +msgstr "" + +#: src/tools/dbcheck.c:1069 +#, c-format +msgid "Found %d bad Filename records.\n" +msgstr "" + +#: src/tools/dbcheck.c:1087 src/tools/dbcheck.c:1150 +#, c-format +msgid "Reparing %d bad Filename records.\n" +msgstr "" + +#: src/tools/dbcheck.c:1124 +#, c-format +msgid "Checking for Paths without a trailing slash\n" +msgstr "" + +#: src/tools/dbcheck.c:1133 +#, c-format +msgid "Found %d bad Path records.\n" +msgstr "" + +#: src/tools/drivetype.c:47 +#, c-format +msgid "" +"\n" +"Usage: drivetype [-v] path ...\n" +"\n" +" Print the drive type a given file/directory is on.\n" +" The following options are supported:\n" +"\n" +" -v print both path and file system type.\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/tools/drivetype.c:101 src/tools/fstype.c:101 +#, c-format +msgid "%s: unknown\n" +msgstr "" + +#: src/tools/fstype.c:47 +#, c-format +msgid "" +"\n" +"Usage: fstype [-v] path ...\n" +"\n" +" Print the file system type a given file/directory is on.\n" +" The following options are supported:\n" +"\n" +" -v print both path and file system type.\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/tools/testfind.c:66 +#, c-format +msgid "" +"\n" +"Usage: testfind [-d debug_level] [-] [pattern1 ...]\n" +" -a print extended attributes (Win32 debug)\n" +" -dnn set debug level to nn\n" +" -c specify config file containing FileSet resources\n" +" -f specify which FileSet to use\n" +" -? print this message.\n" +"\n" +"Patterns are used for file inclusion -- normally directories.\n" +"Debug level >= 1 prints each file found.\n" +"Debug level >= 10 prints path/file for catalog.\n" +"Errors are always printed.\n" +"Files/paths truncated is the number of files/paths with len > 255.\n" +"Truncation is only in the catalog.\n" +"\n" +msgstr "" + +#: src/tools/testfind.c:225 +#, c-format +msgid "" +"\n" +"Total files : %d\n" +"Max file length: %d\n" +"Max path length: %d\n" +"Files truncated: %d\n" +"Paths truncated: %d\n" +"Hard links : %d\n" +msgstr "" + +#: src/tools/testfind.c:265 +#, c-format +msgid "Reg: %s\n" +msgstr "" + +#: src/tools/testfind.c:287 +msgid "\t[will not descend: recursion turned off]" +msgstr "" + +#: src/tools/testfind.c:289 +msgid "\t[will not descend: file system change not allowed]" +msgstr "" + +#: src/tools/testfind.c:291 +msgid "\t[will not descend: disallowed file system]" +msgstr "" + +#: src/tools/testfind.c:293 +msgid "\t[will not descend: disallowed drive type]" +msgstr "" + +#: src/tools/testfind.c:309 src/tools/testls.c:188 +#, c-format +msgid "Err: Could not access %s: %s\n" +msgstr "" + +#: src/tools/testfind.c:312 src/tools/testls.c:191 +#, c-format +msgid "Err: Could not follow ff->link %s: %s\n" +msgstr "" + +#: src/tools/testfind.c:315 src/tools/testls.c:194 +#, c-format +msgid "Err: Could not stat %s: %s\n" +msgstr "" + +#: src/tools/testfind.c:318 src/tools/testls.c:197 +#, c-format +msgid "Skip: File not saved. No change. %s\n" +msgstr "" + +#: src/tools/testfind.c:321 src/tools/testls.c:200 +#, c-format +msgid "Err: Attempt to backup archive. Not saved. %s\n" +msgstr "" + +#: src/tools/testfind.c:324 src/tools/testls.c:209 +#, c-format +msgid "Err: Could not open directory %s: %s\n" +msgstr "" + +#: src/tools/testfind.c:327 src/tools/testls.c:212 +#, c-format +msgid "Err: Unknown file ff->type %d: %s\n" +msgstr "" + +#: src/tools/testfind.c:377 +#, c-format +msgid "===== Filename truncated to 255 chars: %s\n" +msgstr "" + +#: src/tools/testfind.c:394 +#, c-format +msgid "========== Path name truncated to 255 chars: %s\n" +msgstr "" + +#: src/tools/testfind.c:403 +#, c-format +msgid "========== Path length is zero. File=%s\n" +msgstr "" + +#: src/tools/testfind.c:406 +#, c-format +msgid "Path: %s\n" +msgstr "" + +#: src/tools/testls.c:55 +#, c-format +msgid "" +"\n" +"Usage: testls [-d debug_level] [-] [pattern1 ...]\n" +" -a print extended attributes (Win32 debug)\n" +" -dnn set debug level to nn\n" +" -e specify file of exclude patterns\n" +" -i specify file of include patterns\n" +" - read pattern(s) from stdin\n" +" -? print this message.\n" +"\n" +"Patterns are file inclusion -- normally directories.\n" +"Debug level >= 1 prints each file found.\n" +"Debug level >= 10 prints path/file for catalog.\n" +"Errors always printed.\n" +"Files/paths truncated is number with len > 255.\n" +"Truncation is only in catalog.\n" +"\n" +msgstr "" + +#: src/tools/testls.c:140 +#, c-format +msgid "Could not open include file: %s\n" +msgstr "" + +#: src/tools/testls.c:153 +#, c-format +msgid "Could not open exclude file: %s\n" +msgstr "" + +#: src/tools/testls.c:203 +#, c-format +msgid "Recursion turned off. Directory not entered. %s\n" +msgstr "" + +#: src/tools/testls.c:206 +#, c-format +msgid "Skip: File system change prohibited. Directory not entered. %s\n" +msgstr "" + +#: src/tray-monitor/authenticate.c:88 +msgid "" +"Director authorization problem.\n" +"Most likely the passwords do not agree.\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" + +#: src/tray-monitor/authenticate.c:138 +msgid "" +"Director and Storage daemon passwords or names not the same.\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" + +#: src/tray-monitor/authenticate.c:145 +#, c-format +msgid "bdird set configuration file to file\n" +" -dnn set debug level to nn\n" +" -t test - read configuration and exit\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:262 +#, c-format +msgid "" +"Error: %d Monitor resources defined in %s. You must define one and only one " +"Monitor resource.\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:293 +#, c-format +msgid "" +"No Client, Storage or Director resource defined in %s\n" +"Without that I don't how to get status from the File, Storage or Director " +"Daemon :-(\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:315 +#, c-format +msgid "" +"Invalid refresh interval defined in %s\n" +"This value must be greater or equal to 1 second and less or equal to 10 " +"minutes (read value: %d).\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:330 +msgid "Open status window..." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:336 +msgid "Exit" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:348 +msgid "Bacula tray monitor" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:373 +msgid " (DIR)" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:377 +msgid " (FD)" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:381 +msgid " (SD)" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:394 +msgid "Unknown status." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:464 +msgid "Refresh interval in seconds: " +msgstr "" + +#: src/tray-monitor/tray-monitor.c:472 +msgid "Refresh now" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:476 +msgid "About" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:480 +msgid "Close" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:500 +#, c-format +msgid "Disconnecting from Director %s:%d\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:503 +#, c-format +msgid "Disconnecting from Client %s:%d\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:506 +#, c-format +msgid "Disconnecting from Storage %s:%d\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:543 src/tray-monitor/tray-monitor.c:554 +msgid "Bacula Tray Monitor" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:545 src/tray-monitor/tray-monitor.c:556 +msgid "Written by Nicolas Boichat\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:546 src/tray-monitor/tray-monitor.c:557 +msgid "Version" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:625 +#, c-format +msgid "Error, currentitem is not a Client or a Storage..\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:699 +#, c-format +msgid "" +"Current job: %s\n" +"Last job: %s" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:711 +#, c-format +msgid " (%d errors)" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:714 +#, c-format +msgid " (%d error)" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:752 +msgid "No current job." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:755 +msgid "No last job." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:763 +msgid "Job status: Created" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:768 +msgid "Job status: Running" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:772 +msgid "Job status: Blocked" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:777 +msgid "Job status: Terminated" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:782 +msgid "Job status: Terminated in error" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:788 +msgid "Job status: Error" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:792 +msgid "Job status: Fatal error" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:797 +msgid "Job status: Verify differences" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:802 +msgid "Job status: Canceled" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:807 +msgid "Job status: Waiting on File daemon" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:812 +msgid "Job status: Waiting on the Storage daemon" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:817 +msgid "Job status: Waiting for new media" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:822 +msgid "Job status: Waiting for Mount" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:827 +msgid "Job status: Waiting for storage resource" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:832 +msgid "Job status: Waiting for job resource" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:837 +msgid "Job status: Waiting for Client resource" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:842 +msgid "Job status: Waiting for maximum jobs" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:847 +msgid "Job status: Waiting for start time" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:852 +msgid "Job status: Waiting for higher priority jobs to finish" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:857 +#, c-format +msgid "Unknown job status %c." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:858 +#, c-format +msgid "Job status: Unknown(%c)" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:865 +#, c-format +msgid "Bad scan : '%s' %d\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:906 +#, c-format +msgid "Connecting to Director %s:%d" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:912 +#, c-format +msgid "Connecting to Client %s:%d\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:913 +#, c-format +msgid "Connecting to Client %s:%d" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:919 +#, c-format +msgid "Connecting to Storage %s:%d\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:920 +#, c-format +msgid "Connecting to Storage %s:%d" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:925 src/tray-monitor/tray-monitor.c:963 +#, c-format +msgid "Error, currentitem is not a Client, a Storage or a Director..\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:931 +msgid "Cannot connect to daemon.\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:932 +msgid "Cannot connect to daemon." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:944 +#, c-format +msgid "Authentication error : %s" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:951 +msgid "Opened connection with Director daemon.\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:952 +msgid "Opened connection with Director daemon." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:955 +msgid "Opened connection with File daemon.\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:956 +msgid "Opened connection with File daemon." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:959 +msgid "Opened connection with Storage daemon.\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:960 +msgid "Opened connection with Storage daemon." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:997 +msgid "<< Error: BNET_PROMPT signal received. >>\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:1002 src/wx-console/console_thread.cpp:486 +msgid "<< Heartbeat signal received, answered. >>\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:1006 +#, c-format +msgid "<< Unexpected signal received : %s >>\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:1011 +msgid "\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:1015 +msgid "Error : BNET_HARDEOF or BNET_ERROR" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:1021 +msgid "\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:1025 +msgid "Error : Connection closed." +msgstr "" + +#: src/tray-monitor/tray_conf.c:177 +#, c-format +msgid "Monitor: name=%s FDtimeout=%s SDtimeout=%s\n" +msgstr "" + +#: src/tray-monitor/tray_conf.c:183 +#, c-format +msgid "Director: name=%s address=%s FDport=%d\n" +msgstr "" + +#: src/tray-monitor/tray_conf.c:187 +#, c-format +msgid "Client: name=%s address=%s FDport=%d\n" +msgstr "" + +#: src/tray-monitor/tray_conf.c:191 +#, c-format +msgid "Storage: name=%s address=%s SDport=%d\n" +msgstr "" + +#: src/wx-console/authenticate.c:150 +msgid "Bad response to Hello command: ERR=" +msgstr "" + +#: src/baconfig.h:72 +#, c-format +msgid "Failed ASSERT: %s\n" +msgstr "" + +#: src/baconfig.h:79 +msgid "*None*" +msgstr "" + +#: src/win32/dird/winmain.cpp:193 src/win32/dird/winmain.cpp:200 +#: src/win32/filed/winmain.cpp:224 src/win32/filed/winmain.cpp:231 +#: src/win32/stored/baculasd/winmain.cpp:225 +#: src/win32/stored/baculasd/winmain.cpp:232 +msgid "Bacula Usage" +msgstr "" + +#: src/win32/dird/winmain.cpp:197 src/win32/filed/winmain.cpp:228 +#: src/win32/stored/baculasd/winmain.cpp:229 +msgid "Bad Command Line Options" +msgstr "" + +#: src/win32/dird/winservice.cpp:119 src/win32/filed/winservice.cpp:238 +#: src/win32/stored/baculasd/winservice.cpp:169 +msgid "StartServiceCtrlDispatcher failed." +msgstr "" + +#: src/win32/dird/winservice.cpp:135 src/win32/filed/winservice.cpp:256 +#: src/win32/stored/baculasd/winservice.cpp:185 +msgid "RegisterServiceCtlHandler failed" +msgstr "" + +#: src/win32/dird/winservice.cpp:136 src/win32/filed/winservice.cpp:257 +#: src/win32/stored/baculasd/winservice.cpp:186 +msgid "Contact Register Service Handler failure" +msgstr "" + +#: src/win32/dird/winservice.cpp:152 src/win32/filed/winservice.cpp:273 +#: src/win32/stored/baculasd/winservice.cpp:202 +msgid "ReportStatus STOPPED failed 1" +msgstr "" + +#: src/win32/dird/winservice.cpp:175 src/win32/filed/winservice.cpp:296 +#: src/win32/stored/baculasd/winservice.cpp:225 +msgid "Report Service failure" +msgstr "" + +#: src/win32/dird/winservice.cpp:211 +msgid "Unable to install Bacula Director service" +msgstr "" + +#: src/win32/dird/winservice.cpp:219 src/win32/filed/winservice.cpp:340 +#: src/win32/stored/baculasd/winservice.cpp:269 +msgid "Service command length too long" +msgstr "" + +#: src/win32/dird/winservice.cpp:220 src/win32/filed/winservice.cpp:341 +#: src/win32/stored/baculasd/winservice.cpp:270 +msgid "Service command length too long. Service not registered." +msgstr "" + +#: src/win32/dird/winservice.cpp:233 +msgid "" +"The Service Control Manager could not be contacted - the Bacula Director " +"service was not installed" +msgstr "" + +#: src/win32/dird/winservice.cpp:258 +msgid "The Bacula Director service could not be installed" +msgstr "" + +#: src/win32/dird/winservice.cpp:264 +msgid "Provides director services. Bacula -- the network backup solution." +msgstr "" + +#: src/win32/dird/winservice.cpp:272 +msgid "" +"The Bacula Director service was successfully installed.\n" +"The service may be started from the Control Panel and will\n" +"automatically be run the next time this machine is rebooted." +msgstr "" + +#: src/win32/dird/winservice.cpp:311 +msgid "The Bacula Director service could not be stopped" +msgstr "" + +#: src/win32/dird/winservice.cpp:318 +msgid "The Bacula Director service has been removed" +msgstr "" + +#: src/win32/dird/winservice.cpp:321 +msgid "The Bacula Director service could not be removed" +msgstr "" + +#: src/win32/dird/winservice.cpp:326 +msgid "The Bacula Director service could not be found" +msgstr "" + +#: src/win32/dird/winservice.cpp:331 +msgid "" +"The SCM could not be contacted - the Bacula Director service was not removed" +msgstr "" + +#: src/win32/dird/winservice.cpp:393 src/win32/filed/winservice.cpp:604 +#: src/win32/stored/baculasd/winservice.cpp:443 +msgid "SetServiceStatus failed" +msgstr "" + +#: src/win32/dird/winservice.cpp:421 src/win32/filed/winservice.cpp:632 +#: src/win32/stored/baculasd/winservice.cpp:471 +#, c-format +msgid "" +"\n" +"\n" +"%s error: %ld at %s:%d" +msgstr "" + +#: src/win32/dird/winservice.cpp:496 src/win32/filed/winservice.cpp:706 +#: src/win32/stored/baculasd/winservice.cpp:546 +#, c-format +msgid "Locked by: %s, duration: %ld seconds\n" +msgstr "" + +#: src/win32/dird/winservice.cpp:500 src/win32/filed/winservice.cpp:710 +#: src/win32/stored/baculasd/winservice.cpp:550 +#, c-format +msgid "No longer locked\n" +msgstr "" + +#: src/win32/dird/winservice.cpp:504 src/win32/filed/winservice.cpp:714 +#: src/win32/stored/baculasd/winservice.cpp:554 +msgid "Could not lock database" +msgstr "" + +#: src/win32/filed/winmain.cpp:326 src/win32/stored/baculasd/winmain.cpp:326 +msgid "Another instance of Bacula is already running" +msgstr "" + +#: src/win32/filed/winservice.cpp:111 src/win32/filed/winservice.cpp:125 +msgid "No existing instance of Bacula File service could be contacted" +msgstr "" + +#: src/win32/filed/winservice.cpp:196 +msgid "KERNEL32.DLL not found: Bacula service not started" +msgstr "" + +#: src/win32/filed/winservice.cpp:206 +msgid "Registry service not found: Bacula service not started" +msgstr "" + +#: src/win32/filed/winservice.cpp:208 +msgid "Registry service not found" +msgstr "" + +#: src/win32/filed/winservice.cpp:332 +msgid "Unable to install Bacula File service" +msgstr "" + +#: src/win32/filed/winservice.cpp:356 +msgid "Cannot write System Registry" +msgstr "" + +#: src/win32/filed/winservice.cpp:357 +msgid "" +"The System Registry could not be updated - the Bacula service was not " +"installed" +msgstr "" + +#: src/win32/filed/winservice.cpp:364 +msgid "Cannot add Bacula key to System Registry" +msgstr "" + +#: src/win32/filed/winservice.cpp:365 src/win32/filed/winservice.cpp:418 +msgid "The Bacula service could not be installed" +msgstr "" + +#: src/win32/filed/winservice.cpp:374 +msgid "" +"The Bacula File service was successfully installed.\n" +"The service may be started by double clicking on the\n" +"Bacula \"Start\" icon and will be automatically\n" +"be run the next time this machine is rebooted. " +msgstr "" + +#: src/win32/filed/winservice.cpp:393 +msgid "" +"The Service Control Manager could not be contacted - the Bacula service was " +"not installed" +msgstr "" + +#: src/win32/filed/winservice.cpp:424 +msgid "" +"Provides file backup and restore services. Bacula -- the network backup " +"solution." +msgstr "" + +#: src/win32/filed/winservice.cpp:432 +msgid "" +"The Bacula File service was successfully installed.\n" +"The service may be started from the Control Panel and will\n" +"automatically be run the next time this machine is rebooted." +msgstr "" + +#: src/win32/filed/winservice.cpp:442 +msgid "" +"Unknown Windows operating system.\n" +"Cannot install Bacula service.\n" +msgstr "" + +#: src/win32/filed/winservice.cpp:467 +msgid "" +"Could not find registry entry.\n" +"Service probably not registerd - the Bacula service was not removed" +msgstr "" + +#: src/win32/filed/winservice.cpp:472 +msgid "" +"Could not delete Registry key.\n" +"The Bacula service could not be removed" +msgstr "" + +#: src/win32/filed/winservice.cpp:482 +msgid "Bacula could not be contacted, probably not running" +msgstr "" + +#: src/win32/filed/winservice.cpp:489 +msgid "The Bacula service has been removed" +msgstr "" + +#: src/win32/filed/winservice.cpp:520 +msgid "The Bacula file service could not be stopped" +msgstr "" + +#: src/win32/filed/winservice.cpp:527 +msgid "The Bacula file service has been removed" +msgstr "" + +#: src/win32/filed/winservice.cpp:530 +msgid "The Bacula file service could not be removed" +msgstr "" + +#: src/win32/filed/winservice.cpp:535 +msgid "The Bacula file service could not be found" +msgstr "" + +#: src/win32/filed/winservice.cpp:540 +msgid "" +"The SCM could not be contacted - the Bacula file service was not removed" +msgstr "" + +#: src/win32/stored/baculasd/winservice.cpp:85 +#: src/win32/stored/baculasd/winservice.cpp:99 +msgid "No existing instance of Bacula storage service could be contacted" +msgstr "" + +#: src/win32/stored/baculasd/winservice.cpp:261 +msgid "Unable to install Bacula Storage service" +msgstr "" + +#: src/win32/stored/baculasd/winservice.cpp:283 +msgid "" +"The Service Control Manager could not be contacted - the Bacula Storage " +"service was not installed" +msgstr "" + +#: src/win32/stored/baculasd/winservice.cpp:308 +msgid "The Bacula Storage service could not be installed" +msgstr "" + +#: src/win32/stored/baculasd/winservice.cpp:314 +msgid "Provides storage services. Bacula -- the network backup solution." +msgstr "" + +#: src/win32/stored/baculasd/winservice.cpp:322 +msgid "" +"The Bacula Storage service was successfully installed.\n" +"The service may be started from the Control Panel and will\n" +"automatically be run the next time this machine is rebooted." +msgstr "" + +#: src/win32/stored/baculasd/winservice.cpp:361 +msgid "The Bacula Storage service could not be stopped" +msgstr "" + +#: src/win32/stored/baculasd/winservice.cpp:368 +msgid "The Bacula Storage service has been removed" +msgstr "" + +#: src/win32/stored/baculasd/winservice.cpp:371 +msgid "The Bacula Storage service could not be removed" +msgstr "" + +#: src/win32/stored/baculasd/winservice.cpp:376 +msgid "The Bacula Storage service could not be found" +msgstr "" + +#: src/win32/stored/baculasd/winservice.cpp:381 +msgid "" +"The SCM could not be contacted - the Bacula Storage service was not removed" +msgstr "" + +#: src/wx-console/console_thread.cpp:121 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Director \"%s\" in config file.\n" +"At least one CA certificate store is required.\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:128 +msgid "" +"No Director resource defined in config file.\n" +"Without that I don't how to speak to the Director :-(\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:147 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Console \"%s\" in config file.\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:169 +msgid "Error while initializing windows sockets...\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:185 +msgid "Error while cleaning up windows sockets...\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:224 +msgid "Error while initializing library." +msgstr "" + +#: src/wx-console/console_thread.cpp:248 +msgid "Cryptographic library initialization failed.\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:252 +msgid "Please correct configuration file.\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:294 +msgid "Error : Library not initialized\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:305 +msgid "Error : No configuration file loaded\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:315 +msgid "Connecting...\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:331 +msgid "Error : No director defined in config file.\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:343 +msgid "Multiple directors found in your config file.\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:352 +#, c-format +msgid "Please choose a director (1-%d): " +msgstr "" + +#: src/wx-console/console_thread.cpp:424 +msgid "Failed to connect to the director\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:434 +msgid "Connected\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:491 +msgid "<< Unexpected signal received : " +msgstr "" + +#: src/wx-console/console_thread.cpp:511 +msgid "Connection terminated\n" +msgstr "" + +#: src/wx-console/main.cpp:119 +msgid "Bacula bwx-console" +msgstr "" + +#: src/wx-console/main.cpp:124 src/wx-console/wxbmainframe.cpp:267 +#, c-format +msgid "Welcome to bacula bwx-console %s (%s)!\n" +msgstr "" + +#: src/wx-console/wxbconfigfileeditor.cpp:65 +msgid "Config file editor" +msgstr "" + +#: src/wx-console/wxbconfigfileeditor.cpp:75 +msgid "# Bacula bwx-console Configuration File\n" +msgstr "" + +#: src/wx-console/wxbconfigfileeditor.cpp:111 +msgid "Save and close" +msgstr "" + +#: src/wx-console/wxbconfigfileeditor.cpp:112 +msgid "Close without saving" +msgstr "" + +#: src/wx-console/wxbconfigfileeditor.cpp:139 +#, c-format +msgid "Unable to write to %s\n" +msgstr "" + +#: src/wx-console/wxbconfigfileeditor.cpp:140 +msgid "Error while saving" +msgstr "" + +#: src/wx-console/wxbconfigpanel.cpp:205 +msgid "Apply" +msgstr "" + +#: src/wx-console/wxbhistorytextctrl.cpp:82 +#: src/wx-console/wxbhistorytextctrl.cpp:153 +#: src/wx-console/wxbmainframe.cpp:291 +msgid "Type your command below:" +msgstr "" + +#: src/wx-console/wxbhistorytextctrl.cpp:117 +msgid "Unknown command." +msgstr "" + +#: src/wx-console/wxbhistorytextctrl.cpp:126 +msgid "Possible completions: " +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:246 +msgid "&About...\tF1" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:246 +msgid "Show about dialog" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:248 src/wx-console/wxbmainframe.cpp:620 +msgid "Connect to the director" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:249 +msgid "Disconnect" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:249 +msgid "Disconnect of the director" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:251 +msgid "Change of configuration file" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:251 +msgid "Change your default configuration file" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:252 +msgid "Edit your configuration file" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:254 +msgid "E&xit\tAlt-X" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:254 +msgid "Quit this program" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:258 +msgid "&File" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:259 +msgid "&Help" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:283 +msgid "" +"Warning : Unicode is disabled because you are using wxWidgets for GTK+ 1.2.\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:287 +msgid "" +"Warning : There is a problem with wxWidgets for GTK+ 2.0 without Unicode " +"support when handling non-ASCII filenames: Every non-ASCII character in such " +"filenames will be replaced by an interrogation mark.\n" +"If this behaviour disturbs you, please build bwx-console against a Unicode " +"version of wxWidgets for GTK+ 2.0.\n" +"---\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:298 +msgid "Send" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:375 src/wx-console/wxbmainframe.cpp:387 +msgid "Error while parsing command line arguments, using defaults.\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:376 src/wx-console/wxbmainframe.cpp:388 +msgid "Usage: bwx-console [-c configfile] [-w tmp]\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:417 +#, c-format +msgid "" +"It seems that it is the first time you run bwx-console.\n" +"This file (%s) has been choosen as default configuration file.\n" +"Do you want to edit it? (if you click No you will have to select another " +"file)" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:419 +msgid "First run" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:436 +#, c-format +msgid "" +"Unable to read %s\n" +"Error: %s\n" +"Do you want to choose another one? (Press no to edit this file)" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:438 +msgid "Unable to read configuration file" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:450 +msgid "Please choose a configuration file to use" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:463 +msgid "This configuration file has been successfully read, use it as default?" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:464 +msgid "Configuration file read successfully" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:474 +#, c-format +msgid "Using this configuration file: %s\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:479 +msgid "Connecting to the director..." +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:494 +msgid "Failed to unregister a data parser !" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:502 +msgid "Quitting.\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:517 +msgid "" +"Welcome to Bacula bwx-console.\n" +"Written by Nicolas Boichat \n" +"Copyright (C), 2005-2007 Free Software Foundation Europe, e.V.\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:521 +msgid "About Bacula bwx-console" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:527 +msgid "Please choose your default configuration file" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:531 +msgid "Use this configuration file as default?" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:532 +msgid "Configuration file" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:603 +msgid "Console thread terminated." +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:611 +msgid "Connection to the director lost. Quit program?" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:612 +msgid "Connection lost" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:628 +msgid "Connected to the director." +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:651 +msgid "Reconnect" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:652 +msgid "Reconnect to the director" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:666 +msgid "Disconnected of the director." +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:685 src/wx-console/wxbrestorepanel.cpp:710 +msgid "Unexpected question has been received.\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:708 src/wx-console/wxbmainframe.cpp:725 +msgid "bwx-console: unexpected director's question." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:234 +#: src/wx-console/wxbrestorepanel.cpp:1920 +#: src/wx-console/wxbrestorepanel.cpp:1949 +msgid "Enter restore mode" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:237 +msgid "Cancel restore" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:263 +#: src/wx-console/wxbrestorepanel.cpp:317 +msgid "Add" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:265 +#: src/wx-console/wxbrestorepanel.cpp:319 +msgid "Remove" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:267 +#: src/wx-console/wxbrestorepanel.cpp:321 +msgid "Refresh" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:286 +msgid "M" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:290 +msgid "Filename" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:302 +msgid "Perm." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:335 +#: src/wx-console/wxbrestorepanel.cpp:348 +#: src/wx-console/wxbrestorepanel.cpp:503 +#: src/wx-console/wxbrestorepanel.cpp:513 +#: src/wx-console/wxbrestorepanel.cpp:516 +#: src/wx-console/wxbrestorepanel.cpp:1784 +#: src/wx-console/wxbrestorepanel.cpp:1870 +msgid "Job Name" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:337 +#: src/wx-console/wxbrestorepanel.cpp:353 +#: src/wx-console/wxbrestorepanel.cpp:455 +#: src/wx-console/wxbrestorepanel.cpp:456 +#: src/wx-console/wxbrestorepanel.cpp:466 +#: src/wx-console/wxbrestorepanel.cpp:467 +#: src/wx-console/wxbrestorepanel.cpp:1139 +#: src/wx-console/wxbrestorepanel.cpp:1212 +#: src/wx-console/wxbrestorepanel.cpp:1822 +#: src/wx-console/wxbrestorepanel.cpp:1824 +#: src/wx-console/wxbrestorepanel.cpp:1885 +msgid "Fileset" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:340 +#: src/wx-console/wxbrestorepanel.cpp:1206 +#: src/wx-console/wxbrestorepanel.cpp:1222 +#: src/wx-console/wxbrestorepanel.cpp:1224 +#: src/wx-console/wxbrestorepanel.cpp:1232 +#: src/wx-console/wxbrestorepanel.cpp:1234 +#: src/wx-console/wxbrestorepanel.cpp:1253 +#: src/wx-console/wxbrestorepanel.cpp:1260 +#: src/wx-console/wxbrestorepanel.cpp:1812 +#: src/wx-console/wxbrestorepanel.cpp:1823 +#: src/wx-console/wxbrestorepanel.cpp:1944 +msgid "Before" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:342 +msgid "Please configure parameters concerning files to restore :" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:351 +#: src/wx-console/wxbrestorepanel.cpp:1878 +msgid "always" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:351 +msgid "if newer" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:351 +msgid "if older" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:351 +#: src/wx-console/wxbrestorepanel.cpp:1881 +msgid "never" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:359 +msgid "Please configure parameters concerning files restoration :" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:427 +msgid "Getting parameters list." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:435 +msgid "Error : no clients returned by the director." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:459 +msgid "Error : no filesets returned by the director." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:483 +msgid "Error : no storage returned by the director." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:506 +#: src/wx-console/wxbrestorepanel.cpp:530 +msgid "Error : no jobs returned by the director." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:516 +msgid "RestoreFiles" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:551 +msgid "Please configure your restore parameters." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:562 +msgid "Building restore tree..." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:605 +msgid "Error while starting restore: " +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:695 +msgid "" +"Right click on a file or on a directory, or double-click on its mark to add " +"it to the restore list." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:732 +#: src/wx-console/wxbrestorepanel.cpp:754 +msgid "bwx-console: unexpected restore question." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:765 +msgid " files selected to be restored." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:770 +msgid " file selected to be restored." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:777 +#, c-format +msgid "Please configure your restore (%ld files selected to be restored)..." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:787 +msgid "Restore failed : no file selected.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:788 +msgid "Restore failed : no file selected." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:798 +msgid "Restoring, please wait..." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:811 +msgid "Job queued. JobId=" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:813 +msgid "Restore queued, jobid=" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:817 +msgid "Job failed." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:818 +msgid "Restore failed, please look at messages.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:819 +msgid "Restore failed, please look at messages in console." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:825 +#: src/wx-console/wxbrestorepanel.cpp:826 +msgid "Failed to retrieve jobid.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:852 +msgid "" +"Restore is scheduled in more than two minutes, bwx-console will not wait for " +"its completion.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:853 +msgid "" +"Restore is scheduled in more than two minutes, bwx-console will not wait for " +"its completion." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:879 +msgid "Restore job created, but not yet running." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:884 +#, c-format +msgid "Restore job running, please wait (%ld of %ld files restored)..." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:888 +msgid "Restore job terminated successfully." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:889 +msgid "Restore job terminated successfully.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:894 +msgid "Restore job terminated in error, see messages in console." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:895 +msgid "Restore job terminated in error, see messages.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:900 +msgid "Restore job reported a non-fatal error." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:904 +msgid "Restore job reported a fatal error." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:909 +msgid "Restore job cancelled by user." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:910 +msgid "Restore job cancelled by user.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:915 +msgid "Restore job is waiting on File daemon." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:919 +msgid "Restore job is waiting for new media." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:923 +msgid "Restore job is waiting for storage resource." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:927 +msgid "Restore job is waiting for job resource." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:931 +msgid "Restore job is waiting for Client resource." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:935 +msgid "Restore job is waiting for maximum jobs." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:939 +msgid "Restore job is waiting for start time." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:943 +msgid "Restore job is waiting for higher priority jobs to finish." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:992 +msgid "" +"The restore job has not been started within one minute, bwx-console will not " +"wait for its completion anymore.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:993 +msgid "" +"The restore job has not been started within one minute, bwx-console will not " +"wait for its completion anymore." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1003 +msgid "Restore done successfully.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1004 +msgid "Restore done successfully." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1075 +msgid "Applying restore configuration changes..." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1126 +msgid "Failed to find the selected client." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1141 +msgid "Failed to find the selected fileset." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1156 +msgid "Failed to find the selected storage." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1173 +#: src/wx-console/wxbrestorepanel.cpp:1859 +msgid "Run Restore job" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1189 +msgid "Restore configuration changes were applied." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1198 +msgid "Restore cancelled.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1199 +msgid "Restore cancelled." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1221 +msgid "No results to list." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1223 +msgid "No backup found for this client." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1230 +msgid "ERROR" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1231 +msgid "Query failed" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1233 +msgid "Cannot get previous backups list, see console." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1869 +msgid "JobName:" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1873 +msgid "Where:" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1876 +msgid "Replace:" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1879 +msgid "ifnewer" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1880 +msgid "ifolder" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1884 +msgid "FileSet:" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:2001 +msgid "Restoring..." +msgstr "" diff --git a/Branch-2.2/bacula/po/quot.sed b/Branch-2.2/bacula/po/quot.sed new file mode 100644 index 0000000000..0122c46318 --- /dev/null +++ b/Branch-2.2/bacula/po/quot.sed @@ -0,0 +1,6 @@ +s/"\([^"]*\)"/“\1”/g +s/`\([^`']*\)'/‘\1’/g +s/ '\([^`']*\)' / ‘\1’ /g +s/ '\([^`']*\)'$/ ‘\1’/g +s/^'\([^`']*\)' /‘\1’ /g +s/“”/""/g diff --git a/Branch-2.2/bacula/po/remove-potcdate.sin b/Branch-2.2/bacula/po/remove-potcdate.sin new file mode 100644 index 0000000000..2436c49e78 --- /dev/null +++ b/Branch-2.2/bacula/po/remove-potcdate.sin @@ -0,0 +1,19 @@ +# Sed script that remove the POT-Creation-Date line in the header entry +# from a POT file. +# +# The distinction between the first and the following occurrences of the +# pattern is achieved by looking at the hold space. +/^"POT-Creation-Date: .*"$/{ +x +# Test if the hold space is empty. +s/P/P/ +ta +# Yes it was empty. First occurrence. Remove the line. +g +d +bb +:a +# The hold space was nonempty. Following occurrences. Do nothing. +x +:b +} diff --git a/Branch-2.2/bacula/po/sv.po b/Branch-2.2/bacula/po/sv.po new file mode 100644 index 0000000000..d6b87498c6 --- /dev/null +++ b/Branch-2.2/bacula/po/sv.po @@ -0,0 +1,15930 @@ +# Swedish translations for PACKAGE package. +# Copyright (C) 2007 Kern Sibbald +# This file is distributed under the same license as the PACKAGE package. +# Kern Sibbald , 2007. +# +msgid "" +msgstr "" +"Project-Id-Version: Bacula 2.1.x\n" +"Report-Msgid-Bugs-To: bacula-devel@lists.sourceforge.net\n" +"POT-Creation-Date: 2007-08-10 23:23+0200\n" +"PO-Revision-Date: 2007-06-22 19:18+0200\n" +"Last-Translator: Kern Sibbald \n" +"Language-Team: Swedish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ASCII\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: src/cats/bdb.c:161 +msgid "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n" +msgstr "" + +#: src/cats/bdb.c:162 +msgid "WARNING!!!! The Internal Database is NOT OPERATIONAL!\n" +msgstr "" + +#: src/cats/bdb.c:163 +msgid "You should use SQLite, PostgreSQL, or MySQL\n" +msgstr "" + +#: src/cats/bdb.c:185 src/cats/mysql.c:152 src/cats/postgresql.c:161 +#: src/cats/sqlite.c:160 +#, c-format +msgid "Unable to initialize DB lock. ERR=%s\n" +msgstr "" + +#: src/cats/bdb.c:195 +#, c-format +msgid "Unable to open Catalog DB control file %s: ERR=%s\n" +msgstr "" + +#: src/cats/bdb.c:250 +#, c-format +msgid "Error reading catalog DB control file. ERR=%s\n" +msgstr "" + +#: src/cats/bdb.c:253 +#, c-format +msgid "" +"Error, catalog DB control file wrong version. Wanted %d, got %d\n" +"Please reinitialize the working directory.\n" +msgstr "" + +#: src/cats/bdb_update.c:88 src/cats/bdb_update.c:119 +#, c-format +msgid "Error updating DB Job file. ERR=%s\n" +msgstr "" + +#: src/cats/bdb_update.c:158 src/cats/bdb_update.c:194 +#, c-format +msgid "Error updating DB Media file. ERR=%s\n" +msgstr "" + +#: src/cats/mysql.c:82 +msgid "A user name for MySQL must be supplied.\n" +msgstr "" + +#: src/cats/mysql.c:190 +#, c-format +msgid "" +"Unable to connect to MySQL server.\n" +"Database=%s User=%s\n" +"MySQL connect failed either server not running or your authorization is " +"incorrect.\n" +msgstr "" + +#: src/cats/mysql.c:367 src/cats/postgresql.c:304 src/cats/sqlite.c:351 +#, c-format +msgid "Query failed: %s: ERR=%s\n" +msgstr "" + +#: src/cats/postgresql.c:85 +msgid "A user name for PostgreSQL must be supplied.\n" +msgstr "" + +#: src/cats/postgresql.c:148 +msgid "" +"PostgreSQL configuration problem. PostgreSQL library is not thread safe. " +"Connot continue.\n" +msgstr "" + +#: src/cats/postgresql.c:198 +#, c-format +msgid "" +"Unable to connect to PostgreSQL server.\n" +"Database=%s User=%s\n" +"It is probably not running or your password is incorrect.\n" +msgstr "" + +#: src/cats/postgresql.c:590 +#, c-format +msgid "error fetching currval: %s\n" +msgstr "" + +#: src/cats/postgresql.c:682 src/cats/postgresql.c:729 +#, c-format +msgid "error ending batch mode: %s\n" +msgstr "" + +#: src/cats/sql.c:139 +#, c-format +msgid "" +"query %s failed:\n" +"%s\n" +msgstr "" + +#: src/cats/sql.c:161 +#, c-format +msgid "" +"insert %s failed:\n" +"%s\n" +msgstr "" + +#: src/cats/sql.c:175 +#, c-format +msgid "Insertion problem: affected_rows=%s\n" +msgstr "" + +#: src/cats/sql.c:195 +#, c-format +msgid "" +"update %s failed:\n" +"%s\n" +msgstr "" + +#: src/cats/sql.c:205 +#, c-format +msgid "Update failed: affected_rows=%s for %s\n" +msgstr "" + +#: src/cats/sql.c:226 +#, c-format +msgid "" +"delete %s failed:\n" +"%s\n" +msgstr "" + +#: src/cats/sql.c:252 src/cats/sql.c:259 src/cats/sql_create.c:1018 +#: src/cats/sql_get.c:185 src/cats/sql_get.c:236 src/cats/sql_get.c:604 +#: src/cats/sql_get.c:680 src/cats/sql_get.c:951 +#, c-format +msgid "error fetching row: %s\n" +msgstr "" + +#: src/cats/sql.c:369 src/dird/catreq.c:404 src/dird/catreq.c:478 +#: src/dird/fd_cmds.c:638 src/dird/fd_cmds.c:696 +#, c-format +msgid "Attribute create error. %s" +msgstr "" + +#: src/cats/sql.c:450 +#, c-format +msgid "Path length is zero. File=%s\n" +msgstr "" + +#: src/cats/sql.c:494 +msgid "No results to list.\n" +msgstr "" + +#: src/cats/sql_create.c:95 +#, c-format +msgid "Create DB Job record %s failed. ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:146 +#, c-format +msgid "Create JobMedia record %s failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:155 +#, c-format +msgid "Update Media record %s failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:185 +#, c-format +msgid "pool record %s already exists\n" +msgstr "" + +#: src/cats/sql_create.c:212 +#, c-format +msgid "Create db Pool record %s failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:243 +#, c-format +msgid "Device record %s already exists\n" +msgstr "" + +#: src/cats/sql_create.c:259 +#, c-format +msgid "Create db Device record %s failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:292 +#, c-format +msgid "More than one Storage record!: %d\n" +msgstr "" + +#: src/cats/sql_create.c:297 +#, c-format +msgid "error fetching Storage row: %s\n" +msgstr "" + +#: src/cats/sql_create.c:317 +#, c-format +msgid "Create DB Storage record %s failed. ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:349 +#, c-format +msgid "mediatype record %s already exists\n" +msgstr "" + +#: src/cats/sql_create.c:365 +#, c-format +msgid "Create db mediatype record %s failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:400 +#, c-format +msgid "Volume \"%s\" already exists.\n" +msgstr "" + +#: src/cats/sql_create.c:445 +#, c-format +msgid "Create DB Media record %s failed. ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:493 +#, c-format +msgid "More than one Client!: %d\n" +msgstr "" + +#: src/cats/sql_create.c:498 +#, c-format +msgid "error fetching Client row: %s\n" +msgstr "" + +#: src/cats/sql_create.c:525 +#, c-format +msgid "Create DB Client record %s failed. ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:568 +#, c-format +msgid "Create DB Counters record %s failed. ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:601 +#, c-format +msgid "More than one FileSet!: %d\n" +msgstr "" + +#: src/cats/sql_create.c:606 +#, c-format +msgid "error fetching FileSet row: ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:636 +#, c-format +msgid "Create DB FileSet record %s failed. ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:850 src/dird/job.c:131 src/dird/ua_output.c:628 +#, c-format +msgid "Could not open database \"%s\".\n" +msgstr "" + +#: src/cats/sql_create.c:873 src/cats/sql_create.c:914 +#, c-format +msgid "Attempt to put non-attributes into catalog. Stream=%d\n" +msgstr "" + +#: src/cats/sql_create.c:978 +#, c-format +msgid "Create db File record %s failed. ERR=%s" +msgstr "" + +#: src/cats/sql_create.c:1011 src/cats/sql_get.c:229 +#, c-format +msgid "More than one Path!: %s for path: %s\n" +msgstr "" + +#: src/cats/sql_create.c:1042 +#, c-format +msgid "Create db Path record %s failed. ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:1075 +#, c-format +msgid "More than one Filename! %s for file: %s\n" +msgstr "" + +#: src/cats/sql_create.c:1081 +#, c-format +msgid "Error fetching row for file=%s: ERR=%s\n" +msgstr "" + +#: src/cats/sql_create.c:1097 +#, c-format +msgid "Create db Filename record %s failed. ERR=%s\n" +msgstr "" + +#: src/cats/sql_delete.c:80 +#, c-format +msgid "No pool record %s exists\n" +msgstr "" + +#: src/cats/sql_delete.c:85 +#, c-format +msgid "Expecting one pool record, got %d\n" +msgstr "" + +#: src/cats/sql_delete.c:91 +#, c-format +msgid "Error fetching row %s\n" +msgstr "" + +#: src/cats/sql_find.c:98 src/cats/sql_find.c:127 +#, c-format +msgid "" +"Query error for start time request: ERR=%s\n" +"CMD=%s\n" +msgstr "" + +#: src/cats/sql_find.c:104 +msgid "No prior Full backup Job record found.\n" +msgstr "" + +#: src/cats/sql_find.c:116 +#, c-format +msgid "Unknown level=%d\n" +msgstr "" + +#: src/cats/sql_find.c:133 +#, c-format +msgid "" +"No Job record found: ERR=%s\n" +"CMD=%s\n" +msgstr "" + +#: src/cats/sql_find.c:232 +#, c-format +msgid "Unknown Job level=%d\n" +msgstr "" + +#: src/cats/sql_find.c:242 +#, c-format +msgid "No Job found for: %s.\n" +msgstr "" + +#: src/cats/sql_find.c:253 +#, c-format +msgid "No Job found for: %s\n" +msgstr "" + +#: src/cats/sql_find.c:332 +#, c-format +msgid "Request for Volume item %d greater than max %d or less than 1\n" +msgstr "" + +#: src/cats/sql_find.c:347 +#, c-format +msgid "No Volume record found for item %d.\n" +msgstr "" + +#: src/cats/sql_get.c:135 +#, c-format +msgid "get_file_record want 1 got rows=%d\n" +msgstr "" + +#: src/cats/sql_get.c:140 +#, c-format +msgid "Error fetching row: %s\n" +msgstr "" + +#: src/cats/sql_get.c:148 +#, c-format +msgid "File record for PathId=%s FilenameId=%s not found.\n" +msgstr "" + +#: src/cats/sql_get.c:154 +msgid "File record not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:179 +#, c-format +msgid "More than one Filename!: %s for file: %s\n" +msgstr "" + +#: src/cats/sql_get.c:189 +#, c-format +msgid "Get DB Filename record %s found bad record: %d\n" +msgstr "" + +#: src/cats/sql_get.c:195 +#, c-format +msgid "Filename record: %s not found.\n" +msgstr "" + +#: src/cats/sql_get.c:199 +#, c-format +msgid "Filename record: %s not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:240 +#, c-format +msgid "Get DB path record %s found bad record: %s\n" +msgstr "" + +#: src/cats/sql_get.c:253 +#, c-format +msgid "Path record: %s not found.\n" +msgstr "" + +#: src/cats/sql_get.c:257 +#, c-format +msgid "Path record: %s not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:294 +#, c-format +msgid "No Job found for JobId %s\n" +msgstr "" + +#: src/cats/sql_get.c:363 src/cats/sql_get.c:419 +#, c-format +msgid "No volumes found for JobId=%d\n" +msgstr "" + +#: src/cats/sql_get.c:369 src/cats/sql_get.c:430 +#, c-format +msgid "Error fetching row %d: ERR=%s\n" +msgstr "" + +#: src/cats/sql_get.c:383 +#, c-format +msgid "No Volume for JobId %d found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:520 +#, c-format +msgid "Pool id select failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_get.c:557 +#, c-format +msgid "Client id select failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_get.c:599 +#, c-format +msgid "More than one Pool!: %s\n" +msgstr "" + +#: src/cats/sql_get.c:641 +msgid "Pool record not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:675 +#, c-format +msgid "More than one Client!: %s\n" +msgstr "" + +#: src/cats/sql_get.c:692 src/cats/sql_get.c:696 +msgid "Client record not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:721 +#, c-format +msgid "More than one Counter!: %d\n" +msgstr "" + +#: src/cats/sql_get.c:726 +#, c-format +msgid "error fetching Counter row: %s\n" +msgstr "" + +#: src/cats/sql_get.c:746 +#, c-format +msgid "Counter record: %s not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:782 +#, c-format +msgid "Error got %s FileSets but expected only one!\n" +msgstr "" + +#: src/cats/sql_get.c:787 +#, c-format +msgid "FileSet record \"%s\" not found.\n" +msgstr "" + +#: src/cats/sql_get.c:797 +msgid "FileSet record not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:855 +#, c-format +msgid "Media id select failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_get.c:893 +#, c-format +msgid "query dbids failed: ERR=%s\n" +msgstr "" + +#: src/cats/sql_get.c:946 +#, c-format +msgid "More than one Volume!: %s\n" +msgstr "" + +#: src/cats/sql_get.c:1001 +#, c-format +msgid "Media record MediaId=%s not found.\n" +msgstr "" + +#: src/cats/sql_get.c:1004 +#, c-format +msgid "Media record for Volume \"%s\" not found.\n" +msgstr "" + +#: src/cats/sql_get.c:1011 +#, c-format +msgid "Media record for MediaId=%u not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_get.c:1014 +#, c-format +msgid "Media record for Vol=%s not found in Catalog.\n" +msgstr "" + +#: src/cats/sql_list.c:62 +#, c-format +msgid "Query failed: %s\n" +msgstr "" + +#: src/cats/sqlite.c:174 +#, c-format +msgid "Database %s does not exist, please create it.\n" +msgstr "" + +#: src/cats/sqlite.c:204 +#, c-format +msgid "Unable to open Database=%s. ERR=%s\n" +msgstr "" + +#: src/cats/sqlite.c:205 src/lib/bnet_server.c:391 +msgid "unknown" +msgstr "" + +#: src/dird/admin.c:63 +#, c-format +msgid "Start Admin JobId %d, Job=%s\n" +msgstr "" + +#: src/dird/admin.c:89 src/dird/backup.c:355 src/dird/migrate.c:1077 +#, c-format +msgid "Error getting Job record for Job report: ERR=%s" +msgstr "" + +#: src/dird/admin.c:97 +msgid "Admin OK" +msgstr "" + +#: src/dird/admin.c:101 +msgid "*** Admin Error ***" +msgstr "" + +#: src/dird/admin.c:105 +msgid "Admin Canceled" +msgstr "" + +#: src/dird/admin.c:109 src/dird/backup.c:405 src/dird/restore.c:279 +#, c-format +msgid "Inappropriate term code: %c\n" +msgstr "" + +#: src/dird/admin.c:115 +msgid "Bacula " +msgstr "" + +#: src/dird/admin.c:115 src/console/console.c:114 +#, c-format +msgid " (" +msgstr "" + +#: src/dird/admin.c:115 +#, c-format +msgid "" +"): %s\n" +" JobId: %d\n" +" Job: %s\n" +" Start time: %s\n" +" End time: %s\n" +" Termination: %s\n" +"\n" +msgstr "" + +#: src/dird/authenticate.c:80 src/dird/authenticate.c:81 +#: src/tray-monitor/authenticate.c:132 +#, c-format +msgid "Error sending Hello to Storage daemon. ERR=%s\n" +msgstr "" + +#: src/dird/authenticate.c:106 +msgid "Director and Storage daemon passwords or names not the same.\n" +msgstr "" + +#: src/dird/authenticate.c:108 +#, c-format +msgid "" +"Director unable to authenticate with Storage daemon at \"%s:%d\". Possible " +"causes:\n" +"Passwords or names not the same or\n" +"Maximum Concurrent Jobs exceeded on the SD or\n" +"SD networking messed up (restart daemon).\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" + +#: src/dird/authenticate.c:120 src/console/authenticate.c:114 +#: src/filed/authenticate.c:251 src/stored/authenticate.c:131 +#: src/stored/authenticate.c:232 src/wx-console/authenticate.c:127 +msgid "" +"Authorization problem: Remote server did not advertise required TLS " +"support.\n" +msgstr "" + +#: src/dird/authenticate.c:127 src/console/authenticate.c:121 +#: src/filed/authenticate.c:147 src/filed/authenticate.c:259 +#: src/stored/authenticate.c:139 src/stored/authenticate.c:240 +#: src/wx-console/authenticate.c:133 +msgid "Authorization problem: Remote server requires TLS.\n" +msgstr "" + +#: src/dird/authenticate.c:136 +#, c-format +msgid "TLS negotiation failed with SD at \"%s:%d\"\n" +msgstr "" + +#: src/dird/authenticate.c:145 +#, c-format +msgid "bdird set configuration file to file\n" +" -dnn set debug level to nn\n" +" -f run in foreground (for debugging)\n" +" -g groupid\n" +" -r run now\n" +" -s no signals\n" +" -t test - read configuration and exit\n" +" -u userid\n" +" -v verbose user messages\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/dird/dird.c:224 src/console/console.c:426 src/filed/filed.c:182 +#: src/gnome2-console/console.c:286 src/stored/stored.c:210 +msgid "Cryptography library initialization failed.\n" +msgstr "" + +#: src/dird/dird.c:228 src/dird/dird.c:234 src/dird/dird.c:474 +#: src/dird/dird.c:477 src/console/console.c:430 src/filed/filed.c:187 +#: src/gnome2-console/console.c:290 src/stored/stored.c:214 +#, c-format +msgid "Please correct configuration file: %s\n" +msgstr "" + +#: src/dird/dird.c:460 +msgid "Too many open reload requests. Request ignored.\n" +msgstr "" + +#: src/dird/dird.c:475 +msgid "Out of reload table entries. Giving up.\n" +msgstr "" + +#: src/dird/dird.c:478 +msgid "Resetting previous configuration.\n" +msgstr "" + +#: src/dird/dird.c:541 +#, c-format +msgid "" +"No Director resource defined in %s\n" +"Without that I don't know who I am :-(\n" +msgstr "" + +#: src/dird/dird.c:549 src/filed/filed.c:281 +#, c-format +msgid "No Messages resource defined in %s\n" +msgstr "" + +#: src/dird/dird.c:554 +#, c-format +msgid "Only one Director resource permitted in %s\n" +msgstr "" + +#: src/dird/dird.c:563 src/dird/dird.c:764 src/dird/dird.c:816 +#: src/dird/dird.c:920 src/console/console.c:657 src/console/console.c:686 +#: src/filed/filed.c:288 src/filed/filed.c:446 +#: src/gnome2-console/console.c:153 src/gnome2-console/console.c:182 +#: src/stored/stored.c:332 src/wx-console/console_thread.cpp:114 +#: src/wx-console/console_thread.cpp:140 +msgid "TLS required but not configured in Bacula.\n" +msgstr "" + +#: src/dird/dird.c:569 src/filed/filed.c:455 src/stored/stored.c:384 +#, c-format +msgid "\"TLS Certificate\" file not defined for Director \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird.c:575 src/filed/filed.c:461 src/stored/stored.c:390 +#, c-format +msgid "\"TLS Key\" file not defined for Director \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird.c:581 src/filed/filed.c:467 src/stored/stored.c:396 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Director \"%s\" in %s. At least one CA certificate store is required when " +"using \"TLS Verify Peer\".\n" +msgstr "" + +#: src/dird/dird.c:600 src/filed/filed.c:486 src/stored/stored.c:415 +#, c-format +msgid "Failed to initialize TLS context for Director \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird.c:608 +#, c-format +msgid "No Job records defined in %s\n" +msgstr "" + +#: src/dird/dird.c:666 src/dird/dird.c:679 +#, c-format +msgid "Hey something is wrong. p=0x%lu\n" +msgstr "" + +#: src/dird/dird.c:738 +#, c-format +msgid "\"%s\" directive in Job \"%s\" resource is required, but not found.\n" +msgstr "" + +#: src/dird/dird.c:745 +msgid "Too many items in Job resource\n" +msgstr "" + +#: src/dird/dird.c:749 +#, c-format +msgid "No storage specified in Job \"%s\" nor in Pool.\n" +msgstr "" + +#: src/dird/dird.c:771 +#, c-format +msgid "\"TLS Certificate\" file not defined for Console \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird.c:777 +#, c-format +msgid "\"TLS Key\" file not defined for Console \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird.c:783 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Console \"%s\" in %s. At least one CA certificate store is required when " +"using \"TLS Verify Peer\".\n" +msgstr "" + +#: src/dird/dird.c:800 src/dird/dird.c:840 src/filed/filed.c:312 +#, c-format +msgid "Failed to initialize TLS context for File daemon \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird.c:823 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"File daemon \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird.c:872 src/dird/dird.c:874 +#, c-format +msgid "Could not open Catalog \"%s\", database \"%s\".\n" +msgstr "" + +#: src/dird/dird.c:877 +#, c-format +msgid "%s" +msgstr "" + +#: src/dird/dird.c:926 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Storage \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird.c:942 src/stored/stored.c:370 +#, c-format +msgid "Failed to initialize TLS context for Storage \"%s\" in %s.\n" +msgstr "" + +#: src/dird/dird_conf.c:508 src/tray-monitor/tray_conf.c:168 +#, c-format +msgid "No %s resource defined\n" +msgstr "" + +#: src/dird/dird_conf.c:517 +#, c-format +msgid "Director: name=%s MaxJobs=%d FDtimeout=%s SDtimeout=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:522 +#, c-format +msgid " query_file=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:525 src/dird/dird_conf.c:545 src/dird/dird_conf.c:559 +#: src/dird/dird_conf.c:607 src/dird/dird_conf.c:611 src/dird/dird_conf.c:615 +#: src/dird/dird_conf.c:633 src/dird/dird_conf.c:650 src/dird/dird_conf.c:654 +#: src/dird/dird_conf.c:658 src/dird/dird_conf.c:662 src/dird/dird_conf.c:666 +#: src/dird/dird_conf.c:679 src/dird/dird_conf.c:880 +msgid " --> " +msgstr "" + +#: src/dird/dird_conf.c:530 +#, c-format +msgid "Console: name=%s SSL=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:535 +#, c-format +msgid "Counter: name=%s min=%d max=%d cur=%d wrapcntr=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:540 +#, c-format +msgid "Counter: name=%s min=%d max=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:551 +#, c-format +msgid "Client: name=%s address=%s FDport=%d MaxJobs=%u\n" +msgstr "" + +#: src/dird/dird_conf.c:554 +#, c-format +msgid " JobRetention=%s FileRetention=%s AutoPrune=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:566 +#, c-format +msgid "" +"Device: name=%s ok=%d num_writers=%d max_writers=%d\n" +" reserved=%d open=%d append=%d read=%d labeled=%d offline=%d autochgr=%" +"d\n" +" poolid=%s volname=%s MediaType=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:576 +#, c-format +msgid "" +"Storage: name=%s address=%s SDport=%d MaxJobs=%u\n" +" DeviceName=%s MediaType=%s StorageId=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:585 +#, c-format +msgid "" +"Catalog: name=%s address=%s DBport=%d db_name=%s\n" +" db_user=%s MutliDBConn=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:593 +#, c-format +msgid "%s: name=%s JobType=%d level=%s Priority=%d Enabled=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:594 src/dird/ua_cmds.c:478 src/dird/ua_prune.c:365 +#: src/dird/ua_run.c:266 src/dird/ua_select.c:263 src/dird/ua_select.c:286 +msgid "Job" +msgstr "" + +#: src/dird/dird_conf.c:594 +msgid "JobDefs" +msgstr "" + +#: src/dird/dird_conf.c:598 +#, c-format +msgid "" +" MaxJobs=%u Resched=%d Times=%d Interval=%s Spool=%d WritePartAfterJob=%" +"d\n" +msgstr "" + +#: src/dird/dird_conf.c:604 +#, c-format +msgid " SelectionType=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:619 +#, c-format +msgid " --> Where=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:622 +#, c-format +msgid " --> RegexWhere=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:625 +#, c-format +msgid " --> Bootstrap=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:628 +#, c-format +msgid " --> WriteBootstrap=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:640 src/lib/runscript.c:261 +msgid " --> RunScript\n" +msgstr "" + +#: src/dird/dird_conf.c:641 src/lib/runscript.c:262 +#, c-format +msgid " --> Command=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:642 src/lib/runscript.c:263 +#, c-format +msgid " --> Target=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:643 src/lib/runscript.c:264 +#, c-format +msgid " --> RunOnSuccess=%u\n" +msgstr "" + +#: src/dird/dird_conf.c:644 src/lib/runscript.c:265 +#, c-format +msgid " --> RunOnFailure=%u\n" +msgstr "" + +#: src/dird/dird_conf.c:645 src/lib/runscript.c:266 +#, c-format +msgid " --> FailJobOnError=%u\n" +msgstr "" + +#: src/dird/dird_conf.c:646 src/lib/runscript.c:267 +#, c-format +msgid " --> RunWhen=%u\n" +msgstr "" + +#: src/dird/dird_conf.c:672 +#, c-format +msgid " --> Run=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:676 +#, c-format +msgid " --> SelectionPattern=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:686 +#, c-format +msgid "FileSet: name=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:763 src/dird/dird_conf.c:842 +#, c-format +msgid "Schedule: name=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:768 +#, c-format +msgid " --> Run Level=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:769 +msgid " hour=" +msgstr "" + +#: src/dird/dird_conf.c:778 +msgid " mday=" +msgstr "" + +#: src/dird/dird_conf.c:787 +msgid " month=" +msgstr "" + +#: src/dird/dird_conf.c:796 +msgid " wday=" +msgstr "" + +#: src/dird/dird_conf.c:805 +msgid " wom=" +msgstr "" + +#: src/dird/dird_conf.c:814 +msgid " woy=" +msgstr "" + +#: src/dird/dird_conf.c:823 +#, c-format +msgid " mins=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:825 src/dird/dird_conf.c:829 src/dird/dird_conf.c:833 +msgid " --> " +msgstr "" + +#: src/dird/dird_conf.c:846 +#, c-format +msgid "Pool: name=%s PoolType=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:848 +#, c-format +msgid " use_cat=%d use_once=%d cat_files=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:851 +#, c-format +msgid " max_vols=%d auto_prune=%d VolRetention=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:854 +#, c-format +msgid " VolUse=%s recycle=%d LabelFormat=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:858 +#, c-format +msgid " CleaningPrefix=%s LabelType=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:860 +#, c-format +msgid " RecyleOldest=%d PurgeOldest=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:863 +#, c-format +msgid " MaxVolJobs=%d MaxVolFiles=%d MaxVolBytes=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:867 +#, c-format +msgid " MigTime=%s MigHiBytes=%s MigLoBytes=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:872 +#, c-format +msgid " NextPool=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:875 +#, c-format +msgid " RecyclePool=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:886 +#, c-format +msgid "Messages: name=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:888 +#, c-format +msgid " mailcmd=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:890 +#, c-format +msgid " opcmd=%s\n" +msgstr "" + +#: src/dird/dird_conf.c:893 src/tray-monitor/tray_conf.c:199 +#, c-format +msgid "Unknown resource type %d in dump_resource.\n" +msgstr "" + +#: src/dird/dird_conf.c:1199 src/tray-monitor/tray_conf.c:257 +#, c-format +msgid "Unknown resource type %d in free_resource.\n" +msgstr "" + +#: src/dird/dird_conf.c:1231 src/dird/dird_conf.c:1246 +#: src/dird/dird_conf.c:1842 src/console/console_conf.c:257 +#: src/filed/filed_conf.c:347 src/gnome2-console/console_conf.c:258 +#: src/tray-monitor/tray_conf.c:288 src/wx-console/console_conf.c:265 +#, c-format +msgid "%s item is required in %s resource, but not found.\n" +msgstr "" + +#: src/dird/dird_conf.c:1237 src/lib/parse_conf.c:234 +#: src/tray-monitor/tray_conf.c:294 +#, c-format +msgid "Too many items in %s resource\n" +msgstr "" + +#: src/dird/dird_conf.c:1277 +#, c-format +msgid "Cannot find Pool resource %s\n" +msgstr "" + +#: src/dird/dird_conf.c:1286 +#, c-format +msgid "Cannot find Console resource %s\n" +msgstr "" + +#: src/dird/dird_conf.c:1292 src/filed/filed_conf.c:367 +#: src/stored/stored_conf.c:584 +#, c-format +msgid "Cannot find Director resource %s\n" +msgstr "" + +#: src/dird/dird_conf.c:1299 src/stored/stored_conf.c:590 +#, c-format +msgid "Cannot find Storage resource %s\n" +msgstr "" + +#: src/dird/dird_conf.c:1308 +#, c-format +msgid "Cannot find Job resource %s\n" +msgstr "" + +#: src/dird/dird_conf.c:1357 +#, c-format +msgid "Cannot find Counter resource %s\n" +msgstr "" + +#: src/dird/dird_conf.c:1365 src/filed/filed_conf.c:373 +#, c-format +msgid "Cannot find Client resource %s\n" +msgstr "" + +#: src/dird/dird_conf.c:1378 +#, c-format +msgid "Cannot find Schedule resource %s\n" +msgstr "" + +#: src/dird/dird_conf.c:1383 src/dird/dird_conf.c:1443 +#: src/tray-monitor/tray_conf.c:314 src/tray-monitor/tray_conf.c:352 +#, c-format +msgid "Unknown resource type %d in save_resource.\n" +msgstr "" + +#: src/dird/dird_conf.c:1458 +#, c-format +msgid "Name item is required in %s resource, but not found.\n" +msgstr "" + +#: src/dird/dird_conf.c:1466 src/console/console_conf.c:320 +#: src/filed/filed_conf.c:432 src/gnome2-console/console_conf.c:327 +#: src/tray-monitor/tray_conf.c:372 src/wx-console/console_conf.c:328 +#, c-format +msgid "Attempt to define second %s resource named \"%s\" is not permitted.\n" +msgstr "" + +#: src/dird/dird_conf.c:1471 +#, c-format +msgid "Inserting %s res: %s index=%d pass=%d\n" +msgstr "" + +#: src/dird/dird_conf.c:1543 +#, c-format +msgid "Expected a Migration Job Type keyword, got: %s" +msgstr "" + +#: src/dird/dird_conf.c:1569 +#, c-format +msgid "Expected a Job Type keyword, got: %s" +msgstr "" + +#: src/dird/dird_conf.c:1593 +#, c-format +msgid "Expected a Job Level keyword, got: %s" +msgstr "" + +#: src/dird/dird_conf.c:1613 +#, c-format +msgid "Expected a Restore replacement option, got: %s" +msgstr "" + +#: src/dird/dird_conf.c:1661 src/dird/dird_conf.c:1771 +#: src/lib/parse_conf.c:723 src/lib/parse_conf.c:738 +#, c-format +msgid "Expect %s, got: %s" +msgstr "" + +#: src/dird/dird_conf.c:1683 src/lib/parse_conf.c:482 +#, c-format +msgid "Could not find config Resource %s referenced on line %d : %s\n" +msgstr "" + +#: src/dird/dird_conf.c:1811 src/dird/inc_conf.c:645 +#, c-format +msgid "Expecting open brace. Got %s" +msgstr "" + +#: src/dird/dird_conf.c:1819 src/dird/inc_conf.c:360 src/dird/inc_conf.c:660 +#, c-format +msgid "Expecting keyword, got: %s\n" +msgstr "" + +#: src/dird/dird_conf.c:1825 src/dird/inc_conf.c:368 src/dird/inc_conf.c:666 +#: src/lib/parse_conf.c:874 +#, c-format +msgid "expected an equals, got: %s" +msgstr "" + +#: src/dird/dird_conf.c:1836 src/dird/inc_conf.c:378 src/dird/inc_conf.c:675 +#, c-format +msgid "Keyword %s not permitted in this resource" +msgstr "" + +#: src/dird/expand.c:255 +#, c-format +msgid "Count not update counter %s: ERR=%s\n" +msgstr "" + +#: src/dird/expand.c:427 +#, c-format +msgid "Cannot create var context: ERR=%s\n" +msgstr "" + +#: src/dird/expand.c:432 +#, c-format +msgid "Cannot set var callback: ERR=%s\n" +msgstr "" + +#: src/dird/expand.c:438 +#, c-format +msgid "Cannot set var operate: ERR=%s\n" +msgstr "" + +#: src/dird/expand.c:444 src/dird/expand.c:459 +#, c-format +msgid "Cannot unescape string: ERR=%s\n" +msgstr "" + +#: src/dird/expand.c:452 +#, c-format +msgid "Cannot expand expression \"%s\": ERR=%s\n" +msgstr "" + +#: src/dird/expand.c:470 +#, c-format +msgid "Cannot destroy var context: ERR=%s\n" +msgstr "" + +#: src/dird/fd_cmds.c:94 src/tray-monitor/tray-monitor.c:914 +msgid "File daemon" +msgstr "" + +#: src/dird/fd_cmds.c:125 +#, c-format +msgid "File daemon \"%s\" rejected Job command: %s\n" +msgstr "" + +#: src/dird/fd_cmds.c:138 +#, c-format +msgid "Error updating Client record. ERR=%s\n" +msgstr "" + +#: src/dird/fd_cmds.c:143 +#, c-format +msgid "FD gave bad response to JobId command: %s\n" +msgstr "" + +#: src/dird/fd_cmds.c:165 src/dird/fd_cmds.c:201 +msgid ", since=" +msgstr "" + +#: src/dird/fd_cmds.c:185 +msgid "No prior or suitable Full backup found in catalog. Doing FULL backup.\n" +msgstr "" + +#: src/dird/fd_cmds.c:186 src/dird/fd_cmds.c:194 +#, c-format +msgid " (upgraded from %s)" +msgstr "" + +#: src/dird/fd_cmds.c:192 +#, c-format +msgid "Prior failed job found in catalog. Upgrading to %s.\n" +msgstr "" + +#: src/dird/fd_cmds.c:253 +#, c-format +msgid "Unimplemented backup level %d %c\n" +msgstr "" + +#: src/dird/fd_cmds.c:356 src/filed/job.c:640 +#, c-format +msgid "Cannot run program: %s. ERR=%s\n" +msgstr "" + +#: src/dird/fd_cmds.c:367 src/dird/fd_cmds.c:392 src/dird/fd_cmds.c:406 +msgid ">filed: write error on socket\n" +msgstr "" + +#: src/dird/fd_cmds.c:373 +#, c-format +msgid "Error running program: %s. ERR=%s\n" +msgstr "" + +#: src/dird/fd_cmds.c:382 +#, c-format +msgid "Cannot open included file: %s. ERR=%s\n" +msgstr "" + +#: src/dird/fd_cmds.c:477 src/filed/job.c:1831 +#, c-format +msgid "Could not open bootstrap file %s: ERR=%s\n" +msgstr "" + +#: src/dird/fd_cmds.c:583 +#, c-format +msgid "Client \"%s\" RunScript failed.\n" +msgstr "" + +#: src/dird/fd_cmds.c:619 +#, c-format +msgid "" +" | ] -- cancel a job" +msgstr "" + +#: src/dird/ua_cmds.c:108 +msgid "create DB Pool from resource" +msgstr "" + +#: src/dird/ua_cmds.c:109 +msgid "delete [pool= | media volume=]" +msgstr "" + +#: src/dird/ua_cmds.c:110 +msgid "disable -- disable a job" +msgstr "" + +#: src/dird/ua_cmds.c:111 +msgid "enable -- enable a job" +msgstr "" + +#: src/dird/ua_cmds.c:112 +msgid "performs FileSet estimate, listing gives full listing" +msgstr "" + +#: src/dird/ua_cmds.c:113 src/console/console.c:171 +msgid "exit = quit" +msgstr "" + +#: src/dird/ua_cmds.c:114 +msgid "gui [on|off] -- non-interactive gui mode" +msgstr "" + +#: src/dird/ua_cmds.c:115 src/stored/btape.c:2540 +msgid "print this command" +msgstr "" + +#: src/dird/ua_cmds.c:116 +msgid "" +"list [pools | jobs | jobtotals | media | files ]; " +"from catalog" +msgstr "" + +#: src/dird/ua_cmds.c:117 +msgid "label a tape" +msgstr "" + +#: src/dird/ua_cmds.c:118 +msgid "full or long list like list command" +msgstr "" + +#: src/dird/ua_cmds.c:119 +msgid "print current memory usage" +msgstr "" + +#: src/dird/ua_cmds.c:120 +msgid "messages" +msgstr "" + +#: src/dird/ua_cmds.c:121 +msgid "mount " +msgstr "" + +#: src/dird/ua_cmds.c:122 +msgid "prune expired records from catalog" +msgstr "" + +#: src/dird/ua_cmds.c:123 +msgid "purge records from catalog" +msgstr "" + +#: src/dird/ua_cmds.c:124 +msgid "python control commands" +msgstr "" + +#: src/dird/ua_cmds.c:125 src/console/console.c:164 +msgid "quit" +msgstr "" + +#: src/dird/ua_cmds.c:126 +msgid "query catalog" +msgstr "" + +#: src/dird/ua_cmds.c:127 +msgid "restore files" +msgstr "" + +#: src/dird/ua_cmds.c:128 +msgid "relabel a tape" +msgstr "" + +#: src/dird/ua_cmds.c:129 +msgid "release " +msgstr "" + +#: src/dird/ua_cmds.c:130 +msgid "reload conf file" +msgstr "" + +#: src/dird/ua_cmds.c:131 +msgid "run " +msgstr "" + +#: src/dird/ua_cmds.c:132 +msgid "status [storage | client]=" +msgstr "" + +#: src/dird/ua_cmds.c:133 +msgid "sets debug level" +msgstr "" + +#: src/dird/ua_cmds.c:134 +msgid "sets new client address -- if authorized" +msgstr "" + +#: src/dird/ua_cmds.c:135 +msgid "show (resource records) [jobs | pools | ... | all]" +msgstr "" + +#: src/dird/ua_cmds.c:136 +msgid "use SQL to query catalog" +msgstr "" + +#: src/dird/ua_cmds.c:137 src/console/console.c:167 +msgid "print current time" +msgstr "" + +#: src/dird/ua_cmds.c:138 +msgid "turn on/off trace to file" +msgstr "" + +#: src/dird/ua_cmds.c:139 +msgid "unmount " +msgstr "" + +#: src/dird/ua_cmds.c:140 +msgid "umount for old-time Unix guys" +msgstr "" + +#: src/dird/ua_cmds.c:141 +msgid "update Volume, Pool or slots" +msgstr "" + +#: src/dird/ua_cmds.c:142 +msgid "use catalog xxx" +msgstr "" + +#: src/dird/ua_cmds.c:143 +msgid "does variable expansion" +msgstr "" + +#: src/dird/ua_cmds.c:144 +msgid "print Director version" +msgstr "" + +#: src/dird/ua_cmds.c:145 +msgid "" +"wait until no jobs are running [ | | " +"]" +msgstr "" + +#: src/dird/ua_cmds.c:186 +#, c-format +msgid "%s: is an invalid command.\n" +msgstr "" + +#: src/dird/ua_cmds.c:227 +msgid "" +"You probably don't want to be using this command since it\n" +"creates database records without labeling the Volumes.\n" +"You probably want to use the \"label\" command.\n" +"\n" +msgstr "" + +#: src/dird/ua_cmds.c:246 +#, c-format +msgid "Pool already has maximum volumes=%d\n" +msgstr "" + +#: src/dird/ua_cmds.c:248 +msgid "Enter new maximum (zero for unlimited): " +msgstr "" + +#: src/dird/ua_cmds.c:269 +#, c-format +msgid "Enter number of Volumes to create. 0=>fixed name. Max=%d: " +msgstr "" + +#: src/dird/ua_cmds.c:275 +#, c-format +msgid "The number must be between 0 and %d\n" +msgstr "" + +#: src/dird/ua_cmds.c:282 +msgid "Enter Volume name: " +msgstr "" + +#: src/dird/ua_cmds.c:286 +msgid "Enter base volume name: " +msgstr "" + +#: src/dird/ua_cmds.c:295 src/dird/ua_label.c:645 +msgid "Volume name too long.\n" +msgstr "" + +#: src/dird/ua_cmds.c:299 src/dird/ua_label.c:651 src/lib/edit.c:459 +msgid "Volume name must be at least one character long.\n" +msgstr "" + +#: src/dird/ua_cmds.c:308 +msgid "Enter the starting number: " +msgstr "" + +#: src/dird/ua_cmds.c:313 +msgid "Start number must be greater than zero.\n" +msgstr "" + +#: src/dird/ua_cmds.c:324 +msgid "Enter slot (0 for none): " +msgstr "" + +#: src/dird/ua_cmds.c:328 +msgid "InChanger? yes/no: " +msgstr "" + +#: src/dird/ua_cmds.c:356 +#, c-format +msgid "%d Volumes created in pool %s\n" +msgstr "" + +#: src/dird/ua_cmds.c:372 src/dird/ua_cmds.c:1035 +msgid "Turn on or off? " +msgstr "" + +#: src/dird/ua_cmds.c:403 +#, c-format +msgid "JobId %s is not running. Use Job name to cancel inactive jobs.\n" +msgstr "" + +#: src/dird/ua_cmds.c:412 src/dird/ua_cmds.c:422 +#, c-format +msgid "Warning Job %s is not running. Continuing anyway ...\n" +msgstr "" + +#: src/dird/ua_cmds.c:432 src/dird/ua_cmds.c:708 src/dird/ua_cmds.c:754 +msgid "Unauthorized command from this console.\n" +msgstr "" + +#: src/dird/ua_cmds.c:457 src/filed/status.c:201 src/stored/status.c:447 +msgid "No Jobs running.\n" +msgstr "" + +#: src/dird/ua_cmds.c:459 +msgid "None of your jobs are running.\n" +msgstr "" + +#: src/dird/ua_cmds.c:464 +msgid "Select Job:\n" +msgstr "" + +#: src/dird/ua_cmds.c:473 +#, c-format +msgid "JobId=%s Job=%s" +msgstr "" + +#: src/dird/ua_cmds.c:478 +msgid "Choose Job to cancel" +msgstr "" + +#: src/dird/ua_cmds.c:483 +#, c-format +msgid "" +"Cancel: %s\n" +"\n" +"%s" +msgstr "" + +#: src/dird/ua_cmds.c:484 +msgid "Confirm cancel?" +msgstr "" + +#: src/dird/ua_cmds.c:490 +msgid "Confirm cancel (yes/no): " +msgstr "" + +#: src/dird/ua_cmds.c:498 src/dird/ua_cmds.c:749 +#, c-format +msgid "Job \"%s\" not found.\n" +msgstr "" + +#: src/dird/ua_cmds.c:595 +#, c-format +msgid "" +"Can't set %s RecyclePool to %s, %s is not in database.\n" +"Try to update it with 'update pool=%s'\n" +msgstr "" + +#: src/dird/ua_cmds.c:662 +#, c-format +msgid "" +"Error: Pool %s already exists.\n" +"Use update to change it.\n" +msgstr "" + +#: src/dird/ua_cmds.c:673 +#, c-format +msgid "Pool %s created.\n" +msgstr "" + +#: src/dird/ua_cmds.c:690 +msgid "Python interpreter restarted.\n" +msgstr "" + +#: src/dird/ua_cmds.c:692 src/dird/ua_cmds.c:1275 +msgid "Nothing done.\n" +msgstr "" + +#: src/dird/ua_cmds.c:715 src/dird/ua_run.c:1224 +#, c-format +msgid "Client \"%s\" not found.\n" +msgstr "" + +#: src/dird/ua_cmds.c:724 +#, c-format +msgid "Client \"%s\" address set to %s\n" +msgstr "" + +#: src/dird/ua_cmds.c:758 +#, c-format +msgid "Job \"%s\" %sabled\n" +msgstr "" + +#: src/dird/ua_cmds.c:785 src/dird/ua_dotcmds.c:177 src/dird/ua_status.c:311 +#, c-format +msgid "Connecting to Storage daemon %s at %s:%d\n" +msgstr "" + +#: src/dird/ua_cmds.c:791 src/dird/ua_dotcmds.c:183 src/dird/ua_status.c:322 +msgid "Connected to storage daemon\n" +msgstr "" + +#: src/dird/ua_cmds.c:811 src/dird/ua_cmds.c:1162 src/dird/ua_dotcmds.c:203 +#: src/dird/ua_status.c:349 +#, c-format +msgid "Connecting to Client %s at %s:%d\n" +msgstr "" + +#: src/dird/ua_cmds.c:814 src/dird/ua_cmds.c:1165 src/dird/ua_dotcmds.c:206 +msgid "Failed to connect to Client.\n" +msgstr "" + +#: src/dird/ua_cmds.c:930 +msgid "Enter new debug level: " +msgstr "" + +#: src/dird/ua_cmds.c:996 src/dird/ua_dotcmds.c:282 +msgid "Available daemons are: \n" +msgstr "" + +#: src/dird/ua_cmds.c:997 src/dird/ua_dotcmds.c:283 +msgid "Director" +msgstr "" + +#: src/dird/ua_cmds.c:998 src/dird/ua_dotcmds.c:284 src/dird/ua_run.c:265 +#: src/dird/ua_select.c:168 src/wx-console/wxbrestorepanel.cpp:339 +#: src/wx-console/wxbrestorepanel.cpp:355 +#: src/wx-console/wxbrestorepanel.cpp:479 +#: src/wx-console/wxbrestorepanel.cpp:480 +#: src/wx-console/wxbrestorepanel.cpp:490 +#: src/wx-console/wxbrestorepanel.cpp:491 +#: src/wx-console/wxbrestorepanel.cpp:1154 +#: src/wx-console/wxbrestorepanel.cpp:1818 +#: src/wx-console/wxbrestorepanel.cpp:1889 +msgid "Storage" +msgstr "" + +#: src/dird/ua_cmds.c:999 src/dird/ua_dotcmds.c:285 src/dird/ua_run.c:271 +#: src/dird/ua_select.c:311 src/dird/ua_select.c:420 +#: src/wx-console/wxbrestorepanel.cpp:336 +#: src/wx-console/wxbrestorepanel.cpp:354 +#: src/wx-console/wxbrestorepanel.cpp:431 +#: src/wx-console/wxbrestorepanel.cpp:432 +#: src/wx-console/wxbrestorepanel.cpp:442 +#: src/wx-console/wxbrestorepanel.cpp:443 +#: src/wx-console/wxbrestorepanel.cpp:690 +#: src/wx-console/wxbrestorepanel.cpp:1124 +#: src/wx-console/wxbrestorepanel.cpp:1211 +#: src/wx-console/wxbrestorepanel.cpp:1811 +#: src/wx-console/wxbrestorepanel.cpp:1813 +#: src/wx-console/wxbrestorepanel.cpp:1887 +#: src/wx-console/wxbrestorepanel.cpp:1943 +msgid "Client" +msgstr "" + +#: src/dird/ua_cmds.c:1000 +msgid "All" +msgstr "" + +#: src/dird/ua_cmds.c:1001 +msgid "Select daemon type to set debug level" +msgstr "" + +#: src/dird/ua_cmds.c:1091 src/dird/ua_cmds.c:1130 src/dird/ua_cmds.c:1798 +#, c-format +msgid "No authorization for Job \"%s\"\n" +msgstr "" + +#: src/dird/ua_cmds.c:1101 +#, c-format +msgid "No authorization for FileSet \"%s\"\n" +msgstr "" + +#: src/dird/ua_cmds.c:1113 src/dird/ua_run.c:217 +#, c-format +msgid "Level %s not valid.\n" +msgstr "" + +#: src/dird/ua_cmds.c:1126 +msgid "No job specified.\n" +msgstr "" + +#: src/dird/ua_cmds.c:1170 +msgid "Error sending include list.\n" +msgstr "" + +#: src/dird/ua_cmds.c:1175 +msgid "Error sending exclude list.\n" +msgstr "" + +#: src/dird/ua_cmds.c:1261 +msgid "" +"In general it is not a good idea to delete either a\n" +"Pool or a Volume since they may contain data.\n" +"\n" +msgstr "" + +#: src/dird/ua_cmds.c:1264 +msgid "Choose catalog item to delete" +msgstr "" + +#: src/dird/ua_cmds.c:1332 +msgid "Enter JobId to delete: " +msgstr "" + +#: src/dird/ua_cmds.c:1367 +#, c-format +msgid "Job %s and associated records deleted from the catalog.\n" +msgstr "" + +#: src/dird/ua_cmds.c:1381 +#, c-format +msgid "" +"\n" +"This command will delete volume %s\n" +"and all Jobs saved on that volume from the Catalog\n" +msgstr "" + +#: src/dird/ua_cmds.c:1385 +#, c-format +msgid "Are you sure you want to delete Volume \"%s\"? (yes/no): " +msgstr "" + +#: src/dird/ua_cmds.c:1409 +#, c-format +msgid "Are you sure you want to delete Pool \"%s\"? (yes/no): " +msgstr "" + +#: src/dird/ua_cmds.c:1523 +#, c-format +msgid "Using Catalog name=%s DB=%s\n" +msgstr "" + +#: src/dird/ua_cmds.c:1583 +msgid "ERR: Can't open db\n" +msgstr "" + +#: src/dird/ua_cmds.c:1619 +msgid "ERR: Job was not found\n" +msgstr "" + +#: src/dird/ua_cmds.c:1695 src/dird/ua_tree.c:664 src/stored/btape.c:2587 +#, c-format +msgid "" +" Command Description\n" +" ======= ===========\n" +msgstr "" + +#: src/dird/ua_cmds.c:1697 +#, c-format +msgid " %-10s %s\n" +msgstr "" + +#: src/dird/ua_cmds.c:1699 +msgid "" +"\n" +"When at a prompt, entering a period cancels the command.\n" +"\n" +msgstr "" + +#: src/dird/ua_cmds.c:1716 src/dird/ua_status.c:263 src/stored/status.c:79 +#, c-format +msgid "%s Version: %s (%s) %s %s %s\n" +msgstr "" + +#: src/dird/ua_cmds.c:1759 src/dird/ua_cmds.c:1786 src/dird/ua_cmds.c:1808 +#, c-format +msgid "No authorization for Catalog \"%s\"\n" +msgstr "" + +#: src/dird/ua_cmds.c:1776 +#, c-format +msgid "No authorization for Client \"%s\"\n" +msgstr "" + +#: src/dird/ua_cmds.c:1831 src/dird/ua_select.c:221 +msgid "Could not find a Catalog resource\n" +msgstr "" + +#: src/dird/ua_cmds.c:1844 +#, c-format +msgid "Could not open catalog database \"%s\".\n" +msgstr "" + +#: src/dird/ua_cmds.c:1854 +#, c-format +msgid "Using Catalog \"%s\"\n" +msgstr "" + +#: src/dird/ua_dotcmds.c:138 +msgid ": is an invalid command.\n" +msgstr "" + +#: src/dird/ua_dotcmds.c:238 src/dird/ua_dotcmds.c:288 +msgid "The Director will segment fault.\n" +msgstr "" + +#: src/dird/ua_dotcmds.c:286 +msgid "Select daemon type to make die" +msgstr "" + +#: src/dird/ua_dotcmds.c:453 +msgid "Access to specified Client or FileSet not allowed.\n" +msgstr "" + +#: src/dird/ua_dotcmds.c:458 src/dird/ua_dotcmds.c:494 +#: src/dird/ua_restore.c:882 src/dird/ua_restore.c:911 +#: src/dird/ua_restore.c:932 +#, c-format +msgid "Query failed: %s. ERR=%s\n" +msgstr "" + +#: src/dird/ua_dotcmds.c:489 +msgid "query keyword not found.\n" +msgstr "" + +#: src/dird/ua_input.c:95 +msgid "Enter slot" +msgstr "" + +#: src/dird/ua_input.c:99 src/dird/ua_input.c:105 +#, c-format +msgid "Expected a positive integer, got: %s\n" +msgstr "" + +#: src/dird/ua_input.c:123 src/dird/ua_run.c:446 src/dird/ua_update.c:245 +#: src/dird/ua_update.c:265 src/dird/ua_update.c:609 +#: src/stored/parse_bsr.c:779 src/tools/dbcheck.c:1202 +msgid "yes" +msgstr "" + +#: src/dird/ua_input.c:127 src/dird/ua_update.c:245 src/dird/ua_update.c:265 +#: src/dird/ua_update.c:609 src/stored/parse_bsr.c:779 +msgid "no" +msgstr "" + +#: src/dird/ua_input.c:162 +msgid "Invalid response. You must answer yes or no.\n" +msgstr "" + +#: src/dird/ua_input.c:185 +msgid "Invalid Enabled value, it must be yes, no, archived, 0, 1, or 2\n" +msgstr "" + +#: src/dird/ua_label.c:102 +msgid "Negative numbers not permitted\n" +msgstr "" + +#: src/dird/ua_label.c:108 +msgid "Range end is not integer.\n" +msgstr "" + +#: src/dird/ua_label.c:113 +msgid "Range start is not an integer.\n" +msgstr "" + +#: src/dird/ua_label.c:119 +msgid "Range end not bigger than start.\n" +msgstr "" + +#: src/dird/ua_label.c:125 +msgid "Input value is not an integer.\n" +msgstr "" + +#: src/dird/ua_label.c:131 +msgid "Values must be be greater than zero.\n" +msgstr "" + +#: src/dird/ua_label.c:135 +msgid "Slot too large.\n" +msgstr "" + +#: src/dird/ua_label.c:184 src/dird/ua_label.c:349 src/dird/ua_run.c:1199 +msgid "command line" +msgstr "" + +#: src/dird/ua_label.c:202 src/dird/ua_label.c:513 +msgid "No slots in changer to scan.\n" +msgstr "" + +#: src/dird/ua_label.c:214 src/dird/ua_label.c:524 +msgid "No Volumes found to label, or no barcodes.\n" +msgstr "" + +#: src/dird/ua_label.c:224 +#, c-format +msgid "Slot %d greater than max %d ignored.\n" +msgstr "" + +#: src/dird/ua_label.c:253 +#, c-format +msgid "No VolName for Slot=%d InChanger set to zero.\n" +msgstr "" + +#: src/dird/ua_label.c:271 +#, c-format +msgid "Catalog record for Volume \"%s\" updated to reference slot %d.\n" +msgstr "" + +#: src/dird/ua_label.c:275 +#, c-format +msgid "Catalog record for Volume \"%s\" is up to date.\n" +msgstr "" + +#: src/dird/ua_label.c:281 +#, c-format +msgid "Volume \"%s\" not found in catalog. Slot=%d InChanger set to zero.\n" +msgstr "" + +#: src/dird/ua_label.c:378 +#, c-format +msgid "" +"Volume \"%s\" has VolStatus %s. It must be Purged or Recycled before " +"relabeling.\n" +msgstr "" + +#: src/dird/ua_label.c:394 +msgid "Enter new Volume name: " +msgstr "" + +#: src/dird/ua_label.c:407 +#, c-format +msgid "Media record for new Volume \"%s\" already exists.\n" +msgstr "" + +#: src/dird/ua_label.c:425 +msgid "Enter slot (0 or Enter for none): " +msgstr "" + +#: src/dird/ua_label.c:453 +#, c-format +msgid "Delete of Volume \"%s\" failed. ERR=%s" +msgstr "" + +#: src/dird/ua_label.c:456 +#, c-format +msgid "Old volume \"%s\" deleted from catalog.\n" +msgstr "" + +#: src/dird/ua_label.c:467 +#, c-format +msgid "Requesting to mount %s ...\n" +msgstr "" + +#: src/dird/ua_label.c:489 +msgid "Do not forget to mount the drive!!!\n" +msgstr "" + +#: src/dird/ua_label.c:529 +msgid "" +"The following Volumes will be labeled:\n" +"Slot Volume\n" +"==============\n" +msgstr "" + +#: src/dird/ua_label.c:538 +msgid "Do you want to label these Volumes? (yes|no): " +msgstr "" + +#: src/dird/ua_label.c:559 +#, c-format +msgid "Media record for Slot %d Volume \"%s\" already exists.\n" +msgstr "" + +#: src/dird/ua_label.c:565 +#, c-format +msgid "Error setting InChanger: ERR=%s" +msgstr "" + +#: src/dird/ua_label.c:588 +#, c-format +msgid "Maximum pool Volumes=%d reached.\n" +msgstr "" + +#: src/dird/ua_label.c:595 +#, c-format +msgid "Catalog record for cleaning tape \"%s\" successfully created.\n" +msgstr "" + +#: src/dird/ua_label.c:602 +#, c-format +msgid "Catalog error on cleaning tape: %s" +msgstr "" + +#: src/dird/ua_label.c:638 +#, c-format +msgid "Illegal character \"%c\" in a volume name.\n" +msgstr "" + +#: src/dird/ua_label.c:685 +#, c-format +msgid "Sending relabel command from \"%s\" to \"%s\" ...\n" +msgstr "" + +#: src/dird/ua_label.c:692 +#, c-format +msgid "Sending label command for Volume \"%s\" Slot %d ...\n" +msgstr "" + +#: src/dird/ua_label.c:733 +#, c-format +msgid "Catalog record for Volume \"%s\", Slot %d successfully created.\n" +msgstr "" + +#: src/dird/ua_label.c:746 +#, c-format +msgid "Label command failed for Volume %s.\n" +msgstr "" + +#: src/dird/ua_label.c:756 +#, c-format +msgid "Connecting to Storage daemon %s at %s:%d ...\n" +msgstr "" + +#: src/dird/ua_label.c:784 +msgid "Could not open SD socket.\n" +msgstr "" + +#: src/dird/ua_label.c:856 src/dird/ua_label.c:866 +#, c-format +msgid "Invalid Slot number: %s\n" +msgstr "" + +#: src/dird/ua_label.c:875 +#, c-format +msgid "Invalid Volume name: %s\n" +msgstr "" + +#: src/dird/ua_label.c:954 +#, c-format +msgid "Device \"%s\" has %d slots.\n" +msgstr "" + +#: src/dird/ua_label.c:1003 +#, c-format +msgid "Pool \"%s\" resource not found for volume \"%s\"!\n" +msgstr "" + +#: src/dird/ua_output.c:73 src/dird/ua_output.c:97 +msgid "ON or OFF keyword missing.\n" +msgstr "" + +#: src/dird/ua_output.c:185 +msgid "Keywords for the show command are:\n" +msgstr "" + +#: src/dird/ua_output.c:191 +#, c-format +msgid "%s resource %s not found.\n" +msgstr "" + +#: src/dird/ua_output.c:194 +#, c-format +msgid "Resource %s not found\n" +msgstr "" + +#: src/dird/ua_output.c:262 +msgid "Hey! DB is NULL\n" +msgstr "" + +#: src/dird/ua_output.c:376 +#, c-format +msgid "Jobid %d used %d Volume(s): %s\n" +msgstr "" + +#: src/dird/ua_output.c:394 +msgid "No Pool specified.\n" +msgstr "" + +#: src/dird/ua_output.c:405 src/dird/ua_select.c:488 +#, c-format +msgid "Error obtaining pool ids. ERR=%s\n" +msgstr "" + +#: src/dird/ua_output.c:415 +#, c-format +msgid "Pool: %s\n" +msgstr "" + +#: src/dird/ua_output.c:431 src/dird/ua_status.c:481 +msgid "Ignoring invalid value for days. Max is 50.\n" +msgstr "" + +#: src/dird/ua_output.c:440 +#, c-format +msgid "Unknown list keyword: %s\n" +msgstr "" + +#: src/dird/ua_output.c:466 +#, c-format +msgid "%s is not a job name.\n" +msgstr "" + +#: src/dird/ua_output.c:477 +#, c-format +msgid "Could not Pool Job %s\n" +msgstr "" + +#: src/dird/ua_output.c:489 +#, c-format +msgid "Could not find next Volume for Job %s (Pool=%s, Level=%s).\n" +msgstr "" + +#: src/dird/ua_output.c:493 +#, c-format +msgid "" +"The next Volume to be used by Job \"%s\" (Pool=%s, Level=%s) will be %s\n" +msgstr "" + +#: src/dird/ua_output.c:503 +#, c-format +msgid "Could not find next Volume for Job %s.\n" +msgstr "" + +#: src/dird/ua_output.c:702 +msgid "You have no messages.\n" +msgstr "" + +#: src/dird/ua_prune.c:132 +msgid "Choose item to prune" +msgstr "" + +#: src/dird/ua_prune.c:156 +#, c-format +msgid "Cannot prune Volume \"%s\" because it is archived.\n" +msgstr "" + +#: src/dird/ua_prune.c:218 +msgid "No Files found to prune.\n" +msgstr "" + +#: src/dird/ua_prune.c:240 +#, c-format +msgid "Pruned Files from %s Jobs for client %s from catalog.\n" +msgstr "" + +#: src/dird/ua_prune.c:364 +#, c-format +msgid "Pruned %d %s for client %s from catalog.\n" +msgstr "" + +#: src/dird/ua_prune.c:365 +msgid "Jobs" +msgstr "" + +#: src/dird/ua_prune.c:367 +msgid "No Jobs found to prune.\n" +msgstr "" + +#: src/dird/ua_purge.c:90 +msgid "" +"\n" +"This command is can be DANGEROUS!!!\n" +"\n" +"It purges (deletes) all Files from a Job,\n" +"JobId, Client or Volume; or it purges (deletes)\n" +"all Jobs from a Client or Volume without regard\n" +"for retention periods. Normally you should use the\n" +"PRUNE command, which respects retention periods.\n" +msgstr "" + +#: src/dird/ua_purge.c:152 +msgid "Choose item to purge" +msgstr "" + +#: src/dird/ua_purge.c:199 +#, c-format +msgid "Begin purging files for Client \"%s\"\n" +msgstr "" + +#: src/dird/ua_purge.c:208 src/dird/ua_purge.c:258 +#, c-format +msgid "No Files found for client %s to purge from %s catalog.\n" +msgstr "" + +#: src/dird/ua_purge.c:211 +#, c-format +msgid "Files for %d Jobs for client \"%s\" purged from %s catalog.\n" +msgstr "" + +#: src/dird/ua_purge.c:249 +#, c-format +msgid "Begin purging jobs from Client \"%s\"\n" +msgstr "" + +#: src/dird/ua_purge.c:261 +#, c-format +msgid "%d Jobs for client %s purged from %s catalog.\n" +msgstr "" + +#: src/dird/ua_purge.c:407 +#, c-format +msgid "" +"\n" +"Volume \"%s\" has VolStatus \"%s\" and cannot be purged.\n" +"The VolStatus must be: Append, Full, Used, or Error to be purged.\n" +msgstr "" + +#: src/dird/ua_purge.c:440 +#, c-format +msgid "%d File%s on Volume \"%s\" purged from catalog.\n" +msgstr "" + +#: src/dird/ua_purge.c:481 +#, c-format +msgid "" +"There are no more Jobs associated with Volume \"%s\". Marking it purged.\n" +msgstr "" + +#: src/dird/ua_purge.c:522 +#, c-format +msgid "Unable move recycled Volume in full Pool \"%s\" MaxVols=%d\n" +msgstr "" + +#: src/dird/ua_purge.c:535 +#, c-format +msgid "All records pruned from Volume \"%s\"; marking it \"Purged\"\n" +msgstr "" + +#: src/dird/ua_purge.c:540 +#, c-format +msgid "Cannot purge Volume with VolStatus=%s\n" +msgstr "" + +#: src/dird/ua_query.c:72 src/findlib/create_file.c:283 +#: src/findlib/create_file.c:383 +#, c-format +msgid "Could not open %s: ERR=%s\n" +msgstr "" + +#: src/dird/ua_query.c:77 +msgid "Available queries:\n" +msgstr "" + +#: src/dird/ua_query.c:84 +msgid "Choose a query" +msgstr "" + +#: src/dird/ua_query.c:98 +msgid "Could not find query.\n" +msgstr "" + +#: src/dird/ua_query.c:116 +msgid "Too many prompts in query, max is 9.\n" +msgstr "" + +#: src/dird/ua_query.c:219 +#, c-format +msgid "Warning prompt %d missing.\n" +msgstr "" + +#: src/dird/ua_query.c:264 +msgid "" +"Entering SQL query mode.\n" +"Terminate each query with a semicolon.\n" +"Terminate query mode with a blank line.\n" +msgstr "" + +#: src/dird/ua_query.c:267 src/dird/ua_query.c:283 +msgid "Enter SQL query: " +msgstr "" + +#: src/dird/ua_query.c:285 +msgid "Add to SQL query: " +msgstr "" + +#: src/dird/ua_query.c:288 +msgid "End query mode.\n" +msgstr "" + +#: src/dird/ua_restore.c:133 +msgid "\"RegexWhere\" specification not authorized.\n" +msgstr "" + +#: src/dird/ua_restore.c:140 +msgid "\"where\" specification not authorized.\n" +msgstr "" + +#: src/dird/ua_restore.c:162 +msgid "" +"No Restore Job Resource found in bacula-dir.conf.\n" +"You must create at least one before running this command.\n" +msgstr "" + +#: src/dird/ua_restore.c:178 +msgid "Restore not done.\n" +msgstr "" + +#: src/dird/ua_restore.c:190 +msgid "Unable to construct a valid BSR. Cannot continue.\n" +msgstr "" + +#: src/dird/ua_restore.c:194 src/dird/ua_restore.c:209 +msgid "No files selected to be restored.\n" +msgstr "" + +#: src/dird/ua_restore.c:202 +msgid "" +"\n" +"1 file selected to be restored.\n" +"\n" +msgstr "" + +#: src/dird/ua_restore.c:205 +#, c-format +msgid "" +"\n" +"%s files selected to be restored.\n" +"\n" +msgstr "" + +#: src/dird/ua_restore.c:224 +msgid "No Client resource found!\n" +msgstr "" + +#: src/dird/ua_restore.c:329 +#, c-format +msgid "Missing value for keyword: %s\n" +msgstr "" + +#: src/dird/ua_restore.c:407 +msgid "List last 20 Jobs run" +msgstr "" + +#: src/dird/ua_restore.c:408 +msgid "List Jobs where a given File is saved" +msgstr "" + +#: src/dird/ua_restore.c:409 +msgid "Enter list of comma separated JobIds to select" +msgstr "" + +#: src/dird/ua_restore.c:410 +msgid "Enter SQL list command" +msgstr "" + +#: src/dird/ua_restore.c:411 +msgid "Select the most recent backup for a client" +msgstr "" + +#: src/dird/ua_restore.c:412 +msgid "Select backup for a client before a specified time" +msgstr "" + +#: src/dird/ua_restore.c:413 +msgid "Enter a list of files to restore" +msgstr "" + +#: src/dird/ua_restore.c:414 +msgid "Enter a list of files to restore before a specified time" +msgstr "" + +#: src/dird/ua_restore.c:415 +msgid "Find the JobIds of the most recent backup for a client" +msgstr "" + +#: src/dird/ua_restore.c:416 +msgid "Find the JobIds for a backup for a client before a specified time" +msgstr "" + +#: src/dird/ua_restore.c:417 +msgid "Enter a list of directories to restore for found JobIds" +msgstr "" + +#: src/dird/ua_restore.c:418 src/dird/ua_status.c:760 src/filed/status.c:256 +#: src/stored/status.c:521 src/wx-console/wxbconfigpanel.cpp:212 +msgid "Cancel" +msgstr "" + +#: src/dird/ua_restore.c:459 +#, c-format +msgid "Unknown keyword: %s\n" +msgstr "" + +#: src/dird/ua_restore.c:488 src/dird/ua_update.c:833 +#, c-format +msgid "Improper date format: %s\n" +msgstr "" + +#: src/dird/ua_restore.c:523 src/dird/ua_select.c:620 +#, c-format +msgid "Error: Pool resource \"%s\" does not exist.\n" +msgstr "" + +#: src/dird/ua_restore.c:528 +#, c-format +msgid "Error: Pool resource \"%s\" access not allowed.\n" +msgstr "" + +#: src/dird/ua_restore.c:544 +msgid "" +"\n" +"First you select one or more JobIds that contain files\n" +"to be restored. You will be presented several methods\n" +"of specifying the JobIds. Then you will be allowed to\n" +"select which files from those JobIds are to be restored.\n" +"\n" +msgstr "" + +#: src/dird/ua_restore.c:556 +msgid "To select the JobIds, you have the following choices:\n" +msgstr "" + +#: src/dird/ua_restore.c:561 +msgid "Select item: " +msgstr "" + +#: src/dird/ua_restore.c:566 src/dird/ua_restore.c:601 +msgid "SQL query not authorized.\n" +msgstr "" + +#: src/dird/ua_restore.c:579 +msgid "Enter Filename (no path):" +msgstr "" + +#: src/dird/ua_restore.c:594 src/dird/ua_restore.c:702 +msgid "Enter JobId(s), comma separated, to restore: " +msgstr "" + +#: src/dird/ua_restore.c:604 +msgid "Enter SQL list command: " +msgstr "" + +#: src/dird/ua_restore.c:638 src/dird/ua_restore.c:661 +msgid "" +"Enter file names with paths, or < to enter a filename\n" +"containing a list of file names with paths, and terminate\n" +"them with a blank line.\n" +msgstr "" + +#: src/dird/ua_restore.c:642 src/dird/ua_restore.c:665 +msgid "Enter full filename: " +msgstr "" + +#: src/dird/ua_restore.c:700 +#, c-format +msgid "You have already selected the following JobIds: %s\n" +msgstr "" + +#: src/dird/ua_restore.c:717 +msgid "" +"Enter full directory names or start the name\n" +"with a < to indicate it is a filename containing a list\n" +"of directories and terminate them with a blank line.\n" +msgstr "" + +#: src/dird/ua_restore.c:721 +msgid "Enter directory name: " +msgstr "" + +#: src/dird/ua_restore.c:752 +msgid "Invalid JobId in list.\n" +msgstr "" + +#: src/dird/ua_restore.c:765 +#, c-format +msgid "Unable to get Job record for JobId=%s: ERR=%s\n" +msgstr "" + +#: src/dird/ua_restore.c:771 +#, c-format +msgid "Access to JobId=%s (Job \"%s\") not authorized. Not selected.\n" +msgstr "" + +#: src/dird/ua_restore.c:784 +msgid "No Jobs selected.\n" +msgstr "" + +#: src/dird/ua_restore.c:788 +#, c-format +msgid "You have selected the following JobIds: %s\n" +msgstr "" + +#: src/dird/ua_restore.c:790 +#, c-format +msgid "You have selected the following JobId: %s\n" +msgstr "" + +#: src/dird/ua_restore.c:800 +msgid "" +"The restored files will the most current backup\n" +"BEFORE the date you specify below.\n" +"\n" +msgstr "" + +#: src/dird/ua_restore.c:803 +msgid "Enter date as YYYY-MM-DD HH:MM:SS :" +msgstr "" + +#: src/dird/ua_restore.c:809 +msgid "Improper date format.\n" +msgstr "" + +#: src/dird/ua_restore.c:830 +#, c-format +msgid "Cannot open file %s: ERR=%s\n" +msgstr "" + +#: src/dird/ua_restore.c:838 src/dird/ua_restore.c:842 +#, c-format +msgid "Error occurred on line %d of file \"%s\"\n" +msgstr "" + +#: src/dird/ua_restore.c:886 src/dird/ua_restore.c:915 +#, c-format +msgid "No database record found for: %s\n" +msgstr "" + +#: src/dird/ua_restore.c:902 +msgid "No JobId specified cannot continue.\n" +msgstr "" + +#: src/dird/ua_restore.c:936 +#, c-format +msgid "No table found: %s\n" +msgstr "" + +#: src/dird/ua_restore.c:1033 +#, c-format +msgid "" +"\n" +"Building directory tree for JobId %s ... " +msgstr "" + +#: src/dird/ua_restore.c:1045 +msgid "" +"\n" +"There were no files inserted into the tree, so file selection\n" +"is not possible.Most likely your retention policy pruned the files\n" +msgstr "" + +#: src/dird/ua_restore.c:1047 +msgid "" +"\n" +"Do you want to restore all the files? (yes|no): " +msgstr "" + +#: src/dird/ua_restore.c:1063 +#, c-format +msgid "" +"\n" +"1 Job, %s files inserted into the tree and marked for extraction.\n" +msgstr "" + +#: src/dird/ua_restore.c:1067 +#, c-format +msgid "" +"\n" +"1 Job, %s files inserted into the tree.\n" +msgstr "" + +#: src/dird/ua_restore.c:1073 +#, c-format +msgid "" +"\n" +"%d Jobs, %s files inserted into the tree and marked for extraction.\n" +msgstr "" + +#: src/dird/ua_restore.c:1077 +#, c-format +msgid "" +"\n" +"%d Jobs, %s files inserted into the tree.\n" +msgstr "" + +#: src/dird/ua_restore.c:1150 +#, c-format +msgid "Error getting FileSet \"%s\": ERR=%s\n" +msgstr "" + +#: src/dird/ua_restore.c:1158 src/dird/ua_select.c:183 +msgid "The defined FileSet resources are:\n" +msgstr "" + +#: src/dird/ua_restore.c:1162 src/dird/ua_run.c:267 src/dird/ua_select.c:191 +msgid "FileSet" +msgstr "" + +#: src/dird/ua_restore.c:1162 src/dird/ua_select.c:191 +msgid "Select FileSet resource" +msgstr "" + +#: src/dird/ua_restore.c:1164 +#, c-format +msgid "No FileSet found for client \"%s\".\n" +msgstr "" + +#: src/dird/ua_restore.c:1170 +#, c-format +msgid "Error getting FileSet record: %s\n" +msgstr "" + +#: src/dird/ua_restore.c:1171 +msgid "" +"This probably means you modified the FileSet.\n" +"Continuing anyway.\n" +msgstr "" + +#: src/dird/ua_restore.c:1186 +#, c-format +msgid "Pool \"%s\" not found, using any pool.\n" +msgstr "" + +#: src/dird/ua_restore.c:1213 src/dird/ua_restore.c:1229 +#, c-format +msgid "No Full backup before %s found.\n" +msgstr "" + +#: src/dird/ua_restore.c:1252 +msgid "No jobs found.\n" +msgstr "" + +#: src/dird/ua_restore.c:1411 +#, c-format +msgid "Warning default storage overridden by \"%s\" on command line.\n" +msgstr "" + +#: src/dird/ua_restore.c:1427 +#, c-format +msgid "Storage \"%s\" not found, using Storage \"%s\" from MediaType \"%s\".\n" +msgstr "" + +#: src/dird/ua_restore.c:1435 +#, c-format +msgid "" +"\n" +"Unable to find Storage resource for\n" +"MediaType \"%s\", needed by the Jobs you selected.\n" +msgstr "" + +#: src/dird/ua_run.c:152 src/dird/ua_run.c:338 +msgid "Invalid time, using current time.\n" +msgstr "" + +#: src/dird/ua_run.c:174 +#, c-format +msgid "Invalid replace option: %s\n" +msgstr "" + +#: src/dird/ua_run.c:242 +msgid "OK to run? (yes/mod/no): " +msgstr "" + +#: src/dird/ua_run.c:260 src/dird/ua_select.c:63 +msgid "mod" +msgstr "" + +#: src/dird/ua_run.c:263 src/dird/ua_update.c:518 +msgid "Parameters to modify:\n" +msgstr "" + +#: src/dird/ua_run.c:264 +msgid "Level" +msgstr "" + +#: src/dird/ua_run.c:269 +msgid "Restore Client" +msgstr "" + +#: src/dird/ua_run.c:273 src/wx-console/wxbrestorepanel.cpp:356 +#: src/wx-console/wxbrestorepanel.cpp:844 +#: src/wx-console/wxbrestorepanel.cpp:1891 +msgid "When" +msgstr "" + +#: src/dird/ua_run.c:274 src/wx-console/wxbrestorepanel.cpp:357 +#: src/wx-console/wxbrestorepanel.cpp:1117 +#: src/wx-console/wxbrestorepanel.cpp:1894 +msgid "Priority" +msgstr "" + +#: src/dird/ua_run.c:278 src/dird/ua_select.c:506 src/dird/ua_select.c:596 +#: src/dird/ua_update.c:529 src/wx-console/wxbrestorepanel.cpp:338 +#: src/wx-console/wxbrestorepanel.cpp:527 +#: src/wx-console/wxbrestorepanel.cpp:537 +#: src/wx-console/wxbrestorepanel.cpp:1807 +msgid "Pool" +msgstr "" + +#: src/dird/ua_run.c:280 +msgid "Verify Job" +msgstr "" + +#: src/dird/ua_run.c:283 src/wx-console/wxbrestorepanel.cpp:349 +#: src/wx-console/wxbrestorepanel.cpp:1872 +msgid "Bootstrap" +msgstr "" + +#: src/dird/ua_run.c:284 src/wx-console/wxbrestorepanel.cpp:350 +#: src/wx-console/wxbrestorepanel.cpp:1093 +#: src/wx-console/wxbrestorepanel.cpp:1874 +msgid "Where" +msgstr "" + +#: src/dird/ua_run.c:285 +msgid "File Relocation" +msgstr "" + +#: src/dird/ua_run.c:286 src/wx-console/wxbrestorepanel.cpp:352 +#: src/wx-console/wxbrestorepanel.cpp:1101 +#: src/wx-console/wxbrestorepanel.cpp:1878 +#: src/wx-console/wxbrestorepanel.cpp:1879 +#: src/wx-console/wxbrestorepanel.cpp:1880 +#: src/wx-console/wxbrestorepanel.cpp:1881 +#: src/wx-console/wxbrestorepanel.cpp:1882 +msgid "Replace" +msgstr "" + +#: src/dird/ua_run.c:287 +msgid "JobId" +msgstr "" + +#: src/dird/ua_run.c:289 src/dird/ua_run.c:487 src/dird/ua_update.c:535 +msgid "Select parameter to modify" +msgstr "" + +#: src/dird/ua_run.c:298 src/dird/ua_run.c:1205 +msgid "user selection" +msgstr "" + +#: src/dird/ua_run.c:330 +msgid "" +"Please enter desired start time as YYYY-MM-DD HH:MM:SS (return for now): " +msgstr "" + +#: src/dird/ua_run.c:345 +msgid "Enter new Priority: " +msgstr "" + +#: src/dird/ua_run.c:349 +msgid "Priority must be a positive integer.\n" +msgstr "" + +#: src/dird/ua_run.c:369 +msgid "Please enter the Bootstrap file name: " +msgstr "" + +#: src/dird/ua_run.c:380 +#, c-format +msgid "Warning cannot open %s: ERR=%s\n" +msgstr "" + +#: src/dird/ua_run.c:399 +msgid "Please enter path prefix for restore (/ for none): " +msgstr "" + +#: src/dird/ua_run.c:421 +msgid "Replace:\n" +msgstr "" + +#: src/dird/ua_run.c:425 +msgid "Select replace option" +msgstr "" + +#: src/dird/ua_run.c:435 +msgid "" +"You must set the bootstrap file to NULL to be able to specify a JobId.\n" +msgstr "" + +#: src/dird/ua_run.c:455 +msgid "Job failed.\n" +msgstr "" + +#: src/dird/ua_run.c:458 +#, c-format +msgid "Job queued. JobId=%s\n" +msgstr "" + +#: src/dird/ua_run.c:464 +msgid "Job not run.\n" +msgstr "" + +#: src/dird/ua_run.c:476 +#, c-format +msgid "strip_prefix=%s add_prefix=%s add_suffix=%s\n" +msgstr "" + +#: src/dird/ua_run.c:479 +msgid "This will replace your current Where value\n" +msgstr "" + +#: src/dird/ua_run.c:480 +msgid "Strip prefix" +msgstr "" + +#: src/dird/ua_run.c:481 +msgid "Add prefix" +msgstr "" + +#: src/dird/ua_run.c:482 +msgid "Add file suffix" +msgstr "" + +#: src/dird/ua_run.c:483 +msgid "Enter a regexp" +msgstr "" + +#: src/dird/ua_run.c:484 +msgid "Test filename manipulation" +msgstr "" + +#: src/dird/ua_run.c:485 +msgid "Use this ?" +msgstr "" + +#: src/dird/ua_run.c:490 +msgid "Please enter path prefix to strip: " +msgstr "" + +#: src/dird/ua_run.c:498 +msgid "Please enter path prefix to add (/ for none): " +msgstr "" + +#: src/dird/ua_run.c:509 +msgid "Please enter file suffix to add: " +msgstr "" + +#: src/dird/ua_run.c:516 +msgid "Please enter a valid regexp (!from!to!): " +msgstr "" + +#: src/dird/ua_run.c:529 +#, c-format +msgid "regexwhere=%s\n" +msgstr "" + +#: src/dird/ua_run.c:535 +#, c-format +msgid "strip_prefix=%s add_prefix=%s add_suffix=%s result=%s\n" +msgstr "" + +#: src/dird/ua_run.c:542 +msgid "Cannot use your regexp\n" +msgstr "" + +#: src/dird/ua_run.c:546 +msgid "Please enter filename to test: " +msgstr "" + +#: src/dird/ua_run.c:548 +#, c-format +msgid "%s -> %s\n" +msgstr "" + +#: src/dird/ua_run.c:592 +msgid "Cannot use your regexp.\n" +msgstr "" + +#: src/dird/ua_run.c:605 src/dird/ua_run.c:631 +msgid "Levels:\n" +msgstr "" + +#: src/dird/ua_run.c:606 src/filed/status.c:373 src/lib/util.c:329 +#: src/stored/status.c:560 +msgid "Base" +msgstr "" + +#: src/dird/ua_run.c:607 src/filed/status.c:375 src/lib/util.c:331 +#: src/stored/status.c:562 +msgid "Full" +msgstr "" + +#: src/dird/ua_run.c:608 src/filed/status.c:378 src/lib/util.c:334 +#: src/stored/status.c:565 +msgid "Incremental" +msgstr "" + +#: src/dird/ua_run.c:609 src/filed/status.c:381 src/lib/util.c:337 +#: src/stored/status.c:568 +msgid "Differential" +msgstr "" + +#: src/dird/ua_run.c:610 src/filed/status.c:384 src/lib/util.c:340 +#: src/stored/status.c:571 +msgid "Since" +msgstr "" + +#: src/dird/ua_run.c:611 src/dird/ua_run.c:637 +msgid "Select level" +msgstr "" + +#: src/dird/ua_run.c:632 +msgid "Initialize Catalog" +msgstr "" + +#: src/dird/ua_run.c:633 src/filed/status.c:387 src/lib/util.c:343 +#: src/stored/status.c:574 +msgid "Verify Catalog" +msgstr "" + +#: src/dird/ua_run.c:634 src/lib/util.c:349 +msgid "Verify Volume to Catalog" +msgstr "" + +#: src/dird/ua_run.c:635 src/lib/util.c:352 +msgid "Verify Disk to Catalog" +msgstr "" + +#: src/dird/ua_run.c:636 +msgid "Verify Volume Data (not yet implemented)" +msgstr "" + +#: src/dird/ua_run.c:657 +msgid "Level not appropriate for this Job. Cannot be changed.\n" +msgstr "" + +#: src/dird/ua_run.c:671 +#, c-format +msgid "" +"Run %s job\n" +"JobName: %s\n" +"FileSet: %s\n" +"Client: %s\n" +"Storage: %s\n" +"When: %s\n" +"Priority: %d\n" +msgstr "" + +#: src/dird/ua_run.c:678 src/lib/util.c:296 +msgid "Admin" +msgstr "" + +#: src/dird/ua_run.c:691 +#, c-format +msgid "" +"Run %s job\n" +"JobName: %s\n" +"Level: %s\n" +"Client: %s\n" +"FileSet: %s\n" +"Pool: %s (From %s)\n" +"Storage: %s (From %s)\n" +"When: %s\n" +"Priority: %d\n" +msgstr "" + +#: src/dird/ua_run.c:700 src/lib/util.c:287 +msgid "Backup" +msgstr "" + +#: src/dird/ua_run.c:723 +#, c-format +msgid "" +"Run %s job\n" +"JobName: %s\n" +"Level: %s\n" +"Client: %s\n" +"FileSet: %s\n" +"Pool: %s (From %s)\n" +"Storage: %s (From %s)\n" +"Verify Job: %s\n" +"Verify List: %s\n" +"When: %s\n" +"Priority: %d\n" +msgstr "" + +#: src/dird/ua_run.c:734 src/lib/util.c:290 +msgid "Verify" +msgstr "" + +#: src/dird/ua_run.c:752 +msgid "Please enter a JobId for restore: " +msgstr "" + +#: src/dird/ua_run.c:764 +#, c-format +msgid "" +"Run Restore job\n" +"JobName: f%s\n" +"Bootstrap: %s\n" +"RegexWhere: %s\n" +"Replace: %s\n" +"FileSet: %s\n" +"Backup Client: %s\n" +"Restore Client: %s\n" +"Storage: %s\n" +"When: %s\n" +"Catalog: %s\n" +"Priority: %d\n" +msgstr "" + +#: src/dird/ua_run.c:789 +#, c-format +msgid "" +"Run Restore job\n" +"JobName: %s\n" +"Bootstrap: %s\n" +"Where: %s\n" +"Replace: %s\n" +"FileSet: %s\n" +"Backup Client: %s\n" +"Restore Client: %s\n" +"Storage: %s\n" +"When: %s\n" +"Catalog: %s\n" +"Priority: %d\n" +msgstr "" + +#: src/dird/ua_run.c:816 +#, c-format +msgid "" +"Run Restore job\n" +"JobName: %s\n" +"Bootstrap: %s\n" +msgstr "" + +#: src/dird/ua_run.c:824 +#, c-format +msgid "RegexWhere: %s\n" +msgstr "" + +#: src/dird/ua_run.c:827 +#, c-format +msgid "Where: %s\n" +msgstr "" + +#: src/dird/ua_run.c:831 +#, c-format +msgid "" +"Replace: %s\n" +"Client: %s\n" +"Storage: %s\n" +"JobId: %s\n" +"When: %s\n" +"Catalog: %s\n" +"Priority: %d\n" +msgstr "" + +#: src/dird/ua_run.c:850 +#, c-format +msgid "" +"Run Migration job\n" +"JobName: %s\n" +"Bootstrap: %s\n" +"Client: %s\n" +"FileSet: %s\n" +"Pool: %s (From %s)\n" +"Read Storage: %s (From %s)\n" +"Write Storage: %s (From %s)\n" +"JobId: %s\n" +"When: %s\n" +"Catalog: %s\n" +"Priority: %d\n" +msgstr "" + +#: src/dird/ua_run.c:875 +#, c-format +msgid "Unknown Job Type=%d\n" +msgstr "" + +#: src/dird/ua_run.c:935 +#, c-format +msgid "Value missing for keyword %s\n" +msgstr "" + +#: src/dird/ua_run.c:942 +msgid "Job name specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:950 +msgid "JobId specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:959 src/dird/ua_run.c:1103 +msgid "Client specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:967 +msgid "FileSet specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:975 +msgid "Level specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:984 +msgid "Storage specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:992 +msgid "RegexWhere or Where specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:997 +msgid "No authorization for \"regexwhere\" specification.\n" +msgstr "" + +#: src/dird/ua_run.c:1004 +msgid "Where or RegexWhere specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:1009 +msgid "No authoriztion for \"where\" specification.\n" +msgstr "" + +#: src/dird/ua_run.c:1016 +msgid "Bootstrap specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:1024 +msgid "Replace specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:1032 +msgid "When specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:1040 +msgid "Priority specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:1045 +msgid "Priority must be positive nonzero setting it to 10.\n" +msgstr "" + +#: src/dird/ua_run.c:1055 +msgid "Verify Job specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:1087 +msgid "Migration Job specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:1095 +msgid "Pool specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:1111 +msgid "Restore Client specified twice.\n" +msgstr "" + +#: src/dird/ua_run.c:1135 +#, c-format +msgid "Invalid keyword: %s\n" +msgstr "" + +#: src/dird/ua_run.c:1146 +#, c-format +msgid "Catalog \"%s\" not found\n" +msgstr "" + +#: src/dird/ua_run.c:1150 +#, c-format +msgid "No authorization. Catalog \"%s\".\n" +msgstr "" + +#: src/dird/ua_run.c:1161 +#, c-format +msgid "Job \"%s\" not found\n" +msgstr "" + +#: src/dird/ua_run.c:1168 +msgid "A job name must be specified.\n" +msgstr "" + +#: src/dird/ua_run.c:1174 +#, c-format +msgid "No authorization. Job \"%s\".\n" +msgstr "" + +#: src/dird/ua_run.c:1182 +#, c-format +msgid "Pool \"%s\" not found.\n" +msgstr "" + +#: src/dird/ua_run.c:1192 +#, c-format +msgid "No authorization. Pool \"%s\".\n" +msgstr "" + +#: src/dird/ua_run.c:1202 +#, c-format +msgid "Storage \"%s\" not found.\n" +msgstr "" + +#: src/dird/ua_run.c:1214 +#, c-format +msgid "No authorization. Storage \"%s\".\n" +msgstr "" + +#: src/dird/ua_run.c:1234 src/dird/ua_run.c:1254 +#, c-format +msgid "No authorization. Client \"%s\".\n" +msgstr "" + +#: src/dird/ua_run.c:1244 +#, c-format +msgid "Restore Client \"%s\" not found.\n" +msgstr "" + +#: src/dird/ua_run.c:1264 +#, c-format +msgid "FileSet \"%s\" not found.\n" +msgstr "" + +#: src/dird/ua_run.c:1273 +#, c-format +msgid "No authorization. FileSet \"%s\".\n" +msgstr "" + +#: src/dird/ua_run.c:1281 +#, c-format +msgid "Verify Job \"%s\" not found.\n" +msgstr "" + +#: src/dird/ua_run.c:1291 +#, c-format +msgid "Migration Job \"%s\" not found.\n" +msgstr "" + +#: src/dird/ua_select.c:55 +#, c-format +msgid "The current %s retention period is: %s\n" +msgstr "" + +#: src/dird/ua_select.c:60 +msgid "Continue? (yes/mod/no): " +msgstr "" + +#: src/dird/ua_select.c:64 +msgid "Enter new retention period: " +msgstr "" + +#: src/dird/ua_select.c:68 +msgid "Invalid period.\n" +msgstr "" + +#: src/dird/ua_select.c:144 +msgid "You have the following choices:\n" +msgstr "" + +#: src/dird/ua_select.c:160 +msgid "The defined Storage resources are:\n" +msgstr "" + +#: src/dird/ua_select.c:168 +msgid "Select Storage resource" +msgstr "" + +#: src/dird/ua_select.c:224 +msgid "You must specify a \"use \" command before continuing.\n" +msgstr "" + +#: src/dird/ua_select.c:230 +msgid "The defined Catalog resources are:\n" +msgstr "" + +#: src/dird/ua_select.c:238 +msgid "Catalog" +msgstr "" + +#: src/dird/ua_select.c:238 +msgid "Select Catalog resource" +msgstr "" + +#: src/dird/ua_select.c:255 +msgid "The defined Job resources are:\n" +msgstr "" + +#: src/dird/ua_select.c:263 +msgid "Select Job resource" +msgstr "" + +#: src/dird/ua_select.c:278 +msgid "The defined Restore Job resources are:\n" +msgstr "" + +#: src/dird/ua_select.c:286 +msgid "Select Restore Job" +msgstr "" + +#: src/dird/ua_select.c:303 +msgid "The defined Client resources are:\n" +msgstr "" + +#: src/dird/ua_select.c:311 +msgid "Select Client (File daemon) resource" +msgstr "" + +#: src/dird/ua_select.c:338 +#, c-format +msgid "Error: Client resource %s does not exist.\n" +msgstr "" + +#: src/dird/ua_select.c:363 +#, c-format +msgid "Could not find Client %s: ERR=%s" +msgstr "" + +#: src/dird/ua_select.c:373 src/dird/ua_select.c:427 +#, c-format +msgid "Could not find Client \"%s\": ERR=%s" +msgstr "" + +#: src/dird/ua_select.c:402 +#, c-format +msgid "Error obtaining client ids. ERR=%s\n" +msgstr "" + +#: src/dird/ua_select.c:406 +msgid "No clients defined. You must run a job before using this command.\n" +msgstr "" + +#: src/dird/ua_select.c:410 +msgid "Defined Clients:\n" +msgstr "" + +#: src/dird/ua_select.c:420 +msgid "Select the Client" +msgstr "" + +#: src/dird/ua_select.c:453 src/dird/ua_select.c:477 src/dird/ua_select.c:513 +#, c-format +msgid "Could not find Pool \"%s\": ERR=%s" +msgstr "" + +#: src/dird/ua_select.c:492 +msgid "No pools defined. Use the \"create\" command to create one.\n" +msgstr "" + +#: src/dird/ua_select.c:496 +msgid "Defined Pools:\n" +msgstr "" + +#: src/dird/ua_select.c:506 +msgid "Select the Pool" +msgstr "" + +#: src/dird/ua_select.c:536 +#, c-format +msgid "No access to Pool \"%s\"\n" +msgstr "" + +#: src/dird/ua_select.c:562 +msgid "Enter MediaId or Volume name: " +msgstr "" + +#: src/dird/ua_select.c:588 +msgid "The defined Pool resources are:\n" +msgstr "" + +#: src/dird/ua_select.c:596 +msgid "Select Pool resource" +msgstr "" + +#: src/dird/ua_select.c:631 +msgid "Enter the JobId to select: " +msgstr "" + +#: src/dird/ua_select.c:669 +#, c-format +msgid "Could not find Job \"%s\": ERR=%s" +msgstr "" + +#: src/dird/ua_select.c:749 +#, c-format +msgid "Automatically selected %s: %s\n" +msgstr "" + +#: src/dird/ua_select.c:754 +#, c-format +msgid "Cannot select %s in batch mode.\n" +msgstr "" + +#: src/dird/ua_select.c:772 +#, c-format +msgid "Selection list for \"%s\" is empty!\n" +msgstr "" + +#: src/dird/ua_select.c:778 +#, c-format +msgid "Automatically selected: %s\n" +msgstr "" + +#: src/dird/ua_select.c:790 +msgid "Selection aborted, nothing done.\n" +msgstr "" + +#: src/dird/ua_select.c:795 +#, c-format +msgid "Please enter a number between 1 and %d\n" +msgstr "" + +#: src/dird/ua_select.c:844 +msgid "Storage name given twice.\n" +msgstr "" + +#: src/dird/ua_select.c:861 +#, c-format +msgid "Expecting jobid=nn command, got: %s\n" +msgstr "" + +#: src/dird/ua_select.c:865 +#, c-format +msgid "JobId %s is not running.\n" +msgstr "" + +#: src/dird/ua_select.c:875 +#, c-format +msgid "Expecting job=xxx, got: %s.\n" +msgstr "" + +#: src/dird/ua_select.c:879 src/dird/ua_select.c:891 +#, c-format +msgid "Job \"%s\" is not running.\n" +msgstr "" + +#: src/dird/ua_select.c:887 +#, c-format +msgid "Expecting ujobid=xxx, got: %s.\n" +msgstr "" + +#: src/dird/ua_select.c:907 +#, c-format +msgid "Storage resource \"%s\": not found\n" +msgstr "" + +#: src/dird/ua_select.c:939 +msgid "Enter autochanger drive[0]: " +msgstr "" + +#: src/dird/ua_select.c:960 +msgid "Enter autochanger slot: " +msgstr "" + +#: src/dird/ua_select.c:990 +msgid "Media Types defined in conf file:\n" +msgstr "" + +#: src/dird/ua_select.c:996 +msgid "Media Type" +msgstr "" + +#: src/dird/ua_select.c:996 +msgid "Select the Media Type" +msgstr "" + +#: src/dird/ua_server.c:72 +#, c-format +msgid "Cannot create UA thread: %s\n" +msgstr "" + +#: src/dird/ua_server.c:159 +msgid "You have messages.\n" +msgstr "" + +#: src/dird/ua_status.c:143 +msgid "Status available for:\n" +msgstr "" + +#: src/dird/ua_status.c:149 +msgid "Select daemon type for status" +msgstr "" + +#: src/dird/ua_status.c:267 +#, c-format +msgid "Daemon started %s, 1 Job run since started.\n" +msgstr "" + +#: src/dird/ua_status.c:270 +#, c-format +msgid "Daemon started %s, %d Jobs run since started.\n" +msgstr "" + +#: src/dird/ua_status.c:273 src/filed/status.c:129 src/stored/status.c:90 +#, c-format +msgid " Heap: heap=%s smbytes=%s max_bytes=%s bufs=%s max_bufs=%s\n" +msgstr "" + +#: src/dird/ua_status.c:299 src/dird/ua_status.c:526 src/dird/ua_status.c:702 +#: src/filed/status.c:204 src/filed/status.c:220 src/filed/status.c:282 +msgid "====\n" +msgstr "" + +#: src/dird/ua_status.c:314 +#, c-format +msgid "" +"\n" +"Failed to connect to Storage daemon %s.\n" +"====\n" +msgstr "" + +#: src/dird/ua_status.c:352 +#, c-format +msgid "" +"Failed to connect to Client %s.\n" +"====\n" +msgstr "" + +#: src/dird/ua_status.c:360 +msgid "Connected to file daemon\n" +msgstr "" + +#: src/dird/ua_status.c:375 +msgid "" +"\n" +"Scheduled Jobs:\n" +msgstr "" + +#: src/dird/ua_status.c:376 +msgid "" +"Level Type Pri Scheduled Name Volume\n" +msgstr "" + +#: src/dird/ua_status.c:377 +msgid "===================================================================================\n" +msgstr "" + +#: src/dird/ua_status.c:429 +#, c-format +msgid "%-14s %-8s %3d %-18s %-18s %s\n" +msgstr "" + +#: src/dird/ua_status.c:524 +msgid "No Scheduled Jobs.\n" +msgstr "" + +#: src/dird/ua_status.c:541 src/filed/status.c:144 src/stored/status.c:370 +msgid "" +"\n" +"Running Jobs:\n" +msgstr "" + +#: src/dird/ua_status.c:549 +#, c-format +msgid "Console connected at %s\n" +msgstr "" + +#: src/dird/ua_status.c:559 +msgid "" +"No Jobs running.\n" +"====\n" +msgstr "" + +#: src/dird/ua_status.c:564 +msgid " JobId Level Name Status\n" +msgstr "" + +#: src/dird/ua_status.c:565 src/filed/status.c:226 +msgid "======================================================================\n" +msgstr "" + +#: src/dird/ua_status.c:573 +msgid "is waiting execution" +msgstr "" + +#: src/dird/ua_status.c:576 +msgid "is running" +msgstr "" + +#: src/dird/ua_status.c:579 +msgid "is blocked" +msgstr "" + +#: src/dird/ua_status.c:582 +msgid "has terminated" +msgstr "" + +#: src/dird/ua_status.c:585 +msgid "has erred" +msgstr "" + +#: src/dird/ua_status.c:588 +msgid "has errors" +msgstr "" + +#: src/dird/ua_status.c:591 +msgid "has a fatal error" +msgstr "" + +#: src/dird/ua_status.c:594 +msgid "has verify differences" +msgstr "" + +#: src/dird/ua_status.c:597 +msgid "has been canceled" +msgstr "" + +#: src/dird/ua_status.c:602 +msgid "is waiting on Client" +msgstr "" + +#: src/dird/ua_status.c:604 +#, c-format +msgid "is waiting on Client %s" +msgstr "" + +#: src/dird/ua_status.c:612 src/dird/ua_status.c:614 +#, c-format +msgid "is waiting on Storage %s" +msgstr "" + +#: src/dird/ua_status.c:616 +msgid "is waiting on Storage" +msgstr "" + +#: src/dird/ua_status.c:622 +msgid "is waiting on max Storage jobs" +msgstr "" + +#: src/dird/ua_status.c:625 +msgid "is waiting on max Client jobs" +msgstr "" + +#: src/dird/ua_status.c:628 +msgid "is waiting on max Job jobs" +msgstr "" + +#: src/dird/ua_status.c:631 +msgid "is waiting on max total jobs" +msgstr "" + +#: src/dird/ua_status.c:634 +msgid "is waiting for its start time" +msgstr "" + +#: src/dird/ua_status.c:637 +msgid "is waiting for higher priority jobs to finish" +msgstr "" + +#: src/dird/ua_status.c:642 +#, c-format +msgid "is in unknown state %c" +msgstr "" + +#: src/dird/ua_status.c:656 +msgid "is waiting for a mount request" +msgstr "" + +#: src/dird/ua_status.c:663 +msgid "is waiting for an appendable Volume" +msgstr "" + +#: src/dird/ua_status.c:671 +msgid "is waiting for Client to connect to Storage daemon" +msgstr "" + +#: src/dird/ua_status.c:673 +#, c-format +msgid "is waiting for Client %s to connect to Storage %s" +msgstr "" + +#: src/dird/ua_status.c:690 +#, c-format +msgid "%6d %-6s %-20s %s\n" +msgstr "" + +#: src/dird/ua_status.c:712 +msgid "No Terminated Jobs.\n" +msgstr "" + +#: src/dird/ua_status.c:717 src/filed/status.c:216 src/stored/status.c:482 +msgid "" +"\n" +"Terminated Jobs:\n" +msgstr "" + +#: src/dird/ua_status.c:718 src/filed/status.c:224 src/stored/status.c:489 +msgid " JobId Level Files Bytes Status Finished Name \n" +msgstr "" + +#: src/dird/ua_status.c:719 +msgid "====================================================================\n" +msgstr "" + +#: src/dird/ua_status.c:750 src/filed/status.c:246 src/lib/util.c:179 +#: src/stored/status.c:511 +msgid "Created" +msgstr "" + +#: src/dird/ua_status.c:754 src/filed/status.c:250 src/lib/util.c:192 +#: src/lib/util.c:259 src/stored/status.c:515 +msgid "Error" +msgstr "" + +#: src/dird/ua_status.c:757 src/filed/status.c:253 src/stored/status.c:518 +msgid "Diffs" +msgstr "" + +#: src/dird/ua_status.c:763 src/filed/status.c:259 src/lib/util.c:188 +#: src/lib/util.c:255 src/stored/btape.c:1189 src/stored/status.c:524 +#: src/wx-console/wxbconfigpanel.cpp:201 +msgid "OK" +msgstr "" + +#: src/dird/ua_status.c:766 src/filed/status.c:262 src/stored/status.c:527 +msgid "Other" +msgstr "" + +#: src/dird/ua_status.c:769 src/filed/status.c:273 src/stored/status.c:538 +#, c-format +msgid "%6d %-6s %8s %10s %-7s %-8s %s\n" +msgstr "" + +#: src/dird/ua_status.c:777 src/stored/btape.c:195 +msgid "\n" +msgstr "" + +#: src/dird/ua_tree.c:72 +msgid "change current directory" +msgstr "" + +#: src/dird/ua_tree.c:73 +msgid "count marked files in and below the cd" +msgstr "" + +#: src/dird/ua_tree.c:74 src/dird/ua_tree.c:75 +msgid "long list current directory, wildcards allowed" +msgstr "" + +#: src/dird/ua_tree.c:76 +msgid "leave file selection mode" +msgstr "" + +#: src/dird/ua_tree.c:77 +msgid "estimate restore size" +msgstr "" + +#: src/dird/ua_tree.c:78 +msgid "same as done command" +msgstr "" + +#: src/dird/ua_tree.c:79 +msgid "find files, wildcards allowed" +msgstr "" + +#: src/dird/ua_tree.c:80 src/dird/ua_tree.c:90 +msgid "print help" +msgstr "" + +#: src/dird/ua_tree.c:81 +msgid "list current directory, wildcards allowed" +msgstr "" + +#: src/dird/ua_tree.c:82 +msgid "list the marked files in and below the cd" +msgstr "" + +#: src/dird/ua_tree.c:83 +msgid "mark dir/file to be restored recursively, wildcards allowed" +msgstr "" + +#: src/dird/ua_tree.c:84 +msgid "mark directory name to be restored (no files)" +msgstr "" + +#: src/dird/ua_tree.c:85 src/dird/ua_tree.c:86 +msgid "print current working directory" +msgstr "" + +#: src/dird/ua_tree.c:87 +msgid "unmark dir/file to be restored recursively in dir" +msgstr "" + +#: src/dird/ua_tree.c:88 +msgid "unmark directory name only no recursion" +msgstr "" + +#: src/dird/ua_tree.c:89 +msgid "quit and do not do restore" +msgstr "" + +#: src/dird/ua_tree.c:110 +msgid "" +"\n" +"You are now entering file selection mode where you add (mark) and\n" +"remove (unmark) files to be restored. No files are initially added, unless\n" +"you used the \"all\" keyword on the command line.\n" +"Enter \"done\" to leave this mode.\n" +"\n" +msgstr "" + +#: src/dird/ua_tree.c:120 src/dird/ua_tree.c:716 +#, c-format +msgid "cwd is: %s\n" +msgstr "" + +#: src/dird/ua_tree.c:129 src/dird/ua_tree.c:144 +msgid "Invalid command. Enter \"done\" to exit.\n" +msgstr "" + +#: src/dird/ua_tree.c:331 src/dird/ua_tree.c:343 src/dird/ua_tree.c:360 +msgid "No files marked.\n" +msgstr "" + +#: src/dird/ua_tree.c:345 +msgid "1 file marked.\n" +msgstr "" + +#: src/dird/ua_tree.c:347 +#, c-format +msgid "%s files marked.\n" +msgstr "" + +#: src/dird/ua_tree.c:375 +msgid "No directories marked.\n" +msgstr "" + +#: src/dird/ua_tree.c:377 +msgid "1 directory marked.\n" +msgstr "" + +#: src/dird/ua_tree.c:379 +#, c-format +msgid "%s directories marked.\n" +msgstr "" + +#: src/dird/ua_tree.c:400 +#, c-format +msgid "%s total files/dirs. %s marked to be restored.\n" +msgstr "" + +#: src/dird/ua_tree.c:411 +msgid "No file specification given.\n" +msgstr "" + +#: src/dird/ua_tree.c:562 +#, c-format +msgid "Node %s has no children.\n" +msgstr "" + +#: src/dird/ua_tree.c:653 +#, c-format +msgid "%d total files; %d marked to be restored; %s bytes.\n" +msgstr "" + +#: src/dird/ua_tree.c:687 +msgid "Too few or too many arguments. Try using double quotes.\n" +msgstr "" + +#: src/dird/ua_tree.c:699 +msgid "Invalid path given.\n" +msgstr "" + +#: src/dird/ua_tree.c:735 src/dird/ua_tree.c:747 +msgid "No files unmarked.\n" +msgstr "" + +#: src/dird/ua_tree.c:749 +msgid "1 file unmarked.\n" +msgstr "" + +#: src/dird/ua_tree.c:752 +#, c-format +msgid "%s files unmarked.\n" +msgstr "" + +#: src/dird/ua_tree.c:763 src/dird/ua_tree.c:780 +msgid "No directories unmarked.\n" +msgstr "" + +#: src/dird/ua_tree.c:782 +msgid "1 directory unmarked.\n" +msgstr "" + +#: src/dird/ua_tree.c:784 +#, c-format +msgid "%d directories unmarked.\n" +msgstr "" + +#: src/dird/ua_update.c:89 +msgid "Update choice:\n" +msgstr "" + +#: src/dird/ua_update.c:90 +msgid "Volume parameters" +msgstr "" + +#: src/dird/ua_update.c:91 +msgid "Pool from resource" +msgstr "" + +#: src/dird/ua_update.c:92 +msgid "Slots from autochanger" +msgstr "" + +#: src/dird/ua_update.c:93 +msgid "item" +msgstr "" + +#: src/dird/ua_update.c:93 +msgid "Choose catalog item to update" +msgstr "" + +#: src/dird/ua_update.c:133 +#, c-format +msgid "Invalid VolStatus specified: %s\n" +msgstr "" + +#: src/dird/ua_update.c:142 +#, c-format +msgid "New Volume status is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:152 +#, c-format +msgid "Invalid retention period specified: %s\n" +msgstr "" + +#: src/dird/ua_update.c:160 +#, c-format +msgid "New retention period is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:171 +#, c-format +msgid "Invalid use duration specified: %s\n" +msgstr "" + +#: src/dird/ua_update.c:179 +#, c-format +msgid "New use duration is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:193 +#, c-format +msgid "New max jobs is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:206 +#, c-format +msgid "New max files is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:217 +#, c-format +msgid "Invalid max. bytes specification: %s\n" +msgstr "" + +#: src/dird/ua_update.c:225 +#, c-format +msgid "New Max bytes is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:236 src/dird/ua_update.c:256 +msgid "Invalid value. It must be yes or no.\n" +msgstr "" + +#: src/dird/ua_update.c:244 +#, c-format +msgid "New Recycle flag is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:264 +#, c-format +msgid "New InChanger flag is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:282 +#, c-format +msgid "Invalid slot, it must be between 0 and MaxVols=%d\n" +msgstr "" + +#: src/dird/ua_update.c:291 src/dird/ua_update.c:637 +#, c-format +msgid "Error updating media record Slot: ERR=%s" +msgstr "" + +#: src/dird/ua_update.c:293 +#, c-format +msgid "New Slot is: %d\n" +msgstr "" + +#: src/dird/ua_update.c:318 +#, c-format +msgid "New Pool is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:352 +#, c-format +msgid "New RecyclePool is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:372 +#, c-format +msgid "Error updating Volume record: ERR=%s" +msgstr "" + +#: src/dird/ua_update.c:374 +#, c-format +msgid "Volume defaults updated from \"%s\" Pool record.\n" +msgstr "" + +#: src/dird/ua_update.c:398 +#, c-format +msgid "Error updating Volume records: ERR=%s" +msgstr "" + +#: src/dird/ua_update.c:400 +#, c-format +msgid "All Volume defaults updated from \"%s\" Pool record.\n" +msgstr "" + +#: src/dird/ua_update.c:412 +#, c-format +msgid "Error updating media record Enabled: ERR=%s" +msgstr "" + +#: src/dird/ua_update.c:414 +#, c-format +msgid "New Enabled is: %d\n" +msgstr "" + +#: src/dird/ua_update.c:519 +msgid "Volume Status" +msgstr "" + +#: src/dird/ua_update.c:520 +msgid "Volume Retention Period" +msgstr "" + +#: src/dird/ua_update.c:521 +msgid "Volume Use Duration" +msgstr "" + +#: src/dird/ua_update.c:522 +msgid "Maximum Volume Jobs" +msgstr "" + +#: src/dird/ua_update.c:523 +msgid "Maximum Volume Files" +msgstr "" + +#: src/dird/ua_update.c:524 +msgid "Maximum Volume Bytes" +msgstr "" + +#: src/dird/ua_update.c:525 +msgid "Recycle Flag" +msgstr "" + +#: src/dird/ua_update.c:526 +msgid "Slot" +msgstr "" + +#: src/dird/ua_update.c:527 +msgid "InChanger Flag" +msgstr "" + +#: src/dird/ua_update.c:528 +msgid "Volume Files" +msgstr "" + +#: src/dird/ua_update.c:530 +msgid "Volume from Pool" +msgstr "" + +#: src/dird/ua_update.c:531 +msgid "All Volumes from Pool" +msgstr "" + +#: src/dird/ua_update.c:532 +msgid "Enabled" +msgstr "" + +#: src/dird/ua_update.c:533 +msgid "RecyclePool" +msgstr "" + +#: src/dird/ua_update.c:534 +msgid "Done" +msgstr "" + +#: src/dird/ua_update.c:542 +#, c-format +msgid "Updating Volume \"%s\"\n" +msgstr "" + +#: src/dird/ua_update.c:547 +#, c-format +msgid "Current Volume status is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:548 +msgid "Possible Values are:\n" +msgstr "" + +#: src/dird/ua_update.c:559 +msgid "Choose new Volume Status" +msgstr "" + +#: src/dird/ua_update.c:565 +#, c-format +msgid "Current retention period is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:567 +msgid "Enter Volume Retention period: " +msgstr "" + +#: src/dird/ua_update.c:574 +#, c-format +msgid "Current use duration is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:576 +msgid "Enter Volume Use Duration: " +msgstr "" + +#: src/dird/ua_update.c:583 +#, c-format +msgid "Current max jobs is: %u\n" +msgstr "" + +#: src/dird/ua_update.c:584 +msgid "Enter new Maximum Jobs: " +msgstr "" + +#: src/dird/ua_update.c:591 +#, c-format +msgid "Current max files is: %u\n" +msgstr "" + +#: src/dird/ua_update.c:592 +msgid "Enter new Maximum Files: " +msgstr "" + +#: src/dird/ua_update.c:599 +#, c-format +msgid "Current value is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:600 +msgid "Enter new Maximum Bytes: " +msgstr "" + +#: src/dird/ua_update.c:608 +#, c-format +msgid "Current recycle flag is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:610 +msgid "Enter new Recycle status: " +msgstr "" + +#: src/dird/ua_update.c:617 +#, c-format +msgid "Current Slot is: %d\n" +msgstr "" + +#: src/dird/ua_update.c:618 +msgid "Enter new Slot: " +msgstr "" + +#: src/dird/ua_update.c:625 +#, c-format +msgid "Current InChanger flag is: %d\n" +msgstr "" + +#: src/dird/ua_update.c:626 +#, c-format +msgid "Set InChanger flag for Volume \"%s\": yes/no: " +msgstr "" + +#: src/dird/ua_update.c:639 +#, c-format +msgid "New InChanger flag is: %d\n" +msgstr "" + +#: src/dird/ua_update.c:646 +msgid "" +"Warning changing Volume Files can result\n" +"in loss of data on your Volume\n" +"\n" +msgstr "" + +#: src/dird/ua_update.c:648 +#, c-format +msgid "Current Volume Files is: %u\n" +msgstr "" + +#: src/dird/ua_update.c:649 +msgid "Enter new number of Files for Volume: " +msgstr "" + +#: src/dird/ua_update.c:654 +msgid "Normally, you should only increase Volume Files by one!\n" +msgstr "" + +#: src/dird/ua_update.c:655 +msgid "Increase Volume Files? (yes/no): " +msgstr "" + +#: src/dird/ua_update.c:665 +#, c-format +msgid "New Volume Files is: %u\n" +msgstr "" + +#: src/dird/ua_update.c:677 +#, c-format +msgid "Current Pool is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:678 +msgid "Enter new Pool name: " +msgstr "" + +#: src/dird/ua_update.c:695 +#, c-format +msgid "Current Enabled is: %d\n" +msgstr "" + +#: src/dird/ua_update.c:696 +msgid "Enter new Enabled: " +msgstr "" + +#: src/dird/ua_update.c:715 +#, c-format +msgid "Current RecyclePool is: %s\n" +msgstr "" + +#: src/dird/ua_update.c:717 +msgid "No current RecyclePool\n" +msgstr "" + +#: src/dird/ua_update.c:719 +msgid "Enter new RecyclePool name: " +msgstr "" + +#: src/dird/ua_update.c:726 +msgid "Selection terminated.\n" +msgstr "" + +#: src/dird/ua_update.c:760 +#, c-format +msgid "db_update_pool_record returned %d. ERR=%s\n" +msgstr "" + +#: src/dird/ua_update.c:767 +msgid "Pool DB record updated from resource.\n" +msgstr "" + +#: src/dird/ua_update.c:794 +msgid "Expect JobId keyword, not found.\n" +msgstr "" + +#: src/dird/ua_update.c:819 +msgid "Neither Client nor StartTime specified.\n" +msgstr "" + +#: src/dird/verify.c:120 +msgid "" +"Unable to find JobId of previous InitCatalog Job.\n" +"Please run a Verify with Level=InitCatalog before\n" +"running the current Job.\n" +msgstr "" + +#: src/dird/verify.c:125 +msgid "Unable to find JobId of previous Job for this client.\n" +msgstr "" + +#: src/dird/verify.c:141 +#, c-format +msgid "Could not get job record for previous Job. ERR=%s" +msgstr "" + +#: src/dird/verify.c:146 +#, c-format +msgid "Last Job %d did not terminate normally. JobStatus=%c\n" +msgstr "" + +#: src/dird/verify.c:150 +#, c-format +msgid "Verifying against JobId=%d Job=%s\n" +msgstr "" + +#: src/dird/verify.c:179 +#, c-format +msgid "Start Verify JobId=%s Level=%s Job=%s\n" +msgstr "" + +#: src/dird/verify.c:263 +msgid "Deprecated feature ... use bootstrap.\n" +msgstr "" + +#: src/dird/verify.c:276 +#, c-format +msgid "Unimplemented Verify level %d(%c)\n" +msgstr "" + +#: src/dird/verify.c:330 +#, c-format +msgid "Unimplemented verify level %d\n" +msgstr "" + +#: src/dird/verify.c:384 +msgid "Verify OK" +msgstr "" + +#: src/dird/verify.c:388 +msgid "*** Verify Error ***" +msgstr "" + +#: src/dird/verify.c:392 +msgid "Verify warnings" +msgstr "" + +#: src/dird/verify.c:395 +msgid "Verify Canceled" +msgstr "" + +#: src/dird/verify.c:398 +msgid "Verify Differences" +msgstr "" + +#: src/dird/verify.c:403 +#, c-format +msgid "Inappropriate term code: %d %c\n" +msgstr "" + +#: src/dird/verify.c:417 +#, c-format +msgid "" +"Bacula %s %s (%s): %s\n" +" Build OS: %s %s %s\n" +" JobId: %d\n" +" Job: %s\n" +" FileSet: %s\n" +" Verify Level: %s\n" +" Client: %s\n" +" Verify JobId: %d\n" +" Verify Job: %s\n" +" Start time: %s\n" +" End time: %s\n" +" Files Expected: %s\n" +" Files Examined: %s\n" +" Non-fatal FD errors: %d\n" +" FD termination status: %s\n" +" SD termination status: %s\n" +" Termination: %s\n" +"\n" +msgstr "" + +#: src/dird/verify.c:452 +#, c-format +msgid "" +"Bacula %s %s (%s): %s\n" +" Build: %s %s %s\n" +" JobId: %d\n" +" Job: %s\n" +" FileSet: %s\n" +" Verify Level: %s\n" +" Client: %s\n" +" Verify JobId: %d\n" +" Verify Job: %s\n" +" Start time: %s\n" +" End time: %s\n" +" Files Examined: %s\n" +" Non-fatal FD errors: %d\n" +" FD termination status: %s\n" +" Termination: %s\n" +"\n" +msgstr "" + +#: src/dird/verify.c:531 +#, c-format +msgid "" +"bird set configuration file to file\n" +" -dnn set debug level to nn\n" +" -n no conio\n" +" -s no signals\n" +" -t test - read configuration and exit\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/console/console.c:162 +msgid "input from file" +msgstr "" + +#: src/console/console.c:163 +msgid "output to file" +msgstr "" + +#: src/console/console.c:165 +msgid "output to file and terminal" +msgstr "" + +#: src/console/console.c:166 +msgid "sleep specified time" +msgstr "" + +#: src/console/console.c:168 +msgid "print Console's version" +msgstr "" + +#: src/console/console.c:169 +msgid "echo command string" +msgstr "" + +#: src/console/console.c:170 +msgid "execute an external command" +msgstr "" + +#: src/console/console.c:172 +msgid "zed_keys = use zed keys instead of bash keys" +msgstr "" + +#: src/console/console.c:205 +msgid ": is an invalid command\n" +msgstr "" + +#: src/console/console.c:462 +msgid "Available Directors:\n" +msgstr "" + +#: src/console/console.c:466 +#, c-format +msgid "%2d: %s at %s:%d\n" +msgstr "" + +#: src/console/console.c:470 +msgid "Select Director by entering a number: " +msgstr "" + +#: src/console/console.c:475 +#, c-format +msgid "%s is not a number. You must enter a number between 1 and %d\n" +msgstr "" + +#: src/console/console.c:481 +#, c-format +msgid "You must enter a number between 1 and %d\n" +msgstr "" + +#: src/console/console.c:521 src/tray-monitor/tray-monitor.c:905 +#, c-format +msgid "Connecting to Director %s:%d\n" +msgstr "" + +#: src/console/console.c:538 src/gnome2-console/console.c:526 +#: src/wx-console/console_thread.cpp:391 +#, c-format +msgid "Failed to initialize TLS context for Console \"%s\".\n" +msgstr "" + +#: src/console/console.c:558 src/gnome2-console/console.c:548 +#: src/wx-console/console_thread.cpp:412 +#, c-format +msgid "Failed to initialize TLS context for Director \"%s\".\n" +msgstr "" + +#: src/console/console.c:588 +msgid "Enter a period to cancel a command.\n" +msgstr "" + +#: src/console/console.c:664 src/gnome2-console/console.c:160 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Director \"%s\" in %s. At least one CA certificate store is required.\n" +msgstr "" + +#: src/console/console.c:673 src/gnome2-console/console.c:169 +#, c-format +msgid "" +"No Director resource defined in %s\n" +"Without that I don't how to speak to the Director :-(\n" +msgstr "" + +#: src/console/console.c:693 src/gnome2-console/console.c:189 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Console \"%s\" in %s.\n" +msgstr "" + +#: src/console/console.c:849 +msgid "Too many arguments on input command.\n" +msgstr "" + +#: src/console/console.c:853 +msgid "First argument to input command must be a filename.\n" +msgstr "" + +#: src/console/console.c:858 +#, c-format +msgid "Cannot open file %s for input. ERR=%s\n" +msgstr "" + +#: src/console/console.c:888 +msgid "Too many arguments on output/tee command.\n" +msgstr "" + +#: src/console/console.c:905 +#, c-format +msgid "Cannot open file %s for output. ERR=%s\n" +msgstr "" + +#: src/console/console.c:924 +msgid "Too many arguments. Enclose command in double quotes.\n" +msgstr "" + +#: src/console/console.c:933 +#, c-format +msgid "Cannot popen(\"%s\", \"r\"): ERR=%s\n" +msgstr "" + +#: src/console/console.c:945 src/stored/autochanger.c:549 +#, c-format +msgid "Autochanger error: ERR=%s\n" +msgstr "" + +#: src/console/console_conf.c:138 src/gnome2-console/console_conf.c:134 +#: src/wx-console/console_conf.c:147 +#, c-format +msgid "No record for %d %s\n" +msgstr "" + +#: src/console/console_conf.c:147 src/wx-console/console_conf.c:156 +#, c-format +msgid "Console: name=%s rcfile=%s histfile=%s\n" +msgstr "" + +#: src/console/console_conf.c:151 src/gnome2-console/console_conf.c:143 +#: src/wx-console/console_conf.c:160 +#, c-format +msgid "Director: name=%s address=%s DIRport=%d\n" +msgstr "" + +#: src/console/console_conf.c:155 src/console/console_conf.c:231 +#: src/console/console_conf.c:276 src/console/console_conf.c:303 +#: src/filed/filed_conf.c:319 src/filed/filed_conf.c:384 +#: src/filed/filed_conf.c:414 src/gnome2-console/console_conf.c:154 +#: src/gnome2-console/console_conf.c:232 src/gnome2-console/console_conf.c:280 +#: src/gnome2-console/console_conf.c:310 src/stored/stored_conf.c:528 +#: src/stored/stored_conf.c:616 src/stored/stored_conf.c:651 +#: src/wx-console/console_conf.c:164 src/wx-console/console_conf.c:239 +#: src/wx-console/console_conf.c:284 src/wx-console/console_conf.c:311 +#, c-format +msgid "Unknown resource type %d\n" +msgstr "" + +#: src/filed/acl.c:104 src/filed/acl.c:110 +msgid "ACL support not configured for your machine.\n" +msgstr "" + +#: src/filed/acl.c:186 +#, c-format +msgid "acl_to_text error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:215 +#, c-format +msgid "acl_delete_def_file error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:223 +#, c-format +msgid "acl_from_text error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:237 +#, c-format +msgid "ac_valid error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:252 +#, c-format +msgid "acl_set_file error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:286 +#, c-format +msgid "acltostr error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:303 src/filed/acl.c:311 +#, c-format +msgid "strtoacl error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:323 +#, c-format +msgid "setacl error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:359 +#, c-format +msgid "acltotext error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:376 +#, c-format +msgid "aclfromtext error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/acl.c:388 +#, c-format +msgid "acl(SETACL) error on file \"%s\": ERR=%s\n" +msgstr "" + +#: src/filed/authenticate.c:60 +#, c-format +msgid "I only authenticate directors, not %d\n" +msgstr "" + +#: src/filed/authenticate.c:68 src/stored/authenticate.c:66 +#, c-format +msgid "Bad Hello command from Director at %s. Len=%d.\n" +msgstr "" + +#: src/filed/authenticate.c:80 src/stored/authenticate.c:77 +#, c-format +msgid "Bad Hello command from Director at %s: %s\n" +msgstr "" + +#: src/filed/authenticate.c:92 +#, c-format +msgid "Connection from unknown Director %s at %s rejected.\n" +msgstr "" + +#: src/filed/authenticate.c:132 +#, c-format +msgid "Incorrect password given by Director at %s.\n" +msgstr "" + +#: src/filed/authenticate.c:139 +msgid "" +"Authorization problem: Remote server did not advertize required TLS " +"support.\n" +msgstr "" + +#: src/filed/authenticate.c:193 src/stored/dircmd.c:199 +msgid "Unable to authenticate Director\n" +msgstr "" + +#: src/filed/authenticate.c:244 +msgid "" +"Authorization key rejected by Storage daemon.\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" + +#: src/filed/backup.c:86 +msgid "Cannot set buffer size FD->SD.\n" +msgstr "" + +#: src/filed/backup.c:129 src/filed/backup.c:138 +msgid "An error occurred while encrypting the stream.\n" +msgstr "" + +#: src/filed/backup.c:255 +#, c-format +msgid " Recursion turned off. Will not descend from %s into %s\n" +msgstr "" + +#: src/filed/backup.c:262 +#, c-format +msgid " %s is a different filesystem. Will not descend from %s into %s\n" +msgstr "" + +#: src/filed/backup.c:268 +#, c-format +msgid " Disallowed filesystem. Will not descend from %s into %s\n" +msgstr "" + +#: src/filed/backup.c:273 +#, c-format +msgid " Disallowed drive type. Will not descend into %s\n" +msgstr "" + +#: src/filed/backup.c:292 src/filed/verify.c:123 +#, c-format +msgid " Could not access %s: ERR=%s\n" +msgstr "" + +#: src/filed/backup.c:299 src/filed/verify.c:130 +#, c-format +msgid " Could not follow link %s: ERR=%s\n" +msgstr "" + +#: src/filed/backup.c:306 src/filed/verify.c:137 +#, c-format +msgid " Could not stat %s: ERR=%s\n" +msgstr "" + +#: src/filed/backup.c:313 src/filed/verify.c:143 +#, c-format +msgid " Unchanged file skipped: %s\n" +msgstr "" + +#: src/filed/backup.c:316 +#, c-format +msgid " Archive file not saved: %s\n" +msgstr "" + +#: src/filed/backup.c:320 src/filed/verify.c:158 +#, c-format +msgid " Could not open directory %s: ERR=%s\n" +msgstr "" + +#: src/filed/backup.c:326 +#, c-format +msgid " Unknown file type %d; not saved: %s\n" +msgstr "" + +#: src/filed/backup.c:366 src/filed/verify.c:239 +#, c-format +msgid "%s digest initialization failed\n" +msgstr "" + +#: src/filed/backup.c:380 +#, c-format +msgid "%s signature digest initialization failed\n" +msgstr "" + +#: src/filed/backup.c:400 +#, c-format +msgid "Python reader program \"%s\" not found.\n" +msgstr "" + +#: src/filed/backup.c:462 src/filed/verify.c:300 +#, c-format +msgid " Cannot open %s: ERR=%s.\n" +msgstr "" + +#: src/filed/backup.c:499 src/filed/verify.c:314 +#, c-format +msgid " Cannot open resource fork for %s: ERR=%s.\n" +msgstr "" + +#: src/filed/backup.c:556 +msgid "Failed to allocate memory for crypto signature.\n" +msgstr "" + +#: src/filed/backup.c:561 src/filed/backup.c:567 src/filed/backup.c:582 +msgid "An error occurred while signing the stream.\n" +msgstr "" + +#: src/filed/backup.c:606 +msgid "An error occurred finalizing signing the stream.\n" +msgstr "" + +#: src/filed/backup.c:693 +#, c-format +msgid "Compression deflateParams error: %d\n" +msgstr "" + +#: src/filed/backup.c:705 +msgid "Encrypting sparse data not supported.\n" +msgstr "" + +#: src/filed/backup.c:712 +msgid "Failed to initialize encryption context.\n" +msgstr "" + +#: src/filed/backup.c:735 src/filed/backup.c:891 src/filed/backup.c:926 +#: src/filed/backup.c:937 src/filed/backup.c:983 src/filed/backup.c:996 +#: src/filed/backup.c:1004 src/filed/backup.c:1050 src/filed/backup.c:1086 +#, c-format +msgid "Network send error to SD. ERR=%s\n" +msgstr "" + +#: src/filed/backup.c:814 +#, c-format +msgid "Compression deflate error: %d\n" +msgstr "" + +#: src/filed/backup.c:821 +#, c-format +msgid "Compression deflateReset error: %d\n" +msgstr "" + +#: src/filed/backup.c:864 src/filed/backup.c:880 +msgid "Encryption error\n" +msgstr "" + +#: src/filed/backup.c:904 +#, c-format +msgid "Read error on file %s. ERR=%s\n" +msgstr "" + +#: src/filed/backup.c:907 +msgid "Too many errors.\n" +msgstr "" + +#: src/filed/backup.c:917 +msgid "Encryption padding error\n" +msgstr "" + +#: src/filed/backup.c:974 +#, c-format +msgid "Error reading ACL of %s\n" +msgstr "" + +#: src/filed/backup.c:1029 +msgid "Invalid file flags, no supported data stream type.\n" +msgstr "" + +#: src/filed/filed.c:65 +#, c-format +msgid "" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: bacula-fd [-f -s] [-c config_file] [-d debug_level]\n" +" -c use as configuration file\n" +" -dnn set debug level to nn\n" +" -f run in foreground (for debugging)\n" +" -g groupid\n" +" -s no signals (for debugging)\n" +" -t test configuration file and exit\n" +" -u userid\n" +" -v verbose user messages\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/filed/filed.c:268 +#, c-format +msgid "" +"No File daemon resource defined in %s\n" +"Without that I don't know who I am :-(\n" +msgstr "" + +#: src/filed/filed.c:273 +#, c-format +msgid "Only one Client resource permitted in %s\n" +msgstr "" + +#: src/filed/filed.c:296 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"File daemon in %s.\n" +msgstr "" + +#: src/filed/filed.c:320 +msgid "PKI encryption/signing enabled but not compiled into Bacula.\n" +msgstr "" + +#: src/filed/filed.c:331 +#, c-format +msgid "" +"\"PKI Key Pair\" must be defined for File daemon \"%s\" in %s if either " +"\"PKI Sign\" or \"PKI Encrypt\" are enabled.\n" +msgstr "" + +#: src/filed/filed.c:343 src/filed/filed.c:374 src/filed/filed.c:415 +msgid "Failed to allocate a new keypair object.\n" +msgstr "" + +#: src/filed/filed.c:347 +#, c-format +msgid "Failed to load public certificate for File daemon \"%s\" in %s.\n" +msgstr "" + +#: src/filed/filed.c:353 +#, c-format +msgid "Failed to load private key for File daemon \"%s\" in %s.\n" +msgstr "" + +#: src/filed/filed.c:383 +#, c-format +msgid "Failed to load private key from file %s for File daemon \"%s\" in %s.\n" +msgstr "" + +#: src/filed/filed.c:390 +#, c-format +msgid "" +"Failed to load trusted signer certificate from file %s for File daemon \"%s" +"\" in %s.\n" +msgstr "" + +#: src/filed/filed.c:421 +#, c-format +msgid "" +"Failed to load master key certificate from file %s for File daemon \"%s\" in " +"%s.\n" +msgstr "" + +#: src/filed/filed.c:437 +#, c-format +msgid "No Director resource defined in %s\n" +msgstr "" + +#: src/filed/job.c:373 +#, c-format +msgid "2901 Job %s not found.\n" +msgstr "" + +#: src/filed/job.c:382 +#, c-format +msgid "2001 Job %s marked to be canceled.\n" +msgstr "" + +#: src/filed/job.c:385 +msgid "2902 Error scanning cancel command.\n" +msgstr "" + +#: src/filed/job.c:404 +#, c-format +msgid "2991 Bad setdebug command: %s\n" +msgstr "" + +#: src/filed/job.c:420 +#, c-format +msgid "Bad estimate command: %s" +msgstr "" + +#: src/filed/job.c:421 +msgid "2992 Bad estimate command.\n" +msgstr "" + +#: src/filed/job.c:444 +#, c-format +msgid "Bad Job Command: %s" +msgstr "" + +#: src/filed/job.c:465 +#, c-format +msgid "Bad RunBeforeJob command: %s\n" +msgstr "" + +#: src/filed/job.c:466 src/filed/job.c:484 +msgid "2905 Bad RunBeforeJob command.\n" +msgstr "" + +#: src/filed/job.c:495 +msgid "2905 Bad RunBeforeNow command.\n" +msgstr "" + +#: src/filed/job.c:514 +#, c-format +msgid "Bad RunAfter command: %s\n" +msgstr "" + +#: src/filed/job.c:515 +msgid "2905 Bad RunAfterJob command.\n" +msgstr "" + +#: src/filed/job.c:549 +#, c-format +msgid "Bad RunScript command: %s\n" +msgstr "" + +#: src/filed/job.c:550 +msgid "2905 Bad RunScript command.\n" +msgstr "" + +#: src/filed/job.c:652 +#, c-format +msgid "Error running program: %s. stat=%d: ERR=%s\n" +msgstr "" + +#: src/filed/job.c:662 +#, c-format +msgid "Cannot open FileSet input file: %s. ERR=%s\n" +msgstr "" + +#: src/filed/job.c:758 +#, c-format +msgid "REGEX %s compile error. ERR=%s\n" +msgstr "" + +#: src/filed/job.c:820 +#, c-format +msgid "Invalid FileSet command: %s\n" +msgstr "" + +#: src/filed/job.c:1054 src/findlib/match.c:199 src/tools/testfind.c:635 +#, c-format +msgid "Unknown include/exclude option: %c\n" +msgstr "" + +#: src/filed/job.c:1123 src/stored/fd_cmds.c:355 +#, c-format +msgid "Could not create bootstrap file %s: ERR=%s\n" +msgstr "" + +#: src/filed/job.c:1232 +#, c-format +msgid "DIR and FD clocks differ by %d seconds, FD automatically adjusting.\n" +msgstr "" + +#: src/filed/job.c:1240 +#, c-format +msgid "Unknown backup level: %s\n" +msgstr "" + +#: src/filed/job.c:1252 +#, c-format +msgid "Bad level command: %s\n" +msgstr "" + +#: src/filed/job.c:1273 +#, c-format +msgid "Bad session command: %s" +msgstr "" + +#: src/filed/job.c:1294 +#, c-format +msgid "Bad storage command: %s" +msgstr "" + +#: src/filed/job.c:1303 +#, c-format +msgid "Failed to connect to Storage daemon: %s:%d\n" +msgstr "" + +#: src/filed/job.c:1315 +msgid "Failed to authenticate Storage daemon.\n" +msgstr "" + +#: src/filed/job.c:1353 +msgid "Cannot contact Storage daemon\n" +msgstr "" + +#: src/filed/job.c:1371 +#, c-format +msgid "Bad response to append open: %s\n" +msgstr "" + +#: src/filed/job.c:1376 +msgid "Bad response from stored to open command\n" +msgstr "" + +#: src/filed/job.c:1403 +#, c-format +msgid "Generate VSS snapshots. Driver=\"%s\", Drive(s)=\"%s\"\n" +msgstr "" + +#: src/filed/job.c:1405 +msgid "Generate VSS snapshots failed.\n" +msgstr "" + +#: src/filed/job.c:1412 +#, c-format +msgid "" +"Generate VSS snapshot of drive \"%c:\\\" failed. VSS support is disabled on " +"this drive.\n" +msgstr "" + +#: src/filed/job.c:1419 +#, c-format +msgid "VSS Writer (PrepareForBackup): %s\n" +msgstr "" + +#: src/filed/job.c:1424 +msgid "No drive letters found for generating VSS snapshots.\n" +msgstr "" + +#: src/filed/job.c:1428 +#, c-format +msgid "VSS was not initialized properly. VSS support is disabled. ERR=%s\n" +msgstr "" + +#: src/filed/job.c:1478 +msgid "Append Close with SD failed.\n" +msgstr "" + +#: src/filed/job.c:1482 +#, c-format +msgid "Bad status %d returned from Storage Daemon.\n" +msgstr "" + +#: src/filed/job.c:1500 +#, c-format +msgid "VSS Writer (BackupComplete): %s\n" +msgstr "" + +#: src/filed/job.c:1528 +#, c-format +msgid "2994 Bad verify command: %s\n" +msgstr "" + +#: src/filed/job.c:1543 src/filed/job.c:1582 +#, c-format +msgid "2994 Bad verify level: %s\n" +msgstr "" + +#: src/filed/job.c:1626 +#, c-format +msgid "Bad replace command. CMD=%s\n" +msgstr "" + +#: src/filed/job.c:1644 +#, c-format +msgid "Bad where regexp. where=%s\n" +msgstr "" + +#: src/filed/job.c:1718 +msgid "Improper calling sequence.\n" +msgstr "" + +#: src/filed/job.c:1738 +#, c-format +msgid "Bad response to SD read open: %s\n" +msgstr "" + +#: src/filed/job.c:1743 +msgid "Bad response from stored to read open command\n" +msgstr "" + +#: src/filed/job.c:1807 +#, c-format +msgid "Comm error with SD. bad response to %s. ERR=%s\n" +msgstr "" + +#: src/filed/job.c:1810 +#, c-format +msgid "Bad response to %s command. Wanted %s, got %s\n" +msgstr "" + +#: src/filed/pythonfd.c:157 src/stored/pythonsd.c:162 +#, c-format +msgid "Cannot delete attribute %s" +msgstr "" + +#: src/filed/pythonfd.c:175 src/filed/pythonfd.c:191 src/stored/pythonsd.c:195 +#, c-format +msgid "Cannot find attribute %s" +msgstr "" + +#: src/filed/restore.c:133 +#, c-format +msgid "Size of data or stream of %s not correct. Original %s, restored %s.\n" +msgstr "" + +#: src/filed/restore.c:255 src/filed/verify_vol.c:99 +#, c-format +msgid "Record header scan error: %s\n" +msgstr "" + +#: src/filed/restore.c:263 src/filed/verify_vol.c:108 +#, c-format +msgid "Data record error. ERR=%s\n" +msgstr "" + +#: src/filed/restore.c:267 src/filed/verify_vol.c:112 +#, c-format +msgid "Actual data size %d not same as header %d\n" +msgstr "" + +#: src/filed/restore.c:294 src/filed/restore.c:639 +msgid "Logic error: output file should be open\n" +msgstr "" + +#: src/filed/restore.c:315 src/filed/restore.c:652 +msgid "Logic error: output file should not be open\n" +msgstr "" + +#: src/filed/restore.c:326 src/filed/verify_vol.c:151 +#: src/stored/bextract.c:302 src/stored/bls.c:383 src/stored/bscan.c:663 +#, c-format +msgid "Record header file index %ld not equal record index %ld\n" +msgstr "" + +#: src/filed/restore.c:339 src/stored/bextract.c:311 +#, c-format +msgid "%s stream not supported on this Client.\n" +msgstr "" + +#: src/filed/restore.c:391 +msgid "Unexpected cryptographic session data stream.\n" +msgstr "" + +#: src/filed/restore.c:399 +msgid "" +"No private decryption keys have been defined to decrypt encrypted backup " +"data.\n" +msgstr "" + +#: src/filed/restore.c:410 +msgid "Could not create digest.\n" +msgstr "" + +#: src/filed/restore.c:424 +msgid "Missing private key required to decrypt encrypted backup data.\n" +msgstr "" + +#: src/filed/restore.c:427 +msgid "Decrypt of the session key failed.\n" +msgstr "" + +#: src/filed/restore.c:431 +#, c-format +msgid "An error occurred while decoding encrypted session data stream: %s\n" +msgstr "" + +#: src/filed/restore.c:480 src/filed/restore.c:526 +#, c-format +msgid "Missing encryption session data stream for %s\n" +msgstr "" + +#: src/filed/restore.c:488 src/filed/restore.c:533 +#, c-format +msgid "Failed to initialize decryption context for %s\n" +msgstr "" + +#: src/filed/restore.c:545 +#, c-format +msgid " Cannot open resource fork for %s.\n" +msgstr "" + +#: src/filed/restore.c:571 +#, c-format +msgid " Invalid length of Finder Info (got %d, not 32)\n" +msgstr "" + +#: src/filed/restore.c:575 +#, c-format +msgid " Could not set Finder Info on %s\n" +msgstr "" + +#: src/filed/restore.c:588 +#, c-format +msgid "Can't restore ACL of %s\n" +msgstr "" + +#: src/filed/restore.c:600 +#, c-format +msgid "Can't restore default ACL of %s\n" +msgstr "" + +#: src/filed/restore.c:610 +msgid "Unexpected cryptographic signature data stream.\n" +msgstr "" + +#: src/filed/restore.c:616 +#, c-format +msgid "Failed to decode message signature for %s\n" +msgstr "" + +#: src/filed/restore.c:655 src/stored/bextract.c:469 +#, c-format +msgid "Unknown stream=%d ignored. This shouldn't happen!\n" +msgstr "" + +#: src/filed/restore.c:732 +#, c-format +msgid "" +"%d non-supported data streams and %d non-supported attrib streams ignored.\n" +msgstr "" + +#: src/filed/restore.c:736 +#, c-format +msgid "%d non-supported resource fork streams ignored.\n" +msgstr "" + +#: src/filed/restore.c:739 +#, c-format +msgid "%d non-supported Finder Info streams ignored.\n" +msgstr "" + +#: src/filed/restore.c:742 +#, c-format +msgid "%d non-supported acl streams ignored.\n" +msgstr "" + +#: src/filed/restore.c:745 +#, c-format +msgid "%d non-supported crypto streams ignored.\n" +msgstr "" + +#: src/filed/restore.c:757 +msgid "None" +msgstr "" + +#: src/filed/restore.c:761 +msgid "Zlib errno" +msgstr "" + +#: src/filed/restore.c:763 +msgid "Zlib stream error" +msgstr "" + +#: src/filed/restore.c:765 +msgid "Zlib data error" +msgstr "" + +#: src/filed/restore.c:767 +msgid "Zlib memory error" +msgstr "" + +#: src/filed/restore.c:769 +msgid "Zlib buffer error" +msgstr "" + +#: src/filed/restore.c:771 +msgid "Zlib version error" +msgstr "" + +#: src/filed/restore.c:773 src/lib/util.c:591 src/lib/util.c:601 +#: src/lib/util.c:609 src/lib/util.c:616 src/lib/util.c:623 src/lib/util.c:637 +#: src/lib/util.c:647 src/lib/util.c:654 src/lib/util.c:665 +msgid "*none*" +msgstr "" + +#: src/filed/restore.c:809 +#, c-format +msgid "Missing cryptographic signature for %s\n" +msgstr "" + +#: src/filed/restore.c:838 src/filed/restore.c:862 +#, c-format +msgid "Signature validation failed for file %s: ERR=%s\n" +msgstr "" + +#: src/filed/restore.c:852 +#, c-format +msgid "Digest one file failed for file: %s\n" +msgstr "" + +#: src/filed/restore.c:883 +#, c-format +msgid "Signature validation failed for %s: %s\n" +msgstr "" + +#: src/filed/restore.c:909 src/stored/bextract.c:400 +#, c-format +msgid "Seek to %s error on %s: ERR=%s\n" +msgstr "" + +#: src/filed/restore.c:936 +#, c-format +msgid "Uncompression error on file %s. ERR=%s\n" +msgstr "" + +#: src/filed/restore.c:945 src/stored/bextract.c:434 +msgid "GZIP data stream found, but GZIP not configured!\n" +msgstr "" + +#: src/filed/restore.c:968 +#, c-format +msgid "Write error in Win32 Block Decomposition on %s: %s\n" +msgstr "" + +#: src/filed/restore.c:974 src/stored/bextract.c:372 src/stored/bextract.c:422 +#, c-format +msgid "Write error on %s: %s\n" +msgstr "" + +#: src/filed/restore.c:1023 +msgid "Decryption error\n" +msgstr "" + +#: src/filed/restore.c:1113 +#, c-format +msgid "Decryption error. buf_len=%d decrypt_len=%d on file %s\n" +msgstr "" + +#: src/filed/restore.c:1217 +msgid "Open File Manager paused\n" +msgstr "" + +#: src/filed/restore.c:1221 +msgid "FAILED to pause Open File Manager\n" +msgstr "" + +#: src/filed/restore.c:1229 +#, c-format +msgid "Running as '%s'. Privmask=%#08x\n" +msgstr "" + +#: src/filed/restore.c:1231 +msgid "Failed to retrieve current UserName\n" +msgstr "" + +#: src/filed/status.c:77 +#, c-format +msgid "%s Version: %s (%s) %s %s %s %s\n" +msgstr "" + +#: src/filed/status.c:81 src/stored/status.c:86 +#, c-format +msgid "Daemon started %s, %d Job%s run since started.\n" +msgstr "" + +#: src/filed/status.c:136 +#, c-format +msgid " Sizeof: boffset_t=%d size_t=%d debug=%d trace=%d\n" +msgstr "" + +#: src/filed/status.c:155 +#, c-format +msgid "Director connected at: %s\n" +msgstr "" + +#: src/filed/status.c:157 +#, c-format +msgid "JobId %d Job %s is running.\n" +msgstr "" + +#: src/filed/status.c:160 +#, c-format +msgid " %s%s Job started: %s\n" +msgstr "" + +#: src/filed/status.c:172 +#, c-format +msgid " Files=%s Bytes=%s Bytes/sec=%s Errors=%d\n" +msgstr "" + +#: src/filed/status.c:178 +#, c-format +msgid " Files Examined=%s\n" +msgstr "" + +#: src/filed/status.c:183 +#, c-format +msgid " Processing file: %s\n" +msgstr "" + +#: src/filed/status.c:194 +msgid " SDSocket closed.\n" +msgstr "" + +#: src/filed/status.c:328 src/filed/status.c:352 src/stored/status.c:636 +#: src/stored/status.c:659 +#, c-format +msgid "Bad .status command: %s\n" +msgstr "" + +#: src/filed/status.c:329 +msgid "2900 Bad .status command, missing argument.\n" +msgstr "" + +#: src/filed/status.c:353 +msgid "2900 Bad .status command, wrong argument.\n" +msgstr "" + +#: src/filed/status.c:390 src/stored/status.c:577 +msgid "Init Catalog" +msgstr "" + +#: src/filed/status.c:393 src/stored/status.c:580 +msgid "Volume to Catalog" +msgstr "" + +#: src/filed/status.c:396 src/stored/status.c:583 +msgid "Disk to Catalog" +msgstr "" + +#: src/filed/status.c:399 src/stored/status.c:586 +msgid "Data" +msgstr "" + +#: src/filed/status.c:405 src/lib/util.c:361 src/stored/status.c:592 +msgid "Unknown Job Level" +msgstr "" + +#: src/filed/status.c:421 +msgid "Bacula Client: Idle" +msgstr "" + +#: src/filed/status.c:432 +msgid "Bacula Client: Running" +msgstr "" + +#: src/filed/status.c:446 +msgid "Bacula Client: Last Job Canceled" +msgstr "" + +#: src/filed/status.c:450 +msgid "Bacula Client: Last Job Failed" +msgstr "" + +#: src/filed/status.c:454 +msgid "Bacula Client: Last Job had Warnings" +msgstr "" + +#: src/filed/verify.c:53 +#, c-format +msgid "Cannot malloc %d network read buffer\n" +msgstr "" + +#: src/filed/verify.c:146 +#, c-format +msgid " Archive file skipped: %s\n" +msgstr "" + +#: src/filed/verify.c:149 +#, c-format +msgid " Recursion turned off. Directory skipped: %s\n" +msgstr "" + +#: src/filed/verify.c:153 +#, c-format +msgid " File system change prohibited. Directory skipped: %s\n" +msgstr "" + +#: src/filed/verify.c:163 +#, c-format +msgid " Unknown file type %d: %s\n" +msgstr "" + +#: src/filed/verify.c:206 src/filed/verify_vol.c:209 +#, c-format +msgid "Network error in send to Director: ERR=%s\n" +msgstr "" + +#: src/filed/verify.c:352 +#, c-format +msgid "Error reading file %s: ERR=%s\n" +msgstr "" + +#: src/filed/verify_vol.c:65 +msgid "Storage command not issued before Verify.\n" +msgstr "" + +#: src/filed/verify_vol.c:145 +#, c-format +msgid "Error scanning record header: %s\n" +msgstr "" + +#: src/findlib/attribs.c:408 +#, c-format +msgid "File size of restored file %s not correct. Original %s, restored %s.\n" +msgstr "" + +#: src/findlib/attribs.c:434 src/findlib/attribs.c:441 +#, c-format +msgid "Unable to set file owner %s: ERR=%s\n" +msgstr "" + +#: src/findlib/attribs.c:447 +#, c-format +msgid "Unable to set file modes %s: ERR=%s\n" +msgstr "" + +#: src/findlib/attribs.c:457 +#, c-format +msgid "Unable to set file times %s: ERR=%s\n" +msgstr "" + +#: src/findlib/attribs.c:471 +#, c-format +msgid "Unable to set file flags %s: ERR=%s\n" +msgstr "" + +#: src/findlib/attribs.c:714 +#, c-format +msgid "Error in %s file %s: ERR=%s\n" +msgstr "" + +#: src/findlib/attribs.c:731 +#, c-format +msgid "Error in %s: ERR=%s\n" +msgstr "" + +#: src/findlib/bfile.c:82 +msgid "Unix attributes" +msgstr "" + +#: src/findlib/bfile.c:84 +msgid "File data" +msgstr "" + +#: src/findlib/bfile.c:86 +msgid "MD5 digest" +msgstr "" + +#: src/findlib/bfile.c:88 +msgid "GZIP data" +msgstr "" + +#: src/findlib/bfile.c:90 +msgid "Extended attributes" +msgstr "" + +#: src/findlib/bfile.c:92 +msgid "Sparse data" +msgstr "" + +#: src/findlib/bfile.c:94 +msgid "GZIP sparse data" +msgstr "" + +#: src/findlib/bfile.c:96 +msgid "Program names" +msgstr "" + +#: src/findlib/bfile.c:98 +msgid "Program data" +msgstr "" + +#: src/findlib/bfile.c:100 +msgid "SHA1 digest" +msgstr "" + +#: src/findlib/bfile.c:102 +msgid "Win32 data" +msgstr "" + +#: src/findlib/bfile.c:104 +msgid "Win32 GZIP data" +msgstr "" + +#: src/findlib/bfile.c:106 +msgid "MacOS Fork data" +msgstr "" + +#: src/findlib/bfile.c:108 +msgid "HFS+ attribs" +msgstr "" + +#: src/findlib/bfile.c:110 +msgid "Standard Unix ACL attribs" +msgstr "" + +#: src/findlib/bfile.c:112 +msgid "Default Unix ACL attribs" +msgstr "" + +#: src/findlib/bfile.c:114 +msgid "SHA256 digest" +msgstr "" + +#: src/findlib/bfile.c:116 +msgid "SHA512 digest" +msgstr "" + +#: src/findlib/bfile.c:118 +msgid "Signed digest" +msgstr "" + +#: src/findlib/bfile.c:120 +msgid "Encrypted File data" +msgstr "" + +#: src/findlib/bfile.c:122 +msgid "Encrypted Win32 data" +msgstr "" + +#: src/findlib/bfile.c:124 +msgid "Encrypted session data" +msgstr "" + +#: src/findlib/bfile.c:126 +msgid "Encrypted GZIP data" +msgstr "" + +#: src/findlib/bfile.c:128 +msgid "Encrypted Win32 GZIP data" +msgstr "" + +#: src/findlib/bfile.c:130 +msgid "Encrypted MacOS fork data" +msgstr "" + +#: src/findlib/create_file.c:123 +#, c-format +msgid "File skipped. Not newer: %s\n" +msgstr "" + +#: src/findlib/create_file.c:130 +#, c-format +msgid "File skipped. Not older: %s\n" +msgstr "" + +#: src/findlib/create_file.c:136 +#, c-format +msgid "File skipped. Already exists: %s\n" +msgstr "" + +#: src/findlib/create_file.c:162 +#, c-format +msgid "File %s already exists and could not be replaced. ERR=%s.\n" +msgstr "" + +#: src/findlib/create_file.c:214 src/findlib/create_file.c:277 +#: src/findlib/create_file.c:370 +#, c-format +msgid "bpkt already open fid=%d\n" +msgstr "" + +#: src/findlib/create_file.c:222 +#, c-format +msgid "Could not create %s: ERR=%s\n" +msgstr "" + +#: src/findlib/create_file.c:236 +#, c-format +msgid "Cannot make fifo %s: ERR=%s\n" +msgstr "" + +#: src/findlib/create_file.c:254 +#, c-format +msgid "Cannot make node %s: ERR=%s\n" +msgstr "" + +#: src/findlib/create_file.c:299 +#, c-format +msgid "Could not symlink %s -> %s: ERR=%s\n" +msgstr "" + +#: src/findlib/create_file.c:324 src/findlib/create_file.c:335 +#, c-format +msgid "Could not restore file flags for file %s: ERR=%s\n" +msgstr "" + +#: src/findlib/create_file.c:328 src/findlib/create_file.c:343 +#, c-format +msgid "Could not hard link %s -> %s: ERR=%s\n" +msgstr "" + +#: src/findlib/create_file.c:339 +#, c-format +msgid "Could not reset file flags for file %s: ERR=%s\n" +msgstr "" + +#: src/findlib/create_file.c:402 +#, c-format +msgid "Original file %s not saved: type=%d\n" +msgstr "" + +#: src/findlib/create_file.c:405 +#, c-format +msgid "Unknown file type %d; not restored: %s\n" +msgstr "" + +#: src/findlib/create_file.c:449 +#, c-format +msgid "Zero length filename: %s\n" +msgstr "" + +#: src/findlib/enable_priv.c:92 +msgid "AdjustTokenPrivileges set " +msgstr "" + +#: src/findlib/find_one.c:228 +#, c-format +msgid "Cannot stat file %s: ERR=%s\n" +msgstr "" + +#: src/findlib/find_one.c:234 +#, c-format +msgid "%s mtime changed during backup.\n" +msgstr "" + +#: src/findlib/find_one.c:240 +#, c-format +msgid "%s ctime changed during backup.\n" +msgstr "" + +#: src/findlib/find_one.c:246 src/findlib/find_one.c:253 +#, c-format +msgid "%s size changed during backup.\n" +msgstr "" + +#: src/findlib/find_one.c:310 +#, c-format +msgid "Top level directory \"%s\" has unlisted fstype \"%s\"\n" +msgstr "" + +#: src/findlib/find_one.c:325 +#, c-format +msgid "Top level directory \"%s\" has an unlisted drive type \"%s\"\n" +msgstr "" + +#: src/findlib/makepath.c:116 +#, c-format +msgid "Cannot create directory %s: ERR=%s\n" +msgstr "" + +#: src/findlib/makepath.c:120 src/findlib/makepath.c:398 +#, c-format +msgid "%s exists but is not a directory\n" +msgstr "" + +#: src/findlib/makepath.c:229 +#, c-format +msgid "%c: is not a valid drive\n" +msgstr "" + +#: src/findlib/makepath.c:296 src/findlib/makepath.c:357 +#: src/findlib/makepath.c:417 +#, c-format +msgid "Cannot change owner and/or group of %s: ERR=%s\n" +msgstr "" + +#: src/findlib/makepath.c:317 +#, c-format +msgid "Cannot chdir to directory, %s: ERR=%s\n" +msgstr "" + +#: src/findlib/makepath.c:372 src/findlib/makepath.c:388 +#: src/findlib/makepath.c:422 +#, c-format +msgid "Cannot change permissions of %s: ERR=%s\n" +msgstr "" + +#: src/findlib/save-cwd.c:48 +#, c-format +msgid "Cannot open current directory: %s\n" +msgstr "" + +#: src/findlib/save-cwd.c:62 +#, c-format +msgid "Current directory: %s\n" +msgstr "" + +#: src/findlib/save-cwd.c:84 +#, c-format +msgid "Cannot get current directory: %s\n" +msgstr "" + +#: src/findlib/save-cwd.c:105 +#, c-format +msgid "Cannot return to %s from %s: %s\n" +msgstr "" + +#: src/findlib/save-cwd.c:109 +#, c-format +msgid "Cannot return to saved working directory from %s: %s\n" +msgstr "" + +#: src/findlib/save-cwd.c:115 +#, c-format +msgid "Cannot return to %s: %s\n" +msgstr "" + +#: src/findlib/save-cwd.c:119 +#, c-format +msgid "Cannot return to saved working directory: %s\n" +msgstr "" + +#: src/gnome2-console/authenticate.c:87 +#, c-format +msgid "%s: Director authorization problem.\n" +msgstr "" + +#: src/gnome2-console/authenticate.c:88 +msgid "Director authorization problem.\n" +msgstr "" + +#: src/gnome2-console/authenticate.c:90 +msgid "" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" + +#: src/gnome2-console/authenticate.c:100 +#, c-format +msgid "%s: Bad response to Hello command: ERR=%s\n" +msgstr "" + +#: src/gnome2-console/authenticate.c:102 +msgid "The Director is probably not running.\n" +msgstr "" + +#: src/gnome2-console/console.c:102 +#, c-format +msgid "" +"\n" +"Version: %s (%s) %s %s %s\n" +"\n" +"Usage: bgnome-console [-s] [-c config_file] [-d debug_level] [config_file]\n" +" -c set configuration file to file\n" +" -dnn set debug level to nn\n" +" -s no signals\n" +" -t test - read configuration and exit\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/gnome2-console/console.c:234 +#, c-format +msgid "Pthread cond init error = %s\n" +msgstr "" + +#: src/gnome2-console/console.c:379 +msgid " Not Connected" +msgstr "" + +#: src/gnome2-console/console.c:500 +#, c-format +msgid " Connecting to Director %s:%d" +msgstr "" + +#: src/gnome2-console/console.c:501 +#, c-format +msgid "" +"Connecting to Director %s:%d\n" +"\n" +msgstr "" + +#: src/gnome2-console/console.c:516 src/wx-console/console_thread.cpp:381 +#, c-format +msgid "Passphrase for Console \"%s\" TLS private key: " +msgstr "" + +#: src/gnome2-console/console.c:538 src/wx-console/console_thread.cpp:402 +#, c-format +msgid "Passphrase for Director \"%s\" TLS private key: " +msgstr "" + +#: src/gnome2-console/console.c:557 src/tray-monitor/tray-monitor.c:907 +#: src/wx-console/console_thread.cpp:420 +msgid "Director daemon" +msgstr "" + +#: src/gnome2-console/console.c:569 +msgid " Initializing ..." +msgstr "" + +#: src/gnome2-console/console.c:605 +msgid " Connected" +msgstr "" + +#: src/gnome2-console/console.c:613 +msgid " Processing command ..." +msgstr "" + +#: src/gnome2-console/console.c:648 +msgid " At prompt waiting for input ..." +msgstr "" + +#: src/gnome2-console/console.c:768 +msgid " Ready" +msgstr "" + +#: src/gnome2-console/console_conf.c:147 +#, c-format +msgid "Console: name=%s\n" +msgstr "" + +#: src/gnome2-console/console_conf.c:150 src/tray-monitor/tray_conf.c:195 +#, c-format +msgid "ConsoleFont: name=%s font face=%s\n" +msgstr "" + +#: src/gnome2-console/interface.c:202 +msgid "Bacula Console" +msgstr "" + +#: src/gnome2-console/interface.c:235 src/wx-console/wxbmainframe.cpp:248 +#: src/wx-console/wxbmainframe.cpp:619 +msgid "Connect" +msgstr "" + +#: src/gnome2-console/interface.c:238 +msgid "Connect to Director" +msgstr "" + +#: src/gnome2-console/interface.c:242 +msgid "Run" +msgstr "" + +#: src/gnome2-console/interface.c:245 src/gnome2-console/interface.c:682 +#: src/gnome2-console/interface.c:696 +msgid "Run a Job" +msgstr "" + +#: src/gnome2-console/interface.c:249 +msgid "Dir Status" +msgstr "" + +#: src/gnome2-console/interface.c:255 src/lib/util.c:293 +#: src/wx-console/wxbrestorepanel.cpp:404 +#: src/wx-console/wxbrestorepanel.cpp:1974 +msgid "Restore" +msgstr "" + +#: src/gnome2-console/interface.c:261 +msgid "Label" +msgstr "" + +#: src/gnome2-console/interface.c:267 +msgid "Msgs" +msgstr "" + +#: src/gnome2-console/interface.c:270 +msgid "Display Messages" +msgstr "" + +#: src/gnome2-console/interface.c:294 +msgid " Command: " +msgstr "" + +#: src/gnome2-console/interface.c:303 +msgid "Enter Commands Here" +msgstr "" + +#: src/gnome2-console/interface.c:314 +msgid " Status: " +msgstr "" + +#: src/gnome2-console/interface.c:323 src/gnome2-console/interface.c:1709 +msgid " " +msgstr "" + +#: src/gnome2-console/interface.c:424 +msgid "About Bacula Console" +msgstr "" + +#: src/gnome2-console/interface.c:439 +msgid "Bacula Console\n" +msgstr "" + +#: src/gnome2-console/interface.c:448 +msgid "Copyright (c) 2000 - 2004, Kern Sibbald and John Walker" +msgstr "" + +#: src/gnome2-console/interface.c:453 +msgid "Authors: Kern Sibbald and John Walker" +msgstr "" + +#: src/gnome2-console/interface.c:458 +msgid "It comes by night and sucks the essence from your computers" +msgstr "" + +#: src/gnome2-console/interface.c:523 src/gnome2-console/interface.c:540 +msgid "Select Director" +msgstr "" + +#: src/gnome2-console/interface.c:570 +msgid " " +msgstr "" + +#: src/gnome2-console/interface.c:715 src/gnome2-console/interface.c:1631 +msgid "Job:" +msgstr "" + +#: src/gnome2-console/interface.c:736 +msgid " Type:" +msgstr "" + +#: src/gnome2-console/interface.c:756 src/gnome2-console/interface.c:785 +#: src/gnome2-console/interface.c:1284 src/gnome2-console/interface.c:1680 +msgid " " +msgstr "" + +#: src/gnome2-console/interface.c:765 src/gnome2-console/interface.c:1660 +#: src/wx-console/wxbrestorepanel.cpp:1886 +msgid "Client:" +msgstr "" + +#: src/gnome2-console/interface.c:795 src/gnome2-console/interface.c:1689 +msgid "FileSet: " +msgstr "" + +#: src/gnome2-console/interface.c:820 src/wx-console/wxbrestorepanel.cpp:1893 +msgid "Priority:" +msgstr "" + +#: src/gnome2-console/interface.c:836 +msgid "Level:" +msgstr "" + +#: src/gnome2-console/interface.c:857 +msgid " " +msgstr "" + +#: src/gnome2-console/interface.c:867 src/gnome2-console/interface.c:1433 +#: src/gnome2-console/interface.c:1718 +msgid "Pool:" +msgstr "" + +#: src/gnome2-console/interface.c:888 src/gnome2-console/interface.c:919 +#: src/gnome2-console/interface.c:949 src/gnome2-console/interface.c:969 +#: src/gnome2-console/interface.c:989 src/gnome2-console/interface.c:1009 +#: src/gnome2-console/interface.c:1014 src/gnome2-console/interface.c:1483 +#: src/gnome2-console/interface.c:1739 src/gnome2-console/interface.c:1769 +#: src/gnome2-console/interface.c:1788 src/gnome2-console/interface.c:1793 +msgid " " +msgstr "" + +#: src/gnome2-console/interface.c:898 src/gnome2-console/interface.c:1407 +#: src/gnome2-console/interface.c:1748 src/wx-console/wxbrestorepanel.cpp:1888 +msgid "Storage:" +msgstr "" + +#: src/gnome2-console/interface.c:929 +msgid "Messages:" +msgstr "" + +#: src/gnome2-console/interface.c:959 +msgid "Where: " +msgstr "" + +#: src/gnome2-console/interface.c:979 src/wx-console/wxbrestorepanel.cpp:1890 +msgid "When:" +msgstr "" + +#: src/gnome2-console/interface.c:999 src/wx-console/wxbrestorepanel.cpp:1871 +msgid "Bootstrap:" +msgstr "" + +#: src/gnome2-console/interface.c:1194 +msgid "Restore File Selection" +msgstr "" + +#: src/gnome2-console/interface.c:1238 +msgid "Current dir:" +msgstr "" + +#: src/gnome2-console/interface.c:1265 +msgid "Files Selected: " +msgstr "" + +#: src/gnome2-console/interface.c:1385 src/gnome2-console/interface.c:1396 +msgid "Label a Volume" +msgstr "" + +#: src/gnome2-console/interface.c:1458 +msgid "Volume Name:" +msgstr "" + +#: src/gnome2-console/interface.c:1472 +msgid "Slot:" +msgstr "" + +#: src/gnome2-console/interface.c:1598 +msgid "Restore Files Dialog" +msgstr "" + +#: src/gnome2-console/interface.c:1613 +msgid "Restore Files" +msgstr "" + +#: src/gnome2-console/interface.c:1778 +msgid "Before:" +msgstr "" + +#: src/gnome2-console/interface.c:1824 +msgid "Select Files" +msgstr "" + +#: src/gnome2-console/interface.c:1907 +msgid "Progress" +msgstr "" + +#: src/gnome2-console/restore.c:149 +msgid "Mark" +msgstr "" + +#: src/gnome2-console/restore.c:149 +msgid "File" +msgstr "" + +#: src/gnome2-console/restore.c:149 +msgid "Mode" +msgstr "" + +#: src/gnome2-console/restore.c:149 src/wx-console/wxbrestorepanel.cpp:306 +msgid "User" +msgstr "" + +#: src/gnome2-console/restore.c:149 src/wx-console/wxbrestorepanel.cpp:310 +msgid "Group" +msgstr "" + +#: src/gnome2-console/restore.c:149 src/wx-console/wxbrestorepanel.cpp:294 +msgid "Size" +msgstr "" + +#: src/gnome2-console/restore.c:149 src/wx-console/wxbrestorepanel.cpp:298 +msgid "Date" +msgstr "" + +#: src/gnome2-console/support.c:60 src/gnome2-console/support.c:85 +#, c-format +msgid "Couldn't find pixmap file: %s" +msgstr "" + +#: src/lib/address_conf.c:63 +#, c-format +msgid "Only ipv4 and ipv6 are supported (%d)\n" +msgstr "" + +#: src/lib/address_conf.c:67 +#, c-format +msgid "Only ipv4 is supported (%d)\n" +msgstr "" + +#: src/lib/address_conf.c:176 +#, c-format +msgid "It was tried to assign a ipv6 address to a ipv4(%d)\n" +msgstr "" + +#: src/lib/address_conf.c:185 +#, c-format +msgid "It was tried to assign a ipv4 address to a ipv6(%d)\n" +msgstr "" + +#: src/lib/address_conf.c:264 +#, c-format +msgid "Can't add default address (%s)\n" +msgstr "" + +#: src/lib/address_conf.c:293 +msgid "the old style addresses cannot be mixed with new style" +msgstr "" + +#: src/lib/address_conf.c:314 +#, c-format +msgid "can't resolve service(%s)" +msgstr "" + +#: src/lib/address_conf.c:323 +#, c-format +msgid "can't resolve hostname(%s) %s" +msgstr "" + +#: src/lib/address_conf.c:413 src/lib/address_conf.c:444 +#, c-format +msgid "Expected a block begin { , got: %s" +msgstr "" + +#: src/lib/address_conf.c:418 +msgid "Empty addr block is not allowed" +msgstr "" + +#: src/lib/address_conf.c:422 +#, c-format +msgid "Expected a string, got: %s" +msgstr "" + +#: src/lib/address_conf.c:431 +#, c-format +msgid "Expected a string [ip|ipv4|ipv6], got: %s" +msgstr "" + +#: src/lib/address_conf.c:435 +#, c-format +msgid "Expected a string [ip|ipv4], got: %s" +msgstr "" + +#: src/lib/address_conf.c:440 src/lib/address_conf.c:470 +#, c-format +msgid "Expected a equal =, got: %s" +msgstr "" + +#: src/lib/address_conf.c:451 src/lib/address_conf.c:466 +#, c-format +msgid "Expected a identifier [addr|port], got: %s" +msgstr "" + +#: src/lib/address_conf.c:456 +msgid "Only one port per address block" +msgstr "" + +#: src/lib/address_conf.c:462 +msgid "Only one addr per address block" +msgstr "" + +#: src/lib/address_conf.c:478 +#, c-format +msgid "Expected a number or a string, got: %s" +msgstr "" + +#: src/lib/address_conf.c:484 src/lib/address_conf.c:517 +#, c-format +msgid "Expected an IP number or a hostname, got: %s" +msgstr "" + +#: src/lib/address_conf.c:490 +msgid "State machine missmatch" +msgstr "" + +#: src/lib/address_conf.c:496 src/lib/address_conf.c:508 +#, c-format +msgid "Expected a end of block }, got: %s" +msgstr "" + +#: src/lib/address_conf.c:502 +#, c-format +msgid "Can't add hostname(%s) and port(%s) to addrlist (%s)" +msgstr "" + +#: src/lib/address_conf.c:522 src/lib/address_conf.c:536 +#, c-format +msgid "can't add port (%s) to (%s)" +msgstr "" + +#: src/lib/address_conf.c:531 +#, c-format +msgid "Expected a port number or string, got: %s" +msgstr "" + +#: src/lib/attr.c:76 +#, c-format +msgid "Error scanning attributes: %s\n" +msgstr "" + +#: src/lib/berrno.c:62 +msgid "Child exited normally." +msgstr "" + +#: src/lib/berrno.c:69 +msgid "Unknown error during program execvp" +msgstr "" + +#: src/lib/berrno.c:72 +#, c-format +msgid "Child exited with code %d" +msgstr "" + +#: src/lib/berrno.c:80 +#, c-format +msgid "Child died from signal %d: %s" +msgstr "" + +#: src/lib/berrno.c:86 +msgid "Invalid errno. No error message possible." +msgstr "" + +#: src/lib/bget_msg.c:99 +msgid "Status OK\n" +msgstr "" + +#: src/lib/bget_msg.c:103 +#, c-format +msgid "bget_msg: unknown signal %d\n" +msgstr "" + +#: src/lib/bnet.c:118 +#, c-format +msgid "Attr spool write error. ERR=%s\n" +msgstr "" + +#: src/lib/bnet.c:244 src/lib/bnet.c:283 +msgid "TLS connection initialization failed.\n" +msgstr "" + +#: src/lib/bnet.c:252 +msgid "TLS Negotiation failed.\n" +msgstr "" + +#: src/lib/bnet.c:258 src/lib/bnet.c:298 +msgid "" +"TLS certificate verification failed. Peer certificate did not match a " +"required commonName\n" +msgstr "" + +#: src/lib/bnet.c:305 +#, c-format +msgid "" +"TLS host certificate verification failed. Host %s did not match presented " +"certificate\n" +msgstr "" + +#: src/lib/bnet.c:322 +msgid "TLS enabled but not configured.\n" +msgstr "" + +#: src/lib/bnet.c:328 +msgid "TLS enable but not configured.\n" +msgstr "" + +#: src/lib/bnet.c:386 +msgid "No problem." +msgstr "" + +#: src/lib/bnet.c:389 +msgid "Authoritative answer for host not found." +msgstr "" + +#: src/lib/bnet.c:392 +msgid "Non-authoritative for host not found, or ServerFail." +msgstr "" + +#: src/lib/bnet.c:395 +msgid "Non-recoverable errors, FORMERR, REFUSED, or NOTIMP." +msgstr "" + +#: src/lib/bnet.c:398 +msgid "Valid name, no data record of resquested type." +msgstr "" + +#: src/lib/bnet.c:401 +msgid "Unknown error." +msgstr "" + +#: src/lib/bnet.c:655 +#, c-format +msgid "Unknown sig %d" +msgstr "" + +#: src/lib/bnet_server.c:109 +#, c-format +msgid "Cannot open stream socket. ERR=%s. Current %s All %s\n" +msgstr "" + +#: src/lib/bnet_server.c:122 src/lib/bnet_server.c:275 +#, c-format +msgid "Cannot set SO_REUSEADDR on socket: %s\n" +msgstr "" + +#: src/lib/bnet_server.c:131 +#, c-format +msgid "Cannot bind port %d: ERR=%s: Retrying ...\n" +msgstr "" + +#: src/lib/bnet_server.c:136 +#, c-format +msgid "Cannot bind port %d: ERR=%s.\n" +msgstr "" + +#: src/lib/bnet_server.c:147 +#, c-format +msgid "Could not init client queue: ERR=%s\n" +msgstr "" + +#: src/lib/bnet_server.c:166 src/lib/bnet_server.c:338 +#, c-format +msgid "Error in select: %s\n" +msgstr "" + +#: src/lib/bnet_server.c:187 src/lib/bnet_server.c:357 +#, c-format +msgid "Connection from %s:%d refused by hosts.access\n" +msgstr "" + +#: src/lib/bnet_server.c:202 src/lib/bnet_server.c:370 +#, c-format +msgid "Cannot set SO_KEEPALIVE on socket: %s\n" +msgstr "" + +#: src/lib/bnet_server.c:213 +msgid "Could not create client BSOCK.\n" +msgstr "" + +#: src/lib/bnet_server.c:220 +#, c-format +msgid "Could not add job to client queue: ERR=%s\n" +msgstr "" + +#: src/lib/bnet_server.c:237 +#, c-format +msgid "Could not destroy client queue: ERR=%s\n" +msgstr "" + +#: src/lib/bnet_server.c:265 +#, c-format +msgid "Cannot open stream socket: %s\n" +msgstr "" + +#: src/lib/bnet_server.c:295 +#, c-format +msgid "Cannot bind port %d: ERR=%s: retrying ...\n" +msgstr "" + +#: src/lib/bnet_server.c:301 +msgid "Server socket" +msgstr "" + +#: src/lib/bnet_server.c:301 src/lib/bnet_server.c:398 +msgid "client" +msgstr "" + +#: src/lib/bnet_server.c:386 +#, c-format +msgid "Socket accept error for %s. ERR=%s\n" +msgstr "" + +#: src/lib/bpipe.c:362 src/lib/bpipe.c:452 +msgid "Program killed by Bacula watchdog (timeout)\n" +msgstr "" + +#: src/lib/bsys.c:208 src/lib/bsys.c:225 src/lib/bsys.c:249 src/lib/bsys.c:262 +#, c-format +msgid "Out of memory: ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:304 +msgid "Buffer overflow.\n" +msgstr "" + +#: src/lib/bsys.c:370 +msgid "Bad errno" +msgstr "" + +#: src/lib/bsys.c:387 +msgid "Possible mutex deadlock.\n" +msgstr "" + +#: src/lib/bsys.c:391 src/lib/bsys.c:424 +#, c-format +msgid "Mutex lock failure. ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:394 +msgid "Possible mutex deadlock resolved.\n" +msgstr "" + +#: src/lib/bsys.c:407 +#, c-format +msgid "Mutex unlock not locked. ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:412 src/lib/bsys.c:434 +#, c-format +msgid "Mutex unlock failure. ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:448 +#, c-format +msgid "Memset for %d bytes at %s:%d\n" +msgstr "" + +#: src/lib/bsys.c:478 +#, c-format +msgid "Cannot open pid file. %s ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:493 +#, c-format +msgid "" +"%s is already running. pid=%d\n" +"Check file %s\n" +msgstr "" + +#: src/lib/bsys.c:507 +#, c-format +msgid "Could not open pid file. %s ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:615 +#, c-format +msgid "Could not create state file. %s ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:634 +#, c-format +msgid "Write final hdr error: ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:670 +#, c-format +msgid "Could not find userid=%s: ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:676 +#, c-format +msgid "Could not find password entry. ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:689 +#, c-format +msgid "Could not find group=%s: ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:697 +#, c-format +msgid "Could not initgroups for group=%s, userid=%s: ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:700 +#, c-format +msgid "Could not initgroups for userid=%s: ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:707 +#, c-format +msgid "Could not set group=%s: ERR=%s\n" +msgstr "" + +#: src/lib/bsys.c:713 +#, c-format +msgid "Could not set specified userid: %s\n" +msgstr "" + +#: src/lib/btimers.c:254 +msgid "stop_btimer called with NULL btimer_id\n" +msgstr "" + +#: src/lib/cram-md5.c:109 src/lib/cram-md5.c:137 +msgid "1999 Authorization failed.\n" +msgstr "" + +#: src/lib/crypto.c:435 +msgid "Unable to open certificate file" +msgstr "" + +#: src/lib/crypto.c:442 +msgid "Unable to read certificate from file" +msgstr "" + +#: src/lib/crypto.c:448 +msgid "Unable to extract public key from certificate" +msgstr "" + +#: src/lib/crypto.c:455 +msgid "" +"Provided certificate does not include the required subjectKeyIdentifier " +"extension." +msgstr "" + +#: src/lib/crypto.c:462 +#, c-format +msgid "Unsupported key type provided: %d\n" +msgstr "" + +#: src/lib/crypto.c:499 src/lib/crypto.c:547 +msgid "Unable to open private key file" +msgstr "" + +#: src/lib/crypto.c:529 src/lib/crypto.c:563 +msgid "Unable to read private key from file" +msgstr "" + +#: src/lib/crypto.c:622 +#, c-format +msgid "Unsupported digest type: %d\n" +msgstr "" + +#: src/lib/crypto.c:636 +msgid "OpenSSL digest initialization failed" +msgstr "" + +#: src/lib/crypto.c:650 +msgid "OpenSSL digest update failed" +msgstr "" + +#: src/lib/crypto.c:668 +msgid "OpenSSL digest finalize failed" +msgstr "" + +#: src/lib/crypto.c:766 +msgid "OpenSSL digest_new failed" +msgstr "" + +#: src/lib/crypto.c:772 +msgid "OpenSSL sign get digest failed" +msgstr "" + +#: src/lib/crypto.c:811 src/lib/crypto.c:815 +msgid "OpenSSL digest Verify final failed" +msgstr "" + +#: src/lib/crypto.c:820 +msgid "No signers found for crypto verify.\n" +msgstr "" + +#: src/lib/crypto.c:881 +msgid "Signature creation failed" +msgstr "" + +#: src/lib/crypto.c:959 +msgid "Signature decoding failed" +msgstr "" + +#: src/lib/crypto.c:1036 +msgid "Unsupported cipher type specified\n" +msgstr "" + +#: src/lib/crypto.c:1185 +msgid "CryptoData decoding failed" +msgstr "" + +#: src/lib/crypto.c:1229 +msgid "Failure decrypting the session key" +msgstr "" + +#: src/lib/crypto.c:1280 +#, c-format +msgid "Unsupported contentEncryptionAlgorithm: %d\n" +msgstr "" + +#: src/lib/crypto.c:1290 src/lib/crypto.c:1296 +msgid "OpenSSL cipher context initialization failed" +msgstr "" + +#: src/lib/crypto.c:1303 +msgid "Encryption session provided an invalid symmetric key" +msgstr "" + +#: src/lib/crypto.c:1309 +msgid "Encryption session provided an invalid IV" +msgstr "" + +#: src/lib/crypto.c:1315 +msgid "OpenSSL cipher context key/IV initialization failed" +msgstr "" + +#: src/lib/crypto.c:1385 +#, c-format +msgid "Unable to init OpenSSL threading: ERR=%s\n" +msgstr "" + +#: src/lib/crypto.c:1398 +msgid "Failed to seed OpenSSL PRNG\n" +msgstr "" + +#: src/lib/crypto.c:1424 +msgid "Failed to save OpenSSL PRNG\n" +msgstr "" + +#: src/lib/crypto.c:1485 +#, c-format +msgid "Unsupported digest type=%d specified\n" +msgstr "" + +#: src/lib/crypto.c:1505 +#, c-format +msgid "SHA1Update() returned an error: %d\n" +msgstr "" + +#: src/lib/crypto.c:1648 +msgid "No error" +msgstr "" + +#: src/lib/crypto.c:1650 +msgid "Signer not found" +msgstr "" + +#: src/lib/crypto.c:1652 +msgid "Recipient not found" +msgstr "" + +#: src/lib/crypto.c:1654 +msgid "Unsupported digest algorithm" +msgstr "" + +#: src/lib/crypto.c:1656 +msgid "Unsupported encryption algorithm" +msgstr "" + +#: src/lib/crypto.c:1658 +msgid "Signature is invalid" +msgstr "" + +#: src/lib/crypto.c:1660 +msgid "Decryption error" +msgstr "" + +#: src/lib/crypto.c:1663 +msgid "Internal error" +msgstr "" + +#: src/lib/crypto.c:1665 +msgid "Unknown error" +msgstr "" + +#: src/lib/daemon.c:66 +#, c-format +msgid "Cannot fork to become daemon: %s\n" +msgstr "" + +#: src/lib/edit.c:446 +#, c-format +msgid "Illegal character \"%c\" in name.\n" +msgstr "" + +#: src/lib/edit.c:453 +msgid "Name too long.\n" +msgstr "" + +#: src/lib/jcr.c:297 +msgid "NULL jcr.\n" +msgstr "" + +#: src/lib/jcr.c:430 +#, c-format +msgid "JCR use_count=%d JobId=%d\n" +msgstr "" + +#: src/lib/jcr.c:762 +#, c-format +msgid "" +"Watchdog sending kill after %d secs to thread stalled reading Storage " +"daemon.\n" +msgstr "" + +#: src/lib/jcr.c:774 +#, c-format +msgid "" +"Watchdog sending kill after %d secs to thread stalled reading File daemon.\n" +msgstr "" + +#: src/lib/jcr.c:786 +#, c-format +msgid "" +"Watchdog sending kill after %d secs to thread stalled reading Director.\n" +msgstr "" + +#: src/lib/lex.c:93 src/wx-console/console_thread.cpp:208 +#, c-format +msgid "Problem probably begins at line %d.\n" +msgstr "" + +#: src/lib/lex.c:98 src/wx-console/console_thread.cpp:213 +#, c-format +msgid "" +"Config error: %s\n" +" : line %d, col %d of file %s\n" +"%s\n" +"%s" +msgstr "" + +#: src/lib/lex.c:102 +#, c-format +msgid "Config error: %s\n" +msgstr "" + +#: src/lib/lex.c:131 +msgid "Close of NULL file\n" +msgstr "" + +#: src/lib/lex.c:226 +msgid "get_char: called after EOF\n" +msgstr "" + +#: src/lib/lex.c:268 +#, c-format +msgid "Config token too long, file: %s, line %d, begins at line %d\n" +msgstr "" + +#: src/lib/lex.c:292 +msgid "none" +msgstr "" + +#: src/lib/lex.c:293 +msgid "comment" +msgstr "" + +#: src/lib/lex.c:294 +msgid "number" +msgstr "" + +#: src/lib/lex.c:295 +msgid "ip_addr" +msgstr "" + +#: src/lib/lex.c:296 +msgid "identifier" +msgstr "" + +#: src/lib/lex.c:297 +msgid "string" +msgstr "" + +#: src/lib/lex.c:298 +msgid "quoted_string" +msgstr "" + +#: src/lib/lex.c:299 +msgid "UTF-8 Byte Order Mark" +msgstr "" + +#: src/lib/lex.c:300 +msgid "UTF-16le Byte Order Mark" +msgstr "" + +#: src/lib/lex.c:338 src/lib/lex.c:344 +#, c-format +msgid "expected a positive integer number, got: %s" +msgstr "" + +#: src/lib/lex.c:454 +msgid "" +"This config file appears to be in an unsupported Unicode format (UTF-16be). " +"Please resave as UTF-8\n" +msgstr "" + +#: src/lib/lex.c:583 +#, c-format +msgid "Cannot open included config file %s: %s\n" +msgstr "" + +#: src/lib/lex.c:642 +#, c-format +msgid "expected an integer or a range, got %s: %s" +msgstr "" + +#: src/lib/lex.c:656 src/lib/lex.c:664 src/lib/lex.c:675 src/lib/lex.c:683 +#, c-format +msgid "expected an integer number, got %s: %s" +msgstr "" + +#: src/lib/lex.c:693 +#, c-format +msgid "expected a name, got %s: %s" +msgstr "" + +#: src/lib/lex.c:697 +#, c-format +msgid "name %s length %d too long, max is %d\n" +msgstr "" + +#: src/lib/lex.c:705 +#, c-format +msgid "expected a string, got %s: %s" +msgstr "" + +#: src/lib/mem_pool.c:108 +#, c-format +msgid "MemPool index %d larger than max %d\n" +msgstr "" + +#: src/lib/mem_pool.c:126 src/lib/mem_pool.c:146 src/lib/mem_pool.c:181 +#: src/lib/mem_pool.c:253 src/lib/mem_pool.c:273 src/lib/mem_pool.c:311 +#: src/lib/mem_pool.c:583 +#, c-format +msgid "Out of memory requesting %d bytes\n" +msgstr "" + +#: src/lib/message.c:268 src/lib/message.c:278 +#, c-format +msgid "Could not open console message file %s: ERR=%s\n" +msgstr "" + +#: src/lib/message.c:283 +#, c-format +msgid "Could not get con mutex: ERR=%s\n" +msgstr "" + +#: src/lib/message.c:387 +#, c-format +msgid "open mail pipe %s failed: ERR=%s\n" +msgstr "" + +#: src/lib/message.c:393 +msgid "Bacula Message" +msgstr "" + +#: src/lib/message.c:453 +msgid "open mail pipe failed.\n" +msgstr "" + +#: src/lib/message.c:465 +#, c-format +msgid "close error: ERR=%s\n" +msgstr "" + +#: src/lib/message.c:476 +#, c-format +msgid "Mail prog: %s" +msgstr "" + +#: src/lib/message.c:485 +#, c-format +msgid "" +"Mail program terminated in error.\n" +"CMD=%s\n" +"ERR=%s\n" +msgstr "" + +#: src/lib/message.c:584 src/lib/message.c:735 +#, c-format +msgid "fopen %s failed: ERR=%s\n" +msgstr "" + +#: src/lib/message.c:717 +#, c-format +msgid "" +"Operator mail program terminated in error.\n" +"CMD=%s\n" +"ERR=%s\n" +msgstr "" + +#: src/lib/message.c:1015 +#, c-format +msgid "%s: ABORTING due to ERROR in %s:%d\n" +msgstr "" + +#: src/lib/message.c:1019 +#, c-format +msgid "%s: ERROR TERMINATION at %s:%d\n" +msgstr "" + +#: src/lib/message.c:1024 +#, c-format +msgid "%s: Fatal Error because: " +msgstr "" + +#: src/lib/message.c:1026 +#, c-format +msgid "%s: Fatal Error at %s:%d because:\n" +msgstr "" + +#: src/lib/message.c:1030 +#, c-format +msgid "%s: ERROR: " +msgstr "" + +#: src/lib/message.c:1032 +#, c-format +msgid "%s: ERROR in %s:%d " +msgstr "" + +#: src/lib/message.c:1035 +#, c-format +msgid "%s: Warning: " +msgstr "" + +#: src/lib/message.c:1038 +#, c-format +msgid "%s: Security violation: " +msgstr "" + +#: src/lib/message.c:1114 +#, c-format +msgid "%s ABORTING due to ERROR\n" +msgstr "" + +#: src/lib/message.c:1117 +#, c-format +msgid "%s ERROR TERMINATION\n" +msgstr "" + +#: src/lib/message.c:1120 +#, c-format +msgid "%s: %s Fatal error: " +msgstr "" + +#: src/lib/message.c:1126 +#, c-format +msgid "%s: %s Error: " +msgstr "" + +#: src/lib/message.c:1132 +#, c-format +msgid "%s: %s Warning: " +msgstr "" + +#: src/lib/message.c:1135 +#, c-format +msgid "%s: %s Security violation: " +msgstr "" + +#: src/lib/openssl.c:118 src/lib/openssl.c:179 src/stored/dev.c:218 +#: src/stored/dev.c:236 src/stored/dev.c:243 src/stored/stored_conf.c:611 +#, c-format +msgid "Unable to init mutex: ERR=%s\n" +msgstr "" + +#: src/lib/openssl.c:140 src/lib/openssl.c:213 +#, c-format +msgid "Unable to destroy mutex: ERR=%s\n" +msgstr "" + +#: src/lib/parse_conf.c:180 +msgid "***UNKNOWN***" +msgstr "" + +#: src/lib/parse_conf.c:200 +#, c-format +msgid "Unable to initialize resource lock. ERR=%s\n" +msgstr "" + +#: src/lib/parse_conf.c:287 src/lib/parse_conf.c:306 +#, c-format +msgid "expected an =, got: %s" +msgstr "" + +#: src/lib/parse_conf.c:314 +#, c-format +msgid "Unknown item code: %d\n" +msgstr "" + +#: src/lib/parse_conf.c:354 +#, c-format +msgid "message type: %s not found" +msgstr "" + +#: src/lib/parse_conf.c:391 +#, c-format +msgid "Attempt to redefine name \"%s\" to \"%s\"." +msgstr "" + +#: src/lib/parse_conf.c:486 +#, c-format +msgid "Attempt to redefine resource \"%s\" referenced on line %d : %s\n" +msgstr "" + +#: src/lib/parse_conf.c:521 +#, c-format +msgid "Too many %s directives. Max. is %d. line %d: %s\n" +msgstr "" + +#: src/lib/parse_conf.c:531 +#, c-format +msgid "Could not find config Resource \"%s\" referenced on line %d : %s\n" +msgstr "" + +#: src/lib/parse_conf.c:593 +#, c-format +msgid "Missing config Resource \"%s\" referenced on line %d : %s\n" +msgstr "" + +#: src/lib/parse_conf.c:657 +#, c-format +msgid "expected a size number, got: %s" +msgstr "" + +#: src/lib/parse_conf.c:662 +#, c-format +msgid "expected a size, got: %s" +msgstr "" + +#: src/lib/parse_conf.c:699 src/lib/parse_conf.c:704 +#, c-format +msgid "expected a time period, got: %s" +msgstr "" + +#: src/lib/parse_conf.c:763 +#, c-format +msgid "Expected a Tape Label keyword, got: %s" +msgstr "" + +#: src/lib/parse_conf.c:819 +#, c-format +msgid "Cannot open config file \"%s\": %s\n" +msgstr "" + +#: src/lib/parse_conf.c:835 +msgid "" +"Currently we cannot handle UTF-16 source files. Please convert the conf file " +"to UTF-8\n" +msgstr "" + +#: src/lib/parse_conf.c:839 +#, c-format +msgid "Expected a Resource name identifier, got: %s" +msgstr "" + +#: src/lib/parse_conf.c:852 +#, c-format +msgid "expected resource name, got: %s" +msgstr "" + +#: src/lib/parse_conf.c:863 +#, c-format +msgid "not in resource definition: %s" +msgstr "" + +#: src/lib/parse_conf.c:888 +#, c-format +msgid "" +"Keyword \"%s\" not permitted in this resource.\n" +"Perhaps you left the trailing brace off of the previous resource." +msgstr "" + +#: src/lib/parse_conf.c:899 +msgid "Name not specified for resource" +msgstr "" + +#: src/lib/parse_conf.c:908 +#, c-format +msgid "unexpected token %d %s in resource definition" +msgstr "" + +#: src/lib/parse_conf.c:914 +#, c-format +msgid "Unknown parser state %d\n" +msgstr "" + +#: src/lib/parse_conf.c:919 +msgid "End of conf file reached with unclosed resource." +msgstr "" + +#: src/lib/pythonlib.c:127 +msgid "Could not initialize Python\n" +msgstr "" + +#: src/lib/pythonlib.c:132 +#, c-format +msgid "Could not Run Python string %s\n" +msgstr "" + +#: src/lib/pythonlib.c:144 +msgid "Could not initialize Python Job type.\n" +msgstr "" + +#: src/lib/pythonlib.c:149 +#, c-format +msgid "Could not import Python script %s/%s. Python disabled.\n" +msgstr "" + +#: src/lib/pythonlib.c:252 +msgid "Could not create Python Job Object.\n" +msgstr "" + +#: src/lib/pythonlib.c:265 src/lib/pythonlib.c:289 +#, c-format +msgid "Python function \"%s\" not found.\n" +msgstr "" + +#: src/lib/pythonlib.c:304 +#, c-format +msgid "Unknown Python daemon event %s\n" +msgstr "" + +#: src/lib/pythonlib.c:329 +#, c-format +msgid "Unable to initialize the Python lock. ERR=%s\n" +msgstr "" + +#: src/lib/res.c:66 +#, c-format +msgid "rwl_writelock failure at %s:%d: ERR=%s\n" +msgstr "" + +#: src/lib/res.c:76 +#, c-format +msgid "rwl_writeunlock failure at %s:%d:. ERR=%s\n" +msgstr "" + +#: src/lib/runscript.c:212 +#, c-format +msgid "%s: run command \"%s\"\n" +msgstr "" + +#: src/lib/runscript.c:218 +#, c-format +msgid "Runscript: %s could not execute. ERR=%s\n" +msgstr "" + +#: src/lib/runscript.c:227 +#, c-format +msgid "%s: %s\n" +msgstr "" + +#: src/lib/runscript.c:232 +#, c-format +msgid "Runscript: %s returned non-zero status=%d. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:297 +msgid "rwl_writeunlock called too many times.\n" +msgstr "" + +#: src/lib/rwlock.c:301 +msgid "rwl_writeunlock by non-owner.\n" +msgstr "" + +#: src/lib/rwlock.c:367 +#, c-format +msgid "Write lock failed. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:375 +#, c-format +msgid "Write unlock failed. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:386 +#, c-format +msgid "Read lock failed. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:394 +#, c-format +msgid "Read unlock failed. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:403 +#, c-format +msgid "Thread %d found unchanged elements %d times\n" +msgstr "" + +#: src/lib/rwlock.c:436 +#, c-format +msgid "Init rwlock failed. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:452 +#, c-format +msgid "Create thread failed. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:464 +#, c-format +msgid "Join thread failed. ERR=%s\n" +msgstr "" + +#: src/lib/rwlock.c:467 +#, c-format +msgid "%02d: interval %d, writes %d, reads %d\n" +msgstr "" + +#: src/lib/rwlock.c:477 +#, c-format +msgid "data %02d: value %d, %d writes\n" +msgstr "" + +#: src/lib/rwlock.c:482 +#, c-format +msgid "Total: %d thread writes, %d data writes\n" +msgstr "" + +#: src/lib/rwlock.c:554 +msgid "Try write lock" +msgstr "" + +#: src/lib/rwlock.c:560 +msgid "Try read lock" +msgstr "" + +#: src/lib/rwlock.c:615 +msgid "Create thread" +msgstr "" + +#: src/lib/rwlock.c:625 +msgid "Join thread" +msgstr "" + +#: src/lib/rwlock.c:627 +#, c-format +msgid "%02d: interval %d, updates %d, r_collisions %d, w_collisions %d\n" +msgstr "" + +#: src/lib/rwlock.c:639 +#, c-format +msgid "data %02d: value %d, %d updates\n" +msgstr "" + +#: src/lib/signal.c:68 +msgid "Invalid signal number" +msgstr "" + +#: src/lib/signal.c:94 +#, c-format +msgid "Bacula interrupted by signal %d: %s\n" +msgstr "" + +#: src/lib/signal.c:107 +#, c-format +msgid "Kaboom! %s, %s got signal %d - %s. Attempting traceback.\n" +msgstr "" + +#: src/lib/signal.c:109 +#, c-format +msgid "Kaboom! exepath=%s\n" +msgstr "" + +#: src/lib/signal.c:143 +#, c-format +msgid "Fork error: ERR=%s\n" +msgstr "" + +#: src/lib/signal.c:150 +#, c-format +msgid "Calling: %s %s %s\n" +msgstr "" + +#: src/lib/signal.c:153 +#, c-format +msgid "execv: %s failed: ERR=%s\n" +msgstr "" + +#: src/lib/signal.c:168 +#, c-format +msgid "Traceback complete, attempting cleanup ...\n" +msgstr "" + +#: src/lib/signal.c:176 +#, c-format +msgid "It looks like the traceback worked ...\n" +msgstr "" + +#: src/lib/signal.c:205 +#, c-format +msgid "BA_NSIG too small (%d) should be (%d)\n" +msgstr "" + +#: src/lib/signal.c:211 +msgid "UNKNOWN SIGNAL" +msgstr "" + +#: src/lib/signal.c:212 +msgid "Hangup" +msgstr "" + +#: src/lib/signal.c:213 +msgid "Interrupt" +msgstr "" + +#: src/lib/signal.c:214 +msgid "Quit" +msgstr "" + +#: src/lib/signal.c:215 +msgid "Illegal instruction" +msgstr "" + +#: src/lib/signal.c:216 +msgid "Trace/Breakpoint trap" +msgstr "" + +#: src/lib/signal.c:217 +msgid "Abort" +msgstr "" + +#: src/lib/signal.c:219 +msgid "EMT instruction (Emulation Trap)" +msgstr "" + +#: src/lib/signal.c:222 +msgid "IOT trap" +msgstr "" + +#: src/lib/signal.c:224 +msgid "BUS error" +msgstr "" + +#: src/lib/signal.c:225 +msgid "Floating-point exception" +msgstr "" + +#: src/lib/signal.c:226 +msgid "Kill, unblockable" +msgstr "" + +#: src/lib/signal.c:227 +msgid "User-defined signal 1" +msgstr "" + +#: src/lib/signal.c:228 +msgid "Segmentation violation" +msgstr "" + +#: src/lib/signal.c:229 +msgid "User-defined signal 2" +msgstr "" + +#: src/lib/signal.c:230 +msgid "Broken pipe" +msgstr "" + +#: src/lib/signal.c:231 +msgid "Alarm clock" +msgstr "" + +#: src/lib/signal.c:232 +msgid "Termination" +msgstr "" + +#: src/lib/signal.c:234 +msgid "Stack fault" +msgstr "" + +#: src/lib/signal.c:236 +msgid "Child status has changed" +msgstr "" + +#: src/lib/signal.c:237 +msgid "Continue" +msgstr "" + +#: src/lib/signal.c:238 +msgid "Stop, unblockable" +msgstr "" + +#: src/lib/signal.c:239 +msgid "Keyboard stop" +msgstr "" + +#: src/lib/signal.c:240 +msgid "Background read from tty" +msgstr "" + +#: src/lib/signal.c:241 +msgid "Background write to tty" +msgstr "" + +#: src/lib/signal.c:242 +msgid "Urgent condition on socket" +msgstr "" + +#: src/lib/signal.c:243 +msgid "CPU limit exceeded" +msgstr "" + +#: src/lib/signal.c:244 +msgid "File size limit exceeded" +msgstr "" + +#: src/lib/signal.c:245 +msgid "Virtual alarm clock" +msgstr "" + +#: src/lib/signal.c:246 +msgid "Profiling alarm clock" +msgstr "" + +#: src/lib/signal.c:247 +msgid "Window size change" +msgstr "" + +#: src/lib/signal.c:248 +msgid "I/O now possible" +msgstr "" + +#: src/lib/signal.c:250 +msgid "Power failure restart" +msgstr "" + +#: src/lib/signal.c:253 +msgid "No runnable lwp" +msgstr "" + +#: src/lib/signal.c:256 +msgid "SIGLWP special signal used by thread library" +msgstr "" + +#: src/lib/signal.c:259 +msgid "Checkpoint Freeze" +msgstr "" + +#: src/lib/signal.c:262 +msgid "Checkpoint Thaw" +msgstr "" + +#: src/lib/signal.c:265 +msgid "Thread Cancellation" +msgstr "" + +#: src/lib/signal.c:268 +msgid "Resource Lost (e.g. record-lock lost)" +msgstr "" + +#: src/lib/smartall.c:146 src/lib/smartall.c:255 src/lib/smartall.c:270 +msgid "Out of memory\n" +msgstr "" + +#: src/lib/smartall.c:151 +msgid "Too much memory used." +msgstr "" + +#: src/lib/smartall.c:180 +#, c-format +msgid "Attempt to free NULL called from %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:194 +#, c-format +msgid "double free from %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:202 +#, c-format +msgid "qp->qnext->qprev != qp called from %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:206 +#, c-format +msgid "qp->qprev->qnext != qp called from %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:215 +#, c-format +msgid "Buffer overrun called from %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:292 +#, c-format +msgid "sm_realloc size: %d\n" +msgstr "" + +#: src/lib/smartall.c:330 +#, c-format +msgid "sm_realloc %d at %x from %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:392 +#, c-format +msgid "" +"\n" +"Orphaned buffers exist. Dump terminated following\n" +" discovery of bad links in chain of orphaned buffers.\n" +" Buffer address with bad links: %p\n" +msgstr "" + +#: src/lib/smartall.c:404 +#, c-format +msgid "%s buffer: %s %6u bytes buf=%p allocated at %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:440 +#, c-format +msgid "Damaged buffer found. Called from %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:470 +#, c-format +msgid "" +"\n" +"Damaged buffers found at %s:%d\n" +msgstr "" + +#: src/lib/smartall.c:473 +#, c-format +msgid " discovery of bad prev link.\n" +msgstr "" + +#: src/lib/smartall.c:476 +#, c-format +msgid " discovery of bad next link.\n" +msgstr "" + +#: src/lib/smartall.c:479 +#, c-format +msgid " discovery of data overrun.\n" +msgstr "" + +#: src/lib/smartall.c:482 +#, c-format +msgid " Buffer address: %p\n" +msgstr "" + +#: src/lib/smartall.c:489 +#, c-format +msgid "Damaged buffer: %6u bytes allocated at line %d of %s %s\n" +msgstr "" + +#: src/lib/tls.c:93 +#, c-format +msgid "" +"Error with certificate at depth: %d, issuer = %s, subject = %s, ERR=%d:%s\n" +msgstr "" + +#: src/lib/tls.c:130 +msgid "Error initializing SSL context" +msgstr "" + +#: src/lib/tls.c:151 +msgid "Error loading certificate verification stores" +msgstr "" + +#: src/lib/tls.c:156 +msgid "" +"Either a certificate file or a directory must be specified as a verification " +"store\n" +msgstr "" + +#: src/lib/tls.c:167 +msgid "Error loading certificate file" +msgstr "" + +#: src/lib/tls.c:175 +msgid "Error loading private key" +msgstr "" + +#: src/lib/tls.c:183 +msgid "Unable to open DH parameters file" +msgstr "" + +#: src/lib/tls.c:189 +msgid "Unable to load DH parameters from specified file" +msgstr "" + +#: src/lib/tls.c:193 +msgid "Failed to set TLS Diffie-Hellman parameters" +msgstr "" + +#: src/lib/tls.c:203 +msgid "Error setting cipher list, no valid ciphers available\n" +msgstr "" + +#: src/lib/tls.c:262 +msgid "Peer failed to present a TLS certificate\n" +msgstr "" + +#: src/lib/tls.c:305 +#, c-format +msgid "Peer %s failed to present a TLS certificate\n" +msgstr "" + +#: src/lib/tls.c:407 +msgid "Error creating file descriptor-based BIO" +msgstr "" + +#: src/lib/tls.c:418 +msgid "Error creating new SSL object" +msgstr "" + +#: src/lib/tls.c:481 src/lib/tls.c:504 +msgid "Connect failure" +msgstr "" + +#: src/lib/tls.c:576 src/lib/tls.c:580 +msgid "TLS shutdown failure." +msgstr "" + +#: src/lib/tls.c:639 +msgid "TLS read/write failure." +msgstr "" + +#: src/lib/util.c:182 +msgid "Running" +msgstr "" + +#: src/lib/util.c:185 +msgid "Blocked" +msgstr "" + +#: src/lib/util.c:195 +msgid "Non-fatal error" +msgstr "" + +#: src/lib/util.c:198 src/lib/util.c:265 +msgid "Canceled" +msgstr "" + +#: src/lib/util.c:201 +msgid "Verify differences" +msgstr "" + +#: src/lib/util.c:204 +msgid "Waiting on FD" +msgstr "" + +#: src/lib/util.c:207 +msgid "Wait on SD" +msgstr "" + +#: src/lib/util.c:210 +msgid "Wait for new Volume" +msgstr "" + +#: src/lib/util.c:213 +msgid "Waiting for mount" +msgstr "" + +#: src/lib/util.c:216 +msgid "Waiting for Storage resource" +msgstr "" + +#: src/lib/util.c:219 +msgid "Waiting for Job resource" +msgstr "" + +#: src/lib/util.c:222 +msgid "Waiting for Client resource" +msgstr "" + +#: src/lib/util.c:225 +msgid "Waiting on Max Jobs" +msgstr "" + +#: src/lib/util.c:228 +msgid "Waiting for Start Time" +msgstr "" + +#: src/lib/util.c:231 +msgid "Waiting on Priority" +msgstr "" + +#: src/lib/util.c:238 +#, c-format +msgid "Unknown Job termination status=%d" +msgstr "" + +#: src/lib/util.c:262 +msgid "Fatal Error" +msgstr "" + +#: src/lib/util.c:268 +msgid "Differences" +msgstr "" + +#: src/lib/util.c:271 +msgid "Unknown term code" +msgstr "" + +#: src/lib/util.c:299 +msgid "Migrate" +msgstr "" + +#: src/lib/util.c:302 +msgid "Copy" +msgstr "" + +#: src/lib/util.c:305 src/wx-console/wxbmainframe.cpp:276 +msgid "Console" +msgstr "" + +#: src/lib/util.c:308 +msgid "System or Console" +msgstr "" + +#: src/lib/util.c:311 +msgid "Scan" +msgstr "" + +#: src/lib/util.c:314 +msgid "Unknown Type" +msgstr "" + +#: src/lib/util.c:346 +msgid "Verify Init Catalog" +msgstr "" + +#: src/lib/util.c:355 +msgid "Verify Data" +msgstr "" + +#: src/lib/util.c:692 +msgid "Working directory not defined. Cannot continue.\n" +msgstr "" + +#: src/lib/util.c:695 +#, c-format +msgid "Working Directory: \"%s\" not found. Cannot continue.\n" +msgstr "" + +#: src/lib/util.c:699 +#, c-format +msgid "Working Directory: \"%s\" is not a directory. Cannot continue.\n" +msgstr "" + +#: src/lib/var.c:2669 +msgid "everything ok" +msgstr "" + +#: src/lib/var.c:2670 +msgid "incomplete named character" +msgstr "" + +#: src/lib/var.c:2671 +msgid "incomplete hexadecimal value" +msgstr "" + +#: src/lib/var.c:2672 +msgid "invalid hexadecimal value" +msgstr "" + +#: src/lib/var.c:2673 +msgid "octal value too large" +msgstr "" + +#: src/lib/var.c:2674 +msgid "invalid octal value" +msgstr "" + +#: src/lib/var.c:2675 +msgid "incomplete octal value" +msgstr "" + +#: src/lib/var.c:2676 +msgid "incomplete grouped hexadecimal value" +msgstr "" + +#: src/lib/var.c:2677 +msgid "incorrect character class specification" +msgstr "" + +#: src/lib/var.c:2678 +msgid "invalid expansion configuration" +msgstr "" + +#: src/lib/var.c:2679 +msgid "out of memory" +msgstr "" + +#: src/lib/var.c:2680 +msgid "incomplete variable specification" +msgstr "" + +#: src/lib/var.c:2681 +msgid "undefined variable" +msgstr "" + +#: src/lib/var.c:2682 +msgid "input is neither text nor variable" +msgstr "" + +#: src/lib/var.c:2683 +msgid "unknown command character in variable" +msgstr "" + +#: src/lib/var.c:2684 +msgid "malformatted search and replace operation" +msgstr "" + +#: src/lib/var.c:2685 +msgid "unknown flag in search and replace operation" +msgstr "" + +#: src/lib/var.c:2686 +msgid "invalid regex in search and replace operation" +msgstr "" + +#: src/lib/var.c:2687 +msgid "missing parameter in command" +msgstr "" + +#: src/lib/var.c:2688 +msgid "empty search string in search and replace operation" +msgstr "" + +#: src/lib/var.c:2689 +msgid "start offset missing in cut operation" +msgstr "" + +#: src/lib/var.c:2690 +msgid "offsets in cut operation delimited by unknown character" +msgstr "" + +#: src/lib/var.c:2691 +msgid "range out of bounds in cut operation" +msgstr "" + +#: src/lib/var.c:2692 +msgid "offset out of bounds in cut operation" +msgstr "" + +#: src/lib/var.c:2693 +msgid "logic error in cut operation" +msgstr "" + +#: src/lib/var.c:2694 +msgid "malformatted transpose operation" +msgstr "" + +#: src/lib/var.c:2695 +msgid "source and target class mismatch in transpose operation" +msgstr "" + +#: src/lib/var.c:2696 +msgid "empty character class in transpose operation" +msgstr "" + +#: src/lib/var.c:2697 +msgid "incorrect character class in transpose operation" +msgstr "" + +#: src/lib/var.c:2698 +msgid "malformatted padding operation" +msgstr "" + +#: src/lib/var.c:2699 +msgid "width parameter missing in padding operation" +msgstr "" + +#: src/lib/var.c:2700 +msgid "fill string missing in padding operation" +msgstr "" + +#: src/lib/var.c:2701 +msgid "unknown quoted pair in search and replace operation" +msgstr "" + +#: src/lib/var.c:2702 +msgid "sub-matching reference out of range" +msgstr "" + +#: src/lib/var.c:2703 +msgid "invalid argument" +msgstr "" + +#: src/lib/var.c:2704 +msgid "incomplete quoted pair" +msgstr "" + +#: src/lib/var.c:2705 +msgid "lookup function does not support variable arrays" +msgstr "" + +#: src/lib/var.c:2706 +msgid "index of array variable contains an invalid character" +msgstr "" + +#: src/lib/var.c:2707 +msgid "index of array variable is incomplete" +msgstr "" + +#: src/lib/var.c:2708 +msgid "bracket expression in array variable's index not closed" +msgstr "" + +#: src/lib/var.c:2709 +msgid "division by zero error in index specification" +msgstr "" + +#: src/lib/var.c:2710 +msgid "unterminated loop construct" +msgstr "" + +#: src/lib/var.c:2711 +msgid "invalid character in loop limits" +msgstr "" + +#: src/lib/var.c:2712 +msgid "malformed operation argument list" +msgstr "" + +#: src/lib/var.c:2713 +msgid "undefined operation" +msgstr "" + +#: src/lib/var.c:2714 +msgid "formatting failure" +msgstr "" + +#: src/lib/var.c:2723 +msgid "unknown error" +msgstr "" + +#: src/lib/watchdog.c:83 +#, c-format +msgid "Unable to initialize watchdog lock. ERR=%s\n" +msgstr "" + +#: src/lib/watchdog.c:180 +msgid "BUG! register_watchdog called before start_watchdog\n" +msgstr "" + +#: src/lib/watchdog.c:183 +#, c-format +msgid "BUG! Watchdog %p has NULL callback\n" +msgstr "" + +#: src/lib/watchdog.c:186 +#, c-format +msgid "BUG! Watchdog %p has zero interval\n" +msgstr "" + +#: src/lib/watchdog.c:206 +msgid "BUG! unregister_watchdog_unlocked called before start_watchdog\n" +msgstr "" + +#: src/lib/watchdog.c:325 +#, c-format +msgid "rwl_writelock failure. ERR=%s\n" +msgstr "" + +#: src/lib/watchdog.c:340 +#, c-format +msgid "rwl_writeunlock failure. ERR=%s\n" +msgstr "" + +#: src/stored/acquire.c:69 +#, c-format +msgid "Acquire read: num_writers=%d not zero. Job %d canceled.\n" +msgstr "" + +#: src/stored/acquire.c:78 +#, c-format +msgid "No volumes specified for reading. Job %s canceled.\n" +msgstr "" + +#: src/stored/acquire.c:87 +#, c-format +msgid "Logic error: no next volume to read. Numvol=%d Curvol=%d\n" +msgstr "" + +#: src/stored/acquire.c:113 +#, c-format +msgid "" +"Changing device. Want Media Type=\"%s\" have=\"%s\"\n" +" device=%s\n" +msgstr "" + +#: src/stored/acquire.c:151 +#, c-format +msgid "Media Type change. New device %s chosen.\n" +msgstr "" + +#: src/stored/acquire.c:162 +#, c-format +msgid "No suitable device found to read Volume \"%s\"\n" +msgstr "" + +#: src/stored/acquire.c:191 +#, c-format +msgid "Job %s canceled.\n" +msgstr "" + +#: src/stored/acquire.c:205 +#, c-format +msgid "Read open device %s Volume \"%s\" failed: ERR=%s\n" +msgstr "" + +#: src/stored/acquire.c:276 +#, c-format +msgid "Too many errors trying to mount device %s for reading.\n" +msgstr "" + +#: src/stored/acquire.c:285 +#, c-format +msgid "Ready to read from volume \"%s\" on device %s.\n" +msgstr "" + +#: src/stored/acquire.c:328 +#, c-format +msgid "Want to append, but device %s is busy reading.\n" +msgstr "" + +#: src/stored/acquire.c:358 +#, c-format +msgid "" +"Wanted to append to Volume \"%s\", but device %s is busy writing on \"%s" +"\" .\n" +msgstr "" + +#: src/stored/acquire.c:377 +#, c-format +msgid "" +"Cannot recycle volume \"%s\" on device %s because it is in use by another " +"job.\n" +msgstr "" + +#: src/stored/acquire.c:402 +#, c-format +msgid "" +"Invalid tape position on volume \"%s\" on device %s. Expected %d, got %d\n" +msgstr "" + +#: src/stored/acquire.c:422 +#, c-format +msgid "Could not ready device %s for append.\n" +msgstr "" + +#: src/stored/acquire.c:506 src/stored/block.c:367 src/stored/block.c:713 +#: src/stored/block.c:788 +#, c-format +msgid "Could not create JobMedia record for Volume=\"%s\" Job=%s\n" +msgstr "" + +#: src/stored/acquire.c:547 +#, c-format +msgid "Alert: %s" +msgstr "" + +#: src/stored/acquire.c:555 +#, c-format +msgid "3997 Bad alert command: %s: ERR=%s.\n" +msgstr "" + +#: src/stored/ansi_label.c:96 +#, c-format +msgid "Read error on device %s in ANSI label. ERR=%s\n" +msgstr "" + +#: src/stored/ansi_label.c:106 +msgid "Insane! End of tape while reading ANSI label.\n" +msgstr "" + +#: src/stored/ansi_label.c:130 +msgid "No VOL1 label while reading ANSI/IBM label.\n" +msgstr "" + +#: src/stored/ansi_label.c:150 +#, c-format +msgid "Wanted ANSI Volume \"%s\" got \"%s\"\n" +msgstr "" + +#: src/stored/ansi_label.c:161 +msgid "No HDR1 label while reading ANSI label.\n" +msgstr "" + +#: src/stored/ansi_label.c:167 +#, c-format +msgid "ANSI/IBM Volume \"%s\" does not belong to Bacula.\n" +msgstr "" + +#: src/stored/ansi_label.c:178 +msgid "No HDR2 label while reading ANSI/IBM label.\n" +msgstr "" + +#: src/stored/ansi_label.c:192 +msgid "Unknown or bad ANSI/IBM label record.\n" +msgstr "" + +#: src/stored/ansi_label.c:199 +msgid "Too many records in while reading ANSI/IBM label.\n" +msgstr "" + +#: src/stored/ansi_label.c:298 +#, c-format +msgid "ANSI Volume label name \"%s\" longer than 6 chars.\n" +msgstr "" + +#: src/stored/ansi_label.c:315 +#, c-format +msgid "Could not write ANSI VOL1 label. ERR=%s\n" +msgstr "" + +#: src/stored/ansi_label.c:353 src/stored/ansi_label.c:382 +#, c-format +msgid "Could not write ANSI HDR1 label. ERR=%s\n" +msgstr "" + +#: src/stored/ansi_label.c:358 src/stored/ansi_label.c:389 +msgid "Could not write ANSI HDR1 label.\n" +msgstr "" + +#: src/stored/ansi_label.c:394 +#, c-format +msgid "Error writing EOF to tape. ERR=%s" +msgstr "" + +#: src/stored/ansi_label.c:399 +msgid "write_ansi_ibm_label called for non-ANSI/IBM type\n" +msgstr "" + +#: src/stored/append.c:64 +msgid "DCR is NULL!!!\n" +msgstr "" + +#: src/stored/append.c:69 +msgid "DEVICE is NULL!!!\n" +msgstr "" + +#: src/stored/append.c:81 +msgid "Unable to set network buffer size.\n" +msgstr "" + +#: src/stored/append.c:94 src/stored/append.c:103 src/stored/append.c:115 +#: src/stored/append.c:298 src/stored/append.c:309 src/stored/askdir.c:332 +#: src/stored/askdir.c:333 +msgid "NULL Volume name. This shouldn't happen!!!\n" +msgstr "" + +#: src/stored/append.c:109 src/stored/btape.c:1889 +#, c-format +msgid "Write session label failed. ERR=%s\n" +msgstr "" + +#: src/stored/append.c:121 +#, c-format +msgid "Network send error to FD. ERR=%s\n" +msgstr "" + +#: src/stored/append.c:158 +#, c-format +msgid "Error reading data header from FD. ERR=%s\n" +msgstr "" + +#: src/stored/append.c:180 +#, c-format +msgid "Malformed data header from FD: %s\n" +msgstr "" + +#: src/stored/append.c:190 +msgid "File index from FD not positive or sequential\n" +msgstr "" + +#: src/stored/append.c:244 src/stored/mac.c:248 +#, c-format +msgid "Error updating file attributes. ERR=%s\n" +msgstr "" + +#: src/stored/append.c:258 +#, c-format +msgid "Network error on data channel. ERR=%s\n" +msgstr "" + +#: src/stored/append.c:279 +#, c-format +msgid "" +"Job write elapsed time = %02d:%02d:%02d, Transfer rate = %s bytes/second\n" +msgstr "" + +#: src/stored/append.c:292 src/stored/btape.c:2013 +#, c-format +msgid "Error writting end session label. ERR=%s\n" +msgstr "" + +#: src/stored/append.c:303 src/stored/mac.c:124 src/stored/mac.c:220 +#: src/stored/spool.c:293 +#, c-format +msgid "Fatal append error on device %s: ERR=%s\n" +msgstr "" + +#: src/stored/append.c:305 src/stored/mac.c:126 +msgid "Set ok=FALSE after write_block_to_device.\n" +msgstr "" + +#: src/stored/askdir.c:178 +msgid "Network error on bnet_recv in req_vol_info.\n" +msgstr "" + +#: src/stored/askdir.c:195 +#, c-format +msgid "Error getting Volume info: %s" +msgstr "" + +#: src/stored/askdir.c:363 +#, c-format +msgid "Didn't get vol info vol=%s: ERR=%s" +msgstr "" + +#: src/stored/askdir.c:405 +#, c-format +msgid "Error creating JobMedia record: ERR=%s\n" +msgstr "" + +#: src/stored/askdir.c:412 +#, c-format +msgid "Error creating JobMedia record: %s\n" +msgstr "" + +#: src/stored/askdir.c:478 +#, c-format +msgid "Job %s canceled while waiting for mount on Storage Device \"%s\".\n" +msgstr "" + +#: src/stored/askdir.c:491 +#, c-format +msgid "" +"Job %s waiting. Cannot find any appendable volumes.\n" +"Please use the \"label\" command to create a new Volume for:\n" +" Storage: %s\n" +" Pool: %s\n" +" Media type: %s\n" +msgstr "" + +#: src/stored/askdir.c:515 src/stored/askdir.c:605 +#, c-format +msgid "Max time exceeded waiting to mount Storage Device %s for Job %s\n" +msgstr "" + +#: src/stored/askdir.c:525 +msgid "pthread error in mount_next_volume.\n" +msgstr "" + +#: src/stored/askdir.c:557 +msgid "Cannot request another volume: no volume name given.\n" +msgstr "" + +#: src/stored/askdir.c:563 +#, c-format +msgid "Job %s canceled while waiting for mount on Storage Device %s.\n" +msgstr "" + +#: src/stored/askdir.c:578 +#, c-format +msgid "" +"Please mount Volume \"%s\" or label a new one for:\n" +" Job: %s\n" +" Storage: %s\n" +" Pool: %s\n" +" Media type: %s\n" +msgstr "" + +#: src/stored/askdir.c:615 +msgid "pthread error in mount_volume\n" +msgstr "" + +#: src/stored/authenticate.c:60 +#, c-format +msgid "I only authenticate Directors, not %d\n" +msgstr "" + +#: src/stored/authenticate.c:90 +#, c-format +msgid "" +"Connection from unknown Director %s at %s rejected.\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" + +#: src/stored/authenticate.c:123 +msgid "" +"Incorrect password given by Director.\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" + +#: src/stored/authenticate.c:179 +#, c-format +msgid "Unable to authenticate Director at %s.\n" +msgstr "" + +#: src/stored/authenticate.c:223 src/stored/authenticate.c:257 +#, c-format +msgid "" +"Incorrect authorization key from File daemon at %s rejected.\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" + +#: src/stored/autochanger.c:66 +#, c-format +msgid "No Changer Name given for device %s. Cannot continue.\n" +msgstr "" + +#: src/stored/autochanger.c:72 +#, c-format +msgid "No Changer Command given for device %s. Cannot continue.\n" +msgstr "" + +#: src/stored/autochanger.c:85 +#, c-format +msgid "" +"Media Type not the same for all devices in changer %s. Cannot continue.\n" +msgstr "" + +#: src/stored/autochanger.c:149 +#, c-format +msgid "" +"Invalid slot=%d defined in catalog for Volume \"%s\" on %s. Manual load my " +"be required.\n" +msgstr "" + +#: src/stored/autochanger.c:154 +#, c-format +msgid "No \"Changer Device\" for %s. Manual load of Volume may be required.\n" +msgstr "" + +#: src/stored/autochanger.c:158 +#, c-format +msgid "No \"Changer Command\" for %s. Manual load of Volume may be requird.\n" +msgstr "" + +#: src/stored/autochanger.c:188 +#, c-format +msgid "3304 Issuing autochanger \"load slot %d, drive %d\" command.\n" +msgstr "" + +#: src/stored/autochanger.c:196 +#, c-format +msgid "3305 Autochanger \"load slot %d, drive %d\", status is OK.\n" +msgstr "" + +#: src/stored/autochanger.c:205 +#, c-format +msgid "" +"3992 Bad autochanger \"load slot %d, drive %d\": ERR=%s.\n" +"Results=%s\n" +msgstr "" + +#: src/stored/autochanger.c:251 +msgid "3992 Missing Changer command.\n" +msgstr "" + +#: src/stored/autochanger.c:265 +#, c-format +msgid "3301 Issuing autochanger \"loaded? drive %d\" command.\n" +msgstr "" + +#: src/stored/autochanger.c:275 +#, c-format +msgid "3302 Autochanger \"loaded? drive %d\", result is Slot %d.\n" +msgstr "" + +#: src/stored/autochanger.c:279 +#, c-format +msgid "3302 Autochanger \"loaded? drive %d\", result: nothing loaded.\n" +msgstr "" + +#: src/stored/autochanger.c:286 +#, c-format +msgid "" +"3991 Bad autochanger \"loaded? drive %d\" command: ERR=%s.\n" +"Results=%s\n" +msgstr "" + +#: src/stored/autochanger.c:345 src/stored/autochanger.c:436 +#, c-format +msgid "3307 Issuing autochanger \"unload slot %d, drive %d\" command.\n" +msgstr "" + +#: src/stored/autochanger.c:359 +#, c-format +msgid "" +"3995 Bad autochanger \"unload slot %d, drive %d\": ERR=%s\n" +"Results=%s\n" +msgstr "" + +#: src/stored/autochanger.c:423 +#, c-format +msgid "Volume \"%s\" is in use by device %s\n" +msgstr "" + +#: src/stored/autochanger.c:458 +#, c-format +msgid "3995 Bad autochanger \"unload slot %d, drive %d\": ERR=%s.\n" +msgstr "" + +#: src/stored/autochanger.c:498 +#, c-format +msgid "3993 Device %s not an autochanger device.\n" +msgstr "" + +#: src/stored/autochanger.c:519 +#, c-format +msgid "3306 Issuing autochanger \"%s\" command.\n" +msgstr "" + +#: src/stored/autochanger.c:522 +msgid "3996 Open bpipe failed.\n" +msgstr "" + +#: src/stored/bcopy.c:72 +#, c-format +msgid "" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: bcopy [-d debug_level] \n" +" -b bootstrap specify a bootstrap file\n" +" -c specify configuration file\n" +" -d set debug level to nn\n" +" -i specify input Volume names (separated by |)\n" +" -o specify output Volume names (separated by |)\n" +" -p proceed inspite of errors\n" +" -v verbose\n" +" -w specify working directory (default /tmp)\n" +" -? print this message\n" +"\n" +msgstr "" + +#: src/stored/bcopy.c:151 src/stored/bextract.c:187 src/stored/bscan.c:228 +msgid "Wrong number of arguments: \n" +msgstr "" + +#: src/stored/bcopy.c:191 src/stored/btape.c:364 src/stored/device.c:296 +#, c-format +msgid "dev open failed: %s\n" +msgstr "" + +#: src/stored/bcopy.c:204 +msgid "Write of last block failed.\n" +msgstr "" + +#: src/stored/bcopy.c:207 +#, c-format +msgid "%u Jobs copied. %u records copied.\n" +msgstr "" + +#: src/stored/bcopy.c:224 src/stored/bscan.c:402 +#, c-format +msgid "Record: SessId=%u SessTim=%u FileIndex=%d Stream=%d len=%u\n" +msgstr "" + +#: src/stored/bcopy.c:239 +msgid "Volume is prelabeled. This volume cannot be copied.\n" +msgstr "" + +#: src/stored/bcopy.c:242 +msgid "Volume label not copied.\n" +msgstr "" + +#: src/stored/bcopy.c:254 src/stored/bcopy.c:261 src/stored/bcopy.c:284 +#: src/stored/btape.c:2386 +#, c-format +msgid "Cannot fixup device error. %s\n" +msgstr "" + +#: src/stored/bcopy.c:266 +msgid "EOM label not copied.\n" +msgstr "" + +#: src/stored/bcopy.c:269 +msgid "EOT label not copied.\n" +msgstr "" + +#: src/stored/bcopy.c:305 src/stored/bextract.c:489 src/stored/bls.c:452 +#: src/stored/bscan.c:1283 src/stored/btape.c:2685 +#, c-format +msgid "Mount Volume \"%s\" on device %s and press return when ready: " +msgstr "" + +#: src/stored/bextract.c:78 +#, c-format +msgid "" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: bextract \n" +" -b specify a bootstrap file\n" +" -c specify a configuration file\n" +" -d set debug level to nn\n" +" -e exclude list\n" +" -i include list\n" +" -p proceed inspite of I/O errors\n" +" -v verbose\n" +" -V specify Volume names (separated by |)\n" +" -? print this message\n" +"\n" +msgstr "" + +#: src/stored/bextract.c:137 src/stored/bls.c:140 +#, c-format +msgid "Could not open exclude file: %s, ERR=%s\n" +msgstr "" + +#: src/stored/bextract.c:152 src/stored/bls.c:154 +#, c-format +msgid "Could not open include file: %s, ERR=%s\n" +msgstr "" + +#: src/stored/bextract.c:208 +#, c-format +msgid "%d Program Name and/or Program Data Stream records ignored.\n" +msgstr "" + +#: src/stored/bextract.c:212 +#, c-format +msgid "%d Win32 data or Win32 gzip data stream records. Ignored.\n" +msgstr "" + +#: src/stored/bextract.c:239 +#, c-format +msgid "Cannot stat %s. It must exist. ERR=%s\n" +msgstr "" + +#: src/stored/bextract.c:243 +#, c-format +msgid "%s must be a directory.\n" +msgstr "" + +#: src/stored/bextract.c:264 +#, c-format +msgid "%u files restored.\n" +msgstr "" + +#: src/stored/bextract.c:291 src/stored/bextract.c:464 +msgid "Logic error output file should be open but is not.\n" +msgstr "" + +#: src/stored/bextract.c:298 src/stored/bls.c:376 src/stored/bscan.c:659 +msgid "Cannot continue.\n" +msgstr "" + +#: src/stored/bextract.c:360 +#, c-format +msgid "Seek error on %s: %s\n" +msgstr "" + +#: src/stored/bextract.c:413 +#, c-format +msgid "Uncompression error. ERR=%d\n" +msgstr "" + +#: src/stored/bextract.c:421 +msgid "===Write error===\n" +msgstr "" + +#: src/stored/bextract.c:455 +msgid "Got Program Name or Data Stream. Ignored.\n" +msgstr "" + +#: src/stored/block.c:91 +#, c-format +msgid "" +"Dump block %s %x: size=%d BlkNum=%d\n" +" Hdrcksum=%x cksum=%x\n" +msgstr "" + +#: src/stored/block.c:104 +#, c-format +msgid " Rec: VId=%u VT=%u FI=%s Strm=%s len=%d p=%x\n" +msgstr "" + +#: src/stored/block.c:160 +#, c-format +msgid "%d block read errors not printed.\n" +msgstr "" + +#: src/stored/block.c:248 src/stored/block.c:264 src/stored/block.c:274 +#, c-format +msgid "" +"Volume data error at %u:%u! Wanted ID: \"%s\", got \"%s\". Buffer " +"discarded.\n" +msgstr "" + +#: src/stored/block.c:288 +#, c-format +msgid "" +"Volume data error at %u:%u! Block length %u is insane (too large), probably " +"due to a bad archive.\n" +msgstr "" + +#: src/stored/block.c:314 +#, c-format +msgid "" +"Volume data error at %u:%u!\n" +"Block checksum mismatch in block=%u len=%d: calc=%x blk=%x\n" +msgstr "" + +#: src/stored/block.c:425 +msgid "Cannot write block. Device at EOM.\n" +msgstr "" + +#: src/stored/block.c:430 +msgid "Attempt to write on read-only Volume.\n" +msgstr "" + +#: src/stored/block.c:482 +#, c-format +msgid "User defined maximum volume capacity %s exceeded on device %s.\n" +msgstr "" + +#: src/stored/block.c:497 +#, c-format +msgid "Unable to write EOF. ERR=%s\n" +msgstr "" + +#: src/stored/block.c:523 src/stored/block.c:548 +msgid "Write block header zeroed.\n" +msgstr "" + +#: src/stored/block.c:567 +#, c-format +msgid "Write error at %u:%u on device %s. ERR=%s.\n" +msgstr "" + +#: src/stored/block.c:574 +#, c-format +msgid "End of Volume \"%s\" at %u:%u on device %s. Write of %u bytes got %d.\n" +msgstr "" + +#: src/stored/block.c:650 src/stored/block.c:656 +#, c-format +msgid "Backspace file at EOT failed. ERR=%s\n" +msgstr "" + +#: src/stored/block.c:663 +#, c-format +msgid "Backspace record at EOT failed. ERR=%s\n" +msgstr "" + +#: src/stored/block.c:680 +#, c-format +msgid "Re-read last block at EOT failed. ERR=%s" +msgstr "" + +#: src/stored/block.c:690 +#, c-format +msgid "" +"Re-read of last block OK, but block numbers differ. Last block=%u Current " +"block=%u.\n" +msgstr "" + +#: src/stored/block.c:693 +msgid "Re-read of last block succeeded.\n" +msgstr "" + +#: src/stored/block.c:721 +#, c-format +msgid "" +"Error writing final EOF to tape. This Volume may not be readable.\n" +"%s" +msgstr "" + +#: src/stored/block.c:735 +#, c-format +msgid "" +"Error writing final part to DVD. This Volume may not be readable.\n" +"%s" +msgstr "" + +#: src/stored/block.c:837 +#, c-format +msgid "" +"Error while writing, current part number is less than the total number of " +"parts (%d/%d, device=%s)\n" +msgstr "" + +#: src/stored/block.c:845 +#, c-format +msgid "Unable to open device next part %s: ERR=%s\n" +msgstr "" + +#: src/stored/block.c:865 +#, c-format +msgid "" +"End of Volume \"%s\" at %u:%u on device %s (part_size=%s, free_space=%s, " +"free_space_errno=%d, errmsg=%s).\n" +msgstr "" + +#: src/stored/block.c:878 +#, c-format +msgid "" +"End of Volume \"%s\" at %u:%u on device %s (part_size=%s, free_space=%s, " +"free_space_errno=%d).\n" +msgstr "" + +#: src/stored/block.c:934 +#, c-format +msgid "Block buffer size looping problem on device %s\n" +msgstr "" + +#: src/stored/block.c:962 +#, c-format +msgid "Unable to open device part=%d %s: ERR=%s\n" +msgstr "" + +#: src/stored/block.c:988 +#, c-format +msgid "Read error on fd=%d at file:blk %u:%u on device %s. ERR=%s.\n" +msgstr "" + +#: src/stored/block.c:1001 +#, c-format +msgid "Read zero bytes at %u:%u on device %s.\n" +msgstr "" + +#: src/stored/block.c:1014 +#, c-format +msgid "" +"Volume data error at %u:%u! Very short block of %d bytes on device %s " +"discarded.\n" +msgstr "" + +#: src/stored/block.c:1039 +#, c-format +msgid "Block length %u is greater than buffer %u. Attempting recovery.\n" +msgstr "" + +#: src/stored/block.c:1058 +#, c-format +msgid "Setting block buffer size to %u bytes.\n" +msgstr "" + +#: src/stored/block.c:1073 +#, c-format +msgid "" +"Volume data error at %u:%u! Short block of %d bytes on device %s discarded.\n" +msgstr "" + +#: src/stored/bls.c:78 +#, c-format +msgid "" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: bls [options] \n" +" -b specify a bootstrap file\n" +" -c specify a config file\n" +" -d specify debug level\n" +" -e exclude list\n" +" -i include list\n" +" -j list jobs\n" +" -k list blocks\n" +" (no j or k option) list saved files\n" +" -L dump label\n" +" -p proceed inspite of errors\n" +" -v be verbose\n" +" -V specify Volume names (separated by |)\n" +" -? print this message\n" +"\n" +msgstr "" + +#: src/stored/bls.c:201 +msgid "No archive name specified\n" +msgstr "" + +#: src/stored/bls.c:236 +#, c-format +msgid "" +"\n" +"Warning, this Volume is a continuation of Volume %s\n" +msgstr "" + +#: src/stored/bls.c:279 +#, c-format +msgid "Got EOM at file %u on device %s, Volume \"%s\"\n" +msgstr "" + +#: src/stored/bls.c:290 +#, c-format +msgid "Mounted Volume \"%s\".\n" +msgstr "" + +#: src/stored/bls.c:292 +#, c-format +msgid "End of file %u on device %s, Volume \"%s\"\n" +msgstr "" + +#: src/stored/bls.c:316 +#, c-format +msgid "" +"File:blk=%u:%u blk_num=%u blen=%u First rec FI=%s SessId=%u SessTim=%u Strm=%" +"s rlen=%d\n" +msgstr "" + +#: src/stored/bls.c:325 +#, c-format +msgid "Block: %d size=%d\n" +msgstr "" + +#: src/stored/bls.c:392 +#, c-format +msgid "FileIndex=%d VolSessionId=%d VolSessionTime=%d Stream=%d DataLen=%d\n" +msgstr "" + +#: src/stored/bls.c:409 src/stored/read_record.c:388 +msgid "Fresh Volume Label" +msgstr "" + +#: src/stored/bls.c:412 src/stored/read_record.c:391 +msgid "Volume Label" +msgstr "" + +#: src/stored/bls.c:416 src/stored/label.c:1031 +msgid "Begin Job Session" +msgstr "" + +#: src/stored/bls.c:420 src/stored/label.c:1034 +msgid "End Job Session" +msgstr "" + +#: src/stored/bls.c:424 +msgid "End of Medium" +msgstr "" + +#: src/stored/bls.c:427 src/stored/label.c:1043 +msgid "Unknown" +msgstr "" + +#: src/stored/bls.c:433 src/stored/read_record.c:409 +#, c-format +msgid "%s Record: VolSessionId=%d VolSessionTime=%d JobId=%d DataLen=%d\n" +msgstr "" + +#: src/stored/bscan.c:115 +#, c-format +msgid "" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: bscan [ options ] \n" +" -b bootstrap specify a bootstrap file\n" +" -c specify configuration file\n" +" -d set debug level to nn\n" +" -m update media info in database\n" +" -n specify the database name (default bacula)\n" +" -u specify database user name (default bacula)\n" +" -P specify database host (default NULL)\n" +" -p proceed inspite of I/O errors\n" +" -r list records\n" +" -s synchronize or store in database\n" +" -S show scan progress periodically\n" +" -v verbose\n" +" -V specify Volume names (separated by |)\n" +" -w specify working directory (default from conf file)\n" +" -? print this message\n" +"\n" +msgstr "" + +#: src/stored/bscan.c:241 src/stored/stored.c:288 +#, c-format +msgid "No Storage resource defined in %s. Cannot continue.\n" +msgstr "" + +#: src/stored/bscan.c:249 src/stored/stored.c:319 +#, c-format +msgid "No Working Directory defined in %s. Cannot continue.\n" +msgstr "" + +#: src/stored/bscan.c:257 +#, c-format +msgid "Working Directory: %s not found. Cannot continue.\n" +msgstr "" + +#: src/stored/bscan.c:261 +#, c-format +msgid "Working Directory: %s is not a directory. Cannot continue.\n" +msgstr "" + +#: src/stored/bscan.c:275 src/stored/bscan.c:349 +#, c-format +msgid "First Volume Size = %sn" +msgstr "" + +#: src/stored/bscan.c:281 +msgid "Could not init Bacula database\n" +msgstr "" + +#: src/stored/bscan.c:288 +#, c-format +msgid "Using Database: %s, User: %s\n" +msgstr "" + +#: src/stored/bscan.c:323 +#, c-format +msgid "Create JobMedia for Job %s\n" +msgstr "" + +#: src/stored/bscan.c:331 +#, c-format +msgid "Could not create JobMedia record for Volume=%s Job=%s\n" +msgstr "" + +#: src/stored/bscan.c:394 +#, c-format +msgid "done: %d%%\n" +msgstr "" + +#: src/stored/bscan.c:418 +msgid "Volume is prelabeled. This tape cannot be scanned.\n" +msgstr "" + +#: src/stored/bscan.c:430 +#, c-format +msgid "Pool record for %s found in DB.\n" +msgstr "" + +#: src/stored/bscan.c:434 +#, c-format +msgid "VOL_LABEL: Pool record not found for Pool: %s\n" +msgstr "" + +#: src/stored/bscan.c:440 +#, c-format +msgid "VOL_LABEL: PoolType mismatch. DB=%s Vol=%s\n" +msgstr "" + +#: src/stored/bscan.c:444 +#, c-format +msgid "Pool type \"%s\" is OK.\n" +msgstr "" + +#: src/stored/bscan.c:454 +#, c-format +msgid "Media record for %s found in DB.\n" +msgstr "" + +#: src/stored/bscan.c:461 +#, c-format +msgid "VOL_LABEL: Media record not found for Volume: %s\n" +msgstr "" + +#: src/stored/bscan.c:468 +#, c-format +msgid "VOL_LABEL: MediaType mismatch. DB=%s Vol=%s\n" +msgstr "" + +#: src/stored/bscan.c:472 +#, c-format +msgid "Media type \"%s\" is OK.\n" +msgstr "" + +#: src/stored/bscan.c:481 +#, c-format +msgid "VOL_LABEL: OK for Volume: %s\n" +msgstr "" + +#: src/stored/bscan.c:488 +#, c-format +msgid "%d \"errors\" ignored before first Start of Session record.\n" +msgstr "" + +#: src/stored/bscan.c:499 +#, c-format +msgid "SOS_LABEL: Found Job record for JobId: %d\n" +msgstr "" + +#: src/stored/bscan.c:504 +#, c-format +msgid "SOS_LABEL: Job record not found for JobId: %d\n" +msgstr "" + +#: src/stored/bscan.c:544 +#, c-format +msgid "SOS_LABEL: VolSessId mismatch for JobId=%u. DB=%d Vol=%d\n" +msgstr "" + +#: src/stored/bscan.c:550 +#, c-format +msgid "SOS_LABEL: VolSessTime mismatch for JobId=%u. DB=%d Vol=%d\n" +msgstr "" + +#: src/stored/bscan.c:556 +#, c-format +msgid "SOS_LABEL: PoolId mismatch for JobId=%u. DB=%d Vol=%d\n" +msgstr "" + +#: src/stored/bscan.c:574 src/stored/bscan.c:1077 +#, c-format +msgid "Could not find SessId=%d SessTime=%d for EOS record.\n" +msgstr "" + +#: src/stored/bscan.c:618 +#, c-format +msgid "Could not update job record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:629 +#, c-format +msgid "End of all Volumes. VolFiles=%u VolBlocks=%u VolBytes=%s\n" +msgstr "" + +#: src/stored/bscan.c:641 +#, c-format +msgid "Could not find Job for SessId=%d SessTime=%d record.\n" +msgstr "" + +#: src/stored/bscan.c:677 +#, c-format +msgid "%s file records. At file:blk=%s:%s bytes=%s\n" +msgstr "" + +#: src/stored/bscan.c:731 +#, c-format +msgid "Got MD5 record: %s\n" +msgstr "" + +#: src/stored/bscan.c:739 +#, c-format +msgid "Got SHA1 record: %s\n" +msgstr "" + +#: src/stored/bscan.c:747 +#, c-format +msgid "Got SHA256 record: %s\n" +msgstr "" + +#: src/stored/bscan.c:755 +#, c-format +msgid "Got SHA512 record: %s\n" +msgstr "" + +#: src/stored/bscan.c:763 src/stored/bscan.c:770 +msgid "Got signed digest record\n" +msgstr "" + +#: src/stored/bscan.c:776 +#, c-format +msgid "Got Prog Names Stream: %s\n" +msgstr "" + +#: src/stored/bscan.c:782 +msgid "Got Prog Data Stream record.\n" +msgstr "" + +#: src/stored/bscan.c:792 +#, c-format +msgid "Unknown stream type!!! stream=%d len=%i\n" +msgstr "" + +#: src/stored/bscan.c:856 +#, c-format +msgid "Could not create File Attributes record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:862 +#, c-format +msgid "Created File record: %s\n" +msgstr "" + +#: src/stored/bscan.c:906 +#, c-format +msgid "Could not create media record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:910 src/stored/bscan.c:931 +#, c-format +msgid "Could not update media record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:914 +#, c-format +msgid "Created Media record for Volume: %s\n" +msgstr "" + +#: src/stored/bscan.c:935 +#, c-format +msgid "Updated Media record at end of Volume: %s\n" +msgstr "" + +#: src/stored/bscan.c:952 +#, c-format +msgid "Could not create pool record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:956 +#, c-format +msgid "Created Pool record for Pool: %s\n" +msgstr "" + +#: src/stored/bscan.c:976 +#, c-format +msgid "Created Client record for Client: %s\n" +msgstr "" + +#: src/stored/bscan.c:993 +#, c-format +msgid "Fileset \"%s\" already exists.\n" +msgstr "" + +#: src/stored/bscan.c:997 +#, c-format +msgid "Could not create FileSet record \"%s\". ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:1002 +#, c-format +msgid "Created FileSet record \"%s\"\n" +msgstr "" + +#: src/stored/bscan.c:1049 +#, c-format +msgid "Could not create JobId record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:1055 +#, c-format +msgid "Could not update job start record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:1058 +#, c-format +msgid "Created new JobId=%u record for original JobId=%u\n" +msgstr "" + +#: src/stored/bscan.c:1108 +#, c-format +msgid "Could not update JobId=%u record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:1113 +#, c-format +msgid "Updated Job termination record for JobId=%u Level=%s TermStat=%c\n" +msgstr "" + +#: src/stored/bscan.c:1135 +#, c-format +msgid "Job Termination code: %d" +msgstr "" + +#: src/stored/bscan.c:1140 +#, c-format +msgid "" +"%s\n" +"JobId: %d\n" +"Job: %s\n" +"FileSet: %s\n" +"Backup Level: %s\n" +"Client: %s\n" +"Start time: %s\n" +"End time: %s\n" +"Files Written: %s\n" +"Bytes Written: %s\n" +"Volume Session Id: %d\n" +"Volume Session Time: %d\n" +"Last Volume Bytes: %s\n" +"Termination: %s\n" +"\n" +msgstr "" + +#: src/stored/bscan.c:1197 +#, c-format +msgid "Could not create JobMedia record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:1201 +#, c-format +msgid "Created JobMedia record JobId %d, MediaId %d\n" +msgstr "" + +#: src/stored/bscan.c:1217 +#, c-format +msgid "Could not find SessId=%d SessTime=%d for MD5/SHA1 record.\n" +msgstr "" + +#: src/stored/bscan.c:1231 +#, c-format +msgid "Could not add MD5/SHA1 to File record. ERR=%s\n" +msgstr "" + +#: src/stored/bscan.c:1236 +msgid "Updated MD5/SHA1 record\n" +msgstr "" + +#: src/stored/btape.c:172 src/stored/stored.c:128 +#, c-format +msgid "Tape block size (%d) not multiple of system size (%d)\n" +msgstr "" + +#: src/stored/btape.c:176 src/stored/stored.c:132 +#, c-format +msgid "Tape block size (%d) is not a power of 2\n" +msgstr "" + +#: src/stored/btape.c:179 +#, c-format +msgid "" +"\n" +"\n" +"!!!! Warning large disk addressing disabled. boffset_t=%d should be 8 or " +"more !!!!!\n" +"\n" +"\n" +msgstr "" + +#: src/stored/btape.c:186 +#, c-format +msgid "32 bit printf/scanf problem. i=%d x32=%u y32=%u\n" +msgstr "" + +#: src/stored/btape.c:195 +msgid "64 bit printf/scanf problem. i=%d x64=%" +msgstr "" + +#: src/stored/btape.c:195 +msgid " y64=%" +msgstr "" + +#: src/stored/btape.c:200 +#, c-format +msgid "Tape block granularity is %d bytes.\n" +msgstr "" + +#: src/stored/btape.c:269 +msgid "No archive name specified.\n" +msgstr "" + +#: src/stored/btape.c:273 +msgid "Improper number of arguments specified.\n" +msgstr "" + +#: src/stored/btape.c:287 +msgid "btape does not work with DVD storage.\n" +msgstr "" + +#: src/stored/btape.c:292 +msgid "btape only works with tape storage.\n" +msgstr "" + +#: src/stored/btape.c:368 +#, c-format +msgid "open device %s: OK\n" +msgstr "" + +#: src/stored/btape.c:391 +msgid "Enter Volume Name: " +msgstr "" + +#: src/stored/btape.c:398 +#, c-format +msgid "Device open failed. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:404 +#, c-format +msgid "Wrote Volume label for volume \"%s\".\n" +msgstr "" + +#: src/stored/btape.c:418 +msgid "Volume has no label.\n" +msgstr "" + +#: src/stored/btape.c:421 +msgid "Volume label read correctly.\n" +msgstr "" + +#: src/stored/btape.c:424 +#, c-format +msgid "I/O error on device: ERR=%s" +msgstr "" + +#: src/stored/btape.c:427 +msgid "Volume name error\n" +msgstr "" + +#: src/stored/btape.c:430 +#, c-format +msgid "Error creating label. ERR=%s" +msgstr "" + +#: src/stored/btape.c:433 +msgid "Volume version error.\n" +msgstr "" + +#: src/stored/btape.c:436 +msgid "Bad Volume label type.\n" +msgstr "" + +#: src/stored/btape.c:439 +msgid "Unknown error.\n" +msgstr "" + +#: src/stored/btape.c:457 +#, c-format +msgid "Bad status from load. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:459 +#, c-format +msgid "Loaded %s\n" +msgstr "" + +#: src/stored/btape.c:468 src/stored/btape.c:807 src/stored/btape.c:849 +#: src/stored/btape.c:919 src/stored/btape.c:961 src/stored/btape.c:1229 +#, c-format +msgid "Bad status from rewind. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:471 src/stored/btape.c:1237 +#, c-format +msgid "Rewound %s\n" +msgstr "" + +#: src/stored/btape.c:497 src/stored/btape.c:1241 +#, c-format +msgid "Bad status from weof. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:501 +#, c-format +msgid "Wrote 1 EOF to %s\n" +msgstr "" + +#: src/stored/btape.c:504 +#, c-format +msgid "Wrote %d EOFs to %s\n" +msgstr "" + +#: src/stored/btape.c:522 +msgid "Moved to end of medium.\n" +msgstr "" + +#: src/stored/btape.c:549 +#, c-format +msgid "Bad status from bsf. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:551 +#, c-format +msgid "Backspaced %d file%s.\n" +msgstr "" + +#: src/stored/btape.c:568 +#, c-format +msgid "Bad status from bsr. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:570 +#, c-format +msgid "Backspaced %d record%s.\n" +msgstr "" + +#: src/stored/btape.c:580 src/stored/status.c:302 +#, c-format +msgid "Configured device capabilities:\n" +msgstr "" + +#: src/stored/btape.c:598 +#, c-format +msgid "Device status:\n" +msgstr "" + +#: src/stored/btape.c:612 src/stored/status.c:341 +#, c-format +msgid "Device parameters:\n" +msgstr "" + +#: src/stored/btape.c:617 +#, c-format +msgid "Status:\n" +msgstr "" + +#: src/stored/btape.c:632 +msgid "" +"Test writting larger and larger records.\n" +"This is a torture test for records.\n" +"I am going to write\n" +"larger and larger records. It will stop when the record size\n" +"plus the header exceeds the block size (by default about 64K)\n" +msgstr "" + +#: src/stored/btape.c:638 +msgid "Do you want to continue? (y/n): " +msgstr "" + +#: src/stored/btape.c:640 src/stored/btape.c:1857 +msgid "Command aborted.\n" +msgstr "" + +#: src/stored/btape.c:656 +#, c-format +msgid "Block %d i=%d\n" +msgstr "" + +#: src/stored/btape.c:682 +msgid "Skipping read backwards test because BSR turned off.\n" +msgstr "" + +#: src/stored/btape.c:686 +msgid "" +"\n" +"=== Write, backup, and re-read test ===\n" +"\n" +"I'm going to write three records and an EOF\n" +"then backup over the EOF and re-read the last record.\n" +"Bacula does this after writing the last block on the\n" +"tape to verify that the block was written correctly.\n" +"\n" +"This is not an *essential* feature ...\n" +"\n" +msgstr "" + +#: src/stored/btape.c:699 src/stored/btape.c:710 src/stored/btape.c:721 +#: src/stored/btape.c:819 src/stored/btape.c:835 src/stored/btape.c:931 +#: src/stored/btape.c:947 src/stored/btape.c:1566 src/stored/btape.c:2451 +msgid "Error writing record to block.\n" +msgstr "" + +#: src/stored/btape.c:703 src/stored/btape.c:714 src/stored/btape.c:725 +#: src/stored/btape.c:823 src/stored/btape.c:839 src/stored/btape.c:935 +#: src/stored/btape.c:951 src/stored/btape.c:1570 src/stored/btape.c:2455 +msgid "Error writing block to device.\n" +msgstr "" + +#: src/stored/btape.c:706 +#, c-format +msgid "Wrote first record of %d bytes.\n" +msgstr "" + +#: src/stored/btape.c:717 +#, c-format +msgid "Wrote second record of %d bytes.\n" +msgstr "" + +#: src/stored/btape.c:728 +#, c-format +msgid "Wrote third record of %d bytes.\n" +msgstr "" + +#: src/stored/btape.c:735 src/stored/btape.c:740 +#, c-format +msgid "Backspace file failed! ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:744 +msgid "Backspaced over EOF OK.\n" +msgstr "" + +#: src/stored/btape.c:746 +#, c-format +msgid "Backspace record failed! ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:749 +msgid "Backspace record OK.\n" +msgstr "" + +#: src/stored/btape.c:752 src/stored/btape.c:758 +#, c-format +msgid "Read block failed! ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:763 +msgid "Bad data in record. Test failed!\n" +msgstr "" + +#: src/stored/btape.c:767 +msgid "" +"\n" +"Block re-read correct. Test succeeded!\n" +msgstr "" + +#: src/stored/btape.c:768 +msgid "" +"=== End Write, backup, and re-read test ===\n" +"\n" +msgstr "" + +#: src/stored/btape.c:775 +msgid "" +"This is not terribly serious since Bacula only uses\n" +"this function to verify the last block written to the\n" +"tape. Bacula will skip the last block verification\n" +"if you add:\n" +"\n" +"Backward Space Record = No\n" +"\n" +"to your Storage daemon's Device resource definition.\n" +msgstr "" + +#: src/stored/btape.c:799 +msgid "" +"\n" +"=== Write, rewind, and re-read test ===\n" +"\n" +"I'm going to write 1000 records and an EOF\n" +"then write 1000 records and an EOF, then rewind,\n" +"and re-read the data to verify that it is correct.\n" +"\n" +"This is an *essential* feature ...\n" +"\n" +msgstr "" + +#: src/stored/btape.c:827 src/stored/btape.c:843 src/stored/btape.c:939 +#: src/stored/btape.c:955 +#, c-format +msgid "Wrote 1000 blocks of %d bytes.\n" +msgstr "" + +#: src/stored/btape.c:852 src/stored/btape.c:964 +msgid "Rewind OK.\n" +msgstr "" + +#: src/stored/btape.c:859 src/stored/btape.c:1013 +msgid "Got EOF on tape.\n" +msgstr "" + +#: src/stored/btape.c:864 +#, c-format +msgid "Read block %d failed! ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:870 +#, c-format +msgid "Read record failed. Block %d! ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:876 src/stored/btape.c:1043 +#, c-format +msgid "Bad data in record. Expected %d, got %d at byte %d. Test failed!\n" +msgstr "" + +#: src/stored/btape.c:883 +msgid "1000 blocks re-read correctly.\n" +msgstr "" + +#: src/stored/btape.c:886 src/stored/btape.c:1050 +msgid "" +"=== Test Succeeded. End Write, rewind, and re-read test ===\n" +"\n" +msgstr "" + +#: src/stored/btape.c:911 +msgid "" +"\n" +"=== Write, rewind, and position test ===\n" +"\n" +"I'm going to write 1000 records and an EOF\n" +"then write 1000 records and an EOF, then rewind,\n" +"and position to a few blocks and verify that it is correct.\n" +"\n" +"This is an *essential* feature ...\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1004 +#, c-format +msgid "Reposition to file:block %d:%d\n" +msgstr "" + +#: src/stored/btape.c:1006 +msgid "Reposition error.\n" +msgstr "" + +#: src/stored/btape.c:1019 +#, c-format +msgid "" +"Read block %d failed! file=%d blk=%d. ERR=%s\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1021 +msgid "" +"This may be because the tape drive block size is not\n" +" set to variable blocking as normally used by Bacula.\n" +" Please see the Tape Testing chapter in the manual and \n" +" look for using mt with defblksize and setoptions\n" +"If your tape drive block size is correct, then perhaps\n" +" your SCSI driver is *really* stupid and does not\n" +" correctly report the file:block after a FSF. In this\n" +" case try setting:\n" +" Fast Forward Space File = no\n" +" in your Device resource.\n" +msgstr "" + +#: src/stored/btape.c:1037 +#, c-format +msgid "Read record failed! ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1048 +#, c-format +msgid "Block %d re-read correctly.\n" +msgstr "" + +#: src/stored/btape.c:1069 +msgid "" +"\n" +"\n" +"=== Append files test ===\n" +"\n" +"This test is essential to Bacula.\n" +"\n" +"I'm going to write one record in file 0,\n" +" two records in file 1,\n" +" and three records in file 2\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1093 +msgid "Now moving to end of medium.\n" +msgstr "" + +#: src/stored/btape.c:1095 src/stored/btape.c:1324 +#, c-format +msgid "We should be in file 3. I am at file %d. %s\n" +msgstr "" + +#: src/stored/btape.c:1096 src/stored/btape.c:1114 src/stored/btape.c:1313 +#: src/stored/btape.c:1325 src/stored/btape.c:1338 src/stored/btape.c:1355 +msgid "This is correct!" +msgstr "" + +#: src/stored/btape.c:1096 src/stored/btape.c:1114 src/stored/btape.c:1313 +#: src/stored/btape.c:1325 src/stored/btape.c:1338 src/stored/btape.c:1355 +msgid "This is NOT correct!!!!" +msgstr "" + +#: src/stored/btape.c:1102 +msgid "" +"\n" +"Now the important part, I am going to attempt to append to the tape.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1109 +msgid "" +"Done appending, there should be no I/O errors\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1110 +msgid "Doing Bacula scan of blocks:\n" +msgstr "" + +#: src/stored/btape.c:1112 +msgid "End scanning the tape.\n" +msgstr "" + +#: src/stored/btape.c:1113 src/stored/btape.c:1337 +#, c-format +msgid "We should be in file 4. I am at file %d. %s\n" +msgstr "" + +#: src/stored/btape.c:1138 +msgid "" +"\n" +"Autochanger enabled, but no name or no command device specified.\n" +msgstr "" + +#: src/stored/btape.c:1142 +msgid "" +"\n" +"Ah, I see you have an autochanger configured.\n" +"To test the autochanger you must have a blank tape\n" +" that I can write on in Slot 1.\n" +msgstr "" + +#: src/stored/btape.c:1145 +msgid "" +"\n" +"Do you wish to continue with the Autochanger test? (y/n): " +msgstr "" + +#: src/stored/btape.c:1152 +msgid "" +"\n" +"\n" +"=== Autochanger test ===\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1161 +msgid "3301 Issuing autochanger \"loaded\" command.\n" +msgstr "" + +#: src/stored/btape.c:1170 +#, c-format +msgid "3991 Bad autochanger command: %s\n" +msgstr "" + +#: src/stored/btape.c:1171 +#, c-format +msgid "3991 result=\"%s\": ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1175 +#, c-format +msgid "Slot %d loaded. I am going to unload it.\n" +msgstr "" + +#: src/stored/btape.c:1177 +msgid "Nothing loaded in the drive. OK.\n" +msgstr "" + +#: src/stored/btape.c:1184 +#, c-format +msgid "3302 Issuing autochanger \"unload %d %d\" command.\n" +msgstr "" + +#: src/stored/btape.c:1189 +#, c-format +msgid "unload status=%s %d\n" +msgstr "" + +#: src/stored/btape.c:1189 +msgid "Bad" +msgstr "" + +#: src/stored/btape.c:1192 +#, c-format +msgid "3992 Bad autochanger command: %s\n" +msgstr "" + +#: src/stored/btape.c:1193 +#, c-format +msgid "3992 result=\"%s\": ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1203 +#, c-format +msgid "3303 Issuing autochanger \"load %d %d\" command.\n" +msgstr "" + +#: src/stored/btape.c:1211 +#, c-format +msgid "3303 Autochanger \"load %d %d\" status is OK.\n" +msgstr "" + +#: src/stored/btape.c:1215 +#, c-format +msgid "3993 Bad autochanger command: %s\n" +msgstr "" + +#: src/stored/btape.c:1216 +#, c-format +msgid "3993 result=\"%s\": ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1231 +msgid "" +"\n" +"The test failed, probably because you need to put\n" +"a longer sleep time in the mtx-script in the load) case.\n" +"Adding a 30 second sleep and trying again ...\n" +msgstr "" + +#: src/stored/btape.c:1244 +#, c-format +msgid "Wrote EOF to %s\n" +msgstr "" + +#: src/stored/btape.c:1248 +#, c-format +msgid "" +"\n" +"The test worked this time. Please add:\n" +"\n" +" sleep %d\n" +"\n" +"to your mtx-changer script in the load) case.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1253 +msgid "" +"\n" +"The test autochanger worked!!\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1264 +msgid "You must correct this error or the Autochanger will not work.\n" +msgstr "" + +#: src/stored/btape.c:1282 +msgid "" +"\n" +"\n" +"=== Forward space files test ===\n" +"\n" +"This test is essential to Bacula.\n" +"\n" +"I'm going to write five files then test forward spacing\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1307 +msgid "Now forward spacing 1 file.\n" +msgstr "" + +#: src/stored/btape.c:1309 src/stored/btape.c:1321 src/stored/btape.c:1334 +#: src/stored/btape.c:1352 src/stored/btape.c:1521 +#, c-format +msgid "Bad status from fsr. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1312 +#, c-format +msgid "We should be in file 1. I am at file %d. %s\n" +msgstr "" + +#: src/stored/btape.c:1319 +msgid "Now forward spacing 2 files.\n" +msgstr "" + +#: src/stored/btape.c:1332 +msgid "Now forward spacing 4 files.\n" +msgstr "" + +#: src/stored/btape.c:1344 +msgid "" +"The test worked this time. Please add:\n" +"\n" +" Fast Forward Space File = no\n" +"\n" +"to your Device resource for this drive.\n" +msgstr "" + +#: src/stored/btape.c:1350 +msgid "Now forward spacing 1 more file.\n" +msgstr "" + +#: src/stored/btape.c:1354 +#, c-format +msgid "We should be in file 5. I am at file %d. %s\n" +msgstr "" + +#: src/stored/btape.c:1359 +msgid "" +"\n" +"=== End Forward space files test ===\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1363 +msgid "" +"\n" +"The forward space file test failed.\n" +msgstr "" + +#: src/stored/btape.c:1365 +msgid "" +"You have Fast Forward Space File enabled.\n" +"I am turning it off then retrying the test.\n" +msgstr "" + +#: src/stored/btape.c:1371 +msgid "" +"You must correct this error or Bacula will not work.\n" +"Some systems, e.g. OpenBSD, require you to set\n" +" Use MTIOCGET= no\n" +"in your device resource. Use with caution.\n" +msgstr "" + +#: src/stored/btape.c:1403 +msgid "" +"\n" +"Append test failed. Attempting again.\n" +"Setting \"Hardware End of Medium = no\n" +" and \"Fast Forward Space File = no\n" +"and retrying append test.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1411 +msgid "" +"\n" +"\n" +"It looks like the test worked this time, please add:\n" +"\n" +" Hardware End of Medium = No\n" +"\n" +" Fast Forward Space File = No\n" +"to your Device resource in the Storage conf file.\n" +msgstr "" + +#: src/stored/btape.c:1418 +msgid "" +"\n" +"\n" +"That appears *NOT* to have corrected the problem.\n" +msgstr "" + +#: src/stored/btape.c:1423 +msgid "" +"\n" +"\n" +"It looks like the append failed. Attempting again.\n" +"Setting \"BSF at EOM = yes\" and retrying append test.\n" +msgstr "" + +#: src/stored/btape.c:1428 +msgid "" +"\n" +"\n" +"It looks like the test worked this time, please add:\n" +"\n" +" Hardware End of Medium = No\n" +" Fast Forward Space File = No\n" +" BSF at EOM = yes\n" +"\n" +"to your Device resource in the Storage conf file.\n" +msgstr "" + +#: src/stored/btape.c:1439 +msgid "" +"\n" +"Append test failed.\n" +"\n" +"\n" +"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n" +"Unable to correct the problem. You MUST fix this\n" +"problem before Bacula can use your tape drive correctly\n" +"\n" +"Perhaps running Bacula in fixed block mode will work.\n" +"Do so by setting:\n" +"\n" +"Minimum Block Size = nnn\n" +"Maximum Block Size = nnn\n" +"\n" +"in your Storage daemon's Device definition.\n" +"nnn must match your tape driver's block size, which\n" +"can be determined by reading your tape manufacturers\n" +"information, and the information on your kernel dirver.\n" +"Fixed block sizes, however, are not normally an ideal solution.\n" +"\n" +"Some systems, e.g. OpenBSD, require you to set\n" +" Use MTIOCGET= no\n" +"in your device resource. Use with caution.\n" +msgstr "" + +#: src/stored/btape.c:1460 +msgid "" +"\n" +"The above Bacula scan should have output identical to what follows.\n" +"Please double check it ...\n" +"=== Sample correct output ===\n" +"1 block of 64448 bytes in file 1\n" +"End of File mark.\n" +"2 blocks of 64448 bytes in file 2\n" +"End of File mark.\n" +"3 blocks of 64448 bytes in file 3\n" +"End of File mark.\n" +"1 block of 64448 bytes in file 4\n" +"End of File mark.\n" +"Total files=4, blocks=7, bytes = 451,136\n" +"=== End sample correct output ===\n" +"\n" +"If the above scan output is not identical to the\n" +"sample output, you MUST correct the problem\n" +"or Bacula will not be able to write multiple Jobs to \n" +"the tape.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1499 +#, c-format +msgid "Bad status from fsf. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1503 +msgid "Forward spaced 1 file.\n" +msgstr "" + +#: src/stored/btape.c:1506 +#, c-format +msgid "Forward spaced %d files.\n" +msgstr "" + +#: src/stored/btape.c:1525 +msgid "Forward spaced 1 record.\n" +msgstr "" + +#: src/stored/btape.c:1528 +#, c-format +msgid "Forward spaced %d records.\n" +msgstr "" + +#: src/stored/btape.c:1573 +#, c-format +msgid "Wrote one record of %d bytes.\n" +msgstr "" + +#: src/stored/btape.c:1575 +msgid "Wrote block to device.\n" +msgstr "" + +#: src/stored/btape.c:1590 +msgid "Enter length to read: " +msgstr "" + +#: src/stored/btape.c:1595 +msgid "Bad length entered, using default of 1024 bytes.\n" +msgstr "" + +#: src/stored/btape.c:1604 +#, c-format +msgid "Read of %d bytes gives stat=%d. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1627 src/stored/btape.c:1676 +#, c-format +msgid "End of tape\n" +msgstr "" + +#: src/stored/btape.c:1632 +#, c-format +msgid "Starting scan at file %u\n" +msgstr "" + +#: src/stored/btape.c:1637 src/stored/dev.c:1314 +#, c-format +msgid "read error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/btape.c:1639 +#, c-format +msgid "Bad status from read %d. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1642 src/stored/btape.c:1656 src/stored/btape.c:1720 +#: src/stored/btape.c:1732 src/stored/btape.c:1745 src/stored/btape.c:1761 +#, c-format +msgid "1 block of %d bytes in file %d\n" +msgstr "" + +#: src/stored/btape.c:1645 src/stored/btape.c:1659 src/stored/btape.c:1723 +#: src/stored/btape.c:1735 src/stored/btape.c:1748 src/stored/btape.c:1764 +#, c-format +msgid "%d blocks of %d bytes in file %d\n" +msgstr "" + +#: src/stored/btape.c:1667 src/stored/btape.c:1739 +#, c-format +msgid "End of File mark.\n" +msgstr "" + +#: src/stored/btape.c:1688 src/stored/btape.c:1792 +#, c-format +msgid "Total files=%d, blocks=%d, bytes = %s\n" +msgstr "" + +#: src/stored/btape.c:1752 +#, c-format +msgid "Short block read.\n" +msgstr "" + +#: src/stored/btape.c:1755 +#, c-format +msgid "Error reading block. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1779 +#, c-format +msgid "" +"Blk_block: %u dev_blk=%u blen=%u First rec FI=%s SessId=%u SessTim=%u Strm=%" +"s rlen=%d\n" +msgstr "" + +#: src/stored/btape.c:1801 +#, c-format +msgid "Device status: %u. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:1831 +msgid "" +"\n" +"This command simulates Bacula writing to a tape.\n" +"It requires either one or two blank tapes, which it\n" +"will label and write.\n" +"\n" +"If you have an autochanger configured, it will use\n" +"the tapes that are in slots 1 and 2, otherwise, you will\n" +"be prompted to insert the tapes when necessary.\n" +"\n" +"It will print a status approximately\n" +"every 322 MB, and write an EOF every 3.2 GB. If you have\n" +"selected the simple test option, after writing the first tape\n" +"it will rewind it and re-read the last block written.\n" +"\n" +"If you have selected the multiple tape test, when the first tape\n" +"fills, it will ask for a second, and after writing a few more \n" +"blocks, it will stop. Then it will begin re-reading the\n" +"two tapes.\n" +"\n" +"This may take a long time -- hours! ...\n" +"\n" +msgstr "" + +#: src/stored/btape.c:1848 +msgid "" +"Do you want to run the simplified test (s) with one tape\n" +"or the complete multiple tape (m) test: (s/m) " +msgstr "" + +#: src/stored/btape.c:1851 +msgid "Simple test (single tape) selected.\n" +msgstr "" + +#: src/stored/btape.c:1854 +msgid "Multiple tape test selected.\n" +msgstr "" + +#: src/stored/btape.c:1893 +msgid "Wrote Start of Session label.\n" +msgstr "" + +#: src/stored/btape.c:1924 +#, c-format +msgid "%s Begin writing Bacula records to tape ...\n" +msgstr "" + +#: src/stored/btape.c:1926 +#, c-format +msgid "%s Begin writing Bacula records to first tape ...\n" +msgstr "" + +#: src/stored/btape.c:1967 +#, c-format +msgid "Wrote blk_block=%u, dev_blk_num=%u VolBytes=%s rate=%.1f KB/s\n" +msgstr "" + +#: src/stored/btape.c:1977 +#, c-format +msgid "%s Flush block, write EOF\n" +msgstr "" + +#: src/stored/btape.c:1988 +msgid "Not OK\n" +msgstr "" + +#: src/stored/btape.c:2018 +msgid "Set ok=false after write_block_to_device.\n" +msgstr "" + +#: src/stored/btape.c:2021 +msgid "Wrote End of Session label.\n" +msgstr "" + +#: src/stored/btape.c:2045 +#, c-format +msgid "Wrote state file last_block_num1=%d last_block_num2=%d\n" +msgstr "" + +#: src/stored/btape.c:2049 +#, c-format +msgid "Could not create state file: %s ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:2057 +#, c-format +msgid "" +"\n" +"\n" +"%s Done filling tape at %d:%d. Now beginning re-read of tape ...\n" +msgstr "" + +#: src/stored/btape.c:2061 +#, c-format +msgid "" +"\n" +"\n" +"%s Done filling tapes at %d:%d. Now beginning re-read of first tape ...\n" +msgstr "" + +#: src/stored/btape.c:2100 +msgid "" +"\n" +"The state file level has changed. You must redo\n" +"the fill command.\n" +msgstr "" + +#: src/stored/btape.c:2106 +#, c-format +msgid "" +"\n" +"Could not find the state file: %s ERR=%s\n" +"You must redo the fill command.\n" +msgstr "" + +#: src/stored/btape.c:2162 +msgid "Mount first tape. Press enter when ready: " +msgstr "" + +#: src/stored/btape.c:2177 +msgid "Rewinding.\n" +msgstr "" + +#: src/stored/btape.c:2182 +#, c-format +msgid "Reading the first 10000 records from %u:%u.\n" +msgstr "" + +#: src/stored/btape.c:2186 src/stored/btape.c:2251 +#, c-format +msgid "Reposition from %u:%u to %u:%u\n" +msgstr "" + +#: src/stored/btape.c:2189 src/stored/btape.c:2238 src/stored/btape.c:2254 +#, c-format +msgid "Reposition error. ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:2192 +#, c-format +msgid "Reading block %u.\n" +msgstr "" + +#: src/stored/btape.c:2194 src/stored/btape.c:2243 src/stored/btape.c:2259 +#, c-format +msgid "Error reading block: ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:2199 +msgid "" +"\n" +"The last block on the tape matches. Test succeeded.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:2201 +msgid "" +"\n" +"The last block of the first tape matches.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:2224 +msgid "Mount second tape. Press enter when ready: " +msgstr "" + +#: src/stored/btape.c:2236 +#, c-format +msgid "Reposition from %u:%u to 0:1\n" +msgstr "" + +#: src/stored/btape.c:2241 src/stored/btape.c:2257 +#, c-format +msgid "Reading block %d.\n" +msgstr "" + +#: src/stored/btape.c:2247 +msgid "" +"\n" +"The first block on the second tape matches.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:2263 +msgid "" +"\n" +"The last block on the second tape matches. Test succeeded.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:2278 +#, c-format +msgid "10000 records read now at %d:%d\n" +msgstr "" + +#: src/stored/btape.c:2301 src/stored/btape.c:2312 src/stored/btape.c:2360 +msgid "Last block written" +msgstr "" + +#: src/stored/btape.c:2303 src/stored/btape.c:2313 +msgid "Block read back" +msgstr "" + +#: src/stored/btape.c:2304 +#, c-format +msgid "" +"\n" +"\n" +"The blocks differ at byte %u\n" +msgstr "" + +#: src/stored/btape.c:2305 +msgid "" +"\n" +"\n" +"!!!! The last block written and the block\n" +"that was read back differ. The test FAILED !!!!\n" +"This must be corrected before you use Bacula\n" +"to write multi-tape Volumes.!!!!\n" +msgstr "" + +#: src/stored/btape.c:2344 +#, c-format +msgid "Last block at: %u:%u this_dev_block_num=%d\n" +msgstr "" + +#: src/stored/btape.c:2358 +#, c-format +msgid "Block not written: FileIndex=%u blk_block=%u Size=%u\n" +msgstr "" + +#: src/stored/btape.c:2362 +msgid "Block not written" +msgstr "" + +#: src/stored/btape.c:2377 +#, c-format +msgid "End of tape %d:%d. VolumeCapacity=%s. Write rate = %.1f KB/s\n" +msgstr "" + +#: src/stored/btape.c:2427 +msgid "Test writing blocks of 64512 bytes to tape.\n" +msgstr "" + +#: src/stored/btape.c:2429 +msgid "How many blocks do you want to write? (1000): " +msgstr "" + +#: src/stored/btape.c:2444 +#, c-format +msgid "Begin writing %d Bacula blocks to tape ...\n" +msgstr "" + +#: src/stored/btape.c:2496 +#, c-format +msgid "Begin writing raw blocks of %u bytes.\n" +msgstr "" + +#: src/stored/btape.c:2520 +#, c-format +msgid "Write failed at block %u. stat=%d ERR=%s\n" +msgstr "" + +#: src/stored/btape.c:2529 +msgid "test autochanger" +msgstr "" + +#: src/stored/btape.c:2530 +msgid "backspace file" +msgstr "" + +#: src/stored/btape.c:2531 +msgid "backspace record" +msgstr "" + +#: src/stored/btape.c:2532 +msgid "list device capabilities" +msgstr "" + +#: src/stored/btape.c:2533 +msgid "clear tape errors" +msgstr "" + +#: src/stored/btape.c:2534 +msgid "go to end of Bacula data for append" +msgstr "" + +#: src/stored/btape.c:2535 +msgid "go to the physical end of medium" +msgstr "" + +#: src/stored/btape.c:2536 +msgid "fill tape, write onto second volume" +msgstr "" + +#: src/stored/btape.c:2537 +msgid "read filled tape" +msgstr "" + +#: src/stored/btape.c:2538 +msgid "forward space a file" +msgstr "" + +#: src/stored/btape.c:2539 +msgid "forward space a record" +msgstr "" + +#: src/stored/btape.c:2541 +msgid "write a Bacula label to the tape" +msgstr "" + +#: src/stored/btape.c:2542 +msgid "load a tape" +msgstr "" + +#: src/stored/btape.c:2543 +msgid "quit btape" +msgstr "" + +#: src/stored/btape.c:2544 +msgid "use write() to fill tape" +msgstr "" + +#: src/stored/btape.c:2545 +msgid "read and print the Bacula tape label" +msgstr "" + +#: src/stored/btape.c:2546 +msgid "test record handling functions" +msgstr "" + +#: src/stored/btape.c:2547 +msgid "rewind the tape" +msgstr "" + +#: src/stored/btape.c:2548 +msgid "read() tape block by block to EOT and report" +msgstr "" + +#: src/stored/btape.c:2549 +msgid "Bacula read block by block to EOT and report" +msgstr "" + +#: src/stored/btape.c:2550 +msgid "print tape status" +msgstr "" + +#: src/stored/btape.c:2551 +msgid "General test Bacula tape functions" +msgstr "" + +#: src/stored/btape.c:2552 +msgid "write an EOF on the tape" +msgstr "" + +#: src/stored/btape.c:2553 +msgid "write a single Bacula block" +msgstr "" + +#: src/stored/btape.c:2554 +msgid "read a single record" +msgstr "" + +#: src/stored/btape.c:2555 +msgid "read a single Bacula block" +msgstr "" + +#: src/stored/btape.c:2556 +msgid "quick fill command" +msgstr "" + +#: src/stored/btape.c:2577 +#, c-format +msgid "\"%s\" is an invalid command\n" +msgstr "" + +#: src/stored/btape.c:2586 +#, c-format +msgid "Interactive commands:\n" +msgstr "" + +#: src/stored/btape.c:2597 +#, c-format +msgid "" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: btape \n" +" -b specify bootstrap file\n" +" -c set configuration file to file\n" +" -d set debug level to nn\n" +" -p proceed inspite of I/O errors\n" +" -s turn off signals\n" +" -v be verbose\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/stored/btape.c:2682 +#, c-format +msgid "Mount second Volume on device %s and press return when ready: " +msgstr "" + +#: src/stored/btape.c:2709 +#, c-format +msgid "Mount blank Volume on device %s and press return when ready: " +msgstr "" + +#: src/stored/btape.c:2727 +#, c-format +msgid "End of Volume \"%s\" %d records.\n" +msgstr "" + +#: src/stored/btape.c:2740 +#, c-format +msgid "Read block=%u, VolBytes=%s rate=%.1f KB/s\n" +msgstr "" + +#: src/stored/btape.c:2752 src/stored/mount.c:627 +#, c-format +msgid "Cannot open Dev=%s, Vol=%s\n" +msgstr "" + +#: src/stored/butil.c:59 +msgid "Nohdr," +msgstr "" + +#: src/stored/butil.c:62 +msgid "partial," +msgstr "" + +#: src/stored/butil.c:65 +msgid "empty," +msgstr "" + +#: src/stored/butil.c:68 +msgid "Nomatch," +msgstr "" + +#: src/stored/butil.c:71 +msgid "cont," +msgstr "" + +#: src/stored/butil.c:147 +msgid "Volume name or names is too long. Please use a .bsr file.\n" +msgstr "" + +#: src/stored/butil.c:167 +#, c-format +msgid "Cannot find device \"%s\" in config file %s.\n" +msgstr "" + +#: src/stored/butil.c:174 +#, c-format +msgid "Cannot init device %s\n" +msgstr "" + +#: src/stored/butil.c:194 +#, c-format +msgid "Cannot open %s\n" +msgstr "" + +#: src/stored/butil.c:277 +#, c-format +msgid "Could not find device \"%s\" in config file %s.\n" +msgstr "" + +#: src/stored/butil.c:282 +#, c-format +msgid "Using device: \"%s\" for reading.\n" +msgstr "" + +#: src/stored/butil.c:285 +#, c-format +msgid "Using device: \"%s\" for writing.\n" +msgstr "" + +#: src/stored/butil.c:301 +msgid "Unexpected End of Data\n" +msgstr "" + +#: src/stored/butil.c:303 +msgid "Unexpected End of Tape\n" +msgstr "" + +#: src/stored/butil.c:305 +msgid "Unexpected End of File\n" +msgstr "" + +#: src/stored/butil.c:307 +msgid "Tape Door is Open\n" +msgstr "" + +#: src/stored/butil.c:309 +msgid "Unexpected Tape is Off-line\n" +msgstr "" + +#: src/stored/dev.c:119 +#, c-format +msgid "Unable to stat device %s: ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:130 +#, c-format +msgid "" +"%s is an unknown device type. Must be tape or directory\n" +" or have RequiresMount=yes for DVD. st_mode=%x\n" +msgstr "" + +#: src/stored/dev.c:189 +#, c-format +msgid "Unable to stat mount point %s: ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:195 +msgid "" +"Mount and unmount commands must defined for a device which requires mount.\n" +msgstr "" + +#: src/stored/dev.c:198 +msgid "Write part command must be defined for a device which requires mount.\n" +msgstr "" + +#: src/stored/dev.c:203 +#, c-format +msgid "Block size %u on device %s is too large, using default %u\n" +msgstr "" + +#: src/stored/dev.c:208 +#, c-format +msgid "Max block size %u not multiple of device %s block size.\n" +msgstr "" + +#: src/stored/dev.c:224 src/stored/dev.c:230 +#, c-format +msgid "Unable to init cond variable: ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:326 +msgid "Illegal mode given to open dev.\n" +msgstr "" + +#: src/stored/dev.c:421 src/stored/device.c:325 +#, c-format +msgid "Unable to open device %s: ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:456 +#, c-format +msgid "Could not open file device %s. No Volume name given.\n" +msgstr "" + +#: src/stored/dev.c:479 src/stored/dev.c:647 +#, c-format +msgid "Could not open: %s, ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:523 +#, c-format +msgid "Could not open DVD device %s. No Volume name given.\n" +msgstr "" + +#: src/stored/dev.c:572 +#, c-format +msgid "The DVD in device %s contains data, please blank it before writing.\n" +msgstr "" + +#: src/stored/dev.c:593 +#, c-format +msgid "Unable to stat DVD part 1 file %s: ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:601 +#, c-format +msgid "DVD part 1 is not a regular file %s.\n" +msgstr "" + +#: src/stored/dev.c:621 +#, c-format +msgid "There is no valid DVD in device %s.\n" +msgstr "" + +#: src/stored/dev.c:627 +#, c-format +msgid "Could not mount DVD device %s.\n" +msgstr "" + +#: src/stored/dev.c:677 +#, c-format +msgid "Could not fstat: %s, ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:711 +#, c-format +msgid "Bad call to rewind. Device %s not open\n" +msgstr "" + +#: src/stored/dev.c:750 +#, c-format +msgid "No tape loaded or drive offline on %s.\n" +msgstr "" + +#: src/stored/dev.c:760 +#, c-format +msgid "Rewind error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:770 src/stored/dev.c:848 src/stored/dev.c:985 +#: src/stored/dev.c:1561 +#, c-format +msgid "lseek error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:819 +#, c-format +msgid "Bad call to eod. Device %s not open\n" +msgstr "" + +#: src/stored/dev.c:884 +#, c-format +msgid "ioctl MTEOM error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:893 src/stored/dev.c:1026 +#, c-format +msgid "ioctl MTIOCGET error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:971 +msgid "Bad device call. Device not open\n" +msgstr "" + +#: src/stored/dev.c:984 +#, c-format +msgid "Seek error: ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:1021 +msgid " Bacula status:" +msgstr "" + +#: src/stored/dev.c:1022 src/stored/dev.c:1105 src/stored/dev.c:1107 +#, c-format +msgid " file=%d block=%d\n" +msgstr "" + +#: src/stored/dev.c:1030 +msgid " Device status:" +msgstr "" + +#: src/stored/dev.c:1129 +msgid "Bad call to load_dev. Device not open\n" +msgstr "" + +#: src/stored/dev.c:1140 src/stored/dev.c:1153 +#, c-format +msgid "ioctl MTLOAD error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:1184 +#, c-format +msgid "ioctl MTOFFL error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:1225 +msgid "Bad call to fsf. Device not open\n" +msgstr "" + +#: src/stored/dev.c:1236 src/stored/dev.c:1363 +#, c-format +msgid "Device %s at End of Tape.\n" +msgstr "" + +#: src/stored/dev.c:1267 src/stored/dev.c:1343 +#, c-format +msgid "ioctl MTFSF error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:1392 +msgid "Bad call to bsf. Device not open\n" +msgstr "" + +#: src/stored/dev.c:1398 +#, c-format +msgid "Device %s cannot BSF because it is not a tape.\n" +msgstr "" + +#: src/stored/dev.c:1415 +#, c-format +msgid "ioctl MTBSF error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:1434 +msgid "Bad call to fsr. Device not open\n" +msgstr "" + +#: src/stored/dev.c:1444 +#, c-format +msgid "ioctl MTFSR not permitted on %s.\n" +msgstr "" + +#: src/stored/dev.c:1472 +#, c-format +msgid "ioctl MTFSR %d error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:1490 +msgid "Bad call to bsr_dev. Device not open\n" +msgstr "" + +#: src/stored/dev.c:1500 +#, c-format +msgid "ioctl MTBSR not permitted on %s.\n" +msgstr "" + +#: src/stored/dev.c:1514 +#, c-format +msgid "ioctl MTBSR error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:1550 +msgid "Bad call to reposition. Device not open\n" +msgstr "" + +#: src/stored/dev.c:1629 +msgid "Bad call to weof_dev. Device not open\n" +msgstr "" + +#: src/stored/dev.c:1639 +msgid "Attempt to WEOF on non-appendable Volume\n" +msgstr "" + +#: src/stored/dev.c:1657 +#, c-format +msgid "ioctl MTWEOF error on %s. ERR=%s.\n" +msgstr "" + +#: src/stored/dev.c:1756 +#, c-format +msgid "unknown func code %d" +msgstr "" + +#: src/stored/dev.c:1762 +#, c-format +msgid "I/O function \"%s\" not supported on this device.\n" +msgstr "" + +#: src/stored/dev.c:1917 +#, c-format +msgid "Unable to truncate device %s. ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:2016 src/stored/dev.c:2021 +#, c-format +msgid "Device %s cannot be %smounted. ERR=%s\n" +msgstr "" + +#: src/stored/dev.c:2429 +#, c-format +msgid "Unable to set eotmodel on device %s: ERR=%s\n" +msgstr "" + +#: src/stored/device.c:120 +#, c-format +msgid "End of medium on Volume \"%s\" Bytes=%s Blocks=%s at %s.\n" +msgstr "" + +#: src/stored/device.c:136 +#, c-format +msgid "New volume \"%s\" mounted on device %s at %s.\n" +msgstr "" + +#: src/stored/device.c:148 +#, c-format +msgid "write_block_to_device Volume label failed. ERR=%s" +msgstr "" + +#: src/stored/device.c:183 +#, c-format +msgid "write_block_to_device overflow block failed. ERR=%s" +msgstr "" + +#: src/stored/device.c:327 +#, c-format +msgid "Unable to open archive %s: ERR=%s\n" +msgstr "" + +#: src/stored/dircmd.c:154 +msgid "Connection request failed.\n" +msgstr "" + +#: src/stored/dircmd.c:163 +#, c-format +msgid "Invalid connection. Len=%d\n" +msgstr "" + +#: src/stored/dircmd.c:274 +#, c-format +msgid "3991 Bad setdebug command: %s\n" +msgstr "" + +#: src/stored/dircmd.c:295 +#, c-format +msgid "3904 Job %s not found.\n" +msgstr "" + +#: src/stored/dircmd.c:321 +#, c-format +msgid "Job %s marked to be canceled.\n" +msgstr "" + +#: src/stored/dircmd.c:322 +#, c-format +msgid "3000 Job %s marked to be canceled.\n" +msgstr "" + +#: src/stored/dircmd.c:326 +msgid "3903 Error scanning cancel command.\n" +msgstr "" + +#: src/stored/dircmd.c:402 src/stored/dircmd.c:758 src/stored/dircmd.c:848 +#: src/stored/dircmd.c:920 src/stored/dircmd.c:983 src/stored/dircmd.c:1026 +#, c-format +msgid "3999 Device \"%s\" not found or could not be opened.\n" +msgstr "" + +#: src/stored/dircmd.c:407 +#, c-format +msgid "3903 Error scanning label command: %s\n" +msgstr "" + +#: src/stored/dircmd.c:457 +#, c-format +msgid "3910 Unable to open device %s: ERR=%s\n" +msgstr "" + +#: src/stored/dircmd.c:474 +#, c-format +msgid "3920 Cannot label Volume because it is already labeled: \"%s\"\n" +msgstr "" + +#: src/stored/dircmd.c:481 +msgid "3921 Wrong volume mounted.\n" +msgstr "" + +#: src/stored/dircmd.c:485 +msgid "3922 Cannot relabel an ANSI/IBM labeled Volume.\n" +msgstr "" + +#: src/stored/dircmd.c:493 +#, c-format +msgid "3912 Failed to label Volume: ERR=%s\n" +msgstr "" + +#: src/stored/dircmd.c:503 +#, c-format +msgid "3914 Failed to label Volume (no media): ERR=%s\n" +msgstr "" + +#: src/stored/dircmd.c:506 +#, c-format +msgid "3913 Cannot label Volume. Unknown status %d from read_volume_label()\n" +msgstr "" + +#: src/stored/dircmd.c:539 +#, c-format +msgid "3001 Mounted Volume: %s\n" +msgstr "" + +#: src/stored/dircmd.c:543 src/stored/dircmd.c:1062 +#, c-format +msgid "" +"3902 Cannot mount Volume on Storage Device %s because:\n" +"%s" +msgstr "" + +#: src/stored/dircmd.c:571 src/stored/reserve.c:1073 +#, c-format +msgid "" +"\n" +" Device \"%s\" requested by DIR could not be opened or does not exist.\n" +msgstr "" + +#: src/stored/dircmd.c:593 src/stored/reserve.c:1069 +#, c-format +msgid "" +"\n" +" Device \"%s\" in changer \"%s\" requested by DIR could not be opened or " +"does not exist.\n" +msgstr "" + +#: src/stored/dircmd.c:668 src/stored/dircmd.c:725 +#, c-format +msgid "3901 open device failed: ERR=%s\n" +msgstr "" + +#: src/stored/dircmd.c:688 src/stored/dircmd.c:716 +#, c-format +msgid "3001 Device %s is mounted with Volume \"%s\"\n" +msgstr "" + +#: src/stored/dircmd.c:691 src/stored/dircmd.c:719 src/stored/dircmd.c:734 +#, c-format +msgid "" +"3905 Device %s open but no Bacula volume is mounted.\n" +"If this is not a blank tape, try unmounting and remounting the Volume.\n" +msgstr "" + +#: src/stored/dircmd.c:701 +#, c-format +msgid "3001 Device %s is doing acquire.\n" +msgstr "" + +#: src/stored/dircmd.c:706 src/stored/dircmd.c:820 +#, c-format +msgid "3903 Device %s is being labeled.\n" +msgstr "" + +#: src/stored/dircmd.c:731 +#, c-format +msgid "3001 Device %s is already mounted with Volume \"%s\"\n" +msgstr "" + +#: src/stored/dircmd.c:740 +#, c-format +msgid "3002 Device %s is mounted.\n" +msgstr "" + +#: src/stored/dircmd.c:743 src/stored/dircmd.c:793 src/stored/dircmd.c:808 +#: src/stored/dircmd.c:839 +#, c-format +msgid "3907 %s" +msgstr "" + +#: src/stored/dircmd.c:746 +#, c-format +msgid "3906 File device %s is always mounted.\n" +msgstr "" + +#: src/stored/dircmd.c:752 +#, c-format +msgid "3905 Bizarre wait state %d\n" +msgstr "" + +#: src/stored/dircmd.c:762 +#, c-format +msgid "3909 Error scanning mount command: %s\n" +msgstr "" + +#: src/stored/dircmd.c:790 src/stored/dircmd.c:841 +#, c-format +msgid "3002 Device %s unmounted.\n" +msgstr "" + +#: src/stored/dircmd.c:797 +#, c-format +msgid "3901 Device %s is already unmounted.\n" +msgstr "" + +#: src/stored/dircmd.c:811 +#, c-format +msgid "3001 Device %s unmounted.\n" +msgstr "" + +#: src/stored/dircmd.c:816 +#, c-format +msgid "3902 Device %s is busy in acquire.\n" +msgstr "" + +#: src/stored/dircmd.c:853 +#, c-format +msgid "3907 Error scanning unmount command: %s\n" +msgstr "" + +#: src/stored/dircmd.c:884 +#, c-format +msgid "3921 Device %s already released.\n" +msgstr "" + +#: src/stored/dircmd.c:891 +#, c-format +msgid "3922 Device %s waiting for sysop.\n" +msgstr "" + +#: src/stored/dircmd.c:897 +#, c-format +msgid "3922 Device %s waiting for mount.\n" +msgstr "" + +#: src/stored/dircmd.c:901 +#, c-format +msgid "3923 Device %s is busy in acquire.\n" +msgstr "" + +#: src/stored/dircmd.c:905 +#, c-format +msgid "3914 Device %s is being labeled.\n" +msgstr "" + +#: src/stored/dircmd.c:914 +#, c-format +msgid "3022 Device %s released.\n" +msgstr "" + +#: src/stored/dircmd.c:925 +#, c-format +msgid "3927 Error scanning release command: %s\n" +msgstr "" + +#: src/stored/dircmd.c:970 +#, c-format +msgid "3995 Device %s is not an autochanger.\n" +msgstr "" + +#: src/stored/dircmd.c:987 +#, c-format +msgid "3908 Error scanning autocharger drives/list/slots command: %s\n" +msgstr "" + +#: src/stored/dircmd.c:1030 +#, c-format +msgid "3909 Error scanning readlabel command: %s\n" +msgstr "" + +#: src/stored/dircmd.c:1058 +#, c-format +msgid "3001 Volume=%s Slot=%d\n" +msgstr "" + +#: src/stored/dircmd.c:1090 +#, c-format +msgid "3931 Device %s is BLOCKED. user unmounted.\n" +msgstr "" + +#: src/stored/dircmd.c:1094 +#, c-format +msgid "" +"3932 Device %s is BLOCKED. user unmounted during wait for media/mount.\n" +msgstr "" + +#: src/stored/dircmd.c:1098 +#, c-format +msgid "3933 Device %s is BLOCKED waiting for media.\n" +msgstr "" + +#: src/stored/dircmd.c:1102 +#, c-format +msgid "3934 Device %s is being initialized.\n" +msgstr "" + +#: src/stored/dircmd.c:1106 +#, c-format +msgid "3935 Device %s is blocked labeling a Volume.\n" +msgstr "" + +#: src/stored/dircmd.c:1110 +#, c-format +msgid "3935 Device %s is blocked for unknown reason.\n" +msgstr "" + +#: src/stored/dircmd.c:1115 +#, c-format +msgid "3936 Device %s is busy reading.\n" +msgstr "" + +#: src/stored/dircmd.c:1118 +#, c-format +msgid "3937 Device %s is busy with %d writer(s).\n" +msgstr "" + +#: src/stored/dvd.c:112 +msgid "No FreeSpace command defined.\n" +msgstr "" + +#: src/stored/dvd.c:146 +#, c-format +msgid "Cannot run free space command. Results=%s ERR=%s\n" +msgstr "" + +#: src/stored/dvd.c:262 +#, c-format +msgid "Error writing part %d to the DVD: ERR=%s\n" +msgstr "" + +#: src/stored/dvd.c:264 +#, c-format +msgid "Error while writing current part to the DVD: %s" +msgstr "" + +#: src/stored/dvd.c:274 +#, c-format +msgid "Part %d (%lld bytes) written to DVD.\n" +msgstr "" + +#: src/stored/dvd.c:293 +#, c-format +msgid "Remaining free space %s on %s\n" +msgstr "" + +#: src/stored/dvd.c:359 +#, c-format +msgid "Next Volume part already exists on DVD. Cannot continue: %s\n" +msgstr "" + +#: src/stored/dvd.c:378 +#, c-format +msgid "open_next_part can't unlink existing part %s, ERR=%s\n" +msgstr "" + +#: src/stored/dvd.c:579 +#, c-format +msgid "" +"Error writing. Current part less than total number of parts (%d/%d, device=%" +"s)\n" +msgstr "" + +#: src/stored/dvd.c:586 +#, c-format +msgid "Unable to write last on %s: ERR=%s\n" +msgstr "" + +#: src/stored/fd_cmds.c:368 +msgid "Error parsing bootstrap file.\n" +msgstr "" + +#: src/stored/job.c:207 +#, c-format +msgid "Job name not found: %s\n" +msgstr "" + +#: src/stored/job.c:218 +#, c-format +msgid "Hey!!!! JobId %u Job %s already authenticated.\n" +msgstr "" + +#: src/stored/job.c:229 +msgid "Unable to authenticate File daemon\n" +msgstr "" + +#: src/stored/job.c:351 +msgid "In free_jcr(), but still attached to device!!!!\n" +msgstr "" + +#: src/stored/label.c:91 src/stored/label.c:132 src/stored/label.c:226 +#, c-format +msgid "Wrong Volume mounted on device %s: Wanted %s have %s\n" +msgstr "" + +#: src/stored/label.c:98 src/stored/label.c:135 src/stored/label.c:208 +#, c-format +msgid "Too many tries: %s" +msgstr "" + +#: src/stored/label.c:114 +#, c-format +msgid "Couldn't rewind device %s: ERR=%s\n" +msgstr "" + +#: src/stored/label.c:152 +#, c-format +msgid "" +"Requested Volume \"%s\" on %s is not a Bacula labeled Volume, because: ERR=%s" +msgstr "" + +#: src/stored/label.c:157 +msgid "Could not read Volume label from block.\n" +msgstr "" + +#: src/stored/label.c:160 +#, c-format +msgid "Could not unserialize Volume label: ERR=%s\n" +msgstr "" + +#: src/stored/label.c:165 +#, c-format +msgid "Volume Header Id bad: %s\n" +msgstr "" + +#: src/stored/label.c:193 +#, c-format +msgid "Volume on %s has wrong Bacula version. Wanted %d got %d\n" +msgstr "" + +#: src/stored/label.c:204 +#, c-format +msgid "Volume on %s has bad Bacula label type: %x\n" +msgstr "" + +#: src/stored/label.c:217 src/stored/label.c:402 +#, c-format +msgid "Could not reserve volume %s on %s\n" +msgstr "" + +#: src/stored/label.c:290 +#, c-format +msgid "Cannot write Volume label to block for device %s\n" +msgstr "" + +#: src/stored/label.c:449 +#, c-format +msgid "Rewind error on device %s: ERR=%s\n" +msgstr "" + +#: src/stored/label.c:455 +#, c-format +msgid "Truncate error on device %s: ERR=%s\n" +msgstr "" + +#: src/stored/label.c:461 +#, c-format +msgid "Failed to re-open DVD after truncate on device %s: ERR=%s\n" +msgstr "" + +#: src/stored/label.c:484 +#, c-format +msgid "Unable to write device %s: ERR=%s\n" +msgstr "" + +#: src/stored/label.c:512 +#, c-format +msgid "Recycled volume \"%s\" on device %s, all previous data lost.\n" +msgstr "" + +#: src/stored/label.c:515 +#, c-format +msgid "Wrote label to prelabeled Volume \"%s\" on device %s\n" +msgstr "" + +#: src/stored/label.c:719 +#, c-format +msgid "Bad session label = %d\n" +msgstr "" + +#: src/stored/label.c:737 src/stored/label.c:744 +#, c-format +msgid "Error writing Session label to %s: %s\n" +msgstr "" + +#: src/stored/label.c:779 +#, c-format +msgid "Expecting Volume Label, got FI=%s Stream=%s len=%d\n" +msgstr "" + +#: src/stored/label.c:906 +#, c-format +msgid "Unknown %d" +msgstr "" + +#: src/stored/label.c:910 +#, c-format +msgid "" +"\n" +"Volume Label:\n" +"Id : %sVerNo : %d\n" +"VolName : %s\n" +"PrevVolName : %s\n" +"VolFile : %d\n" +"LabelType : %s\n" +"LabelSize : %d\n" +"PoolName : %s\n" +"MediaType : %s\n" +"PoolType : %s\n" +"HostName : %s\n" +msgstr "" + +#: src/stored/label.c:932 +#, c-format +msgid "Date label written: %s\n" +msgstr "" + +#: src/stored/label.c:938 +#, c-format +msgid "Date label written: %04d-%02d-%02d at %02d:%02d\n" +msgstr "" + +#: src/stored/label.c:958 +#, c-format +msgid "" +"\n" +"%s Record:\n" +"JobId : %d\n" +"VerNum : %d\n" +"PoolName : %s\n" +"PoolType : %s\n" +"JobName : %s\n" +"ClientName : %s\n" +msgstr "" + +#: src/stored/label.c:971 +#, c-format +msgid "" +"Job (unique name) : %s\n" +"FileSet : %s\n" +"JobType : %c\n" +"JobLevel : %c\n" +msgstr "" + +#: src/stored/label.c:980 +#, c-format +msgid "" +"JobFiles : %s\n" +"JobBytes : %s\n" +"StartBlock : %s\n" +"EndBlock : %s\n" +"StartFile : %s\n" +"EndFile : %s\n" +"JobErrors : %s\n" +"JobStatus : %c\n" +msgstr "" + +#: src/stored/label.c:1001 +#, c-format +msgid "Date written : %s\n" +msgstr "" + +#: src/stored/label.c:1006 +#, c-format +msgid "Date written : %04d-%02d-%02d at %02d:%02d\n" +msgstr "" + +#: src/stored/label.c:1025 +msgid "Fresh Volume" +msgstr "" + +#: src/stored/label.c:1028 +msgid "Volume" +msgstr "" + +#: src/stored/label.c:1037 src/stored/read_record.c:402 +msgid "End of Media" +msgstr "" + +#: src/stored/label.c:1040 +msgid "End of Tape" +msgstr "" + +#: src/stored/label.c:1060 src/stored/label.c:1068 src/stored/label.c:1101 +#, c-format +msgid "%s Record: File:blk=%u:%u SessId=%d SessTime=%d JobId=%d DataLen=%d\n" +msgstr "" + +#: src/stored/label.c:1065 +msgid "End of physical tape.\n" +msgstr "" + +#: src/stored/label.c:1080 src/stored/label.c:1089 +#, c-format +msgid "%s Record: File:blk=%u:%u SessId=%d SessTime=%d JobId=%d\n" +msgstr "" + +#: src/stored/label.c:1082 +#, c-format +msgid " Job=%s Date=%s Level=%c Type=%c\n" +msgstr "" + +#: src/stored/label.c:1091 +#, c-format +msgid " Date=%s Level=%c Type=%c Files=%s Bytes=%s Errors=%d Status=%c\n" +msgstr "" + +#: src/stored/mac.c:79 +msgid "Read and write devices not properly initialized.\n" +msgstr "" + +#: src/stored/mac.c:87 +#, c-format +msgid "No Volume names found for %s.\n" +msgstr "" + +#: src/stored/mount.c:90 +#, c-format +msgid "Too many errors trying to mount device %s.\n" +msgstr "" + +#: src/stored/mount.c:96 +#, c-format +msgid "Job %d canceled.\n" +msgstr "" + +#: src/stored/mount.c:211 +#, c-format +msgid "Could not open device %s: ERR=%s\n" +msgstr "" + +#: src/stored/mount.c:254 src/stored/mount.c:533 +#, c-format +msgid "Volume \"%s\" not on device %s.\n" +msgstr "" + +#: src/stored/mount.c:292 +#, c-format +msgid "" +"Director wanted Volume \"%s\".\n" +" Current Volume \"%s\" not acceptable because:\n" +" %s" +msgstr "" + +#: src/stored/mount.c:375 +#, c-format +msgid "Volume \"%s\" previously written, moving to end of data.\n" +msgstr "" + +#: src/stored/mount.c:378 +#, c-format +msgid "Unable to position to end of data on device %s: ERR=%s\n" +msgstr "" + +#: src/stored/mount.c:386 +#, c-format +msgid "Ready to append to end of Volume \"%s\" part=%d size=%s\n" +msgstr "" + +#: src/stored/mount.c:390 +#, c-format +msgid "" +"Bacula cannot write on DVD Volume \"%s\" because: The sizes do not match! " +"Volume=%s Catalog=%s\n" +msgstr "" + +#: src/stored/mount.c:404 +#, c-format +msgid "Ready to append to end of Volume \"%s\" at file=%d.\n" +msgstr "" + +#: src/stored/mount.c:407 +#, c-format +msgid "" +"Bacula cannot write on tape Volume \"%s\" because:\n" +"The number of files mismatch! Volume=%u Catalog=%u\n" +msgstr "" + +#: src/stored/mount.c:418 +#, c-format +msgid "Ready to append to end of Volume \"%s\" size=%s\n" +msgstr "" + +#: src/stored/mount.c:422 +#, c-format +msgid "" +"Bacula cannot write on disk Volume \"%s\" because: The sizes do not match! " +"Volume=%s Catalog=%s\n" +msgstr "" + +#: src/stored/mount.c:452 +#, c-format +msgid "Ready to append to end of Volume \"%s\" at file address=%u.\n" +msgstr "" + +#: src/stored/mount.c:456 +#, c-format +msgid "" +"Bacula cannot write on Volume \"%s\" because:\n" +"The EOD file address is wrong: Volume file address=%u != Catalog Endblock=%u" +"(+1)\n" +"Perhaps You removed the DVD last part in spool directory.\n" +msgstr "" + +#: src/stored/mount.c:523 +#, c-format +msgid "Labeled new Volume \"%s\" on device %s.\n" +msgstr "" + +#: src/stored/mount.c:528 +#, c-format +msgid "Device %s not configured to autolabel Volumes.\n" +msgstr "" + +#: src/stored/mount.c:548 +#, c-format +msgid "Marking Volume \"%s\" in Error in Catalog.\n" +msgstr "" + +#: src/stored/mount.c:564 +#, c-format +msgid "" +"Autochanger Volume \"%s\" not found in slot %d.\n" +" Setting InChanger to zero in catalog.\n" +msgstr "" + +#: src/stored/mount.c:583 +msgid "Hey!!!!! WroteVol non-zero !!!!!\n" +msgstr "" + +#: src/stored/parse_bsr.c:118 src/stored/parse_bsr.c:122 +#, c-format +msgid "" +"Bootstrap file error: %s\n" +" : Line %d, col %d of file %s\n" +"%s\n" +msgstr "" + +#: src/stored/parse_bsr.c:144 +#, c-format +msgid "Cannot open bootstrap file %s: %s\n" +msgstr "" + +#: src/stored/parse_bsr.c:274 +#, c-format +msgid "MediaType %s in bsr at inappropriate place.\n" +msgstr "" + +#: src/stored/parse_bsr.c:295 +#, c-format +msgid "Device \"%s\" in bsr at inappropriate place.\n" +msgstr "" + +#: src/stored/parse_bsr.c:452 +msgid "JobType not yet implemented\n" +msgstr "" + +#: src/stored/parse_bsr.c:460 +msgid "JobLevel not yet implemented\n" +msgstr "" + +#: src/stored/parse_bsr.c:643 +#, c-format +msgid "Slot %d in bsr at inappropriate place.\n" +msgstr "" + +#: src/stored/parse_bsr.c:667 +#, c-format +msgid "VolFile : %u-%u\n" +msgstr "" + +#: src/stored/parse_bsr.c:675 +#, c-format +msgid "VolBlock : %u-%u\n" +msgstr "" + +#: src/stored/parse_bsr.c:685 +#, c-format +msgid "FileIndex : %u\n" +msgstr "" + +#: src/stored/parse_bsr.c:687 +#, c-format +msgid "FileIndex : %u-%u\n" +msgstr "" + +#: src/stored/parse_bsr.c:697 +#, c-format +msgid "JobId : %u\n" +msgstr "" + +#: src/stored/parse_bsr.c:699 +#, c-format +msgid "JobId : %u-%u\n" +msgstr "" + +#: src/stored/parse_bsr.c:709 +#, c-format +msgid "SessId : %u\n" +msgstr "" + +#: src/stored/parse_bsr.c:711 +#, c-format +msgid "SessId : %u-%u\n" +msgstr "" + +#: src/stored/parse_bsr.c:720 +#, c-format +msgid "VolumeName : %s\n" +msgstr "" + +#: src/stored/parse_bsr.c:721 +#, c-format +msgid " MediaType : %s\n" +msgstr "" + +#: src/stored/parse_bsr.c:722 +#, c-format +msgid " Device : %s\n" +msgstr "" + +#: src/stored/parse_bsr.c:723 +#, c-format +msgid " Slot : %d\n" +msgstr "" + +#: src/stored/parse_bsr.c:732 +#, c-format +msgid "Client : %s\n" +msgstr "" + +#: src/stored/parse_bsr.c:740 +#, c-format +msgid "Job : %s\n" +msgstr "" + +#: src/stored/parse_bsr.c:748 +#, c-format +msgid "SessTime : %u\n" +msgstr "" + +#: src/stored/parse_bsr.c:759 +msgid "BSR is NULL\n" +msgstr "" + +#: src/stored/parse_bsr.c:763 +#, c-format +msgid "Next : 0x%x\n" +msgstr "" + +#: src/stored/parse_bsr.c:764 +#, c-format +msgid "Root bsr : 0x%x\n" +msgstr "" + +#: src/stored/parse_bsr.c:775 +#, c-format +msgid "count : %u\n" +msgstr "" + +#: src/stored/parse_bsr.c:776 +#, c-format +msgid "found : %u\n" +msgstr "" + +#: src/stored/parse_bsr.c:779 +#, c-format +msgid "done : %s\n" +msgstr "" + +#: src/stored/parse_bsr.c:780 +#, c-format +msgid "positioning : %d\n" +msgstr "" + +#: src/stored/parse_bsr.c:781 +#, c-format +msgid "fast_reject : %d\n" +msgstr "" + +#: src/stored/pythonsd.c:210 +msgid "Error in ParseTuple\n" +msgstr "" + +#: src/stored/pythonsd.c:226 +msgid "Parse tuple error in job_write\n" +msgstr "" + +#: src/stored/pythonsd.c:263 +#, c-format +msgid "Error in Python method %s\n" +msgstr "" + +#: src/stored/read.c:68 +msgid "No Volume names found for restore.\n" +msgstr "" + +#: src/stored/read.c:122 +#, c-format +msgid ">filed: Error Hdr=%s\n" +msgstr "" + +#: src/stored/read.c:123 src/stored/read.c:138 +#, c-format +msgid "Error sending to File daemon. ERR=%s\n" +msgstr "" + +#: src/stored/read.c:137 +#, c-format +msgid "Error sending to FD. ERR=%s\n" +msgstr "" + +#: src/stored/read_record.c:83 +#, c-format +msgid "End of Volume at file %u on device %s, Volume \"%s\"\n" +msgstr "" + +#: src/stored/read_record.c:86 +msgid "End of all volumes.\n" +msgstr "" + +#: src/stored/read_record.c:129 +msgid "part" +msgstr "" + +#: src/stored/read_record.c:132 +msgid "file" +msgstr "" + +#: src/stored/read_record.c:135 +#, c-format +msgid "End of %s %u on device %s, Volume \"%s\"\n" +msgstr "" + +#: src/stored/read_record.c:149 +msgid "Did fsr in attemp to skip bad record.\n" +msgstr "" + +#: src/stored/read_record.c:342 +#, c-format +msgid "Reposition from (file:block) %u:%u to %u:%u\n" +msgstr "" + +#: src/stored/read_record.c:370 +#, c-format +msgid "Forward spacing Volume \"%s\" to file:block %u:%u.\n" +msgstr "" + +#: src/stored/read_record.c:395 +msgid "Begin Session" +msgstr "" + +#: src/stored/read_record.c:399 +msgid "End Session" +msgstr "" + +#: src/stored/read_record.c:405 +#, c-format +msgid "Unknown code %d\n" +msgstr "" + +#: src/stored/record.c:71 +#, c-format +msgid "unknown: %d" +msgstr "" + +#: src/stored/record.c:378 +msgid "Damaged buffer\n" +msgstr "" + +#: src/stored/record.c:549 +#, c-format +msgid "Sanity check failed. maxlen=%d datalen=%d. Block discarded.\n" +msgstr "" + +#: src/stored/reserve.c:93 +#, c-format +msgid "Unable to initialize reservation lock. ERR=%s\n" +msgstr "" + +#: src/stored/reserve.c:99 +#, c-format +msgid "Unable to initialize volume list lock. ERR=%s\n" +msgstr "" + +#: src/stored/reserve.c:429 +#, c-format +msgid "Hey! num_writers=%d!!!!\n" +msgstr "" + +#: src/stored/reserve.c:643 +msgid "3939 Could not get dcr\n" +msgstr "" + +#: src/stored/reserve.c:766 src/stored/reserve.c:777 +#, c-format +msgid "Failed command: %s\n" +msgstr "" + +#: src/stored/reserve.c:767 +#, c-format +msgid "" +"\n" +" Device \"%s\" with MediaType \"%s\" requested by DIR not found in SD " +"Device resources.\n" +msgstr "" + +#: src/stored/reserve.c:1085 +#, c-format +msgid "3926 Could not get dcr for device: %s\n" +msgstr "" + +#: src/stored/reserve.c:1180 +#, c-format +msgid "3601 JobId=%u device %s is BLOCKED due to user unmount.\n" +msgstr "" + +#: src/stored/reserve.c:1190 +#, c-format +msgid "3602 JobId=%u device %s is busy (already reading/writing).\n" +msgstr "" + +#: src/stored/reserve.c:1237 +#, c-format +msgid "3603 JobId=%u device %s is busy reading.\n" +msgstr "" + +#: src/stored/reserve.c:1246 +#, c-format +msgid "3604 JobId=%u device %s is BLOCKED due to user unmount.\n" +msgstr "" + +#: src/stored/reserve.c:1314 +#, c-format +msgid "3605 JobId=%u wants free drive but device %s is busy.\n" +msgstr "" + +#: src/stored/reserve.c:1322 +#, c-format +msgid "3606 JobId=%u prefers mounted drives, but drive %s has no Volume.\n" +msgstr "" + +#: src/stored/reserve.c:1345 +#, c-format +msgid "3607 JobId=%u wants Vol=\"%s\" drive has Vol=\"%s\" on drive %s.\n" +msgstr "" + +#: src/stored/reserve.c:1387 +#, c-format +msgid "" +"3608 JobId=%u wants Pool=\"%s\" but have Pool=\"%s\" nreserve=%d on drive %" +"s.\n" +msgstr "" + +#: src/stored/reserve.c:1431 +#, c-format +msgid "3609 JobId=%u wants Pool=\"%s\" but has Pool=\"%s\" on drive %s.\n" +msgstr "" + +#: src/stored/reserve.c:1439 +#, c-format +msgid "Logic error!!!! JobId=%u Should not get here.\n" +msgstr "" + +#: src/stored/reserve.c:1440 +#, c-format +msgid "3910 JobId=%u Logic error!!!! drive %s Should not get here.\n" +msgstr "" + +#: src/stored/reserve.c:1443 +msgid "Logic error!!!! Should not get here.\n" +msgstr "" + +#: src/stored/reserve.c:1446 +#, c-format +msgid "3911 JobId=%u failed reserve drive %s.\n" +msgstr "" + +#: src/stored/spool.c:84 +msgid "Spooling statistics:\n" +msgstr "" + +#: src/stored/spool.c:87 +#, c-format +msgid "" +"Data spooling: %u active jobs, %s bytes; %u total jobs, %s max bytes/job.\n" +msgstr "" + +#: src/stored/spool.c:95 +#, c-format +msgid "Attr spooling: %u active jobs, %s bytes; %u total jobs, %s max bytes.\n" +msgstr "" + +#: src/stored/spool.c:115 +msgid "Spooling data ...\n" +msgstr "" + +#: src/stored/spool.c:141 +#, c-format +msgid "Bad return from despool WroteVol=%d\n" +msgstr "" + +#: src/stored/spool.c:174 +#, c-format +msgid "Open data spool file %s failed: ERR=%s\n" +msgstr "" + +#: src/stored/spool.c:232 +#, c-format +msgid "Committing spooled data to Volume \"%s\". Despooling %s bytes ...\n" +msgstr "" + +#: src/stored/spool.c:236 +#, c-format +msgid "Writing spooled data to Volume. Despooling %s bytes ...\n" +msgstr "" + +#: src/stored/spool.c:306 +#, c-format +msgid "" +"Despooling elapsed time = %02d:%02d:%02d, Transfer rate = %s bytes/second\n" +msgstr "" + +#: src/stored/spool.c:315 src/stored/spool.c:504 src/stored/spool.c:546 +#, c-format +msgid "Ftruncate spool file failed: ERR=%s\n" +msgstr "" + +#: src/stored/spool.c:376 +#, c-format +msgid "Spool header read error. ERR=%s\n" +msgstr "" + +#: src/stored/spool.c:379 +#, c-format +msgid "Spool read error. Wanted %u bytes, got %d\n" +msgstr "" + +#: src/stored/spool.c:380 +#, c-format +msgid "Spool header read error. Wanted %u bytes, got %d\n" +msgstr "" + +#: src/stored/spool.c:386 src/stored/spool.c:387 +#, c-format +msgid "Spool block too big. Max %u bytes, got %u\n" +msgstr "" + +#: src/stored/spool.c:392 src/stored/spool.c:393 +#, c-format +msgid "Spool data read error. Wanted %u bytes, got %d\n" +msgstr "" + +#: src/stored/spool.c:450 +msgid "User specified spool size reached.\n" +msgstr "" + +#: src/stored/spool.c:452 +msgid "Bad return from despool in write_block.\n" +msgstr "" + +#: src/stored/spool.c:460 +msgid "Spooling data again ...\n" +msgstr "" + +#: src/stored/spool.c:491 +#, c-format +msgid "Error writing header to spool file. ERR=%s\n" +msgstr "" + +#: src/stored/spool.c:510 src/stored/spool.c:552 +msgid "Fatal despooling error." +msgstr "" + +#: src/stored/spool.c:517 +msgid "Retrying after header spooling error failed.\n" +msgstr "" + +#: src/stored/spool.c:531 +#, c-format +msgid "Error writing data to spool file. ERR=%s\n" +msgstr "" + +#: src/stored/spool.c:562 +msgid "Retrying after data spooling error failed.\n" +msgstr "" + +#: src/stored/spool.c:617 src/stored/spool.c:624 +#, c-format +msgid "Fseek on attributes file failed: ERR=%s\n" +msgstr "" + +#: src/stored/spool.c:634 +#, c-format +msgid "Sending spooled attrs to the Director. Despooling %s bytes ...\n" +msgstr "" + +#: src/stored/spool.c:661 +#, c-format +msgid "fopen attr spool file %s failed: ERR=%s\n" +msgstr "" + +#: src/stored/status.c:120 +msgid "" +"\n" +"Device status:\n" +msgstr "" + +#: src/stored/status.c:124 +#, c-format +msgid "Autochanger \"%s\" with devices:\n" +msgstr "" + +#: src/stored/status.c:142 +#, c-format +msgid "" +"Device %s is mounted with:\n" +" Volume: %s\n" +" Pool: %s\n" +" Media type: %s\n" +msgstr "" + +#: src/stored/status.c:152 +#, c-format +msgid "Device %s open but no Bacula volume is currently mounted.\n" +msgstr "" + +#: src/stored/status.c:163 +#, c-format +msgid " Total Bytes=%s Blocks=%s Bytes/block=%s\n" +msgstr "" + +#: src/stored/status.c:178 +#, c-format +msgid " Total Bytes Read=%s Blocks Read=%s Bytes/block=%s\n" +msgstr "" + +#: src/stored/status.c:184 +#, c-format +msgid " Positioned at File=%s Block=%s\n" +msgstr "" + +#: src/stored/status.c:191 +#, c-format +msgid "Device %s is not open.\n" +msgstr "" + +#: src/stored/status.c:195 +#, c-format +msgid "Device \"%s\" is not open or does not exist.\n" +msgstr "" + +#: src/stored/status.c:201 +msgid "In Use Volume status:\n" +msgstr "" + +#: src/stored/status.c:208 src/stored/status.c:210 +msgid "" +"====\n" +"\n" +msgstr "" + +#: src/stored/status.c:227 +msgid "" +"No DEVICE structure.\n" +"\n" +msgstr "" + +#: src/stored/status.c:234 +msgid " Device is BLOCKED. User unmounted.\n" +msgstr "" + +#: src/stored/status.c:238 +msgid " Device is BLOCKED. User unmounted during wait for media/mount.\n" +msgstr "" + +#: src/stored/status.c:250 +#, c-format +msgid "" +" Device is BLOCKED waiting for mount of volume \"%s\",\n" +" Pool: %s\n" +" Media type: %s\n" +msgstr "" + +#: src/stored/status.c:259 +#, c-format +msgid "" +" Device is BLOCKED waiting to create a volume for:\n" +" Pool: %s\n" +" Media type: %s\n" +msgstr "" + +#: src/stored/status.c:271 +msgid " Device is BLOCKED waiting for media.\n" +msgstr "" + +#: src/stored/status.c:277 +msgid " Device is being initialized.\n" +msgstr "" + +#: src/stored/status.c:281 +msgid " Device is blocked labeling a Volume.\n" +msgstr "" + +#: src/stored/status.c:290 +#, c-format +msgid " Slot %d is loaded in drive %d.\n" +msgstr "" + +#: src/stored/status.c:294 +#, c-format +msgid " Drive %d is not loaded.\n" +msgstr "" + +#: src/stored/status.c:297 +#, c-format +msgid " Drive %d status unknown.\n" +msgstr "" + +#: src/stored/status.c:320 +msgid "Device state:\n" +msgstr "" + +#: src/stored/status.c:338 +#, c-format +msgid "" +"num_writers=%d block=%d\n" +"\n" +msgstr "" + +#: src/stored/status.c:344 +#, c-format +msgid "Archive name: %s Device name: %s\n" +msgstr "" + +#: src/stored/status.c:348 +#, c-format +msgid "File=%u block=%u\n" +msgstr "" + +#: src/stored/status.c:351 +#, c-format +msgid "Min block=%u Max block=%u\n" +msgstr "" + +#: src/stored/status.c:375 +#, c-format +msgid "%s Job %s waiting for Client connection.\n" +msgstr "" + +#: src/stored/status.c:391 +#, c-format +msgid "" +"Reading: %s %s job %s JobId=%d Volume=\"%s\"\n" +" pool=\"%s\" device=%s\n" +msgstr "" + +#: src/stored/status.c:404 +#, c-format +msgid "" +"Writing: %s %s job %s JobId=%d Volume=\"%s\"\n" +" pool=\"%s\" device=%s\n" +msgstr "" + +#: src/stored/status.c:415 +#, c-format +msgid " spooling=%d despooling=%d despool_wait=%d\n" +msgstr "" + +#: src/stored/status.c:424 +#, c-format +msgid " Files=%s Bytes=%s Bytes/sec=%s\n" +msgstr "" + +#: src/stored/status.c:432 +#, c-format +msgid " FDReadSeqNo=%s in_msg=%u out_msg=%d fd=%d\n" +msgstr "" + +#: src/stored/status.c:438 +msgid " FDSocket closed\n" +msgstr "" + +#: src/stored/status.c:460 +msgid "" +"\n" +"Jobs waiting to reserve a drive:\n" +msgstr "" + +#: src/stored/status.c:491 +msgid "===================================================================\n" +msgstr "" + +#: src/stored/status.c:637 +msgid "3900 Bad .status command, missing argument.\n" +msgstr "" + +#: src/stored/status.c:660 +msgid "3900 Bad .status command, wrong argument.\n" +msgstr "" + +#: src/stored/status.c:674 +msgid "Bacula Storage: Idle" +msgstr "" + +#: src/stored/status.c:685 +msgid "Bacula Storage: Running" +msgstr "" + +#: src/stored/status.c:699 +msgid "Bacula Storage: Last Job Canceled" +msgstr "" + +#: src/stored/status.c:703 +msgid "Bacula Storage: Last Job Failed" +msgstr "" + +#: src/stored/status.c:707 +msgid "Bacula Storage: Last Job had Warnings" +msgstr "" + +#: src/stored/stored.c:82 +#, c-format +msgid "" +"\n" +"Version: %s (%s)\n" +"\n" +"Usage: stored [options] [-c config_file] [config_file]\n" +" -c use as configuration file\n" +" -dnn set debug level to nn\n" +" -f run in foreground (for debugging)\n" +" -g set groupid to group\n" +" -p proceed despite I/O errors\n" +" -s no signals (for debugging)\n" +" -t test - read config and exit\n" +" -u userid to \n" +" -v verbose user messages\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/stored/stored.c:243 +msgid "Volume Session Time is ZERO!\n" +msgstr "" + +#: src/stored/stored.c:256 +#, c-format +msgid "Unable to create thread. ERR=%s\n" +msgstr "" + +#: src/stored/stored.c:294 +#, c-format +msgid "Only one Storage resource permitted in %s\n" +msgstr "" + +#: src/stored/stored.c:299 +#, c-format +msgid "No Director resource defined in %s. Cannot continue.\n" +msgstr "" + +#: src/stored/stored.c:304 +#, c-format +msgid "No Device resource defined in %s. Cannot continue.\n" +msgstr "" + +#: src/stored/stored.c:312 +#, c-format +msgid "No Messages resource defined in %s. Cannot continue.\n" +msgstr "" + +#: src/stored/stored.c:339 +#, c-format +msgid "\"TLS Certificate\" file not defined for Storage \"%s\" in %s.\n" +msgstr "" + +#: src/stored/stored.c:345 +#, c-format +msgid "\"TLS Key\" file not defined for Storage \"%s\" in %s.\n" +msgstr "" + +#: src/stored/stored.c:351 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Storage \"%s\" in %s. At least one CA certificate store is required when " +"using \"TLS Verify Peer\".\n" +msgstr "" + +#: src/stored/stored.c:482 +#, c-format +msgid "Could not initialize %s\n" +msgstr "" + +#: src/stored/stored.c:495 +#, c-format +msgid "Could not open device %s\n" +msgstr "" + +#: src/stored/stored.c:508 +#, c-format +msgid "Could not mount device %s\n" +msgstr "" + +#: src/stored/stored_conf.c:234 +#, c-format +msgid "Expected a Device Type keyword, got: %s" +msgstr "" + +#: src/stored/stored_conf.c:249 +#, c-format +msgid "Warning: no \"%s\" resource (%d) defined.\n" +msgstr "" + +#: src/stored/stored_conf.c:252 +#, c-format +msgid "dump_resource type=%d\n" +msgstr "" + +#: src/stored/stored_conf.c:368 +#, c-format +msgid "Warning: unknown resource type %d\n" +msgstr "" + +#: src/stored/stored_conf.c:557 +#, c-format +msgid "\"%s\" item is required in \"%s\" resource, but not found.\n" +msgstr "" + +#: src/stored/stored_conf.c:563 +#, c-format +msgid "Too many items in \"%s\" resource\n" +msgstr "" + +#: src/stored/stored_conf.c:597 +#, c-format +msgid "Cannot find AutoChanger resource %s\n" +msgstr "" + +#: src/stored/stored_conf.c:669 +#, c-format +msgid "" +"Attempt to define second \"%s\" resource named \"%s\" is not permitted.\n" +msgstr "" + +#: src/stored/wait.c:127 +#, c-format +msgid "pthread timedwait error. ERR=%s\n" +msgstr "" + +#: src/stored/wait.c:217 +#, c-format +msgid "JobId=%s, Job %s waiting to reserve a device.\n" +msgstr "" + +#: src/tools/bregex.c:147 src/tools/bwild.c:122 +#, c-format +msgid "Could not open data file: %s\n" +msgstr "" + +#: src/tools/bsmtp.c:117 +#, c-format +msgid "Fatal malformed reply from %s: %s\n" +msgstr "" + +#: src/tools/bsmtp.c:125 +#, c-format +msgid "Fatal fgets error: ERR=%s\n" +msgstr "" + +#: src/tools/bsmtp.c:156 +#, c-format +msgid "" +"\n" +"Usage: %s [-f from] [-h mailhost] [-s subject] [-c copy] [recipient ...]\n" +" -8 set charset utf-8\n" +" -c set the Cc: field\n" +" -dnn set debug level to nn\n" +" -f set the From: field\n" +" -h use mailhost:port as the SMTP server\n" +" -s set the Subject: field\n" +" -r set the Reply-To: field\n" +" -l set the maximum number of lines that should be sent " +"(default: unlimited)\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/tools/bsmtp.c:287 +msgid "Fatal error: no recipient given.\n" +msgstr "" + +#: src/tools/bsmtp.c:316 +#, c-format +msgid "Fatal gethostname error: ERR=%s\n" +msgstr "" + +#: src/tools/bsmtp.c:320 +#, c-format +msgid "Fatal gethostbyname for myself failed \"%s\": ERR=%s\n" +msgstr "" + +#: src/tools/bsmtp.c:356 +#, c-format +msgid "Error unknown mail host \"%s\": ERR=%s\n" +msgstr "" + +#: src/tools/bsmtp.c:359 +msgid "Retrying connection using \"localhost\".\n" +msgstr "" + +#: src/tools/bsmtp.c:367 +#, c-format +msgid "Fatal error: Unknown address family for smtp host: %d\n" +msgstr "" + +#: src/tools/bsmtp.c:376 src/tools/bsmtp.c:381 +#, c-format +msgid "Fatal socket error: ERR=%s\n" +msgstr "" + +#: src/tools/bsmtp.c:386 +#, c-format +msgid "Fatal connect error to %s: ERR=%s\n" +msgstr "" + +#: src/tools/bsmtp.c:394 +#, c-format +msgid "Fatal _open_osfhandle error: ERR=%s\n" +msgstr "" + +#: src/tools/bsmtp.c:401 src/tools/bsmtp.c:405 src/tools/bsmtp.c:414 +#: src/tools/bsmtp.c:418 +#, c-format +msgid "Fatal fdopen error: ERR=%s\n" +msgstr "" + +#: src/tools/bsmtp.c:410 +#, c-format +msgid "Fatal dup error: ERR=%s\n" +msgstr "" + +#: src/tools/dbcheck.c:175 +msgid "" +"Warning skipping the additional parameters for working directory/dbname/user/" +"password/host.\n" +msgstr "" + +#: src/tools/dbcheck.c:191 +#, c-format +msgid "Error can not find the Catalog name[%s] in the given config file [%s]\n" +msgstr "" + +#: src/tools/dbcheck.c:193 +#, c-format +msgid "Error there is no Catalog section in the given config file [%s]\n" +msgstr "" + +#: src/tools/dbcheck.c:202 +msgid "Error no Director resource defined.\n" +msgstr "" + +#: src/tools/dbcheck.c:216 +msgid "Wrong number of arguments.\n" +msgstr "" + +#: src/tools/dbcheck.c:221 +msgid "Working directory not supplied.\n" +msgstr "" + +#: src/tools/dbcheck.c:285 +#, c-format +msgid "Hello, this is the database check/correct program.\n" +msgstr "" + +#: src/tools/dbcheck.c:287 +#, c-format +msgid "Modify database is on." +msgstr "" + +#: src/tools/dbcheck.c:289 +#, c-format +msgid "Modify database is off." +msgstr "" + +#: src/tools/dbcheck.c:291 src/tools/dbcheck.c:352 +#, c-format +msgid " Verbose is on.\n" +msgstr "" + +#: src/tools/dbcheck.c:293 src/tools/dbcheck.c:354 +#, c-format +msgid " Verbose is off.\n" +msgstr "" + +#: src/tools/dbcheck.c:295 +#, c-format +msgid "Please select the fuction you want to perform.\n" +msgstr "" + +#: src/tools/dbcheck.c:299 +#, c-format +msgid "" +"\n" +" 1) Toggle modify database flag\n" +" 2) Toggle verbose flag\n" +" 3) Repair bad Filename records\n" +" 4) Repair bad Path records\n" +" 5) Eliminate duplicate Filename records\n" +" 6) Eliminate duplicate Path records\n" +" 7) Eliminate orphaned Jobmedia records\n" +" 8) Eliminate orphaned File records\n" +" 9) Eliminate orphaned Path records\n" +" 10) Eliminate orphaned Filename records\n" +" 11) Eliminate orphaned FileSet records\n" +" 12) Eliminate orphaned Client records\n" +" 13) Eliminate orphaned Job records\n" +" 14) Eliminate all Admin records\n" +" 15) Eliminate all Restore records\n" +" 16) All (3-15)\n" +" 17) Quit\n" +msgstr "" + +#: src/tools/dbcheck.c:318 +#, c-format +msgid "" +"\n" +" 1) Toggle modify database flag\n" +" 2) Toggle verbose flag\n" +" 3) Check for bad Filename records\n" +" 4) Check for bad Path records\n" +" 5) Check for duplicate Filename records\n" +" 6) Check for duplicate Path records\n" +" 7) Check for orphaned Jobmedia records\n" +" 8) Check for orphaned File records\n" +" 9) Check for orphaned Path records\n" +" 10) Check for orphaned Filename records\n" +" 11) Check for orphaned FileSet records\n" +" 12) Check for orphaned Client records\n" +" 13) Check for orphaned Job records\n" +" 14) Check for all Admin records\n" +" 15) Check for all Restore records\n" +" 16) All (3-15)\n" +" 17) Quit\n" +msgstr "" + +#: src/tools/dbcheck.c:338 +msgid "Select function number: " +msgstr "" + +#: src/tools/dbcheck.c:345 +#, c-format +msgid "Database will be modified.\n" +msgstr "" + +#: src/tools/dbcheck.c:347 +#, c-format +msgid "Database will NOT be modified.\n" +msgstr "" + +#: src/tools/dbcheck.c:437 +#, c-format +msgid "JobId=%s Name=\"%s\" StartTime=%s\n" +msgstr "" + +#: src/tools/dbcheck.c:445 +#, c-format +msgid "Orphaned JobMediaId=%s JobId=%s Volume=\"%s\"\n" +msgstr "" + +#: src/tools/dbcheck.c:452 +#, c-format +msgid "Orphaned FileId=%s JobId=%s Volume=\"%s\"\n" +msgstr "" + +#: src/tools/dbcheck.c:459 +#, c-format +msgid "Orphaned FileSetId=%s FileSet=\"%s\" MD5=%s\n" +msgstr "" + +#: src/tools/dbcheck.c:466 +#, c-format +msgid "Orphaned ClientId=%s Name=\"%s\"\n" +msgstr "" + +#: src/tools/dbcheck.c:520 +#, c-format +msgid "Deleting: %s\n" +msgstr "" + +#: src/tools/dbcheck.c:594 +#, c-format +msgid "Checking for duplicate Filename entries.\n" +msgstr "" + +#: src/tools/dbcheck.c:603 +#, c-format +msgid "Found %d duplicate Filename records.\n" +msgstr "" + +#: src/tools/dbcheck.c:604 +msgid "Print the list? (yes/no): " +msgstr "" + +#: src/tools/dbcheck.c:623 src/tools/dbcheck.c:681 +#, c-format +msgid "Found %d for: %s\n" +msgstr "" + +#: src/tools/dbcheck.c:651 +#, c-format +msgid "Checking for duplicate Path entries.\n" +msgstr "" + +#: src/tools/dbcheck.c:661 +#, c-format +msgid "Found %d duplicate Path records.\n" +msgstr "" + +#: src/tools/dbcheck.c:662 src/tools/dbcheck.c:716 src/tools/dbcheck.c:760 +#: src/tools/dbcheck.c:803 src/tools/dbcheck.c:842 src/tools/dbcheck.c:880 +#: src/tools/dbcheck.c:921 src/tools/dbcheck.c:962 src/tools/dbcheck.c:1000 +#: src/tools/dbcheck.c:1033 src/tools/dbcheck.c:1070 src/tools/dbcheck.c:1134 +msgid "Print them? (yes/no): " +msgstr "" + +#: src/tools/dbcheck.c:709 +#, c-format +msgid "Checking for orphaned JobMedia entries.\n" +msgstr "" + +#: src/tools/dbcheck.c:715 +#, c-format +msgid "Found %d orphaned JobMedia records.\n" +msgstr "" + +#: src/tools/dbcheck.c:733 +#, c-format +msgid "Deleting %d orphaned JobMedia records.\n" +msgstr "" + +#: src/tools/dbcheck.c:750 +#, c-format +msgid "Checking for orphaned File entries. This may take some time!\n" +msgstr "" + +#: src/tools/dbcheck.c:759 +#, c-format +msgid "Found %d orphaned File records.\n" +msgstr "" + +#: src/tools/dbcheck.c:776 +#, c-format +msgid "Deleting %d orphaned File records.\n" +msgstr "" + +#: src/tools/dbcheck.c:793 +#, c-format +msgid "Checking for orphaned Path entries. This may take some time!\n" +msgstr "" + +#: src/tools/dbcheck.c:802 +#, c-format +msgid "Found %d orphaned Path records.\n" +msgstr "" + +#: src/tools/dbcheck.c:815 +#, c-format +msgid "Deleting %d orphaned Path records.\n" +msgstr "" + +#: src/tools/dbcheck.c:832 +#, c-format +msgid "Checking for orphaned Filename entries. This may take some time!\n" +msgstr "" + +#: src/tools/dbcheck.c:841 +#, c-format +msgid "Found %d orphaned Filename records.\n" +msgstr "" + +#: src/tools/dbcheck.c:854 +#, c-format +msgid "Deleting %d orphaned Filename records.\n" +msgstr "" + +#: src/tools/dbcheck.c:869 +#, c-format +msgid "Checking for orphaned FileSet entries. This takes some time!\n" +msgstr "" + +#: src/tools/dbcheck.c:879 +#, c-format +msgid "Found %d orphaned FileSet records.\n" +msgstr "" + +#: src/tools/dbcheck.c:894 +#, c-format +msgid "Deleting %d orphaned FileSet records.\n" +msgstr "" + +#: src/tools/dbcheck.c:903 +#, c-format +msgid "Checking for orphaned Client entries.\n" +msgstr "" + +#: src/tools/dbcheck.c:920 +#, c-format +msgid "Found %d orphaned Client records.\n" +msgstr "" + +#: src/tools/dbcheck.c:935 +#, c-format +msgid "Deleting %d orphaned Client records.\n" +msgstr "" + +#: src/tools/dbcheck.c:944 +#, c-format +msgid "Checking for orphaned Job entries.\n" +msgstr "" + +#: src/tools/dbcheck.c:961 +#, c-format +msgid "Found %d orphaned Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:976 +#, c-format +msgid "Deleting %d orphaned Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:978 +#, c-format +msgid "Deleting JobMedia records of orphaned Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:980 +#, c-format +msgid "Deleting Log records of orphaned Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:990 +#, c-format +msgid "Checking for Admin Job entries.\n" +msgstr "" + +#: src/tools/dbcheck.c:999 +#, c-format +msgid "Found %d Admin Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:1014 +#, c-format +msgid "Deleting %d Admin Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:1023 +#, c-format +msgid "Checking for Restore Job entries.\n" +msgstr "" + +#: src/tools/dbcheck.c:1032 +#, c-format +msgid "Found %d Restore Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:1047 +#, c-format +msgid "Deleting %d Restore Job records.\n" +msgstr "" + +#: src/tools/dbcheck.c:1060 +#, c-format +msgid "Checking for Filenames with a trailing slash\n" +msgstr "" + +#: src/tools/dbcheck.c:1069 +#, c-format +msgid "Found %d bad Filename records.\n" +msgstr "" + +#: src/tools/dbcheck.c:1087 src/tools/dbcheck.c:1150 +#, c-format +msgid "Reparing %d bad Filename records.\n" +msgstr "" + +#: src/tools/dbcheck.c:1124 +#, c-format +msgid "Checking for Paths without a trailing slash\n" +msgstr "" + +#: src/tools/dbcheck.c:1133 +#, c-format +msgid "Found %d bad Path records.\n" +msgstr "" + +#: src/tools/drivetype.c:47 +#, c-format +msgid "" +"\n" +"Usage: drivetype [-v] path ...\n" +"\n" +" Print the drive type a given file/directory is on.\n" +" The following options are supported:\n" +"\n" +" -v print both path and file system type.\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/tools/drivetype.c:101 src/tools/fstype.c:101 +#, c-format +msgid "%s: unknown\n" +msgstr "" + +#: src/tools/fstype.c:47 +#, c-format +msgid "" +"\n" +"Usage: fstype [-v] path ...\n" +"\n" +" Print the file system type a given file/directory is on.\n" +" The following options are supported:\n" +"\n" +" -v print both path and file system type.\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/tools/testfind.c:66 +#, c-format +msgid "" +"\n" +"Usage: testfind [-d debug_level] [-] [pattern1 ...]\n" +" -a print extended attributes (Win32 debug)\n" +" -dnn set debug level to nn\n" +" -c specify config file containing FileSet resources\n" +" -f specify which FileSet to use\n" +" -? print this message.\n" +"\n" +"Patterns are used for file inclusion -- normally directories.\n" +"Debug level >= 1 prints each file found.\n" +"Debug level >= 10 prints path/file for catalog.\n" +"Errors are always printed.\n" +"Files/paths truncated is the number of files/paths with len > 255.\n" +"Truncation is only in the catalog.\n" +"\n" +msgstr "" + +#: src/tools/testfind.c:225 +#, c-format +msgid "" +"\n" +"Total files : %d\n" +"Max file length: %d\n" +"Max path length: %d\n" +"Files truncated: %d\n" +"Paths truncated: %d\n" +"Hard links : %d\n" +msgstr "" + +#: src/tools/testfind.c:265 +#, c-format +msgid "Reg: %s\n" +msgstr "" + +#: src/tools/testfind.c:287 +msgid "\t[will not descend: recursion turned off]" +msgstr "" + +#: src/tools/testfind.c:289 +msgid "\t[will not descend: file system change not allowed]" +msgstr "" + +#: src/tools/testfind.c:291 +msgid "\t[will not descend: disallowed file system]" +msgstr "" + +#: src/tools/testfind.c:293 +msgid "\t[will not descend: disallowed drive type]" +msgstr "" + +#: src/tools/testfind.c:309 src/tools/testls.c:188 +#, c-format +msgid "Err: Could not access %s: %s\n" +msgstr "" + +#: src/tools/testfind.c:312 src/tools/testls.c:191 +#, c-format +msgid "Err: Could not follow ff->link %s: %s\n" +msgstr "" + +#: src/tools/testfind.c:315 src/tools/testls.c:194 +#, c-format +msgid "Err: Could not stat %s: %s\n" +msgstr "" + +#: src/tools/testfind.c:318 src/tools/testls.c:197 +#, c-format +msgid "Skip: File not saved. No change. %s\n" +msgstr "" + +#: src/tools/testfind.c:321 src/tools/testls.c:200 +#, c-format +msgid "Err: Attempt to backup archive. Not saved. %s\n" +msgstr "" + +#: src/tools/testfind.c:324 src/tools/testls.c:209 +#, c-format +msgid "Err: Could not open directory %s: %s\n" +msgstr "" + +#: src/tools/testfind.c:327 src/tools/testls.c:212 +#, c-format +msgid "Err: Unknown file ff->type %d: %s\n" +msgstr "" + +#: src/tools/testfind.c:377 +#, c-format +msgid "===== Filename truncated to 255 chars: %s\n" +msgstr "" + +#: src/tools/testfind.c:394 +#, c-format +msgid "========== Path name truncated to 255 chars: %s\n" +msgstr "" + +#: src/tools/testfind.c:403 +#, c-format +msgid "========== Path length is zero. File=%s\n" +msgstr "" + +#: src/tools/testfind.c:406 +#, c-format +msgid "Path: %s\n" +msgstr "" + +#: src/tools/testls.c:55 +#, c-format +msgid "" +"\n" +"Usage: testls [-d debug_level] [-] [pattern1 ...]\n" +" -a print extended attributes (Win32 debug)\n" +" -dnn set debug level to nn\n" +" -e specify file of exclude patterns\n" +" -i specify file of include patterns\n" +" - read pattern(s) from stdin\n" +" -? print this message.\n" +"\n" +"Patterns are file inclusion -- normally directories.\n" +"Debug level >= 1 prints each file found.\n" +"Debug level >= 10 prints path/file for catalog.\n" +"Errors always printed.\n" +"Files/paths truncated is number with len > 255.\n" +"Truncation is only in catalog.\n" +"\n" +msgstr "" + +#: src/tools/testls.c:140 +#, c-format +msgid "Could not open include file: %s\n" +msgstr "" + +#: src/tools/testls.c:153 +#, c-format +msgid "Could not open exclude file: %s\n" +msgstr "" + +#: src/tools/testls.c:203 +#, c-format +msgid "Recursion turned off. Directory not entered. %s\n" +msgstr "" + +#: src/tools/testls.c:206 +#, c-format +msgid "Skip: File system change prohibited. Directory not entered. %s\n" +msgstr "" + +#: src/tray-monitor/authenticate.c:88 +msgid "" +"Director authorization problem.\n" +"Most likely the passwords do not agree.\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" + +#: src/tray-monitor/authenticate.c:138 +msgid "" +"Director and Storage daemon passwords or names not the same.\n" +"Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for " +"help.\n" +msgstr "" + +#: src/tray-monitor/authenticate.c:145 +#, c-format +msgid "bdird set configuration file to file\n" +" -dnn set debug level to nn\n" +" -t test - read configuration and exit\n" +" -? print this message.\n" +"\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:262 +#, c-format +msgid "" +"Error: %d Monitor resources defined in %s. You must define one and only one " +"Monitor resource.\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:293 +#, c-format +msgid "" +"No Client, Storage or Director resource defined in %s\n" +"Without that I don't how to get status from the File, Storage or Director " +"Daemon :-(\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:315 +#, c-format +msgid "" +"Invalid refresh interval defined in %s\n" +"This value must be greater or equal to 1 second and less or equal to 10 " +"minutes (read value: %d).\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:330 +msgid "Open status window..." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:336 +msgid "Exit" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:348 +msgid "Bacula tray monitor" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:373 +msgid " (DIR)" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:377 +msgid " (FD)" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:381 +msgid " (SD)" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:394 +msgid "Unknown status." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:464 +msgid "Refresh interval in seconds: " +msgstr "" + +#: src/tray-monitor/tray-monitor.c:472 +msgid "Refresh now" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:476 +msgid "About" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:480 +msgid "Close" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:500 +#, c-format +msgid "Disconnecting from Director %s:%d\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:503 +#, c-format +msgid "Disconnecting from Client %s:%d\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:506 +#, c-format +msgid "Disconnecting from Storage %s:%d\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:543 src/tray-monitor/tray-monitor.c:554 +msgid "Bacula Tray Monitor" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:545 src/tray-monitor/tray-monitor.c:556 +msgid "Written by Nicolas Boichat\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:546 src/tray-monitor/tray-monitor.c:557 +msgid "Version" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:625 +#, c-format +msgid "Error, currentitem is not a Client or a Storage..\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:699 +#, c-format +msgid "" +"Current job: %s\n" +"Last job: %s" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:711 +#, c-format +msgid " (%d errors)" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:714 +#, c-format +msgid " (%d error)" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:752 +msgid "No current job." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:755 +msgid "No last job." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:763 +msgid "Job status: Created" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:768 +msgid "Job status: Running" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:772 +msgid "Job status: Blocked" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:777 +msgid "Job status: Terminated" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:782 +msgid "Job status: Terminated in error" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:788 +msgid "Job status: Error" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:792 +msgid "Job status: Fatal error" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:797 +msgid "Job status: Verify differences" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:802 +msgid "Job status: Canceled" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:807 +msgid "Job status: Waiting on File daemon" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:812 +msgid "Job status: Waiting on the Storage daemon" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:817 +msgid "Job status: Waiting for new media" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:822 +msgid "Job status: Waiting for Mount" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:827 +msgid "Job status: Waiting for storage resource" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:832 +msgid "Job status: Waiting for job resource" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:837 +msgid "Job status: Waiting for Client resource" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:842 +msgid "Job status: Waiting for maximum jobs" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:847 +msgid "Job status: Waiting for start time" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:852 +msgid "Job status: Waiting for higher priority jobs to finish" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:857 +#, c-format +msgid "Unknown job status %c." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:858 +#, c-format +msgid "Job status: Unknown(%c)" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:865 +#, c-format +msgid "Bad scan : '%s' %d\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:906 +#, c-format +msgid "Connecting to Director %s:%d" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:912 +#, c-format +msgid "Connecting to Client %s:%d\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:913 +#, c-format +msgid "Connecting to Client %s:%d" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:919 +#, c-format +msgid "Connecting to Storage %s:%d\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:920 +#, c-format +msgid "Connecting to Storage %s:%d" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:925 src/tray-monitor/tray-monitor.c:963 +#, c-format +msgid "Error, currentitem is not a Client, a Storage or a Director..\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:931 +msgid "Cannot connect to daemon.\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:932 +msgid "Cannot connect to daemon." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:944 +#, c-format +msgid "Authentication error : %s" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:951 +msgid "Opened connection with Director daemon.\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:952 +msgid "Opened connection with Director daemon." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:955 +msgid "Opened connection with File daemon.\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:956 +msgid "Opened connection with File daemon." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:959 +msgid "Opened connection with Storage daemon.\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:960 +msgid "Opened connection with Storage daemon." +msgstr "" + +#: src/tray-monitor/tray-monitor.c:997 +msgid "<< Error: BNET_PROMPT signal received. >>\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:1002 src/wx-console/console_thread.cpp:486 +msgid "<< Heartbeat signal received, answered. >>\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:1006 +#, c-format +msgid "<< Unexpected signal received : %s >>\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:1011 +msgid "\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:1015 +msgid "Error : BNET_HARDEOF or BNET_ERROR" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:1021 +msgid "\n" +msgstr "" + +#: src/tray-monitor/tray-monitor.c:1025 +msgid "Error : Connection closed." +msgstr "" + +#: src/tray-monitor/tray_conf.c:177 +#, c-format +msgid "Monitor: name=%s FDtimeout=%s SDtimeout=%s\n" +msgstr "" + +#: src/tray-monitor/tray_conf.c:183 +#, c-format +msgid "Director: name=%s address=%s FDport=%d\n" +msgstr "" + +#: src/tray-monitor/tray_conf.c:187 +#, c-format +msgid "Client: name=%s address=%s FDport=%d\n" +msgstr "" + +#: src/tray-monitor/tray_conf.c:191 +#, c-format +msgid "Storage: name=%s address=%s SDport=%d\n" +msgstr "" + +#: src/wx-console/authenticate.c:150 +msgid "Bad response to Hello command: ERR=" +msgstr "" + +#: src/baconfig.h:72 +#, c-format +msgid "Failed ASSERT: %s\n" +msgstr "" + +#: src/baconfig.h:79 +msgid "*None*" +msgstr "" + +#: src/win32/dird/winmain.cpp:193 src/win32/dird/winmain.cpp:200 +#: src/win32/filed/winmain.cpp:224 src/win32/filed/winmain.cpp:231 +#: src/win32/stored/baculasd/winmain.cpp:225 +#: src/win32/stored/baculasd/winmain.cpp:232 +msgid "Bacula Usage" +msgstr "" + +#: src/win32/dird/winmain.cpp:197 src/win32/filed/winmain.cpp:228 +#: src/win32/stored/baculasd/winmain.cpp:229 +msgid "Bad Command Line Options" +msgstr "" + +#: src/win32/dird/winservice.cpp:119 src/win32/filed/winservice.cpp:238 +#: src/win32/stored/baculasd/winservice.cpp:169 +msgid "StartServiceCtrlDispatcher failed." +msgstr "" + +#: src/win32/dird/winservice.cpp:135 src/win32/filed/winservice.cpp:256 +#: src/win32/stored/baculasd/winservice.cpp:185 +msgid "RegisterServiceCtlHandler failed" +msgstr "" + +#: src/win32/dird/winservice.cpp:136 src/win32/filed/winservice.cpp:257 +#: src/win32/stored/baculasd/winservice.cpp:186 +msgid "Contact Register Service Handler failure" +msgstr "" + +#: src/win32/dird/winservice.cpp:152 src/win32/filed/winservice.cpp:273 +#: src/win32/stored/baculasd/winservice.cpp:202 +msgid "ReportStatus STOPPED failed 1" +msgstr "" + +#: src/win32/dird/winservice.cpp:175 src/win32/filed/winservice.cpp:296 +#: src/win32/stored/baculasd/winservice.cpp:225 +msgid "Report Service failure" +msgstr "" + +#: src/win32/dird/winservice.cpp:211 +msgid "Unable to install Bacula Director service" +msgstr "" + +#: src/win32/dird/winservice.cpp:219 src/win32/filed/winservice.cpp:340 +#: src/win32/stored/baculasd/winservice.cpp:269 +msgid "Service command length too long" +msgstr "" + +#: src/win32/dird/winservice.cpp:220 src/win32/filed/winservice.cpp:341 +#: src/win32/stored/baculasd/winservice.cpp:270 +msgid "Service command length too long. Service not registered." +msgstr "" + +#: src/win32/dird/winservice.cpp:233 +msgid "" +"The Service Control Manager could not be contacted - the Bacula Director " +"service was not installed" +msgstr "" + +#: src/win32/dird/winservice.cpp:258 +msgid "The Bacula Director service could not be installed" +msgstr "" + +#: src/win32/dird/winservice.cpp:264 +msgid "Provides director services. Bacula -- the network backup solution." +msgstr "" + +#: src/win32/dird/winservice.cpp:272 +msgid "" +"The Bacula Director service was successfully installed.\n" +"The service may be started from the Control Panel and will\n" +"automatically be run the next time this machine is rebooted." +msgstr "" + +#: src/win32/dird/winservice.cpp:311 +msgid "The Bacula Director service could not be stopped" +msgstr "" + +#: src/win32/dird/winservice.cpp:318 +msgid "The Bacula Director service has been removed" +msgstr "" + +#: src/win32/dird/winservice.cpp:321 +msgid "The Bacula Director service could not be removed" +msgstr "" + +#: src/win32/dird/winservice.cpp:326 +msgid "The Bacula Director service could not be found" +msgstr "" + +#: src/win32/dird/winservice.cpp:331 +msgid "" +"The SCM could not be contacted - the Bacula Director service was not removed" +msgstr "" + +#: src/win32/dird/winservice.cpp:393 src/win32/filed/winservice.cpp:604 +#: src/win32/stored/baculasd/winservice.cpp:443 +msgid "SetServiceStatus failed" +msgstr "" + +#: src/win32/dird/winservice.cpp:421 src/win32/filed/winservice.cpp:632 +#: src/win32/stored/baculasd/winservice.cpp:471 +#, c-format +msgid "" +"\n" +"\n" +"%s error: %ld at %s:%d" +msgstr "" + +#: src/win32/dird/winservice.cpp:496 src/win32/filed/winservice.cpp:706 +#: src/win32/stored/baculasd/winservice.cpp:546 +#, c-format +msgid "Locked by: %s, duration: %ld seconds\n" +msgstr "" + +#: src/win32/dird/winservice.cpp:500 src/win32/filed/winservice.cpp:710 +#: src/win32/stored/baculasd/winservice.cpp:550 +#, c-format +msgid "No longer locked\n" +msgstr "" + +#: src/win32/dird/winservice.cpp:504 src/win32/filed/winservice.cpp:714 +#: src/win32/stored/baculasd/winservice.cpp:554 +msgid "Could not lock database" +msgstr "" + +#: src/win32/filed/winmain.cpp:326 src/win32/stored/baculasd/winmain.cpp:326 +msgid "Another instance of Bacula is already running" +msgstr "" + +#: src/win32/filed/winservice.cpp:111 src/win32/filed/winservice.cpp:125 +msgid "No existing instance of Bacula File service could be contacted" +msgstr "" + +#: src/win32/filed/winservice.cpp:196 +msgid "KERNEL32.DLL not found: Bacula service not started" +msgstr "" + +#: src/win32/filed/winservice.cpp:206 +msgid "Registry service not found: Bacula service not started" +msgstr "" + +#: src/win32/filed/winservice.cpp:208 +msgid "Registry service not found" +msgstr "" + +#: src/win32/filed/winservice.cpp:332 +msgid "Unable to install Bacula File service" +msgstr "" + +#: src/win32/filed/winservice.cpp:356 +msgid "Cannot write System Registry" +msgstr "" + +#: src/win32/filed/winservice.cpp:357 +msgid "" +"The System Registry could not be updated - the Bacula service was not " +"installed" +msgstr "" + +#: src/win32/filed/winservice.cpp:364 +msgid "Cannot add Bacula key to System Registry" +msgstr "" + +#: src/win32/filed/winservice.cpp:365 src/win32/filed/winservice.cpp:418 +msgid "The Bacula service could not be installed" +msgstr "" + +#: src/win32/filed/winservice.cpp:374 +msgid "" +"The Bacula File service was successfully installed.\n" +"The service may be started by double clicking on the\n" +"Bacula \"Start\" icon and will be automatically\n" +"be run the next time this machine is rebooted. " +msgstr "" + +#: src/win32/filed/winservice.cpp:393 +msgid "" +"The Service Control Manager could not be contacted - the Bacula service was " +"not installed" +msgstr "" + +#: src/win32/filed/winservice.cpp:424 +msgid "" +"Provides file backup and restore services. Bacula -- the network backup " +"solution." +msgstr "" + +#: src/win32/filed/winservice.cpp:432 +msgid "" +"The Bacula File service was successfully installed.\n" +"The service may be started from the Control Panel and will\n" +"automatically be run the next time this machine is rebooted." +msgstr "" + +#: src/win32/filed/winservice.cpp:442 +msgid "" +"Unknown Windows operating system.\n" +"Cannot install Bacula service.\n" +msgstr "" + +#: src/win32/filed/winservice.cpp:467 +msgid "" +"Could not find registry entry.\n" +"Service probably not registerd - the Bacula service was not removed" +msgstr "" + +#: src/win32/filed/winservice.cpp:472 +msgid "" +"Could not delete Registry key.\n" +"The Bacula service could not be removed" +msgstr "" + +#: src/win32/filed/winservice.cpp:482 +msgid "Bacula could not be contacted, probably not running" +msgstr "" + +#: src/win32/filed/winservice.cpp:489 +msgid "The Bacula service has been removed" +msgstr "" + +#: src/win32/filed/winservice.cpp:520 +msgid "The Bacula file service could not be stopped" +msgstr "" + +#: src/win32/filed/winservice.cpp:527 +msgid "The Bacula file service has been removed" +msgstr "" + +#: src/win32/filed/winservice.cpp:530 +msgid "The Bacula file service could not be removed" +msgstr "" + +#: src/win32/filed/winservice.cpp:535 +msgid "The Bacula file service could not be found" +msgstr "" + +#: src/win32/filed/winservice.cpp:540 +msgid "" +"The SCM could not be contacted - the Bacula file service was not removed" +msgstr "" + +#: src/win32/stored/baculasd/winservice.cpp:85 +#: src/win32/stored/baculasd/winservice.cpp:99 +msgid "No existing instance of Bacula storage service could be contacted" +msgstr "" + +#: src/win32/stored/baculasd/winservice.cpp:261 +msgid "Unable to install Bacula Storage service" +msgstr "" + +#: src/win32/stored/baculasd/winservice.cpp:283 +msgid "" +"The Service Control Manager could not be contacted - the Bacula Storage " +"service was not installed" +msgstr "" + +#: src/win32/stored/baculasd/winservice.cpp:308 +msgid "The Bacula Storage service could not be installed" +msgstr "" + +#: src/win32/stored/baculasd/winservice.cpp:314 +msgid "Provides storage services. Bacula -- the network backup solution." +msgstr "" + +#: src/win32/stored/baculasd/winservice.cpp:322 +msgid "" +"The Bacula Storage service was successfully installed.\n" +"The service may be started from the Control Panel and will\n" +"automatically be run the next time this machine is rebooted." +msgstr "" + +#: src/win32/stored/baculasd/winservice.cpp:361 +msgid "The Bacula Storage service could not be stopped" +msgstr "" + +#: src/win32/stored/baculasd/winservice.cpp:368 +msgid "The Bacula Storage service has been removed" +msgstr "" + +#: src/win32/stored/baculasd/winservice.cpp:371 +msgid "The Bacula Storage service could not be removed" +msgstr "" + +#: src/win32/stored/baculasd/winservice.cpp:376 +msgid "The Bacula Storage service could not be found" +msgstr "" + +#: src/win32/stored/baculasd/winservice.cpp:381 +msgid "" +"The SCM could not be contacted - the Bacula Storage service was not removed" +msgstr "" + +#: src/wx-console/console_thread.cpp:121 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Director \"%s\" in config file.\n" +"At least one CA certificate store is required.\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:128 +msgid "" +"No Director resource defined in config file.\n" +"Without that I don't how to speak to the Director :-(\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:147 +#, c-format +msgid "" +"Neither \"TLS CA Certificate\" or \"TLS CA Certificate Dir\" are defined for " +"Console \"%s\" in config file.\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:169 +msgid "Error while initializing windows sockets...\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:185 +msgid "Error while cleaning up windows sockets...\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:224 +msgid "Error while initializing library." +msgstr "" + +#: src/wx-console/console_thread.cpp:248 +msgid "Cryptographic library initialization failed.\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:252 +msgid "Please correct configuration file.\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:294 +msgid "Error : Library not initialized\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:305 +msgid "Error : No configuration file loaded\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:315 +msgid "Connecting...\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:331 +msgid "Error : No director defined in config file.\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:343 +msgid "Multiple directors found in your config file.\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:352 +#, c-format +msgid "Please choose a director (1-%d): " +msgstr "" + +#: src/wx-console/console_thread.cpp:424 +msgid "Failed to connect to the director\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:434 +msgid "Connected\n" +msgstr "" + +#: src/wx-console/console_thread.cpp:491 +msgid "<< Unexpected signal received : " +msgstr "" + +#: src/wx-console/console_thread.cpp:511 +msgid "Connection terminated\n" +msgstr "" + +#: src/wx-console/main.cpp:119 +msgid "Bacula bwx-console" +msgstr "" + +#: src/wx-console/main.cpp:124 src/wx-console/wxbmainframe.cpp:267 +#, c-format +msgid "Welcome to bacula bwx-console %s (%s)!\n" +msgstr "" + +#: src/wx-console/wxbconfigfileeditor.cpp:65 +msgid "Config file editor" +msgstr "" + +#: src/wx-console/wxbconfigfileeditor.cpp:75 +msgid "# Bacula bwx-console Configuration File\n" +msgstr "" + +#: src/wx-console/wxbconfigfileeditor.cpp:111 +msgid "Save and close" +msgstr "" + +#: src/wx-console/wxbconfigfileeditor.cpp:112 +msgid "Close without saving" +msgstr "" + +#: src/wx-console/wxbconfigfileeditor.cpp:139 +#, c-format +msgid "Unable to write to %s\n" +msgstr "" + +#: src/wx-console/wxbconfigfileeditor.cpp:140 +msgid "Error while saving" +msgstr "" + +#: src/wx-console/wxbconfigpanel.cpp:205 +msgid "Apply" +msgstr "" + +#: src/wx-console/wxbhistorytextctrl.cpp:82 +#: src/wx-console/wxbhistorytextctrl.cpp:153 +#: src/wx-console/wxbmainframe.cpp:291 +msgid "Type your command below:" +msgstr "" + +#: src/wx-console/wxbhistorytextctrl.cpp:117 +msgid "Unknown command." +msgstr "" + +#: src/wx-console/wxbhistorytextctrl.cpp:126 +msgid "Possible completions: " +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:246 +msgid "&About...\tF1" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:246 +msgid "Show about dialog" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:248 src/wx-console/wxbmainframe.cpp:620 +msgid "Connect to the director" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:249 +msgid "Disconnect" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:249 +msgid "Disconnect of the director" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:251 +msgid "Change of configuration file" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:251 +msgid "Change your default configuration file" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:252 +msgid "Edit your configuration file" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:254 +msgid "E&xit\tAlt-X" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:254 +msgid "Quit this program" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:258 +msgid "&File" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:259 +msgid "&Help" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:283 +msgid "" +"Warning : Unicode is disabled because you are using wxWidgets for GTK+ 1.2.\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:287 +msgid "" +"Warning : There is a problem with wxWidgets for GTK+ 2.0 without Unicode " +"support when handling non-ASCII filenames: Every non-ASCII character in such " +"filenames will be replaced by an interrogation mark.\n" +"If this behaviour disturbs you, please build bwx-console against a Unicode " +"version of wxWidgets for GTK+ 2.0.\n" +"---\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:298 +msgid "Send" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:375 src/wx-console/wxbmainframe.cpp:387 +msgid "Error while parsing command line arguments, using defaults.\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:376 src/wx-console/wxbmainframe.cpp:388 +msgid "Usage: bwx-console [-c configfile] [-w tmp]\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:417 +#, c-format +msgid "" +"It seems that it is the first time you run bwx-console.\n" +"This file (%s) has been choosen as default configuration file.\n" +"Do you want to edit it? (if you click No you will have to select another " +"file)" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:419 +msgid "First run" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:436 +#, c-format +msgid "" +"Unable to read %s\n" +"Error: %s\n" +"Do you want to choose another one? (Press no to edit this file)" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:438 +msgid "Unable to read configuration file" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:450 +msgid "Please choose a configuration file to use" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:463 +msgid "This configuration file has been successfully read, use it as default?" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:464 +msgid "Configuration file read successfully" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:474 +#, c-format +msgid "Using this configuration file: %s\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:479 +msgid "Connecting to the director..." +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:494 +msgid "Failed to unregister a data parser !" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:502 +msgid "Quitting.\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:517 +msgid "" +"Welcome to Bacula bwx-console.\n" +"Written by Nicolas Boichat \n" +"Copyright (C), 2005-2007 Free Software Foundation Europe, e.V.\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:521 +msgid "About Bacula bwx-console" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:527 +msgid "Please choose your default configuration file" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:531 +msgid "Use this configuration file as default?" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:532 +msgid "Configuration file" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:603 +msgid "Console thread terminated." +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:611 +msgid "Connection to the director lost. Quit program?" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:612 +msgid "Connection lost" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:628 +msgid "Connected to the director." +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:651 +msgid "Reconnect" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:652 +msgid "Reconnect to the director" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:666 +msgid "Disconnected of the director." +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:685 src/wx-console/wxbrestorepanel.cpp:710 +msgid "Unexpected question has been received.\n" +msgstr "" + +#: src/wx-console/wxbmainframe.cpp:708 src/wx-console/wxbmainframe.cpp:725 +msgid "bwx-console: unexpected director's question." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:234 +#: src/wx-console/wxbrestorepanel.cpp:1920 +#: src/wx-console/wxbrestorepanel.cpp:1949 +msgid "Enter restore mode" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:237 +msgid "Cancel restore" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:263 +#: src/wx-console/wxbrestorepanel.cpp:317 +msgid "Add" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:265 +#: src/wx-console/wxbrestorepanel.cpp:319 +msgid "Remove" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:267 +#: src/wx-console/wxbrestorepanel.cpp:321 +msgid "Refresh" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:286 +msgid "M" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:290 +msgid "Filename" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:302 +msgid "Perm." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:335 +#: src/wx-console/wxbrestorepanel.cpp:348 +#: src/wx-console/wxbrestorepanel.cpp:503 +#: src/wx-console/wxbrestorepanel.cpp:513 +#: src/wx-console/wxbrestorepanel.cpp:516 +#: src/wx-console/wxbrestorepanel.cpp:1784 +#: src/wx-console/wxbrestorepanel.cpp:1870 +msgid "Job Name" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:337 +#: src/wx-console/wxbrestorepanel.cpp:353 +#: src/wx-console/wxbrestorepanel.cpp:455 +#: src/wx-console/wxbrestorepanel.cpp:456 +#: src/wx-console/wxbrestorepanel.cpp:466 +#: src/wx-console/wxbrestorepanel.cpp:467 +#: src/wx-console/wxbrestorepanel.cpp:1139 +#: src/wx-console/wxbrestorepanel.cpp:1212 +#: src/wx-console/wxbrestorepanel.cpp:1822 +#: src/wx-console/wxbrestorepanel.cpp:1824 +#: src/wx-console/wxbrestorepanel.cpp:1885 +msgid "Fileset" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:340 +#: src/wx-console/wxbrestorepanel.cpp:1206 +#: src/wx-console/wxbrestorepanel.cpp:1222 +#: src/wx-console/wxbrestorepanel.cpp:1224 +#: src/wx-console/wxbrestorepanel.cpp:1232 +#: src/wx-console/wxbrestorepanel.cpp:1234 +#: src/wx-console/wxbrestorepanel.cpp:1253 +#: src/wx-console/wxbrestorepanel.cpp:1260 +#: src/wx-console/wxbrestorepanel.cpp:1812 +#: src/wx-console/wxbrestorepanel.cpp:1823 +#: src/wx-console/wxbrestorepanel.cpp:1944 +msgid "Before" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:342 +msgid "Please configure parameters concerning files to restore :" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:351 +#: src/wx-console/wxbrestorepanel.cpp:1878 +msgid "always" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:351 +msgid "if newer" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:351 +msgid "if older" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:351 +#: src/wx-console/wxbrestorepanel.cpp:1881 +msgid "never" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:359 +msgid "Please configure parameters concerning files restoration :" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:427 +msgid "Getting parameters list." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:435 +msgid "Error : no clients returned by the director." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:459 +msgid "Error : no filesets returned by the director." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:483 +msgid "Error : no storage returned by the director." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:506 +#: src/wx-console/wxbrestorepanel.cpp:530 +msgid "Error : no jobs returned by the director." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:516 +msgid "RestoreFiles" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:551 +msgid "Please configure your restore parameters." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:562 +msgid "Building restore tree..." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:605 +msgid "Error while starting restore: " +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:695 +msgid "" +"Right click on a file or on a directory, or double-click on its mark to add " +"it to the restore list." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:732 +#: src/wx-console/wxbrestorepanel.cpp:754 +msgid "bwx-console: unexpected restore question." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:765 +msgid " files selected to be restored." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:770 +msgid " file selected to be restored." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:777 +#, c-format +msgid "Please configure your restore (%ld files selected to be restored)..." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:787 +msgid "Restore failed : no file selected.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:788 +msgid "Restore failed : no file selected." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:798 +msgid "Restoring, please wait..." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:811 +msgid "Job queued. JobId=" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:813 +msgid "Restore queued, jobid=" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:817 +msgid "Job failed." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:818 +msgid "Restore failed, please look at messages.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:819 +msgid "Restore failed, please look at messages in console." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:825 +#: src/wx-console/wxbrestorepanel.cpp:826 +msgid "Failed to retrieve jobid.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:852 +msgid "" +"Restore is scheduled in more than two minutes, bwx-console will not wait for " +"its completion.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:853 +msgid "" +"Restore is scheduled in more than two minutes, bwx-console will not wait for " +"its completion." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:879 +msgid "Restore job created, but not yet running." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:884 +#, c-format +msgid "Restore job running, please wait (%ld of %ld files restored)..." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:888 +msgid "Restore job terminated successfully." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:889 +msgid "Restore job terminated successfully.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:894 +msgid "Restore job terminated in error, see messages in console." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:895 +msgid "Restore job terminated in error, see messages.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:900 +msgid "Restore job reported a non-fatal error." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:904 +msgid "Restore job reported a fatal error." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:909 +msgid "Restore job cancelled by user." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:910 +msgid "Restore job cancelled by user.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:915 +msgid "Restore job is waiting on File daemon." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:919 +msgid "Restore job is waiting for new media." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:923 +msgid "Restore job is waiting for storage resource." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:927 +msgid "Restore job is waiting for job resource." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:931 +msgid "Restore job is waiting for Client resource." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:935 +msgid "Restore job is waiting for maximum jobs." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:939 +msgid "Restore job is waiting for start time." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:943 +msgid "Restore job is waiting for higher priority jobs to finish." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:992 +msgid "" +"The restore job has not been started within one minute, bwx-console will not " +"wait for its completion anymore.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:993 +msgid "" +"The restore job has not been started within one minute, bwx-console will not " +"wait for its completion anymore." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1003 +msgid "Restore done successfully.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1004 +msgid "Restore done successfully." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1075 +msgid "Applying restore configuration changes..." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1126 +msgid "Failed to find the selected client." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1141 +msgid "Failed to find the selected fileset." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1156 +msgid "Failed to find the selected storage." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1173 +#: src/wx-console/wxbrestorepanel.cpp:1859 +msgid "Run Restore job" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1189 +msgid "Restore configuration changes were applied." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1198 +msgid "Restore cancelled.\n" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1199 +msgid "Restore cancelled." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1221 +msgid "No results to list." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1223 +msgid "No backup found for this client." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1230 +msgid "ERROR" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1231 +msgid "Query failed" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1233 +msgid "Cannot get previous backups list, see console." +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1869 +msgid "JobName:" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1873 +msgid "Where:" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1876 +msgid "Replace:" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1879 +msgid "ifnewer" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1880 +msgid "ifolder" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:1884 +msgid "FileSet:" +msgstr "" + +#: src/wx-console/wxbrestorepanel.cpp:2001 +msgid "Restoring..." +msgstr "" diff --git a/Branch-2.2/bacula/projects b/Branch-2.2/bacula/projects new file mode 100644 index 0000000000..55820d6946 --- /dev/null +++ b/Branch-2.2/bacula/projects @@ -0,0 +1,1198 @@ + +Projects: + Bacula Projects Roadmap + Status updated 18 August 2007 + After removing items completed in version + 2.2.0 and renumbering + +Items Completed: + +Summary: +Item 1: Accurate restoration of renamed/deleted files +Item 2: Allow FD to initiate a backup +Item 3: Merge multiple backups (Synthetic Backup or Consolidation) +Item 4: Implement Catalog directive for Pool resource in Director +Item 5: Add an item to the restore option where you can select a Pool +Item 6: Deletion of disk Volumes when pruned +Item 7: Implement Base jobs +Item 8: Implement Copy pools +Item 9: Scheduling syntax that permits more flexibility and options +Item 10: Message mailing based on backup types +Item 11: Cause daemons to use a specific IP address to source communications +Item 12: Add Plug-ins to the FileSet Include statements. +Item 13: Restore only file attributes (permissions, ACL, owner, group...) +Item 14: Add an override in Schedule for Pools based on backup types +Item 15: Implement more Python events and functions +Item 16: Allow inclusion/exclusion of files in a fileset by creation/mod times +Item 17: Automatic promotion of backup levels based on backup size +Item 18: Better control over Job execution +Item 19: Automatic disabling of devices +Item 20: An option to operate on all pools with update vol parameters +Item 21: Include timestamp of job launch in "stat clients" output +Item 22: Implement Storage daemon compression +Item 23: Improve Bacula's tape and drive usage and cleaning management +Item 24: Multiple threads in file daemon for the same job +Item 25: Archival (removal) of User Files to Tape + + +Item 1: Accurate restoration of renamed/deleted files + Date: 28 November 2005 + Origin: Martin Simmons (martin at lispworks dot com) + Status: + + What: When restoring a fileset for a specified date (including "most + recent"), Bacula should give you exactly the files and directories + that existed at the time of the last backup prior to that date. + + Currently this only works if the last backup was a Full backup. + When the last backup was Incremental/Differential, files and + directories that have been renamed or deleted since the last Full + backup are not currently restored correctly. Ditto for files with + extra/fewer hard links than at the time of the last Full backup. + + Why: Incremental/Differential would be much more useful if this worked. + + Notes: Merging of multiple backups into a single one seems to + rely on this working, otherwise the merged backups will not be + truly equivalent to a Full backup. + + Note: Kern: notes shortened. This can be done without the need for + inodes. It is essentially the same as the current Verify job, + but one additional database record must be written, which does + not need any database change. + + Notes: Kern: see if we can correct restoration of directories if + replace=ifnewer is set. Currently, if the directory does not + exist, a "dummy" directory is created, then when all the files + are updated, the dummy directory is newer so the real values + are not updated. + +Item 2: Allow FD to initiate a backup + Origin: Frank Volf (frank at deze dot org) + Date: 17 November 2005 + Status: + + What: Provide some means, possibly by a restricted console that + allows a FD to initiate a backup, and that uses the connection + established by the FD to the Director for the backup so that + a Director that is firewalled can do the backup. + + Why: Makes backup of laptops much easier. + + +Item 3: Merge multiple backups (Synthetic Backup or Consolidation) + Origin: Marc Cousin and Eric Bollengier + Date: 15 November 2005 + Status: + + What: A merged backup is a backup made without connecting to the Client. + It would be a Merge of existing backups into a single backup. + In effect, it is like a restore but to the backup medium. + + For instance, say that last Sunday we made a full backup. Then + all week long, we created incremental backups, in order to do + them fast. Now comes Sunday again, and we need another full. + The merged backup makes it possible to do instead an incremental + backup (during the night for instance), and then create a merged + backup during the day, by using the full and incrementals from + the week. The merged backup will be exactly like a full made + Sunday night on the tape, but the production interruption on the + Client will be minimal, as the Client will only have to send + incrementals. + + In fact, if it's done correctly, you could merge all the + Incrementals into single Incremental, or all the Incrementals + and the last Differential into a new Differential, or the Full, + last differential and all the Incrementals into a new Full + backup. And there is no need to involve the Client. + + Why: The benefit is that : + - the Client just does an incremental ; + - the merged backup on tape is just as a single full backup, + and can be restored very fast. + + This is also a way of reducing the backup data since the old + data can then be pruned (or not) from the catalog, possibly + allowing older volumes to be recycled + +Item 4: Implement Catalog directive for Pool resource in Director + Origin: Alan Davis adavis@ruckus.com + Date: 6 March 2007 + Status: Submitted + + What: The current behavior is for the director to create all pools + found in the configuration file in all catalogs. Add a + Catalog directive to the Pool resource to specify which + catalog to use for each pool definition. + + Why: This allows different catalogs to have different pool + attributes and eliminates the side-effect of adding + pools to catalogs that don't need/use them. + + Notes: Kern: I think this is relatively easy to do, and it is really + a pre-requisite to a number of the Copy pool, ... projects + that are listed here. + +Item 5: Add an item to the restore option where you can select a Pool + Origin: kshatriyak at gmail dot com + Date: 1/1/2006 + Status: + + What: In the restore option (Select the most recent backup for a + client) it would be useful to add an option where you can limit + the selection to a certain pool. + + Why: When using cloned jobs, most of the time you have 2 pools - a + disk pool and a tape pool. People who have 2 pools would like to + select the most recent backup from disk, not from tape (tape + would be only needed in emergency). However, the most recent + backup (which may just differ a second from the disk backup) may + be on tape and would be selected. The problem becomes bigger if + you have a full and differential - the most "recent" full backup + may be on disk, while the most recent differential may be on tape + (though the differential on disk may differ even only a second or + so). Bacula will complain that the backups reside on different + media then. For now the only solution now when restoring things + when you have 2 pools is to manually search for the right + job-id's and enter them by hand, which is a bit fault tolerant. + + Notes: Kern: This is a nice idea. It could also be the way to support + Jobs that have been Copied (similar to migration, but not yet + implemented). + + + +Item 6: Deletion of disk Volumes when pruned + Date: Nov 25, 2005 + Origin: Ross Boylan (edited + by Kern) + Status: + + What: Provide a way for Bacula to automatically remove Volumes + from the filesystem, or optionally to truncate them. + Obviously, the Volume must be pruned prior removal. + + Why: This would allow users more control over their Volumes and + prevent disk based volumes from consuming too much space. + + Notes: The following two directives might do the trick: + + Volume Data Retention =