ports は削除の際に、 自分自身を消去したあとに (ディレクトリの) 削除をするようにしてください。 これは大抵の場合 @dirrm の行を ports が作成するすべてのディレクトリについて加えることによって実現できます。 親ディレクトリは子ディレクトリを先に消さないと消せないことに注意してください。
: lib/X11/oneko/pixmaps/cat.xpm lib/X11/oneko/sounds/cat.au : @dirrm lib/X11/oneko/pixmaps @dirrm lib/X11/oneko/sounds @dirrm lib/X11/oneko
といった感じです。
しかし時として、 他の port とディレクトリを共有しているために @dirrm がエラーを返すことがあります。 rmdir を @unexec から呼びだすことによって、 警告(warning)なしで空のディレクトリのみを削除することができます。
@unexec rmdir %D/share/doc/gimp 2>/dev/null || true
これを使えば、たとえ他の port がファイルをインストールしていて PREFIX/share/doc/gimp が空でない場合でもエラーメッセージは表示されませんし、 pkg_delete(1) が異常終了することもありません。