XigmaNAS: Difference between revisions
| Line 40: | Line 40: | ||
11.4 works (different flags) (no syslog (but exists)) | 11.4 works (different flags) (no syslog (but exists)) | ||
12.0 works (all flags) | 12.0 works (all flags) | ||
13.2 works (all flags) | |||
13.2 | |||
=== Finch Install === | === Finch Install === | ||
Revision as of 18:42, 21 March 2025
Build xigmanas
ssh filer02 sudo zfs rollback dozer/chroots/xig@latest ; ssh filer02 xig /root/pkgs/go ; exit
xig:~# cat cicd #!/bin/sh scp -rp 192.168.3.198:pkgs /root/ /root/pkgs/go
BSD cloud images https://bsd-cloud-image.org/ login: freebsd
XigmaNAS IRC https://web.libera.chat/#xigmanas
Finch shell
[filer02]:~/bin$ cat fch
#!/bin/sh
if [ "$#" -ge 1 ]; then
sudo chroot /mnt/tank/finch "$@"
else
sudo chroot /mnt/tank/finch bash -l
fi
Finch Version
FreeBSD 9.0 works 9.3 works (different flags) 10.0 works 10.1 works (different flags) 11.0 works (different flags) (no syslog (-S doesn't exist)) 11.4 works (different flags) (no syslog (but exists)) 12.0 works (all flags) 13.2 works (all flags)
Finch Install
zpool create -f zroot nda0p4 zfs create -o compress=zstd zroot/bynch cd /zroot
scp -O wongk@192.168.3.159:f/FreeBSD-14.1-RELEASE-amd64-disc1.iso .
md=$(mdconfig -a -t vnode -f *.iso)
mkdir iso
mount -t cd9660 /dev/${md} iso
alias finch-bootstrap="SSL_NO_VERIFY_PEER=YES fetch -q -o - http://git.io/HxXrsw | sh -s --"
finch-bootstrap --help
finch-bootstrap install -y -x --txz-distfiles-dir iso/usr/freebsd-dist --dir /zroot/bynch
pw user mod root -s /usr/local/bin/bash
chroot /zroot/bynch/ sh
ldconfig /lib /usr/lib /usr/local/lib
vi ~/.bash_profile
PS1="\[\033[1;37m\]bynch:\[\033[38;5;166m\]\w\[\033[0m\]\\$ "
cd
chroot /zroot/bynch bash -l
sysrc yes_enable=YES
vi /usr/local/etc/rc.d/yesd
chmod +x /usr/local/etc/rc.d/yesd
yesd
#!/bin/sh
#
# PROVIDE: yes
# REQUIRE: DAEMON
# KEYWORD: shutdown
# Add the following lines to /etc/rc.conf to enable yes:
#
# yes_enable="YES"
. /etc/rc.subr
name="yes"
rcvar="yes_enable"
pidfile="/var/run/${name}.pid"
command="/usr/sbin/daemon"
command_args="-P ${pidfile} -r -S -t ${name} -T ${name} /usr/bin/yes"
load_rc_config $name
: ${yes_enable:=no}
run_rc_command "$1"
Jellyfin
finch# qjail create -4 192.168.3.195 jellyfin finch:/usr/local/etc/qjail.config# grep mlock jellyfin allow.mlock; finch# qjail start jellyfin finch# qjail console jellyfin jellyfin> pkg install jellyfin jellyfin> service jellyfin enable jellyfin> service jellyfin start filer02# sudo mount_nullfs -o ro,noatime /mnt/tank/media /mnt/tank/finch/usr/jails/jellyfin/media
Bastille Extension
https://github.com/JRGTH/xigmanas-bastille-extension https://gitlab.com/bastillebsd-templates/jellyfin/-/blob/main/Bastillefile?ref_type=heads
CMD mkdir -p /usr/local/etc/pkg/repos
CMD echo 'FreeBSD: { url: "pkg+http://pkg.FreeBSD.org/${ABI}/latest" }' > /usr/local/etc/pkg/repos/FreeBSD.conf
CONFIG set allow.mlock=1;
CONFIG set ip6=inherit;
RESTART
PKG jellyfin
SYSRC jellyfin_enable=TRUE
SERVICE jellyfin start
Bastille BSD
https://bastille.readthedocs.io/en/latest/chapters/networking.html#virtual-network-vnet
bastille create -V azkaban 14.1-RELEASE 192.168.1.50/24 em0
debootstrap
/usr/local/share/debootstrap/scripts# fgrep -nA3 'noble)' noble 122: noble) 123- # see https://bugs.debian.org/838388 124- EXTRACT_DEB_TAR_OPTIONS="$EXTRACT_DEB_TAR_OPTIONS " 125- ;;
/usr/local/bastille/releases# bastille bootstrap noble
bastille create -L lintest noble 192.168.3.193/24 em0
VS Code
https://gist.github.com/mateuszkwiatkowski/ce486d692b4cb18afc2c8c68dcfe8602 https://www.gaelanlloyd.com/blog/how-to-connect-visual-studio-code-to-freebsd-servers/
remote-ssh seem to ignore bash config files so we need to change $PATH in /etc/login.conf or send custom env with SetEnv directive in ssh_config. Choose which fits you better.
Configure /etc/login.conf
By default it's class default, we need to give priority to linux binaries:
:path=/compat/linux/usr/sbin /compat/linux/usr/bin /sbin /bin /usr/sbin /usr/bin /usr/local/sbin /usr/local/bin ~/bin:\
rebuild CAP database:
cap_mkdb /etc/login.conf
Flip the switch in the VS Code extension to "Enable Remote Command".
# sysctl kern.elf64.fallback_brand kern.elf64.fallback_brand: -1 # sysctl kern.elf64.fallback_brand=3
NIC driver
https://www.intel.com/content/www/us/en/download/15187/intel-network-adapter-gigabit-base-driver-for-freebsd.html https://web.archive.org/web/20131009070059/https://thesorcerer.wordpress.com/2011/07/01/guide-intel-82573l-gigabit-ethernet-with-ubuntu-11-04-and-fix-pxe-e05/
bootutil -defcfg #force bootutil to load the default PXE configuration into the controller # Georgi says ” bootutil -nic=1 -defcfg” it’s better. Try if the other returns an err
VM Setup
https://github.com/churchers/vm-bhyve
Type ~+Ctrl-D to exit back to your host.
# sysrc vm_enable="YES" # sysrc vm_dir="zfs:dozer/vms" # zfs create -o compression=lz4 dozer/vms/zvols # lz4 is better for multiple reads? vm init vm img https://download.freebsd.org/ftp/releases/VM-IMAGES/14.1-RELEASE/amd64/Latest/FreeBSD-14.1-RELEASE-amd64-BASIC-CLOUDINIT-zfs.raw.xz # zfs create -s -V 35G dozer/vms/zvols/freebsd141 # dd bs=1m if=~/vms/.img/FreeBSD-14.1-RELEASE-amd64-BASIC-CLOUDINIT-zfs.raw of=/dev/zvol/dozer/vms/zvols/freebsd141 status=progress # zfs snapshot dozer/vms/zvols/freebsd141@img35G #vm create -t xbuild -s 35G -i FreeBSD-14.1-RELEASE-amd64-BASIC-CLOUDINIT-zfs.raw -C -k ~/.ssh/vms_id_ed.pub xBhyve141 vm create -t freebsd-zvol -C -k ~/.ssh/vms_id_ed.pub ci zfs destroy dozer/vms/ci/disk0 zfs clone dozer/vms/zvols/freebsd141@img35G dozer/vms/ci/disk0 gpart recover nda0 gpart show # gpart resize -i 5 nda0 # growfs -f /dev/gpt/rootfs vm start xBhyve141 vm console xBhyve141
graphics is only possible with loader="uefi", not with "grub". https://forums.freebsd.org/threads/bhyve-graphics-install-and-vncviewer.88114/ disk0.img is faster, but doesn't support -s 35G on create nvme is faster than virtio-blk
vm create -t freebsd-zvol -s 35G -i FreeBSD-14.1-RELEASE-amd64-BASIC-CLOUDINIT-zfs.raw -C -k ~/.ssh/vms_id_ed.pub xBuild141 dd if=/dev/zvol/dozer/vms/xBuild141/disk0 of=xBuild141/disk0.img bs=1m vm configure xBuild141 disk0_name="disk0.img" #disk0_dev="sparse-zvol" vm create -t freebsd -s 35G -i FreeBSD-14.1-RELEASE-amd64-BASIC-CLOUDINIT-zfs.raw -C -k ~/.ssh/vms_id_ed.pub xBuild141 qemu-img resize xBuild141/disk0.img 35G # resize before first boot vm start xBuild141
Bastille vnet + vm-bhyve vnet
finch:~/vms/xigmanas# ifconfig bridge ifconfig: interface bridge does not exist finch:~/vms/xigmanas# ifconfig bridge create bridge0 finch:~/vms/xigmanas# ifconfig bridge0 name em0bridge em0bridge finch:~/vms/xigmanas# ifconfig em0bridge addm em0 up finch:~/vms/xigmanas# ifconfig em0bridge
Share bastille's bridge with bhyve. (manually setup the switch)
vm switch create -t manual -b em0bridge public
vm-bhyve restart
since vm-bhyve is within finch chroot, the mount points need to be re-mounted within the chroot
zfs list -t filesystem | awk '/vms/ { print $1}' | xargs -n1 zfs mount
Host Setup
# disable autoboot delay grep autoboot /boot/loader.conf || echo 'autoboot_delay="-1"' >> /boot/loader.conf mkdir -p .ssh grep filer02 /etc/hosts || echo -e "192.168.3.159\tfiler02" >> /etc/hosts scp wongk@192.168.3.83:.ssh/vms_id_ed.pub .ssh/authorized_keys scp wongk@192.168.3.83:.ssh/vms_id_ed .ssh/ grep vms .ssh/config || echo 'IdentityFile ~/.ssh/vms_id_ed' >> .ssh/config ls /boot/entropy || /etc/rc.d/random start grep bash /etc/shells || echo /usr/local/bin/bash >> /etc/shells
pkg install -y parallel echo 'will cite' | parallel --citation
Upgrade Host
date ; PAGER=cat yes | freebsd-update -r 14.1-RELEASE-p2 --currently-running 14.1-RELEASE-p1 --not-running-from-cron upgrade; date date ; time yes | PAGER=cat freebsd-update --currently-running $(uname -r) --not-running-from-cron fetch install ; date real 4m23.307s user 2m49.590s sys 0m13.771s
pkg base
https://wiki.freebsd.org/PkgBase
date
ls -l /boot/kernel/kernel
mkdir -p /usr/local/etc/pkg/repos/
grep enabled /usr/local/etc/pkg/repos/base.conf || echo 'base: {
url: "pkg+https://pkg.FreeBSD.org/${ABI}/base_release_1",
mirror_type: "srv",
signature_type: "fingerprints",
fingerprints: "/usr/share/keys/pkg",
enabled: yes
}' >/usr/local/etc/pkg/repos/base.conf
rm /usr/local/etc/pkg/repos/FreeBSD.conf
grep enabled /usr/local/etc/pkg/repos/latest.conf || echo 'latest: {
url: "pkg+https://pkg.FreeBSD.org/${ABI}/latest",
mirror_type: "srv",
signature_type: "fingerprints",
fingerprints: "/usr/share/keys/pkg",
enabled: yes
}' >/usr/local/etc/pkg/repos/latest.conf
pkg update
# find security patches. filter unnecessary and current patch-level packages
#time pkg search -r base -g 'FreeBSD-*p?' | awk '!/-(lib32|dbg|dev|src|tests|mmccam|minimal)-/ {print $1}' | fgrep -v $(uname -r | awk -F- '{ print $1$3}') | xargs pkg install -y -r base
time pkg search -r base -g 'FreeBSD-*p?' | awk '!/-(lib32|dbg|dev|src|tests|mmccam|minimal)-/ {print $1}' | xargs pkg install -y -r base
cp -p /etc/master.passwd.pkgsave /etc/master.passwd
cp -p /etc/group.pkgsave /etc/group
cp -p /etc/shells.pkgsave /etc/shells
pwd_mkdb -p /etc/master.passwd
cp /etc/sysctl.conf.pkgsave /etc/sysctl.conf
cp -p /etc/hosts.pkgsave /etc/hosts
cp -p /etc/ssh/sshd_config.pkgsave /etc/ssh/sshd_config
# find changed files with "etc" in path
#find / -path '*/etc/*' -name "*.pkgsave" -type f
# find changed .conf files
#find / -name "*.conf.pkgsave"
#find / -name \*.pkgsave -print -delete
ls -l /boot/kernel/kernel
date
# (linker.hints was recreated at kernel install and we had the old modules as .pkgsave so we need to recreate it, this will be done at the next reboot)
rm /boot/kernel/linker.hints
cd /var/cache/pkg
ls | fgrep -v '~' | awk '!/-(lib32|dbg|dev|src|tests|mmccam|minimal)-/'
# pkg search -r base -g 'FreeBSD-*p1' | awk '!/-(lib32|dbg|dev|src|tests|mmccam|minimal)-/ {print $1}' | xargs
FreeBSD-acct-14.1p1 FreeBSD-clang-14.1p1 FreeBSD-clibs-14.1p1 FreeBSD-devd-14.1p1 FreeBSD-kernel-generic-14.1p1 FreeBSD-lld-14.1p1 FreeBSD-lldb-14.1p1 FreeBSD-rescue-14.1p1 FreeBSD-runtime-14.1p1 FreeBSD-utilities-14.1p1 FreeBSD-zfs-14.1p1
Install ports
# time git clone -o freebsd https://git.freebsd.org/ports.git /usr/ports ; exit Cloning into '/usr/ports'... remote: Enumerating objects: 6293704, done. remote: Counting objects: 100% (47660/47660), done. remote: Compressing objects: 100% (37020/37020), done. Receiving objects: 100% (6293704/6293704), 1.28 GiB | 6.50 MiB/s, done. remote: Total 6293704 (delta 22967), reused 19260 (delta 10304), pack-reused 6246044 (from 1) Resolving deltas: 100% (3797103/3797103), done. Updating files: 100% (162138/162138), done. real 7m9.337s user 6m38.899s sys 1m26.111s # time git clone --depth 1 https://git.freebsd.org/ports.git /usr/ports Cloning into '/usr/ports'... load: 0.06 cmd: git-remote-https 64926 [select] 13.78r 0.01u 0.00s 0% 13088k load: 0.05 cmd: git-remote-https 64926 [select] 21.56r 0.01u 0.00s 0% 13088k remote: Enumerating objects: 197757, done. remote: Counting objects: 100% (197757/197757), done. remote: Compressing objects: 100% (185648/185648), done. load: 0.11 cmd: git 64927 [piperd] 3.96r 0.04u 0.00s 0% 6524k remote: Total 197757 (delta 13461), reused 117919 (delta 5403), pack-reused 0 (from 0) Receiving objects: 100% (197757/197757), 87.61 MiB | 577.00 KiB/s, done. Resolving deltas: 100% (13461/13461), done. Updating files: 100% (162036/162036), done. real 3m20.931s user 0m6.951s sys 0m3.815s fetch https://download.freebsd.org/ftp/ports/ports/ports.tar.xz # latest tar xf ports.tar.xz -C /usr/ # time (fetch https://download.freebsd.org/ftp/ports/ports/ports.tar.xz ; tar xf ports.tar.xz -C /usr/); ports.tar.xz 41 MB 943 kBps 45s real 1m10.018s user 0m3.526s sys 0m5.176s fetch https://download.freebsd.org/ftp/releases/amd64/14.1-RELEASE/ports.txz tar xf ports.txz -C /
Install source
fetch https://download.freebsd.org/ftp/releases/amd64/14.1-RELEASE/src.txz tar xf src.txz -C /
how_to_compile_xigmanas_from_scratch.pdf
https://forums.freebsd.org/threads/guide-using-git-to-manage-ports-source-and-documentation.79721/
git clone --depth=1 https://git.freebsd.org/ports.git /usr/ports git clone --depth=1 https://git.freebsd.org/src.git /usr/src
Install kernel/base
fetch --no-verify-peer http://download.freebsd.org/ftp/releases/amd64/14.1-RELEASE/kernel.txz mkdir xigmanas/kernel-txz tar xf kernel.txz -C xigmanas/kernel-txz fetch http://download.freebsd.org/ftp/releases/amd64/14.1-RELEASE/base.txz mkdir xigmanas/base-txz tar xf base.txz -C xigmanas/base-txz
Install packages:
pkg install -y bash subversion pigz cdrtools
Delete all packages:
pkg delete -a
Getting XigmaNAS from svn
mkdir /usr/local/xigmanas
cd /usr/local/xigmanas/
svn co https://svn.code.sf.net/p/xigmanas/code/trunk svn
#cd svn; svn up -r9884 # 13.2.0.5 - Heighliner (revision 9884)
cd svn; svn up -r10024 # 13.3.0.5 - Hesterion (revision 10024)
mkdir /usr/ports/distfiles
cp /usr/local/xigmanas/svn/build/ports/distfiles/*.{gz,zip} /usr/ports/distfiles/
ln -s /usr/local/xigmanas /root/xigmanas
sudo mkdir /usr/local/xigmanas
cd /usr/local/xigmanas/
fetch https://sourceforge.net/code-snapshots/svn/x/xi/xigmanas/code/xigmanas-code-r9999-trunk.zip
sudo tar xf xigmanas-code-r9999-trunk.zip
sudo ln -s xigmanas-code-r9999-trunk svn
cp /usr/local/xigmanas/svn/build/ports/distfiles/*.{gz,zip} /usr/ports/distfiles/
Update Version
echo -n 14.1.0.7> /usr/local/xigmanas/svn/etc/prd.version
binary version 14.1.0.7
Compiling XigmaNAS
WITHOUT_X11 is unsupported, use WITHOUT=X11 # virtualbox-ose
echo WITHOUT_X11=yes >> /etc/make.conf echo WITHOUT=X11 >> /etc/make.conf
export XIGMANAS_ROOTFS=/usr/local/xigmanas/rootfs/ export BATCH=yes /usr/local/xigmanas/svn/build/make.sh
# ls /usr/local/xigmanas XigmaNAS-x86-9.0.0.1.43.checksum builds XigmaNAS-x86-LiveCD-9.0.0.1.43.iso rootfs XigmaNAS-x86-embedded-9.0.0.1.43.img svn bootloader work
make build-depends-list | sed 's=/usr/ports/==' | xargs pkg install -y make run-depends-list | sed 's=/usr/ports/==' | xargs pkg install -y
install deps via pkg
cd /usr/local/xigmanas/svn/build/ports for i in */; do cd $i make build-depends-list | sed 's=/usr/ports/==' | xargs pkg install -y cd .. done
cd /usr/local/xigmanas/svn/build/ports for i in */; do cd $i make build-depends-list | sed 's=/usr/ports/==' | xargs pkg install -y make -j8 build ; make package && cp work/pkg/* /var/cache/pkg/ cd .. done
Blog
Code highlighting https://prismjs.com/#examples
History
freebsd mkdir(2) manpage history update syscall was not in version 1 unix it wasn't in version 6 either (see tom lions) syscalls: https://warsus.github.io/lions-/ mkdir is not listed
mkdir syscall was added in BSD by Kirk McKuisick https://www.youtube.com/watch?v=XUj2vCKtegU&t=736s
https://gunkies.org/wiki/BSD 4.1c BSD - A beta of 4.2, and I think the first version of BSD sockets?
https://gunkies.org/wiki/4.2_BSD Date Released: 1983
https://gunkies.org/wiki/Installing_4.1c_BSD_on_SIMH You will need the following files from Bitsavers archive from the UCB_CSRG directory. I have used the files:
4.1C_BSD_1of2.zip (http://bitsavers.informatik.uni-stuttgart.de/bits/UCB_CSRG/4.1C_BSD_1of2.zip)
❯ grep mkdir.2 4.1C_BSD_1of2/burst/00004.txt -rw-r--r-- 0/0 1516 1983-02-26 17:21:59 man/man2/mkdir.2
Other
debootstrap unbuntu updates / symlink
Fonts
https://github.com/emaste/fontstuff/tree/master
https://docs.freebsd.org/en/books/handbook/bsdinstall/#bsdinstall-start
FreeBSD 8x8 syscons font
unifont https://unifoundry.com/unifont/unifont-utilities.html
xinch-filer02:/usr/ports# pkg install gnu-unifont-otf
fetch https://raw.githubusercontent.com/emaste/fontstuff/master/hex2bdf
unifont# ./hex2bdf iso-8x8.hex > iso-8x8.bdf
fontforge -lang=ff -c 'Open($1); Generate($2)' iso-8x8.bdf iso-8x8.woff2
Linux Jail
https://wiki.freebsd.org/LinuxJails
https://forums.freebsd.org/threads/running-linux-in-a-jail.90527/
https://iocage.readthedocs.io/en/latest/debian.html
qjail create -4 192.168.3.197 jammy debootstrap --arch=amd64 --no-check-gpg jammy /usr/jails/jammy/compat/ubuntu
finch:/usr/local/share/debootstrap/scripts# ln -s gutsy noble debootstrap --arch=amd64 --no-check-gpg noble /usr/jails/noble/compat/ubuntu
xDev:/compat# for i in noble/var/cache/apt/archives/*.deb; do echo $i; tar xf $i -C unzip data.tar.zst ; tar xpf unzip/data.tar.zst -C noble; done
Errors
No Menu
XigmaNAS: 14.1.0.9 (revision 10142)
Compiled: Mon Jul 15 08:12:52 CDT 2024 Platform: x64-liveusb
Copyright (c) 2018-2024 XigmaNAS(R). All Rights Reserved.
Visit www.xigmanas.com for regular system updates!
WebGUI Address: http://
LAN Network IPv4 Address:
LAN Network Interface: vtnet0
FreeBSD/amd64 (xigmanas.internal) (ttyu0)
FreeBSD/amd64 (xigmanas.internal) (ttyu0)
FreeBSD/amd64 (xigmanas.internal) (ttyu0)
Fix
Check for opie
# ls ~/xigmanas/rootfs/usr/local/lib/libopie* /root/xigmanas/rootfs/usr/local/lib/libopie.so /root/xigmanas/rootfs/usr/local/lib/libopie.so.8
Patches
fdisk
cd /usr/local/xigmanas/svn/build/ports/fdisk make extract egrep -B1 -A1 '^usage' work/fdisk-1.1/fdisk.c sed -i '.orig' 's/^\([a-z][a-zA-Z0-9_]*\)()$/\1(void)/g' /usr/local/xigmanas/svn/build/ports/fdisk/work/fdisk-1.1/fdisk.c cd /usr/local/xigmanas/svn/build/ports/fdisk/work/fdisk-1.1 diff -u fdisk.c.orig fdisk.c > ../../files/patch-fdisk.c
isboot
cd /usr/local/xigmanas/svn/build/ports/isboot/ make extract grep pmap_unmapdev work/isboot-0.3.3/src/ibft.c sed -i '.orig' 's/pmap_unmapdev((vm_offset_t)vaddr,/pmap_unmapdev((void *)(uintptr_t)vaddr,/g' /usr/local/xigmanas/svn/build/ports/isboot/work/isboot-0.3.3/src/ibft.c sed -i '.orig' 's/DVIMAGE$/DVIMAGE\nCFLAGS+= -Wno-error=unused-but-set-variable\n/g' /usr/local/xigmanas/svn/build/ports/isboot/work/isboot-0.3.3/src/Makefile cd /usr/local/xigmanas/svn/build/ports/isboot/work/isboot-0.3.3/src diff -u ibft.c.orig ibft.c > ../../../files/patch-ibft.c diff -u Makefile.orig Makefile > ../../../files/patch-Makefile cd /usr/local/xigmanas/svn/build/ports/isboot/
fuppes
# bash automake gettext-tools libtool pkgconf newest ports? # autoreconf libtool gettext-tools pkgconf cd /usr/local/xigmanas/svn/build/ports/fuppes make extract grep 'pStream->codec->' work/fuppes-0.692/src/plugins/metadata_libavformat.c sed -i '.orig' 's/pStream->codec->/pStream->codecpar->/g' work/fuppes-0.692/src/plugins/metadata_libavformat.c diff -u /usr/local/xigmanas/svn/build/ports/fuppes/work/fuppes-0.692/src/plugins/metadata_libavformat.c.orig /usr/local/xigmanas/svn/build/ports/fuppes/work/fuppes-0.692/src/plugins/metadata_libavformat.c > files/patch-src__plugins__metadata_libavformat.c
netatalk3
root@xigmanas:/usr/local/xigmanas/svn/build/ports/netatalk3 # grep -r FreeBSD . | grep LINUX ./work/netatalk-3.1.14/etc/uams/uams_dhx_pam.c:#if defined LINUX || defined __FreeBSD__ ./work/netatalk-3.1.14/etc/uams/uams_dhx2_pam.c:#if defined LINUX || defined __FreeBSD__ ./work/netatalk-3.1.14/etc/uams/uams_pam.c:#if defined LINUX || defined __FreeBSD__ root@xigmanas:/usr/local/xigmanas/svn/build/ports/netatalk3 #
root@xigmanas:/usr/ports/net/netatalk3/files # ls -l
total 40
-rw-r--r-- 1 root wheel 646 Apr 6 2021 netatalk.in
-rw-r--r-- 1 root wheel 188 Apr 6 2021 pam.conf
-rw-r--r-- 1 root wheel 1767 May 1 2022 patch-config_Makefile.in
-rw-r--r-- 1 root wheel 556 Oct 6 23:17 patch-configure
-rw-r--r-- 1 root wheel 1007 Feb 27 2023 patch-etc_afpd_Makefile.in
-rw-r--r-- 1 root wheel 273 Jul 20 2016 patch-etc_cnid__dbd_cnid__metad.c
-rw-r--r-- 1 root wheel 341 May 1 2022 patch-etc_netatalk_Makefile.in
-rw-r--r-- 1 root wheel 380 Nov 22 16:10 patch-etc_uams_uams__dhx2__pam.c
-rw-r--r-- 1 root wheel 581 Nov 22 16:10 patch-etc_uams_uams__dhx__pam.c
-rw-r--r-- 1 root wheel 416 Nov 22 16:10 patch-etc_uams_uams__pam.c
root@xigmanas:/usr/ports/net/netatalk3/files # cat patch-etc_uams_uams__dhx2__pam.c
--- etc/uams/uams_dhx2_pam.c.orig 2023-11-22 15:19:12 UTC
+++ etc/uams/uams_dhx2_pam.c
@@ -136,7 +136,7 @@ error:
* echo off means password.
*/
static int PAM_conv (int num_msg,
-#ifdef LINUX
+#if defined(LINUX) || (defined(FREEBSD) && __FreeBSD_version >= 1400000)
const struct pam_message **msg,
#else
struct pam_message **msg,
root@xigmanas:/usr/ports/net/netatalk3/files # ls -l /usr/local/xigmanas/svn/build/ports/netatalk3/files/
total 24
-rw-r--r-- 1 root wheel 2563 Dec 28 17:22 netatalk.in
-rw-r--r-- 1 root wheel 1767 Dec 28 17:22 patch-config_Makefile.in
-rw-r--r-- 1 root wheel 508 Dec 28 17:22 patch-configure
-rw-r--r-- 1 root wheel 1007 Dec 28 17:22 patch-etc_afpd_Makefile.in
-rw-r--r-- 1 root wheel 273 Dec 28 17:22 patch-etc_cnid__dbd_cnid__metad.c
-rw-r--r-- 1 root wheel 341 Dec 28 17:22 patch-etc_netatalk_Makefile.in
root@xigmanas:/usr/ports/net/netatalk3/files #