commit 359e16bdc8fad17472ae1bb7618f32ea28188980 Author: Petr Písař <ppi...@redhat.com> Date: Thu Nov 21 13:38:40 2013 +0100
Fix setting undefined variable in CSH ...010-Fix-setting-undefined-variable-in-CSH.patch | 48 ++++++++++++++++++++ perl-homedir.csh | 4 +- perl-local-lib.spec | 9 +++- 3 files changed, 58 insertions(+), 3 deletions(-) --- diff --git a/local-lib-1.008010-Fix-setting-undefined-variable-in-CSH.patch b/local-lib-1.008010-Fix-setting-undefined-variable-in-CSH.patch new file mode 100644 index 0000000..9005842 --- /dev/null +++ b/local-lib-1.008010-Fix-setting-undefined-variable-in-CSH.patch @@ -0,0 +1,48 @@ +From 53297b1441539efdc44fc9c8f4f19fb6ba8290c9 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppi...@redhat.com> +Date: Thu, 21 Nov 2013 12:03:32 +0100 +Subject: [PATCH] Fix setting undefined variable in CSH +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +<https://rt.cpan.org/Public/Bug/Display.html?id=85667> + +Signed-off-by: Petr Písař <ppi...@redhat.com> +--- + lib/local/lib.pm | 19 ++++++++++++++++++- + 1 file changed, 18 insertions(+), 1 deletion(-) + +diff --git a/lib/local/lib.pm b/lib/local/lib.pm +index 289e13b..d4f8e2a 100644 +--- a/lib/local/lib.pm ++++ b/lib/local/lib.pm +@@ -343,7 +343,24 @@ sub build_bourne_env_declaration { + sub build_csh_env_declaration { + my $class = shift; + my($name, $value) = @_; +- return defined($value) ? qq{setenv ${name} "${value}";\n} : qq{unsetenv ${name};\n}; ++ if (defined($value)) { ++ if ($value =~ /(.*)(\A|\Q$Config{path_sep}\E)(\$)(.+?)(\z|\Q$Config{path_sep}\E)(.*)/) { ++ # If a variable reference exists in the value, we have to delimit it and ++ # dereference it only if it is defined. ++ return ++ qq{test 1 == \$\{?$4\} && } . ++ qq{setenv ${name} "${1}${2}${3}\{${4}\}${5}${6}"} . ++ qq{ || } . ++ qq{setenv ${name} "${1}} . ++ (($2 ne '' and $5 ne '') ? qq{${2}} : '') . ++ qq{${6}"} . ++ qq{;\n}; ++ } else { ++ return qq{setenv ${name} "${value}";\n}; ++ } ++ } else { ++ return qq{unsetenv ${name};\n}; ++ } + } + + sub build_win32_env_declaration { +-- +1.8.3.1 + diff --git a/perl-homedir.csh b/perl-homedir.csh index ef7ad3b..b00fb0d 100644 --- a/perl-homedir.csh +++ b/perl-homedir.csh @@ -11,10 +11,10 @@ if (-f "$HOME/.perl-homedir") then source "$HOME/.perl-homedir" endif -alias perlll 'eval `perl -Mlocal::lib`' +alias perlll 'eval "`perl -Mlocal::lib`"' # if system default if ("x$PERL_HOMEDIR" == "x1") then - eval `perl -Mlocal::lib` + eval "`perl -Mlocal::lib`" endif diff --git a/perl-local-lib.spec b/perl-local-lib.spec index 821d1aa..1f36494 100644 --- a/perl-local-lib.spec +++ b/perl-local-lib.spec @@ -1,6 +1,6 @@ Name: perl-local-lib Version: 1.008010 -Release: 1%{?dist} +Release: 2%{?dist} # lib/local/lib.pm -> GPL+ or Artistic License: GPL+ or Artistic Group: Development/Libraries @@ -8,6 +8,9 @@ Summary: Create and use a local lib/ for perl modules Source: http://search.cpan.org/CPAN/authors/id/E/ET/ETHER/local-lib-%{version}.tar.gz # Allow evaluation in CSH, RHBZ #849609, CPAN RT #60072 Patch0: local-lib-1.008009-Append-semicolon-to-setenv.patch +# Fix setting variables in CSH, RHBZ# 1033018, CPAN RT #85667, +# upstream is going the refactor the whole code, patch not sent to upstream +Patch1: local-lib-1.008010-Fix-setting-undefined-variable-in-CSH.patch Url: http://search.cpan.org/dist/local-lib Requires: perl(:MODULE_COMPAT_%(eval "`perl -V:version`"; echo $version)) BuildArch: noarch @@ -65,6 +68,7 @@ install this package. %prep %setup -q -n local-lib-%{version} %patch0 -p1 +%patch1 -p1 rm -rf inc %build @@ -91,6 +95,9 @@ make test %{_sysconfdir}/profile.d/* %changelog +* Thu Nov 21 2013 Petr Pisar <ppi...@redhat.com> - 1.008010-2 +- Fix setting undefined variable in CSH (bug #1033018) + * Fri Jun 07 2013 Iain Arnell <iarn...@gmail.com> 1.008010-1 - update to latest upstream version -- Fedora Extras Perl SIG http://www.fedoraproject.org/wiki/Extras/SIGs/Perl perl-devel mailing list perl-devel@lists.fedoraproject.org https://admin.fedoraproject.org/mailman/listinfo/perl-devel