XigmaNAS: Difference between revisions

From pega.life
Jump to navigation Jump to search
Line 55: Line 55:
chroot /zroot/bynch bash -l
chroot /zroot/bynch bash -l


 
sysrc yes_enable=YES
vi /usr/local/etc/rc.d/yesd
</pre>
</pre>
yesd
yesd

Revision as of 05:04, 17 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

https://object-storage.public.mtl1.vexxhost.net/swift/v1/1dbafeefbd4f4c80864414a441e72dd2/bsd-cloud-image.org/images/freebsd/14.0/2024-05-06/zfs/freebsd-14.0-zfs-2024-05-06.qcow2

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 Install

scp w@192.168.1.1:f/FreeBSD-13.3-RELEASE-amd64-disc1.iso .
mdconfig -a -t vnode -f *.iso
mkdir iso
mount -t cd9660 /dev/md0 iso
zfs create -o compress=zstd zroot/bynch

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

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

https://cgit.freebsd.org/src/plain/share/misc/bsd-family-tree?id=ea2b79b03eec2c1c49c8c04aa7c7a40bb5e41303

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 #