mirror of
https://0xacab.org/liberate/backupninja.git
synced 2024-11-10 04:42:31 +01:00
New upstream version 1.0.2
This commit is contained in:
commit
c16de05120
11
AUTHORS
11
AUTHORS
@ -45,3 +45,14 @@ Yuval Kogman <nothingmuch@woobling.org> -- RackSpace's CloudFiles support for du
|
||||
exobuzz - mysql bugfixes
|
||||
Glennie Vignarajah <glennie@glennie.fr> -- mysql bugfix
|
||||
ddpaul <paul@reic.ru> -- rsync bugfix
|
||||
ulrich -- duplicity bugfix preliminary patch
|
||||
David Gasaway <dave@gasaway.org> -- rdiff's output_as_info option
|
||||
Pierre ROUDIER <contact@pierreroudier.net> -- xz and test mode for tar handler
|
||||
olb <olb@nebkha.net> -- update of duplicity/paramiko SSH options handling
|
||||
Alexander Mette <mail@amette.eu> -- duplicity bugfix
|
||||
Dominik George <nik@naturalnet.de> -- Support using a different passphrase for the signing key from the one used for the encryption key in the dup handler
|
||||
Christian Prause <cprause@suse.com> -- Support suse in the sys handler
|
||||
Jools Wills <jools@oxfordinspire.co.uk> -- Bugfix in the sys helper, indentation fixes
|
||||
Mark Janssen <mark@sig-io.nl> -- ignore jobs whose filename ends with "~"
|
||||
shred <riseup@ml.shredzone.de> -- Initial patch for test mode support in the rsync handler
|
||||
Daniel Lo Nigro <daniel@dan.cx> -- Dropbox support for Duplicity
|
||||
|
77
ChangeLog
77
ChangeLog
@ -1,3 +1,80 @@
|
||||
version 1.0.2 -- September 05, 2017
|
||||
handler changes
|
||||
dsync:
|
||||
. Miscellaneous improvements to this experimental handler.
|
||||
dup:
|
||||
. For local backups, check that the destination directory exists.
|
||||
Thanks to ulrich for the preliminary patch. (Redmine#4049)
|
||||
. Gracefully handle legacy spaces between -o and IdentityFile.
|
||||
. Don't remove useful signature files with --extra-clean,
|
||||
on duplicity versions that have a sane handling of the cache.
|
||||
Thanks to Alexander Mette <mail@amette.eu> for the patch!
|
||||
(Closes: Redmine#6357)
|
||||
. Fix buggy version comparison. (Redmine#6746)
|
||||
. Support using a different passphrase for the signing key
|
||||
from the one used for the encryption key (Closes: #726072).
|
||||
Thanks to Dominik George <nik@naturalnet.de> for the patch!
|
||||
· Run duplicity in a C locales environment (Closes: #736280).
|
||||
Thanks to Jonathan Dupart <jonathan@dupart.org> for the report,
|
||||
and the initial patch!
|
||||
. Fix handling of Dropbox access token (Closes: GitLab#11260).
|
||||
mysql:
|
||||
. Make "nodata" option compatible with compress=no.
|
||||
. Fix non-qualified table name extraction. (Closes: Redmine#4373)
|
||||
. Skip dumping information and performance_schema databasase.
|
||||
(Closes: GitLab#11148)
|
||||
rdiff:
|
||||
. Add option to include rdiff-backup output in reports.
|
||||
Thanks to David Gasaway <dave@gasaway.org> for the patch!
|
||||
rsync:
|
||||
. Solve quoting issue with "su". (Closes: #683731, Redmine#4019)
|
||||
. Update increment folder date to avoid ending up with contradictory
|
||||
information. (Closes: Redmine#3929)
|
||||
. Force rsync handler run bash at the remote destination.
|
||||
(Closes: Redmine#3003)
|
||||
. Support running in test mode (Closes: Redmine#8196).
|
||||
Thanks to shred for the initial patch.
|
||||
sys:
|
||||
. Fix LUKS header backup to properly detect partitions.
|
||||
. Provide the ability to backup the MBR for every device found,
|
||||
and to backup the BIOS (if the flashrom program is installed,
|
||||
and the mainboard is supported).
|
||||
. Add suse to the list of supported OS (Redmine#7101).
|
||||
Thanks to Christian Prause <cprause@suse.com> for the patch.
|
||||
. Fix indentation. Thanks to Jools Wills <jools@oxfordinspire.co.uk>
|
||||
for the patch. (Closes: Redmine#6802)
|
||||
. Exclude tmpfs filesystems from df output. (Closes: Debian#745818)
|
||||
tar:
|
||||
. Support test mode and xz compression.
|
||||
Thanks to Pierre ROUDIER <contact@pierreroudier.net> for the patches.
|
||||
helper changes
|
||||
rdiff:
|
||||
. Don't give misleading information regarding required fields.
|
||||
(Redmine#4410)
|
||||
. Support output_as_info.
|
||||
Thanks to David Gasaway <dave@gasaway.org> for the patch!
|
||||
sys:
|
||||
. Remove spurious quotes that broke the helper (Closes: Redmine#6803).
|
||||
Thanks to Jools Wills <jools@oxfordinspire.co.uk> for the patch.
|
||||
backupninja changes
|
||||
. Indentation fixes, thanks to exobuzz. (Redmine#6726)
|
||||
. Ignore jobs whose filename ends with "~".
|
||||
Thanks to Mark Janssen <mark@sig-io.nl> for the patch.
|
||||
build system changes
|
||||
· Pass the "foreign" option to AM_INIT_AUTOMAKE: README has been
|
||||
renamed to README.md.
|
||||
documentation changes
|
||||
. Update INSTALL file to add some missing recommended programs.
|
||||
. Document release process.
|
||||
. Merge FAQ content from the Redmine wiki into the one shipped
|
||||
with backupninja.
|
||||
. README.md: reorganize, reformat, and point to the examples
|
||||
configuration files.
|
||||
. INSTALL.md: recommend using packages on Debian and derivatives.
|
||||
. bandwidthlimit for the dup handler needs to be given in KB/s,
|
||||
and not (as wrongly advertised previously) in Kbit/s.
|
||||
(Closes: GitLab#7603)
|
||||
|
||||
version 1.0.1 -- June 29, 2012
|
||||
handler changes
|
||||
rsync:
|
||||
|
19
FAQ
19
FAQ
@ -1,19 +0,0 @@
|
||||
Q: duplicity works fine when run standalone, but complains about gpg
|
||||
"public key not found" when run from backupninja
|
||||
|
||||
A: We bet you're using sudo to run both duplicity and backupninja, and have been
|
||||
using sudo as well when generating the GnuPG key pair used by duplicity.
|
||||
|
||||
Quick fix: generate a new GnuPG key pair in a root shell, or using
|
||||
"sudo -H" instead of plain sudo.
|
||||
|
||||
Another solution: import the GnuPG keypair into the root user's keyring, taking
|
||||
care of running "gpg --update-trustdb" in a root shell or using "sudo -H"
|
||||
afterwards, in order to tag this keypair as "ultimately trusted".
|
||||
|
||||
Detailed explanation: sudo does not change $HOME by default, so GnuPG saved the
|
||||
newly generated key pair to your own keyring, rather than to the root user's
|
||||
keyring. Running "sudo duplicity" hides the problem, as it uses your own
|
||||
keyring. Running "sudo backupninja" reveals the problem, as backupninja uses
|
||||
"su" to make sure it runs duplicity in a real root environment, i.e. using the
|
||||
root user's GnuPG keyring.
|
69
FAQ.md
Normal file
69
FAQ.md
Normal file
@ -0,0 +1,69 @@
|
||||
duplicity works fine when run standalone, but complains about gpg "public key not found" when run from backupninja
|
||||
==================================================================================================================
|
||||
|
||||
We bet you're using sudo to run both duplicity and backupninja, and have been
|
||||
using sudo as well when generating the GnuPG key pair used by duplicity.
|
||||
|
||||
Quick fix: generate a new GnuPG key pair in a root shell, or using
|
||||
`sudo -H` instead of plain sudo.
|
||||
|
||||
Another solution: import the GnuPG keypair into the root user's keyring, taking
|
||||
care of running `gpg --update-trustdb` in a root shell or using `sudo -H`
|
||||
afterwards, in order to tag this keypair as "ultimately trusted".
|
||||
|
||||
Detailed explanation: sudo does not change `$HOME` by default, so GnuPG saved the
|
||||
newly generated key pair to your own keyring, rather than to the root user's
|
||||
keyring. Running `sudo duplicity` hides the problem, as it uses your own
|
||||
keyring. Running `sudo backupninja` reveals the problem, as backupninja uses
|
||||
`su` to make sure it runs duplicity in a real root environment, i.e. using the
|
||||
root user's GnuPG keyring.
|
||||
|
||||
What should I do when rdiff-backup fails?
|
||||
=========================================
|
||||
|
||||
If rdiff-backup fails, the meta data file may get corrupt. When this
|
||||
happens, rdiff-backup will complain loudly every time it is run and
|
||||
possibly fail to backup some or all the files.
|
||||
|
||||
To force rdiff-backup to rebuild the meta data, set this option in
|
||||
the `.rdiff` backup action file:
|
||||
|
||||
options = --force
|
||||
|
||||
After a rdiff-backup run has been successful you should remove
|
||||
this option.
|
||||
|
||||
How to restrict privileges on the backup server?
|
||||
================================================
|
||||
|
||||
backupninja uses a "push" mechanism, where backups are sent from one
|
||||
or several hosts to a centralized backup server.
|
||||
|
||||
Mount your backup partition with limited execution rights
|
||||
---------------------------------------------------------
|
||||
|
||||
Edit `/etc/fstab` to mount your partition with limited rights. For example:
|
||||
|
||||
/home ext3 defaults,nosuid,noexec,nodev 0 2
|
||||
|
||||
Create a user for each client
|
||||
-----------------------------
|
||||
|
||||
On the backup server, it is important to create a separate user for
|
||||
each client.
|
||||
|
||||
Use a restricted shell and jail users
|
||||
-------------------------------------
|
||||
|
||||
Furthermore, you may use a restricted shell like
|
||||
[rssh](http://www.pizzashack.org/rssh/index.shtml) or
|
||||
[scponly](http://sublimation.org/scponly/wiki/index.php/Main_Page),
|
||||
which also offer the ability to jail connections.
|
||||
|
||||
On the backup server:
|
||||
|
||||
$ apt-get install scponly
|
||||
$ adduser --disabled-password --home /home/backup/ninja-host1 --shell /usr/bin/scponly ninja-host1
|
||||
|
||||
You may now use `ninja-host1` user to connect to the
|
||||
`/home/backup/ninja-host1` jail.
|
20
INSTALL
20
INSTALL
@ -1,20 +0,0 @@
|
||||
INSTALLATION
|
||||
============
|
||||
|
||||
Requirements:
|
||||
bash gawk
|
||||
|
||||
Recommended:
|
||||
rdiff-backup duplicity rsync gzip hwinfo sfdisk
|
||||
|
||||
Installation:
|
||||
To install backupninja, simply do the following:
|
||||
|
||||
$ ./autogen.sh
|
||||
$ ./configure
|
||||
$ make
|
||||
$ make install
|
||||
|
||||
You may wish to change the install locations, or other options. To find
|
||||
the available possibilities, run ./configure --help.
|
||||
|
28
INSTALL.md
Normal file
28
INSTALL.md
Normal file
@ -0,0 +1,28 @@
|
||||
Installation
|
||||
============
|
||||
|
||||
On Debian, Ubuntu and derivatives
|
||||
---------------------------------
|
||||
|
||||
Run `apt-get install backupninja`.
|
||||
|
||||
By hand
|
||||
-------
|
||||
|
||||
Requirements:
|
||||
|
||||
bash gawk
|
||||
|
||||
Recommended:
|
||||
|
||||
rdiff-backup duplicity rsync gzip hwinfo sfdisk cryptsetup flashrom hwinfo
|
||||
|
||||
To install backupninja, simply do the following:
|
||||
|
||||
$ ./autogen.sh
|
||||
$ ./configure
|
||||
$ make
|
||||
$ make install
|
||||
|
||||
You may wish to change the install locations, or other options. To find
|
||||
the available possibilities, run `./configure --help`.
|
@ -1,7 +1,7 @@
|
||||
# vi: noexpandtab softtabstop=0
|
||||
## Process this file with automake to produce Makefile.in
|
||||
|
||||
EXTRA_DIST = FAQ README COPYING AUTHORS INSTALL NEWS ChangeLog \
|
||||
EXTRA_DIST = FAQ.md README.md COPYING AUTHORS INSTALL.md NEWS ChangeLog \
|
||||
backupninja.spec backupninja.spec.in autogen.sh
|
||||
|
||||
SUBDIRS = etc examples handlers lib man src
|
||||
|
398
Makefile.in
398
Makefile.in
@ -1,9 +1,8 @@
|
||||
# Makefile.in generated by automake 1.11.1 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.15.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
|
||||
# Inc.
|
||||
# Copyright (C) 1994-2017 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.
|
||||
@ -17,6 +16,61 @@
|
||||
|
||||
# vi: noexpandtab softtabstop=0
|
||||
VPATH = @srcdir@
|
||||
am__is_gnu_make = { \
|
||||
if test -z '$(MAKELEVEL)'; then \
|
||||
false; \
|
||||
elif test -n '$(MAKE_HOST)'; then \
|
||||
true; \
|
||||
elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
|
||||
true; \
|
||||
else \
|
||||
false; \
|
||||
fi; \
|
||||
}
|
||||
am__make_running_with_option = \
|
||||
case $${target_option-} in \
|
||||
?) ;; \
|
||||
*) echo "am__make_running_with_option: internal error: invalid" \
|
||||
"target option '$${target_option-}' specified" >&2; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
has_opt=no; \
|
||||
sane_makeflags=$$MAKEFLAGS; \
|
||||
if $(am__is_gnu_make); then \
|
||||
sane_makeflags=$$MFLAGS; \
|
||||
else \
|
||||
case $$MAKEFLAGS in \
|
||||
*\\[\ \ ]*) \
|
||||
bs=\\; \
|
||||
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
|
||||
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
|
||||
esac; \
|
||||
fi; \
|
||||
skip_next=no; \
|
||||
strip_trailopt () \
|
||||
{ \
|
||||
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
|
||||
}; \
|
||||
for flg in $$sane_makeflags; do \
|
||||
test $$skip_next = yes && { skip_next=no; continue; }; \
|
||||
case $$flg in \
|
||||
*=*|--*) continue;; \
|
||||
-*I) strip_trailopt 'I'; skip_next=yes;; \
|
||||
-*I?*) strip_trailopt 'I';; \
|
||||
-*O) strip_trailopt 'O'; skip_next=yes;; \
|
||||
-*O?*) strip_trailopt 'O';; \
|
||||
-*l) strip_trailopt 'l'; skip_next=yes;; \
|
||||
-*l?*) strip_trailopt 'l';; \
|
||||
-[dEDm]) skip_next=yes;; \
|
||||
-[JT]) skip_next=yes;; \
|
||||
esac; \
|
||||
case $$flg in \
|
||||
*$$target_option*) has_opt=yes; break;; \
|
||||
esac; \
|
||||
done; \
|
||||
test $$has_opt = yes
|
||||
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
|
||||
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
@ -34,43 +88,85 @@ NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
subdir = .
|
||||
DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
|
||||
$(srcdir)/Makefile.in $(srcdir)/backupninja.spec.in \
|
||||
$(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \
|
||||
TODO install-sh missing
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/configure.in
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \
|
||||
$(am__configure_deps) $(am__DIST_COMMON)
|
||||
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
|
||||
configure.lineno config.status.lineno
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_CLEAN_FILES = backupninja.spec
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
AM_V_P = $(am__v_P_@AM_V@)
|
||||
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
|
||||
am__v_P_0 = false
|
||||
am__v_P_1 = :
|
||||
AM_V_GEN = $(am__v_GEN_@AM_V@)
|
||||
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
|
||||
am__v_GEN_0 = @echo " GEN " $@;
|
||||
am__v_GEN_1 =
|
||||
AM_V_at = $(am__v_at_@AM_V@)
|
||||
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
|
||||
am__v_at_0 = @
|
||||
am__v_at_1 =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
|
||||
html-recursive info-recursive install-data-recursive \
|
||||
install-dvi-recursive install-exec-recursive \
|
||||
install-html-recursive install-info-recursive \
|
||||
install-pdf-recursive install-ps-recursive install-recursive \
|
||||
installcheck-recursive installdirs-recursive pdf-recursive \
|
||||
ps-recursive uninstall-recursive
|
||||
RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
|
||||
ctags-recursive dvi-recursive html-recursive info-recursive \
|
||||
install-data-recursive install-dvi-recursive \
|
||||
install-exec-recursive install-html-recursive \
|
||||
install-info-recursive install-pdf-recursive \
|
||||
install-ps-recursive install-recursive installcheck-recursive \
|
||||
installdirs-recursive pdf-recursive ps-recursive \
|
||||
tags-recursive uninstall-recursive
|
||||
am__can_run_installinfo = \
|
||||
case $$AM_UPDATE_INFO_DIR in \
|
||||
n|no|NO) false;; \
|
||||
*) (install-info --version) >/dev/null 2>&1;; \
|
||||
esac
|
||||
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
|
||||
distclean-recursive maintainer-clean-recursive
|
||||
AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
|
||||
$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
|
||||
distdir dist dist-all distcheck
|
||||
am__recursive_targets = \
|
||||
$(RECURSIVE_TARGETS) \
|
||||
$(RECURSIVE_CLEAN_TARGETS) \
|
||||
$(am__extra_recursive_targets)
|
||||
AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
|
||||
cscope distdir dist dist-all distcheck
|
||||
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
|
||||
# Read a list of newline-separated strings from the standard input,
|
||||
# and print each of them once, without duplicates. Input order is
|
||||
# *not* preserved.
|
||||
am__uniquify_input = $(AWK) '\
|
||||
BEGIN { nonempty = 0; } \
|
||||
{ items[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in items) print i; }; } \
|
||||
'
|
||||
# Make sure the list of sources is unique. This is necessary because,
|
||||
# e.g., the same source file might be shared among _SOURCES variables
|
||||
# for different programs/libraries.
|
||||
am__define_uniq_tagged_files = \
|
||||
list='$(am__tagged_files)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | $(am__uniquify_input)`
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
CSCOPE = cscope
|
||||
DIST_SUBDIRS = $(SUBDIRS)
|
||||
am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/backupninja.spec.in \
|
||||
AUTHORS COPYING ChangeLog NEWS TODO install-sh missing
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
distdir = $(PACKAGE)-$(VERSION)
|
||||
top_distdir = $(distdir)
|
||||
am__remove_distdir = \
|
||||
{ test ! -d "$(distdir)" \
|
||||
|| { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
|
||||
&& rm -fr "$(distdir)"; }; }
|
||||
if test -d "$(distdir)"; then \
|
||||
find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
|
||||
&& rm -rf "$(distdir)" \
|
||||
|| { sleep 5 && rm -rf "$(distdir)"; }; \
|
||||
else :; fi
|
||||
am__post_remove_distdir = $(am__remove_distdir)
|
||||
am__relativize = \
|
||||
dir0=`pwd`; \
|
||||
sed_first='s,^\([^/]*\)/.*$$,\1,'; \
|
||||
@ -98,10 +194,14 @@ am__relativize = \
|
||||
reldir="$$dir2"
|
||||
DIST_ARCHIVES = $(distdir).tar.gz
|
||||
GZIP_ENV = --best
|
||||
DIST_TARGETS = dist-gzip
|
||||
distuninstallcheck_listfiles = find . -type f -print
|
||||
am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
|
||||
| sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
|
||||
distcleancheck_listfiles = find . -type f -print
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMTAR = @AMTAR@
|
||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
@ -172,6 +272,7 @@ pdfdir = @pdfdir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
runstatedir = @runstatedir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
@ -180,7 +281,7 @@ target_alias = @target_alias@
|
||||
top_build_prefix = @top_build_prefix@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
EXTRA_DIST = FAQ README COPYING AUTHORS INSTALL NEWS ChangeLog \
|
||||
EXTRA_DIST = FAQ.md README.md COPYING AUTHORS INSTALL.md NEWS ChangeLog \
|
||||
backupninja.spec backupninja.spec.in autogen.sh
|
||||
|
||||
SUBDIRS = etc examples handlers lib man src
|
||||
@ -188,22 +289,21 @@ local_rpm_topdir = `cd $(top_srcdir) && pwd`/rpm
|
||||
all: all-recursive
|
||||
|
||||
.SUFFIXES:
|
||||
am--refresh:
|
||||
am--refresh: Makefile
|
||||
@:
|
||||
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \
|
||||
$(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \
|
||||
echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \
|
||||
$(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \
|
||||
&& exit 0; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu Makefile
|
||||
.PRECIOUS: Makefile
|
||||
$(AUTOMAKE) --foreign Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
@ -226,22 +326,25 @@ backupninja.spec: $(top_builddir)/config.status $(srcdir)/backupninja.spec.in
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $@
|
||||
|
||||
# This directory's subdirectories are mostly independent; you can cd
|
||||
# into them and run `make' without going through this Makefile.
|
||||
# To change the values of `make' variables: instead of editing Makefiles,
|
||||
# (1) if the variable is set in `config.status', edit `config.status'
|
||||
# (which will cause the Makefiles to be regenerated when you run `make');
|
||||
# (2) otherwise, pass the desired values on the `make' command line.
|
||||
$(RECURSIVE_TARGETS):
|
||||
@fail= failcom='exit 1'; \
|
||||
for f in x $$MAKEFLAGS; do \
|
||||
case $$f in \
|
||||
*=* | --[!k]*);; \
|
||||
*k*) failcom='fail=yes';; \
|
||||
esac; \
|
||||
done; \
|
||||
# into them and run 'make' without going through this Makefile.
|
||||
# To change the values of 'make' variables: instead of editing Makefiles,
|
||||
# (1) if the variable is set in 'config.status', edit 'config.status'
|
||||
# (which will cause the Makefiles to be regenerated when you run 'make');
|
||||
# (2) otherwise, pass the desired values on the 'make' command line.
|
||||
$(am__recursive_targets):
|
||||
@fail=; \
|
||||
if $(am__make_keepgoing); then \
|
||||
failcom='fail=yes'; \
|
||||
else \
|
||||
failcom='exit 1'; \
|
||||
fi; \
|
||||
dot_seen=no; \
|
||||
target=`echo $@ | sed s/-recursive//`; \
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
case "$@" in \
|
||||
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
|
||||
*) list='$(SUBDIRS)' ;; \
|
||||
esac; \
|
||||
for subdir in $$list; do \
|
||||
echo "Making $$target in $$subdir"; \
|
||||
if test "$$subdir" = "."; then \
|
||||
dot_seen=yes; \
|
||||
@ -256,57 +359,12 @@ $(RECURSIVE_TARGETS):
|
||||
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
|
||||
fi; test -z "$$fail"
|
||||
|
||||
$(RECURSIVE_CLEAN_TARGETS):
|
||||
@fail= failcom='exit 1'; \
|
||||
for f in x $$MAKEFLAGS; do \
|
||||
case $$f in \
|
||||
*=* | --[!k]*);; \
|
||||
*k*) failcom='fail=yes';; \
|
||||
esac; \
|
||||
done; \
|
||||
dot_seen=no; \
|
||||
case "$@" in \
|
||||
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
|
||||
*) list='$(SUBDIRS)' ;; \
|
||||
esac; \
|
||||
rev=''; for subdir in $$list; do \
|
||||
if test "$$subdir" = "."; then :; else \
|
||||
rev="$$subdir $$rev"; \
|
||||
fi; \
|
||||
done; \
|
||||
rev="$$rev ."; \
|
||||
target=`echo $@ | sed s/-recursive//`; \
|
||||
for subdir in $$rev; do \
|
||||
echo "Making $$target in $$subdir"; \
|
||||
if test "$$subdir" = "."; then \
|
||||
local_target="$$target-am"; \
|
||||
else \
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| eval $$failcom; \
|
||||
done && test -z "$$fail"
|
||||
tags-recursive:
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
|
||||
done
|
||||
ctags-recursive:
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
|
||||
done
|
||||
ID: $(am__tagged_files)
|
||||
$(am__define_uniq_tagged_files); mkid -fID $$unique
|
||||
tags: tags-recursive
|
||||
TAGS: tags
|
||||
|
||||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
mkid -fID $$unique
|
||||
tags: TAGS
|
||||
|
||||
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
|
||||
set x; \
|
||||
here=`pwd`; \
|
||||
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
|
||||
@ -322,12 +380,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
|
||||
fi; \
|
||||
done; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
$(am__define_uniq_tagged_files); \
|
||||
shift; \
|
||||
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
@ -339,15 +392,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$$unique; \
|
||||
fi; \
|
||||
fi
|
||||
ctags: CTAGS
|
||||
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
ctags: ctags-recursive
|
||||
|
||||
CTAGS: ctags
|
||||
ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
|
||||
$(am__define_uniq_tagged_files); \
|
||||
test -z "$(CTAGS_ARGS)$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$unique
|
||||
@ -356,9 +405,31 @@ GTAGS:
|
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& $(am__cd) $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) "$$here"
|
||||
cscope: cscope.files
|
||||
test ! -s cscope.files \
|
||||
|| $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
|
||||
clean-cscope:
|
||||
-rm -f cscope.files
|
||||
cscope.files: clean-cscope cscopelist
|
||||
cscopelist: cscopelist-recursive
|
||||
|
||||
cscopelist-am: $(am__tagged_files)
|
||||
list='$(am__tagged_files)'; \
|
||||
case "$(srcdir)" in \
|
||||
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
|
||||
*) sdir=$(subdir)/$(srcdir) ;; \
|
||||
esac; \
|
||||
for i in $$list; do \
|
||||
if test -f "$$i"; then \
|
||||
echo "$(subdir)/$$i"; \
|
||||
else \
|
||||
echo "$$sdir/$$i"; \
|
||||
fi; \
|
||||
done >> $(top_builddir)/cscope.files
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
-rm -f cscope.out cscope.in.out cscope.po.out cscope.files
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
$(am__remove_distdir)
|
||||
@ -394,13 +465,10 @@ distdir: $(DISTFILES)
|
||||
done
|
||||
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
test -d "$(distdir)/$$subdir" \
|
||||
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
$(am__make_dryrun) \
|
||||
|| test -d "$(distdir)/$$subdir" \
|
||||
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|
||||
|| exit 1; \
|
||||
dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
|
||||
$(am__relativize); \
|
||||
new_distdir=$$reldir; \
|
||||
@ -428,37 +496,43 @@ distdir: $(DISTFILES)
|
||||
! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
|
||||
|| chmod -R a+r "$(distdir)"
|
||||
dist-gzip: distdir
|
||||
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||
$(am__remove_distdir)
|
||||
tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz
|
||||
$(am__post_remove_distdir)
|
||||
|
||||
dist-bzip2: distdir
|
||||
tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
|
||||
$(am__remove_distdir)
|
||||
tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
|
||||
$(am__post_remove_distdir)
|
||||
|
||||
dist-lzma: distdir
|
||||
tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
|
||||
$(am__remove_distdir)
|
||||
dist-lzip: distdir
|
||||
tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
|
||||
$(am__post_remove_distdir)
|
||||
|
||||
dist-xz: distdir
|
||||
tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz
|
||||
$(am__remove_distdir)
|
||||
tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
|
||||
$(am__post_remove_distdir)
|
||||
|
||||
dist-tarZ: distdir
|
||||
@echo WARNING: "Support for distribution archives compressed with" \
|
||||
"legacy program 'compress' is deprecated." >&2
|
||||
@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
|
||||
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
|
||||
$(am__remove_distdir)
|
||||
$(am__post_remove_distdir)
|
||||
|
||||
dist-shar: distdir
|
||||
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
|
||||
$(am__remove_distdir)
|
||||
@echo WARNING: "Support for shar distribution archives is" \
|
||||
"deprecated." >&2
|
||||
@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
|
||||
shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz
|
||||
$(am__post_remove_distdir)
|
||||
|
||||
dist-zip: distdir
|
||||
-rm -f $(distdir).zip
|
||||
zip -rq $(distdir).zip $(distdir)
|
||||
$(am__remove_distdir)
|
||||
$(am__post_remove_distdir)
|
||||
|
||||
dist dist-all: distdir
|
||||
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||
$(am__remove_distdir)
|
||||
dist dist-all:
|
||||
$(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:'
|
||||
$(am__post_remove_distdir)
|
||||
|
||||
# This target untars the dist file and tries a VPATH configuration. Then
|
||||
# it guarantees that the distribution is self-contained by making another
|
||||
@ -466,31 +540,33 @@ dist dist-all: distdir
|
||||
distcheck: dist
|
||||
case '$(DIST_ARCHIVES)' in \
|
||||
*.tar.gz*) \
|
||||
GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
|
||||
eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\
|
||||
*.tar.bz2*) \
|
||||
bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
|
||||
*.tar.lzma*) \
|
||||
lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
|
||||
*.tar.lz*) \
|
||||
lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
|
||||
*.tar.xz*) \
|
||||
xz -dc $(distdir).tar.xz | $(am__untar) ;;\
|
||||
*.tar.Z*) \
|
||||
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
|
||||
*.shar.gz*) \
|
||||
GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
|
||||
eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
|
||||
*.zip*) \
|
||||
unzip $(distdir).zip ;;\
|
||||
esac
|
||||
chmod -R a-w $(distdir); chmod a+w $(distdir)
|
||||
mkdir $(distdir)/_build
|
||||
mkdir $(distdir)/_inst
|
||||
chmod -R a-w $(distdir)
|
||||
chmod u+w $(distdir)
|
||||
mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst
|
||||
chmod a-w $(distdir)
|
||||
test -d $(distdir)/_build || exit 0; \
|
||||
dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
|
||||
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
|
||||
&& am__cwd=`pwd` \
|
||||
&& $(am__cd) $(distdir)/_build \
|
||||
&& ../configure --srcdir=.. --prefix="$$dc_install_base" \
|
||||
&& $(am__cd) $(distdir)/_build/sub \
|
||||
&& ../../configure \
|
||||
$(AM_DISTCHECK_CONFIGURE_FLAGS) \
|
||||
$(DISTCHECK_CONFIGURE_FLAGS) \
|
||||
--srcdir=../.. --prefix="$$dc_install_base" \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) check \
|
||||
@ -513,13 +589,21 @@ distcheck: dist
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
|
||||
&& cd "$$am__cwd" \
|
||||
|| exit 1
|
||||
$(am__remove_distdir)
|
||||
$(am__post_remove_distdir)
|
||||
@(echo "$(distdir) archives ready for distribution: "; \
|
||||
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
|
||||
sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
|
||||
distuninstallcheck:
|
||||
@$(am__cd) '$(distuninstallcheck_dir)' \
|
||||
&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
|
||||
@test -n '$(distuninstallcheck_dir)' || { \
|
||||
echo 'ERROR: trying to run $@ with an empty' \
|
||||
'$$(distuninstallcheck_dir)' >&2; \
|
||||
exit 1; \
|
||||
}; \
|
||||
$(am__cd) '$(distuninstallcheck_dir)' || { \
|
||||
echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
|
||||
exit 1; \
|
||||
}; \
|
||||
test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
|
||||
|| { echo "ERROR: files left after uninstall:" ; \
|
||||
if test -n "$(DESTDIR)"; then \
|
||||
echo " (check DESTDIR support)"; \
|
||||
@ -550,10 +634,15 @@ install-am: all-am
|
||||
|
||||
installcheck: installcheck-recursive
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
if test -z '$(STRIP)'; then \
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
install; \
|
||||
else \
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
|
||||
fi
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
@ -634,14 +723,13 @@ ps-am:
|
||||
|
||||
uninstall-am:
|
||||
|
||||
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
|
||||
install-am install-strip tags-recursive
|
||||
.MAKE: $(am__recursive_targets) install-am install-strip
|
||||
|
||||
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
|
||||
all all-am am--refresh check check-am clean clean-generic \
|
||||
clean-local ctags ctags-recursive dist dist-all dist-bzip2 \
|
||||
dist-gzip dist-lzma dist-shar dist-tarZ dist-xz dist-zip \
|
||||
distcheck distclean distclean-generic distclean-tags \
|
||||
.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
|
||||
am--refresh check check-am clean clean-cscope clean-generic \
|
||||
clean-local cscope cscopelist-am ctags ctags-am dist dist-all \
|
||||
dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ dist-xz \
|
||||
dist-zip distcheck distclean distclean-generic distclean-tags \
|
||||
distcleancheck distdir distuninstallcheck dvi dvi-am html \
|
||||
html-am info info-am install install-am install-data \
|
||||
install-data-am install-dvi install-dvi-am install-exec \
|
||||
@ -650,7 +738,9 @@ uninstall-am:
|
||||
install-ps install-ps-am install-strip installcheck \
|
||||
installcheck-am installdirs installdirs-am maintainer-clean \
|
||||
maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
|
||||
pdf-am ps ps-am tags tags-recursive uninstall uninstall-am
|
||||
pdf-am ps ps-am tags tags-am uninstall uninstall-am
|
||||
|
||||
.PRECIOUS: Makefile
|
||||
|
||||
rpm-package: dist
|
||||
if test x$(HAVE_RPM) = xyes ; then \
|
||||
|
261
README
261
README
@ -1,261 +0,0 @@
|
||||
|
||||
|\_
|
||||
B A C K U P N I N J A /()/
|
||||
`\|
|
||||
|
||||
a silent flower blossom death strike to lost data.
|
||||
|
||||
Backupninja allows you to coordinate system backup by dropping a few
|
||||
simple configuration files into /etc/backup.d/. Most programs you
|
||||
might use for making backups don't have their own configuration file
|
||||
format. Backupninja provides a centralized way to configure and
|
||||
coordinate many different backup utilities.
|
||||
|
||||
Features:
|
||||
- easy to read ini style configuration files.
|
||||
- you can drop in scripts to handle new types of backups.
|
||||
- backup actions can be scheduled
|
||||
- you can choose when status report emails are mailed to you
|
||||
(always, on warning, on error, never).
|
||||
- console-based wizard (ninjahelper) makes it easy to create
|
||||
backup action configuration files.
|
||||
- passwords are never sent via the command line to helper programs.
|
||||
- works with Linux-Vservers (http://linux-vserver.org/)
|
||||
|
||||
Backup types:
|
||||
- secure, remote, incremental filesytem backup (via rdiff-backup).
|
||||
incremental data is compressed. permissions are retained even
|
||||
with an unpriviledged backup user.
|
||||
- backup of mysql databases (via mysqlhotcopy and mysqldump).
|
||||
- basic system and hardware info
|
||||
- encrypted remote backups (via duplicity).
|
||||
- backup of subversion repositories.
|
||||
|
||||
The following options are available:
|
||||
-h, --help This usage message
|
||||
-d, --debug Run in debug mode, where all log messages are
|
||||
output to the current shell.
|
||||
-f, --conffile FILE Use FILE for the main configuration instead
|
||||
of /etc/backupninja.conf
|
||||
-t, --test Test run mode. This will test if the backup could run, without actually
|
||||
preforming any backups. For example, it will attempt to authenticate
|
||||
or test that ssh keys are set correctly.
|
||||
-n, --now Perform actions now, instead of when they might be scheduled.
|
||||
No output will be created unless also run with -d.
|
||||
--run FILE Runs the specified action FILE (e.g. one of the /etc/backup.d/ files).
|
||||
Also puts backupninja in debug mode.
|
||||
|
||||
NINJAHELPER
|
||||
===========
|
||||
|
||||
Ninjahelper is an additional script which will walk you through the process of
|
||||
configuring backupninja. Ninjahelper has a menu driven curses based interface
|
||||
(using dialog).
|
||||
|
||||
To add an additional 'wizard' to ninjahelper, follow these steps:
|
||||
|
||||
(1) to add a helper for the handler "blue", create the file
|
||||
blue.helper in the directory where the handlers live.
|
||||
(ie /usr/share/backupninja).
|
||||
|
||||
(2) next, you need to add your helper to the global HELPERS variable
|
||||
and define the main function for your helper (the function name
|
||||
is always <helper>_wizard). for example, blue.helper:
|
||||
HELPERS="$HELPERS blue:description_of_this_helper"
|
||||
blue_wizard() {
|
||||
... do work here ...
|
||||
}
|
||||
|
||||
(3) look at the existing helpers to see how they are written. Try to re-use
|
||||
functions, such as the dialog functions that are defined in easydialog.sh,
|
||||
or the vserver functions defined in lib/vserver.
|
||||
|
||||
(4) test, re-test, and test again. Try to break the helper by going backwards,
|
||||
try to think like someone who has no idea how to configure your handler
|
||||
would think, try to make your helper as simple as possible. Walk like a cat,
|
||||
become your shadow, don't let your senses betray you.
|
||||
|
||||
|
||||
CONFIGURATION FILES
|
||||
===================
|
||||
|
||||
The general configuration file is /etc/backupninja.conf. In this file
|
||||
you can set the log level and change the default directory locations.
|
||||
You can force a different general configuration file with "backupninja
|
||||
-f /path/to/conf".
|
||||
|
||||
To preform the actual backup, backupninja processes each configuration
|
||||
file in /etc/backup.d according to the file's suffix:
|
||||
|
||||
.sh -- run this file as a shell script.
|
||||
.rdiff -- filesystem backup (using rdiff-backup)
|
||||
.dup -- filesystem backup (using duplicity)
|
||||
.mysql -- backup mysql databases
|
||||
.pgsql -- backup PostgreSQL databases
|
||||
.sys -- general hardware, partition, and system reports.
|
||||
.svn -- backup subversion repositories
|
||||
.maildir -- incrementally backup maildirs (very specialized)
|
||||
|
||||
Support for additional configuration types can be added by dropping
|
||||
bash scripts with the name of the suffix into /usr/share/backupninja.
|
||||
|
||||
The configuration files are processed in alphabetical order. However,
|
||||
it is suggested that you name the config files in "sysvinit style."
|
||||
|
||||
For example:
|
||||
00-disabled.pgsql
|
||||
10-runthisfirst.sh
|
||||
20-runthisnext.mysql
|
||||
90-runthislast.rdiff
|
||||
|
||||
Typically, you will put a '.rdiff' config file last, so that any
|
||||
database dumps you make are included in the filesystem backup.
|
||||
Configurations files with names beginning with 0 (zero) or ending with
|
||||
.disabled (preferred method) are skipped.
|
||||
|
||||
Unless otherwise specified, the config file format is "ini style."
|
||||
|
||||
For example:
|
||||
|
||||
# this is a comment
|
||||
|
||||
[fishes]
|
||||
fish = red
|
||||
fish = blue
|
||||
|
||||
[fruit]
|
||||
apple = yes
|
||||
pear = no thanks \
|
||||
i will not have a pear.
|
||||
|
||||
|
||||
SCHEDULING
|
||||
==========
|
||||
|
||||
By default, each configuration file is processed everyday at 01:00 (1
|
||||
AM). This can be changed by specifying the 'when' option in a config
|
||||
file.
|
||||
|
||||
For example:
|
||||
|
||||
when = sundays at 02:00
|
||||
when = 30th at 22
|
||||
when = 30 at 22:00
|
||||
when = everyday at 01 <-- the default
|
||||
when = Tuesday at 05:00
|
||||
|
||||
A configuration file will be processed at the time(s) specified by the
|
||||
"when" option. If multiple "when" options are present, then they all
|
||||
apply. If two configurations files are scheduled to run in the same
|
||||
hour, then we fall back on the alphabetical ordering specified above.
|
||||
If two configurations files are scheduled close to one another in
|
||||
time, it is possible to have multiple copies of backupninja running if
|
||||
the first instance is not finished before the next one starts.
|
||||
|
||||
Make sure that you put the "when" option before any sections in your
|
||||
configuration file.
|
||||
|
||||
These values for 'when' are equivalent:
|
||||
|
||||
when = tuesday at 05:30
|
||||
when = TUESDAYS at 05
|
||||
|
||||
These values for 'when' are invalid:
|
||||
|
||||
when = tuesday at 2am
|
||||
when = tuesday at 2
|
||||
when = tues at 02
|
||||
|
||||
|
||||
REAL WORLD USAGE
|
||||
================
|
||||
|
||||
Backupninja can be used to implement whatever backup strategy you
|
||||
choose. It is intended, however, to be used like so:
|
||||
|
||||
(1) First, databases are safely copied or exported to /var/backups.
|
||||
Typically, you cannot make a file backup of a database while it
|
||||
is in use, hence the need to use special tools to make a safe copy
|
||||
or export into /var/backups.
|
||||
|
||||
(2) Then, vital parts of the file system, including /var/backups, are
|
||||
nightly pushed to a remote, off-site, hard disk (using
|
||||
rdiff-backup). The local user is root, but the remote user is not
|
||||
priviledged. Hopefully, the remote filesystem is encrypted.
|
||||
|
||||
There are many different backup strategies out there, including "pull
|
||||
style", magnetic tape, rsync + hard links, etc. We believe that the
|
||||
strategy outlined above is the way to go because: (1) hard disks are
|
||||
very cheap these days, (2) pull style backups are no good, because then
|
||||
the backup server must have root on the production server, and (3)
|
||||
rdiff-backup is more space efficient and featureful than using rsync +
|
||||
hard links.
|
||||
|
||||
|
||||
SSH KEYS
|
||||
========
|
||||
|
||||
In order for rdiff-backup to sync files over ssh unattended, you must
|
||||
create ssh keys on the source server and copy the public key to the
|
||||
remote user's authorized keys file. For example:
|
||||
|
||||
root@srchost# ssh-keygen -t rsa -b 4096
|
||||
root@srchost# ssh-copy-id -i /root/.ssh/id_rsa.pub backup@desthost
|
||||
|
||||
Now, you should be able to ssh from user 'root' on srchost to
|
||||
user 'backup' on desthost without specifying a password.
|
||||
|
||||
Note: when prompted for a password by ssh-keygen, just leave it
|
||||
blank by hitting return.
|
||||
|
||||
The included helper program "ninjahelper" will walk you through creating
|
||||
an rdiff-backup configuration, and will set up the ssh keys for you.
|
||||
|
||||
|
||||
Amazon Simple Storage Service (S3)
|
||||
==================================
|
||||
|
||||
Duplicity can store backups on Amazon S3 buckets, taking care of encryption.
|
||||
Since it performs incremental backups it minimizes the number of request per
|
||||
operation therefore reducing the costs. The boto Python interface to Amazon
|
||||
Web Services is needed to use duplicity with S3 (Debian package: python-boto).
|
||||
|
||||
|
||||
VSERVERS
|
||||
========
|
||||
|
||||
If you are using Linux-Vservers (http://linux-vserver.org/) there are some
|
||||
special capabilities that different handlers have to make vserver
|
||||
backups easier.
|
||||
|
||||
Set the variable "vservers" to be "yes" in /etc/backupninja.conf and see the
|
||||
example configuration files for each handler to configure the vserver specific
|
||||
variables.
|
||||
|
||||
Additional vserver variables that can be configured in /etc/backupninja.conf,
|
||||
but they probably don't need to be changed:
|
||||
|
||||
VSERVERINFO (default: /usr/sbin/vserver-info)
|
||||
VSERVER (default: /usr/sbin/vserver)
|
||||
VROOTDIR (default: `$VSERVERINFO info SYSINFO |grep vserver-Rootdir | awk '{print $2}'`)
|
||||
|
||||
|
||||
.sh CONFIGURATION FILES
|
||||
=======================
|
||||
|
||||
Shell jobs may use the following features:
|
||||
|
||||
* logging and control flow functions:
|
||||
halt, fatal, error, warning, info, debug, passthru.
|
||||
All such functions take a list of strings a parameters.
|
||||
Those strings are passed to whatever logging mechanism is enabled,
|
||||
and colored if relevant.
|
||||
|
||||
* Using "exit N" is useless, and has unspecified consequences.
|
||||
Just don't do it.
|
||||
|
||||
* when=TIME works as documented above; at may also be written
|
||||
"when = TIME".
|
||||
|
||||
* The $BACKUPNINJA_DEBUG environment variable is set when
|
||||
backupninja is invoked with the -d option.
|
295
README.md
Normal file
295
README.md
Normal file
@ -0,0 +1,295 @@
|
||||
|
||||
|\_
|
||||
B A C K U P N I N J A /()/
|
||||
`\|
|
||||
|
||||
a silent flower blossom death strike to lost data.
|
||||
|
||||
Backupninja allows you to coordinate system backup by dropping a few
|
||||
simple configuration files into `/etc/backup.d/`. Most programs you
|
||||
might use for making backups don't have their own configuration file
|
||||
format. Backupninja provides a centralized way to configure and
|
||||
coordinate many different backup utilities.
|
||||
|
||||
Features
|
||||
========
|
||||
|
||||
The key features of backupninja are:
|
||||
|
||||
- easy to read ini style configuration files
|
||||
- you can drop in scripts to handle new types of backups
|
||||
- backup actions can be scheduled
|
||||
- you can choose when status report emails are mailed to you
|
||||
(always, on warning, on error, never)
|
||||
- console-based wizard (ninjahelper) makes it easy to create
|
||||
backup action configuration files
|
||||
- passwords are never sent via the command line to helper programs
|
||||
- works with [Linux-Vservers](http://linux-vserver.org/)
|
||||
|
||||
The following backup types are supported:
|
||||
|
||||
- secure, remote, incremental filesytem backup (via rdiff-backup)
|
||||
incremental data is compressed. permissions are retained even
|
||||
with an unpriviledged backup user
|
||||
- backup of mysql databases (via mysqlhotcopy and mysqldump)
|
||||
- basic system and hardware info
|
||||
- encrypted remote backups (via duplicity)
|
||||
- backup of subversion repositories
|
||||
|
||||
Installation
|
||||
============
|
||||
|
||||
See the [installation documentation](INSTALL.md).
|
||||
|
||||
Options
|
||||
=======
|
||||
|
||||
The following options are available:
|
||||
|
||||
- `-h`, `--help`: this usage message
|
||||
- `-d`, `--debug`: run in debug mode, where all log messages are
|
||||
output to the current shell
|
||||
- `-f`, `--conffile FILE`: use FILE for the main configuration
|
||||
instead of `/etc/backupninja.conf`
|
||||
- `-t`, `--test`: test run mode. This will test if the backup could
|
||||
run, without actually preforming any backups. For example, it will
|
||||
attempt to authenticate or test that ssh keys are set correctly.
|
||||
- `-n`, `--now`: perform actions now, instead of when they might
|
||||
be scheduled. No output will be created unless also run with -d.
|
||||
- `--run FILE`: runs the specified action `FILE` (e.g. one of the
|
||||
`/etc/backup.d/` files). Also puts backupninja in debug mode.
|
||||
|
||||
ninjahelper
|
||||
===========
|
||||
|
||||
ninjahelper is an additional script which will walk you through the process of
|
||||
configuring backupninja. Ninjahelper has a menu driven curses based interface
|
||||
(using dialog).
|
||||
|
||||
To add an additional 'wizard' to ninjahelper, follow these steps:
|
||||
|
||||
1. To add a helper for the handler "blue", create the file
|
||||
`blue.helper` in the directory where the handlers live.
|
||||
(ie `/usr/share/backupninja`).
|
||||
|
||||
2. Next, you need to add your helper to the global `HELPERS` variable
|
||||
and define the main function for your helper (the function name
|
||||
is always `<helper>_wizard`). for example, `blue.helper`:
|
||||
|
||||
HELPERS="$HELPERS blue:description_of_this_helper"
|
||||
blue_wizard() {
|
||||
... do work here ...
|
||||
}
|
||||
|
||||
3. Look at the existing helpers to see how they are written. Try to re-use
|
||||
functions, such as the dialog functions that are defined in `easydialog.sh`,
|
||||
or the vserver functions defined in `lib/vserver`.
|
||||
|
||||
4. Test, re-test, and test again. Try to break the helper by going backwards,
|
||||
try to think like someone who has no idea how to configure your handler
|
||||
would think, try to make your helper as simple as possible. Walk like a cat,
|
||||
become your shadow, don't let your senses betray you.
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
Configuration files
|
||||
-------------------
|
||||
|
||||
The general configuration file is `/etc/backupninja.conf`. In this file
|
||||
you can set the log level and change the default directory locations.
|
||||
You can force a different general configuration file with `backupninja
|
||||
-f /path/to/conf`.
|
||||
|
||||
To preform the actual backup, backupninja processes each configuration
|
||||
file in `/etc/backup.d` according to the file's suffix:
|
||||
|
||||
- `.sh`: run this file as a shell script.
|
||||
- `.rdiff`: filesystem backup (using rdiff-backup)
|
||||
- `.dup`: filesystem backup (using duplicity)
|
||||
- `.mysql`: backup mysql databases
|
||||
- `.pgsql`: backup PostgreSQL databases
|
||||
- `.sys`: general hardware, partition, and system reports.
|
||||
- `.svn`: backup subversion repositories
|
||||
- `.maildir`: incrementally backup maildirs (very specialized)
|
||||
|
||||
Support for additional configuration types can be added by dropping
|
||||
bash scripts with the name of the suffix into `/usr/share/backupninja`.
|
||||
|
||||
The configuration files are processed in alphabetical order. However,
|
||||
it is suggested that you name the config files in "sysvinit style."
|
||||
|
||||
For example:
|
||||
|
||||
00-disabled.pgsql
|
||||
10-runthisfirst.sh
|
||||
20-runthisnext.mysql
|
||||
90-runthislast.rdiff
|
||||
|
||||
Typically, you will put a `.rdiff` config file last, so that any
|
||||
database dumps you make are included in the filesystem backup.
|
||||
Configurations files with names beginning with 0 (zero) or ending with
|
||||
`.disabled` (preferred method) are skipped.
|
||||
|
||||
Unless otherwise specified, the config file format is "ini style."
|
||||
|
||||
For example:
|
||||
|
||||
# this is a comment
|
||||
|
||||
[fishes]
|
||||
fish = red
|
||||
fish = blue
|
||||
|
||||
[fruit]
|
||||
apple = yes
|
||||
pear = no thanks \
|
||||
i will not have a pear.
|
||||
|
||||
The [example configuration files](examples) document all options
|
||||
supported by the handlers shipped with backupninja.
|
||||
|
||||
Scheduling
|
||||
----------
|
||||
|
||||
By default, each configuration file is processed everyday at 01:00 (1
|
||||
AM). This can be changed by specifying the 'when' option in a config
|
||||
file.
|
||||
|
||||
For example:
|
||||
|
||||
when = sundays at 02:00
|
||||
when = 30th at 22
|
||||
when = 30 at 22:00
|
||||
when = everyday at 01 <-- the default
|
||||
when = Tuesday at 05:00
|
||||
|
||||
A configuration file will be processed at the time(s) specified by the
|
||||
`when` option. If multiple `when` options are present, then they all
|
||||
apply. If two configurations files are scheduled to run in the same
|
||||
hour, then we fall back on the alphabetical ordering specified above.
|
||||
If two configurations files are scheduled close to one another in
|
||||
time, it is possible to have multiple copies of backupninja running if
|
||||
the first instance is not finished before the next one starts.
|
||||
|
||||
Make sure that you put the `when` option before any sections in your
|
||||
configuration file.
|
||||
|
||||
These values for `when` are equivalent:
|
||||
|
||||
when = tuesday at 05:30
|
||||
when = TUESDAYS at 05
|
||||
|
||||
These values for `when` are invalid:
|
||||
|
||||
when = tuesday at 2am
|
||||
when = tuesday at 2
|
||||
when = tues at 02
|
||||
|
||||
SSH keys
|
||||
--------
|
||||
|
||||
In order for rdiff-backup to sync files over ssh unattended, you must
|
||||
create ssh keys on the source server and copy the public key to the
|
||||
remote user's authorized keys file. For example:
|
||||
|
||||
root@srchost# ssh-keygen -t rsa -b 4096
|
||||
root@srchost# ssh-copy-id -i /root/.ssh/id_rsa.pub backup@desthost
|
||||
|
||||
Now, you should be able to ssh from user `root` on `srchost` to
|
||||
user `backup` on `desthost` without specifying a password.
|
||||
|
||||
Note: when prompted for a password by `ssh-keygen`, just leave it
|
||||
blank by hitting return.
|
||||
|
||||
The included helper program `ninjahelper` will walk you through creating
|
||||
an rdiff-backup configuration, and will set up the ssh keys for you.
|
||||
|
||||
|
||||
Amazon Simple Storage Service (S3)
|
||||
----------------------------------
|
||||
|
||||
Duplicity can store backups on Amazon S3 buckets, taking care of encryption.
|
||||
Since it performs incremental backups it minimizes the number of request per
|
||||
operation therefore reducing the costs. The boto Python interface to Amazon
|
||||
Web Services is needed to use duplicity with S3 (Debian package: `python-boto`).
|
||||
|
||||
|
||||
Vservers
|
||||
--------
|
||||
|
||||
If you are using [Linux-Vservers](http://linux-vserver.org/) there are some
|
||||
special capabilities that different handlers have to make vserver
|
||||
backups easier.
|
||||
|
||||
Set the variable `vservers` to be `yes` in `/etc/backupninja.conf` and see the
|
||||
example configuration files for each handler to configure the vserver specific
|
||||
variables.
|
||||
|
||||
Additional vserver variables that can be configured in `/etc/backupninja.conf`,
|
||||
but they probably don't need to be changed:
|
||||
|
||||
- `VSERVERINFO` (default: `/usr/sbin/vserver-info`)
|
||||
- `VSERVER` (default: `/usr/sbin/vserver`)
|
||||
- `VROOTDIR` (default: `$VSERVERINFO info SYSINFO |grep vserver-Rootdir | awk '{print $2}'`)
|
||||
|
||||
.sh configuration files
|
||||
-----------------------
|
||||
|
||||
Shell jobs may use the following features:
|
||||
|
||||
* logging and control flow functions:
|
||||
`halt`, `fatal`, `error`, `warning`, `info`, `debug`, `passthru`.
|
||||
All such functions take a list of strings a parameters.
|
||||
Those strings are passed to whatever logging mechanism is enabled,
|
||||
and colored if relevant.
|
||||
|
||||
* Using `exit N` is useless, and has unspecified consequences.
|
||||
Just don't do it.
|
||||
|
||||
* `when=TIME` works as documented above; at may also be written
|
||||
`when = TIME`.
|
||||
|
||||
* The `$BACKUPNINJA_DEBUG` environment variable is set when
|
||||
backupninja is invoked with the `-d` option.
|
||||
|
||||
Real world usage
|
||||
================
|
||||
|
||||
Backupninja can be used to implement whatever backup strategy you
|
||||
choose. It is intended, however, to be used like so:
|
||||
|
||||
1. First, databases are safely copied or exported to `/var/backups`.
|
||||
Typically, you cannot make a file backup of a database while it
|
||||
is in use, hence the need to use special tools to make a safe copy
|
||||
or export into `/var/backups`.
|
||||
|
||||
2. Then, vital parts of the file system, including `/var/backups`, are
|
||||
nightly pushed to a remote, off-site, hard disk (using
|
||||
rdiff-backup). The local user is root, but the remote user is not
|
||||
priviledged. Hopefully, the remote filesystem is encrypted.
|
||||
|
||||
There are many different backup strategies out there, including "pull
|
||||
style", magnetic tape, rsync + hard links, etc. We believe that the
|
||||
strategy outlined above is the way to go because:
|
||||
|
||||
1. hard disks are very cheap these days;
|
||||
2. pull style backups are no good, because then the backup server must
|
||||
have root on the production server;
|
||||
3. rdiff-backup is more space efficient and featureful than using
|
||||
rsync + hard links.
|
||||
|
||||
More information
|
||||
================
|
||||
|
||||
FAQ
|
||||
---
|
||||
|
||||
See the [FAQ](FAQ.md).
|
||||
|
||||
Mailing list
|
||||
------------
|
||||
|
||||
The backupninja
|
||||
[mailing list](https://lists.riseup.net/www/info/backupninja) is
|
||||
suitable for usage and development questions.
|
4
TODO
4
TODO
@ -5,8 +5,8 @@ you are working on it!
|
||||
. Fix all bugs reported on the Debian BTS:
|
||||
http://bugs.debian.org/cgi-bin/pkgreport.cgi?which=pkg&data=backupninja&archive=no
|
||||
|
||||
. Fix all bugs reported on our Redmine instance:
|
||||
https://labs.riseup.net/code/projects/backupninja/issues
|
||||
. Fix all bugs reported on our Gitlab instance:
|
||||
https://0xacab.org/riseuplabs/backupninja/issues
|
||||
|
||||
. Make ninjahelper allow you to pick what type of backup you want (instead
|
||||
of just assuming you want local-to-remote, or push backups. Some people
|
||||
|
543
aclocal.m4
vendored
543
aclocal.m4
vendored
@ -1,7 +1,7 @@
|
||||
# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
|
||||
# generated automatically by aclocal 1.15.1 -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1996-2017 Free Software Foundation, Inc.
|
||||
|
||||
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
|
||||
# 2005, 2006, 2007, 2008, 2009 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.
|
||||
@ -11,15 +11,16 @@
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
|
||||
m4_ifndef([AC_AUTOCONF_VERSION],
|
||||
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
|
||||
m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.67],,
|
||||
[m4_warning([this file was generated for autoconf 2.67.
|
||||
m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
|
||||
[m4_warning([this file was generated for autoconf 2.69.
|
||||
You have another version of autoconf. It may work, but is not guaranteed to.
|
||||
If you have problems, you may need to regenerate the build system entirely.
|
||||
To do so, use the procedure documented by the package, typically `autoreconf'.])])
|
||||
To do so, use the procedure documented by the package, typically 'autoreconf'.])])
|
||||
|
||||
# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2002-2017 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
@ -31,10 +32,10 @@ To do so, use the procedure documented by the package, typically `autoreconf'.])
|
||||
# generated from the m4 files accompanying Automake X.Y.
|
||||
# (This private macro should not be called outside this file.)
|
||||
AC_DEFUN([AM_AUTOMAKE_VERSION],
|
||||
[am__api_version='1.11'
|
||||
[am__api_version='1.15'
|
||||
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
|
||||
dnl require some minimum version. Point them to the right macro.
|
||||
m4_if([$1], [1.11.1], [],
|
||||
m4_if([$1], [1.15.1], [],
|
||||
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
|
||||
])
|
||||
|
||||
@ -50,22 +51,22 @@ m4_define([_AM_AUTOCONF_VERSION], [])
|
||||
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
|
||||
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
|
||||
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
|
||||
[AM_AUTOMAKE_VERSION([1.11.1])dnl
|
||||
[AM_AUTOMAKE_VERSION([1.15.1])dnl
|
||||
m4_ifndef([AC_AUTOCONF_VERSION],
|
||||
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
|
||||
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
|
||||
|
||||
# AM_AUX_DIR_EXPAND -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2001-2017 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.
|
||||
|
||||
# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
|
||||
# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
|
||||
# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
|
||||
# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to
|
||||
# '$srcdir', '$srcdir/..', or '$srcdir/../..'.
|
||||
#
|
||||
# Of course, Automake must honor this variable whenever it calls a
|
||||
# tool from the auxiliary directory. The problem is that $srcdir (and
|
||||
@ -84,7 +85,7 @@ _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
|
||||
#
|
||||
# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
|
||||
# are both prefixed by $srcdir. In an in-source build this is usually
|
||||
# harmless because $srcdir is `.', but things will broke when you
|
||||
# harmless because $srcdir is '.', but things will broke when you
|
||||
# start a VPATH build or use an absolute $srcdir.
|
||||
#
|
||||
# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
|
||||
@ -102,26 +103,28 @@ _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
|
||||
# configured tree to be moved without reconfiguration.
|
||||
|
||||
AC_DEFUN([AM_AUX_DIR_EXPAND],
|
||||
[dnl Rely on autoconf to set up CDPATH properly.
|
||||
AC_PREREQ([2.50])dnl
|
||||
# expand $ac_aux_dir to an absolute path
|
||||
am_aux_dir=`cd $ac_aux_dir && pwd`
|
||||
[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
|
||||
# Expand $ac_aux_dir to an absolute path.
|
||||
am_aux_dir=`cd "$ac_aux_dir" && pwd`
|
||||
])
|
||||
|
||||
# Do all the work for Automake. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
|
||||
# 2005, 2006, 2008, 2009 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1996-2017 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.
|
||||
|
||||
# serial 16
|
||||
|
||||
# This macro actually does too much. Some checks are only needed if
|
||||
# your package does certain things. But this isn't really a big deal.
|
||||
|
||||
dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O.
|
||||
m4_define([AC_PROG_CC],
|
||||
m4_defn([AC_PROG_CC])
|
||||
[_AM_PROG_CC_C_O
|
||||
])
|
||||
|
||||
# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
|
||||
# AM_INIT_AUTOMAKE([OPTIONS])
|
||||
# -----------------------------------------------
|
||||
@ -134,7 +137,7 @@ am_aux_dir=`cd $ac_aux_dir && pwd`
|
||||
# arguments mandatory, and then we can depend on a new Autoconf
|
||||
# release and drop the old call support.
|
||||
AC_DEFUN([AM_INIT_AUTOMAKE],
|
||||
[AC_PREREQ([2.62])dnl
|
||||
[AC_PREREQ([2.65])dnl
|
||||
dnl Autoconf wants to disallow AM_ names. We explicitly allow
|
||||
dnl the ones we care about.
|
||||
m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
|
||||
@ -163,33 +166,42 @@ AC_SUBST([CYGPATH_W])
|
||||
# Define the identity of the package.
|
||||
dnl Distinguish between old-style and new-style calls.
|
||||
m4_ifval([$2],
|
||||
[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
|
||||
[AC_DIAGNOSE([obsolete],
|
||||
[$0: two- and three-arguments forms are deprecated.])
|
||||
m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
|
||||
AC_SUBST([PACKAGE], [$1])dnl
|
||||
AC_SUBST([VERSION], [$2])],
|
||||
[_AM_SET_OPTIONS([$1])dnl
|
||||
dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
|
||||
m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,,
|
||||
m4_if(
|
||||
m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]),
|
||||
[ok:ok],,
|
||||
[m4_fatal([AC_INIT should be called with package and version arguments])])dnl
|
||||
AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
|
||||
AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
|
||||
|
||||
_AM_IF_OPTION([no-define],,
|
||||
[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
|
||||
AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
|
||||
[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package])
|
||||
AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl
|
||||
|
||||
# Some tools Automake needs.
|
||||
AC_REQUIRE([AM_SANITY_CHECK])dnl
|
||||
AC_REQUIRE([AC_ARG_PROGRAM])dnl
|
||||
AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
|
||||
AM_MISSING_PROG(AUTOCONF, autoconf)
|
||||
AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
|
||||
AM_MISSING_PROG(AUTOHEADER, autoheader)
|
||||
AM_MISSING_PROG(MAKEINFO, makeinfo)
|
||||
AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}])
|
||||
AM_MISSING_PROG([AUTOCONF], [autoconf])
|
||||
AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}])
|
||||
AM_MISSING_PROG([AUTOHEADER], [autoheader])
|
||||
AM_MISSING_PROG([MAKEINFO], [makeinfo])
|
||||
AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
|
||||
AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
|
||||
AC_REQUIRE([AM_PROG_MKDIR_P])dnl
|
||||
# We need awk for the "check" target. The system "awk" is bad on
|
||||
# some platforms.
|
||||
AC_REQUIRE([AC_PROG_MKDIR_P])dnl
|
||||
# For better backward compatibility. To be removed once Automake 1.9.x
|
||||
# dies out for good. For more background, see:
|
||||
# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
|
||||
# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
|
||||
AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
|
||||
# We need awk for the "check" target (and possibly the TAP driver). The
|
||||
# system "awk" is bad on some platforms.
|
||||
AC_REQUIRE([AC_PROG_AWK])dnl
|
||||
AC_REQUIRE([AC_PROG_MAKE_SET])dnl
|
||||
AC_REQUIRE([AM_SET_LEADING_DOT])dnl
|
||||
@ -198,34 +210,82 @@ _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
|
||||
[_AM_PROG_TAR([v7])])])
|
||||
_AM_IF_OPTION([no-dependencies],,
|
||||
[AC_PROVIDE_IFELSE([AC_PROG_CC],
|
||||
[_AM_DEPENDENCIES(CC)],
|
||||
[define([AC_PROG_CC],
|
||||
defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
|
||||
[_AM_DEPENDENCIES([CC])],
|
||||
[m4_define([AC_PROG_CC],
|
||||
m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl
|
||||
AC_PROVIDE_IFELSE([AC_PROG_CXX],
|
||||
[_AM_DEPENDENCIES(CXX)],
|
||||
[define([AC_PROG_CXX],
|
||||
defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
|
||||
[_AM_DEPENDENCIES([CXX])],
|
||||
[m4_define([AC_PROG_CXX],
|
||||
m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl
|
||||
AC_PROVIDE_IFELSE([AC_PROG_OBJC],
|
||||
[_AM_DEPENDENCIES(OBJC)],
|
||||
[define([AC_PROG_OBJC],
|
||||
defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
|
||||
[_AM_DEPENDENCIES([OBJC])],
|
||||
[m4_define([AC_PROG_OBJC],
|
||||
m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl
|
||||
AC_PROVIDE_IFELSE([AC_PROG_OBJCXX],
|
||||
[_AM_DEPENDENCIES([OBJCXX])],
|
||||
[m4_define([AC_PROG_OBJCXX],
|
||||
m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl
|
||||
])
|
||||
_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl
|
||||
dnl The `parallel-tests' driver may need to know about EXEEXT, so add the
|
||||
dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro
|
||||
dnl is hooked onto _AC_COMPILER_EXEEXT early, see below.
|
||||
AC_REQUIRE([AM_SILENT_RULES])dnl
|
||||
dnl The testsuite driver may need to know about EXEEXT, so add the
|
||||
dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This
|
||||
dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below.
|
||||
AC_CONFIG_COMMANDS_PRE(dnl
|
||||
[m4_provide_if([_AM_COMPILER_EXEEXT],
|
||||
[AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
|
||||
|
||||
# POSIX will say in a future version that running "rm -f" with no argument
|
||||
# is OK; and we want to be able to make that assumption in our Makefile
|
||||
# recipes. So use an aggressive probe to check that the usage we want is
|
||||
# actually supported "in the wild" to an acceptable degree.
|
||||
# See automake bug#10828.
|
||||
# To make any issue more visible, cause the running configure to be aborted
|
||||
# by default if the 'rm' program in use doesn't match our expectations; the
|
||||
# user can still override this though.
|
||||
if rm -f && rm -fr && rm -rf; then : OK; else
|
||||
cat >&2 <<'END'
|
||||
Oops!
|
||||
|
||||
Your 'rm' program seems unable to run without file operands specified
|
||||
on the command line, even when the '-f' option is present. This is contrary
|
||||
to the behaviour of most rm programs out there, and not conforming with
|
||||
the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
|
||||
|
||||
Please tell bug-automake@gnu.org about your system, including the value
|
||||
of your $PATH and any error possibly output before this message. This
|
||||
can help us improve future automake versions.
|
||||
|
||||
END
|
||||
if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
|
||||
echo 'Configuration will proceed anyway, since you have set the' >&2
|
||||
echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
|
||||
echo >&2
|
||||
else
|
||||
cat >&2 <<'END'
|
||||
Aborting the configuration process, to ensure you take notice of the issue.
|
||||
|
||||
You can download and install GNU coreutils to get an 'rm' implementation
|
||||
that behaves properly: <http://www.gnu.org/software/coreutils/>.
|
||||
|
||||
If you want to complete the configuration process using your problematic
|
||||
'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
|
||||
to "yes", and re-run configure.
|
||||
|
||||
END
|
||||
AC_MSG_ERROR([Your 'rm' program is bad, sorry.])
|
||||
fi
|
||||
fi
|
||||
dnl The trailing newline in this macro's definition is deliberate, for
|
||||
dnl backward compatibility and to allow trailing 'dnl'-style comments
|
||||
dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841.
|
||||
])
|
||||
|
||||
dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
|
||||
dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
|
||||
dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
|
||||
dnl mangled by Autoconf and run in a shell conditional statement.
|
||||
m4_define([_AC_COMPILER_EXEEXT],
|
||||
m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
|
||||
|
||||
|
||||
# When config.status generates a header, we must update the stamp-h file.
|
||||
# This file resides in the same directory as the config header
|
||||
# that is generated. The stamp files are numbered to have different names.
|
||||
@ -247,7 +307,7 @@ for _am_header in $config_headers :; do
|
||||
done
|
||||
echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
|
||||
|
||||
# Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
@ -258,7 +318,7 @@ echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_co
|
||||
# Define $install_sh.
|
||||
AC_DEFUN([AM_PROG_INSTALL_SH],
|
||||
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
|
||||
if test x"${install_sh}" != xset; then
|
||||
if test x"${install_sh+set}" != xset; then
|
||||
case $am_aux_dir in
|
||||
*\ * | *\ *)
|
||||
install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
|
||||
@ -266,16 +326,14 @@ if test x"${install_sh}" != xset; then
|
||||
install_sh="\${SHELL} $am_aux_dir/install-sh"
|
||||
esac
|
||||
fi
|
||||
AC_SUBST(install_sh)])
|
||||
AC_SUBST([install_sh])])
|
||||
|
||||
# Copyright (C) 2003, 2005 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2003-2017 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.
|
||||
|
||||
# serial 2
|
||||
|
||||
# Check whether the underlying file-system supports filenames
|
||||
# with a leading dot. For instance MS-DOS doesn't.
|
||||
AC_DEFUN([AM_SET_LEADING_DOT],
|
||||
@ -291,15 +349,12 @@ AC_SUBST([am__leading_dot])])
|
||||
|
||||
# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008
|
||||
# Free Software Foundation, Inc.
|
||||
# Copyright (C) 1997-2017 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.
|
||||
|
||||
# serial 6
|
||||
|
||||
# AM_MISSING_PROG(NAME, PROGRAM)
|
||||
# ------------------------------
|
||||
AC_DEFUN([AM_MISSING_PROG],
|
||||
@ -307,11 +362,10 @@ AC_DEFUN([AM_MISSING_PROG],
|
||||
$1=${$1-"${am_missing_run}$2"}
|
||||
AC_SUBST($1)])
|
||||
|
||||
|
||||
# AM_MISSING_HAS_RUN
|
||||
# ------------------
|
||||
# Define MISSING if not defined so far and test if it supports --run.
|
||||
# If it does, set am_missing_run to use it, otherwise, to nothing.
|
||||
# Define MISSING if not defined so far and test if it is modern enough.
|
||||
# If it is, set am_missing_run to use it, otherwise, to nothing.
|
||||
AC_DEFUN([AM_MISSING_HAS_RUN],
|
||||
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
|
||||
AC_REQUIRE_AUX_FILE([missing])dnl
|
||||
@ -324,63 +378,35 @@ if test x"${MISSING+set}" != xset; then
|
||||
esac
|
||||
fi
|
||||
# Use eval to expand $SHELL
|
||||
if eval "$MISSING --run true"; then
|
||||
am_missing_run="$MISSING --run "
|
||||
if eval "$MISSING --is-lightweight"; then
|
||||
am_missing_run="$MISSING "
|
||||
else
|
||||
am_missing_run=
|
||||
AC_MSG_WARN([`missing' script is too old or missing])
|
||||
AC_MSG_WARN(['missing' script is too old or missing])
|
||||
fi
|
||||
])
|
||||
|
||||
# Copyright (C) 2003, 2004, 2005, 2006 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.
|
||||
|
||||
# AM_PROG_MKDIR_P
|
||||
# ---------------
|
||||
# Check for `mkdir -p'.
|
||||
AC_DEFUN([AM_PROG_MKDIR_P],
|
||||
[AC_PREREQ([2.60])dnl
|
||||
AC_REQUIRE([AC_PROG_MKDIR_P])dnl
|
||||
dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P,
|
||||
dnl while keeping a definition of mkdir_p for backward compatibility.
|
||||
dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile.
|
||||
dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of
|
||||
dnl Makefile.ins that do not define MKDIR_P, so we do our own
|
||||
dnl adjustment using top_builddir (which is defined more often than
|
||||
dnl MKDIR_P).
|
||||
AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl
|
||||
case $mkdir_p in
|
||||
[[\\/$]]* | ?:[[\\/]]*) ;;
|
||||
*/*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
|
||||
esac
|
||||
])
|
||||
|
||||
# Helper functions for option handling. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2001-2017 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.
|
||||
|
||||
# serial 4
|
||||
|
||||
# _AM_MANGLE_OPTION(NAME)
|
||||
# -----------------------
|
||||
AC_DEFUN([_AM_MANGLE_OPTION],
|
||||
[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
|
||||
|
||||
# _AM_SET_OPTION(NAME)
|
||||
# ------------------------------
|
||||
# --------------------
|
||||
# Set option NAME. Presently that only means defining a flag for this option.
|
||||
AC_DEFUN([_AM_SET_OPTION],
|
||||
[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
|
||||
[m4_define(_AM_MANGLE_OPTION([$1]), [1])])
|
||||
|
||||
# _AM_SET_OPTIONS(OPTIONS)
|
||||
# ----------------------------------
|
||||
# ------------------------
|
||||
# OPTIONS is a space-separated list of Automake options.
|
||||
AC_DEFUN([_AM_SET_OPTIONS],
|
||||
[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
|
||||
@ -393,22 +419,16 @@ AC_DEFUN([_AM_IF_OPTION],
|
||||
|
||||
# Check to make sure that the build environment is sane. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008
|
||||
# Free Software Foundation, Inc.
|
||||
# Copyright (C) 1996-2017 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.
|
||||
|
||||
# serial 5
|
||||
|
||||
# AM_SANITY_CHECK
|
||||
# ---------------
|
||||
AC_DEFUN([AM_SANITY_CHECK],
|
||||
[AC_MSG_CHECKING([whether build environment is sane])
|
||||
# Just in case
|
||||
sleep 1
|
||||
echo timestamp > conftest.file
|
||||
# Reject unsafe characters in $srcdir or the absolute working directory
|
||||
# name. Accept space and tab only in the latter.
|
||||
am_lf='
|
||||
@ -419,32 +439,40 @@ case `pwd` in
|
||||
esac
|
||||
case $srcdir in
|
||||
*[[\\\"\#\$\&\'\`$am_lf\ \ ]]*)
|
||||
AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);;
|
||||
AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);;
|
||||
esac
|
||||
|
||||
# Do `set' in a subshell so we don't clobber the current shell's
|
||||
# Do 'set' in a subshell so we don't clobber the current shell's
|
||||
# arguments. Must try -L first in case configure is actually a
|
||||
# symlink; some systems play weird games with the mod time of symlinks
|
||||
# (eg FreeBSD returns the mod time of the symlink's containing
|
||||
# directory).
|
||||
if (
|
||||
set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
|
||||
if test "$[*]" = "X"; then
|
||||
# -L didn't work.
|
||||
set X `ls -t "$srcdir/configure" conftest.file`
|
||||
fi
|
||||
rm -f conftest.file
|
||||
if test "$[*]" != "X $srcdir/configure conftest.file" \
|
||||
&& test "$[*]" != "X conftest.file $srcdir/configure"; then
|
||||
|
||||
# If neither matched, then we have a broken ls. This can happen
|
||||
# if, for instance, CONFIG_SHELL is bash and it inherits a
|
||||
# broken ls alias from the environment. This has actually
|
||||
# happened. Such a system could not be considered "sane".
|
||||
AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
|
||||
alias in your environment])
|
||||
fi
|
||||
am_has_slept=no
|
||||
for am_try in 1 2; do
|
||||
echo "timestamp, slept: $am_has_slept" > conftest.file
|
||||
set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
|
||||
if test "$[*]" = "X"; then
|
||||
# -L didn't work.
|
||||
set X `ls -t "$srcdir/configure" conftest.file`
|
||||
fi
|
||||
if test "$[*]" != "X $srcdir/configure conftest.file" \
|
||||
&& test "$[*]" != "X conftest.file $srcdir/configure"; then
|
||||
|
||||
# If neither matched, then we have a broken ls. This can happen
|
||||
# if, for instance, CONFIG_SHELL is bash and it inherits a
|
||||
# broken ls alias from the environment. This has actually
|
||||
# happened. Such a system could not be considered "sane".
|
||||
AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
|
||||
alias in your environment])
|
||||
fi
|
||||
if test "$[2]" = conftest.file || test $am_try -eq 2; then
|
||||
break
|
||||
fi
|
||||
# Just in case.
|
||||
sleep 1
|
||||
am_has_slept=yes
|
||||
done
|
||||
test "$[2]" = conftest.file
|
||||
)
|
||||
then
|
||||
@ -454,9 +482,85 @@ else
|
||||
AC_MSG_ERROR([newly created file is older than distributed files!
|
||||
Check your system clock])
|
||||
fi
|
||||
AC_MSG_RESULT(yes)])
|
||||
AC_MSG_RESULT([yes])
|
||||
# If we didn't sleep, we still need to ensure time stamps of config.status and
|
||||
# generated files are strictly newer.
|
||||
am_sleep_pid=
|
||||
if grep 'slept: no' conftest.file >/dev/null 2>&1; then
|
||||
( sleep 1 ) &
|
||||
am_sleep_pid=$!
|
||||
fi
|
||||
AC_CONFIG_COMMANDS_PRE(
|
||||
[AC_MSG_CHECKING([that generated files are newer than configure])
|
||||
if test -n "$am_sleep_pid"; then
|
||||
# Hide warnings about reused PIDs.
|
||||
wait $am_sleep_pid 2>/dev/null
|
||||
fi
|
||||
AC_MSG_RESULT([done])])
|
||||
rm -f conftest.file
|
||||
])
|
||||
|
||||
# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2009-2017 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.
|
||||
|
||||
# AM_SILENT_RULES([DEFAULT])
|
||||
# --------------------------
|
||||
# Enable less verbose build rules; with the default set to DEFAULT
|
||||
# ("yes" being less verbose, "no" or empty being verbose).
|
||||
AC_DEFUN([AM_SILENT_RULES],
|
||||
[AC_ARG_ENABLE([silent-rules], [dnl
|
||||
AS_HELP_STRING(
|
||||
[--enable-silent-rules],
|
||||
[less verbose build output (undo: "make V=1")])
|
||||
AS_HELP_STRING(
|
||||
[--disable-silent-rules],
|
||||
[verbose build output (undo: "make V=0")])dnl
|
||||
])
|
||||
case $enable_silent_rules in @%:@ (((
|
||||
yes) AM_DEFAULT_VERBOSITY=0;;
|
||||
no) AM_DEFAULT_VERBOSITY=1;;
|
||||
*) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
|
||||
esac
|
||||
dnl
|
||||
dnl A few 'make' implementations (e.g., NonStop OS and NextStep)
|
||||
dnl do not support nested variable expansions.
|
||||
dnl See automake bug#9928 and bug#10237.
|
||||
am_make=${MAKE-make}
|
||||
AC_CACHE_CHECK([whether $am_make supports nested variables],
|
||||
[am_cv_make_support_nested_variables],
|
||||
[if AS_ECHO([['TRUE=$(BAR$(V))
|
||||
BAR0=false
|
||||
BAR1=true
|
||||
V=1
|
||||
am__doit:
|
||||
@$(TRUE)
|
||||
.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then
|
||||
am_cv_make_support_nested_variables=yes
|
||||
else
|
||||
am_cv_make_support_nested_variables=no
|
||||
fi])
|
||||
if test $am_cv_make_support_nested_variables = yes; then
|
||||
dnl Using '$V' instead of '$(V)' breaks IRIX make.
|
||||
AM_V='$(V)'
|
||||
AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
|
||||
else
|
||||
AM_V=$AM_DEFAULT_VERBOSITY
|
||||
AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
|
||||
fi
|
||||
AC_SUBST([AM_V])dnl
|
||||
AM_SUBST_NOTMAKE([AM_V])dnl
|
||||
AC_SUBST([AM_DEFAULT_V])dnl
|
||||
AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl
|
||||
AC_SUBST([AM_DEFAULT_VERBOSITY])dnl
|
||||
AM_BACKSLASH='\'
|
||||
AC_SUBST([AM_BACKSLASH])dnl
|
||||
_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
|
||||
])
|
||||
|
||||
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
@ -464,34 +568,32 @@ AC_MSG_RESULT(yes)])
|
||||
|
||||
# AM_PROG_INSTALL_STRIP
|
||||
# ---------------------
|
||||
# One issue with vendor `install' (even GNU) is that you can't
|
||||
# One issue with vendor 'install' (even GNU) is that you can't
|
||||
# specify the program used to strip binaries. This is especially
|
||||
# annoying in cross-compiling environments, where the build's strip
|
||||
# is unlikely to handle the host's binaries.
|
||||
# Fortunately install-sh will honor a STRIPPROG variable, so we
|
||||
# always use install-sh in `make install-strip', and initialize
|
||||
# always use install-sh in "make install-strip", and initialize
|
||||
# STRIPPROG with the value of the STRIP variable (set by the user).
|
||||
AC_DEFUN([AM_PROG_INSTALL_STRIP],
|
||||
[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
|
||||
# Installed binaries are usually stripped using `strip' when the user
|
||||
# run `make install-strip'. However `strip' might not be the right
|
||||
# Installed binaries are usually stripped using 'strip' when the user
|
||||
# run "make install-strip". However 'strip' might not be the right
|
||||
# tool to use in cross-compilation environments, therefore Automake
|
||||
# will honor the `STRIP' environment variable to overrule this program.
|
||||
dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
|
||||
# will honor the 'STRIP' environment variable to overrule this program.
|
||||
dnl Don't test for $cross_compiling = yes, because it might be 'maybe'.
|
||||
if test "$cross_compiling" != no; then
|
||||
AC_CHECK_TOOL([STRIP], [strip], :)
|
||||
fi
|
||||
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
|
||||
AC_SUBST([INSTALL_STRIP_PROGRAM])])
|
||||
|
||||
# Copyright (C) 2006, 2008 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2006-2017 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.
|
||||
|
||||
# serial 2
|
||||
|
||||
# _AM_SUBST_NOTMAKE(VARIABLE)
|
||||
# ---------------------------
|
||||
# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
|
||||
@ -499,24 +601,22 @@ AC_SUBST([INSTALL_STRIP_PROGRAM])])
|
||||
AC_DEFUN([_AM_SUBST_NOTMAKE])
|
||||
|
||||
# AM_SUBST_NOTMAKE(VARIABLE)
|
||||
# ---------------------------
|
||||
# --------------------------
|
||||
# Public sister of _AM_SUBST_NOTMAKE.
|
||||
AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
|
||||
|
||||
# Check how to create a tarball. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 2004, 2005 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2004-2017 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.
|
||||
|
||||
# serial 2
|
||||
|
||||
# _AM_PROG_TAR(FORMAT)
|
||||
# --------------------
|
||||
# Check how to create a tarball in format FORMAT.
|
||||
# FORMAT should be one of `v7', `ustar', or `pax'.
|
||||
# FORMAT should be one of 'v7', 'ustar', or 'pax'.
|
||||
#
|
||||
# Substitute a variable $(am__tar) that is a command
|
||||
# writing to stdout a FORMAT-tarball containing the directory
|
||||
@ -526,75 +626,114 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
|
||||
# Substitute a variable $(am__untar) that extract such
|
||||
# a tarball read from stdin.
|
||||
# $(am__untar) < result.tar
|
||||
#
|
||||
AC_DEFUN([_AM_PROG_TAR],
|
||||
[# Always define AMTAR for backward compatibility.
|
||||
AM_MISSING_PROG([AMTAR], [tar])
|
||||
m4_if([$1], [v7],
|
||||
[am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
|
||||
[m4_case([$1], [ustar],, [pax],,
|
||||
[m4_fatal([Unknown tar format])])
|
||||
AC_MSG_CHECKING([how to create a $1 tar archive])
|
||||
# Loop over all known methods to create a tar archive until one works.
|
||||
[# Always define AMTAR for backward compatibility. Yes, it's still used
|
||||
# in the wild :-( We should find a proper way to deprecate it ...
|
||||
AC_SUBST([AMTAR], ['$${TAR-tar}'])
|
||||
|
||||
# We'll loop over all known methods to create a tar archive until one works.
|
||||
_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
|
||||
_am_tools=${am_cv_prog_tar_$1-$_am_tools}
|
||||
# Do not fold the above two line into one, because Tru64 sh and
|
||||
# Solaris sh will not grok spaces in the rhs of `-'.
|
||||
for _am_tool in $_am_tools
|
||||
do
|
||||
case $_am_tool in
|
||||
gnutar)
|
||||
for _am_tar in tar gnutar gtar;
|
||||
do
|
||||
AM_RUN_LOG([$_am_tar --version]) && break
|
||||
done
|
||||
am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
|
||||
am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
|
||||
am__untar="$_am_tar -xf -"
|
||||
;;
|
||||
plaintar)
|
||||
# Must skip GNU tar: if it does not support --format= it doesn't create
|
||||
# ustar tarball either.
|
||||
(tar --version) >/dev/null 2>&1 && continue
|
||||
am__tar='tar chf - "$$tardir"'
|
||||
am__tar_='tar chf - "$tardir"'
|
||||
am__untar='tar xf -'
|
||||
;;
|
||||
pax)
|
||||
am__tar='pax -L -x $1 -w "$$tardir"'
|
||||
am__tar_='pax -L -x $1 -w "$tardir"'
|
||||
am__untar='pax -r'
|
||||
;;
|
||||
cpio)
|
||||
am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
|
||||
am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
|
||||
am__untar='cpio -i -H $1 -d'
|
||||
;;
|
||||
none)
|
||||
am__tar=false
|
||||
am__tar_=false
|
||||
am__untar=false
|
||||
;;
|
||||
esac
|
||||
|
||||
# If the value was cached, stop now. We just wanted to have am__tar
|
||||
# and am__untar set.
|
||||
test -n "${am_cv_prog_tar_$1}" && break
|
||||
m4_if([$1], [v7],
|
||||
[am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
|
||||
|
||||
# tar/untar a dummy directory, and stop if the command works
|
||||
[m4_case([$1],
|
||||
[ustar],
|
||||
[# The POSIX 1988 'ustar' format is defined with fixed-size fields.
|
||||
# There is notably a 21 bits limit for the UID and the GID. In fact,
|
||||
# the 'pax' utility can hang on bigger UID/GID (see automake bug#8343
|
||||
# and bug#13588).
|
||||
am_max_uid=2097151 # 2^21 - 1
|
||||
am_max_gid=$am_max_uid
|
||||
# The $UID and $GID variables are not portable, so we need to resort
|
||||
# to the POSIX-mandated id(1) utility. Errors in the 'id' calls
|
||||
# below are definitely unexpected, so allow the users to see them
|
||||
# (that is, avoid stderr redirection).
|
||||
am_uid=`id -u || echo unknown`
|
||||
am_gid=`id -g || echo unknown`
|
||||
AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format])
|
||||
if test $am_uid -le $am_max_uid; then
|
||||
AC_MSG_RESULT([yes])
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
_am_tools=none
|
||||
fi
|
||||
AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format])
|
||||
if test $am_gid -le $am_max_gid; then
|
||||
AC_MSG_RESULT([yes])
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
_am_tools=none
|
||||
fi],
|
||||
|
||||
[pax],
|
||||
[],
|
||||
|
||||
[m4_fatal([Unknown tar format])])
|
||||
|
||||
AC_MSG_CHECKING([how to create a $1 tar archive])
|
||||
|
||||
# Go ahead even if we have the value already cached. We do so because we
|
||||
# need to set the values for the 'am__tar' and 'am__untar' variables.
|
||||
_am_tools=${am_cv_prog_tar_$1-$_am_tools}
|
||||
|
||||
for _am_tool in $_am_tools; do
|
||||
case $_am_tool in
|
||||
gnutar)
|
||||
for _am_tar in tar gnutar gtar; do
|
||||
AM_RUN_LOG([$_am_tar --version]) && break
|
||||
done
|
||||
am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
|
||||
am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
|
||||
am__untar="$_am_tar -xf -"
|
||||
;;
|
||||
plaintar)
|
||||
# Must skip GNU tar: if it does not support --format= it doesn't create
|
||||
# ustar tarball either.
|
||||
(tar --version) >/dev/null 2>&1 && continue
|
||||
am__tar='tar chf - "$$tardir"'
|
||||
am__tar_='tar chf - "$tardir"'
|
||||
am__untar='tar xf -'
|
||||
;;
|
||||
pax)
|
||||
am__tar='pax -L -x $1 -w "$$tardir"'
|
||||
am__tar_='pax -L -x $1 -w "$tardir"'
|
||||
am__untar='pax -r'
|
||||
;;
|
||||
cpio)
|
||||
am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
|
||||
am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
|
||||
am__untar='cpio -i -H $1 -d'
|
||||
;;
|
||||
none)
|
||||
am__tar=false
|
||||
am__tar_=false
|
||||
am__untar=false
|
||||
;;
|
||||
esac
|
||||
|
||||
# If the value was cached, stop now. We just wanted to have am__tar
|
||||
# and am__untar set.
|
||||
test -n "${am_cv_prog_tar_$1}" && break
|
||||
|
||||
# tar/untar a dummy directory, and stop if the command works.
|
||||
rm -rf conftest.dir
|
||||
mkdir conftest.dir
|
||||
echo GrepMe > conftest.dir/file
|
||||
AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
|
||||
rm -rf conftest.dir
|
||||
if test -s conftest.tar; then
|
||||
AM_RUN_LOG([$am__untar <conftest.tar])
|
||||
AM_RUN_LOG([cat conftest.dir/file])
|
||||
grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
|
||||
fi
|
||||
done
|
||||
rm -rf conftest.dir
|
||||
mkdir conftest.dir
|
||||
echo GrepMe > conftest.dir/file
|
||||
AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
|
||||
rm -rf conftest.dir
|
||||
if test -s conftest.tar; then
|
||||
AM_RUN_LOG([$am__untar <conftest.tar])
|
||||
grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
|
||||
fi
|
||||
done
|
||||
rm -rf conftest.dir
|
||||
|
||||
AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
|
||||
AC_MSG_RESULT([$am_cv_prog_tar_$1])])
|
||||
AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
|
||||
AC_MSG_RESULT([$am_cv_prog_tar_$1])])
|
||||
|
||||
AC_SUBST([am__tar])
|
||||
AC_SUBST([am__untar])
|
||||
]) # _AM_PROG_TAR
|
||||
|
@ -1,5 +1,5 @@
|
||||
%define name backupninja
|
||||
%define version 1.0.1
|
||||
%define version 1.0.2
|
||||
|
||||
Summary: Backupninja backup tool
|
||||
Name: %{name}
|
||||
@ -7,7 +7,7 @@ Version: %{version}
|
||||
Release: 1
|
||||
License: GPL
|
||||
Group: Applications/System
|
||||
URL: https://labs.riseup.net/code/projects/show/backupninja
|
||||
URL: https://0xacab.org/riseuplabs/backupninja
|
||||
Source: %{name}-%{version}.tar.gz
|
||||
Requires: bash, gawk, rdiff-backup, gzip
|
||||
Provides: %{name}
|
||||
@ -50,7 +50,7 @@ rm -fr %{buildroot}
|
||||
|
||||
%ghost %{_localstatedir}/log/backupninja.log
|
||||
|
||||
%doc AUTHORS COPYING ChangeLog INSTALL NEWS README
|
||||
%doc AUTHORS COPYING ChangeLog INSTALL.md NEWS README.md
|
||||
%{_mandir}/man1/*
|
||||
%{_mandir}/man5/*
|
||||
|
||||
|
@ -7,7 +7,7 @@ Version: %{version}
|
||||
Release: 1
|
||||
License: GPL
|
||||
Group: Applications/System
|
||||
URL: https://labs.riseup.net/code/projects/show/backupninja
|
||||
URL: https://0xacab.org/riseuplabs/backupninja
|
||||
Source: %{name}-%{version}.tar.gz
|
||||
Requires: bash, gawk, rdiff-backup, gzip
|
||||
Provides: %{name}
|
||||
@ -50,7 +50,7 @@ rm -fr %{buildroot}
|
||||
|
||||
%ghost %{_localstatedir}/log/backupninja.log
|
||||
|
||||
%doc AUTHORS COPYING ChangeLog INSTALL NEWS README
|
||||
%doc AUTHORS COPYING ChangeLog INSTALL.md NEWS README.md
|
||||
%{_mandir}/man1/*
|
||||
%{_mandir}/man5/*
|
||||
|
||||
|
@ -3,9 +3,9 @@
|
||||
|
||||
# The maintainer mode is causing me grief with newest versions of autotools
|
||||
#AM_MAINTAINER_MODE
|
||||
AC_INIT([backupninja],[1.0.1],[backupninja@lists.riseup.net])
|
||||
AC_INIT([backupninja],[1.0.2],[backupninja@lists.riseup.net])
|
||||
AC_CONFIG_SRCDIR([src/backupninja.in])
|
||||
AM_INIT_AUTOMAKE
|
||||
AM_INIT_AUTOMAKE([foreign])
|
||||
|
||||
# Checks for programs.
|
||||
|
||||
|
151
etc/Makefile.in
151
etc/Makefile.in
@ -1,9 +1,8 @@
|
||||
# Makefile.in generated by automake 1.11.1 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.15.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
|
||||
# Inc.
|
||||
# Copyright (C) 1994-2017 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.
|
||||
@ -16,6 +15,61 @@
|
||||
@SET_MAKE@
|
||||
|
||||
VPATH = @srcdir@
|
||||
am__is_gnu_make = { \
|
||||
if test -z '$(MAKELEVEL)'; then \
|
||||
false; \
|
||||
elif test -n '$(MAKE_HOST)'; then \
|
||||
true; \
|
||||
elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
|
||||
true; \
|
||||
else \
|
||||
false; \
|
||||
fi; \
|
||||
}
|
||||
am__make_running_with_option = \
|
||||
case $${target_option-} in \
|
||||
?) ;; \
|
||||
*) echo "am__make_running_with_option: internal error: invalid" \
|
||||
"target option '$${target_option-}' specified" >&2; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
has_opt=no; \
|
||||
sane_makeflags=$$MAKEFLAGS; \
|
||||
if $(am__is_gnu_make); then \
|
||||
sane_makeflags=$$MFLAGS; \
|
||||
else \
|
||||
case $$MAKEFLAGS in \
|
||||
*\\[\ \ ]*) \
|
||||
bs=\\; \
|
||||
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
|
||||
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
|
||||
esac; \
|
||||
fi; \
|
||||
skip_next=no; \
|
||||
strip_trailopt () \
|
||||
{ \
|
||||
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
|
||||
}; \
|
||||
for flg in $$sane_makeflags; do \
|
||||
test $$skip_next = yes && { skip_next=no; continue; }; \
|
||||
case $$flg in \
|
||||
*=*|--*) continue;; \
|
||||
-*I) strip_trailopt 'I'; skip_next=yes;; \
|
||||
-*I?*) strip_trailopt 'I';; \
|
||||
-*O) strip_trailopt 'O'; skip_next=yes;; \
|
||||
-*O?*) strip_trailopt 'O';; \
|
||||
-*l) strip_trailopt 'l'; skip_next=yes;; \
|
||||
-*l?*) strip_trailopt 'l';; \
|
||||
-[dEDm]) skip_next=yes;; \
|
||||
-[JT]) skip_next=yes;; \
|
||||
esac; \
|
||||
case $$flg in \
|
||||
*$$target_option*) has_opt=yes; break;; \
|
||||
esac; \
|
||||
done; \
|
||||
test $$has_opt = yes
|
||||
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
|
||||
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
@ -33,16 +87,33 @@ NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
subdir = etc
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/configure.in
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
AM_V_P = $(am__v_P_@AM_V@)
|
||||
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
|
||||
am__v_P_0 = false
|
||||
am__v_P_1 = :
|
||||
AM_V_GEN = $(am__v_GEN_@AM_V@)
|
||||
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
|
||||
am__v_GEN_0 = @echo " GEN " $@;
|
||||
am__v_GEN_1 =
|
||||
AM_V_at = $(am__v_at_@AM_V@)
|
||||
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
|
||||
am__v_at_0 = @
|
||||
am__v_at_1 =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
am__can_run_installinfo = \
|
||||
case $$AM_UPDATE_INFO_DIR in \
|
||||
n|no|NO) false;; \
|
||||
*) (install-info --version) >/dev/null 2>&1;; \
|
||||
esac
|
||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
||||
am__vpath_adj = case $$p in \
|
||||
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
@ -64,11 +135,20 @@ am__nobase_list = $(am__nobase_strip_setup); \
|
||||
am__base_list = \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
|
||||
am__uninstall_files_from_dir = { \
|
||||
test -z "$$files" \
|
||||
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|
||||
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
|
||||
$(am__cd) "$$dir" && rm -f $$files; }; \
|
||||
}
|
||||
am__installdirs = "$(DESTDIR)$(sysconfdir)"
|
||||
DATA = $(nobase_sysconf_DATA)
|
||||
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
|
||||
am__DIST_COMMON = $(srcdir)/Makefile.in
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMTAR = @AMTAR@
|
||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
@ -139,6 +219,7 @@ pdfdir = @pdfdir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
runstatedir = @runstatedir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
@ -176,10 +257,9 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu etc/Makefile'; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign etc/Makefile'; \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu etc/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
$(AUTOMAKE) --foreign etc/Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
@ -199,15 +279,18 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||
$(am__aclocal_m4_deps):
|
||||
install-nobase_sysconfDATA: $(nobase_sysconf_DATA)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(sysconfdir)" || $(MKDIR_P) "$(DESTDIR)$(sysconfdir)"
|
||||
@list='$(nobase_sysconf_DATA)'; test -n "$(sysconfdir)" || list=; \
|
||||
if test -n "$$list"; then \
|
||||
echo " $(MKDIR_P) '$(DESTDIR)$(sysconfdir)'"; \
|
||||
$(MKDIR_P) "$(DESTDIR)$(sysconfdir)" || exit 1; \
|
||||
fi; \
|
||||
$(am__nobase_list) | while read dir files; do \
|
||||
xfiles=; for file in $$files; do \
|
||||
if test -f "$$file"; then xfiles="$$xfiles $$file"; \
|
||||
else xfiles="$$xfiles $(srcdir)/$$file"; fi; done; \
|
||||
test -z "$$xfiles" || { \
|
||||
test "x$$dir" = x. || { \
|
||||
echo "$(MKDIR_P) '$(DESTDIR)$(sysconfdir)/$$dir'"; \
|
||||
echo " $(MKDIR_P) '$(DESTDIR)$(sysconfdir)/$$dir'"; \
|
||||
$(MKDIR_P) "$(DESTDIR)$(sysconfdir)/$$dir"; }; \
|
||||
echo " $(INSTALL_DATA) $$xfiles '$(DESTDIR)$(sysconfdir)/$$dir'"; \
|
||||
$(INSTALL_DATA) $$xfiles "$(DESTDIR)$(sysconfdir)/$$dir" || exit $$?; }; \
|
||||
@ -217,14 +300,12 @@ uninstall-nobase_sysconfDATA:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(nobase_sysconf_DATA)'; test -n "$(sysconfdir)" || list=; \
|
||||
$(am__nobase_strip_setup); files=`$(am__nobase_strip)`; \
|
||||
test -n "$$files" || exit 0; \
|
||||
echo " ( cd '$(DESTDIR)$(sysconfdir)' && rm -f" $$files ")"; \
|
||||
cd "$(DESTDIR)$(sysconfdir)" && rm -f $$files
|
||||
tags: TAGS
|
||||
TAGS:
|
||||
dir='$(DESTDIR)$(sysconfdir)'; $(am__uninstall_files_from_dir)
|
||||
tags TAGS:
|
||||
|
||||
ctags: CTAGS
|
||||
CTAGS:
|
||||
ctags CTAGS:
|
||||
|
||||
cscope cscopelist:
|
||||
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@ -274,10 +355,15 @@ install-am: all-am
|
||||
|
||||
installcheck: installcheck-am
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
if test -z '$(STRIP)'; then \
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
install; \
|
||||
else \
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
|
||||
fi
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
@ -359,18 +445,21 @@ uninstall-am: uninstall-nobase_sysconfDATA
|
||||
|
||||
.MAKE: install-am install-data-am install-strip
|
||||
|
||||
.PHONY: all all-am check check-am clean clean-generic distclean \
|
||||
distclean-generic distdir dvi dvi-am html html-am info info-am \
|
||||
install install-am install-data install-data-am \
|
||||
install-data-hook install-dvi install-dvi-am install-exec \
|
||||
install-exec-am install-html install-html-am install-info \
|
||||
install-info-am install-man install-nobase_sysconfDATA \
|
||||
install-pdf install-pdf-am install-ps install-ps-am \
|
||||
install-strip installcheck installcheck-am installdirs \
|
||||
maintainer-clean maintainer-clean-generic mostlyclean \
|
||||
mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am \
|
||||
.PHONY: all all-am check check-am clean clean-generic cscopelist-am \
|
||||
ctags-am distclean distclean-generic distdir dvi dvi-am html \
|
||||
html-am info info-am install install-am install-data \
|
||||
install-data-am install-data-hook install-dvi install-dvi-am \
|
||||
install-exec install-exec-am install-html install-html-am \
|
||||
install-info install-info-am install-man \
|
||||
install-nobase_sysconfDATA install-pdf install-pdf-am \
|
||||
install-ps install-ps-am install-strip installcheck \
|
||||
installcheck-am installdirs maintainer-clean \
|
||||
maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
|
||||
pdf-am ps ps-am tags-am uninstall uninstall-am \
|
||||
uninstall-nobase_sysconfDATA
|
||||
|
||||
.PRECIOUS: Makefile
|
||||
|
||||
|
||||
cron.d/backupninja: cron.d/backupninja.in
|
||||
rm -f cron.d/backupninja
|
||||
|
@ -1,9 +1,8 @@
|
||||
# Makefile.in generated by automake 1.11.1 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.15.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
|
||||
# Inc.
|
||||
# Copyright (C) 1994-2017 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.
|
||||
@ -16,6 +15,61 @@
|
||||
@SET_MAKE@
|
||||
|
||||
VPATH = @srcdir@
|
||||
am__is_gnu_make = { \
|
||||
if test -z '$(MAKELEVEL)'; then \
|
||||
false; \
|
||||
elif test -n '$(MAKE_HOST)'; then \
|
||||
true; \
|
||||
elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
|
||||
true; \
|
||||
else \
|
||||
false; \
|
||||
fi; \
|
||||
}
|
||||
am__make_running_with_option = \
|
||||
case $${target_option-} in \
|
||||
?) ;; \
|
||||
*) echo "am__make_running_with_option: internal error: invalid" \
|
||||
"target option '$${target_option-}' specified" >&2; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
has_opt=no; \
|
||||
sane_makeflags=$$MAKEFLAGS; \
|
||||
if $(am__is_gnu_make); then \
|
||||
sane_makeflags=$$MFLAGS; \
|
||||
else \
|
||||
case $$MAKEFLAGS in \
|
||||
*\\[\ \ ]*) \
|
||||
bs=\\; \
|
||||
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
|
||||
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
|
||||
esac; \
|
||||
fi; \
|
||||
skip_next=no; \
|
||||
strip_trailopt () \
|
||||
{ \
|
||||
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
|
||||
}; \
|
||||
for flg in $$sane_makeflags; do \
|
||||
test $$skip_next = yes && { skip_next=no; continue; }; \
|
||||
case $$flg in \
|
||||
*=*|--*) continue;; \
|
||||
-*I) strip_trailopt 'I'; skip_next=yes;; \
|
||||
-*I?*) strip_trailopt 'I';; \
|
||||
-*O) strip_trailopt 'O'; skip_next=yes;; \
|
||||
-*O?*) strip_trailopt 'O';; \
|
||||
-*l) strip_trailopt 'l'; skip_next=yes;; \
|
||||
-*l?*) strip_trailopt 'l';; \
|
||||
-[dEDm]) skip_next=yes;; \
|
||||
-[JT]) skip_next=yes;; \
|
||||
esac; \
|
||||
case $$flg in \
|
||||
*$$target_option*) has_opt=yes; break;; \
|
||||
esac; \
|
||||
done; \
|
||||
test $$has_opt = yes
|
||||
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
|
||||
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
@ -33,17 +87,34 @@ NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
subdir = examples
|
||||
DIST_COMMON = $(dist_pkgdata_DATA) $(srcdir)/Makefile.am \
|
||||
$(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/configure.in
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(dist_pkgdata_DATA) \
|
||||
$(am__DIST_COMMON)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
AM_V_P = $(am__v_P_@AM_V@)
|
||||
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
|
||||
am__v_P_0 = false
|
||||
am__v_P_1 = :
|
||||
AM_V_GEN = $(am__v_GEN_@AM_V@)
|
||||
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
|
||||
am__v_GEN_0 = @echo " GEN " $@;
|
||||
am__v_GEN_1 =
|
||||
AM_V_at = $(am__v_at_@AM_V@)
|
||||
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
|
||||
am__v_at_0 = @
|
||||
am__v_at_1 =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
am__can_run_installinfo = \
|
||||
case $$AM_UPDATE_INFO_DIR in \
|
||||
n|no|NO) false;; \
|
||||
*) (install-info --version) >/dev/null 2>&1;; \
|
||||
esac
|
||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
||||
am__vpath_adj = case $$p in \
|
||||
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
@ -65,11 +136,20 @@ am__nobase_list = $(am__nobase_strip_setup); \
|
||||
am__base_list = \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
|
||||
am__uninstall_files_from_dir = { \
|
||||
test -z "$$files" \
|
||||
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|
||||
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
|
||||
$(am__cd) "$$dir" && rm -f $$files; }; \
|
||||
}
|
||||
am__installdirs = "$(DESTDIR)$(pkgdatadir)"
|
||||
DATA = $(dist_pkgdata_DATA)
|
||||
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
|
||||
am__DIST_COMMON = $(srcdir)/Makefile.in
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMTAR = @AMTAR@
|
||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
@ -140,6 +220,7 @@ pdfdir = @pdfdir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
runstatedir = @runstatedir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
@ -166,10 +247,9 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples/Makefile'; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign examples/Makefile'; \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu examples/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
$(AUTOMAKE) --foreign examples/Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
@ -189,8 +269,11 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||
$(am__aclocal_m4_deps):
|
||||
install-dist_pkgdataDATA: $(dist_pkgdata_DATA)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(pkgdatadir)" || $(MKDIR_P) "$(DESTDIR)$(pkgdatadir)"
|
||||
@list='$(dist_pkgdata_DATA)'; test -n "$(pkgdatadir)" || list=; \
|
||||
if test -n "$$list"; then \
|
||||
echo " $(MKDIR_P) '$(DESTDIR)$(pkgdatadir)'"; \
|
||||
$(MKDIR_P) "$(DESTDIR)$(pkgdatadir)" || exit 1; \
|
||||
fi; \
|
||||
for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
echo "$$d$$p"; \
|
||||
@ -204,14 +287,12 @@ uninstall-dist_pkgdataDATA:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(dist_pkgdata_DATA)'; test -n "$(pkgdatadir)" || list=; \
|
||||
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
|
||||
test -n "$$files" || exit 0; \
|
||||
echo " ( cd '$(DESTDIR)$(pkgdatadir)' && rm -f" $$files ")"; \
|
||||
cd "$(DESTDIR)$(pkgdatadir)" && rm -f $$files
|
||||
tags: TAGS
|
||||
TAGS:
|
||||
dir='$(DESTDIR)$(pkgdatadir)'; $(am__uninstall_files_from_dir)
|
||||
tags TAGS:
|
||||
|
||||
ctags: CTAGS
|
||||
CTAGS:
|
||||
ctags CTAGS:
|
||||
|
||||
cscope cscopelist:
|
||||
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@ -261,10 +342,15 @@ install-am: all-am
|
||||
|
||||
installcheck: installcheck-am
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
if test -z '$(STRIP)'; then \
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
install; \
|
||||
else \
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
|
||||
fi
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
@ -344,17 +430,19 @@ uninstall-am: uninstall-dist_pkgdataDATA
|
||||
|
||||
.MAKE: install-am install-strip
|
||||
|
||||
.PHONY: all all-am check check-am clean clean-generic distclean \
|
||||
distclean-generic distdir dvi dvi-am html html-am info info-am \
|
||||
install install-am install-data install-data-am \
|
||||
install-dist_pkgdataDATA install-dvi install-dvi-am \
|
||||
install-exec install-exec-am install-html install-html-am \
|
||||
install-info install-info-am install-man install-pdf \
|
||||
install-pdf-am install-ps install-ps-am install-strip \
|
||||
installcheck installcheck-am installdirs maintainer-clean \
|
||||
maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
|
||||
pdf-am ps ps-am uninstall uninstall-am \
|
||||
uninstall-dist_pkgdataDATA
|
||||
.PHONY: all all-am check check-am clean clean-generic cscopelist-am \
|
||||
ctags-am distclean distclean-generic distdir dvi dvi-am html \
|
||||
html-am info info-am install install-am install-data \
|
||||
install-data-am install-dist_pkgdataDATA install-dvi \
|
||||
install-dvi-am install-exec install-exec-am install-html \
|
||||
install-html-am install-info install-info-am install-man \
|
||||
install-pdf install-pdf-am install-ps install-ps-am \
|
||||
install-strip installcheck installcheck-am installdirs \
|
||||
maintainer-clean maintainer-clean-generic mostlyclean \
|
||||
mostlyclean-generic pdf pdf-am ps ps-am tags-am uninstall \
|
||||
uninstall-am uninstall-dist_pkgdataDATA
|
||||
|
||||
.PRECIOUS: Makefile
|
||||
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
|
@ -56,7 +56,7 @@
|
||||
|
||||
## when set to yes, encryptkey variable must be set below; if you want to use
|
||||
## two different keys for encryption and signing, you must also set the signkey
|
||||
## variable below.
|
||||
## variable (and probably signpassword) below.
|
||||
## default is set to no, for backwards compatibility with backupninja <= 0.5.
|
||||
##
|
||||
## Default:
|
||||
@ -77,14 +77,23 @@
|
||||
## Default:
|
||||
# signkey =
|
||||
|
||||
## password
|
||||
## NB: neither quote this, nor should it contain any quotes,
|
||||
## password used to unlock the encryption key
|
||||
## NB: neither quote this, nor should it contain any quotes,
|
||||
## an example setting would be:
|
||||
## password = a_very_complicated_passphrase
|
||||
##
|
||||
## Default:
|
||||
# password =
|
||||
|
||||
## password used to unlock the signature key, used only if
|
||||
## it differs from the encryption key
|
||||
## NB: neither quote this, nor should it contain any quotes,
|
||||
## an example setting would be:
|
||||
## signpassword = a_very_complicated_passphrase
|
||||
##
|
||||
## Default:
|
||||
# signpassword =
|
||||
|
||||
######################################################
|
||||
## source section
|
||||
## (where the files to be backed up are coming from)
|
||||
@ -180,6 +189,7 @@ exclude = /var/cache/backupninja/duplicity
|
||||
## desturl = rsync://user@other.host//var/backup/bla
|
||||
## desturl = s3+http://
|
||||
## desturl = ftp://myftpuser@ftp.example.org/remote/ftp/path
|
||||
## desturl = dpbx:///myserver
|
||||
## the default value of this configuration option is not set:
|
||||
##
|
||||
## Default:
|
||||
@ -204,14 +214,24 @@ exclude = /var/cache/backupninja/duplicity
|
||||
# cfapikey =
|
||||
# cfauthurl =
|
||||
|
||||
## Dropbox requires a valid authentication token. To obtain one, you will need
|
||||
## to create a Dropbox API application at https://www.dropbox.com/developers/apps/create.
|
||||
## See the "A note on Dropbox access" section of the Duplicity manpage for more
|
||||
## details: http://duplicity.nongnu.org/duplicity.1.html#sect12
|
||||
##
|
||||
## Default:
|
||||
# dropboxappkey =
|
||||
# dropboxappsecret =
|
||||
# dropboxaccesstoken =
|
||||
|
||||
## FTP password, needed for backups using desturl = ftp://...
|
||||
##
|
||||
## Default:
|
||||
# ftp_password =
|
||||
|
||||
## bandwith limit, in Kbit/s ; default is 0, i.e. no limit
|
||||
## bandwith limit, in KB/s ; default is 0, i.e. no limit
|
||||
## if using 'desturl' above, 'bandwidthlimit' must not be set
|
||||
## an example setting of 128 Kbit/s would be:
|
||||
## an example setting of 128 KB/s would be:
|
||||
## bandwidthlimit = 128
|
||||
##
|
||||
## Default:
|
||||
@ -226,8 +246,10 @@ exclude = /var/cache/backupninja/duplicity
|
||||
## sshoptions = -o IdentityFile=/root/.ssh/id_rsa_duplicity
|
||||
##
|
||||
## duplicity >= 0.6.17
|
||||
## ------------------
|
||||
## supports only "-o IdentityFile=..."
|
||||
## -------------------
|
||||
## supports only "-oIdentityFile=..." since duplicity >=0.6.17 uses paramiko,
|
||||
## a ssh python module.
|
||||
## warning: requires no space beetween "-o" and "IdentityFile=...".
|
||||
##
|
||||
## Default:
|
||||
# sshoptions =
|
||||
|
@ -53,6 +53,20 @@
|
||||
## Default:
|
||||
# ignore_version = no
|
||||
|
||||
## should backupninja write program output as Info messages rather than Debug
|
||||
## messages? (default: no)
|
||||
## Usually rdiff-backup output (for increment expiration and backup) is written
|
||||
## to output as Debug messages; this option causes backupninja to use Info-level
|
||||
## messages instead. Since backup reports include Info messages, this option is
|
||||
## useful to receive output like rdiff-backup session statistics in reports. In
|
||||
## addition, since rdiff-backup has a habit of using a zero exit code when
|
||||
## non-fatal errors are encountered (causing backupninja to conclude the backup
|
||||
## was entirely successful), this option is useful for inspecting non-fatal
|
||||
## filesystem and permission errors from rdiff-backup.
|
||||
##
|
||||
## Default:
|
||||
# output_as_info = no
|
||||
|
||||
######################################################
|
||||
## source section
|
||||
## (where the files to be backed up are coming from)
|
||||
|
@ -98,7 +98,7 @@ days = 7
|
||||
#port = 22
|
||||
|
||||
# remote user name (remote source only)
|
||||
#user =
|
||||
user = remoteuser
|
||||
|
||||
# when "yes", test the connection for a remote source before backup
|
||||
#testconnect = no
|
||||
|
@ -33,6 +33,15 @@
|
||||
#
|
||||
# (6) LVM metadata for every detected volume group, if "lvm = yes"
|
||||
#
|
||||
# (7) a copy of each device's MBR, if "mbr = yes". A master boot record
|
||||
# (MBR) is the 512-byte boot sector that is the first sector of a
|
||||
# partitioned data storage device of a hard disk. To restore the MBR
|
||||
# one could do something like: dd if=sda.mbr of=/dev/sda
|
||||
# (MAKE SURE YOU PASS THE CORRECT DEVICE AS of= !!!)
|
||||
# WARNING: Restoring the MBR with a mismatching partition table will
|
||||
# make your data unreadable and nearly impossible to recover
|
||||
#
|
||||
# (8) a copy of the BIOS, if "bios = yes" and flashrom is installed
|
||||
|
||||
# here are the defaults, commented out:
|
||||
|
||||
@ -65,6 +74,12 @@
|
||||
|
||||
# lvm = no
|
||||
|
||||
# mbr = no
|
||||
|
||||
# note: to backup your BIOS, you need the program 'flashrom' installed, and your
|
||||
# mainboard needs to be supported, see http://flashrom.org/Supported_hardware#Supported_mainboards
|
||||
# bios = no
|
||||
|
||||
# If vservers = yes in /etc/backupninja.conf then the following variables can
|
||||
# be used:
|
||||
# vsnames = all | <vserver1> <vserver2> ... (default = all)
|
||||
|
@ -1,9 +1,8 @@
|
||||
# Makefile.in generated by automake 1.11.1 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.15.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
|
||||
# Inc.
|
||||
# Copyright (C) 1994-2017 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.
|
||||
@ -16,6 +15,61 @@
|
||||
@SET_MAKE@
|
||||
|
||||
VPATH = @srcdir@
|
||||
am__is_gnu_make = { \
|
||||
if test -z '$(MAKELEVEL)'; then \
|
||||
false; \
|
||||
elif test -n '$(MAKE_HOST)'; then \
|
||||
true; \
|
||||
elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
|
||||
true; \
|
||||
else \
|
||||
false; \
|
||||
fi; \
|
||||
}
|
||||
am__make_running_with_option = \
|
||||
case $${target_option-} in \
|
||||
?) ;; \
|
||||
*) echo "am__make_running_with_option: internal error: invalid" \
|
||||
"target option '$${target_option-}' specified" >&2; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
has_opt=no; \
|
||||
sane_makeflags=$$MAKEFLAGS; \
|
||||
if $(am__is_gnu_make); then \
|
||||
sane_makeflags=$$MFLAGS; \
|
||||
else \
|
||||
case $$MAKEFLAGS in \
|
||||
*\\[\ \ ]*) \
|
||||
bs=\\; \
|
||||
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
|
||||
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
|
||||
esac; \
|
||||
fi; \
|
||||
skip_next=no; \
|
||||
strip_trailopt () \
|
||||
{ \
|
||||
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
|
||||
}; \
|
||||
for flg in $$sane_makeflags; do \
|
||||
test $$skip_next = yes && { skip_next=no; continue; }; \
|
||||
case $$flg in \
|
||||
*=*|--*) continue;; \
|
||||
-*I) strip_trailopt 'I'; skip_next=yes;; \
|
||||
-*I?*) strip_trailopt 'I';; \
|
||||
-*O) strip_trailopt 'O'; skip_next=yes;; \
|
||||
-*O?*) strip_trailopt 'O';; \
|
||||
-*l) strip_trailopt 'l'; skip_next=yes;; \
|
||||
-*l?*) strip_trailopt 'l';; \
|
||||
-[dEDm]) skip_next=yes;; \
|
||||
-[JT]) skip_next=yes;; \
|
||||
esac; \
|
||||
case $$flg in \
|
||||
*$$target_option*) has_opt=yes; break;; \
|
||||
esac; \
|
||||
done; \
|
||||
test $$has_opt = yes
|
||||
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
|
||||
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
@ -33,16 +87,33 @@ NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
subdir = handlers
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/configure.in
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
AM_V_P = $(am__v_P_@AM_V@)
|
||||
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
|
||||
am__v_P_0 = false
|
||||
am__v_P_1 = :
|
||||
AM_V_GEN = $(am__v_GEN_@AM_V@)
|
||||
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
|
||||
am__v_GEN_0 = @echo " GEN " $@;
|
||||
am__v_GEN_1 =
|
||||
AM_V_at = $(am__v_at_@AM_V@)
|
||||
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
|
||||
am__v_at_0 = @
|
||||
am__v_at_1 =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
am__can_run_installinfo = \
|
||||
case $$AM_UPDATE_INFO_DIR in \
|
||||
n|no|NO) false;; \
|
||||
*) (install-info --version) >/dev/null 2>&1;; \
|
||||
esac
|
||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
||||
am__vpath_adj = case $$p in \
|
||||
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
@ -64,11 +135,20 @@ am__nobase_list = $(am__nobase_strip_setup); \
|
||||
am__base_list = \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
|
||||
am__uninstall_files_from_dir = { \
|
||||
test -z "$$files" \
|
||||
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|
||||
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
|
||||
$(am__cd) "$$dir" && rm -f $$files; }; \
|
||||
}
|
||||
am__installdirs = "$(DESTDIR)$(pkgdatadir)"
|
||||
DATA = $(pkgdata_DATA)
|
||||
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
|
||||
am__DIST_COMMON = $(srcdir)/Makefile.in
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMTAR = @AMTAR@
|
||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
@ -139,6 +219,7 @@ pdfdir = @pdfdir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
runstatedir = @runstatedir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
@ -175,10 +256,9 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu handlers/Makefile'; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign handlers/Makefile'; \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu handlers/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
$(AUTOMAKE) --foreign handlers/Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
@ -198,8 +278,11 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||
$(am__aclocal_m4_deps):
|
||||
install-pkgdataDATA: $(pkgdata_DATA)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(pkgdatadir)" || $(MKDIR_P) "$(DESTDIR)$(pkgdatadir)"
|
||||
@list='$(pkgdata_DATA)'; test -n "$(pkgdatadir)" || list=; \
|
||||
if test -n "$$list"; then \
|
||||
echo " $(MKDIR_P) '$(DESTDIR)$(pkgdatadir)'"; \
|
||||
$(MKDIR_P) "$(DESTDIR)$(pkgdatadir)" || exit 1; \
|
||||
fi; \
|
||||
for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
echo "$$d$$p"; \
|
||||
@ -213,14 +296,12 @@ uninstall-pkgdataDATA:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(pkgdata_DATA)'; test -n "$(pkgdatadir)" || list=; \
|
||||
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
|
||||
test -n "$$files" || exit 0; \
|
||||
echo " ( cd '$(DESTDIR)$(pkgdatadir)' && rm -f" $$files ")"; \
|
||||
cd "$(DESTDIR)$(pkgdatadir)" && rm -f $$files
|
||||
tags: TAGS
|
||||
TAGS:
|
||||
dir='$(DESTDIR)$(pkgdatadir)'; $(am__uninstall_files_from_dir)
|
||||
tags TAGS:
|
||||
|
||||
ctags: CTAGS
|
||||
CTAGS:
|
||||
ctags CTAGS:
|
||||
|
||||
cscope cscopelist:
|
||||
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@ -270,10 +351,15 @@ install-am: all-am
|
||||
|
||||
installcheck: installcheck-am
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
if test -z '$(STRIP)'; then \
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
install; \
|
||||
else \
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
|
||||
fi
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
@ -354,16 +440,19 @@ uninstall-am: uninstall-pkgdataDATA
|
||||
|
||||
.MAKE: install-am install-strip
|
||||
|
||||
.PHONY: all all-am check check-am clean clean-generic distclean \
|
||||
distclean-generic distdir dvi dvi-am html html-am info info-am \
|
||||
install install-am install-data install-data-am install-dvi \
|
||||
install-dvi-am install-exec install-exec-am install-html \
|
||||
install-html-am install-info install-info-am install-man \
|
||||
install-pdf install-pdf-am install-pkgdataDATA install-ps \
|
||||
install-ps-am install-strip installcheck installcheck-am \
|
||||
installdirs maintainer-clean maintainer-clean-generic \
|
||||
mostlyclean mostlyclean-generic pdf pdf-am ps ps-am uninstall \
|
||||
uninstall-am uninstall-pkgdataDATA
|
||||
.PHONY: all all-am check check-am clean clean-generic cscopelist-am \
|
||||
ctags-am distclean distclean-generic distdir dvi dvi-am html \
|
||||
html-am info info-am install install-am install-data \
|
||||
install-data-am install-dvi install-dvi-am install-exec \
|
||||
install-exec-am install-html install-html-am install-info \
|
||||
install-info-am install-man install-pdf install-pdf-am \
|
||||
install-pkgdataDATA install-ps install-ps-am install-strip \
|
||||
installcheck installcheck-am installdirs maintainer-clean \
|
||||
maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
|
||||
pdf-am ps ps-am tags-am uninstall uninstall-am \
|
||||
uninstall-pkgdataDATA
|
||||
|
||||
.PRECIOUS: Makefile
|
||||
|
||||
|
||||
dup: $(srcdir)/dup.in
|
||||
|
@ -193,7 +193,7 @@ do_dup_gpg_signkey() {
|
||||
}
|
||||
|
||||
do_dup_gpg_passphrase() {
|
||||
local question="Enter the passphrase needed to unlock the GnuPG key:"
|
||||
local question="Enter the passphrase needed to unlock the GnuPG encryption key:"
|
||||
REPLY=
|
||||
while [ -z "$REPLY" -o -z "$dup_gpg_password" ]; do
|
||||
passwordBox "$dup_title - GnuPG" "$question"
|
||||
@ -202,6 +202,16 @@ do_dup_gpg_passphrase() {
|
||||
done
|
||||
}
|
||||
|
||||
do_dup_gpg_sign_passphrase() {
|
||||
local question="Enter the passphrase needed to unlock the GnuPG signature key:"
|
||||
REPLY=
|
||||
while [ -z "$REPLY" -o -z "$dup_gpg_signpassword" ]; do
|
||||
passwordBox "$dup_title - GnuPG" "$question"
|
||||
[ $? = 0 ] || return 1
|
||||
dup_gpg_signpassword="$REPLY"
|
||||
done
|
||||
}
|
||||
|
||||
do_dup_gpg() {
|
||||
|
||||
# symmetric or public key encryption ?
|
||||
@ -226,6 +236,9 @@ do_dup_gpg() {
|
||||
# a passphrase is alway needed
|
||||
do_dup_gpg_passphrase
|
||||
|
||||
# If the signature key differs, we also need a passphrase for it
|
||||
[ -n "$dup_gpg_signkey" -a -n "$dup_gpg_encryptkey" -a "$dup_gpg_signkey" != "$dup_gpg_encryptkey" ] && do_dup_gpg_sign_passphrase
|
||||
|
||||
_gpg_done="(DONE)"
|
||||
setDefault adv
|
||||
# TODO: replace the above line by the following when do_dup_conn is written
|
||||
@ -329,10 +342,19 @@ encryptkey = $dup_gpg_encryptkey
|
||||
# if not set, encryptkey will be used.
|
||||
signkey = $dup_gpg_signkey
|
||||
|
||||
# password
|
||||
# NB: neither quote this, nor should it include any quotes
|
||||
## password used to unlock the encryption key
|
||||
## NB: neither quote this, nor should it contain any quotes,
|
||||
## an example setting would be:
|
||||
## password = a_very_complicated_passphrase
|
||||
password = $dup_gpg_password
|
||||
|
||||
## password used to unlock the signature key, used only if
|
||||
## it differs from the encryption key
|
||||
## NB: neither quote this, nor should it contain any quotes,
|
||||
## an example setting would be:
|
||||
## signpassword = a_very_complicated_passphrase
|
||||
signpassword = $dup_gpg_signpassword
|
||||
|
||||
######################################################
|
||||
## source section
|
||||
## (where the files to be backed up are coming from)
|
||||
@ -448,6 +470,7 @@ keepincroffulls = $dup_keepincroffulls
|
||||
#desturl = rsync://user@other.host//var/backup/bla
|
||||
#desturl = s3+http://your_bucket
|
||||
#desturl = ftp://myftpuser@ftp.example.org/remote/ftp/path
|
||||
#desturl = dpbx:///myserver
|
||||
|
||||
# Amazon Web Services Access Key ID and Secret Access Key, needed for backups
|
||||
# to S3 buckets.
|
||||
@ -464,12 +487,22 @@ keepincroffulls = $dup_keepincroffulls
|
||||
# cfapikey =
|
||||
# cfauthurl =
|
||||
|
||||
## Dropbox requires a valid authentication token. To obtain one, you will need
|
||||
## to create a Dropbox API application at https://www.dropbox.com/developers/apps/create.
|
||||
## See the "A note on Dropbox access" section of the Duplicity manpage for more
|
||||
## details: http://duplicity.nongnu.org/duplicity.1.html#sect12
|
||||
##
|
||||
## Default:
|
||||
# dropboxappkey =
|
||||
# dropboxappsecret =
|
||||
# dropboxaccesstoken =
|
||||
|
||||
# FTP password, needed for backups using desturl = ftp://...
|
||||
#ftp_password =
|
||||
|
||||
# bandwith limit, in kbit/s ; default is 0, i.e. no limit
|
||||
# bandwith limit, in KB/s ; default is 0, i.e. no limit
|
||||
# if using 'desturl' above, 'bandwidthlimit' must not be set
|
||||
# an example setting of 128 Kbit/s would be:
|
||||
# an example setting of 128 KB/s would be:
|
||||
#bandwidthlimit = 128
|
||||
bandwidthlimit = $dup_bandwidth
|
||||
|
||||
@ -482,8 +515,10 @@ bandwidthlimit = $dup_bandwidth
|
||||
## sshoptions = -o IdentityFile=/root/.ssh/id_rsa_duplicity
|
||||
##
|
||||
## duplicity >= 0.6.17
|
||||
## ------------------
|
||||
## supports only "-o IdentityFile=..."
|
||||
## -------------------
|
||||
## supports only "-oIdentityFile=..." since duplicity >=0.6.17 uses paramiko,
|
||||
## a ssh python module.
|
||||
## warning: requires no space beetween "-o" and "IdentityFile=...".
|
||||
##
|
||||
## Default:
|
||||
# sshoptions =
|
||||
@ -582,6 +617,7 @@ dup_wizard() {
|
||||
dup_gpg_onekeypair="yes"
|
||||
dup_gpg_signkey=""
|
||||
dup_gpg_password=""
|
||||
dup_gpg_signpassword=""
|
||||
dup_nicelevel=19
|
||||
dup_testconnect=yes
|
||||
dup_options=
|
||||
|
@ -12,6 +12,7 @@ getconf tmpdir
|
||||
|
||||
setsection gpg
|
||||
getconf password
|
||||
getconf signpassword
|
||||
getconf sign no
|
||||
getconf encryptkey
|
||||
getconf signkey
|
||||
@ -33,6 +34,9 @@ getconf awssecretaccesskey
|
||||
getconf cfusername
|
||||
getconf cfapikey
|
||||
getconf cfauthurl
|
||||
getconf dropboxappkey
|
||||
getconf dropboxappsecret
|
||||
getconf dropboxaccesstoken
|
||||
getconf ftp_password
|
||||
getconf sshoptions
|
||||
getconf bandwidthlimit 0
|
||||
@ -46,15 +50,33 @@ destdir=${destdir%/}
|
||||
[ -n "$desturl" -o -n "$destdir" ] || fatal "The destination directory (destdir) must be set when desturl is not used."
|
||||
[ -n "$include" -o -n "$vsinclude" ] || fatal "No source includes specified"
|
||||
[ -n "$password" ] || fatal "The password option must be set."
|
||||
[ -n "$signpassword" -a -n "$signkey" -a -n "$encryptkey" -a "$signkey" != "$encryptkey" ] || fatal "The signpassword option must be set because signkey is different from encryptkey."
|
||||
if [ "`echo $desturl | @AWK@ -F ':' '{print $1}'`" == "s3+http" ]; then
|
||||
[ -n "$awsaccesskeyid" -a -n "$awssecretaccesskey" ] || fatal "AWS access keys must be set for S3 backups."
|
||||
fi
|
||||
if [ "`echo $desturl | @AWK@ -F ':' '{print $1}'`" == "cf+http" ]; then
|
||||
[ -n "$cfusername" -a -n "$cfapikey" ] || fatal "Cloudfiles access keys must be set for S3 backups."
|
||||
fi
|
||||
if [ "`echo $desturl | @AWK@ -F ':' '{print $1}'`" == "dpbx" ]; then
|
||||
[ -n "$dropboxappkey" -a -n "$dropboxappsecret" ] || fatal "Dropbox app ID and secret must be set for Dropbox backups."
|
||||
|
||||
if [ ! -n "$dropboxaccesstoken" ]; then
|
||||
error "To obtain an access token for Dropbox, you will need to manually run this command:"
|
||||
error "DPBX_APP_KEY=$dropboxappkey DPBX_APP_SECRET=$dropboxappsecret duplicity list-current-files $desturl"
|
||||
fatal "Dropbox access token must be set"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "`echo $desturl | @AWK@ -F ':' '{print $1}'`" == "ftp" ]; then
|
||||
[ -n "$ftp_password" ] || fatal "ftp_password must be set for FTP backups."
|
||||
fi
|
||||
if [ "`echo $desturl | @AWK@ -F ':' '{print $1}'`" == "file" ]; then
|
||||
if [ ! -e "`echo $desturl | @AWK@ -F '://' '{print $2}'`" ]; then
|
||||
fatal "The destination directory ($desturl) does not exist."
|
||||
elif [ ! -d "`echo $desturl | @AWK@ -F '://' '{print $2}'`" ]; then
|
||||
fatal "The destination ($desturl) is not a directory."
|
||||
fi
|
||||
fi
|
||||
|
||||
### VServers
|
||||
# If vservers are configured, check that the ones listed in $vsnames do exist.
|
||||
@ -95,7 +117,7 @@ fi
|
||||
### COMMAND-LINE MANGLING ######################################################
|
||||
|
||||
### initialize $execstr*
|
||||
execstr_precmd=
|
||||
execstr_precmd='LC_ALL=C'
|
||||
execstr_command=
|
||||
execstr_options="$options --no-print-statistics"
|
||||
execstr_source=
|
||||
@ -110,16 +132,21 @@ fi
|
||||
|
||||
### duplicity version (ignore anything else than 0-9 and ".")
|
||||
duplicity_version="`duplicity --version | @AWK@ '{print $2}' | @SED@ 's/[^.[:digit:]]//g'`"
|
||||
duplicity_major="`echo $duplicity_version | @AWK@ -F '.' '{print $1}'`"
|
||||
duplicity_minor="`echo $duplicity_version | @AWK@ -F '.' '{print $2}'`"
|
||||
duplicity_sub="`echo $duplicity_version | @AWK@ -F '.' '{print $3}'`"
|
||||
|
||||
### ssh/scp/sftp options (duplicity < 0.4.3 is unsupported)
|
||||
## duplicity >= 0.6.17 : paramiko backend
|
||||
if [ "$duplicity_major" -ge 0 -a "$duplicity_minor" -ge 6 -a "$duplicity_sub" -ge 17 ]; then
|
||||
if version_ge "$duplicity_version" '0.6.17'; then
|
||||
if [ -n "$sshoptions" ]; then
|
||||
echo "$sshoptions" | grep -Eqs '^-o[[:space:]]*IdentityFile=[^ ]+$' \
|
||||
|| warning 'duplicity >= 0.6.17 only supports the IdentityFile SSH option'
|
||||
if echo "$sshoptions" | grep -Eqs '^-o[[:space:]]*IdentityFile=[^ ]+$' ; then
|
||||
spaceless_sshoptions="$(echo -n "$sshoptions" | @SED@ 's/^-o[[:space:]]*/-o/')"
|
||||
if [ "$spaceless_sshoptions" != "$sshoptions" ] ; then
|
||||
warning 'Since duplicity >= 0.6.17, sshoptions option requires no space between -o and IdentityFile.'
|
||||
warning 'The bad space has been ignored. Update your duplicity handler config file to suppress this message.'
|
||||
sshoptions="$spaceless_sshoptions"
|
||||
fi
|
||||
else
|
||||
warning 'duplicity >= 0.6.17 only supports the IdentityFile SSH option'
|
||||
fi
|
||||
fi
|
||||
execstr_options="${execstr_options} --ssh-options '$sshoptions'"
|
||||
if [ "$bandwidthlimit" != 0 ]; then
|
||||
@ -176,7 +203,9 @@ else
|
||||
fi
|
||||
|
||||
### Cleanup options
|
||||
execstr_options="${execstr_options} --extra-clean"
|
||||
if ! version_ge "$duplicity_version" '0.6.20'; then
|
||||
execstr_options="${execstr_options} --extra-clean"
|
||||
fi
|
||||
|
||||
### Temporary directory
|
||||
if [ -n "$tmpdir" ]; then
|
||||
@ -263,12 +292,20 @@ if [ "`echo $desturl | @AWK@ -F ':' '{print $1}'`" == "cf+http" ]; then
|
||||
fi
|
||||
fi
|
||||
|
||||
### If desturl is a Dropbox URL, export the relevant environment variables
|
||||
if [ "`echo $desturl | @AWK@ -F ':' '{print $1}'`" == "dpbx" ]; then
|
||||
export DPBX_APP_KEY="$dropboxappkey"
|
||||
export DPBX_APP_SECRET="$dropboxappsecret"
|
||||
export DPBX_ACCESS_TOKEN="$dropboxaccesstoken"
|
||||
fi
|
||||
|
||||
### Cleanup commands (duplicity >= 0.4.4)
|
||||
|
||||
# cleanup
|
||||
debug "$execstr_precmd duplicity cleanup --force $execstr_options $execstr_serverpart"
|
||||
if [ ! $test ]; then
|
||||
export PASSPHRASE=$password
|
||||
export SIGN_PASSPHRASE=$signpassword
|
||||
export FTP_PASSWORD=$ftp_password
|
||||
output=`nice -n $nicelevel \
|
||||
su -c \
|
||||
@ -288,6 +325,7 @@ if [ "$keep" != "yes" ]; then
|
||||
debug "$execstr_precmd duplicity remove-older-than $keep --force $execstr_options $execstr_serverpart"
|
||||
if [ ! $test ]; then
|
||||
export PASSPHRASE=$password
|
||||
export SIGN_PASSPHRASE=$signpassword
|
||||
export FTP_PASSWORD=$ftp_password
|
||||
output=`nice -n $nicelevel \
|
||||
su -c \
|
||||
@ -306,10 +344,11 @@ fi
|
||||
# remove-all-inc-of-but-n-full : remove increments of older full backups : only keep latest ones
|
||||
if [ "$keep" != "yes" ]; then
|
||||
if [ "$keepincroffulls" != "all" ]; then
|
||||
if [ "$duplicity_major" -ge 0 -a "$duplicity_minor" -ge 6 -a "$duplicity_sub" -ge 10 ]; then
|
||||
if version_ge "$duplicity_version" '0.6.10'; then
|
||||
debug "$execstr_precmd duplicity remove-all-inc-of-but-n-full $keepincroffulls --force $execstr_options $execstr_serverpart"
|
||||
if [ ! $test ]; then
|
||||
export PASSPHRASE=$password
|
||||
export SIGN_PASSPHRASE=$signpassword
|
||||
export FTP_PASSWORD=$ftp_password
|
||||
output=`nice -n $nicelevel \
|
||||
su -c \
|
||||
@ -332,6 +371,7 @@ debug "$execstr_precmd duplicity $execstr_command $execstr_options $execstr_sour
|
||||
if [ ! $test ]; then
|
||||
outputfile=`maketemp backupout`
|
||||
export PASSPHRASE=$password
|
||||
export SIGN_PASSPHRASE=$signpassword
|
||||
export FTP_PASSWORD=$ftp_password
|
||||
output=`nice -n $nicelevel \
|
||||
su -c \
|
||||
|
@ -238,14 +238,14 @@ then
|
||||
then
|
||||
if [ $usevserver = yes ]
|
||||
then
|
||||
debug 'set -o pipefail ; echo show databases | $VSERVER $vsname exec su $user -c \"$MYSQL $defaultsfile\" | grep -v Database'
|
||||
databases=`set -o pipefail ; echo 'show databases' | $VSERVER $vsname exec su $user -c "$MYSQL $defaultsfile" | grep -v Database`
|
||||
debug 'set -o pipefail ; echo show databases | $VSERVER $vsname exec su $user -c \"$MYSQL $defaultsfile\" | grep -v Database | grep -v '"'"'^\(information\|performance\)_schema$'"'"
|
||||
databases=`set -o pipefail ; echo 'show databases' | $VSERVER $vsname exec su $user -c "$MYSQL $defaultsfile" | grep -v Database | grep -v '^\(information\|performance\)_schema$'`
|
||||
if [ $? -ne 0 ]
|
||||
then
|
||||
fatal "Authentication problem, maybe user/password is wrong or mysqld is not running?"
|
||||
fi
|
||||
else
|
||||
databases=$(set -o pipefail ; su $user -c "$MYSQL $defaultsfile -N -B -e 'show databases'" | sed 's/|//g;/\+----/d')
|
||||
databases=$(set -o pipefail ; su $user -c "$MYSQL $defaultsfile -N -B -e 'show databases'" | sed 's/|//g;/\+----/d;/^\(information\|performance\)_schema$/d')
|
||||
if [ $? -ne 0 ]
|
||||
then
|
||||
fatal "Authentication problem, maybe user/password is wrong or mysqld is not running?"
|
||||
@ -257,15 +257,6 @@ then
|
||||
do
|
||||
DUMP_BASE="$MYSQLDUMP $defaultsfile $sqldumpoptions"
|
||||
|
||||
case "$db" in
|
||||
information_schema)
|
||||
DUMP_BASE="${DUMP_BASE} --skip-lock-tables"
|
||||
;;
|
||||
performance_schema)
|
||||
DUMP_BASE="${DUMP_BASE} --skip-lock-tables --skip-events"
|
||||
;;
|
||||
esac
|
||||
|
||||
# Dumping structure and data
|
||||
DUMP="$DUMP_BASE $ignore $db"
|
||||
|
||||
@ -276,7 +267,7 @@ then
|
||||
DUMP_STRUCT="$DUMP_BASE --no-data $db"
|
||||
for qualified_table in $nodata
|
||||
do
|
||||
table=$( expr match "$qualified_table" "$db\.\([^\w]*\)" )
|
||||
table=$( expr match "$qualified_table" "$db\.\(.\+\)" )
|
||||
DUMP_STRUCT="$DUMP_STRUCT $table"
|
||||
done
|
||||
DUMP="( $DUMP; $DUMP_STRUCT )"
|
||||
@ -302,7 +293,7 @@ then
|
||||
if [ "$compress" == "yes" ]; then
|
||||
execstr="$DUMP | $GZIP $GZIP_OPTS > '$dumpdir/${db}.sql.gz'"
|
||||
else
|
||||
execstr="$DUMP -r '$dumpdir/${db}.sql'"
|
||||
execstr="$DUMP > '$dumpdir/${db}.sql'"
|
||||
fi
|
||||
fi
|
||||
debug "su $user -c \"$execstr\""
|
||||
|
@ -124,7 +124,7 @@ do_rdiff_dest() {
|
||||
REPLY=
|
||||
while [ -z "$REPLY" -o -z "$rdiff_directory" -o -z "$rdiff_host" -o -z "$rdiff_user" ]
|
||||
do
|
||||
formBegin "$rdiff_title - destination: last three items are required"
|
||||
formBegin "$rdiff_title - destination"
|
||||
formItem "keep" "$rdiff_keep"
|
||||
formItem "dest_directory" "$rdiff_directory"
|
||||
formItem "dest_host" "$rdiff_host"
|
||||
@ -282,12 +282,33 @@ do_rdiff_con() {
|
||||
setDefault finish
|
||||
}
|
||||
|
||||
do_rdiff_adv() {
|
||||
booleanBox "$rdiff_title" "Should backupninja write program output as Info messages rather than Debug messages?" no
|
||||
if [ $? = 0 ]; then
|
||||
rdiff_output_as_info=yes
|
||||
else
|
||||
rdiff_output_as_info=no
|
||||
fi
|
||||
}
|
||||
|
||||
do_rdiff_finish() {
|
||||
get_next_filename $configdirectory/90.rdiff
|
||||
cat > $next_filename <<EOF
|
||||
# options = --force
|
||||
# when = everyday at 02
|
||||
|
||||
## should backupninja write program output as Info messages rather than Debug
|
||||
## messages? (default: no)
|
||||
## Usually rdiff-backup output (for increment expiration and backup) is written
|
||||
## to output as Debug messages; this option causes backupninja to use Info-level
|
||||
## messages instead. Since backup reports include Info messages, this option is
|
||||
## useful to receive output like rdiff-backup session statistics in reports. In
|
||||
## addition, since rdiff-backup has a habit of using a zero exit code when
|
||||
## non-fatal errors are encountered (causing backupninja to conclude the backup
|
||||
## was entirely successful), this option is useful for inspecting non-fatal
|
||||
## filesystem and permission errors from rdiff-backup.
|
||||
output_as_info = $rdiff_output_as_info
|
||||
|
||||
[source]
|
||||
type = local
|
||||
keep = $rdiff_keep
|
||||
@ -378,6 +399,7 @@ rdiff_main_menu() {
|
||||
src "$srcitem" \
|
||||
dest "$destitem" \
|
||||
conn "$conitem" \
|
||||
adv "$advitem" \
|
||||
finish "finish and create config file"
|
||||
[ $? = 0 ] || return
|
||||
result="$REPLY"
|
||||
@ -411,6 +433,7 @@ rdiff_wizard() {
|
||||
rdiff_type=remote
|
||||
rdiff_user=
|
||||
rdiff_host=
|
||||
rdiff_output_as_info="no"
|
||||
|
||||
# Global variables whose '*' shall not be expanded
|
||||
set -o noglob
|
||||
|
@ -85,6 +85,7 @@ getconf testconnect yes
|
||||
getconf nicelevel 0
|
||||
getconf bwlimit
|
||||
getconf ignore_version no
|
||||
getconf output_as_info no
|
||||
|
||||
setsection source
|
||||
getconf type; sourcetype=$type
|
||||
@ -182,7 +183,11 @@ if [ "$keep" != yes ]; then
|
||||
if [ $test = 0 ]; then
|
||||
output="`su -c "$removestr" 2>&1`"
|
||||
if [ $? = 0 ]; then
|
||||
debug $output
|
||||
if [ "$output_as_info" == "yes" ]; then
|
||||
info $output
|
||||
else
|
||||
debug $output
|
||||
fi
|
||||
info "Removing backups older than $keep days succeeded."
|
||||
else
|
||||
warning $output
|
||||
@ -268,7 +273,11 @@ debug "$execstr"
|
||||
if [ $test = 0 ]; then
|
||||
output=`nice -n $nicelevel su -c "$execstr" 2>&1`
|
||||
if [ $? = 0 ]; then
|
||||
debug $output
|
||||
if [ "$output_as_info" == "yes" ]; then
|
||||
info $output
|
||||
else
|
||||
debug $output
|
||||
fi
|
||||
info "Successfully finished backing up source $label"
|
||||
else
|
||||
error $output
|
||||
|
@ -284,6 +284,10 @@ function eval_config {
|
||||
done
|
||||
IFS=$SAVEIFS
|
||||
set +o noglob
|
||||
|
||||
# Make sure we'll run bash at the destination
|
||||
ssh_cmd="$ssh_cmd /bin/bash"
|
||||
|
||||
}
|
||||
|
||||
function rotate_short {
|
||||
@ -455,6 +459,8 @@ function rotate_long {
|
||||
debug "daily.$max --> weekly.1"
|
||||
$nice mv $backuproot/daily.$max $backuproot/weekly.1
|
||||
mkdir -p $backuproot/metadata/weekly.1
|
||||
# Update increment folder date and setup metadata
|
||||
$touch $backuproot/weekly.1
|
||||
date +%c%n%s > $backuproot/metadata/weekly.1/rotated
|
||||
#if [ -f $backuproot/metadata/daily.$max/created ]; then
|
||||
# $nice mv $backuproot/metadata/daily.$max/created $backuproot/metadata/weekly.1/
|
||||
@ -466,6 +472,8 @@ function rotate_long {
|
||||
debug "weekly.$max --> monthly.1"
|
||||
$nice mv $backuproot/weekly.$max $backuproot/monthly.1
|
||||
mkdir -p $backuproot/metadata/monthly.1
|
||||
# Update increment folder date and setup metadata
|
||||
$touch $backuproot/monthly.1
|
||||
date +%c%n%s > $backuproot/metadata/monthly.1/rotated
|
||||
#if [ -f $backuproot/metadata/weekly.$max/created ]; then
|
||||
# $nice mv $backuproot/metadata/weekly.$max/created $backuproot/metadata/weekly.1/
|
||||
@ -578,6 +586,8 @@ function rotate_long_remote {
|
||||
echo "Debug: daily.\$max --> weekly.1"
|
||||
$nice mv $backuproot/daily.\$max $backuproot/weekly.1
|
||||
mkdir -p $backuproot/metadata/weekly.1
|
||||
# Update increment folder date and setup metadata
|
||||
$touch $backuproot/weekly.1
|
||||
date +%c%n%s > $backuproot/metadata/weekly.1/rotated
|
||||
#if [ -f $backuproot/metadata/daily.\$max/created ]; then
|
||||
# $nice mv $backuproot/metadata/daily.\$max/created $backuproot/metadata/weekly.1/
|
||||
@ -589,6 +599,8 @@ function rotate_long_remote {
|
||||
echo "Debug: weekly.\$max --> monthly.1"
|
||||
$nice mv $backuproot/weekly.\$max $backuproot/monthly.1
|
||||
mkdir -p $backuproot/metadata/monthly.1
|
||||
# Update increment folder date and setup metadata
|
||||
$touch $backuproot/monthly.1
|
||||
date +%c%n%s > $backuproot/metadata/monthly.1/rotated
|
||||
#if [ -f $backuproot/metadata/weekly.\$max/created ]; then
|
||||
# $nice mv $backuproot/metadata/weekly.\$max/created $backuproot/metadata/weekly.1/
|
||||
@ -740,16 +752,19 @@ function prepare_storage {
|
||||
if [ "$format" == "short" ]; then
|
||||
|
||||
suffix="$section.0"
|
||||
info "Rotating $backupdir/$SECTION..."
|
||||
echo "Rotating $backupdir/$SECTION..." >> $log
|
||||
|
||||
if [ "$dest" == "remote" ]; then
|
||||
rotate_short_remote $backupdir/$SECTION/$section $keep
|
||||
else
|
||||
rotate_short $backupdir/$SECTION/$section $keep
|
||||
if [ ! -d "$backupdir/$SECTION/$section.0" ]; then
|
||||
mkdir -p $backupdir/$SECTION/$section.0
|
||||
fi
|
||||
if [ ! "$test" ]; then
|
||||
info "Rotating $backupdir/$SECTION..."
|
||||
echo "Rotating $backupdir/$SECTION..." >> $log
|
||||
|
||||
if [ "$dest" == "remote" ]; then
|
||||
rotate_short_remote $backupdir/$SECTION/$section $keep
|
||||
else
|
||||
rotate_short $backupdir/$SECTION/$section $keep
|
||||
if [ ! -d "$backupdir/$SECTION/$section.0" ]; then
|
||||
mkdir -p $backupdir/$SECTION/$section.0
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
elif [ "$format" == "long" ]; then
|
||||
@ -765,15 +780,18 @@ function prepare_storage {
|
||||
fi
|
||||
|
||||
suffix="$btype.1"
|
||||
info "Rotating $backupdir/$SECTION/..."
|
||||
echo "Rotating $backupdir/$SECTION/..." >> $log
|
||||
|
||||
if [ "$dest" == "remote" ]; then
|
||||
rotate_long_remote $backupdir/$SECTION
|
||||
setup_long_dirs_remote $backupdir/$SECTION $btype
|
||||
else
|
||||
rotate_long $backupdir/$SECTION
|
||||
setup_long_dirs $backupdir/$SECTION $btype
|
||||
if [ ! "$test" ]; then
|
||||
info "Rotating $backupdir/$SECTION/..."
|
||||
echo "Rotating $backupdir/$SECTION/..." >> $log
|
||||
|
||||
if [ "$dest" == "remote" ]; then
|
||||
rotate_long_remote $backupdir/$SECTION
|
||||
setup_long_dirs_remote $backupdir/$SECTION $btype
|
||||
else
|
||||
rotate_long $backupdir/$SECTION
|
||||
setup_long_dirs $backupdir/$SECTION $btype
|
||||
fi
|
||||
fi
|
||||
|
||||
elif [ "$format" == "mirror" ]; then
|
||||
@ -908,6 +926,10 @@ function set_filelist {
|
||||
|
||||
function set_rsync_options {
|
||||
|
||||
if [ "$test" ]; then
|
||||
rsync_options="$rsync_options --dry-run"
|
||||
fi
|
||||
|
||||
if [ "$numericids" != "0" ]; then
|
||||
rsync_options="$rsync_options --numeric-ids"
|
||||
fi
|
||||
@ -1136,9 +1158,10 @@ for SECTION in $include; do
|
||||
set_dest
|
||||
|
||||
info "Syncing $SECTION on $dest_path..."
|
||||
debug $nice $rsync ${rsync_options[@]} $filelist_flag $excludes $batch_option $orig $dest_path
|
||||
command="$rsync ${rsync_options[@]} --delete-excluded $filelist_flag $excludes $batch_option $orig $dest_path"
|
||||
debug $nice su -c "$command"
|
||||
set_pipefail
|
||||
$nice su -c "$rsync ${rsync_options[@]} --delete-excluded $filelist_flag $excludes $batch_option $orig $dest_path" | tee -a $log
|
||||
$nice su -c "$command" | tee -a $log
|
||||
|
||||
check_rsync_exit_status $?
|
||||
restore_pipefail
|
||||
|
@ -20,14 +20,18 @@ sys_wizard() {
|
||||
hardware="hardware = no"
|
||||
luksheaders="luksheaders = no"
|
||||
lvm="lvm = no"
|
||||
mbr="mbr = no"
|
||||
bios="bios = no"
|
||||
for opt in $result; do
|
||||
case $opt in
|
||||
'"packages"') packages="packages = yes";;
|
||||
'"partitions"') partitions="partitions = yes";;
|
||||
'"sfdisk"') sfdisk="dosfdisk = yes";;
|
||||
'"hardware"') hardware="hardware = yes";;
|
||||
'"luksheaders"') luksheaders="luksheaders = yes";;
|
||||
'"lvm"') lvm="lvm = yes";;
|
||||
'packages') packages="packages = yes";;
|
||||
'partitions') partitions="partitions = yes";;
|
||||
'sfdisk') sfdisk="dosfdisk = yes";;
|
||||
'hardware') hardware="hardware = yes";;
|
||||
'luksheaders') luksheaders="luksheaders = yes";;
|
||||
'lvm') lvm="lvm = yes";;
|
||||
'mbr') mbr="mbr = yes";;
|
||||
'bios') bios="bios = yes";;
|
||||
esac
|
||||
done
|
||||
get_next_filename $configdirectory/10.sys
|
||||
@ -38,6 +42,8 @@ $sfdisk
|
||||
$hardware
|
||||
$luksheaders
|
||||
$lvm
|
||||
$mbr
|
||||
$bios
|
||||
|
||||
# packagesfile = /var/backups/dpkg-selections.txt
|
||||
# selectionsfile = /var/backups/debconfsel.txt
|
||||
@ -51,4 +57,3 @@ $lvm
|
||||
EOF
|
||||
chmod 600 $next_filename
|
||||
}
|
||||
|
||||
|
147
handlers/sys.in
147
handlers/sys.in
@ -25,14 +25,23 @@
|
||||
# (4) hardware information.
|
||||
# write to a text file the important things which hwinfo can gleen.
|
||||
#
|
||||
# (5) the Luks header of every Luks block device, if option luksheaders
|
||||
# (5) the LUKS header of every LUKS block device, if option luksheaders
|
||||
# is enabled.
|
||||
# in case you (have to) scramble such a Luks header (for some time),
|
||||
# in case you (have to) scramble such a LUKS header (for some time),
|
||||
# and restore it later by running "dd if=luksheader.sda2.bin of=/dev/sda2"
|
||||
# (MAKE SURE YOU PASS THE CORRECT DEVICE AS of= !!!)
|
||||
#
|
||||
# (6) LVM metadata for every detected volume group, if "lvm = yes"
|
||||
#
|
||||
# (7) a copy of each device's MBR, if "mbr = yes". A master boot record
|
||||
# (MBR) is the 512-byte boot sector that is the first sector of a
|
||||
# partitioned data storage device of a hard disk. To restore the MBR
|
||||
# one could do something like: dd if=sda.mbr of=/dev/sda
|
||||
# (MAKE SURE YOU PASS THE CORRECT DEVICE AS of= !!!)
|
||||
# WARNING: Restoring the MBR with a mismatching partition table will
|
||||
# make your data unreadable and nearly impossible to recover
|
||||
#
|
||||
# (8) a copy of the BIOS, if "bios = yes" and flashrom is installed
|
||||
|
||||
if [ -f /etc/debian_version ]
|
||||
then
|
||||
@ -44,6 +53,11 @@ then
|
||||
os=redhat
|
||||
debug "Redhat detected"
|
||||
osversion="/etc/redhat-release"
|
||||
elif [ -f /etc/SuSE-release ]
|
||||
then
|
||||
os=suse
|
||||
debug "SuSE detected"
|
||||
osversion="/etc/SuSE-release"
|
||||
else
|
||||
warning "Unknown OS detected!"
|
||||
fi
|
||||
@ -57,14 +71,14 @@ if [ ! -d $parentdir ]; then
|
||||
mkdir -p $parentdir
|
||||
fi
|
||||
|
||||
if [ $os = "debian" ]
|
||||
if [ "$os" = "debian" ]
|
||||
then
|
||||
getconf packagesfile $parentdir/dpkg-selections.txt
|
||||
getconf packagemgr `which dpkg`
|
||||
getconf packagemgroptions ' --get-selections *'
|
||||
getconf selectionsfile $parentdir/debconfsel.txt
|
||||
getconf debconfgetselections `which debconf-get-selections`
|
||||
elif [ $os = "redhat" ]
|
||||
elif [ "$os" = "redhat" ]
|
||||
then
|
||||
getconf packagesfile $parentdir/rpmpackages.txt
|
||||
getconf packagemgr `which rpm`
|
||||
@ -72,6 +86,11 @@ then
|
||||
|
||||
getconf SYSREPORT `which sysreport`
|
||||
getconf sysreport_options ' -norpm '
|
||||
elif [ "$os" = "suse" ]
|
||||
then
|
||||
getconf packagesfile $parentdir/rpmpackages.txt
|
||||
getconf packagemgr `which rpm`
|
||||
getconf packagemgroptions ' -qa '
|
||||
else
|
||||
getconf packagesfile $parentdir/unknownOS.txt
|
||||
fi
|
||||
@ -100,6 +119,12 @@ getconf VGS `which vgs`
|
||||
getconf VGCFGBACKUP `which vgcfgbackup`
|
||||
getconf lvm no
|
||||
|
||||
getconf mbr no
|
||||
getconf mbrfile $parentdir/mbr.__star__.bin
|
||||
|
||||
getconf FLASHROM `which flashrom`
|
||||
getconf bios no
|
||||
|
||||
getconf vsnames all
|
||||
|
||||
# If vservers are configured, check that the ones listed in $vsnames are running.
|
||||
@ -119,11 +144,11 @@ fi
|
||||
|
||||
if [ "$luksheaders" == "yes" ]; then
|
||||
if [ ! -x "$DD" ]; then
|
||||
warning "can't find dd, skipping backup of Luks headers."
|
||||
warning "can't find dd, skipping backup of LUKS headers."
|
||||
luksheaders="no"
|
||||
fi
|
||||
if [ ! -x "$CRYPTSETUP" ]; then
|
||||
warning "can't find cryptsetup, skipping backup of Luks headers."
|
||||
warning "can't find cryptsetup, skipping backup of LUKS headers."
|
||||
luksheaders="no"
|
||||
fi
|
||||
fi
|
||||
@ -139,6 +164,20 @@ if [ "$lvm" == "yes" ]; then
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$mbr" == "yes" ]; then
|
||||
if [ ! -x "$DD" ]; then
|
||||
warning "can't find dd, skipping backup of MBR."
|
||||
mbr="no"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$bios" == "yes" ]; then
|
||||
if [ ! -x "$FLASHROM" ]; then
|
||||
warning "can't find flashrom, skipping backup of BIOS."
|
||||
mbr="no"
|
||||
fi
|
||||
fi
|
||||
|
||||
## PACKAGES ##############################
|
||||
|
||||
#
|
||||
@ -164,7 +203,7 @@ if [ "$packages" == "yes" ]; then
|
||||
# don't expand * since it can be used in $packagemgroptions
|
||||
set -o noglob
|
||||
debug "$VSERVER $vserver exec $packagemgr $packagemgroptions > $VROOTDIR/$vserver$packagesfile"
|
||||
$VSERVER $vserver exec $packagemgr $packagemgroptions > $VROOTDIR/$vserver$packagesfile || fatal "can not save $packagemgr info to $packagesfile"
|
||||
$VSERVER $vserver exec $packagemgr $packagemgroptions > $VROOTDIR/$vserver$packagesfile || fatal "can not save $packagemgr info to $packagesfile"
|
||||
set +o noglob
|
||||
fi
|
||||
# is $debconfgetselections available inside $vserver ?
|
||||
@ -232,7 +271,7 @@ catiffile () {
|
||||
echo $DASHES >> $sysreportfile
|
||||
for file in `find $1 -maxdepth 3 -noleaf -type f`
|
||||
do
|
||||
catiffile $file
|
||||
catiffile $file
|
||||
done
|
||||
fi
|
||||
echo $DASHES >> $sysreportfile
|
||||
@ -264,7 +303,7 @@ STATUS="Checking available memory:"
|
||||
catifexec "/usr/bin/free"
|
||||
|
||||
STATUS="Checking free disk space:"
|
||||
catifexec "/bin/df" "-al"
|
||||
catifexec "/bin/df" "-al --exclude-type=tmpfs"
|
||||
|
||||
STATUS="Collecting what services run at what run level:"
|
||||
if [ $os = "redhat" ]; then
|
||||
@ -519,14 +558,14 @@ fi
|
||||
if [ "$partitions" == "yes" ]; then
|
||||
if [ "$dosfdisk" == "yes" ]; then
|
||||
if [ ! -x "$SFDISK" ]; then
|
||||
warning "can't find sfdisk, skipping sfdisk report."
|
||||
partitions="no"
|
||||
warning "can't find sfdisk, skipping sfdisk report."
|
||||
partitions="no"
|
||||
fi
|
||||
fi
|
||||
if [ "$dohwinfo" == "yes" ]; then
|
||||
if [ ! -x "$HWINFO" ]; then
|
||||
warning "can't find hwinfo, skipping partition report."
|
||||
partitions="no"
|
||||
warning "can't find hwinfo, skipping partition report."
|
||||
partitions="no"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
@ -548,15 +587,15 @@ fi
|
||||
if [ "$hardware" == "yes" ]; then
|
||||
if [ "$dohwinfo" == "yes" ]; then
|
||||
if [ -f $hardwarefile ]; then
|
||||
rm $hardwarefile
|
||||
rm $hardwarefile
|
||||
fi
|
||||
touch $hardwarefile
|
||||
echo -e "\n\n====================== summary ======================\n" >> $hardwarefile
|
||||
debug "$HWINFO --short --cpu --network --disk --pci >> $hardwarefile"
|
||||
$HWINFO --short --cpu --network --disk --pci >> $hardwarefile
|
||||
for flag in cpu network bios pci; do
|
||||
echo -e "\n\n====================== $flag ======================\n" >> $hardwarefile
|
||||
$HWINFO --$flag >> $hardwarefile
|
||||
echo -e "\n\n====================== $flag ======================\n" >> $hardwarefile
|
||||
$HWINFO --$flag >> $hardwarefile
|
||||
done
|
||||
fi
|
||||
fi
|
||||
@ -569,21 +608,21 @@ fi
|
||||
if [ "$partitions" == "yes" ]; then
|
||||
if [ "$dosfdisk" == "yes" ]; then
|
||||
devices=`LC_ALL=C $SFDISK -l 2>/dev/null | grep "^Disk /dev" | @AWK@ '{print $2}' | cut -d: -f1`
|
||||
if [ "$devices" == "" ]; then
|
||||
warning "No harddisks found"
|
||||
fi
|
||||
for dev in $devices; do
|
||||
debug "$SFDISK will try to backup partition tables for device $dev"
|
||||
[ -b $dev ] || continue
|
||||
label=${dev#/dev/}
|
||||
label=${label//\//-}
|
||||
outputfile=${partitionsfile//__star__/$label}
|
||||
debug "$SFDISK $sfdisk_options -d $dev > $outputfile 2>/dev/null"
|
||||
$SFDISK $sfdisk_options -d $dev > $outputfile 2>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
warning "The partition table for $dev could not be saved."
|
||||
if [ "$devices" == "" ]; then
|
||||
warning "No harddisks found"
|
||||
fi
|
||||
done
|
||||
for dev in $devices; do
|
||||
debug "$SFDISK will try to backup partition tables for device $dev"
|
||||
[ -b $dev ] || continue
|
||||
label=${dev#/dev/}
|
||||
label=${label//\//-}
|
||||
outputfile=${partitionsfile//__star__/$label}
|
||||
debug "$SFDISK $sfdisk_options -d $dev > $outputfile 2>/dev/null"
|
||||
$SFDISK $sfdisk_options -d $dev > $outputfile 2>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
warning "The partition table for $dev could not be saved."
|
||||
fi
|
||||
done
|
||||
fi
|
||||
if [ "$dohwinfo" == "yes" ]; then
|
||||
debug "Using $HWINFO to get all available disk information"
|
||||
@ -595,8 +634,10 @@ fi
|
||||
if [ "$luksheaders" == "yes" ]; then
|
||||
devices=`LC_ALL=C $SFDISK -l 2>/dev/null | grep "^Disk /dev" | @AWK@ '{print $2}' | cut -d: -f1`
|
||||
[ -n "$devices" ] || warning "No block device found"
|
||||
partitions=`LC_ALL=C $SFDISK -l 2>/dev/null |grep "^/dev" | @AWK@ '{print $1}'`
|
||||
[ -n "$partitions" ] || warning "No partitions found"
|
||||
targetdevices=""
|
||||
for dev in $devices; do
|
||||
for dev in $devices $partitions; do
|
||||
[ -b $dev ] || continue
|
||||
debug "$CRYPTSETUP isLuks $dev"
|
||||
$CRYPTSETUP isLuks $dev
|
||||
@ -607,26 +648,45 @@ if [ "$luksheaders" == "yes" ]; then
|
||||
label=${label//\//-}
|
||||
outputfile=${luksheadersfile//__star__/$label}
|
||||
# the following sizes are expressed in terms of 512-byte sectors
|
||||
debug "Let us find out the Luks header size for $dev"
|
||||
debug "Let us find out the LUKS header size for $dev"
|
||||
debug "$CRYPTSETUP luksDump \"$dev\" | grep '^Payload offset:' | @AWK@ '{print $3}'"
|
||||
headersize=`$CRYPTSETUP luksDump "$dev" | grep '^Payload offset:' | @AWK@ '{print $3}'`
|
||||
if [ $? -ne 0 ]; then
|
||||
warning "Could not compute the size of Luks header, skipping device $dev"
|
||||
warning "Could not compute the size of LUKS header, skipping $dev"
|
||||
continue
|
||||
elif [ -z "$headersize" -o -n "`echo \"$headersize\" | sed 's/[0-9]*//g'`" ]; then
|
||||
warning "The computed size of Luks header is not an integer, skipping device $dev"
|
||||
elif [ -z "$headersize" -o -n "`echo \"$headersize\" | @SED@ 's/[0-9]*//g'`" ]; then
|
||||
warning "The computed size of LUKS header is not an integer, skipping $dev"
|
||||
continue
|
||||
fi
|
||||
debug "Let us backup the Luks header of device $dev"
|
||||
debug "Let us backup the LUKS header of $dev"
|
||||
debug "$DD if=\"${dev}\" of=\"${outputfile}\" bs=512 count=\"${headersize}\""
|
||||
output=`$DD if="${dev}" of="${outputfile}" bs=512 count="${headersize}" 2>&1`
|
||||
exit_code=$?
|
||||
if [ $exit_code -eq 0 ]; then
|
||||
debug $output
|
||||
info "The Luks header of $dev was saved to $outputfile."
|
||||
info "The LUKS header of $dev was saved to $outputfile."
|
||||
else
|
||||
debug $output
|
||||
fatal "The Luks header of $dev could not be saved."
|
||||
fatal "The LUKS header of $dev could not be saved."
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
if [ "$mbr" == "yes" ]; then
|
||||
devices=`LC_ALL=C $SFDISK -l 2>/dev/null | grep "^Disk /dev" | @AWK@ '{print $2}' | cut -d: -f1`
|
||||
if [ "$devices" == "" ]; then
|
||||
warning "No harddisks found"
|
||||
fi
|
||||
for dev in $devices; do
|
||||
debug "Will try to backup MBR tables for device $dev"
|
||||
[ -b $dev ] || continue
|
||||
label=${dev#/dev/}
|
||||
label=${label//\//-}
|
||||
outputfile=${mbrfile//__star__/$label}
|
||||
debug "$DD if=$dev of=$outputfile bs=512 count=1 2>/dev/null"
|
||||
$DD if=$dev of=$outputfile bs=512 count=1 2>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
warning "The MBR for $dev could not be saved."
|
||||
fi
|
||||
done
|
||||
fi
|
||||
@ -690,3 +750,14 @@ if [ "$lvm" == "yes" ]; then
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
## BIOS ####################################
|
||||
|
||||
if [ "$bios" == "yes" ]; then
|
||||
debug "Trying to backup BIOS"
|
||||
debug "$FLASHROM -r ${parentdir}/bios --programmer internal >/dev/null 2>&1"
|
||||
$FLASHROM -r ${parentdir}/bios --programmer internal >/dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
warning "The BIOS could not be saved."
|
||||
fi
|
||||
fi
|
||||
|
@ -25,7 +25,8 @@ tar_wizard() {
|
||||
"none" "do not filter trough" off \
|
||||
"compress" "filter trough compress" off \
|
||||
"gzip" "filter trough gzip" off \
|
||||
"bzip" "filter trough bzip" on
|
||||
"bzip" "filter trough bzip" on \
|
||||
"xz" "filter trough xz" off
|
||||
[ $? = 1 ] && return;
|
||||
result="$REPLY"
|
||||
tar_compress="compress = $REPLY "
|
||||
|
@ -48,6 +48,10 @@ case $compress in
|
||||
compress_option="-j"
|
||||
EXTENSION="tar.bz2"
|
||||
;;
|
||||
"xz")
|
||||
compress_option="-J"
|
||||
EXTENSION="tar.xz"
|
||||
;;
|
||||
"none")
|
||||
compress_option=""
|
||||
;;
|
||||
@ -68,11 +72,13 @@ debug "Running backup: " $TAR -c -p -v $compress_option $exclude_options \
|
||||
-f "$backupdir/$backupname-"`$DATE "+$DATEFORMAT"`".$EXTENSION" \
|
||||
$includes
|
||||
|
||||
if [ ! $test ]; then
|
||||
$TAR -c -p -v $compress_option $exclude_options \
|
||||
-f "$backupdir/$backupname-"`$DATE "+$DATEFORMAT"`".$EXTENSION" \
|
||||
$includes \
|
||||
> "$backupdir/$backupname-"`$DATE "+$DATEFORMAT"`.list \
|
||||
2> "$backupdir/$backupname-"`$DATE "+$DATEFORMAT"`.err
|
||||
fi
|
||||
|
||||
[ $? -ne 0 ] && fatal "Tar backup failed"
|
||||
|
||||
|
380
install-sh
380
install-sh
@ -1,7 +1,7 @@
|
||||
#!/bin/sh
|
||||
# install - install a program, script, or datafile
|
||||
|
||||
scriptversion=2009-04-28.21; # UTC
|
||||
scriptversion=2014-09-12.12; # UTC
|
||||
|
||||
# This originates from X11R5 (mit/util/scripts/install.sh), which was
|
||||
# later released in X11R6 (xc/config/util/install.sh) with the
|
||||
@ -35,25 +35,21 @@ scriptversion=2009-04-28.21; # UTC
|
||||
# FSF changes to this file are in the public domain.
|
||||
#
|
||||
# Calling this script install-sh is preferred over install.sh, to prevent
|
||||
# `make' implicit rules from creating a file called install from it
|
||||
# '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.
|
||||
|
||||
tab=' '
|
||||
nl='
|
||||
'
|
||||
IFS=" "" $nl"
|
||||
IFS=" $tab$nl"
|
||||
|
||||
# set DOITPROG to echo to test this script
|
||||
# Set DOITPROG to "echo" to test this script.
|
||||
|
||||
# Don't use :- since 4.3BSD and earlier shells don't like it.
|
||||
doit=${DOITPROG-}
|
||||
if test -z "$doit"; then
|
||||
doit_exec=exec
|
||||
else
|
||||
doit_exec=$doit
|
||||
fi
|
||||
doit_exec=${doit:-exec}
|
||||
|
||||
# Put in absolute file names if you don't have them in your path;
|
||||
# or use environment vars.
|
||||
@ -68,17 +64,6 @@ mvprog=${MVPROG-mv}
|
||||
rmprog=${RMPROG-rm}
|
||||
stripprog=${STRIPPROG-strip}
|
||||
|
||||
posix_glob='?'
|
||||
initialize_posix_glob='
|
||||
test "$posix_glob" != "?" || {
|
||||
if (set -f) 2>/dev/null; then
|
||||
posix_glob=
|
||||
else
|
||||
posix_glob=:
|
||||
fi
|
||||
}
|
||||
'
|
||||
|
||||
posix_mkdir=
|
||||
|
||||
# Desired mode of installed file.
|
||||
@ -97,7 +82,7 @@ dir_arg=
|
||||
dst_arg=
|
||||
|
||||
copy_on_change=false
|
||||
no_target_directory=
|
||||
is_target_a_directory=possibly
|
||||
|
||||
usage="\
|
||||
Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
|
||||
@ -137,42 +122,57 @@ while test $# -ne 0; do
|
||||
-d) dir_arg=true;;
|
||||
|
||||
-g) chgrpcmd="$chgrpprog $2"
|
||||
shift;;
|
||||
shift;;
|
||||
|
||||
--help) echo "$usage"; exit $?;;
|
||||
|
||||
-m) mode=$2
|
||||
case $mode in
|
||||
*' '* | *' '* | *'
|
||||
'* | *'*'* | *'?'* | *'['*)
|
||||
echo "$0: invalid mode: $mode" >&2
|
||||
exit 1;;
|
||||
esac
|
||||
shift;;
|
||||
case $mode in
|
||||
*' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*)
|
||||
echo "$0: invalid mode: $mode" >&2
|
||||
exit 1;;
|
||||
esac
|
||||
shift;;
|
||||
|
||||
-o) chowncmd="$chownprog $2"
|
||||
shift;;
|
||||
shift;;
|
||||
|
||||
-s) stripcmd=$stripprog;;
|
||||
|
||||
-t) dst_arg=$2
|
||||
shift;;
|
||||
-t)
|
||||
is_target_a_directory=always
|
||||
dst_arg=$2
|
||||
# Protect names problematic for 'test' and other utilities.
|
||||
case $dst_arg in
|
||||
-* | [=\(\)!]) dst_arg=./$dst_arg;;
|
||||
esac
|
||||
shift;;
|
||||
|
||||
-T) no_target_directory=true;;
|
||||
-T) is_target_a_directory=never;;
|
||||
|
||||
--version) echo "$0 $scriptversion"; exit $?;;
|
||||
|
||||
--) shift
|
||||
break;;
|
||||
--) shift
|
||||
break;;
|
||||
|
||||
-*) echo "$0: invalid option: $1" >&2
|
||||
exit 1;;
|
||||
-*) echo "$0: invalid option: $1" >&2
|
||||
exit 1;;
|
||||
|
||||
*) break;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
# We allow the use of options -d and -T together, by making -d
|
||||
# take the precedence; this is for compatibility with GNU install.
|
||||
|
||||
if test -n "$dir_arg"; then
|
||||
if test -n "$dst_arg"; then
|
||||
echo "$0: target directory not allowed when installing a directory." >&2
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
|
||||
# When -d is used, all remaining arguments are directories to create.
|
||||
# When -t is used, the destination is already specified.
|
||||
@ -186,6 +186,10 @@ if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
|
||||
fi
|
||||
shift # arg
|
||||
dst_arg=$arg
|
||||
# Protect names problematic for 'test' and other utilities.
|
||||
case $dst_arg in
|
||||
-* | [=\(\)!]) dst_arg=./$dst_arg;;
|
||||
esac
|
||||
done
|
||||
fi
|
||||
|
||||
@ -194,13 +198,26 @@ if test $# -eq 0; then
|
||||
echo "$0: no input file specified." >&2
|
||||
exit 1
|
||||
fi
|
||||
# It's OK to call `install-sh -d' without argument.
|
||||
# It's OK to call 'install-sh -d' without argument.
|
||||
# This can happen when creating conditional directories.
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if test -z "$dir_arg"; then
|
||||
trap '(exit $?); exit' 1 2 13 15
|
||||
if test $# -gt 1 || test "$is_target_a_directory" = always; then
|
||||
if test ! -d "$dst_arg"; then
|
||||
echo "$0: $dst_arg: Is not a directory." >&2
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if test -z "$dir_arg"; then
|
||||
do_exit='(exit $ret); exit $ret'
|
||||
trap "ret=129; $do_exit" 1
|
||||
trap "ret=130; $do_exit" 2
|
||||
trap "ret=141; $do_exit" 13
|
||||
trap "ret=143; $do_exit" 15
|
||||
|
||||
# Set umask so as not to create temps with too-generous modes.
|
||||
# However, 'strip' requires both read and write access to temps.
|
||||
@ -211,16 +228,16 @@ if test -z "$dir_arg"; then
|
||||
|
||||
*[0-7])
|
||||
if test -z "$stripcmd"; then
|
||||
u_plus_rw=
|
||||
u_plus_rw=
|
||||
else
|
||||
u_plus_rw='% 200'
|
||||
u_plus_rw='% 200'
|
||||
fi
|
||||
cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
|
||||
*)
|
||||
if test -z "$stripcmd"; then
|
||||
u_plus_rw=
|
||||
u_plus_rw=
|
||||
else
|
||||
u_plus_rw=,u+rw
|
||||
u_plus_rw=,u+rw
|
||||
fi
|
||||
cp_umask=$mode$u_plus_rw;;
|
||||
esac
|
||||
@ -228,9 +245,9 @@ fi
|
||||
|
||||
for src
|
||||
do
|
||||
# Protect names starting with `-'.
|
||||
# Protect names problematic for 'test' and other utilities.
|
||||
case $src in
|
||||
-*) src=./$src;;
|
||||
-* | [=\(\)!]) src=./$src;;
|
||||
esac
|
||||
|
||||
if test -n "$dir_arg"; then
|
||||
@ -252,51 +269,20 @@ do
|
||||
echo "$0: no destination specified." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
dst=$dst_arg
|
||||
# Protect names starting with `-'.
|
||||
case $dst in
|
||||
-*) dst=./$dst;;
|
||||
esac
|
||||
|
||||
# If destination is a directory, append the input filename; won't work
|
||||
# if double slashes aren't ignored.
|
||||
if test -d "$dst"; then
|
||||
if test -n "$no_target_directory"; then
|
||||
echo "$0: $dst_arg: Is a directory" >&2
|
||||
exit 1
|
||||
if test "$is_target_a_directory" = never; then
|
||||
echo "$0: $dst_arg: Is a directory" >&2
|
||||
exit 1
|
||||
fi
|
||||
dstdir=$dst
|
||||
dst=$dstdir/`basename "$src"`
|
||||
dstdir_status=0
|
||||
else
|
||||
# Prefer dirname, but fall back on a substitute if dirname fails.
|
||||
dstdir=`
|
||||
(dirname "$dst") 2>/dev/null ||
|
||||
expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
|
||||
X"$dst" : 'X\(//\)[^/]' \| \
|
||||
X"$dst" : 'X\(//\)$' \| \
|
||||
X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
|
||||
echo X"$dst" |
|
||||
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
|
||||
s//\1/
|
||||
q
|
||||
}
|
||||
/^X\(\/\/\)[^/].*/{
|
||||
s//\1/
|
||||
q
|
||||
}
|
||||
/^X\(\/\/\)$/{
|
||||
s//\1/
|
||||
q
|
||||
}
|
||||
/^X\(\/\).*/{
|
||||
s//\1/
|
||||
q
|
||||
}
|
||||
s/.*/./; q'
|
||||
`
|
||||
|
||||
dstdir=`dirname "$dst"`
|
||||
test -d "$dstdir"
|
||||
dstdir_status=$?
|
||||
fi
|
||||
@ -307,74 +293,81 @@ do
|
||||
if test $dstdir_status != 0; then
|
||||
case $posix_mkdir in
|
||||
'')
|
||||
# Create intermediate dirs using mode 755 as modified by the umask.
|
||||
# This is like FreeBSD 'install' as of 1997-10-28.
|
||||
umask=`umask`
|
||||
case $stripcmd.$umask in
|
||||
# Optimize common cases.
|
||||
*[2367][2367]) mkdir_umask=$umask;;
|
||||
.*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
|
||||
# Create intermediate dirs using mode 755 as modified by the umask.
|
||||
# This is like FreeBSD 'install' as of 1997-10-28.
|
||||
umask=`umask`
|
||||
case $stripcmd.$umask in
|
||||
# Optimize common cases.
|
||||
*[2367][2367]) mkdir_umask=$umask;;
|
||||
.*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
|
||||
|
||||
*[0-7])
|
||||
mkdir_umask=`expr $umask + 22 \
|
||||
- $umask % 100 % 40 + $umask % 20 \
|
||||
- $umask % 10 % 4 + $umask % 2
|
||||
`;;
|
||||
*) mkdir_umask=$umask,go-w;;
|
||||
esac
|
||||
*[0-7])
|
||||
mkdir_umask=`expr $umask + 22 \
|
||||
- $umask % 100 % 40 + $umask % 20 \
|
||||
- $umask % 10 % 4 + $umask % 2
|
||||
`;;
|
||||
*) mkdir_umask=$umask,go-w;;
|
||||
esac
|
||||
|
||||
# With -d, create the new directory with the user-specified mode.
|
||||
# Otherwise, rely on $mkdir_umask.
|
||||
if test -n "$dir_arg"; then
|
||||
mkdir_mode=-m$mode
|
||||
else
|
||||
mkdir_mode=
|
||||
fi
|
||||
# With -d, create the new directory with the user-specified mode.
|
||||
# Otherwise, rely on $mkdir_umask.
|
||||
if test -n "$dir_arg"; then
|
||||
mkdir_mode=-m$mode
|
||||
else
|
||||
mkdir_mode=
|
||||
fi
|
||||
|
||||
posix_mkdir=false
|
||||
case $umask in
|
||||
*[123567][0-7][0-7])
|
||||
# POSIX mkdir -p sets u+wx bits regardless of umask, which
|
||||
# is incompatible with FreeBSD 'install' when (umask & 300) != 0.
|
||||
;;
|
||||
*)
|
||||
tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
|
||||
trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
|
||||
posix_mkdir=false
|
||||
case $umask in
|
||||
*[123567][0-7][0-7])
|
||||
# POSIX mkdir -p sets u+wx bits regardless of umask, which
|
||||
# is incompatible with FreeBSD 'install' when (umask & 300) != 0.
|
||||
;;
|
||||
*)
|
||||
# $RANDOM is not portable (e.g. dash); use it when possible to
|
||||
# lower collision chance
|
||||
tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
|
||||
trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0
|
||||
|
||||
if (umask $mkdir_umask &&
|
||||
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
|
||||
then
|
||||
if test -z "$dir_arg" || {
|
||||
# Check for POSIX incompatibilities with -m.
|
||||
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
|
||||
# other-writeable bit of parent directory when it shouldn't.
|
||||
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
|
||||
ls_ld_tmpdir=`ls -ld "$tmpdir"`
|
||||
case $ls_ld_tmpdir in
|
||||
d????-?r-*) different_mode=700;;
|
||||
d????-?--*) different_mode=755;;
|
||||
*) false;;
|
||||
esac &&
|
||||
$mkdirprog -m$different_mode -p -- "$tmpdir" && {
|
||||
ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
|
||||
test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
|
||||
}
|
||||
}
|
||||
then posix_mkdir=:
|
||||
fi
|
||||
rmdir "$tmpdir/d" "$tmpdir"
|
||||
else
|
||||
# Remove any dirs left behind by ancient mkdir implementations.
|
||||
rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
|
||||
fi
|
||||
trap '' 0;;
|
||||
esac;;
|
||||
# As "mkdir -p" follows symlinks and we work in /tmp possibly; so
|
||||
# create the $tmpdir first (and fail if unsuccessful) to make sure
|
||||
# that nobody tries to guess the $tmpdir name.
|
||||
if (umask $mkdir_umask &&
|
||||
$mkdirprog $mkdir_mode "$tmpdir" &&
|
||||
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
|
||||
then
|
||||
if test -z "$dir_arg" || {
|
||||
# Check for POSIX incompatibilities with -m.
|
||||
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
|
||||
# other-writable bit of parent directory when it shouldn't.
|
||||
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
|
||||
test_tmpdir="$tmpdir/a"
|
||||
ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
|
||||
case $ls_ld_tmpdir in
|
||||
d????-?r-*) different_mode=700;;
|
||||
d????-?--*) different_mode=755;;
|
||||
*) false;;
|
||||
esac &&
|
||||
$mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
|
||||
ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
|
||||
test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
|
||||
}
|
||||
}
|
||||
then posix_mkdir=:
|
||||
fi
|
||||
rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
|
||||
else
|
||||
# Remove any dirs left behind by ancient mkdir implementations.
|
||||
rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
|
||||
fi
|
||||
trap '' 0;;
|
||||
esac;;
|
||||
esac
|
||||
|
||||
if
|
||||
$posix_mkdir && (
|
||||
umask $mkdir_umask &&
|
||||
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
|
||||
umask $mkdir_umask &&
|
||||
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
|
||||
)
|
||||
then :
|
||||
else
|
||||
@ -384,53 +377,51 @@ do
|
||||
# directory the slow way, step by step, checking for races as we go.
|
||||
|
||||
case $dstdir in
|
||||
/*) prefix='/';;
|
||||
-*) prefix='./';;
|
||||
*) prefix='';;
|
||||
/*) prefix='/';;
|
||||
[-=\(\)!]*) prefix='./';;
|
||||
*) prefix='';;
|
||||
esac
|
||||
|
||||
eval "$initialize_posix_glob"
|
||||
|
||||
oIFS=$IFS
|
||||
IFS=/
|
||||
$posix_glob set -f
|
||||
set -f
|
||||
set fnord $dstdir
|
||||
shift
|
||||
$posix_glob set +f
|
||||
set +f
|
||||
IFS=$oIFS
|
||||
|
||||
prefixes=
|
||||
|
||||
for d
|
||||
do
|
||||
test -z "$d" && continue
|
||||
test X"$d" = X && continue
|
||||
|
||||
prefix=$prefix$d
|
||||
if test -d "$prefix"; then
|
||||
prefixes=
|
||||
else
|
||||
if $posix_mkdir; then
|
||||
(umask=$mkdir_umask &&
|
||||
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
|
||||
# Don't fail if two instances are running concurrently.
|
||||
test -d "$prefix" || exit 1
|
||||
else
|
||||
case $prefix in
|
||||
*\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
|
||||
*) qprefix=$prefix;;
|
||||
esac
|
||||
prefixes="$prefixes '$qprefix'"
|
||||
fi
|
||||
fi
|
||||
prefix=$prefix/
|
||||
prefix=$prefix$d
|
||||
if test -d "$prefix"; then
|
||||
prefixes=
|
||||
else
|
||||
if $posix_mkdir; then
|
||||
(umask=$mkdir_umask &&
|
||||
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
|
||||
# Don't fail if two instances are running concurrently.
|
||||
test -d "$prefix" || exit 1
|
||||
else
|
||||
case $prefix in
|
||||
*\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
|
||||
*) qprefix=$prefix;;
|
||||
esac
|
||||
prefixes="$prefixes '$qprefix'"
|
||||
fi
|
||||
fi
|
||||
prefix=$prefix/
|
||||
done
|
||||
|
||||
if test -n "$prefixes"; then
|
||||
# Don't fail if two instances are running concurrently.
|
||||
(umask $mkdir_umask &&
|
||||
eval "\$doit_exec \$mkdirprog $prefixes") ||
|
||||
test -d "$dstdir" || exit 1
|
||||
obsolete_mkdir_used=true
|
||||
# Don't fail if two instances are running concurrently.
|
||||
(umask $mkdir_umask &&
|
||||
eval "\$doit_exec \$mkdirprog $prefixes") ||
|
||||
test -d "$dstdir" || exit 1
|
||||
obsolete_mkdir_used=true
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
@ -465,15 +456,12 @@ do
|
||||
|
||||
# If -C, don't bother to copy if it wouldn't change the file.
|
||||
if $copy_on_change &&
|
||||
old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
|
||||
new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
|
||||
|
||||
eval "$initialize_posix_glob" &&
|
||||
$posix_glob set -f &&
|
||||
old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
|
||||
new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
|
||||
set -f &&
|
||||
set X $old && old=:$2:$4:$5:$6 &&
|
||||
set X $new && new=:$2:$4:$5:$6 &&
|
||||
$posix_glob set +f &&
|
||||
|
||||
set +f &&
|
||||
test "$old" = "$new" &&
|
||||
$cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
|
||||
then
|
||||
@ -486,24 +474,24 @@ do
|
||||
# to itself, or perhaps because mv is so ancient that it does not
|
||||
# support -f.
|
||||
{
|
||||
# Now remove or move aside any old file at destination location.
|
||||
# We try this two ways since rm can't unlink itself on some
|
||||
# systems and the destination file might be busy for other
|
||||
# reasons. In this case, the final cleanup might fail but the new
|
||||
# file should still install successfully.
|
||||
{
|
||||
test ! -f "$dst" ||
|
||||
$doit $rmcmd -f "$dst" 2>/dev/null ||
|
||||
{ $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
|
||||
{ $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
|
||||
} ||
|
||||
{ echo "$0: cannot unlink or rename $dst" >&2
|
||||
(exit 1); exit 1
|
||||
}
|
||||
} &&
|
||||
# Now remove or move aside any old file at destination location.
|
||||
# We try this two ways since rm can't unlink itself on some
|
||||
# systems and the destination file might be busy for other
|
||||
# reasons. In this case, the final cleanup might fail but the new
|
||||
# file should still install successfully.
|
||||
{
|
||||
test ! -f "$dst" ||
|
||||
$doit $rmcmd -f "$dst" 2>/dev/null ||
|
||||
{ $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
|
||||
{ $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
|
||||
} ||
|
||||
{ echo "$0: cannot unlink or rename $dst" >&2
|
||||
(exit 1); exit 1
|
||||
}
|
||||
} &&
|
||||
|
||||
# Now rename the file to the real destination.
|
||||
$doit $mvcmd "$dsttmp" "$dst"
|
||||
# Now rename the file to the real destination.
|
||||
$doit $mvcmd "$dsttmp" "$dst"
|
||||
}
|
||||
fi || exit 1
|
||||
|
||||
|
150
lib/Makefile.in
150
lib/Makefile.in
@ -1,9 +1,8 @@
|
||||
# Makefile.in generated by automake 1.11.1 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.15.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
|
||||
# Inc.
|
||||
# Copyright (C) 1994-2017 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.
|
||||
@ -16,6 +15,61 @@
|
||||
@SET_MAKE@
|
||||
|
||||
VPATH = @srcdir@
|
||||
am__is_gnu_make = { \
|
||||
if test -z '$(MAKELEVEL)'; then \
|
||||
false; \
|
||||
elif test -n '$(MAKE_HOST)'; then \
|
||||
true; \
|
||||
elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
|
||||
true; \
|
||||
else \
|
||||
false; \
|
||||
fi; \
|
||||
}
|
||||
am__make_running_with_option = \
|
||||
case $${target_option-} in \
|
||||
?) ;; \
|
||||
*) echo "am__make_running_with_option: internal error: invalid" \
|
||||
"target option '$${target_option-}' specified" >&2; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
has_opt=no; \
|
||||
sane_makeflags=$$MAKEFLAGS; \
|
||||
if $(am__is_gnu_make); then \
|
||||
sane_makeflags=$$MFLAGS; \
|
||||
else \
|
||||
case $$MAKEFLAGS in \
|
||||
*\\[\ \ ]*) \
|
||||
bs=\\; \
|
||||
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
|
||||
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
|
||||
esac; \
|
||||
fi; \
|
||||
skip_next=no; \
|
||||
strip_trailopt () \
|
||||
{ \
|
||||
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
|
||||
}; \
|
||||
for flg in $$sane_makeflags; do \
|
||||
test $$skip_next = yes && { skip_next=no; continue; }; \
|
||||
case $$flg in \
|
||||
*=*|--*) continue;; \
|
||||
-*I) strip_trailopt 'I'; skip_next=yes;; \
|
||||
-*I?*) strip_trailopt 'I';; \
|
||||
-*O) strip_trailopt 'O'; skip_next=yes;; \
|
||||
-*O?*) strip_trailopt 'O';; \
|
||||
-*l) strip_trailopt 'l'; skip_next=yes;; \
|
||||
-*l?*) strip_trailopt 'l';; \
|
||||
-[dEDm]) skip_next=yes;; \
|
||||
-[JT]) skip_next=yes;; \
|
||||
esac; \
|
||||
case $$flg in \
|
||||
*$$target_option*) has_opt=yes; break;; \
|
||||
esac; \
|
||||
done; \
|
||||
test $$has_opt = yes
|
||||
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
|
||||
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
@ -33,11 +87,11 @@ NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
subdir = lib
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/configure.in
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
@ -62,13 +116,39 @@ am__nobase_list = $(am__nobase_strip_setup); \
|
||||
am__base_list = \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
|
||||
am__uninstall_files_from_dir = { \
|
||||
test -z "$$files" \
|
||||
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|
||||
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
|
||||
$(am__cd) "$$dir" && rm -f $$files; }; \
|
||||
}
|
||||
am__installdirs = "$(DESTDIR)$(my_execbindir)"
|
||||
SCRIPTS = $(my_execbin_SCRIPTS)
|
||||
AM_V_P = $(am__v_P_@AM_V@)
|
||||
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
|
||||
am__v_P_0 = false
|
||||
am__v_P_1 = :
|
||||
AM_V_GEN = $(am__v_GEN_@AM_V@)
|
||||
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
|
||||
am__v_GEN_0 = @echo " GEN " $@;
|
||||
am__v_GEN_1 =
|
||||
AM_V_at = $(am__v_at_@AM_V@)
|
||||
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
|
||||
am__v_at_0 = @
|
||||
am__v_at_1 =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
am__can_run_installinfo = \
|
||||
case $$AM_UPDATE_INFO_DIR in \
|
||||
n|no|NO) false;; \
|
||||
*) (install-info --version) >/dev/null 2>&1;; \
|
||||
esac
|
||||
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
|
||||
am__DIST_COMMON = $(srcdir)/Makefile.in
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMTAR = @AMTAR@
|
||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
@ -139,6 +219,7 @@ pdfdir = @pdfdir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
runstatedir = @runstatedir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
@ -171,10 +252,9 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu lib/Makefile'; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign lib/Makefile'; \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu lib/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
$(AUTOMAKE) --foreign lib/Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
@ -194,8 +274,11 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||
$(am__aclocal_m4_deps):
|
||||
install-my_execbinSCRIPTS: $(my_execbin_SCRIPTS)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(my_execbindir)" || $(MKDIR_P) "$(DESTDIR)$(my_execbindir)"
|
||||
@list='$(my_execbin_SCRIPTS)'; test -n "$(my_execbindir)" || list=; \
|
||||
if test -n "$$list"; then \
|
||||
echo " $(MKDIR_P) '$(DESTDIR)$(my_execbindir)'"; \
|
||||
$(MKDIR_P) "$(DESTDIR)$(my_execbindir)" || exit 1; \
|
||||
fi; \
|
||||
for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
|
||||
@ -223,14 +306,12 @@ uninstall-my_execbinSCRIPTS:
|
||||
@list='$(my_execbin_SCRIPTS)'; test -n "$(my_execbindir)" || exit 0; \
|
||||
files=`for p in $$list; do echo "$$p"; done | \
|
||||
sed -e 's,.*/,,;$(transform)'`; \
|
||||
test -n "$$list" || exit 0; \
|
||||
echo " ( cd '$(DESTDIR)$(my_execbindir)' && rm -f" $$files ")"; \
|
||||
cd "$(DESTDIR)$(my_execbindir)" && rm -f $$files
|
||||
tags: TAGS
|
||||
TAGS:
|
||||
dir='$(DESTDIR)$(my_execbindir)'; $(am__uninstall_files_from_dir)
|
||||
tags TAGS:
|
||||
|
||||
ctags: CTAGS
|
||||
CTAGS:
|
||||
ctags CTAGS:
|
||||
|
||||
cscope cscopelist:
|
||||
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@ -280,10 +361,15 @@ install-am: all-am
|
||||
|
||||
installcheck: installcheck-am
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
if test -z '$(STRIP)'; then \
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
install; \
|
||||
else \
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
|
||||
fi
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
@ -364,17 +450,19 @@ uninstall-am: uninstall-my_execbinSCRIPTS
|
||||
|
||||
.MAKE: install-am install-strip
|
||||
|
||||
.PHONY: all all-am check check-am clean clean-generic distclean \
|
||||
distclean-generic distdir dvi dvi-am html html-am info info-am \
|
||||
install install-am install-data install-data-am install-dvi \
|
||||
install-dvi-am install-exec install-exec-am install-html \
|
||||
install-html-am install-info install-info-am install-man \
|
||||
install-my_execbinSCRIPTS install-pdf install-pdf-am \
|
||||
install-ps install-ps-am install-strip installcheck \
|
||||
installcheck-am installdirs maintainer-clean \
|
||||
maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
|
||||
pdf-am ps ps-am uninstall uninstall-am \
|
||||
uninstall-my_execbinSCRIPTS
|
||||
.PHONY: all all-am check check-am clean clean-generic cscopelist-am \
|
||||
ctags-am distclean distclean-generic distdir dvi dvi-am html \
|
||||
html-am info info-am install install-am install-data \
|
||||
install-data-am install-dvi install-dvi-am install-exec \
|
||||
install-exec-am install-html install-html-am install-info \
|
||||
install-info-am install-man install-my_execbinSCRIPTS \
|
||||
install-pdf install-pdf-am install-ps install-ps-am \
|
||||
install-strip installcheck installcheck-am installdirs \
|
||||
maintainer-clean maintainer-clean-generic mostlyclean \
|
||||
mostlyclean-generic pdf pdf-am ps ps-am tags-am uninstall \
|
||||
uninstall-am uninstall-my_execbinSCRIPTS
|
||||
|
||||
.PRECIOUS: Makefile
|
||||
|
||||
|
||||
easydialog: $(srcdir)/easydialog.in
|
||||
|
38
lib/tools.in
38
lib/tools.in
@ -15,6 +15,44 @@ function maketemp() {
|
||||
echo $tempfile
|
||||
}
|
||||
|
||||
#
|
||||
# compare version numbers.
|
||||
# returns 0 if equal, 1 if $1>$2, and 2 if $1<$2
|
||||
#
|
||||
|
||||
function compare_versions() {
|
||||
if [[ "$1" == "$2" ]]; then
|
||||
return 0
|
||||
fi
|
||||
local IFS=.
|
||||
local i version_1=($1) version_2=($2)
|
||||
for ((i=${#version_1[@]}; i<${#version_2[@]}; i++)); do
|
||||
version_1[i]=0
|
||||
done
|
||||
for ((i=0; i<${#version_1[@]}; i++)); do
|
||||
if [[ -z ${version_2[i]} ]]; then
|
||||
version_2[i]=0
|
||||
fi
|
||||
if ((10#${version_1[i]} > 10#${version_2[i]})); then
|
||||
return 1
|
||||
fi
|
||||
if ((10#${version_1[i]} < 10#${version_2[i]})); then
|
||||
return 2
|
||||
fi
|
||||
done
|
||||
return 0
|
||||
}
|
||||
|
||||
#
|
||||
# compare version numbers: >=
|
||||
#
|
||||
|
||||
function version_ge() {
|
||||
compare_versions "$1" "$2"
|
||||
comp=$?
|
||||
[ $comp -eq 0 ] || [ $comp -eq 1 ]
|
||||
}
|
||||
|
||||
#####################################################
|
||||
## CONFIG-FILE RELATED FUNCTIONS
|
||||
|
||||
|
196
man/Makefile.in
196
man/Makefile.in
@ -1,9 +1,8 @@
|
||||
# Makefile.in generated by automake 1.11.1 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.15.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
|
||||
# Inc.
|
||||
# Copyright (C) 1994-2017 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.
|
||||
@ -15,6 +14,61 @@
|
||||
|
||||
@SET_MAKE@
|
||||
VPATH = @srcdir@
|
||||
am__is_gnu_make = { \
|
||||
if test -z '$(MAKELEVEL)'; then \
|
||||
false; \
|
||||
elif test -n '$(MAKE_HOST)'; then \
|
||||
true; \
|
||||
elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
|
||||
true; \
|
||||
else \
|
||||
false; \
|
||||
fi; \
|
||||
}
|
||||
am__make_running_with_option = \
|
||||
case $${target_option-} in \
|
||||
?) ;; \
|
||||
*) echo "am__make_running_with_option: internal error: invalid" \
|
||||
"target option '$${target_option-}' specified" >&2; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
has_opt=no; \
|
||||
sane_makeflags=$$MAKEFLAGS; \
|
||||
if $(am__is_gnu_make); then \
|
||||
sane_makeflags=$$MFLAGS; \
|
||||
else \
|
||||
case $$MAKEFLAGS in \
|
||||
*\\[\ \ ]*) \
|
||||
bs=\\; \
|
||||
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
|
||||
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
|
||||
esac; \
|
||||
fi; \
|
||||
skip_next=no; \
|
||||
strip_trailopt () \
|
||||
{ \
|
||||
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
|
||||
}; \
|
||||
for flg in $$sane_makeflags; do \
|
||||
test $$skip_next = yes && { skip_next=no; continue; }; \
|
||||
case $$flg in \
|
||||
*=*|--*) continue;; \
|
||||
-*I) strip_trailopt 'I'; skip_next=yes;; \
|
||||
-*I?*) strip_trailopt 'I';; \
|
||||
-*O) strip_trailopt 'O'; skip_next=yes;; \
|
||||
-*O?*) strip_trailopt 'O';; \
|
||||
-*l) strip_trailopt 'l'; skip_next=yes;; \
|
||||
-*l?*) strip_trailopt 'l';; \
|
||||
-[dEDm]) skip_next=yes;; \
|
||||
-[JT]) skip_next=yes;; \
|
||||
esac; \
|
||||
case $$flg in \
|
||||
*$$target_option*) has_opt=yes; break;; \
|
||||
esac; \
|
||||
done; \
|
||||
test $$has_opt = yes
|
||||
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
|
||||
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
@ -32,16 +86,33 @@ NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
subdir = man
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/configure.in
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
AM_V_P = $(am__v_P_@AM_V@)
|
||||
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
|
||||
am__v_P_0 = false
|
||||
am__v_P_1 = :
|
||||
AM_V_GEN = $(am__v_GEN_@AM_V@)
|
||||
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
|
||||
am__v_GEN_0 = @echo " GEN " $@;
|
||||
am__v_GEN_1 =
|
||||
AM_V_at = $(am__v_at_@AM_V@)
|
||||
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
|
||||
am__v_at_0 = @
|
||||
am__v_at_1 =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
am__can_run_installinfo = \
|
||||
case $$AM_UPDATE_INFO_DIR in \
|
||||
n|no|NO) false;; \
|
||||
*) (install-info --version) >/dev/null 2>&1;; \
|
||||
esac
|
||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
||||
am__vpath_adj = case $$p in \
|
||||
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
@ -63,14 +134,23 @@ am__nobase_list = $(am__nobase_strip_setup); \
|
||||
am__base_list = \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
|
||||
am__uninstall_files_from_dir = { \
|
||||
test -z "$$files" \
|
||||
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|
||||
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
|
||||
$(am__cd) "$$dir" && rm -f $$files; }; \
|
||||
}
|
||||
man1dir = $(mandir)/man1
|
||||
am__installdirs = "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man5dir)"
|
||||
man5dir = $(mandir)/man5
|
||||
NROFF = nroff
|
||||
MANS = $(man_MANS)
|
||||
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
|
||||
am__DIST_COMMON = $(srcdir)/Makefile.in
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMTAR = @AMTAR@
|
||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
@ -141,6 +221,7 @@ pdfdir = @pdfdir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
runstatedir = @runstatedir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
@ -163,10 +244,9 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu man/Makefile'; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign man/Makefile'; \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu man/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
$(AUTOMAKE) --foreign man/Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
@ -186,11 +266,18 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||
$(am__aclocal_m4_deps):
|
||||
install-man1: $(man_MANS)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)"
|
||||
@list=''; test -n "$(man1dir)" || exit 0; \
|
||||
{ for i in $$list; do echo "$$i"; done; \
|
||||
l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
|
||||
sed -n '/\.1[a-z]*$$/p'; \
|
||||
@list1=''; \
|
||||
list2='$(man_MANS)'; \
|
||||
test -n "$(man1dir)" \
|
||||
&& test -n "`echo $$list1$$list2`" \
|
||||
|| exit 0; \
|
||||
echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \
|
||||
$(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \
|
||||
{ for i in $$list1; do echo "$$i"; done; \
|
||||
if test -n "$$list2"; then \
|
||||
for i in $$list2; do echo "$$i"; done \
|
||||
| sed -n '/\.1[a-z]*$$/p'; \
|
||||
fi; \
|
||||
} | while read p; do \
|
||||
if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
|
||||
echo "$$d$$p"; echo "$$p"; \
|
||||
@ -219,16 +306,21 @@ uninstall-man1:
|
||||
sed -n '/\.1[a-z]*$$/p'; \
|
||||
} | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
|
||||
-e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
|
||||
test -z "$$files" || { \
|
||||
echo " ( cd '$(DESTDIR)$(man1dir)' && rm -f" $$files ")"; \
|
||||
cd "$(DESTDIR)$(man1dir)" && rm -f $$files; }
|
||||
dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
|
||||
install-man5: $(man_MANS)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(man5dir)" || $(MKDIR_P) "$(DESTDIR)$(man5dir)"
|
||||
@list=''; test -n "$(man5dir)" || exit 0; \
|
||||
{ for i in $$list; do echo "$$i"; done; \
|
||||
l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
|
||||
sed -n '/\.5[a-z]*$$/p'; \
|
||||
@list1=''; \
|
||||
list2='$(man_MANS)'; \
|
||||
test -n "$(man5dir)" \
|
||||
&& test -n "`echo $$list1$$list2`" \
|
||||
|| exit 0; \
|
||||
echo " $(MKDIR_P) '$(DESTDIR)$(man5dir)'"; \
|
||||
$(MKDIR_P) "$(DESTDIR)$(man5dir)" || exit 1; \
|
||||
{ for i in $$list1; do echo "$$i"; done; \
|
||||
if test -n "$$list2"; then \
|
||||
for i in $$list2; do echo "$$i"; done \
|
||||
| sed -n '/\.5[a-z]*$$/p'; \
|
||||
fi; \
|
||||
} | while read p; do \
|
||||
if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
|
||||
echo "$$d$$p"; echo "$$p"; \
|
||||
@ -257,30 +349,15 @@ uninstall-man5:
|
||||
sed -n '/\.5[a-z]*$$/p'; \
|
||||
} | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^5][0-9a-z]*$$,5,;x' \
|
||||
-e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
|
||||
test -z "$$files" || { \
|
||||
echo " ( cd '$(DESTDIR)$(man5dir)' && rm -f" $$files ")"; \
|
||||
cd "$(DESTDIR)$(man5dir)" && rm -f $$files; }
|
||||
tags: TAGS
|
||||
TAGS:
|
||||
dir='$(DESTDIR)$(man5dir)'; $(am__uninstall_files_from_dir)
|
||||
tags TAGS:
|
||||
|
||||
ctags: CTAGS
|
||||
CTAGS:
|
||||
ctags CTAGS:
|
||||
|
||||
cscope cscopelist:
|
||||
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@list='$(MANS)'; if test -n "$$list"; then \
|
||||
list=`for p in $$list; do \
|
||||
if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
|
||||
if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
|
||||
if test -n "$$list" && \
|
||||
grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
|
||||
echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \
|
||||
grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \
|
||||
echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \
|
||||
echo " typically \`make maintainer-clean' will remove them" >&2; \
|
||||
exit 1; \
|
||||
else :; fi; \
|
||||
else :; fi
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
@ -327,10 +404,15 @@ install-am: all-am
|
||||
|
||||
installcheck: installcheck-am
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
if test -z '$(STRIP)'; then \
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
install; \
|
||||
else \
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
|
||||
fi
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
@ -412,17 +494,19 @@ uninstall-man: uninstall-man1 uninstall-man5
|
||||
|
||||
.MAKE: install-am install-strip
|
||||
|
||||
.PHONY: all all-am check check-am clean clean-generic distclean \
|
||||
distclean-generic distdir dvi dvi-am html html-am info info-am \
|
||||
install install-am install-data install-data-am install-dvi \
|
||||
install-dvi-am install-exec install-exec-am install-html \
|
||||
install-html-am install-info install-info-am install-man \
|
||||
install-man1 install-man5 install-pdf install-pdf-am \
|
||||
install-ps install-ps-am install-strip installcheck \
|
||||
installcheck-am installdirs maintainer-clean \
|
||||
maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
|
||||
pdf-am ps ps-am uninstall uninstall-am uninstall-man \
|
||||
uninstall-man1 uninstall-man5
|
||||
.PHONY: all all-am check check-am clean clean-generic cscopelist-am \
|
||||
ctags-am distclean distclean-generic distdir dvi dvi-am html \
|
||||
html-am info info-am install install-am install-data \
|
||||
install-data-am install-dvi install-dvi-am install-exec \
|
||||
install-exec-am install-html install-html-am install-info \
|
||||
install-info-am install-man install-man1 install-man5 \
|
||||
install-pdf install-pdf-am install-ps install-ps-am \
|
||||
install-strip installcheck installcheck-am installdirs \
|
||||
maintainer-clean maintainer-clean-generic mostlyclean \
|
||||
mostlyclean-generic pdf pdf-am ps ps-am tags-am uninstall \
|
||||
uninstall-am uninstall-man uninstall-man1 uninstall-man5
|
||||
|
||||
.PRECIOUS: Makefile
|
||||
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
|
457
missing
457
missing
@ -1,11 +1,10 @@
|
||||
#! /bin/sh
|
||||
# Common stub for a few missing GNU programs while installing.
|
||||
# Common wrapper for a few potentially missing GNU programs.
|
||||
|
||||
scriptversion=2009-04-28.21; # UTC
|
||||
scriptversion=2013-10-28.13; # UTC
|
||||
|
||||
# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006,
|
||||
# 2008, 2009 Free Software Foundation, Inc.
|
||||
# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
|
||||
# Copyright (C) 1996-2014 Free Software Foundation, Inc.
|
||||
# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@ -26,69 +25,40 @@ scriptversion=2009-04-28.21; # UTC
|
||||
# the same distribution terms that you use for the rest of that program.
|
||||
|
||||
if test $# -eq 0; then
|
||||
echo 1>&2 "Try \`$0 --help' for more information"
|
||||
echo 1>&2 "Try '$0 --help' for more information"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
run=:
|
||||
sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
|
||||
sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
|
||||
|
||||
# In the cases where this matters, `missing' is being run in the
|
||||
# srcdir already.
|
||||
if test -f configure.ac; then
|
||||
configure_ac=configure.ac
|
||||
else
|
||||
configure_ac=configure.in
|
||||
fi
|
||||
|
||||
msg="missing on your system"
|
||||
|
||||
case $1 in
|
||||
--run)
|
||||
# Try to run requested program, and just exit if it succeeds.
|
||||
run=
|
||||
shift
|
||||
"$@" && exit 0
|
||||
# Exit code 63 means version mismatch. This often happens
|
||||
# when the user try to use an ancient version of a tool on
|
||||
# a file that requires a minimum version. In this case we
|
||||
# we should proceed has if the program had been absent, or
|
||||
# if --run hadn't been passed.
|
||||
if test $? = 63; then
|
||||
run=:
|
||||
msg="probably too old"
|
||||
fi
|
||||
;;
|
||||
|
||||
--is-lightweight)
|
||||
# Used by our autoconf macros to check whether the available missing
|
||||
# script is modern enough.
|
||||
exit 0
|
||||
;;
|
||||
|
||||
--run)
|
||||
# Back-compat with the calling convention used by older automake.
|
||||
shift
|
||||
;;
|
||||
|
||||
-h|--h|--he|--hel|--help)
|
||||
echo "\
|
||||
$0 [OPTION]... PROGRAM [ARGUMENT]...
|
||||
|
||||
Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
|
||||
error status if there is no known handling for PROGRAM.
|
||||
Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due
|
||||
to PROGRAM being missing or too old.
|
||||
|
||||
Options:
|
||||
-h, --help display this help and exit
|
||||
-v, --version output version information and exit
|
||||
--run try to run the given command, and emulate it if it fails
|
||||
|
||||
Supported PROGRAM values:
|
||||
aclocal touch file \`aclocal.m4'
|
||||
autoconf touch file \`configure'
|
||||
autoheader touch file \`config.h.in'
|
||||
autom4te touch the output file, or create a stub one
|
||||
automake touch all \`Makefile.in' files
|
||||
bison create \`y.tab.[ch]', if possible, from existing .[ch]
|
||||
flex create \`lex.yy.c', if possible, from existing .c
|
||||
help2man touch the output file
|
||||
lex create \`lex.yy.c', if possible, from existing .c
|
||||
makeinfo touch the output file
|
||||
tar try tar, gnutar, gtar, then tar without non-portable flags
|
||||
yacc create \`y.tab.[ch]', if possible, from existing .[ch]
|
||||
aclocal autoconf autoheader autom4te automake makeinfo
|
||||
bison yacc flex lex help2man
|
||||
|
||||
Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and
|
||||
\`g' are ignored when checking the name.
|
||||
Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
|
||||
'g' are ignored when checking the name.
|
||||
|
||||
Send bug reports to <bug-automake@gnu.org>."
|
||||
exit $?
|
||||
@ -100,272 +70,141 @@ Send bug reports to <bug-automake@gnu.org>."
|
||||
;;
|
||||
|
||||
-*)
|
||||
echo 1>&2 "$0: Unknown \`$1' option"
|
||||
echo 1>&2 "Try \`$0 --help' for more information"
|
||||
echo 1>&2 "$0: unknown '$1' option"
|
||||
echo 1>&2 "Try '$0 --help' for more information"
|
||||
exit 1
|
||||
;;
|
||||
|
||||
esac
|
||||
|
||||
# normalize program name to check for.
|
||||
program=`echo "$1" | sed '
|
||||
s/^gnu-//; t
|
||||
s/^gnu//; t
|
||||
s/^g//; t'`
|
||||
# Run the given program, remember its exit status.
|
||||
"$@"; st=$?
|
||||
|
||||
# Now exit if we have it, but it failed. Also exit now if we
|
||||
# don't have it and --version was passed (most likely to detect
|
||||
# the program). This is about non-GNU programs, so use $1 not
|
||||
# $program.
|
||||
case $1 in
|
||||
lex*|yacc*)
|
||||
# Not GNU programs, they don't have --version.
|
||||
# If it succeeded, we are done.
|
||||
test $st -eq 0 && exit 0
|
||||
|
||||
# Also exit now if we it failed (or wasn't found), and '--version' was
|
||||
# passed; such an option is passed most likely to detect whether the
|
||||
# program is present and works.
|
||||
case $2 in --version|--help) exit $st;; esac
|
||||
|
||||
# Exit code 63 means version mismatch. This often happens when the user
|
||||
# tries to use an ancient version of a tool on a file that requires a
|
||||
# minimum version.
|
||||
if test $st -eq 63; then
|
||||
msg="probably too old"
|
||||
elif test $st -eq 127; then
|
||||
# Program was missing.
|
||||
msg="missing on your system"
|
||||
else
|
||||
# Program was found and executed, but failed. Give up.
|
||||
exit $st
|
||||
fi
|
||||
|
||||
perl_URL=http://www.perl.org/
|
||||
flex_URL=http://flex.sourceforge.net/
|
||||
gnu_software_URL=http://www.gnu.org/software
|
||||
|
||||
program_details ()
|
||||
{
|
||||
case $1 in
|
||||
aclocal|automake)
|
||||
echo "The '$1' program is part of the GNU Automake package:"
|
||||
echo "<$gnu_software_URL/automake>"
|
||||
echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:"
|
||||
echo "<$gnu_software_URL/autoconf>"
|
||||
echo "<$gnu_software_URL/m4/>"
|
||||
echo "<$perl_URL>"
|
||||
;;
|
||||
autoconf|autom4te|autoheader)
|
||||
echo "The '$1' program is part of the GNU Autoconf package:"
|
||||
echo "<$gnu_software_URL/autoconf/>"
|
||||
echo "It also requires GNU m4 and Perl in order to run:"
|
||||
echo "<$gnu_software_URL/m4/>"
|
||||
echo "<$perl_URL>"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
give_advice ()
|
||||
{
|
||||
# Normalize program name to check for.
|
||||
normalized_program=`echo "$1" | sed '
|
||||
s/^gnu-//; t
|
||||
s/^gnu//; t
|
||||
s/^g//; t'`
|
||||
|
||||
printf '%s\n' "'$1' is $msg."
|
||||
|
||||
configure_deps="'configure.ac' or m4 files included by 'configure.ac'"
|
||||
case $normalized_program in
|
||||
autoconf*)
|
||||
echo "You should only need it if you modified 'configure.ac',"
|
||||
echo "or m4 files included by it."
|
||||
program_details 'autoconf'
|
||||
;;
|
||||
autoheader*)
|
||||
echo "You should only need it if you modified 'acconfig.h' or"
|
||||
echo "$configure_deps."
|
||||
program_details 'autoheader'
|
||||
;;
|
||||
automake*)
|
||||
echo "You should only need it if you modified 'Makefile.am' or"
|
||||
echo "$configure_deps."
|
||||
program_details 'automake'
|
||||
;;
|
||||
aclocal*)
|
||||
echo "You should only need it if you modified 'acinclude.m4' or"
|
||||
echo "$configure_deps."
|
||||
program_details 'aclocal'
|
||||
;;
|
||||
autom4te*)
|
||||
echo "You might have modified some maintainer files that require"
|
||||
echo "the 'autom4te' program to be rebuilt."
|
||||
program_details 'autom4te'
|
||||
;;
|
||||
bison*|yacc*)
|
||||
echo "You should only need it if you modified a '.y' file."
|
||||
echo "You may want to install the GNU Bison package:"
|
||||
echo "<$gnu_software_URL/bison/>"
|
||||
;;
|
||||
lex*|flex*)
|
||||
echo "You should only need it if you modified a '.l' file."
|
||||
echo "You may want to install the Fast Lexical Analyzer package:"
|
||||
echo "<$flex_URL>"
|
||||
;;
|
||||
help2man*)
|
||||
echo "You should only need it if you modified a dependency" \
|
||||
"of a man page."
|
||||
echo "You may want to install the GNU Help2man package:"
|
||||
echo "<$gnu_software_URL/help2man/>"
|
||||
;;
|
||||
makeinfo*)
|
||||
echo "You should only need it if you modified a '.texi' file, or"
|
||||
echo "any other file indirectly affecting the aspect of the manual."
|
||||
echo "You might want to install the Texinfo package:"
|
||||
echo "<$gnu_software_URL/texinfo/>"
|
||||
echo "The spurious makeinfo call might also be the consequence of"
|
||||
echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might"
|
||||
echo "want to install GNU make:"
|
||||
echo "<$gnu_software_URL/make/>"
|
||||
;;
|
||||
*)
|
||||
echo "You might have modified some files without having the proper"
|
||||
echo "tools for further handling them. Check the 'README' file, it"
|
||||
echo "often tells you about the needed prerequisites for installing"
|
||||
echo "this package. You may also peek at any GNU archive site, in"
|
||||
echo "case some other package contains this missing '$1' program."
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
tar*)
|
||||
if test -n "$run"; then
|
||||
echo 1>&2 "ERROR: \`tar' requires --run"
|
||||
exit 1
|
||||
elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
give_advice "$1" | sed -e '1s/^/WARNING: /' \
|
||||
-e '2,$s/^/ /' >&2
|
||||
|
||||
*)
|
||||
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
|
||||
# We have it, but it failed.
|
||||
exit 1
|
||||
elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
|
||||
# Could not run --version or --help. This is probably someone
|
||||
# running `$TOOL --version' or `$TOOL --help' to check whether
|
||||
# $TOOL exists and not knowing $TOOL uses missing.
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
# If it does not exist, or fails to run (possibly an outdated version),
|
||||
# try to emulate it.
|
||||
case $program in
|
||||
aclocal*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified \`acinclude.m4' or \`${configure_ac}'. You might want
|
||||
to install the \`Automake' and \`Perl' packages. Grab them from
|
||||
any GNU archive site."
|
||||
touch aclocal.m4
|
||||
;;
|
||||
|
||||
autoconf*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified \`${configure_ac}'. You might want to install the
|
||||
\`Autoconf' and \`GNU m4' packages. Grab them from any GNU
|
||||
archive site."
|
||||
touch configure
|
||||
;;
|
||||
|
||||
autoheader*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified \`acconfig.h' or \`${configure_ac}'. You might want
|
||||
to install the \`Autoconf' and \`GNU m4' packages. Grab them
|
||||
from any GNU archive site."
|
||||
files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
|
||||
test -z "$files" && files="config.h"
|
||||
touch_files=
|
||||
for f in $files; do
|
||||
case $f in
|
||||
*:*) touch_files="$touch_files "`echo "$f" |
|
||||
sed -e 's/^[^:]*://' -e 's/:.*//'`;;
|
||||
*) touch_files="$touch_files $f.in";;
|
||||
esac
|
||||
done
|
||||
touch $touch_files
|
||||
;;
|
||||
|
||||
automake*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
|
||||
You might want to install the \`Automake' and \`Perl' packages.
|
||||
Grab them from any GNU archive site."
|
||||
find . -type f -name Makefile.am -print |
|
||||
sed 's/\.am$/.in/' |
|
||||
while read f; do touch "$f"; done
|
||||
;;
|
||||
|
||||
autom4te*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is needed, but is $msg.
|
||||
You might have modified some files without having the
|
||||
proper tools for further handling them.
|
||||
You can get \`$1' as part of \`Autoconf' from any GNU
|
||||
archive site."
|
||||
|
||||
file=`echo "$*" | sed -n "$sed_output"`
|
||||
test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
|
||||
if test -f "$file"; then
|
||||
touch $file
|
||||
else
|
||||
test -z "$file" || exec >$file
|
||||
echo "#! /bin/sh"
|
||||
echo "# Created by GNU Automake missing as a replacement of"
|
||||
echo "# $ $@"
|
||||
echo "exit 0"
|
||||
chmod +x $file
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
|
||||
bison*|yacc*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' $msg. You should only need it if
|
||||
you modified a \`.y' file. You may need the \`Bison' package
|
||||
in order for those modifications to take effect. You can get
|
||||
\`Bison' from any GNU archive site."
|
||||
rm -f y.tab.c y.tab.h
|
||||
if test $# -ne 1; then
|
||||
eval LASTARG="\${$#}"
|
||||
case $LASTARG in
|
||||
*.y)
|
||||
SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
|
||||
if test -f "$SRCFILE"; then
|
||||
cp "$SRCFILE" y.tab.c
|
||||
fi
|
||||
SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
|
||||
if test -f "$SRCFILE"; then
|
||||
cp "$SRCFILE" y.tab.h
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
if test ! -f y.tab.h; then
|
||||
echo >y.tab.h
|
||||
fi
|
||||
if test ! -f y.tab.c; then
|
||||
echo 'main() { return 0; }' >y.tab.c
|
||||
fi
|
||||
;;
|
||||
|
||||
lex*|flex*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified a \`.l' file. You may need the \`Flex' package
|
||||
in order for those modifications to take effect. You can get
|
||||
\`Flex' from any GNU archive site."
|
||||
rm -f lex.yy.c
|
||||
if test $# -ne 1; then
|
||||
eval LASTARG="\${$#}"
|
||||
case $LASTARG in
|
||||
*.l)
|
||||
SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
|
||||
if test -f "$SRCFILE"; then
|
||||
cp "$SRCFILE" lex.yy.c
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
if test ! -f lex.yy.c; then
|
||||
echo 'main() { return 0; }' >lex.yy.c
|
||||
fi
|
||||
;;
|
||||
|
||||
help2man*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified a dependency of a manual page. You may need the
|
||||
\`Help2man' package in order for those modifications to take
|
||||
effect. You can get \`Help2man' from any GNU archive site."
|
||||
|
||||
file=`echo "$*" | sed -n "$sed_output"`
|
||||
test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
|
||||
if test -f "$file"; then
|
||||
touch $file
|
||||
else
|
||||
test -z "$file" || exec >$file
|
||||
echo ".ab help2man is required to generate this page"
|
||||
exit $?
|
||||
fi
|
||||
;;
|
||||
|
||||
makeinfo*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified a \`.texi' or \`.texinfo' file, or any other file
|
||||
indirectly affecting the aspect of the manual. The spurious
|
||||
call might also be the consequence of using a buggy \`make' (AIX,
|
||||
DU, IRIX). You might want to install the \`Texinfo' package or
|
||||
the \`GNU make' package. Grab either from any GNU archive site."
|
||||
# The file to touch is that specified with -o ...
|
||||
file=`echo "$*" | sed -n "$sed_output"`
|
||||
test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
|
||||
if test -z "$file"; then
|
||||
# ... or it is the one specified with @setfilename ...
|
||||
infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
|
||||
file=`sed -n '
|
||||
/^@setfilename/{
|
||||
s/.* \([^ ]*\) *$/\1/
|
||||
p
|
||||
q
|
||||
}' $infile`
|
||||
# ... or it is derived from the source name (dir/f.texi becomes f.info)
|
||||
test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
|
||||
fi
|
||||
# If the file does not exist, the user really needs makeinfo;
|
||||
# let's fail without touching anything.
|
||||
test -f $file || exit 1
|
||||
touch $file
|
||||
;;
|
||||
|
||||
tar*)
|
||||
shift
|
||||
|
||||
# We have already tried tar in the generic part.
|
||||
# Look for gnutar/gtar before invocation to avoid ugly error
|
||||
# messages.
|
||||
if (gnutar --version > /dev/null 2>&1); then
|
||||
gnutar "$@" && exit 0
|
||||
fi
|
||||
if (gtar --version > /dev/null 2>&1); then
|
||||
gtar "$@" && exit 0
|
||||
fi
|
||||
firstarg="$1"
|
||||
if shift; then
|
||||
case $firstarg in
|
||||
*o*)
|
||||
firstarg=`echo "$firstarg" | sed s/o//`
|
||||
tar "$firstarg" "$@" && exit 0
|
||||
;;
|
||||
esac
|
||||
case $firstarg in
|
||||
*h*)
|
||||
firstarg=`echo "$firstarg" | sed s/h//`
|
||||
tar "$firstarg" "$@" && exit 0
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
echo 1>&2 "\
|
||||
WARNING: I can't seem to be able to run \`tar' with the given arguments.
|
||||
You may want to install GNU tar or Free paxutils, or check the
|
||||
command line arguments."
|
||||
exit 1
|
||||
;;
|
||||
|
||||
*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is needed, and is $msg.
|
||||
You might have modified some files without having the
|
||||
proper tools for further handling them. Check the \`README' file,
|
||||
it often tells you about the needed prerequisites for installing
|
||||
this package. You may also peek at any GNU archive site, in case
|
||||
some other package would contain this missing \`$1' program."
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
# Propagate the correct exit status (expected to be 127 for a program
|
||||
# not found, 63 for a program that failed due to version mismatch).
|
||||
exit $st
|
||||
|
||||
# Local variables:
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
|
149
src/Makefile.in
149
src/Makefile.in
@ -1,9 +1,8 @@
|
||||
# Makefile.in generated by automake 1.11.1 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.15.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
|
||||
# Inc.
|
||||
# Copyright (C) 1994-2017 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.
|
||||
@ -16,6 +15,61 @@
|
||||
@SET_MAKE@
|
||||
|
||||
VPATH = @srcdir@
|
||||
am__is_gnu_make = { \
|
||||
if test -z '$(MAKELEVEL)'; then \
|
||||
false; \
|
||||
elif test -n '$(MAKE_HOST)'; then \
|
||||
true; \
|
||||
elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
|
||||
true; \
|
||||
else \
|
||||
false; \
|
||||
fi; \
|
||||
}
|
||||
am__make_running_with_option = \
|
||||
case $${target_option-} in \
|
||||
?) ;; \
|
||||
*) echo "am__make_running_with_option: internal error: invalid" \
|
||||
"target option '$${target_option-}' specified" >&2; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
has_opt=no; \
|
||||
sane_makeflags=$$MAKEFLAGS; \
|
||||
if $(am__is_gnu_make); then \
|
||||
sane_makeflags=$$MFLAGS; \
|
||||
else \
|
||||
case $$MAKEFLAGS in \
|
||||
*\\[\ \ ]*) \
|
||||
bs=\\; \
|
||||
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
|
||||
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
|
||||
esac; \
|
||||
fi; \
|
||||
skip_next=no; \
|
||||
strip_trailopt () \
|
||||
{ \
|
||||
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
|
||||
}; \
|
||||
for flg in $$sane_makeflags; do \
|
||||
test $$skip_next = yes && { skip_next=no; continue; }; \
|
||||
case $$flg in \
|
||||
*=*|--*) continue;; \
|
||||
-*I) strip_trailopt 'I'; skip_next=yes;; \
|
||||
-*I?*) strip_trailopt 'I';; \
|
||||
-*O) strip_trailopt 'O'; skip_next=yes;; \
|
||||
-*O?*) strip_trailopt 'O';; \
|
||||
-*l) strip_trailopt 'l'; skip_next=yes;; \
|
||||
-*l?*) strip_trailopt 'l';; \
|
||||
-[dEDm]) skip_next=yes;; \
|
||||
-[JT]) skip_next=yes;; \
|
||||
esac; \
|
||||
case $$flg in \
|
||||
*$$target_option*) has_opt=yes; break;; \
|
||||
esac; \
|
||||
done; \
|
||||
test $$has_opt = yes
|
||||
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
|
||||
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
@ -33,11 +87,11 @@ NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
subdir = src
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/configure.in
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
@ -62,13 +116,39 @@ am__nobase_list = $(am__nobase_strip_setup); \
|
||||
am__base_list = \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
|
||||
am__uninstall_files_from_dir = { \
|
||||
test -z "$$files" \
|
||||
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|
||||
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
|
||||
$(am__cd) "$$dir" && rm -f $$files; }; \
|
||||
}
|
||||
am__installdirs = "$(DESTDIR)$(sbindir)"
|
||||
SCRIPTS = $(sbin_SCRIPTS)
|
||||
AM_V_P = $(am__v_P_@AM_V@)
|
||||
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
|
||||
am__v_P_0 = false
|
||||
am__v_P_1 = :
|
||||
AM_V_GEN = $(am__v_GEN_@AM_V@)
|
||||
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
|
||||
am__v_GEN_0 = @echo " GEN " $@;
|
||||
am__v_GEN_1 =
|
||||
AM_V_at = $(am__v_at_@AM_V@)
|
||||
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
|
||||
am__v_at_0 = @
|
||||
am__v_at_1 =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
am__can_run_installinfo = \
|
||||
case $$AM_UPDATE_INFO_DIR in \
|
||||
n|no|NO) false;; \
|
||||
*) (install-info --version) >/dev/null 2>&1;; \
|
||||
esac
|
||||
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
|
||||
am__DIST_COMMON = $(srcdir)/Makefile.in
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMTAR = @AMTAR@
|
||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
@ -139,6 +219,7 @@ pdfdir = @pdfdir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
runstatedir = @runstatedir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
@ -177,10 +258,9 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu src/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
$(AUTOMAKE) --foreign src/Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
@ -200,8 +280,11 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||
$(am__aclocal_m4_deps):
|
||||
install-sbinSCRIPTS: $(sbin_SCRIPTS)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(sbindir)" || $(MKDIR_P) "$(DESTDIR)$(sbindir)"
|
||||
@list='$(sbin_SCRIPTS)'; test -n "$(sbindir)" || list=; \
|
||||
if test -n "$$list"; then \
|
||||
echo " $(MKDIR_P) '$(DESTDIR)$(sbindir)'"; \
|
||||
$(MKDIR_P) "$(DESTDIR)$(sbindir)" || exit 1; \
|
||||
fi; \
|
||||
for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
|
||||
@ -229,14 +312,12 @@ uninstall-sbinSCRIPTS:
|
||||
@list='$(sbin_SCRIPTS)'; test -n "$(sbindir)" || exit 0; \
|
||||
files=`for p in $$list; do echo "$$p"; done | \
|
||||
sed -e 's,.*/,,;$(transform)'`; \
|
||||
test -n "$$list" || exit 0; \
|
||||
echo " ( cd '$(DESTDIR)$(sbindir)' && rm -f" $$files ")"; \
|
||||
cd "$(DESTDIR)$(sbindir)" && rm -f $$files
|
||||
tags: TAGS
|
||||
TAGS:
|
||||
dir='$(DESTDIR)$(sbindir)'; $(am__uninstall_files_from_dir)
|
||||
tags TAGS:
|
||||
|
||||
ctags: CTAGS
|
||||
CTAGS:
|
||||
ctags CTAGS:
|
||||
|
||||
cscope cscopelist:
|
||||
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@ -286,10 +367,15 @@ install-am: all-am
|
||||
|
||||
installcheck: installcheck-am
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
if test -z '$(STRIP)'; then \
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
install; \
|
||||
else \
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
|
||||
fi
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
@ -370,16 +456,19 @@ uninstall-am: uninstall-sbinSCRIPTS
|
||||
|
||||
.MAKE: install-am install-strip
|
||||
|
||||
.PHONY: all all-am check check-am clean clean-generic distclean \
|
||||
distclean-generic distdir dvi dvi-am html html-am info info-am \
|
||||
install install-am install-data install-data-am install-dvi \
|
||||
install-dvi-am install-exec install-exec-am install-html \
|
||||
install-html-am install-info install-info-am install-man \
|
||||
install-pdf install-pdf-am install-ps install-ps-am \
|
||||
install-sbinSCRIPTS install-strip installcheck installcheck-am \
|
||||
installdirs maintainer-clean maintainer-clean-generic \
|
||||
mostlyclean mostlyclean-generic pdf pdf-am ps ps-am uninstall \
|
||||
uninstall-am uninstall-sbinSCRIPTS
|
||||
.PHONY: all all-am check check-am clean clean-generic cscopelist-am \
|
||||
ctags-am distclean distclean-generic distdir dvi dvi-am html \
|
||||
html-am info info-am install install-am install-data \
|
||||
install-data-am install-dvi install-dvi-am install-exec \
|
||||
install-exec-am install-html install-html-am install-info \
|
||||
install-info-am install-man install-pdf install-pdf-am \
|
||||
install-ps install-ps-am install-sbinSCRIPTS install-strip \
|
||||
installcheck installcheck-am installdirs maintainer-clean \
|
||||
maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
|
||||
pdf-am ps ps-am tags-am uninstall uninstall-am \
|
||||
uninstall-sbinSCRIPTS
|
||||
|
||||
.PRECIOUS: Makefile
|
||||
|
||||
|
||||
#install-exec-hook:
|
||||
|
@ -326,32 +326,32 @@ function process_action() {
|
||||
# start locked section : avoid concurrent execution of the same backup
|
||||
# uses a construct specific to shell scripts with flock. See man flock for details
|
||||
{
|
||||
debug "executing handler in locked section controlled by $lockfile"
|
||||
flock -x -w 5 200
|
||||
# if all is good, we acquired the lock
|
||||
if [ $? -eq 0 ]; then
|
||||
debug "executing handler in locked section controlled by $lockfile"
|
||||
flock -x -w 5 200
|
||||
# if all is good, we acquired the lock
|
||||
if [ $? -eq 0 ]; then
|
||||
|
||||
let "actions_run += 1"
|
||||
let "actions_run += 1"
|
||||
|
||||
# call the handler:
|
||||
echo_debug_msg=1
|
||||
(
|
||||
. $scriptdirectory/$suffix $file
|
||||
) 2>&1 | (
|
||||
while read a; do
|
||||
echo $a >> $bufferfile
|
||||
[ $debug ] && colorize "$a"
|
||||
done
|
||||
)
|
||||
retcode=$?
|
||||
# ^^^^^^^^ we have a problem! we can't grab the return code "$?". grrr.
|
||||
echo_debug_msg=0
|
||||
# call the handler:
|
||||
echo_debug_msg=1
|
||||
(
|
||||
. $scriptdirectory/$suffix $file
|
||||
) 2>&1 | (
|
||||
while read a; do
|
||||
echo $a >> $bufferfile
|
||||
[ $debug ] && colorize "$a"
|
||||
done
|
||||
)
|
||||
retcode=$?
|
||||
# ^^^^^^^^ we have a problem! we can't grab the return code "$?". grrr.
|
||||
echo_debug_msg=0
|
||||
|
||||
else
|
||||
# a backup is probably ongoing already, so display an error message
|
||||
debug "failed to acquire lock $lockfile"
|
||||
echo "Fatal: Could not acquire lock $lockfile. A backup is probably already running for $file." >>$bufferfile
|
||||
fi
|
||||
else
|
||||
# a backup is probably ongoing already, so display an error message
|
||||
debug "failed to acquire lock $lockfile"
|
||||
echo "Fatal: Could not acquire lock $lockfile. A backup is probably already running for $file." >>$bufferfile
|
||||
fi
|
||||
} 200> $lockfile
|
||||
# end of locked section
|
||||
|
||||
@ -508,6 +508,8 @@ getconf PGSQLUSER postgres
|
||||
getconf GZIP /bin/gzip
|
||||
getconf GZIP_OPTS --rsyncable
|
||||
getconf RSYNC /usr/bin/rsync
|
||||
getconf DSYNC /usr/bin/dsync
|
||||
getconf DOVEADM /usr/bin/doveadm
|
||||
getconf admingroup root
|
||||
|
||||
# initialize vservers support
|
||||
@ -542,7 +544,7 @@ errormsg=""
|
||||
if [ "$singlerun" ]; then
|
||||
files=$singlerun
|
||||
else
|
||||
files=`find $configdirectory -follow -mindepth 1 -maxdepth 1 -type f ! -name '.*.swp' | sort -n`
|
||||
files=`find $configdirectory -follow -mindepth 1 -maxdepth 1 -type f ! -name '.*.swp' ! -name '*~' | sort -n`
|
||||
|
||||
if [ -z "$files" ]; then
|
||||
info "No backup actions configured in '$configdirectory', run ninjahelper!"
|
||||
@ -590,7 +592,7 @@ if [ $doit == 1 ]; then
|
||||
|
||||
{
|
||||
for ((i=0; i < ${#messages[@]} ; i++)); do
|
||||
echo ${messages[$i]}
|
||||
echo ${messages[$i]}
|
||||
done
|
||||
echo -e "$errormsg"
|
||||
if [ "$reportspace" == "yes" ]; then
|
||||
|
@ -240,7 +240,7 @@ while true; do
|
||||
menulist=
|
||||
action=
|
||||
let "i = 1"
|
||||
for file in `find ${configdirectory} -follow -mindepth 1 -maxdepth 1 -type f ! -name '.*.swp' | sort -n`; do
|
||||
for file in `find ${configdirectory} -follow -mindepth 1 -maxdepth 1 -type f ! -name '.*.swp' ! -name '*~' | sort -n`; do
|
||||
menulist="$menulist $i $file"
|
||||
actions[$i]=$file
|
||||
let "i += 1"
|
||||
|
Loading…
Reference in New Issue
Block a user