diff -x CVS -ruN pkgsrc-2017Q1/graphics/MesaLib/Makefile pkgsrc/graphics/MesaLib/Makefile
--- pkgsrc-2017Q1/graphics/MesaLib/Makefile	2017-03-22 21:22:31.000000000 +0100
+++ pkgsrc/graphics/MesaLib/Makefile	2017-04-15 08:50:17.438216248 +0200
@@ -45,10 +45,14 @@
 SUBST_FILES.wrapper-bug=	src/gbm/Makefile.in
 SUBST_FILES.wrapper-bug+=	src/glx/Makefile.in
 SUBST_FILES.wrapper-bug+=	src/mapi/Makefile.in
+SUBST_FILES.wrapper-bug+=	src/mesa/Makefile.in
 SUBST_FILES.wrapper-bug+=	src/mesa/drivers/x11/Makefile.in
+SUBST_FILES.wrapper-bug+=	src/mesa/drivers/osmesa/Makefile.in
+SUBST_FILES.wrapper-bug+=       src/gallium/targets/libgl-xlib/Makefile.in
 SUBST_SED.wrapper-bug=		-e 's,shared-glapi/libglapi.la,shared-glapi/libglapi_tmp_rename.la,g'
 SUBST_SED.wrapper-bug+=		-e 's,libglapi.la,libglapi_impl.la,g'
 SUBST_SED.wrapper-bug+=		-e 's,libglapi_tmp_rename.la,libglapi.la,g'
+SUBST_SED.wrapper-bug+=         -e 's,^\(LTCPPASCOMPILE = $$(LIBTOOL)\) \($$(AM_V_lt)\),\1 --tag=CC \2,'
 
 # Replace /etc/drirc with ${PREFIX}/etc/drirc
 SUBST_CLASSES+=			drirc
@@ -108,4 +112,5 @@
 .include "../../x11/libX11/buildlink3.mk"
 .include "../../x11/libXext/buildlink3.mk"
 .include "../../x11/libxcb/buildlink3.mk"
+.include "../../x11/glproto/buildlink3.mk"
 .include "../../mk/bsd.pkg.mk"
diff -x CVS -ruN pkgsrc-2017Q1/graphics/MesaLib/options.mk pkgsrc/graphics/MesaLib/options.mk
--- pkgsrc-2017Q1/graphics/MesaLib/options.mk	2017-03-22 21:22:31.000000000 +0100
+++ pkgsrc/graphics/MesaLib/options.mk	2017-04-14 17:45:14.093022304 +0200
@@ -1,7 +1,7 @@
 # $NetBSD: options.mk,v 1.55 2017/03/22 20:22:31 markd Exp $
 
 PKG_OPTIONS_VAR=		PKG_OPTIONS.MesaLib
-PKG_SUPPORTED_OPTIONS=		llvm dri
+PKG_SUPPORTED_OPTIONS=		llvm dri osmesa
 PKG_SUGGESTED_OPTIONS=
 
 # The LLVM option enables JIT accelerated software rendering and
@@ -21,6 +21,7 @@
 
 .include "../../mk/bsd.options.mk"
 
+PLIST_VARS+=    osmesa
 # gallium
 PLIST_VARS+=	freedreno ilo i915 i965 nouveau r300 r600 radeonsi	\
 		swrast svga vc4 virgl
@@ -29,6 +30,24 @@
 # other features
 PLIST_VARS+=	gbm vaapi vdpau wayland xatracker
 
+GALLIUM_DRIVERS=	#
+.if ${OPSYS} != "Darwin"
+GALLIUM_DRIVERS+=	swrast
+.endif
+
+
+# OSMesa wants swrast,llvmpipe,softpipe; hoping for swrast at least.
+# I would like a non-DRI build with llvmpipe. Can I have that with pkgsrc?
+# Or swr, even?
+# I am getting linking/dependency trouble with glapi; is this due to pkgsrc hackery?
+# Does disabling shared glapi help?
+.if !empty(PKG_OPTIONS:Mosmesa)
+PLIST.osmesa= yes
+CONFIGURE_ARGS+=	--enable-osmesa
+.else
+CONFIGURE_ARGS+=        --disable-osmesa
+.endif
+
 .if !empty(PKG_OPTIONS:Mdri)
 
 CONFIGURE_ARGS+=	--enable-dri
@@ -67,15 +86,13 @@
 .include "../../graphics/MesaLib/dri.mk"
 
 DRI_DRIVERS=		#
-GALLIUM_DRIVERS=	#
 
 # Software rasterizer
+# It is all DRI?! The DRI-less gallium swrast (softpipe) does not have those
+# PLIST files.
+PLIST.swrast=		yes
 PLIST.swrast_dri=	yes
 DRI_DRIVERS+=		swrast
-.if ${OPSYS} != "Darwin"
-PLIST.swrast=		yes
-GALLIUM_DRIVERS+=	swrast
-.endif
 
 # x86 only drivers
 .if (${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "x86_64") && ${OPSYS} != "Darwin"
@@ -149,7 +166,6 @@
 CONFIGURE_ARGS+=	--with-egl-platforms=x11,drm
 .endif
 
-CONFIGURE_ARGS+=	--with-gallium-drivers=${GALLIUM_DRIVERS:ts,}
 CONFIGURE_ARGS+=	--with-dri-drivers=${DRI_DRIVERS:ts,}
 
 .if !empty(PKG_OPTIONS:Mllvm)
@@ -187,7 +203,6 @@
 CONFIGURE_ARGS+=	--disable-r600-llvm-compiler
 .endif # llvm
 .else # !dri
-CONFIGURE_ARGS+=	--with-gallium-drivers=
 CONFIGURE_ARGS+=	--with-dri-drivers=
 CONFIGURE_ARGS+=	--disable-dri
 CONFIGURE_ARGS+=	--disable-dri3
@@ -200,3 +215,5 @@
 PKG_FAIL_REASON+=	"The llvm PKG_OPTION must also be disabled when dri is disabled"
 .endif
 .endif
+
+CONFIGURE_ARGS+=	--with-gallium-drivers=${GALLIUM_DRIVERS:ts,}
diff -x CVS -ruN pkgsrc-2017Q1/graphics/MesaLib/PLIST pkgsrc/graphics/MesaLib/PLIST
--- pkgsrc-2017Q1/graphics/MesaLib/PLIST	2017-02-24 14:48:33.000000000 +0100
+++ pkgsrc/graphics/MesaLib/PLIST	2017-04-14 17:51:39.314197955 +0200
@@ -81,3 +81,7 @@
 ${PLIST.vdpau}lib/vdpau/libvdpau_radeonsi.so.1.0.0
 ${PLIST.vaapi}lib/dri/gallium_drv_video.la
 ${PLIST.vaapi}lib/dri/gallium_drv_video.so
+${PLIST.osmesa}lib/pkgconfig/osmesa.pc
+${PLIST.osmesa}lib/libOSMesa.la
+@comment For some reason, it is not part of the libGL.la anymore?!
+${PLIST.osmesa}lib/libGL.so.1.6.0
