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))

Reply via email to