[openssl-dev] [openssl.org #4425] CentOS 5: mkdir /include: Permission denied at ./Configure line 1248

Jeffrey Walton noloader at gmail.com
Mon Mar 14 00:38:21 UTC 2016


On Sun, Mar 13, 2016 at 7:56 PM, Richard Levitte via RT <rt at openssl.org> wrote:
> Vid Sun, 13 Mar 2016 kl. 23.16.45, skrev noloader at gmail.com:
>> On Sun, Mar 13, 2016 at 7:09 PM, Richard Levitte via RT
>> <rt at openssl.org> wrote:
>> > Vid Sun, 13 Mar 2016 kl. 22.05.21, skrev noloader at gmail.com:
>> >> $ perl --version
>> >> This is perl, v5.8.8 built for x86_64-linux-thread-multi
>> >
>> > This is a problem. We don't really support perl older than 5.10, so
>> > 5.8.x is
>> > potentially challenging. It's quite possible you found a problem
>> > area.
>> >
>> > As far as I understand the issue, it seems that the File::Spec perl
>> > module
>> > might be a bit dicy and could use an upgrade. If it was me, I'd
>> > upgrade Perl.
>> >
>>
>> I don't have any PERL-fu, so forgive my ignorance here... At the
>> moment, I only see that one failure, so it may not be as bad as it
>> appears.
>>
>> Before this executes:
>>
>> $dir = catdir($base,$dir) unless isabsolute($dir);
>>
>> It seems $base is <empty>. Would it be possible to fallback to $PWD if
>> $base is <empty>? Does it make sense for $base to be empty?
>
> Kinda sorta makes sense. That would be if 'dirname' misbehaves, i.e. gives back
> '' in some cases.
>
> Would you please test the attached patch, see if that makes a difference?

OK, so I got to dig a little further... The problem appears to be the
"unless isabsolute($dir)".

First, instrument with print's (my apologies; I no almost no PERL):

    sub cleandir {
        my $base = shift;
        print "base directory: ", "$base", "\n";

        my $dir = shift;
        print "dir directory: ", "$dir", "\n";

        my $relativeto = shift || ".";

        my $this_catdir = catdir($base,$dir);
        print "this_catdir: ", "$this_catdir", "\n";

        my $is_absolute = isabsolute($dir);
        print "is_absolute: ", "$is_absolute", "\n";

        $dir = catdir($base,$dir) unless isabsolute($dir);
        print "catdir directory: ", "$dir", "\n";

        # Make sure the directories we're building in exists
        mkpath($dir);

        my $res = abs2rel(absolutedir($dir), rel2abs($relativeto));
        #print STDERR "DEBUG[cleandir]: $dir , $base => $res\n";
        return $res;
    }

It produces:

    base directory: /home/jwalton/Desktop/openssl
    dir directory: /include
    this_catdir: /home/jwalton/Desktop/openssl/include
    is_absolute: 1
    catdir directory: /include

It seems like I should be able to drop the "unless isabsolute($dir)",
but it causes problems in later invocations when using "../". Maybe it
needs some like "not isrelative($dir)", too.

Would you like access to the VM? You should be able to jump to it from
the PowerMac to 172.16.4.16 .

Jeff


More information about the openssl-dev mailing list