Refer to ChangeLog for detailed per-file info.

caspar version 20251012 - The Land van Kleef Release

- doc/caspar.azm: fix typo: s/commiting/committing/. Thanks Debian's lintian
  and Phil 'kathenas.org' Wyett in https://bugs.debian.or/1084920 .
- Makefile.am, bootstrap, setversion, doc/Makefile.am, doc/include.zmm: be
  more explicit about software license.  Thanks Phil 'kathenas.org' Wyett and
  the 'licensecheck' script as shipped with App::Licensecheck.
- README, mk/docbook.mk, doc/caspar-typesetting.azm : s/jade/openjade/ :
  package openjade ( https://openjade.sourceforge.net/ ) ships
  /usr/bin/openjade.  "jade" is obsolete since at least 2016.  See also
  https://bugs.debian.org/846178 .  Thanks Carles Pina i Estany.
- bootstrap: update from automake/aclocal 1.16 to 1.17 as shipped with current
  Debian stable.


caspar version 20240818 - The Meždo Release

- We no longer ship typesetted (zoem) documentations in our tarball release,
  but now build-depend upon zoem (and tidy and w3m).  This makes this software
  more truly Free Software (stronger guarantees it actually builds from a git
  checkout) and makes our build system less vulnerable to Supply Chain Attacks.
  It also closes Debian Bug #1049637: "Fails to build binary packages again
  after successful build".  See also uruk Debian Bug #1049742.
  + doc/Makefile.am: Add *.1 *.7 and tmpfiles *.{zmr,zmt} to DISTCLEANFILES,
    so that DISTCLEANFILES are now MAINTAINERCLEANFILES.  Remove typsetted
    files from EXTRA_DIST.
  + configure.ac: fail the build if zoem is not available.

- .gitignore: added.

- doc/Makefile.am: No longer build or install PostScript documentation from
  manpages.  One can easily do that anyway by running e.g.:

   zcat /usr/share/man/man7/caspar.7.gz | groff -man >/tmp/caspar.ps

- mk/markdown.mk: No longer rely on the traditional markdown processor
  but assume CommonMark spec-adhering input and call cmark(1).


caspar version 20220907 - The Stanowischt Release

- Caspar now processes .md markdown files:
  + caspar/mk/markdown.mk: Added.
  + caspar/doc/caspar-typesetting.azm: Document this.

- configure.ac: update copyright years.


caspar version 20200611 - The Minneapolis Release

- This release dedicated to James Baldwin (★ 1924 – † 1987).

- doc/caspar.azm: add missing {, so that sections like FILES, ENVIRONMENT,
  SEE ALSO are no longer skipped from typesetting the caspar(7) manpage.

- bootstrap: update from automake/aclocal 1.15 to 1.16 as shipped with current
  Debian stable.


caspar version 20180315 - The Romstjern Release

- caspar/mk/caspar.mk: Patch contributed by Wessel Dankers: csp_* variables
  are part of caspar's public interface. However, in some cases
  (csp_scp_FUNC and friends) we overwrote those unconditionally.  This patch
  fixes that behavior: from now on, existing values for csp_scp_FUNC are not
  overwritten any more.

- bootstrap: update from automake/aclocal 1.14 to 1.15 as shipped with current
  Debian stable.


caspar version 20170830 - The Bleukbos Release

- mk/pod.mk: drop ps2pdf, use pod2pdf (as shipped with e.g. Debian 8 "jessie")
  for generating PDF from POD.

- mk/caspar.mk: apply patch contributed by Wessel Dankers:

  1) Add support for foo-verify make targets. Such make targets will be
     executed by caspar and should verify if the file "foo" is correct in terms
     of syntax and integrity.

  2) Add a csp_CHECK that works identically to csp_LOAD except that no
     csp_LOAD actions are attempted unless and until csp_CHECK completes
     successfully.

     Use this to validate config remotely before loading (and potentially
     breaking) your service.

  3) Officially deprecate csp_BUILD.

  4) Officially deprecate the "for suh in $(csp_UHOSTS) ..." idiom.

  Please note that if you have multiple csp_LOAD targets or multiple csp_CHECK
  targets, these are NOT necessarily executed in the order you specify them!

  The documentation used to (erroneously) suggest that specifying a check
  target and a load target in csp_LOAD in the correct order would cause the
  check to run before the load. This is not true in general, and specifically
  in the case of make -j.


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

- 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

- 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-<version>.tar.bz2, do ship
  caspar-<version>.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> <dir> <file> (was:
  <file> <[user@]host> <dir> [<xarg>])
  + caspar/script/csp_sucp, caspar/script/csp_scp_keep_mode: swap
    arguments: now csp_* <[user@]host> <dir> <file> (was:
    <file> <[user@]host> <dir> [su-user])
  + caspar/script/csp_install: swap arguments: now
    csp_install <dir> <file>
- 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 <filename>-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

