* 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