Package: release.debian.org Severity: normal User: release.debian....@packages.debian.org Usertags: unblock
Please unblock package beignet * Statically link to LLVM to allow installation together with mesa-opencl-icd (workaround for #852746). This is really a libllvm bug (shared library with global state), but really fixing it there probably isn't feasible at this point. Security team approved in https://lists.alioth.debian.org/pipermail/pkg-opencl-devel/Week-of-Mon-20170220/001364.html * Disable OpenCL 2.0 on i386, as it is likely to crash. (Closes: #855651) Important bug, previously missed because my hardware doesn't support 2.0. * Add missing build-dependencies on x32 to fix FTBFS. This didn't actually work (looks like x32's 3.9~something identifies as 3.9 but acts like 3.8 in some of the ways that matter for OpenCL; it couldn't be tested before upload because x32 isn't currently debootstrappable), but as it's an arch-specific build-dep, it can't hurt release architectures. * Fix broken link in documentation. unblock beignet/1.3.0-2 -- System Information: Debian Release: 8.7 APT prefers stable-updates APT policy: (500, 'stable-updates'), (500, 'stable') Architecture: amd64 (x86_64) Kernel: Linux 3.16.0-4-amd64 (SMP w/4 CPU cores) Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) diff -Nru beignet-1.3.0/debian/changelog beignet-1.3.0/debian/changelog --- beignet-1.3.0/debian/changelog 2017-01-22 21:47:49.000000000 +0000 +++ beignet-1.3.0/debian/changelog 2017-02-21 22:45:18.000000000 +0000 @@ -1,3 +1,14 @@ +beignet (1.3.0-2) unstable; urgency=medium + + * Statically link to LLVM to allow installation together with + mesa-opencl-icd (workaround for #852746). + * Disable OpenCL 2.0 on i386, as it is likely to crash. + (Closes: #855651) + * Add missing build-dependencies on x32 to fix FTBFS. + * Fix broken link in documentation. + + -- Rebecca N. Palmer <rebecca_pal...@zoho.com> Tue, 21 Feb 2017 22:45:18 +0000 + beignet (1.3.0-1) unstable; urgency=medium * New upstream release. diff -Nru beignet-1.3.0/debian/control beignet-1.3.0/debian/control --- beignet-1.3.0/debian/control 2017-01-22 21:47:49.000000000 +0000 +++ beignet-1.3.0/debian/control 2017-02-21 22:45:18.000000000 +0000 @@ -14,9 +14,9 @@ clang-3.8, libclang-3.8-dev, llvm-3.8-dev, - clang-3.9 [amd64 i386], - libclang-3.9-dev [amd64 i386], - llvm-3.9-dev [amd64 i386], + clang-3.9 [amd64 i386 x32], + libclang-3.9-dev [amd64 i386 x32], + llvm-3.9-dev [amd64 i386 x32], ocl-icd-dev, ocl-icd-opencl-dev, opencl-headers (>= 2.0~), @@ -26,7 +26,10 @@ libxext-dev, libxfixes-dev, libx11-dev, - ikiwiki + ikiwiki, + libtinfo-dev, + libedit-dev, + zlib1g-dev Standards-Version: 3.9.8 Homepage: https://www.freedesktop.org/wiki/Software/Beignet/ Vcs-Git: https://anonscm.debian.org/git/pkg-opencl/beignet.git diff -Nru beignet-1.3.0/debian/patches/docs-broken-links.patch beignet-1.3.0/debian/patches/docs-broken-links.patch --- beignet-1.3.0/debian/patches/docs-broken-links.patch 2017-01-22 21:47:49.000000000 +0000 +++ beignet-1.3.0/debian/patches/docs-broken-links.patch 2017-02-21 22:45:18.000000000 +0000 @@ -40,7 +40,7 @@ +- [[V4l2 Buffer Sharing|howto/v4l2-buffer-sharing-howto]] +- [[Video Motion Estimation|howto/video-motion-estimation-howto]] +- [[Stand Alone Unit Test|howto/stand-alone-utest-howto]] -+- [[Android build|android-build-howto]] ++- [[Android build|howto/android-build-howto]] The wiki URL is as below: [http://www.freedesktop.org/wiki/Software/Beignet/](http://www.freedesktop.org/wiki/Software/Beignet/) diff -Nru beignet-1.3.0/debian/patches/series beignet-1.3.0/debian/patches/series --- beignet-1.3.0/debian/patches/series 2017-01-22 21:47:49.000000000 +0000 +++ beignet-1.3.0/debian/patches/series 2017-02-21 22:45:18.000000000 +0000 @@ -1,7 +1,6 @@ Debian-compliant-compiler-flags-handling.patch support-kfreebsd.patch reduce-notfound-output.patch -shared-llvm.patch update-docs.patch ship-test-tool.patch find-python35.patch @@ -11,3 +10,4 @@ add-appstream-metadata.patch spelling.patch opencl2-runtime-detection.patch +static-llvm.patch diff -Nru beignet-1.3.0/debian/patches/shared-llvm.patch beignet-1.3.0/debian/patches/shared-llvm.patch --- beignet-1.3.0/debian/patches/shared-llvm.patch 2017-01-22 21:47:49.000000000 +0000 +++ beignet-1.3.0/debian/patches/shared-llvm.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,33 +0,0 @@ -Description: Dynamically link to libllvm - -Trying to do libclang as well fails with many undefined symbols, -probably due to #698247 - -Author: Rebecca Palmer <rebecca_pal...@zoho.com> - ---- beignet.orig/CMake/FindLLVM.cmake -+++ beignet/CMake/FindLLVM.cmake -@@ -87,22 +87,7 @@ execute_process( - OUTPUT_STRIP_TRAILING_WHITESPACE - ) - --execute_process( -- COMMAND ${LLVM_CONFIG_EXECUTABLE} --libs -- OUTPUT_VARIABLE LLVM_MODULE_LIBS -- OUTPUT_STRIP_TRAILING_WHITESPACE --) -- --if (LLVM_VERSION_NODOT VERSION_GREATER 34) --execute_process( -- COMMAND ${LLVM_CONFIG_EXECUTABLE} --system-libs -- OUTPUT_VARIABLE LLVM_SYSTEM_LIBS_ORIG -- OUTPUT_STRIP_TRAILING_WHITESPACE --) --if (LLVM_SYSTEM_LIBS_ORIG) --string(REGEX REPLACE " *\n" "" LLVM_SYSTEM_LIBS ${LLVM_SYSTEM_LIBS_ORIG}) --endif (LLVM_SYSTEM_LIBS_ORIG) --endif (LLVM_VERSION_NODOT VERSION_GREATER 34) -+set(LLVM_MODULE_LIBS "-lLLVM-${LLVM_VERSION}") - - macro(add_one_lib name) - FIND_LIBRARY(CLANG_LIB diff -Nru beignet-1.3.0/debian/patches/static-llvm.patch beignet-1.3.0/debian/patches/static-llvm.patch --- beignet-1.3.0/debian/patches/static-llvm.patch 1970-01-01 01:00:00.000000000 +0100 +++ beignet-1.3.0/debian/patches/static-llvm.patch 2017-02-21 22:45:18.000000000 +0000 @@ -0,0 +1,36 @@ +Description: Statically link to libllvm + +When multiple ICDs are installed, libopencl1 needs to dlopen() them all +to find out which one works on the available hardware. If they are +dynamically linked, this leads to them sharing a libllvm, which has +enough global state that this is likely to error out. (This is a known +LLVM bug, https://bugs.llvm.org/show_bug.cgi?id=22952 , but currently +has no real fix.) + +Author: Rebecca N. Palmer <rebecca_pal...@zoho.com> +Bug: https://bugs.llvm.org/show_bug.cgi?id=30587 +Bug-Debian: https://bugs.debian.org/852746 + +--- beignet-1.3.0.orig/CMake/FindLLVM.cmake ++++ beignet-1.3.0/CMake/FindLLVM.cmake +@@ -87,11 +87,19 @@ execute_process( + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + ++if (LLVM_VERSION_NODOT VERSION_GREATER 38) ++execute_process( ++ COMMAND ${LLVM_CONFIG_EXECUTABLE} --libs --link-static ++ OUTPUT_VARIABLE LLVM_MODULE_LIBS ++ OUTPUT_STRIP_TRAILING_WHITESPACE ++) ++else (LLVM_VERSION_NODOT VERSION_GREATER 38) + execute_process( + COMMAND ${LLVM_CONFIG_EXECUTABLE} --libs + OUTPUT_VARIABLE LLVM_MODULE_LIBS + OUTPUT_STRIP_TRAILING_WHITESPACE + ) ++endif (LLVM_VERSION_NODOT VERSION_GREATER 38) + + if (LLVM_VERSION_NODOT VERSION_GREATER 34) + execute_process( + diff -Nru beignet-1.3.0/debian/rules beignet-1.3.0/debian/rules --- beignet-1.3.0/debian/rules 2017-01-22 21:47:49.000000000 +0000 +++ beignet-1.3.0/debian/rules 2017-02-21 22:45:18.000000000 +0000 @@ -19,7 +19,7 @@ LLVM_VERSION_DEFAULT = 3.9 LLVM_VERSION = $(or $(LLVM_VERSION_MESA),$(LLVM_VERSION_DEFAULT)) #this looks the wrong way round because --compare-versions uses success=0 and we need on=1 -CAN_ENABLE_OPENCL2 := $(shell dpkg --compare-versions $(LLVM_VERSION) lt 3.9 || dpkg --compare-versions `dpkg-query -f '$${Version}' -W libdrm-dev:$(DEB_HOST_ARCH)` lt 2.4.66 ; echo $$?) +CAN_ENABLE_OPENCL2 := $(if $(findstring amd64,$(DEB_HOST_ARCH)),$(shell dpkg --compare-versions $(LLVM_VERSION) lt 3.9 || dpkg --compare-versions `dpkg-query -f '$${Version}' -W libdrm-dev:$(DEB_HOST_ARCH)` lt 2.4.66 ; echo $$?),0) override_dh_auto_configure: $(RM) $(patsubst %,include/CL/%,$(SUPERFLUOUS))