# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4 PortSystem 1.0 PortGroup codeberg 1.0 PortGroup makefile 1.0 codeberg.setup thejessesmith doas 6.3p13 revision 2 checksums rmd160 7584ac777c09e07bbeb153f28be1f750963713a8 \ sha256 2cca9003856e92ec0a50b3e559b7f3132bf8293dc8302613933f8ed06c8c7fc5 \ size 34883 categories sysutils maintainers {ryandesign @ryandesign} openmaintainer license BSD description a utility that lets a user run a command as another user long_description ${name} allows a user to run a command as though they \ were another user. Typically doas is used to allow \ non-privileged users to run commands as though they were \ the root user. ${name} offers two benefits over sudo: its \ configuration file has a simple syntax and it is smaller, \ requiring less effort to audit the code. This makes it \ harder for both admins and coders to make mistakes that \ potentially open security holes in the system. depends_build port:bison build.env "OPT=${configure.optflags}" patchfiles vidoas-fix-path.diff post-patch { reinplace "s|@PREFIX@|${prefix}|" ${worksrcpath}/vidoas } post-destroot { xinstall -m 0644 ${worksrcpath}/doas.conf.sample ${destroot}${prefix}/etc set docdir ${prefix}/share/doc/${subport} xinstall -d ${destroot}${docdir} xinstall -W ${worksrcpath} -m 0644 \ LICENSE \ README.md \ ${destroot}${docdir} # The following can be removed after MacPorts 2.12.2 has been # available for a while. See https://trac.macports.org/ticket/73516 if {[vercmp [macports_version] < "2.12.2"] && [getuid] == 0} { set macports_uid [name_to_uid $macportsuser] set macports_gid [uname_to_gid $macportsuser] fs-traverse -depth fullpath [list $destroot] { file lstat $fullpath statinfo # Ensure installed files are not owned by the unprivileged account if {$statinfo(uid) == $macports_uid || $statinfo(gid) == $macports_gid} { if {$statinfo(uid) == $macports_uid} { ui_debug "Changing owner to ${install.user} for $fullpath" set new_owner ${install.user} } else { # only group needs to be changed set new_owner [name_to_uid $statinfo(uid)] } if {$statinfo(gid) == $macports_gid} { ui_debug "Changing group to ${install.group} for $fullpath" set new_group ${install.group} } else { # only owner needs to be changed set new_group [name_to_gid $statinfo(gid)] } # Changing owner may also change permissions, so we restore # them afterwards. 'file attributes' doesn't work on links # (it operates on the link target instead) but links should # not have setuid/setgid bits set anyway. if {$statinfo(type) ne "link"} { set saved_perms [file attributes $fullpath -permissions] } lchown $fullpath $new_owner $new_group if {$statinfo(type) ne "link"} { file attributes $fullpath -permissions $saved_perms } } } } }