Skip Menu |

This queue is for tickets about the DBIx-Class CPAN distribution.

Report information
The Basics
Id: 101615
Status: resolved
Worked: 10 min
Priority: 0/
Queue: DBIx-Class

People
Owner: Nobody in particular
Requestors: ETJ [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: 0.082820



Subject: t/54taint.t fails on Windows 7 "perl in space"
When perl is installed as D:\straw(berry) perl\perl\bin\perl.exe, t/54taint.t says: Can't open perl script "perl\perl\bin\perl.exe": No such file or directory I had a look for why (it's the "exec" line), and I tried making a list of @execargs and using the form "exec { $execargs[0] } @execargs", per perldoc -f exec. Couldn't figure a way to force not to use shell.
On Mon Jan 19 12:21:18 2015, ETJ wrote: Show quoted text
> When perl is installed as D:\straw(berry) perl\perl\bin\perl.exe, > t/54taint.t says: > > Can't open perl script "perl\perl\bin\perl.exe": No such file or > directory > > I had a look for why (it's the "exec" line), and I tried making a list > of @execargs and using the form "exec { $execargs[0] } @execargs", per > perldoc -f exec. Couldn't figure a way to force not to use shell.
Um... I am confused... Are you saying that contrary to `perldoc -f exec` you simply can't avoid the shell? Will "check for space in $^X" escape at the start of the BEGIN suffice to avoid the entire brouhaha?
On Mon Jan 19 10:05:45 2015, RIBASUSHI wrote: Show quoted text
> Um... I am confused... Are you saying that contrary to `perldoc -f > exec` you simply can't avoid the shell? > > Will "check for space in $^X" escape at the start of the BEGIN suffice > to avoid the entire brouhaha?
I'm saying I couldn't figure how to. Windows 7, Strawberry Perl 5.20.0. An effective workaround would be to switch that test to using string-arg system and exec, and quote $^X et al. Someone cleverer than me might be able to figure out why this is happening, and that might be worthwhile.
Subject: Re: [rt.cpan.org #101615] t/54taint.t fails on Windows 7 "perl in space"
Date: Mon, 19 Jan 2015 16:36:39 +0100
To: bug-DBIx-Class [...] rt.cpan.org
From: Peter Rabbitson <ribasushi [...] cpan.org>
On 01/19/2015 04:30 PM, Ed J via RT wrote: Show quoted text
> Queue: DBIx-Class > Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=101615 > > > On Mon Jan 19 10:05:45 2015, RIBASUSHI wrote:
>> Um... I am confused... Are you saying that contrary to `perldoc -f >> exec` you simply can't avoid the shell? >> >> Will "check for space in $^X" escape at the start of the BEGIN suffice >> to avoid the entire brouhaha?
> I'm saying I couldn't figure how to. Windows 7, Strawberry Perl 5.20.0.
Am I understanding correctly that the system() a little higher up works, yet the exec() doesn't? Show quoted text
> An effective workaround would be to switch that test to using string-arg system and exec, and quote $^X et al.
As far as I understand there is no universal quoting (working both on linux AND windows). If this is indeed the case the workaround is hardly "effective" :) The reason I proposed preempting the entire BEGIN is because this is a "canary test", which is not relevant to the functionality on an end-user's machine: https://github.com/dbsrgits/dbix-class/commit/ade96c1f2c6. Therefore, in the interest of perl-in-space, I am perfectly fine with skipping the test on $^X =~ /\s/, and be done with it. Especially if this is the *only* thing that failed (which is extremely surprising to me).
On Mon Jan 19 10:36:58 2015, RIBASUSHI wrote: Show quoted text
> As far as I understand there is no universal quoting (working both on > linux AND windows). If this is indeed the case the workaround is > hardly
I have some modest experience with making command lines working "in space", and applying this concept seems to work great everywhere (at least on Unix, Windows, VMS): "command" "arg1" "arg2" I claim support for this, from the general success of the "perl in space" changes to EUMM. Show quoted text
> Therefore, in the interest of perl-in-space, I am perfectly fine with > skipping the test on $^X =~ /\s/, and be done with it. Especially if > this is the *only* thing that failed (which is extremely surprising to > me).
DBIC uses good practice with list-args for system/exec (which is what it's trying for here as well), so it's not very surprising to me.
On Mon Jan 19 16:36:58 2015, RIBASUSHI wrote: Show quoted text
> > Am I understanding correctly that the system() a little higher up > works, > yet the exec() doesn't?
You never answered this part of my question. Is it the case that exec LIST does not behave the same as system LIST when it comes to a space-containing $^X? If this is the case is there a bug about it in the perl RT system? Thanks
Given it's a core bug, the problematic test was shunted in[1]. Please test the newly uploaded DBIC 0.082899_03[2] and let me know if the problem is resolved. Cheers [1] https://github.com/dbsrgits/dbix-class/commit/a5741f5c#diff-5084a4f11dec04497be5c5a23996f4d1 [2] https://metacpan.org/release/RIBASUSHI/DBIx-Class-0.082899_03
On Thu Mar 05 14:28:49 2015, RIBASUSHI wrote: Show quoted text
> [...] Please > test the newly uploaded DBIC 0.082899_03[2] and let me know if the > problem is resolved.
That version works on my system now (all tests pass and it installs), nice work.