Perl 5.32.0-3 bug, introduced by Stable Update 2020.10.01

The package perl 5.32.0-3 installed during this update introduces a typo in the file /etc/profile.d/perlbin.sh, namely that it calls upon a shell function named append_path. However, the proper name for the shell function ─ which is itself defined in /etc/profileshould be appendpath, without an underscore.

The typo introduces spurious error messages when a new login session is opened, in the form of… :arrow_down:

-bash: append_path: command not found
-bash: append_path: command not found
-bash: append_path: command not found

For the user, the problem is easily remedied by editing /etc/profile.d/perlbin.sh and removing the underscore in the function name. However, it’s an ugliness that may have consequences for when the function should indeed be called upon, and then fails because it is called by the wrong name.

2 Likes

Thanks @Aragorn, only one question, when changing /etc/profile.d/perlbin.sh - could it be that in the next update(s) the function name would be changed from appendpath to append_path and we need to restore the old syntax?

1 Like

Well, in theory, that would be possible, but in my opinion it’s very unlikely.

perlbin.sh is the “guest component” here, making use of a shell function declared in /etc/profile. So it is, in my opinion, very unlikely that /etc/profile would be changed to accommodate a bug introduced by a Perl package. It is most likely just a typo on the part of whoever put the Perl package together.

1 Like

No, perl is fine as it is append_path in profile.

Please fix your *.pacnew files on your local machine.

4 Likes

not forget to merge /etc/profile.pacnew ?

2 Likes

I did merge the files, but apparently I had overlooked the change in the function name. :blush:

@Aragorn
That did not work for me. After changing ‘/etc/profile.d/perlbin.sh’ in the way you suggest i get the error:

    /etc/profile.d/perlbin.sh:6: command not found: appendpath
    /etc/profile.d/perlbin.sh:8: command not found: appendpath 
   /etc/profile.d/perlbin.sh:10: command not found: appendpath

And i do not find any *.pacnew file on my machine …

@philm already corrected me on that ─ see his post above. The proper name of the function was altered from appendpath to append_path.

My mistake was to think that this was a typo in /etc/profile.d/perlbin.sh. You therefore need to make sure that /etc/profile also contains append_path as the name of the function it declares.

1 Like

Hi, I had the same messages on my terminal and I solved fixing profile.pacnew file in my laptop.
In my desktop pc I had also these additional lines

/etc/profile.d/perlbin.sh:5: command not found: append_path
/etc/profile.d/perlbin.sh:6: command not found: append_path
/etc/profile.d/perlbin.sh:7: command not found: append_path
/etc/profile.d/perlbin.sh:8: command not found: append_path
/etc/profile.d/perlbin.sh:9: command not found: append_path
/etc/profile.d/perlbin.sh:10: command not found: append_path

but the previous fix only partially solved the half of the messages. Still remains these:

/etc/profile.d/perlbin.sh:5: command not found: append_path
/etc/profile.d/perlbin.sh:7: command not found: append_path
/etc/profile.d/perlbin.sh:9: command not found: append_path

any idea?

1 Like