@@ -86,10 +86,10 @@ __FreeBSDPackages+=" krb5"
8686__FreeBSDPackages+=" terminfo-db"
8787
8888__OpenBSDVersion=" 7.8"
89+ __OpenBSDPackages=" heimdal-libs"
8990__OpenBSDPackages+=" icu4c"
9091__OpenBSDPackages+=" inotify-tools"
9192__OpenBSDPackages+=" openssl"
92- __OpenBSDPackages+=" heimdal-libs"
9393
9494__IllumosPackages=" icu"
9595__IllumosPackages+=" mit-krb5"
@@ -632,19 +632,40 @@ elif [[ "$__CodeName" == "openbsd" ]]; then
632632
633633 echo " Installing packages into sysroot..."
634634
635+ # Fetch package index once
636+ if [[ " $__hasWget " == 1 ]]; then
637+ PKG_INDEX=$( wget -qO- " $PKG_MIRROR /" )
638+ else
639+ PKG_INDEX=$( curl -s " $PKG_MIRROR /" )
640+ fi
641+
635642 for pkg in $__OpenBSDPackages ; do
636- echo " Resolving package filename for $pkg ..."
643+ PKG_FILE=$( echo " $PKG_INDEX " | grep -Po " >\K${pkg} -[0-9][^\" ]*\.tgz" \
644+ | sort -V | tail -n1)
645+
646+ echo " Resolved package filename for $pkg : $PKG_FILE "
647+
648+ [[ -z " $PKG_FILE " ]] && { echo " ERROR: Package $pkg not found" ; exit 1; }
637649
638650 if [[ " $__hasWget " == 1 ]]; then
639- PKG_FILE=$( wget -qO- " $PKG_MIRROR /" | grep -Eo " ${pkg} -[0-9][^\" ]*\.tgz" | head -n1)
640- [[ -z " $PKG_FILE " ]] && { echo " ERROR: Package $pkg not found" ; exit 1; }
641651 wget -O- " $PKG_MIRROR /$PKG_FILE " | tar -C " $__RootfsDir " -xzpf -
642652 else
643- PKG_FILE=$( curl -s " $PKG_MIRROR /" | grep -Eo " ${pkg} -[0-9][^\" ]*\.tgz" | head -n1)
644- [[ -z " $PKG_FILE " ]] && { echo " ERROR: Package $pkg not found" ; exit 1; }
645653 curl -SL " $PKG_MIRROR /$PKG_FILE " | tar -C " $__RootfsDir " -xzpf -
646654 fi
647655 done
656+
657+ echo " Creating versionless symlinks for shared libraries..."
658+ # Find all versioned .so files and create the base .so symlink
659+ for lib in " $__RootfsDir /usr/lib/libc++.so." * " $__RootfsDir /usr/lib/libc++abi.so." * " $__RootfsDir /usr/lib/libpthread.so." * ; do
660+ if [ -f " $lib " ]; then
661+ # Extract the filename (e.g., libc++.so.12.0)
662+ VERSIONED_NAME=$( basename " $lib " )
663+ # Remove the trailing version numbers (e.g., libc++.so)
664+ BASE_NAME=${VERSIONED_NAME% .so.* } .so
665+ # Create the symlink in the same directory
666+ ln -sf " $VERSIONED_NAME " " $__RootfsDir /usr/lib/$BASE_NAME "
667+ fi
668+ done
648669elif [[ " $__CodeName " == " illumos" ]]; then
649670 mkdir " $__RootfsDir /tmp"
650671 pushd " $__RootfsDir /tmp"
0 commit comments