I recently looked over my custom kernel configuration file prior to updating kernel and world on Dec 5th 2024. I compared the kernconf I revised to GENERIC to see whether anything was new or changed. I noticed a bunch of extra space that I had included which I forget why, except that it was to match an older GENERIC or an prior kernconf. There were a few things missing which were present in GENERIC and I added those, using the same nomenclature as I had before.
I noticed that I was including a pile of compatibility shims for older versions of FreeBSD. I decided to revise this to exclude all but the last version, just in case. I had a comment in the file at the end which mentions an issue with building certain ports. Since the newer 14-stable was what I was building, I pared them down to just the 13, and I still hope to use 32bit wine, so I made sure to keep the i386 compatibility. My method (nomenclature) is to copy the GENERIC kernconf as a custom kernconf, keep used options in my custom kernconf but commented, and unused options prefixed with no. I described creating a customized kernel in another blog post.
#options COMPAT_FREEBSD32 # Compatible with i386 binaries
nooptions COMPAT_FREEBSD4 # Compatible with FreeBSD4
nooptions COMPAT_FREEBSD5 # Compatible with FreeBSD5
nooptions COMPAT_FREEBSD6 # Compatible with FreeBSD6
nooptions COMPAT_FREEBSD7 # Compatible with FreeBSD7
nooptions COMPAT_FREEBSD9 # Compatible with FreeBSD9
nooptions COMPAT_FREEBSD10 # Compatible with FreeBSD10
nooptions COMPAT_FREEBSD11 # Compatible with FreeBSD11
nooptions COMPAT_FREEBSD12 # Compatible with FreeBSD12
#options COMPAT_FREEBSD13 # Compatible with FreeBSD13
Building world and kernel went fine. No issues, the etcupdate was silent, and I rebooted into the updated kernel and world without issue. I started up FVWM and noticed it felt faster already. I cannot say exactly why it felt faster, I believe it was mostly my imagination. Once I had my GUI of choice up, next is to return to my usual programs, firefox in particular. I used my configured gui option to startup firefox but in never appeared after multiple attempts. At this moment I believe firefox was present but would not start for an unknown reason. Without keeping any notes on the output I am sure I saw when I tried to start firefox from an xterm, I chose to reinstall firefox. It wasn't present in my local poudriere repository, so I guess it failed to build the last time, was removed due to some other update and the firefox rebuild failed as well. When I got set to rebuild firefox outside of poudriere, just in the ports tree, I discovered my mistake.
root@ichigo:/usr/home/tigersharke # cd /usr/ports/www/firefox
root@ichigo:/usr/ports/www/firefox # make reinstall
===> Deinstalling for firefox
===> firefox not installed, skipping
===> firefox-133.0_2,2 depends on package: nspr>=4.32 - found
===> firefox-133.0_2,2 depends on package: nss>=3.106 - found
===> firefox-133.0_2,2 depends on package: icu>=73.1 - found
===> firefox-133.0_2,2 depends on package: libevent>=2.1.8 - found
===> firefox-133.0_2,2 depends on package: harfbuzz>=10.0.1 - found
===> firefox-133.0_2,2 depends on package: graphite2>=1.3.14 - found
===> firefox-133.0_2,2 depends on package: png>=1.6.44 - found
===> firefox-133.0_2,2 depends on package: dav1d>=1.0.0 - found
===> firefox-133.0_2,2 depends on package: libvpx>=1.14.1 - found
===> firefox-133.0_2,2 depends on package: py311-sqlite3>0 - found
===> firefox-133.0_2,2 depends on package: v4l_compat>0 - found
===> firefox-133.0_2,2 depends on executable: autoconf2.13 - found
===> firefox-133.0_2,2 depends on executable: nasm - found
===> firefox-133.0_2,2 depends on executable: yasm - found
===> firefox-133.0_2,2 depends on executable: zip - found
===> firefox-133.0_2,2 depends on file: /usr/local/share/wasi-sysroot/lib/wasm32-wasi/libc++abi.a - found
===> firefox-133.0_2,2 depends on file: /usr/local/share/wasi-sysroot/lib/wasm32-wasi/libc.a - found
===> firefox-133.0_2,2 depends on package: wasi-compiler-rt17>0 - found
===> firefox-133.0_2,2 depends on package: rust-cbindgen>=0.26.0 - found
===> firefox-133.0_2,2 depends on package: rust>=1.83.0 - not found
===> Deinstalling for rust
===> rust not installed, skipping
===> rust-1.83.0 depends on file: /usr/local/bin/cmake - found
===> rust-1.83.0 depends on executable: ninja - found
===> rust-1.83.0 depends on package: pkgconf>=1.3.0_1 - found
===> rust-1.83.0 depends on file: /usr/local/bin/python3.11 - found
===> rust-1.83.0 depends on file: /usr/local/lib/libcrypto.so.12 - found
===> rust-1.83.0 depends on file: /usr/local/bin/ccache - found
===> rust-1.83.0 depends on shared library: libcurl.so - found (/usr/local/lib/libcurl.so)
===> Configuring for rust-1.83.0
Bad system call
=> Sanity check failed: kernel is missing COMPAT_FREEBSD11
=> Aborting build
*** Error code 1
Stop.
make[5]: stopped in /usr/ports/lang/rust
*** Error code 1
Stop.
make[4]: stopped in /usr/ports/lang/rust
*** Error code 1
Stop.
make[3]: stopped in /usr/ports/lang/rust
*** Error code 1
Stop.
make[2]: stopped in /usr/ports/www/firefox
*** Error code 1
Stop.
make[1]: stopped in /usr/ports/www/firefox
*** Error code 1
Stop.
make: stopped in /usr/ports/www/firefox
root@ichigo:/usr/ports/www/firefox #
Glorious, right? My kernel is missing something I should not have removed. The nooptions COMPAT_FREEBSD11 # Compatible with FreeBSD11 line needs to be restored by switching nooptions to #options which would then not override the GENERIC kernel configuration file. Since I have not updated /usr/src after building (the faulty) kernel and world, I can simply fix the kernconf file and remake the kernel and reboot. Another thing I have avoided due to discovering the firefox issue is that normally right after I rebuild my kernel I also rebuild my poudriere to match. I did not get to that step so I don't double my repair work and waste three times as much time. Along with fixing my error, I decided that since I have made the transition from FreeBSD 13-stable to 14-stable, I actually no longer need the compatibility to FreeBSD 13. It is a good idea to keep compatibility with the prior major release initially with your first rebuild after the transition, it may take some time to get all ports rebuilt.
It is somewhat amazing that FreeBSD 14.x still needs to be compatible with FreeBSD 11. What is preventing the applicable changes to eliminate this issue? Maybe there needs to be work done on cargo/rust so that we can build them without needing to rely upon a bootstrap from the days of FreeBSD 11. Luckily this is a hidden pitfall which most vanilla users would never encounter, because the GENERIC kernel providers and the port maintainers both keep firefox and rust easy to install without needing to think about any issues at all. Even though many users would not be hit by this issue with compatibility with an old FreeBSD version, it remains a less than ideal solution. How far into the future will we need to keep the compatibility for this solitary purpose? This is now an additional firefox caveat and a rust caveat that I have added to the distilled notes.
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.
#!/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.
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.
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
# 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 .include
.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
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.
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.
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.