3 ms·
Mark 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=20100323
by chasil 5y ago
Mark 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.