Bug#880803: python-kafka: please make the build reproducible
Chris Lamb
lamby at debian.org
Sat Nov 4 20:57:07 UTC 2017
Source: python-kafka
Version: 0.9.5-2
Severity: wishlist
Tags: patch
User: reproducible-builds at lists.alioth.debian.org
Usertags: randomness
X-Debbugs-Cc: reproducible-bugs at lists.alioth.debian.org
Hi,
Whilst working on the Reproducible Builds effort [0], we noticed
that python-kafka could not be built reproducibly.
This is because the code has an anonymous lambda which Sphinx
outputs with a memory reference.
Patch attached.
[0] https://reproducible-builds.org/
Regards,
--
,''`.
: :' : Chris Lamb
`. `'` lamby at debian.org / chris-lamb.co.uk
`-
-------------- next part --------------
--- a/debian/patches/reproducible-build.patch 1970-01-01 01:00:00.000000000 +0100
--- b/debian/patches/reproducible-build.patch 2017-11-04 20:50:27.052966969 +0000
@@ -0,0 +1,45 @@
+Description: Make the build reproducible
+Author: Chris Lamb <lamby at debian.org>
+Last-Update: 2017-11-04
+
+--- python-kafka-0.9.5.orig/docs/usage.rst
++++ python-kafka-0.9.5/docs/usage.rst
+@@ -152,7 +152,7 @@ messages (m) are namedtuples with attrib
+ bootstrap_servers=[],
+ socket_timeout_ms=30*1000,
+ auto_offset_reset='largest',
+- deserializer_class=lambda msg: msg,
++ deserializer_class=None,
+ auto_commit_enable=False,
+ auto_commit_interval_ms=60 * 1000,
+ consumer_timeout_ms=-1
+--- python-kafka-0.9.5.orig/kafka/consumer/kafka.py
++++ python-kafka-0.9.5/kafka/consumer/kafka.py
+@@ -32,7 +32,7 @@ DEFAULT_CONSUMER_CONFIG = {
+ 'fetch_min_bytes': 1,
+ 'fetch_wait_max_ms': 100,
+ 'refresh_leader_backoff_ms': 200,
+- 'deserializer_class': lambda msg: msg,
++ 'deserializer_class': None,
+ 'auto_commit_enable': False,
+ 'auto_commit_interval_ms': 60 * 1000,
+ 'auto_commit_interval_messages': None,
+@@ -93,7 +93,7 @@ class KafkaConsumer(object):
+ ofther value will raise the exception. Defaults to 'largest'.
+ deserializer_class (callable, optional): Any callable that takes a
+ raw message value and returns a deserialized value. Defaults to
+- lambda msg: msg.
++ None (ie. lambda msg: msg).
+ auto_commit_enable (bool, optional): Enabling auto-commit will cause
+ the KafkaConsumer to periodically commit offsets without an
+ explicit call to commit(). Defaults to False.
+@@ -119,6 +119,9 @@ class KafkaConsumer(object):
+ raise KafkaConfigurationError('Unknown configuration key(s): ' +
+ str(list(configs.keys())))
+
++ if self._config['deserializer_class']:
++ self._config['deserializer_class'] = lambda msg: msg
++
+ if self._config['auto_commit_enable']:
+ if not self._config['group_id']:
+ raise KafkaConfigurationError(
--- a/debian/patches/series 2017-11-04 20:40:18.110496358 +0000
--- b/debian/patches/series 2017-11-04 20:50:25.696961459 +0000
@@ -1 +1,2 @@
do-not-use-sphinxcontrib.napoleon-theme.patch
+reproducible-build.patch
More information about the Reproducible-bugs
mailing list