Warning: there may be occasional oddness due to css and blog edits. **Active remodel of blog posts - mostly starting with most recent** 74/86

Sunday, November 3, 2024

Bulklist blacklist deblacked

Using poudriere locally can allow you to define the ports you install the way you want them.  My present /etc/make.conf controls some defaults and many configurations, I discuss and reveal the iteration as of August 9th at make.conf in control.  The configurations, if I make rmconfig will revert not to the ports normal defaults but those settings I prefer which I set for some of them within the make.conf file.

Collecting the installed ports is as easy as pkg origin >> /var/tmp/installed-pkgs-gross but my script takes this and complicates it substantially so that my bulk list contains only what I desire regardless of what is actually installed.  It also makes category lists and a list which excludes any installed games.  In the past I have installed nearly every game in ports, aside from those which require a CDROM or some other special thing I may not possess.

There are some specific excludes from the final bulk list files which avoids some versioned ports which are largely build dependencies, or can be more easily updated if bulk lists do not include a versioned port.  You can see below in the organizing section that I avoid intel drivers (I have AMD), llvm, qt5, kf5.  java, anything in the lang category, python specifically, bash, and samba.

p-keglist
#!/bin/sh
echo "Clearing /var/tmp p-keglist files.."; sleep 3
rm /var/tmp/installed-pkgs-gross 2>/dev/null &&echo -n "."
rm /var/tmp/installed-pkgs-gross-added 2>/dev/null &&echo -n "."
rm /var/tmp/installed-pkgs-gross-sorted 2>/dev/null &&echo -n "."
rm /var/tmp/installed-pkgs-ungamed 2>/dev/null &&echo -n "."
rm /var/tmp/installed-pkgs-* 2>/dev/null &&echo -n "."
echo;echo "--"; echo


echo "Backing up installed-gross list to /var/tmp"
cp ~/installed-pkgs-gross /var/tmp/installed-pkgs-gross.backup
echo;echo "--"; echo


echo "Gathering list of installed pkgs.."
pkg origin >> /var/tmp/installed-pkgs-gross
echo;echo "--"; echo


echo "Organizing the list.."
cat /var/tmp/installed-pkgs-gross | sort -d | sort -u | \
sed -E 's:^graphics\/gpu-firmware-intel-kmod$::'| \
sed -E 's:^devel\/llvm[0-9]+::'| \
sed -E 's:[a-z,1,\-]+\/qt5-.+::' | \
sed -E 's:[a-z,1,\-]+\/kf5-.+::' | \
sed -E 's:^java\/.+$::' | \
sed -E 's:^lang\/.+$::' | \
sed -E 's:^lang\/python$::' | \
sed \
-e 's:shells\/bash::' \
-e 's:net\/samba[a-z,\-]+[0-9]+::' \
>> /var/tmp/installed-pkgs-gross-added &&echo -n "."
cat /var/tmp/installed-pkgs-gross-added | \
sort -u -d > /var/tmp/installed-pkgs-gross-sorted && echo -n "."
mv /var/tmp/installed-pkgs-gross-sorted /var/tmp/installed-pkgs-gross &&echo -n "."
cp /var/tmp/installed-pkgs-gross ~ &&echo -n "."
echo;echo "--"; echo


echo "Dividing the list.."; sleep 3
category=0

for portorigin in `cat /var/tmp/installed-pkgs-gross`
do
category=`echo $portorigin | cut -d / -f 1`
echo $portorigin >> /var/tmp/installed-pkgs-$category

#echo $category $portorigin
echo $portorigin
if ! [ "$category" = "games" ] ; then
echo $portorigin >> /var/tmp/installed-pkgs-ungamed
fi
done
echo;echo "--"; echo


rm /var/tmp/installed-pkgs-gross-added 2>/dev/null

echo "Finalizing and checking list sizes, one looong moment.." ;sleep 2
for listfile in `ls -1 /var/tmp/installed-pkgs-*`
do
wc -l $listfile |sed -e 's:\/var\/tmp\/::'
done

cp /var/tmp/installed-pkgs-* ~
echo;echo "--"; echo

The blacklist is still rather extensive, it has too many lines still in the file but commented out with a pound symbol (#).  A few of them I have toggled between commented and active, usually rust and firefox and veloren, which tend to be a bit consuming.  I have also changed my mind about libressl and some other ports, those all likely commented right now.  Aside from the lines which are port origins with a # as the first character, I have chosen to include a lot of comments to help document why something is in the file.  It is most certainly good practice to include documentation with any comment mechanism the file format allows, you may not review a file for quite a while after you initially create it.  Frequently the purpose may be lost to time, so add comments at creation so you won't have to remember what you did or why, a good safeguard.

# Doesn't exist
devel/libtar

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#  oddness with py39 something issue			#
#_______________________________________________________#
graphics/lensfun


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#  these presently fail					#
#_______________________________________________________#
#games/wesnoth
#games/abstreet
#games/opendungeons
#games/jinput
#graphics/ocaml-images
#emulators/wine
#www/py-aiohttp
#devel/opengrok
#games/DDNet
#games/libretro-fbneo
#www/nspluginwrapper
#games/orthorobot


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#  Try to use version 7 and avoid 6			#
#_______________________________________________________#
graphics/ImageMagick6
graphics/ImageMagick6-nox11


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#  use 17 rather than 16 or others.			#
#_______________________________________________________#
www/node16


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#  These do not exist in ports				#
#_______________________________________________________#
#sysutils/pcbsd-libsh
#x11-fonts/font-bitstream-speedo
#x11-fonts/fontconfig-reference
#x11-wm/fvwm-crystal
net/libmms


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#  Expired/Deprecated/Unsupported upstream		#
#_______________________________________________________#
multimedia/schroedinger


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#  Except when using testport Build outside poudriere	#
# minetest fork of irrlicht does not conflict		#
#_______________________________________________________#
databases/dbeaver-dev
deskutils/flameshot-dev
devel/distcc-dev
games/eternallands-data
games/eternallands-dev
games/godot-dev
games/lutris-freebsd
games/minetest-dev
games/minetestmapper-dev
#games/ryzomcore
graphics/feh-dev
graphics/libthorvg
x11-toolkits/irrlicht-minetest
x11-wm/fvwm3-dev


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#  Build without poudriere: tigersharke/Ported_Software #
#_______________________________________________________#
audio/easytag
databases/dbeaver
deskutils/flameshot
games/el
games/el-data
games/eternallands-data
games/godot
games/lutris
games/minetest
games/minetestmapper
games/minetest_game
graphics/feh
graphics/libthorvg
net/libmms
x11-toolkits/irrlicht
x11-wm/fvwm3


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#  avoid bulk build of these silly things		#
# These or others get added by bulk list creation	#
#_______________________________________________________#
games/pink-pony
games/cowsay
games/neo-cowsay
games/xcowsay
games/coffeebreak
games/powdertoy
games/powder-toy
games/powdertoy-devel
games/powder-toy-devel
games/sex
games/weebsay


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#  builds but doesn't work				#
#_______________________________________________________#
games/excido


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#  toggle these - often cause troubles or take FOREVER	#
#_______________________________________________________#
#games/veloren-weekly
#games/veloren
www/firefox
#lang/rust
lang/rust-nightly
#x11-fonts/iosevka
#lang/rust-bootstrap
#devel/efl
#x11-wm/enlightenment
#devel/rust-cbindgen


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#  conflicts in port or its depends			#
#_______________________________________________________#
#java/jmf
#devel/typetools
#games/openarena
#games/slade
#games/golly
#games/gnubik
#games/openmw


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#  Try to force more current version of llvm 		#
#  Discover what breaks and adjust accordingly.		#
#  first is "default" version, unversioned LLVM		#
#							#
#  Some things require llvm15				#
#_______________________________________________________#
#devel/llvm
#devel/llvm17@default
#
devel/llvm70
devel/llvm80
devel/llvm90
devel/llvm10
devel/llvm11
devel/llvm12
devel/llvm13
devel/llvm14
devel/llvm15
devel/llvm16
#devel/llvm17
#devel/llvm-devel
#devel/ccache


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#							#
# I should make a Ported_Software build for it		#
#_______________________________________________________#
#www/bluefish


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#  Should be no need for these at all due to git	#
#_______________________________________________________#
devel/subversion
devel/p5-subversion


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#  these fail due to ruby default			#
#_______________________________________________________#
#accessibility/rubygem-atk
#archivers/rubygem-rubyzip
#devel/git@tiny
#devel/rubygem-cairo-gobject
#devel/rubygem-gettext
#devel/rubygem-gio2
#devel/rubygem-glib2
#devel/rubygem-gobject-introspection
#devel/rubygem-highline
#devel/rubygem-json_pure
#devel/rubygem-locale
#devel/rubygem-manpages
#devel/rubygem-native-package-installer
#devel/rubygem-optimist
#devel/rubygem-paint
#devel/rubygem-pkg-config
#devel/rubygem-rake
#devel/rubygem-thor
#devel/ruby-sdl
#editors/neovim
#games/freecell-solver
#games/jaggedalliance2
#games/magicmaze
#games/ninix-aya
#games/rubygem-fortune_gem
#games/rubygem-lolcat
#games/rubygem-vimgolf
#graphics/rubygem-cairo
#graphics/rubygem-gdk_pixbuf2
#graphics/rubygem-opengl
#math/rubygem-narray
#multimedia/rubygem-gstreamer
#textproc/rubygem-asciidoctor
#textproc/rubygem-charlock_holmes
#textproc/rubygem-text
#x11-toolkits/rubygem-gdk3
#x11-toolkits/rubygem-gtk3
#x11-toolkits/rubygem-pango


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#  Openoffice 						#
#_______________________________________________________#
editors/openoffice-4
editors/openoffice-devel
java/bootstrap-openjdk6
math/suitesparse


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# According to vigra comment: 				#
# Using py-NumPY implies Fortran and GCC 4.7+ as hard 	#
# dependencies and require all ports, depending on	#
# vigra, to set USE_GCC=yes				#
#							#
# So lets avoid py-numpy				#
#_______________________________________________________#
#math/py-numpy
graphics/vigra


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#  Dependent upon py-numpy via math/suitesparse		#
#_______________________________________________________#
#games/freeorion


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#  unexplained dependency on openjdk7 which fails build #
#_______________________________________________________#
java/openjdk7
java/bootstrap-openjdk6
#
#math/cgal
#math/suitesparse
#math/eigen3

#devel/apr1
#databases/db5
#textproc/redland
#www/serf


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#  mesa-libs conflicts with libglvnd?			#
#_______________________________________________________#
#graphics/libglvnd


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# complicates the issue?				#
#_______________________________________________________#
#graphics/linux-c7-libglvnd


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#  avoid colord						#
#_______________________________________________________#
graphics/colord


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#  dbus dependent -- GNOME - not a necessary dependency #
#_______________________________________________________#
#devel/dconf


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#  Until dependencies fixed in official Makefile	#
#  Use home/tigersharke/Ported_Software instead		#
#_______________________________________________________#
sysutils/dunst


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#  lets avoid dbus -- it sucks but allowing for now	#
#_______________________________________________________#
#devel/dbus
#devel/dbus-glib


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#  dbus dependent so no need for them - subset likely	#
#_______________________________________________________#
#accessibility/at-spi2-atk
# accessibility/at-spi2-core
#net/avahi-app
#net/avahi-libdns
#sysutils/bsdisks
#x11/compton-conf
#sysutils/consolekit2
#devel/dconf
#x11-toolkits/kf5-attica
#devel/kf5-kauth
#devel/kf5-kbookmarks
#x11-toolkits/kf5-kcompletion
#devel/kf5-kconfig
#x11-toolkits/kf5-kconfigwidgets
#devel/kf5-kcrash
#devel/kf5-kdbusaddons
#x11/kf5-kded
#devel/kf5-kdoctools
#x11/kf5-kglobalaccel
#x11-toolkits/kf5-kguiaddons
#devel/kf5-ki18n
#x11-themes/kf5-kiconthemes
#x11-toolkits/kf5-kitemviews
#x11-toolkits/kf5-kjobwidgets
#devel/kf5-kservice
#x11-toolkits/kf5-ktextwidgets
#x11/kf5-kwayland
#x11-toolkits/kf5-kwidgetsaddons
#x11/kf5-kwindowsystem
#x11-toolkits/kf5-kxmlgui
#textproc/kf5-sonnet
#security/libgnome-keyring
#x11/lumina-coreutils
#sysutils/polkit
#sysutils/polkit-qt
#sysutils/polkit-qt-1
#devel/py39-dbus
#devel/py39-qt5-dbussupport
#devel/qt5-dbus
#x11-toolkits/qt5-declarative
#graphics/qt5-graphicaleffects
# x11-toolkits/qt5-gui
#graphics/qt5-imageformats
#multimedia/qt5-multimedia
#graphics/qt5-opengl
#print/qt5-printsupport
#accessibility/qt5-speech
#graphics/qt5-svg
#x11-toolkits/qt5-uiplugin
#devel/qt5-uitools
#graphics/qt5-wayland
#x11-toolkits/qt5-widgets
#x11/qt5-x11extras


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# Since qt5-core has no config, and requires dbus as	#
# well as accessibility/at-spi2-core			#
#_______________________________________________________#
#devel/qt5-core


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#  Dependent upon math/suitesparse			#
#_______________________________________________________#
#devel/boost-python-libs


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# kerberos or heimdal or gssapi stuff not needed	#
#_______________________________________________________#
net-mgmt/nagstamon
net/rubygem-omniauth-kerberos
security/cyrus-sasl2-gssapi
#security/heimdal
security/krb5-appl
security/krb5-devel
security/p5-Authen-Krb5
security/p5-Authen-Krb5-Simple
security/p5-Authen-Simple-Kerberos
security/p5-GSSAPI
security/p5-Heimdal-Kadm5
security/pam_krb5
security/py-flask-kerberos
security/py-gssapi
security/py-kerberos
security/py-pywinrm
security/py-requests-kerberos
security/rubygem-gssapi
www/gitlab-ce
www/mod_auth_gssapi
www/mod_auth_kerb2


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#  Unmaintained and dead upstream, 			#
#	does not build with -fno-common (llvm 11)	#
#_______________________________________________________#
#games/bomberinstinct
#games/bygfoot
#games/cavezofphear
#games/cosmo
#games/cre
#games/drm


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# used to avoid this as luajit-openresty is preferred	#
# -- conflicts with luajit				#
#_______________________________________________________#
lang/luajit
#lang/luajit-devel
lang/luajit-openresty


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# Build outside of ports until luajit-openresty default #
#_______________________________________________________#
#games/catesc
#games/freeminer-default
#games/freeminer
#games/instead
#games/mari0
#games/minerbold
#games/minetest_game
#games/minetest
#games/naev
#games/powder-toy
#games/solarus-quest-editor
#games/solarus
#games/voadi


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# Avoid libressl of any variety on desktop, use openSSL	#
# libressl is fine on simpler systems like firewall but	#
# is NOT properly supported by software in general.	#
#_______________________________________________________#
security/libressl
security/libressl-devel
security/libressl*


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# conflicts with libressl-devel				#
#	but maybe avoid anyhow if possible		#
#_______________________________________________________#
#security/gnutls
#security/nettle


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# these things require gnupg -- no option visible	#
#_______________________________________________________#
#devel/kf5-kcmutils
#devel/kf5-kdeclarative
#devel/kf5-kio
#devel/kf5-knewstuff
#devel/kf5-knotifyconfig
#devel/kf5-kparts
#devel/libgdata
#games/kanagram
#games/khangman
#mail/gmime30
#misc/libkeduvocdocument
#multimedia/totem-pl-parser
#net/gnome-online-accounts
#security/gcr
#security/gpgme
#security/gpgme-cpp
#security/gpgme-qt5
#sysutils/kf5-kwallet
#x11/kf5-kactivities
#x11/kf5-kinit
x11/kf5-plasma-framework
#x11-toolkits/kf5-kirigami2


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# nettle dependents					#
#_______________________________________________________#
#devel/librest
#devel/libsoup
#devel/qca
#mail/gmime30
#multimedia/totem-pl-parser
#net/geoclue
#net/glib-networking
#net-im/gloox
#net/uhttpmock
#security/gnupg

#security/gnutls

#security/gpgme
#security/gpgme-cpp
#security/gpgme-qt5
#security/libgsasl
#sysutils/password-store
#sysutils/qtpass
#sysutils/tracker
#x11-toolkits/gnome-pty-helper
#x11-toolkits/vte


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# these things require nettle -- no option visible	#
#_______________________________________________________#
#audio/audacity
#audio/lollypop
#devel/appstream-glib
#devel/glade
#devel/libgdata
#devel/librest
#devel/libsoup
#games/0ad
#games/atomix
#games/diaspora
#games/four-in-a-row
#games/freedink
#games/freedink-dfarc
#games/gnome-2048
#games/gnome-chess
#games/gnome-nibbles
#games/gnome-robots
#games/gnome-sudoku
#games/golly
#games/hitori
#games/iagno
#games/megaglest
#games/pioneers
#games/quadrapassel
#games/trenchbroom
#games/wxlauncher
#graphics/gimp
#graphics/gimp-app
#graphics/gimp-data-extras
#mail/claws-mail
#mail/claws-mail-gdata
#mail/claws-mail-libravatar
#mail/claws-mail-litehtml_viewer
#mail/claws-mail-mailmbox
#mail/claws-mail-newmail
#mail/claws-mail-notification
#mail/claws-mail-rssyl
##multimedia/totem-pl-parser
#net/glib-networking
#net/gnome-online-accounts
#net-im/gloox
#net/uhttpmock
#print/gimp-gutenprint

#security/gnutls

#www/gtkhtml4
#www/webkit2-gtk3
#x11-fonts/cantarell-fonts
#x11/gnome-desktop
#x11-toolkits/libhandy
#x11-toolkits/wxgtk30
#x11-toolkits/wxgtk31
#x11/yelp


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# git -- avoid other flavors				#
#_______________________________________________________#
devel/git@default
devel/git@gui
devel/git@lite
devel/git@svn
devel/git-default
devel/git-gui
devel/git-lite
devel/git-svn


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# avoid -- also dbus dependents				#
#_______________________________________________________#
#accessibility/at-spi2-atk
#accessibility/at-spi2-core


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# accessibility/at-spi2-atk dependents without config	#
#_______________________________________________________#
#devel/electron11
#editors/vscode
#www/chromium
#x11/cinnamon
#x11/gnome-shell
#x11-toolkits/gtkada3


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# db5 issue 						#
#_______________________________________________________#
#audio/jack


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#  obslete and would need makefile changes to fix build	#
#_______________________________________________________#
graphics/osg34


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#  osg34 dependent cannot build				#
#_______________________________________________________#


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#  Rebuild only with updated kernel/world		#
#  and maybe keep pkg locked in between times.		#
#_______________________________________________________#
emulators/virtualbox-ose
emulators/virtualbox-ose-kmod


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#  talloc and tevent not needed -- ldap/samba focus	#
#_______________________________________________________#
devel/talloc
devel/tevent


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#  samba not needed - depends above denied won't build	#
#_______________________________________________________#
net/samba


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#  openblas conflicts with netlib/cblas preferred	#
#_______________________________________________________#
#math/openblas


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#  openblas dependent cannot build			#
#_______________________________________________________#
#biology/bolt-lmm
#biology/gcta
#biology/gemma
#biology/plink
#cad/gmsh
#graphics/opencv
#math/adept
#math/ambit
#math/armadillo
#math/blaze
#math/blazeiterative
#math/casadi
#math/ceres-solver
#math/cminpack
#math/coinutils
#math/dbcsr
#math/deal.ii
#math/dune-common
#math/dune-fem
#math/dune-geometry
#math/dune-grid
#math/dune-pdelab
#math/dune-polygongrid
#math/dune-uggrid
#math/dune-vtk
#math/eigen3
#math/elemental
#math/elpa
#math/faiss
#math/fflas-ffpack
#math/flint2
#math/freefem++
#math/g2o
#math/hmat-oss
#math/iml
#math/jags
#math/lapack++
#math/linbox
#math/moab
#math/octave
#math/octave-forge-ltfat
#math/openturns
#math/osi
#math/primme
#math/py-numpy
#math/py-scs
#math/qposases
#math/sage
#math/scalapack
math/scs
#math/suitesparse
#math/sundials
#misc/mxnet
#misc/openmvg
#misc/visp
#science/bagel
#science/berkeleygw
#science/chemps2
#science/chrono
#science/code_saturne
#science/dalton
#science/elk
#science/elmerfem
#science/erkale
#science/gamess-us
#science/iboview
#science/lammps
#science/latte
#science/libcint
#science/mpb
#science/multiwfn
#science/opensim-core
#science/py-gpaw
#science/py-phono3py
#science/py-scipy
#science/qiskit-aer
#science/qmcpack
#science/simbody
#science/xtb

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#  Avoid all nvidia -- hidden deps			#
#_______________________________________________________#
graphics/nvidia-texture-tools
net-mgmt/nvidia_gpu_prometheus_exporter
x11/linux-nvidia-libs*
#x11/linux-nvidia-libs-304
#x11/linux-nvidia-libs-340
#x11/linux-nvidia-libs-390
x11/nvidia-driver*
#x11/nvidia-driver-304
#x11/nvidia-driveR-340
#X11/nvidia-driver-390
x11/nvidia*
#x11/nvidia-settings
#x11/nvidia-xconfig


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#  This one often causes problems, avoid if possible	#
#_______________________________________________________#
x11-drivers/xf86-video-scfb


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#  WHY should these ever be built on ICHIGO?		#
#_______________________________________________________#
#graphics/gpu-firmware-intel-kmod
x11/xbacklight


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#  fails when fontforge fails				#
#_______________________________________________________#
#x11-fonts/oxygen-fonts


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#  deprecated version of python 2.7			#
#_______________________________________________________#
lang/python27


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#  python27 dependent cannot build			#
#_______________________________________________________#
devel/py-backports.functools_lru_cache
graphics/gif2png
devel/godot2
lang/cython@py27
devel/py-enum34
devel/py-future@py27
devel/py-game_sdl2@py27
net/py-ipaddress
devel/py-setuptools@py27
x11-toolkits/py-tkinter@py27
devel/scons@py27
net/py-ipaddress
#
devel/electron13
devel/py-setuptools44
dns/py-dnspython1
games/renpy
lang/python2
mail/mailman
mail/mailman-exim4
mail/mailman-postfix
sysutils/uefi-edk2-bhyve-csm
www/moinmoin
www/qt5-webengine


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#  license confirmation needed				#
#_______________________________________________________#
games/taipan
games/tyrian-data
games/linux-unigine-valley
games/primateplunge
games/linux-unigine-heaven
games/minecraft-server
games/rawgl
games/steelstorm
games/mtaserver
games/goonies


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#  cdrom or mount of cdrom needed			#
#_______________________________________________________#
games/HeroesOfMightAndMagic
games/jaggedalliance2
games/kodi-addon-game.libretro.genplus
games/kodi-addon-game.libretro.pcsx-rearmed
games/kodi-addon-game.libretro.picodrive
games/linux-quake4
games/linux-ssamtse
games/linux-ssamtfe
games/linux-unrealgold
games/linux-ut



#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#  i386 only or fails on amd64				#
#_______________________________________________________#
#devel/bennugd-core
games/q3cellshading
games/quake3
games/lmpc
games/doom


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#  run depends						#
#_______________________________________________________#
emulators/i386-wine-devel


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#  stupid dependencies					#
#_______________________________________________________#
games/valyriatear
games/eboard
games/foobillard
games/xconq


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#  stupid nvidia textures dependency			#
#_______________________________________________________#
games/xray_re-tools


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#  fetch - config issue (missing file via option)	#
#_______________________________________________________#
games/quake2-extras


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#  stage - broken due to missing file			#
#_______________________________________________________#
#games/odamex


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#  depends upon broken love				#
#_______________________________________________________#
#games/mari0
#games/gunfudeadlands


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#  broken due to sdl12 & opengl includes in source	#
#_______________________________________________________#
devel/love07
devel/love08


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#  investigation needed					#
#_______________________________________________________#
#devel/godot2


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#  dependencies already blacklisted			#
#_______________________________________________________#


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#  metaport fails due to blacklisted component		#
#_______________________________________________________#
#games/gnome-games

The deblack script below, excludes the port origins by filtering through the blacklist which then creates a fresh bulk list which then becomes the file sent to poudriere.  The command you might issue, if the script is named 'p-keg-deblack' would be
poudriere bulk -j 14amd64 -f `p-keg-deblack installed-pkgs-gross`
and note the part enclosed by the (`) characters which provides the result of the script in its place.

p-keg-deblack
#!/bin/sh
rm ~/$1-deblack 2>/dev/null
rm /var/tmp/cleaned_blacklist 2>/dev/null
rm /var/tmp/list 2>/dev/null
rm /var/tmp/sorted_list 2>/dev/null
cp $1 /var/tmp/list
cat /var/tmp/list | sort -d -u > /var/tmp/sorted_list && rm $1 && cp /var/tmp/sorted_list $1
grep -v \# ~/Symbolic_Links/14amd64-blacklist | sort -d -u > /var/tmp/cleaned_blacklist

diff -B -w $1 /var/tmp/cleaned_blacklist | grep \< |sed  -e 's/^<\ //g' -e 's/---//g' -e '1d' > ~/$1-deblack

echo $1-deblack

When I figure out how I might handle moved or renamed or nonexistent ports, I may revisit the scripts and post an update.  Until then, if any of those conditions exist, poudriere will halt right after providing an error or warning message describing which correction needs to be made.  Be careful about typos in your blacklist file since those can be confusing because you may assume the error is in your bulk list like it would be for the previous reasons.

Try out building your own local ports with the options you prefer that are different than the defaults.  Of course, once more, Essential caveat: Use those scripts at your own risk, I make no promises.  I believe they are safe but test and verify and choose to use them when you're satisfied.  Try them in a jail for added safety and see how everything functions, edit or modify them, do as you please.

Luanti minetest fallout

It had been mentioned long ago that minetest ought to change its name.  This was considered necessary for the minetest engine to be viewed apart from minetest the minecraft-esque game.  Distancing itself from a very specific type of voxel game would allow for the engine to be used for a greater variety of game development using the engine, much like godot and others.  The change to the name of the executable, and all references to it in most places in the code and supporting files, and the eventual switch to a git repo with its name cause a lot of upheaval.

The new name for the engine is Luanti, is a sensible and meaningful name even if some won't change their thinking of it and may continue to refer to it as minetest.  Many paths once had a minetest directory, many files installed either had minetest in their name or were placed in one of those directories.  What I had to change over a few days and a few upstream commits included the pkg-plist and some lines in the Makefile.  I had to test numerous times, after each change to be sure everything was done accurately.  At present, the upstream git repo is not yet luanti-org/luanti, but it may change in time from what is now minetest/minetest.

The Makefile adjustments below took more time to test than to edit of course because I had to attempt to build and then check what the pkg-plist that was generated looked like.
diff -y -W 200 ./Makefile ../minetest-dev/Makefile | more

diff
# PORTNAME block											# PORTNAME block
PORTNAME=		luanti									   |	PORTNAME=		minetest
DISTVERSION=	g20241102									   |	DISTVERSION=	g20241026
CATEGORIES=		games										CATEGORIES=		games
MASTER_SITES=	GH											MASTER_SITES=	GH
PKGNAMESUFFIX=	-dev											PKGNAMESUFFIX=	-dev
DISTNAME=		${PORTNAME}-${GH_TAGNAME}							DISTNAME=		${PORTNAME}-${GH_TAGNAME}
DIST_SUBDIR=	${PORTNAME}${PKGNAMESUFFIX}								DIST_SUBDIR=	${PORTNAME}${PKGNAMESUFFIX}

# Maintainer block											# Maintainer block
MAINTAINER=		nope@nothere									MAINTAINER=		nope@nothere
COMMENT=		Near-infinite-world block sandbox game						COMMENT=		Near-infinite-world block sandbox game
WWW=			https://www.minetest.net/							WWW=			https://www.minetest.net/

# License block												# License block
LICENSE=		LGPL21+										LICENSE=		LGPL21+

# dependencies												# dependencies
LIB_DEPENDS=	libzstd.so:archivers/zstd \								LIB_DEPENDS=	libzstd.so:archivers/zstd \
				libfreetype.so:print/freetype2										libfreetype.so:print/freetype2

# uses block												# uses block
USES=			cmake iconv:wchar_t sqlite ninja:make pkgconfig:build				USES=			cmake iconv:wchar_t sqlite ninja:make pkgconfig:build
USE_GITHUB=		nodefault								   |	USE_GITHUB=     nodefault
GH_ACCOUNT=		minetest #GH_ACCOUNT=		luanti-org				   |	GH_ACCOUNT=     minetest
GH_PROJECT=		minetest #GH_PROJECT=		luanti					   |	GH_PROJECT=     minetest
GH_TAGNAME=		e952a0807b85e089eaa320cfeb09e33816d141ed				   |	GH_TAGNAME=		b7073df68cc9ca89e62a2b97c5fbb23cd1454bdf

# uses=cmake related variables										# uses=cmake related variables
CMAKE_ARGS=		-DCMAKE_BUILD_TYPE="MinSizeRel" \						CMAKE_ARGS=		-DCMAKE_BUILD_TYPE="MinSizeRel" \
				-DCUSTOM_EXAMPLE_CONF_DIR="${PREFIX}/etc" \								-DCUSTOM_EXAMPLE_CONF_DIR="${PREFIX}/etc" \
				-DCMAKE_CXX_FLAGS="-stdlib=libc++"									-DCMAKE_CXX_FLAGS="-stdlib=libc++"
#				-DCMAKE_FETCHCONTENT_FULLY_DISCONNECTED="FALSE"				#				-DCMAKE_FETCHCONTENT_FULLY_DISCONNECTED="FALSE"

# conflicts												# conflicts
CONFLICTS=		minetest irrlichtMt minetest-dev irrlicht-minetest			   |	CONFLICTS=		minetest irrlichtMt irrlicht-minetest

# wrksrc block												# wrksrc block
WRKSRC=			${WRKDIR}/minetest-${GH_TAGNAME} #WRKSRC=			${WRKDIR   |	WRKSRC=			${WRKDIR}/${PORTNAME}-${GH_TAGNAME}

# packaging list block											# packaging list block
#DOCS=		*											#DOCS=		*
#PORTDATA=		*										#PORTDATA=		*

# options definitions											# options definitions
OPTIONS_DEFAULT=			CURL DOCS LTO SOUND SPATIAL SYSTEM_LUAJIT SYSTEM_FONTS S	OPTIONS_DEFAULT=			CURL DOCS LTO SOUND SPATIAL SYSTEM_LUAJIT SYSTEM_FONTS S
OPTIONS_GROUP=				BUILD DATABASE MISC NEEDS SYSTEM				OPTIONS_GROUP=				BUILD DATABASE MISC NEEDS SYSTEM
OPTIONS_GROUP_BUILD=		BENCHMARKS DEVTEST DOCS NCURSES PROFILING PROMETHEUS UNITTESTS #	OPTIONS_GROUP_BUILD=		BENCHMARKS DEVTEST DOCS NCURSES PROFILING PROMETHEUS UNITTESTS #
OPTIONS_GROUP_DATABASE=		LEVELDB PGSQL REDIS							OPTIONS_GROUP_DATABASE=		LEVELDB PGSQL REDIS
OPTIONS_GROUP_MISC=			LTO								OPTIONS_GROUP_MISC=			LTO
OPTIONS_GROUP_NEEDS=		CURL NLS SOUND SPATIAL							OPTIONS_GROUP_NEEDS=		CURL NLS SOUND SPATIAL
OPTIONS_GROUP_SYSTEM=		SYSTEM_FONTS SYSTEM_GMP SYSTEM_JSONCPP SYSTEM_LUAJIT			OPTIONS_GROUP_SYSTEM=		SYSTEM_FONTS SYSTEM_GMP SYSTEM_JSONCPP SYSTEM_LUAJIT
OPTIONS_MULTI=				SOFTWARE							OPTIONS_MULTI=				SOFTWARE
OPTIONS_MULTI_SOFTWARE=		CLIENT SERVER								OPTIONS_MULTI_SOFTWARE=		CLIENT SERVER
OPTIONS_SINGLE=				GRAPHICS							OPTIONS_SINGLE=				GRAPHICS
OPTIONS_SINGLE_GRAPHICS=	GLES1 GLES2 OPENGL OPENGL3						OPTIONS_SINGLE_GRAPHICS=	GLES1 GLES2 OPENGL OPENGL3
OPTIONS_SUB=				yes								OPTIONS_SUB=				yes

# options descriptions											# options descriptions
BENCHMARKS_DESC=			Build benchmarks (Adds some benchmark chat commands)		BENCHMARKS_DESC=			Build benchmarks (Adds some benchmark chat commands)
BUILD_DESC=					Admin/Dev needs						BUILD_DESC=					Admin/Dev needs
CLIENT_DESC=				Build client, add graphics and sdl2 support, dependencie	CLIENT_DESC=				Build client, add graphics and sdl2 support, dependencie
CURL_DESC=					Enable cURL support for fetching media: contentd	CURL_DESC=					Enable cURL support for fetching media: contentd
DATABASE_DESC=				Database support						DATABASE_DESC=				Database support
DEVTEST_DESC=				Install Development Test game also (INSTALL_DEVTEST)		DEVTEST_DESC=				Install Development Test game also (INSTALL_DEVTEST)
DOCS_DESC=					Build and install documentation (via doxygen)		DOCS_DESC=					Build and install documentation (via doxygen)
#GITTRACY_DESC=				Fetch Tracy git tag --build fails-- --purpose uncertain-	#GITTRACY_DESC=				Fetch Tracy git tag --build fails-- --purpose uncertain-
GLES1_DESC=					Enable OpenGL ES driver, legacy				GLES1_DESC=					Enable OpenGL ES driver, legacy
GLES2_DESC=					Enable OpenGL ES 2+ driver				GLES2_DESC=					Enable OpenGL ES 2+ driver
GRAPHICS_DESC=				Graphics support						GRAPHICS_DESC=				Graphics support
LEVELDB_DESC=				Enable LevelDB backend --broken - build fails--			LEVELDB_DESC=				Enable LevelDB backend --broken - build fails--
LTO_DESC=					Build with IPO/LTO optimizations (smaller and mo	LTO_DESC=					Build with IPO/LTO optimizations (smaller and mo
MISC_DESC=					Other options						MISC_DESC=					Other options
NCURSES_DESC=				Enables server side terminal (cli option: --terminal) (E	NCURSES_DESC=				Enables server side terminal (cli option: --terminal) (E
NEEDS_DESC=					Client essentials					NEEDS_DESC=					Client essentials
NLS_DESC=					Native Language Support (ENABLE_GETTEXT)		NLS_DESC=					Native Language Support (ENABLE_GETTEXT)
OPENGL3_DESC=				Enable OpenGL 3+ driver (likely needs sdl2 built with OP	OPENGL3_DESC=				Enable OpenGL 3+ driver (likely needs sdl2 built with OP
OPENGL_DESC=				Enable OpenGL driver						OPENGL_DESC=				Enable OpenGL driver
PGSQL_DESC=					Enable PostgreSQL map backend				PGSQL_DESC=					Enable PostgreSQL map backend
PROFILING_DESC=				Use gprof for profiling (USE_GPROF)				PROFILING_DESC=				Use gprof for profiling (USE_GPROF)
PROMETHEUS_DESC=			Build with Prometheus metrics exporter				PROMETHEUS_DESC=			Build with Prometheus metrics exporter
REDIS_DESC=					Enable Redis backend					REDIS_DESC=					Enable Redis backend
SERVER_DESC=				Build server							SERVER_DESC=				Build server
SOFTWARE_DESC=				Software components						SOFTWARE_DESC=				Software components
SOUND_DESC=					Enable sound via openal-soft				SOUND_DESC=					Enable sound via openal-soft
SPATIAL_DESC=				Enable SpatialIndex (Speeds up AreaStores)			SPATIAL_DESC=				Enable SpatialIndex (Speeds up AreaStores)
SYSTEM_DESC=				System subsitutes						SYSTEM_DESC=				System subsitutes
SYSTEM_FONTS_DESC=			Use or install default fonts from ports				SYSTEM_FONTS_DESC=			Use or install default fonts from ports
SYSTEM_GMP_DESC=			Use gmp from ports (ENABLE_SYSTEM_GMP)				SYSTEM_GMP_DESC=			Use gmp from ports (ENABLE_SYSTEM_GMP)
SYSTEM_JSONCPP_DESC=		Use jsoncpp from ports (ENABLE_SYSTEM_JSONCPP)				SYSTEM_JSONCPP_DESC=		Use jsoncpp from ports (ENABLE_SYSTEM_JSONCPP)
SYSTEM_LUAJIT_DESC=			Use or install luajit from ports (instead of bundled lua	SYSTEM_LUAJIT_DESC=			Use or install luajit from ports (instead of bundled lua
#TRACY_DESC=					Build with Tracy frame and sampling profiler --b	#TRACY_DESC=					Build with Tracy frame and sampling profiler --b
UNITTESTS_DESC=				Build unit test sources (BUILD_UNITTESTS)			UNITTESTS_DESC=				Build unit test sources (BUILD_UNITTESTS)

# options helpers											# options helpers
BENCHMARKS_CMAKE_BOOL=		BUILD_BENCHMARKS							BENCHMARKS_CMAKE_BOOL=		BUILD_BENCHMARKS
#TRACY_BUILD_DEPENDS=		tracy>0:devel/tracy							#TRACY_BUILD_DEPENDS=		tracy>0:devel/tracy
#TRACY_CMAKE_BOOL=			BUILD_WITH_TRACY						#TRACY_CMAKE_BOOL=			BUILD_WITH_TRACY
CLIENT_LIB_DEPENDS=			libpng16.so:graphics/png					CLIENT_LIB_DEPENDS=			libpng16.so:graphics/png
CLIENT_USES=				gl xorg jpeg sdl						CLIENT_USES=				gl xorg jpeg sdl
CLIENT_USE=	\											CLIENT_USE=	\
							GL=glu \												GL=glu \
							SDL=sdl2,ttf2 \												SDL=sdl2,ttf2 \
							XORG=ice,sm,x11,xext,xcb,xres,xshmfence,								XORG=ice,sm,x11,xext,xcb,xres,xshmfence,
							xfixes,xft,xinerama,xkbfile,xmu,xpm,xran								xfixes,xft,xinerama,xkbfile,xmu,xpm,xran

CLIENT_CMAKE_BOOL=			BUILD_CLIENT							CLIENT_CMAKE_BOOL=			BUILD_CLIENT
CURL_LIB_DEPENDS=			libcurl.so:ftp/curl						CURL_LIB_DEPENDS=			libcurl.so:ftp/curl
CURL_CMAKE_BOOL=			ENABLE_CURL							CURL_CMAKE_BOOL=			ENABLE_CURL
DEVTEST_CMAKE_BOOL=			INSTALL_DEVTEST							DEVTEST_CMAKE_BOOL=			INSTALL_DEVTEST
DOCS_CMAKE_BOOL=			BUILD_DOCUMENTATION						DOCS_CMAKE_BOOL=			BUILD_DOCUMENTATION
GLES1_USE=					GL+=glesv1						GLES1_USE=					GL+=glesv1
GLES1_CMAKE_BOOL=			ENABLE_GLES1							GLES1_CMAKE_BOOL=			ENABLE_GLES1
GLES2_USE=					GL+=glesv2						GLES2_USE=					GL+=glesv2
GLES2_CMAKE_BOOL=			ENABLE_GLES2							GLES2_CMAKE_BOOL=			ENABLE_GLES2
LEVELDB_LIB_DEPENDS=		libleveldb.so:databases/leveldb						LEVELDB_LIB_DEPENDS=		libleveldb.so:databases/leveldb
LEVELDB_CMAKE_BOOL=			ENABLE_LEVELDB							LEVELDB_CMAKE_BOOL=			ENABLE_LEVELDB
LTO_CMAKE_BOOL=				ENABLE_LTO							LTO_CMAKE_BOOL=				ENABLE_LTO
NCURSES_USES=				ncurses								NCURSES_USES=				ncurses
NCURSES_CMAKE_BOOL=			ENABLE_CURSES							NCURSES_CMAKE_BOOL=			ENABLE_CURSES
NLS_USES=					gettext							NLS_USES=					gettext
NLS_CMAKE_BOOL=				ENABLE_GETTEXT							NLS_CMAKE_BOOL=				ENABLE_GETTEXT
NLS_LDFLAGS=				-L${LOCALBASE}/lib						NLS_LDFLAGS=				-L${LOCALBASE}/lib
OPENGL3_USE=				GL+=gl								OPENGL3_USE=				GL+=gl
OPENGL3_CMAKE_BOOL=			ENABLE_OPENGL3							OPENGL3_CMAKE_BOOL=			ENABLE_OPENGL3
OPENGL_USE=					GL+=gl							OPENGL_USE=					GL+=gl
OPENGL_CMAKE_BOOL=			ENABLE_OPENGL							OPENGL_CMAKE_BOOL=			ENABLE_OPENGL
PGSQL_USES=					pgsql							PGSQL_USES=					pgsql
PGSQL_CMAKE_BOOL=			ENABLE_POSTGRESQL						PGSQL_CMAKE_BOOL=			ENABLE_POSTGRESQL
PROFILING_CMAKE_BOOL=		USE_GPROF								PROFILING_CMAKE_BOOL=		USE_GPROF
PROMETHEUS_CMAKE_BOOL=		ENABLE_PROMETHEUS							PROMETHEUS_CMAKE_BOOL=		ENABLE_PROMETHEUS
REDIS_LIB_DEPENDS=			libhiredis.so:databases/hiredis					REDIS_LIB_DEPENDS=			libhiredis.so:databases/hiredis
REDIS_CMAKE_BOOL=			ENABLE_REDIS							REDIS_CMAKE_BOOL=			ENABLE_REDIS
SERVER_CMAKE_BOOL=			BUILD_SERVER							SERVER_CMAKE_BOOL=			BUILD_SERVER
SOUND_CMAKE_BOOL=			ENABLE_SOUND							SOUND_CMAKE_BOOL=			ENABLE_SOUND
SPATIAL_LIB_DEPENDS=		libspatialindex.so:devel/spatialindex					SPATIAL_LIB_DEPENDS=		libspatialindex.so:devel/spatialindex
SPATIAL_CMAKE_BOOL=			ENABLE_SPATIAL							SPATIAL_CMAKE_BOOL=			ENABLE_SPATIAL
SYSTEM_FONTS_RUN_DEPENDS=	${LOCALBASE}/share/fonts/ChromeOS/Arimo-Bold.ttf:x11-fonts/crosc	SYSTEM_FONTS_RUN_DEPENDS=	${LOCALBASE}/share/fonts/ChromeOS/Arimo-Bold.ttf:x11-fonts/crosc
							${LOCALBASE}/share/fonts/Droid/DroidSans								${LOCALBASE}/share/fonts/Droid/DroidSans
SYSTEM_GMP_LIB_DEPENDS=		libgmp.so:math/gmp							SYSTEM_GMP_LIB_DEPENDS=		libgmp.so:math/gmp
SYSTEM_GMP_CMAKE_BOOL=		ENABLE_SYSTEM_GMP							SYSTEM_GMP_CMAKE_BOOL=		ENABLE_SYSTEM_GMP
SYSTEM_GMP_CMAKE_ON=		-DGMP_INCLUDE_DIR="${PREFIX}/include"					SYSTEM_GMP_CMAKE_ON=		-DGMP_INCLUDE_DIR="${PREFIX}/include"
SYSTEM_JSONCPP_LIB_DEPENDS=	libjsoncpp.so:devel/jsoncpp						SYSTEM_JSONCPP_LIB_DEPENDS=	libjsoncpp.so:devel/jsoncpp
SYSTEM_JSONCPP_CMAKE_BOOL=	ENABLE_SYSTEM_JSONCPP							SYSTEM_JSONCPP_CMAKE_BOOL=	ENABLE_SYSTEM_JSONCPP
SYSTEM_JSONCPP_CMAKE_ON=	-DJSON_INCLUDE_DIR="${PREFIX}/include/jsoncpp"				SYSTEM_JSONCPP_CMAKE_ON=	-DJSON_INCLUDE_DIR="${PREFIX}/include/jsoncpp"
SYSTEM_LUAJIT_USES=			luajit								SYSTEM_LUAJIT_USES=			luajit
SYSTEM_LUAJIT_USE=			luajit								SYSTEM_LUAJIT_USE=			luajit
#SYSTEM_LUAJIT_CMAKE_BOOL=	ENABLE_LUAJIT # Redundant as one of the above includes this		#SYSTEM_LUAJIT_CMAKE_BOOL=	ENABLE_LUAJIT # Redundant as one of the above includes this
UNITTESTS_CMAKE_BOOL=		BUILD_UNITTESTS								UNITTESTS_CMAKE_BOOL=		BUILD_UNITTESTS

.include <bsd.port.options.mk>										.include <bsd.port.options.mk>

.if ${PORT_OPTIONS:MCLIENT} && ${PORT_OPTIONS:MSYSTEM_LUAJIT}						.if ${PORT_OPTIONS:MCLIENT} && ${PORT_OPTIONS:MSYSTEM_LUAJIT}
CMAKE_ARGS+=	-DENABLE_LUAJIT="ON" \									CMAKE_ARGS+=	-DENABLE_LUAJIT="ON" \
				-DREQUIRE_LUAJIT="ON"											-DREQUIRE_LUAJIT="ON"
.endif													.endif

# It used to be such that <OPTION>_USE= GL+=gl,opengl would satisfy, but `make test` does not ag	# It used to be such that <OPTION>_USE= GL+=gl,opengl would satisfy, but `make test` does not ag
.if ${PORT_OPTIONS:MCLIENT} && ${PORT_OPTIONS:MOPENGL}							.if ${PORT_OPTIONS:MCLIENT} && ${PORT_OPTIONS:MOPENGL}
USE_GL+=		glu opengl									USE_GL+=		glu opengl
USE_XORG+=		xi										USE_XORG+=		xi
.endif													.endif

.if ${PORT_OPTIONS:MCLIENT}										.if ${PORT_OPTIONS:MCLIENT}
USE_GL+=		gl										USE_GL+=		gl
.endif													.endif

.if ${PORT_OPTIONS:MCLIENT} && ${PORT_OPTIONS:MSOUND}							.if ${PORT_OPTIONS:MCLIENT} && ${PORT_OPTIONS:MSOUND}
USES+=			openal										USES+=			openal
LIB_DEPENDS+=	libogg.so:audio/libogg libvorbisfile.so:audio/libvorbis					LIB_DEPENDS+=	libogg.so:audio/libogg libvorbisfile.so:audio/libvorbis
.endif													.endif

.if ${PORT_OPTIONS:MSERVER}										.if ${PORT_OPTIONS:MSERVER}
USE_RC_SUBR=	${PORTNAME}									   |	USE_RC_SUBR=	minetest
# When the official /usr/ports/GIDs file is changed, this may be luanti instead of minetest.	   |	USERS=			minetest
# At that time the files/luanti.in will need to be modified for the user and group defined.	   |	GROUPS=			minetest
USERS=			minetest #USERS=			${PORTNAME}			   <
GROUPS=			minetest #GROUPS=		${PORTNAME}				   <
.endif													.endif

# Exactly why this must be done this way eludes me but this works and satisfies the install need	# Exactly why this must be done this way eludes me but this works and satisfies the install need
.if ${PORT_OPTIONS:MSYSTEM_FONTS}									.if ${PORT_OPTIONS:MSYSTEM_FONTS}
pre-install:												pre-install:
	${RM} ${LOCALBASE}/share/luanti/fonts/Arimo-Bold.ttf					   |		${RM} ${LOCALBASE}/share/minetest/fonts/Arimo-Bold.ttf
	${RM} ${LOCALBASE}/share/luanti/fonts/Arimo-BoldItalic.ttf				   |		${RM} ${LOCALBASE}/share/minetest/fonts/Arimo-BoldItalic.ttf
	${RM} ${LOCALBASE}/share/luanti/fonts/Arimo-Italic.ttf					   |		${RM} ${LOCALBASE}/share/minetest/fonts/Arimo-Italic.ttf
	${RM} ${LOCALBASE}/share/luanti/fonts/Cousine-Bold.ttf					   |		${RM} ${LOCALBASE}/share/minetest/fonts/Cousine-Bold.ttf
	${RM} ${LOCALBASE}/share/luanti/fonts/Cousine-BoldItalic.ttf				   |		${RM} ${LOCALBASE}/share/minetest/fonts/Cousine-BoldItalic.ttf
	${RM} ${LOCALBASE}/share/luanti/fonts/Cousine-Italic.ttf				   |		${RM} ${LOCALBASE}/share/minetest/fonts/Cousine-Italic.ttf
	${RM} ${LOCALBASE}/share/luanti/fonts/Cousine-Regular.ttf				   |		${RM} ${LOCALBASE}/share/minetest/fonts/Cousine-Regular.ttf
	${RM} ${LOCALBASE}/share/luanti/fonts/DroidSansFallbackFull.ttf				   |		${RM} ${LOCALBASE}/share/minetest/fonts/DroidSansFallbackFull.ttf
	${MKDIR} ${LOCALBASE}/share/luanti/fonts						   |		${MKDIR} ${LOCALBASE}/share/minetest/fonts
	${LN} -s ${LOCALBASE}/share/fonts/ChromeOS/Arimo-Bold.ttf ${LOCALBASE}/share/luanti/font   |		${LN} -s ${LOCALBASE}/share/fonts/ChromeOS/Arimo-Bold.ttf ${LOCALBASE}/share/minetest/fo
	${LN} -s ${LOCALBASE}/share/fonts/ChromeOS/Arimo-BoldItalic.ttf ${LOCALBASE}/share/luant   |		${LN} -s ${LOCALBASE}/share/fonts/ChromeOS/Arimo-BoldItalic.ttf ${LOCALBASE}/share/minet
	${LN} -s ${LOCALBASE}/share/fonts/ChromeOS/Arimo-Italic.ttf ${LOCALBASE}/share/luanti/fo   |		${LN} -s ${LOCALBASE}/share/fonts/ChromeOS/Arimo-Italic.ttf ${LOCALBASE}/share/minetest/
	${LN} -s ${LOCALBASE}/share/fonts/ChromeOS/Cousine-Bold.ttf ${LOCALBASE}/share/luanti/fo   |		${LN} -s ${LOCALBASE}/share/fonts/ChromeOS/Cousine-Bold.ttf ${LOCALBASE}/share/minetest/
	${LN} -s ${LOCALBASE}/share/fonts/ChromeOS/Cousine-BoldItalic.ttf ${LOCALBASE}/share/lua   |		${LN} -s ${LOCALBASE}/share/fonts/ChromeOS/Cousine-BoldItalic.ttf ${LOCALBASE}/share/min
	${LN} -s ${LOCALBASE}/share/fonts/ChromeOS/Cousine-Italic.ttf ${LOCALBASE}/share/luanti/   |		${LN} -s ${LOCALBASE}/share/fonts/ChromeOS/Cousine-Italic.ttf ${LOCALBASE}/share/minetes
	${LN} -s ${LOCALBASE}/share/fonts/ChromeOS/Cousine-Regular.ttf ${LOCALBASE}/share/luanti   |		${LN} -s ${LOCALBASE}/share/fonts/ChromeOS/Cousine-Regular.ttf ${LOCALBASE}/share/minete
	${LN} -s ${LOCALBASE}/share/fonts/Droid/DroidSansFallbackFull.ttf ${LOCALBASE}/share/lua   |		${LN} -s ${LOCALBASE}/share/fonts/Droid/DroidSansFallbackFull.ttf ${LOCALBASE}/share/min
.endif													.endif
												   <
# These are temporary links which might only be useful for transition and a blind update, when u   <
post-stage:											   <
	${RM} ${STAGEDIR}${LOCALBASE}/bin/minetest						   <
	${RM} ${STAGEDIR}${LOCALBASE}/bin/minetestserver					   <
												   <

post-install:												post-install:
	@${ECHO_MSG} " "											@${ECHO_MSG} " "
	@${ECHO_MSG} "-->  "${PREFIX}/etc/"minetest.conf.example explains options and gives thei		@${ECHO_MSG} "-->  "${PREFIX}/etc/"minetest.conf.example explains options and gives thei
	@${ECHO_MSG} " "											@${ECHO_MSG} " "
	@${ECHO_MSG} "-->  Local network issues could cause singleplayer to fail. "				@${ECHO_MSG} "-->  Local network issues could cause singleplayer to fail. "
	@${ECHO_MSG} " "											@${ECHO_MSG} " "
	@${ECHO_MSG} "-->  Alternate graphics driver may be set in client config, must be set to		@${ECHO_MSG} "-->  Alternate graphics driver may be set in client config, must be set to
	@${ECHO_MSG} "     -- One in minetest config, opengles likely needs sdl option built wit		@${ECHO_MSG} "     -- One in minetest config, opengles likely needs sdl option built wit
	@${ECHO_MSG} " "											@${ECHO_MSG} " "
	@${ECHO_MSG} " "											@${ECHO_MSG} " "

#----------------------------------------------------------------------					#----------------------------------------------------------------------
# Warning: you might not need LIB_DEPENDS on libGL.so							# Warning: you might not need LIB_DEPENDS on libGL.so
# Warning: you might not need LIB_DEPENDS on libSDL2.so							# Warning: you might not need LIB_DEPENDS on libSDL2.so
# Warning: you might not need LIB_DEPENDS on libSDL2_ttf.so						# Warning: you might not need LIB_DEPENDS on libSDL2_ttf.so
# Warning: you might not need LIB_DEPENDS on libopenal.so.1						# Warning: you might not need LIB_DEPENDS on libopenal.so.1
#----------------------------------------------------------------------					#----------------------------------------------------------------------
#----------------------------------------------------------------------					#----------------------------------------------------------------------
#CMake Warning:												#CMake Warning:
#  Manually-specified variables were not used by the project:						#  Manually-specified variables were not used by the project:
#													#
#    CMAKE_MODULE_LINKER_FLAGS										#    CMAKE_MODULE_LINKER_FLAGS
#    CMAKE_SHARED_LINKER_FLAGS										#    CMAKE_SHARED_LINKER_FLAGS
#    CMAKE_VERBOSE_MAKEFILE										#    CMAKE_VERBOSE_MAKEFILE
#    FETCHCONTENT_FULLY_DISCONNECTED									#    FETCHCONTENT_FULLY_DISCONNECTED
#    ICONV_INCLUDE_DIR											#    ICONV_INCLUDE_DIR
#    ICONV_LIBRARIES											#    ICONV_LIBRARIES
#    LIBICONV_INCLUDE_DIR										#    LIBICONV_INCLUDE_DIR
#    LIBICONV_LIBRARIES											#    LIBICONV_LIBRARIES
#    LIBICONV_LIBRARY											#    LIBICONV_LIBRARY
#----------------------------------------------------------------------					#----------------------------------------------------------------------

.include <bsd.port.mk>											.include <bsd.port.mk>

I automate some pkg-plist adjustments with a simple script I modify for each significant 'unofficial port' that I make.  It speeds the process of making sure that everything is accurate and consistent between rebuilds and new commits to my repo based upon upstream changes.  All the places in the script where it now has luanti had once been minetest.

plist-fix
#!/bin/sh
rm /var/tmp/luanti-dev_pkg-plist 2>/dev/null
rm /var/tmp/luanti-dev_pkg-plist-fixed 2>/dev/null
cp ../pkg-plist /var/tmp/luanti-dev_pkg-plist

echo "adding conditional list tags"

cat /var/tmp/minetest-dev_pkg-plist | \
sed \
-e 's#^\/you\/have\/to\/check\/what\/makeplist\/gives\/you##' \
-e '/^$/d' \
-e 's#^share\/locale#\%\%CLIENT\%\%\%\%NLS\%\%share\/locale#g' \
-e 's#^\%\%PORT#\%\%#g' \
-e 's#^bin/luantiserver#\%\%SERVER\%\%bin/luantiserver#1' \
-e 's#^bin/luanti#\%\%CLIENT\%\%bin/luanti#1' \
-e 's#^\%\%ETCDIR\%\%.conf.example#@sample\ etc/minetest.conf.example\ etc/minetest.conf#' \
-e 's#^\%\%ETCDIR\%\%.conf.example#@sample\ etc/luanti.conf.example\ etc/luanti.conf#' \
-e 's#^etc/rc.d/minetest#\%\%SERVER\%\%etc/rc.d/minetest#1' \
-e 's#^etc/rc.d/luanti#\%\%SERVER\%\%etc/rc.d/luanti#1' \
-e 's#^share/man/man6/luanti.6.gz#\%\%CLIENT\%\%share/man/man6/luanti.6.gz#1' \
-e 's#^share/man/man6/luantiserver.6.gz#\%\%SERVER\%\%share/man/man6/luantiserver.6.gz#1' \
-e 's#^\%\%DATADIR\%\%/client#\%\%CLIENT\%\%\%\%DATADIR\%\%/client#g' \
-e 's#^\%\%DATADIR\%\%/fonts#\%\%CLIENT\%\%\%\%DATADIR\%\%/fonts#g' \
-e 's#^\%\%DATADIR\%\%/textures#\%\%CLIENT\%\%\%\%DATADIR\%\%/textures#g' \
-e 's#^\%\%DATADIR\%\%/games/devtest#\%\%DEVTEST\%\%\%\%DATADIR\%\%/games/devtest#g' \
> /var/tmp/luanti-dev_pkg-plist-fixed
cp /var/tmp/luanti-dev_pkg-plist-fixed ../pkg-plist

The options config has changed somewhat, organized a little nicer.  The touch option was moved into the luanti config itself, and my method to use system fonts instead of bundled fonts can still be toggled.

┌────────────────────────────────────────┤luanti-dev-g20241102├─────────────────────────────────────────┐
│ 'F1' for Ports Collection help.                                                                       │
│ ┌───────────────────────────────────────────────────────────────────────────────────────────────────┐ │
│ │──────────────────────────────────────── Admin/Dev needs ──────────────────────────────────────────│ │
│ │[X] BENCHMARKS     Build benchmarks (Adds some benchmark chat commands)                            │ │
│ │[X] DEVTEST        Install Development Test game also (INSTALL_DEVTEST)                            │ │
│ │[X] DOCS           Build and install documentation (via doxygen)                                   │ │
│ │[X] NCURSES        Enables server side terminal (cli option: --terminal) (ENABLE_CURSES)           │ │
│ │[X] PROFILING      Use gprof for profiling (USE_GPROF)                                             │ │
│ │[X] PROMETHEUS     Build with Prometheus metrics exporter                                          │ │
│ │[X] UNITTESTS      Build unit test sources (BUILD_UNITTESTS)                                       │ │
│ │──────────────────────────────────────── Database support ─────────────────────────────────────────│ │
│ │[ ] LEVELDB        Enable LevelDB backend --broken - build fails--                                 │ │
│ │[ ] PGSQL          Enable PostgreSQL map backend                                                   │ │
│ │[ ] REDIS          Enable Redis backend                                                            │ │
│ │───────────────────────────────────────── Other options ───────────────────────────────────────────│ │
│ │[X] LTO            Build with IPO/LTO optimizations (smaller and more efficient than regular build)│ │
│ │─────────────────────────────────────── Client essentials ─────────────────────────────────────────│ │
│ │[X] CURL           Enable cURL support for fetching media: contentdb                               │ │
│ │[X] NLS            Native Language Support (ENABLE_GETTEXT)                                        │ │
│ │[X] SOUND          Enable sound via openal-soft                                                    │ │
│ │[X] SPATIAL        Enable SpatialIndex (Speeds up AreaStores)                                      │ │
│ │─────────────────────────────────────── System subsitutes ─────────────────────────────────────────│ │
│ │[X] SYSTEM_FONTS   Use or install default fonts from ports                                         │ │
│ │[X] SYSTEM_GMP     Use gmp from ports (ENABLE_SYSTEM_GMP)                                          │ │
│ │[X] SYSTEM_JSONCPP Use jsoncpp from ports (ENABLE_SYSTEM_JSONCPP)                                  │ │
│ │[X] SYSTEM_LUAJIT  Use or install luajit from ports (instead of bundled lua)                       │ │
│ │──────────────────────────── Software components [select at least one] ────────────────────────────│ │
│ │[X] CLIENT         Build client, add graphics and sdl2 support, dependencies                       │ │
│ │[X] SERVER         Build server                                                                    │ │
│ │───────────────────────────── Graphics support [select at least one] ──────────────────────────────│ │
│ │( ) GLES1          Enable OpenGL ES driver, legacy                                                 │ │
│ │( ) GLES2          Enable OpenGL ES 2+ driver                                                      │ │
│ │(*) OPENGL         Enable OpenGL driver                                                            │ │
│ │( ) OPENGL3        Enable OpenGL 3+ driver (likely needs sdl2 built with OPENGLES)                 │ │
│ └───────────────────────────────────────────────────────────────────────────────────────────────────┘ │
├───────────────────────────────────────────────────────────────────────────────────────────────────────┤
│                                         [  OK  ]     [Cancel]                                         │
└───────────────────────────────────────────────────────────────────────────────────────────────────────┘

If you had used minetest in the past, one other change is rather visible.  I toggled off the clouds in the luanti config which makes it much more game agnostic.

Luanti start screen GUI

At the moment this is the only way you can use the very most current Lunati client for minetest games and for your game engine needs.  Eventually the ports committer for games/minetest will have to go through much of the same work I finished above to create games/luanti.  Their task is delayed for public consumption even if they have done the work on their local machine because they track releases rather than upstream commits as I do.

Repo url:

Thursday, September 26, 2024

Bisect was a cache

I had been having troubles playing minetest, the symptom was sporadic lag, slowdowns, stuttering.  I had been seeing debug information in the xterm where I start minetest or other messages suggesting something that implied bad network.  Eventually I mentioned this on a NodeCore minetest discord server and gave information about what I was seeing.  This is where I was told that it seemed like my lag was network related.

The debug text repeated many many times:

2024-09-24 20:42:06: WARNING[Main]: collisionMoveSimple: maximum step interval exceeded, lost movement details

Within the next day or so, I finally decided to try to upgrade the ZIL and SLOG on my main box which I use to play minetest.  I had set two SSDs for this quite a long time ago and couldn't remember which one was the SLOG and which was the ZIL, so I ended up causing both to be disabled by pulling them out.  I managed to restore the SLOG but did not fix the ZIL at that moment.

What I discovered after this happened while the ZIL (cache) device was no longer being used, completely nonexistent and removed from my box, was that minetest no longer had those lag issues.  Prior to this, I had planned to attempt to discover where in the series of commits to minetest that things went wrong.  I had backtracked to a much earlier version of minetest, hoping to find a time when this sporadic but slowly progressively worsening lag began.  I was set to learn how to bisect the commits to discover when the issue appeared, but since removing the cache SSD cured the lag for my minetest client and also shortly also noticed some less snappiness in my GUI (FVWM3) as well, the whole bisect need was averted.  This blog post would have documented my experience with the whole bisect of minetest client process had I done so.

Instead of telling my tale of learning something new (bisect) I learned that my cache device must have had some kind of problem which was dragging my entire system down.  This should be one more thing to check, to see if your unexplained network lag debug report or similar message indicating network performance issues has nothing to do with actual networking, rather that essentially disk i/o was interfering with network transmission.  If I knew off the top of my head how better to triage disk i/o, or prove that it was not network in actuality, then this entire conversation is likely to have been much shorter.

Since the cache (ZIL) was removed, I took a few moments to attach two 500GB SSDs as a striped cache device.  Perhaps over time it will speed things up, but at least now it is only going to be a positive addition, not something which will slow the system and network packets for a game.  If you have cache devices attached to your system for ZIL especially, remember that it can be the reason for general lag on your system when that SSD becomes faulty in one regard or another.

Friday, August 9, 2024

make.conf in control

I have mentioned previously that I have a rather extensive /etc/make.conf file.  This very copiously commented file is below.  In the past I defined many of the defaults listed but now accept many of those as defined by /usr/ports/Mk/bsd.default-versions.mk because some of the most current versions are set as default.  Some other ports which may have ambiguous versions I choose to be specific or if the default is not as new as I wish, I set it.  It is a very good idea to include comments where ever possible in any configuration file because you may want to note a documentation source as the reason or to recall why something was done.

Using this extensive make.conf it should default to any options defined within, if the config is removed (make rmconfig).  Some things specifically set options, some options are defined in order to help avoid conflicts, especially when radio buttons are used.  Many documentation excerpts from /usr/ports/Mk files.  The bulk set/unset keywords assume that those keywords are consistent across disparite ports but where this is not true or other keywords are needed, those are options defined.  it would be a very good idea to periodically revisit this file to see what needs adjusting.  Check with each release and when noted in /usr/ports/updating when things change, especially defaults in /usr/ports/Mk/bsd.default-versions.mk to be sure the desired result is achieved.

make.conf
### make.conf
#################################################################################################################################################
# There are a number of things you can do to reduce the size and number of files in /boot/kernel.
#
# Possibly the best space saving is to be had by setting WITHOUT_KERNEL_SYMBOLS in /etc/src.conf
# (if this file doesn't already exist, just create it), and the next time you installkernel, the
# debug symbol files won't be installed. It's safe to delete them now, if you need the space
# immediately (rm /boot/kernel/*.symbols)
#
# There are a few make.conf settings that control what modules are built:
#
#    NO_MODULES - disable building of modules completely
#    MODULES_OVERRIDE - specify the modules you want to build
#    WITHOUT_MODULES - list of modules that should not be built
#
# The NO_MODULES option is probably a bit too heavy-handed, so a judicious combination of the
# other two is a better choice. If you know exactly which modules you want, you can simply set
# them in MODULES_OVERRIDE. Note that WITHOUT_MODULES is evaluated after MODULES_OVERRIDE, so
# any module named in both lists will not be built.
#
# If you really want to suppress building of all modules, you can use NO_MODULES, and ensure
# that all required drivers and modules are statically compiled into the kernel. Each driver's
# manpage shows the appropriate lines to add to your kernel config file, so you should be able
# to figure out what you need.
#################################################################################################################################################
#_______________________________________________________________________________
#										|
# This toggle for developer helps to discover issues with ports building. It is |
# not used by poudriere, which would need testport or other options.		|
#_______________________________________________________________________________|

DEVELOPER=yes

DISABLE_VULNERABILITIES=yes
TRYBROKEN=true

#_______________________________________________________________
#								|
# USE_PACKAGE_DEPENDS=yes					|
#								|
# Try to install dependencies from existing packages instead	|
#  of building the port from scratch. Fallback on source	|
#  if an existing package is not present.			|
#								|
# USE_PACKAGE_DEPENDS_ONLY=yes					|
#								|
# Like USE_PACKAGE_DEPENDS, but do not fallback on source.	|
#_______________________________________________________________|

USE_PACKAGE_DEPENDS=yes

#_______________________________________________________
#							#
# Use ccache for builds					#
#_______________________________________________________#

WITH_CCACHE_BUILD=yes

.if ${.CURDIR:M^/usr/src/}
CCACHE_DIR=/var/cache/base/ccache
.else
CCACHE_DIR=/var/cache/ccache
.endif

#_______________________________________________________________________________
#										#
#  This is set in /usr/ports/Mk/Uses/jpeg.mk					#
#	JPEG_PORT=graphics/jpeg-turbo						#
#_______________________________________________________________________________#

#_______________________________________________________
#							#
#WITH_DEBUG_PORTS+=editors/openoffice-devel		#
#WITH_DEBUG_PORTS+=editors/openoffice-4			#
#_______________________________________________________#

#################################################################################################################################################

#  _____________________________________________________________
# /								\
# | Universal DEFAULT versions					|
# |								|
# | values defined in /usr/ports/Mk/bsd.default-versions.mk	|
# \_____________________________________________________________/


#_______________________________________________________
#							#
# No reason to set this as prefer llvm etc.		#
# DEFAULT_VERSIONS+=gcc=12				#
#_______________________________________________________#


#_______________________________________________________
#							#
# Ghostscript						#
# Possible values: 10					#
# DEFAULT_VERSIONS+=GHOSTSCRIPT=10			#
#_______________________________________________________#


#_______________________________________________________
#							#
# Possible values: mesa-libs, mesa-devel		#
# GL_DEFAULT?=            mesa-libs			#
# DEFAULT_VERSIONS+=gl=mesa-libs			#
#_______________________________________________________#


#_______________________________________________________
#							#
# Imagemagick						#
# Possible versions: 6, 7				#
# Possible flavors:  x11, nox11				#
#                    (defaults to x11 if not specified) #
# Format:            version[-flavor]			#
# Examples:          6-nox11, 7				#
#							#
# DEFAULT_VERSIONS+=IMAGEMAGICK=7			#
#_______________________________________________________#


#_______________________________________________________
#							#
# Java							#
# Possible values: 8, 11, 17, 18, 19, 20, 21		#
#_______________________________________________________#
DEFAULT_VERSIONS+=JAVA=21


#_______________________________________________________
#							#
# centos or rocky linux	both downstream rhel		#
# centos is deprecated but has 32bit?			#
# rocky is newer but 64bit only?			#
# Possible values: c7 rl9				#
#_______________________________________________________#
DEFAULT_VERSIONS+=LINUX=rl9


#_______________________________________________________
#							#
# llvm							#
# Possible values: 					#
#  11, 12, 13, 14, 15, 16, 17, -devel			#
# (to be used when non-base compiler is required)	#
# 							#
#_______________________________________________________#
DEFAULT_VERSIONS+=LLVM=17


#_______________________________________________________
#							#
# Lua							#
# Possible values: 5.1, 5.2, 5.3, 5.4			#
#							#
# DEFAULT_VERSIONS+=LUA=5.4				#
#_______________________________________________________#


#_______________________________________________________
#                                                       #
# Luajit                                                #
# Possible values:                                      #
#        luajit, luajit-devel, luajit-openresty         #
#                                                       #
# Auto sets to luajit-devel if not powerpc64*		#
#                                                       #
# DEFAULT_VERSIONS+=LUAJIT=luajit-openresty		#
#_______________________________________________________#


#_______________________________________________________
# Possible values: 3.8, 3.9, 3.10, 3.11			#
#							#
# PYTHON_DEFAULT?=        3.11				#
#							#
# Possible values: 2.7					#
# PYTHON2_DEFAULT?=       2.7				#
#							#
# DEFAULT_VERSIONS+=python=3.11				#
#_______________________________________________________#


#_______________________________________________________
#							#
# Ruby							#
# Possible values: 2.7, 3.0, 3.1, 3.2			#
#							#
# DEFAULT_VERSIONS+=RUBY=3.2				#
#_______________________________________________________#


#_______________________________________________________
#							#
# Rust 							#
# While it may make some sense to have -nightly the 	#
# default, it is build fail prone or too new.		#
# Possible values: rust, rust-nightly			#
#_______________________________________________________#
DEFAULT_VERSIONS+=RUST=rust


#_______________________________________________________________________________
#										#
# Would prefer libressl for all things but it tends to be incompatible with any	#
# random thing periodically which breaks MANY ports.				#
# libressl-devel is often too new for rust-nightly etc				#
#										#
# FYI:	security/cryptopp is just as important for many ports.			#
#	py-cryptography								#
#										#
# When updating this, please also update the same list in ssl.mk and the checks	#
# for USES=ssl in qa.sh!							#
# Possible values: base, openssl, openssl111, openssl31, openssl32, openssl33,	#
#				   libressl, libressl-devel			#
#.  if !defined(SSL_DEFAULT)							#
#       If no preference was set, check for an installed base version		#
#       but give an installed port preference over it.				#
# SSL										#
# Possible values: base, openssl, libressl, libressl-devel			#
#										#
# DEFAULT_VERSIONS+=SSL=openssl							#
#										#
# Do I have ssl in base built or denied?					#
#_______________________________________________________________________________#
DEFAULT_VERSIONS+=SSL=openssl


#_______________________________________________________
#							#
# tcl/tk						#
# Possible values: 8.5, 8.6, 8.7			#
#							#
# DEFAULT_VERSIONS+=TCLTK=8.6				#
#_______________________________________________________#
DEFAULT_VERSIONS+=TCLTK=8.7


#################################################################################################################################################

#_______________________________________________________
#							#
# Changes in general to config toggles			#
#_______________________________________________________#

OPTIONS_UNSET+=A4 ALSA APE APPLEDEV ARCHDEF ATK_BRIDGE ATLAS AVAHI AVX AVX2
OPTIONS_UNSET+=BASH BONMIN BOOTSTRAP
OPTIONS_UNSET+=CCL CHEESE CHINESE CHROMECAST CMUCL COLORD CPACK CPU_CLIP
OPTIONS_UNSET+=DBUS DEBUG DEVD DTRACE
OPTIONS_UNSET+=ECL EMACS_KEYS ENCODINGS ETERSOFT
OPTIONS_UNSET+=FAM FREERDP FRENCH
OPTIONS_UNSET+=GCRYPT GEOCLUE GEOIP GEOLOC GLX GNUTLS GNOMEUI GNOMEVFS GPERFTOOLS GPOD GPS GPSD GRAPHITE GRAPHVIZ
OPTIONS_UNSET+=HAL HALD
OPTIONS_UNSET+=IMOBILE INOTIFY INTEGER_SAMPLES IPOD IPOPT
OPTIONS_UNSET+=JACK JAPANESE
OPTIONS_UNSET+=KOREAN
OPTIONS_UNSET+=LAPACK LDAP LIBBLURAY LIBEXECINFO LIBJTE LIBSIGSEGV LIRC LOCALE_DE LOCALE_RU
OPTIONS_UNSET+=MAD MARS MDNS MDNSRESPONDER METRIC MHASH MTPFS MTPZ MUPDF
OPTIONS_UNSET+=NETTLE NLS NOTIFY NTSC NVIDIA NVIT NVTHREADS NVTT
OPTIONS_UNSET+=OPENBLAS OPENCV
OPTIONS_UNSET+=PAL PERL_64BITINT PGSQL PSGHOSTSCRIPT PSHYBRID PULSEAUDIO PURPOSE
OPTIONS_UNSET+=Q8BIT QPOASES QTWEBENGINE QT5AGGBACKEND
OPTIONS_UNSET+=RCC READLINE RUNROOT RUSSIAN RETEXTURE_FULL
OPTIONS_UNSET+=SAGE SAMBA SASL SCFB SMB SKYDRIVE SNDIO SOX SPEECHD SPEED STATIC
OPTIONS_UNSET+=TEST TOMCAT85 TOMCAT9 TPM
OPTIONS_UNSET+=UPNP
OPTIONS_UNSET+=V4L
OPTIONS_UNSET+=WEBENGINE WIIMOTEDEV WIKI_PUBLISHER
OPTIONS_UNSET+=XBACKLIGHT
OPTIONS_UNSET+=ZSH

#----------

OPTIONS_SET+=3DNOW 7ZIP
OPTIONS_SET+=A52 AALIB AAC ALLSTAGES ANY2DJVU AOM API APNG ARMOR ASM ASS AUDIO AUDIOCD
OPTIONS_SET+=BABEL BE_AMDGPU BEATPORT BE_NATIVE BOOST BROTLI BUNDLED_READLINE BZIP2
OPTIONS_SET+=CA_BUNDLE CACA CAIRO CBLAS CDDA2MP3 CDDA2OGG CDDB CERTS CLANG CLEARTYPE CLIENT COMPFACE COMPILER_RT COINMP CONFIG \
		CONTRIB CPU_OPTS CRAFTY CRYPTO CRYPTOPP CUPS CURL
OPTIONS_SET+=DCA DCRAW DESKTOPFILES DRILL DTS DUNSTIFY DVD DYNAMIC_ARCH DYNSIMD
OPTIONS_SET+=EDITOR EGL ELMUSIC ELSOUND ENCHANT ETCSYMLINK EXAMPLES EXIV EXPAT EXR EXTRAFONTS EXTRAS EYECANDY
OPTIONS_SET+=FAAC FAAD FAIRYMAX FETCHART FFMPEG FFTW FFTW3 FLAC FLANG FLITE FLUID FLUIDSYNTH FONTCONFIG FORTRAN FREETYPE FREI0R \
		FRIBIDI
OPTIONS_SET+=GAME GECKO GHOSTSCRIPT GIR GLASSFISH GLX GM GMP GNUCHESS GNUPG2 GOEMON GOLD GSL GSTREAMER GST_PLUGINS GUESTADDITIONS
OPTIONS_SET+=HARFBUZZ HUNSPELL HYPRE
OPTIONS_SET+=ICONV ICS_VCAL ID3TAG IJS IMAGEMAGICK IO_PTR IPV6 IRRLICHT
OPTIONS_SET+=JASPER JAVA JPEG2000 JSON
OPTIONS_SET+=KF5 KNIGHTCAP
OPTIONS_SET+=LADSPA LAME LARGE_STACK LASTFM LAUNCHER LCMS2 LHA LIBEDIT LIBEDIT_DL LIBFFI LIBPAPER LIBPLACEBO LIBPNG LIBRSVG2 LIBSSH2 \
		LIBXML LIBYAML LIT LLD LLDB LLD_LINK LOCALE_EN LUAJIT LV2 LZ4 LZO
OPTIONS_SET+=MAN MAN3 MANPAGE MANPAGES MATERIALX MFX MIDI MIKMOD MLIR MMX MNG_OPTIMIZE MODPLUG MONO MP3 MP3OGG MPG123 MPEG2 MPI \
		MT32EMU MTP MULTILIB MULTIPLICITY MUSEPACK MUSIC MYSQL
OPTIONS_SET+=NCURSES NETLIB NETTLE NONFREE NUMPY
OPTIONS_SET+=OBJC OGG OGRE ONIGURUMA OPENAL OPENAL_DLOPEN OPENCL OPENGL OPENH264 OPENJADE OPENMP OPENMPI OPTIMIZE OPTIMIZED_CFLAGS \
		OPUS OSS
OPTIONS_SET+=PANGO PANGOCAIRO PARALLEL_MARK PERL_MALLOC PETSC PHALANX PHYSFS PNG POPPLER PSPOPPLER PTHREADS PYCLANG PYGMENTS PYMALLOC \
		PYSTEMMER
#OPTIONS_SET+=QT5AGGBACKEND
OPTIONS_SET+=RAR RDOFF REALRTSP RELEASE RELRO REMIX1 REMIX2 REMIX3 REMIX4 REPLAYGAIN RETEXTURE RHASH RTCPU RUNTIME
OPTIONS_SET+=SAMPLERATE SBCL SCHROEDINGER SDL SDL1 SDL2 SDLCLIENT SDLGL SDL_AUDIO SDL_VIDEO SESSION_MGMT SHARED SHOUTCAST SIMD \
		SIPHASH SKINS SLP SLURM SMPEG SNAPPY SOLUTIONS SOUND SOUNDTOUCH SPEEX SQLITE SSE SSE2 SSH STARTUP SUITESPARSE SVG \
		SYSTEM_ZLIB
OPTIONS_SET+=TAGLIB TAGSOUP TCL THEMES THEORA THREADS TIDYHTML5 TIMIDITYPLUS TKINTER TOC2MP3 TWOLAME TZDATA TZUPDATE
OPTIONS_SET+=UDEV
OPTIONS_SET+=VAAPI VALA VDPAU VIDEOREC VIEWER VKD3D VLC VOICE VORBIS VPX VULKAN
OPTIONS_SET+=WATCHDOG WAVPACK WAYLAND WINEMAKER WXGTK
OPTIONS_SET+=X11 X264 X265 XCB XGLK XINERAMA
OPTIONS_SET+=YAML
OPTIONS_SET+=ZIP ZIPPY ZLIB ZSTD ZVBI
# ---------------------------------------------<  End user additions and modifications >--------------------------------------------- #


#_______________________________________________________________________________________________________
#													#
#  * Openblas, Netlib (cblas), and Atlas are all options for math routines.				#
#  * cblas seems to be ovewhelmingly used with games, and by py-numpy.					#
#    therefore set to prefer cblas and netlib								#
#													#
#  * qt-location is problematic and depended upon by qt-webengine					#
#													#
#  * egl purported better and more supported than glx							#
# libedit is BSD and lighter while readline is gpl/gnu -- better to use bundled readline than as port	#
#													#
#  * rhash is MIT, gcrypt is gnu/gpl, mhash is lgpl							#
#													#
#  * MTPFS and MTPZ are related to accessing mobile devices such as their internal storage.		#
#													#
#  * NOTIFY option causes dbus to be installed								#
#_______________________________________________________________________________________________________#


#_______________________________________________________________________________
#										#
#  processor instructions support						#
#										#
#   older AMD processors do not have AVX or AVX2				#
#   https://en.wikipedia.org/wiki/Advanced_Vector_Extensions#CPUs_with_AVX2	#
#   AMD does have SSE2								#
#   newer AMD processors do not have 3dNow					#
#_______________________________________________________________________________#


#############################################        #######   #######   #######   ######   ######
####                                     ####      #######   #######   #######   ######   ######
####  an UNSET always overrides a SET    ####    #######   #######   ######    ######   ######
####                                     ####      #######   #######   #######   ######   ######
#############################################        #######   #######   #######   ######   ######

####################################################################
####								####
####	OPTIONS_UNSET_FORCE overrides user interactive set	####
####								####
####################################################################

#_______________________________________________________________________
#									#
# Flavored ports -- this works as expected				#
#_______________________________________________________________________#

.if ${.CURDIR:M*/ports/security/libressl-devel}
  #FLAVOR=libtls
  FLAVOR=default
.endif

.if ${.CURDIR:M*/ports/devel/git}
#  FLAVOR=tiny
.endif

.if ${.CURDIR:M*/ports/x11-toolkits/wx}
  FLAVOR=gtk3
.endif

.if ${.CURDIR:M*/ports/devel/bullet}
  FLAVOR=
.endif

#_______________________________________________________________________
#									#
# Flavored ports end							#
#_______________________________________________________________________#


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# Static needed for use with poudriere --		#
# revisit the memcached option when not experimental	#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/devel/ccache}
  NO_CCACHE=yes
  WITH_CCACHE_BUILD=no
.endif
.if ${.CURDIR:M*/ports/devel/ccache}
  OPTIONS_UNSET=DOCS
  OPTIONS_SET=CLANGLINK STATIC LLVMLINK
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# OpenSSL has many options, some unsafe			#
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#

.if ${.CURDIR:M*/ports/security/openssl}
OPTIONS_SET+=ASYNC
OPTIONS_SET+=CT
OPTIONS_SET+=KTLS
OPTIONS_SET+=MAN3
OPTIONS_SET+=RFC3779
OPTIONS_SET+=SHARED
OPTIONS_SET+=ZLIB

OPTIONS_SET+=ARIA
OPTIONS_SET+=DES
OPTIONS_SET+=GOST
OPTIONS_SET+=IDEA
OPTIONS_UNSET+=SM4
OPTIONS_UNSET+=RC2
OPTIONS_UNSET+=RC4
OPTIONS_UNSET+=RC5
OPTIONS_UNSET+=WEAK-SSL-CIPHERS

OPTIONS_UNSET+=MD2
OPTIONS_UNSET+=MD4
OPTIONS_SET+=MDC2
OPTIONS_SET+=RMD160
OPTIONS_SET+=SM2
OPTIONS_SET+=SM3

OPTIONS_SET+=ASM
OPTIONS_SET+=SSE2
OPTIONS_SET+=THREADS
OPTIONS_SET+=EC

OPTIONS_SET+=NEXTPROTONEG
OPTIONS_SET+=SCTP
OPTIONS_UNSET+=SSL3
OPTIONS_SET+=TLS1
OPTIONS_SET+=TLS1_1
OPTIONS_SET+=TLS1_2
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# py-sphinx adjustments dunno why now			#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/textproc/py-sphinx}
RUN_DEPENDS=    ${PYTHON_PKGNAMEPREFIX}sphinxcontrib-devhelp>=0:textproc/py-sphinxcontrib-devhelp@${PY_FLAVOR} \
                ${PYTHON_PKGNAMEPREFIX}sphinxcontrib-jsmath>=0:textproc/py-sphinxcontrib-jsmath@${PY_FLAVOR} \
                ${PYTHON_PKGNAMEPREFIX}sphinxcontrib-htmlhelp>=2.0.0:textproc/py-sphinxcontrib-htmlhelp@${PY_FLAVOR} \
                ${PYTHON_PKGNAMEPREFIX}sphinxcontrib-serializinghtml>=1.1.5:textproc/py-sphinxcontrib-serializinghtml@${PY_FLAVOR} \
                ${PYTHON_PKGNAMEPREFIX}sphinxcontrib-qthelp>=0:textproc/py-sphinxcontrib-qthelp@${PY_FLAVOR} \
                ${PYTHON_PKGNAMEPREFIX}Jinja2>=3.0:devel/py-Jinja2@${PY_FLAVOR} \
                ${PYTHON_PKGNAMEPREFIX}pygments>=2.12:textproc/py-pygments@${PY_FLAVOR} \
                ${PYTHON_PKGNAMEPREFIX}docutils>=0.14,1<0.20,1:textproc/py-docutils@${PY_FLAVOR} \
                ${PYTHON_PKGNAMEPREFIX}snowballstemmer>=2.0:textproc/py-snowballstemmer@${PY_FLAVOR} \
                ${PYTHON_PKGNAMEPREFIX}Babel>=2.9:devel/py-babel@${PY_FLAVOR} \
                ${PYTHON_PKGNAMEPREFIX}alabaster>=0.7<0.8:textproc/py-alabaster@${PY_FLAVOR} \
                ${PYTHON_PKGNAMEPREFIX}imagesize>=1.3:graphics/py-imagesize@${PY_FLAVOR} \
                ${PYTHON_PKGNAMEPREFIX}requests>=2.5.0:www/py-requests@${PY_FLAVOR} \
                ${PYTHON_PKGNAMEPREFIX}packaging>=21.0:devel/py-packaging@${PY_FLAVOR} \
                ${LOCALBASE}/share/certs/ca-root-nss.crt:security/ca_root_nss
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# force pkg to have default: DOCS			#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/devel/json-glib}
OPTIONS_SET+=DOCS
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# force pkg to have default: GNUTLS			#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/net/glib-networking}
OPTIONS_SET+=GNUTLS
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# Speed up gcc build					#
#_______________________________________________________#
.if ${.CURDIR:M*/ports/lang/gcc*}
OPTIONS_UNSET+=LTO_BOOTSTRAP
OPTIONS_UNSET_FORCE+=LTO_BOOTSTRAP
OPTIONS_UNSET_FORCE+=STANDARD_BOOTSTRAP
.endif

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# wine fails with ccache				#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/emulators/wine}
WITH_CCACHE_BUILD=no
NO_CCACHE=yes
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# Until ruby builds with v3.0 this fails for manpages	#
# textproc/rubygem-asciidoctor for doc creation		#
# Rust fails to build which prevents rust-svg stuff	#
#							#
# Been building my own fvwm3-dev was with SVG or not?	#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/x11-wm/fvwm3}
OPTIONS_UNSET+=SVG
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# force json-glib proper config for clutter dependency	#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/devel/json-glib}
OPTIONS_SET+=GIR
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# Reverse tactic, special case this for slightly older	#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/devel/pylint}
DEFAULT_VERSIONS+=python=3.8
DEFAULT_VERSIONS+=python3=3.8
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# qbittorrent settings					#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/net-p2p/qbittorrent}
  OPTIONS_SET+=PYTHON
  OPTIONS_UNSET+=DBUS DEBUG
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# zziplib has trouble with sdl?				#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/devel/zziplib}
  OPTIONS_UNSET+=SDL
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# libmad radio fix					#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/audio/libmad}
  OPTIONS_UNSET+=SPEED
  OPTIONS_SET+=ACCURACY
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# soundtouch - openmp incompatible at present		#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/audio/soundtouch}
  OPTIONS_UNSET+=OPENMP
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# slurm-wlm - trouble with HDF5				#
# fails if hdf5 is enabled and was built with CXX 	#
# circular dependency if hdf5 uses PARALLEL instead	#
# all other options build fine so are set.		#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/sysutils/slurm-wlm}
  OPTIONS_SET+=CURL DOCS GUI HWLOC IPMI MYSQL RRD
  OPTIONS_UNSET+=HDF5
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# hdf5 circular dependency caused by PARALLEL option	#
# radio button so should define both as appropriate	#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/science/hdf5}
  OPTIONS_SET+=CXX
  OPTIONS_UNSET+=PARALLEL
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# fontforge config					#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/print/fontforge}
  OPTIONS_UNSET+=GTK3
  OPTIONS_SET+=READLINE FREETYPE X11
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# freetype config					#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/print/freetype*}
  OPTIONS_SET+=BROTLI
  OPTIONS_UNSET+=DEBUG
  OPTIONS_SET+=DOCS
  OPTIONS_SET+=LONG_PCF_NAMES
  OPTIONS_SET+=PNG
  OPTIONS_SET+=TABLE_VALIDATION

  OPTIONS_SET+=LCD_FILTERING
  OPTIONS_UNSET+=LCD_RENDERING

  OPTIONS_SET+=TT_SIZE_METRICS
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# libcaca config					#
# FTGL - Freetype font rendering in OpenGL		#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/graphics/libcaca}
  OPTIONS_SET+=DOCS FTGL IMLIB2 SLANG X11
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# libplacebo config					#
# GLSLANG - since already SLANG above choose that here	#
# If determined better otherwise, change both and all	#
# same for ffmpeg					#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/graphics/libplacebo}
  OPTIONS_SET+=GLSLANG
  OPTIONS_UNSET+=SHADERC
.endif

.if ${.CURDIR:M*/ports/multimedia/ffmpeg}
  OPTIONS_SET+=GLSLANG
  OPTIONS_UNSET+=SHADERC
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# mysql SASL for client not needed - connections local	#
# also has had issues with cyrus-sasl2			#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/databases/mysql57-client}
  OPTIONS_UNSET+=SASLCLIENT
.endif

.if ${.CURDIR:M*/ports/databases/mysql80-client}
  OPTIONS_UNSET+=SASLCLIENT
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# sqlite better config -- luanti (minetest) uses this	#
# Many options formalized here				#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/databases/sqlite3}
  OPTIONS_SET+=ARMOR DBPAGE DBSTAT DIRECT_READ DQS EXTENSION FTS3_TOKEN  FTS4 FTS5 MEMMAN METADATA SECURE_DELETE \
		STRIP TCL THREADS UNLOCK_NOTIFY URI
  OPTIONS_UNSET+=EXAMPLES LIKENOTBLOB NORMALIZE NULL_TRIM RBU SORT_REF STATIC STMT TRUSTED_SCHEMA UNKNOWN_SQL \
		UPDATE_LIMIT URI_AUTHORITY
#----
  OPTIONS_SET+=JSON1
  OPTIONS_UNSET+=SESSION
#----
  #OPTIONS_SET+=# none set
  OPTIONS_UNSET+=OFFSET SER1 SOUNDEX
#----
  OPTIONS_SET+=RTREE
  OPTIONS_UNSET+=GEOPOLY RTREE_INT
#----
  OPTIONS_SET+=UNICODE61
  OPTIONS_UNSET+=ICU
#----
  OPTIONS_SET+=TS2
  OPTIONS_UNSET+=TS0 TS1 TS3
#----
  #OPTIONS_SET+=# none set
  OPTIONS_UNSET+=STAT3 STAT4
#----
  OPTIONS_SET+=LIBEDIT
  OPTIONS_UNSET+=READLINE
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# cockatrice -- mysql fails to build server needs too	#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/games/cockatrice}
  OPTIONS_UNSET+=MYSQL SERVEATRICE
.endif



#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# net-snmp config					#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/net-mgmt/net-snmp}
  OPTIONS_SET+=MFD_REWRITES TKMIB
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# ode adjustments					#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/devel/ode}
  OPTIONS_UNSET+=GIMPACT OU
  OPTIONS_SET+=DOUBLE
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# exult radio conflict fix				#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/games/exult}
  OPTIONS_UNSET+=SDL1
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# heretic radio conflict fix				#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/games/heretic}
  OPTIONS_UNSET+=X11 SDL
  OPTIONS_SET+=FASTX11
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# uhexen2 radio conflict fix				#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/games/uhexen2}
  OPTIONS_UNSET+=MAD
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# instead radio conflict fix				#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/games/instead}
  OPTIONS_UNSET+=SDL
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# espeak radio conflict fix				#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/audio/espeak}
  OPTIONS_UNSET+=PORTAUDIO PULSEAUDIO
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# love luajit conflict 					#
# was partly solved or was I checking it was solved?	#
#_______________________________________________________#

#.if ${.CURDIR:M*/ports/devel/love}
#  OPTIONS_UNSET+=LUAJIT
#.endif
.if ${.CURDIR:M*/ports/devel/love10}
  OPTIONS_UNSET+=LUAJIT
.endif
#.if ${.CURDIR:M*/ports/devel/love*}
#  OPTIONS_UNSET+=LUAJIT
#.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# openoffice config					#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/editors/openoffice-4}
  OPTIONS_UNSET+=MMEDIA GNOME GNOMEVFS
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# casadi build option failure				#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/math/casadi}
  OPTIONS_UNSET+=CLANG
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# openblas build options				#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/math/openblas}
  OPTIONS_SET+=AVX AVX2 AVX512 DYNAMIC_ARCH OPENMP
  OPTIONS_UNSET+=INTERFACE64
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# suitesparse build options				#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/math/suitesparse-umfpack}
  OPTIONS_UNSET+=ATLAS BLIS NETLIB
  OPTIONS_SET+=OPENBLAS
.endif

.if ${.CURDIR:M*/ports/math/suitesparse-amd}
  OPTIONS_UNSET+=ATLAS BLIS NETLIB
  OPTIONS_SET+=OPENBLAS
.endif

.if ${.CURDIR:M*/ports/math/suitesparse-config}
  OPTIONS_UNSET+=ATLAS BLIS NETLIB
  OPTIONS_SET+=OPENBLAS
.endif

.if ${.CURDIR:M*/ports/math/suitesparse-camd}
  OPTIONS_UNSET+=ATLAS BLIS NETLIB
  OPTIONS_SET+=OPENBLAS
.endif

.if ${.CURDIR:M*/ports/math/suitesparse-colamd}
  OPTIONS_UNSET+=ATLAS BLIS NETLIB
  OPTIONS_SET+=OPENBLAS
.endif

.if ${.CURDIR:M*/ports/math/suitesparse-ccolamd}
  OPTIONS_UNSET+=ATLAS BLIS NETLIB
  OPTIONS_SET+=OPENBLAS
.endif

.if ${.CURDIR:M*/ports/math/suitesparse-cholmod}
  OPTIONS_UNSET+=ATLAS BLIS NETLIB
  OPTIONS_SET+=OPENBLAS
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# xorg-drivers configuration -- if scfb ticked		#
# this causes scfb dependency and scfb being		#
# available to load which prevents my AMD graphics 	#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/x11-drivers/xorg-drivers}
  OPTIONS_SET+=AMDGPU ATI KEYBOARD LIBINPUT MOUSE
  OPTIONS_UNSET+=NV SCFB VESA
  OPTIONS_UNSET_FORCE+=NV SCFB VESA
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# If options MANPAGE set requires DOCS too		#
# CPACK is experimental option right now.		#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/devel/cmake}
  OPTIONS_UNSET=CPACK
  OPTIONS_SET=DOCS MANPAGES
.endif
.if ${.CURDIR:M*/ports/devel/kf5-extra-cmake-modules}
  OPTIONS_SET+=DOCS
.endif
.if ${.CURDIR:M*/ports/devel/ncurses}
  OPTIONS_SET+=DOCS PROFILE
.endif
.if ${.CURDIR:M*/ports/graphics/waffle}
  OPTIONS_SET+=DOCS
.endif
.if ${.CURDIR:M*/ports/devel/ocl-icd}
  OPTIONS_SET+=DOCS
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# add some capabilities, all non-defaults, and		#
# test removing fortran option to see what breaks	#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/math/coinmp}
  OPTIONS_SET+=GLPK PARALLEL
  OPTIONS_UNSET+=FORTRAN
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# gkrellm2 configuration -- needs client		#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/sysutils/gkrellm2}
  OPTIONS_UNSET+=DOCS NLS NTLM OPENSSL
  OPTIONS_SET+=CLIENT
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# en-hunspell configuration				#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/textproc/en-hunspell}
  OPTIONS_SET+=CA_LARGE GB_IZE US_STANDARD
  OPTIONS_UNSET+=CA_STANDARD GB_ISE GB_LARGE US_LARGE
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# hplip configuration					#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/print/hplip}
  OPTIONS_SET+=SNMP X11
  OPTIONS_UNSET+=FAX SCAN XSANE
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# chromium-bsu fix radio options			#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/games/chromium-bsu}
  OPTIONS_UNSET+=OPENAL
  OPTIONS_SET+=SDL_MIXER
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# gdb fix radio options					#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/devel/gdb}
  OPTIONS_UNSET+=PORT_READLINE
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# ffmpeg has a LOT of options, lets formalize them here		#
#								#
# SSH causes cascade py-cryptography dependency?		#
# V4L (video for linux) is a problem				#
#								#
# disable encoders, unused features, dupes, and kitchensink	#
#_______________________________________________________________#

.if ${.CURDIR:M*/ports/multimedia/ffmpeg}
#  OPTIONS_SET+=AMR_NB AMR_WB ASM ASS BS2B CACA CDIO CELT CODEC2 DAV1D
#  OPTIONS_SET+=DC1394 DOCS DRM FLITE FONTCONFIG FREETYPE FREIOR FRIBIDI
#  OPTIONS_SET+=GLSLANG GME GSM ICONV ILBC KVAZAAR LADSPA LAME LENSFUN
#  OPTIONS_SET+=LIBRSVG2 LIBXML2 LV2 LTO MFX MODPLUG MYSOFA OPENAL OPENGL
#  OPTIONS_SET+=OPENMPT OPTIMIZED_CFLAGS OPUS RIST RTCPU RUBBERBAND SDL
#  OPTIONS_SET+=SNAPPY SPEEX SRT TESSERACT THEORA TWOLAME VAAPI VDPAU
#  OPTIONS_SET+=VIDSTAB VMAF VORBIS VPX VULKAN WEBP X264 X265 XCB XVID
#  OPTIONS_SET+=XVIDEO ZIMG ZMQ ZVBI
  OPTIONS_UNSET+=ALSA AOM DEBUG FDK_AAC JACK LIBBLURAY LV2 LTO
  OPTIONS_UNSET+=OPENH264 OPENJPG POCKETSPHINX PULSEAUDIO RABBITMQ
  OPTIONS_UNSET+=RAV1E SMB SHADERC SNDIO SOXR SSH SVTAV1 SVTHEVC SVTVP9
  OPTIONS_UNSET+=V4L VAPOURSYNTH VO_AMRWBENC
#----
  OPTIONS_SET+=GPL NONFREE
#----
  OPTIONS_SET+=GMP
  OPTIONS_UNSET+=GCRYPT LIBRTMP
#----
  OPTIONS_UNSET+=GNUTLS MBEDTLS
  OPTIONS_SET+=OPENSSL
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# vlc adjustments to avoid dbus and other reasons 	#
# QT5 removed from global set options due to this port	#
# SKINS implies QT5 so it must be disabled too		#
# lua seems to have some sort of error			#
#_______________________________________________________#
#.if ${.CURDIR:M*/ports/multimedia/vlc}
#multimedia_vlc_UNSET= QT5 SKINS DBUS AVAHI LUA
#multimedia_vlc_UNSET= SKINS DBUS AVAHI LUA
#OPTIONS_UNSET_FORCE=  SKINS DBUS AVAHI LUA
#.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# vlc has a LOT of options, lets formalize them here		#
# mostly identical to ffmpeg -- duplicated but added more	#
#								#
# SSH causes cascade py-cryptography dependency?		#
# V4L (video for linux) is a problem				#
#								#
# disable encoders, unused features, dupes, and kitchensink	#
#								#
# MAD unset because cores, SHROEDINGER is obsoleted		#
#_______________________________________________________________#

.if ${.CURDIR:M*/ports/multimedia/vlc}
  OPTIONS_SET+=A52 AALIB AMR_NB AMR_WB ASM ASS BS2B CACA CDIO CELT CODEC2 DAV1D
  OPTIONS_SET+=DC1394 DCA DOCS DRM DVDNAV DVDREAD FAAD FLAC FLITE FLUID
  OPTIONS_SET+=FONTCONFIG FREETYPE FREIOR FRIBIDI
  OPTIONS_SET+=GLSLANG GME GSM HARFBUZZ ICONV ILBC JPEG KATE KVAZAAR LADSPA
  OPTIONS_SET+=LAME LENSFUN LIBPLACEBO LIBRSVG2 LIBXML2
  OPTIONS_SET+=LV2 LTO MAD MFX MODPLUG MUSEPACK MYSOFA NCURSES
  OPTIONS_SET+=NOTIFY OGG OPENAL OPENGL OPENMPT
  OPTIONS_SET+=OPTIMIZED_CFLAGS OPUS PNG REALRTSP RIST RTCPU RUBBERBAND SDL
  OPTIONS_SET+=SAMPLERATE SHOUTCAST SNAPPY SPEEX SRT
  OPTIONS_SET+=TAGLIB TESSERACT THEORA TWOLAME
  OPTIONS_SET+=VAAPI VCD VDPAU VIDSTAB VMAF VORBIS VPX VULKAN
  OPTIONS_SET+=WAYLAND WEBP X264 X265 XCB XVID
  OPTIONS_SET+=XVIDEO ZIMG ZMQ ZVBI
  OPTIONS_UNSET+=ALSA AOM DEBUG FDK_AAC JACK LIBBLURAY LIBSSH2 LTO MAD
  OPTIONS_UNSET+=OPENH264 OPENJPG POCKETSPHINX PULSEAUDIO QT5 RABBITMQ
  OPTIONS_UNSET+=RAV1E SDL SCHROEDINGER SKINS SMB SNDIO SOXR SSH STREAM SVTAV1
  OPTIONS_UNSET+=SVTHEVC SVTVP9 V4L VAPOURSYNTH VO_AMRWBENC
  OPTIONS_SET+=GNUTLS
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# openssh-portable config -- unset insecure option	#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/security/openssh-portable}
  OPTIONS_UNSET+=NONECIPHER
  OPTIONS_UNSET_FORCE+=NONECIPHER
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# sundials add blas support				#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/math/sundials}
  OPTIONS_SET+=BLAS
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# better maxima config					#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/math/maxima}
  OPTIONS_SET+=DOCS EXAMPLES MANPAGES NOUSERINIT TEST XMAXIMA
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# bad option name -- remove samba			#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/net/kdenetwork}
  OPTIONS_UNSET+=FILESHARING
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# fix qt-multimedia radio selection			#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/multimedia/qt*-multimedia}
  OPTIONS_SET+=ALSA
  OPTIONS_UNSET+=PULSEAUDIO
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# fix qt-webengine radio selection			#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/multimedia/qt*-multimedia}
  OPTIONS_SET+=ALSA
  OPTIONS_UNSET+=PULSEAUDIO
  OPTIONS_UNSET+=SNDIO
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# fix qtcurve radio selection				#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/x11-themes/qtcurve}
  OPTIONS_SET+=GTK2 KF5
  OPTIONS_UNSET+=QT5
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# bad audio radio selections -- remove audio support	#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/mail/faces}
  OPTIONS_UNSET+=AUDIO NAS RPLAY SOX
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# fix pam conflict					#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/security/sudo}
  OPTIONS_UNSET+=PAM
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# add claws-mail docs					#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/mail/claws-mail}
  OPTIONS_SET+=DOCS
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# radio selector fix pinentry				#
# choose default -- unset other make.conf options	#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/security/pinentry}
  OPTIONS_SET+=TTY
  OPTIONS_UNSET+=NCURSES FLTK GTK2 QT5 GNOME3
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# radio selector fix neon				#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/www/neon}
  OPTIONS_SET+=EXPAT
  OPTIONS_UNSET+=LIBXML
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# radio selector fix claws-mail-bogofilter		#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/mail/claws-mail-bogofilter}
  OPTIONS_SET+=SQLITE
  OPTIONS_UNSET+=BDB TC
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# good zbar defaults					#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/graphics/zbar}
  OPTIONS_SET+=X11 V7
  OPTIONS_UNSET+=GTK2 V4L V6
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# good py-pillow defaults				#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/graphics/py-pillow}
#  OPTIONS_SET+=X11 V7
  OPTIONS_UNSET+=IMAGEQUANT
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# radio selector fix lua				#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/lang/lua5*}
  OPTIONS_UNSET+=LIBEDIT
.endif

.if ${.CURDIR:M*/ports/lang/lua54}
  OPTIONS_UNSET+=LIBEDIT
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# radio selector fix wildmidi				#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/audio/wildmidi}
  OPTIONS_SET+=OSS
  OPTIONS_UNSET+=ALSA OPENAL
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# radio selector fix glfw				#
#_______________________________________________________#
.if ${.CURDIR:M*/ports/graphics/glfw}
  OPTIONS_SET+=WAYLAND
  OPTIONS_UNSET+=X11
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# radio selector fix vkquake				#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/games/vkquake}
  OPTIONS_SET+=MIKMOD
  OPTIONS_UNSET+=MODPLUG XMP
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# rubygem -- take advantage of clang?			#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/devel/rubygem-multi_json}
  OPTIONS_SET+=JSON
  OPTIONS_UNSET+=JSON_PURE YAJL_RUBY
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# nss from mozilla purported faster and more featured than openSSL	#
# https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/FAQ	#
#_______________________________________________________________________#

.if ${.CURDIR:M*/ports/devel/apr}
  OPTIONS_SET+=NSS
  OPTIONS_UNSET+=SSL
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# gimp help might be unique				#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/graphics/gimp}
  OPTIONS_SET+=HELP
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# openSSL here is uncertain -- purports speedier	#
# http://anrieff.net/ucbench/technical_qna.html		#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/archivers/libarchive}
  OPTIONS_SET+=OPENSSL
  OPTIONS_UNSET+=NETTLE
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# Cannot use libressl so second best is bundled.	#
# except if openssl is used then is unset		#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/www/node12}
  OPTIONS_NSET+=BUNDLED_SSL
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# radio button conflicts these ports for these options	#
# mpg123 purported to be speedier if given the choice	#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/audio/sdl_mixer}
  OPTIONS_SET+=MIKMOD
  OPTIONS_UNSET+=MODPLUG
.endif

.if ${.CURDIR:M*/ports/audio/sdl2_mixer}
  OPTIONS_SET+=MIKMOD MPG123
  OPTIONS_UNSET+=MODPLUG MAD
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# some odd reason doc causes issues? Weird		#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/sysutils/cdrtools}
  OPTIONS_UNSET+=DOCS
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# Openoffice builds or pkg install; immediately cores.	#
#_______________________________________________________#

#WITH_DEBUG_PORTS+=${PKGORIGIN}

WITH_DEBUG_PORTS+=editors/openoffice-devel
WITH_DEBUG_PORTS+=editors/openoffice-4


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# samba option fails build and hal not needed		#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/devel/gnome-vfs}
  OPTIONS_UNSET+=HAL SAMBA
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# docs fails build, manpages=docs, and bash not needed	#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/security/p11-kit}
  OPTIONS_UNSET+=BASH
  OPTIONS_UNSET+=DOCS
  OPTIONS_UNSET+=MANPAGES
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# I do not use kerberos so none of them are needed      #
# proper is to explicitly set GSSAPI_NONE		#
# pkgs insist ftp/curl include GSSAPI_HEIMDAL		#
#_______________________________________________________#

OPTIONS_UNSET+=KERBEROS HEIMDAL MIT HEIMDAL_BASE KERB_GSSAPI GSSAPI_BASE GSSAPI_MIT
OPTIONS_UNSET+=GSSAPI_HEIMDAL
OPTIONS_SET+=GSSAPI_NONE


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# dependents of curl need TLS_SRP for some things?	#
# that option requires openssl or gnutls		#
# choose gnutls but libssh2 option requires openssl	#
# and TPM causes dependency loop due to gnutls		#
# gnutls causes dependency on nettle which conflicts	#
# with libressl-devel-libtls and tls-srp fails so then	#
# NSS is compromise which works, solves conflicts.	#
#							#
# only supports TLS-SRP with either OpenSSL or GnuTLS 	#
#							#
# libetpan needs something this config removes		#
# which causes claws-mail to fail to build		#
#							#
# Decided to allow openssl and libssh2			#
#							#
# threaded resolver doesn't work with luanti (minetest) #
#							#
# poudriere requires static				#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/ftp/curl}
  OPTIONS_SET+=ALTSVC
  OPTIONS_SET+=BROTLI
  OPTIONS_SET+=CA_BUNDLE
  OPTIONS_SET+=COOKIES
  OPTIONS_UNSET+=CURL_DEBUG
  OPTIONS_UNSET+=DEBUG
  OPTIONS_SET+=DOCS
  OPTIONS_SET+=EXAMPLES
  OPTIONS_UNSET+=IDN
  OPTIONS_SET+=IPV6
  OPTIONS_SET+=NTLM
  OPTIONS_SET+=PROXY
  OPTIONS_SET+=PSL
  OPTIONS_SET+=STATIC
  OPTIONS_UNSET+=TLS_SRP
  OPTIONS_SET+=ZSTD

  OPTIONS_SET+=DICT
  OPTIONS_SET+=FTP
  OPTIONS_SET+=GOPHER
  OPTIONS_SET+=HTTP
  OPTIONS_SET+=HTTP2
  OPTIONS_SET+=IMAP
  OPTIONS_UNSET+=LDAP
  OPTIONS_UNSET+=LDAPS
  OPTIONS_UNSET+=LIBSSH
  OPTIONS_SET+=LIBSSH2
  OPTIONS_UNSET+=MQTT
  OPTIONS_SET+=POP3
  OPTIONS_UNSET+=RTMP
  OPTIONS_SET+=RTSP
  OPTIONS_UNSET+=SMB
  OPTIONS_SET+=SMTP
  OPTIONS_SET+=TELNET
  OPTIONS_SET+=TFTP
  OPTIONS_UNSET+=WEBSOCKET

  OPTIONS_UNSET+=GSSAPI_BASE
  OPTIONS_UNSET+=GSSAPI_HEIMDAL
  OPTIONS_UNSET+=GSSAPI_MIT
  OPTIONS_SET+=GSSAPI_NONE

  OPTIONS_SET+=CARES
  OPTIONS_UNSET+=THREADED_RESOLVER

  OPTIONS_UNSET+=GNUTLS
  OPTIONS_SET+=OPENSSL
  OPTIONS_UNSET+=WOLFSSL
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# pango has a THAI requirement or firefox throws a fit	#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/ftp/curl}
  OPTIONS_SET+=DOCS MANPAGES THAI X11
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# some things require gnutls built with P11KIT option	#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/security/gnutls}
  OPTIONS_UNSET+=TPM
  OPTIONS_SET+=P11KIT
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# nettle via crypto? why does textproc need crypto?	#
# gnutls calls in nettle				#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/textproc/libxslt}
  OPTIONS_UNSET+=CRYPTO
.endif

.if ${.CURDIR:M*/ports/devel/py-twisted}
  OPTIONS_UNSET+=TLS
.endif

.if ${.CURDIR:M*/ports/archivers/libarchive}
  OPTIONS_SET+=OPENSSL
  OPTIONS_UNSET+=MBEDTLS NETTLE
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# some things cannot handle libressl			#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/net/krdc}
  OPTIONS_UNSET+=FREERDP
.endif

.if ${.CURDIR:M*/ports/net/remotebox}
  OPTIONS_UNSET+=FREERDP
.endif

.if ${.CURDIR:M*/ports/net/remina-plugins}
  OPTIONS_UNSET+=RDP
.endif

.if ${.CURDIR:M*/ports/net/guacamole-server}
  OPTIONS_UNSET+=RDP
.endif

.if ${.CURDIR:M*/ports/net/vinagre}
  OPTIONS_UNSET+=RDP
.endif

.if ${.CURDIR:M*/ports/www/node}
  OPTIONS_UNSET+=BUNDLED_SSL
.endif

.if ${.CURDIR:M*/ports/devel/qca}
  OPTIONS_SET+=OPENSSL
.endif

.if ${.CURDIR:M*/ports/dns/ldns}
  OPTIONS_UNSET+=DANETAUSAGE GOST
  OPTIONS_SET+=DRILL
.endif

.if ${.CURDIR:M*/ports/dns/unbound}
  OPTIONS_UNSET+=ECDSA GOST EVAPI
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# npm -- node package manager, keep synced with node	#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/www/npm}
  OPTIONS_SET+=NODE
  OPTIONS_UNSET+=NODE10 NODE12
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# Maybe limit things with ATKONLY option?		#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/accessibility/at-spi2-core}
  OPTIONS_SET+=ATKONLY
  OPTIONS_SET+=X11
.endif

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# This adds samba support that I don't use		#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/net/kdenetwork}
  OPTIONS_UNSET+=FILESHARING
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# gtk3 adjustments but will it still ask for dbus?	#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/x11-toolkits/gtk30}
  OPTIONS_UNSET+=ATK_BRIDGE CLOUDPRINT COLORD DEBUG
  OPTIONS_SET+=BROADWAY CUPS WAYLAND X11
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# openal -  avoiding dbus means no config utility	#
# Warnings from this report "alsoft" self-identifier	#
# qt5 requires dbus so we avoid qt5 too			#
# sndio causes trouble for firefox audio		#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/audio/openal-soft}
  OPTIONS_UNSET+=CONFIG EXAMPLES JACK PORTAUDIO PULSEAUDIO SNDIO UTILS
  OPTIONS_SET+=OSS
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# Try optimal firefox config				#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/www/firefox}
  OPTIONS_UNSET+=CANBERRA DBUS DEBUG OPTIMIZED_CFLAGS PROFILE LIBPROXY TEST ALSA JACK PULSEAUDIO SNDIO
  OPTIONS_SET+=LTO FFMPEG
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# does firefox issue with libressl via libevent remain?	#
# mysql needs libevent to have openssl			#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/devel/libevent}
#  OPTIONS_UNSET+=OPENSSL
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# Minetest special adjustments test			#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/games/minetest}
#  OPTIONS_SET+=CURL DOCS EXAMPLES LUAJIT SOUND CLIENT SERVER FREETYPE
#  OPTIONS_UNSET+=NCURSES NLS PGSQL LEVELDB REDIS SPATIAL
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# override defaults for llvm?				#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/devel/llvm*}
  OPTIONS_UNSET+=BE_FREEBSD BE_STANDARD
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# match rust-nightly					#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/lang/rust}
  OPTIONS_UNSET+=GDB
## maybe firefox needs webassembly?
  OPTIONS_SET+=WASM
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# mDNSResponder vs Avahi choose Avahi			#
# if mDNSResponder does not require dbus, revise	#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/net/ntp-devel}
 CONFLICTS+=avahi*
.endif
.if ${.CURDIR:M*/ports/audio/murmur}
 CONFLICTS+=avahi*
.endif

.if ${.CURDIR:M*/ports/devel/android-tools-adb}
  OPTIONS_UNSET+=MDNSRESPONDER
.endif

.if ${.CURDIR:M*/ports/audio/shairplay}
  OPTIONS_UNSET+=MDNSRESPONDER
.endif

.if ${.CURDIR:M*/ports/audio/xmms2}
  OPTIONS_UNSET+=MDNS_APPLE
  OPTIONS_SET+=MDNS_AVAHI
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# Fix circular dependency loops				#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/net/avahi}
  OPTIONS_UNSET+=GTK
.endif

.if ${.CURDIR:M*/ports/print/cups}
  OPTIONS_UNSET+=AVAHI GNUTLS
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#  remove dbus from cups				#
#_______________________________________________________#
.if ${.CURDIR:M*/ports/print/cups}
  OPTIONS_UNSET+=DBUS
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# ImageMagick6 vs 7 conflict -- most use V6		#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/graphics/zbar}
  OPTIONS_UNSET+=V7
  OPTIONS_SET+=V6
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# damned wayland additions				#
# some cause problems? Looks like I changed my mind?	#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/graphics/mesa-dri}
#    OPTIONS_UNSET+=WAYLAND
    OPTIONS_SET+=WAYLAND
.endif
.if ${.CURDIR:M*/ports/graphics/mesa-libs}
#    OPTIONS_UNSET+=WAYLAND
    OPTIONS_SET+=WAYLAND
.endif
.if ${.CURDIR:M*/ports/devel/sdl20}
#    OPTIONS_UNSET+=VIDEO_WAYLAND
    OPTIONS_SET+=VIDEO_WAYLAND
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#  sdl2 options settings				#
#_______________________________________________________#
.if ${.CURDIR:M*/ports/devel/sdl20}
    OPTIONS_UNSET+=CSD DBUS FCITX HIDAPI IBUS JOYSTICK \
		ALSA JACK NAS PIPEWIRE PULSEAUDIO SNDIO
    OPTIONS_SET+=SAMPLERATE UDEV \
		OSS \
		KMSDRM OPENGL OPENGLES VULCAN X11
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#  libglvnd must have X11 set for cairo			#
#_______________________________________________________#
.if ${.CURDIR:M*/ports/graphics/libglvnd}
    OPTIONS_SET+=X11
    OPTIONS_SET_FORCE=X11
.endif


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# ImageMagick7  - explicitly set options		#
#_______________________________________________________#

.if ${.CURDIR:M*/ports/graphics/ImageMagick7}
  OPTIONS_UNSET+=FPX GRAPHVIZ GSLIB
  OPTIONS_SET+=16BIT_PIXEL BZIP2 DJVU DOCS FFMPEG FFTW FLIF FONTCONFIG FREETYPE HDRI HEIF JBIG JPEG
  OPTIONS_SET+=JXL LCMS2 LQR LZMA MODULES OPENEXR OPENMP PANGO PDF PERL PNG RAQM RAW SVG THREADS
  OPTIONS_SET+=TIFF WEBP WMF
.endif

# ---------------------------------------------<  End user additions and modifications >--------------------------------------------- #


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# Automatically added portconf section -- DON'T TOUCH	#
#_______________________________________________________#


Frequently viewed this week