[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#771938: marked as done (unblock: blender/2.72.b+dfsg0-3)



Your message dated Thu, 4 Dec 2014 09:51:58 +0100
with message-id <20141204085157.GA7975@ugent.be>
and subject line Re: Bug#771938: unblock: blender/2.72.b+dfsg0-3
has caused the Debian Bug report #771938,
regarding unblock: blender/2.72.b+dfsg0-3
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
771938: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=771938
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock

Please unblock package blender

This revision fixes #770447.

A previous revision has been uploaded to experimental suite in the
morning, fixing #770677. It was not my intention to fix any other bug
before the "fixes in severity" freeze. Sorry about the late update.

Attached, you'll find the debdiff against revision "-1" (actually in
testing). Obviously, it contains also the changes made with revision
"-2", uploaded to experimental in the meanwhile.

Thanks for considering.

unblock blender/2.72.b+dfsg0-3

-- System Information:
Debian Release: 8.0
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 3.16.0-4-amd64 (SMP w/1 CPU core)
Locale: LANG=C, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

-- 
Matteo F. Vescovi || Debian Developer
GnuPG KeyID: 4096R/0x8062398983B2CF7A
diff -Nru blender-2.72.b+dfsg0/debian/changelog blender-2.72.b+dfsg0/debian/changelog
--- blender-2.72.b+dfsg0/debian/changelog	2014-10-21 14:58:45.000000000 +0200
+++ blender-2.72.b+dfsg0/debian/changelog	2014-12-03 16:09:21.000000000 +0100
@@ -1,3 +1,20 @@
+blender (2.72.b+dfsg0-3) unstable; urgency=medium
+
+  * debian/patches/: patchset updated
+    - 0011-set_SSL_version_to_v23.patch added (Closes: #770447)
+
+ -- Matteo F. Vescovi <mfv@debian.org>  Wed, 03 Dec 2014 16:09:11 +0100
+
+blender (2.72.b+dfsg0-2) experimental; urgency=medium
+
+  * debian/control: Uploader e-mail address updated
+  * debian/patches/: patchset updated
+    - #0001 => #0007 refreshed
+    - 0010-fix_atomic_issue.patch added (Closes: #771042)
+    Thanks to Sergey Sharybin (upstream devel) for #0010.
+
+ -- Matteo F. Vescovi <mfv@debian.org>  Wed, 03 Dec 2014 10:52:10 +0100
+
 blender (2.72.b+dfsg0-1) unstable; urgency=medium
 
   * New upstream bugfix release
diff -Nru blender-2.72.b+dfsg0/debian/control blender-2.72.b+dfsg0/debian/control
--- blender-2.72.b+dfsg0/debian/control	2014-10-20 18:38:22.000000000 +0200
+++ blender-2.72.b+dfsg0/debian/control	2014-11-24 14:50:24.000000000 +0100
@@ -3,7 +3,7 @@
 Priority: optional
 Maintainer: Debian Multimedia Maintainers <pkg-multimedia-maintainers@lists.alioth.debian.org>
 Uploaders: Alessio Treglia <alessio@debian.org>,
-           Matteo F. Vescovi <mfvescovi@gmail.com>
+           Matteo F. Vescovi <mfv@debian.org>
 Build-Depends: autotools-dev,
                cmake,
                debhelper (>= 9),
diff -Nru blender-2.72.b+dfsg0/debian/copyright blender-2.72.b+dfsg0/debian/copyright
--- blender-2.72.b+dfsg0/debian/copyright	2014-10-20 18:38:22.000000000 +0200
+++ blender-2.72.b+dfsg0/debian/copyright	2014-12-03 08:32:07.000000000 +0100
@@ -99,7 +99,7 @@
            2005-2007, Florian Ernst <florian@debian.org>
            2007-2010, Cyril Brulebois <kibi@debian.org>
            2010-2012, Kevin Roy <kiniou@gmail.com>
-           2012-2013, Matteo F. Vescovi <mfv.debian@gmail.com>
+           2012-2014, Matteo F. Vescovi <mfv@debian.org>
 License: GPL-2+
 
 Files: extern/libopenjpeg/*
diff -Nru blender-2.72.b+dfsg0/debian/patches/0001-blender_thumbnailer.patch blender-2.72.b+dfsg0/debian/patches/0001-blender_thumbnailer.patch
--- blender-2.72.b+dfsg0/debian/patches/0001-blender_thumbnailer.patch	2014-10-20 18:38:22.000000000 +0200
+++ blender-2.72.b+dfsg0/debian/patches/0001-blender_thumbnailer.patch	2014-12-03 14:35:33.000000000 +0100
@@ -33,7 +33,7 @@
  # ##### BEGIN GPL LICENSE BLOCK #####
  #
 diff --git a/source/creator/CMakeLists.txt b/source/creator/CMakeLists.txt
-index 6ed87f6..498c99e 100644
+index 06c6d0d..80c48cf 100644
 --- a/source/creator/CMakeLists.txt
 +++ b/source/creator/CMakeLists.txt
 @@ -478,7 +478,7 @@ if(UNIX AND NOT APPLE)
diff -Nru blender-2.72.b+dfsg0/debian/patches/0002-install_in_usr_share.patch blender-2.72.b+dfsg0/debian/patches/0002-install_in_usr_share.patch
--- blender-2.72.b+dfsg0/debian/patches/0002-install_in_usr_share.patch	2014-10-20 18:38:22.000000000 +0200
+++ blender-2.72.b+dfsg0/debian/patches/0002-install_in_usr_share.patch	2014-12-03 14:35:33.000000000 +0100
@@ -9,7 +9,7 @@
  1 file changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/source/creator/CMakeLists.txt b/source/creator/CMakeLists.txt
-index 498c99e..9af7b21 100644
+index 80c48cf..d38cf25 100644
 --- a/source/creator/CMakeLists.txt
 +++ b/source/creator/CMakeLists.txt
 @@ -308,8 +308,8 @@ if(WITH_PYTHON)
diff -Nru blender-2.72.b+dfsg0/debian/patches/0003-filter_docs_to_install.patch blender-2.72.b+dfsg0/debian/patches/0003-filter_docs_to_install.patch
--- blender-2.72.b+dfsg0/debian/patches/0003-filter_docs_to_install.patch	2014-10-20 18:38:22.000000000 +0200
+++ blender-2.72.b+dfsg0/debian/patches/0003-filter_docs_to_install.patch	2014-12-03 14:35:33.000000000 +0100
@@ -8,7 +8,7 @@
  1 file changed, 2 deletions(-)
 
 diff --git a/source/creator/CMakeLists.txt b/source/creator/CMakeLists.txt
-index 9af7b21..2ae3bf2 100644
+index d38cf25..3cd9cdf 100644
 --- a/source/creator/CMakeLists.txt
 +++ b/source/creator/CMakeLists.txt
 @@ -238,8 +238,6 @@ else()
diff -Nru blender-2.72.b+dfsg0/debian/patches/0004-locales_directory_install.patch blender-2.72.b+dfsg0/debian/patches/0004-locales_directory_install.patch
--- blender-2.72.b+dfsg0/debian/patches/0004-locales_directory_install.patch	2014-10-20 18:38:22.000000000 +0200
+++ blender-2.72.b+dfsg0/debian/patches/0004-locales_directory_install.patch	2014-12-03 14:35:33.000000000 +0100
@@ -81,7 +81,7 @@
  			BLI_assert(0);
  			break;
 diff --git a/source/creator/CMakeLists.txt b/source/creator/CMakeLists.txt
-index 2ae3bf2..1501ac0 100644
+index 3cd9cdf..37791fe 100644
 --- a/source/creator/CMakeLists.txt
 +++ b/source/creator/CMakeLists.txt
 @@ -323,11 +323,11 @@ if(WITH_INTERNATIONAL)
diff -Nru blender-2.72.b+dfsg0/debian/patches/0005-update_manpages.patch blender-2.72.b+dfsg0/debian/patches/0005-update_manpages.patch
--- blender-2.72.b+dfsg0/debian/patches/0005-update_manpages.patch	2014-10-20 18:38:22.000000000 +0200
+++ blender-2.72.b+dfsg0/debian/patches/0005-update_manpages.patch	2014-12-03 14:35:33.000000000 +0100
@@ -148,7 +148,7 @@
 +.SH AUTHORS
 +This manpage was written for a Debian GNU/Linux by Kevin Roy <kiniou@gmail.com>.
 diff --git a/source/creator/CMakeLists.txt b/source/creator/CMakeLists.txt
-index 1501ac0..f5566ab 100644
+index 37791fe..27a9b62 100644
 --- a/source/creator/CMakeLists.txt
 +++ b/source/creator/CMakeLists.txt
 @@ -412,6 +412,7 @@ if(UNIX AND NOT APPLE)
diff -Nru blender-2.72.b+dfsg0/debian/patches/0006-do_not_use_version_number_in_system_path.patch blender-2.72.b+dfsg0/debian/patches/0006-do_not_use_version_number_in_system_path.patch
--- blender-2.72.b+dfsg0/debian/patches/0006-do_not_use_version_number_in_system_path.patch	2014-10-20 18:38:22.000000000 +0200
+++ blender-2.72.b+dfsg0/debian/patches/0006-do_not_use_version_number_in_system_path.patch	2014-12-03 14:35:33.000000000 +0100
@@ -30,7 +30,7 @@
  	if (static_path) {
  		static string system_path = string(static_path) + "/blender/" + versionstr;
 diff --git a/source/creator/CMakeLists.txt b/source/creator/CMakeLists.txt
-index f5566ab..40609da 100644
+index 27a9b62..5b9b390 100644
 --- a/source/creator/CMakeLists.txt
 +++ b/source/creator/CMakeLists.txt
 @@ -261,7 +261,7 @@ if(UNIX AND NOT APPLE)
diff -Nru blender-2.72.b+dfsg0/debian/patches/0007-look_for_droid_ttf_with_fontconfig.patch blender-2.72.b+dfsg0/debian/patches/0007-look_for_droid_ttf_with_fontconfig.patch
--- blender-2.72.b+dfsg0/debian/patches/0007-look_for_droid_ttf_with_fontconfig.patch	2014-10-20 18:38:22.000000000 +0200
+++ blender-2.72.b+dfsg0/debian/patches/0007-look_for_droid_ttf_with_fontconfig.patch	2014-12-03 14:35:33.000000000 +0100
@@ -184,7 +184,7 @@
   * Returns true if the file with the specified name can be written.
   * This implementation uses access(2), which makes the check according
 diff --git a/source/creator/CMakeLists.txt b/source/creator/CMakeLists.txt
-index 40609da..095732b 100644
+index 5b9b390..f9a451e 100644
 --- a/source/creator/CMakeLists.txt
 +++ b/source/creator/CMakeLists.txt
 @@ -320,12 +320,6 @@ endif()
diff -Nru blender-2.72.b+dfsg0/debian/patches/0010-fix_atomic_issue.patch blender-2.72.b+dfsg0/debian/patches/0010-fix_atomic_issue.patch
--- blender-2.72.b+dfsg0/debian/patches/0010-fix_atomic_issue.patch	1970-01-01 01:00:00.000000000 +0100
+++ blender-2.72.b+dfsg0/debian/patches/0010-fix_atomic_issue.patch	2014-12-03 14:35:33.000000000 +0100
@@ -0,0 +1,521 @@
+From: Sergey Sharybin <sergey.vfx@gmail.com>
+Date: Wed, 3 Dec 2014 10:48:03 +0100
+Subject: fix_atomic_issue
+
+Closes: #771042
+
+Signed-off-by: Matteo F. Vescovi <mfv@debian.org>
+---
+ intern/atomic/atomic_ops.h          | 202 +++++++++++++++++++++++++++++-------
+ intern/cycles/CMakeLists.txt        |   4 +
+ intern/cycles/SConscript            |   2 +-
+ intern/cycles/kernel/osl/SConscript |   1 +
+ intern/cycles/util/CMakeLists.txt   |   1 +
+ intern/cycles/util/util_atomic.h    |  33 ++++++
+ intern/cycles/util/util_stats.h     |   9 +-
+ 7 files changed, 210 insertions(+), 42 deletions(-)
+ create mode 100644 intern/cycles/util/util_atomic.h
+
+diff --git a/intern/atomic/atomic_ops.h b/intern/atomic/atomic_ops.h
+index 127552f..06a5c8d 100644
+--- a/intern/atomic/atomic_ops.h
++++ b/intern/atomic/atomic_ops.h
+@@ -34,6 +34,11 @@
+ #if defined (__APPLE__)
+ #  include <libkern/OSAtomic.h>
+ #elif defined(_MSC_VER)
++#  define NOGDI
++#  ifndef NOMINMAX
++#    define NOMINMAX
++#  endif
++#  define WIN32_LEAN_AND_MEAN
+ #  include <windows.h>
+ #elif defined(__arm__)
+ /* Attempt to fix compilation error on Debian armel kernel.
+@@ -79,37 +84,57 @@
+ ATOMIC_INLINE uint64_t
+ atomic_add_uint64(uint64_t *p, uint64_t x)
+ {
+-	return (__sync_add_and_fetch(p, x));
++	return __sync_add_and_fetch(p, x);
+ }
+ 
+ ATOMIC_INLINE uint64_t
+ atomic_sub_uint64(uint64_t *p, uint64_t x)
+ {
+-	return (__sync_sub_and_fetch(p, x));
++	return __sync_sub_and_fetch(p, x);
++}
++
++ATOMIC_INLINE uint64_t
++atomic_cas_uint64(uint64_t *v, uint64_t old, uint64_t _new)
++{
++	return __sync_val_compare_and_swap(v, old, _new);
+ }
+ #elif (defined(_MSC_VER))
+ ATOMIC_INLINE uint64_t
+ atomic_add_uint64(uint64_t *p, uint64_t x)
+ {
+-	return (InterlockedExchangeAdd64(p, x));
++	return InterlockedExchangeAdd64((int64_t *)p, (int64_t)x);
+ }
+ 
+ ATOMIC_INLINE uint64_t
+ atomic_sub_uint64(uint64_t *p, uint64_t x)
+ {
+-	return (InterlockedExchangeAdd64(p, -((int64_t)x)));
++	return InterlockedExchangeAdd64((int64_t *)p, -((int64_t)x));
++}
++
++ATOMIC_INLINE uint64_t
++atomic_cas_uint64(uint64_t *v, uint64_t old, uint64_t _new)
++{
++	return InterlockedCompareExchange64((int64_t *)v, _new, old);
+ }
+ #elif (defined(__APPLE__))
+ ATOMIC_INLINE uint64_t
+ atomic_add_uint64(uint64_t *p, uint64_t x)
+ {
+-	return (uint64_t)(OSAtomicAdd64((int64_t)x, (int64_t *)p));
++	return (uint64_t)OSAtomicAdd64((int64_t)x, (int64_t *)p);
+ }
+ 
+ ATOMIC_INLINE uint64_t
+ atomic_sub_uint64(uint64_t *p, uint64_t x)
+ {
+-	return (uint64_t)(OSAtomicAdd64(-((int64_t)x), (int64_t *)p));
++	return (uint64_t)OSAtomicAdd64(-((int64_t)x), (int64_t *)p);
++}
++
++ATOMIC_INLINE uint64_t
++atomic_cas_uint64(uint64_t *v, uint64_t old, uint64_t _new)
++{
++	uint64_t init_val = *v;
++	OSAtomicCompareAndSwap64((int64_t)old, (int64_t)_new, (int64_t *)v);
++	return init_val;
+ }
+ #  elif (defined(__amd64__) || defined(__x86_64__))
+ ATOMIC_INLINE uint64_t
+@@ -120,7 +145,7 @@ atomic_add_uint64(uint64_t *p, uint64_t x)
+ 	    : "+r" (x), "=m" (*p) /* Outputs. */
+ 	    : "m" (*p) /* Inputs. */
+ 	    );
+-	return (x);
++	return x;
+ }
+ 
+ ATOMIC_INLINE uint64_t
+@@ -132,8 +157,21 @@ atomic_sub_uint64(uint64_t *p, uint64_t x)
+ 	    : "+r" (x), "=m" (*p) /* Outputs. */
+ 	    : "m" (*p) /* Inputs. */
+ 	    );
+-	return (x);
++	return x;
++}
++
++ATOMIC_INLINE uint64_t
++atomic_cas_uint64(uint64_t *v, uint64_t old, uint64_t _new)
++{
++	uint64_t ret;
++	asm volatile (
++	    "lock; cmpxchgq %2,%1"
++	    : "=a" (ret), "+m" (*v)
++	    : "r" (_new), "0" (old)
++	    : "memory");
++	return ret;
+ }
++
+ #  elif (defined(JEMALLOC_ATOMIC9))
+ ATOMIC_INLINE uint64_t
+ atomic_add_uint64(uint64_t *p, uint64_t x)
+@@ -144,7 +182,7 @@ atomic_add_uint64(uint64_t *p, uint64_t x)
+ 	 */
+ 	assert(sizeof(uint64_t) == sizeof(unsigned long));
+ 
+-	return (atomic_fetchadd_long(p, (unsigned long)x) + x);
++	return atomic_fetchadd_long(p, (unsigned long)x) + x;
+ }
+ 
+ ATOMIC_INLINE uint64_t
+@@ -152,19 +190,33 @@ atomic_sub_uint64(uint64_t *p, uint64_t x)
+ {
+ 	assert(sizeof(uint64_t) == sizeof(unsigned long));
+ 
+-	return (atomic_fetchadd_long(p, (unsigned long)(-(long)x)) - x);
++	return atomic_fetchadd_long(p, (unsigned long)(-(long)x)) - x;
++}
++
++ATOMIC_INLINE uint64_t
++atomic_cas_uint32(uint64_t *v, uint64_t old, uint64_t _new)
++{
++	assert(sizeof(uint64_t) == sizeof(unsigned long));
++
++	return atomic_cmpset_long(v, old, _new);
+ }
+ #  elif (defined(JE_FORCE_SYNC_COMPARE_AND_SWAP_8))
+ ATOMIC_INLINE uint64_t
+ atomic_add_uint64(uint64_t *p, uint64_t x)
+ {
+-	return (__sync_add_and_fetch(p, x));
++	return __sync_add_and_fetch(p, x);
+ }
+ 
+ ATOMIC_INLINE uint64_t
+ atomic_sub_uint64(uint64_t *p, uint64_t x)
+ {
+-	return (__sync_sub_and_fetch(p, x));
++	return __sync_sub_and_fetch(p, x);
++}
++
++ATOMIC_INLINE uint64_t
++atomic_cas_uint32(uint64_t *v, uint64_t old, uint64_t _new)
++{
++	return __sync_val_compare_and_swap(v, old, _new);
+ }
+ #  else
+ #    error "Missing implementation for 64-bit atomic operations"
+@@ -177,37 +229,57 @@ atomic_sub_uint64(uint64_t *p, uint64_t x)
+ ATOMIC_INLINE uint32_t
+ atomic_add_uint32(uint32_t *p, uint32_t x)
+ {
+-	return (__sync_add_and_fetch(p, x));
++	return __sync_add_and_fetch(p, x);
+ }
+ 
+ ATOMIC_INLINE uint32_t
+ atomic_sub_uint32(uint32_t *p, uint32_t x)
+ {
+-	return (__sync_sub_and_fetch(p, x));
++	return __sync_sub_and_fetch(p, x);
++}
++
++ATOMIC_INLINE uint32_t
++atomic_cas_uint32(uint32_t *v, uint32_t old, uint32_t _new)
++{
++   return __sync_val_compare_and_swap(v, old, _new);
+ }
+ #elif (defined(_MSC_VER))
+ ATOMIC_INLINE uint32_t
+ atomic_add_uint32(uint32_t *p, uint32_t x)
+ {
+-	return (InterlockedExchangeAdd(p, x));
++	return InterlockedExchangeAdd(p, x);
+ }
+ 
+ ATOMIC_INLINE uint32_t
+ atomic_sub_uint32(uint32_t *p, uint32_t x)
+ {
+-	return (InterlockedExchangeAdd(p, -((int32_t)x)));
++	return InterlockedExchangeAdd(p, -((int32_t)x));
++}
++
++ATOMIC_INLINE uint32_t
++atomic_cas_uint32(uint32_t *v, uint32_t old, uint32_t _new)
++{
++	return InterlockedCompareExchange((long *)v, _new, old);
+ }
+ #elif (defined(__APPLE__))
+ ATOMIC_INLINE uint32_t
+ atomic_add_uint32(uint32_t *p, uint32_t x)
+ {
+-	return (uint32_t)(OSAtomicAdd32((int32_t)x, (int32_t *)p));
++	return (uint32_t)OSAtomicAdd32((int32_t)x, (int32_t *)p);
+ }
+ 
+ ATOMIC_INLINE uint32_t
+ atomic_sub_uint32(uint32_t *p, uint32_t x)
+ {
+-	return (uint32_t)(OSAtomicAdd32(-((int32_t)x), (int32_t *)p));
++	return (uint32_t)OSAtomicAdd32(-((int32_t)x), (int32_t *)p);
++}
++
++ATOMIC_INLINE uint32_t
++atomic_cas_uint32(uint32_t *v, uint32_t old, uint32_t _new)
++{
++	uint32_t init_val = *v;
++	OSAtomicCompareAndSwap32((int32_t)old, (int32_t)_new, (int32_t *)v);
++	return init_val;
+ }
+ #elif (defined(__i386__) || defined(__amd64__) || defined(__x86_64__))
+ ATOMIC_INLINE uint32_t
+@@ -218,7 +290,7 @@ atomic_add_uint32(uint32_t *p, uint32_t x)
+ 	    : "+r" (x), "=m" (*p) /* Outputs. */
+ 	    : "m" (*p) /* Inputs. */
+ 	    );
+-	return (x);
++	return x;
+ }
+ 
+ ATOMIC_INLINE uint32_t
+@@ -230,31 +302,55 @@ atomic_sub_uint32(uint32_t *p, uint32_t x)
+ 	    : "+r" (x), "=m" (*p) /* Outputs. */
+ 	    : "m" (*p) /* Inputs. */
+ 	    );
+-	return (x);
++	return x;
++}
++
++ATOMIC_INLINE uint32_t
++atomic_cas_uint32(uint32_t *v, uint32_t old, uint32_t _new)
++{
++	uint32_t ret;
++	asm volatile (
++	    "lock; cmpxchgl %2,%1"
++	    : "=a" (ret), "+m" (*v)
++	    : "r" (_new), "0" (old)
++	    : "memory");
++	return ret;
+ }
+ #elif (defined(JEMALLOC_ATOMIC9))
+ ATOMIC_INLINE uint32_t
+ atomic_add_uint32(uint32_t *p, uint32_t x)
+ {
+-	return (atomic_fetchadd_32(p, x) + x);
++	return atomic_fetchadd_32(p, x) + x;
+ }
+ 
+ ATOMIC_INLINE uint32_t
+ atomic_sub_uint32(uint32_t *p, uint32_t x)
+ {
+-	return (atomic_fetchadd_32(p, (uint32_t)(-(int32_t)x)) - x);
++	return atomic_fetchadd_32(p, (uint32_t)(-(int32_t)x)) - x;
++}
++
++ATOMIC_INLINE uint32_t
++atomic_cas_uint32(uint32_t *v, uint32_t old, uint32_t _new)
++{
++	return atomic_cmpset_32(v, old, _new);
+ }
+-#elif (defined(JE_FORCE_SYNC_COMPARE_AND_SWAP_4))
++#elif defined(JE_FORCE_SYNC_COMPARE_AND_SWAP_4)
+ ATOMIC_INLINE uint32_t
+ atomic_add_uint32(uint32_t *p, uint32_t x)
+ {
+-	return (__sync_add_and_fetch(p, x));
++	return __sync_add_and_fetch(p, x);
+ }
+ 
+ ATOMIC_INLINE uint32_t
+ atomic_sub_uint32(uint32_t *p, uint32_t x)
+ {
+-	return (__sync_sub_and_fetch(p, x));
++	return __sync_sub_and_fetch(p, x);
++}
++
++ATOMIC_INLINE uint32_t
++atomic_cas_uint32(uint32_t *v, uint32_t old, uint32_t _new)
++{
++	return __sync_val_compare_and_swap(v, old, _new);
+ }
+ #else
+ #  error "Missing implementation for 32-bit atomic operations"
+@@ -268,9 +364,9 @@ atomic_add_z(size_t *p, size_t x)
+ 	assert(sizeof(size_t) == 1 << LG_SIZEOF_PTR);
+ 
+ #if (LG_SIZEOF_PTR == 3)
+-	return ((size_t)atomic_add_uint64((uint64_t *)p, (uint64_t)x));
++	return (size_t)atomic_add_uint64((uint64_t *)p, (uint64_t)x);
+ #elif (LG_SIZEOF_PTR == 2)
+-	return ((size_t)atomic_add_uint32((uint32_t *)p, (uint32_t)x));
++	return (size_t)atomic_add_uint32((uint32_t *)p, (uint32_t)x);
+ #endif
+ }
+ 
+@@ -280,11 +376,27 @@ atomic_sub_z(size_t *p, size_t x)
+ 	assert(sizeof(size_t) == 1 << LG_SIZEOF_PTR);
+ 
+ #if (LG_SIZEOF_PTR == 3)
+-	return ((size_t)atomic_add_uint64((uint64_t *)p,
+-	    (uint64_t)-((int64_t)x)));
++	return (size_t)atomic_add_uint64((uint64_t *)p,
++	                                 (uint64_t)-((int64_t)x));
+ #elif (LG_SIZEOF_PTR == 2)
+-	return ((size_t)atomic_add_uint32((uint32_t *)p,
+-	    (uint32_t)-((int32_t)x)));
++	return (size_t)atomic_add_uint32((uint32_t *)p,
++	                                 (uint32_t)-((int32_t)x));
++#endif
++}
++
++ATOMIC_INLINE size_t
++atomic_cas_z(size_t *v, size_t old, size_t _new)
++{
++	assert(sizeof(size_t) == 1 << LG_SIZEOF_PTR);
++
++#if (LG_SIZEOF_PTR == 3)
++	return (size_t)atomic_cas_uint64((uint64_t *)v,
++	                                 (uint64_t)old,
++	                                 (uint64_t)_new);
++#elif (LG_SIZEOF_PTR == 2)
++	return (size_t)atomic_cas_uint32((uint32_t *)v,
++	                                 (uint32_t)old,
++	                                 (uint32_t)_new);
+ #endif
+ }
+ 
+@@ -296,9 +408,9 @@ atomic_add_u(unsigned *p, unsigned x)
+ 	assert(sizeof(unsigned) == 1 << LG_SIZEOF_INT);
+ 
+ #if (LG_SIZEOF_INT == 3)
+-	return ((unsigned)atomic_add_uint64((uint64_t *)p, (uint64_t)x));
++	return (unsigned)atomic_add_uint64((uint64_t *)p, (uint64_t)x);
+ #elif (LG_SIZEOF_INT == 2)
+-	return ((unsigned)atomic_add_uint32((uint32_t *)p, (uint32_t)x));
++	return (unsigned)atomic_add_uint32((uint32_t *)p, (uint32_t)x);
+ #endif
+ }
+ 
+@@ -308,11 +420,27 @@ atomic_sub_u(unsigned *p, unsigned x)
+ 	assert(sizeof(unsigned) == 1 << LG_SIZEOF_INT);
+ 
+ #if (LG_SIZEOF_INT == 3)
+-	return ((unsigned)atomic_add_uint64((uint64_t *)p,
+-	    (uint64_t)-((int64_t)x)));
++	return (unsigned)atomic_add_uint64((uint64_t *)p,
++	                                   (uint64_t)-((int64_t)x));
+ #elif (LG_SIZEOF_INT == 2)
+-	return ((unsigned)atomic_add_uint32((uint32_t *)p,
+-	    (uint32_t)-((int32_t)x)));
++	return (unsigned)atomic_add_uint32((uint32_t *)p,
++	                                   (uint32_t)-((int32_t)x));
++#endif
++}
++
++ATOMIC_INLINE unsigned
++atomic_cas_u(unsigned *v, unsigned old, unsigned _new)
++{
++	assert(sizeof(unsigned) == 1 << LG_SIZEOF_INT);
++
++#if (LG_SIZEOF_PTR == 3)
++	return (unsigned)atomic_cas_uint64((uint64_t *)v,
++	                                   (uint64_t)old,
++	                                   (uint64_t)_new);
++#elif (LG_SIZEOF_PTR == 2)
++	return (unsigned)atomic_cas_uint32((uint32_t *)v,
++	                                   (uint32_t)old,
++	                                   (uint32_t)_new);
+ #endif
+ }
+ 
+diff --git a/intern/cycles/CMakeLists.txt b/intern/cycles/CMakeLists.txt
+index a3f251d..2b64eac 100644
+--- a/intern/cycles/CMakeLists.txt
++++ b/intern/cycles/CMakeLists.txt
+@@ -139,6 +139,10 @@ include_directories(
+ 	${OPENEXR_INCLUDE_DIRS}
+ )
+ 
++# TODO(sergey): Adjust so standalone repository is also happy.
++include_directories(
++	../atomic
++)
+ 
+ # Warnings
+ if(CMAKE_COMPILER_IS_GNUCXX)
+diff --git a/intern/cycles/SConscript b/intern/cycles/SConscript
+index a6c947b..53278b7 100644
+--- a/intern/cycles/SConscript
++++ b/intern/cycles/SConscript
+@@ -60,7 +60,7 @@ if env['WITH_BF_CYCLES_OSL']:
+     incs.append(cycles['BF_OSL_INC'])
+ 
+ incs.extend('. bvh render device kernel kernel/osl kernel/svm util subd'.split())
+-incs.extend('#intern/guardedalloc #source/blender/makesrna #source/blender/makesdna #source/blender/blenlib'.split())
++incs.extend('#intern/guardedalloc #intern/atomic #source/blender/makesrna #source/blender/makesdna #source/blender/blenlib'.split())
+ incs.extend('#source/blender/blenloader ../../source/blender/makesrna/intern'.split())
+ incs.extend('#extern/glew/include #extern/clew/include #extern/cuew/include #intern/mikktspace'.split())
+ incs.append(cycles['BF_OIIO_INC'])
+diff --git a/intern/cycles/kernel/osl/SConscript b/intern/cycles/kernel/osl/SConscript
+index 4685bb7..e4329de 100644
+--- a/intern/cycles/kernel/osl/SConscript
++++ b/intern/cycles/kernel/osl/SConscript
+@@ -38,6 +38,7 @@ incs.append(env['BF_OIIO_INC'])
+ incs.append(env['BF_BOOST_INC'])
+ incs.append(env['BF_OSL_INC'])
+ incs.append(env['BF_OPENEXR_INC'].split())
++incs.append('#/intern/atomic')
+ 
+ defs.append('CCL_NAMESPACE_BEGIN=namespace ccl {')
+ defs.append('CCL_NAMESPACE_END=}')
+diff --git a/intern/cycles/util/CMakeLists.txt b/intern/cycles/util/CMakeLists.txt
+index d9b97a7..4caa1e1 100644
+--- a/intern/cycles/util/CMakeLists.txt
++++ b/intern/cycles/util/CMakeLists.txt
+@@ -30,6 +30,7 @@ endif()
+ set(SRC_HEADERS
+ 	util_algorithm.h
+ 	util_args.h
++	util_atomic.h
+ 	util_boundbox.h
+ 	util_cache.h
+ 	util_debug.h
+diff --git a/intern/cycles/util/util_atomic.h b/intern/cycles/util/util_atomic.h
+new file mode 100644
+index 0000000..1bbb0a8
+--- /dev/null
++++ b/intern/cycles/util/util_atomic.h
+@@ -0,0 +1,33 @@
++/*
++ * Copyright 2014 Blender Foundation
++ *
++ * Licensed under the Apache License, Version 2.0 (the "License");
++ * you may not use this file except in compliance with the License.
++ * You may obtain a copy of the License at
++ *
++ * http://www.apache.org/licenses/LICENSE-2.0
++ *
++ * Unless required by applicable law or agreed to in writing, software
++ * distributed under the License is distributed on an "AS IS" BASIS,
++ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++ * See the License for the specific language governing permissions and
++ * limitations under the License
++ */
++
++#ifndef __UTIL_ATOMIC_H__
++#define __UTIL_ATOMIC_H__
++
++/* Using atomic ops header from Blender. */
++#include "atomic_ops.h"
++
++ATOMIC_INLINE void atomic_update_max_z(size_t *maximum_value, size_t value)
++{
++	size_t prev_value = *maximum_value;
++	while (prev_value < value) {
++		if (atomic_cas_z(maximum_value, prev_value, value) != prev_value) {
++			break;
++		}
++	}
++}
++
++#endif /* __UTIL_ATOMIC_H__ */
+diff --git a/intern/cycles/util/util_stats.h b/intern/cycles/util/util_stats.h
+index 8758b82..fe6c162 100644
+--- a/intern/cycles/util/util_stats.h
++++ b/intern/cycles/util/util_stats.h
+@@ -17,6 +17,8 @@
+ #ifndef __UTIL_STATS_H__
+ #define __UTIL_STATS_H__
+ 
++#include "util_atomic.h"
++
+ CCL_NAMESPACE_BEGIN
+ 
+ class Stats {
+@@ -24,14 +26,13 @@ public:
+ 	Stats() : mem_used(0), mem_peak(0) {}
+ 
+ 	void mem_alloc(size_t size) {
+-		mem_used += size;
+-		if(mem_used > mem_peak)
+-			mem_peak = mem_used;
++		atomic_add_z(&mem_used, size);
++		atomic_update_max_z(&mem_peak, mem_used);
+ 	}
+ 
+ 	void mem_free(size_t size) {
+ 		assert(mem_used >= size);
+-		mem_used -= size;
++		atomic_sub_z(&mem_used, size);
+ 	}
+ 
+ 	size_t mem_used;
diff -Nru blender-2.72.b+dfsg0/debian/patches/0011-set_SSL_version_to_v23.patch blender-2.72.b+dfsg0/debian/patches/0011-set_SSL_version_to_v23.patch
--- blender-2.72.b+dfsg0/debian/patches/0011-set_SSL_version_to_v23.patch	1970-01-01 01:00:00.000000000 +0100
+++ blender-2.72.b+dfsg0/debian/patches/0011-set_SSL_version_to_v23.patch	2014-12-03 14:35:33.000000000 +0100
@@ -0,0 +1,22 @@
+From: "Matteo F. Vescovi" <mfv@debian.org>
+Date: Wed, 3 Dec 2014 14:34:55 +0100
+Subject: set_SSL_version_to_v23
+
+Closes: #770447
+---
+ release/scripts/addons/netrender/master.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/release/scripts/addons/netrender/master.py b/release/scripts/addons/netrender/master.py
+index 3c087e5..30f09a6 100644
+--- a/release/scripts/addons/netrender/master.py
++++ b/release/scripts/addons/netrender/master.py
+@@ -1158,7 +1158,7 @@ def runMaster(address, broadcast, clear, force, path, update_stats, test_break,u
+     httpd.stats = update_stats
+     if use_ssl:
+         import ssl
+-        httpd.socket=ssl.wrap_socket(httpd.socket,certfile=cert_path,server_side=True,keyfile=key_path,ciphers="ALL",ssl_version=ssl.PROTOCOL_SSLv3)
++        httpd.socket=ssl.wrap_socket(httpd.socket,certfile=cert_path,server_side=True,keyfile=key_path,ciphers="ALL",ssl_version=ssl.PROTOCOL_SSLv23)
+     if broadcast:
+         s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
+         s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
diff -Nru blender-2.72.b+dfsg0/debian/patches/series blender-2.72.b+dfsg0/debian/patches/series
--- blender-2.72.b+dfsg0/debian/patches/series	2014-10-20 18:38:22.000000000 +0200
+++ blender-2.72.b+dfsg0/debian/patches/series	2014-12-03 14:35:33.000000000 +0100
@@ -7,3 +7,5 @@
 0007-look_for_droid_ttf_with_fontconfig.patch
 0008-use_cuda_pointer_arithmetic_in_integers.patch
 0009-add_flag_disabling_SSE-SSE2_intrinsics.patch
+0010-fix_atomic_issue.patch
+0011-set_SSL_version_to_v23.patch

Attachment: signature.asc
Description: Digital signature


--- End Message ---
--- Begin Message ---
Hi,

On Thu, Dec 04, 2014 at 07:06:52AM +0100, Niels Thykier wrote:
> > unblock blender/2.72.b+dfsg0-3
> > 
> > [...]
> 
> Approved, please upload this to unstable and remove the "moreinfo" tag
> once it has been accepted.

It was uploaded. Unblocked.

Cheers,

Ivo

--- End Message ---

Reply to: