# HG changeset patch # User Markus Mützel # Date 1593975537 -7200 # Node ID be0a7ce498e623b44c5d48dcc1f688db6644d87e # Parent 4edf49596bf0c4ada8920a9df753d5952e93dbac Update mesa to version 20.0.8 (bug #58689). * src/mesa.mk: Update version and checksum. Add build-meson to dependecies. Update build rule to use meson and ninja as the build tools. * src/mesa-1-meson.patch: Add new patch. * src/mesa-1-fixes.patch: Remove old patch for the scons rule that is no longer needed. * dist-files.mk: Update file list. * src/build-mako.mk: Depend on and use python3. * src/build-markupsafe.mk: Depend on and use python3. diff -r 4edf49596bf0 -r be0a7ce498e6 dist-files.mk --- a/dist-files.mk Thu Jul 02 17:53:59 2020 +0200 +++ b/dist-files.mk Sun Jul 05 20:58:57 2020 +0200 @@ -326,7 +326,7 @@ lzo.mk \ matio.mk \ mdbtools.mk \ - mesa-1-fixes.patch \ + mesa-1-meson.patch \ mesa-proto.mk \ mesa.mk \ mingw-blas-1-xerbla.patch \ diff -r 4edf49596bf0 -r be0a7ce498e6 src/build-mako.mk --- a/src/build-mako.mk Thu Jul 02 17:53:59 2020 +0200 +++ b/src/build-mako.mk Sun Jul 05 20:58:57 2020 +0200 @@ -8,7 +8,7 @@ $(PKG)_SUBDIR := Mako-$($(PKG)_VERSION) $(PKG)_FILE := Mako-$($(PKG)_VERSION).tar.gz $(PKG)_URL := https://pypi.python.org/packages/eb/f3/67579bb486517c0d49547f9697e36582cd19dafb5df9e687ed8e22de57fa/$($(PKG)_FILE) -$(PKG)_DEPS := build-python build-markupsafe build-setuptools +$(PKG)_DEPS := build-python3 build-markupsafe build-setuptools define $(PKG)_UPDATE echo 'Warning: Updates are temporarily disabled for package $(PKG).' >&2; @@ -16,5 +16,5 @@ endef define $(PKG)_BUILD - cd '$(1)' && python2 setup.py install --prefix='$(BUILD_TOOLS_PREFIX)' + cd '$(1)' && $(PYTHON3) setup.py install --prefix='$(BUILD_TOOLS_PREFIX)' endef diff -r 4edf49596bf0 -r be0a7ce498e6 src/build-markupsafe.mk --- a/src/build-markupsafe.mk Thu Jul 02 17:53:59 2020 +0200 +++ b/src/build-markupsafe.mk Sun Jul 05 20:58:57 2020 +0200 @@ -8,7 +8,7 @@ $(PKG)_SUBDIR := MarkupSafe-$($(PKG)_VERSION) $(PKG)_FILE := MarkupSafe-$($(PKG)_VERSION).tar.gz $(PKG)_URL := https://pypi.python.org/packages/4d/de/32d741db316d8fdb7680822dd37001ef7a448255de9699ab4bfcbdf4172b/$($(PKG)_FILE) -$(PKG)_DEPS := build-python build-setuptools +$(PKG)_DEPS := build-python3 build-setuptools define $(PKG)_UPDATE echo 'Warning: Updates are temporarily disabled for package $(PKG).' >&2; @@ -16,6 +16,6 @@ endef define $(PKG)_BUILD - cd '$(1)' && python2 setup.py install --prefix='$(BUILD_TOOLS_PREFIX)' + cd '$(1)' && $(PYTHON3) setup.py install --prefix='$(BUILD_TOOLS_PREFIX)' endef diff -r 4edf49596bf0 -r be0a7ce498e6 src/mesa-1-fixes.patch --- a/src/mesa-1-fixes.patch Thu Jul 02 17:53:59 2020 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,29 +0,0 @@ -diff -uNr a/scons/gallium.py b/scons/gallium.py ---- a/scons/gallium.py 2017-09-17 19:03:22.000000000 -0400 -+++ b/scons/gallium.py 2017-10-04 19:24:29.499373623 -0400 -@@ -580,9 +580,6 @@ - '-Wl,--dynamicbase', # ASLR - ] - # Avoid depending on gcc runtime DLLs -- linkflags += ['-static-libgcc'] -- if 'w64' in env['CC'].split('-'): -- linkflags += ['-static-libstdc++'] - # Handle the @xx symbol munging of DLL exports - shlinkflags += ['-Wl,--enable-stdcall-fixup'] - #shlinkflags += ['-Wl,--kill-at'] -diff -uNr a/scons/llvm.py b/scons/llvm.py ---- a/scons/llvm.py 2018-12-27 17:02:01.000000000 +0100 -+++ b/scons/llvm.py 2019-01-21 18:47:28.456846140 +0100 -@@ -122,10 +122,7 @@ - 'LLVMIRReader', 'LLVMAsmParser', - 'LLVMDemangle', 'LLVMGlobalISel', 'LLVMDebugInfoMSF', - 'LLVMBinaryFormat', -+ 'version', 'uuid', 'ole32', 'oleaut32', 'z', - ]) -- if env['platform'] == 'windows' and env['crosscompile']: -- # LLVM 5.0 requires MinGW w/ pthreads due to use of std::thread and friends. -- assert env['gcc'] -- env['CXX'] = env['CXX'] + '-posix' - elif llvm_version >= distutils.version.LooseVersion('4.0'): - env.Prepend(LIBS = [ - diff -r 4edf49596bf0 -r be0a7ce498e6 src/mesa-1-meson.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/mesa-1-meson.patch Sun Jul 05 20:58:57 2020 +0200 @@ -0,0 +1,15 @@ +Don't link to Win32 library libstdc++ + +diff --git "a/meson.build" "b/meson.build" +index eaaca7f..9b9d2d3 100644 +--- "a/meson.build" ++++ "b/meson.build" +@@ -1030,8 +1030,7 @@ if host_machine.system() == 'windows' + add_project_link_arguments( + '-Wl,--nxcompat', + '-Wl,--dynamicbase', + '-static-libgcc', +- '-static-libstdc++', + language : ['c', 'cpp'], + ) + endif diff -r 4edf49596bf0 -r be0a7ce498e6 src/mesa.mk --- a/src/mesa.mk Thu Jul 02 17:53:59 2020 +0200 +++ b/src/mesa.mk Sun Jul 05 20:58:57 2020 +0200 @@ -2,85 +2,61 @@ # See index.html for further information. PKG := mesa -$(PKG)_VERSION := 19.0.8 -$(PKG)_CHECKSUM := 5fd340a6304f7501014e1bd7291e4cfa7a6efcdb +$(PKG)_VERSION := 20.0.8 +$(PKG)_CHECKSUM := 54be52b058b931212b5994e8974c417b4b6c3157 $(PKG)_SUBDIR := mesa-$($(PKG)_VERSION) $(PKG)_FILE := mesa-$($(PKG)_VERSION).tar.xz $(PKG)_URL := ftp://ftp.freedesktop.org/pub/mesa/$($(PKG)_FILE) -$(PKG)_DEPS := build-mako expat zlib llvm s2tc - -$(PKG)_PKG_CONFIG_PATH := $(PKG_CONFIG_PATH) -ifeq ($(MXE_WINDOWS_BUILD),yes) - $(PKG)_DEPS += build-scons - ifeq ($(USE_SYSTEM_OPENGL),no) - $(PKG)_SCONS_OPENGL_OPTIONS := libgl-gdi - endif -else - ifeq ($(USE_SYSTEM_OPENGL),yes) - $(PKG)_CONFIGURE_OPENGL_OPTIONS := \ - --disable-opengl --disable-egl --disable-gles1 --disable-gles2 \ - --disable-dri --disable-glx \ - --with-gallium-drivers="" --with-dri-drivers="" \ - --with-platforms="" - else - $(PKG)_CONFIGURE_OPENGL_OPTIONS := \ - --enable-glx="gallium-xlib" --with-gallium-drivers="swrast" \ - --disable-dri --disable-gbm --disable-egl - ifeq ($(USE_SYSTEM_X11_LIBS),no) - $(PKG)_DEPS += dri2proto glproto libdrm libxshmfence x11 xdamage xext xfixes - else - $(PKG)_PKG_CONFIG_PATH := $(PKG_CONFIG_PATH):$(BUILD_PKG_CONFIG_PATH) - endif - endif - $(PKG)_CONFIGURE_ENV += \ - PKG_CONFIG="$(MXE_PKG_CONFIG)" \ - PKG_CONFIG_LIBDIR=$($(PKG)_PKG_CONFIG_PATH) -endif +$(PKG)_DEPS := build-mako build-meson expat zlib llvm s2tc define $(PKG)_UPDATE echo 'Warning: Updates are temporarily disabled for package $(PKG).' >&2; echo $($(PKG)_VERSION) endef -ifeq ($(MXE_WINDOWS_BUILD),yes) - ifeq ($(ENABLE_WINDOWS_64),yes) - $(PKG)_MACHINE := x86_64 - else - $(PKG)_MACHINE := x86 - endif - define $(PKG)_BUILD - cd '$(1)' && LLVM=$(HOST_PREFIX) python2 $(shell which scons) platform=windows toolchain=crossmingw machine=$($(PKG)_MACHINE) verbose=1 build=release $($(PKG)_SCONS_OPENGL_OPTIONS) +# FIXME: Should this be defined in the top-level Makefile? +ifeq ($(MXE_NATIVE_BUILD),no) + MESON_TOOLCHAIN_FILE := $(HOST_PREFIX)/share/meson/cross/mxe-conf.ini +else + MESON_TOOLCHAIN_FILE := $(HOST_PREFIX)/share/meson/native/mxe-conf.ini +endif - ## Do the scons config files have useful install targets? - $(INSTALL) -d '$(3)$(HOST_INCDIR)/GL'; - for f in '$(1)/include/GL/*.h' ; do \ - $(INSTALL) -m 644 $$f '$(3)$(HOST_INCDIR)/GL'; \ - done - $(INSTALL) -d '$(3)$(HOST_INCDIR)/KHR'; - for f in '$(1)/include/KHR/*.h' ; do \ - $(INSTALL) -m 644 $$f '$(3)$(HOST_INCDIR)/KHR'; \ - done +ifeq ($(MXE_WINDOWS_BUILD),yes) + $(PKG)_MESON_TOOLCHAIN_FILE := --cross-file '$(MESON_TOOLCHAIN_FILE)' +else + ifeq ($(USE_SYSTEM_X11_LIBS),no) + $(PKG)_DEPS += dri2proto glproto libdrm libxshmfence x11 xdamage xext xfixes + else + $(PKG)_PKG_CONFIG_PATH := $(PKG_CONFIG_PATH):$(BUILD_PKG_CONFIG_PATH) + endif + $(PKG)_MESON_TOOLCHAIN_FILE := --native-file '$(MESON_TOOLCHAIN_FILE)' + $(PKG)_MESON_ENV += \ + PKG_CONFIG="$(MXE_PKG_CONFIG)" \ + PKG_CONFIG_LIBDIR=$($(PKG)_PKG_CONFIG_PATH) - if [ -f '$(1)/build/windows-$($(PKG)_MACHINE)/gallium/targets/libgl-gdi/opengl32.dll' ]; then \ - $(INSTALL) -d '$(3)$(HOST_BINDIR)'; \ - $(INSTALL) -m 755 '$(1)/build/windows-$($(PKG)_MACHINE)/gallium/targets/libgl-gdi/opengl32.dll' '$(3)$(HOST_BINDIR)/opengl32.dll'; \ - fi - endef -else - define $(PKG)_BUILD - mkdir '$(1)/.build' - cd '$(1)' && autoreconf -fi -I m4 - cd '$(1)/.build' && $($(PKG)_CONFIGURE_ENV) '$(1)/configure' \ - $(CONFIGURE_CPPFLAGS) $(CONFIGURE_LDFLAGS) \ - $(HOST_AND_BUILD_CONFIGURE_OPTIONS) \ - --prefix='$(HOST_PREFIX)' \ - $($(PKG)_CONFIGURE_OPENGL_OPTIONS) \ - --enable-autotools \ - --disable-osmesa \ - --disable-gbm \ - --disable-xvmc \ - && $(CONFIGURE_POST_HOOK) + $(PKG)_X11_FLAGS := -Dplatforms='x11' \ + -Dglx=gallium-xlib \ + -Ddri-drivers='' +endif - $(MAKE) -C '$(1)/.build' -j '$(JOBS)' install DESTDIR='$(3)' - endef -endif +define $(PKG)_BUILD + cd '$(1)' && $($(PKG)_MESON_ENV) \ + meson $(1)/.build \ + $($(PKG)_MESON_TOOLCHAIN_FILE) \ + -Dprefix='$(HOST_PREFIX)' \ + $($(PKG)_X11_FLAGS) \ + -Dgallium-drivers=swrast \ + -Dvulkan-drivers='' \ + -Degl=false \ + -Dgbm=false \ + -Dshared-llvm=true + + cd '$(1)/.build' && DESTDIR=$(3) ninja -j $(JOBS) install + + # opengl32.dll.a shadows libopengl32.a from mingw. They export slightly + # different symbols which causes problems for some packages. So don't install + # it for cross-builds. + if [ x$(MXE_NATIVE_BUILD) == xno ]; then \ + rm -f $(3)$(HOST_LIBDIR)/opengl32.dll.a; \ + fi +endef