[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#704197: Please review: systemd checks



Hi Niels,

Niels Thykier <niels@thykier.net> writes:
>> sub check_init_script {
>>     my ($pkg, $info, $file) = @_;
>> 
>>     my $lsb_source_seen;
>>     my $path = $info->index ($file);
>>     fail "$file is neither a regular file nor a resolvable symlink"
>>         unless ($path->is_regular_file || defined($path->link_resolved));
>>     open(my $fh, '<', $info->unpacked($file))
>>         or fail "cannot open $file: $!";
>> 
>>     # …
>> }
>> 
>> Does that seem alright to you?
>> 
>
> Almost; it definitely plugs the issues I mentioned.  That said, I
> believe we prefer to emit tags instead of erroring out when we see an
> unexpected file type (e.g. see control-file-is-not-a-file).
>   Secondly, there is a bug in that link_resolved is only applicable to
> links.  So if it is not a regular file and not a link, the code will
> croak in $path->link_resolved[2].
Okay, so how about this?

sub check_init_script {
    my ($pkg, $info, $file) = @_;

    my $lsb_source_seen;
    my $path = $info->index ($file);
    unless ($path->is_regular_file ||
            ($path->is_symlink && defined($path->link_resolved))) {
        tag 'init-script-is-not-a-file', $file;
    }
    open(my $fh, '<', $info->unpacked($file))
        or fail "cannot open $file: $!";
    # …
}

> It really looks like a implementation of Text::ParseWords's
> shellwords[3].  If so, we can get that entire sub as a oneliner (we
> already use Text::ParseWords elsewhere).
I switched to shellwords. We can always rever to the code we’ve had
before, but in my tests, shellwords works fine.

Find the new files attached.

-- 
Best regards,
Michael

Attachment: systemd
Description: Binary data

Attachment: systemd.desc
Description: Binary data


Reply to: