3 ms·
Probably as much for legacy reasons as anything else. Perl was the chosen scripting language for utilities, it works, they understand it, and they've kept with
by throwawayboise 5y ago
Probably as much for legacy reasons as anything else. Perl was the chosen scripting language for utilities, it works, they understand it, and they've kept with it. Sort of how they stay with CVS for their source repository.
Python isn't even installed on a base OpenBSD system.
- chasil 5y agoMark Espie rewrote the entire package system in perl in 2010, which is a bit late to be classed as legacy. https://undeadly.org/cgi?action=article;sid=20100323141307 https://undeadly.org/cgi?action=article;sid=20100323141307 I'm not sure what was used for the version before this, but the original BSD package system was written in C.
- throwawayboise 5y agoBut perl was already the "standard" for other system/config utilities, no?
- chasil 5y agoI don't know what we mean by "standard," but I found a number of perl references with the following shell fragment: $ for x in $(echo $PATH|sed 's/:/ /g'); do file $x/*|grep perl;done All but two hits were in /usr/sbin, and /usr/bin. I isolated those files with: $ file /usr/sbin/* | awk '/perl/{sub(/:.*/,"");sub(/^.*[/]/,"");printf "%s, ", $0}';echo '' The sbin results are: adduser, fw_update, pkg_add, pkg_check, pkg_create, pkg_delete, pkg_info, pkg_mklocatedb, pkg_sign, rmuser, There are more in /bin: $ file /usr/bin/* | awk '/perl/{sub(/:.*/,"");sub(/^.*[/]/,"");printf "%s, ", $0}';echo '' c2ph, corelist, cpan, enc2xs, encguess, h2ph, h2xs, instmodsh, libnetcfg, libtool, perl, perlbug, perldoc, perlivp, piconv, pkg-config, pl2pm, pod2html, pod2man, pod2text, pod2usage, podchecker, podselect, prove, pstruct, skeyprune, splain, streamzip, xsubpp, A perl script can't pledge() or unveil(), so I am guessing that anything sensitive has moved to C.
- boogies 5y ago> A perl script can't pledge() or unveil() It doesn't seem to support all of OpenBSD's privilege separation, but there are OpenBSD::Unveil(3p), OpenBSD::Pledge(3p), and https://github.com/rfarr/Unix-Pledge https://github.com/rfarr/Unix-Pledge https://bronevichok.ru/posts/pledge.html https://bronevichok.ru/posts/pledge.html
- chasil 5y agoDid not know that, thanks.