HomeSort by: relevance | last modified time | path
    Searched hist:1.494 (Results 1 - 25 of 52) sorted by relevancy

1 2 3

  /src/usr.sbin/wg-keygen/
Makefile 1.1.10.1 Thu Jan 22 19:51:55 UTC 2026 martin Pull up following revision(s) (requested by snj in ticket #150):

distrib/sets/lists/debug/shl.mi: revision 1.380
crypto/external/bsd/openssh/lib/Makefile: revision 1.45
distrib/sets/lists/debug/shl.mi: revision 1.381
crypto/external/bsd/openssh/lib/Makefile: revision 1.46
distrib/sets/lists/debug/shl.mi: revision 1.382
distrib/evbarm/instkernel/sshramdisk/list: revision 1.7
share/mk/bsd.lib.mk: revision 1.423
share/mk/bsd.lib.mk: revision 1.425
distrib/sets/lists/comp/mi: revision 1.2503
distrib/sets/lists/comp/mi: revision 1.2504
distrib/evbarm/instkernel/sshramdisk/Makefile: revision 1.31
distrib/sets/lists/base/shl.mi: revision 1.1019
rescue/list: revision 1.56
etc/mtree/NetBSD.dist.compat.in: revision 1.9
distrib/sets/lists/debug/mi: revision 1.494
distrib/sets/lists/debug/mi: revision 1.495
distrib/sets/lists/base/mi: revision 1.1371
distrib/sets/lists/base/mi: revision 1.1372
distrib/sets/lists/comp/shl.mi: revision 1.362
etc/mtree/NetBSD.dist.base: revision 1.262
lib/libpam/modules/pam_ssh/Makefile: revision 1.15
share/mk/bsd.prog.mk: revision 1.358
share/mk/bsd.prog.mk: revision 1.359
usr.sbin/wg-keygen/Makefile: revision 1.2
usr.sbin/wg-keygen/Makefile: revision 1.3
distrib/sets/lists/base/shl.mi: revision 1.1020
share/mk/bsd.README: revision 1.457
crypto/external/bsd/openssh/Makefile.inc: revision 1.18
distrib/sets/lists/xdebug/mi: revision 1.52
rescue/Makefile: revision 1.43

Add logic for /usr/lib/private libraries.

New variables for makefiles to define:
<bsd.lib.mk> LIBSUBDIR -- If nonempty, install library into
${LIBDIR}/${LIBSUBDIR} instead of ${LIBDIR}. Typically set
either to empty or to `private'.
<bsd.lib.mk> LIBDPSUBDIRS -- List of subdirectories _subdir_ to add
-L${SHLIBDIR}/${_subdir_} -Wl,-R${SHLIBDIR}/${_subdir_} to
ldflags when linking library. Note: Should only be used inside
private libraries, not inside public libraries to link against
private libraries, which can't work -- see comment.
<bsd.prog.mk> PROGDPSUBDIRS -- List of subdirectories _subdir_ to add
-L${SHLIBDIR}/${_subdir_} -Wl,-R${SHLIBDIR}/${_subdir_} to
ldflags when linking program.

(XXX bsd.lib.mk/bsd.prog.mk should figure LIBDPSUBDIRS/PROGDPSUBDIRS
out automatically by LIBDPLIBS/PROGDPLIBS, but for now we don't have
that mechanism -- TBD in subsequent work.)

Libraries that we want to install because we use them in binaries we
ship, but that we want to keep private from applications so we don't
have to worry about ABI breakage or leakage into pkgsrc builds,
should generally set:

LIBSUBDIR= private # Install into /usr/lib/private.
NOCOMPAT= # defined # Don't build compat lib.
NOLINKLIB= # defined # Don't install .so link or .a lib.

(XXX Maybe we should have a `LIBISPRIVATE= installed' or something
for this combination of options, but for now I'm putting in the
minimal mechanism to implement this and we can condense a common
pattern later.)

Programs using the library will also have to set
PROGDPSUBDIRS+= private
so that they will get the rpath /usr/lib/private.

PR lib/58648: private shared libraries should go in /usr/lib/private,
not /usr/lib


openssh: Install libssh.so in /usr/lib/private.

This way it doesn't get exposed to applications accidentally, and we
don't need to worry about breaking ABI when updating openssh in base.
PR lib/58648: private shared libraries should go in /usr/lib/private,
not /usr/lib

openssh: Do build and install compat libssh after all.

Even though it's not exposed for applications to _link_ against, it
is used by the dynamically _loadable_ pam_ssh module, which exists as
a compat module and therefore needs libssh as a compat library to be
installed somewhere. That somewhere will be
/usr/lib/${COMPAT_ARCH}/private.

Should fix problems like:
dependall ===> compat/sparc64/sparc/../../../lib/libpam/modules/pam_ssh
nbmake[11]: don't know how to make /home/source/ab/HEAD/src/crypto/external/bsd/openssh/lib/libssh.a. Stop
Verified in an amd64 build that the compat i386 pam_ssh.so is linked
correctly:
(chroot HEAD)# ldd /usr/lib/i386/security/pam_ssh.so.4
/usr/lib/i386/security/pam_ssh.so.4:
-lssh.50 => /usr/lib/i386/private/libssh.so.50
-lcrypto.16 => /usr/lib/i386/libcrypto.so.16
-lcrypt.1 => /usr/lib/i386/libcrypt.so.1
-lgcc_s.1 => /usr/lib/i386/libgcc_s.so.1
-lc.12 => /usr/lib/i386/libc.so.12
-lz.1 => /usr/lib/i386/libz.so.1

PR lib/58648: private shared libraries should go in /usr/lib/private,
not /usr/lib


wg-keygen(8): Find private libssh.so.
Should fix:
/usr/sbin/wg-keygen: Shared object "libssh.so.50" not found
PR lib/58648: private shared libraries should go in /usr/lib/private,
not /usr/lib


evbarm/instkernel/sshramdisk: Get libssh out of objdir now.
Should fix problems like:
--- ramdiskbin.link ---
# link sshramdisk/ramdiskbin.link
/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/bin/armv6eb--netbsdelf-eabihf-gcc --sysroot=/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest -static -o
ramdiskbin.link ramdiskbin.o -Wl,-rpath-link,/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/lib -L=/lib -L/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/usr/lib cat.cro
chmod.cro cp.cro dd.cro df.cro ed.cro ln.cro ls.cro mkdir.cro mv.cro pax.cro pwd.cro rm.cro rmdir.cro sh.cro stty.cro sync.cro sleep.cro chown.cro disklabel.cro fdisk.cro fsck.cro fsck_msdos.cro
fsck_ffs.cro gpt.cro ifconfig.cro init.cro mknod.cro mount.cro mount_cd9660.cro mount_ext2fs.cro mount_ffs.cro mount_kernfs.cro mount_msdos.cro mount_nfs.cro mount_tmpfs.cro newfs.cro
newfs_ext2fs.cro ping.cro reboot.cro restore.cro route.cro shutdown.cro slattach.cro swapctl.cro umount.cro ftp.cro tip.cro gzip.cro less.cro sed.cro tset.cro chroot.cro sshd.cro sysinst.cro
progress.cro dhcpcd.cro libhack.o
-ledit -lutil -lcurses -lterminfo -lrmt -lcrypt -ll -lm -lz -lprop -lssh -lcrypto -lpthread
/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/lib/gcc/armv6eb--netbsdelf-eabihf/14.3.0/../../../../armv6eb--netbsdelf-eabihf/bin/ld: cannot find -lssh: No such file or directory
/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/lib/gcc/armv6eb--netbsdelf-eabihf/14.3.0/../../../../armv6eb--netbsdelf-eabihf/bin/ld: have you installed the static version of the
ssh library ?
collect2: error: ld returned 1 exit status
*** Failed target: ramdiskbin.link
*** In directory: /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-obj/home/source/ab/HEAD/src/distrib/evbarm/instkernel/sshramdisk
*** Failed commands:
${_MKTARGET_LINK}
=> @echo '# ' " link " sshramdisk/ramdiskbin.link
${_CCLINK.${:Uramdiskbin}} ${_LDFLAGS.${:Uramdiskbin}} ${_LDSTATIC.${:Uramdiskbin}} -o ${.TARGET} ${OBJS.${:Uramdiskbin}} ${_PROGLDOPTS} ${_LDADD.${:Uramdiskbin}}
=> /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/bin/armv6eb--netbsdelf-eabihf-gcc --sysroot=/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest -static -o
ramdiskbin.link ramdiskbin.o -Wl,-rpath-link,/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/lib -L=/lib -L/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/usr/lib cat.cro
chmod.cro cp.cro dd.cro df.cro ed.cro ln.cro ls.cro mkdir.cro mv.cro pax.cro pwd.cro rm.cro rmdir.cro sh.cro stty.cro sync.cro sleep.cro chown.cro disklabel.cro fdisk.cro fsck.cro fsck_msdos.cro
fsck_ffs.cro gpt.cro ifconfig.cro init.cro mknod.cro mount.cro mount_cd9660.cro mount_ext2fs.cro mount_ffs.cro mount_kernfs.cro mount_msdos.cro mount_nfs.cro mount_tmpfs.cro newfs.cro
newfs_ext2fs.cro ping.cro reboot.cro restore.cro route.cro shutdown.cro slattach.cro swapctl.cro umount.cro ftp.cro tip.cro gzip.cro less.cro sed.cro tset.cro chroot.cro sshd.cro sysinst.cro
progress.cro dhcpcd.cro
libhack.o -ledit -lutil -lcurses -lterminfo -lrmt -lcrypt -ll -lm -lz -lprop -lssh -lcrypto -lpthread
${CTFMERGE} ${CTFMFLAGS} -o ${.TARGET} ${OBJS.${:Uramdiskbin}}
=> /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/bin/nbctfmerge -t -g -L VERSION -g -o ramdiskbin.link ramdiskbin.o
*** [ramdiskbin.link] Error code 1
PR lib/58648: private shared libraries should go in
/usr/lib/private, not /usr/lib


distrib/sets/lists/comp: libssh is private for lint too.
Might fix:
checkflist ===> distrib/sets
====== 1 missing files in DESTDIR ========
Files in flist but missing from DESTDIR.
File wasn't installed ?
------------------------------------------
./usr/libdata/lint/llib-lssh.ln
======== end of 1 missing files ==========
PR lib/58648: private shared libraries should go in /usr/lib/private,
not /usr/lib

PR/58648: Fix MKDEBUG=yes build:
1. if NOLINKLIB is set don't install libfoo_g.a and libfoo_p.a libraries.
libfoo.a, libfoo_p.a were not being installed already, just make the
testing consistent
2. Move .a libraries from shl.mi to mi where they belong.
3. Make stray libfoo_g.a libraries that were install accidentally before
obsolete.

rescue/list: Touch for CRUNCHGEN_FLAGS change for libssh.
PR lib/58648: private shared libraries should go in /usr/lib/private,
not /usr/lib

  /src/distrib/evbarm/instkernel/sshramdisk/
Makefile 1.28.4.1 Thu Jan 22 19:51:52 UTC 2026 martin Pull up following revision(s) (requested by snj in ticket #150):

distrib/sets/lists/debug/shl.mi: revision 1.380
crypto/external/bsd/openssh/lib/Makefile: revision 1.45
distrib/sets/lists/debug/shl.mi: revision 1.381
crypto/external/bsd/openssh/lib/Makefile: revision 1.46
distrib/sets/lists/debug/shl.mi: revision 1.382
distrib/evbarm/instkernel/sshramdisk/list: revision 1.7
share/mk/bsd.lib.mk: revision 1.423
share/mk/bsd.lib.mk: revision 1.425
distrib/sets/lists/comp/mi: revision 1.2503
distrib/sets/lists/comp/mi: revision 1.2504
distrib/evbarm/instkernel/sshramdisk/Makefile: revision 1.31
distrib/sets/lists/base/shl.mi: revision 1.1019
rescue/list: revision 1.56
etc/mtree/NetBSD.dist.compat.in: revision 1.9
distrib/sets/lists/debug/mi: revision 1.494
distrib/sets/lists/debug/mi: revision 1.495
distrib/sets/lists/base/mi: revision 1.1371
distrib/sets/lists/base/mi: revision 1.1372
distrib/sets/lists/comp/shl.mi: revision 1.362
etc/mtree/NetBSD.dist.base: revision 1.262
lib/libpam/modules/pam_ssh/Makefile: revision 1.15
share/mk/bsd.prog.mk: revision 1.358
share/mk/bsd.prog.mk: revision 1.359
usr.sbin/wg-keygen/Makefile: revision 1.2
usr.sbin/wg-keygen/Makefile: revision 1.3
distrib/sets/lists/base/shl.mi: revision 1.1020
share/mk/bsd.README: revision 1.457
crypto/external/bsd/openssh/Makefile.inc: revision 1.18
distrib/sets/lists/xdebug/mi: revision 1.52
rescue/Makefile: revision 1.43

Add logic for /usr/lib/private libraries.

New variables for makefiles to define:
<bsd.lib.mk> LIBSUBDIR -- If nonempty, install library into
${LIBDIR}/${LIBSUBDIR} instead of ${LIBDIR}. Typically set
either to empty or to `private'.
<bsd.lib.mk> LIBDPSUBDIRS -- List of subdirectories _subdir_ to add
-L${SHLIBDIR}/${_subdir_} -Wl,-R${SHLIBDIR}/${_subdir_} to
ldflags when linking library. Note: Should only be used inside
private libraries, not inside public libraries to link against
private libraries, which can't work -- see comment.
<bsd.prog.mk> PROGDPSUBDIRS -- List of subdirectories _subdir_ to add
-L${SHLIBDIR}/${_subdir_} -Wl,-R${SHLIBDIR}/${_subdir_} to
ldflags when linking program.

(XXX bsd.lib.mk/bsd.prog.mk should figure LIBDPSUBDIRS/PROGDPSUBDIRS
out automatically by LIBDPLIBS/PROGDPLIBS, but for now we don't have
that mechanism -- TBD in subsequent work.)

Libraries that we want to install because we use them in binaries we
ship, but that we want to keep private from applications so we don't
have to worry about ABI breakage or leakage into pkgsrc builds,
should generally set:

LIBSUBDIR= private # Install into /usr/lib/private.
NOCOMPAT= # defined # Don't build compat lib.
NOLINKLIB= # defined # Don't install .so link or .a lib.

(XXX Maybe we should have a `LIBISPRIVATE= installed' or something
for this combination of options, but for now I'm putting in the
minimal mechanism to implement this and we can condense a common
pattern later.)

Programs using the library will also have to set
PROGDPSUBDIRS+= private
so that they will get the rpath /usr/lib/private.

PR lib/58648: private shared libraries should go in /usr/lib/private,
not /usr/lib


openssh: Install libssh.so in /usr/lib/private.

This way it doesn't get exposed to applications accidentally, and we
don't need to worry about breaking ABI when updating openssh in base.
PR lib/58648: private shared libraries should go in /usr/lib/private,
not /usr/lib

openssh: Do build and install compat libssh after all.

Even though it's not exposed for applications to _link_ against, it
is used by the dynamically _loadable_ pam_ssh module, which exists as
a compat module and therefore needs libssh as a compat library to be
installed somewhere. That somewhere will be
/usr/lib/${COMPAT_ARCH}/private.

Should fix problems like:
dependall ===> compat/sparc64/sparc/../../../lib/libpam/modules/pam_ssh
nbmake[11]: don't know how to make /home/source/ab/HEAD/src/crypto/external/bsd/openssh/lib/libssh.a. Stop
Verified in an amd64 build that the compat i386 pam_ssh.so is linked
correctly:
(chroot HEAD)# ldd /usr/lib/i386/security/pam_ssh.so.4
/usr/lib/i386/security/pam_ssh.so.4:
-lssh.50 => /usr/lib/i386/private/libssh.so.50
-lcrypto.16 => /usr/lib/i386/libcrypto.so.16
-lcrypt.1 => /usr/lib/i386/libcrypt.so.1
-lgcc_s.1 => /usr/lib/i386/libgcc_s.so.1
-lc.12 => /usr/lib/i386/libc.so.12
-lz.1 => /usr/lib/i386/libz.so.1

PR lib/58648: private shared libraries should go in /usr/lib/private,
not /usr/lib


wg-keygen(8): Find private libssh.so.
Should fix:
/usr/sbin/wg-keygen: Shared object "libssh.so.50" not found
PR lib/58648: private shared libraries should go in /usr/lib/private,
not /usr/lib


evbarm/instkernel/sshramdisk: Get libssh out of objdir now.
Should fix problems like:
--- ramdiskbin.link ---
# link sshramdisk/ramdiskbin.link
/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/bin/armv6eb--netbsdelf-eabihf-gcc --sysroot=/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest -static -o
ramdiskbin.link ramdiskbin.o -Wl,-rpath-link,/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/lib -L=/lib -L/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/usr/lib cat.cro
chmod.cro cp.cro dd.cro df.cro ed.cro ln.cro ls.cro mkdir.cro mv.cro pax.cro pwd.cro rm.cro rmdir.cro sh.cro stty.cro sync.cro sleep.cro chown.cro disklabel.cro fdisk.cro fsck.cro fsck_msdos.cro
fsck_ffs.cro gpt.cro ifconfig.cro init.cro mknod.cro mount.cro mount_cd9660.cro mount_ext2fs.cro mount_ffs.cro mount_kernfs.cro mount_msdos.cro mount_nfs.cro mount_tmpfs.cro newfs.cro
newfs_ext2fs.cro ping.cro reboot.cro restore.cro route.cro shutdown.cro slattach.cro swapctl.cro umount.cro ftp.cro tip.cro gzip.cro less.cro sed.cro tset.cro chroot.cro sshd.cro sysinst.cro
progress.cro dhcpcd.cro libhack.o
-ledit -lutil -lcurses -lterminfo -lrmt -lcrypt -ll -lm -lz -lprop -lssh -lcrypto -lpthread
/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/lib/gcc/armv6eb--netbsdelf-eabihf/14.3.0/../../../../armv6eb--netbsdelf-eabihf/bin/ld: cannot find -lssh: No such file or directory
/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/lib/gcc/armv6eb--netbsdelf-eabihf/14.3.0/../../../../armv6eb--netbsdelf-eabihf/bin/ld: have you installed the static version of the
ssh library ?
collect2: error: ld returned 1 exit status
*** Failed target: ramdiskbin.link
*** In directory: /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-obj/home/source/ab/HEAD/src/distrib/evbarm/instkernel/sshramdisk
*** Failed commands:
${_MKTARGET_LINK}
=> @echo '# ' " link " sshramdisk/ramdiskbin.link
${_CCLINK.${:Uramdiskbin}} ${_LDFLAGS.${:Uramdiskbin}} ${_LDSTATIC.${:Uramdiskbin}} -o ${.TARGET} ${OBJS.${:Uramdiskbin}} ${_PROGLDOPTS} ${_LDADD.${:Uramdiskbin}}
=> /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/bin/armv6eb--netbsdelf-eabihf-gcc --sysroot=/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest -static -o
ramdiskbin.link ramdiskbin.o -Wl,-rpath-link,/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/lib -L=/lib -L/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/usr/lib cat.cro
chmod.cro cp.cro dd.cro df.cro ed.cro ln.cro ls.cro mkdir.cro mv.cro pax.cro pwd.cro rm.cro rmdir.cro sh.cro stty.cro sync.cro sleep.cro chown.cro disklabel.cro fdisk.cro fsck.cro fsck_msdos.cro
fsck_ffs.cro gpt.cro ifconfig.cro init.cro mknod.cro mount.cro mount_cd9660.cro mount_ext2fs.cro mount_ffs.cro mount_kernfs.cro mount_msdos.cro mount_nfs.cro mount_tmpfs.cro newfs.cro
newfs_ext2fs.cro ping.cro reboot.cro restore.cro route.cro shutdown.cro slattach.cro swapctl.cro umount.cro ftp.cro tip.cro gzip.cro less.cro sed.cro tset.cro chroot.cro sshd.cro sysinst.cro
progress.cro dhcpcd.cro
libhack.o -ledit -lutil -lcurses -lterminfo -lrmt -lcrypt -ll -lm -lz -lprop -lssh -lcrypto -lpthread
${CTFMERGE} ${CTFMFLAGS} -o ${.TARGET} ${OBJS.${:Uramdiskbin}}
=> /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/bin/nbctfmerge -t -g -L VERSION -g -o ramdiskbin.link ramdiskbin.o
*** [ramdiskbin.link] Error code 1
PR lib/58648: private shared libraries should go in
/usr/lib/private, not /usr/lib


distrib/sets/lists/comp: libssh is private for lint too.
Might fix:
checkflist ===> distrib/sets
====== 1 missing files in DESTDIR ========
Files in flist but missing from DESTDIR.
File wasn't installed ?
------------------------------------------
./usr/libdata/lint/llib-lssh.ln
======== end of 1 missing files ==========
PR lib/58648: private shared libraries should go in /usr/lib/private,
not /usr/lib

PR/58648: Fix MKDEBUG=yes build:
1. if NOLINKLIB is set don't install libfoo_g.a and libfoo_p.a libraries.
libfoo.a, libfoo_p.a were not being installed already, just make the
testing consistent
2. Move .a libraries from shl.mi to mi where they belong.
3. Make stray libfoo_g.a libraries that were install accidentally before
obsolete.

rescue/list: Touch for CRUNCHGEN_FLAGS change for libssh.
PR lib/58648: private shared libraries should go in /usr/lib/private,
not /usr/lib
list 1.6.2.1 Thu Jan 22 19:51:52 UTC 2026 martin Pull up following revision(s) (requested by snj in ticket #150):

distrib/sets/lists/debug/shl.mi: revision 1.380
crypto/external/bsd/openssh/lib/Makefile: revision 1.45
distrib/sets/lists/debug/shl.mi: revision 1.381
crypto/external/bsd/openssh/lib/Makefile: revision 1.46
distrib/sets/lists/debug/shl.mi: revision 1.382
distrib/evbarm/instkernel/sshramdisk/list: revision 1.7
share/mk/bsd.lib.mk: revision 1.423
share/mk/bsd.lib.mk: revision 1.425
distrib/sets/lists/comp/mi: revision 1.2503
distrib/sets/lists/comp/mi: revision 1.2504
distrib/evbarm/instkernel/sshramdisk/Makefile: revision 1.31
distrib/sets/lists/base/shl.mi: revision 1.1019
rescue/list: revision 1.56
etc/mtree/NetBSD.dist.compat.in: revision 1.9
distrib/sets/lists/debug/mi: revision 1.494
distrib/sets/lists/debug/mi: revision 1.495
distrib/sets/lists/base/mi: revision 1.1371
distrib/sets/lists/base/mi: revision 1.1372
distrib/sets/lists/comp/shl.mi: revision 1.362
etc/mtree/NetBSD.dist.base: revision 1.262
lib/libpam/modules/pam_ssh/Makefile: revision 1.15
share/mk/bsd.prog.mk: revision 1.358
share/mk/bsd.prog.mk: revision 1.359
usr.sbin/wg-keygen/Makefile: revision 1.2
usr.sbin/wg-keygen/Makefile: revision 1.3
distrib/sets/lists/base/shl.mi: revision 1.1020
share/mk/bsd.README: revision 1.457
crypto/external/bsd/openssh/Makefile.inc: revision 1.18
distrib/sets/lists/xdebug/mi: revision 1.52
rescue/Makefile: revision 1.43

Add logic for /usr/lib/private libraries.

New variables for makefiles to define:
<bsd.lib.mk> LIBSUBDIR -- If nonempty, install library into
${LIBDIR}/${LIBSUBDIR} instead of ${LIBDIR}. Typically set
either to empty or to `private'.
<bsd.lib.mk> LIBDPSUBDIRS -- List of subdirectories _subdir_ to add
-L${SHLIBDIR}/${_subdir_} -Wl,-R${SHLIBDIR}/${_subdir_} to
ldflags when linking library. Note: Should only be used inside
private libraries, not inside public libraries to link against
private libraries, which can't work -- see comment.
<bsd.prog.mk> PROGDPSUBDIRS -- List of subdirectories _subdir_ to add
-L${SHLIBDIR}/${_subdir_} -Wl,-R${SHLIBDIR}/${_subdir_} to
ldflags when linking program.

(XXX bsd.lib.mk/bsd.prog.mk should figure LIBDPSUBDIRS/PROGDPSUBDIRS
out automatically by LIBDPLIBS/PROGDPLIBS, but for now we don't have
that mechanism -- TBD in subsequent work.)

Libraries that we want to install because we use them in binaries we
ship, but that we want to keep private from applications so we don't
have to worry about ABI breakage or leakage into pkgsrc builds,
should generally set:

LIBSUBDIR= private # Install into /usr/lib/private.
NOCOMPAT= # defined # Don't build compat lib.
NOLINKLIB= # defined # Don't install .so link or .a lib.

(XXX Maybe we should have a `LIBISPRIVATE= installed' or something
for this combination of options, but for now I'm putting in the
minimal mechanism to implement this and we can condense a common
pattern later.)

Programs using the library will also have to set
PROGDPSUBDIRS+= private
so that they will get the rpath /usr/lib/private.

PR lib/58648: private shared libraries should go in /usr/lib/private,
not /usr/lib


openssh: Install libssh.so in /usr/lib/private.

This way it doesn't get exposed to applications accidentally, and we
don't need to worry about breaking ABI when updating openssh in base.
PR lib/58648: private shared libraries should go in /usr/lib/private,
not /usr/lib

openssh: Do build and install compat libssh after all.

Even though it's not exposed for applications to _link_ against, it
is used by the dynamically _loadable_ pam_ssh module, which exists as
a compat module and therefore needs libssh as a compat library to be
installed somewhere. That somewhere will be
/usr/lib/${COMPAT_ARCH}/private.

Should fix problems like:
dependall ===> compat/sparc64/sparc/../../../lib/libpam/modules/pam_ssh
nbmake[11]: don't know how to make /home/source/ab/HEAD/src/crypto/external/bsd/openssh/lib/libssh.a. Stop
Verified in an amd64 build that the compat i386 pam_ssh.so is linked
correctly:
(chroot HEAD)# ldd /usr/lib/i386/security/pam_ssh.so.4
/usr/lib/i386/security/pam_ssh.so.4:
-lssh.50 => /usr/lib/i386/private/libssh.so.50
-lcrypto.16 => /usr/lib/i386/libcrypto.so.16
-lcrypt.1 => /usr/lib/i386/libcrypt.so.1
-lgcc_s.1 => /usr/lib/i386/libgcc_s.so.1
-lc.12 => /usr/lib/i386/libc.so.12
-lz.1 => /usr/lib/i386/libz.so.1

PR lib/58648: private shared libraries should go in /usr/lib/private,
not /usr/lib


wg-keygen(8): Find private libssh.so.
Should fix:
/usr/sbin/wg-keygen: Shared object "libssh.so.50" not found
PR lib/58648: private shared libraries should go in /usr/lib/private,
not /usr/lib


evbarm/instkernel/sshramdisk: Get libssh out of objdir now.
Should fix problems like:
--- ramdiskbin.link ---
# link sshramdisk/ramdiskbin.link
/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/bin/armv6eb--netbsdelf-eabihf-gcc --sysroot=/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest -static -o
ramdiskbin.link ramdiskbin.o -Wl,-rpath-link,/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/lib -L=/lib -L/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/usr/lib cat.cro
chmod.cro cp.cro dd.cro df.cro ed.cro ln.cro ls.cro mkdir.cro mv.cro pax.cro pwd.cro rm.cro rmdir.cro sh.cro stty.cro sync.cro sleep.cro chown.cro disklabel.cro fdisk.cro fsck.cro fsck_msdos.cro
fsck_ffs.cro gpt.cro ifconfig.cro init.cro mknod.cro mount.cro mount_cd9660.cro mount_ext2fs.cro mount_ffs.cro mount_kernfs.cro mount_msdos.cro mount_nfs.cro mount_tmpfs.cro newfs.cro
newfs_ext2fs.cro ping.cro reboot.cro restore.cro route.cro shutdown.cro slattach.cro swapctl.cro umount.cro ftp.cro tip.cro gzip.cro less.cro sed.cro tset.cro chroot.cro sshd.cro sysinst.cro
progress.cro dhcpcd.cro libhack.o
-ledit -lutil -lcurses -lterminfo -lrmt -lcrypt -ll -lm -lz -lprop -lssh -lcrypto -lpthread
/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/lib/gcc/armv6eb--netbsdelf-eabihf/14.3.0/../../../../armv6eb--netbsdelf-eabihf/bin/ld: cannot find -lssh: No such file or directory
/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/lib/gcc/armv6eb--netbsdelf-eabihf/14.3.0/../../../../armv6eb--netbsdelf-eabihf/bin/ld: have you installed the static version of the
ssh library ?
collect2: error: ld returned 1 exit status
*** Failed target: ramdiskbin.link
*** In directory: /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-obj/home/source/ab/HEAD/src/distrib/evbarm/instkernel/sshramdisk
*** Failed commands:
${_MKTARGET_LINK}
=> @echo '# ' " link " sshramdisk/ramdiskbin.link
${_CCLINK.${:Uramdiskbin}} ${_LDFLAGS.${:Uramdiskbin}} ${_LDSTATIC.${:Uramdiskbin}} -o ${.TARGET} ${OBJS.${:Uramdiskbin}} ${_PROGLDOPTS} ${_LDADD.${:Uramdiskbin}}
=> /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/bin/armv6eb--netbsdelf-eabihf-gcc --sysroot=/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest -static -o
ramdiskbin.link ramdiskbin.o -Wl,-rpath-link,/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/lib -L=/lib -L/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/usr/lib cat.cro
chmod.cro cp.cro dd.cro df.cro ed.cro ln.cro ls.cro mkdir.cro mv.cro pax.cro pwd.cro rm.cro rmdir.cro sh.cro stty.cro sync.cro sleep.cro chown.cro disklabel.cro fdisk.cro fsck.cro fsck_msdos.cro
fsck_ffs.cro gpt.cro ifconfig.cro init.cro mknod.cro mount.cro mount_cd9660.cro mount_ext2fs.cro mount_ffs.cro mount_kernfs.cro mount_msdos.cro mount_nfs.cro mount_tmpfs.cro newfs.cro
newfs_ext2fs.cro ping.cro reboot.cro restore.cro route.cro shutdown.cro slattach.cro swapctl.cro umount.cro ftp.cro tip.cro gzip.cro less.cro sed.cro tset.cro chroot.cro sshd.cro sysinst.cro
progress.cro dhcpcd.cro
libhack.o -ledit -lutil -lcurses -lterminfo -lrmt -lcrypt -ll -lm -lz -lprop -lssh -lcrypto -lpthread
${CTFMERGE} ${CTFMFLAGS} -o ${.TARGET} ${OBJS.${:Uramdiskbin}}
=> /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/bin/nbctfmerge -t -g -L VERSION -g -o ramdiskbin.link ramdiskbin.o
*** [ramdiskbin.link] Error code 1
PR lib/58648: private shared libraries should go in
/usr/lib/private, not /usr/lib


distrib/sets/lists/comp: libssh is private for lint too.
Might fix:
checkflist ===> distrib/sets
====== 1 missing files in DESTDIR ========
Files in flist but missing from DESTDIR.
File wasn't installed ?
------------------------------------------
./usr/libdata/lint/llib-lssh.ln
======== end of 1 missing files ==========
PR lib/58648: private shared libraries should go in /usr/lib/private,
not /usr/lib

PR/58648: Fix MKDEBUG=yes build:
1. if NOLINKLIB is set don't install libfoo_g.a and libfoo_p.a libraries.
libfoo.a, libfoo_p.a were not being installed already, just make the
testing consistent
2. Move .a libraries from shl.mi to mi where they belong.
3. Make stray libfoo_g.a libraries that were install accidentally before
obsolete.

rescue/list: Touch for CRUNCHGEN_FLAGS change for libssh.
PR lib/58648: private shared libraries should go in /usr/lib/private,
not /usr/lib
  /src/distrib/sets/lists/xdebug/
mi 1.51.2.1 Thu Jan 22 19:51:55 UTC 2026 martin Pull up following revision(s) (requested by snj in ticket #150):

distrib/sets/lists/debug/shl.mi: revision 1.380
crypto/external/bsd/openssh/lib/Makefile: revision 1.45
distrib/sets/lists/debug/shl.mi: revision 1.381
crypto/external/bsd/openssh/lib/Makefile: revision 1.46
distrib/sets/lists/debug/shl.mi: revision 1.382
distrib/evbarm/instkernel/sshramdisk/list: revision 1.7
share/mk/bsd.lib.mk: revision 1.423
share/mk/bsd.lib.mk: revision 1.425
distrib/sets/lists/comp/mi: revision 1.2503
distrib/sets/lists/comp/mi: revision 1.2504
distrib/evbarm/instkernel/sshramdisk/Makefile: revision 1.31
distrib/sets/lists/base/shl.mi: revision 1.1019
rescue/list: revision 1.56
etc/mtree/NetBSD.dist.compat.in: revision 1.9
distrib/sets/lists/debug/mi: revision 1.494
distrib/sets/lists/debug/mi: revision 1.495
distrib/sets/lists/base/mi: revision 1.1371
distrib/sets/lists/base/mi: revision 1.1372
distrib/sets/lists/comp/shl.mi: revision 1.362
etc/mtree/NetBSD.dist.base: revision 1.262
lib/libpam/modules/pam_ssh/Makefile: revision 1.15
share/mk/bsd.prog.mk: revision 1.358
share/mk/bsd.prog.mk: revision 1.359
usr.sbin/wg-keygen/Makefile: revision 1.2
usr.sbin/wg-keygen/Makefile: revision 1.3
distrib/sets/lists/base/shl.mi: revision 1.1020
share/mk/bsd.README: revision 1.457
crypto/external/bsd/openssh/Makefile.inc: revision 1.18
distrib/sets/lists/xdebug/mi: revision 1.52
rescue/Makefile: revision 1.43

Add logic for /usr/lib/private libraries.

New variables for makefiles to define:
<bsd.lib.mk> LIBSUBDIR -- If nonempty, install library into
${LIBDIR}/${LIBSUBDIR} instead of ${LIBDIR}. Typically set
either to empty or to `private'.
<bsd.lib.mk> LIBDPSUBDIRS -- List of subdirectories _subdir_ to add
-L${SHLIBDIR}/${_subdir_} -Wl,-R${SHLIBDIR}/${_subdir_} to
ldflags when linking library. Note: Should only be used inside
private libraries, not inside public libraries to link against
private libraries, which can't work -- see comment.
<bsd.prog.mk> PROGDPSUBDIRS -- List of subdirectories _subdir_ to add
-L${SHLIBDIR}/${_subdir_} -Wl,-R${SHLIBDIR}/${_subdir_} to
ldflags when linking program.

(XXX bsd.lib.mk/bsd.prog.mk should figure LIBDPSUBDIRS/PROGDPSUBDIRS
out automatically by LIBDPLIBS/PROGDPLIBS, but for now we don't have
that mechanism -- TBD in subsequent work.)

Libraries that we want to install because we use them in binaries we
ship, but that we want to keep private from applications so we don't
have to worry about ABI breakage or leakage into pkgsrc builds,
should generally set:

LIBSUBDIR= private # Install into /usr/lib/private.
NOCOMPAT= # defined # Don't build compat lib.
NOLINKLIB= # defined # Don't install .so link or .a lib.

(XXX Maybe we should have a `LIBISPRIVATE= installed' or something
for this combination of options, but for now I'm putting in the
minimal mechanism to implement this and we can condense a common
pattern later.)

Programs using the library will also have to set
PROGDPSUBDIRS+= private
so that they will get the rpath /usr/lib/private.

PR lib/58648: private shared libraries should go in /usr/lib/private,
not /usr/lib


openssh: Install libssh.so in /usr/lib/private.

This way it doesn't get exposed to applications accidentally, and we
don't need to worry about breaking ABI when updating openssh in base.
PR lib/58648: private shared libraries should go in /usr/lib/private,
not /usr/lib

openssh: Do build and install compat libssh after all.

Even though it's not exposed for applications to _link_ against, it
is used by the dynamically _loadable_ pam_ssh module, which exists as
a compat module and therefore needs libssh as a compat library to be
installed somewhere. That somewhere will be
/usr/lib/${COMPAT_ARCH}/private.

Should fix problems like:
dependall ===> compat/sparc64/sparc/../../../lib/libpam/modules/pam_ssh
nbmake[11]: don't know how to make /home/source/ab/HEAD/src/crypto/external/bsd/openssh/lib/libssh.a. Stop
Verified in an amd64 build that the compat i386 pam_ssh.so is linked
correctly:
(chroot HEAD)# ldd /usr/lib/i386/security/pam_ssh.so.4
/usr/lib/i386/security/pam_ssh.so.4:
-lssh.50 => /usr/lib/i386/private/libssh.so.50
-lcrypto.16 => /usr/lib/i386/libcrypto.so.16
-lcrypt.1 => /usr/lib/i386/libcrypt.so.1
-lgcc_s.1 => /usr/lib/i386/libgcc_s.so.1
-lc.12 => /usr/lib/i386/libc.so.12
-lz.1 => /usr/lib/i386/libz.so.1

PR lib/58648: private shared libraries should go in /usr/lib/private,
not /usr/lib


wg-keygen(8): Find private libssh.so.
Should fix:
/usr/sbin/wg-keygen: Shared object "libssh.so.50" not found
PR lib/58648: private shared libraries should go in /usr/lib/private,
not /usr/lib


evbarm/instkernel/sshramdisk: Get libssh out of objdir now.
Should fix problems like:
--- ramdiskbin.link ---
# link sshramdisk/ramdiskbin.link
/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/bin/armv6eb--netbsdelf-eabihf-gcc --sysroot=/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest -static -o
ramdiskbin.link ramdiskbin.o -Wl,-rpath-link,/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/lib -L=/lib -L/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/usr/lib cat.cro
chmod.cro cp.cro dd.cro df.cro ed.cro ln.cro ls.cro mkdir.cro mv.cro pax.cro pwd.cro rm.cro rmdir.cro sh.cro stty.cro sync.cro sleep.cro chown.cro disklabel.cro fdisk.cro fsck.cro fsck_msdos.cro
fsck_ffs.cro gpt.cro ifconfig.cro init.cro mknod.cro mount.cro mount_cd9660.cro mount_ext2fs.cro mount_ffs.cro mount_kernfs.cro mount_msdos.cro mount_nfs.cro mount_tmpfs.cro newfs.cro
newfs_ext2fs.cro ping.cro reboot.cro restore.cro route.cro shutdown.cro slattach.cro swapctl.cro umount.cro ftp.cro tip.cro gzip.cro less.cro sed.cro tset.cro chroot.cro sshd.cro sysinst.cro
progress.cro dhcpcd.cro libhack.o
-ledit -lutil -lcurses -lterminfo -lrmt -lcrypt -ll -lm -lz -lprop -lssh -lcrypto -lpthread
/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/lib/gcc/armv6eb--netbsdelf-eabihf/14.3.0/../../../../armv6eb--netbsdelf-eabihf/bin/ld: cannot find -lssh: No such file or directory
/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/lib/gcc/armv6eb--netbsdelf-eabihf/14.3.0/../../../../armv6eb--netbsdelf-eabihf/bin/ld: have you installed the static version of the
ssh library ?
collect2: error: ld returned 1 exit status
*** Failed target: ramdiskbin.link
*** In directory: /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-obj/home/source/ab/HEAD/src/distrib/evbarm/instkernel/sshramdisk
*** Failed commands:
${_MKTARGET_LINK}
=> @echo '# ' " link " sshramdisk/ramdiskbin.link
${_CCLINK.${:Uramdiskbin}} ${_LDFLAGS.${:Uramdiskbin}} ${_LDSTATIC.${:Uramdiskbin}} -o ${.TARGET} ${OBJS.${:Uramdiskbin}} ${_PROGLDOPTS} ${_LDADD.${:Uramdiskbin}}
=> /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/bin/armv6eb--netbsdelf-eabihf-gcc --sysroot=/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest -static -o
ramdiskbin.link ramdiskbin.o -Wl,-rpath-link,/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/lib -L=/lib -L/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/usr/lib cat.cro
chmod.cro cp.cro dd.cro df.cro ed.cro ln.cro ls.cro mkdir.cro mv.cro pax.cro pwd.cro rm.cro rmdir.cro sh.cro stty.cro sync.cro sleep.cro chown.cro disklabel.cro fdisk.cro fsck.cro fsck_msdos.cro
fsck_ffs.cro gpt.cro ifconfig.cro init.cro mknod.cro mount.cro mount_cd9660.cro mount_ext2fs.cro mount_ffs.cro mount_kernfs.cro mount_msdos.cro mount_nfs.cro mount_tmpfs.cro newfs.cro
newfs_ext2fs.cro ping.cro reboot.cro restore.cro route.cro shutdown.cro slattach.cro swapctl.cro umount.cro ftp.cro tip.cro gzip.cro less.cro sed.cro tset.cro chroot.cro sshd.cro sysinst.cro
progress.cro dhcpcd.cro
libhack.o -ledit -lutil -lcurses -lterminfo -lrmt -lcrypt -ll -lm -lz -lprop -lssh -lcrypto -lpthread
${CTFMERGE} ${CTFMFLAGS} -o ${.TARGET} ${OBJS.${:Uramdiskbin}}
=> /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/bin/nbctfmerge -t -g -L VERSION -g -o ramdiskbin.link ramdiskbin.o
*** [ramdiskbin.link] Error code 1
PR lib/58648: private shared libraries should go in
/usr/lib/private, not /usr/lib


distrib/sets/lists/comp: libssh is private for lint too.
Might fix:
checkflist ===> distrib/sets
====== 1 missing files in DESTDIR ========
Files in flist but missing from DESTDIR.
File wasn't installed ?
------------------------------------------
./usr/libdata/lint/llib-lssh.ln
======== end of 1 missing files ==========
PR lib/58648: private shared libraries should go in /usr/lib/private,
not /usr/lib

PR/58648: Fix MKDEBUG=yes build:
1. if NOLINKLIB is set don't install libfoo_g.a and libfoo_p.a libraries.
libfoo.a, libfoo_p.a were not being installed already, just make the
testing consistent
2. Move .a libraries from shl.mi to mi where they belong.
3. Make stray libfoo_g.a libraries that were install accidentally before
obsolete.

rescue/list: Touch for CRUNCHGEN_FLAGS change for libssh.
PR lib/58648: private shared libraries should go in /usr/lib/private,
not /usr/lib
  /src/rescue/
list 1.55.6.1 Thu Jan 22 19:51:54 UTC 2026 martin Pull up following revision(s) (requested by snj in ticket #150):

distrib/sets/lists/debug/shl.mi: revision 1.380
crypto/external/bsd/openssh/lib/Makefile: revision 1.45
distrib/sets/lists/debug/shl.mi: revision 1.381
crypto/external/bsd/openssh/lib/Makefile: revision 1.46
distrib/sets/lists/debug/shl.mi: revision 1.382
distrib/evbarm/instkernel/sshramdisk/list: revision 1.7
share/mk/bsd.lib.mk: revision 1.423
share/mk/bsd.lib.mk: revision 1.425
distrib/sets/lists/comp/mi: revision 1.2503
distrib/sets/lists/comp/mi: revision 1.2504
distrib/evbarm/instkernel/sshramdisk/Makefile: revision 1.31
distrib/sets/lists/base/shl.mi: revision 1.1019
rescue/list: revision 1.56
etc/mtree/NetBSD.dist.compat.in: revision 1.9
distrib/sets/lists/debug/mi: revision 1.494
distrib/sets/lists/debug/mi: revision 1.495
distrib/sets/lists/base/mi: revision 1.1371
distrib/sets/lists/base/mi: revision 1.1372
distrib/sets/lists/comp/shl.mi: revision 1.362
etc/mtree/NetBSD.dist.base: revision 1.262
lib/libpam/modules/pam_ssh/Makefile: revision 1.15
share/mk/bsd.prog.mk: revision 1.358
share/mk/bsd.prog.mk: revision 1.359
usr.sbin/wg-keygen/Makefile: revision 1.2
usr.sbin/wg-keygen/Makefile: revision 1.3
distrib/sets/lists/base/shl.mi: revision 1.1020
share/mk/bsd.README: revision 1.457
crypto/external/bsd/openssh/Makefile.inc: revision 1.18
distrib/sets/lists/xdebug/mi: revision 1.52
rescue/Makefile: revision 1.43

Add logic for /usr/lib/private libraries.

New variables for makefiles to define:
<bsd.lib.mk> LIBSUBDIR -- If nonempty, install library into
${LIBDIR}/${LIBSUBDIR} instead of ${LIBDIR}. Typically set
either to empty or to `private'.
<bsd.lib.mk> LIBDPSUBDIRS -- List of subdirectories _subdir_ to add
-L${SHLIBDIR}/${_subdir_} -Wl,-R${SHLIBDIR}/${_subdir_} to
ldflags when linking library. Note: Should only be used inside
private libraries, not inside public libraries to link against
private libraries, which can't work -- see comment.
<bsd.prog.mk> PROGDPSUBDIRS -- List of subdirectories _subdir_ to add
-L${SHLIBDIR}/${_subdir_} -Wl,-R${SHLIBDIR}/${_subdir_} to
ldflags when linking program.

(XXX bsd.lib.mk/bsd.prog.mk should figure LIBDPSUBDIRS/PROGDPSUBDIRS
out automatically by LIBDPLIBS/PROGDPLIBS, but for now we don't have
that mechanism -- TBD in subsequent work.)

Libraries that we want to install because we use them in binaries we
ship, but that we want to keep private from applications so we don't
have to worry about ABI breakage or leakage into pkgsrc builds,
should generally set:

LIBSUBDIR= private # Install into /usr/lib/private.
NOCOMPAT= # defined # Don't build compat lib.
NOLINKLIB= # defined # Don't install .so link or .a lib.

(XXX Maybe we should have a `LIBISPRIVATE= installed' or something
for this combination of options, but for now I'm putting in the
minimal mechanism to implement this and we can condense a common
pattern later.)

Programs using the library will also have to set
PROGDPSUBDIRS+= private
so that they will get the rpath /usr/lib/private.

PR lib/58648: private shared libraries should go in /usr/lib/private,
not /usr/lib


openssh: Install libssh.so in /usr/lib/private.

This way it doesn't get exposed to applications accidentally, and we
don't need to worry about breaking ABI when updating openssh in base.
PR lib/58648: private shared libraries should go in /usr/lib/private,
not /usr/lib

openssh: Do build and install compat libssh after all.

Even though it's not exposed for applications to _link_ against, it
is used by the dynamically _loadable_ pam_ssh module, which exists as
a compat module and therefore needs libssh as a compat library to be
installed somewhere. That somewhere will be
/usr/lib/${COMPAT_ARCH}/private.

Should fix problems like:
dependall ===> compat/sparc64/sparc/../../../lib/libpam/modules/pam_ssh
nbmake[11]: don't know how to make /home/source/ab/HEAD/src/crypto/external/bsd/openssh/lib/libssh.a. Stop
Verified in an amd64 build that the compat i386 pam_ssh.so is linked
correctly:
(chroot HEAD)# ldd /usr/lib/i386/security/pam_ssh.so.4
/usr/lib/i386/security/pam_ssh.so.4:
-lssh.50 => /usr/lib/i386/private/libssh.so.50
-lcrypto.16 => /usr/lib/i386/libcrypto.so.16
-lcrypt.1 => /usr/lib/i386/libcrypt.so.1
-lgcc_s.1 => /usr/lib/i386/libgcc_s.so.1
-lc.12 => /usr/lib/i386/libc.so.12
-lz.1 => /usr/lib/i386/libz.so.1

PR lib/58648: private shared libraries should go in /usr/lib/private,
not /usr/lib


wg-keygen(8): Find private libssh.so.
Should fix:
/usr/sbin/wg-keygen: Shared object "libssh.so.50" not found
PR lib/58648: private shared libraries should go in /usr/lib/private,
not /usr/lib


evbarm/instkernel/sshramdisk: Get libssh out of objdir now.
Should fix problems like:
--- ramdiskbin.link ---
# link sshramdisk/ramdiskbin.link
/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/bin/armv6eb--netbsdelf-eabihf-gcc --sysroot=/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest -static -o
ramdiskbin.link ramdiskbin.o -Wl,-rpath-link,/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/lib -L=/lib -L/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/usr/lib cat.cro
chmod.cro cp.cro dd.cro df.cro ed.cro ln.cro ls.cro mkdir.cro mv.cro pax.cro pwd.cro rm.cro rmdir.cro sh.cro stty.cro sync.cro sleep.cro chown.cro disklabel.cro fdisk.cro fsck.cro fsck_msdos.cro
fsck_ffs.cro gpt.cro ifconfig.cro init.cro mknod.cro mount.cro mount_cd9660.cro mount_ext2fs.cro mount_ffs.cro mount_kernfs.cro mount_msdos.cro mount_nfs.cro mount_tmpfs.cro newfs.cro
newfs_ext2fs.cro ping.cro reboot.cro restore.cro route.cro shutdown.cro slattach.cro swapctl.cro umount.cro ftp.cro tip.cro gzip.cro less.cro sed.cro tset.cro chroot.cro sshd.cro sysinst.cro
progress.cro dhcpcd.cro libhack.o
-ledit -lutil -lcurses -lterminfo -lrmt -lcrypt -ll -lm -lz -lprop -lssh -lcrypto -lpthread
/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/lib/gcc/armv6eb--netbsdelf-eabihf/14.3.0/../../../../armv6eb--netbsdelf-eabihf/bin/ld: cannot find -lssh: No such file or directory
/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/lib/gcc/armv6eb--netbsdelf-eabihf/14.3.0/../../../../armv6eb--netbsdelf-eabihf/bin/ld: have you installed the static version of the
ssh library ?
collect2: error: ld returned 1 exit status
*** Failed target: ramdiskbin.link
*** In directory: /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-obj/home/source/ab/HEAD/src/distrib/evbarm/instkernel/sshramdisk
*** Failed commands:
${_MKTARGET_LINK}
=> @echo '# ' " link " sshramdisk/ramdiskbin.link
${_CCLINK.${:Uramdiskbin}} ${_LDFLAGS.${:Uramdiskbin}} ${_LDSTATIC.${:Uramdiskbin}} -o ${.TARGET} ${OBJS.${:Uramdiskbin}} ${_PROGLDOPTS} ${_LDADD.${:Uramdiskbin}}
=> /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/bin/armv6eb--netbsdelf-eabihf-gcc --sysroot=/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest -static -o
ramdiskbin.link ramdiskbin.o -Wl,-rpath-link,/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/lib -L=/lib -L/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/usr/lib cat.cro
chmod.cro cp.cro dd.cro df.cro ed.cro ln.cro ls.cro mkdir.cro mv.cro pax.cro pwd.cro rm.cro rmdir.cro sh.cro stty.cro sync.cro sleep.cro chown.cro disklabel.cro fdisk.cro fsck.cro fsck_msdos.cro
fsck_ffs.cro gpt.cro ifconfig.cro init.cro mknod.cro mount.cro mount_cd9660.cro mount_ext2fs.cro mount_ffs.cro mount_kernfs.cro mount_msdos.cro mount_nfs.cro mount_tmpfs.cro newfs.cro
newfs_ext2fs.cro ping.cro reboot.cro restore.cro route.cro shutdown.cro slattach.cro swapctl.cro umount.cro ftp.cro tip.cro gzip.cro less.cro sed.cro tset.cro chroot.cro sshd.cro sysinst.cro
progress.cro dhcpcd.cro
libhack.o -ledit -lutil -lcurses -lterminfo -lrmt -lcrypt -ll -lm -lz -lprop -lssh -lcrypto -lpthread
${CTFMERGE} ${CTFMFLAGS} -o ${.TARGET} ${OBJS.${:Uramdiskbin}}
=> /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/bin/nbctfmerge -t -g -L VERSION -g -o ramdiskbin.link ramdiskbin.o
*** [ramdiskbin.link] Error code 1
PR lib/58648: private shared libraries should go in
/usr/lib/private, not /usr/lib


distrib/sets/lists/comp: libssh is private for lint too.
Might fix:
checkflist ===> distrib/sets
====== 1 missing files in DESTDIR ========
Files in flist but missing from DESTDIR.
File wasn't installed ?
------------------------------------------
./usr/libdata/lint/llib-lssh.ln
======== end of 1 missing files ==========
PR lib/58648: private shared libraries should go in /usr/lib/private,
not /usr/lib

PR/58648: Fix MKDEBUG=yes build:
1. if NOLINKLIB is set don't install libfoo_g.a and libfoo_p.a libraries.
libfoo.a, libfoo_p.a were not being installed already, just make the
testing consistent
2. Move .a libraries from shl.mi to mi where they belong.
3. Make stray libfoo_g.a libraries that were install accidentally before
obsolete.

rescue/list: Touch for CRUNCHGEN_FLAGS change for libssh.
PR lib/58648: private shared libraries should go in /usr/lib/private,
not /usr/lib

Makefile 1.42.10.1 Thu Jan 22 19:51:54 UTC 2026 martin Pull up following revision(s) (requested by snj in ticket #150):

distrib/sets/lists/debug/shl.mi: revision 1.380
crypto/external/bsd/openssh/lib/Makefile: revision 1.45
distrib/sets/lists/debug/shl.mi: revision 1.381
crypto/external/bsd/openssh/lib/Makefile: revision 1.46
distrib/sets/lists/debug/shl.mi: revision 1.382
distrib/evbarm/instkernel/sshramdisk/list: revision 1.7
share/mk/bsd.lib.mk: revision 1.423
share/mk/bsd.lib.mk: revision 1.425
distrib/sets/lists/comp/mi: revision 1.2503
distrib/sets/lists/comp/mi: revision 1.2504
distrib/evbarm/instkernel/sshramdisk/Makefile: revision 1.31
distrib/sets/lists/base/shl.mi: revision 1.1019
rescue/list: revision 1.56
etc/mtree/NetBSD.dist.compat.in: revision 1.9
distrib/sets/lists/debug/mi: revision 1.494
distrib/sets/lists/debug/mi: revision 1.495
distrib/sets/lists/base/mi: revision 1.1371
distrib/sets/lists/base/mi: revision 1.1372
distrib/sets/lists/comp/shl.mi: revision 1.362
etc/mtree/NetBSD.dist.base: revision 1.262
lib/libpam/modules/pam_ssh/Makefile: revision 1.15
share/mk/bsd.prog.mk: revision 1.358
share/mk/bsd.prog.mk: revision 1.359
usr.sbin/wg-keygen/Makefile: revision 1.2
usr.sbin/wg-keygen/Makefile: revision 1.3
distrib/sets/lists/base/shl.mi: revision 1.1020
share/mk/bsd.README: revision 1.457
crypto/external/bsd/openssh/Makefile.inc: revision 1.18
distrib/sets/lists/xdebug/mi: revision 1.52
rescue/Makefile: revision 1.43

Add logic for /usr/lib/private libraries.

New variables for makefiles to define:
<bsd.lib.mk> LIBSUBDIR -- If nonempty, install library into
${LIBDIR}/${LIBSUBDIR} instead of ${LIBDIR}. Typically set
either to empty or to `private'.
<bsd.lib.mk> LIBDPSUBDIRS -- List of subdirectories _subdir_ to add
-L${SHLIBDIR}/${_subdir_} -Wl,-R${SHLIBDIR}/${_subdir_} to
ldflags when linking library. Note: Should only be used inside
private libraries, not inside public libraries to link against
private libraries, which can't work -- see comment.
<bsd.prog.mk> PROGDPSUBDIRS -- List of subdirectories _subdir_ to add
-L${SHLIBDIR}/${_subdir_} -Wl,-R${SHLIBDIR}/${_subdir_} to
ldflags when linking program.

(XXX bsd.lib.mk/bsd.prog.mk should figure LIBDPSUBDIRS/PROGDPSUBDIRS
out automatically by LIBDPLIBS/PROGDPLIBS, but for now we don't have
that mechanism -- TBD in subsequent work.)

Libraries that we want to install because we use them in binaries we
ship, but that we want to keep private from applications so we don't
have to worry about ABI breakage or leakage into pkgsrc builds,
should generally set:

LIBSUBDIR= private # Install into /usr/lib/private.
NOCOMPAT= # defined # Don't build compat lib.
NOLINKLIB= # defined # Don't install .so link or .a lib.

(XXX Maybe we should have a `LIBISPRIVATE= installed' or something
for this combination of options, but for now I'm putting in the
minimal mechanism to implement this and we can condense a common
pattern later.)

Programs using the library will also have to set
PROGDPSUBDIRS+= private
so that they will get the rpath /usr/lib/private.

PR lib/58648: private shared libraries should go in /usr/lib/private,
not /usr/lib


openssh: Install libssh.so in /usr/lib/private.

This way it doesn't get exposed to applications accidentally, and we
don't need to worry about breaking ABI when updating openssh in base.
PR lib/58648: private shared libraries should go in /usr/lib/private,
not /usr/lib

openssh: Do build and install compat libssh after all.

Even though it's not exposed for applications to _link_ against, it
is used by the dynamically _loadable_ pam_ssh module, which exists as
a compat module and therefore needs libssh as a compat library to be
installed somewhere. That somewhere will be
/usr/lib/${COMPAT_ARCH}/private.

Should fix problems like:
dependall ===> compat/sparc64/sparc/../../../lib/libpam/modules/pam_ssh
nbmake[11]: don't know how to make /home/source/ab/HEAD/src/crypto/external/bsd/openssh/lib/libssh.a. Stop
Verified in an amd64 build that the compat i386 pam_ssh.so is linked
correctly:
(chroot HEAD)# ldd /usr/lib/i386/security/pam_ssh.so.4
/usr/lib/i386/security/pam_ssh.so.4:
-lssh.50 => /usr/lib/i386/private/libssh.so.50
-lcrypto.16 => /usr/lib/i386/libcrypto.so.16
-lcrypt.1 => /usr/lib/i386/libcrypt.so.1
-lgcc_s.1 => /usr/lib/i386/libgcc_s.so.1
-lc.12 => /usr/lib/i386/libc.so.12
-lz.1 => /usr/lib/i386/libz.so.1

PR lib/58648: private shared libraries should go in /usr/lib/private,
not /usr/lib


wg-keygen(8): Find private libssh.so.
Should fix:
/usr/sbin/wg-keygen: Shared object "libssh.so.50" not found
PR lib/58648: private shared libraries should go in /usr/lib/private,
not /usr/lib


evbarm/instkernel/sshramdisk: Get libssh out of objdir now.
Should fix problems like:
--- ramdiskbin.link ---
# link sshramdisk/ramdiskbin.link
/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/bin/armv6eb--netbsdelf-eabihf-gcc --sysroot=/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest -static -o
ramdiskbin.link ramdiskbin.o -Wl,-rpath-link,/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/lib -L=/lib -L/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/usr/lib cat.cro
chmod.cro cp.cro dd.cro df.cro ed.cro ln.cro ls.cro mkdir.cro mv.cro pax.cro pwd.cro rm.cro rmdir.cro sh.cro stty.cro sync.cro sleep.cro chown.cro disklabel.cro fdisk.cro fsck.cro fsck_msdos.cro
fsck_ffs.cro gpt.cro ifconfig.cro init.cro mknod.cro mount.cro mount_cd9660.cro mount_ext2fs.cro mount_ffs.cro mount_kernfs.cro mount_msdos.cro mount_nfs.cro mount_tmpfs.cro newfs.cro
newfs_ext2fs.cro ping.cro reboot.cro restore.cro route.cro shutdown.cro slattach.cro swapctl.cro umount.cro ftp.cro tip.cro gzip.cro less.cro sed.cro tset.cro chroot.cro sshd.cro sysinst.cro
progress.cro dhcpcd.cro libhack.o
-ledit -lutil -lcurses -lterminfo -lrmt -lcrypt -ll -lm -lz -lprop -lssh -lcrypto -lpthread
/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/lib/gcc/armv6eb--netbsdelf-eabihf/14.3.0/../../../../armv6eb--netbsdelf-eabihf/bin/ld: cannot find -lssh: No such file or directory
/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/lib/gcc/armv6eb--netbsdelf-eabihf/14.3.0/../../../../armv6eb--netbsdelf-eabihf/bin/ld: have you installed the static version of the
ssh library ?
collect2: error: ld returned 1 exit status
*** Failed target: ramdiskbin.link
*** In directory: /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-obj/home/source/ab/HEAD/src/distrib/evbarm/instkernel/sshramdisk
*** Failed commands:
${_MKTARGET_LINK}
=> @echo '# ' " link " sshramdisk/ramdiskbin.link
${_CCLINK.${:Uramdiskbin}} ${_LDFLAGS.${:Uramdiskbin}} ${_LDSTATIC.${:Uramdiskbin}} -o ${.TARGET} ${OBJS.${:Uramdiskbin}} ${_PROGLDOPTS} ${_LDADD.${:Uramdiskbin}}
=> /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/bin/armv6eb--netbsdelf-eabihf-gcc --sysroot=/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest -static -o
ramdiskbin.link ramdiskbin.o -Wl,-rpath-link,/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/lib -L=/lib -L/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/usr/lib cat.cro
chmod.cro cp.cro dd.cro df.cro ed.cro ln.cro ls.cro mkdir.cro mv.cro pax.cro pwd.cro rm.cro rmdir.cro sh.cro stty.cro sync.cro sleep.cro chown.cro disklabel.cro fdisk.cro fsck.cro fsck_msdos.cro
fsck_ffs.cro gpt.cro ifconfig.cro init.cro mknod.cro mount.cro mount_cd9660.cro mount_ext2fs.cro mount_ffs.cro mount_kernfs.cro mount_msdos.cro mount_nfs.cro mount_tmpfs.cro newfs.cro
newfs_ext2fs.cro ping.cro reboot.cro restore.cro route.cro shutdown.cro slattach.cro swapctl.cro umount.cro ftp.cro tip.cro gzip.cro less.cro sed.cro tset.cro chroot.cro sshd.cro sysinst.cro
progress.cro dhcpcd.cro
libhack.o -ledit -lutil -lcurses -lterminfo -lrmt -lcrypt -ll -lm -lz -lprop -lssh -lcrypto -lpthread
${CTFMERGE} ${CTFMFLAGS} -o ${.TARGET} ${OBJS.${:Uramdiskbin}}
=> /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/bin/nbctfmerge -t -g -L VERSION -g -o ramdiskbin.link ramdiskbin.o
*** [ramdiskbin.link] Error code 1
PR lib/58648: private shared libraries should go in
/usr/lib/private, not /usr/lib


distrib/sets/lists/comp: libssh is private for lint too.
Might fix:
checkflist ===> distrib/sets
====== 1 missing files in DESTDIR ========
Files in flist but missing from DESTDIR.
File wasn't installed ?
------------------------------------------
./usr/libdata/lint/llib-lssh.ln
======== end of 1 missing files ==========
PR lib/58648: private shared libraries should go in /usr/lib/private,
not /usr/lib

PR/58648: Fix MKDEBUG=yes build:
1. if NOLINKLIB is set don't install libfoo_g.a and libfoo_p.a libraries.
libfoo.a, libfoo_p.a were not being installed already, just make the
testing consistent
2. Move .a libraries from shl.mi to mi where they belong.
3. Make stray libfoo_g.a libraries that were install accidentally before
obsolete.

rescue/list: Touch for CRUNCHGEN_FLAGS change for libssh.
PR lib/58648: private shared libraries should go in /usr/lib/private,
not /usr/lib

  /src/sys/dev/usb/
usbdevs 1.494 Tue Feb 19 10:51:07 UTC 2008 drochner branches: 1.494.2; 1.494.6;
add the Shantou ADM8515 ethernet chip which is in some
"Wintech LanCard" adapter I just got
(USB 2.0 on the label but just full-speed - what a crap)
Tue Feb 19 10:51:07 UTC 2008 drochner branches: 1.494.2; 1.494.6;
add the Shantou ADM8515 ethernet chip which is in some
"Wintech LanCard" adapter I just got
(USB 2.0 on the label but just full-speed - what a crap)
.2; 1.494.6;
add the Shantou ADM8515 ethernet chip which is in some
"Wintech LanCard" adapter I just got
(USB 2.0 on the label but just full-speed - what a crap)
1.494.6.6 Sat Jan 17 13:29:10 UTC 2009 mjf Sync with HEAD.
1.494.6.5 Sun Oct 05 20:11:31 UTC 2008 mjf Sync with HEAD.
1.494.6.4 Sun Sep 28 10:40:34 UTC 2008 mjf Sync with HEAD.
1.494.6.3 Sun Jun 29 09:33:11 UTC 2008 mjf Sync with HEAD.
1.494.6.2 Mon Jun 02 13:23:56 UTC 2008 mjf Sync with HEAD.
1.494.6.1 Thu Apr 03 00:42:58 UTC 2008 mjf Sync with HEAD.
1.494.2.1 Mon Mar 24 07:16:09 UTC 2008 keiichi sync with head.
usbdevs.h 1.494 Mon Mar 17 02:37:51 UTC 2008 elric branches: 1.494.2;
Add a number of products which will be supported in ugensa(4).
Most of these are experimental and the product/vendor IDs are
snarfed from OpenBSD, FreeBSD and Linux.
Mon Mar 17 02:37:51 UTC 2008 elric branches: 1.494.2;
Add a number of products which will be supported in ugensa(4).
Most of these are experimental and the product/vendor IDs are
snarfed from OpenBSD, FreeBSD and Linux.
1.494.2.2 Wed Jun 04 02:05:21 UTC 2008 yamt sync with head
1.494.2.1 Sun May 18 00:34:52 UTC 2008 yamt sync with head.
usbdevs_data.h 1.494 Sun Feb 24 20:23:38 UTC 2008 rafal Regen for addition of TRIPPLITE2 UPS.
  /src/lib/libpam/modules/pam_ssh/
Makefile 1.14.2.1 Thu Jan 22 19:51:54 UTC 2026 martin Pull up following revision(s) (requested by snj in ticket #150):

distrib/sets/lists/debug/shl.mi: revision 1.380
crypto/external/bsd/openssh/lib/Makefile: revision 1.45
distrib/sets/lists/debug/shl.mi: revision 1.381
crypto/external/bsd/openssh/lib/Makefile: revision 1.46
distrib/sets/lists/debug/shl.mi: revision 1.382
distrib/evbarm/instkernel/sshramdisk/list: revision 1.7
share/mk/bsd.lib.mk: revision 1.423
share/mk/bsd.lib.mk: revision 1.425
distrib/sets/lists/comp/mi: revision 1.2503
distrib/sets/lists/comp/mi: revision 1.2504
distrib/evbarm/instkernel/sshramdisk/Makefile: revision 1.31
distrib/sets/lists/base/shl.mi: revision 1.1019
rescue/list: revision 1.56
etc/mtree/NetBSD.dist.compat.in: revision 1.9
distrib/sets/lists/debug/mi: revision 1.494
distrib/sets/lists/debug/mi: revision 1.495
distrib/sets/lists/base/mi: revision 1.1371
distrib/sets/lists/base/mi: revision 1.1372
distrib/sets/lists/comp/shl.mi: revision 1.362
etc/mtree/NetBSD.dist.base: revision 1.262
lib/libpam/modules/pam_ssh/Makefile: revision 1.15
share/mk/bsd.prog.mk: revision 1.358
share/mk/bsd.prog.mk: revision 1.359
usr.sbin/wg-keygen/Makefile: revision 1.2
usr.sbin/wg-keygen/Makefile: revision 1.3
distrib/sets/lists/base/shl.mi: revision 1.1020
share/mk/bsd.README: revision 1.457
crypto/external/bsd/openssh/Makefile.inc: revision 1.18
distrib/sets/lists/xdebug/mi: revision 1.52
rescue/Makefile: revision 1.43

Add logic for /usr/lib/private libraries.

New variables for makefiles to define:
<bsd.lib.mk> LIBSUBDIR -- If nonempty, install library into
${LIBDIR}/${LIBSUBDIR} instead of ${LIBDIR}. Typically set
either to empty or to `private'.
<bsd.lib.mk> LIBDPSUBDIRS -- List of subdirectories _subdir_ to add
-L${SHLIBDIR}/${_subdir_} -Wl,-R${SHLIBDIR}/${_subdir_} to
ldflags when linking library. Note: Should only be used inside
private libraries, not inside public libraries to link against
private libraries, which can't work -- see comment.
<bsd.prog.mk> PROGDPSUBDIRS -- List of subdirectories _subdir_ to add
-L${SHLIBDIR}/${_subdir_} -Wl,-R${SHLIBDIR}/${_subdir_} to
ldflags when linking program.

(XXX bsd.lib.mk/bsd.prog.mk should figure LIBDPSUBDIRS/PROGDPSUBDIRS
out automatically by LIBDPLIBS/PROGDPLIBS, but for now we don't have
that mechanism -- TBD in subsequent work.)

Libraries that we want to install because we use them in binaries we
ship, but that we want to keep private from applications so we don't
have to worry about ABI breakage or leakage into pkgsrc builds,
should generally set:

LIBSUBDIR= private # Install into /usr/lib/private.
NOCOMPAT= # defined # Don't build compat lib.
NOLINKLIB= # defined # Don't install .so link or .a lib.

(XXX Maybe we should have a `LIBISPRIVATE= installed' or something
for this combination of options, but for now I'm putting in the
minimal mechanism to implement this and we can condense a common
pattern later.)

Programs using the library will also have to set
PROGDPSUBDIRS+= private
so that they will get the rpath /usr/lib/private.

PR lib/58648: private shared libraries should go in /usr/lib/private,
not /usr/lib


openssh: Install libssh.so in /usr/lib/private.

This way it doesn't get exposed to applications accidentally, and we
don't need to worry about breaking ABI when updating openssh in base.
PR lib/58648: private shared libraries should go in /usr/lib/private,
not /usr/lib

openssh: Do build and install compat libssh after all.

Even though it's not exposed for applications to _link_ against, it
is used by the dynamically _loadable_ pam_ssh module, which exists as
a compat module and therefore needs libssh as a compat library to be
installed somewhere. That somewhere will be
/usr/lib/${COMPAT_ARCH}/private.

Should fix problems like:
dependall ===> compat/sparc64/sparc/../../../lib/libpam/modules/pam_ssh
nbmake[11]: don't know how to make /home/source/ab/HEAD/src/crypto/external/bsd/openssh/lib/libssh.a. Stop
Verified in an amd64 build that the compat i386 pam_ssh.so is linked
correctly:
(chroot HEAD)# ldd /usr/lib/i386/security/pam_ssh.so.4
/usr/lib/i386/security/pam_ssh.so.4:
-lssh.50 => /usr/lib/i386/private/libssh.so.50
-lcrypto.16 => /usr/lib/i386/libcrypto.so.16
-lcrypt.1 => /usr/lib/i386/libcrypt.so.1
-lgcc_s.1 => /usr/lib/i386/libgcc_s.so.1
-lc.12 => /usr/lib/i386/libc.so.12
-lz.1 => /usr/lib/i386/libz.so.1

PR lib/58648: private shared libraries should go in /usr/lib/private,
not /usr/lib


wg-keygen(8): Find private libssh.so.
Should fix:
/usr/sbin/wg-keygen: Shared object "libssh.so.50" not found
PR lib/58648: private shared libraries should go in /usr/lib/private,
not /usr/lib


evbarm/instkernel/sshramdisk: Get libssh out of objdir now.
Should fix problems like:
--- ramdiskbin.link ---
# link sshramdisk/ramdiskbin.link
/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/bin/armv6eb--netbsdelf-eabihf-gcc --sysroot=/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest -static -o
ramdiskbin.link ramdiskbin.o -Wl,-rpath-link,/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/lib -L=/lib -L/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/usr/lib cat.cro
chmod.cro cp.cro dd.cro df.cro ed.cro ln.cro ls.cro mkdir.cro mv.cro pax.cro pwd.cro rm.cro rmdir.cro sh.cro stty.cro sync.cro sleep.cro chown.cro disklabel.cro fdisk.cro fsck.cro fsck_msdos.cro
fsck_ffs.cro gpt.cro ifconfig.cro init.cro mknod.cro mount.cro mount_cd9660.cro mount_ext2fs.cro mount_ffs.cro mount_kernfs.cro mount_msdos.cro mount_nfs.cro mount_tmpfs.cro newfs.cro
newfs_ext2fs.cro ping.cro reboot.cro restore.cro route.cro shutdown.cro slattach.cro swapctl.cro umount.cro ftp.cro tip.cro gzip.cro less.cro sed.cro tset.cro chroot.cro sshd.cro sysinst.cro
progress.cro dhcpcd.cro libhack.o
-ledit -lutil -lcurses -lterminfo -lrmt -lcrypt -ll -lm -lz -lprop -lssh -lcrypto -lpthread
/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/lib/gcc/armv6eb--netbsdelf-eabihf/14.3.0/../../../../armv6eb--netbsdelf-eabihf/bin/ld: cannot find -lssh: No such file or directory
/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/lib/gcc/armv6eb--netbsdelf-eabihf/14.3.0/../../../../armv6eb--netbsdelf-eabihf/bin/ld: have you installed the static version of the
ssh library ?
collect2: error: ld returned 1 exit status
*** Failed target: ramdiskbin.link
*** In directory: /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-obj/home/source/ab/HEAD/src/distrib/evbarm/instkernel/sshramdisk
*** Failed commands:
${_MKTARGET_LINK}
=> @echo '# ' " link " sshramdisk/ramdiskbin.link
${_CCLINK.${:Uramdiskbin}} ${_LDFLAGS.${:Uramdiskbin}} ${_LDSTATIC.${:Uramdiskbin}} -o ${.TARGET} ${OBJS.${:Uramdiskbin}} ${_PROGLDOPTS} ${_LDADD.${:Uramdiskbin}}
=> /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/bin/armv6eb--netbsdelf-eabihf-gcc --sysroot=/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest -static -o
ramdiskbin.link ramdiskbin.o -Wl,-rpath-link,/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/lib -L=/lib -L/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/usr/lib cat.cro
chmod.cro cp.cro dd.cro df.cro ed.cro ln.cro ls.cro mkdir.cro mv.cro pax.cro pwd.cro rm.cro rmdir.cro sh.cro stty.cro sync.cro sleep.cro chown.cro disklabel.cro fdisk.cro fsck.cro fsck_msdos.cro
fsck_ffs.cro gpt.cro ifconfig.cro init.cro mknod.cro mount.cro mount_cd9660.cro mount_ext2fs.cro mount_ffs.cro mount_kernfs.cro mount_msdos.cro mount_nfs.cro mount_tmpfs.cro newfs.cro
newfs_ext2fs.cro ping.cro reboot.cro restore.cro route.cro shutdown.cro slattach.cro swapctl.cro umount.cro ftp.cro tip.cro gzip.cro less.cro sed.cro tset.cro chroot.cro sshd.cro sysinst.cro
progress.cro dhcpcd.cro
libhack.o -ledit -lutil -lcurses -lterminfo -lrmt -lcrypt -ll -lm -lz -lprop -lssh -lcrypto -lpthread
${CTFMERGE} ${CTFMFLAGS} -o ${.TARGET} ${OBJS.${:Uramdiskbin}}
=> /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/bin/nbctfmerge -t -g -L VERSION -g -o ramdiskbin.link ramdiskbin.o
*** [ramdiskbin.link] Error code 1
PR lib/58648: private shared libraries should go in
/usr/lib/private, not /usr/lib


distrib/sets/lists/comp: libssh is private for lint too.
Might fix:
checkflist ===> distrib/sets
====== 1 missing files in DESTDIR ========
Files in flist but missing from DESTDIR.
File wasn't installed ?
------------------------------------------
./usr/libdata/lint/llib-lssh.ln
======== end of 1 missing files ==========
PR lib/58648: private shared libraries should go in /usr/lib/private,
not /usr/lib

PR/58648: Fix MKDEBUG=yes build:
1. if NOLINKLIB is set don't install libfoo_g.a and libfoo_p.a libraries.
libfoo.a, libfoo_p.a were not being installed already, just make the
testing consistent
2. Move .a libraries from shl.mi to mi where they belong.
3. Make stray libfoo_g.a libraries that were install accidentally before
obsolete.

rescue/list: Touch for CRUNCHGEN_FLAGS change for libssh.
PR lib/58648: private shared libraries should go in /usr/lib/private,
not /usr/lib
  /src/share/man/man4/
options.4 1.494 Thu Dec 20 08:32:55 UTC 2018 cherry Document 'options NO_PREEMPTION'

With prompting from Christoph Badura.
Makefile 1.494 Sat Aug 01 15:43:01 UTC 2009 mbalmer Add a manual page for the gpiosim(4) pseudo-device.
  /src/crypto/external/bsd/openssh/
Makefile.inc 1.16.4.1 Thu Jan 22 19:51:55 UTC 2026 martin Pull up following revision(s) (requested by snj in ticket #150):

distrib/sets/lists/debug/shl.mi: revision 1.380
crypto/external/bsd/openssh/lib/Makefile: revision 1.45
distrib/sets/lists/debug/shl.mi: revision 1.381
crypto/external/bsd/openssh/lib/Makefile: revision 1.46
distrib/sets/lists/debug/shl.mi: revision 1.382
distrib/evbarm/instkernel/sshramdisk/list: revision 1.7
share/mk/bsd.lib.mk: revision 1.423
share/mk/bsd.lib.mk: revision 1.425
distrib/sets/lists/comp/mi: revision 1.2503
distrib/sets/lists/comp/mi: revision 1.2504
distrib/evbarm/instkernel/sshramdisk/Makefile: revision 1.31
distrib/sets/lists/base/shl.mi: revision 1.1019
rescue/list: revision 1.56
etc/mtree/NetBSD.dist.compat.in: revision 1.9
distrib/sets/lists/debug/mi: revision 1.494
distrib/sets/lists/debug/mi: revision 1.495
distrib/sets/lists/base/mi: revision 1.1371
distrib/sets/lists/base/mi: revision 1.1372
distrib/sets/lists/comp/shl.mi: revision 1.362
etc/mtree/NetBSD.dist.base: revision 1.262
lib/libpam/modules/pam_ssh/Makefile: revision 1.15
share/mk/bsd.prog.mk: revision 1.358
share/mk/bsd.prog.mk: revision 1.359
usr.sbin/wg-keygen/Makefile: revision 1.2
usr.sbin/wg-keygen/Makefile: revision 1.3
distrib/sets/lists/base/shl.mi: revision 1.1020
share/mk/bsd.README: revision 1.457
crypto/external/bsd/openssh/Makefile.inc: revision 1.18
distrib/sets/lists/xdebug/mi: revision 1.52
rescue/Makefile: revision 1.43

Add logic for /usr/lib/private libraries.

New variables for makefiles to define:
<bsd.lib.mk> LIBSUBDIR -- If nonempty, install library into
${LIBDIR}/${LIBSUBDIR} instead of ${LIBDIR}. Typically set
either to empty or to `private'.
<bsd.lib.mk> LIBDPSUBDIRS -- List of subdirectories _subdir_ to add
-L${SHLIBDIR}/${_subdir_} -Wl,-R${SHLIBDIR}/${_subdir_} to
ldflags when linking library. Note: Should only be used inside
private libraries, not inside public libraries to link against
private libraries, which can't work -- see comment.
<bsd.prog.mk> PROGDPSUBDIRS -- List of subdirectories _subdir_ to add
-L${SHLIBDIR}/${_subdir_} -Wl,-R${SHLIBDIR}/${_subdir_} to
ldflags when linking program.

(XXX bsd.lib.mk/bsd.prog.mk should figure LIBDPSUBDIRS/PROGDPSUBDIRS
out automatically by LIBDPLIBS/PROGDPLIBS, but for now we don't have
that mechanism -- TBD in subsequent work.)

Libraries that we want to install because we use them in binaries we
ship, but that we want to keep private from applications so we don't
have to worry about ABI breakage or leakage into pkgsrc builds,
should generally set:

LIBSUBDIR= private # Install into /usr/lib/private.
NOCOMPAT= # defined # Don't build compat lib.
NOLINKLIB= # defined # Don't install .so link or .a lib.

(XXX Maybe we should have a `LIBISPRIVATE= installed' or something
for this combination of options, but for now I'm putting in the
minimal mechanism to implement this and we can condense a common
pattern later.)

Programs using the library will also have to set
PROGDPSUBDIRS+= private
so that they will get the rpath /usr/lib/private.

PR lib/58648: private shared libraries should go in /usr/lib/private,
not /usr/lib


openssh: Install libssh.so in /usr/lib/private.

This way it doesn't get exposed to applications accidentally, and we
don't need to worry about breaking ABI when updating openssh in base.
PR lib/58648: private shared libraries should go in /usr/lib/private,
not /usr/lib

openssh: Do build and install compat libssh after all.

Even though it's not exposed for applications to _link_ against, it
is used by the dynamically _loadable_ pam_ssh module, which exists as
a compat module and therefore needs libssh as a compat library to be
installed somewhere. That somewhere will be
/usr/lib/${COMPAT_ARCH}/private.

Should fix problems like:
dependall ===> compat/sparc64/sparc/../../../lib/libpam/modules/pam_ssh
nbmake[11]: don't know how to make /home/source/ab/HEAD/src/crypto/external/bsd/openssh/lib/libssh.a. Stop
Verified in an amd64 build that the compat i386 pam_ssh.so is linked
correctly:
(chroot HEAD)# ldd /usr/lib/i386/security/pam_ssh.so.4
/usr/lib/i386/security/pam_ssh.so.4:
-lssh.50 => /usr/lib/i386/private/libssh.so.50
-lcrypto.16 => /usr/lib/i386/libcrypto.so.16
-lcrypt.1 => /usr/lib/i386/libcrypt.so.1
-lgcc_s.1 => /usr/lib/i386/libgcc_s.so.1
-lc.12 => /usr/lib/i386/libc.so.12
-lz.1 => /usr/lib/i386/libz.so.1

PR lib/58648: private shared libraries should go in /usr/lib/private,
not /usr/lib


wg-keygen(8): Find private libssh.so.
Should fix:
/usr/sbin/wg-keygen: Shared object "libssh.so.50" not found
PR lib/58648: private shared libraries should go in /usr/lib/private,
not /usr/lib


evbarm/instkernel/sshramdisk: Get libssh out of objdir now.
Should fix problems like:
--- ramdiskbin.link ---
# link sshramdisk/ramdiskbin.link
/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/bin/armv6eb--netbsdelf-eabihf-gcc --sysroot=/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest -static -o
ramdiskbin.link ramdiskbin.o -Wl,-rpath-link,/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/lib -L=/lib -L/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/usr/lib cat.cro
chmod.cro cp.cro dd.cro df.cro ed.cro ln.cro ls.cro mkdir.cro mv.cro pax.cro pwd.cro rm.cro rmdir.cro sh.cro stty.cro sync.cro sleep.cro chown.cro disklabel.cro fdisk.cro fsck.cro fsck_msdos.cro
fsck_ffs.cro gpt.cro ifconfig.cro init.cro mknod.cro mount.cro mount_cd9660.cro mount_ext2fs.cro mount_ffs.cro mount_kernfs.cro mount_msdos.cro mount_nfs.cro mount_tmpfs.cro newfs.cro
newfs_ext2fs.cro ping.cro reboot.cro restore.cro route.cro shutdown.cro slattach.cro swapctl.cro umount.cro ftp.cro tip.cro gzip.cro less.cro sed.cro tset.cro chroot.cro sshd.cro sysinst.cro
progress.cro dhcpcd.cro libhack.o
-ledit -lutil -lcurses -lterminfo -lrmt -lcrypt -ll -lm -lz -lprop -lssh -lcrypto -lpthread
/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/lib/gcc/armv6eb--netbsdelf-eabihf/14.3.0/../../../../armv6eb--netbsdelf-eabihf/bin/ld: cannot find -lssh: No such file or directory
/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/lib/gcc/armv6eb--netbsdelf-eabihf/14.3.0/../../../../armv6eb--netbsdelf-eabihf/bin/ld: have you installed the static version of the
ssh library ?
collect2: error: ld returned 1 exit status
*** Failed target: ramdiskbin.link
*** In directory: /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-obj/home/source/ab/HEAD/src/distrib/evbarm/instkernel/sshramdisk
*** Failed commands:
${_MKTARGET_LINK}
=> @echo '# ' " link " sshramdisk/ramdiskbin.link
${_CCLINK.${:Uramdiskbin}} ${_LDFLAGS.${:Uramdiskbin}} ${_LDSTATIC.${:Uramdiskbin}} -o ${.TARGET} ${OBJS.${:Uramdiskbin}} ${_PROGLDOPTS} ${_LDADD.${:Uramdiskbin}}
=> /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/bin/armv6eb--netbsdelf-eabihf-gcc --sysroot=/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest -static -o
ramdiskbin.link ramdiskbin.o -Wl,-rpath-link,/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/lib -L=/lib -L/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/usr/lib cat.cro
chmod.cro cp.cro dd.cro df.cro ed.cro ln.cro ls.cro mkdir.cro mv.cro pax.cro pwd.cro rm.cro rmdir.cro sh.cro stty.cro sync.cro sleep.cro chown.cro disklabel.cro fdisk.cro fsck.cro fsck_msdos.cro
fsck_ffs.cro gpt.cro ifconfig.cro init.cro mknod.cro mount.cro mount_cd9660.cro mount_ext2fs.cro mount_ffs.cro mount_kernfs.cro mount_msdos.cro mount_nfs.cro mount_tmpfs.cro newfs.cro
newfs_ext2fs.cro ping.cro reboot.cro restore.cro route.cro shutdown.cro slattach.cro swapctl.cro umount.cro ftp.cro tip.cro gzip.cro less.cro sed.cro tset.cro chroot.cro sshd.cro sysinst.cro
progress.cro dhcpcd.cro
libhack.o -ledit -lutil -lcurses -lterminfo -lrmt -lcrypt -ll -lm -lz -lprop -lssh -lcrypto -lpthread
${CTFMERGE} ${CTFMFLAGS} -o ${.TARGET} ${OBJS.${:Uramdiskbin}}
=> /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/bin/nbctfmerge -t -g -L VERSION -g -o ramdiskbin.link ramdiskbin.o
*** [ramdiskbin.link] Error code 1
PR lib/58648: private shared libraries should go in
/usr/lib/private, not /usr/lib


distrib/sets/lists/comp: libssh is private for lint too.
Might fix:
checkflist ===> distrib/sets
====== 1 missing files in DESTDIR ========
Files in flist but missing from DESTDIR.
File wasn't installed ?
------------------------------------------
./usr/libdata/lint/llib-lssh.ln
======== end of 1 missing files ==========
PR lib/58648: private shared libraries should go in /usr/lib/private,
not /usr/lib

PR/58648: Fix MKDEBUG=yes build:
1. if NOLINKLIB is set don't install libfoo_g.a and libfoo_p.a libraries.
libfoo.a, libfoo_p.a were not being installed already, just make the
testing consistent
2. Move .a libraries from shl.mi to mi where they belong.
3. Make stray libfoo_g.a libraries that were install accidentally before
obsolete.

rescue/list: Touch for CRUNCHGEN_FLAGS change for libssh.
PR lib/58648: private shared libraries should go in /usr/lib/private,
not /usr/lib
  /src/usr.bin/xlint/lint1/
cgram.y 1.494 Wed May 01 07:40:11 UTC 2024 rillig lint: support _Alignas and __attribute__((__aligned(4)))
tree.c 1.494 Sun Jan 22 16:05:08 UTC 2023 rillig lint: prevent undefined behavior for signed '<<'

Found by manual code inspection, verified by MKSANITIZER=yes
USE_SANITIZER=undefined.
  /src/share/mk/
bsd.README 1.455.2.1 Thu Jan 22 19:51:53 UTC 2026 martin Pull up following revision(s) (requested by snj in ticket #150):

distrib/sets/lists/debug/shl.mi: revision 1.380
crypto/external/bsd/openssh/lib/Makefile: revision 1.45
distrib/sets/lists/debug/shl.mi: revision 1.381
crypto/external/bsd/openssh/lib/Makefile: revision 1.46
distrib/sets/lists/debug/shl.mi: revision 1.382
distrib/evbarm/instkernel/sshramdisk/list: revision 1.7
share/mk/bsd.lib.mk: revision 1.423
share/mk/bsd.lib.mk: revision 1.425
distrib/sets/lists/comp/mi: revision 1.2503
distrib/sets/lists/comp/mi: revision 1.2504
distrib/evbarm/instkernel/sshramdisk/Makefile: revision 1.31
distrib/sets/lists/base/shl.mi: revision 1.1019
rescue/list: revision 1.56
etc/mtree/NetBSD.dist.compat.in: revision 1.9
distrib/sets/lists/debug/mi: revision 1.494
distrib/sets/lists/debug/mi: revision 1.495
distrib/sets/lists/base/mi: revision 1.1371
distrib/sets/lists/base/mi: revision 1.1372
distrib/sets/lists/comp/shl.mi: revision 1.362
etc/mtree/NetBSD.dist.base: revision 1.262
lib/libpam/modules/pam_ssh/Makefile: revision 1.15
share/mk/bsd.prog.mk: revision 1.358
share/mk/bsd.prog.mk: revision 1.359
usr.sbin/wg-keygen/Makefile: revision 1.2
usr.sbin/wg-keygen/Makefile: revision 1.3
distrib/sets/lists/base/shl.mi: revision 1.1020
share/mk/bsd.README: revision 1.457
crypto/external/bsd/openssh/Makefile.inc: revision 1.18
distrib/sets/lists/xdebug/mi: revision 1.52
rescue/Makefile: revision 1.43

Add logic for /usr/lib/private libraries.

New variables for makefiles to define:
<bsd.lib.mk> LIBSUBDIR -- If nonempty, install library into
${LIBDIR}/${LIBSUBDIR} instead of ${LIBDIR}. Typically set
either to empty or to `private'.
<bsd.lib.mk> LIBDPSUBDIRS -- List of subdirectories _subdir_ to add
-L${SHLIBDIR}/${_subdir_} -Wl,-R${SHLIBDIR}/${_subdir_} to
ldflags when linking library. Note: Should only be used inside
private libraries, not inside public libraries to link against
private libraries, which can't work -- see comment.
<bsd.prog.mk> PROGDPSUBDIRS -- List of subdirectories _subdir_ to add
-L${SHLIBDIR}/${_subdir_} -Wl,-R${SHLIBDIR}/${_subdir_} to
ldflags when linking program.

(XXX bsd.lib.mk/bsd.prog.mk should figure LIBDPSUBDIRS/PROGDPSUBDIRS
out automatically by LIBDPLIBS/PROGDPLIBS, but for now we don't have
that mechanism -- TBD in subsequent work.)

Libraries that we want to install because we use them in binaries we
ship, but that we want to keep private from applications so we don't
have to worry about ABI breakage or leakage into pkgsrc builds,
should generally set:

LIBSUBDIR= private # Install into /usr/lib/private.
NOCOMPAT= # defined # Don't build compat lib.
NOLINKLIB= # defined # Don't install .so link or .a lib.

(XXX Maybe we should have a `LIBISPRIVATE= installed' or something
for this combination of options, but for now I'm putting in the
minimal mechanism to implement this and we can condense a common
pattern later.)

Programs using the library will also have to set
PROGDPSUBDIRS+= private
so that they will get the rpath /usr/lib/private.

PR lib/58648: private shared libraries should go in /usr/lib/private,
not /usr/lib


openssh: Install libssh.so in /usr/lib/private.

This way it doesn't get exposed to applications accidentally, and we
don't need to worry about breaking ABI when updating openssh in base.
PR lib/58648: private shared libraries should go in /usr/lib/private,
not /usr/lib

openssh: Do build and install compat libssh after all.

Even though it's not exposed for applications to _link_ against, it
is used by the dynamically _loadable_ pam_ssh module, which exists as
a compat module and therefore needs libssh as a compat library to be
installed somewhere. That somewhere will be
/usr/lib/${COMPAT_ARCH}/private.

Should fix problems like:
dependall ===> compat/sparc64/sparc/../../../lib/libpam/modules/pam_ssh
nbmake[11]: don't know how to make /home/source/ab/HEAD/src/crypto/external/bsd/openssh/lib/libssh.a. Stop
Verified in an amd64 build that the compat i386 pam_ssh.so is linked
correctly:
(chroot HEAD)# ldd /usr/lib/i386/security/pam_ssh.so.4
/usr/lib/i386/security/pam_ssh.so.4:
-lssh.50 => /usr/lib/i386/private/libssh.so.50
-lcrypto.16 => /usr/lib/i386/libcrypto.so.16
-lcrypt.1 => /usr/lib/i386/libcrypt.so.1
-lgcc_s.1 => /usr/lib/i386/libgcc_s.so.1
-lc.12 => /usr/lib/i386/libc.so.12
-lz.1 => /usr/lib/i386/libz.so.1

PR lib/58648: private shared libraries should go in /usr/lib/private,
not /usr/lib


wg-keygen(8): Find private libssh.so.
Should fix:
/usr/sbin/wg-keygen: Shared object "libssh.so.50" not found
PR lib/58648: private shared libraries should go in /usr/lib/private,
not /usr/lib


evbarm/instkernel/sshramdisk: Get libssh out of objdir now.
Should fix problems like:
--- ramdiskbin.link ---
# link sshramdisk/ramdiskbin.link
/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/bin/armv6eb--netbsdelf-eabihf-gcc --sysroot=/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest -static -o
ramdiskbin.link ramdiskbin.o -Wl,-rpath-link,/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/lib -L=/lib -L/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/usr/lib cat.cro
chmod.cro cp.cro dd.cro df.cro ed.cro ln.cro ls.cro mkdir.cro mv.cro pax.cro pwd.cro rm.cro rmdir.cro sh.cro stty.cro sync.cro sleep.cro chown.cro disklabel.cro fdisk.cro fsck.cro fsck_msdos.cro
fsck_ffs.cro gpt.cro ifconfig.cro init.cro mknod.cro mount.cro mount_cd9660.cro mount_ext2fs.cro mount_ffs.cro mount_kernfs.cro mount_msdos.cro mount_nfs.cro mount_tmpfs.cro newfs.cro
newfs_ext2fs.cro ping.cro reboot.cro restore.cro route.cro shutdown.cro slattach.cro swapctl.cro umount.cro ftp.cro tip.cro gzip.cro less.cro sed.cro tset.cro chroot.cro sshd.cro sysinst.cro
progress.cro dhcpcd.cro libhack.o
-ledit -lutil -lcurses -lterminfo -lrmt -lcrypt -ll -lm -lz -lprop -lssh -lcrypto -lpthread
/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/lib/gcc/armv6eb--netbsdelf-eabihf/14.3.0/../../../../armv6eb--netbsdelf-eabihf/bin/ld: cannot find -lssh: No such file or directory
/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/lib/gcc/armv6eb--netbsdelf-eabihf/14.3.0/../../../../armv6eb--netbsdelf-eabihf/bin/ld: have you installed the static version of the
ssh library ?
collect2: error: ld returned 1 exit status
*** Failed target: ramdiskbin.link
*** In directory: /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-obj/home/source/ab/HEAD/src/distrib/evbarm/instkernel/sshramdisk
*** Failed commands:
${_MKTARGET_LINK}
=> @echo '# ' " link " sshramdisk/ramdiskbin.link
${_CCLINK.${:Uramdiskbin}} ${_LDFLAGS.${:Uramdiskbin}} ${_LDSTATIC.${:Uramdiskbin}} -o ${.TARGET} ${OBJS.${:Uramdiskbin}} ${_PROGLDOPTS} ${_LDADD.${:Uramdiskbin}}
=> /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/bin/armv6eb--netbsdelf-eabihf-gcc --sysroot=/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest -static -o
ramdiskbin.link ramdiskbin.o -Wl,-rpath-link,/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/lib -L=/lib -L/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/usr/lib cat.cro
chmod.cro cp.cro dd.cro df.cro ed.cro ln.cro ls.cro mkdir.cro mv.cro pax.cro pwd.cro rm.cro rmdir.cro sh.cro stty.cro sync.cro sleep.cro chown.cro disklabel.cro fdisk.cro fsck.cro fsck_msdos.cro
fsck_ffs.cro gpt.cro ifconfig.cro init.cro mknod.cro mount.cro mount_cd9660.cro mount_ext2fs.cro mount_ffs.cro mount_kernfs.cro mount_msdos.cro mount_nfs.cro mount_tmpfs.cro newfs.cro
newfs_ext2fs.cro ping.cro reboot.cro restore.cro route.cro shutdown.cro slattach.cro swapctl.cro umount.cro ftp.cro tip.cro gzip.cro less.cro sed.cro tset.cro chroot.cro sshd.cro sysinst.cro
progress.cro dhcpcd.cro
libhack.o -ledit -lutil -lcurses -lterminfo -lrmt -lcrypt -ll -lm -lz -lprop -lssh -lcrypto -lpthread
${CTFMERGE} ${CTFMFLAGS} -o ${.TARGET} ${OBJS.${:Uramdiskbin}}
=> /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/bin/nbctfmerge -t -g -L VERSION -g -o ramdiskbin.link ramdiskbin.o
*** [ramdiskbin.link] Error code 1
PR lib/58648: private shared libraries should go in
/usr/lib/private, not /usr/lib


distrib/sets/lists/comp: libssh is private for lint too.
Might fix:
checkflist ===> distrib/sets
====== 1 missing files in DESTDIR ========
Files in flist but missing from DESTDIR.
File wasn't installed ?
------------------------------------------
./usr/libdata/lint/llib-lssh.ln
======== end of 1 missing files ==========
PR lib/58648: private shared libraries should go in /usr/lib/private,
not /usr/lib

PR/58648: Fix MKDEBUG=yes build:
1. if NOLINKLIB is set don't install libfoo_g.a and libfoo_p.a libraries.
libfoo.a, libfoo_p.a were not being installed already, just make the
testing consistent
2. Move .a libraries from shl.mi to mi where they belong.
3. Make stray libfoo_g.a libraries that were install accidentally before
obsolete.

rescue/list: Touch for CRUNCHGEN_FLAGS change for libssh.
PR lib/58648: private shared libraries should go in /usr/lib/private,
not /usr/lib
  /src/usr.bin/make/
job.c 1.494 Tue Apr 22 06:05:51 UTC 2025 rillig make: remove no-op code

Whitespace is already skipped in the loop above.

When no jobs are running, there is no need to wait for one.
parse.c 1.494 Sat Dec 19 00:24:46 UTC 2020 rillig make(1): fix line numbers in .for loops (since 2007-01-01)
main.c 1.494 Fri Dec 11 23:00:59 UTC 2020 rillig make(1): clean up comments for command line options
  /src/distrib/notes/common/
main 1.494 Sun Jan 13 00:19:41 UTC 2013 htodd Adding myself.
  /src/sys/arch/i386/conf/
ALL 1.494 Tue Jul 14 00:45:52 UTC 2020 yamaguchi Introduce per-cpu IDTs

This is realized by following modifications:
- Add IDT pages and its allocation maps for each cpu in "struct cpu_info"
- Load per-cpu IDTs at cpu_init_idt(struct cpu_info*)
- Copy the IDT entries for cpu0 to other CPUs at attach
- These are, for example, exceptions, db, system calls, etc.

And, added a kernel option named PCPU_IDT to enable the feature.
GENERIC 1.494 Mon Jun 17 05:14:12 UTC 2002 lukem Enable "pseudo-device clockctl" in all kernels, except
installation related kernels (INSTALL* and RAMDISK*).
This enables rc.conf(5) $ntpd_chroot to be used "out of the box"
1.491.4.2 Thu Aug 01 04:22:39 UTC 2002 lukem Pull up revision 1.494 (requested by lukem in ticket #312):
Enable "pseudo-device clockctl" in all kernels, except
installation related kernels (INSTALL* and RAMDISK*).
This enables rc.conf(5) $ntpd_chroot to be used "out of the box"
  /src/sys/kern/
vfs_subr.c 1.494 Tue Sep 13 08:48:20 UTC 2022 riastradh vfs_subr.c: Nix trailing whitespace.
  /src/sys/arch/amd64/conf/
GENERIC 1.494 Tue Jul 10 17:01:43 UTC 2018 maya Remove viadrm(4), superseded by viadrmums.

Aside from viadrm using older drm code, it's also dysfunctional right now.
See PR port-i386/53364.
  /src/sys/arch/i386/i386/
machdep.c 1.494 Thu Oct 24 07:43:21 UTC 2002 fvdl Make this actually compile.

Completed in 747 milliseconds

1 2 3