caspar-20140919/0000755000175000017500000000000012407054567010251 500000000000000caspar-20140919/INSTALL0000644000175000017500000003661012302342414011211 00000000000000Installation Instructions ************************* Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. This file is offered as-is, without warranty of any kind. Basic Installation ================== Briefly, the shell command `./configure && make && make install' should configure, build, and install this package. The following more-detailed instructions are generic; see the `README' file for instructions specific to this package. Some packages provide this `INSTALL' file but do not implement all of the features documented below. The lack of an optional feature in a given package is not necessarily a bug. More recommendations for GNU packages can be found in *note Makefile Conventions: (standards)Makefile Conventions. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). It can also use an optional file (typically called `config.cache' and enabled with `--cache-file=config.cache' or simply `-C') that saves the results of its tests to speed up reconfiguring. Caching is disabled by default to prevent problems with accidental use of stale cache files. If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can be considered for the next release. If you are using the cache, and at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.ac' (or `configure.in') is used to create `configure' by a program called `autoconf'. You need `configure.ac' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. Running `configure' might take a while. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with the package, generally using the just-built uninstalled binaries. 4. Type `make install' to install the programs and any data files and documentation. When installing into a prefix owned by root, it is recommended that the package be configured and built as a regular user, and only the `make install' phase executed with root privileges. 5. Optionally, type `make installcheck' to repeat any self-tests, but this time using the binaries in their final installed location. This target does not install anything. Running this target as a regular user, particularly if the prior `make install' required root privileges, verifies that the installation completed correctly. 6. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is also a `make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. 7. Often, you can also type `make uninstall' to remove the installed files again. In practice, not all packages have tested that uninstallation works correctly, even though it is required by the GNU Coding Standards. 8. Some packages, particularly those that use Automake, provide `make distcheck', which can by used by developers to test that all other targets like `make install' and `make uninstall' work correctly. This target is generally not run by end users. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the `configure' script does not know about. Run `./configure --help' for details on some of the pertinent environment variables. You can give `configure' initial values for configuration parameters by setting variables in the command line or in the environment. Here is an example: ./configure CC=c99 CFLAGS=-g LIBS=-lposix *Note Defining Variables::, for more details. Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you can use GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. This is known as a "VPATH" build. With a non-GNU `make', it is safer to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use `make distclean' before reconfiguring for another architecture. On MacOS X 10.5 and later systems, you can create libraries and executables that work on multiple system types--known as "fat" or "universal" binaries--by specifying multiple `-arch' options to the compiler but only a single `-arch' option to the preprocessor. Like this: ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ CPP="gcc -E" CXXCPP="g++ -E" This is not guaranteed to produce working output in all cases, you may have to build one architecture at a time and combine the results using the `lipo' tool if you have problems. Installation Names ================== By default, `make install' installs the package's commands under `/usr/local/bin', include files under `/usr/local/include', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PREFIX', where PREFIX must be an absolute file name. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you pass the option `--exec-prefix=PREFIX' to `configure', the package uses PREFIX as the prefix for installing programs and libraries. Documentation and other data files still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=DIR' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories you can set and what kinds of files go in them. In general, the default for these options is expressed in terms of `${prefix}', so that specifying just `--prefix' will affect all of the other directory specifications that were not explicitly provided. The most portable way to affect installation locations is to pass the correct locations to `configure'; however, many packages provide one or both of the following shortcuts of passing variable assignments to the `make install' command line to change installation locations without having to reconfigure or recompile. The first method involves providing an override variable for each affected directory. For example, `make install prefix=/alternate/directory' will choose an alternate location for all directory configuration variables that were expressed in terms of `${prefix}'. Any directories that were specified during `configure', but not in terms of `${prefix}', must each be overridden at install time for the entire installation to be relocated. The approach of makefile variable overrides for each directory variable is required by the GNU Coding Standards, and ideally causes no recompilation. However, some platforms have known limitations with the semantics of shared libraries that end up requiring recompilation when using this method, particularly noticeable in packages that use GNU Libtool. The second method involves providing the `DESTDIR' variable. For example, `make install DESTDIR=/alternate/directory' will prepend `/alternate/directory' before all installation names. The approach of `DESTDIR' overrides is not required by the GNU Coding Standards, and does not work on platforms that have drive letters. On the other hand, it does better at avoiding recompilation issues, and works well even when some directory options were not specified in terms of `${prefix}' at `configure' time. Optional Features ================= If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The `README' should mention any `--enable-' and `--with-' options that the package recognizes. For packages that use the X Window System, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. Some packages offer the ability to configure how verbose the execution of `make' will be. For these packages, running `./configure --enable-silent-rules' sets the default to minimal output, which can be overridden with `make V=1'; while running `./configure --disable-silent-rules' sets the default to verbose, which can be overridden with `make V=0'. Particular systems ================== On HP-UX, the default C compiler is not ANSI C compatible. If GNU CC is not installed, it is recommended to use the following options in order to use an ANSI C compiler: ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" and if that doesn't work, install pre-built binaries of GCC for HP-UX. HP-UX `make' updates targets which have the same time stamps as their prerequisites, which makes it generally unusable when shipped generated files such as `configure' are involved. Use GNU `make' instead. On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot parse its `' header file. The option `-nodtk' can be used as a workaround. If GNU CC is not installed, it is therefore recommended to try ./configure CC="cc" and if that doesn't work, try ./configure CC="cc -nodtk" On Solaris, don't put `/usr/ucb' early in your `PATH'. This directory contains several dysfunctional programs; working variants of these programs are available in `/usr/bin'. So, if you need `/usr/ucb' in your `PATH', put it _after_ `/usr/bin'. On Haiku, software installed for all users goes in `/boot/common', not `/usr/local'. It is recommended to use the following options: ./configure --prefix=/boot/common Specifying the System Type ========================== There may be some features `configure' cannot figure out automatically, but needs to determine by the type of machine the package will run on. Usually, assuming the package is built to be run on the _same_ architectures, `configure' can figure that out, but if it prints a message saying it cannot guess the machine type, give it the `--build=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name which has the form: CPU-COMPANY-SYSTEM where SYSTEM can have one of these forms: OS KERNEL-OS See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't need to know the machine type. If you are _building_ compiler tools for cross-compiling, you should use the option `--target=TYPE' to select the type of system they will produce code for. If you want to _use_ a cross compiler, that generates code for a platform different from the build platform, you should specify the "host" platform (i.e., that on which the generated programs will eventually be run) with `--host=TYPE'. Sharing Defaults ================ If you want to set default values for `configure' scripts to share, you can create a site shell script called `config.site' that gives default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. Defining Variables ================== Variables not defined in a site shell script can be set in the environment passed to `configure'. However, some packages may run configure again during the build, and the customized values of these variables may be lost. In order to avoid this problem, you should set them in the `configure' command line, using `VAR=value'. For example: ./configure CC=/usr/local2/bin/gcc causes the specified `gcc' to be used as the C compiler (unless it is overridden in the site shell script). Unfortunately, this technique does not work for `CONFIG_SHELL' due to an Autoconf limitation. Until the limitation is lifted, you can use this workaround: CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash `configure' Invocation ====================== `configure' recognizes the following options to control how it operates. `--help' `-h' Print a summary of all of the options to `configure', and exit. `--help=short' `--help=recursive' Print a summary of the options unique to this package's `configure', and exit. The `short' variant lists options used only in the top level, while the `recursive' variant lists options also present in any nested packages. `--version' `-V' Print the version of Autoconf used to generate the `configure' script, and exit. `--cache-file=FILE' Enable the cache: use and save the results of the tests in FILE, traditionally `config.cache'. FILE defaults to `/dev/null' to disable caching. `--config-cache' `-C' Alias for `--cache-file=config.cache'. `--quiet' `--silent' `-q' Do not print messages saying which checks are being made. To suppress all normal output, redirect it to `/dev/null' (any error messages will still be shown). `--srcdir=DIR' Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. `--prefix=DIR' Use DIR as the installation prefix. *note Installation Names:: for more details, including other options available for fine-tuning the installation locations. `--no-create' `-n' Run the configure checks, but stop before creating any output files. `configure' also accepts some other, not widely useful, options. Run `configure --help' for more details. caspar-20140919/NEWS0000644000175000017500000004261312407054553010671 00000000000000Refer to ChangeLog for detailed per-file info. caspar version 20140919 - The Prnjavor Release - mk/caspar.mk: apply patch contributed by Wessel Dankers, Aug 8 2014: 1) Localize variables: previously, caspar would use a few generic variable names (such as “FILES”) and assign values to them, blithely overwriting any variable of the same name that the user might be using. With this change, all variables internal to caspar are prefixed using ‘_csp_’. 2) Stop changing input variables: variables that serve as input to caspar should be read-only as far as caspar is concerned. Before this change it would change the value of (at least) csp_UHOSTS, which broke certain advanced usage patterns. With this change, caspar uses internal variables for computations. These modifications do not change the caspar interface. - doc/caspar.azm: updated links for ansible, cfengine and puppet. - bootstrap: update from automake/aclocal 1.11 to 1.14 (only relevant for developers building caspar from within a git checkout). caspar version 20140203 - The Matonge, BXL Release [ Joost van Baal-Ilić ] - Makefile.am: explictly set path of setversion: use $(top_srcdir)/setversion. Specify DISTCLEANFILES. Tweak EXTRADIST. No longer set VERSION. - configure.ac, setversion: use generic AD1_VERSION, not CASPAR_VERSION - configure.ac: AC_PREREQ(2.67), reintroduce and update AC_COPYRIGHT, set AC_REVISION. - setversion: simplify: rip out support for manually overwriting autogenerated version. - bootstrap: downgrade from autotools 1.14 to autotools 1.11, so that building from git works on current Ubuntu LTS. - doc/csp_helper.azm: documented csp_mkdircp. - doc/caspar.azm: started documenting 'make diff'. caspar version 20140106 - The Bakertand Release [ Joost van Baal-Ilić ] - script/csp_sucp: bugfix: feed not just $3, but also any more args as files to tar. Now passing more than just one file to csp_sucp actually works. - bootstrap: update from automake/aclocal 1.11 to 1.14 (only relevant for developers building caspar from within a git checkout). - Makefile.am: no longer ship caspar-.tar.bz2, do ship caspar-.tar.xz. caspar version 20131119 - The Sint Agatha Release [ Joost van Baal-Ilić ] - doc/csp_helper.azm, script/csp_sucp: Fixes in csp_sucp(1): + update csp_sucp description: since version 20120514 we use tar, not cat. document how to use csp_sucp with interactive sudo password prompt. + we no longer suffer from password-prompt bug: run sudo non-interactive (-n) when stdin is filled with tar data ; explicitly get rid of tty when stdin is filled with tar in order to make sure this data will not get interpreted as password for sudo; pass -t to ssh, not -T, when refreshing sudo password, gets rid of error message "sudo: no tty present and no askpass program specified ". + explicitly pass c to tar. (GNU tar) 1.26 needs at least one option. - mk/caspar.mk: Swap dealing with $(csp_TABOOFILES) and $(csp_BUILD) in contructing FILES to be install-ed. Now $(csp_TABOOFILES) is subtracted from $(csp_BUILD) (was: $(csp_BUILD) gets added to result of subtracting $(csp_TABOOFILES) from list of FILES. So, now "csp_BUILD = check" and "csp_TABOOFILES_ADD = check" no longer results in caspar trying to install a file called 'check'. caspar version 20120530 - The Miekoekse Release [Wessel Dankers] - mk/caspar.mk: do not run bulktargets if no files are available [Joost van Baal-Ilić] - script/csp_mkdircp: add yet another caspar helper caspar version 20120514 - The Железничка Release [Joost van Baal-Ilić] - caspar/script/csp_sucp: csp_sucp is reimplemented: now with "multisupport" for "bulktargets", it no longer uses cat, but tar. - caspar/mk/caspar.mk: csp_SUCP now again supports setting csp_SUCP_USER from within Makefile: interface restored to the one in caspar <= 20101204. [Wessel Dankers] - caspar/mk/caspar.mk: Introduce "bulktargets" in caspar.mk. Running "make" or "make install" now installs all files in current directory in just one csp_PUSH call. In case csp_PUSH is set to default "scp", scp is called just once; this makes caspar much more efficient. caspar version 20120508 - The Sint Katelijne Release [Joost van Baal-Ilić] - caspar/doc/Makefile.am: assume html is in utf8; this fixes a bug introduced in version 20120420: manpages were empty. caspar version 20120420 - The Lamprais Release, for Danishka Navin [Joost van Baal-Ilić] - caspar/script/csp_sucp: csp_sucp now honors CSP_DEBUG - caspar/NEWS, caspar/doc/caspar.azm: document new csp_PUSH interface, support for csp_XARG is dropped - caspar/mk/caspar.mk: add (undocumented) target "debug". fix bug, caspar now somewhat usable again. caspar version 20120417 - The Kokki Release [Joost van Baal-Ilić] - We now support installing multiple local files in one scp call. The destination directory of a push script is now passed as the first argument. Therefore, one can now implement one's own push mechanism in a more efficient way. The arguments of a push implementation can get shifted, one can treat remaining args as "$@". - User interface for caspar helpers csp_* changed in INCOMPATIBLE way. - If you've written your own csp_PUSH implementation, update it. arguments now are <[user@]host> (was: <[user@]host> []) + caspar/script/csp_sucp, caspar/script/csp_scp_keep_mode: swap arguments: now csp_* <[user@]host> (was: <[user@]host> [su-user]) + caspar/script/csp_install: swap arguments: now csp_install - csp_DIFFXARG support reimplemented (in a slightly less flexible way) - caspar/script/csp_sucp: fix bug in $CSP_SUCP_USER processing. caspar version 20120322 - The Kothu Roti Release [Joost van Baal-Ilić] - caspar/mk/caspar.mk: backwards INCOMPATIBLE change: csp_CPDIRS and csp_CPDIR (and 'localtargets') are no longer honored. If you'd like to use cp(1) to install to csp_CPDIR, define csp_UHOST = dummy csp_PUSH = $(csp_cp_FUNC) and set csp_DIR accordingly. Support for installing in multiple different directories using cp(1) is dropped. (Likely it's possible to implement it via some dirty hack.) - caspar/doc/caspar.azm, caspar/mk/caspar.mk: implement function csp_scpmkdir_FUNC (and variable csp_MKDIRP): no longer need to define this function in Makefile. - caspar/doc/caspar.azm: document csp_UHOSTS_SKIP. - caspar/doc/caspar.azm: document more advanced way of using csp_LOAD: refer to $1 in definition of load target, keep loop over hosts implicit. - caspar/doc/*.azm, caspar/doc/include*: converting syntax to aephea >= 10.008-1, zoem >= 11-166-1. - caspar/doc/caspar.azm, caspar/doc/csp_helper.azm: various improvements in manpages. caspar version 20101204 [Wessel Dankers] - caspar/mk/caspar.mk: add $(csp_UHOSTS_SKIP) feature: exclude hosts - caspar/mk/caspar.mk: combine file lists less clumsily caspar version 20100624 - Bugfix release [Wessel Dankers] - caspar/mk/caspar.mk: fix load-target-as-a-variable didn't work because $(call ...) was expanded too early caspar version 20100223 [Joost van Baal] - Converted from CVS to git. + use git2cl (no longer cvs2cl) - Add (.so request) manpages for csp_install, csp_scp_keep_mode and csp_sucp. [Wessel Dankers] - Fixed "target given more than once in the same rule" errors. - Caspar now shows each command as it is run, and aborts on errors. - csp_LOAD values are now defined as variables with $1 being the host they push to. caspar version 20091115 - Renamed caspar(1) to casparize(1). - Some tweaking on manpages. caspar version 20091114 - Preliminary manpage csp_helper(1) added, documenting helper scripts csp_install, csp_scp_keep_mode and csp_sucp. (The separate csp_sucp manpage is gone.) - Adjusted caspar.mk so that it's actually possible to hook csp_install and csp_scp_keep_mode into caspar. caspar version 20090926 - Unstable bleeding edge snapshot release. - Added (not yet documented) new scripts csp_install and csp_scp_keep_mode, allowing for more robust installs. - Add script caspar(1), for generating caspar-style Makefiles, contributed by Jeroen Hoppenbrouwers. - setversion: allow for user override of version of caspar release. - TODO: updated caspar version 20090406 - BEWARE! Backwards INcompatible change in user interface! mk/caspar.mk does no longer supply backward compatibility with caspar <= 20060216: Support for csp_SUH, csp_SUHS, csp_SUHDIRS and csp_SCPDIR is dropped. If you use old-style Makefiles, you'll have to fix these now: for csp_SUHS now use csp_UHOSTS for csp_SUH now use csp_UHOST for csp_SCPDIR now use csp_DIR (There is no replacement variable for csp_SUHDIRS; csp_CPDIRS for now is still supported.) See the 20060216 NEWS item for more details. A crude way to update your Makefiles would be to run something along the lines of: % find . -name Makefile -o -name install.mk | while read f; do sed -i 's/csp_SUHS/csp_UHOSTS/g; s/csp_SUH/csp_UHOST/g; s/csp_SCPDIR/csp_DIR/g' $f; done This kinda worked for me. YMMV. (Please mail the author if you need help converting your Makefiles and you've explicitly used the variable csp_SUHDIRS.) (No other incompatible change will get introduced during the Debian "squeeze" nor during the "squeeze + 1" release cycle: caspar in squeeze + 1 will be backwards compatible with this caspar version. History of incompatible changes and Debian GNU/Linux releases: Debian release caspar version incompatible? -------------- -------------- ------------- woody (oldoldoldstable) none - sarge (oldoldstable) 20050302-1 YES etch (oldstable) 20060618-1 - lenny (stable) 20070729-1 - squeeze (testing) > 20070729-1 YES [1] caspar version 20040721-1 was the first one uploaded to the Debian archives.) - Added preliminary support for "make diff" and "make -diff": this shows the diff between filename in current directory and filename at remote location. One can use this to test wether the file on the server is in sync with (e.g.) a previous SVN version before scp-ing it. This prevents overwrites of "illegal" (i.e. without having used SVN (but possibly useful)) edits directly on the remote server. New variables introduced: csp_DIFFXARG (default: -u) csp_DIFF (default: csp_diff_FUNC; overwrite this if you want to tweak the way the diff is computed) as well as csp_SSH, csp_CAT, csp_Diff and csp_diff_FUNC. For now, this feature works out of the box in case csp_PUSH is $(csp_scp_FUNC) (the default scp-based install mechanism) and in case csp_PUSH is $(csp_sucp_FUNC). If you use cp(1) to install, and have set csp_PUSH to $(csp_cp_FUNC), for now do set csp_DIFF = $(csp_Diff) $(4) $(3)/$(1) $(1) to get this feature working. Very likely, this will no longer be needed in the feature: out of the box support for all push mechanisms is planned. Thanks Fred Vos and Jeroen Hoppenbrouwers for joining the discussion about this feature. - Added preliminary support for using rsync(1) as push mechanism. Use it by setting csp_PUSH = $(csp_rsync_FUNC) Use csp_rsyncssh_FUNC instead of csp_rsync_FUNC if you don't want to use the rsync daemon, but ssh (or rsh). Other new variables introduced: csp_RSYNC (default: rsync), csp_RSYNCFLAGS (default: -zPt --chmod=ugo=rwX). Thanks Ko van der Sloot for suggesting this feature. - Caspar is now licensed under the GNU GPL version 3 or later (no longer v2 or later). - Various improvements in caspar(7) manpage. E.g. example added about using sudo without ssh. - Bugfix in sgml/print.dsl as used by docbook.mk. The error `jade:/usr/share/sgml/caspar/print.dsl:126:24:E: element "SYSTEMITEM" undefined' will no longer show up. - Bugfix in caspar.mk: deal sane with files named like "debian-lenny-install.txt": files which had "-install" in their name never got installed. - Now uses automake 1.10 for building (was 1.9). caspar version 20070729 - Caspar now supports a smart way for temporary overrides of csp_UHOSTS, using csp_UHOSTS_SUBSET. (Actually, this was implemented in release 20070713). - Improvements in caspar(7) manpage: documented csp_BUILD, improved csp_LOAD examples, added example on how to add a "check" target. caspar version 20070713 - Fix bug in csp_sucp(1) when using fourth argument (e.g. via CSP_XARG). This bug caused sudo to die with error "sudo: the `-u' and '-v' options may not be used together". - Minor improvements in caspar(7) manpage. - TODO: recorded lots of new ideas for improvements, thanks to caspar user community at UvT. caspar version 20060618 - Various improvements in caspar(7) manpage. caspar version 20060610 - The variables csp_scp_DIR, csp_scp_UHOSTS, csp_scp_UHOST and csp_cp_DIR, which were introduced in snapshot version 20060216, are no longer supported. These variable were redundant. (Very likely, you'll need csp_UHOST[S], csp_DIR, and maybe csp_PUSH and csp_LOAD only.) caspar version 20060608 - Unstable bleeding edge snapshot release. - Fixed section of csp_sucp(1) manpage. - Minor bugfixes in caspar.mk. - Various improvements in caspar(7) manpage. caspar version 20060531 - Yet another unstable bleeding edge snapshot release. - Typo in caspar.mk which lead to "invalid syntax in conditional" error is fixed. - Added csp_sucp(1) manpage. This script now gets installed. - Minor improvements on other manpages. caspar version 20060216 - Beware! This is an unstable bleeding edge snapshot release. Test results are welcomed. - caspar.mk now has support for installing files using sudo, wrapped in ssh: it runs something like ssh foo@bar "sudo sh -c \"cat - > /duh/blah\"" < blah . To facilitate this, new variables have been introduced: csp_PUSH (default: a csp_scp make function), csp_SUCP, csp_UHOST, csp_UHOSTS, csp_DIR, csp_XARG. A script csp_sucp, dealing with the wrapping, is now shipped; it honors a CSP_SUCP_USER environment variable. Lots of variables are now deprecated: for csp_SUHS now use csp_UHOSTS for csp_SUH now use csp_UHOST for csp_SCPDIR now use csp_DIR The variable csp_CPDIRS will be phased out: no more multiple cp target dirs. Don't worry yet: we still supply full backwards compatibity. - mk/caspar.mk: install and load now are .PHONY targets, as they should be. You'll like this if you have files named "install" or "load". Thanks Guus Sliepen. caspar version 20050424 - (This release was shipped with Debian. We'll try to remain compatibility.) - New variable csp_EXTRAFILES added. This enables one to succesfully run e.g. make .bashrc-install . Aren't you all happy now? Thanks Guus Sliepen for the patch. - In order to have csp_EXTRAFILES behave nice, .%.swp is added to csp_TABOOFILES_DEFAULT and .svn is added to csp_TABOODIRS_DEFAULT. caspar version 20050302 - (This release was shipped with Debian. We'll try to remain compatibility.) - Fixed caspar(7) manpage: the last part was not typesetted. Duh. caspar version 20050301 - BEWARE! BACKWARDS INCOMPATIBILITY! mk/caspar.mk does no longer supply backward compatibility with caspar <= 20030825. If you use old-style Makefiles, you'll have to fix these now. See the 20040531 NEWS item for details. A crude way to update your Makefiles would be to run something along the lines of: % find . -name Makefile | while read f; \ do sed -i 's/SDIR/csp_SCPDIR/g; s/(SUH)/(csp_SUH)/g; \ s/^LOAD /csp_LOAD /; s/(SUHS)/(csp_SUHS)/g; \ s/^SUH /csp_SUH /; s/^SUHS /csp_SUHS /' $f; done % find . -name install.mk | while read f; \ do sed -i 's/^SRDIRS /csp_SUHDIRS /g' $f; done This kinda worked for me. YMMV. - New variables csp_TABOO{DIRS,FILES}_{ADD,SKIP} in caspar.mk. See caspar(7). caspar version 20040721 - This release is planned to get shipped with Debian: it will be available from the Debian archive. - No functional changes, just some minor documentation updates and tweaks of the build system (interesting only for people building a tarball from CVS). caspar version 20040531 - The caspar CVS is moved to http://alioth.debian.org/. Thanks to the Alioth admins! - Experimental install-recursive target added. If you'd like to play with it, you won't need to adjust your Makefile's. Just type `make install-recursive' and decide wether you like this feature. - BEWARE! Change in user interface! caspar.mk variables have been renamed: new name old name ======== ======== csp_CP CP csp_CPFLAGS CPFLAGS csp_CPDIR CDIR csp_CPDIRS CPDIRS csp_LOAD LOAD csp_SCP SCP csp_SCPFLAGS SCPFLAGS csp_SCPDIR SDIR csp_SUH SUH csp_SUHS SUHS csp_SUHDIRS SRDIRS This is done to make sure no unexpected name clashes occur. For now, we offer a backward compatibility hack: your old Makefile's will continue to work. However, you're advised to switch to the new user interface a.s.a.p. caspar version 20030825 - CPFLAGS and SCPFLAGS added to caspar.mk. See caspar(7), as well as the caspar.mk file itself. caspar version 20030809 - Added manpages caspar(7) and caspar-typesetting(7). Installed in /usr[/local]/share/doc/caspar too, in various formats. caspar version 20030803 - See doc/ChangeLog.2002 for news about caspar 20030803 and earlier # This file is maintained at http://git.mdcc.cx/caspar caspar-20140919/README0000644000175000017500000000733312345413601011044 00000000000000# This file is maintained at http://git.mdcc.cx/caspar caspar - Makefile snippets for common tasks See doc/caspar.txt for general information about this package, see INSTALL for generic installation instructions. The caspar homepage is at http://mdcc.cx/caspar/ . Feedback (bugs, feature requests, etc.) can be sent to joostvb *dash* caspar *at* mdcc *dot* cx. After install, directories /usr/local/share/doc/caspar/, /usr/local/share/caspar/mk/ /usr/local/include/caspar/mk/ /usr/local/share/sgml/caspar/ are created and populated, and manpages caspar(7) and caspar-typesetting(7) are installed. - requirements, packages - - - - - - - - - - - - - - - - - - - - - - - - - GNU make. For the typesetting functionality, one needs Jade, LaTeX, W3M, Ghostscript, and Docbook DSSSL. Debian and Ubuntu ship a packaged caspar. If you're interested in a caspar RPM, the spec file on http://mdcc.cx/pub/caspar/caspar.spec might be helpful. - gimme some of the stuff you've been smoking! - - - - - - - - - - - - - - - - "What've you been smoking!? A completely fullblown autoconfiscated tarball for just a eeny weeny Makefile snippet, to be able to install my hosts configuration files from CVS!? I'm not gonna install that! No way!" Well, there's no accounting for taste... If I use the same files on many hosts, I prefer to install them from a tarball. If you were asked to work with a caspar-ized CVS tree, you can work around installing the tarball by doing something like this: cd ~/cvs/kingkong/include kingkong is a CVS module, holding files which should get installed on host kingkong. Create a file install.mk there, which looks like csp_UHOST = admin@kingkong.example.org include caspar/mk/caspar.mk Now, do echo caspar >> .cvsignore mkdir -p caspar/mk and copy caspar.mk to the just created directory caspar/mk/ . - hacking on caspar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Since 2009-12, the caspar code is maintained using git on http://git.mdcc.cx/caspar; start using it by running git clone http://git.mdcc.cx/caspar.git . Contact the author if you'd like to get commit messages in your mailbox. I might get to setting up a mailinglist for that. (The page at http://alioth.debian.org/projects/caspar/ is no longer very useful.) - some thoughts on include path - - - - - - - - - - - - - - - - - - - - - - - - The default GNU make include path is .:PREFIX/include:/usr/gnu/include: /usr/local/include:/usr/include . See make.info, node `Include'. FHS however says: '/usr/include [...] is where all of the system's general-use include files for the C and C++ programming languages should be placed.' This makes GNU make somewhat incompatible with the FHS :( . GNU make could better use something like '/usr/share/mk' in its default include path. We work around this by creating the following symlink when being 'make install'-ed: /usr/local/include/caspar/mk/caspar.mk -> /usr/local/share/caspar/mk/caspar.mk . This enables us to be able to call include caspar/mk/caspar.mk from a Makefile. - some thoughts on implicit rules - - - - - - - - - - - - - - - - - - - - - - - Add our implicit pattern rules to Make built-in implicit rules? When no ./Makefile exists, but ./foo.c does, make knows what to do when asked to ``make foo''. Furthermore, in absence of ./Makefile, ``TEX=latex make blah.dvi'' does something sane with blah.tex. It'd be cool if we could add to Make's built-in implicit rules, and have our implicit rules work, even if no Makefile exists in the current directory. However, I don't think this is possible with current (3.80-6) Make. The built-in implicit rules are compiled in make binary, so adding the caspar ones to some magic directory will likely not work. caspar-20140919/AUTHORS0000644000175000017500000000012712345413601011226 00000000000000caspar is written by Joost van Baal-Ilić < joostvb *dash* caspar *at* mdcc *dot* cx > caspar-20140919/ChangeLog0000644000175000017500000017051712407054555011753 000000000000002014-09-19 Joost van Baal-Ilić * caspar/NEWS: ship it: version 20140919 - The Prnjavor Release 2014-09-19 Joost van Baal-Ilić * caspar/NEWS: choosen a name for this release 2014-09-19 Joost van Baal-Ilić * caspar/NEWS: record missed changes: automaken 2014-09-19 Joost van Baal-Ilić * caspar/NEWS, caspar/bootstrap: record changes 2014-09-02 Joost van Baal-Ilić * caspar/NEWS: git demo 2014-08-08 Joost van Baal-Ilić * caspar/mk/caspar.mk: apply patch contributed by Wessel Dankers in Message-ID: <20140808141010.GB112039@homsar.uvt.nl>: commit b0646dd118d0847e5a7b4af03de664cd261cf6e1 Author: Wessel Dankers Date: Fri Aug 8 16:02:27 2014 +0200 Localize variables, stop changing input variables 1) Localize variables: previously, caspar would use a few generic variable names (such as “FILES”) and assign values to them, blithely overwriting any variable of the same name that the user might be using. With this change, all variables internal to caspar are prefixed using ‘_csp_’. 2) Stop changing input variables: variables that serve as input to caspar should be read-only as far as caspar is concerned. Before this change it would change the value of (at least) csp_UHOSTS, which broke certain advanced usage patterns. With this change, caspar uses internal variables for computations. These modifications do not change the caspar interface. 2014-02-26 Joost van Baal-Ilić * caspar/doc/caspar.azm: new links 2014-02-07 Joost van Baal-Ilić * debian/changelog: ship it: caspar_20140203-1_all.deb 2014-02-06 Joost van Baal-Ilić * debian/changelog: fix spelling error. tnx lintian 2014-02-05 Joost van Baal-Ilić * caspar/NEWS, debian/changelog: start .deb, start next upstream release 2014-02-03 Joost van Baal-Ilić * caspar/Makefile.am: oops: git2cl/ChangeLog 2014-02-03 Joost van Baal-Ilić * caspar/NEWS, caspar/TODO: ship it: 20140203 - The Matonge, BXL Release 2014-02-03 Joost van Baal-Ilić * caspar/Makefile.am, caspar/NEWS, caspar/configure.ac, caspar/doc/Makefile.am, caspar/setversion: distcheck works now... 2014-02-02 Joost van Baal-Ilić * caspar/NEWS, caspar/configure.ac: update AC_COPYRIGHT 2014-02-02 Joost van Baal-Ilić * caspar/TODO: nothing 2014-02-02 Joost van Baal-Ilić * caspar/NEWS, caspar/TODO, caspar/doc/caspar.azm: started documenting "make diff" 2014-02-02 Joost van Baal-Ilić * caspar/NEWS, caspar/TODO, caspar/doc/Makefile.am: do not ignore errors from tidy 2014-02-02 Joost van Baal-Ilić * caspar/NEWS, caspar/TODO, caspar/doc/csp_helper.azm: documented csp_mkdircp 2014-02-02 Joost van Baal-Ilić * caspar/NEWS: more to do 2014-02-02 Joost van Baal-Ilić * caspar/Makefile.am, caspar/NEWS, caspar/configure.ac, caspar/setversion: make distcheck works again, reintroduce m4_include 2014-02-02 Joost van Baal-Ilić * caspar/Makefile.am, caspar/NEWS, caspar/configure.ac: Makefile.am: explictly set path of setversion: use $(top_srcdir)/setversion. Specify DISTCLEANFILES. Add some workarounds in order to make sure "make distcheck" completes again. 2014-02-01 Joost van Baal-Ilić * caspar/Makefile.am, caspar/NEWS: nope, automake-1.11 wont help us 2014-02-01 Joost van Baal-Ilić * caspar/Makefile.am, caspar/NEWS, caspar/bootstrap: s/1.14/1.11/ : maybe older autotools works better... 2014-02-01 Joost van Baal-Ilić * caspar/NEWS: name release, stuff to do 2014-01-06 Joost van Baal-Ilić * debian/changelog: have uploaded 2014-01-06 Joost van Baal-Ilić * caspar/NEWS: start next release 2014-01-06 Joost van Baal-Ilić * caspar/TODO: another autobug found 2014-01-06 Joost van Baal-Ilić * debian/changelog: (preparing) release 20140106-1 2014-01-06 Joost van Baal-Ilić * debian/changelog: release names 2014-01-06 Joost van Baal-Ilić * caspar/NEWS, caspar/TODO: ship it: version 20140106 - The Bakertand Release 2014-01-06 Joost van Baal-Ilić * caspar/TODO: autotools investigation 2014-01-06 Joost van Baal-Ilić * caspar/NEWS, caspar/configure.ac: update upcoming VERSION in NEWS 2013-12-06 Joost van Baal-Ilić * : commit d0f10b2954b794c689cee50e3789f44381cd68c7 Author: Joost van Baal-Ilić Date: Mon Nov 25 07:20:47 2013 +0100 2013-11-22 Joost van Baal-Ilić * caspar/TODO: tnx casper for noticing me 2013-11-21 Joost van Baal-Ilić * caspar/NEWS: pick a name for upcoming release. Bakertand, near Trouwlaan and Katsbogte 2013-11-21 Joost van Baal-Ilić * caspar/TODO: чет 21 07:26 < joostvb_arrr> Fruit: 1.2) wait for and apply Fruit patches чет 21 07:26 < joostvb_arrr> Fruit: staat in caspar TODO чет 21 07:26 < joostvb_arrr> Fruit: had je nog wat liggen? чет 21 07:26 < joostvb_arrr> Fruit: nu is het moment чет 21 08:31 < Fruit> euhw. geen idee чет 21 09:12 < joostvb_arrr> Fruit: a ok dan чет 21 09:56 < joostvb_arrr> n bug in mn todo dus :) 2013-11-21 Joost van Baal-Ilić * caspar/NEWS: document changes 2013-11-21 Joost van Baal-Ilić * caspar/TODO, caspar/doc/Makefile.am: working on tidy-bug 2013-11-21 Joost van Baal-Ilić * caspar/TODO: two bugs have been fixed, update TODO 2013-11-21 Joost van Baal-Ilić * caspar/bootstrap: update from automake/aclocal 1.11 to 1.14 2013-11-21 Joost van Baal-Ilić * caspar/TODO, caspar/doc/csp_helper.azm: working on fixing the csp_mkdircp documentation bug 2013-11-21 Joost van Baal-Ilić * caspar/TODO, caspar/doc/caspar.azm: one bug has been fixed, update TODO 2013-11-19 Joost van Baal-Ilić * caspar/NEWS: start next release 2013-11-19 Joost van Baal-Ilić * caspar/script/csp_sucp: feed not just $3, but also any more args as files to tar 2013-11-19 Joost van Baal-Ilić * caspar/NEWS: ship it: version 20131119 - The Sint Agatha Release 2013-11-19 Joost van Baal-Ilić * caspar/NEWS: update NEWS" 2013-05-21 Joost van Baal-Ilić * caspar/doc/csp_helper.azm: update csp_sucp description: we use tar, not cat. furthermore, we no longer suffer from password-prompt bug 2013-05-21 Joost van Baal-Ilić * caspar/doc/csp_helper.azm: document how to use csp_sucp with interactive sudo password prompt 2013-05-21 Joost van Baal-Ilić * caspar/script/csp_sucp: run sudo non-interactive (-n) when stdin is filled with tar data 2013-05-21 Joost van Baal-Ilić * caspar/script/csp_sucp: csp_sucp: explicitly get rid of tty when stdin is filled with tar in order to make sure this data will not get interpreted as password for sudo 2013-05-21 Joost van Baal-Ilić * caspar/script/csp_sucp: csp_sucp: explicitly pass c to tar. (GNU tar) 1.26 needs at least one option. 2013-05-21 Joost van Baal-Ilić * caspar/script/csp_sucp: csp_sucp: pass -t to ssh, not -T, when refreshing sudo password. gets rid of error message "sudo: no tty present and no askpass program specified " 2013-03-19 Joost van Baal-Ilić * caspar/mk/caspar.mk: Swap dealing with $(csp_TABOOFILES) and $(csp_BUILD) in contructing FILES to be install-ed. Now $(csp_TABOOFILES) is subtracted from $(csp_BUILD) (was: $(csp_BUILD) gets added to result of subtracting $(csp_TABOOFILES) from list of FILES. So, now "csp_BUILD = check" and "csp_TABOOFILES_ADD = check" no longer results in caspar trying to install a file called 'check'. 2013-03-18 Joost van Baal-Ilić * caspar/TODO: tnx Wessel 2012-10-15 Joost van Baal-Ilić * caspar/NEWS: name the upcoming release. Kruisheren Klooster 2012-05-31 Joost van Baal-Ilić * debian/changelog: oops, we _did_ upload 20120514-1 2012-05-30 Joost van Baal-Ilić * debian/changelog: new debian upload: 20120530-1 2012-05-30 Joost van Baal-Ilić * caspar/NEWS: start next release 2012-05-30 Joost van Baal-Ilić * caspar/NEWS: version 20120530 - The Miekoekse Release 2012-05-29 Joost van Baal-Илић * caspar/doc/Makefile.am, caspar/doc/csp_helper.azm, caspar/doc/csp_mkdircp.1, caspar/script/Makefile.am, caspar/script/csp_mkdircp: install csp_mkdircp, install manpage 2012-05-29 Joost van Baal-Илић * caspar/script/csp_install: remove obsolete comment 2012-05-16 Joost van Baal-Ilić * caspar/NEWS: remove extraneous entry 2012-05-14 Wessel Dankers * caspar/NEWS, caspar/mk/caspar.mk: caspar/mk/caspar.mk: do not run bulktargets if no files are available Signed-off-by: Joost van Baal-Ilić 2012-05-16 Joost van Baal-Ilić * debian/changelog: new upstream 2012-05-14 Joost van Baal-Ilić * caspar/TODO, caspar/mk/caspar.mk: new csp_PUSH mechanism: csp_mkdircp_FUNC 2012-05-14 Joost van Baal-Ilić * caspar/script/csp_mkdircp: add yet another caspar helper 2012-05-14 Joost van Baal-Ilić * caspar/TODO: http://mdcc.cx/caspar updated: bug fixed 2012-05-14 Joost van Baal-Ilić * caspar/NEWS: caspar version 20120514 - The Железничка Release 2012-05-14 Joost van Baal-Ilić * caspar/NEWS, caspar/TODO: cosmetics 2012-05-14 Joost van Baal-Ilić * caspar/TODO: plan for fixing breakage 2012-05-14 Joost van Baal-Ilić * caspar/NEWS, caspar/TODO, caspar/script/csp_sucp: new csp_sucp: s/cat/tar/, multisupport 2012-05-11 Joost van Baal-Ilić * caspar/NEWS, caspar/TODO: document breakage introduced by bulktargets support 2012-05-11 Joost van Baal-Ilić * caspar/NEWS: start documenting Wessel patch 2012-05-11 Wessel Dankers * caspar/mk/caspar.mk: prevent spurious whitespace from being introduced Signed-off-by: Joost van Baal-Ilić 2012-05-11 Wessel Dankers * caspar/mk/caspar.mk: install multiple files in one bulk operation Signed-off-by: Joost van Baal-Ilić 2012-05-11 Joost van Baal-Ilić * caspar/TODO, caspar/mk/caspar.mk: csp_SUCP now supports setting csp_SUCP_USER from within Makefile: interface restored (still not fully documented) 2012-05-09 Joost van Baal-Ilić * caspar/TODO: more test results 2012-05-09 Joost van Baal-Ilić * caspar/TODO: tnx Wessel 2012-05-09 Joost van Baal-Ilić * : commit 2967718261c46501dec5f562ab5f59265363054f Author: Joost van Baal-Ilić Date: Wed May 9 09:17:16 2012 +0200 2012-05-08 Joost van Baal-Ilić * debian/changelog: ship it 2012-05-08 Joost van Baal-Ilić * caspar/Makefile.am, caspar/NEWS: start the The Железничка Release 2012-05-08 Joost van Baal-Ilić * caspar/NEWS, caspar/TODO, caspar/doc/Makefile.am: release 20120508 2012-05-08 Joost van Baal-Ilić * caspar/doc/caspar-typesetting.azm, caspar/doc/caspar.azm, caspar/doc/csp_helper.azm: attempt to fix zoem syntax errors 2012-05-08 Joost van Baal-Ilić * debian/changelog, debian/watch: add watch for uscan 2012-05-08 Joost van Baal-Ilić * caspar/doc/Makefile.am, debian/watch: caspar documentation typesetting: be picky upon errors (and warnings) about html syntax. assume html is in utf8 2012-05-08 Joost van Baal-Ilić * debian/changelog: new .deb release 2012-05-08 Joost van Baal-Ilić * caspar/NEWS, caspar/TODO, debian/changelog: start next release 2012-05-07 Joost van Baal-Ilić * caspar/NEWS, caspar/TODO: release 20120420, for Danishka Navin 2012-05-07 Joost van Baal-Ilić * caspar/NEWS: cosmetics 2012-05-07 Joost van Baal-Ilić * caspar/NEWS: fix dedication 2012-05-07 Joost van Baal-Ilić * caspar/NEWS, caspar/TODO: prepare release 20120420 2012-04-20 Joost van Baal-Ilić * caspar/script/csp_sucp: csp_sucp now honors CSP_DEBUG 2012-04-19 Joost van Baal-Ilić * caspar/TODO: cleanup 2012-04-19 Joost van Baal-Ilić * caspar/NEWS, caspar/TODO: upcoming release is for Danishka from Ambalagoda 2012-04-18 Joost van Baal-Ilić * caspar/NEWS, caspar/doc/caspar.azm: document new csp_PUSH interface, support for csp_XARG is dropped 2012-04-18 Joost van Baal-Ilić * caspar/NEWS: record some changes 2012-04-18 Joost van Baal-Ilić * caspar/NEWS: named singalese caspar releases 2012-04-17 Joost van Baal-Ilić * caspar/mk/caspar.mk: add (undocumented) target "debug". fix bug, caspar now somewhat usable again, first example of caspar manpage works 2012-04-17 Joost van Baal-Ilić * caspar/TODO: stuff to do: unbreak 2012-04-17 Joost van Baal-Ilić * caspar/NEWS, debian/changelog: preliminary experimental non-published release 20120417 2012-04-17 Joost van Baal-Ilić * caspar/Makefile.am: deal more sane with suppressing emailadresses in ChangeLog generating 2012-04-16 Joost van Baal-Ilić * caspar/NEWS: started documenting changes 2012-04-16 Joost van Baal-Ilić * caspar/mk/caspar.mk: csp_DIFFXARG support reimplemented (in a slightly less flexible way) 2012-04-16 Joost van Baal-Ilić * caspar/mk/caspar.mk: csp_DIFFXARG no longer supported 2012-04-16 Joost van Baal-Ilić * caspar/mk/caspar.mk: fixed csp_scp_FUNC and some other FUNCs to use new csp_PUSH argument ordering 2012-04-16 Joost van Baal-Ilić * caspar/doc/csp_helper.azm: updated for new helper arguments 2012-04-15 Joost van Baal-Ilić * caspar/mk/caspar.mk: the -t-issue: swap args. wip. now completely borken 2012-04-15 Joost van Baal-Ilić * caspar/script/csp_sucp: fix bug in $CSP_SUCP_USER processing 2012-04-15 Joost van Baal-Ilić * caspar/script/csp_sucp: swap arguments: now csp_sucp (was: file [user@]host dir [su-user]) 2012-04-15 Joost van Baal-Ilić * caspar/script/csp_scp_keep_mode: swap arguments: now csp_scp_keep_mode 2012-04-15 Joost van Baal-Ilić * caspar/script/csp_install: swap arguments: now csp_install 2012-04-14 Joost van Baal-Ilić * caspar/TODO: the -t-issue 2012-04-13 Joost van Baal-Ilić * debian/changelog, debian/control: debian/control: bumped Standards-Version: from 3.9.1 to 3.9.3 (no changes needed). 2012-04-13 Joost van Baal-Ilić * debian/changelog, debian/rules: debian/rules: add build-arch and build-indep targets (thanks lintian). 2012-04-13 Joost van Baal-Ilić * debian/caspar-doc.doc-base.caspar-typesetting, debian/changelog: debian/caspar-doc.doc-base.caspar-typesetting: fix spelling error (thanks lintian). 2012-04-13 Joost van Baal-Ilić * debian/changelog, debian/control: update my name 2012-04-13 Joost van Baal-Ilić * debian/changelog, debian/copyright: copyright updated 2012-04-12 Joost van Baal-Ilić * debian/changelog: new upstream 2012-04-12 Joost van Baal-Ilić * debian/changelog: no longer inspect DEB_BUILD_OPTIONS for debug or nostrip: we are arch independent 2012-04-12 Joost van Baal-Ilić * debian/rules: no longer inspect DEB_BUILD_OPTIONS for debug or nostrip: we are arch independent 2012-03-22 Joost van Baal-Ilić * caspar/TODO, caspar/doc/include.zmm: new zoem syntax, still 2012-03-22 Joost van Baal-Ilić * caspar/TODO: more to do 2012-03-22 Joost van Baal-Ilić * caspar/TODO: more to do 2012-03-22 Joost van Baal-Ilić * caspar/doc/casparize.azm: new zoem syntax 2012-03-22 Joost van Baal-Ilić * caspar/doc/Makefile.am: "make maintainerclean" now more aggresively 2012-03-22 Joost van Baal-Ilić * caspar/Makefile.am: moved caspar website to new host 2012-03-22 Joost van Baal-Ilić * caspar/AUTHORS, caspar/Makefile.am, caspar/doc/include.zmm, caspar/mk/caspar.mk: updated year of copyright, updated my name 2012-03-22 Joost van Baal-Ilić * caspar/TODO: found autotools buildproblem 2012-03-22 Joost van Baal-Ilić * caspar/TODO: one more thing to do before release 2012-03-22 Joost van Baal-Ilić * caspar/doc/caspar-typesetting.azm, caspar/doc/caspar.azm: converting to new zoem syntax: ongoing 2012-03-22 Joost van Baal-Ilić * caspar/NEWS, caspar/doc/caspar-typesetting.azm, caspar/doc/caspar.azm, caspar/doc/casparize.azm, caspar/doc/csp_helper.azm: converting to new zoem syntax 2012-03-22 Joost van Baal-Ilić * caspar/setversion: never include date +%b output in VERSION 2012-03-21 Joost van Baal-Ilić * caspar/NEWS: document changes 2012-03-21 Joost van Baal-Ilić * caspar/doc/caspar-typesetting.azm, caspar/doc/caspar.azm, caspar/doc/casparize.azm, caspar/doc/csp_helper.azm, caspar/doc/include.zmm: converting to aephea >= 10.008-1, zoem >= 11-166-1 2012-03-21 Joost van Baal-Ilić * caspar/NEWS, caspar/TODO, caspar/doc/caspar.azm, caspar/mk/caspar.mk: drop support for csp_CPDIR and csp_CPDIRS 2012-03-21 Joost van Baal-Ilić * caspar/NEWS, caspar/TODO, caspar/doc/caspar.azm: document csp_LOAD $1 trick 2012-03-21 Joost van Baal-Ilić * caspar/NEWS, caspar/TODO, caspar/doc/caspar.azm: document csp_UHOSTS_SKIP 2012-03-21 Joost van Baal-Ilić * caspar/NEWS: document changes 2012-03-21 Joost van Baal-Ilić * caspar/TODO, caspar/doc/caspar.azm, caspar/mk/caspar.mk: implement csp_scpmkdir_FUNC (and csp_MKDIRP) 2011-11-13 Joost van Baal-Ilić * caspar/TODO: tnx Wessel for another idea 2011-11-13 Joost van Baal-Ilić * caspar/TODO: some stuff is done 2011-11-13 Joost van Baal-Ilić * caspar/TODO, caspar/doc/caspar.azm: manpage improvement 2011-11-13 Joost van Baal-Ilić * caspar/NEWS: record changes 2011-11-11 Joost van Baal-Ilić * caspar/TODO: more to do 2011-11-11 Joost van Baal-Ilić * caspar/doc/caspar.azm: document csp_scpmkdir_FUNC-trick. thanks Casper Gielen for idea 2011-06-18 Joost van Baal-Ilić * caspar/doc/caspar.azm: add example: using csp_install_FUNC for installing on local host 2011-06-18 Joost van Baal-Ilić * caspar/doc/caspar.azm, caspar/doc/csp_helper.azm: finished csp_helper manpage: no more FIXMEs 2011-06-08 Joost van Baal-Ilić * : more to do 2011-03-11 Joost van Baal * caspar/TODO, caspar/doc/caspar.azm: got rid of some FIXMEs in manpage: s/ssh/csp_SSH/ 2011-02-25 Joost van Baal * caspar/TODO: tnx Casper Gielen 2011-02-12 Joost van Baal * caspar/TODO, caspar/doc/caspar.azm: more to do 2011-02-12 Joost van Baal * debian/control: fix typo in description 2011-02-12 Joost van Baal * caspar/TODO: more to do 2011-02-12 Joost van Baal * caspar/README: update info on commit mailing list 2011-02-12 Joost van Baal * caspar/doc/Makefile.am: make sure .1 without source does not get removed in "clean" target 2011-02-12 Joost van Baal * debian/changelog, debian/control: new debian packages 2011-02-12 Joost van Baal * caspar/doc/caspar.azm, debian/changelog, debian/control: enhance description, mention puppet/cfengine 2011-02-12 Joost van Baal * debian/changelog, debian/control: update suggests: new packagenames 2011-02-12 Joost van Baal * debian/changelog, debian/rules: new debhelper features 2011-02-12 Joost van Baal * debian/changelog, debian/compat, debian/control: bump debhelper 2011-02-12 Joost van Baal * debian/changelog, debian/control: bumped standards 2011-02-12 Joost van Baal * debian/caspar-doc.install, debian/changelog, debian/compat, debian/control, debian/docs, debian/rules: remove obsolete CVS tags 2011-01-20 Joost van Baal * debian/changelog: new upstream 2010-12-04 Joost van Baal * caspar/Makefile.am: enhance private publish-target 2010-12-04 Joost van Baal * caspar/NEWS: record changes, release 2010-12-04 Joost van Baal * caspar/TODO: TODO: document UI change introduced by latest contributed patch 2010-11-19 Wessel Dankers * caspar/mk/caspar.mk: add $(csp_UHOSTS_SKIP) feature: exclude hosts Signed-off-by: Joost van Baal 2010-11-19 Wessel Dankers * caspar/mk/caspar.mk: combine file lists less clumsily Signed-off-by: Joost van Baal 2010-06-24 Joost van Baal * debian/changelog: new upstream 2010-06-24 Joost van Baal * caspar/NEWS: record changes, release 20100624 2010-05-31 Wessel Dankers * caspar/mk/caspar.mk: fix load-target-as-a-variable didn't work because $(call ...) was expanded too early Signed-off-by: Joost van Baal 2010-04-25 Joost van Baal * debian/changelog: Switch to dpkg-source 3.0 (quilt) format 2010-04-25 Joost van Baal * debian/source/format: Switch to dpkg-source 3.0 (quilt) format 2010-03-29 Joost van Baal * debian/changelog: upload 2010-02-28 Joost van Baal * caspar/TODO: found another bug, encountered when dealing with wacky filenames 2010-02-23 Joost van Baal * caspar/TODO: start draft documenting loadtarget 2010-02-23 Joost van Baal * debian/changelog, debian/control: housekeeping 2010-02-23 Joost van Baal * caspar/doc/Makefile.am: get rid of files left in build directory after distclean 2010-02-23 Joost van Baal * caspar/NEWS: record changes 2010-02-23 Joost van Baal * caspar/doc/csp_install.1, caspar/doc/csp_scp_keep_mode.1, caspar/doc/csp_sucp.1: extra manpages: so requests 2010-02-23 Joost van Baal * caspar/TODO: ship it: 20100223 2010-02-23 Joost van Baal * caspar/Makefile.am, caspar/TODO, caspar/bootstrap: get rid of cvs2cl references 2010-02-23 Joost van Baal * caspar/Makefile.am, caspar/NEWS, caspar/bootstrap: use git2cl 2010-02-23 Joost van Baal * caspar/TODO, caspar/mk/caspar.mk: update year in copyright 2010-01-15 Wessel Dankers * caspar/mk/caspar.mk: handle special characters in filenames a little better Signed-off-by: Joost van Baal 2009-12-18 Wessel Dankers * caspar/NEWS, caspar/TODO, caspar/mk/caspar.mk: csp_LOAD values are now defined as variables Signed-off-by: Joost van Baal 2009-12-16 Joost van Baal * caspar/NEWS: tweak layout 2009-12-15 Wessel Dankers * caspar/TODO: Number entries in TODO file (awk 'BEGIN{a=1;b=1}/^---/{a++;b=1}{if(gsub("^- ", a"."b") ")) b++}1') Signed-off-by: Joost van Baal 2009-12-15 Wessel Dankers * caspar/NEWS, caspar/TODO, caspar/mk/caspar.mk: fix error checking when running commands Signed-off-by: Joost van Baal 2009-12-16 Joost van Baal * caspar/TODO: Revert "Number entries in TODO file"; since this patch was not cleanly cherrypickable. This reverts commit 18d15886c98a5a553f78dd74514fbf0540a5d02d. 2009-12-15 Wessel Dankers * caspar/TODO: Number entries in TODO file (awk 'BEGIN{a=1;b=1}/^---/{a++;b=1}{if(gsub("^- ", a"."b") ")) b++}1') 2009-12-13 Joost van Baal * caspar/README, caspar/TODO: migration to git 2009-12-13 Joost van Baal * caspar/TODO: more stuff to to for migrating from CVS to git 2009-12-13 Joost van Baal * caspar/NEWS, caspar/TODO: conversion from CVS to git 2009-11-14 joostvb * debian/changelog, debian/control: oops 2009-11-14 joostvb * debian/changelog: ship it 2009-11-14 joostvb * caspar/NEWS, caspar/doc/.cvsignore, caspar/doc/casparize.azm: caspar version 20091115 2009-11-14 joostvb * debian/caspar-doc.install, debian/caspar.README.Debian, debian/changelog, debian/control, debian/rules: shuffle docs between caspar and caspar-doc 2009-11-14 joostvb * debian/caspar-doc.doc-base.csp_helper, debian/caspar-doc.doc-base.csp_sucp, debian/changelog, debian/rules: Renamed caspar-doc.doc-base.csp_sucp to caspar-doc.doc-base.csp_helper. 2009-11-14 joostvb * caspar/NEWS, caspar/TODO, caspar/doc/caspar-typesetting.azm, caspar/doc/caspar.azm, caspar/doc/casparize.azm, caspar/doc/csp_helper.azm: fixed manpage crosslinking 2009-11-14 joostvb * caspar/doc/casparize.azm: caspar(1) is now called casparize 2009-11-14 joostvb * caspar/NEWS, caspar/TODO, caspar/doc/Makefile.am, caspar/doc/caspar1.azm, caspar/doc/casparize.azm, caspar/script/Makefile.am, caspar/script/caspar, caspar/script/casparize: Renamed caspar(1) to casparize(1) 2009-11-14 joostvb * caspar/TODO: one more before the debian upload 2009-11-14 joostvb * caspar/doc/csp_helper.azm: fix typo 2009-11-14 joostvb * caspar/NEWS, caspar/TODO: release 20091114 2009-11-14 joostvb * caspar/doc/.cvsignore: [no log message] 2009-11-14 joostvb * caspar/doc/.cvsignore, caspar/doc/Makefile.am, caspar/doc/csp_install.1, caspar/doc/csp_scp_keep_mode.1, caspar/doc/csp_sucp.1: csp_helper(1) is the same manpage as csp_install(1), csp_scp_keep_mode(1) and csp_sucp(1) 2009-11-14 joostvb * caspar/doc/csp_helper.azm, caspar/doc/csp_sucp.azm: csp_sucp manpage merged in new csp_helper(1) 2009-10-27 joostvb * caspar/TODO: reschedule 2009-10-24 joostvb * caspar/TODO: apply patch from Wessel Dankers 2009-09-29 joostvb * caspar/mk/caspar.mk, caspar/script/csp_install: define csp_install_FUNC and csp_scp_keep_mode_FUNC in caspar.mk in order to make UI more usable 2009-09-26 joostvb * debian/changelog: changelog timestamp should be time of _last_ change 2009-09-26 joostvb * debian/changelog, debian/control: bumped standards 2009-09-26 joostvb * caspar/NEWS, caspar/THANKS: fixed a bug in caspar1.azm, this is release 20090926 (really) 2009-09-26 joostvb * caspar/bootstrap, caspar/doc/caspar1.azm, caspar/setversion: move from automake 1.10 to 1.11 2009-09-26 joostvb * caspar/NEWS, caspar/TODO, caspar/script/csp_scp_keep_mode: version 20090926 2009-09-26 joostvb * caspar/NEWS, caspar/TODO, caspar/script/Makefile.am, caspar/script/csp_install, caspar/script/csp_scp_keep_mode: add csp_install and csp_scp_keep_mode: 2 scripts for more robust installs 2009-09-09 joostvb * caspar/TODO: thanks Thijs K, Wessel 2009-09-01 joostvb * caspar/TODO: another way to call mkdir if needed 2009-08-12 joostvb * caspar/doc/Makefile.am, caspar/doc/caspar1.azm, caspar/script/Makefile.am, caspar/script/caspar: typeset and install docs and script, cvs tags 2009-08-12 joostvb * caspar/doc/caspar1.azm, caspar/script/caspar: add license info as per: wo 12 15:08 < joostvb> hoppie: en is t gpl v 3 or (at your option) any later version ? wo 12 15:08 < hoppie> any later wo 12 15:09 < joostvb> hu wat? wo 12 15:09 < hoppie> Ik ga even proberen om dit te schrijven, maar ik weet niet of ik Zoom c.s. heb staan. GPL 3 en later. [18:16] [joostvb(+i)] [9:meuknet/#uvt] 2009-08-12 joostvb * caspar/doc/caspar1.azm, caspar/script/caspar: Add contributions from Jeroen Hoppenbrouwers, in Message-ID: , Date: Sat, 25 Jul 2009 14:18:43 +0200 and Message-Id: <20090812153730.AD9DC108005@hoppie.nl>, Date: Wed, 12 Aug 2009 17:37:30 +0200 (CEST). 2009-07-13 joostvb * caspar/TODO: record feature request from Arvid Gibas 2009-06-22 joostvb * debian/changelog, debian/copyright: pending commit: license 2009-06-22 joostvb * debian/TODO, debian/caspar-doc.doc-base.caspar, debian/caspar-doc.doc-base.caspar-typesetting, debian/caspar-doc.doc-base.csp_sucp, debian/changelog: fix doc-bae stuff, release 2009-06-22 joostvb * debian/TODO, debian/caspar-doc.doc-base.caspar, debian/changelog, debian/control: bumped standards 2009-06-22 joostvb * caspar/NEWS, caspar/TODO, caspar/setversion: allow for user override of version 2009-04-07 joostvb * caspar/TODO: more wishlist bugs by Wessel Dankers 2009-04-07 joostvb * debian/changelog, debian/copyright: license 2009-04-07 joostvb * debian/changelog, debian/control: tnx lintian 2009-04-06 joostvb * caspar/NEWS: (snapshot) release 20090406 2009-04-06 joostvb * caspar/NEWS, caspar/mk/caspar.mk: use csp_DIFF for user interface, not csp_COMP: consistency 2009-04-06 joostvb * caspar/NEWS, caspar/TODO, caspar/mk/caspar.mk: add support for rsync(1). Thanks Ko van der Sloot for the suggestion 2009-04-06 joostvb * caspar/NEWS, caspar/TODO: documented behaviour of diff target when using csp_CP_FUNC in NEWS, added plan for fix to TODO 2009-04-05 joostvb * caspar/NEWS, caspar/TODO, caspar/mk/caspar.mk: implent "diff" make target 2009-04-05 joostvb * caspar/NEWS, caspar/TODO: add upgrade scenario 2009-04-05 joostvb * caspar/NEWS, caspar/TODO: record changes: GPL v3 2009-04-05 joostvb * caspar/bootstrap, caspar/configure.ac, caspar/doc/Makefile.am, caspar/mk/caspar.mk, caspar/mk/docbook.mk, caspar/mk/pod.mk: Now licensed under GPL v3 (not 2). Use automake 1.10, not 1.9 2009-03-15 joostvb * caspar/NEWS, caspar/THANKS: record changes, add hoppie to THANKS 2009-03-15 joostvb * caspar/NEWS, caspar/README, caspar/TODO, caspar/doc/caspar.azm, caspar/mk/caspar.mk: Support for csp_SUH, csp_SUHS, csp_SUHDIRS and csp_SCPDIR is dropped. 2009-03-15 joostvb * caspar/TODO: tnx Fruit 2009-03-14 joostvb * caspar/TODO: more user feedback for wishlist bug prio 2009-03-14 joostvb * caspar/TODO: [no log message] 2009-03-14 joostvb * caspar/TODO: reschedule prio of wishlist bugs, by popular request 2009-02-05 joostvb * caspar/TODO: Bug: ``The function $(subst -install,,$@) in caspar.mk breaks when filename itself has the substring -install. We should strip only a _trailing_ '-install' from the maketarget.'' is now fixed. 2009-02-05 joostvb * caspar/mk/caspar.mk: bugfix: deal sane with files named like "debian-lenny-install.txt": files which had "-install" in their never got install-ed 2008-12-21 joostvb * caspar/doc/caspar.azm: tnx hoppie for caspar blog 2008-12-15 joostvb * caspar/sgml/print.dsl: bugfix: jade:/usr/share/sgml/caspar/print.dsl:126:24:E: element "SYSTEMITEM" undefined 2008-09-21 joostvb * caspar/TODO: added another wishlist bug 2008-04-28 joostvb * caspar/doc/caspar.azm: add another example: sudo without ssh 2007-11-23 joostvb * caspar/TODO: jhoeke found a bug: caspar chokes on : in filenames 2007-09-02 joostvb * caspar/TODO: [no log message] 2007-09-02 joostvb * caspar/TODO.local: remove obsolete stuff 2007-08-15 joostvb * debian/changelog: release it 2007-08-15 joostvb * debian/control: new debhelper 2007-07-31 joostvb * caspar/TODO: add some new ideas. thanks Fred Vos 2007-07-29 joostvb * caspar/TODO: [no log message] 2007-07-29 joostvb * caspar/TODO: more to do 2007-07-29 joostvb * debian/changelog, debian/compat, debian/dirs, debian/docs: [no log message] 2007-07-29 joostvb * debian/changelog, debian/compat: bump dh compat 2007-07-29 joostvb * debian/changelog, debian/rules: conditionally run make distclean 2007-07-29 joostvb * debian/changelog, debian/compat, debian/rules: Move DH_COMPAT from debian/rules to debian/compat 2007-07-29 joostvb * debian/changelog, debian/control: get rid of obsolete cruft 2007-07-29 joostvb * debian/changelog, debian/control: fix typo 2007-07-29 joostvb * caspar/NEWS, caspar/THANKS, caspar/doc/ChangeLog.2002: [no log message] 2007-07-29 joostvb * caspar/Makefile.am: new host for publishing tarball: mdcc.cx hoster moved 2007-07-29 joostvb * caspar/NEWS: release 20070729 2007-07-29 joostvb * caspar/TODO.local, caspar/mk/caspar.mk: [no log message] 2007-07-29 joostvb * caspar/TODO: reported a bug in csp_BUILD 2007-07-29 joostvb * caspar/doc/caspar.azm: added another usage example for csp_LOAD: adding a "check" target 2007-07-29 joostvb * caspar/doc/caspar.azm: added example usage of csp_BUILD 2007-07-29 joostvb * caspar/NEWS, caspar/README, caspar/THANKS, caspar/TODO, caspar/doc/caspar.azm: refer to document "Versiebeheer en software-packages: Waarom en Hoe". plan phaseout of obsolete variables csp_SUHS 2007-07-29 joostvb * caspar/TODO: Tested csp_UHOSTS_SUBSET. Gave example toplevel Makefile without need to install Makefiles in all non-leaf directories too in caspar(7). Thanks Wessel Dankers. 2007-07-29 joostvb * caspar/doc/caspar.azm: documented csp_UHOSTS_SUBSET 2007-07-28 joostvb * caspar/TODO: users vote for a quick implementation of csp_UHOSTS_SUBSET 2007-07-28 joostvb * caspar/TODO: some cleanup of TODO items 2007-07-13 joostvb * caspar/NEWS: release 20070713 2007-07-13 joostvb * caspar/TODO: report more issues found by UvT caspar user community 2007-05-21 joostvb * caspar/NEWS: be more clear about the fixed bug 2007-05-19 joostvb * caspar/doc/caspar.azm: the cvs-conf package has disappeared from the internet: stop mentioning it 2007-05-12 joostvb * caspar/doc/caspar.azm: add infrastructures.org link 2007-04-18 joostvb * debian/changelog, debian/control: changes inspired by tetex-live entering debian 2007-03-15 joostvb * caspar/TODO: bug found by Mark van Diem 2007-02-14 joostvb * caspar/TODO: two more wishlist bugs 2007-02-09 joostvb * caspar/doc/caspar.azm: improved manpage after suggestion from Jan Kooistra 2007-02-06 joostvb * caspar/TODO: hint for migration 2007-02-05 joostvb * caspar/TODO: more stuff to document 2007-01-30 joostvb * rpm/caspar.spec, rpm/rpm.log: install doc, now builds 2007-01-30 joostvb * rpm/caspar.spec: first shot at building an rpm for this package 2007-01-11 joostvb * caspar/TODO: found out about ssh ControlMaster 2007-01-11 joostvb * caspar/TODO: people _keep_ asking for this 2006-12-12 joostvb * caspar/NEWS: [no log message] 2006-12-12 joostvb * caspar/script/csp_sucp: sudo: the `-u' and '-v' options may not be used together 2006-11-30 joostvb * caspar/TODO: document idea for toplevel Makefile from Wessel Dankers 2006-10-29 joostvb * caspar/mk/caspar.mk: deal sane with empty csp_UHOSTS_SUBSET 2006-10-23 joostvb * caspar/TODO, caspar/mk/caspar.mk: first untested and undocumented implementation of csp_UHOSTS_SUBSET 2006-10-23 joostvb * caspar/TODO: clarify what we want 2006-08-31 joostvb * caspar/TODO: one way to call mkdir if appropriate. Thanks Wessel Dankers 2006-07-09 joostvb * caspar/doc/caspar.azm: yet another alternative 2006-06-18 joostvb * debian/changelog: announce change in ui 2006-06-18 joostvb * debian/changelog: new upstream 2006-06-18 joostvb * caspar/NEWS: release 20060618 2006-06-18 joostvb * caspar/TODO: caspar(7) can get improved even more 2006-06-18 joostvb * caspar/doc/caspar.azm: cosmetics 2006-06-18 joostvb * caspar/doc/caspar.azm: minor bugfixes 2006-06-18 joostvb * caspar/TODO, caspar/doc/caspar.azm: added example combining csp_sucp_FUNC and csp_LOAD to caspar(7) 2006-06-12 joostvb * caspar/TODO: another real-life example 2006-06-10 joostvb * caspar/Makefile.am: don't rebuild before publishing tarballs 2006-06-10 joostvb * debian/changelog, debian/copyright: [no log message] 2006-06-10 joostvb * caspar/NEWS: (snapshot) release 20060610 2006-06-10 joostvb * caspar/doc/caspar.azm: document csp_UHOST 2006-06-10 joostvb * caspar/TODO, caspar/doc/caspar.azm: suggest private variable my_EXEC for abstracting ssh. caspar now abstracts scp and csp_sucp; for now users should deal with abstracting ssh and sudo themselves 2006-06-10 joostvb * caspar/TODO, caspar/doc/caspar.azm: add note on (in)sanity of choosing GNU Make to implement caspar 2006-06-10 joostvb * caspar/TODO, caspar/doc/Makefile.am, caspar/doc/caspar.azm, caspar/doc/include.zmm, caspar/mk/caspar.mk, caspar/mk/docbook.mk: updated copyright: 2006 2006-06-10 joostvb * caspar/TODO, caspar/mk/caspar.mk: remove support for csp_scp_DIR csp_scp_UHOSTS csp_scp_UHOST csp_cp_DIR from caspar.mk 2006-06-10 joostvb * caspar/NEWS, caspar/TODO, caspar/doc/caspar.azm: removing *_scp_* variables, phase 1 2006-06-09 joostvb * caspar/TODO: more ideas after brainstorming with Wessel Dankers. Tnx. 2006-06-08 joostvb * debian/changelog: [no log message] 2006-06-08 joostvb * caspar/NEWS: (snapshot) release 20060608 2006-06-08 joostvb * caspar/TODO, caspar/doc/caspar.azm: add example "Plugging your own install script in caspar" to caspar(7) 2006-06-07 joostvb * caspar/NEWS, caspar/TODO: updates 2006-06-07 joostvb * caspar/TODO, caspar/mk/caspar.mk: new variable csp_BUILD, to execute optional build target before install 2006-06-07 joostvb * caspar/mk/caspar.mk: fix bug in combining csp_SCPFLAGS with csp_UHOSTS 2006-06-07 joostvb * caspar/NEWS, caspar/mk/caspar.mk: Drop support for csp_sucp_UHOST, csp_sucp_DIR, and csp_sucp_USER. One should just uses csp_UHOST(S), csp_DIR and csp_XARG, and set csp_PUSH. Removed backwards compatibility rule from caspar.mk. 2006-06-07 joostvb * caspar/doc/caspar.azm: add some examples for simple usage 2006-06-05 joostvb * caspar/TODO: [no log message] 2006-06-05 joostvb * caspar/doc/caspar.azm: use new style variable names in all examples. more details on overruling variables on commandline 2006-06-05 joostvb * caspar/mk/caspar.mk: fix bug in backwards compatibility mode. would have shown up when combining csp_SCPDIR with csp_SUHS 2006-06-01 joostvb * caspar/TODO, caspar/doc/caspar.azm: fixed first example in caspar(7) 2006-05-31 joostvb * debian/caspar-doc.doc-base.csp_sucp, debian/caspar-doc.install, debian/changelog, debian/control, debian/rules: [no log message] 2006-05-31 joostvb * debian/changelog: [no log message] 2006-05-31 joostvb * caspar/doc/caspar-typesetting.azm, caspar/doc/caspar.azm, caspar/doc/csp_sucp.azm, caspar/doc/include.zmm: make csp_sucp(1) announce itself under the right man section 2006-05-31 joostvb * caspar/TODO: idea to make the default install rule more pluggable 2006-05-31 joostvb * caspar/NEWS: snapshot release 20060531 2006-05-31 joostvb * caspar/doc/caspar.azm: fix typesetting 2006-05-31 joostvb * caspar/NEWS, caspar/doc/caspar-typesetting.azm, caspar/doc/caspar.azm, caspar/script/Makefile.am: make it typeset with zoem 06-080 2006-05-31 joostvb * caspar/TODO, caspar/doc/caspar-typesetting.azm, caspar/doc/caspar.azm, caspar/doc/csp_sucp.azm: add note on sshd_config PermitRootLogin to caspar(7) 2006-05-31 joostvb * caspar/doc/.cvsignore, caspar/script/.cvsignore: [no log message] 2006-05-31 joostvb * caspar/TODO, caspar/doc/caspar-typesetting.azm: add reference to latex-make utility 2006-05-31 joostvb * debian/caspar-doc.doc-base.caspar-typesetting, debian/changelog: [no log message] 2006-05-19 joostvb * caspar/TODO, caspar/doc/caspar.azm: add caspar alternatives to caspar(7) 2006-05-19 joostvb * caspar/TODO: more to do: alternatives 2006-05-19 joostvb * caspar/doc/caspar.azm: extra example. tnx to Jurrit for helping me find out such an example was lacking 2006-04-25 joostvb * caspar/TODO: more to do 2006-03-19 joostvb * caspar/NEWS: [no log message] 2006-03-19 joostvb * caspar/NEWS: [no log message] 2006-03-19 joostvb * caspar/Makefile.am, caspar/NEWS, caspar/TODO, caspar/configure.ac, caspar/doc/Makefile.am, caspar/doc/csp_sucp.azm, caspar/script/Makefile.am: document csp_sucp in manpage. Install csp_sucp and csp_sucp.1 2006-03-18 joostvb * caspar/TODO: we need more testing 2006-03-18 joostvb * caspar/script/csp_sucp: fail gracefully in case no args are passed 2006-02-16 joostvb * caspar/doc/caspar.azm, caspar/mk/caspar.mk: fix typo which leads to "caspar/mk/caspar.mk:27: *** invalid syntax in conditional. Stop." 2006-02-16 joostvb * caspar/NEWS: snapshot release 20060216 2006-02-16 joostvb * caspar/TODO, caspar/doc/caspar.azm, caspar/script/csp_sucp: add example for csp_sucp usage to manpage, update list of supported variables 2006-02-16 joostvb * caspar/NEWS, caspar/TODO, caspar/mk/caspar.mk: work on csp_PUSH-plugin architecture: a make function for each plugin 2006-02-15 joostvb * caspar/TODO, caspar/mk/caspar.mk: investigating make functions 2006-02-15 joostvb * caspar/NEWS, caspar/TODO, caspar/script/csp_sucp: [no log message] 2006-02-15 joostvb * caspar/TODO, caspar/doc/caspar.azm, caspar/mk/caspar.mk, caspar/script/csp_sucp: csp_sucp honor CSP_SUCP_USER env var; caspar.mk honors csp_sucp_USER make var 2006-02-15 joostvb * debian/changelog, debian/control, debian/copyright: [no log message] 2006-02-15 joostvb * debian/changelog, debian/control: o my, ftbfs! 2006-02-08 joostvb * caspar/TODO, caspar/script/csp_sucp: csp_sucp groks an optional fourth argument 2006-02-07 joostvb * caspar/TODO: we will drop support for csp_CPDIRS 2006-02-07 joostvb * caspar/mk/caspar.mk: enabled csp_PUSH rule, listed some variables as to be phased out (and kept for backward compatibility) 2006-02-07 joostvb * caspar/doc/caspar.azm: updated examples to new UI 2006-01-29 joostvb * caspar/Makefile.am, caspar/NEWS: [no log message] 2006-01-29 joostvb * caspar/doc/include.zmm: adapted for zoem >= 05-328 2006-01-29 joostvb * caspar/Makefile.am, caspar/configure.ac, caspar/mk/caspar.mk: updated copyright statement 2006-01-29 joostvb * caspar/TODO, caspar/bootstrap: use the autoreconf wrapper 2006-01-28 joostvb * caspar/TODO: [no log message] 2006-01-28 joostvb * caspar/mk/caspar.mk: postpone csp_PUSH and csp_DIR implementation: use explicit csp_sucp_UHOST(S) and csp_sucp_DIR 2006-01-28 joostvb * caspar/mk/caspar.mk: renamed csp_PUSHUHS to csp_sucp_UHOSTS, defaulting to csp_UHOSTS 2006-01-28 joostvb * caspar/script/csp_sucp, caspar/script/sucp: renamed sucp to csp_sucp 2006-01-28 joostvb * caspar/TODO: add plan on new UI design: enable plugins 2005-12-08 joostvb * debian/changelog, debian/control: [no log message] 2005-10-26 joostvb * caspar/TODO: more to do 2005-10-01 joostvb * caspar/TODO, caspar/script/sucp: -T hack, thanks Wessel Dankers 2005-09-21 joostvb * caspar/doc/caspar.azm: adding notes on PUSH* variables 2005-09-20 joostvb * caspar/TODO: list what needs to be done to finish the sucp script 2005-09-20 joostvb * caspar/script/sucp: sucp: one way to use the new csp_PUSH stuff 2005-09-20 joostvb * caspar/mk/caspar.mk: bleeding edge setup of way not to use scp, but a ssh/sudo combination. new variables: csp_PUSHDIR, csp_PUSH, csp_PUSHUHS. new script: sucp 2005-09-20 joostvb * caspar/TODO: documented one way to implement sudo-support 2005-08-01 joostvb * caspar/TODO: [no log message] 2005-08-01 joostvb * caspar/TODO: [no log message] 2005-07-24 joostvb * caspar/sgml/print.dsl: typeset more sanely: typewriter 2005-06-24 joostvb * caspar/TODO: feature request added 2005-06-23 joostvb * caspar/mk/caspar.mk: install and load now are .PHONY targets. Thanks Guus Sliepen 2005-04-25 joostvb * solaris/doc/log: [no log message] 2005-04-24 joostvb * solaris/pkg/README.Solaris: [no log message] 2005-04-24 joostvb * solaris/pkg/Makefile.m4, solaris/pkg/pkginfo.in: use csbs--mainline--0.1--patch-26 CSBS_ARCH hook 2005-04-24 joostvb * solaris/doc/log: [no log message] 2005-04-24 joostvb * solaris/doc/log: current state of csbs 2005-04-24 joostvb * solaris/pkg/Makefile.m4, solaris/pkg/README.Solaris: new upstream 2005-04-24 joostvb * debian/changelog, debian/copyright, debian/postinst, debian/postrm, debian/preinst, debian/prerm: remove crap 2005-04-24 joostvb * debian/TODO, debian/caspar.README.Debian, debian/changelog, debian/rules: more hints for lost debian victims 2005-04-24 joostvb * caspar/Makefile.am: local publish and sign targets added, for release management 2005-04-24 joostvb * caspar/NEWS: release 20050424 2005-04-24 joostvb * caspar/TODO, caspar/doc/caspar.azm: more notes about alternatives to caspar(7) 2005-04-20 joostvb * caspar/NEWS: [no log message] 2005-04-20 joostvb * caspar/doc/caspar.azm: document new defaults 2005-04-20 joostvb * caspar/doc/caspar.azm, caspar/mk/caspar.mk: just the csp_EXTRAFILES variable is enough for this functionality. got rid of csp_EXTRAFILES_SKIP and csp_EXTRAFILES_ADD 2005-04-19 joostvb * caspar/THANKS: thanks Guus 2005-04-19 joostvb * caspar/doc/caspar.azm: add example of csp_EXTRAFILES usage 2005-04-19 joostvb * caspar/doc/caspar.azm: apply patch by Guus Sliepen documenting csp_EXTRAFILES*, Message-ID: <20050419151213.GJ22475@sliepen.eu.org> 2005-04-19 joostvb * caspar/mk/caspar.mk: fix typo in guus patch 2005-04-19 joostvb * caspar/mk/caspar.mk: applied patch by Guus Sliepen, Message-ID: <20050419145647.GI22475@sliepen.eu.org>: add suppport for csp_EXTRAFILES, csp_EXTRAFILES_SKIP, csp_EXTRAFILES_ADD 2005-03-31 joostvb * debian/TODO: tnx Laurent 2005-03-09 joostvb * solaris/pkg/README.Solaris: [no log message] 2005-03-09 joostvb * solaris/pkg/Makefile.m4, solaris/pkg/README.Solaris, solaris/pkg/bootstrap: [no log message] 2005-03-06 joostvb * solaris/doc/log, solaris/pkg/Makefile.m4: [no log message] 2005-03-05 joostvb * solaris/pkg/pkginfo.in: csbs now offers more expansions 2005-03-05 joostvb * solaris/pkg/prototype: list of files in package. for now, let s not autogenerate it 2005-03-04 joostvb * solaris/doc/log, solaris/pkg/README.Solaris: [no log message] 2005-03-04 joostvb * solaris/pkg/README.Solaris: [no log message] 2005-03-03 joostvb * solaris/pkg/pkginfo.in: doe die maar 2005-03-03 joostvb * solaris/doc/readme.txt: [no log message] 2005-03-03 joostvb * solaris/pkg/pkginfo.in: should use more stuff as defined in Makefile.m4, actually 2005-03-03 joostvb * solaris/pkg/Makefile.m4: [no log message] 2005-03-03 joostvb * solaris/doc/readme.txt, solaris/pkg/Makefile: use csbs 2005-03-02 joostvb * solaris/doc/readme.txt, solaris/pkg/Makefile: first shot at solaris package infrastructure 2005-03-02 joostvb * debian/TODO: done 2005-03-02 joostvb * debian/changelog, debian/rules: new upstream 2005-03-02 joostvb * caspar/NEWS, caspar/TODO: release 20050302 2005-03-02 joostvb * caspar/mk/caspar.mk: CVS typically is not a file: removed from csp_TABOOFILES_DEFAULT 2005-03-02 joostvb * caspar/doc/caspar.azm: fix escaping, manpage gets typesetted completely again 2005-03-01 joostvb * debian/TODO: [no log message] 2005-03-01 joostvb * caspar/TODO: aargh. borken manpage 2005-03-01 joostvb * caspar/mk/Makefile.am: [no log message] 2005-03-01 joostvb * caspar/NEWS: release 20050301 2005-03-01 joostvb * caspar/mk/Makefile.am: cosmetics 2005-03-01 joostvb * caspar/.cvsignore: [no log message] 2005-03-01 joostvb * caspar/NEWS, caspar/TODO: give some hints on how to upgrade old-style Makefiles 2005-03-01 joostvb * caspar/doc/caspar.azm: document install-recursive make target 2005-02-28 joostvb * caspar/mk/caspar.mk: no longer supply backward compatibility with caspar <= 20030825 2005-02-28 joostvb * caspar/TODO, caspar/doc/caspar.azm: supply example for TABOOFILES hack 2005-02-23 joostvb * caspar/doc/caspar.azm, caspar/mk/caspar.mk: INCLUDE doesnt seem a natural name. Use SKIP and ADD. Documented new variables 2005-02-23 joostvb * caspar/mk/caspar.mk: new variabled csp_TABOO{FILES,DIRS}_{INCLUDE,EXCLUDE}, to tweak csp_TABOO{FILES,DIRS}. Thanks to Wessel Dankers 2005-02-23 joostvb * caspar/TODO: perhaps csp_TABOODIRS could use more documentation 2005-02-16 joostvb * caspar/TODO: you might not need caspar 2004-09-09 joostvb * caspar/doc/caspar.azm: document new csp_TABOO{FILES,DIRS} variables 2004-09-09 joostvb * caspar/mk/docbook.mk: use "typeset" as default target: cooperate nice with caspar.mk 2004-09-09 joostvb * caspar/mk/caspar.mk, caspar/mk/pod.mk: new variables: csp_TABOOFILES and csp_TABOODIRS 2004-09-09 joostvb * caspar/mk/caspar.mk: never install pod2html item cache and pod2html directory cache 2004-08-15 joostvb * caspar/TODO: have submitted at GNU directory 2004-08-07 joostvb * caspar/TODO: gnu directory hassle... 2004-08-07 joostvb * caspar/TODO: [no log message] 2004-08-07 joostvb * caspar/caspar.azm: remove old cruft 2004-07-21 joostvb * debian/changelog, debian/control, debian/rules: [no log message] 2004-07-21 joostvb * caspar/TODO, caspar/mk/Makefile.am: another shot at making the symlink creation work for binary packagers 2004-07-21 joostvb * caspar/NEWS: release 20040721 2004-07-21 joostvb * caspar/TODO: more documentation needed 2004-07-21 joostvb * caspar/README: announce upload to Debian archive 2004-07-21 joostvb * caspar/.cvsignore: [no log message] 2004-07-21 joostvb * caspar/bootstrap: be verbose about possible problems 2004-07-21 joostvb * caspar/Makefile.am: the dist and distcheck targets no build both tar.gz and tar.bz2 2004-07-21 joostvb * caspar/configure.ac, caspar/mk/Makefile.am: use $(LN_S), not ln -s: more portable. honor $(DESTDIR): automake >= 1.7 compliant 2004-07-21 joostvb * caspar/bootstrap: added warning about pkg-config and aclocal 1.8 not cooperating 2004-07-11 joostvb * caspar/AUTHORS, caspar/README, caspar/TODO: cleaning up TODO file 2004-07-03 joostvb * caspar/TODO: [no log message] 2004-07-03 joostvb * caspar/TODO: more ideas for improvements 2004-06-19 joostvb * caspar/doc/caspar.azm: added note about yet another possible alternative: sup 2004-05-31 joostvb * debian/copyright, debian/postinst, debian/postrm, debian/preinst, debian/prerm, debian/rules: [no log message] 2004-05-31 joostvb * debian/caspar-doc.install, debian/changelog, debian/control, debian/rules: [no log message] 2004-05-31 joostvb * debian/control, debian/rules: [no log message] 2004-05-31 joostvb * debian/caspar-doc.install: [no log message] 2004-05-31 joostvb * debian/changelog, debian/control, debian/rules: splitting -doc off 2004-05-31 joostvb * debian/caspar-doc.doc-base.caspar, debian/caspar-doc.doc-base.caspar-typesetting, debian/changelog, debian/control, debian/doc-base.caspar, debian/doc-base.caspar-typesetting: splitting into caspar and caspar-doc packages 2004-05-31 joostvb * caspar/NEWS: release 20040531 2004-05-31 joostvb * caspar/README: notes on cvs commit email messages for developers 2004-05-31 joostvb * caspar/bootstrap: minor tweak in build system 2004-05-31 joostvb * caspar/TODO, caspar/doc/caspar-typesetting.azm, caspar/doc/caspar.azm: [no log message] 2004-05-31 joostvb * caspar/doc/include.zmm: nice header in manpage, even with zoem > 03-265 2004-05-31 joostvb * caspar/TODO: [no log message] 2004-05-31 joostvb * caspar/NEWS: documented new variable names and ui change 2004-05-31 joostvb * caspar/mk/caspar.mk: some more cleanup in var names 2004-05-31 joostvb * caspar/doc/caspar.azm: document new variable names, with csp_ prefix 2004-05-30 joostvb * caspar/mk/caspar.mk: renamed variables (the user interface): now have csp_ prefix 2004-03-11 joostvb * caspar/NEWS: [no log message] 2004-03-11 joostvb * caspar/TODO: more ideas 2004-03-11 joostvb * caspar/mk/docbook.mk: added comment about using GNU Make built-in implicit rules 2004-03-11 joostvb * caspar/mk/caspar.mk: added experimental install-recursive target 2004-03-11 joostvb * caspar/sgml/print.dsl: added comments on changing default font-size 2004-02-26 joostvb * caspar/TODO: more to do 2004-01-23 joostvb * rpm/caspar.spec: [no log message] 2004-01-05 joostvb * rpm/caspar.spec: first shot at building RHL 8.0 rpm 2003-12-17 joostvb * caspar/bootstrap: [no log message] 2003-12-17 joostvb * caspar/NEWS, caspar/README: notes on CVS move to Alioth 2003-12-15 joostvb * caspar/doc/caspar.azm, caspar/mk/caspar.mk, debian/copyright: fixed copyright 2003-11-12 joostvb * caspar/doc/caspar.azm: added link to cvs-conf project page 2003-11-12 joostvb * caspar/doc/caspar.azm: DIR and SDIR should have trailing /, tnx Fruit 2003-11-04 joostvb * caspar/mk/pod.mk: dont remove *.txt and friends which are not generated from pod 2003-08-25 joostvb * debian/changelog: [no log message] 2003-08-25 joostvb * caspar/NEWS: [no log message] 2003-08-22 joostvb * caspar/doc/caspar.azm: notes on new variables added 2003-08-22 joostvb * caspar/mk/caspar.mk: caspar.mk now honors CPFLAGS and SCPFLAGS: extra arguments for cp and scp 2003-08-09 joostvb * debian/changelog, debian/doc-base.caspar, debian/doc-base.caspar-typesetting, debian/rules: [no log message] 2003-08-09 joostvb * caspar/Makefile.am, caspar/doc/Makefile.am: fixed bugs in automake 1.7 build hooks 2003-08-09 joostvb * caspar/doc/caspar-typesetting.azm, caspar/doc/caspar.azm: use zoem linking of manpages 2003-08-09 joostvb * caspar/ChangeLog: now autogenerated 2003-08-09 joostvb * caspar/.cvsignore, caspar/Makefile.am, caspar/NEWS, caspar/doc/.cvsignore: [no log message] 2003-08-09 joostvb * caspar/doc/caspar-typesetting.azm: manpage, from comments in docbook.mk and pod.mk 2003-08-09 joostvb * caspar/doc/include.zmm: zoem include macros 2003-08-09 joostvb * caspar/doc/ChangeLog.2002: splitted off new autogenerated ChangeLog 2003-08-09 joostvb * caspar/doc/Makefile.am, caspar/doc/caspar.azm, caspar/mk/docbook.mk, caspar/mk/pod.mk: moved comments in source files to proper manpage: caspar-typesetting(7) added 2003-08-09 joostvb * caspar/THANKS, caspar/configure.ac, caspar/setversion: tnx stijn for zoem build enviroment hooks 2003-08-09 joostvb * caspar/.cvsignore, caspar/Makefile.am, caspar/NEWS, caspar/bootstrap, caspar/doc/Makefile.am: ChangeLog now is automagically generated from CVS. NEWS actually will have content 2003-08-09 joostvb * caspar/doc/Makefile.am: distribute plain ascii too 2003-08-09 joostvb * caspar/README: lots of info moved to doc/caspar.azm 2003-08-09 joostvb * caspar/doc/.cvsignore, caspar/doc/Makefile.am, caspar/doc/caspar.azm: zoemized caspar README file 2003-08-09 joostvb * caspar/.cvsignore, caspar/README, caspar/caspar.azm: converting README to zoem format 2003-08-06 joostvb * caspar/THANKS: [no log message] 2003-08-06 joostvb * caspar/mk/caspar.mk: applied patch from Anton Sluijtman to exclude emacs backup files 2003-08-02 joostvb * caspar/ChangeLog, caspar/mk/Makefile.am, caspar/sgml/Makefile.am: aargh 2003-08-02 joostvb * debian/changelog: [no log message] 2003-08-02 joostvb * caspar/ChangeLog, caspar/Makefile.am, caspar/bootstrap, caspar/configure.ac, caspar/configure.in, caspar/mk/caspar.mk, caspar/setversion: new build system 2003-07-24 joostvb * caspar/TODO: done, not released yet 2003-07-24 joostvb * caspar/ChangeLog, caspar/mk/docbook.mk: [no log message] 2003-07-24 joostvb * caspar/mk/docbook.mk: use pdflatex for generating pdf from LaTeX, make sure tocs gets created from LaTeX source 2003-07-24 joostvb * caspar/TODO: generating pdf from LaTeX is broken 2003-07-23 joostvb * debian/changelog: [no log message] 2003-07-23 joostvb * debian/changelog, debian/control, debian/copyright, debian/dirs, debian/docs, debian/postinst, debian/postrm, debian/preinst, debian/prerm, debian/rules: moved from cvs/gelfand/debian/caspar 2003-07-18 joostvb * caspar/ChangeLog: [no log message] 2003-07-18 joostvb * caspar/ChangeLog: [no log message] 2003-07-18 joostvb * caspar/mk/docbook.mk: run pdfjadetex 3 times: fixes toc. rm -f intermediate files: no sure wether they will get created. added license referal 2003-07-16 joostvb * caspar/mk/docbook.mk: use pdfjadetex for generating pdf: fonts look better 2003-07-14 joostvb * caspar/TODO: more stuff todo added 2003-05-17 joostvb * caspar/ChangeLog, caspar/README: [no log message] 2003-04-27 joostvb * caspar/ChangeLog: [no log message] 2003-04-27 joostvb * caspar/TODO, caspar/sgml/html.dsl: did some toc investigations 2003-03-31 joostvb * caspar/.cvsignore, caspar/ChangeLog, caspar/mk/Makefile.am: [no log message] 2003-03-31 joostvb * caspar/mk/docbook.mk: sane default target for docbook stuff 2003-02-12 joostvb * caspar/ChangeLog, caspar/README: [no log message] 2003-02-12 joostvb * caspar/mk/caspar.mk: added SUHS hack 2003-02-05 joostvb * caspar/ChangeLog: [no log message] 2003-02-05 joostvb * caspar/mk/caspar.mk: ommitting SDIR results in scp to get skipped 2003-02-05 joostvb * caspar/.cvsignore, caspar/bootstrap, caspar/mk/.cvsignore, caspar/sgml/.cvsignore: [no log message] 2003-02-03 joostvb * caspar/ChangeLog: [no log message] 2003-02-03 joostvb * caspar/ChangeLog, caspar/README, caspar/THANKS, caspar/TODO, caspar/mk/Makefile.am, caspar/mk/pod.mk: [no log message] 2002-11-22 joostvb * caspar/ChangeLog, caspar/README: rsync note 2002-09-11 joostvb * caspar/ChangeLog, caspar/README: [no log message] 2002-05-04 joostvb * caspar/ChangeLog, caspar/README: [no log message] 2002-04-02 joostvb * caspar/ChangeLog, caspar/TODO: [no log message] 2002-03-31 joostvb * caspar/ChangeLog: [no log message] 2002-03-31 joostvb * caspar/ChangeLog, caspar/README, caspar/THANKS, caspar/TODO, caspar/mk/docbook.mk: [no log message] 2002-03-31 joostvb * caspar/TODO: [no log message] 2002-03-24 joostvb * caspar/TODO: added reference to cfenginge, tnx flacoste 2002-03-13 joostvb * caspar/ChangeLog, caspar/Makefile.am, caspar/TODO, caspar/configure.in, caspar/mk/docbook.mk, caspar/sgml/Makefile.am, caspar/sgml/html.dsl, caspar/sgml/print.dsl: [no log message] 2002-03-01 joostvb * caspar/ChangeLog, caspar/README, caspar/TODO.local, caspar/bootstrap, caspar/mk/Makefile.am, caspar/mk/caspar.mk, caspar/mk/docbook.mk: [no log message] 2002-03-01 joostvb * caspar/ChangeLog: [no log message] 2002-02-27 joostvb * caspar/ChangeLog, caspar/README, caspar/TODO, caspar/TODO.local, caspar/mk/Makefile.am, caspar/mk/caspar.mk, caspar/mk/install.mk, caspar/setversion: [no log message] 2002-02-27 joostvb * caspar/TODO: [no log message] 2002-02-26 joostvb * caspar/ChangeLog, caspar/README, caspar/TODO: [no log message] 2002-02-26 joostvb * caspar/ChangeLog, caspar/TODO, caspar/mk/Makefile.am, caspar/mk/install.mk: [no log message] 2002-02-26 joostvb * caspar/TODO: [no log message] 2002-02-26 joostvb * caspar/.cvsignore, caspar/AUTHORS, caspar/BUGS, caspar/ChangeLog, caspar/Makefile.am: [no log message] 2002-02-26 joostvb * caspar/BUGS, caspar/Makefile.am: [no log message] 2002-02-26 joostvb * caspar/Makefile.am, caspar/NEWS, caspar/README, caspar/THANKS, caspar/TODO, caspar/bootstrap, caspar/configure.in, caspar/mk/Makefile.am, caspar/mk/install.mk, caspar/setversion: [no log message] 2002-02-26 joostvb * *** empty log message *** caspar-20140919/Makefile.in0000644000175000017500000006402612407054561012240 00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # This script is free software; you can distribute it and/or modify it # under the terms of the GNU GPL. See the file COPYING. VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' 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@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = . DIST_COMMON = INSTALL NEWS README AUTHORS ChangeLog \ $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/configure $(am__configure_deps) COPYING THANKS \ TODO install-sh missing ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/VERSION.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_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 = 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 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__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)$(docdir)" DATA = $(doc_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive 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) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_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,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.xz GZIP_ENV = --best DIST_TARGETS = dist-xz 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@ AWK = @AWK@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ PACKAGE = @PACKAGE_TARNAME@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ am__leading_dot = @am__leading_dot@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = $(datadir)/doc/$(PACKAGE) dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ CONFIGURE_DEPENDENCIES = VERSION.m4 AUTOMAKE_OPTIONS = dist-xz check-news SUBDIRS = doc mk sgml script doc_DATA = AUTHORS COPYING ChangeLog README THANKS TODO NEWS MY_RHOST = beskar.mdcc.cx MY_RDIR = $(MY_RHOST):www/mdcc.cx/pub/caspar/ EXTRA_DIST = bootstrap setversion stamp.day stamp.month stamp.year VERSION.m4 VERSION DISTCLEANFILES = VERSION.m4 VERSION stamp.day stamp.month stamp.year all: all-recursive .SUFFIXES: 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 \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: $(am__configure_deps) $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): $(am__aclocal_m4_deps) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__aclocal_m4_deps): install-docDATA: $(doc_DATA) @$(NORMAL_INSTALL) @list='$(doc_DATA)'; test -n "$(docdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(docdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(docdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(docdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(docdir)" || exit $$?; \ done uninstall-docDATA: @$(NORMAL_UNINSTALL) @list='$(doc_DATA)'; test -n "$(docdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(docdir)'; $(am__uninstall_files_from_dir) # 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. $(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//`; \ 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; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-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 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) @case `sed 15q $(srcdir)/NEWS` in \ *"$(VERSION)"*) : ;; \ *) \ echo "NEWS not updated; not releasing" 1>&2; \ exit 1;; \ esac $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done -test -n "$(am__skip_mode_fix)" \ || find "$(distdir)" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__post_remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 $(am__post_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_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz $(am__post_remove_distdir) dist-tarZ: distdir @echo WARNING: "Support for shar distribution archives 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__post_remove_distdir) dist-shar: 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 shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__post_remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__post_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 # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.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 ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir) chmod u+w $(distdir) mkdir $(distdir)/_build $(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 \ $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ --srcdir=.. --prefix="$$dc_install_base" \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 $(am__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: @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)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile $(DATA) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(docdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: 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: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-docDATA install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-docDATA .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ am--refresh check check-am clean clean-cscope clean-generic \ 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-docDATA 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 installdirs-am \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am uninstall-docDATA ChangeLog: NEWS git log --pretty --numstat --summary | sed 's/][^>]*>//g; s/][^>]*>//g' | git2cl >ChangeLog VERSION.m4 VERSION stamp.year stamp.month stamp.day: ChangeLog $(top_srcdir)/setversion sign: for i in $(DIST_ARCHIVES); do echo "gpg --armor --detach-sign $$i"; gpg --armor --detach-sign $$i; done publish: for i in $(DIST_ARCHIVES); do echo "scp $$i $$i.asc $(MY_RDIR)"; scp $$i $$i.asc $(MY_RDIR); done @echo now run ssh $(MY_RHOST) update-tar-symlinks caspar # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: caspar-20140919/Makefile.am0000644000175000017500000000304312345413601012212 00000000000000## Process this file with automake to produce Makefile.in ## This file is maintained at http://git.mdcc.cx/caspar # This script is free software; you can distribute it and/or modify it # under the terms of the GNU GPL. See the file COPYING. ## Copyright (C) 2003, 2004, 2005, 2006, 2010, 2011 Joost van Baal ## see booststrap for git2cl ChangeLog: NEWS git log --pretty --numstat --summary | sed 's/][^>]*>//g; s/][^>]*>//g' | git2cl >ChangeLog VERSION.m4 VERSION stamp.year stamp.month stamp.day: ChangeLog $(top_srcdir)/setversion CONFIGURE_DEPENDENCIES = VERSION.m4 ## CONFIGURE_DEPENDENCIES = VERSION.m4 ## Hook `dist-bzip2' to `dist'. AUTOMAKE_OPTIONS = dist-xz check-news ## used in make dist[check] ##VERSION = @PACKAGE_VERSION@ PACKAGE = @PACKAGE_TARNAME@ SUBDIRS = doc mk sgml script docdir = $(datadir)/doc/$(PACKAGE) doc_DATA = AUTHORS COPYING ChangeLog README THANKS TODO NEWS ## local targets MY_RHOST = beskar.mdcc.cx MY_RDIR = $(MY_RHOST):www/mdcc.cx/pub/caspar/ sign: for i in $(DIST_ARCHIVES); do echo "gpg --armor --detach-sign $$i"; gpg --armor --detach-sign $$i; done publish: for i in $(DIST_ARCHIVES); do echo "scp $$i $$i.asc $(MY_RDIR)"; scp $$i $$i.asc $(MY_RDIR); done @echo now run ssh $(MY_RHOST) update-tar-symlinks caspar ## Only files from the current directory or from subdirectory which ## don't have their own Makefile.am should be listed here. EXTRA_DIST = bootstrap setversion stamp.day stamp.month stamp.year VERSION.m4 VERSION DISTCLEANFILES = VERSION.m4 VERSION stamp.day stamp.month stamp.year caspar-20140919/configure0000755000175000017500000031547012407054562012105 00000000000000#! /bin/sh # From configure.ac 20140919. # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.69 for Caspar 20140919. # # Report bugs to . # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. # # # Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2009, 2010 Joost van Baal # Copyright (C) 2012, 2013, 2014 Joost van Baal-Ilić # ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then _as_can_reexec=no; export _as_can_reexec; # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 as_fn_exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org and $0: joostvb-caspar@mdcc.cx about your system, including any $0: error possibly output before this message. Then install $0: a modern shell, or manually run the script under such a $0: shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall # in an infinite loop. This has already happened in practice. _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Caspar' PACKAGE_TARNAME='caspar' PACKAGE_VERSION='20140919' PACKAGE_STRING='Caspar 20140919' PACKAGE_BUGREPORT='joostvb-caspar@mdcc.cx' PACKAGE_URL='' ac_subst_vars='LTLIBOBJS LIBOBJS LN_S AM_BACKSLASH AM_DEFAULT_VERBOSITY AM_DEFAULT_V AM_V am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p MKDIR_P INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking enable_silent_rules ' ac_precious_vars='build_alias host_alias target_alias' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures Caspar 20140919 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/caspar] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of Caspar 20140919:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-silent-rules less verbose build output (undo: "make V=1") --disable-silent-rules verbose build output (undo: "make V=0") Report bugs to . _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF Caspar configure 20140919 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2009, 2010 Joost van Baal Copyright (C) 2012, 2013, 2014 Joost van Baal-Ilić _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by Caspar $as_me 20140919, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu am__api_version='1.14' ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; esac # 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 ( 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". as_fn_error $? "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 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 # Ok. : else as_fn_error $? "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } # 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 rm -f conftest.file test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then am_missing_run="$MISSING " else am_missing_run= { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 $as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} fi if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi # 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. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if ${ac_cv_path_mkdir+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi test -d ./--version && rmdir ./--version if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. MKDIR_P="$ac_install_sh -d" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null # Check whether --enable-silent-rules was given. if test "${enable_silent_rules+set}" = set; then : enableval=$enable_silent_rules; fi case $enable_silent_rules in # ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=1;; esac am_make=${MAKE-make} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 $as_echo_n "checking whether $am_make supports nested variables... " >&6; } if ${am_cv_make_support_nested_variables+:} false; then : $as_echo_n "(cached) " >&6 else 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 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 $as_echo "$am_cv_make_support_nested_variables" >&6; } if test $am_cv_make_support_nested_variables = yes; then AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AM_BACKSLASH='\' if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE='caspar' VERSION='20140919' cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: # # mkdir_p='$(MKDIR_P)' # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AMTAR='$${TAR-tar}' # We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar pax cpio none' am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' # 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: 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: . 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 as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 $as_echo_n "checking whether ln -s works... " >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 $as_echo "no, using $LN_S" >&6; } fi ac_config_files="$ac_config_files Makefile doc/Makefile mk/Makefile sgml/Makefile script/Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # Transform confdefs.h into DEFS. # Protect against shell expansion while executing Makefile rules. # Protect against Makefile macro expansion. # # If the first sed substitution is executed (which looks for macros that # take arguments), then branch to the quote section. Otherwise, # look for a macro that doesn't take arguments. ac_script=' :mline /\\$/{ N s,\\\n,, b mline } t clear :clear s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g t quote s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g t quote b any :quote s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g s/\[/\\&/g s/\]/\\&/g s/\$/$$/g H :any ${ g s/^\n// s/\n/ /g p } ' DEFS=`sed -n "$ac_script" confdefs.h` ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs { $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 $as_echo_n "checking that generated files are newer than configure... " >&6; } if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 $as_echo "done" >&6; } : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by Caspar $as_me 20140919, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE Configuration files: $config_files Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ Caspar config.status 20140919 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --he | --h | --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; "mk/Makefile") CONFIG_FILES="$CONFIG_FILES mk/Makefile" ;; "sgml/Makefile") CONFIG_FILES="$CONFIG_FILES sgml/Makefile" ;; "script/Makefile") CONFIG_FILES="$CONFIG_FILES script/Makefile" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" eval set X " :F $CONFIG_FILES " shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi caspar-20140919/VERSION.m40000644000175000017500000000004512407054555011554 00000000000000m4_define([AD1_VERSION], [20140919]) caspar-20140919/configure.ac0000644000175000017500000000152512345413601012447 00000000000000dnl dnl This file is maintained at http://git.mdcc.cx/caspar dnl dnl After editing this file, run automake to regenerate Makefile.in's. dnl Process this file with autoconf to produce a configure script. # This script is free software; you can distribute it and/or modify it # under the terms of the GNU GPL. See the file COPYING. m4_include([VERSION.m4])dnl AC_INIT([Caspar], [AD1_VERSION], [joostvb-caspar@mdcc.cx], [caspar]) AC_PREREQ(2.67) AM_INIT_AUTOMAKE AC_COPYRIGHT([ Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2009, 2010 Joost van Baal Copyright (C) 2012, 2013, 2014 Joost van Baal-Ilić ]) AC_REVISION([AD1_VERSION]) AC_PROG_INSTALL AC_PROG_LN_S AC_CONFIG_FILES([ Makefile doc/Makefile mk/Makefile sgml/Makefile script/Makefile ]) AC_OUTPUT caspar-20140919/aclocal.m40000644000175000017500000006472612407054560012041 00000000000000# generated automatically by aclocal 1.14.1 -*- Autoconf -*- # Copyright (C) 1996-2013 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_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.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'.])]) # Copyright (C) 2002-2013 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_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # 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.14' 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.14.1], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_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.14.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-2013 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/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # 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 # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # 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` ]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This 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]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # 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.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 AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [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], [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 # 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]) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl 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: # # AC_SUBST([mkdir_p], ['$(MKDIR_P)']) # We need awk for the "check" target. 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 _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_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])], [m4_define([AC_PROG_CXX], m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_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 ]) 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: 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: . 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 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. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001-2013 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_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi AC_SUBST([install_sh])]) # Copyright (C) 2003-2013 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. # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997-2013 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_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # 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 if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then am_missing_run="$MISSING " else am_missing_run= AC_MSG_WARN(['missing' script is too old or missing]) fi ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001-2013 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_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])]) # _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)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996-2013 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_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[[\\\"\#\$\&\'\`$am_lf]]*) AC_MSG_ERROR([unsafe absolute working directory name]);; esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; esac # 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 ( 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 # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi 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) 2009-2013 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-2013 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_INSTALL_STRIP # --------------------- # 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 # 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 # 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'. 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-2013 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_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. 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-2013 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_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # 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 # $tardir. # tardir=directory && $(am__tar) > result.tar # # 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. 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' m4_if([$1], [v7], [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], [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 /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_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR caspar-20140919/COPYING0000644000175000017500000010451312302342414011211 00000000000000 GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . caspar-20140919/THANKS0000644000175000017500000000124212345413601011070 00000000000000Stijn van Dongen, for writing zoem, and inventing the zoem-ized hooks in the build environment. Joost Kooij, for helping with the embrionic caspar mk/ implementation, looooong ago (in 2000, I believe). Francis J. Lacoste, for helping me writing print.dsl and html.dsl. Guus Sliepen, for contributing an excellent and much wanted patch. Anton Sluijtman, for offering a patch to caspar.mk, adding useful functionality. Wessel Dankers, for giving lots of useful suggestions for improvements. Jeroen Hoppenbrouwers, for promoting caspar and giving useful feedback and contributions. Tilburg University (http://www.uvt.nl/), for using this software, and giving comments. caspar-20140919/TODO0000644000175000017500000003404212345413601010651 00000000000000# This file is maintained at http://git.mdcc.cx/caspar fix NEWS: - FIX autofoo dnbfs bug, find bug number in bts. - Makefile.am: explictly set path of setversion: use $(top_srcdir)/setversion. Specify DISTCLEANFILES. Tweak EXTRADIST. - configure.ac, setversion: use generic AD1_VERSION, not CASPAR_VERSION - configure.ac: AC_PREREQ(2.67), reintroduce and update AC_COPYRIGHT, set AC_REVISION. - FIXME: Makefile.am: +## CONFIGURE_DEPENDENCIES = VERSION.m4 - FIXME: bootstrap: +#AUTOMAKE=automake-1.14 ACLOCAL=aclocal-1.14 autoreconf --install --symlink +AUTOMAKE=automake-1.11 ACLOCAL=aclocal-1.11 autoreconf --install --symlink - doc/Makefile.am: no longer ignore errors from tidy(1). - doc/csp_helper.azm: documented csp_mkdircp. - doc/caspar.azm: started documenting 'make diff'. ------------ link to https://gist.github.com/Argure/7586151 : https://nulpunt.nu/ caspar users https://gist.github.com/Argure/7355868 Patrick "Argure" Godschalk https://github.com/Argure --- release critical ---- - make distcheck fails with: config.status: creating script/Makefile make[1]: entrant dans le répertoire « /home/joostvb/git/caspar/caspar/caspar-20131121/_build » CDPATH="${ZSH_VERSION+.}:" && cd .. && /bin/bash /home/joostvb/git/caspar/caspar/caspar-20131121/missing aclocal-1.14 autom4te: cannot create autom4te.cache: Aucun fichier ou dossier de ce type aclocal-1.14: error: echo failed with exit status: 1 make[1]: *** [../aclocal.m4] Erreur 1 make[1]: quittant le répertoire « /home/joostvb/git/caspar/caspar/caspar-20131121/_build » even on fresh git checkout. 1.14 is current as of 2014-01-06 (debian: Package: automake Source: automake-1.14 Version: 1:1.14-3 jessie (testing) Version: 1:1.14.1-2 sid , autoconf : wheezy (stable) 2.69-1 jessie (testing) 2.69-2 sid (unstable) 2.69-2 ) ("make dist" works, though; maybe "make dist && make distcheck" works reliably...) building from .tar.gz on system with automake-1.11 (not 1.14) : CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/bash /usr/local/src/debian/caspar/20140106/caspar-20140106/missing aclocal-1.14 /usr/local/src/debian/caspar/20140106/caspar-20140106/missing: ligne81: aclocal-1.14 : commande introuvable WARNING: 'aclocal-1.14' is missing on your system. You should only need it if you modified 'acinclude.m4' or 'configure.ac' or m4 files included by 'configure.ac'. The 'aclocal' program is part of the GNU Automake package: It also requires GNU Autoconf, GNU m4 and Perl in order to run: make[1]: *** [aclocal.m4] Erreur 127 it also tries to run automake-1.14 - decide upon scp keep_mode: purge, and suggest scp -p ? it currently lacks multisupport. - "make install" fails when csp_PUSH is set to function without multi-support. fix csp_install: add multisupport (also: keep_mode, sucp. rest might just work) - caspar.mk is not completely tested yet, first and second example in manpage succeed, test 3rd and later. $ CSP_DEBUG=yes CSP_SUCP_USER=jantje csp_sucp joe@bilbo /etc/ inittab works fine. "export CSP_SUCP_USER=joe; make" works fine too. "make CSP_SUCP_USER=joe" works fine too. csp_SUCP_USER = joe csp_PUSH = $(csp_sucp_FUNC) make works too. at least, it did in release 20120508.... - fix manpage typesetting: install tidy @ buildhost, my name in caspar.ps looks like crap - The "csp_install -t dir file [file]" issue zo 13 17:34 < Fruit> die tooltjes die meegeleverd worden zo 13 17:35 < Fruit> die hebben typisch een destination directory en een stel bestanden als argumenten zo 13 17:35 < Fruit> het zou handig zijn voor de shellscripter als die destination directory het eerste argument was zo 13 17:38 < joostvb> das natuurlijk totaal backwards incompatible met alles zo 13 17:38 < Fruit> valt wel mee zo 13 17:38 < joostvb> maar iig wel n goed idee zo 13 17:38 < Fruit> cp -t destdir file1 file2 zo 13 17:38 < joostvb> -t , die doet t m zo 13 17:38 < Fruit> ik weet niet of scp dat kent zo 13 17:39 < joostvb> nou ja, als 1ste arg van csp_PUSH -t is, dan zo 13 17:39 < Fruit> magoe dat maakt ook niet zoveel uit zo 13 17:39 < joostvb> implementeren volgens nieuw interface zo 13 17:39 < Fruit> want bij csp_PUSH kun je toch de volgorde van de argumenten zelf bepalen zo 13 17:39 < Fruit> hm hacken op -t lijkt me een heel lelijk en slecht idee zo 13 17:40 < Fruit> je hoeft echt alleen maar die tooltjes aan te passen, en de plaatsen in caspar zelf waar precies en alleen díe tooltjes aangeroepen worden zo 13 17:40 < Fruit> er hoeft geen caspar api-wijziging zo 13 17:40 < joostvb> en als mensen hun eigen tooltjes geschreven hebben? zo 13 17:40 < joostvb> hun eigen csp_PUSH gebouwd? zo 13 17:41 < Fruit> dan hebben ze de aanroep daarvan zelf onder controle zo 13 17:41 < Fruit> misschien nieuwe set tooltjes introduceren met andere namen zo 13 17:41 < Fruit> op dit moment accepteert elk van die tooltjes 1 file en 1 dir zo 13 17:41 < Fruit> da's jammer. zo 13 17:42 < Fruit> omdat shellscripts een beetje beperkt zijn, is n files gevolgd door 1 dir moeilijk te implementeren zo 13 17:42 < joostvb> csp_install dir file [file] zo 13 17:42 < Fruit> dat idee zo 13 17:43 < Fruit> csp_mkdirscpomgwtfbbqrofl dir file1 [file2 ...] zo 13 17:43 < joostvb> ok, dan kan ik maken: zo 13 17:43 < joostvb> csp_install -t dir file [file] zo 13 17:43 < joostvb> naast: zo 13 17:43 < joostvb> csp_install file dir zo 13 17:43 < joostvb> das backwards compatible zo 13 17:43 < Fruit> true zo 13 17:44 < joostvb> en over 5 jaar wordt "-t" optioneel zo 13 17:44 < Fruit> en je kunt geen files meer installeren die ‘-t’ heten. zo 13 17:44 < joostvb> klopt zo 13 17:44 < joostvb> fuk die mensen zo 13 17:44 < joostvb> :) zo 13 17:44 < Fruit> maar robuust gedrag met spaties en andere tekens in bestandsnamen is nooit een sterk punt van caspar geweest. zo 13 17:44 < joostvb> pcies zo 13 17:44 < joostvb> van make ook niet zo 13 17:45 < Fruit> ja! fuk die mensen. alle bestanden moeten gewoon foo.txt heten. en die hippies met hun bar.txt kunnen de boom in zo 13 17:45 < joostvb> zo is t maar net 0.-3) add to documentation: vr 25 16:37 < casper> bah, maar het werkt wel, de reverse cowboy: make diff | patch -R -p0 [16:43] [joostvb(+i)] [3:#root(+ips)] irc.uvt.nl 0.-2) fix FIXME's in doc/caspar.azm 0.-1) complete documentation of "make diff" and "make -diff" in caspar.azm, see NEWS (not trivial...) 1.1) finish convert to git: announce on webpage, create public repo ( http://git.fruit.je/caspar , http://git.mdcc.cx/ , ssh://git/~joostvb/git/caspar.git ) update README on git status (see FIXME's). set up commit list. 1.3) documenteer de new style loadtarget hack even better: run "make load" with: combining new load-style is usefull too: csp_LOAD = lolwut lolwut = echo ssh $1 DFHKSJDHFJKSDHJK lolwut: for h in $(csp_UHOSTS);do echo ssh $$h DFHKSJDHFJKSDHJK;done use case: /etc/nsd/zones/ , first push to auth servers, then ssh to al caches for a forced flush of cache. --- ook best wel belangrijk --- 2.3) test & document rsync support 2.5) Ideas insprired by a discussion with Fred Vos: (Lots of users have asked for such a feature.) a "make check" could be usefull: test wether previous svn version is on server before scp-ing. za 14 21:29 < hoppie> en als je dan helemaal over the top wilt, kun je eventueel dat linken aan install, zodat alleen waar dat nodig is geïnstalleerd wordt. Maar da's echt optioneel. Preliminary support added; Document this! Nice trick: make diff || make install make foobar-diff || make foobar-install Make this work out of the box for all push mechanisms: add generic csp_REXEC next to csp_PUSH. --- typesetting stuff --- 3.1) get toc printed in html mode. even while using nochunks mode. 3.2) license should be printed, see rh vs deb doc. 3.3) add zoem.mk, for zoem ( http://micans.org/zoem ) typesetting. --- install stuff --- 4.1) ma 13 14:07 < arvid> joostvb, ik heb een feature request voor caspar :p ma 13 14:13 < arvid> joostvb, een exclude host mogelijkheid ma 13 14:13 < arvid> je bijv. een heleboel host en je wilt alleen 1 host uitsluiten ma 13 14:14 < arvid> s/host/hosts ma 13 14:16 < joostvb> een csp_TABOOUHOSTS wil je dus, i c ma 13 14:17 < arvid> joostvb, yep dat klopt [14:18] [joostvb(+i)] [13:meuknet/#root(+ips)] 2009-07 Arvid Gibas 4.2) add standard target: "make print-hosts" 4.4) "install" should depend upon "load". (should it?) ("make" currently does both "install" and "load"; it does not do "build". (really!?)). and/or: caspar should support "make build-recursive". 4.5) csp_BUILD is a broken concept. Users are better off declaring csp_EXTRAFILES and creating rules for each file that needs to be built. csp_BUILD is an alias to csp_EXTRAFILES for backwards compatibility. 4.6) caspar chokes on spaces in filenames: Makefile: csp_CPDIR = /var/php/public/jccpmanu/https include caspar/mk/caspar.mk joostvb@scriptix:~/sv...k/sources/jccpmanu/https% ls JCCP logo.jpg Makefile index.html logo.html JCCPlogo.jpg empty.html loginform.html php3 joostvb@scriptix:~/sv...k/sources/jccpmanu/https% make -n /bin/sh: line 1: test: JCCP: binary operator expected /bin/sh: line 1: test: JCCP: binary operator expected cp "JCCPlogo.jpg" /var/php/public/jccpmanu/https; cp "empty.html" /var/php/public/jccpmanu/https; cp "index.html" /var/php/public/jccpmanu/https; cp "loginform.html" /var/php/public/jccpmanu/https; cp "logo.html" /var/php/public/jccpmanu/https; make does not support arrays, but space-separated strings, so: tag won't fix. 4.7) caspar chokes on : in filenames: Makefile: csp_SCPDIR = /etc/sysconfig/network-scripts/ csp_SUH = root@cauchy include caspar/mk/caspar.mk joostvb@kovalevskaya:~/sv...ysconfig/network-scripts% ls Makefile ifcfg-eth0 ifcfg-eth0:1 joostvb@kovalevskaya:~/sv...ysconfig/network-scripts% make caspar/mk/caspar.mk:87: *** multiple target patterns. Stop. Bug found by Johan Hoeke. 4.29) caspar chokes on files named ";anything" joostvb@bruhat:~% touch ';q' joostvb@bruhat:~% make -n caspar/mk/caspar.mk:94: *** missing rule before commands. Stop. 4.8) Suggest (or offer) a more generic interface than my_EXEC for the load target. Users are invited to extend the interface. They can add extra variables to their push mechanisms. So we might be able to abstract LOAD one day. Perhaps something like $(foreach uh,$(csp_UHOSTS),$(call csp_EXEC,$(uh),$(csp_DIR),$(csp_XARG));) could work. If a user's exec wrapper needs more arguments, these can get introduced as implicit variables, outside $1, $2, ... 4.9) Explain why it's good practice to do include ../../include/install.mk in manpage example. 4.10) Don't do csp_scp_FUNC = $(csp_SCP) $(csp_CPFLAGS) $(1) $(2):$(3) but do csp_scp_FUNC = $(csp_SCP) $(4) $(1) $(2):$(3) and use $(csp_CPFLAGS) for csp_XARGS. _Do_ test this! 4.11) load stuff: - Create a ``load-recursive'' target. - supply daemons.mk: csp_SSHDEBIANLOAD csp_URUKREDHATLOAD , etc, to use in load targets 4.12) install-recursive should call mkdir if appropriate. install should, too. Thu 31 15:16 < Fruit> kan ik 'm ook vertellen dat-ie voordat gaat kopiëren ff mkdir -p op de smurfer doet? Thu 31 15:19 < joostvb> een eigen csp_PUSH schrijven Thu 31 15:20 < joostvb> csp_PUSH krijgt zowel filenaam als directory mee als argument Thu 31 15:20 < joostvb> dus das kei makkelijk Thu 31 15:20 < Fruit> csp_OLD_PUSH := $(csp_PUSH) Thu 31 15:20 < Fruit> csp_PUSH := ssh $iets mkdir $dir; $(csp_OLD_PUSH) 4.13) The scp invocation is inefficient: % make -n README.txt-install net.txt-install scp "README.txt" pong:/data/www/doc/doc/; scp "net.txt" pong:/data/www/doc/doc/; Should be: scp "README.txt" "net.txt" pong:/data/www/doc/doc/; $@ vs $? might be helpful. 4.14) test wether file is up to date before scp-ing it, in order to prevent us from doing useless (and expensive) installs. use ControlMaster ssh_config(5) to reuse one ssh conection? Perhaps this: ControlMaster auto ControlPath ~/.ssh/control/%r@%h:%p in your ~/.ssh/config (and having an ssh connection open to all relevant hosts) fixes all "troubles". (This option is not available on Debian sarge.) 4.15) Ideas insprired by a discussion with Fred Vos: Perhaps a note on how to use commit-hooks could be added to documentation. Perhaps a note on ssh forced commands could be added. Perhaps a note on a "make commit" could be added. 4.16) document this: including an included Makefile: here := $(dir $(lastword $(MAKEFILE_LIST))) include $(here)../../foo/bar/install.mk Thanks Wessel. Alternative: /usr/local/foo, as used in svn/its-unix 4.17) if one really wants, one can overrule caspar's default target: --------- csp_SCPDIR = /etc/ssl/chains/ csp_TABOOFILES_ADD = %.asc all: install install: check makedir include ../../../include/install.mk check: for cert in *.pem; do \ echo "$$cert:"; \ gpg --verify $$cert.asc $$cert; \ done makedir: for suh in $(csp_SUHS); do \ ssh $$suh mkdir -p /etc/ssl/chains; \ done .PHONY: check makedir --------- very likely, one could better use the "build" target for this. 4.18) it's not necessary to have Makefile in all directories of a tree, provided caspar is fixed: replace DIRS := $(shell for d in *; do test -d $$d && echo $$d; done) by DIRS := $(patsubst %/Makefile,%,$(shell find * -mindepth 1 -name Makefile)) thanks Wessel. (This might break for trees combining GNUmakefile with Makefile [za 14 22:29 dat breekt niet voor dat soort directories, ga maar na! ;)] .) Once this fix is implemented, get rid of the example toplevel Makefile in caspar(7). caspar-20140919/install-sh0000755000175000017500000003325512302342414012166 00000000000000#!/bin/sh # install - install a program, script, or datafile scriptversion=2011-11-20.07; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # 'make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. nl=' ' IFS=" "" $nl" # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} if test -z "$doit"; then doit_exec=exec else doit_exec=$doit fi # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_glob='?' initialize_posix_glob=' test "$posix_glob" != "?" || { if (set -f) 2>/dev/null; then posix_glob= else posix_glob=: fi } ' posix_mkdir= # Desired mode of installed file. mode=0755 chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false no_target_directory= usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve the last data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *' '* | *' '* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) dst_arg=$2 # Protect names problematic for 'test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac shift;; -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg # Protect names problematic for 'test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call 'install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then 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. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names problematic for 'test' and other utilities. case $src in -* | [=\(\)!]) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else # Prefer dirname, but fall back on a substitute if dirname fails. dstdir=` (dirname "$dst") 2>/dev/null || expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$dst" : 'X\(//\)[^/]' \| \ X"$dst" : 'X\(//\)$' \| \ X"$dst" : 'X\(/\)' \| . 2>/dev/null || echo X"$dst" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q' ` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 if (umask $mkdir_umask && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/d" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; [-=\(\)!]*) prefix='./';; *) prefix='';; esac eval "$initialize_posix_glob" oIFS=$IFS IFS=/ $posix_glob set -f set fnord $dstdir shift $posix_glob set +f IFS=$oIFS prefixes= for d do test 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/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && eval "$initialize_posix_glob" && $posix_glob set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && $posix_glob set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: caspar-20140919/missing0000755000175000017500000001533012302342414011553 00000000000000#! /bin/sh # Common wrapper for a few potentially missing GNU programs. scriptversion=2013-10-28.13; # UTC # Copyright (C) 1996-2013 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try '$0 --help' for more information" exit 1 fi case $1 in --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]... 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 Supported PROGRAM values: 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. Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: unknown '$1' option" echo 1>&2 "Try '$0 --help' for more information" exit 1 ;; esac # Run the given program, remember its exit status. "$@"; st=$? # 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 } give_advice "$1" | sed -e '1s/^/WARNING: /' \ -e '2,$s/^/ /' >&2 # 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) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: caspar-20140919/bootstrap0000755000175000017500000000172312407042212012117 00000000000000#!/bin/sh -e # This file is maintained at http://git.mdcc.cx/caspar # bootstrap - script to bootstrap the distribution rolling engine # This script is free software; you can distribute it and/or modify it # under the terms of the GNU GPL. See the file COPYING. # usage: # ./bootstrap && ./configure && make distcheck # # this yields a tarball (and a .tar.bz2 too) which one can install doing # # $ tar zxf PACKAGENAME-*.tar.gz # $ cd PACKAGENAME-* # $ ./configure # $ make # # make install # requirements: # GNU autoconf, from e.g. ftp.gnu.org:/pub/gnu/autoconf/ # GNU automake, from e.g. ftp.cygnus.com:/pub/tromey/ # git2cl, from e.g. http://josefsson.org/git2cl/, and git set -x test -f ChangeLog || { # we want no unprotected emailadresses in the cl git log --pretty --numstat --summary | sed 's/<[^>][^>]*>//g' | \ git2cl > ChangeLog } test -f VERSION.m4 || ./setversion AUTOMAKE=automake-1.14 ACLOCAL=aclocal-1.14 autoreconf --install --symlink caspar-20140919/setversion0000755000175000017500000000146112345413601012307 00000000000000# This file is maintained at http://git.mdcc.cx/caspar # This script is free software; you can distribute it and/or modify it # under the terms of the GNU GPL. See the file COPYING. ##if test -e stamp.day -a -e stamp.month -a -e stamp.year -a -e VERSION ##then # user has overwritten autogenerated version date=$( echo -n $(cat VERSION) ) # echo 'm4_define([CASPAR_VERSION], ['$date'])' > VERSION.m4 echo 'm4_define([AD1_VERSION], ['`date +%Y%m%d`'])' > VERSION.m4 ##else echo 'm4_define([AD1_VERSION], ['`date +%Y%m%d`'])' > VERSION.m4 # echo 'm4_define([CASPAR_VERSION], ['`date +%Y%m%d`'])' > VERSION.m4 # compatibility with other mdcc.cx/ad1810 packages date +%Y%m%d > VERSION # zoem stuff date +%e > stamp.day date +%b > stamp.month date +%Y > stamp.year ##fi caspar-20140919/stamp.day0000644000175000017500000000000312407054555012002 0000000000000019 caspar-20140919/stamp.month0000644000175000017500000000000412407054555012353 00000000000000Sep caspar-20140919/stamp.year0000644000175000017500000000000512407054555012167 000000000000002014 caspar-20140919/VERSION0000644000175000017500000000001112407054555011226 0000000000000020140919 caspar-20140919/doc/0000755000175000017500000000000012407054567011016 500000000000000caspar-20140919/doc/Makefile.in0000644000175000017500000004276112407054561013007 00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # This script is free software; you can distribute it and/or modify it # under the terms of the GNU GPL. See the file COPYING. VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' 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@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = doc DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/VERSION.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) 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/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__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)$(man7dir)" \ "$(DESTDIR)$(docdir)" man7dir = $(mandir)/man7 NROFF = nroff MANS = $(man_MANS) DATA = $(doc_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ PACKAGE = @PACKAGE_TARNAME@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ am__leading_dot = @am__leading_dot@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = $(datadir)/doc/$(PACKAGE) dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ TROFF = groff ZOEM = zoem # FIXME likely it's better NOT to ignore errors from tidy. if you do, building on a # host which lacks tidy will fail terribly _and_ silently! Or: test here if tidy # is installed... TIDY = tidy -quiet -utf8 W3M = w3m azms = casparize.azm csp_helper.azm caspar.azm caspar-typesetting.azm typetargets = casparize.html casparize.ps casparize.txt csp_helper.html \ csp_helper.ps csp_helper.txt caspar.html caspar.ps \ caspar.txt caspar-typesetting.html caspar-typesetting.ps \ caspar-typesetting.txt man1s = csp_install.1 csp_mkdircp.1 csp_scp_keep_mode.1 csp_sucp.1 manazms = casparize.1 csp_helper.1 caspar.7 caspar-typesetting.7 tmpfiles = casparize.zmr casparize.zmt caspar-typesetting.zmr \ caspar-typesetting.zmt caspar.zmr caspar.zmt csp_helper.zmr csp_helper.zmt doc_DATA = $(typetargets) $(azms) ChangeLog.2002 man_MANS = $(man1s) $(manazms) EXTRA_DIST = $(doc_DATA) $(man_MANS) SUFFIXES = .1 .7 .azm .html .ps .txt MAINTAINERCLEANFILES = $(manazms) $(typetargets) $(tmpfiles) DISTCLEANFILES = $(typetargets) all: all-am .SUFFIXES: .SUFFIXES: .1 .7 .azm .html .ps .txt $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-man1: $(man_MANS) @$(NORMAL_INSTALL) @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"; \ done | \ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ sed 'N;N;s,\n, ,g' | { \ list=; while read file base inst; do \ if test "$$base" = "$$inst"; then list="$$list $$file"; else \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \ fi; \ done; \ for i in $$list; do echo "$$i"; done | $(am__base_list) | \ while read files; do \ test -z "$$files" || { \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \ done; } uninstall-man1: @$(NORMAL_UNINSTALL) @list=''; test -n "$(man1dir)" || exit 0; \ files=`{ 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'; \ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir) install-man7: $(man_MANS) @$(NORMAL_INSTALL) @list1=''; \ list2='$(man_MANS)'; \ test -n "$(man7dir)" \ && test -n "`echo $$list1$$list2`" \ || exit 0; \ echo " $(MKDIR_P) '$(DESTDIR)$(man7dir)'"; \ $(MKDIR_P) "$(DESTDIR)$(man7dir)" || 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 '/\.7[a-z]*$$/p'; \ fi; \ } | while read p; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; echo "$$p"; \ done | \ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^7][0-9a-z]*$$,7,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ sed 'N;N;s,\n, ,g' | { \ list=; while read file base inst; do \ if test "$$base" = "$$inst"; then list="$$list $$file"; else \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man7dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man7dir)/$$inst" || exit $$?; \ fi; \ done; \ for i in $$list; do echo "$$i"; done | $(am__base_list) | \ while read files; do \ test -z "$$files" || { \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man7dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(man7dir)" || exit $$?; }; \ done; } uninstall-man7: @$(NORMAL_UNINSTALL) @list=''; test -n "$(man7dir)" || exit 0; \ files=`{ for i in $$list; do echo "$$i"; done; \ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ sed -n '/\.7[a-z]*$$/p'; \ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^7][0-9a-z]*$$,7,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ dir='$(DESTDIR)$(man7dir)'; $(am__uninstall_files_from_dir) install-docDATA: $(doc_DATA) @$(NORMAL_INSTALL) @list='$(doc_DATA)'; test -n "$(docdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(docdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(docdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(docdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(docdir)" || exit $$?; \ done uninstall-docDATA: @$(NORMAL_UNINSTALL) @list='$(doc_DATA)'; test -n "$(docdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(docdir)'; $(am__uninstall_files_from_dir) tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(MANS) $(DATA) installdirs: for dir in "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man7dir)" "$(DESTDIR)$(docdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: 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: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-docDATA install-man install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-man1 install-man7 install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-docDATA uninstall-man uninstall-man: uninstall-man1 uninstall-man7 .MAKE: install-am install-strip .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-docDATA 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-man7 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-docDATA uninstall-man \ uninstall-man1 uninstall-man7 .azm.1: $(ZOEM) -d roff -i $< -o $@ $(ZOEM) -d roff -i $< -o $@ .azm.7: $(ZOEM) -d roff -i $< -o $@ $(ZOEM) -d roff -i $< -o $@ .7.ps: $(TROFF) -man $< > $@ .1.ps: $(TROFF) -man $< > $@ .azm.html: $(ZOEM) -d html -i $< -o $@ $(ZOEM) -d html -i $< -o $@ -$(TIDY) -e $@ .html.txt: $(W3M) -dump $< > $@ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: caspar-20140919/doc/Makefile.am0000644000175000017500000000463712345413601012771 00000000000000## Process this file with automake to produce Makefile.in ## This file is maintained at http://git.mdcc.cx/caspar # This script is free software; you can distribute it and/or modify it # under the terms of the GNU GPL. See the file COPYING. ## Copyright (C) 2003, 2004, 2005, 2006 Joost van Baal ## based upon work by Stijn van Dongen TROFF = groff ## Zoem is a an interpretive macro language, for creating mark-up languages, by ## Stijn van Dongen. Information about zoem can be found on the zoem webpage at ## http://micans.org/zoem/ . ZOEM = zoem ## tidy is a HTML syntax checker and reformatter, available from ## http://www.w3.org/People/Raggett/tidy/ , by Dave Raggett # FIXME likely it's better NOT to ignore errors from tidy. if you do, building on a # host which lacks tidy will fail terribly _and_ silently! Or: test here if tidy # is installed... TIDY = tidy -quiet -utf8 ## http://w3m.sourceforge.net/ ## w3m is a text-based web browser, which can be used as a text formatting tool ## which typesets HTML into plain text. W3M = w3m PACKAGE = @PACKAGE_TARNAME@ docdir = $(datadir)/doc/$(PACKAGE) azms = casparize.azm csp_helper.azm caspar.azm caspar-typesetting.azm typetargets = casparize.html casparize.ps casparize.txt csp_helper.html \ csp_helper.ps csp_helper.txt caspar.html caspar.ps \ caspar.txt caspar-typesetting.html caspar-typesetting.ps \ caspar-typesetting.txt man1s = csp_install.1 csp_mkdircp.1 csp_scp_keep_mode.1 csp_sucp.1 manazms = casparize.1 csp_helper.1 caspar.7 caspar-typesetting.7 tmpfiles = casparize.zmr casparize.zmt caspar-typesetting.zmr \ caspar-typesetting.zmt caspar.zmr caspar.zmt csp_helper.zmr csp_helper.zmt doc_DATA = $(typetargets) $(azms) ChangeLog.2002 man_MANS = $(man1s) $(manazms) EXTRA_DIST = $(doc_DATA) $(man_MANS) SUFFIXES = .1 .7 .azm .html .ps .txt .azm.1: $(ZOEM) -d roff -i $< -o $@ $(ZOEM) -d roff -i $< -o $@ .azm.7: $(ZOEM) -d roff -i $< -o $@ $(ZOEM) -d roff -i $< -o $@ .7.ps: $(TROFF) -man $< > $@ .1.ps: $(TROFF) -man $< > $@ .azm.html: $(ZOEM) -d html -i $< -o $@ $(ZOEM) -d html -i $< -o $@ -$(TIDY) -e $@ ## $(TIDY) -e $@ ## alternative, one could call something like ## groff -man -Tascii $< > $@ ## for generating ascii directly from roff. ## However, this generates output which uses the boldface-^H trick .html.txt: $(W3M) -dump $< > $@ MAINTAINERCLEANFILES = $(manazms) $(typetargets) $(tmpfiles) DISTCLEANFILES = $(typetargets) caspar-20140919/doc/casparize.html0000644000175000017500000001337412407054476013614 00000000000000 casparize

19 Sep 2014    casparize 20140919

NAME

casparize — Set up caspar Makefile in a new directory

SYNOPSIS

casparize dir (/path/to/config/dir)

casparize file (/path/to/config/dir/file)

DESCRIPTION

casparize creates a new configuration working directory in your current working directory, sets up a Makefile for caspar(7) in this new directory, and optionally copies an original configuration file from its original system place to the newly created configuration working directory.

USAGE

You typically use casparize when you already have created the root configuration working directory with its include directory and install.mk Caspar include file. By analysing your current working directory and the configuration directory path you give on the command line, casparize can deduce the contents of the Makefile in the newly created configuration working directory. It creates the new directory, creates the correct Makefile, and optionally copies the given configuration file in the new directory, ready for its first version commit.

EXAMPLES

A typical example:
$ cd <svn>/etc $ casparize /etc/postfix/main.cf
creates the directory <svn>/etc/postfix, creates <svn>/etc/postfix/Makefile including the proper content, and copies /etc/postfix/main.cf into <svn>/etc/postfix/main.cf. You can now directly add and commit the new directory.

BUGS

Non known at this moment.

AUTHOR

Jeroen Hoppenbrouwers

SEE ALSO

caspar(7) The caspar homepage is at http://mdcc.cx/caspar/ . caspar-20140919/doc/casparize.ps0000644000175000017500000002130012407054476013256 00000000000000%!PS-Adobe-3.0 %%Creator: groff version 1.22.2 %%CreationDate: Fri Sep 19 18:26:38 2014 %%DocumentNeededResources: font Times-Roman %%+ font Times-Bold %%+ font Times-Italic %%+ font Courier %%DocumentSuppliedResources: procset grops 1.22 2 %%Pages: 1 %%PageOrder: Ascend %%DocumentMedia: Default 595 842 0 () () %%Orientation: Portrait %%EndComments %%BeginDefaults %%PageMedia: Default %%EndDefaults %%BeginProlog %%BeginResource: procset grops 1.22 2 %!PS-Adobe-3.0 Resource-ProcSet /setpacking where{ pop currentpacking true setpacking }if /grops 120 dict dup begin /SC 32 def /A/show load def /B{0 SC 3 -1 roll widthshow}bind def /C{0 exch ashow}bind def /D{0 exch 0 SC 5 2 roll awidthshow}bind def /E{0 rmoveto show}bind def /F{0 rmoveto 0 SC 3 -1 roll widthshow}bind def /G{0 rmoveto 0 exch ashow}bind def /H{0 rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def /I{0 exch rmoveto show}bind def /J{0 exch rmoveto 0 SC 3 -1 roll widthshow}bind def /K{0 exch rmoveto 0 exch ashow}bind def /L{0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def /M{rmoveto show}bind def /N{rmoveto 0 SC 3 -1 roll widthshow}bind def /O{rmoveto 0 exch ashow}bind def /P{rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def /Q{moveto show}bind def /R{moveto 0 SC 3 -1 roll widthshow}bind def /S{moveto 0 exch ashow}bind def /T{moveto 0 exch 0 SC 5 2 roll awidthshow}bind def /SF{ findfont exch [exch dup 0 exch 0 exch neg 0 0]makefont dup setfont [exch/setfont cvx]cvx bind def }bind def /MF{ findfont [5 2 roll 0 3 1 roll neg 0 0]makefont dup setfont [exch/setfont cvx]cvx bind def }bind def /level0 0 def /RES 0 def /PL 0 def /LS 0 def /MANUAL{ statusdict begin/manualfeed true store end }bind def /PLG{ gsave newpath clippath pathbbox grestore exch pop add exch pop }bind def /BP{ /level0 save def 1 setlinecap 1 setlinejoin DEFS/BPhook known{DEFS begin BPhook end}if 72 RES div dup scale LS{ 90 rotate }{ 0 PL translate }ifelse 1 -1 scale }bind def /EP{ level0 restore showpage }def /DA{ newpath arcn stroke }bind def /SN{ transform .25 sub exch .25 sub exch round .25 add exch round .25 add exch itransform }bind def /DL{ SN moveto SN lineto stroke }bind def /DC{ newpath 0 360 arc closepath }bind def /TM matrix def /DE{ TM currentmatrix pop translate scale newpath 0 0 .5 0 360 arc closepath TM setmatrix }bind def /RC/rcurveto load def /RL/rlineto load def /ST/stroke load def /MT/moveto load def /CL/closepath load def /Fr{ setrgbcolor fill }bind def /setcmykcolor where{ pop /Fk{ setcmykcolor fill }bind def }if /Fg{ setgray fill }bind def /FL/fill load def /LW/setlinewidth load def /Cr/setrgbcolor load def /setcmykcolor where{ pop /Ck/setcmykcolor load def }if /Cg/setgray load def /RE{ findfont dup maxlength 1 index/FontName known not{1 add}if dict begin { 1 index/FID ne 2 index/UniqueID ne and {def}{pop pop}ifelse }forall /Encoding exch def dup/FontName exch def currentdict end definefont pop }bind def /DEFS 0 def /EBEGIN{ moveto DEFS begin }bind def /EEND/end load def /CNT 0 def /level1 0 def /PBEGIN{ /level1 save def translate div 3 1 roll div exch scale neg exch neg exch translate 0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin 10 setmiterlimit []0 setdash /setstrokeadjust where{ pop false setstrokeadjust }if /setoverprint where{ pop false setoverprint }if newpath /CNT countdictstack def userdict begin /showpage{}def /setpagedevice{}def mark }bind def /PEND{ cleartomark countdictstack CNT sub{end}repeat level1 restore }bind def end def /setpacking where{ pop setpacking }if %%EndResource %%EndProlog %%BeginSetup %%BeginFeature: *PageSize Default << /PageSize [ 595 842 ] /ImagingBBox null >> setpagedevice %%EndFeature %%IncludeResource: font Times-Roman %%IncludeResource: font Times-Bold %%IncludeResource: font Times-Italic %%IncludeResource: font Courier grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72 def/PL 841.89 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron /Zcaron/scaron/zcaron/Ydieresis/trademark/quotesingle/Euro/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent /ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen /period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon /semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O /P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/circumflex /underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y /z/braceleft/bar/braceright/tilde/.notdef/quotesinglbase/guillemotleft /guillemotright/bullet/florin/fraction/perthousand/dagger/daggerdbl /endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut /dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash /quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen /brokenbar/section/dieresis/copyright/ordfeminine/guilsinglleft /logicalnot/minus/registered/macron/degree/plusminus/twosuperior /threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior /ordmasculine/guilsinglright/onequarter/onehalf/threequarters /questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE /Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex /Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis /multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn /germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla /egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis /eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash /ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def /Courier@0 ENC0/Courier RE/Times-Italic@0 ENC0/Times-Italic RE /Times-Bold@0 ENC0/Times-Bold RE/Times-Roman@0 ENC0/Times-Roman RE %%EndSetup %%Page: 1 1 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF 137.915(casparize\(1\) USER)20 48 R 140.415 (COMMANDS casparize\(1\))2.5 F/F1 10.95/Times-Bold@0 SF -.219(NA)20 84 S (ME).219 E F0(casparize \255 Set up)100 96 Q/F2 10/Times-Bold@0 SF (caspar)2.5 E F0(Mak)2.5 E(e\214le in a ne)-.1 E 2.5(wd)-.25 G(irectory) -2.5 E F1(SYNOPSIS)20 112.8 Q F2(casparize dir)100 124.8 Q F0(\()2.5 E /F3 10/Times-Italic@0 SF(/path/to/con\214g/dir)A F0(\))A F2 (casparize \214le)100 148.8 Q F0(\()2.5 E F3 (/path/to/con\214g/dir/\214le)A F0(\))A F1(DESCRIPTION)20 165.6 Q F2 (casparize)100 177.6 Q F0 .511(creates a ne)3.011 F 3.011(wc)-.25 G .511 (on\214guration w)-3.011 F .511(orking directory in your current w)-.1 F .51(orking directory)-.1 F 3.01(,s)-.65 G(ets)-3.01 E .031(up a Mak)100 189.6 R .031(e\214le for)-.1 F F2(caspar\(7\))2.531 E F0 .031 (in this ne)2.531 F 2.531(wd)-.25 G(irectory)-2.531 E 2.532(,a)-.65 G .032(nd optionally copies an original con\214guration)-2.532 F (\214le from its original system place to the ne)100 201.6 Q (wly created con\214guration w)-.25 E(orking directory.)-.1 E F1(USA)20 218.4 Q(GE)-.602 E F0 -1.1(Yo)100 230.4 S 4.599(ut)1.1 G 2.099 (ypically use)-4.599 F F2(casparize)4.599 E F0 2.098 (when you already ha)4.599 F 2.398 -.15(ve c)-.2 H 2.098 (reated the root con\214guration w).15 F(orking)-.1 E .255(directory wi\ th its include directory and install.mk Caspar include \214le. By analy\ sing your current)100 242.4 R -.1(wo)100 254.4 S .36 (rking directory and the con\214guration directory path you gi).1 F .66 -.15(ve o)-.25 H 2.86(nt).15 G .36(he command line, casparize)-2.86 F .351(can deduce the contents of the Mak)100 266.4 R .351 (e\214le in the ne)-.1 F .352(wly created con\214guration w)-.25 F .352 (orking directory. It)-.1 F .581(creates the ne)100 278.4 R 3.081(wd) -.25 G(irectory)-3.081 E 3.081(,c)-.65 G .581(reates the correct Mak) -3.081 F .581(e\214le, and optionally copies the gi)-.1 F -.15(ve)-.25 G 3.08(nc).15 G(on\214gu-)-3.08 E(ration \214le in the ne)100 290.4 Q 2.5 (wd)-.25 G(irectory)-2.5 E 2.5(,r)-.65 G(eady for its \214rst v)-2.5 E (ersion commit.)-.15 E F1(EXAMPLES)20 307.2 Q F0 2.5(At)100 319.2 S (ypical e)-2.5 E(xample:)-.15 E/F4 10/Courier@0 SF 6($c)112 355.2 S 6 (d<)-6 G(svn>/etc)-6 E 6($c)112 367.2 S(asparize /etc/postfix/main.cf)-6 E F0 1.011(creates the directory /etc/post\214x, creates /etc\ /post\214x/Mak)100 391.2 R 1.012(e\214le including the proper)-.1 F .088 (content, and copies /etc/post\214x/main.cf into /etc/post\214x/ma\ in.cf. Y)100 403.2 R .088(ou can no)-1.1 F 2.588(wd)-.25 G .088 (irectly add)-2.588 F(and commit the ne)100 415.2 Q 2.5(wd)-.25 G (irectory.)-2.5 E F1 -.11(BU)20 432 S(GS).11 E F0(Non kno)100 444 Q (wn at this moment.)-.25 E F1 -.548(AU)20 460.8 S(THOR).548 E F0 (Jeroen Hoppenbrouwers)100 472.8 Q F1(SEE ALSO)20 489.6 Q F2 (caspar\(7\))100 501.6 Q F0 (The caspar homepage is at http://mdcc.cx/caspar/ .)2.5 E (casparize 20140919)20 768 Q(19 Sep 2014)129.3 E(1)204 E 0 Cg EP %%Trailer end %%EOF caspar-20140919/doc/casparize.txt0000644000175000017500000000303712407054476013462 0000000000000019 Sep 2014 casparize 20140919 1. NAME 2. SYNOPSIS 3. DESCRIPTION 4. USAGE 5. EXAMPLES 6. BUGS 7. AUTHOR 8. SEE ALSO NAME casparize — Set up caspar Makefile in a new directory SYNOPSIS casparize dir (/path/to/config/dir) casparize file (/path/to/config/dir/file) DESCRIPTION casparize creates a new configuration working directory in your current working directory, sets up a Makefile for caspar(7) in this new directory, and optionally copies an original configuration file from its original system place to the newly created configuration working directory. USAGE You typically use casparize when you already have created the root configuration working directory with its include directory and install.mk Caspar include file. By analysing your current working directory and the configuration directory path you give on the command line, casparize can deduce the contents of the Makefile in the newly created configuration working directory. It creates the new directory, creates the correct Makefile, and optionally copies the given configuration file in the new directory, ready for its first version commit. EXAMPLES A typical example: $ cd /etc $ casparize /etc/postfix/main.cf creates the directory /etc/postfix, creates /etc/postfix/Makefile including the proper content, and copies /etc/postfix/main.cf into /etc/ postfix/main.cf. You can now directly add and commit the new directory. BUGS Non known at this moment. AUTHOR Jeroen Hoppenbrouwers SEE ALSO caspar(7) The caspar homepage is at http://mdcc.cx/caspar/ . caspar-20140919/doc/csp_helper.html0000644000175000017500000002275612407054476013763 00000000000000 csp_helper

19 Sep 2014    csp_helper 20140919

NAME

csp_helper — A collection of caspar helper scripts

SYNOPSIS

csp_install dir (directory) file (file)

csp_mkdircp dir (directory) file (file)

csp_scp_keep_mode h ([user@]host) dir (directory) file (file)

csp_sucp h ([user@]host) dir (directory) file (file)

DESCRIPTION

The scripts csp_install, csp_mkdircp, csp_scp_keep_mode and csp_sucp are helpers for caspar(7). These scripts typically are not invoked directly, but via a Makefile which uses caspar. See the notes on csp_PUSH in caspar(7) for information on how to link csp_install, csp_scp_keep_mode and csp_sucp to caspar.

install DESCRIPTION

csp_install creates the required directory (if needed) and installs the file, preserving timestamps. It uses install(1).

install EXAMPLES

csp_INSTALL_OPTIONS='--owner=www-data --group=www-data' \ csp_INSTALL_MODE=ugo=r \ csp_install /srv/www index.html
csp_INSTALL_MODE=u=rwx,go= csp_install /usr/local/sbin mkpasswd

install ENVIRONMENT

csp_install honors csp_INSTALL_OPTIONS and csp_INSTALL_MODE (default is u=rw,go=r).

mkdircp DESCRIPTION

csp_mkdircp calls mkdir(1) and cp(1). csp_mkdircp is used like csp_CP. use csp_mkdircp if you frequently have to bootstrap installation on a fresh system, on which needed directories don't exist yet. csp_mkdircp makes sure the target directory exists before calling cp(1), by calling mkdir -p first.

scp_keep_mode DESCRIPTION

csp_scp_keep_mode uses ssh to copy a file to a remote host, keeping its file permission mode. The trick used is a combination of mktemp(1) and mv(1). Useful if you'd like to be sure a file gets installed e.g. group writable, without fiddling with permission bits on the remote host.

scp_keep_mode EXAMPLE

chmod g+w rc csp_scp_keep_mode root@gandalf /etc/uruk rc

scp_keep_mode ENVIRONMENT

csp_scp_keep_mode honors csp_SSH ("ssh" by default).

sucp DESCRIPTION

csp_sucp calls tar(1) from within sudo(1) from within ssh(1). This allows one to copy files to accounts on hosts one can only reach by calling sudo on the ssh-reachable remote host.

Typically, one wants to install a root-owned file, but one does not want to allow access to the root-account directly from ssh. Typically sudo is used as an extra line of defense.

NB: if your sudo prompts for a password, be sure to have line

Defaults !tty_tickets
in your sudoers file: we first call sudo -v, than we call sudo to write the data. Since we use ssh to get to the host, we'll use a different tty for both sudo calls.

sucp EXAMPLES

Some examples:
csp_sucp rms@bilbo /etc fstab
csp_sucp monty-python commit/ trailer.txt

AUTHOR

Joost van Baal-Ilić

SEE ALSO

caspar(7) The caspar homepage is at http://mdcc.cx/caspar/ . caspar-20140919/doc/csp_helper.ps0000644000175000017500000002637612407054476013443 00000000000000%!PS-Adobe-3.0 %%Creator: groff version 1.22.2 %%CreationDate: Fri Sep 19 18:26:38 2014 %%DocumentNeededResources: font Times-Roman %%+ font Times-Bold %%+ font Times-Italic %%+ font Courier %%DocumentSuppliedResources: procset grops 1.22 2 %%Pages: 2 %%PageOrder: Ascend %%DocumentMedia: Default 595 842 0 () () %%Orientation: Portrait %%EndComments %%BeginDefaults %%PageMedia: Default %%EndDefaults %%BeginProlog %%BeginResource: procset grops 1.22 2 %!PS-Adobe-3.0 Resource-ProcSet /setpacking where{ pop currentpacking true setpacking }if /grops 120 dict dup begin /SC 32 def /A/show load def /B{0 SC 3 -1 roll widthshow}bind def /C{0 exch ashow}bind def /D{0 exch 0 SC 5 2 roll awidthshow}bind def /E{0 rmoveto show}bind def /F{0 rmoveto 0 SC 3 -1 roll widthshow}bind def /G{0 rmoveto 0 exch ashow}bind def /H{0 rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def /I{0 exch rmoveto show}bind def /J{0 exch rmoveto 0 SC 3 -1 roll widthshow}bind def /K{0 exch rmoveto 0 exch ashow}bind def /L{0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def /M{rmoveto show}bind def /N{rmoveto 0 SC 3 -1 roll widthshow}bind def /O{rmoveto 0 exch ashow}bind def /P{rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def /Q{moveto show}bind def /R{moveto 0 SC 3 -1 roll widthshow}bind def /S{moveto 0 exch ashow}bind def /T{moveto 0 exch 0 SC 5 2 roll awidthshow}bind def /SF{ findfont exch [exch dup 0 exch 0 exch neg 0 0]makefont dup setfont [exch/setfont cvx]cvx bind def }bind def /MF{ findfont [5 2 roll 0 3 1 roll neg 0 0]makefont dup setfont [exch/setfont cvx]cvx bind def }bind def /level0 0 def /RES 0 def /PL 0 def /LS 0 def /MANUAL{ statusdict begin/manualfeed true store end }bind def /PLG{ gsave newpath clippath pathbbox grestore exch pop add exch pop }bind def /BP{ /level0 save def 1 setlinecap 1 setlinejoin DEFS/BPhook known{DEFS begin BPhook end}if 72 RES div dup scale LS{ 90 rotate }{ 0 PL translate }ifelse 1 -1 scale }bind def /EP{ level0 restore showpage }def /DA{ newpath arcn stroke }bind def /SN{ transform .25 sub exch .25 sub exch round .25 add exch round .25 add exch itransform }bind def /DL{ SN moveto SN lineto stroke }bind def /DC{ newpath 0 360 arc closepath }bind def /TM matrix def /DE{ TM currentmatrix pop translate scale newpath 0 0 .5 0 360 arc closepath TM setmatrix }bind def /RC/rcurveto load def /RL/rlineto load def /ST/stroke load def /MT/moveto load def /CL/closepath load def /Fr{ setrgbcolor fill }bind def /setcmykcolor where{ pop /Fk{ setcmykcolor fill }bind def }if /Fg{ setgray fill }bind def /FL/fill load def /LW/setlinewidth load def /Cr/setrgbcolor load def /setcmykcolor where{ pop /Ck/setcmykcolor load def }if /Cg/setgray load def /RE{ findfont dup maxlength 1 index/FontName known not{1 add}if dict begin { 1 index/FID ne 2 index/UniqueID ne and {def}{pop pop}ifelse }forall /Encoding exch def dup/FontName exch def currentdict end definefont pop }bind def /DEFS 0 def /EBEGIN{ moveto DEFS begin }bind def /EEND/end load def /CNT 0 def /level1 0 def /PBEGIN{ /level1 save def translate div 3 1 roll div exch scale neg exch neg exch translate 0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin 10 setmiterlimit []0 setdash /setstrokeadjust where{ pop false setstrokeadjust }if /setoverprint where{ pop false setoverprint }if newpath /CNT countdictstack def userdict begin /showpage{}def /setpagedevice{}def mark }bind def /PEND{ cleartomark countdictstack CNT sub{end}repeat level1 restore }bind def end def /setpacking where{ pop setpacking }if %%EndResource %%EndProlog %%BeginSetup %%BeginFeature: *PageSize Default << /PageSize [ 595 842 ] /ImagingBBox null >> setpagedevice %%EndFeature %%IncludeResource: font Times-Roman %%IncludeResource: font Times-Bold %%IncludeResource: font Times-Italic %%IncludeResource: font Courier grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72 def/PL 841.89 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron /Zcaron/scaron/zcaron/Ydieresis/trademark/quotesingle/Euro/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent /ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen /period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon /semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O /P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/circumflex /underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y /z/braceleft/bar/braceright/tilde/.notdef/quotesinglbase/guillemotleft /guillemotright/bullet/florin/fraction/perthousand/dagger/daggerdbl /endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut /dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash /quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen /brokenbar/section/dieresis/copyright/ordfeminine/guilsinglleft /logicalnot/minus/registered/macron/degree/plusminus/twosuperior /threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior /ordmasculine/guilsinglright/onequarter/onehalf/threequarters /questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE /Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex /Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis /multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn /germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla /egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis /eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash /ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def /Courier@0 ENC0/Courier RE/Times-Italic@0 ENC0/Times-Italic RE /Times-Bold@0 ENC0/Times-Bold RE/Times-Roman@0 ENC0/Times-Roman RE %%EndSetup %%Page: 1 1 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF 131.795(csp_helper\(1\) USER)20 48 R 134.295 (COMMANDS csp_helper\(1\))2.5 F/F1 10.95/Times-Bold@0 SF -.219(NA)20 84 S(ME).219 E F0(csp_helper \255 A collection of caspar helper scripts)100 96 Q F1(SYNOPSIS)20 112.8 Q/F2 10/Times-Bold@0 SF(csp_install dir)100 124.8 Q F0(\()2.5 E/F3 10/Times-Italic@0 SF(dir)A(ectory)-.37 E F0(\))A F2(\214le)2.5 E F0(\()2.5 E F3(\214le)A F0(\))A F2(csp_mkdir)100 148.8 Q (cp dir)-.18 E F0(\()2.5 E F3(dir)A(ectory)-.37 E F0(\))A F2(\214le)2.5 E F0(\()2.5 E F3(\214le)A F0(\))A F2(csp_scp_k)100 172.8 Q(eep_mode h) -.1 E F0(\()2.5 E F3([user@]host)A F0(\))A F2(dir)2.5 E F0(\()2.5 E F3 (dir)A(ectory)-.37 E F0(\))A F2(\214le)2.5 E F0(\()2.5 E F3(\214le)A F0 (\))A F2(csp_sucp h)100 196.8 Q F0(\()2.5 E F3([user@]host)A F0(\))A F2 (dir)2.5 E F0(\()2.5 E F3(dir)A(ectory)-.37 E F0(\))A F2(\214le)2.5 E F0 (\()2.5 E F3(\214le)A F0(\))A F1(DESCRIPTION)20 213.6 Q F0 .775 (The scripts)100 225.6 R F2(csp_install)3.275 E F0(,)A F2(csp_mkdir) 3.275 E(cp)-.18 E F0(,)A F2(csp_scp_k)3.275 E(eep_mode)-.1 E F0(and) 3.275 E F2(csp_sucp)3.275 E F0 .775(are helpers for)3.275 F F2(cas-) 3.275 E(par\(7\))100 237.6 Q F0 3.411(.T)C .911 (hese scripts typically are not in)-3.411 F -.2(vo)-.4 G -.1(ke).2 G 3.411(dd).1 G(irectly)-3.411 E 3.411(,b)-.65 G .912(ut via a Mak)-3.611 F .912(e\214le which uses)-.1 F F2(caspar)3.412 E F0(.)A 3.798 (See the notes on csp_PUSH in)100 249.6 R F2(caspar\(7\))6.298 E F0 3.798(for information on ho)6.298 F 6.297(wt)-.25 G 6.297(ol)-6.297 G (ink)-6.297 E F2(csp_install)6.297 E F0(,)A F2(csp_scp_k)100 261.6 Q (eep_mode)-.1 E F0(and)2.5 E F2(csp_sucp)2.5 E F0(to)2.5 E F2(caspar)2.5 E F0(.)A F1(install DESCRIPTION)20 278.4 Q F2(csp_install)100 290.4 Q F0 .163(creates the required directory \(if needed\) and installs the \214\ le, preserving timestamps.)2.662 F(It uses install\(1\).)100 302.4 Q F1 (install EXAMPLES)20 319.2 Q/F4 10/Courier@0 SF (csp_INSTALL_OPTIONS='--owner=www-data --group=www-data' \\)106 331.2 Q (csp_INSTALL_MODE=ugo=r \\)112 343.2 Q(csp_install /srv/www index.html) 112 355.2 Q (csp_INSTALL_MODE=u=rwx,go= csp_install /usr/local/sbin mkpasswd)106 391.2 Q F1(install ENVIR)20 420 Q(ONMENT)-.329 E F2(csp_install)100 432 Q F0 8.147(honors csp_INST)10.647 F 8.147(ALL_OPTIONS and csp_INST)-.93 F 8.146(ALL_MODE \(def)-.93 F 8.146(ault is)-.1 F(u=rw)100 444 Q (,go=r\).)-.65 E F1(mkdir)20 460.8 Q(cp DESCRIPTION)-.197 E F2 (csp_mkdir)100 472.8 Q(cp)-.18 E F0 .42(calls mkdir\(1\) and cp\(1\).) 2.92 F F2(csp_mkdir)5.42 E(cp)-.18 E F0 .42(is used lik)2.92 F 2.92(ec) -.1 G .42(sp_CP. use)-2.92 F F2(csp_mkdir)2.92 E(cp)-.18 E F0(if)2.92 E 1.673(you frequently ha)100 484.8 R 1.973 -.15(ve t)-.2 H 4.173(ob).15 G 1.672 (ootstrap installation on a fresh system, on which needed directories) -4.173 F(don')100 496.8 Q 2.746(te)-.18 G .246(xist yet.)-2.896 F F2 (csp_mkdir)2.746 E(cp)-.18 E F0(mak)2.746 E .246(es sure the tar)-.1 F .246(get directory e)-.18 F .247(xists before calling cp\(1\), by call-) -.15 F(ing mkdir -p \214rst.)100 508.8 Q F1(scp_k)20 525.6 Q (eep_mode DESCRIPTION)-.11 E F2(csp_scp_k)100 537.6 Q(eep_mode)-.1 E F0 .573(uses ssh to cop)3.073 F 3.073(ya\214)-.1 G .573 (le to a remote host, k)-3.073 F .572 (eeping its \214le permission mode.)-.1 F .635 (The trick used is a combination of mktemp\(1\) and mv\(1\).)100 549.6 R .635(Useful if you')5.635 F 3.135(dl)-.5 G(ik)-3.135 E 3.135(et)-.1 G 3.135(ob)-3.135 G 3.135(es)-3.135 G .635(ure a \214le)-3.135 F(gets ins\ talled e.g. group writable, without \214ddling with permission bits on \ the remote host.)100 561.6 Q F1(scp_k)20 578.4 Q(eep_mode EXAMPLE)-.11 E F4(chmod g+w rc)112 590.4 Q(csp_scp_keep_mode root@gandalf /etc/uruk rc) 112 602.4 Q F1(scp_k)20 631.2 Q(eep_mode ENVIR)-.11 E(ONMENT)-.329 E F2 (csp_scp_k)100 643.2 Q(eep_mode)-.1 E F0(honors csp_SSH \("ssh" by def) 2.5 E(ault\).)-.1 E F1(sucp DESCRIPTION)20 660 Q F2(csp_sucp)100 672 Q F0 .965 (calls tar\(1\) from within sudo\(1\) from within ssh\(1\). This allo) 3.466 F .965(ws one to cop)-.25 F 3.465<798c>-.1 G .965(les to)-3.465 F (accounts on hosts one can only reach by calling sudo on the ssh-reacha\ ble remote host.)100 684 Q -.8(Ty)100 708 S(pically).8 E 3.552(,o)-.65 G 1.052(ne w)-3.552 F 1.052(ants to install a root-o)-.1 F 1.052 (wned \214le, b)-.25 F 1.052(ut one does not w)-.2 F 1.053(ant to allo) -.1 F 3.553(wa)-.25 G 1.053(ccess to the)-3.553 F (root-account directly from ssh. T)100 720 Q (ypically sudo is used as an e)-.8 E(xtra line of defense.)-.15 E (csp_helper 20140919)20 768 Q(19 Sep 2014)123.18 E(1)204 E 0 Cg EP %%Page: 2 2 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF 131.795(csp_helper\(1\) USER)20 48 R 134.295 (COMMANDS csp_helper\(1\))2.5 F(NB: if your sudo prompts for a passw)100 84 Q(ord, be sure to ha)-.1 E .3 -.15(ve l)-.2 H(ine).15 E/F1 10 /Courier@0 SF(Defaults !tty_tickets)112 120 Q F0 .137 (in your sudoers \214le: we \214rst call sudo -v)100 144 R 2.636(,t)-.65 G .136(han we call sudo to write the data. Since we use ssh to)-2.636 F (get to the host, we')100 156 Q(ll use a dif)-.1 E (ferent tty for both sudo calls.)-.25 E/F2 10.95/Times-Bold@0 SF (sucp EXAMPLES)20 172.8 Q F0(Some e)100 184.8 Q(xamples:)-.15 E F1 (csp_sucp rms@bilbo /etc fstab)112 220.8 Q (csp_sucp monty-python commit/ trailer.txt)112 256.8 Q F2 -.548(AU)20 285.6 S(THOR).548 E F0(Joost v)100 297.6 Q(an Baal-Ili\304)-.25 E F2 (SEE ALSO)20 314.4 Q/F3 10/Times-Bold@0 SF(caspar\(7\))100 326.4 Q F0 (The caspar homepage is at http://mdcc.cx/caspar/ .)2.5 E (csp_helper 20140919)20 768 Q(19 Sep 2014)123.18 E(2)204 E 0 Cg EP %%Trailer end %%EOF caspar-20140919/doc/csp_helper.txt0000644000175000017500000000564512407054476013634 0000000000000019 Sep 2014 csp_helper 20140919 1. NAME 2. SYNOPSIS 3. DESCRIPTION 4. install DESCRIPTION 5. install EXAMPLES 6. install ENVIRONMENT 7. mkdircp DESCRIPTION 8. scp_keep_mode DESCRIPTION 9. scp_keep_mode EXAMPLE 10. scp_keep_mode ENVIRONMENT 11. sucp DESCRIPTION 12. sucp EXAMPLES 13. AUTHOR 14. SEE ALSO NAME csp_helper — A collection of caspar helper scripts SYNOPSIS csp_install dir (directory) file (file) csp_mkdircp dir (directory) file (file) csp_scp_keep_mode h ([user@]host) dir (directory) file (file) csp_sucp h ([user@]host) dir (directory) file (file) DESCRIPTION The scripts csp_install, csp_mkdircp, csp_scp_keep_mode and csp_sucp are helpers for caspar(7). These scripts typically are not invoked directly, but via a Makefile which uses caspar. See the notes on csp_PUSH in caspar(7) for information on how to link csp_install, csp_scp_keep_mode and csp_sucp to caspar. install DESCRIPTION csp_install creates the required directory (if needed) and installs the file, preserving timestamps. It uses install(1). install EXAMPLES csp_INSTALL_OPTIONS='--owner=www-data --group=www-data' \ csp_INSTALL_MODE=ugo= r \ csp_install /srv/www index.html csp_INSTALL_MODE=u=rwx,go= csp_install /usr/local/sbin mkpasswd install ENVIRONMENT csp_install honors csp_INSTALL_OPTIONS and csp_INSTALL_MODE (default is u=rw,go =r). mkdircp DESCRIPTION csp_mkdircp calls mkdir(1) and cp(1). csp_mkdircp is used like csp_CP. use csp_mkdircp if you frequently have to bootstrap installation on a fresh system, on which needed directories don't exist yet. csp_mkdircp makes sure the target directory exists before calling cp(1), by calling mkdir -p first. scp_keep_mode DESCRIPTION csp_scp_keep_mode uses ssh to copy a file to a remote host, keeping its file permission mode. The trick used is a combination of mktemp(1) and mv(1). Useful if you'd like to be sure a file gets installed e.g. group writable, without fiddling with permission bits on the remote host. scp_keep_mode EXAMPLE chmod g+w rc csp_scp_keep_mode root@gandalf /etc/uruk rc scp_keep_mode ENVIRONMENT csp_scp_keep_mode honors csp_SSH ("ssh" by default). sucp DESCRIPTION csp_sucp calls tar(1) from within sudo(1) from within ssh(1). This allows one to copy files to accounts on hosts one can only reach by calling sudo on the ssh-reachable remote host. Typically, one wants to install a root-owned file, but one does not want to allow access to the root-account directly from ssh. Typically sudo is used as an extra line of defense. NB: if your sudo prompts for a password, be sure to have line Defaults !tty_tickets in your sudoers file: we first call sudo -v, than we call sudo to write the data. Since we use ssh to get to the host, we'll use a different tty for both sudo calls. sucp EXAMPLES Some examples: csp_sucp rms@bilbo /etc fstab csp_sucp monty-python commit/ trailer.txt AUTHOR Joost van Baal-Ilić SEE ALSO caspar(7) The caspar homepage is at http://mdcc.cx/caspar/ . caspar-20140919/doc/caspar.html0000644000175000017500000007564112407054476013111 00000000000000 caspar

19 Sep 2014    caspar 20140919

NAME

caspar - Makefile snippets for common tasks

SYNOPSIS

In a Makefile, write either
include caspar/mk/caspar.mk
or
include caspar/mk/docbook.mk
or
include caspar/mk/pod.mk
.

DESCRIPTION

Caspar offers Makefile snippets for common tasks, like installing (configuration) files, or typesetting LaTeX, DocBook XML and DocBook SGML documents.

The typesetting functionality is delivered by docbook.mk and pod.mk. This is documented in caspar-typesetting(7).

The installing-stuff functionality is delivered by caspar.mk. (That's what the rest of the manual will talk about.) It enables one to run 'make install' from within a tree which typically holds configuration files, managed using Subversion (or git or any other version control system, for that matter).

It is useful in cases like this: all configuration files of some host are under version control, and, after commiting a change to CVS, you want to be able to easily install the new configuration file on the host.

With caspar, all you have to do is specify the hostname in one place, and specify the name of the target directory in each CVS directory.

It is comparable with other tools for Unix system administrators like puppet and cfengine. Main difference: the caspar code consists of less than 100 lines of GNU Make.

USAGE

Within a CVS tree, create a file include/install.mk, with contents like e.g.
csp_UHOST = root@some.host.somewhere include caspar/mk/caspar.mk
. Within each other directory of the CVS tree which holds files, create a Makefile, which looks like e.g.
csp_DIR = /some/dir/ectory/ include ../../include/install.mk
. If you'd like to use the install-recursive target too, in directories which hold subdirectories (but not files), you'll have to create a Makefile which looks something like
include ../../include/install.mk
. From within the CVS tree, one can call:
make <filename>-diff make <filename>-install make diff make install make load make make install-recursive
Calling make <filename>-diff shows the diff between the local file and the file as currently installed on the remote location. Calling make install (or make) now will scp all files in the current directory to the remote location. The install-recursive target descends down the tree, and calls make install in each subdirectory.

Of course, you'll have to be able to ssh directly as root to the remote host to get this working (if you'd like to use csp_UHOST = root@some.host.somewhere). If you don't like this, and would like to have a PermitRootLogin no in your /etc/ssh/sshd_config, you can use csp_sucp(1). See below.

VARIABLES

The variables one can set in a calling Makefile are:

csp_UHOST
user@host, reachable using $(csp_PUSH) (which is scp by default)
csp_UHOSTS
space separated list of user@host items, reachable using $(csp_PUSH)
csp_DIR
directory on host, reachable using function $(csp_PUSH)
csp_PUSH
make function for pushing files to remote location. Usually, this is a wrapper around a script or program. The function will be passed 4 arguments: [user@]host, remote directory and local filename. [user@]host will be set to all elements of $(csp_UHOSTS); directory will be set to $(csp_DIR). Currently, $(csp_scp_FUNC), $(csp_cp_FUNC) and $(csp_sucp_FUNC) are supported as push plugins. If csp_PUSH is unset, the default $(csp_scp_FUNC) is used.
csp_LOAD
the `load' target depends upon these targets.
csp_BUILD
the `build' target depends upon these targets.
csp_CP
cp binary, just "cp" by default
csp_SCP
scp binary, just "scp" by default
csp_SUCP
script wrapping sudo in ssh, "csp_sucp" by default
csp_EXTRAFILES
extra files which should be installed. Can be used to include files starting with a dot.
csp_TABOOFILES
files which should never be installed. Set to Makefile .%.swp %~ #%# pod2htmd.tmp pod2htmi.tmp by default.
csp_TABOOFILES_ADD
extra files which should never be installed; added to list in csp_TABOOFILES.
csp_TABOOFILES_SKIP
files which should be installed, even if in initial csp_TABOOFILES list. Removed from csp_TABOOFILES list.
csp_TABOODIRS
directories to exclude in install-recursive target. set to CVS .svn by default.
csp_TABOODIRS_ADD, csp_TABOODIRS_SKIP
see csp_TABOOFILES equivalents.
csp_UHOSTS_SUBSET
override csp_UHOSTS: don't push to csp_UHOSTS, but to the intersection of this space separated list of user@host items and csp_UHOSTS.

The following variables might get phased out or removed soonish:

csp_CPFLAGS
extra arguments to pass to cp invocation, none by default
csp_SCPFLAGS
extra arguments to pass to scp invocation, e.g. '-i .ssh/id_rsa-root'

EXAMPLES

Some examples:

Using csp_UHOST
This is the simplest way to use caspar. Makefile is

csp_UHOST = root@some.host.somewhere csp_DIR = /etc/ include caspar/mk/caspar.mk
Now, running "make" will scp all files in the current directory to root@some.host.somewhere:/etc/.

More hosts, not scp but sudo via ssh: using csp_PUSH
Makefile is

csp_UHOSTS = root@some.host.somewhere root@some.other.host csp_PUSH = $(csp_sucp_FUNC) csp_DIR = /etc/ include caspar/mk/caspar.mk
Now, running "make" will use csp_sucp(1) to install all files in the current directory to both root@some.host.somewhere:/etc/ and root@some.other.host:/etc/. If a file named fstab is present in the current directory, running "make fstab-install" will just install that one file. If you need to sudo(1) to another user on the remote host, add something like
csp_XARG = postgres
. (If such a username is not supplied, sudo (and csp_sucp) use the default: root.)

Overriding csp_UHOSTS: csp_UHOSTS_SKIP
If one or some of your hosts are temporarily unavailable, and you'd like to push your files to the hosts which are alive, you can temporarily override your csp_UHOSTS. E.g., when some.other.host is not available:

% cat Makefile csp_UHOSTS = root@some.host.somewhere root@some.other.host csp_DIR = /etc/ include caspar/mk/caspar.mk % make install csp_UHOSTS_SKIP=root@some.other.host scp hosts root@some.host.somewhere:/etc/ scp fstab root@some.host.somewhere:/etc/

Overriding csp_UHOSTS in a smart way: csp_UHOSTS_SUBSET. Using multiple groups of hosts. Recursive make made easy.
If you have lots of subdirectories holding information for lots of groups of hosts, while this run you just want to install for a small group (or 1) hosts, csp_UHOSTS_SUBSET is useful. Suppose your casparized tree looks like

Makefile apache/include/install.mk apache/etc/apache2/Makefile apache/etc/apache2/envvars php/include/install.mk php/etc/php4/apache/Makefile php/etc/php4/apache/php.ini grub/include/install.mk grub/boot/grub/Makefile grub/boot/grub/menu.lst logrotate/include/install.mk logrotate/etc/Makefile logrotate/etc/logrotate.conf nrpe/include/install.mk nrpe/debian/etc/default/Makefile nrpe/debian/etc/default/nagios-nrpe-server
The file apache/etc/apache2/Makefile is:
csp_DIR = /etc/apache2/ include ../../include/install.mk
(all other Makefiles are similar). The file apache/include/install.mk is
csp_UHOSTS = root@a root@b include caspar/mk/caspar.mk
The file php/include/install.mk is the same. The files grub/include/install.mk and logrotate/include/install.mk are
csp_UHOSTS = root@d root@e root@f root@g include caspar/mk/caspar.mk
The file nrpe/include/install.mk is
csp_UHOSTS = root@d root@e root@f root@n include caspar/mk/caspar.mk
The toplevel Makefile is
dirs = $(patsubst %/Makefile,%,$(shell find * -mindepth 1 -name Makefile)) all: for i in $(dirs); do $(MAKE) -$(MAKEFLAGS) -C $$i; done install for i in $(dirs); do $(MAKE) -$(MAKEFLAGS) -C $$i install; done load for i in $(dirs); do $(MAKE) -$(MAKEFLAGS) -C $$i load; done
(we don't feel like sticking a Makefile in all non-leaf nodes of our tree).

Now, when running "csp_UHOSTS_SUBSET='root@e root@f root@m root@n' make" in the toplevel, caspar just takes the intersection of csp_UHOSTS_SUBSET and csp_UHOSTS for each csp_UHOSTS list. So, caspar will not push anything for apache/ and php/. The files grub/boot/grub/menu.lst and logrotate/etc/logrotate.conf will get pushed to root@e and root@f only. The file nrpe/debian/etc/default/nagios-nrpe-server will get pushed to root@e, root@f and root@n.

This is often better than just overriding csp_UHOSTS on the commandline (or in your shell's environment): if the intersection of the original csp_UHOSTS and your new csp_UHOSTS is empty, chances are big you've just forgotten to clean your environment.

Creating remote directories if needed
Makefile is

csp_DIR = /some/dir/ectory/ csp_PUSH = $(csp_scpmkdir_FUNC) csp_UHOST = root@some.host.somewhere include caspar/mk/caspar.mk
Now, before calling scp, caspar will run 'mkdir -p' to create any missing remote directories.

Using csp_CP and csp_LOAD
username/etc/Makefile is

csp_UHOST = dummy csp_PUSH = $(csp_cp_FUNC) csp_DIR = $(HOME)/etc/ csp_LOAD = crontab-load include ../include/install.mk crontab-load: crontab $(csp_DIR)/crontab
while ../include/install.mk is just
include caspar/mk/caspar.mk
. Setting csp_PUSH to $(csp_cp_FUNC) causes cp(1) to get executed by "make install" (not scp(1)). Setting csp_LOAD causes "make load" to execute the crontab command. Just running "make" is OK too, since "make" calls both "make install" and "make load".

Using csp_DIR, csp_LOAD and install(1)
To install a file on the local host, create e.g. a file etc/uruk/Makefile like:

csp_UHOST = dummy csp_DIR = /etc/uruk/ csp_PUSH = $(csp_install_FUNC) csp_LOAD = uruk-load include caspar/mk/caspar.mk uruk-load: sudo invoke-rc.d uruk force-reload

Using csp_DIR and csp_LOAD, take 2
etc/Makefile is

csp_DIR = /etc/ csp_LOAD = aliases-load include ../include/install.mk aliases-load: $(csp_SSH) $(csp_UHOST) "cd /etc; postalias aliases; postfix reload"
while ../include/install.mk is
csp_UHOST = root@some.host.somewhere include caspar/mk/caspar.mk

Using csp_BUILD: building files locally
If you'd like to build some files locally from local sources, before installing the just build files, do e.g.

csp_UHOST = root@some.host.somewhere csp_DIR = /etc/ csp_TABOOFILES_ADD = sshd_config.m4 csp_BUILD = my-build include caspar/mk/caspar.mk my-build: sshd_config sshd_config: sshd_config.m4 m4 $< > $@
List all source files in csp_TABOOFILES_ADD: this way, they won't get installed on the csp_UHOST.

Using csp_sucp_FUNC and csp_LOAD
If you'd like to use csp_sucp and want a `load' target, do something like:

csp_PUSH = $(csp_sucp_FUNC) csp_UHOST = foobar.example.com csp_DIR = /etc/uruk/ csp_LOAD = rc-load include caspar/mk/caspar.mk rc-load: $(csp_SSH) $(csp_UHOST) "sudo invoke-rc.d uruk force-reload"

Adding a "check" target
If you want to do some syntax check on the remote host, before loading the just installed configuration file (and have a "make check" thing), do

csp_UHOST = foobar.example.com csp_DIR = /etc/ csp_LOAD = check my-load include caspar/mk/caspar.mk check: $(csp_SSH) $(csp_UHOST) do-check-stuff my-load: $(csp_SSH) $(csp_UHOST) do-load-stuff
This way, "make load" won't cause the file to load if the check fails (which is probably what you want). Running "make" will perform "install", "check" and "load".

Combining the csp_LOAD target with multiple hosts; building files remotely
You'll have to loop over csp_UHOSTS to execute load-command. Here's an example doing some preprocessing on the remote hosts too.

csp_DIR = /etc/ssh/ csp_UHOSTS = root@some.host.somewhere root@some.other.host csp_LOAD = sshd_config-load sshd_config-load = ssh $1 "cd $(csp_DIR); \ m4 sshd_config.m4 >sshd_config && \ PATH=$$PATH:/sbin /etc/init.d/ssh restart" include caspar/mk/caspar.mk
(Alternatively, you could explicitly specify the loop over the hosts:
csp_DIR = /etc/ssh/ sshd_config-load: for suh in $(csp_UHOSTS); do \ ssh $$suh "cd $(csp_DIR); \ m4 sshd_config.m4 > sshd_config && \ PATH=$$PATH:/sbin /etc/init.d/ssh restart"; \ done
).

Using the csp_TABOOFILES_{ADD,SKIP} variables; another way to perform remote builds
Using the csp_TABOOFILES_{ADD,SKIP} variables is handy if you want to install a Makefile, instead of using it: Create Makefile just as you'd like to have it installed on the remote location. Now, create GNUmakefile as e.g.

csp_TABOOFILES_SKIP = Makefile csp_TABOOFILES_ADD = GNUmakefile csp_DIR = /etc/foobar/ csp_UHOST = root@some.host.somewhere include caspar/mk/caspar.mk load: $(csp_SSH) $(csp_UHOST) "make -C $(csp_DIR)"
Now, make install and make load will do the right thing.

Using the csp_EXTRAFILES variable
Using the csp_EXTRAFILES variable is handy if you want to install files with a leading dot. E.g.:

csp_EXTRAFILES = .bashrc csp_UHOST = root@some.host.somewhere csp_DIR = include caspar/mk/caspar.mk

Overriding csp_UHOSTS
Supply e.g.

csp_UHOSTS = root@localhost root@some.host.somewhere
in install.mk, to install on multiple hosts. Run
make filename-install csp_UHOSTS=joe@otherhost
to install filename as joe@otherhost, instead of the default as given in install.mk. If you want to enable passing csp_UHOSTS as a shell environment variable, you'll have to use conditional assignment in your Makefile:
csp_UHOSTS ?= root@localhost root@some.host.somewhere
This allows it to run
% export csp_UHOSTS=foo@bar % make filename-install
to install on foo@bar.

Using sudo locally for installing files
If you'd like to install files like

sudo cp foo.rc /etc/foobar/
you could set up your Makefile as
csp_DIR = /etc/foobar/ csp_UHOST = dummy csp_PUSH = sudo cp $(1) $(3) include caspar/mk/caspar.mk
This is like csp_sucp, but without the ssh wrapping: it works on localhost only.

Plugging your own install script in caspar
If your script foobar should be called as e.g.

foobar --file=fstab --user@host=joe@some.host \ --dir=/etc/ --debuglevel=3
then make sure your Makefile features something like
csp_foobar_FUNC = foobar --file=$(1) --user@host=$(2) \ --dir=$(3) --debuglevel=$(4) csp_PUSH = $(csp_foobar_FUNC) csp_XARG = 3
You can now use csp_UHOST and csp_DIR just as you're used to.

More advanced tricks
When you don't want to ssh to root@some.host.somewhere directly, you could do

sudo rsync -az /path/to/your/config_archive /etc
on some.host.somewhere (e.g. from cron).

FILES

caspar/mk/caspar.mk, caspar/mk/docbook.mk, caspar/mk/pod.mk

ENVIRONMENT

For caspar.mk: csp_CP, csp_LOAD, csp_SCP, csp_UHOST, csp_PUSH, ...

BUGS

Very likely, GNU Make is not the best tool for doing the stuff caspar.mk is doing. For the list of reported bugs, see http://bugs.debian.org/src:caspar. See also TODO, distributed with the caspar package. (And online at http://mdcc.cx/pub/caspar/caspar-latest/TODO.)

TRIVIA

Caspar is named after Caspar the Friendly Ghost, since that's the title of the Daniel Johnston song I was listening to when deciding to package my homegrown scripts.

AUTHOR

Joost van Baal-Ilić

SEE ALSO

caspar-typesetting(7) csp_helper(1)

The caspar homepage is at http://mdcc.cx/caspar/ .

The document "Versiebeheer en software-packages: Waarom en Hoe" (in Dutch) describes some of the reasons why people might want to use tools like caspar.

Jeroen Hoppenbrouwers blogs about the way he uses caspar, in "Using Subversion and Caspar to maintain a Linux host".

Lots of tools overlap (partly) with caspar in their functionality. Here's a list.

ansible (http://www.ansible.com/); code is on github (https://github.com/ansible/ansible)

cfengine (http://www.cfengine.org/), by Mark Burgess e.a., builds expert systems to administrate and configure large computer networks: it delivers a very big superset of caspar's installation mechanism.

Puppet (http://reductivelabs.com/projects/puppet), also something like a configuration management system.

Here's an older list; a big part of it was collected by Ray Miller (http://users.ox.ac.uk/~raym/) of Oxford University, and published in the article "Configuration Management with Subversion, YAML and Perl Template Toolkit" in the SANE 2006 (http://www.sane.nl/sane2006/) conference proceedings. FIXME: Check urls, update

docbookmk, by Michael Wiedmann (http://www.miwie.org/docbkmake/) offers probably a superset of Caspar's docbook.mk functionality.

latex-make by the LaTeX Utils project on http://gforge.inria.fr/projects/latex-utils/ seems to provide similar functionality as docbook.mk for LaTeX documents.

Latexmk by John Collins e.a. on http://www.phys.psu.edu/~collins/software/latexmk-jcc/ is another implementation of this idea.

SUP, the Software Upgrade Protocol and it's implementation by Carnegie Mellon University offers another way to distribute (configuration)files. Beware though: between Nov 1996 and June 2004, no new release has been published. The Debian (ftp://ftp.debian.org/debian/pool/main/s/sup/) and NetBSD packages are likely still maintained, though.

PIKT (http://www.pikt.org/) is intended primarily for system monitoring, but does do configuration management too.

LCFG (http://www.lcfg.org/) is another configuration management system.

The Arusha Project (ARK, at http://ark.sf.net/) provides a framework for collaborative system administration.

Bcfg2 (http://trac.mcs.anl.gov/projects/bcfg2/) is yet another configuration management system.

quattor (http://quattor.web.cern.ch/) is a system administration toolkit for installation, configuration and management of Unix systems.

rb3 and friends, as written and used by Ray Miller e.a. at Oxford University, (http://users.ox.ac.uk/~raym/software/configuration-management/).

The svk version control system is said to be quite usable for handling configuration file management (without a separate install mechanism like caspar). See also this discussion on the Debian development list.

On the http://www.infrastructures.org/ website on automated (Unix) system administration, you can find some thoughts on managing configuration files using a version control system.

caspar-20140919/doc/caspar.ps0000644000175000017500000011650012407054477012556 00000000000000%!PS-Adobe-3.0 %%Creator: groff version 1.22.2 %%CreationDate: Fri Sep 19 18:26:39 2014 %%DocumentNeededResources: font Times-Roman %%+ font Times-Bold %%+ font Courier %%+ font Times-Italic %%DocumentSuppliedResources: procset grops 1.22 2 %%Pages: 11 %%PageOrder: Ascend %%DocumentMedia: Default 595 842 0 () () %%Orientation: Portrait %%EndComments %%BeginDefaults %%PageMedia: Default %%EndDefaults %%BeginProlog %%BeginResource: procset grops 1.22 2 %!PS-Adobe-3.0 Resource-ProcSet /setpacking where{ pop currentpacking true setpacking }if /grops 120 dict dup begin /SC 32 def /A/show load def /B{0 SC 3 -1 roll widthshow}bind def /C{0 exch ashow}bind def /D{0 exch 0 SC 5 2 roll awidthshow}bind def /E{0 rmoveto show}bind def /F{0 rmoveto 0 SC 3 -1 roll widthshow}bind def /G{0 rmoveto 0 exch ashow}bind def /H{0 rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def /I{0 exch rmoveto show}bind def /J{0 exch rmoveto 0 SC 3 -1 roll widthshow}bind def /K{0 exch rmoveto 0 exch ashow}bind def /L{0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def /M{rmoveto show}bind def /N{rmoveto 0 SC 3 -1 roll widthshow}bind def /O{rmoveto 0 exch ashow}bind def /P{rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def /Q{moveto show}bind def /R{moveto 0 SC 3 -1 roll widthshow}bind def /S{moveto 0 exch ashow}bind def /T{moveto 0 exch 0 SC 5 2 roll awidthshow}bind def /SF{ findfont exch [exch dup 0 exch 0 exch neg 0 0]makefont dup setfont [exch/setfont cvx]cvx bind def }bind def /MF{ findfont [5 2 roll 0 3 1 roll neg 0 0]makefont dup setfont [exch/setfont cvx]cvx bind def }bind def /level0 0 def /RES 0 def /PL 0 def /LS 0 def /MANUAL{ statusdict begin/manualfeed true store end }bind def /PLG{ gsave newpath clippath pathbbox grestore exch pop add exch pop }bind def /BP{ /level0 save def 1 setlinecap 1 setlinejoin DEFS/BPhook known{DEFS begin BPhook end}if 72 RES div dup scale LS{ 90 rotate }{ 0 PL translate }ifelse 1 -1 scale }bind def /EP{ level0 restore showpage }def /DA{ newpath arcn stroke }bind def /SN{ transform .25 sub exch .25 sub exch round .25 add exch round .25 add exch itransform }bind def /DL{ SN moveto SN lineto stroke }bind def /DC{ newpath 0 360 arc closepath }bind def /TM matrix def /DE{ TM currentmatrix pop translate scale newpath 0 0 .5 0 360 arc closepath TM setmatrix }bind def /RC/rcurveto load def /RL/rlineto load def /ST/stroke load def /MT/moveto load def /CL/closepath load def /Fr{ setrgbcolor fill }bind def /setcmykcolor where{ pop /Fk{ setcmykcolor fill }bind def }if /Fg{ setgray fill }bind def /FL/fill load def /LW/setlinewidth load def /Cr/setrgbcolor load def /setcmykcolor where{ pop /Ck/setcmykcolor load def }if /Cg/setgray load def /RE{ findfont dup maxlength 1 index/FontName known not{1 add}if dict begin { 1 index/FID ne 2 index/UniqueID ne and {def}{pop pop}ifelse }forall /Encoding exch def dup/FontName exch def currentdict end definefont pop }bind def /DEFS 0 def /EBEGIN{ moveto DEFS begin }bind def /EEND/end load def /CNT 0 def /level1 0 def /PBEGIN{ /level1 save def translate div 3 1 roll div exch scale neg exch neg exch translate 0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin 10 setmiterlimit []0 setdash /setstrokeadjust where{ pop false setstrokeadjust }if /setoverprint where{ pop false setoverprint }if newpath /CNT countdictstack def userdict begin /showpage{}def /setpagedevice{}def mark }bind def /PEND{ cleartomark countdictstack CNT sub{end}repeat level1 restore }bind def end def /setpacking where{ pop setpacking }if %%EndResource %%EndProlog %%BeginSetup %%BeginFeature: *PageSize Default << /PageSize [ 595 842 ] /ImagingBBox null >> setpagedevice %%EndFeature %%IncludeResource: font Times-Roman %%IncludeResource: font Times-Bold %%IncludeResource: font Courier %%IncludeResource: font Times-Italic grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72 def/PL 841.89 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron /Zcaron/scaron/zcaron/Ydieresis/trademark/quotesingle/Euro/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent /ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen /period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon /semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O /P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/circumflex /underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y /z/braceleft/bar/braceright/tilde/.notdef/quotesinglbase/guillemotleft /guillemotright/bullet/florin/fraction/perthousand/dagger/daggerdbl /endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut /dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash /quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen /brokenbar/section/dieresis/copyright/ordfeminine/guilsinglleft /logicalnot/minus/registered/macron/degree/plusminus/twosuperior /threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior /ordmasculine/guilsinglright/onequarter/onehalf/threequarters /questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE /Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex /Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis /multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn /germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla /egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis /eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash /ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def /Times-Italic@0 ENC0/Times-Italic RE/Courier@0 ENC0/Courier RE /Times-Bold@0 ENC0/Times-Bold RE/Times-Roman@0 ENC0/Times-Roman RE %%EndSetup %%Page: 1 1 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF 151.385(caspar\(7\) MISCELLANEOUS)20 48 R (caspar\(7\))156.385 E/F1 10.95/Times-Bold@0 SF -.219(NA)20 84 S(ME).219 E F0(caspar - Mak)100 96 Q(e\214le snippets for common tasks)-.1 E F1 (SYNOPSIS)20 112.8 Q F0(In a Mak)100 124.8 Q(e\214le, write either)-.1 E /F2 10/Courier@0 SF(include caspar/mk/caspar.mk)112 160.8 Q F0(or)100 184.8 Q F2(include caspar/mk/docbook.mk)112 220.8 Q F0(or)100 244.8 Q F2 (include caspar/mk/pod.mk)112 280.8 Q F0(.)100 304.8 Q F1(DESCRIPTION)20 321.6 Q F0 .8(Caspar of)100 333.6 R .8(fers Mak)-.25 F .8 (e\214le snippets for common tasks, lik)-.1 F 3.3(ei)-.1 G .8 (nstalling \(con\214guration\) \214les, or type-)-3.3 F(setting LaT)100 345.6 Q(eX, DocBook XML and DocBook SGML documents.)-.7 E 1.351 (The typesetting functionality is deli)100 369.6 R -.15(ve)-.25 G 1.352 (red by).15 F/F3 10/Times-Italic@0 SF(docbook.mk)3.852 E F0(and)3.852 E F3(pod.mk)3.852 E F0 6.352(.T)C 1.352(his is documented in)-6.352 F/F4 10/Times-Bold@0 SF(caspar)100 381.6 Q(-typesetting\(7\))-.37 E F0(.)A .456(The installing-stuf)100 405.6 R 2.956(ff)-.25 G .456 (unctionality is deli)-2.956 F -.15(ve)-.25 G .456(red by).15 F F3 (caspar.mk)2.955 E F0 5.455(.\()C(That')-5.455 E 2.955(sw)-.55 G .455 (hat the rest of the manual)-2.955 F 1.22 (will talk about.\) It enables one to run 'mak)100 417.6 R 3.721(ei)-.1 G 1.221(nstall' from within a tree which typically holds)-3.721 F 1.199 (con\214guration \214les, managed using Sub)100 429.6 R -.15(ve)-.15 G 1.199(rsion \(or git or an).15 F 3.698(yo)-.15 G 1.198(ther v)-3.698 F 1.198(ersion control system, for)-.15 F(that matter\).)100 441.6 Q .536 (It is useful in cases lik)100 465.6 R 3.036(et)-.1 G .537 (his: all con\214guration \214les of some host are under v)-3.036 F .537 (ersion control, and,)-.15 F .167 (after commiting a change to CVS, you w)100 477.6 R .166 (ant to be able to easily install the ne)-.1 F 2.666(wc)-.25 G .166 (on\214guration \214le)-2.666 F(on the host.)100 489.6 Q -.4(Wi)100 513.6 S(th).4 E F4(caspar)3.267 E F0 3.267(,a)C .767(ll you ha)-3.267 F 1.067 -.15(ve t)-.2 H 3.267(od).15 G 3.267(oi)-3.267 G 3.267(ss)-3.267 G .767(pecify the hostname in one place, and specify the name of)-3.267 F (the tar)100 525.6 Q(get directory in each CVS directory.)-.18 E .324 (It is comparable with other tools for Unix system administrators lik) 100 549.6 R 2.823(ep)-.1 G .323(uppet and cfengine. Main)-2.823 F(dif) 100 561.6 Q (ference: the caspar code consists of less than 100 lines of GNU Mak) -.25 E(e.)-.1 E F1(USA)20 578.4 Q(GE)-.602 E F0 -.4(Wi)100 590.4 S (thin a CVS tree, create a \214le).4 E F3(include/install.mk)2.5 E F0 2.5(,w)C(ith contents lik)-2.5 E 2.5(ee)-.1 G(.g.)-2.5 E F2 (csp_UHOST = root@some.host.somewhere)106 626.4 Q (include caspar/mk/caspar.mk)106 638.4 Q F0 3.156(.W)100 662.4 S .657(i\ thin each other directory of the CVS tree which holds \214les, create a\ Mak)-3.556 F .657(e\214le, which looks)-.1 F(lik)100 674.4 Q 2.5(ee)-.1 G(.g.)-2.5 E(caspar 20140919)20 768 Q(19 Sep 2014)140.96 E(1)204 E 0 Cg EP %%Page: 2 2 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF 151.385(caspar\(7\) MISCELLANEOUS)20 48 R (caspar\(7\))156.385 E/F1 10/Courier@0 SF(csp_DIR = /some/dir/ectory/) 106 84 Q(include ../../include/install.mk)106 96 Q F0 5.041(.I)100 120 S 2.541(fy)-5.041 G(ou')-2.541 E 2.541(dl)-.5 G(ik)-2.541 E 2.541(et)-.1 G 2.541(ou)-2.541 G .041(se the)-2.541 F/F2 10/Times-Italic@0 SF (install-r)2.541 E(ecur)-.37 E(sive)-.1 E F0(tar)2.541 E .04 (get too, in directories which hold subdirectories \(b)-.18 F(ut)-.2 E (not \214les\), you')100 132 Q(ll ha)-.1 E .3 -.15(ve t)-.2 H 2.5(oc).15 G(reate a Mak)-2.5 E(e\214le which looks something lik)-.1 E(e)-.1 E F1 (include ../../include/install.mk)106 168 Q F0 2.5(.F)100 192 S (rom within the CVS tree, one can call:)-2.5 E F1(make -diff) 112 228 Q(make -install)112 240 Q(make diff)112 252 Q (make install)112 264 Q(make load)112 276 Q(make)112 288 Q (make install-recursive)112 300 Q F0(Calling)100 324 Q F1 .961 (make -diff)3.461 F F0(sho)3.461 E .961(ws the dif)-.25 F 3.461(fb)-.25 G .962(etween the local \214le and the \214le as cur) -3.461 F(-)-.2 E 1.055(rently installed on the remote location.)100 336 R(Calling)6.055 E F1 1.055(make install)3.555 F F0(\(or)3.555 E F1(make) 3.555 E F0 3.555(\)n)C 1.555 -.25(ow w)-3.555 H 1.055(ill scp all).25 F .818(\214les in the current directory to the remote location. The)100 348 R F2(install-r)3.318 E(ecur)-.37 E(sive)-.1 E F0(tar)3.318 E .818 (get descends do)-.18 F(wn)-.25 E(the tree, and calls)100 360 Q F1 (make install)2.5 E F0(in each subdirectory.)2.5 E .277(Of course, you') 100 384 R .277(ll ha)-.1 F .577 -.15(ve t)-.2 H 2.777(ob).15 G 2.777(ea) -2.777 G .277 (ble to ssh directly as root to the remote host to get this w)-2.777 F .277(orking \(if)-.1 F(you')100 396 Q 3.444(dl)-.5 G(ik)-3.444 E 3.444 (et)-.1 G 3.444(ou)-3.444 G(se)-3.444 E F1 .944 (csp_UHOST = root@some.host.somewhere)3.444 F F0 .945(\). If you don')B 3.445(tl)-.18 G(ik)-3.445 E 3.445(et)-.1 G(his,)-3.445 E .582(and w)100 408 R .582(ould lik)-.1 F 3.082(et)-.1 G 3.082(oh)-3.082 G -2.25 -.2 (av e)-3.082 H(a)3.282 E F1 .582(PermitRootLogin no)3.082 F F0 .582 (in your)3.082 F F1(/etc/ssh/sshd_config)3.081 E F0 3.081(,y)C(ou)-3.081 E(can use csp_sucp\(1\). See belo)100 420 Q(w.)-.25 E/F3 10.95 /Times-Bold@0 SF -1.478(VA)20 436.8 S(RIABLES)1.478 E F0(The v)100 448.8 Q(ariables one can set in a calling Mak)-.25 E(e\214le are:)-.1 E F1 (csp_UHOST)100 472.8 Q F0(user@host, reachable using)120 484.8 Q F1 ($\(csp_PUSH\))2.5 E F0(\(which is scp by def)2.5 E(ault\))-.1 E F1 (csp_UHOSTS)100 496.8 Q F0 (space separated list of user@host items, reachable using)120 508.8 Q F1 ($\(csp_PUSH\))2.5 E(csp_DIR)100 520.8 Q F0 (directory on host, reachable using function)120 532.8 Q F1 ($\(csp_PUSH\))2.5 E(csp_PUSH)100 544.8 Q F0(mak)120 556.8 Q 4.06(ef)-.1 G 1.56(unction for pushing \214les to remote location.)-4.06 F(Usually) 6.561 E 4.061(,t)-.65 G 1.561(his is a wrapper around a)-4.061 F 1.827 (script or program. The function will be passed 4 ar)120 568.8 R (guments:)-.18 E F2([user@]host)120 580.8 Q F0 3.125(,r)C(emote)-3.125 E F2(dir)3.125 E(ectory)-.37 E F0 .625(and local)3.125 F F2(\214lename) 3.125 E F0(.)A F2([user@]host)5.625 E F0 .625 (will be set to all elements)3.125 F(of)120 592.8 Q F1($\(csp_UHOSTS\)) 11.692 E F0(;)A F2(dir)11.692 E(ectory)-.37 E F0 9.191(will be set to) 11.691 F F1($\(csp_DIR\))11.691 E F0 14.191(.C)C(urrently)-14.191 E(,) -.65 E F1($\(csp_scp_FUNC\))120 604.8 Q F0(,)A F1($\(csp_cp_FUNC\))3.513 E F0(and)3.513 E F1($\(csp_sucp_FUNC\))3.513 E F0 1.014 (are supported as)3.513 F(push plugins. If)120 616.8 Q F1(csp_PUSH)2.5 E F0(is unset, the def)2.5 E(ault)-.1 E F1($\(csp_scp_FUNC\))2.5 E F0 (is used.)2.5 E F1(csp_LOAD)100 628.8 Q F0(the `load' tar)120 640.8 Q (get depends upon these tar)-.18 E(gets.)-.18 E F1(csp_BUILD)100 652.8 Q F0(the `b)120 664.8 Q(uild' tar)-.2 E(get depends upon these tar)-.18 E (gets.)-.18 E F1(csp_CP)100 676.8 Q F0(cp binary)120 688.8 Q 2.5(,j)-.65 G(ust "cp" by def)-2.5 E(ault)-.1 E F1(csp_SCP)100 700.8 Q F0 (scp binary)120 712.8 Q 2.5(,j)-.65 G(ust "scp" by def)-2.5 E(ault)-.1 E F1(csp_SUCP)100 724.8 Q F0(caspar 20140919)20 768 Q(19 Sep 2014)140.96 E (2)204 E 0 Cg EP %%Page: 3 3 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF 151.385(caspar\(7\) MISCELLANEOUS)20 48 R (caspar\(7\))156.385 E(script wrapping sudo in ssh, "csp_sucp" by def) 120 84 Q(ault)-.1 E/F1 10/Courier@0 SF(csp_EXTRAFILES)100 96 Q F0 -.15 (ex)120 108 S(tra \214les which should be installed.).15 E (Can be used to include \214les starting with a dot.)5 E F1 (csp_TABOOFILES)100 120 Q F0 5.457(\214les which should ne)120 132 R -.15(ve)-.25 G 7.957(rb).15 G 7.956(ei)-7.957 G 5.456(nstalled. Set to) -7.956 F F1 5.456(Makefile .%.swp %~ #%#)7.956 F (pod2htmd.tmp pod2htmi.tmp)120 144 Q F0(by def)2.5 E(ault.)-.1 E F1 (csp_TABOOFILES_ADD)100 156 Q F0 -.15(ex)120 168 S (tra \214les which should ne).15 E -.15(ve)-.25 G 2.5(rb).15 G 2.5(ei) -2.5 G(nstalled; added to list in)-2.5 E F1(csp_TABOOFILES)2.5 E F0(.)A F1(csp_TABOOFILES_SKIP)100 180 Q F0 1.04 (\214les which should be installed, e)120 192 R -.15(ve)-.25 G 3.54(ni) .15 G 3.54(fi)-3.54 G 3.54(ni)-3.54 G(nitial)-3.54 E F1(csp_TABOOFILES) 3.54 E F0 1.04(list. Remo)3.54 F -.15(ve)-.15 G 3.54(df).15 G(rom)-3.54 E F1(csp_TABOOFILES)120 204 Q F0(list.)2.5 E F1(csp_TABOODIRS)100 216 Q F0(directories to e)120 228 Q(xclude in install-recursi)-.15 E .3 -.15 (ve t)-.25 H(ar).15 E 2.5(get. set)-.18 F(to)2.5 E F1(CVS .svn)2.5 E F0 (by def)2.5 E(ault.)-.1 E F1(csp_TABOODIRS_ADD)100 240 Q F0(,)A F1 (csp_TABOODIRS_SKIP)2.5 E F0(see)120 252 Q F1(csp_TABOOFILES)2.5 E F0 (equi)2.5 E -.25(va)-.25 G(lents.).25 E F1(csp_UHOSTS_SUBSET)100 264 Q F0 -.15(ove)120 276 S 1.12(rride csp_UHOSTS: don').15 F 3.619(tp)-.18 G 1.119(ush to csp_UHOSTS, b)-3.619 F 1.119 (ut to the intersection of this space)-.2 F (separated list of user@host items and csp_UHOSTS.)120 288 Q(The follo) 100 312 Q(wing v)-.25 E(ariables might get phased out or remo)-.25 E -.15(ve)-.15 G 2.5(ds).15 G(oonish:)-2.5 E F1(csp_CPFLAGS)100 336 Q F0 -.15(ex)120 348 S(tra ar).15 E(guments to pass to cp in)-.18 E -.2(vo) -.4 G(cation, none by def).2 E(ault)-.1 E F1(csp_SCPFLAGS)100 360 Q F0 -.15(ex)120 372 S(tra ar).15 E(guments to pass to scp in)-.18 E -.2(vo) -.4 G(cation, e.g.).2 E(')5 E F1(-i .ssh/id_rsa-root)A F0(')A/F2 10.95 /Times-Bold@0 SF(EXAMPLES)20 388.8 Q F0(Some e)100 400.8 Q(xamples:)-.15 E/F3 10/Times-Bold@0 SF(Using csp_UHOST)100 424.8 Q F0 (This is the simplest w)100 436.8 Q(ay to use caspar.)-.1 E/F4 10 /Times-Italic@0 SF(Mak)2.5 E(e\214le)-.1 E F0(is)2.5 E F1 (csp_UHOST = root@some.host.somewhere)112 472.8 Q(csp_DIR = /etc/)112 484.8 Q(include caspar/mk/caspar.mk)112 496.8 Q F0(No)100 520.8 Q 1.997 -.65(w, r)-.25 H .697(unning "mak).65 F .698 (e" will scp all \214les in the current directory to)-.1 F F1 (root@some.host.some-)3.198 E(where:/etc/)100 532.8 Q F0(.)A F3(Mor)100 556.8 Q 2.5(eh)-.18 G(osts, not scp b)-2.5 E (ut sudo via ssh: using csp_PUSH)-.2 E F4(Mak)100 568.8 Q(e\214le)-.1 E F0(is)2.5 E F1 (csp_UHOSTS = root@some.host.somewhere root@some.other.host)112 604.8 Q (csp_PUSH = $\(csp_sucp_FUNC\))112 616.8 Q(csp_DIR = /etc/)112 628.8 Q (include caspar/mk/caspar.mk)112 640.8 Q F0(No)100 664.8 Q 2.803 -.65 (w, r)-.25 H 1.503(unning "mak).65 F 1.503(e" will use csp_sucp\(1\) to\ install all \214les in the current directory to both)-.1 F (root@some.host.some)100 676.8 Q 2.726 (where:/etc/ and root@some.other.host:/etc/. If a \214le named)-.25 F F1 (fstab)5.227 E F0(is)5.227 E .264(present in the current directory)100 688.8 R 2.764(,r)-.65 G .264(unning "mak)-2.764 F 2.764(ef)-.1 G .264 (stab-install" will just install that one \214le.)-2.764 F .264(If you) 5.264 F(need to sudo\(1\) to another user on the remote host, add somet\ hing lik)100 700.8 Q(e)-.1 E(caspar 20140919)20 768 Q(19 Sep 2014)140.96 E(3)204 E 0 Cg EP %%Page: 4 4 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF 151.385(caspar\(7\) MISCELLANEOUS)20 48 R (caspar\(7\))156.385 E/F1 10/Courier@0 SF(csp_XARG = postgres)106 84 Q F0 2.5(.\()100 108 S (If such a username is not supplied, sudo \(and csp_sucp\) use the def) -2.5 E(ault: root.\))-.1 E/F2 10/Times-Bold@0 SF(Ov)100 132 Q (erriding csp_UHOSTS: csp_UHOSTS_SKIP)-.1 E F0 .243 (If one or some of your hosts are temporarily una)100 144 R -.25(va)-.2 G .243(ilable, and you').25 F 2.743(dl)-.5 G(ik)-2.743 E 2.744(et)-.1 G 2.744(op)-2.744 G .244(ush your \214les to the)-2.744 F 4.989 (hosts which are ali)100 156 R -.15(ve)-.25 G 7.488(,y).15 G 4.988 (ou can temporarily o)-7.488 F -.15(ve)-.15 G 4.988 (rride your csp_UHOSTS. E.g., when).15 F(some.other.host is not a)100 168 Q -.25(va)-.2 G(ilable:).25 E F1 6(%c)106 204 S(at Makefile)-6 E (csp_UHOSTS = root@some.host.somewhere root@some.other.host)106 216 Q (csp_DIR = /etc/)106 228 Q(include caspar/mk/caspar.mk)106 240 Q 6(%m) 106 264 S(ake install csp_UHOSTS_SKIP=root@some.other.host)-6 E (scp hosts root@some.host.somewhere:/etc/)106 276 Q (scp fstab root@some.host.somewhere:/etc/)106 288 Q F2(Ov)100 312 Q .543 (erriding csp_UHOSTS in a smart way: csp_UHOSTS_SUBSET. Using multiple \ gr)-.1 F(oups)-.18 E(of hosts. Recursi)100 324 Q .2 -.1(ve m)-.1 H(ak).1 E 2.5(em)-.1 G(ade easy.)-2.5 E F0 .507(If you ha)100 336 R .807 -.15 (ve l)-.2 H .506(ots of subdirectories holding information for lots of \ groups of hosts, while this run).15 F .725(you just w)100 348 R .725(an\ t to install for a small group \(or 1\) hosts, csp_UHOSTS_SUBSET is use\ ful.)-.1 F(Sup-)5.726 E(pose your casparized tree looks lik)100 360 Q(e) -.1 E F1(Makefile)106 396 Q(apache/include/install.mk)106 420 Q (apache/etc/apache2/Makefile)106 432 Q(apache/etc/apache2/envvars)106 444 Q(php/include/install.mk)106 468 Q(php/etc/php4/apache/Makefile)106 480 Q(php/etc/php4/apache/php.ini)106 492 Q(grub/include/install.mk)106 516 Q(grub/boot/grub/Makefile)106 528 Q(grub/boot/grub/menu.lst)106 540 Q(logrotate/include/install.mk)106 552 Q(logrotate/etc/Makefile)106 564 Q(logrotate/etc/logrotate.conf)106 576 Q(nrpe/include/install.mk)106 600 Q(nrpe/debian/etc/default/Makefile)106 612 Q (nrpe/debian/etc/default/nagios-nrpe-server)106 624 Q F0(The \214le)100 648 Q/F3 10/Times-Italic@0 SF(apac)2.5 E(he/etc/apac)-.15 E(he2/Mak)-.15 E(e\214le)-.1 E F0(is:)2.5 E F1(csp_DIR = /etc/apache2/)106 684 Q (include ../../include/install.mk)106 696 Q F0(\(all other)100 720 Q F3 (Mak)2.5 E(e\214le)-.1 E F0 2.5(sa)C(re similar\).)-2.5 E(The \214le)5 E F3(apac)2.5 E(he/include/install.mk)-.15 E F0(is)2.5 E(caspar 20140919) 20 768 Q(19 Sep 2014)140.96 E(4)204 E 0 Cg EP %%Page: 5 5 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF 151.385(caspar\(7\) MISCELLANEOUS)20 48 R (caspar\(7\))156.385 E/F1 10/Courier@0 SF(csp_UHOSTS = root@a root@b)106 84 Q(include caspar/mk/caspar.mk)106 96 Q F0 3.939(The \214le)100 120 R /F2 10/Times-Italic@0 SF(php/include/install.mk)6.439 E F0 3.939 (is the same. The \214les)6.439 F F2(grub/include/install.mk)6.439 E F0 (and)6.439 E F2(lo)6.439 E(gr)-.1 E(o-)-.45 E(tate/include/install.mk) 100 132 Q F0(are)2.5 E F1(csp_UHOSTS = root@d root@e root@f root@g)106 168 Q(include caspar/mk/caspar.mk)106 180 Q F0(The \214le)100 204 Q F2 (nrpe/include/install.mk)2.5 E F0(is)2.5 E F1 (csp_UHOSTS = root@d root@e root@f root@n)106 240 Q (include caspar/mk/caspar.mk)106 252 Q F0(The tople)100 276 Q -.15(ve) -.25 G(l).15 E F2(Mak)2.5 E(e\214le)-.1 E F0(is)2.5 E F1 (dirs = $\(patsubst %/Makefile,%,$\(shell find * -mindepth 1)106 312 Q (-name Makefile\)\))112 324 Q(all:)106 348 Q (for i in $\(dirs\); do $\(MAKE\) -$\(MAKEFLAGS\) -C $$i; done)130 360 Q (install)106 384 Q (for i in $\(dirs\); do $\(MAKE\) -$\(MAKEFLAGS\) -C $$i install; done) 130 396 Q(load)106 420 Q (for i in $\(dirs\); do $\(MAKE\) -$\(MAKEFLAGS\) -C $$i load; done)130 432 Q F0(\(we don')100 456 Q 2.5(tf)-.18 G(eel lik)-2.5 E 2.5(es)-.1 G (ticking a)-2.5 E F2(Mak)2.5 E(e\214le)-.1 E F0 (in all non-leaf nodes of our tree\).)2.5 E(No)100 480 Q 4.735 -.65 (w, w)-.25 H 3.435(hen running ").65 F F1 3.435 (csp_UHOSTS_SUBSET='root@e root@f root@m root@n')B(make)100 492 Q F0 5.824("i)C 5.824(nt)-5.824 G 3.324(he tople)-5.824 F -.15(ve)-.25 G 3.324(l, caspar just tak).15 F 3.323 (es the intersection of csp_UHOSTS_SUBSET and)-.1 F 1.389 (csp_UHOSTS for each csp_UHOSTS list. So, caspar will not push an)100 504 R 1.39(ything for)-.15 F F2(apac)3.89 E(he/)-.15 E F0(and)3.89 E F2 (php/)100 516 Q F0 5.609(.T)C 3.109(he \214les)-5.609 F F2 (grub/boot/grub/menu.lst)5.609 E F0(and)5.609 E F2(lo)5.609 E(gr)-.1 E (otate/etc/lo)-.45 E(gr)-.1 E(otate.conf)-.45 E F0 3.109 (will get pushed to)5.609 F F1(root@e)100 528 Q F0(and)2.686 E F1 (root@f)2.686 E F0 .187(only. The \214le)2.686 F F2 (nrpe/debian/etc/default/na)2.687 E(gios-nrpe-server)-.1 E F0 .187 (will get pushed)2.687 F(to)100 540 Q F1(root@e)2.5 E F0(,)A F1(root@f) 2.5 E F0(and)2.5 E F1(root@n)2.5 E F0(.)A 1.071 (This is often better than just o)100 564 R -.15(ve)-.15 G 1.071 (rriding csp_UHOSTS on the commandline \(or in your shell').15 F(s)-.55 E(en)100 576 Q 1.233(vironment\): if the intersection of the original c\ sp_UHOSTS and your ne)-.4 F 3.734(wc)-.25 G 1.234(sp_UHOSTS is)-3.734 F (empty)100 588 Q 2.5(,c)-.65 G(hances are big you')-2.5 E .3 -.15(ve j) -.5 H(ust for).15 E(gotten to clean your en)-.18 E(vironment.)-.4 E/F3 10/Times-Bold@0 SF(Cr)100 612 Q(eating r)-.18 E(emote dir)-.18 E (ectories if needed)-.18 E F2(Mak)100 624 Q(e\214le)-.1 E F0(is)2.5 E F1 (csp_DIR = /some/dir/ectory/)112 660 Q (csp_PUSH = $\(csp_scpmkdir_FUNC\))112 672 Q (csp_UHOST = root@some.host.somewhere)112 684 Q (include caspar/mk/caspar.mk)112 696 Q F0(No)100 720 Q 1.3 -.65(w, b) -.25 H(efore calling scp, caspar will run 'mkdir -p' to create an).65 E 2.5(ym)-.15 G(issing remote directories.)-2.5 E(caspar 20140919)20 768 Q (19 Sep 2014)140.96 E(5)204 E 0 Cg EP %%Page: 6 6 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF 151.385(caspar\(7\) MISCELLANEOUS)20 48 R (caspar\(7\))156.385 E/F1 10/Times-Bold@0 SF(Using csp_CP and csp_LO)100 84 Q(AD)-.4 E/F2 10/Times-Italic@0 SF(username/etc/Mak)100 96 Q(e\214le) -.1 E F0(is)2.5 E/F3 10/Courier@0 SF(csp_UHOST = dummy)112 132 Q (csp_PUSH = $\(csp_cp_FUNC\))112 144 Q(csp_DIR = $\(HOME\)/etc/)112 156 Q(csp_LOAD = crontab-load)112 168 Q(include ../include/install.mk)112 180 Q(crontab-load:)112 204 Q(crontab $\(csp_DIR\)/crontab)148 216 Q F0 (while)100 240 Q F2(../include/install.mk)2.5 E F0(is just)2.5 E F3 (include caspar/mk/caspar.mk)112 276 Q F0 6.523(.S)100 300 S(etting) -6.523 E F3(csp_PUSH)4.023 E F0(to)4.023 E F3($\(csp_cp_FUNC\))4.023 E F0 1.522(causes cp\(1\) to get e)4.023 F -.15(xe)-.15 G 1.522 (cuted by "mak).15 F 4.022(ei)-.1 G(nstall")-4.022 E .176 (\(not scp\(1\)\).)100 312 R(Setting)5.177 E F3(csp_LOAD)2.677 E F0 .177 (causes "mak)2.677 F 2.677(el)-.1 G .177(oad" to e)-2.677 F -.15(xe)-.15 G .177(cute the crontab command. Just run-).15 F(ning "mak)100 324 Q (e" is OK too, since "mak)-.1 E(e" calls both "mak)-.1 E 2.5(ei)-.1 G (nstall" and "mak)-2.5 E 2.5(el)-.1 G(oad".)-2.5 E F1 (Using csp_DIR, csp_LO)100 348 Q(AD and install\(1\))-.4 E F0 1.6 -.8 (To i)100 360 T(nstall a \214le on the local host, create e.g. a \214le) .8 E F2(etc/uruk/Mak)2.5 E(e\214le)-.1 E F0(lik)2.5 E(e:)-.1 E F3 (csp_UHOST = dummy)112 396 Q(csp_DIR = /etc/uruk/)112 408 Q (csp_PUSH = $\(csp_install_FUNC\))112 420 Q(csp_LOAD = uruk-load)112 432 Q(include caspar/mk/caspar.mk)112 456 Q(uruk-load:)112 480 Q (sudo invoke-rc.d uruk force-reload)124 492 Q F1 (Using csp_DIR and csp_LO)100 516 Q(AD, tak)-.4 E 2.5(e2)-.1 G F2 (etc/Mak)100 528 Q(e\214le)-.1 E F0(is)2.5 E F3(csp_DIR = /etc/)112 564 Q(csp_LOAD = aliases-load)112 576 Q(include ../include/install.mk)112 588 Q(aliases-load:)112 612 Q($\(csp_SSH\) $\(csp_UHOST\) "cd /etc; pos\ talias aliases; postfix reload")136 624 Q F0(while)100 648 Q F2 (../include/install.mk)2.5 E F0(is)2.5 E F3 (csp_UHOST = root@some.host.somewhere)112 684 Q (include caspar/mk/caspar.mk)112 696 Q F1(Using csp_B)100 720 Q(UILD: b) -.1 E(uilding \214les locally)-.2 E F0(caspar 20140919)20 768 Q (19 Sep 2014)140.96 E(6)204 E 0 Cg EP %%Page: 7 7 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF 151.385(caspar\(7\) MISCELLANEOUS)20 48 R (caspar\(7\))156.385 E .634(If you')100 84 R 3.134(dl)-.5 G(ik)-3.134 E 3.133(et)-.1 G 3.133(ob)-3.133 G .633(uild some \214les locally from lo\ cal sources, before installing the just b)-3.333 F .633(uild \214les,) -.2 F(do e.g.)100 96 Q/F1 10/Courier@0 SF (csp_UHOST = root@some.host.somewhere)106 132 Q(csp_DIR = /etc/)106 144 Q(csp_TABOOFILES_ADD = sshd_config.m4)106 156 Q(csp_BUILD = my-build)106 168 Q(include caspar/mk/caspar.mk)106 192 Q(my-build: sshd_config)106 216 Q(sshd_config: sshd_config.m4)106 240 Q(m4 $< > $@)130 252 Q F0 2.317(List all source \214les in csp_T)100 276 R 2.318 (ABOOFILES_ADD: this w)-.93 F(ay)-.1 E 4.818(,t)-.65 G(he)-4.818 E 4.818 (yw)-.15 G(on')-4.918 E 4.818(tg)-.18 G 2.318(et installed on the)-4.818 F(csp_UHOST.)100 288 Q/F2 10/Times-Bold@0 SF (Using csp_sucp_FUNC and csp_LO)100 312 Q(AD)-.4 E F0(If you')100 324 Q 2.5(dl)-.5 G(ik)-2.5 E 2.5(et)-.1 G 2.5(ou)-2.5 G(se csp_sucp and w)-2.5 E(ant a `load' tar)-.1 E(get, do something lik)-.18 E(e:)-.1 E F1 (csp_PUSH = $\(csp_sucp_FUNC\))106 360 Q(csp_UHOST = foobar.example.com) 106 372 Q(csp_DIR = /etc/uruk/)106 384 Q(csp_LOAD = rc-load)106 396 Q (include caspar/mk/caspar.mk)106 420 Q(rc-load:)106 444 Q ($\(csp_SSH\) $\(csp_UHOST\) "sudo invoke-rc.d uruk force-reload")130 456 Q F2(Adding a "check" tar)100 480 Q(get)-.1 E F0 .153(If you w)100 492 R .152(ant to do some syntax check on the remote host, before loadi\ ng the just installed con\214g-)-.1 F(uration \214le \(and ha)100 504 Q .3 -.15(ve a ")-.2 H(mak).15 E 2.5(ec)-.1 G(heck" thing\), do)-2.5 E F1 (csp_UHOST = foobar.example.com)112 540 Q(csp_DIR = /etc/)112 552 Q (csp_LOAD = check my-load)112 564 Q(include caspar/mk/caspar.mk)112 588 Q(check:)112 612 Q($\(csp_SSH\) $\(csp_UHOST\) do-check-stuff)136 624 Q (my-load:)112 648 Q($\(csp_SSH\) $\(csp_UHOST\) do-load-stuff)136 660 Q F0 .078(This w)100 684 R(ay)-.1 E 2.578(,")-.65 G(mak)-2.578 E 2.578(el) -.1 G .078(oad" w)-2.578 F(on')-.1 E 2.578(tc)-.18 G .078 (ause the \214le to load if the check f)-2.578 F .079 (ails \(which is probably what you)-.1 F -.1(wa)100 696 S (nt\). Running "mak).1 E(e" will perform "install", "check" and "load".) -.1 E F2(Combining the csp_LO)100 720 Q(AD tar)-.4 E (get with multiple hosts; b)-.1 E(uilding \214les r)-.2 E(emotely)-.18 E F0(caspar 20140919)20 768 Q(19 Sep 2014)140.96 E(7)204 E 0 Cg EP %%Page: 8 8 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF 151.385(caspar\(7\) MISCELLANEOUS)20 48 R (caspar\(7\))156.385 E -1.1(Yo)100 84 S(u')1.1 E 1.813(ll ha)-.1 F 2.113 -.15(ve t)-.2 H 4.313(ol).15 G 1.813(oop o)-4.313 F -.15(ve)-.15 G 4.313 (rc).15 G 1.813(sp_UHOSTS to e)-4.313 F -.15(xe)-.15 G 1.812 (cute load-command. Here').15 F 4.312(sa)-.55 G 4.312(ne)-4.312 G 1.812 (xample doing)-4.462 F(some preprocessing on the remote hosts too.)100 96 Q/F1 10/Courier@0 SF(csp_DIR = /etc/ssh/)112 132 Q (csp_UHOSTS = root@some.host.somewhere root@some.other.host)112 144 Q (csp_LOAD = sshd_config-load)112 156 Q (sshd_config-load = ssh $1 "cd $\(csp_DIR\); \\)112 168 Q (m4 sshd_config.m4 >sshd_config && \\)154 180 Q (PATH=$$PATH:/sbin /etc/init.d/ssh restart")154 192 Q (include caspar/mk/caspar.mk)112 204 Q F0(\(Alternati)100 228 Q -.15(ve) -.25 G(ly).15 E 2.5(,y)-.65 G(ou could e)-2.5 E (xplicitly specify the loop o)-.15 E -.15(ve)-.15 G 2.5(rt).15 G (he hosts:)-2.5 E F1(csp_DIR = /etc/ssh/)112 264 Q(sshd_config-load:)112 276 Q(for suh in $\(csp_UHOSTS\); do \\)136 288 Q (ssh $$suh "cd $\(csp_DIR\); \\)148 300 Q (m4 sshd_config.m4 > sshd_config && \\)154 312 Q (PATH=$$PATH:/sbin /etc/init.d/ssh restart"; \\)154 324 Q(done)136 336 Q F0(\).)100 360 Q/F2 10/Times-Bold@0 SF 2.592(Using the csp_T)100 384 R 2.592(ABOOFILES_{ADD,SKIP} v)-.9 F 2.593(ariables; another way to perf) -.1 F 2.593(orm r)-.25 F(emote)-.18 E -.2(bu)100 396 S(ilds).2 E F0 .124 (Using the csp_T)100 408 R .124(ABOOFILES_{ADD,SKIP} v)-.93 F .123 (ariables is handy if you w)-.25 F .123(ant to)-.1 F/F3 10 /Times-Italic@0 SF(install)2.623 E F0(a)2.623 E F3(Mak)2.623 E(e\214le) -.1 E F0(,)A .436(instead of using it: Create)100 420 R F3(Mak)2.936 E (e\214le)-.1 E F0 .436(just as you')2.936 F 2.936(dl)-.5 G(ik)-2.936 E 2.937(et)-.1 G 2.937(oh)-2.937 G -2.25 -.2(av e)-2.937 H .437 (it installed on the remote location.)3.137 F(No)100 432 Q 1.3 -.65 (w, c)-.25 H(reate).65 E F3(GNUmak)2.5 E(e\214le)-.1 E F0(as e.g.)2.5 E F1(csp_TABOOFILES_SKIP = Makefile)112 468 Q (csp_TABOOFILES_ADD = GNUmakefile)112 480 Q(csp_DIR = /etc/foobar/)112 504 Q(csp_UHOST = root@some.host.somewhere)112 516 Q (include caspar/mk/caspar.mk)112 528 Q(load:)112 552 Q ($\(csp_SSH\) $\(csp_UHOST\) "make -C $\(csp_DIR\)")148 564 Q F0(No)100 588 Q -.65(w,)-.25 G F1(make install)3.15 E F0(and)2.5 E F1(make load) 2.5 E F0(will do the right thing.)2.5 E F2(Using the csp_EXTRAFILES v) 100 612 Q(ariable)-.1 E F0 1.114(Using the csp_EXTRAFILES v)100 624 R 1.113(ariable is handy if you w)-.25 F 1.113 (ant to install \214les with a leading dot.)-.1 F(E.g.:)100 636 Q F1 (csp_EXTRAFILES = .bashrc)112 672 Q (csp_UHOST = root@some.host.somewhere)112 684 Q(csp_DIR =)112 696 Q (include caspar/mk/caspar.mk)112 708 Q F0(caspar 20140919)20 768 Q (19 Sep 2014)140.96 E(8)204 E 0 Cg EP %%Page: 9 9 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF 151.385(caspar\(7\) MISCELLANEOUS)20 48 R (caspar\(7\))156.385 E/F1 10/Times-Bold@0 SF(Ov)100 84 Q (erriding csp_UHOSTS)-.1 E F0(Supply e.g.)100 96 Q/F2 10/Courier@0 SF (csp_UHOSTS = root@localhost root@some.host.somewhere)106 132 Q F0(in) 100 156 Q/F3 10/Times-Italic@0 SF(install.mk)2.5 E F0 2.5(,t)C 2.5(oi) -2.5 G(nstall on multiple hosts. Run)-2.5 E F2 (make filename-install csp_UHOSTS=joe@otherhost)106 192 Q F0 1.406 (to install \214lename as)100 216 R F2(joe@otherhost)3.906 E F0 3.906 (,i)C 1.406(nstead of the def)-3.906 F 1.407(ault as gi)-.1 F -.15(ve) -.25 G 3.907(ni).15 G(n)-3.907 E F3(install.mk)3.907 E F0 3.907(.I)C 3.907(fy)-3.907 G(ou)-3.907 E -.1(wa)100 228 S .522 (nt to enable passing csp_UHOSTS as a shell en).1 F .522(vironment v)-.4 F .522(ariable, you')-.25 F .522(ll ha)-.1 F .822 -.15(ve t)-.2 H 3.022 (ou).15 G .522(se condi-)-3.022 F(tional assignment in your Mak)100 240 Q(e\214le:)-.1 E F2 (csp_UHOSTS ?= root@localhost root@some.host.somewhere)106 276 Q F0 (This allo)100 300 Q(ws it to run)-.25 E F2 6(%e)106 336 S (xport csp_UHOSTS=foo@bar)-6 E 6(%m)106 348 S(ake filename-install)-6 E F0(to install on)100 372 Q F2(foo@bar)2.5 E F0(.)A F1 (Using sudo locally f)100 396 Q(or installing \214les)-.25 E F0(If you') 100 408 Q 2.5(dl)-.5 G(ik)-2.5 E 2.5(et)-.1 G 2.5(oi)-2.5 G (nstall \214les lik)-2.5 E(e)-.1 E F2(sudo cp foo.rc /etc/foobar/)112 444 Q F0(you could set up your)100 468 Q F3(Mak)2.5 E(e\214le)-.1 E F0 (as)2.5 E F2(csp_DIR = /etc/foobar/)106 504 Q(csp_UHOST = dummy)106 516 Q(csp_PUSH = sudo cp $\(1\) $\(3\))106 528 Q (include caspar/mk/caspar.mk)106 540 Q F0(This is lik)100 564 Q 2.5(ec) -.1 G(sp_sucp, b)-2.5 E(ut without the ssh wrapping: it w)-.2 E (orks on localhost only.)-.1 E F1(Plugging y)100 588 Q(our o)-.25 E (wn install script in caspar)-.1 E F0(If your script)100 600 Q F2 (foobar)2.5 E F0(should be called as e.g.)2.5 E F2 (foobar --file=fstab --user@host=joe@some.host \\)112 636 Q (--dir=/etc/ --debuglevel=3)124 648 Q F0(then mak)100 672 Q 2.5(es)-.1 G (ure your)-2.5 E F3(Mak)2.5 E(e\214le)-.1 E F0(features something lik) 2.5 E(e)-.1 E(caspar 20140919)20 768 Q(19 Sep 2014)140.96 E(9)204 E 0 Cg EP %%Page: 10 10 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF 151.385(caspar\(7\) MISCELLANEOUS)20 48 R (caspar\(7\))156.385 E/F1 10/Courier@0 SF (csp_foobar_FUNC = foobar --file=$\(1\) --user@host=$\(2\) \\)112 84 Q (--dir=$\(3\) --debuglevel=$\(4\))124 96 Q (csp_PUSH = $\(csp_foobar_FUNC\))112 108 Q(csp_XARG = 3)112 120 Q F0 -1.1(Yo)100 144 S 2.5(uc)1.1 G(an no)-2.5 E 2.5(wu)-.25 G(se)-2.5 E F1 (csp_UHOST)2.5 E F0(and)2.5 E F1(csp_DIR)2.5 E F0(just as you')2.5 E (re used to.)-.5 E/F2 10/Times-Bold@0 SF(Mor)100 168 Q 2.5(ea)-.18 G(dv) -2.5 E(anced tricks)-.1 E F0(When you don')100 180 Q 2.5(tw)-.18 G (ant to ssh to)-2.6 E F1(root@some.host.somewhere)2.5 E F0(directly)2.5 E 2.5(,y)-.65 G(ou could do)-2.5 E F1 (sudo rsync -az /path/to/your/config_archive /etc)106 216 Q F0 (on some.host.some)100 240 Q(where \(e.g. from cron\).)-.25 E/F3 10.95 /Times-Bold@0 SF(FILES)20 256.8 Q/F4 10/Times-Italic@0 SF (caspar/mk/caspar.mk)100 268.8 Q F0(,)A F4(caspar/mk/docbook.mk)2.5 E F0 (,)A F4(caspar/mk/pod.mk)2.5 E F3(ENVIR)20 285.6 Q(ONMENT)-.329 E F0 -.15(Fo)100 297.6 S(r).15 E F4(caspar.mk)2.5 E F0(:)A F1(csp_CP)2.5 E F0 (,)A F1(csp_LOAD)2.5 E F0(,)A F1(csp_SCP)2.5 E F0(,)A F1(csp_UHOST)2.5 E F0(,)A F1(csp_PUSH)2.5 E F0 2.5(,.)C(..)-2.5 E F3 -.11(BU)20 314.4 S(GS) .11 E F0 -1.11(Ve)100 326.4 S .122(ry lik)1.11 F(ely)-.1 E 2.622(,G)-.65 G .122(NU Mak)-2.622 F 2.622(ei)-.1 G 2.622(sn)-2.622 G .123 (ot the best tool for doing the stuf)-2.622 F(f)-.25 E F4(caspar.mk) 2.623 E F0 .123(is doing.)2.623 F -.15(Fo)5.123 G 2.623(rt).15 G .123 (he list of)-2.623 F .18(reported b)100 338.4 R .18(ugs, see http://b) -.2 F(ugs.debian.or)-.2 E 2.68(g/src:caspar. See)-.18 F .18(also T)2.68 F .18(ODO, distrib)-.18 F .18(uted with the caspar)-.2 F (package. \(And online at http://mdcc.cx/pub/caspar/caspar)100 350.4 Q (-latest/T)-.2 E(ODO.\))-.18 E F3(TRIVIA)20 367.2 Q F0 1.202 (Caspar is named after Caspar the Friendly Ghost, since that')100 379.2 R 3.703(st)-.55 G 1.203(he title of the Daniel Johnston)-3.703 F (song I w)100 391.2 Q(as listening to when deciding to package my home) -.1 E(gro)-.15 E(wn scripts.)-.25 E F3 -.548(AU)20 408 S(THOR).548 E F0 (Joost v)100 420 Q(an Baal-Ili\304)-.25 E F3(SEE ALSO)20 436.8 Q F2 (caspar)100 448.8 Q(-typesetting\(7\) csp_helper\(1\))-.37 E F0 (The caspar homepage is at http://mdcc.cx/caspar/ .)100 472.8 Q .2 (The document)100 496.8 R F4("V)2.7 E(er)-1.11 E .2 (siebeheer en softwar)-.1 F(e-pac)-.37 E(ka)-.2 E -.1(ge)-.1 G .2(s: W) .1 F(aar)-.92 E .2(om en Hoe")-.45 F F0 .2(\(in Dutch\) describes some) 2.7 F(of the reasons wh)100 508.8 Q 2.5(yp)-.05 G(eople might w)-2.5 E (ant to use tools lik)-.1 E 2.5(ec)-.1 G(aspar.)-2.5 E .684 (Jeroen Hoppenbrouwers blogs about the w)100 532.8 R .685 (ay he uses caspar)-.1 F 3.185(,i)-.4 G(n)-3.185 E F4 .685 ("Using Subver)3.185 F .685(sion and Caspar)-.1 F (to maintain a Linux host")100 544.8 Q F0(.)A(Lots of tools o)100 568.8 Q -.15(ve)-.15 G (rlap \(partly\) with caspar in their functionality. Here').15 E 2.5 (sal)-.55 G(ist.)-2.5 E(ansible \(http://www.ansible.com/\); code is on\ github \(https://github.com/ansible/ansible\))100 592.8 Q .043 (cfengine \(http://www.cfengine.or)100 616.8 R .043(g/\), by Mark Bur) -.18 F .043(gess e.a., b)-.18 F .043(uilds e)-.2 F .043 (xpert systems to administrate)-.15 F 1.303(and con\214gure lar)100 628.8 R 1.304(ge computer netw)-.18 F 1.304(orks: it deli)-.1 F -.15(ve) -.25 G 1.304(rs a v).15 F 1.304(ery big superset of caspar')-.15 F 3.804 (si)-.55 G(nstallation)-3.804 E(mechanism.)100 640.8 Q 1.1 (Puppet \(http://reducti)100 664.8 R -.15(ve)-.25 G 1.1 (labs.com/projects/puppet\), also something lik).15 F 3.6(eac)-.1 G 1.1 (on\214guration manage-)-3.6 F(ment system.)100 676.8 Q(Here')100 700.8 Q 2.821(sa)-.55 G 2.821(no)-2.821 G .321(lder list; a big part of it w) -2.821 F .322 (as collected by Ray Miller \(http://users.ox.ac.uk/~raym/\) of)-.1 F 1.53(Oxford Uni)100 712.8 R -.15(ve)-.25 G(rsity).15 E 4.03(,a)-.65 G 1.53(nd published in the article "Con\214guration Management with Sub) -4.03 F -.15(ve)-.15 G(rsion,).15 E -1.2(YA)100 724.8 S 4.966 (ML and Perl T)1.2 F 4.967(emplate T)-.7 F 4.967 (oolkit" in the SANE 2006 \(http://www.sane.nl/sane2006/\))-.8 F (caspar 20140919)20 768 Q(19 Sep 2014)140.96 E(10)199 E 0 Cg EP %%Page: 11 11 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF 151.385(caspar\(7\) MISCELLANEOUS)20 48 R (caspar\(7\))156.385 E (conference proceedings. FIXME: Check urls, update)100 84 Q 3.506 (docbookmk, by Michael W)100 108 R 3.506(iedmann \(http://www.miwie.or) -.4 F(g/docbkmak)-.18 E 3.506(e/\) of)-.1 F 3.505(fers probably a)-.25 F (superset of Caspar')100 120 Q(s)-.55 E/F1 10/Times-Italic@0 SF (docbook.mk)2.5 E F0(functionality.)2.5 E(late)100 144 Q(x-mak)-.15 E 2.822(eb)-.1 G 2.822(yt)-2.822 G .322(he LaT)-2.822 F .322 (eX Utils project on http://gfor)-.7 F(ge.inria.fr/projects/late)-.18 E .322(x-utils/ seems to pro-)-.15 F(vide similar functionality as)100 156 Q F1(docbook.mk)2.5 E F0(for LaT)2.5 E(eX documents.)-.7 E(Late)100 180 Q 3.432(xmk by John Collins e.a. on http://www.ph)-.15 F (ys.psu.edu/~collins/softw)-.05 E(are/late)-.1 E 3.431(xmk-jcc/ is)-.15 F(another implementation of this idea.)100 192 Q(SUP)100 216 Q 4.147(,t) -1.11 G 1.647(he Softw)-4.147 F 1.647(are Upgrade Protocol and it')-.1 F 4.147(si)-.55 G 1.647(mplementation by Carne)-4.147 F 1.648 (gie Mellon Uni)-.15 F -.15(ve)-.25 G(rsity).15 E(of)100 228 Q 1.89 (fers another w)-.25 F 1.889(ay to distrib)-.1 F 1.889 (ute \(con\214guration\)\214les. Be)-.2 F -.1(wa)-.25 G 1.889 (re though: between No).1 F 4.389(v1)-.15 G 1.889(996 and)-4.389 F 16.941(June 2004, no ne)100 240 R 19.441(wr)-.25 G 16.941 (elease has been published. The Debian)-19.441 F(\(ftp://ftp.debian.or) 100 252 Q 1.107(g/debian/pool/main/s/sup/\) and NetBSD packages are lik) -.18 F 1.107(ely still maintained,)-.1 F(though.)100 264 Q .258 (PIKT \(http://www.pikt.or)100 288 R .258 (g/\) is intended primarily for system monitoring, b)-.18 F .259 (ut does do con\214gura-)-.2 F(tion management too.)100 300 Q (LCFG \(http://www.lcfg.or)100 324 Q (g/\) is another con\214guration management system.)-.18 E 1.169 (The Arusha Project \(ARK, at http://ark.sf.net/\) pro)100 348 R 1.169 (vides a frame)-.15 F -.1(wo)-.25 G 1.169(rk for collaborati).1 F 1.469 -.15(ve s)-.25 H(ystem).15 E(administration.)100 360 Q (Bcfg2 \(http://trac.mcs.anl.go)100 384 Q (v/projects/bcfg2/\) is yet another con\214guration management system.) -.15 E .243(quattor \(http://quattor.web.cern.ch/\) is a system adminis\ tration toolkit for installation, con\214gura-)100 408 R (tion and management of Unix systems.)100 420 Q 6.405 (rb3 and friends, as written and used by Ray Miller e.a. at Oxford Uni) 100 444 R -.15(ve)-.25 G(rsity).15 E(,)-.65 E (\(http://users.ox.ac.uk/~raym/softw)100 456 Q (are/con\214guration-management/\).)-.1 E(The)100 480 Q F1(svk)2.768 E F0 -.15(ve)2.768 G .269(rsion control system is said to be quite usable\ for handling con\214guration \214le manage-).15 F .522 (ment \(without a separate install mechanism lik)100 492 R 3.022(ec)-.1 G .522(aspar\). See also)-3.022 F F1 .522(this discussion on the Debian) 3.022 F(de)100 504 Q(velopment list)-.15 E F0(.)A .542 (On the http://www.infrastructures.or)100 528 R .542 (g/ website on automated \(Unix\) system administration, you)-.18 F (can \214nd some thoughts on managing con\214guration \214les using a v) 100 540 Q(ersion control system.)-.15 E(caspar 20140919)20 768 Q (19 Sep 2014)140.96 E(11)199 E 0 Cg EP %%Trailer end %%EOF caspar-20140919/doc/caspar.txt0000644000175000017500000004270012407054477012753 0000000000000019 Sep 2014 caspar 20140919 1. NAME 2. SYNOPSIS 3. DESCRIPTION 4. USAGE 5. VARIABLES 6. EXAMPLES 7. FILES 8. ENVIRONMENT 9. BUGS 10. TRIVIA 11. AUTHOR 12. SEE ALSO NAME caspar - Makefile snippets for common tasks SYNOPSIS In a Makefile, write either include caspar/mk/caspar.mk or include caspar/mk/docbook.mk or include caspar/mk/pod.mk . DESCRIPTION Caspar offers Makefile snippets for common tasks, like installing (configuration) files, or typesetting LaTeX, DocBook XML and DocBook SGML documents. The typesetting functionality is delivered by docbook.mk and pod.mk. This is documented in caspar-typesetting(7). The installing-stuff functionality is delivered by caspar.mk. (That's what the rest of the manual will talk about.) It enables one to run 'make install' from within a tree which typically holds configuration files, managed using Subversion (or git or any other version control system, for that matter). It is useful in cases like this: all configuration files of some host are under version control, and, after commiting a change to CVS, you want to be able to easily install the new configuration file on the host. With caspar, all you have to do is specify the hostname in one place, and specify the name of the target directory in each CVS directory. It is comparable with other tools for Unix system administrators like puppet and cfengine. Main difference: the caspar code consists of less than 100 lines of GNU Make. USAGE Within a CVS tree, create a file include/install.mk, with contents like e.g. csp_UHOST = root@some.host.somewhere include caspar/mk/caspar.mk . Within each other directory of the CVS tree which holds files, create a Makefile, which looks like e.g. csp_DIR = /some/dir/ectory/ include ../../include/install.mk . If you'd like to use the install-recursive target too, in directories which hold subdirectories (but not files), you'll have to create a Makefile which looks something like include ../../include/install.mk . From within the CVS tree, one can call: make -diff make -install make diff make install make load make make install-recursive Calling make -diff shows the diff between the local file and the file as currently installed on the remote location. Calling make install (or make) now will scp all files in the current directory to the remote location. The install-recursive target descends down the tree, and calls make install in each subdirectory. Of course, you'll have to be able to ssh directly as root to the remote host to get this working (if you'd like to use csp_UHOST = root@some.host.somewhere). If you don't like this, and would like to have a PermitRootLogin no in your / etc/ssh/sshd_config, you can use csp_sucp(1). See below. VARIABLES The variables one can set in a calling Makefile are: csp_UHOST user@host, reachable using $(csp_PUSH) (which is scp by default) csp_UHOSTS space separated list of user@host items, reachable using $(csp_PUSH) csp_DIR directory on host, reachable using function $(csp_PUSH) csp_PUSH make function for pushing files to remote location. Usually, this is a wrapper around a script or program. The function will be passed 4 arguments: [user@] host, remote directory and local filename. [user@]host will be set to all elements of $(csp_UHOSTS); directory will be set to $(csp_DIR). Currently, $ (csp_scp_FUNC), $(csp_cp_FUNC) and $(csp_sucp_FUNC) are supported as push plugins. If csp_PUSH is unset, the default $(csp_scp_FUNC) is used. csp_LOAD the `load' target depends upon these targets. csp_BUILD the `build' target depends upon these targets. csp_CP cp binary, just "cp" by default csp_SCP scp binary, just "scp" by default csp_SUCP script wrapping sudo in ssh, "csp_sucp" by default csp_EXTRAFILES extra files which should be installed. Can be used to include files starting with a dot. csp_TABOOFILES files which should never be installed. Set to Makefile .%.swp %~ #%# pod2htmd.tmp pod2htmi.tmp by default. csp_TABOOFILES_ADD extra files which should never be installed; added to list in csp_TABOOFILES. csp_TABOOFILES_SKIP files which should be installed, even if in initial csp_TABOOFILES list. Removed from csp_TABOOFILES list. csp_TABOODIRS directories to exclude in install-recursive target. set to CVS .svn by default. csp_TABOODIRS_ADD, csp_TABOODIRS_SKIP see csp_TABOOFILES equivalents. csp_UHOSTS_SUBSET override csp_UHOSTS: don't push to csp_UHOSTS, but to the intersection of this space separated list of user@host items and csp_UHOSTS. The following variables might get phased out or removed soonish: csp_CPFLAGS extra arguments to pass to cp invocation, none by default csp_SCPFLAGS extra arguments to pass to scp invocation, e.g. '-i .ssh/id_rsa-root' EXAMPLES Some examples: Using csp_UHOST This is the simplest way to use caspar. Makefile is csp_UHOST = root@some.host.somewhere csp_DIR = /etc/ include caspar/mk/ caspar.mk Now, running "make" will scp all files in the current directory to root@some.host.somewhere:/etc/. More hosts, not scp but sudo via ssh: using csp_PUSH Makefile is csp_UHOSTS = root@some.host.somewhere root@some.other.host csp_PUSH = $ (csp_sucp_FUNC) csp_DIR = /etc/ include caspar/mk/caspar.mk Now, running "make" will use csp_sucp(1) to install all files in the current directory to both root@some.host.somewhere:/etc/ and root@some.other.host:/etc /. If a file named fstab is present in the current directory, running "make fstab-install" will just install that one file. If you need to sudo(1) to another user on the remote host, add something like csp_XARG = postgres . (If such a username is not supplied, sudo (and csp_sucp) use the default: root.) Overriding csp_UHOSTS: csp_UHOSTS_SKIP If one or some of your hosts are temporarily unavailable, and you'd like to push your files to the hosts which are alive, you can temporarily override your csp_UHOSTS. E.g., when some.other.host is not available: % cat Makefile csp_UHOSTS = root@some.host.somewhere root@some.other.host csp_DIR = /etc/ include caspar/mk/caspar.mk % make install csp_UHOSTS_SKIP= root@some.other.host scp hosts root@some.host.somewhere:/etc/ scp fstab root@some.host.somewhere:/etc/ Overriding csp_UHOSTS in a smart way: csp_UHOSTS_SUBSET. Using multiple groups of hosts. Recursive make made easy. If you have lots of subdirectories holding information for lots of groups of hosts, while this run you just want to install for a small group (or 1) hosts, csp_UHOSTS_SUBSET is useful. Suppose your casparized tree looks like Makefile apache/include/install.mk apache/etc/apache2/Makefile apache/etc/ apache2/envvars php/include/install.mk php/etc/php4/apache/Makefile php/etc/ php4/apache/php.ini grub/include/install.mk grub/boot/grub/Makefile grub/boot/ grub/menu.lst logrotate/include/install.mk logrotate/etc/Makefile logrotate/etc /logrotate.conf nrpe/include/install.mk nrpe/debian/etc/default/Makefile nrpe/ debian/etc/default/nagios-nrpe-server The file apache/etc/apache2/Makefile is: csp_DIR = /etc/apache2/ include ../../include/install.mk (all other Makefiles are similar). The file apache/include/install.mk is csp_UHOSTS = root@a root@b include caspar/mk/caspar.mk The file php/include/install.mk is the same. The files grub/include/install.mk and logrotate/include/install.mk are csp_UHOSTS = root@d root@e root@f root@g include caspar/mk/caspar.mk The file nrpe/include/install.mk is csp_UHOSTS = root@d root@e root@f root@n include caspar/mk/caspar.mk The toplevel Makefile is dirs = $(patsubst %/Makefile,%,$(shell find * -mindepth 1 -name Makefile)) all: for i in $(dirs); do $(MAKE) -$(MAKEFLAGS) -C $$i; done install for i in $ (dirs); do $(MAKE) -$(MAKEFLAGS) -C $$i install; done load for i in $(dirs); do $(MAKE) -$(MAKEFLAGS) -C $$i load; done (we don't feel like sticking a Makefile in all non-leaf nodes of our tree). Now, when running "csp_UHOSTS_SUBSET='root@e root@f root@m root@n' make" in the toplevel, caspar just takes the intersection of csp_UHOSTS_SUBSET and csp_UHOSTS for each csp_UHOSTS list. So, caspar will not push anything for apache/ and php/. The files grub/boot/grub/menu.lst and logrotate/etc/ logrotate.conf will get pushed to root@e and root@f only. The file nrpe/debian/ etc/default/nagios-nrpe-server will get pushed to root@e, root@f and root@n. This is often better than just overriding csp_UHOSTS on the commandline (or in your shell's environment): if the intersection of the original csp_UHOSTS and your new csp_UHOSTS is empty, chances are big you've just forgotten to clean your environment. Creating remote directories if needed Makefile is csp_DIR = /some/dir/ectory/ csp_PUSH = $(csp_scpmkdir_FUNC) csp_UHOST = root@some.host.somewhere include caspar/mk/caspar.mk Now, before calling scp, caspar will run 'mkdir -p' to create any missing remote directories. Using csp_CP and csp_LOAD username/etc/Makefile is csp_UHOST = dummy csp_PUSH = $(csp_cp_FUNC) csp_DIR = $(HOME)/etc/ csp_LOAD = crontab-load include ../include/install.mk crontab-load: crontab $(csp_DIR)/ crontab while ../include/install.mk is just include caspar/mk/caspar.mk . Setting csp_PUSH to $(csp_cp_FUNC) causes cp(1) to get executed by "make install" (not scp(1)). Setting csp_LOAD causes "make load" to execute the crontab command. Just running "make" is OK too, since "make" calls both "make install" and "make load". Using csp_DIR, csp_LOAD and install(1) To install a file on the local host, create e.g. a file etc/uruk/Makefile like: csp_UHOST = dummy csp_DIR = /etc/uruk/ csp_PUSH = $(csp_install_FUNC) csp_LOAD = uruk-load include caspar/mk/caspar.mk uruk-load: sudo invoke-rc.d uruk force-reload Using csp_DIR and csp_LOAD, take 2 etc/Makefile is csp_DIR = /etc/ csp_LOAD = aliases-load include ../include/install.mk aliases-load: $(csp_SSH) $(csp_UHOST) "cd /etc; postalias aliases; postfix reload" while ../include/install.mk is csp_UHOST = root@some.host.somewhere include caspar/mk/caspar.mk Using csp_BUILD: building files locally If you'd like to build some files locally from local sources, before installing the just build files, do e.g. csp_UHOST = root@some.host.somewhere csp_DIR = /etc/ csp_TABOOFILES_ADD = sshd_config.m4 csp_BUILD = my-build include caspar/mk/caspar.mk my-build: sshd_config sshd_config: sshd_config.m4 m4 $< > $@ List all source files in csp_TABOOFILES_ADD: this way, they won't get installed on the csp_UHOST. Using csp_sucp_FUNC and csp_LOAD If you'd like to use csp_sucp and want a `load' target, do something like: csp_PUSH = $(csp_sucp_FUNC) csp_UHOST = foobar.example.com csp_DIR = /etc/uruk/ csp_LOAD = rc-load include caspar/mk/caspar.mk rc-load: $(csp_SSH) $(csp_UHOST) "sudo invoke-rc.d uruk force-reload" Adding a "check" target If you want to do some syntax check on the remote host, before loading the just installed configuration file (and have a "make check" thing), do csp_UHOST = foobar.example.com csp_DIR = /etc/ csp_LOAD = check my-load include caspar/mk/caspar.mk check: $(csp_SSH) $(csp_UHOST) do-check-stuff my-load: $ (csp_SSH) $(csp_UHOST) do-load-stuff This way, "make load" won't cause the file to load if the check fails (which is probably what you want). Running "make" will perform "install", "check" and "load". Combining the csp_LOAD target with multiple hosts; building files remotely You'll have to loop over csp_UHOSTS to execute load-command. Here's an example doing some preprocessing on the remote hosts too. csp_DIR = /etc/ssh/ csp_UHOSTS = root@some.host.somewhere root@some.other.host csp_LOAD = sshd_config-load sshd_config-load = ssh $1 "cd $(csp_DIR); \ m4 sshd_config.m4 >sshd_config && \ PATH=$$PATH:/sbin /etc/init.d/ssh restart" include caspar/mk/caspar.mk (Alternatively, you could explicitly specify the loop over the hosts: csp_DIR = /etc/ssh/ sshd_config-load: for suh in $(csp_UHOSTS); do \ ssh $$suh "cd $(csp_DIR); \ m4 sshd_config.m4 > sshd_config && \ PATH=$$PATH:/sbin /etc/ init.d/ssh restart"; \ done ). Using the csp_TABOOFILES_{ADD,SKIP} variables; another way to perform remote builds Using the csp_TABOOFILES_{ADD,SKIP} variables is handy if you want to install a Makefile, instead of using it: Create Makefile just as you'd like to have it installed on the remote location. Now, create GNUmakefile as e.g. csp_TABOOFILES_SKIP = Makefile csp_TABOOFILES_ADD = GNUmakefile csp_DIR = /etc/ foobar/ csp_UHOST = root@some.host.somewhere include caspar/mk/caspar.mk load: $(csp_SSH) $(csp_UHOST) "make -C $(csp_DIR)" Now, make install and make load will do the right thing. Using the csp_EXTRAFILES variable Using the csp_EXTRAFILES variable is handy if you want to install files with a leading dot. E.g.: csp_EXTRAFILES = .bashrc csp_UHOST = root@some.host.somewhere csp_DIR = include caspar/mk/caspar.mk Overriding csp_UHOSTS Supply e.g. csp_UHOSTS = root@localhost root@some.host.somewhere in install.mk, to install on multiple hosts. Run make filename-install csp_UHOSTS=joe@otherhost to install filename as joe@otherhost, instead of the default as given in install.mk. If you want to enable passing csp_UHOSTS as a shell environment variable, you'll have to use conditional assignment in your Makefile: csp_UHOSTS ?= root@localhost root@some.host.somewhere This allows it to run % export csp_UHOSTS=foo@bar % make filename-install to install on foo@bar. Using sudo locally for installing files If you'd like to install files like sudo cp foo.rc /etc/foobar/ you could set up your Makefile as csp_DIR = /etc/foobar/ csp_UHOST = dummy csp_PUSH = sudo cp $(1) $(3) include caspar/mk/caspar.mk This is like csp_sucp, but without the ssh wrapping: it works on localhost only. Plugging your own install script in caspar If your script foobar should be called as e.g. foobar --file=fstab --user@host=joe@some.host \ --dir=/etc/ --debuglevel=3 then make sure your Makefile features something like csp_foobar_FUNC = foobar --file=$(1) --user@host=$(2) \ --dir=$(3) --debuglevel =$(4) csp_PUSH = $(csp_foobar_FUNC) csp_XARG = 3 You can now use csp_UHOST and csp_DIR just as you're used to. More advanced tricks When you don't want to ssh to root@some.host.somewhere directly, you could do sudo rsync -az /path/to/your/config_archive /etc on some.host.somewhere (e.g. from cron). FILES caspar/mk/caspar.mk, caspar/mk/docbook.mk, caspar/mk/pod.mk ENVIRONMENT For caspar.mk: csp_CP, csp_LOAD, csp_SCP, csp_UHOST, csp_PUSH, ... BUGS Very likely, GNU Make is not the best tool for doing the stuff caspar.mk is doing. For the list of reported bugs, see http://bugs.debian.org/src:caspar. See also TODO, distributed with the caspar package. (And online at http:// mdcc.cx/pub/caspar/caspar-latest/TODO.) TRIVIA Caspar is named after Caspar the Friendly Ghost, since that's the title of the Daniel Johnston song I was listening to when deciding to package my homegrown scripts. AUTHOR Joost van Baal-Ilić SEE ALSO caspar-typesetting(7) csp_helper(1) The caspar homepage is at http://mdcc.cx/caspar/ . The document "Versiebeheer en software-packages: Waarom en Hoe" (in Dutch) describes some of the reasons why people might want to use tools like caspar. Jeroen Hoppenbrouwers blogs about the way he uses caspar, in "Using Subversion and Caspar to maintain a Linux host". Lots of tools overlap (partly) with caspar in their functionality. Here's a list. ansible (http://www.ansible.com/); code is on github (https://github.com/ ansible/ansible) cfengine (http://www.cfengine.org/), by Mark Burgess e.a., builds expert systems to administrate and configure large computer networks: it delivers a very big superset of caspar's installation mechanism. Puppet (http://reductivelabs.com/projects/puppet), also something like a configuration management system. Here's an older list; a big part of it was collected by Ray Miller (http:// users.ox.ac.uk/~raym/) of Oxford University, and published in the article "Configuration Management with Subversion, YAML and Perl Template Toolkit" in the SANE 2006 (http://www.sane.nl/sane2006/) conference proceedings. FIXME: Check urls, update docbookmk, by Michael Wiedmann (http://www.miwie.org/docbkmake/) offers probably a superset of Caspar's docbook.mk functionality. latex-make by the LaTeX Utils project on http://gforge.inria.fr/projects/ latex-utils/ seems to provide similar functionality as docbook.mk for LaTeX documents. Latexmk by John Collins e.a. on http://www.phys.psu.edu/~collins/software/ latexmk-jcc/ is another implementation of this idea. SUP, the Software Upgrade Protocol and it's implementation by Carnegie Mellon University offers another way to distribute (configuration)files. Beware though: between Nov 1996 and June 2004, no new release has been published. The Debian (ftp://ftp.debian.org/debian/pool/main/s/sup/) and NetBSD packages are likely still maintained, though. PIKT (http://www.pikt.org/) is intended primarily for system monitoring, but does do configuration management too. LCFG (http://www.lcfg.org/) is another configuration management system. The Arusha Project (ARK, at http://ark.sf.net/) provides a framework for collaborative system administration. Bcfg2 (http://trac.mcs.anl.gov/projects/bcfg2/) is yet another configuration management system. quattor (http://quattor.web.cern.ch/) is a system administration toolkit for installation, configuration and management of Unix systems. rb3 and friends, as written and used by Ray Miller e.a. at Oxford University, ( http://users.ox.ac.uk/~raym/software/configuration-management/). The svk version control system is said to be quite usable for handling configuration file management (without a separate install mechanism like caspar). See also this discussion on the Debian development list. On the http://www.infrastructures.org/ website on automated (Unix) system administration, you can find some thoughts on managing configuration files using a version control system. caspar-20140919/doc/caspar-typesetting.html0000644000175000017500000001721412407054477015457 00000000000000 caspar-typesetting

19 Sep 2014    caspar-typesetting 20140919

NAME

caspar-typesetting - Makefile snippets for common typesetting tasks

SYNOPSIS

In a Makefile, write
include caspar/mk/docbook.mk
or
include caspar/mk/pod.mk
.

DESCRIPTION

The caspar docbook.mk and pod.mk files are Makefile snippets for common typesetting tasks, like typesetting LaTeX (see [3]), DocBook XML, DocBook SGML (see [2]) and POD (see [1]) documents. You just have to type make, instead of stuff like jade -t tex -d caspar/print.dsl /usr/share/sgml/declaration/xml.dcl foobar.dbx.

USAGE

In a directory where you maintain .dbx (Docbook XML) or .tex (LaTeX) files, do
$ echo include caspar/mk/docbook.mk > Makefile $ vi karenina.dbx $ make karenina.view $ make karenina.print $ vi svejk.tex $ make svejk.view $ make svejk.print $ make $ make clean
Other targets: filename.ps, filename.pdf, filename.2ps, filename.html, filename.printbig, filename.dvi.

Variables you might like to set in your Makefile: XMLDCL (default is /usr/share/sgml/declaration/xml.dcl; if you're not on a Debian GNU/Linux system, you'll likely have to adjust this), HTML_DSL, PRINT_DSL.

In a directory where you maintain .pod files, do

$ echo include caspar/mk/pod.mk > Makefile $ vi lire.pod $ perldoc ./lire.pod $ make lire.pdf $ make $ less lire.overstrike-txt $ make clean
Other targets: filename.ps, filename.html, filename.txt, ... (Similar to the ones supplied by docbook.mk).

EXAMPLES

Some examples: Overriding the caspar-supplied DSSSL files: Create your own print.dls and html.dsl, in the same directory as your Docbook XML files. Your Makefile should read:

PRINT_DSL = print.dsl HTML_DSL = html.dsl include caspar/mk/docbook.mk
Overriding the standard html-to-text convertor:
$ W3M=lynx make svejk.txt
.

FILES

caspar/mk/docbook.mk, caspar/mk/pod.mk

ENVIRONMENT

For docbook.mk: files: XMLDCL, HTML_DSL, PRINT_DSL; utilities: JADE, PDFJADETEX, PDFLATEX, JADETEX, LATEX, W3M, DVIPS, PSNUP, LPR, GV; settings: JADE_MAXERRORS. These variables can get adjusted in Makefile, as well as in the shell environment.

pod.mk Uses no environment variables.

AUTHOR

Joost van Baal-Ilić

SEE ALSO

caspar(7) [1] perlpod(1) about Perl's Plain Old Documentation format

[2] DocBook: The Definitive Guide on http://docbook.org/,

[3] The LaTeX Project Homepage on http://www.latex-project.org/.

Some comments on advanced usage are in the files docbook.mk and pod.mk itself.

caspar-20140919/doc/caspar-typesetting.ps0000644000175000017500000002610612407054477015135 00000000000000%!PS-Adobe-3.0 %%Creator: groff version 1.22.2 %%CreationDate: Fri Sep 19 18:26:39 2014 %%DocumentNeededResources: font Times-Roman %%+ font Times-Bold %%+ font Courier %%+ font Times-Italic %%DocumentSuppliedResources: procset grops 1.22 2 %%Pages: 2 %%PageOrder: Ascend %%DocumentMedia: Default 595 842 0 () () %%Orientation: Portrait %%EndComments %%BeginDefaults %%PageMedia: Default %%EndDefaults %%BeginProlog %%BeginResource: procset grops 1.22 2 %!PS-Adobe-3.0 Resource-ProcSet /setpacking where{ pop currentpacking true setpacking }if /grops 120 dict dup begin /SC 32 def /A/show load def /B{0 SC 3 -1 roll widthshow}bind def /C{0 exch ashow}bind def /D{0 exch 0 SC 5 2 roll awidthshow}bind def /E{0 rmoveto show}bind def /F{0 rmoveto 0 SC 3 -1 roll widthshow}bind def /G{0 rmoveto 0 exch ashow}bind def /H{0 rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def /I{0 exch rmoveto show}bind def /J{0 exch rmoveto 0 SC 3 -1 roll widthshow}bind def /K{0 exch rmoveto 0 exch ashow}bind def /L{0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def /M{rmoveto show}bind def /N{rmoveto 0 SC 3 -1 roll widthshow}bind def /O{rmoveto 0 exch ashow}bind def /P{rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def /Q{moveto show}bind def /R{moveto 0 SC 3 -1 roll widthshow}bind def /S{moveto 0 exch ashow}bind def /T{moveto 0 exch 0 SC 5 2 roll awidthshow}bind def /SF{ findfont exch [exch dup 0 exch 0 exch neg 0 0]makefont dup setfont [exch/setfont cvx]cvx bind def }bind def /MF{ findfont [5 2 roll 0 3 1 roll neg 0 0]makefont dup setfont [exch/setfont cvx]cvx bind def }bind def /level0 0 def /RES 0 def /PL 0 def /LS 0 def /MANUAL{ statusdict begin/manualfeed true store end }bind def /PLG{ gsave newpath clippath pathbbox grestore exch pop add exch pop }bind def /BP{ /level0 save def 1 setlinecap 1 setlinejoin DEFS/BPhook known{DEFS begin BPhook end}if 72 RES div dup scale LS{ 90 rotate }{ 0 PL translate }ifelse 1 -1 scale }bind def /EP{ level0 restore showpage }def /DA{ newpath arcn stroke }bind def /SN{ transform .25 sub exch .25 sub exch round .25 add exch round .25 add exch itransform }bind def /DL{ SN moveto SN lineto stroke }bind def /DC{ newpath 0 360 arc closepath }bind def /TM matrix def /DE{ TM currentmatrix pop translate scale newpath 0 0 .5 0 360 arc closepath TM setmatrix }bind def /RC/rcurveto load def /RL/rlineto load def /ST/stroke load def /MT/moveto load def /CL/closepath load def /Fr{ setrgbcolor fill }bind def /setcmykcolor where{ pop /Fk{ setcmykcolor fill }bind def }if /Fg{ setgray fill }bind def /FL/fill load def /LW/setlinewidth load def /Cr/setrgbcolor load def /setcmykcolor where{ pop /Ck/setcmykcolor load def }if /Cg/setgray load def /RE{ findfont dup maxlength 1 index/FontName known not{1 add}if dict begin { 1 index/FID ne 2 index/UniqueID ne and {def}{pop pop}ifelse }forall /Encoding exch def dup/FontName exch def currentdict end definefont pop }bind def /DEFS 0 def /EBEGIN{ moveto DEFS begin }bind def /EEND/end load def /CNT 0 def /level1 0 def /PBEGIN{ /level1 save def translate div 3 1 roll div exch scale neg exch neg exch translate 0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin 10 setmiterlimit []0 setdash /setstrokeadjust where{ pop false setstrokeadjust }if /setoverprint where{ pop false setoverprint }if newpath /CNT countdictstack def userdict begin /showpage{}def /setpagedevice{}def mark }bind def /PEND{ cleartomark countdictstack CNT sub{end}repeat level1 restore }bind def end def /setpacking where{ pop setpacking }if %%EndResource %%EndProlog %%BeginSetup %%BeginFeature: *PageSize Default << /PageSize [ 595 842 ] /ImagingBBox null >> setpagedevice %%EndFeature %%IncludeResource: font Times-Roman %%IncludeResource: font Times-Bold %%IncludeResource: font Courier %%IncludeResource: font Times-Italic grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72 def/PL 841.89 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron /Zcaron/scaron/zcaron/Ydieresis/trademark/quotesingle/Euro/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent /ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen /period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon /semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O /P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/circumflex /underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y /z/braceleft/bar/braceright/tilde/.notdef/quotesinglbase/guillemotleft /guillemotright/bullet/florin/fraction/perthousand/dagger/daggerdbl /endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut /dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash /quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen /brokenbar/section/dieresis/copyright/ordfeminine/guilsinglleft /logicalnot/minus/registered/macron/degree/plusminus/twosuperior /threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior /ordmasculine/guilsinglright/onequarter/onehalf/threequarters /questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE /Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex /Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis /multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn /germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla /egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis /eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash /ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def /Times-Italic@0 ENC0/Times-Italic RE/Courier@0 ENC0/Courier RE /Times-Bold@0 ENC0/Times-Bold RE/Times-Roman@0 ENC0/Times-Roman RE %%EndSetup %%Page: 1 1 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF(caspar)20 48 Q 104.365 (-typesetting\(7\) MISCELLANEOUS)-.2 F(caspar)109.365 E (-typesetting\(7\))-.2 E/F1 10.95/Times-Bold@0 SF -.219(NA)20 84 S(ME) .219 E F0(caspar)100 96 Q(-typesetting - Mak)-.2 E (e\214le snippets for common typesetting tasks)-.1 E F1(SYNOPSIS)20 112.8 Q F0(In a Mak)100 124.8 Q(e\214le, write)-.1 E/F2 10/Courier@0 SF (include caspar/mk/docbook.mk)112 160.8 Q F0(or)100 184.8 Q F2 (include caspar/mk/pod.mk)112 220.8 Q F0(.)100 244.8 Q F1(DESCRIPTION)20 261.6 Q F0 1.26(The caspar)100 273.6 R/F3 10/Times-Italic@0 SF (docbook.mk)3.76 E F0(and)3.759 E F3(pod.mk)3.759 E F0 1.259 (\214les are Mak)3.759 F 1.259 (e\214le snippets for common typesetting tasks,)-.1 F(lik)100 285.6 Q 3.015(et)-.1 G .515(ypesetting LaT)-3.015 F .516(eX \(see [3]\), DocBoo\ k XML, DocBook SGML \(see [2]\) and POD \(see [1]\))-.7 F 4.362 (documents. Y)100 297.6 R 1.862(ou just ha)-1.1 F 2.162 -.15(ve t)-.2 H 4.362(ot).15 G(ype)-4.362 E F2(make)4.362 E F0 4.362(,i)C 1.862 (nstead of stuf)-4.362 F 4.362(fl)-.25 G(ik)-4.362 E(e)-.1 E F2 1.862 (jade -t tex -d cas-)4.362 F (par/print.dsl /usr/share/sgml/declaration/xml.dcl foobar.dbx)100 309.6 Q F0(.)A F1(USA)20 326.4 Q(GE)-.602 E F0 (In a directory where you maintain .dbx \(Docbook XML\) or .te)100 338.4 Q 2.5(x\()-.15 G(LaT)-2.5 E(eX\) \214les, do)-.7 E F2 6($e)118 374.4 S (cho include caspar/mk/docbook.mk > Makefile)-6 E 6($v)118 398.4 S 6(ik) -6 G(arenina.dbx)-6 E 6($m)118 410.4 S(ake karenina.view)-6 E 6($m)118 422.4 S(ake karenina.print)-6 E 6($v)118 446.4 S 6(is)-6 G(vejk.tex)-6 E 6($m)118 458.4 S(ake svejk.view)-6 E 6($m)118 470.4 S(ake svejk.print)-6 E 6($m)118 494.4 S(ake)-6 E 6($m)118 506.4 S(ake clean)-6 E F0 5.094 (Other tar)100 530.4 R(gets:)-.18 E F2(filename.ps)7.594 E F0(,)A F2 (filename.pdf)7.594 E F0(,)A F2(filename.2ps)7.594 E F0(,)A F2 (filename.html)7.594 E F0(,)A F2(filename.printbig)100 542.4 Q F0(,)A F2 (filename.dvi)2.5 E F0(.)A -1.11(Va)100 566.4 S 10.287 (riables you might lik)1.11 F 12.787(et)-.1 G 12.786(os)-12.787 G 10.286 (et in your Mak)-12.786 F(e\214le:)-.1 E F2(XMLDCL)12.786 E F0(\(def) 12.786 E 10.286(ault is)-.1 F F2(/usr/share/sgml/declaration/xml.dcl)100 578.4 Q F0 2.871(;i)C 2.871(fy)-2.871 G(ou')-2.871 E .371 (re not on a Debian GNU/Linux sys-)-.5 F(tem, you')100 590.4 Q(ll lik) -.1 E(ely ha)-.1 E .3 -.15(ve t)-.2 H 2.5(oa).15 G(djust this\),)-2.5 E F2(HTML_DSL)2.5 E F0(,)A F2(PRINT_DSL)2.5 E F0(.)A (In a directory where you maintain .pod \214les, do)100 614.4 Q(caspar) 20 768 Q(-typesetting 20140919)-.2 E(19 Sep 2014)93.94 E(1)204 E 0 Cg EP %%Page: 2 2 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF(caspar)20 48 Q 104.365 (-typesetting\(7\) MISCELLANEOUS)-.2 F(caspar)109.365 E (-typesetting\(7\))-.2 E/F1 10/Courier@0 SF 6($e)118 84 S (cho include caspar/mk/pod.mk > Makefile)-6 E 6($v)118 96 S 6(il)-6 G (ire.pod)-6 E 6($p)118 108 S(erldoc ./lire.pod)-6 E 6($m)118 120 S (ake lire.pdf)-6 E 6($m)118 132 S(ake)-6 E 6($l)118 144 S (ess lire.overstrike-txt)-6 E 6($m)118 156 S(ake clean)-6 E F0 .985 (Other tar)100 180 R(gets:)-.18 E F1(filename.ps)3.485 E F0(,)A F1 (filename.html)3.485 E F0(,)A F1(filename.txt)3.485 E F0 3.484(,.)C 3.484(.. \(Similar)-3.484 F .984(to the ones)3.484 F(supplied by)100 192 Q/F2 10/Times-Italic@0 SF(docbook.mk)2.5 E F0(\).)A/F3 10.95 /Times-Bold@0 SF(EXAMPLES)20 208.8 Q F0 1.859(Some e)100 220.8 R 1.859 (xamples: Ov)-.15 F 1.859(erriding the caspar)-.15 F 1.859 (-supplied DSSSL \214les: Create your o)-.2 F 1.859(wn print.dls and) -.25 F(html.dsl, in the same directory as your Docbook XML \214les. Y) 100 232.8 Q(our Mak)-1.1 E(e\214le should read:)-.1 E F1 (PRINT_DSL = print.dsl)106 268.8 Q(HTML_DSL = html.dsl)106 280.8 Q (include caspar/mk/docbook.mk)106 292.8 Q F0(Ov)100 316.8 Q (erriding the standard html-to-te)-.15 E(xt con)-.15 E -.15(ve)-.4 G (rtor:).15 E F1 6($W)106 352.8 S(3M=lynx make svejk.txt)-6 E F0(.)100 376.8 Q F3(FILES)20 393.6 Q F2(caspar/mk/docbook.mk)100 405.6 Q F0(,)A F2(caspar/mk/pod.mk)2.5 E F3(ENVIR)20 422.4 Q(ONMENT)-.329 E F0 -.15(Fo) 100 434.4 S(r).15 E F2(docbook.mk)4.553 E F0 4.553<3a8c>C(les:)-4.553 E F1(XMLDCL)4.553 E F0(,)A F1(HTML_DSL)4.553 E F0(,)A F1(PRINT_DSL)4.552 E F0 4.552(;u)C(tilities:)-4.552 E F1(JADE)4.552 E F0(,)A F1(PDFJADETEX) 4.552 E F0(,)A F1(PDFLATEX)100 446.4 Q F0(,)A F1(JADETEX)4.486 E F0(,)A F1(LATEX)4.486 E F0(,)A F1(W3M)4.486 E F0(,)A F1(DVIPS)4.487 E F0(,)A F1 (PSNUP)4.487 E F0(,)A F1(LPR)4.487 E F0(,)A F1(GV)4.487 E F0 4.487(;s)C (ettings:)-4.487 E F1(JADE_MAXER-)4.487 E(RORS)100 458.4 Q F0 2.5(.T)C (hese v)-2.5 E(ariables can get adjusted in Mak)-.25 E (e\214le, as well as in the shell en)-.1 E(vironment.)-.4 E F2(pod.mk) 100 482.4 Q F0(Uses no en)2.5 E(vironment v)-.4 E(ariables.)-.25 E F3 -.548(AU)20 499.2 S(THOR).548 E F0(Joost v)100 511.2 Q(an Baal-Ili\304) -.25 E F3(SEE ALSO)20 528 Q/F4 10/Times-Bold@0 SF(caspar\(7\))100 540 Q F0([1] perlpod\(1\) about Perl')2.5 E 2.5(sP)-.55 G (lain Old Documentation format)-2.5 E([2])100 564 Q F2 (DocBook: The De\214nitive Guide)2.5 E F0(on http://docbook.or)2.5 E (g/,)-.18 E([3] The LaT)100 588 Q (eX Project Homepage on http://www.late)-.7 E(x-project.or)-.15 E(g/.) -.18 E(Some comments on adv)100 612 Q(anced usage are in the \214les) -.25 E F2(docbook.mk)2.5 E F0(and)2.5 E F2(pod.mk)2.5 E F0(itself.)2.5 E (caspar)20 768 Q(-typesetting 20140919)-.2 E(19 Sep 2014)93.94 E(2)204 E 0 Cg EP %%Trailer end %%EOF caspar-20140919/doc/caspar-typesetting.txt0000644000175000017500000000472512407054477015335 0000000000000019 Sep 2014 caspar-typesetting 20140919 1. NAME 2. SYNOPSIS 3. DESCRIPTION 4. USAGE 5. EXAMPLES 6. FILES 7. ENVIRONMENT 8. AUTHOR 9. SEE ALSO NAME caspar-typesetting - Makefile snippets for common typesetting tasks SYNOPSIS In a Makefile, write include caspar/mk/docbook.mk or include caspar/mk/pod.mk . DESCRIPTION The caspar docbook.mk and pod.mk files are Makefile snippets for common typesetting tasks, like typesetting LaTeX (see [3]), DocBook XML, DocBook SGML (see [2]) and POD (see [1]) documents. You just have to type make, instead of stuff like jade -t tex -d caspar/print.dsl /usr/share/sgml/declaration/xml.dcl foobar.dbx. USAGE In a directory where you maintain .dbx (Docbook XML) or .tex (LaTeX) files, do $ echo include caspar/mk/docbook.mk > Makefile $ vi karenina.dbx $ make karenina.view $ make karenina.print $ vi svejk.tex $ make svejk.view $ make svejk.print $ make $ make clean Other targets: filename.ps, filename.pdf, filename.2ps, filename.html, filename.printbig, filename.dvi. Variables you might like to set in your Makefile: XMLDCL (default is /usr/share /sgml/declaration/xml.dcl; if you're not on a Debian GNU/Linux system, you'll likely have to adjust this), HTML_DSL, PRINT_DSL. In a directory where you maintain .pod files, do $ echo include caspar/mk/pod.mk > Makefile $ vi lire.pod $ perldoc ./lire.pod $ make lire.pdf $ make $ less lire.overstrike-txt $ make clean Other targets: filename.ps, filename.html, filename.txt, ... (Similar to the ones supplied by docbook.mk). EXAMPLES Some examples: Overriding the caspar-supplied DSSSL files: Create your own print.dls and html.dsl, in the same directory as your Docbook XML files. Your Makefile should read: PRINT_DSL = print.dsl HTML_DSL = html.dsl include caspar/mk/docbook.mk Overriding the standard html-to-text convertor: $ W3M=lynx make svejk.txt . FILES caspar/mk/docbook.mk, caspar/mk/pod.mk ENVIRONMENT For docbook.mk: files: XMLDCL, HTML_DSL, PRINT_DSL; utilities: JADE, PDFJADETEX, PDFLATEX, JADETEX, LATEX, W3M, DVIPS, PSNUP, LPR, GV; settings: JADE_MAXERRORS. These variables can get adjusted in Makefile, as well as in the shell environment. pod.mk Uses no environment variables. AUTHOR Joost van Baal-Ilić SEE ALSO caspar(7) [1] perlpod(1) about Perl's Plain Old Documentation format [2] DocBook: The Definitive Guide on http://docbook.org/, [3] The LaTeX Project Homepage on http://www.latex-project.org/. Some comments on advanced usage are in the files docbook.mk and pod.mk itself. caspar-20140919/doc/casparize.azm0000644000175000017500000000537712345413601013431 00000000000000\: vim:syntax=tex \: this is a manpage in zoem format. see http://micans.org/zoem/ and man_zmm(7) \: This file is maintained at http://git.mdcc.cx/caspar \: casparize script manpage \: Copyright (C) 2009 Jeroen Hoppenbrouwers \: \: This program is free software: you can redistribute it and/or modify \: it under the terms of the GNU General Public License as published by \: the Free Software Foundation, either version 3 of the License, or \: (at your option) any later version. \: \: This program is distributed in the hope that it will be useful, \: but WITHOUT ANY WARRANTY; without even the implied warranty of \: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the \: GNU General Public License for more details. \: \: You should have received a copy of the GNU General Public License \: along with this program. If not, see . \import{pud/man.zmm} \import{./include.zmm} \begin{pud::man}{ {name}{casparize} {html_title}{casparize} {section}{1} \man_share } \${html}{\"pud::man::maketoc"} \def{caspar}{\bf{caspar}} \def{casparize}{\bf{casparize}} \sec{name}{NAME} \NAME{casparize}{Set up \caspar Makefile in a new directory} \sec{synopsis}{SYNOPSIS} \par{ \casparize \synreqopt{dir}{/path/to/config/dir} } \par{ \casparize \synreqopt{file}{/path/to/config/dir/file} } \sec{description}{DESCRIPTION} \casparize creates a new configuration working directory in your current working directory, sets up a Makefile for \sibref{caspar}{caspar(7)} in this new directory, and optionally copies an original configuration file from its original system place to the newly created configuration working directory. \sec{usage}{USAGE} You typically use \casparize when you already have created the root configuration working directory with its include directory and install.mk Caspar include file. By analysing your current working directory and the configuration directory path you give on the command line, casparize can deduce the contents of the Makefile in the newly created configuration working directory. It creates the new directory, creates the correct Makefile, and optionally copies the given configuration file in the new directory, ready for its first version commit. \sec{examples}{EXAMPLES} A typical example: \verbatim{ $ cd /etc $ casparize /etc/postfix/main.cf} creates the directory /etc/postfix, creates /etc/postfix/Makefile including the proper content, and copies /etc/postfix/main.cf into /etc/postfix/main.cf. You can now directly add and commit the new directory. \sec{bugs}{BUGS} Non known at this moment. \sec{author}{AUTHOR} Jeroen Hoppenbrouwers \sec{seealso}{SEE ALSO} \sibref{caspar}{caspar(7)} The caspar homepage is at \httpref{http://mdcc.cx/caspar/} . \end{pud::man} caspar-20140919/doc/csp_helper.azm0000644000175000017500000000744412345413601013571 00000000000000\: vim:syntax=tex \: This file is maintained at http://git.mdcc.cx/caspar \: this is a manpage in zoem format. see http://micans.org/zoem/ and man_zmm(7) \import{pud/man.zmm} \import{./include.zmm} \begin{pud::man}{ {name}{csp_helper} {html_title}{csp_helper} {section}{1} \man_share } \${html}{\"pud::man::maketoc"} \def{caspar}{\bf{caspar}} \def{csp_install}{\bf{csp_install}} \def{csp_mkdircp}{\bf{csp_mkdircp}} \def{csp_scp_keep_mode}{\bf{csp_scp_keep_mode}} \def{csp_sucp}{\bf{csp_sucp}} \sec{name}{NAME} \NAME{csp_helper}{A collection of caspar helper scripts} \sec{synopsis}{SYNOPSIS} \csp_install \synreqopt{dir}{directory} \synreqopt{file}{file} \par{ \csp_mkdircp \synreqopt{dir}{directory} \synreqopt{file}{file} } \par{ \csp_scp_keep_mode \synreqopt{h}{[user@]host} \synreqopt{dir}{directory} \synreqopt{file}{file} } \par{ \csp_sucp \synreqopt{h}{[user@]host} \synreqopt{dir}{directory} \synreqopt{file}{file} } \sec{description}{DESCRIPTION} The scripts \csp_install, \csp_mkdircp, \csp_scp_keep_mode and \csp_sucp are helpers for \sibref{caspar}{caspar(7)}. These scripts typically are not invoked directly, but via a Makefile which uses \caspar. See the notes on csp_PUSH in \sibref{caspar}{caspar(7)} for information on how to link \csp_install, \csp_scp_keep_mode and \csp_sucp to \caspar. \sec{install_description}{install DESCRIPTION} \csp_install creates the required directory (if needed) and installs the file, preserving timestamps. It uses install(1). \sec{install_examples}{install EXAMPLES} \verbatim{ csp_INSTALL_OPTIONS='--owner=www-data --group=www-data' \\ csp_INSTALL_MODE=ugo=r \\ csp_install /srv/www index.html} \verbatim{ csp_INSTALL_MODE=u=rwx,go= csp_install /usr/local/sbin mkpasswd} \sec{install_environment}{install ENVIRONMENT} \csp_install honors csp_INSTALL_OPTIONS and csp_INSTALL_MODE (default is u=rw,go=r). \sec{mkdircp_description}{mkdircp DESCRIPTION} \csp_mkdircp calls mkdir(1) and cp(1). \csp_mkdircp is used like csp_CP. use \csp_mkdircp if you frequently have to bootstrap installation on a fresh system, on which needed directories don't exist yet. \csp_mkdircp makes sure the target directory exists before calling cp(1), by calling mkdir -p first. \sec{scp_keep_mode_description}{scp_keep_mode DESCRIPTION} \csp_scp_keep_mode uses ssh to copy a file to a remote host, keeping its file permission mode. The trick used is a combination of mktemp(1) and mv(1). Useful if you'd like to be sure a file gets installed e.g. group writable, without fiddling with permission bits on the remote host. \sec{scp_keep_mode_examples}{scp_keep_mode EXAMPLE} \verbatim{ chmod g+w rc csp_scp_keep_mode root@gandalf /etc/uruk rc} \sec{scp_keep_mode_environment}{scp_keep_mode ENVIRONMENT} \csp_scp_keep_mode honors csp_SSH ("ssh" by default). \sec{sucp_description}{sucp DESCRIPTION} \csp_sucp calls tar(1) from within sudo(1) from within ssh(1). This allows one to copy files to accounts on hosts one can only reach by calling sudo on the ssh-reachable remote host. \par{ Typically, one wants to install a root-owned file, but one does not want to allow access to the root-account directly from ssh. Typically sudo is used as an extra line of defense. } \par{NB: if your sudo prompts for a password, be sure to have line \verbatim{ Defaults !tty_tickets} in your sudoers file: we first call sudo -v, than we call sudo to write the data. Since we use ssh to get to the host, we'll use a different tty for both sudo calls. } \sec{sucp_examples}{sucp EXAMPLES} Some examples: \verbatim{ csp_sucp rms@bilbo /etc fstab} \verbatim{ csp_sucp monty-python commit/ trailer.txt} \sec{author}{AUTHOR} \"man::author" \sec{seealso}{SEE ALSO} \sibref{caspar}{caspar(7)} The caspar homepage is at \httpref{http://mdcc.cx/caspar/} . \end{pud::man} caspar-20140919/doc/caspar.azm0000644000175000017500000005261212345413601012713 00000000000000\: vim:syntax=tex \: This file is maintained at http://git.mdcc.cx/caspar \: this is a manpage in zoem format. see http://micans.org/zoem/ and man_zmm(7) \import{pud/man.zmm} \import{./include.zmm} \begin{pud::man}{ {name}{caspar} {html_title}{caspar} {section}{7} \man_share } \${html}{\"pud::man::maketoc"} \def{"docbook.mk"}{\it{docbook.mk}} \def{"pod.mk"}{\it{pod.mk}} \def{"caspar.mk"}{\it{caspar.mk}} \def{caspar}{\bf{caspar}} \def{"install.mk"}{\it{install.mk}} \sec{name}{NAME} caspar - Makefile snippets for common tasks \sec{synopsis}{SYNOPSIS} In a Makefile, write either \verbatim{ include caspar/mk/caspar.mk } or \verbatim{ include caspar/mk/docbook.mk } or \verbatim{ include caspar/mk/pod.mk } . \sec{description}{DESCRIPTION} Caspar offers Makefile snippets for common tasks, like installing (configuration) files, or typesetting LaTeX, DocBook XML and DocBook SGML documents. \par{ The typesetting functionality is delivered by \"docbook.mk" and \"pod.mk". This is documented in \sibref{caspar-typesetting}{caspar-typesetting(7)}. } \par{ The installing-stuff functionality is delivered by \"caspar.mk". (That's what the rest of the manual will talk about.) It enables one to run 'make install' from within a tree which typically holds configuration files, managed using Subversion (or git or any other version control system, for that matter). } \par{ It is useful in cases like this: all configuration files of some host are under version control, and, after commiting a change to CVS, you want to be able to easily install the new configuration file on the host. } \par{ With \caspar, all you have to do is specify the hostname in one place, and specify the name of the target directory in each CVS directory. } \par{ It is comparable with other tools for Unix system administrators like puppet and cfengine. Main difference: the caspar code consists of less than 100 lines of GNU Make. } \sec{usage}{USAGE} Within a CVS tree, create a file \it{include/install.mk}, with contents like e.g. \verbatim{ csp_UHOST = root@some.host.somewhere include caspar/mk/caspar.mk } . Within each other directory of the CVS tree which holds files, create a Makefile, which looks like e.g. \verbatim{ csp_DIR = /some/dir/ectory/ include ../../include/install.mk } . If you'd like to use the \it{install-recursive} target too, in directories which hold subdirectories (but not files), you'll have to create a Makefile which looks something like \verbatim{ include ../../include/install.mk } . From within the CVS tree, one can call: \verbatim{ make -diff make -install make diff make install make load make make install-recursive } Calling \tt{make -diff} shows the diff between the local file and the file as currently installed on the remote location. Calling \tt{make install} (or \tt{make}) now will scp all files in the current directory to the remote location. The \it{install-recursive} target descends down the tree, and calls \tt{make install} in each subdirectory. \par{ Of course, you'll have to be able to ssh directly as root to the remote host to get this working (if you'd like to use \tt{csp_UHOST = root@some.host.somewhere}). If you don't like this, and would like to have a \tt{PermitRootLogin no} in your \tt{/etc/ssh/sshd_config}, you can use csp_sucp(1). See below. } \sec{variables}{VARIABLES} \par{ The variables one can set in a calling Makefile are: \begin{itemize}{ {contiguous}{1} {w1}{7} } \item{\tt{csp_UHOST}} user@host, reachable using \tt{$(csp_PUSH)} (which is scp by default) \item{\tt{csp_UHOSTS}} space separated list of user@host items, reachable using \tt{$(csp_PUSH)} \item{\tt{csp_DIR}} directory on host, reachable using function \tt{$(csp_PUSH)} \item{\tt{csp_PUSH}} make function for pushing files to remote location. Usually, this is a wrapper around a script or program. The function will be passed 4 arguments: \it{[user@]host}, remote \it{directory} and local \it{filename}. \it{[user@]host} will be set to all elements of \tt{$(csp_UHOSTS)}; \it{directory} will be set to \tt{$(csp_DIR)}. Currently, \tt{$(csp_scp_FUNC)}, \tt{$(csp_cp_FUNC)} and \tt{$(csp_sucp_FUNC)} are supported as push plugins. If \tt{csp_PUSH} is unset, the default \tt{$(csp_scp_FUNC)} is used. \item{\tt{csp_LOAD}} the `load' target depends upon these targets. \item{\tt{csp_BUILD}} the `build' target depends upon these targets. \item{\tt{csp_CP}} cp binary, just "cp" by default \item{\tt{csp_SCP}} scp binary, just "scp" by default \item{\tt{csp_SUCP}} script wrapping sudo in ssh, "csp_sucp" by default \item{\tt{csp_EXTRAFILES}} extra files which should be installed. Can be used to include files starting with a dot. \item{\tt{csp_TABOOFILES}} files which should never be installed. Set to \tt{Makefile .%.swp %~ #%# pod2htmd.tmp pod2htmi.tmp} by default. \item{\tt{csp_TABOOFILES_ADD}} extra files which should never be installed; added to list in \tt{csp_TABOOFILES}. \item{\tt{csp_TABOOFILES_SKIP}} files which should be installed, even if in initial \tt{csp_TABOOFILES} list. Removed from \tt{csp_TABOOFILES} list. \item{\tt{csp_TABOODIRS}} directories to exclude in install-recursive target. set to \tt{CVS .svn} by default. \item{\tt{csp_TABOODIRS_ADD}, \tt{csp_TABOODIRS_SKIP}} see \tt{csp_TABOOFILES} equivalents. \item{\tt{csp_UHOSTS_SUBSET}} override csp_UHOSTS: don't push to csp_UHOSTS, but to the intersection of this space separated list of user@host items and csp_UHOSTS. \end{itemize} } \par{ The following variables might get phased out or removed soonish: \begin{itemize}{ {contiguous}{1} {w1}{7} } \item{\tt{csp_CPFLAGS}} extra arguments to pass to cp invocation, none by default \item{\tt{csp_SCPFLAGS}} extra arguments to pass to scp invocation, e.g. '\tt{-i .ssh/id_rsa-root}' \end{itemize} } \sec{examples}{EXAMPLES} \par{ Some examples: } \cpar{Using csp_UHOST}{ This is the simplest way to use caspar. \it{Makefile} is \verbatim{ csp_UHOST = root@some.host.somewhere csp_DIR = /etc/ include caspar/mk/caspar.mk } Now, running "make" will scp all files in the current directory to \tt{root@some.host.somewhere:/etc/}. } \cpar{More hosts, not scp but sudo via ssh: using csp_PUSH}{ \it{Makefile} is \verbatim{ csp_UHOSTS = root@some.host.somewhere root@some.other.host csp_PUSH = $(csp_sucp_FUNC) csp_DIR = /etc/ include caspar/mk/caspar.mk } Now, running "make" will use csp_sucp(1) to install all files in the current directory to both root@some.host.somewhere:/etc/ and root@some.other.host:/etc/. If a file named \tt{fstab} is present in the current directory, running "make fstab-install" will just install that one file. If you need to sudo(1) to another user on the remote host, add something like \verbatim{ csp_XARG = postgres } . (If such a username is not supplied, sudo (and csp_sucp) use the default: root.) } \cpar{Overriding csp_UHOSTS: csp_UHOSTS_SKIP}{ If one or some of your hosts are temporarily unavailable, and you'd like to push your files to the hosts which are alive, you can temporarily override your csp_UHOSTS. E.g., when some.other.host is not available: \verbatim{ % cat Makefile csp_UHOSTS = root@some.host.somewhere root@some.other.host csp_DIR = /etc/ include caspar/mk/caspar.mk % make install csp_UHOSTS_SKIP=root@some.other.host scp hosts root@some.host.somewhere:/etc/ scp fstab root@some.host.somewhere:/etc/ } } \cpar{Overriding csp_UHOSTS in a smart way: csp_UHOSTS_SUBSET. Using multiple groups of hosts. Recursive make made easy.}{ If you have lots of subdirectories holding information for lots of groups of hosts, while this run you just want to install for a small group (or 1) hosts, csp_UHOSTS_SUBSET is useful. Suppose your casparized tree looks like \verbatim{ Makefile apache/include/install.mk apache/etc/apache2/Makefile apache/etc/apache2/envvars php/include/install.mk php/etc/php4/apache/Makefile php/etc/php4/apache/php.ini grub/include/install.mk grub/boot/grub/Makefile grub/boot/grub/menu.lst logrotate/include/install.mk logrotate/etc/Makefile logrotate/etc/logrotate.conf nrpe/include/install.mk nrpe/debian/etc/default/Makefile nrpe/debian/etc/default/nagios-nrpe-server } The file \it{apache/etc/apache2/Makefile} is: \verbatim{ csp_DIR = /etc/apache2/ include ../../include/install.mk } (all other \it{Makefile}s are similar). The file \it{apache/include/install.mk} is \verbatim{ csp_UHOSTS = root@a root@b include caspar/mk/caspar.mk } The file \it{php/include/install.mk} is the same. The files \it{grub/include/install.mk} and \it{logrotate/include/install.mk} are \verbatim{ csp_UHOSTS = root@d root@e root@f root@g include caspar/mk/caspar.mk } The file \it{nrpe/include/install.mk} is \verbatim{ csp_UHOSTS = root@d root@e root@f root@n include caspar/mk/caspar.mk } The toplevel \it{Makefile} is \verbatim{ dirs = $(patsubst %/Makefile,%,$(shell find * -mindepth 1 -name Makefile)) all: for i in $(dirs); do $(MAKE) -$(MAKEFLAGS) -C $$i; done install for i in $(dirs); do $(MAKE) -$(MAKEFLAGS) -C $$i install; done load for i in $(dirs); do $(MAKE) -$(MAKEFLAGS) -C $$i load; done } (we don't feel like sticking a \it{Makefile} in all non-leaf nodes of our tree). } \par{ Now, when running "\tt{csp_UHOSTS_SUBSET='root@e root@f root@m root@n' make}" in the toplevel, caspar just takes the intersection of csp_UHOSTS_SUBSET and csp_UHOSTS for each csp_UHOSTS list. So, caspar will not push anything for \it{apache/} and \it{php/}. The files \it{grub/boot/grub/menu.lst} and \it{logrotate/etc/logrotate.conf} will get pushed to \tt{root@e} and \tt{root@f} only. The file \it{nrpe/debian/etc/default/nagios-nrpe-server} will get pushed to \tt{root@e}, \tt{root@f} and \tt{root@n}. } \par{ This is often better than just overriding csp_UHOSTS on the commandline (or in your shell's environment): if the intersection of the original csp_UHOSTS and your new csp_UHOSTS is empty, chances are big you've just forgotten to clean your environment. } \cpar{Creating remote directories if needed}{ \it{Makefile} is \verbatim{ csp_DIR = /some/dir/ectory/ csp_PUSH = $(csp_scpmkdir_FUNC) csp_UHOST = root@some.host.somewhere include caspar/mk/caspar.mk } Now, before calling scp, caspar will run 'mkdir -p' to create any missing remote directories. } \cpar{Using csp_CP and csp_LOAD}{ \it{username/etc/Makefile} is \verbatim{ csp_UHOST = dummy csp_PUSH = $(csp_cp_FUNC) csp_DIR = $(HOME)/etc/ csp_LOAD = crontab-load include ../include/install.mk crontab-load: crontab $(csp_DIR)/crontab } while \it{../include/install.mk} is just \verbatim{ include caspar/mk/caspar.mk } . Setting \tt{csp_PUSH} to \tt{$(csp_cp_FUNC)} causes cp(1) to get executed by "make install" (not scp(1)). Setting \tt{csp_LOAD} causes "make load" to execute the crontab command. Just running "make" is OK too, since "make" calls both "make install" and "make load". } \cpar{Using csp_DIR, csp_LOAD and install(1)}{ To install a file on the local host, create e.g. a file \it{etc/uruk/Makefile} like: \verbatim{ csp_UHOST = dummy csp_DIR = /etc/uruk/ csp_PUSH = $(csp_install_FUNC) csp_LOAD = uruk-load include caspar/mk/caspar.mk uruk-load: sudo invoke-rc.d uruk force-reload } } \cpar{Using csp_DIR and csp_LOAD, take 2}{ \it{etc/Makefile} is \verbatim{ csp_DIR = /etc/ csp_LOAD = aliases-load include ../include/install.mk aliases-load: $(csp_SSH) $(csp_UHOST) "cd /etc; postalias aliases; postfix reload" } while \it{../include/install.mk} is \verbatim{ csp_UHOST = root@some.host.somewhere include caspar/mk/caspar.mk } } \cpar{Using csp_BUILD: building files locally}{ If you'd like to build some files locally from local sources, before installing the just build files, do e.g. \verbatim{ csp_UHOST = root@some.host.somewhere csp_DIR = /etc/ csp_TABOOFILES_ADD = sshd_config.m4 csp_BUILD = my-build include caspar/mk/caspar.mk my-build: sshd_config sshd_config: sshd_config.m4 m4 $< > $@ } List all source files in csp_TABOOFILES_ADD: this way, they won't get installed on the csp_UHOST. } \cpar{Using csp_sucp_FUNC and csp_LOAD}{ If you'd like to use csp_sucp and want a `load' target, do something like: \verbatim{ csp_PUSH = $(csp_sucp_FUNC) csp_UHOST = foobar.example.com csp_DIR = /etc/uruk/ csp_LOAD = rc-load include caspar/mk/caspar.mk rc-load: $(csp_SSH) $(csp_UHOST) "sudo invoke-rc.d uruk force-reload" } } \cpar{Adding a "check" target}{ If you want to do some syntax check on the remote host, before loading the just installed configuration file (and have a "make check" thing), do \verbatim{ csp_UHOST = foobar.example.com csp_DIR = /etc/ csp_LOAD = check my-load include caspar/mk/caspar.mk check: $(csp_SSH) $(csp_UHOST) do-check-stuff my-load: $(csp_SSH) $(csp_UHOST) do-load-stuff } This way, "make load" won't cause the file to load if the check fails (which is probably what you want). Running "make" will perform "install", "check" and "load". } \cpar{Combining the csp_LOAD target with multiple hosts; building files remotely}{ You'll have to loop over csp_UHOSTS to execute load-command. Here's an example doing some preprocessing on the remote hosts too. \verbatim{ csp_DIR = /etc/ssh/ csp_UHOSTS = root@some.host.somewhere root@some.other.host csp_LOAD = sshd_config-load sshd_config-load = ssh $1 "cd $(csp_DIR); \\ m4 sshd_config.m4 >sshd_config && \\ PATH=$$PATH:/sbin /etc/init.d/ssh restart" include caspar/mk/caspar.mk } (Alternatively, you could explicitly specify the loop over the hosts: \verbatim{ csp_DIR = /etc/ssh/ sshd_config-load: for suh in $(csp_UHOSTS); do \\ ssh $$suh "cd $(csp_DIR); \\ m4 sshd_config.m4 > sshd_config && \\ PATH=$$PATH:/sbin /etc/init.d/ssh restart"; \\ done } ). } \cpar{Using the csp_TABOOFILES_{ADD,SKIP} variables; another way to perform remote builds}{ Using the csp_TABOOFILES_{ADD,SKIP} variables is handy if you want to \it{install} a \it{Makefile}, instead of using it: Create \it{Makefile} just as you'd like to have it installed on the remote location. Now, create \it{GNUmakefile} as e.g. \verbatim{ csp_TABOOFILES_SKIP = Makefile csp_TABOOFILES_ADD = GNUmakefile csp_DIR = /etc/foobar/ csp_UHOST = root@some.host.somewhere include caspar/mk/caspar.mk load: $(csp_SSH) $(csp_UHOST) "make -C $(csp_DIR)" } Now, \tt{make install} and \tt{make load} will do the right thing. } \cpar{Using the csp_EXTRAFILES variable}{ Using the csp_EXTRAFILES variable is handy if you want to install files with a leading dot. E.g.: \verbatim{ csp_EXTRAFILES = .bashrc csp_UHOST = root@some.host.somewhere csp_DIR = include caspar/mk/caspar.mk } } \cpar{Overriding csp_UHOSTS}{ Supply e.g. \verbatim{ csp_UHOSTS = root@localhost root@some.host.somewhere } in \it{install.mk}, to install on multiple hosts. Run \verbatim{ make filename-install csp_UHOSTS=joe@otherhost } to install filename as \tt{joe@otherhost}, instead of the default as given in \it{install.mk}. If you want to enable passing csp_UHOSTS as a shell environment variable, you'll have to use conditional assignment in your Makefile: \verbatim{ csp_UHOSTS ?= root@localhost root@some.host.somewhere } This allows it to run \verbatim{ % export csp_UHOSTS=foo@bar % make filename-install } to install on \tt{foo@bar}. } \cpar{Using sudo locally for installing files}{ If you'd like to install files like \verbatim{ sudo cp foo.rc /etc/foobar/ } you could set up your \it{Makefile} as \verbatim{ csp_DIR = /etc/foobar/ csp_UHOST = dummy csp_PUSH = sudo cp $(1) $(3) include caspar/mk/caspar.mk } This is like csp_sucp, but without the ssh wrapping: it works on localhost only. } \cpar{Plugging your own install script in caspar}{ If your script \tt{foobar} should be called as e.g. \verbatim{ foobar --file=fstab --user@host=joe@some.host \\ --dir=/etc/ --debuglevel=3 } then make sure your \it{Makefile} features something like \verbatim{ csp_foobar_FUNC = foobar --file=$(1) --user@host=$(2) \\ --dir=$(3) --debuglevel=$(4) csp_PUSH = $(csp_foobar_FUNC) csp_XARG = 3 } You can now use \tt{csp_UHOST} and \tt{csp_DIR} just as you're used to. } \cpar{More advanced tricks}{ When you don't want to ssh to \tt{root@some.host.somewhere} directly, you could do \verbatim{ sudo rsync -az /path/to/your/config_archive /etc } on some.host.somewhere (e.g. from cron). } \sec{files}{FILES} \it{caspar/mk/caspar.mk}, \it{caspar/mk/docbook.mk}, \it{caspar/mk/pod.mk} \sec{environment}{ENVIRONMENT} For \"caspar.mk": \tt{csp_CP}, \tt{csp_LOAD}, \tt{csp_SCP}, \tt{csp_UHOST}, \tt{csp_PUSH}, ... \sec{bugs}{BUGS} Very likely, GNU Make is not the best tool for doing the stuff \"caspar.mk" is doing. For the list of reported bugs, see \httpref{http://bugs.debian.org/src:caspar}. See also TODO, distributed with the caspar package. (And online at \httpref{http://mdcc.cx/pub/caspar/caspar-latest/TODO}.) \sec{trivia}{TRIVIA} Caspar is named after Caspar the Friendly Ghost, since that's the title of the Daniel Johnston song I was listening to when deciding to package my homegrown scripts. \sec{author}{AUTHOR} \"man::author" \sec{seealso}{SEE ALSO} \sibref{caspar-typesetting}{caspar-typesetting(7)} \sibref{csp_helper}{csp_helper(1)} \par{ The caspar homepage is at \httpref{http://mdcc.cx/caspar/} . } \par{ The document \aref{http://non-gnu.uvt.nl/pub/uvt-unix-doc/packaging/}{"Versiebeheer en software-packages: Waarom en Hoe"} (in Dutch) describes some of the reasons why people might want to use tools like caspar. } \par{ Jeroen Hoppenbrouwers blogs about the way he uses caspar, in \aref{http://www.hoppie.nl/pub/node/79}{"Using Subversion and Caspar to maintain a Linux host"}. } \par{ Lots of tools overlap (partly) with caspar in their functionality. Here's a list. } \par{ ansible (\httpref{http://www.ansible.com/}); code is on github (\httpref{https://github.com/ansible/ansible}) } \par{ cfengine (\httpref{http://www.cfengine.org/}), by Mark Burgess e.a., builds expert systems to administrate and configure large computer networks: it delivers a very big superset of caspar's installation mechanism. } \par{ Puppet (\httpref{http://reductivelabs.com/projects/puppet}), also something like a configuration management system. } \par{ Here's an older list; a big part of it was collected by Ray Miller (\httpref{http://users.ox.ac.uk/~raym/}) of Oxford University, and published in the article "Configuration Management with Subversion, YAML and Perl Template Toolkit" in the SANE 2006 (\httpref{http://www.sane.nl/sane2006/}) conference proceedings. FIXME: Check urls, update } \par{ \: The `cvs-conf' package (\httpref{http://project.tuxfamily.org/cvs-conf}, \: \httpref{http://packages.debian.org/stable/utils/cvs-conf.html}) probably \: offers about the same functionality as \"caspar.mk". However, this package \: seems largely unmaintained (between September 2002 and May 2004, at \: least). docbookmk, by Michael Wiedmann (\httpref{http://www.miwie.org/docbkmake/}) offers probably a superset of Caspar's \"docbook.mk" functionality. } \par{ latex-make by the LaTeX Utils project on \httpref{http://gforge.inria.fr/projects/latex-utils/} seems to provide similar functionality as \"docbook.mk" for LaTeX documents. } \par{ Latexmk by John Collins e.a. on \httpref{http://www.phys.psu.edu/~collins/software/latexmk-jcc/} is another implementation of this idea. } \par{ SUP, the Software Upgrade Protocol and it's implementation by Carnegie Mellon University offers another way to distribute (configuration)files. Beware though: between Nov 1996 and June 2004, no new release has been published. The Debian (\httpref{ftp://ftp.debian.org/debian/pool/main/s/sup/}) and NetBSD packages are likely still maintained, though. } \par{ PIKT (\httpref{http://www.pikt.org/}) is intended primarily for system monitoring, but does do configuration management too. } \par{ LCFG (\httpref{http://www.lcfg.org/}) is another configuration management system. } \par{ The Arusha Project (ARK, at \httpref{http://ark.sf.net/}) provides a framework for collaborative system administration. } \par{ Bcfg2 (\httpref{http://trac.mcs.anl.gov/projects/bcfg2/}) is yet another configuration management system. } \par{ quattor (\httpref{http://quattor.web.cern.ch/}) is a system administration toolkit for installation, configuration and management of Unix systems. } \par{ rb3 and friends, as written and used by Ray Miller e.a. at Oxford University, (\httpref{http://users.ox.ac.uk/~raym/software/configuration-management/}). } \par{ The \aref{http://svk.elixus.org/}{svk} version control system is said to be quite usable for handling configuration file management (without a separate install mechanism like caspar). See also \aref{http://lists.debian.org/debian-devel/2005/02/thrd2.html#00495}{this discussion on the Debian development list}. } \par{ On the \httpref{http://www.infrastructures.org/} website on automated (Unix) system administration, you can find some thoughts on managing configuration files using a version control system. } \end{pud::man} caspar-20140919/doc/caspar-typesetting.azm0000644000175000017500000000654212345413601015271 00000000000000\: vim:syntax=tex \: This file is maintained at http://git.mdcc.cx/caspar \: this is a manpage in zoem format. see http://micans.org/zoem/ and man_zmm(7) \import{pud/man.zmm} \import{./include.zmm} \begin{pud::man}{ {name}{caspar-typesetting} {html_title}{caspar-typesetting} {section}{7} \man_share } \${html}{\"pud::man::maketoc"} \def{"docbook.mk"}{\it{docbook.mk}} \def{"pod.mk"}{\it{pod.mk}} \sec{name}{NAME} caspar-typesetting - Makefile snippets for common typesetting tasks \sec{synopsis}{SYNOPSIS} In a Makefile, write \verbatim{ include caspar/mk/docbook.mk } or \verbatim{ include caspar/mk/pod.mk } . \sec{description}{DESCRIPTION} The caspar \"docbook.mk" and \"pod.mk" files are Makefile snippets for common typesetting tasks, like typesetting LaTeX (see \refer{latex}), DocBook XML, DocBook SGML (see \refer{dbx}) and POD (see \refer{pod}) documents. You just have to type \tt{make}, instead of stuff like \tt{jade -t tex -d caspar/print.dsl /usr/share/sgml/declaration/xml.dcl foobar.dbx}. \sec{usage}{USAGE} In a directory where you maintain .dbx (Docbook XML) or .tex (LaTeX) files, do \verbatim{ $ echo include caspar/mk/docbook.mk > Makefile $ vi karenina.dbx $ make karenina.view $ make karenina.print $ vi svejk.tex $ make svejk.view $ make svejk.print $ make $ make clean } Other targets: \tt{filename.ps}, \tt{filename.pdf}, \tt{filename.2ps}, \tt{filename.html}, \tt{filename.printbig}, \tt{filename.dvi}. \par{ Variables you might like to set in your Makefile: \tt{XMLDCL} (default is \tt{/usr/share/sgml/declaration/xml.dcl}; if you're not on a Debian GNU/Linux system, you'll likely have to adjust this), \tt{HTML_DSL}, \tt{PRINT_DSL}. } \par{ In a directory where you maintain .pod files, do \verbatim{ $ echo include caspar/mk/pod.mk > Makefile $ vi lire.pod $ perldoc ./lire.pod $ make lire.pdf $ make $ less lire.overstrike-txt $ make clean } Other targets: \tt{filename.ps}, \tt{filename.html}, \tt{filename.txt}, ... (Similar to the ones supplied by \"docbook.mk"). } \sec{examples}{EXAMPLES} \par{ Some examples: Overriding the caspar-supplied DSSSL files: Create your own print.dls and html.dsl, in the same directory as your Docbook XML files. Your Makefile should read: \verbatim{ PRINT_DSL = print.dsl HTML_DSL = html.dsl include caspar/mk/docbook.mk } Overriding the standard html-to-text convertor: \verbatim{ $ W3M=lynx make svejk.txt } . } \sec{files}{FILES} \it{caspar/mk/docbook.mk}, \it{caspar/mk/pod.mk} \sec{environment}{ENVIRONMENT} For \"docbook.mk": files: \tt{XMLDCL}, \tt{HTML_DSL}, \tt{PRINT_DSL}; utilities: \tt{JADE}, \tt{PDFJADETEX}, \tt{PDFLATEX}, \tt{JADETEX}, \tt{LATEX}, \tt{W3M}, \tt{DVIPS}, \tt{PSNUP}, \tt{LPR}, \tt{GV}; settings: \tt{JADE_MAXERRORS}. These variables can get adjusted in Makefile, as well as in the shell environment. \par{ \"pod.mk" Uses no environment variables. } \sec{author}{AUTHOR} \"man::author" \sec{seealso}{SEE ALSO} \sibref{caspar}{caspar(7)} \reference{pod} perlpod(1) about Perl's Plain Old Documentation format \par{ \reference{dbx} \it{DocBook: The Definitive Guide} on \httpref{http://docbook.org/}, } \par{ \reference{latex} The LaTeX Project Homepage on \httpref{http://www.latex-project.org/}. } \par{ Some comments on advanced usage are in the files \"docbook.mk" and \"pod.mk" itself. } \end{pud::man} caspar-20140919/doc/ChangeLog.20020000644000175000017500000001004412345413601013056 00000000000000caspar (20030803) * mk/Makefile.am, sgml/Makefile.am: bugfix. new build system needs new PACKAGE variable. stuff got installed in /usr/share/mk/ (not /usr/share/caspar/mk/) -- Joost van Baal Sun, 03 Aug 2003 00:06:34 +0200 caspar (20030802) * more bugfixes: generating pdf from LaTeX was broken since caspar 20030716. * mk/docbook.mk: now uses pdflatex for generating PDF directly from LaTeX (without intermediate PostScript). calls latex 3 times: make sure tocs get created. no longer uses ps2pdf. * mk/caspar.mk: get rid of non-portable 'echo -n': this made caspar fail on Solaris. Tnx Piet Lauwen for bugreport and suggestion for fix. * Makefile.am, bootstrap, setversion, configure.ac/configure.in: moved to autoconf 2.53 style, renamed configure.in to configure.ac: new autotools naming convention. (Now uses same build system as AD1810 Firewall ( http://mdcc.cx/ad1810-firewall/ ). -- Joost van Baal Sat, 02 Aug 2003 23:26:06 +0200 caspar (20030718) * bugfix release * mk/docbook.mk: run pdfjadetex 3 times: fixes toc. rm -f intermediate files: no sure wether they will get created. added license referal -- Joost van Baal Fri, 18 Jul 2003 11:12:43 +0200 caspar (20030716) * TODO: I'd like a TOC in HTML output from DocBook. (Even while we're doing nochunks mode) * README: added link to http://www.miwie.org/docbkmake/ , which seems similar to docbook.mk in it's goals * mk/docbook.mk: use pdfjadetex for generating pdf: fonts look better -- Joost van Baal Wed, 16 Jul 2003 21:03:17 +0200 caspar (20030331) * mk/caspar.mk: ommitting SDIR results in scp to get skipped * mk/caspar.mk: added SUHS hack: now possible to install on multiple hosts. * mk/docbook.mk: sane default target added. * mk/Makefile.am: some fiddling to get make distcheck working with automake 1.7 * README: documented new tricks. -- Joost van Baal Mon, 31 Mar 2003 22:04:18 +0200 caspar (20030203) * TODO: Found bug in caspar.mk. * README: Added note about cvs-conf. Added pointer to Debian package. Added note about usage with rsync. * mk/pod.mk: Added: support for typesetting Perl's Plain Old Documentation. -- Joost van Baal Mon, 03 Feb 2003 16:23:09 +0100 caspar (20020331) * mk/docbook.mk: jade will quit after max 10 errors, not 200: we will be able to see the very first error without having to scroll back. Added support for DocBook SGML sourcefiles. Added some more comments on usage. * README: updated. -- Joost van Baal Sun, 31 Mar 2002 12:04:31 +0200 caspar (20020313) * mk/docbook.mk: clean target more robust: `-rm' instead of `rm'. Now uses caspar/{html,print}.dsl. * sgml/{html,print}.dsl: added. Used by mk/docbook.mk. -- Joost van Baal Wed, 13 Mar 2002 13:09:09 +0100 caspar (20020301) * README: added requirements section. * mk/docbook.mk: added: useful for generating PostScript and stuff from LaTeX or DocBook XML sources. -- Joost van Baal Fri, 1 Mar 2002 16:18:54 +0100 caspar (20020227) * README: finally got to document it. * mk/caspar.mk: renamed `DIR' to `SDIR'; renamed XXTARGETS to LOAD: more descriptive name. * mk/caspar.mk: used to be called mk/install.mk. * mk/caspar.mk: added target `load'. added variable CDIR. got rid of obsolete comments. -- Joost van Baal Wed, 27 Feb 2002 18:06:16 +0100 caspar (20020226) * mk/install.mk: we conditionally set SRDIRS using SUH and DIR: now Makefiles can use these two vars too. * mk/install.mk: Now CPDIRS uses -install as targetname, as SRDIRS already did. * First tarball build; preliminary release -- Joost van Baal Tue, 26 Feb 2002 18:36:49 +0100 (First work on caspar's predecessors began in 2000, probably.) caspar-20140919/doc/csp_install.10000644000175000017500000000003312345413601013314 00000000000000.\" .so man1/csp_helper.1 caspar-20140919/doc/csp_mkdircp.10000644000175000017500000000003312345413601013277 00000000000000.\" .so man1/csp_helper.1 caspar-20140919/doc/csp_scp_keep_mode.10000644000175000017500000000003212345413601014442 00000000000000.\" .so man1/csp_helper.1 caspar-20140919/doc/csp_sucp.10000644000175000017500000000003612345413601012623 00000000000000.\" foo .so man1/csp_helper.1 caspar-20140919/doc/casparize.10000644000175000017500000000404612407054476013004 00000000000000.\" Copyright (c) 2014 Joost van Baal-Ilić .TH "casparize" 1 "19 Sep 2014" "casparize 20140919" "USER COMMANDS " .po 2m .de ZI .\" Zoem Indent/Itemize macro I. .br 'in +\\$1 .nr xa 0 .nr xa -\\$1 .nr xb \\$1 .nr xb -\\w'\\$2' \h'|\\n(xau'\\$2\h'\\n(xbu'\\ .. .de ZJ .br .\" Zoem Indent/Itemize macro II. 'in +\\$1 'in +\\$2 .nr xa 0 .nr xa -\\$2 .nr xa -\\w'\\$3' .nr xb \\$2 \h'|\\n(xau'\\$3\h'\\n(xbu'\\ .. .if n .ll -2m .am SH .ie n .in 4m .el .in 8m .. .SH NAME casparize \- Set up \fBcaspar\fP Makefile in a new directory .SH SYNOPSIS \fBcasparize\fP \fBdir\fP (\fI/path/to/config/dir\fP) \fBcasparize\fP \fBfile\fP (\fI/path/to/config/dir/file\fP) .SH DESCRIPTION \fBcasparize\fP creates a new configuration working directory in your current working directory, sets up a Makefile for \fBcaspar(7)\fP in this new directory, and optionally copies an original configuration file from its original system place to the newly created configuration working directory\&. .SH USAGE You typically use \fBcasparize\fP when you already have created the root configuration working directory with its include directory and install\&.mk Caspar include file\&. By analysing your current working directory and the configuration directory path you give on the command line, casparize can deduce the contents of the Makefile in the newly created configuration working directory\&. It creates the new directory, creates the correct Makefile, and optionally copies the given configuration file in the new directory, ready for its first version commit\&. .SH EXAMPLES A typical example: .di ZV .in 0 .nf \fC $ cd /etc $ casparize /etc/postfix/main\&.cf .fi \fR .in .di .ne \n(dnu .nf \fC .ZV .fi \fR creates the directory /etc/postfix, creates /etc/postfix/Makefile including the proper content, and copies /etc/postfix/main\&.cf into /etc/postfix/main\&.cf\&. You can now directly add and commit the new directory\&. .SH BUGS Non known at this moment\&. .SH AUTHOR Jeroen Hoppenbrouwers .SH SEE ALSO \fBcaspar(7)\fP The caspar homepage is at http://mdcc\&.cx/caspar/ \&. caspar-20140919/doc/csp_helper.10000644000175000017500000000753512407054476013155 00000000000000.\" Copyright (c) 2014 Joost van Baal-Ilić .TH "csp_helper" 1 "19 Sep 2014" "csp_helper 20140919" "USER COMMANDS " .po 2m .de ZI .\" Zoem Indent/Itemize macro I. .br 'in +\\$1 .nr xa 0 .nr xa -\\$1 .nr xb \\$1 .nr xb -\\w'\\$2' \h'|\\n(xau'\\$2\h'\\n(xbu'\\ .. .de ZJ .br .\" Zoem Indent/Itemize macro II. 'in +\\$1 'in +\\$2 .nr xa 0 .nr xa -\\$2 .nr xa -\\w'\\$3' .nr xb \\$2 \h'|\\n(xau'\\$3\h'\\n(xbu'\\ .. .if n .ll -2m .am SH .ie n .in 4m .el .in 8m .. .SH NAME csp_helper \- A collection of caspar helper scripts .SH SYNOPSIS \fBcsp_install\fP \fBdir\fP (\fIdirectory\fP) \fBfile\fP (\fIfile\fP) \fBcsp_mkdircp\fP \fBdir\fP (\fIdirectory\fP) \fBfile\fP (\fIfile\fP) \fBcsp_scp_keep_mode\fP \fBh\fP (\fI[user@]host\fP) \fBdir\fP (\fIdirectory\fP) \fBfile\fP (\fIfile\fP) \fBcsp_sucp\fP \fBh\fP (\fI[user@]host\fP) \fBdir\fP (\fIdirectory\fP) \fBfile\fP (\fIfile\fP) .SH DESCRIPTION The scripts \fBcsp_install\fP, \fBcsp_mkdircp\fP, \fBcsp_scp_keep_mode\fP and \fBcsp_sucp\fP are helpers for \fBcaspar(7)\fP\&. These scripts typically are not invoked directly, but via a Makefile which uses \fBcaspar\fP\&. See the notes on csp_PUSH in \fBcaspar(7)\fP for information on how to link \fBcsp_install\fP, \fBcsp_scp_keep_mode\fP and \fBcsp_sucp\fP to \fBcaspar\fP\&. .SH install DESCRIPTION \fBcsp_install\fP creates the required directory (if needed) and installs the file, preserving timestamps\&. It uses install(1)\&. .SH install EXAMPLES .di ZV .in 0 .nf \fC csp_INSTALL_OPTIONS=\&'--owner=www-data --group=www-data\&' \e csp_INSTALL_MODE=ugo=r \e csp_install /srv/www index\&.html .fi \fR .in .di .ne \n(dnu .nf \fC .ZV .fi \fR .di ZV .in 0 .nf \fC csp_INSTALL_MODE=u=rwx,go= csp_install /usr/local/sbin mkpasswd .fi \fR .in .di .ne \n(dnu .nf \fC .ZV .fi \fR .SH install ENVIRONMENT \fBcsp_install\fP honors csp_INSTALL_OPTIONS and csp_INSTALL_MODE (default is u=rw,go=r)\&. .SH mkdircp DESCRIPTION \fBcsp_mkdircp\fP calls mkdir(1) and cp(1)\&. \fBcsp_mkdircp\fP is used like csp_CP\&. use \fBcsp_mkdircp\fP if you frequently have to bootstrap installation on a fresh system, on which needed directories don\&'t exist yet\&. \fBcsp_mkdircp\fP makes sure the target directory exists before calling cp(1), by calling mkdir -p first\&. .SH scp_keep_mode DESCRIPTION \fBcsp_scp_keep_mode\fP uses ssh to copy a file to a remote host, keeping its file permission mode\&. The trick used is a combination of mktemp(1) and mv(1)\&. Useful if you\&'d like to be sure a file gets installed e\&.g\&. group writable, without fiddling with permission bits on the remote host\&. .SH scp_keep_mode EXAMPLE .di ZV .in 0 .nf \fC chmod g+w rc csp_scp_keep_mode root@gandalf /etc/uruk rc .fi \fR .in .di .ne \n(dnu .nf \fC .ZV .fi \fR .SH scp_keep_mode ENVIRONMENT \fBcsp_scp_keep_mode\fP honors csp_SSH ("ssh" by default)\&. .SH sucp DESCRIPTION \fBcsp_sucp\fP calls tar(1) from within sudo(1) from within ssh(1)\&. This allows one to copy files to accounts on hosts one can only reach by calling sudo on the ssh-reachable remote host\&. Typically, one wants to install a root-owned file, but one does not want to allow access to the root-account directly from ssh\&. Typically sudo is used as an extra line of defense\&. NB: if your sudo prompts for a password, be sure to have line .di ZV .in 0 .nf \fC Defaults !tty_tickets .fi \fR .in .di .ne \n(dnu .nf \fC .ZV .fi \fR in your sudoers file: we first call sudo -v, than we call sudo to write the data\&. Since we use ssh to get to the host, we\&'ll use a different tty for both sudo calls\&. .SH sucp EXAMPLES Some examples: .di ZV .in 0 .nf \fC csp_sucp rms@bilbo /etc fstab .fi \fR .in .di .ne \n(dnu .nf \fC .ZV .fi \fR .di ZV .in 0 .nf \fC csp_sucp monty-python commit/ trailer\&.txt .fi \fR .in .di .ne \n(dnu .nf \fC .ZV .fi \fR .SH AUTHOR Joost van Baal-Ilić .SH SEE ALSO \fBcaspar(7)\fP The caspar homepage is at http://mdcc\&.cx/caspar/ \&. caspar-20140919/doc/caspar.70000644000175000017500000005547112407054476012312 00000000000000.\" Copyright (c) 2014 Joost van Baal-Ilić .TH "caspar" 7 "19 Sep 2014" "caspar 20140919" "MISCELLANEOUS " .po 2m .de ZI .\" Zoem Indent/Itemize macro I. .br 'in +\\$1 .nr xa 0 .nr xa -\\$1 .nr xb \\$1 .nr xb -\\w'\\$2' \h'|\\n(xau'\\$2\h'\\n(xbu'\\ .. .de ZJ .br .\" Zoem Indent/Itemize macro II. 'in +\\$1 'in +\\$2 .nr xa 0 .nr xa -\\$2 .nr xa -\\w'\\$3' .nr xb \\$2 \h'|\\n(xau'\\$3\h'\\n(xbu'\\ .. .if n .ll -2m .am SH .ie n .in 4m .el .in 8m .. .SH NAME caspar - Makefile snippets for common tasks .SH SYNOPSIS In a Makefile, write either .di ZV .in 0 .nf \fC include caspar/mk/caspar\&.mk .fi \fR .in .di .ne \n(dnu .nf \fC .ZV .fi \fR or .di ZV .in 0 .nf \fC include caspar/mk/docbook\&.mk .fi \fR .in .di .ne \n(dnu .nf \fC .ZV .fi \fR or .di ZV .in 0 .nf \fC include caspar/mk/pod\&.mk .fi \fR .in .di .ne \n(dnu .nf \fC .ZV .fi \fR \&. .SH DESCRIPTION Caspar offers Makefile snippets for common tasks, like installing (configuration) files, or typesetting LaTeX, DocBook XML and DocBook SGML documents\&. The typesetting functionality is delivered by \fIdocbook\&.mk\fP and \fIpod\&.mk\fP\&. This is documented in \fBcaspar-typesetting(7)\fP\&. The installing-stuff functionality is delivered by \fIcaspar\&.mk\fP\&. (That\&'s what the rest of the manual will talk about\&.) It enables one to run \&'make install\&' from within a tree which typically holds configuration files, managed using Subversion (or git or any other version control system, for that matter)\&. It is useful in cases like this: all configuration files of some host are under version control, and, after commiting a change to CVS, you want to be able to easily install the new configuration file on the host\&. With \fBcaspar\fP, all you have to do is specify the hostname in one place, and specify the name of the target directory in each CVS directory\&. It is comparable with other tools for Unix system administrators like puppet and cfengine\&. Main difference: the caspar code consists of less than 100 lines of GNU Make\&. .SH USAGE Within a CVS tree, create a file \fIinclude/install\&.mk\fP, with contents like e\&.g\&. .di ZV .in 0 .nf \fC csp_UHOST = root@some\&.host\&.somewhere include caspar/mk/caspar\&.mk .fi \fR .in .di .ne \n(dnu .nf \fC .ZV .fi \fR \&. Within each other directory of the CVS tree which holds files, create a Makefile, which looks like e\&.g\&. .di ZV .in 0 .nf \fC csp_DIR = /some/dir/ectory/ include \&.\&./\&.\&./include/install\&.mk .fi \fR .in .di .ne \n(dnu .nf \fC .ZV .fi \fR \&. If you\&'d like to use the \fIinstall-recursive\fP target too, in directories which hold subdirectories (but not files), you\&'ll have to create a Makefile which looks something like .di ZV .in 0 .nf \fC include \&.\&./\&.\&./include/install\&.mk .fi \fR .in .di .ne \n(dnu .nf \fC .ZV .fi \fR \&. From within the CVS tree, one can call: .di ZV .in 0 .nf \fC make -diff make -install make diff make install make load make make install-recursive .fi \fR .in .di .ne \n(dnu .nf \fC .ZV .fi \fR Calling \fCmake -diff\fP shows the diff between the local file and the file as currently installed on the remote location\&. Calling \fCmake install\fP (or \fCmake\fP) now will scp all files in the current directory to the remote location\&. The \fIinstall-recursive\fP target descends down the tree, and calls \fCmake install\fP in each subdirectory\&. Of course, you\&'ll have to be able to ssh directly as root to the remote host to get this working (if you\&'d like to use \fCcsp_UHOST = root@some\&.host\&.somewhere\fP)\&. If you don\&'t like this, and would like to have a \fCPermitRootLogin no\fP in your \fC/etc/ssh/sshd_config\fP, you can use csp_sucp(1)\&. See below\&. .SH VARIABLES The variables one can set in a calling Makefile are: .ZI 2m "\fCcsp_UHOST\fP" \& .br user@host, reachable using \fC$(csp_PUSH)\fP (which is scp by default) .in -2m .ZI 2m "\fCcsp_UHOSTS\fP" \& .br space separated list of user@host items, reachable using \fC$(csp_PUSH)\fP .in -2m .ZI 2m "\fCcsp_DIR\fP" \& .br directory on host, reachable using function \fC$(csp_PUSH)\fP .in -2m .ZI 2m "\fCcsp_PUSH\fP" \& .br make function for pushing files to remote location\&. Usually, this is a wrapper around a script or program\&. The function will be passed 4 arguments: \fI[user@]host\fP, remote \fIdirectory\fP and local \fIfilename\fP\&. \fI[user@]host\fP will be set to all elements of \fC$(csp_UHOSTS)\fP; \fIdirectory\fP will be set to \fC$(csp_DIR)\fP\&. Currently, \fC$(csp_scp_FUNC)\fP, \fC$(csp_cp_FUNC)\fP and \fC$(csp_sucp_FUNC)\fP are supported as push plugins\&. If \fCcsp_PUSH\fP is unset, the default \fC$(csp_scp_FUNC)\fP is used\&. .in -2m .ZI 2m "\fCcsp_LOAD\fP" \& .br the \&`load\&' target depends upon these targets\&. .in -2m .ZI 2m "\fCcsp_BUILD\fP" \& .br the \&`build\&' target depends upon these targets\&. .in -2m .ZI 2m "\fCcsp_CP\fP" \& .br cp binary, just "cp" by default .in -2m .ZI 2m "\fCcsp_SCP\fP" \& .br scp binary, just "scp" by default .in -2m .ZI 2m "\fCcsp_SUCP\fP" \& .br script wrapping sudo in ssh, "csp_sucp" by default .in -2m .ZI 2m "\fCcsp_EXTRAFILES\fP" \& .br extra files which should be installed\&. Can be used to include files starting with a dot\&. .in -2m .ZI 2m "\fCcsp_TABOOFILES\fP" \& .br files which should never be installed\&. Set to \fCMakefile \&.%\&.swp %~ #%# pod2htmd\&.tmp pod2htmi\&.tmp\fP by default\&. .in -2m .ZI 2m "\fCcsp_TABOOFILES_ADD\fP" \& .br extra files which should never be installed; added to list in \fCcsp_TABOOFILES\fP\&. .in -2m .ZI 2m "\fCcsp_TABOOFILES_SKIP\fP" \& .br files which should be installed, even if in initial \fCcsp_TABOOFILES\fP list\&. Removed from \fCcsp_TABOOFILES\fP list\&. .in -2m .ZI 2m "\fCcsp_TABOODIRS\fP" \& .br directories to exclude in install-recursive target\&. set to \fCCVS \&.svn\fP by default\&. .in -2m .ZI 2m "\fCcsp_TABOODIRS_ADD\fP, \fCcsp_TABOODIRS_SKIP\fP" \& .br see \fCcsp_TABOOFILES\fP equivalents\&. .in -2m .ZI 2m "\fCcsp_UHOSTS_SUBSET\fP" \& .br override csp_UHOSTS: don\&'t push to csp_UHOSTS, but to the intersection of this space separated list of user@host items and csp_UHOSTS\&. .in -2m The following variables might get phased out or removed soonish: .ZI 2m "\fCcsp_CPFLAGS\fP" \& .br extra arguments to pass to cp invocation, none by default .in -2m .ZI 2m "\fCcsp_SCPFLAGS\fP" \& .br extra arguments to pass to scp invocation, e\&.g\&. \&'\fC-i \&.ssh/id_rsa-root\fP\&' .in -2m .SH EXAMPLES Some examples: \fBUsing csp_UHOST\fP .br This is the simplest way to use caspar\&. \fIMakefile\fP is .di ZV .in 0 .nf \fC csp_UHOST = root@some\&.host\&.somewhere csp_DIR = /etc/ include caspar/mk/caspar\&.mk .fi \fR .in .di .ne \n(dnu .nf \fC .ZV .fi \fR Now, running "make" will scp all files in the current directory to \fCroot@some\&.host\&.somewhere:/etc/\fP\&. \fBMore hosts, not scp but sudo via ssh: using csp_PUSH\fP .br \fIMakefile\fP is .di ZV .in 0 .nf \fC csp_UHOSTS = root@some\&.host\&.somewhere root@some\&.other\&.host csp_PUSH = $(csp_sucp_FUNC) csp_DIR = /etc/ include caspar/mk/caspar\&.mk .fi \fR .in .di .ne \n(dnu .nf \fC .ZV .fi \fR Now, running "make" will use csp_sucp(1) to install all files in the current directory to both root@some\&.host\&.somewhere:/etc/ and root@some\&.other\&.host:/etc/\&. If a file named \fCfstab\fP is present in the current directory, running "make fstab-install" will just install that one file\&. If you need to sudo(1) to another user on the remote host, add something like .di ZV .in 0 .nf \fC csp_XARG = postgres .fi \fR .in .di .ne \n(dnu .nf \fC .ZV .fi \fR \&. (If such a username is not supplied, sudo (and csp_sucp) use the default: root\&.) \fBOverriding csp_UHOSTS: csp_UHOSTS_SKIP\fP .br If one or some of your hosts are temporarily unavailable, and you\&'d like to push your files to the hosts which are alive, you can temporarily override your csp_UHOSTS\&. E\&.g\&., when some\&.other\&.host is not available: .di ZV .in 0 .nf \fC % cat Makefile csp_UHOSTS = root@some\&.host\&.somewhere root@some\&.other\&.host csp_DIR = /etc/ include caspar/mk/caspar\&.mk % make install csp_UHOSTS_SKIP=root@some\&.other\&.host scp hosts root@some\&.host\&.somewhere:/etc/ scp fstab root@some\&.host\&.somewhere:/etc/ .fi \fR .in .di .ne \n(dnu .nf \fC .ZV .fi \fR \fBOverriding csp_UHOSTS in a smart way: csp_UHOSTS_SUBSET\&. Using multiple groups of hosts\&. Recursive make made easy\&.\fP .br If you have lots of subdirectories holding information for lots of groups of hosts, while this run you just want to install for a small group (or 1) hosts, csp_UHOSTS_SUBSET is useful\&. Suppose your casparized tree looks like .di ZV .in 0 .nf \fC Makefile apache/include/install\&.mk apache/etc/apache2/Makefile apache/etc/apache2/envvars php/include/install\&.mk php/etc/php4/apache/Makefile php/etc/php4/apache/php\&.ini grub/include/install\&.mk grub/boot/grub/Makefile grub/boot/grub/menu\&.lst logrotate/include/install\&.mk logrotate/etc/Makefile logrotate/etc/logrotate\&.conf nrpe/include/install\&.mk nrpe/debian/etc/default/Makefile nrpe/debian/etc/default/nagios-nrpe-server .fi \fR .in .di .ne \n(dnu .nf \fC .ZV .fi \fR The file \fIapache/etc/apache2/Makefile\fP is: .di ZV .in 0 .nf \fC csp_DIR = /etc/apache2/ include \&.\&./\&.\&./include/install\&.mk .fi \fR .in .di .ne \n(dnu .nf \fC .ZV .fi \fR (all other \fIMakefile\fPs are similar)\&. The file \fIapache/include/install\&.mk\fP is .di ZV .in 0 .nf \fC csp_UHOSTS = root@a root@b include caspar/mk/caspar\&.mk .fi \fR .in .di .ne \n(dnu .nf \fC .ZV .fi \fR The file \fIphp/include/install\&.mk\fP is the same\&. The files \fIgrub/include/install\&.mk\fP and \fIlogrotate/include/install\&.mk\fP are .di ZV .in 0 .nf \fC csp_UHOSTS = root@d root@e root@f root@g include caspar/mk/caspar\&.mk .fi \fR .in .di .ne \n(dnu .nf \fC .ZV .fi \fR The file \fInrpe/include/install\&.mk\fP is .di ZV .in 0 .nf \fC csp_UHOSTS = root@d root@e root@f root@n include caspar/mk/caspar\&.mk .fi \fR .in .di .ne \n(dnu .nf \fC .ZV .fi \fR The toplevel \fIMakefile\fP is .di ZV .in 0 .nf \fC dirs = $(patsubst %/Makefile,%,$(shell find * -mindepth 1 -name Makefile)) all: for i in $(dirs); do $(MAKE) -$(MAKEFLAGS) -C $$i; done install for i in $(dirs); do $(MAKE) -$(MAKEFLAGS) -C $$i install; done load for i in $(dirs); do $(MAKE) -$(MAKEFLAGS) -C $$i load; done .fi \fR .in .di .ne \n(dnu .nf \fC .ZV .fi \fR (we don\&'t feel like sticking a \fIMakefile\fP in all non-leaf nodes of our tree)\&. Now, when running "\fCcsp_UHOSTS_SUBSET=\&'root@e root@f root@m root@n\&' make\fP" in the toplevel, caspar just takes the intersection of csp_UHOSTS_SUBSET and csp_UHOSTS for each csp_UHOSTS list\&. So, caspar will not push anything for \fIapache/\fP and \fIphp/\fP\&. The files \fIgrub/boot/grub/menu\&.lst\fP and \fIlogrotate/etc/logrotate\&.conf\fP will get pushed to \fCroot@e\fP and \fCroot@f\fP only\&. The file \fInrpe/debian/etc/default/nagios-nrpe-server\fP will get pushed to \fCroot@e\fP, \fCroot@f\fP and \fCroot@n\fP\&. This is often better than just overriding csp_UHOSTS on the commandline (or in your shell\&'s environment): if the intersection of the original csp_UHOSTS and your new csp_UHOSTS is empty, chances are big you\&'ve just forgotten to clean your environment\&. \fBCreating remote directories if needed\fP .br \fIMakefile\fP is .di ZV .in 0 .nf \fC csp_DIR = /some/dir/ectory/ csp_PUSH = $(csp_scpmkdir_FUNC) csp_UHOST = root@some\&.host\&.somewhere include caspar/mk/caspar\&.mk .fi \fR .in .di .ne \n(dnu .nf \fC .ZV .fi \fR Now, before calling scp, caspar will run \&'mkdir -p\&' to create any missing remote directories\&. \fBUsing csp_CP and csp_LOAD\fP .br \fIusername/etc/Makefile\fP is .di ZV .in 0 .nf \fC csp_UHOST = dummy csp_PUSH = $(csp_cp_FUNC) csp_DIR = $(HOME)/etc/ csp_LOAD = crontab-load include \&.\&./include/install\&.mk crontab-load: crontab $(csp_DIR)/crontab .fi \fR .in .di .ne \n(dnu .nf \fC .ZV .fi \fR while \fI\&.\&./include/install\&.mk\fP is just .di ZV .in 0 .nf \fC include caspar/mk/caspar\&.mk .fi \fR .in .di .ne \n(dnu .nf \fC .ZV .fi \fR \&. Setting \fCcsp_PUSH\fP to \fC$(csp_cp_FUNC)\fP causes cp(1) to get executed by "make install" (not scp(1))\&. Setting \fCcsp_LOAD\fP causes "make load" to execute the crontab command\&. Just running "make" is OK too, since "make" calls both "make install" and "make load"\&. \fBUsing csp_DIR, csp_LOAD and install(1)\fP .br To install a file on the local host, create e\&.g\&. a file \fIetc/uruk/Makefile\fP like: .di ZV .in 0 .nf \fC csp_UHOST = dummy csp_DIR = /etc/uruk/ csp_PUSH = $(csp_install_FUNC) csp_LOAD = uruk-load include caspar/mk/caspar\&.mk uruk-load: sudo invoke-rc\&.d uruk force-reload .fi \fR .in .di .ne \n(dnu .nf \fC .ZV .fi \fR \fBUsing csp_DIR and csp_LOAD, take 2\fP .br \fIetc/Makefile\fP is .di ZV .in 0 .nf \fC csp_DIR = /etc/ csp_LOAD = aliases-load include \&.\&./include/install\&.mk aliases-load: $(csp_SSH) $(csp_UHOST) "cd /etc; postalias aliases; postfix reload" .fi \fR .in .di .ne \n(dnu .nf \fC .ZV .fi \fR while \fI\&.\&./include/install\&.mk\fP is .di ZV .in 0 .nf \fC csp_UHOST = root@some\&.host\&.somewhere include caspar/mk/caspar\&.mk .fi \fR .in .di .ne \n(dnu .nf \fC .ZV .fi \fR \fBUsing csp_BUILD: building files locally\fP .br If you\&'d like to build some files locally from local sources, before installing the just build files, do e\&.g\&. .di ZV .in 0 .nf \fC csp_UHOST = root@some\&.host\&.somewhere csp_DIR = /etc/ csp_TABOOFILES_ADD = sshd_config\&.m4 csp_BUILD = my-build include caspar/mk/caspar\&.mk my-build: sshd_config sshd_config: sshd_config\&.m4 m4 $< > $@ .fi \fR .in .di .ne \n(dnu .nf \fC .ZV .fi \fR List all source files in csp_TABOOFILES_ADD: this way, they won\&'t get installed on the csp_UHOST\&. \fBUsing csp_sucp_FUNC and csp_LOAD\fP .br If you\&'d like to use csp_sucp and want a \&`load\&' target, do something like: .di ZV .in 0 .nf \fC csp_PUSH = $(csp_sucp_FUNC) csp_UHOST = foobar\&.example\&.com csp_DIR = /etc/uruk/ csp_LOAD = rc-load include caspar/mk/caspar\&.mk rc-load: $(csp_SSH) $(csp_UHOST) "sudo invoke-rc\&.d uruk force-reload" .fi \fR .in .di .ne \n(dnu .nf \fC .ZV .fi \fR \fBAdding a "check" target\fP .br If you want to do some syntax check on the remote host, before loading the just installed configuration file (and have a "make check" thing), do .di ZV .in 0 .nf \fC csp_UHOST = foobar\&.example\&.com csp_DIR = /etc/ csp_LOAD = check my-load include caspar/mk/caspar\&.mk check: $(csp_SSH) $(csp_UHOST) do-check-stuff my-load: $(csp_SSH) $(csp_UHOST) do-load-stuff .fi \fR .in .di .ne \n(dnu .nf \fC .ZV .fi \fR This way, "make load" won\&'t cause the file to load if the check fails (which is probably what you want)\&. Running "make" will perform "install", "check" and "load"\&. \fBCombining the csp_LOAD target with multiple hosts; building files remotely\fP .br You\&'ll have to loop over csp_UHOSTS to execute load-command\&. Here\&'s an example doing some preprocessing on the remote hosts too\&. .di ZV .in 0 .nf \fC csp_DIR = /etc/ssh/ csp_UHOSTS = root@some\&.host\&.somewhere root@some\&.other\&.host csp_LOAD = sshd_config-load sshd_config-load = ssh $1 "cd $(csp_DIR); \e m4 sshd_config\&.m4 >sshd_config && \e PATH=$$PATH:/sbin /etc/init\&.d/ssh restart" include caspar/mk/caspar\&.mk .fi \fR .in .di .ne \n(dnu .nf \fC .ZV .fi \fR (Alternatively, you could explicitly specify the loop over the hosts: .di ZV .in 0 .nf \fC csp_DIR = /etc/ssh/ sshd_config-load: for suh in $(csp_UHOSTS); do \e ssh $$suh "cd $(csp_DIR); \e m4 sshd_config\&.m4 > sshd_config && \e PATH=$$PATH:/sbin /etc/init\&.d/ssh restart"; \e done .fi \fR .in .di .ne \n(dnu .nf \fC .ZV .fi \fR )\&. \fBUsing the csp_TABOOFILES_{ADD,SKIP} variables; another way to perform remote builds\fP .br Using the csp_TABOOFILES_{ADD,SKIP} variables is handy if you want to \fIinstall\fP a \fIMakefile\fP, instead of using it: Create \fIMakefile\fP just as you\&'d like to have it installed on the remote location\&. Now, create \fIGNUmakefile\fP as e\&.g\&. .di ZV .in 0 .nf \fC csp_TABOOFILES_SKIP = Makefile csp_TABOOFILES_ADD = GNUmakefile csp_DIR = /etc/foobar/ csp_UHOST = root@some\&.host\&.somewhere include caspar/mk/caspar\&.mk load: $(csp_SSH) $(csp_UHOST) "make -C $(csp_DIR)" .fi \fR .in .di .ne \n(dnu .nf \fC .ZV .fi \fR Now, \fCmake install\fP and \fCmake load\fP will do the right thing\&. \fBUsing the csp_EXTRAFILES variable\fP .br Using the csp_EXTRAFILES variable is handy if you want to install files with a leading dot\&. E\&.g\&.: .di ZV .in 0 .nf \fC csp_EXTRAFILES = \&.bashrc csp_UHOST = root@some\&.host\&.somewhere csp_DIR = include caspar/mk/caspar\&.mk .fi \fR .in .di .ne \n(dnu .nf \fC .ZV .fi \fR \fBOverriding csp_UHOSTS\fP .br Supply e\&.g\&. .di ZV .in 0 .nf \fC csp_UHOSTS = root@localhost root@some\&.host\&.somewhere .fi \fR .in .di .ne \n(dnu .nf \fC .ZV .fi \fR in \fIinstall\&.mk\fP, to install on multiple hosts\&. Run .di ZV .in 0 .nf \fC make filename-install csp_UHOSTS=joe@otherhost .fi \fR .in .di .ne \n(dnu .nf \fC .ZV .fi \fR to install filename as \fCjoe@otherhost\fP, instead of the default as given in \fIinstall\&.mk\fP\&. If you want to enable passing csp_UHOSTS as a shell environment variable, you\&'ll have to use conditional assignment in your Makefile: .di ZV .in 0 .nf \fC csp_UHOSTS ?= root@localhost root@some\&.host\&.somewhere .fi \fR .in .di .ne \n(dnu .nf \fC .ZV .fi \fR This allows it to run .di ZV .in 0 .nf \fC % export csp_UHOSTS=foo@bar % make filename-install .fi \fR .in .di .ne \n(dnu .nf \fC .ZV .fi \fR to install on \fCfoo@bar\fP\&. \fBUsing sudo locally for installing files\fP .br If you\&'d like to install files like .di ZV .in 0 .nf \fC sudo cp foo\&.rc /etc/foobar/ .fi \fR .in .di .ne \n(dnu .nf \fC .ZV .fi \fR you could set up your \fIMakefile\fP as .di ZV .in 0 .nf \fC csp_DIR = /etc/foobar/ csp_UHOST = dummy csp_PUSH = sudo cp $(1) $(3) include caspar/mk/caspar\&.mk .fi \fR .in .di .ne \n(dnu .nf \fC .ZV .fi \fR This is like csp_sucp, but without the ssh wrapping: it works on localhost only\&. \fBPlugging your own install script in caspar\fP .br If your script \fCfoobar\fP should be called as e\&.g\&. .di ZV .in 0 .nf \fC foobar --file=fstab --user@host=joe@some\&.host \e --dir=/etc/ --debuglevel=3 .fi \fR .in .di .ne \n(dnu .nf \fC .ZV .fi \fR then make sure your \fIMakefile\fP features something like .di ZV .in 0 .nf \fC csp_foobar_FUNC = foobar --file=$(1) --user@host=$(2) \e --dir=$(3) --debuglevel=$(4) csp_PUSH = $(csp_foobar_FUNC) csp_XARG = 3 .fi \fR .in .di .ne \n(dnu .nf \fC .ZV .fi \fR You can now use \fCcsp_UHOST\fP and \fCcsp_DIR\fP just as you\&'re used to\&. \fBMore advanced tricks\fP .br When you don\&'t want to ssh to \fCroot@some\&.host\&.somewhere\fP directly, you could do .di ZV .in 0 .nf \fC sudo rsync -az /path/to/your/config_archive /etc .fi \fR .in .di .ne \n(dnu .nf \fC .ZV .fi \fR on some\&.host\&.somewhere (e\&.g\&. from cron)\&. .SH FILES \fIcaspar/mk/caspar\&.mk\fP, \fIcaspar/mk/docbook\&.mk\fP, \fIcaspar/mk/pod\&.mk\fP .SH ENVIRONMENT For \fIcaspar\&.mk\fP: \fCcsp_CP\fP, \fCcsp_LOAD\fP, \fCcsp_SCP\fP, \fCcsp_UHOST\fP, \fCcsp_PUSH\fP, \&.\&.\&. .SH BUGS Very likely, GNU Make is not the best tool for doing the stuff \fIcaspar\&.mk\fP is doing\&. For the list of reported bugs, see http://bugs\&.debian\&.org/src:caspar\&. See also TODO, distributed with the caspar package\&. (And online at http://mdcc\&.cx/pub/caspar/caspar-latest/TODO\&.) .SH TRIVIA Caspar is named after Caspar the Friendly Ghost, since that\&'s the title of the Daniel Johnston song I was listening to when deciding to package my homegrown scripts\&. .SH AUTHOR Joost van Baal-Ilić .SH SEE ALSO \fBcaspar-typesetting(7)\fP \fBcsp_helper(1)\fP The caspar homepage is at http://mdcc\&.cx/caspar/ \&. The document \fI"Versiebeheer en software-packages: Waarom en Hoe"\fP (in Dutch) describes some of the reasons why people might want to use tools like caspar\&. Jeroen Hoppenbrouwers blogs about the way he uses caspar, in \fI"Using Subversion and Caspar to maintain a Linux host"\fP\&. Lots of tools overlap (partly) with caspar in their functionality\&. Here\&'s a list\&. ansible (http://www\&.ansible\&.com/); code is on github (https://github\&.com/ansible/ansible) cfengine (http://www\&.cfengine\&.org/), by Mark Burgess e\&.a\&., builds expert systems to administrate and configure large computer networks: it delivers a very big superset of caspar\&'s installation mechanism\&. Puppet (http://reductivelabs\&.com/projects/puppet), also something like a configuration management system\&. Here\&'s an older list; a big part of it was collected by Ray Miller (http://users\&.ox\&.ac\&.uk/~raym/) of Oxford University, and published in the article "Configuration Management with Subversion, YAML and Perl Template Toolkit" in the SANE 2006 (http://www\&.sane\&.nl/sane2006/) conference proceedings\&. FIXME: Check urls, update docbookmk, by Michael Wiedmann (http://www\&.miwie\&.org/docbkmake/) offers probably a superset of Caspar\&'s \fIdocbook\&.mk\fP functionality\&. latex-make by the LaTeX Utils project on http://gforge\&.inria\&.fr/projects/latex-utils/ seems to provide similar functionality as \fIdocbook\&.mk\fP for LaTeX documents\&. Latexmk by John Collins e\&.a\&. on http://www\&.phys\&.psu\&.edu/~collins/software/latexmk-jcc/ is another implementation of this idea\&. SUP, the Software Upgrade Protocol and it\&'s implementation by Carnegie Mellon University offers another way to distribute (configuration)files\&. Beware though: between Nov 1996 and June 2004, no new release has been published\&. The Debian (ftp://ftp\&.debian\&.org/debian/pool/main/s/sup/) and NetBSD packages are likely still maintained, though\&. PIKT (http://www\&.pikt\&.org/) is intended primarily for system monitoring, but does do configuration management too\&. LCFG (http://www\&.lcfg\&.org/) is another configuration management system\&. The Arusha Project (ARK, at http://ark\&.sf\&.net/) provides a framework for collaborative system administration\&. Bcfg2 (http://trac\&.mcs\&.anl\&.gov/projects/bcfg2/) is yet another configuration management system\&. quattor (http://quattor\&.web\&.cern\&.ch/) is a system administration toolkit for installation, configuration and management of Unix systems\&. rb3 and friends, as written and used by Ray Miller e\&.a\&. at Oxford University, (http://users\&.ox\&.ac\&.uk/~raym/software/configuration-management/)\&. The \fIsvk\fP version control system is said to be quite usable for handling configuration file management (without a separate install mechanism like caspar)\&. See also \fIthis discussion on the Debian development list\fP\&. On the http://www\&.infrastructures\&.org/ website on automated (Unix) system administration, you can find some thoughts on managing configuration files using a version control system\&. caspar-20140919/doc/caspar-typesetting.70000644000175000017500000000721512407054477014661 00000000000000.\" Copyright (c) 2014 Joost van Baal-Ilić .TH "caspar-typesetting" 7 "19 Sep 2014" "caspar-typesetting 20140919" "MISCELLANEOUS " .po 2m .de ZI .\" Zoem Indent/Itemize macro I. .br 'in +\\$1 .nr xa 0 .nr xa -\\$1 .nr xb \\$1 .nr xb -\\w'\\$2' \h'|\\n(xau'\\$2\h'\\n(xbu'\\ .. .de ZJ .br .\" Zoem Indent/Itemize macro II. 'in +\\$1 'in +\\$2 .nr xa 0 .nr xa -\\$2 .nr xa -\\w'\\$3' .nr xb \\$2 \h'|\\n(xau'\\$3\h'\\n(xbu'\\ .. .if n .ll -2m .am SH .ie n .in 4m .el .in 8m .. .SH NAME caspar-typesetting - Makefile snippets for common typesetting tasks .SH SYNOPSIS In a Makefile, write .di ZV .in 0 .nf \fC include caspar/mk/docbook\&.mk .fi \fR .in .di .ne \n(dnu .nf \fC .ZV .fi \fR or .di ZV .in 0 .nf \fC include caspar/mk/pod\&.mk .fi \fR .in .di .ne \n(dnu .nf \fC .ZV .fi \fR \&. .SH DESCRIPTION The caspar \fIdocbook\&.mk\fP and \fIpod\&.mk\fP files are Makefile snippets for common typesetting tasks, like typesetting LaTeX (see [3]), DocBook XML, DocBook SGML (see [2]) and POD (see [1]) documents\&. You just have to type \fCmake\fP, instead of stuff like \fCjade -t tex -d caspar/print\&.dsl /usr/share/sgml/declaration/xml\&.dcl foobar\&.dbx\fP\&. .SH USAGE In a directory where you maintain \&.dbx (Docbook XML) or \&.tex (LaTeX) files, do .di ZV .in 0 .nf \fC $ echo include caspar/mk/docbook\&.mk > Makefile $ vi karenina\&.dbx $ make karenina\&.view $ make karenina\&.print $ vi svejk\&.tex $ make svejk\&.view $ make svejk\&.print $ make $ make clean .fi \fR .in .di .ne \n(dnu .nf \fC .ZV .fi \fR Other targets: \fCfilename\&.ps\fP, \fCfilename\&.pdf\fP, \fCfilename\&.2ps\fP, \fCfilename\&.html\fP, \fCfilename\&.printbig\fP, \fCfilename\&.dvi\fP\&. Variables you might like to set in your Makefile: \fCXMLDCL\fP (default is \fC/usr/share/sgml/declaration/xml\&.dcl\fP; if you\&'re not on a Debian GNU/Linux system, you\&'ll likely have to adjust this), \fCHTML_DSL\fP, \fCPRINT_DSL\fP\&. In a directory where you maintain \&.pod files, do .di ZV .in 0 .nf \fC $ echo include caspar/mk/pod\&.mk > Makefile $ vi lire\&.pod $ perldoc \&./lire\&.pod $ make lire\&.pdf $ make $ less lire\&.overstrike-txt $ make clean .fi \fR .in .di .ne \n(dnu .nf \fC .ZV .fi \fR Other targets: \fCfilename\&.ps\fP, \fCfilename\&.html\fP, \fCfilename\&.txt\fP, \&.\&.\&. (Similar to the ones supplied by \fIdocbook\&.mk\fP)\&. .SH EXAMPLES Some examples: Overriding the caspar-supplied DSSSL files: Create your own print\&.dls and html\&.dsl, in the same directory as your Docbook XML files\&. Your Makefile should read: .di ZV .in 0 .nf \fC PRINT_DSL = print\&.dsl HTML_DSL = html\&.dsl include caspar/mk/docbook\&.mk .fi \fR .in .di .ne \n(dnu .nf \fC .ZV .fi \fR Overriding the standard html-to-text convertor: .di ZV .in 0 .nf \fC $ W3M=lynx make svejk\&.txt .fi \fR .in .di .ne \n(dnu .nf \fC .ZV .fi \fR \&. .SH FILES \fIcaspar/mk/docbook\&.mk\fP, \fIcaspar/mk/pod\&.mk\fP .SH ENVIRONMENT For \fIdocbook\&.mk\fP: files: \fCXMLDCL\fP, \fCHTML_DSL\fP, \fCPRINT_DSL\fP; utilities: \fCJADE\fP, \fCPDFJADETEX\fP, \fCPDFLATEX\fP, \fCJADETEX\fP, \fCLATEX\fP, \fCW3M\fP, \fCDVIPS\fP, \fCPSNUP\fP, \fCLPR\fP, \fCGV\fP; settings: \fCJADE_MAXERRORS\fP\&. These variables can get adjusted in Makefile, as well as in the shell environment\&. \fIpod\&.mk\fP Uses no environment variables\&. .SH AUTHOR Joost van Baal-Ilić .SH SEE ALSO \fBcaspar(7)\fP [1] perlpod(1) about Perl\&'s Plain Old Documentation format [2] \fIDocBook: The Definitive Guide\fP on http://docbook\&.org/, [3] The LaTeX Project Homepage on http://www\&.latex-project\&.org/\&. Some comments on advanced usage are in the files \fIdocbook\&.mk\fP and \fIpod\&.mk\fP itself\&. caspar-20140919/mk/0000755000175000017500000000000012407054567010660 500000000000000caspar-20140919/mk/Makefile.in0000644000175000017500000003166312407054561012650 00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' 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@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = mk DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/VERSION.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) 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/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__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)$(mkdir)" DATA = $(mk_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ PACKAGE = @PACKAGE_TARNAME@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ am__leading_dot = @am__leading_dot@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ mkdir = $(datadir)/$(PACKAGE)/mk mk_DATA = caspar.mk docbook.mk pod.mk EXTRA_DIST = caspar.mk docbook.mk pod.mk all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu mk/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu mk/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-mkDATA: $(mk_DATA) @$(NORMAL_INSTALL) @list='$(mk_DATA)'; test -n "$(mkdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(mkdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(mkdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(mkdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(mkdir)" || exit $$?; \ done uninstall-mkDATA: @$(NORMAL_UNINSTALL) @list='$(mk_DATA)'; test -n "$(mkdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(mkdir)'; $(am__uninstall_files_from_dir) tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(mkdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: 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: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-mkDATA @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-data-hook install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-mkDATA @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) uninstall-hook .MAKE: install-am install-data-am install-strip 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-mkDATA \ 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-hook uninstall-mkDATA install-data-hook: $(mkdir_p) $(DESTDIR)$(includedir)/$(PACKAGE)/mk for f in $(mk_DATA); do \ $(LN_S) $(mkdir)/$$f $(DESTDIR)$(includedir)/$(PACKAGE)/mk/$$f; \ done uninstall-hook: for f in $(mk_DATA); do \ rm $(DESTDIR)$(includedir)/$(PACKAGE)/mk/$$f; \ done # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: caspar-20140919/mk/Makefile.am0000644000175000017500000000105612345413601012623 00000000000000## Process this file with automake to produce Makefile.in ## This file is maintained at http://git.mdcc.cx/caspar PACKAGE = @PACKAGE_TARNAME@ mkdir = $(datadir)/$(PACKAGE)/mk mk_DATA = caspar.mk docbook.mk pod.mk EXTRA_DIST = caspar.mk docbook.mk pod.mk install-data-hook: $(mkdir_p) $(DESTDIR)$(includedir)/$(PACKAGE)/mk for f in $(mk_DATA); do \ $(LN_S) $(mkdir)/$$f $(DESTDIR)$(includedir)/$(PACKAGE)/mk/$$f; \ done uninstall-hook: for f in $(mk_DATA); do \ rm $(DESTDIR)$(includedir)/$(PACKAGE)/mk/$$f; \ done caspar-20140919/mk/caspar.mk0000644000175000017500000001174612375150752012410 00000000000000# This file is maintained at http://git.mdcc.cx/caspar # Copyright (C) 2012 Joost van Baal-Ilić # Copyright (C) 2002, 2003, 2004, 2005, 2006, 2009, 2010 Joost van Baal # Copyright © 2012,2014 Wessel Dankers # # This file is part of caspar. Caspar is free software; you can redistribute # it and/or modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 3 of the License, # or (at your option) any later version. You should have received a copy of # the GNU General Public License along with this file (see COPYING). # see caspar(7) for usage # possibility to choose own cp(1) and scp(1) csp_CP ?= cp csp_SCP ?= scp csp_SUCP ?= csp_sucp csp_SSH ?= ssh csp_CAT ?= cat csp_Diff ?= diff # csp_DIFF is reserved for the user interface... csp_RSYNC ?= rsync csp_MKDIRP ?= mkdir -p csp_INSTALL ?= csp_install csp_SCP_KEEP_MODE ?= csp_scp_keep_mode csp_MKDIRCP ?= csp_mkdircp # extra arguments for cp(1) and scp(1) csp_CPFLAGS ?= csp_SCPFLAGS ?= csp_RSYNCFLAGS ?= -zPt --chmod=ugo=rwX csp_DIFFXARG ?= -u csp_EXTRAFILES ?= csp_TABOOFILES_DEFAULT ?= Makefile .%.swp %~ \#%\# pod2htmd.tmp pod2htmi.tmp csp_TABOOFILES ?= $(filter-out $(csp_TABOOFILES_SKIP),$(csp_TABOOFILES_DEFAULT)) $(csp_TABOOFILES_ADD) csp_TABOODIRS_DEFAULT ?= CVS .svn csp_TABOODIRS ?= $(filter-out $(csp_TABOODIRS_SKIP),$(csp_TABOODIRS_DEFAULT)) $(csp_TABOODIRS_ADD) # wrap csp_SCP and other puch mechanisms in make function template csp_scp_FUNC = $(csp_SCP) $(csp_SCPFLAGS) $(3) $(1):$(2) csp_cp_FUNC = $(csp_CP) $(csp_CPFLAGS) -t $(2) $(3) csp_sucp_FUNC = CSP_SUCP_USER=$(csp_SUCP_USER) $(csp_SUCP) $(1) $(2) $(3) csp_rsync_FUNC = $(csp_RSYNC) $(csp_RSYNCFLAGS) $(3) $(1)::$(2) csp_rsyncssh_FUNC = $(csp_RSYNC) $(csp_RSYNCFLAGS) $(3) $(1):$(2) csp_diff_FUNC = $(csp_SSH) $(1) $(csp_CAT) $(2)/$(3) | $(csp_Diff) $(csp_DIFFXARG) - $(3) csp_install_FUNC = $(csp_INSTALL) $(2) $(3) csp_scp_keep_mode_FUNC = $(csp_SCP_KEEP_MODE) $(1) $(2) $(3) csp_scpmkdir_FUNC = $(csp_SSH) $(1) $(csp_MKDIRP) $(2) && $(csp_scp_FUNC) csp_mkdircp_FUNC = $(csp_MKDIRCP) $(2) $(3) csp_PUSH ?= $(csp_scp_FUNC) csp_DIFF ?= $(csp_diff_FUNC) # we use plurals only csp_UHOSTS ?= $(csp_UHOST) # uhosts that should be excluded for whatever reason _csp_UHOSTS_COMPUTED := $(filter-out $(csp_UHOSTS_SKIP),$(csp_UHOSTS)) ifneq ($(csp_UHOSTS_SUBSET),) _csp_UHOSTS_COMPUTED := $(filter $(csp_UHOSTS_SUBSET),$(_csp_UHOSTS_COMPUTED)) endif # files, not directories _csp_FILES := $(shell for f in *; do test -f "$$f" && echo "$$f"; done) # add built files, exclude editor backup files and other stuff _csp_FILES := $(filter-out $(csp_TABOOFILES),$(_csp_FILES) $(csp_BUILD)) # user specified files _csp_FILES := $(sort $(_csp_FILES) $(csp_EXTRAFILES)) all: $(MAKE) build $(MAKE) install $(MAKE) load define _csp_filetargets $1-install: $(foreach host,$(_csp_UHOSTS_COMPUTED),$1--$(host)--push) $1-diff: $(foreach host,$(_csp_UHOSTS_COMPUTED),$1--$(host)--diff) endef define _csp_bulktargets $2--bulk-push: $1 $$(call csp_PUSH,$2,$$(csp_DIR),$1) endef $(foreach host,$(_csp_UHOSTS_COMPUTED),\ $(eval $(call _csp_bulktargets,$(_csp_FILES),$(host)))) define _csp_remotetargets $1--$2--push: $1 $$(call csp_PUSH,$2,$$(csp_DIR),$1) $1--$2--diff: $1 $$(call csp_DIFF,$2,$$(csp_DIR),$1) endef $(foreach file,$(_csp_FILES),\ $(eval $(call _csp_filetargets,$(file)))\ $(foreach host,$(_csp_UHOSTS_COMPUTED),\ $(eval $(call _csp_remotetargets,$(file),$(host))))) define _csp_loadtarget $1: $(patsubst %,$1--%--load,$(_csp_UHOSTS_COMPUTED)) endef define _csp_loadtargets $1--$2--load: $$(call $1,$2) endef $(foreach load,$(csp_LOAD),\ $(eval $(call _csp_loadtarget,$(load)))\ $(foreach host,$(_csp_UHOSTS_COMPUTED),\ $(eval $(call _csp_loadtargets,$(load),$(host))))) _csp_TARGETS := $(patsubst %,%-install,$(_csp_FILES)) _csp_BULKTARGETS := $(if $(_csp_FILES),$(patsubst %,%--bulk-push,$(_csp_UHOSTS_COMPUTED))) _csp_DIFFTARGETS := $(patsubst %,%-diff,$(_csp_FILES)) _csp_LOADTARGETS := $(foreach load,$(csp_LOAD),$(load) $(patsubst %,$(load)--%--load,$(_csp_UHOSTS_COMPUTED))) _csp_DIRS := $(shell for d in *; do test -d "$$d" && echo "$$d"; done) _csp_DIRS := $(filter-out $(csp_TABOODIRS),$(_csp_DIRS)) define _csp_do_recursive $1--install-recursive: $(MAKE) -C $1 install-recursive endef $(foreach dir,$(_csp_DIRS),$(eval $(call _csp_do_recursive,$(dir)))) build: $(csp_BUILD) diff: $(_csp_DIFFTARGETS) install: $(_csp_BULKTARGETS) install-recursive: install $(patsubst %,%--install-recursive,$(_csp_DIRS)) load: $(csp_LOAD) debug: @echo _csp_TARGETS $(_csp_TARGETS) _csp_BULKTARGETS $(_csp_BULKTARGETS) _csp_FILES $(_csp_FILES) csp_UHOSTS $(csp_UHOSTS) _csp_UHOSTS_COMPUTED $(_csp_UHOSTS_COMPUTED) csp_PUSH $(csp_PUSH) .PHONY: $(csp_BUILD) $(_csp_TARGETS) $(_csp_BULKTARGETS) $(_csp_LOADTARGETS) $(_csp_DIFFTARGETS) build diff install install-recursive load debug caspar-20140919/mk/docbook.mk0000644000175000017500000000632212400143613012534 00000000000000# This file is maintained at http://git.mdcc.cx/caspar # Copyright (C) 2002, 2003, 2004 Joost van Baal # # This file is part of caspar. Caspar is free software; you can redistribute # it and/or modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 3 of the License, # or (at your option) any later version. You should have received a copy of # the GNU General Public License along with this file (see COPYING). # See caspar-typesetting(7) for usage information. # see also /usr/local/src/debian/maint-guide/maint-guide-1.0.2/Makefile # for a debiandoc-sgml example. XMLDCL ?= /usr/share/sgml/declaration/xml.dcl # my jade looks in "caspar/print.dsl", # "/usr/local/share/sgml/caspar/print.dsl", # "/usr/local/lib/sgml/caspar/print.dsl", # "/usr/share/sgml/caspar/print.dsl" # when i specify -d caspar/print.dsl # # when using your own print.dsl, your Makefile could read # # PRINT_DSL = print.dsl # include caspar/mk/docbook.mk # # HTML_DSL ?= caspar/html.dsl PRINT_DSL ?= caspar/print.dsl # JADE = /usr/bin/jade JADE ?= jade # jade's -E option. the jade default is 200. we choose a maximum # of 10 errors: we don't wanna have our console spammed by errormessages JADE_MAXERRORS ?= 10 PDFJADETEX ?= pdfjadetex PDFLATEX ?= pdflatex JADETEX ?= jadetex LATEX ?= latex W3M ?= w3m DVIPS ?= dvips PSNUP ?= psnup LPR ?= lpr # gnome-gv might do well too GV ?= gv SGML2HTML_RULE = $(JADE) -E$(JADE_MAXERRORS) -t sgml -d $(HTML_DSL) $< XML2HTML_RULE = $(JADE) -E$(JADE_MAXERRORS) -t sgml -d $(HTML_DSL) \ $(XMLDCL) $< # lynx doesn't deal well with too wide blurbs of :( HTML2TXT_RULE = $(W3M) -dump $< > $@ SGML2JTEX_RULE = $(JADE) -E$(JADE_MAXERRORS) -t tex -d $(PRINT_DSL) \ -o $@ $< XML2JTEX_RULE = $(JADE) -E$(JADE_MAXERRORS) -t tex -d $(PRINT_DSL) \ -o $@ $(XMLDCL) $< # run three times for toc processing JTEX2DVI_RULE = $(JADETEX) $< && $(JADETEX) $< && $(JADETEX) $< && \ rm -f $*.log $*.out $*.aux # rm -f: intermediate files might not exist JTEX2PDF_RULE = $(PDFJADETEX) $< && $(PDFJADETEX) $< && $(PDFJADETEX) $< && \ rm -f $*.log $*.out $*.aux # One of the GNU Make implicit rules makes N.dvi from N.tex with the # command $(TEX) TEX2DVI_RULE = $(LATEX) $< && $(LATEX) $< && $(LATEX) $< && \ rm -f $*.log $*.aux DVI2PS_RULE = $(DVIPS) -f < $< > $@ TEX2PDF_RULE = $(PDFLATEX) $< && $(PDFLATEX) $< && $(PDFLATEX) $< && \ rm -f $*.log $*.aux PS22PS_RULE = $(PSNUP) -2 $< $@ # create nice default target sources := $(basename $(wildcard *.dbx *.tex *.sgml)) outputs := $(addsuffix .ps,$(sources)) $(addsuffix .pdf,$(sources)) \ $(addsuffix .html,$(sources)) $(addsuffix .txt,$(sources)) typeset: $(outputs) %.jtex: %.sgml $(SGML2JTEX_RULE) %.jtex: %.dbx $(XML2JTEX_RULE) %.dvi: %.jtex $(JTEX2DVI_RULE) %.dvi: %.tex $(TEX2DVI_RULE) %.ps: %.dvi $(DVI2PS_RULE) %.pdf: %.tex $(TEX2PDF_RULE) %.pdf: %.jtex $(JTEX2PDF_RULE) %.html: %.sgml $(SGML2HTML_RULE) %.html: %.dbx $(XML2HTML_RULE) %.txt: %.html $(HTML2TXT_RULE) %.2ps: %.ps $(PS22PS_RULE) %.view: %.ps $(GV) $< %.print: %.2ps $(LPR) $< %.printbig: %.ps $(LPR) $< clean: -rm *.aux *.log *.dvi *.jtex .PRECIOUS: %.ps %.html caspar-20140919/mk/pod.mk0000644000175000017500000000276712345413601011714 00000000000000# This file is maintained at http://git.mdcc.cx/caspar # # pod.mk - typeset documentation from .pod files . See perlpod(1) for # information on Perl's pod, Plain Old Documention . # # See caspar-typesetting(7) for usage info. # # this Makefile snippet needs GNU Make # Copyright (C) 2003 Joost van Baal # # This file is part of caspar. Caspar is free software; you can redistribute # it and/or modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 3 of the License, # or (at your option) any later version. You should have received a copy of # the GNU General Public License along with this file (see COPYING). PODS := $(shell for f in *.pod; do test -f $$f && echo -n $$f " "; done) BASES := $(basename $(PODS)) TXTS := $(patsubst %,%.txt,$(BASES)) OVERSTRIKES := $(patsubst %,%.overstrike-txt,$(BASES)) HTMLS := $(patsubst %,%.html,$(BASES)) TROFFS := $(patsubst %,%.7,$(BASES)) PSS := $(patsubst %,%.ps,$(BASES)) PDFS := $(patsubst %,%.pdf,$(BASES)) typeset: $(TXTS) $(HTMLS) $(TROFFS) $(PSS) $(PDFS) %.7: %.pod pod2man $< $@ %.html: %.pod pod2html --infile=$< --outfile=$@ # view install.overstrike-txt with less(1) %.overstrike-txt: %.pod pod2text --overstrike $< $@ %.txt: %.pod pod2text $< $@ # two pages on one sheet: # a2ps -o $@ $< %.ps: %.7 man -l -Tps $< > $@ %.pdf: %.ps ps2pdf $< $@ clean: -rm -f $(PDFS) $(PSS) $(HTMLS) $(TXTS) $(OVERSTRIKES) $(TROFFS) caspar-20140919/sgml/0000755000175000017500000000000012407054567011213 500000000000000caspar-20140919/sgml/Makefile.in0000644000175000017500000003075112407054562013201 00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' 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@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = sgml DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/VERSION.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) 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/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__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)$(sgmldir)" DATA = $(sgml_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ PACKAGE = @PACKAGE_TARNAME@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ am__leading_dot = @am__leading_dot@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ sgmldir = $(datadir)/sgml/$(PACKAGE) sgml_DATA = print.dsl html.dsl EXTRA_DIST = $(sgml_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu sgml/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu sgml/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-sgmlDATA: $(sgml_DATA) @$(NORMAL_INSTALL) @list='$(sgml_DATA)'; test -n "$(sgmldir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(sgmldir)'"; \ $(MKDIR_P) "$(DESTDIR)$(sgmldir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(sgmldir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(sgmldir)" || exit $$?; \ done uninstall-sgmlDATA: @$(NORMAL_UNINSTALL) @list='$(sgml_DATA)'; test -n "$(sgmldir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(sgmldir)'; $(am__uninstall_files_from_dir) tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(sgmldir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: 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: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-sgmlDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-sgmlDATA .MAKE: install-am install-strip .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-sgmlDATA 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-sgmlDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: caspar-20140919/sgml/Makefile.am0000644000175000017500000000026512345413601013157 00000000000000## Process this file with automake to produce Makefile.in PACKAGE = @PACKAGE_TARNAME@ sgmldir = $(datadir)/sgml/$(PACKAGE) sgml_DATA = print.dsl html.dsl EXTRA_DIST = $(sgml_DATA) caspar-20140919/sgml/print.dsl0000644000175000017500000001244512345413601012766 00000000000000 ]> ;; See dbparam.dsl for definitions of refentries (define %section-autolabel% #t) ;; Sections are enumerated (define %chapter-autolabel% #t) ;; Chapters are enumerated (define %generate-article-toc% #t) ;; A Table of Contents should ;; be produced for Articles (define %generate-article-titlepage-on-separate-page% #f) (define %generate-article-titlepage% #t) (define %generate-article-toc-on-titlepage% #t) ;; (define %visual-acuity% "normal") ;; General measure of document text ;; size. See dbparam.dsl. bf-size maps ;; visual-acuity to normal-param text ;; size. normal is 10pt, presbyopic is ;; 12pt. ;; we want it to look like default LaTeX. One could also choose ;; "Times New Roman" here. (define %title-font-family% "Computer Modern") ;; The font family used in titles (define %body-font-family% "Computer Modern") ;; The font family used in body text (define %default-quadding% 'justify) ;; The default quadding ('start', ;; 'center', 'justify', or 'end'). (define %body-start-indent% 0em) ;; The default indent of body text. ;; Some elements may have more or ;; less indentation. 4pi is default ;; value ;; we have vertical whitespace between paragraphs ;; (define %para-indent% 2em) ;; First line start-indent for ;; paragraphs (other than the first) (define article-titlepage-recto-style (style font-family-name: %title-font-family% font-size: (HSIZE 1))) ;; overrule font of title on ;; titlepage, see dbttlpg.dsl. tnx ;;; setting to HSIZE 2 or 5 has no effect... ;; flacoste (define (article-titlepage-recto-elements) (list (normalize "title") (normalize "subtitle") (normalize "corpauthor") (normalize "authorgroup") (normalize "author") (normalize "abstract"))) ;; (normalize "revhistory"))) ;; revhistory added ;; article-titlepage-recto-elements in dbttlpg.dsl (define (toc-depth nd) 2) ;; see dbautoc.dsl, default 1 for ;; article, 7 for book (define (first-page-inner-footer gi) (cond ((equal? (normalize gi) (normalize "dedication")) (empty-sosofo)) ((equal? (normalize gi) (normalize "lot")) (empty-sosofo)) ((equal? (normalize gi) (normalize "part")) (empty-sosofo)) ((equal? (normalize gi) (normalize "toc")) (empty-sosofo)) (else (with-mode footer-copyright-mode (process-node-list (select-elements (children (current-node)) (normalize "articleinfo"))))))) (define (page-inner-footer gi) (cond ((equal? (normalize gi) (normalize "dedication")) (empty-sosofo)) ((equal? (normalize gi) (normalize "lot")) (empty-sosofo)) ((equal? (normalize gi) (normalize "part")) (empty-sosofo)) ((equal? (normalize gi) (normalize "toc")) (empty-sosofo)) (else (with-mode footer-id-mode (process-node-list (select-elements (children (current-node)) (normalize "articleinfo"))))))) (mode footer-id-mode ;; Prevent elements with PCDATA content ;; from being processed (element title (empty-sosofo)) (element subtitle (empty-sosofo)) (element copyright (empty-sosofo)) (element author (empty-sosofo)) (element revnumber (empty-sosofo)) (element date (empty-sosofo)) (element revremark (process-children-trim)) (default (process-children-trim))) (define (make-footer-rule) (make rule orientation: 'escapement position-point-shift: 0.75cm length: 5cm layer: 1 line-thickness: 0.4pt)) ;; make sure systemitem gets typesetted in typewriter font (element systemitem ($mono-seq$)) (mode footer-copyright-mode ;; Prevent elements with PCDATA content ;; from being processed (element title (empty-sosofo)) (element subtitle (empty-sosofo)) (element author (empty-sosofo)) (element revnumber (empty-sosofo)) (element date (empty-sosofo)) (element revhistory (empty-sosofo)) (element copyright (let ((year (select-elements (children (current-node)) (normalize "year"))) (holder (select-elements (children (current-node)) (normalize "holder")))) (make sequence (make-footer-rule) (literal "Copyright © ") (process-node-list year) (literal " ") (process-node-list holder)))) (default (process-children-trim))) caspar-20140919/sgml/html.dsl0000644000175000017500000000220012345413601012562 00000000000000 ]> ;; See dbparam.dsl for definitions of refentries (define %section-autolabel% #t) ;; Sections are enumerated (define %chapter-autolabel% #t) ;; Chapters are enumerated (define nochunks #t) ;; Dont make multiple pages (define rootchunk #t) ;; Do make a 'root' page (define %use-id-as-filename% #t) ;; Use book id as filename (define %html-ext% ".html") ;; give it a proper html extension ;; %generate-set-toc% and %generate-book-toc% are #t in dbparam.dsl ;; %generate-book-titlepage% and %generate-article-titlepage% are #t ;; %generate-part-toc-on-titlepage% is #t ;; it seems toc is generated, but not printed in nochunks mode caspar-20140919/script/0000755000175000017500000000000012407054567011555 500000000000000caspar-20140919/script/Makefile.in0000644000175000017500000003224012407054562013536 00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' 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@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = script DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/VERSION.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__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)$(bindir)" SCRIPTS = $(bin_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) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ am__leading_dot = @am__leading_dot@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ bin_SCRIPTS = casparize csp_install csp_mkdircp csp_scp_keep_mode csp_sucp EXTRA_DIST = $(bin_SCRIPTS) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu script/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu script/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-binSCRIPTS: $(bin_SCRIPTS) @$(NORMAL_INSTALL) @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(bindir)" || 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; \ done | \ sed -e 'p;s,.*/,,;n' \ -e 'h;s|.*|.|' \ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) { files[d] = files[d] " " $$1; \ if (++n[d] == $(am__install_max)) { \ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ else { print "f", d "/" $$4, $$1 } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binSCRIPTS: @$(NORMAL_UNINSTALL) @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 's,.*/,,;$(transform)'`; \ dir='$(DESTDIR)$(bindir)'; $(am__uninstall_files_from_dir) tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(SCRIPTS) installdirs: for dir in "$(DESTDIR)$(bindir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: 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: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binSCRIPTS install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binSCRIPTS .MAKE: install-am install-strip .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-binSCRIPTS \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags-am uninstall uninstall-am \ uninstall-binSCRIPTS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: caspar-20140919/script/Makefile.am0000644000175000017500000000024212345413601013514 00000000000000## Process this file with automake to produce Makefile.in bin_SCRIPTS = casparize csp_install csp_mkdircp csp_scp_keep_mode csp_sucp EXTRA_DIST = $(bin_SCRIPTS) caspar-20140919/script/casparize0000755000175000017500000001016012345413601013367 00000000000000#!/bin/bash # This file is maintained at http://git.mdcc.cx/caspar # casparize - create Makefile-populated directories # Copyright (C) 2009 Jeroen Hoppenbrouwers # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # # Creates a directory in working directory named like the last path # element of the parameter, and creates a Makefile in the new directory # containing standard caspar(7) setup that refers to the parameter path. # If relevant, also copies the original config file into the new dir. # Is reasonably picky about path names, tries to avoid common errors. # # V1.3 2009-07-25 # Abort on first error. set -e if [ -z "$1" ]; then echo "Usage:" echo " casparize /path/to/config/dir" echo " Creates dir in working directory and" echo " sets up caspar(7) Makefile in it." echo " casparize /path/to/config/dir/file" echo " Creates dir in working directory and" echo " sets up caspar(7) Makefile in it," echo " then copies the config file into it." echo "" echo "Typical example:" echo " \$ cd /etc" echo " \$ casparize /etc/postfix/main.cf" echo "" echo "Will never overwrite anything that already exists." exit 1 fi # Complain if config path is not absolute. if [ "${1:0:1}" != "/" ]; then echo "ERROR: config path must be absolute". exit 1 fi # If given config path is a file, split it off and continue with just the # config directory (until at the end where the file comes in). if [ -d "$1" ]; then # Target is a directory; just continue. conffile="" confdir=$1 else # Target is a file; split off. conffile=`basename $1` confdir=`dirname $1` fi # Two options are covered: # 1. New directory required, create in working directory. # 2. New dir and file required, create dir in working directory and file # in the newly created directory. # What is NOT covered is "create file in working directory" because we # assume that it is rare to not have the working directory set up with a # Makefile. But it could be done. # Complain if working directory basename is not equal to one-but-last # element of the given config directory path. This catches most "oops" # cases. here=`pwd` here=`basename $here` target=`dirname $confdir` target=`basename $target` if [ "$here" != "$target" ]; then echo "ERROR: Check config directory versus working directory." exit 1 fi # Find the include/install.mk file by looking up the tree from working dir. scandir=`pwd` uplevels="" until [ -a "${uplevels}include/install.mk" ]; do scandir=`dirname $scandir` if [ "$scandir" = "/" ]; then echo "ERROR: could not find include/install.mk anywhere up the path." exit 1 fi uplevels+="../" done # Directory to be created in working directory. base=`basename $confdir` # If the directory to be created already exists, don't complain. # It may be that caspar(1) is used to create the Makefile only. mkdir -pv $base if [ -e "${base}/Makefile" ]; then # Complain if the Makefile already exists. echo "WARNING: $base/Makefile already exists; not overwriting." else # Create the Makefile. echo "csp_DIR = $confdir" > ${base}/Makefile echo "include ${uplevels}../include/install.mk" >> ${base}/Makefile echo "casparize: created file \`$base/Makefile'" fi # If required, create the configuration file as well (copy over). if [ -n "${conffile}" ]; then if [ -e "${base}/${conffile}" ]; then echo "WARNING: ${base}/${conffile} already exists; not overwriting." else cp ${confdir}/${conffile} $base echo "casparize: created file \`${base}/${conffile}'" fi fi exit 0 caspar-20140919/script/csp_install0000755000175000017500000000127412345413601013727 00000000000000#!/bin/sh # This file is maintained at http://git.mdcc.cx/caspar # csp_install - wrapper for install(1), to be used in caspar-ized Makefiles # # usage: csp_install # # honors optionally set environment variable csp_INSTALL_OPTIONS. # use e.g. # export csp_INSTALL_OPTIONS='--owner=www-data --group=www-data' # # Generally, this script is to be used by stating e.g. # # csp_UHOST = dummy # csp_PUSH = $(csp_install_FUNC) # csp_DIR = /etc/ # include caspar/mk/caspar.mk # # in a Makefile : ${csp_INSTALL_MODE:=u=rw,go=r} install --directory $1 exec install --backup=off --preserve-timestamps --mode=$csp_INSTALL_MODE --no-target-directory $csp_INSTALL_OPTIONS $2 $1/$2 caspar-20140919/script/csp_mkdircp0000755000175000017500000000021612345413601013705 00000000000000#! /bin/sh # This file is maintained at http://git.mdcc.cx/caspar set -e dir=$1 shift mkdir -p "$DESTDIR$dir" exec cp "$@" "$DESTDIR$dir" caspar-20140919/script/csp_scp_keep_mode0000755000175000017500000000170512345413601015055 00000000000000#!/bin/sh # This file is maintained at http://git.mdcc.cx/caspar # csp_scp_keep_mode - use ssh to copy a file, keeping its file permission mode # based upon an idea of Wessel Dankers # user joe pushed file bar to host murphy, in directory /foo/. on murphy, # /foo/bar is owned by joe:joe. Now, ann wants to change murphy:/foo/bar. She # however lacks permissions. Using a new group "hackers", and performing chmod # g+s on murphy:/foo/ fixes this partially: the files now belong to the right # group "hackers". However, a mode g+w on a file is generally _not_ preserved # when scp-ing a new version of the file. # # Zorg dat op alle desktops het scriptje "csp_install_origal_mode" ergens # in het $PATH van de gebruikers staat. # Voorzie de include/install.mk verder van: # # csp_scp_keep_mode_FUNC = csp_scp_keep_mode $(1) $(2) $(3) # csp_PUSH = $(csp_scp_keep_mode_FUNC) # : ${csp_SSH:=ssh} exec $csp_SSH $1 't=`mktemp` && cat >$t && mv $t $2/$3' < $3 caspar-20140919/script/csp_sucp0000755000175000017500000000171012345413601013226 00000000000000#!/bin/sh # This file is maintained at http://git.mdcc.cx/caspar # # csp_sucp - mix scp with sudo # # usage: # csp_sucp [user@]host dir file # # examples: # csp_sucp rms@bilbo /etc file # csp_sucp monty-python trailer.txt commit # # warning: # csp_sucp won't prevent the given password from being echoed! # if test -z "$3" then echo "usage: csp_sucp [user@]host dir file [file ...]" exit 1 fi # command line argument overrules environment variable test -n "$CSP_SUCP_USER" && opt_u="-u $CSP_SUCP_USER" # first make sure our sudo-timestamp is fresh ssh -t $1 sudo -v # now run sudo: we won't be prompted for a password; and # can use stdin for our data test -n "$CSP_DEBUG" && echo $1 $opt_u $2 $3 #exec ssh $1 "sudo $opt_u sh -c \"cat - > $2/$3\"" < $3 host=$1; shift dir=$1; shift # files now in $@ test -n "$CSP_DEBUG" && echo exec tar c "$@" \| ssh -T $host sudo -n $opt_u tar xC $dir exec tar c "$@" | ssh -T $host sudo -n $opt_u tar xC $dir