* Benny Siegert <bsiegert%gmail.com@localhost> [2018-12-05 05:22 -0500]:
However, that results in the failure I experience with the unmodified Makefile. Does anyone know how to properly check for the "Microsoft" string in the output of `uname -r` so that I can set the PLIST.hcrypto only on WSL installations? If so, please let me know, because I'd like to submit an update to the package once I figure it out.First of all, use the != operator to run the shell command: OSV!= ${UNAME} -r
Thanks, I'll remember that.
Second of all, I would add that logic in mk/bsd.prefs.mk, around line 210. There is already an OS_VERSION defined at that point, so perhaps you could grep the "Microsoft" in there and set LOWER_VENDOR and/or OS_VARIANT.
I was trying to keep any changes to a single package, as I've never used pkgsrc before, but thanks for the tip. I looked into bsd.prefs.mk, and tried various methods of using OS_VERSION to make OS_VARIANT, but was unable to succeed. However, I *was* able to use `uname -r` to create OS_VARIANT, then get the desired behavior using that. The two diffs attached to this message are for pkgsrc/mk/bsd.prefs.mk and pkgsrc/security/heimdal/Makefile. The patch to bsd.prefs.mk sets OS_VARIANT to "Microsoft" if the string "Microsoft" exists in the output of `uname -r` *and* the OPSYS is "Linux". Otherwise, it sets OS_VARIANT to the value to which it was set unconditionally for "Linux", which is the value contained in LOWER_VENDOR. The patch to heimdal/Makefile sets PLIST.hcrypto to yes if OS_VARIANT contains the value "Microsoft". Please let me know if you see anything that should be changed in these patches. Also, what else should I do to get these committed to the pkgsrc tree? Regards, -dave
Index: bsd.prefs.mk
===================================================================
RCS file: /cvsroot/pkgsrc/mk/bsd.prefs.mk,v
retrieving revision 1.402
diff -u -p -r1.402 bsd.prefs.mk
--- bsd.prefs.mk	12 Nov 2018 14:22:58 -0000	1.402
+++ bsd.prefs.mk	7 Dec 2018 02:29:30 -0000
@@ -226,7 +226,11 @@ LOWER_VENDOR?=		chromeos
 LOWER_VENDOR?=          pc
 .  endif
 LOWER_VENDOR?=          unknown
+OS_VARIANT!=		${UNAME} -r
+OS_VARIANT:=		${OS_VARIANT:C/^.*-//}
+.  if ${OS_VARIANT} != "Microsoft"
 OS_VARIANT=		${LOWER_VENDOR}
+.  endif
 .  if !defined(HOST_MACHINE_ARCH)
 HOST_MACHINE_ARCH!=	${UNAME} -m
 MAKEFLAGS+=		HOST_MACHINE_ARCH=${HOST_MACHINE_ARCH:Q}
Index: Makefile
===================================================================
RCS file: /cvsroot/pkgsrc/security/heimdal/Makefile,v
retrieving revision 1.128
diff -u -p -r1.128 Makefile
--- Makefile	27 Nov 2018 23:36:00 -0000	1.128
+++ Makefile	7 Dec 2018 02:25:31 -0000
@@ -73,15 +73,21 @@ PLIST.vis=	yes
 PLIST.glob=	yes
 .endif
 
+PLIST_VARS+=		hcrypto
 # Linux does not have include/vis.h and expected include/glob.h.
 .if ${OPSYS} == "Linux"
 PLIST.vis=	yes
 PLIST.glob=	yes
 # Without this I get undefined references to pthread_getspecific
 PTHREAD_AUTO_VARS=	yes
+.if ${OS_VARIANT} == "Microsoft"
+# On Ubuntu hosted via WSL this is needed to avoid a DESTDIR/PLIST
+# conflict error.
+PLIST.hcrypto=	yes
+.endif
 .endif
 
-PLIST_VARS+=		afskauth hcrypto
+PLIST_VARS+=		afskauth
 .if ${OPSYS} == "IRIX"
 PLIST.afskauth=		yes
 .endif
Attachment:
signature.asc
Description: PGP signature