Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package rcm for openSUSE:Factory checked in 
at 2021-02-18 20:41:26
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rcm (Old)
 and      /work/SRC/openSUSE:Factory/.rcm.new.28504 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "rcm"

Thu Feb 18 20:41:26 2021 rev:4 rq:873342 version:1.3.4

Changes:
--------
--- /work/SRC/openSUSE:Factory/rcm/rcm.changes  2018-07-17 09:42:52.393185482 
+0200
+++ /work/SRC/openSUSE:Factory/.rcm.new.28504/rcm.changes       2021-02-18 
20:53:11.707483564 +0100
@@ -1,0 +2,9 @@
+Thu Feb 18 06:41:43 UTC 2021 - Wang Jun <jgw...@suse.com>
+
+- Update to version 1.3.4
+  * BUGFIX: Globs no longer expand permanently (Edd Salkield).
+  * BUGFIX: Show $ for symlinked dirs in `lsrc -F` (Mathias Michel).
+  * Feature: All symlinks in input are rejected (Mat M).
+  * Packaging improvements (Stephen Groat, Martin Frost, Link Dupont).
+
+-------------------------------------------------------------------

Old:
----
  rcm-1.3.3.tar.gz

New:
----
  rcm-1.3.4.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ rcm.spec ++++++
--- /var/tmp/diff_new_pack.FVtlbe/_old  2021-02-18 20:53:12.179484007 +0100
+++ /var/tmp/diff_new_pack.FVtlbe/_new  2021-02-18 20:53:12.179484007 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package rcm
 #
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2021 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -12,18 +12,18 @@
 # license that conforms to the Open Source Definition (Version 1.9)
 # published by the Open Source Initiative.
 
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
 #
 
 
 # See also http://en.opensuse.org/openSUSE:Specfile_guidelines
 Name:           rcm
-Version:        1.3.3
+Version:        1.3.4
 Release:        0
 Summary:        An rc file (dotfile) management tool
 License:        BSD-3-Clause
 Group:          Productivity/File utilities
-Url:            https://thoughtbot.github.io/rcm/
+URL:            https://thoughtbot.github.io/rcm/
 Source0:        https://thoughtbot.github.io/rcm/dist/%{name}-%{version}.tar.gz
 Requires:       bash
 BuildArch:      noarch

++++++ rcm-1.3.3.tar.gz -> rcm-1.3.4.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rcm-1.3.3/Makefile.am new/rcm-1.3.4/Makefile.am
--- old/rcm-1.3.3/Makefile.am   2018-03-30 16:52:34.000000000 +0200
+++ new/rcm-1.3.4/Makefile.am   2020-08-28 19:53:20.000000000 +0200
@@ -19,11 +19,14 @@
        test/lsrc-tags.t \
        test/lsrc-usage.t \
        test/lsrc-undotted.t \
+       test/lsrc-undotted-star.t \
        test/lsrc-host-tags-default.t \
+       test/lsrc-globs.t \
        test/mkrc-alternate-dotfiles-dir.t \
        test/mkrc-copy-file.t \
        test/mkrc-host-file.t \
        test/mkrc-hostname.t \
+       test/mkrc-no-symlinks.t \
        test/mkrc-simple-output.t \
        test/mkrc-spaces.t \
        test/mkrc-symlink-dirs.t \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rcm-1.3.3/Makefile.in new/rcm-1.3.4/Makefile.in
--- old/rcm-1.3.3/Makefile.in   2018-07-13 20:26:02.000000000 +0200
+++ new/rcm-1.3.4/Makefile.in   2020-08-28 22:36:08.000000000 +0200
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
+# Makefile.in generated by automake 1.16.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+# Copyright (C) 1994-2018 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -451,11 +451,14 @@
        test/lsrc-tags.t \
        test/lsrc-usage.t \
        test/lsrc-undotted.t \
+       test/lsrc-undotted-star.t \
        test/lsrc-host-tags-default.t \
+       test/lsrc-globs.t \
        test/mkrc-alternate-dotfiles-dir.t \
        test/mkrc-copy-file.t \
        test/mkrc-host-file.t \
        test/mkrc-hostname.t \
+       test/mkrc-no-symlinks.t \
        test/mkrc-simple-output.t \
        test/mkrc-spaces.t \
        test/mkrc-symlink-dirs.t \
@@ -508,8 +511,8 @@
            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);; \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ 
$(am__maybe_remake_depfiles)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $@ 
$(am__maybe_remake_depfiles);; \
        esac;
 
 $(top_builddir)/config.status: $(top_srcdir)/configure 
$(CONFIG_STATUS_DEPENDENCIES)
@@ -848,7 +851,7 @@
        fi;                                                             \
        $$success || exit 1
 
-check-TESTS:
+check-TESTS: $(dist_check_SCRIPTS) $(dist_check_DATA)
        @list='$(RECHECK_LOGS)';           test -z "$$list" || rm -f $$list
        @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
        @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
@@ -939,6 +942,13 @@
        --log-file $$b.log --trs-file $$b.trs \
        $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) 
-- $(LOG_COMPILE) \
        "$$tst" $(AM_TESTS_FD_REDIRECT)
+test/lsrc-undotted-star.t.log: test/lsrc-undotted-star.t
+       @p='test/lsrc-undotted-star.t'; \
+       b='test/lsrc-undotted-star.t'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) 
-- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
 test/lsrc-host-tags-default.t.log: test/lsrc-host-tags-default.t
        @p='test/lsrc-host-tags-default.t'; \
        b='test/lsrc-host-tags-default.t'; \
@@ -946,6 +956,13 @@
        --log-file $$b.log --trs-file $$b.trs \
        $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) 
-- $(LOG_COMPILE) \
        "$$tst" $(AM_TESTS_FD_REDIRECT)
+test/lsrc-globs.t.log: test/lsrc-globs.t
+       @p='test/lsrc-globs.t'; \
+       b='test/lsrc-globs.t'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) 
-- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
 test/mkrc-alternate-dotfiles-dir.t.log: test/mkrc-alternate-dotfiles-dir.t
        @p='test/mkrc-alternate-dotfiles-dir.t'; \
        b='test/mkrc-alternate-dotfiles-dir.t'; \
@@ -974,6 +991,13 @@
        --log-file $$b.log --trs-file $$b.trs \
        $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) 
-- $(LOG_COMPILE) \
        "$$tst" $(AM_TESTS_FD_REDIRECT)
+test/mkrc-no-symlinks.t.log: test/mkrc-no-symlinks.t
+       @p='test/mkrc-no-symlinks.t'; \
+       b='test/mkrc-no-symlinks.t'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) 
-- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
 test/mkrc-simple-output.t.log: test/mkrc-simple-output.t
        @p='test/mkrc-simple-output.t'; \
        b='test/mkrc-simple-output.t'; \
@@ -1143,7 +1167,10 @@
        $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) 
$(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
        "$$tst" $(AM_TESTS_FD_REDIRECT)
 
-distdir: $(DISTFILES)
+distdir: $(BUILT_SOURCES)
+       $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
        $(am__remove_distdir)
        test -d "$(distdir)" || mkdir "$(distdir)"
        @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
@@ -1183,7 +1210,7 @@
          ! -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
+       tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c 
>$(distdir).tar.gz
        $(am__post_remove_distdir)
 
 dist-bzip2: distdir
@@ -1209,7 +1236,7 @@
        @echo WARNING: "Support for shar distribution archives 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
+       shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz
        $(am__post_remove_distdir)
 
 dist-zip: distdir
@@ -1227,7 +1254,7 @@
 distcheck: dist
        case '$(DIST_ARCHIVES)' in \
        *.tar.gz*) \
-         GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
+         eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\
        *.tar.bz2*) \
          bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
        *.tar.lz*) \
@@ -1237,7 +1264,7 @@
        *.tar.Z*) \
          uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
        *.shar.gz*) \
-         GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
+         eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
        *.zip*) \
          unzip $(distdir).zip ;;\
        esac
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rcm-1.3.3/NEWS.md new/rcm-1.3.4/NEWS.md
--- old/rcm-1.3.3/NEWS.md       2018-07-13 20:26:03.000000000 +0200
+++ new/rcm-1.3.4/NEWS.md       2020-08-28 22:36:10.000000000 +0200
@@ -1,3 +1,12 @@
+rcm (1.3.4) unstable; urgency=low
+
+  * BUGFIX: Globs no longer expand permanently (Edd Salkield).
+  * BUGFIX: Show $ for symlinked dirs in `lsrc -F` (Mathias Michel).
+  * Feature: All symlinks in input are rejected (Mat M).
+  * Packaging improvements (Stephen Groat, Martin Frost, Link Dupont).
+  
+ -- Mike Burns <mbu...@thoughtbot.com>  Fri, 13 Jul 2018 14:12:00 -0500
+
 rcm (1.3.3) unstable; urgency=low
 
   * Feature: Expand ~ in DOTFILES_DIR hooks (Eric Collins).
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rcm-1.3.3/NEWS.md.in new/rcm-1.3.4/NEWS.md.in
--- old/rcm-1.3.3/NEWS.md.in    2018-07-13 20:12:55.000000000 +0200
+++ new/rcm-1.3.4/NEWS.md.in    2020-08-28 22:32:05.000000000 +0200
@@ -1,5 +1,14 @@
 rcm (@PACKAGE_VERSION@) unstable; urgency=low
 
+  * BUGFIX: Globs no longer expand permanently (Edd Salkield).
+  * BUGFIX: Show $ for symlinked dirs in `lsrc -F` (Mathias Michel).
+  * Feature: All symlinks in input are rejected (Mat M).
+  * Packaging improvements (Stephen Groat, Martin Frost, Link Dupont).
+  
+ -- Mike Burns <mbu...@thoughtbot.com>  Fri, 13 Jul 2018 14:12:00 -0500
+
+rcm (1.3.3) unstable; urgency=low
+
   * Feature: Expand ~ in DOTFILES_DIR hooks (Eric Collins).
 
  -- Mike Burns <mbu...@thoughtbot.com>  Fri, 13 Jul 2018 14:12:00 -0500
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rcm-1.3.3/README.md new/rcm-1.3.4/README.md
--- old/rcm-1.3.3/README.md     2018-07-13 20:21:18.000000000 +0200
+++ new/rcm-1.3.4/README.md     2020-08-28 20:12:55.000000000 +0200
@@ -22,16 +22,15 @@
 
   https://aur.archlinux.org/packages/rcm/
 
-Debian-based:
+Debian (see further down for Ubuntu):
 
     wget -qO - https://apt.thoughtbot.com/thoughtbot.gpg.key | sudo apt-key 
add -
     echo "deb https://apt.thoughtbot.com/debian/ stable main" | sudo tee 
/etc/apt/sources.list.d/thoughtbot.list
     sudo apt-get update
     sudo apt-get install rcm
 
-Fedora 22, 23, 24, 25:
+Fedora:
 
-    sudo dnf copr enable seeitcoming/rcm
     sudo dnf install rcm
 
 FreeBSD:
@@ -57,7 +56,6 @@
 
 macOS with Homebrew:
 
-    brew tap thoughtbot/formulae
     brew install rcm
 
 macOS with MacPorts:
@@ -70,8 +68,14 @@
 
 openSUSE/RHEL/CentOS: 
[instructions](http://software.opensuse.org/download.html?project=utilities&package=rcm)
 
-Ubuntu:
+Ubuntu (19.04 or later):
 
+    sudo apt update
+    sudo apt install rcm
+
+Ubuntu (12.04, 14.04, 16.04, 18.04, or 18.10):
+
+    sudo apt-get install software-properties-common
     sudo add-apt-repository ppa:martin-frost/thoughtbot-rcm
     sudo apt-get update
     sudo apt-get install rcm
@@ -87,7 +91,7 @@
     curl -LO https://thoughtbot.github.io/rcm/dist/rcm-1.3.3.tar.gz &&
 
     sha=$(sha256 rcm-1.3.3.tar.gz | cut -f1 -d' ') &&
-    [ "$sha" = 
"2f31b49c241ed6e74578fc71e6b2ba3a87183d311f28e05b9f7cc7c1c55dda64" ] &&
+    [ "$sha" = 
"935524456f2291afa36ef815e68f1ab4a37a4ed6f0f144b7de7fb270733e13af" ] &&
 
     tar -xvf rcm-1.3.3.tar.gz &&
     cd rcm-1.3.3 &&
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rcm-1.3.3/aclocal.m4 new/rcm-1.3.4/aclocal.m4
--- old/rcm-1.3.3/aclocal.m4    2018-07-13 20:21:23.000000000 +0200
+++ new/rcm-1.3.4/aclocal.m4    2020-08-28 22:36:06.000000000 +0200
@@ -1,6 +1,6 @@
-# generated automatically by aclocal 1.15 -*- Autoconf -*-
+# generated automatically by aclocal 1.16.1 -*- Autoconf -*-
 
-# Copyright (C) 1996-2014 Free Software Foundation, Inc.
+# Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -20,7 +20,7 @@
 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-2014 Free Software Foundation, Inc.
+# Copyright (C) 2002-2018 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -32,10 +32,10 @@
 # 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.15'
+[am__api_version='1.16'
 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.15], [],
+m4_if([$1], [1.16.1], [],
       [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
 ])
 
@@ -51,14 +51,14 @@
 # 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.15])dnl
+[AM_AUTOMAKE_VERSION([1.16.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-2014 Free Software Foundation, Inc.
+# Copyright (C) 2001-2018 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -110,7 +110,7 @@
 
 # Do all the work for Automake.                             -*- Autoconf -*-
 
-# Copyright (C) 1996-2014 Free Software Foundation, Inc.
+# Copyright (C) 1996-2018 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -197,8 +197,8 @@
 AC_REQUIRE([AC_PROG_MKDIR_P])dnl
 # For better backward compatibility.  To be removed once Automake 1.9.x
 # dies out for good.  For more background, see:
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
 AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
 # We need awk for the "check" target (and possibly the TAP driver).  The
 # system "awk" is bad on some platforms.
@@ -265,7 +265,7 @@
 Aborting the configuration process, to ensure you take notice of the issue.
 
 You can download and install GNU coreutils to get an 'rm' implementation
-that behaves properly: <http://www.gnu.org/software/coreutils/>.
+that behaves properly: <https://www.gnu.org/software/coreutils/>.
 
 If you want to complete the configuration process using your problematic
 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
@@ -307,7 +307,7 @@
 done
 echo "timestamp for $_am_arg" 
>`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
 
-# Copyright (C) 2001-2014 Free Software Foundation, Inc.
+# Copyright (C) 2001-2018 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -328,7 +328,7 @@
 fi
 AC_SUBST([install_sh])])
 
-# Copyright (C) 2003-2014 Free Software Foundation, Inc.
+# Copyright (C) 2003-2018 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -349,7 +349,7 @@
 
 # Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
 
-# Copyright (C) 1997-2014 Free Software Foundation, Inc.
+# Copyright (C) 1997-2018 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -388,7 +388,7 @@
 
 # Helper functions for option handling.                     -*- Autoconf -*-
 
-# Copyright (C) 2001-2014 Free Software Foundation, Inc.
+# Copyright (C) 2001-2018 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -419,7 +419,7 @@
 
 # Check to make sure that the build environment is sane.    -*- Autoconf -*-
 
-# Copyright (C) 1996-2014 Free Software Foundation, Inc.
+# Copyright (C) 1996-2018 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -500,7 +500,7 @@
 rm -f conftest.file
 ])
 
-# Copyright (C) 2009-2014 Free Software Foundation, Inc.
+# Copyright (C) 2009-2018 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -560,7 +560,7 @@
 _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
 ])
 
-# Copyright (C) 2001-2014 Free Software Foundation, Inc.
+# Copyright (C) 2001-2018 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -588,7 +588,7 @@
 INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
 AC_SUBST([INSTALL_STRIP_PROGRAM])])
 
-# Copyright (C) 2006-2014 Free Software Foundation, Inc.
+# Copyright (C) 2006-2018 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -607,7 +607,7 @@
 
 # Check how to create a tarball.                            -*- Autoconf -*-
 
-# Copyright (C) 2004-2014 Free Software Foundation, Inc.
+# Copyright (C) 2004-2018 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rcm-1.3.3/bin/lsrc new/rcm-1.3.4/bin/lsrc
--- old/rcm-1.3.3/bin/lsrc      2018-07-13 20:26:03.000000000 +0200
+++ new/rcm-1.3.4/bin/lsrc      2020-08-28 22:36:10.000000000 +0200
@@ -144,7 +144,7 @@
   elif is_excluded "$dotfiles_subdir/$file" "$exclude_file_globs" 
"$include_file_globs"; then
     $VERBOSE "skipping excluded file $file"
   elif [ -d "$file" ] && is_excluded "$dotfiles_subdir/$file" 
"$symlink_dirs_file_globs" "$mk_dirs_file_globs"; then
-    show_file "$file" "$dest_dir" "$dotfiles_dir" "$dotfiles_subdir" $dotted
+    show_file "$file" "$dest_dir" "$dotfiles_dir" "$dotfiles_subdir" $dotted 
"$symlink_dirs_file_globs"
   elif [ -d "$file" ]; then
     show_dir "$file" "$dest_dir" "$dotfiles_dir" "$dotfiles_subdir" $dotted 
"$exclude_file_globs" "$include_file_globs" "$symlink_dirs_file_globs" 
"$mk_dirs_file_globs"
   else
@@ -166,7 +166,7 @@
   $DEBUG "dotfiles_dir_excludes $dotfiles_dir"
   $DEBUG "  with excludes: $excludes"
 
-  for exclude in $excludes; do
+  for exclude in "$excludes"; do
     if echo "$exclude" | grep ':' >/dev/null; then
       dotfiles_dir_pat="$(echo "$exclude" | sed 's/:.*//')"
       file_glob="$(echo "$exclude" | sed 's/.*://')"
@@ -259,17 +259,17 @@
     case "$opt" in
       F) show_sigils=1;;
       h) show_help ;;
-      I) includes="$includes $OPTARG";;
-      t) arg_tags="$arg_tags $OPTARG";;
+      I) includes="$(append_variable "$includes" "$OPTARG")" ;;
+      t) arg_tags="$(append_variable "$arg_tags" "$OPTARG")" ;;
       v) verbosity=$(($verbosity + 1));;
       q) verbosity=$(($verbosity - 1));;
-      d) dotfiles_dirs="$dotfiles_dirs $OPTARG";;
+      d) dotfiles_dirs="$(append_variable "$dotfiles_dirs" "$OPTARG")" ;;
       V) version=1;;
-      x) excludes="$excludes $OPTARG";;
-      S) symlink_dirs="$symlink_dirs $OPTARG";;
-      s) never_symlink_dirs="$never_symlink_dirs $OPTARG";;
-      U) undotted="$undotted $OPTARG";;
-      u) never_undotted="$never_undotted $OPTARG";;
+      x) excludes="$(append_variable "$excludes" "$OPTARG")" ;;
+      S) symlink_dirs="$(append_variable "$symlink_dirs" "$OPTARG")" ;;
+      s) never_symlink_dirs="$(append_variable "$never_symlink_dirs" 
"$OPTARG")" ;;
+      U) undotted="$(append_variable "$undotted" "$OPTARG")" ;;
+      u) never_undotted="$(append_variable "$never_undotted" "$OPTARG")" ;;
       B) hostname="$OPTARG";;
       ?) show_help 64 ;;
     esac
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rcm-1.3.3/bin/lsrc.in new/rcm-1.3.4/bin/lsrc.in
--- old/rcm-1.3.3/bin/lsrc.in   2018-07-06 16:20:52.000000000 +0200
+++ new/rcm-1.3.4/bin/lsrc.in   2020-08-28 20:11:52.000000000 +0200
@@ -144,7 +144,7 @@
   elif is_excluded "$dotfiles_subdir/$file" "$exclude_file_globs" 
"$include_file_globs"; then
     $VERBOSE "skipping excluded file $file"
   elif [ -d "$file" ] && is_excluded "$dotfiles_subdir/$file" 
"$symlink_dirs_file_globs" "$mk_dirs_file_globs"; then
-    show_file "$file" "$dest_dir" "$dotfiles_dir" "$dotfiles_subdir" $dotted
+    show_file "$file" "$dest_dir" "$dotfiles_dir" "$dotfiles_subdir" $dotted 
"$symlink_dirs_file_globs"
   elif [ -d "$file" ]; then
     show_dir "$file" "$dest_dir" "$dotfiles_dir" "$dotfiles_subdir" $dotted 
"$exclude_file_globs" "$include_file_globs" "$symlink_dirs_file_globs" 
"$mk_dirs_file_globs"
   else
@@ -166,7 +166,7 @@
   $DEBUG "dotfiles_dir_excludes $dotfiles_dir"
   $DEBUG "  with excludes: $excludes"
 
-  for exclude in $excludes; do
+  for exclude in "$excludes"; do
     if echo "$exclude" | grep ':' >/dev/null; then
       dotfiles_dir_pat="$(echo "$exclude" | sed 's/:.*//')"
       file_glob="$(echo "$exclude" | sed 's/.*://')"
@@ -259,17 +259,17 @@
     case "$opt" in
       F) show_sigils=1;;
       h) show_help ;;
-      I) includes="$includes $OPTARG";;
-      t) arg_tags="$arg_tags $OPTARG";;
+      I) includes="$(append_variable "$includes" "$OPTARG")" ;;
+      t) arg_tags="$(append_variable "$arg_tags" "$OPTARG")" ;;
       v) verbosity=$(($verbosity + 1));;
       q) verbosity=$(($verbosity - 1));;
-      d) dotfiles_dirs="$dotfiles_dirs $OPTARG";;
+      d) dotfiles_dirs="$(append_variable "$dotfiles_dirs" "$OPTARG")" ;;
       V) version=1;;
-      x) excludes="$excludes $OPTARG";;
-      S) symlink_dirs="$symlink_dirs $OPTARG";;
-      s) never_symlink_dirs="$never_symlink_dirs $OPTARG";;
-      U) undotted="$undotted $OPTARG";;
-      u) never_undotted="$never_undotted $OPTARG";;
+      x) excludes="$(append_variable "$excludes" "$OPTARG")" ;;
+      S) symlink_dirs="$(append_variable "$symlink_dirs" "$OPTARG")" ;;
+      s) never_symlink_dirs="$(append_variable "$never_symlink_dirs" 
"$OPTARG")" ;;
+      U) undotted="$(append_variable "$undotted" "$OPTARG")" ;;
+      u) never_undotted="$(append_variable "$never_undotted" "$OPTARG")" ;;
       B) hostname="$OPTARG";;
       ?) show_help 64 ;;
     esac
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rcm-1.3.3/bin/mkrc new/rcm-1.3.4/bin/mkrc
--- old/rcm-1.3.3/bin/mkrc      2018-07-13 20:26:03.000000000 +0200
+++ new/rcm-1.3.4/bin/mkrc      2020-08-28 22:36:10.000000000 +0200
@@ -20,6 +20,28 @@
   fi
 }
 
+exit_if_dangerous() {
+  local file="$1"
+
+  if [ -L "$file" ]; then
+      $ERROR 1 "'$file' is a symlink. Cannot process file."
+  elif is_nested "$file"; then
+    # Remove DEST_DIR in case $HOME is under a symlink
+    saved_ifs="$IFS"
+    IFS=/
+    set -- $(dirname "$file" | sed "s|$DEST_DIR/||")
+    IFS="$saved_ifs"
+
+    built_dir="$DEST_DIR"
+    for dir in $@; do
+      built_dir="$built_dir/$dir"
+      if [ -L "$built_dir" ]; then
+        $ERROR 1 "'$file' path contains a symlink ($dir). Cannot process file."
+      fi
+    done
+  fi
+}
+
 show_help() {
   local exit_code=${1:-0}
 
@@ -64,7 +86,7 @@
     B)
       in_host=1
       hostname="$OPTARG"
-      install_args="-B $hostname"
+      install_args=$(append_variable "$install_args" "-B $hostname")
       ;;
     ?) show_help 64 ;;
   esac
@@ -84,6 +106,7 @@
 
 files=""
 for i; do
+  exit_if_dangerous "$i" 
   files="$(printf "$files\n$i")"
 done
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rcm-1.3.3/bin/mkrc.in new/rcm-1.3.4/bin/mkrc.in
--- old/rcm-1.3.3/bin/mkrc.in   2017-03-31 21:07:41.000000000 +0200
+++ new/rcm-1.3.4/bin/mkrc.in   2020-08-28 19:53:20.000000000 +0200
@@ -20,6 +20,28 @@
   fi
 }
 
+exit_if_dangerous() {
+  local file="$1"
+
+  if [ -L "$file" ]; then
+      $ERROR 1 "'$file' is a symlink. Cannot process file."
+  elif is_nested "$file"; then
+    # Remove DEST_DIR in case $HOME is under a symlink
+    saved_ifs="$IFS"
+    IFS=/
+    set -- $(dirname "$file" | sed "s|$DEST_DIR/||")
+    IFS="$saved_ifs"
+
+    built_dir="$DEST_DIR"
+    for dir in $@; do
+      built_dir="$built_dir/$dir"
+      if [ -L "$built_dir" ]; then
+        $ERROR 1 "'$file' path contains a symlink ($dir). Cannot process file."
+      fi
+    done
+  fi
+}
+
 show_help() {
   local exit_code=${1:-0}
 
@@ -64,7 +86,7 @@
     B)
       in_host=1
       hostname="$OPTARG"
-      install_args="-B $hostname"
+      install_args=$(append_variable "$install_args" "-B $hostname")
       ;;
     ?) show_help 64 ;;
   esac
@@ -84,6 +106,7 @@
 
 files=""
 for i; do
+  exit_if_dangerous "$i" 
   files="$(printf "$files\n$i")"
 done
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rcm-1.3.3/bin/rcdn new/rcm-1.3.4/bin/rcdn
--- old/rcm-1.3.3/bin/rcdn      2018-07-13 20:26:03.000000000 +0200
+++ new/rcm-1.3.4/bin/rcdn      2020-08-28 22:36:10.000000000 +0200
@@ -48,19 +48,19 @@
     case "$opt" in
       h) show_help ;;
       B) hostname="$OPTARG" ;;
-      I) includes="$includes $OPTARG";;
+      I) includes="$(append_variable "$includes" "$OPTARG")" ;;
       k) run_hooks=1 ;;
       K) run_hooks=0 ;;
-      t) arg_tags="$arg_tags $OPTARG" ;;
-      S) symlink_dirs="$symlink_dirs $OPTARG";;
-      s) never_symlink_dirs="$never_symlink_dirs $OPTARG";;
-      U) undotted="$undotted $OPTARG";;
-      u) never_undotted="$never_undotted $OPTARG";;
+      t) arg_tags="$(append_variable "$arg_tags" "$OPTARG")" ;;
+      S) symlink_dirs="$(append_variable "$symlink_dirs" "$OPTARG")" ;;
+      s) never_symlink_dirs="$(append_variable "$never_symlink_dirs" 
"$OPTARG")" ;;
+      U) undotted="$(append_variable "$undotted" "$OPTARG")" ;;
+      u) never_undotted="$(append_variable "$never_undotted" "$OPTARG")";;
       v) verbosity=$(($verbosity + 1));;
       q) verbosity=$(($verbosity - 1));;
-      d) dotfiles_dirs="$dotfiles_dirs $OPTARG" ;;
+      d) dotfiles_dirs="$(append_variable "$dotfiles_dirs" "$OPTARG")" ;;
       V) version=1 ;;
-      x) excludes="$excludes $OPTARG" ;;
+      x) excludes="$(append_variable "$excludes" "$OPTARG")" ;;
       ?) show_help 64 ;;
     esac
   done
@@ -72,34 +72,34 @@
   tags="${arg_tags:-$TAGS}"
   dotfiles_dirs="${dotfiles_dirs:-$DOTFILES_DIRS}"
   files="$@"
-  RUN_HOOKS=$run_hooks
+  RUN_HOOKS="$run_hooks"
 
-  for tag in $tags; do
-    LS_ARGS="$LS_ARGS -t $tag"
+  for tag in "$tags"; do
+    LS_ARGS="$LS_ARGS -t \"$tag\""
   done
-  for dotfiles_dir in $dotfiles_dirs; do
-    LS_ARGS="$LS_ARGS -d $dotfiles_dir"
+  for dotfiles_dir in "$dotfiles_dirs"; do
+    LS_ARGS="$LS_ARGS -d \"$dotfiles_dir\""
   done
-  for exclude in $excludes; do
-    LS_ARGS="$LS_ARGS -x $exclude"
+  for exclude in "$excludes"; do
+    LS_ARGS="$LS_ARGS -x \"$exclude\""
   done
-  for include in $includes; do
-    LS_ARGS="$LS_ARGS -I $include"
+  for include in "$includes"; do
+    LS_ARGS="$LS_ARGS -I \"$include\""
   done
-  for symlink_dir in $symlink_dirs; do
-    LS_ARGS="$LS_ARGS -S $symlink_dir"
+  for symlink_dir in "$symlink_dirs"; do
+    LS_ARGS="$LS_ARGS -S \"$symlink_dir\""
   done
-  for never_symlink_dir in $symlink_dirs; do
-    LS_ARGS="$LS_ARGS -s $never_symlink_dir"
+  for never_symlink_dir in "$symlink_dirs"; do
+    LS_ARGS="$LS_ARGS -s \"$never_symlink_dir\""
   done
-  for undot in $undotted; do
-    LS_ARGS="$LS_ARGS -U $undot"
+  for undot in "$undotted"; do
+    LS_ARGS="$LS_ARGS -U \"$undot\""
   done
-  for never_undot in $never_undotted; do
-    LS_ARGS="$LS_ARGS -u $never_undot"
+  for never_undot in "$never_undotted"; do
+    LS_ARGS="$LS_ARGS -u \"$never_undot\""
   done
 
-  LS_ARGS="$LS_ARGS -B $hostname $files"
+  LS_ARGS="$LS_ARGS -B \"$hostname\" $files"
 
   $DEBUG "LS_ARGS: $LS_ARGS"
 }
@@ -111,7 +111,7 @@
 
 run_hooks pre down
 
-dests_and_srcs="$(lsrc $LS_ARGS)"
+dests_and_srcs="$(eval "lsrc $LS_ARGS")"
 
 saved_ifs="$IFS"
 IFS='
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rcm-1.3.3/bin/rcdn.in new/rcm-1.3.4/bin/rcdn.in
--- old/rcm-1.3.3/bin/rcdn.in   2017-03-31 21:07:41.000000000 +0200
+++ new/rcm-1.3.4/bin/rcdn.in   2020-08-28 19:53:20.000000000 +0200
@@ -48,19 +48,19 @@
     case "$opt" in
       h) show_help ;;
       B) hostname="$OPTARG" ;;
-      I) includes="$includes $OPTARG";;
+      I) includes="$(append_variable "$includes" "$OPTARG")" ;;
       k) run_hooks=1 ;;
       K) run_hooks=0 ;;
-      t) arg_tags="$arg_tags $OPTARG" ;;
-      S) symlink_dirs="$symlink_dirs $OPTARG";;
-      s) never_symlink_dirs="$never_symlink_dirs $OPTARG";;
-      U) undotted="$undotted $OPTARG";;
-      u) never_undotted="$never_undotted $OPTARG";;
+      t) arg_tags="$(append_variable "$arg_tags" "$OPTARG")" ;;
+      S) symlink_dirs="$(append_variable "$symlink_dirs" "$OPTARG")" ;;
+      s) never_symlink_dirs="$(append_variable "$never_symlink_dirs" 
"$OPTARG")" ;;
+      U) undotted="$(append_variable "$undotted" "$OPTARG")" ;;
+      u) never_undotted="$(append_variable "$never_undotted" "$OPTARG")";;
       v) verbosity=$(($verbosity + 1));;
       q) verbosity=$(($verbosity - 1));;
-      d) dotfiles_dirs="$dotfiles_dirs $OPTARG" ;;
+      d) dotfiles_dirs="$(append_variable "$dotfiles_dirs" "$OPTARG")" ;;
       V) version=1 ;;
-      x) excludes="$excludes $OPTARG" ;;
+      x) excludes="$(append_variable "$excludes" "$OPTARG")" ;;
       ?) show_help 64 ;;
     esac
   done
@@ -72,34 +72,34 @@
   tags="${arg_tags:-$TAGS}"
   dotfiles_dirs="${dotfiles_dirs:-$DOTFILES_DIRS}"
   files="$@"
-  RUN_HOOKS=$run_hooks
+  RUN_HOOKS="$run_hooks"
 
-  for tag in $tags; do
-    LS_ARGS="$LS_ARGS -t $tag"
+  for tag in "$tags"; do
+    LS_ARGS="$LS_ARGS -t \"$tag\""
   done
-  for dotfiles_dir in $dotfiles_dirs; do
-    LS_ARGS="$LS_ARGS -d $dotfiles_dir"
+  for dotfiles_dir in "$dotfiles_dirs"; do
+    LS_ARGS="$LS_ARGS -d \"$dotfiles_dir\""
   done
-  for exclude in $excludes; do
-    LS_ARGS="$LS_ARGS -x $exclude"
+  for exclude in "$excludes"; do
+    LS_ARGS="$LS_ARGS -x \"$exclude\""
   done
-  for include in $includes; do
-    LS_ARGS="$LS_ARGS -I $include"
+  for include in "$includes"; do
+    LS_ARGS="$LS_ARGS -I \"$include\""
   done
-  for symlink_dir in $symlink_dirs; do
-    LS_ARGS="$LS_ARGS -S $symlink_dir"
+  for symlink_dir in "$symlink_dirs"; do
+    LS_ARGS="$LS_ARGS -S \"$symlink_dir\""
   done
-  for never_symlink_dir in $symlink_dirs; do
-    LS_ARGS="$LS_ARGS -s $never_symlink_dir"
+  for never_symlink_dir in "$symlink_dirs"; do
+    LS_ARGS="$LS_ARGS -s \"$never_symlink_dir\""
   done
-  for undot in $undotted; do
-    LS_ARGS="$LS_ARGS -U $undot"
+  for undot in "$undotted"; do
+    LS_ARGS="$LS_ARGS -U \"$undot\""
   done
-  for never_undot in $never_undotted; do
-    LS_ARGS="$LS_ARGS -u $never_undot"
+  for never_undot in "$never_undotted"; do
+    LS_ARGS="$LS_ARGS -u \"$never_undot\""
   done
 
-  LS_ARGS="$LS_ARGS -B $hostname $files"
+  LS_ARGS="$LS_ARGS -B \"$hostname\" $files"
 
   $DEBUG "LS_ARGS: $LS_ARGS"
 }
@@ -111,7 +111,7 @@
 
 run_hooks pre down
 
-dests_and_srcs="$(lsrc $LS_ARGS)"
+dests_and_srcs="$(eval "lsrc $LS_ARGS")"
 
 saved_ifs="$IFS"
 IFS='
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rcm-1.3.3/bin/rcup new/rcm-1.3.4/bin/rcup
--- old/rcm-1.3.3/bin/rcup      2018-07-13 20:26:03.000000000 +0200
+++ new/rcm-1.3.4/bin/rcup      2020-08-28 22:36:10.000000000 +0200
@@ -121,10 +121,6 @@
   link_file "$src" "$dest" "$sigil"
 }
 
-is_nested() {
-  echo "$1" | sed "s:$DEST_DIR/::" | grep '/' >/dev/null
-}
-
 is_identical() {
   diff -c "$1" "$2" > /dev/null 2>&1
 }
@@ -217,23 +213,23 @@
     case "$opt" in
       B) hostname="$OPTARG" ;;
       C) always_copy=1 ;;
-      d) dotfiles_dirs="$dotfiles_dirs $OPTARG" ;;
+      d) dotfiles_dirs="$(append_variable "$dotfiles_dirs" "$OPTARG")" ;;
       f) REPLACE_ALL=1 ;;
       g) generate=1 ;;
       h) show_help ;;
       i) REPLACE_ALL=0 ;;
-      I) includes="$includes $OPTARG" ;;
+      I) includes="$(append_variable "$includes" "$OPTARG")" ;;
       k) run_hooks=1 ;;
       K) run_hooks=0 ;;
       q) verbosity=$(($verbosity - 1)) ;;
-      t) arg_tags="$arg_tags $OPTARG" ;;
-      S) symlink_dirs="$symlink_dirs $OPTARG";;
-      s) never_symlink_dirs="$never_symlink_dirs $OPTARG";;
-      U) undotted="$undotted $OPTARG";;
-      u) never_undotted="$never_undotted $OPTARG";;
+      t) arg_tags="$(append_variable "$arg_tags" "$OPTARG")" ;;
+      S) symlink_dirs="$(append_variable "$symlink_dirs" "$OPTARG")" ;;
+      s) never_symlink_dirs="$(append_variable "$never_symlink_dirs" 
"$OPTARG")";;
+      U) undotted="$(append_variable "$undotted" "$OPTARG")" ;;
+      u) never_undotted="$(append_variable "$never_undotted" "$OPTARG")" ;;
       v) verbosity=$(($verbosity + 1)) ;;
       V) version=1 ;;
-      x) excludes="$excludes $OPTARG" ;;
+      x) excludes="$(append_variable "$excludes" "$OPTARG")" ;;
       ?) show_help 64 ;;
     esac
   done
@@ -265,31 +261,31 @@
   done
 
   for tag in $tags; do
-    LS_ARGS="$LS_ARGS -t $tag"
+    LS_ARGS="$LS_ARGS -t \"$tag\""
   done
-  for dotfiles_dir in $DOTFILES_DIRS; do
-    LS_ARGS="$LS_ARGS -d $dotfiles_dir"
+  for dotfiles_dir in "$DOTFILES_DIRS"; do
+    LS_ARGS="$LS_ARGS -d \"$dotfiles_dir\""
   done
-  for exclude in $excludes; do
-    LS_ARGS="$LS_ARGS -x $exclude"
+  for exclude in "$excludes"; do
+    LS_ARGS="$LS_ARGS -x \"$exclude\""
   done
-  for include in $includes; do
-    LS_ARGS="$LS_ARGS -I $include"
+  for include in "$includes"; do
+    LS_ARGS="$LS_ARGS -I \"$include\""
   done
-  for symlink_dir in $symlink_dirs; do
-    LS_ARGS="$LS_ARGS -S $symlink_dir"
+  for symlink_dir in "$symlink_dirs"; do
+    LS_ARGS="$LS_ARGS -S \"$symlink_dir\""
   done
-  for never_symlink_dir in $never_symlink_dirs; do
-    LS_ARGS="$LS_ARGS -s $never_symlink_dir"
+  for never_symlink_dir in "$never_symlink_dirs"; do
+    LS_ARGS="$LS_ARGS -s \"$never_symlink_dir\""
   done
-  for undot in $undotted; do
-    LS_ARGS="$LS_ARGS -U $undot"
+  for undot in "$undotted"; do
+    LS_ARGS="$LS_ARGS -U \"$undot\""
   done
-  for never_undot in $never_undotted; do
-    LS_ARGS="$LS_ARGS -u $never_undot"
+  for never_undot in "$never_undotted"; do
+    LS_ARGS="$LS_ARGS -u \"$never_undot\""
   done
 
-  LS_ARGS="$LS_ARGS -B $hostname $files"
+  LS_ARGS="$LS_ARGS -B \"$hostname\" $files"
 
   $DEBUG "LS_ARGS: $LS_ARGS"
 }
@@ -301,7 +297,7 @@
 
 run_hooks pre up
 
-dests_and_srcs="$(lsrc $LS_ARGS)"
+dests_and_srcs="$(eval "lsrc $LS_ARGS")"
 
 saved_ifs="$IFS"
 IFS='
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rcm-1.3.3/bin/rcup.in new/rcm-1.3.4/bin/rcup.in
--- old/rcm-1.3.3/bin/rcup.in   2017-03-31 21:07:41.000000000 +0200
+++ new/rcm-1.3.4/bin/rcup.in   2020-08-28 19:53:20.000000000 +0200
@@ -121,10 +121,6 @@
   link_file "$src" "$dest" "$sigil"
 }
 
-is_nested() {
-  echo "$1" | sed "s:$DEST_DIR/::" | grep '/' >/dev/null
-}
-
 is_identical() {
   diff -c "$1" "$2" > /dev/null 2>&1
 }
@@ -217,23 +213,23 @@
     case "$opt" in
       B) hostname="$OPTARG" ;;
       C) always_copy=1 ;;
-      d) dotfiles_dirs="$dotfiles_dirs $OPTARG" ;;
+      d) dotfiles_dirs="$(append_variable "$dotfiles_dirs" "$OPTARG")" ;;
       f) REPLACE_ALL=1 ;;
       g) generate=1 ;;
       h) show_help ;;
       i) REPLACE_ALL=0 ;;
-      I) includes="$includes $OPTARG" ;;
+      I) includes="$(append_variable "$includes" "$OPTARG")" ;;
       k) run_hooks=1 ;;
       K) run_hooks=0 ;;
       q) verbosity=$(($verbosity - 1)) ;;
-      t) arg_tags="$arg_tags $OPTARG" ;;
-      S) symlink_dirs="$symlink_dirs $OPTARG";;
-      s) never_symlink_dirs="$never_symlink_dirs $OPTARG";;
-      U) undotted="$undotted $OPTARG";;
-      u) never_undotted="$never_undotted $OPTARG";;
+      t) arg_tags="$(append_variable "$arg_tags" "$OPTARG")" ;;
+      S) symlink_dirs="$(append_variable "$symlink_dirs" "$OPTARG")" ;;
+      s) never_symlink_dirs="$(append_variable "$never_symlink_dirs" 
"$OPTARG")";;
+      U) undotted="$(append_variable "$undotted" "$OPTARG")" ;;
+      u) never_undotted="$(append_variable "$never_undotted" "$OPTARG")" ;;
       v) verbosity=$(($verbosity + 1)) ;;
       V) version=1 ;;
-      x) excludes="$excludes $OPTARG" ;;
+      x) excludes="$(append_variable "$excludes" "$OPTARG")" ;;
       ?) show_help 64 ;;
     esac
   done
@@ -265,31 +261,31 @@
   done
 
   for tag in $tags; do
-    LS_ARGS="$LS_ARGS -t $tag"
+    LS_ARGS="$LS_ARGS -t \"$tag\""
   done
-  for dotfiles_dir in $DOTFILES_DIRS; do
-    LS_ARGS="$LS_ARGS -d $dotfiles_dir"
+  for dotfiles_dir in "$DOTFILES_DIRS"; do
+    LS_ARGS="$LS_ARGS -d \"$dotfiles_dir\""
   done
-  for exclude in $excludes; do
-    LS_ARGS="$LS_ARGS -x $exclude"
+  for exclude in "$excludes"; do
+    LS_ARGS="$LS_ARGS -x \"$exclude\""
   done
-  for include in $includes; do
-    LS_ARGS="$LS_ARGS -I $include"
+  for include in "$includes"; do
+    LS_ARGS="$LS_ARGS -I \"$include\""
   done
-  for symlink_dir in $symlink_dirs; do
-    LS_ARGS="$LS_ARGS -S $symlink_dir"
+  for symlink_dir in "$symlink_dirs"; do
+    LS_ARGS="$LS_ARGS -S \"$symlink_dir\""
   done
-  for never_symlink_dir in $never_symlink_dirs; do
-    LS_ARGS="$LS_ARGS -s $never_symlink_dir"
+  for never_symlink_dir in "$never_symlink_dirs"; do
+    LS_ARGS="$LS_ARGS -s \"$never_symlink_dir\""
   done
-  for undot in $undotted; do
-    LS_ARGS="$LS_ARGS -U $undot"
+  for undot in "$undotted"; do
+    LS_ARGS="$LS_ARGS -U \"$undot\""
   done
-  for never_undot in $never_undotted; do
-    LS_ARGS="$LS_ARGS -u $never_undot"
+  for never_undot in "$never_undotted"; do
+    LS_ARGS="$LS_ARGS -u \"$never_undot\""
   done
 
-  LS_ARGS="$LS_ARGS -B $hostname $files"
+  LS_ARGS="$LS_ARGS -B \"$hostname\" $files"
 
   $DEBUG "LS_ARGS: $LS_ARGS"
 }
@@ -301,7 +297,7 @@
 
 run_hooks pre up
 
-dests_and_srcs="$(lsrc $LS_ARGS)"
+dests_and_srcs="$(eval "lsrc $LS_ARGS")"
 
 saved_ifs="$IFS"
 IFS='
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rcm-1.3.3/configure new/rcm-1.3.4/configure
--- old/rcm-1.3.3/configure     2018-07-13 20:21:23.000000000 +0200
+++ new/rcm-1.3.4/configure     2020-08-28 22:36:06.000000000 +0200
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for rcm 1.3.3.
+# Generated by GNU Autoconf 2.69 for rcm 1.3.4.
 #
 # Report bugs to <mbu...@thoughtbot.com>.
 #
@@ -579,8 +579,8 @@
 # Identity of this package.
 PACKAGE_NAME='rcm'
 PACKAGE_TARNAME='rcm'
-PACKAGE_VERSION='1.3.3'
-PACKAGE_STRING='rcm 1.3.3'
+PACKAGE_VERSION='1.3.4'
+PACKAGE_STRING='rcm 1.3.4'
 PACKAGE_BUGREPORT='mbu...@thoughtbot.com'
 PACKAGE_URL=''
 
@@ -1211,7 +1211,7 @@
   # 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 rcm 1.3.3 to adapt to many kinds of systems.
+\`configure' configures rcm 1.3.4 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1278,7 +1278,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of rcm 1.3.3:";;
+     short | recursive ) echo "Configuration of rcm 1.3.4:";;
    esac
   cat <<\_ACEOF
 
@@ -1352,7 +1352,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-rcm configure 1.3.3
+rcm configure 1.3.4
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1369,7 +1369,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by rcm $as_me 1.3.3, which was
+It was created by rcm $as_me 1.3.4, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -1717,7 +1717,7 @@
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
-am__api_version='1.15'
+am__api_version='1.16'
 
 ac_aux_dir=
 for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
@@ -2232,7 +2232,7 @@
 
 # Define the identity of the package.
  PACKAGE='rcm'
- VERSION='1.3.3'
+ VERSION='1.3.4'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -2262,8 +2262,8 @@
 
 # For better backward compatibility.  To be removed once Automake 1.9.x
 # dies out for good.  For more background, see:
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
 mkdir_p='$(MKDIR_P)'
 
 # We need awk for the "check" target (and possibly the TAP driver).  The
@@ -2314,7 +2314,7 @@
 Aborting the configuration process, to ensure you take notice of the issue.
 
 You can download and install GNU coreutils to get an 'rm' implementation
-that behaves properly: <http://www.gnu.org/software/coreutils/>.
+that behaves properly: <https://www.gnu.org/software/coreutils/>.
 
 If you want to complete the configuration process using your problematic
 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
@@ -2932,7 +2932,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by rcm $as_me 1.3.3, which was
+This file was extended by rcm $as_me 1.3.4, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -2985,7 +2985,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-rcm config.status 1.3.3
+rcm config.status 1.3.4
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rcm-1.3.3/configure.ac new/rcm-1.3.4/configure.ac
--- old/rcm-1.3.3/configure.ac  2018-07-13 20:21:01.000000000 +0200
+++ new/rcm-1.3.4/configure.ac  2020-08-28 22:35:53.000000000 +0200
@@ -1,5 +1,5 @@
 AC_PREREQ([2.69])
-AC_INIT(rcm, 1.3.3, mbu...@thoughtbot.com)
+AC_INIT(rcm, 1.3.4, mbu...@thoughtbot.com)
 AM_INIT_AUTOMAKE([subdir-objects])
 
 # /bin/sh on Solaris is not POSIX, so try to find another one.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rcm-1.3.3/maint/release.in 
new/rcm-1.3.4/maint/release.in
--- old/rcm-1.3.3/maint/release.in      2017-03-31 21:07:41.000000000 +0200
+++ new/rcm-1.3.4/maint/release.in      2020-08-28 22:34:00.000000000 +0200
@@ -38,26 +38,6 @@
   rm -rf $DIST_ARCHIVES
 }
 
-# Homebrew
-release_build_homebrew() {
-  ([ -d homebrew-formulae ] || git clone 
g...@github.com:thoughtbot/homebrew-formulae.git homebrew-formulae) && \
-    generate_dist_sha && \
-    edit_package homebrew/$PACKAGE.rb.in > 
homebrew-formulae/Formula/$PACKAGE.rb && \
-    cd homebrew-formulae && \
-    git add Formula/$PACKAGE.rb && \
-    git commit -m "$PACKAGE: Release version $PACKAGE_VERSION"
-}
-
-release_push_homebrew() {
-  cd homebrew-formulae && \
-    git push
-}
-
-release_clean_homebrew() {
-  rm -rf homebrew-formulae
-  rm -rf $DIST_ARCHIVES
-}
-
 # Arch
 release_build_arch() {
   ([ -d gh-pages ] || git clone --branch gh-pages . gh-pages) && \
@@ -156,7 +136,7 @@
 # Main:
 
 if [ $# -lt 3 ]; then
-  echo "Usage: release (build|push|clean) 
(tarball|homebrew|arch|deb|tag|man_html) DIST_ARCHIVES" >&2
+  echo "Usage: release (build|push|clean) (tarball|arch|deb|tag|man_html) 
DIST_ARCHIVES" >&2
   exit 64
 fi
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rcm-1.3.3/man/lsrc.1 new/rcm-1.3.4/man/lsrc.1
--- old/rcm-1.3.3/man/lsrc.1    2017-10-27 20:58:51.000000000 +0200
+++ new/rcm-1.3.4/man/lsrc.1    2020-08-28 19:53:20.000000000 +0200
@@ -190,10 +190,3 @@
 program to determine the unique identifier for the host. This program is
 not specified by POSIX and can vary by system. On macOS the hostname is
 unpredictable, and can even change as part of the DHCP handshake.
-.Pp
-There are a few bugs around shell globs. Anything involving an exclude
-pattern is unpredictable, so use
-.Fl v
-when dealing with patterns. Specifically, globs may expand at any
-time and remain expanded for the duration of the run, which means they
-cannot be applied more than once.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rcm-1.3.3/man/rcm.7 new/rcm-1.3.4/man/rcm.7
--- old/rcm-1.3.3/man/rcm.7     2018-07-13 20:26:02.000000000 +0200
+++ new/rcm-1.3.4/man/rcm.7     2020-08-28 22:36:08.000000000 +0200
@@ -329,6 +329,7 @@
 .An "Daniel Watson" Aq Mt dwat...@thig.com
 .An "David Alexander" Aq Mt davidpaulalexan...@gmail.com
 .An "Devraj Mehta" Aq Mt dev...@gmail.com
+.An "Edd Salkield" Aq Mt e...@salkield.uk
 .An "Eric Collins" Aq Mt e...@tabfugni.cc
 .An "Florian Tham" Aq Mt fgt...@gmail.com
 .An "George Brocklehurst" Aq Mt geo...@thoughtbot.com
@@ -341,6 +342,7 @@
 .An "Jordan Eldredge" Aq Mt jordaneldre...@gmail.com
 .An "Leonardo Brondani Schenkel" Aq Mt leona...@schenkel.net
 .An "Martin Frost" Aq Mt fr...@ceri.se
+.An "Mat M" Aq Mt m...@gmx.fr
 .An "Matthew Horan" Aq Mt m...@matthoran.com
 .An "Melissa Xie" Aq Mt meli...@thoughtbot.com
 .An "Michael Reed" Aq Mt supertron...@gmail.com
@@ -353,6 +355,7 @@
 .An "Rebecca Meritz" Aq Mt rebe...@meritz.com
 .An "Roberto Pedroso" Aq Mt robe...@rpedroso.com
 .An "Scott Stevenson" Aq Mt sc...@stevenson.io
+.An "Stephen" Aq Mt stephengr...@users.noreply.github.com
 .An "Teo Ljungberg" Aq Mt t...@teoljungberg.com
 .An "Tyson Gach" Aq Mt ty...@tysongach.com
 .An "Vlad GURDIGA" Aq Mt gurd...@gmail.com
@@ -360,4 +363,5 @@
 .An "Zach Latta" Aq Mt z...@zachlatta.com
 .An "kajisha" Aq Mt kaji...@gmail.com
 .An "maxice8" Aq Mt thinkabit.u...@gmail.com
+.An "subpop" Aq Mt sub...@users.noreply.github.com
 .An "wplatter-cb" Aq Mt 39812934+wplatter...@users.noreply.github.com
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rcm-1.3.3/share/rcm.sh new/rcm-1.3.4/share/rcm.sh
--- old/rcm-1.3.3/share/rcm.sh  2018-07-13 20:26:03.000000000 +0200
+++ new/rcm-1.3.4/share/rcm.sh  2020-08-28 22:36:10.000000000 +0200
@@ -1,4 +1,4 @@
-VERSION="1.3.3"
+VERSION="1.3.4"
 
 #set -x
 
@@ -58,6 +58,10 @@
   echo "$1" | grep -v '^/' >/dev/null
 }
 
+is_nested() {
+  echo "$1" | sed "s|$DEST_DIR/||" | grep '/' >/dev/null
+}
+
 version() {
   cat << EOV
 $1 (rcm) $VERSION
@@ -167,6 +171,14 @@
   echo "$file" | tr "$DELIMITER" " "
 }
 
+append_variable() {
+  if [ -z "$1" ]; then
+    echo "$2"
+  else
+    echo "$1 $2"
+  fi
+}
+
 : ${RCRC:=$HOME/.rcrc}
 
 if [ -r "$RCRC" ]; then
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rcm-1.3.3/share/rcm.sh.in 
new/rcm-1.3.4/share/rcm.sh.in
--- old/rcm-1.3.3/share/rcm.sh.in       2018-07-13 20:12:55.000000000 +0200
+++ new/rcm-1.3.4/share/rcm.sh.in       2020-08-28 19:53:20.000000000 +0200
@@ -58,6 +58,10 @@
   echo "$1" | grep -v '^/' >/dev/null
 }
 
+is_nested() {
+  echo "$1" | sed "s|$DEST_DIR/||" | grep '/' >/dev/null
+}
+
 version() {
   cat << EOV
 $1 (rcm) $VERSION
@@ -167,6 +171,14 @@
   echo "$file" | tr "$DELIMITER" " "
 }
 
+append_variable() {
+  if [ -z "$1" ]; then
+    echo "$2"
+  else
+    echo "$1 $2"
+  fi
+}
+
 : ${RCRC:=$HOME/.rcrc}
 
 if [ -r "$RCRC" ]; then
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rcm-1.3.3/test/lsrc-globs.t 
new/rcm-1.3.4/test/lsrc-globs.t
--- old/rcm-1.3.3/test/lsrc-globs.t     1970-01-01 01:00:00.000000000 +0100
+++ new/rcm-1.3.4/test/lsrc-globs.t     2020-08-28 19:53:20.000000000 +0200
@@ -0,0 +1,7 @@
+  $ . "$TESTDIR/helper.sh"
+
+Keeps globs as globs
+
+  $ mkdir vimulator
+  > lsrc -vvv -x '*vim*' 2>&1 | grep exclude_file_globs
+  exclude_file_globs: *vim*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rcm-1.3.3/test/lsrc-sigils.t 
new/rcm-1.3.4/test/lsrc-sigils.t
--- old/rcm-1.3.3/test/lsrc-sigils.t    2017-03-31 21:07:41.000000000 +0200
+++ new/rcm-1.3.4/test/lsrc-sigils.t    2020-08-28 20:11:52.000000000 +0200
@@ -14,3 +14,12 @@
   $ COPY_ALWAYS=copy lsrc -F
   /*/.copy:/*/.dotfiles/copy:X (glob)
   /*/.example:/*/.dotfiles/example:@ (glob)
+
+Should print $ for directory links
+
+  $ mkdir .dotfiles/folder
+
+  $ SYMLINK_DIRS=folder COPY_ALWAYS=copy lsrc -F
+  /*/.copy:/*/.dotfiles/copy:X (glob)
+  /*/.example:/*/.dotfiles/example:@ (glob)
+  /*/.folder:/*/.dotfiles/folder:$ (glob)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rcm-1.3.3/test/lsrc-undotted-star.t 
new/rcm-1.3.4/test/lsrc-undotted-star.t
--- old/rcm-1.3.3/test/lsrc-undotted-star.t     1970-01-01 01:00:00.000000000 
+0100
+++ new/rcm-1.3.4/test/lsrc-undotted-star.t     2020-08-28 19:53:20.000000000 
+0200
@@ -0,0 +1,14 @@
+  $ . "$TESTDIR/helper.sh"
+
+Should undot files with -U, with wildcard * expansion
+
+  $ touch .dotfiles/example
+  > touch .dotfiles/undotted
+
+  $ lsrc -v -U '*'
+  /*/example:/*/.dotfiles/example (glob)
+  /*/undotted:/*/.dotfiles/undotted (glob)
+
+  $ lsrc -v -U '*:*'
+  /*/example:/*/.dotfiles/example (glob)
+  /*/undotted:/*/.dotfiles/undotted (glob)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rcm-1.3.3/test/mkrc-no-symlinks.t 
new/rcm-1.3.4/test/mkrc-no-symlinks.t
--- old/rcm-1.3.3/test/mkrc-no-symlinks.t       1970-01-01 01:00:00.000000000 
+0100
+++ new/rcm-1.3.4/test/mkrc-no-symlinks.t       2020-08-28 19:53:20.000000000 
+0200
@@ -0,0 +1,26 @@
+  $ . "$TESTDIR/helper.sh"
+
+Passing a linked file is rejected.
+We need a second path not under what will be $HOME
+
+  $ EXTDIR="${CRAMTMP}2"
+  > mkdir -p "$EXTDIR"
+  > echo 'Content' > "$EXTDIR/example"
+  > ln -s "$EXTDIR/example" "$HOME/.example"
+
+  $ mkrc .example
+  '.example' is a symlink. Cannot process file.
+  [1]
+
+  $ refute "is a symlink" -h $HOME/.dotfiles/.example
+
+Passing a file in one linked dir is rejected
+
+  $ mkdir "$HOME/.config"
+  > ln -s "$EXTDIR/" "$HOME/.config/tmpdir"
+
+  $ mkrc -v .config/tmpdir/example
+  '.config/tmpdir/example' path contains a symlink (tmpdir). Cannot process 
file.
+  [1]
+
+  $ refute "is a symlink" -h "$HOME/.dotfiles/config/tmpdir/example"

Reply via email to