--- /dev/null
+protobuf (2.5.0-9) unstable; urgency=medium
+
+ * Upload to unstable.
+ * Officially take over primary maintainership of the package, per Iustin.
+
+ -- Robert S. Edmonds <edmonds@debian.org> Wed, 05 Feb 2014 11:37:11 -0500
+
+protobuf (2.5.0-8) experimental; urgency=medium
+
+ * Revert debian/patches/fix-ftbfs-upstream-issue-488.patch to use the
+ version of this patch from 2.5.0-5.
+ * Build-Depend on g++ >= 4:4.7 to ensure that the *default* compiler is new
+ enough to support the gcc __atomic*() built-ins.
+
+ -- Robert S. Edmonds <edmonds@debian.org> Mon, 03 Feb 2014 19:42:23 -0500
+
+protobuf (2.5.0-7) unstable; urgency=medium
+
+ * Upload to unstable.
+ * Closes: #736801.
+
+ -- Robert S. Edmonds <edmonds@debian.org> Wed, 29 Jan 2014 14:27:42 -0500
+
+protobuf (2.5.0-6) experimental; urgency=medium
+
+ * Use a different approach to fixing the FTBFS caused by upstream bug #488.
+ * Revert the Build-Depends on a specific gcc/g++ version.
+
+ -- Robert S. Edmonds <edmonds@debian.org> Sun, 26 Jan 2014 23:56:47 -0500
+
+protobuf (2.5.0-5) unstable; urgency=medium
+
+ * Upload to unstable.
+ * Note that the experimental C++ backend in python-protobuf has been
+ disabled.
+
+ -- Robert S. Edmonds <edmonds@debian.org> Sat, 25 Jan 2014 16:57:43 -0500
+
+protobuf (2.5.0-4) experimental; urgency=medium
+
+ * Rewrite the platform detection logic in .../platform-macros.h to be more
+ tolerant of all Debian architectures.
+ * Switch from autotools-dev to dh-autoreconf.
+
+ -- Robert S. Edmonds <edmonds@debian.org> Sun, 12 Jan 2014 12:49:50 -0500
+
+protobuf (2.5.0-3) experimental; urgency=medium
+
+ * Fix FTBFS on mips, due to missing detection of that architecture in
+ .../platform-macros.h.
+ * Fix FTBFS on ia64, powerpc, and sparc, where the default gcc version is
+ too old to compile the new __atomic*() intrinsics, by Build-Depending on
+ gcc-4.8, g++-4.8.
+
+ -- Robert S. Edmonds <edmonds@debian.org> Sat, 11 Jan 2014 17:21:17 -0500
+
+protobuf (2.5.0-2) experimental; urgency=low
+
+ * Fix FTBFS on "unsupported" architectures due to upstream issue 488:
+ - https://code.google.com/p/protobuf/issues/detail?id=488
+ Patch from Stanislav Ochotnicky (Red Hat).
+
+ -- Robert S. Edmonds <edmonds@debian.org> Sat, 19 Oct 2013 10:42:29 -0400
+
+protobuf (2.5.0-1) experimental; urgency=low
+
+ [ Micah Anderson ]
+ * New upstream version. (Closes: #704731.)
+ * Update debian/watch.
+ * Refresh patches.
+
+ [ Colin Watson ]
+ * Use the autotools-dev dh addon to update config.guess/config.sub for
+ arm64. (Closes: #725976.)
+
+ [ Steve Langasek ]
+ * Don't recommend protobuf-compiler from the bindings, it's not used and
+ this doesn't need to be pulled in at runtime. (Closes: #703628.)
+ * Mark protobuf-compiler Multi-Arch: foreign; the output of this command
+ is architecture-independent source, we don't need the version of the
+ compiler to match the target arch.
+ * Bump to debhelper compat 9, so that our libs get installed to the
+ multiarch locations.
+ * Mark the library packages Multi-Arch: same.
+ * Fix debian/rules to support cross-building of the python bindings.
+ * Build-depend on libpython-dev, not python-dev, for cross-build
+ compatibility.
+ * (Closes: #726083.)
+
+ [ Robert S. Edmonds ]
+ * Upload to experimental.
+ * Bump ABI version from 7 to 8.
+ * Bump Standards-Version to 3.9.4.
+ * Convert from python-support to dh-python.
+ * Drop support for python2.6.
+ * python-protobuf: switch back to the pure Python implementation, as
+ upstream appears to no longer be maintaining the current C++ based Python
+ binding. See the following upstream issues for details:
+ - https://code.google.com/p/protobuf/issues/detail?id=434
+ - https://code.google.com/p/protobuf/issues/detail?id=503
+
+ -- Robert S. Edmonds <edmonds@debian.org> Sat, 12 Oct 2013 18:32:37 -0400
+
+protobuf (2.4.1-3) unstable; urgency=low
+
+ * Add patch from Steven Chamberlain fixing build failures of the
+ embedded gtest copy on kFreeBSD (Closes: #675837)
+
+ -- Iustin Pop <iustin@debian.org> Sun, 17 Jun 2012 18:29:37 +0200
+
+protobuf (2.4.1-2) unstable; urgency=low
+
+ [ Matthias Klose ]
+ * Work around build failure with GCC 4.7. Closes: #672094.
+
+ [ Jakub Adam ]
+ * Install libprotobuf-java without reference to parent POM
+ (Closes: #648672)
+
+ [ Iustin Pop ]
+ * libprotobuf-java:
+ - remove dependency on default-jre (Closes: #653115)
+ - revert the jar name change introduced in 2.4.1, due to the use of
+ maven helper (Closes: #648850)
+ * Bump priority of packages from extra to optional (Closes: #664744)
+ * Enable hardening flags (Closes: #673675)
+
+ -- Iustin Pop <iustin@debian.org> Thu, 24 May 2012 01:27:26 +0200
+
+protobuf (2.4.1-1) unstable; urgency=low
+
+ [ Thomas Koch ]
+ * remove ant-wrapper, which worked around #491074
+ * patch: revert_upstream_issue_388_about_rpath
+ * publish maven artifacts (Closes: #644263)
+
+ [ Iustin Pop ]
+ * Fix (again) the pkg-test script
+ * Update section based on override disparities
+ * Imported Upstream version 2.4.1
+ * Modify debian/rules directly not via patches
+ * Drop .la files per ReleaseGoals/LAFileRemoval
+
+ -- Iustin Pop <iustin@debian.org> Tue, 08 Nov 2011 07:56:58 +0900
+
+protobuf (2.4.0a-2) unstable; urgency=low
+
+ * Re-upload to unstable
+
+ -- Iustin Pop <iustin@debian.org> Sat, 16 Apr 2011 20:18:28 +0200
+
+protobuf (2.4.0a-1) experimental; urgency=low
+
+ * New upstream version, uploading to experimental due to Python changes
+ * Fix "Missing depends on zlib1g-dev", thanks Fernando Tarlá Cardoso Lemos
+ (Closes: #608670)
+ * Re-enable parallel builds, but only for the C++ sources/tests
+ * Enable the C++-based implementation for the Python bindings
+
+ -- Iustin Pop <iustin@debian.org> Wed, 16 Feb 2011 21:24:42 +0100
+
+protobuf (2.3.0-4) unstable; urgency=low
+
+ * Thanks to Peter Palfrader for finding the two bugs below:
+ * Disable setuptools auto-download in case of wrong dependencies, and
+ fix the current dependency version (Closes: #593269)
+ * Fix the python cleanup rule, by always running the individual steps
+ (Closes: #593268)
+
+ -- Iustin Pop <iustin@debian.org> Wed, 18 Aug 2010 22:54:42 +0200
+
+protobuf (2.3.0-3) unstable; urgency=low
+
+ * Acknowledge NMU (thanks Giuseppe!)
+ * Update packaging to comply with policy 3.9.1 (.la files are still
+ shipped though)
+ * Updated watch file to account for code.google.com brokeness
+
+ -- Iustin Pop <iustin@debian.org> Sat, 31 Jul 2010 17:47:24 -0400
+
+protobuf (2.3.0-2.1) unstable; urgency=high
+
+ * Non-maintainer upload.
+ * Build-depends on on default-jdk and set JAVA_HOME to
+ /usr/lib/jvm/default-java (Closes: #587732)
+
+ -- Giuseppe Iuculano <iuculano@debian.org> Sat, 10 Jul 2010 18:37:19 +0200
+
+protobuf (2.3.0-2) unstable; urgency=low
+
+ * Fix "FTBFS on armel (test-suite failure)" by disabling optimizations
+ of a troublesome function (idea taken from #580334) (Closes: #572923)
+ * Standards version 3.8.4 (no changes needed)
+ * Update my address to the @debian.org one
+
+ -- Iustin Pop <iustin@debian.org> Mon, 24 May 2010 18:04:17 +0200
+
+protobuf (2.3.0-1) unstable; urgency=low
+
+ * New upstream version.
+ * Split out libprotobuf-lite from the libprotobuf package.
+ * Add CFLAGS specific to sh4; closes: #560322.
+
+ -- Robert S. Edmonds <edmonds@debian.org> Mon, 25 Jan 2010 18:14:49 -0500
+
+protobuf (2.2.0a-1) unstable; urgency=low
+
+ * Acknowledge NMUs (thanks Dirk!)
+ * Convert the source format to 3.0 (quilt)
+
+ -- Iustin Pop <iusty@k1024.org> Sun, 06 Dec 2009 16:27:40 +0100
+
+protobuf (2.2.0a-0.1) unstable; urgency=low
+
+ * Non-maintainer upload
+ * New upstream release made this evening correction major SONAME
+ * debian/control: Updated major version to 5 (Closes: #556563)
+ * debian/rules: Updated two links to use libproto*5
+ * debian/libprotobuf5.shlibs: Added
+ * debian/libprotoc5.shlibs: Added
+
+ -- Dirk Eddelbuettel <edd@debian.org> Wed, 18 Nov 2009 21:47:41 -0600
+
+protobuf (2.2.0-0.1) unstable; urgency=low
+
+ * Non-maintainer upload coordinated with maintainer
+ * New upstream release (Closes: #551931)
+
+ * debian/libprotobuf-install: Added 'usr/lib/pkgconfig/*' to have
+ pkg-config support files installed
+
+ * debian/control: Added (= ${binary:Version}) to Depends for -dev
+ packages for tighter link to underlying libraries [lintian warning]
+ * debian/control: Updated StandardVersion: to 3.8.3
+
+ * debian/control: Major version not incremented as upstream kept it at 4
+
+ -- Dirk Eddelbuettel <edd@debian.org> Sat, 14 Nov 2009 06:44:22 -0600
+
+protobuf (2.1.0-1) unstable; urgency=low
+
+ * New Upstream Version
+ * Fix "Please split out libprotoc.so.N out of the libprotobufN
+ package" (Closes: #524087)
+ * Update Standards Version to 3.8.2 (no changes needed, sections are already
+ correct and the rest doesn't affect this package)
+
+ -- Iustin Pop <iusty@k1024.org> Wed, 24 Jun 2009 00:19:03 +0200
+
+protobuf (2.0.3-2.2) unstable; urgency=medium
+
+ * Non-maintainer upload.
+ * Fix FTBFS from -2.1: don't fail when we can't clean up the java build,
+ such as when openjdk isn't installed.
+ * Disable parallel builds, because libtool is made of fail (if binary-arch
+ and build-indep run concurrently, we relink a library while it's being
+ used; that doesn't work so well).
+
+ -- Julien Cristau <jcristau@debian.org> Tue, 02 Jun 2009 16:19:00 +0200
+
+protobuf (2.0.3-2.1) unstable; urgency=medium
+
+ * Non-maintainer upload.
+ * Medium urgency for RC bugfix.
+ * Fix building of test suites on ia64: use __clone2() instead of clone(),
+ which doesn't exist there (closes: #530606). Patch by Sune Vuorela.
+ * Only build the java and python bindings when building the arch:all
+ packages. Move openjdk to Build-Depends-Indep. This should allow
+ building on hppa, which doesn't have openjdk. Based on a patch by Sune
+ Vuorela (but any bugs are mine).
+
+ -- Julien Cristau <jcristau@debian.org> Tue, 02 Jun 2009 14:45:32 +0200
+
+protobuf (2.0.3-2) unstable; urgency=low
+
+ * Fix the binary-arch/binary-common interaction by only calling
+ dh_pysupport when we are in arch-independent mode (DH_OPTIONS=-i)
+ * Remove the extraneous conflicts/replace with libprotobuf2/libprotobuf0
+ from libprotobuf3, as they share no files (and have different SONAMES)
+ (Closes: #523992)
+
+ -- Iustin Pop <iusty@k1024.org> Tue, 14 Apr 2009 09:35:39 +0200
+
+protobuf (2.0.3-1) unstable; urgency=low
+
+ [ Ehren Kret ]
+ * New Upstream Version (Closes: #522470)
+ * Applied patch proposed in bug#503807 provided by
+ Torsten Werner <twerner@debian.org> (Closes: #503807)
+
+ [ Iustin Pop ]
+ * Policy version 3.8.1, added handling for the nocheck DEB_BUILD_OPTIONS flag
+ * Fix lintian warnings (copyright-with-old-dh-make-debian-copyright,
+ wrong-section-according-to-package-name)
+ * The new upstream version build successfully (and passes the
+ unittest) with gcc-snapshort, so marking bug#505411 as fixed
+ (Closes: #505411)
+
+ -- Iustin Pop <iusty@k1024.org> Thu, 09 Apr 2009 15:01:36 +0200
+
+protobuf (2.0.2-1) unstable; urgency=low
+
+ * New Upstream Version (Closes: #501349)
+
+ -- Iustin Pop <iusty@k1024.org> Tue, 07 Oct 2008 21:51:47 +0200
+
+protobuf (2.0.1-2) unstable; urgency=low
+
+ * Fix the java .jar symlink (Closes: #501490)
+
+ -- Iustin Pop <iusty@k1024.org> Sat, 04 Oct 2008 17:05:01 +0200
+
+protobuf (2.0.1-1) unstable; urgency=low
+
+ * New Upstream Version (Closes: #499925)
+
+ -- Iustin Pop <iusty@k1024.org> Sun, 28 Sep 2008 18:14:16 +0200
+
+protobuf (2.0.0~b-3) unstable; urgency=low
+
+ * Remove DM-Upload-Allowed for sponsoring
+
+ -- Iustin Pop <iusty@k1024.org> Sun, 03 Aug 2008 11:01:44 +0200
+
+protobuf (2.0.0~b-2) unstable; urgency=low
+
+ * Mark the different license for some of the files, and fix the long
+ description (it contained UTF-8 chars), both thanks to Vincent Bernat
+ <bernat@debian.org>
+ * Cleanup debian/rules (removed commented out debhelper lines)
+ * Improve the java build process, as suggested by Matthew Johnson
+ <mjj29@debian.org>
+
+ -- Iustin Pop <iusty@k1024.org> Sat, 02 Aug 2008 14:12:59 +0200
+
+protobuf (2.0.0~b-1) unstable; urgency=low
+
+ * Initial release (Closes: #489842)
+
+ -- Iustin Pop <iusty@k1024.org> Tue, 08 Jul 2008 20:03:51 +0200
--- /dev/null
+Source: protobuf
+Section: devel
+Priority: optional
+Maintainer: Robert S. Edmonds <edmonds@debian.org>
+Uploaders: Iustin Pop <iustin@debian.org>
+Build-Depends: dpkg-dev (>=1.16.1~), debhelper (>= 9),
+ g++ (>= 4:4.7),
+ python (>= 2.6.6-3~),
+ python-setuptools (>= 0.6c9), xmlto, ant, zlib1g-dev,
+ default-jdk, unzip, dh-python,
+ maven-repo-helper, dh-autoreconf
+Standards-Version: 3.9.5
+Homepage: https://code.google.com/p/protobuf/
+Vcs-Browser: http://anonscm.debian.org/gitweb/?p=collab-maint/protobuf.git
+Vcs-Git: git://anonscm.debian.org/collab-maint/protobuf.git
+X-Python-Version: >= 2.7
+
+Package: libprotobuf8
+Architecture: any
+Multi-Arch: same
+Section: libs
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: protocol buffers C++ library
+ Protocol buffers are a flexible, efficient, automated mechanism for
+ serializing structured data - similar to XML, but smaller, faster, and
+ simpler. You define how you want your data to be structured once, then you can
+ use special generated source code to easily write and read your structured
+ data to and from a variety of data streams and using a variety of languages.
+ You can even update your data structure without breaking deployed programs
+ that are compiled against the "old" format.
+ .
+ Google uses Protocol Buffers for almost all of its internal RPC protocols and
+ file formats.
+ .
+ This package contains the runtime library needed for C++ applications.
+
+Package: libprotobuf-lite8
+Architecture: any
+Multi-Arch: same
+Section: libs
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: protocol buffers C++ library (lite version)
+ Protocol buffers are a flexible, efficient, automated mechanism for
+ serializing structured data - similar to XML, but smaller, faster, and
+ simpler. You define how you want your data to be structured once, then you can
+ use special generated source code to easily write and read your structured
+ data to and from a variety of data streams and using a variety of languages.
+ You can even update your data structure without breaking deployed programs
+ that are compiled against the "old" format.
+ .
+ Google uses Protocol Buffers for almost all of its internal RPC protocols and
+ file formats.
+ .
+ This package contains the runtime library needed for C++ applications whose
+ message definitions have the "lite runtime" optimization setting.
+
+Package: libprotobuf-dev
+Architecture: any
+Multi-Arch: same
+Section: libdevel
+Depends: ${shlibs:Depends}, ${misc:Depends}, zlib1g-dev,
+ libprotobuf8 (= ${binary:Version}), libprotobuf-lite8 (= ${binary:Version})
+Description: protocol buffers C++ library (development files)
+ Protocol buffers are a flexible, efficient, automated mechanism for
+ serializing structured data - similar to XML, but smaller, faster, and
+ simpler. You define how you want your data to be structured once, then you can
+ use special generated source code to easily write and read your structured
+ data to and from a variety of data streams and using a variety of languages.
+ You can even update your data structure without breaking deployed programs
+ that are compiled against the "old" format.
+ .
+ Google uses Protocol Buffers for almost all of its internal RPC protocols and
+ file formats.
+ .
+ This package contains the development headers and static libraries needed for
+ writing C++ applications.
+
+Package: libprotoc8
+Architecture: any
+Multi-Arch: same
+Section: libs
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: protocol buffers compiler library
+ Protocol buffers are a flexible, efficient, automated mechanism for
+ serializing structured data - similar to XML, but smaller, faster, and
+ simpler. You define how you want your data to be structured once, then you can
+ use special generated source code to easily write and read your structured
+ data to and from a variety of data streams and using a variety of languages.
+ You can even update your data structure without breaking deployed programs
+ that are compiled against the "old" format.
+ .
+ Google uses Protocol Buffers for almost all of its internal RPC protocols and
+ file formats.
+ .
+ This package contains the runtime library needed for the protocol buffer
+ compiler.
+
+Package: libprotoc-dev
+Architecture: any
+Multi-Arch: same
+Section: libdevel
+Depends: ${shlibs:Depends}, ${misc:Depends},
+ libprotoc8 (= ${binary:Version}), libprotobuf-dev (= ${binary:Version})
+Replaces: libprotobuf-dev (<< 2.1.0)
+Breaks: libprotobuf-dev (<< 2.1.0)
+Description: protocol buffers compiler library (development files)
+ Protocol buffers are a flexible, efficient, automated mechanism for
+ serializing structured data - similar to XML, but smaller, faster, and
+ simpler. You define how you want your data to be structured once, then you can
+ use special generated source code to easily write and read your structured
+ data to and from a variety of data streams and using a variety of languages.
+ You can even update your data structure without breaking deployed programs
+ that are compiled against the "old" format.
+ .
+ Google uses Protocol Buffers for almost all of its internal RPC protocols and
+ file formats.
+ .
+ This package contains the development headers and static library needed for
+ writing protobuf compilers.
+
+Package: protobuf-compiler
+Architecture: any
+Multi-Arch: foreign
+Depends: ${shlibs:Depends}, ${misc:Depends}, libprotoc8 (= ${binary:Version})
+Description: compiler for protocol buffer definition files
+ Protocol buffers are a flexible, efficient, automated mechanism for
+ serializing structured data - similar to XML, but smaller, faster, and
+ simpler. You define how you want your data to be structured once, then you can
+ use special generated source code to easily write and read your structured
+ data to and from a variety of data streams and using a variety of languages.
+ You can even update your data structure without breaking deployed programs
+ that are compiled against the "old" format.
+ .
+ Google uses Protocol Buffers for almost all of its internal RPC protocols and
+ file formats.
+ .
+ This package contains the protocol buffer compiler that is used for
+ translating from .proto files (containing the definitions) to the language
+ binding for the supported languages.
+
+Package: python-protobuf
+Architecture: all
+Section: python
+Depends: ${python:Depends}, ${misc:Depends}
+Description: Python bindings for protocol buffers
+ Protocol buffers are a flexible, efficient, automated mechanism for
+ serializing structured data - similar to XML, but smaller, faster, and
+ simpler. You define how you want your data to be structured once, then you can
+ use special generated source code to easily write and read your structured
+ data to and from a variety of data streams and using a variety of languages.
+ You can even update your data structure without breaking deployed programs
+ that are compiled against the "old" format.
+ .
+ Google uses Protocol Buffers for almost all of its internal RPC protocols and
+ file formats.
+ .
+ This package contains the Python bindings for the protocol buffers. You will
+ need the protoc tool (in the protobuf-compiler package) to compile your
+ definition to Python classes, and then the modules in this package will allow
+ you to use those classes in your programs.
+
+Package: libprotobuf-java
+Architecture: all
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Section: java
+Description: Java bindings for protocol buffers
+ Protocol buffers are a flexible, efficient, automated mechanism for
+ serializing structured data - similar to XML, but smaller, faster, and
+ simpler. You define how you want your data to be structured once, then you can
+ use special generated source code to easily write and read your structured
+ data to and from a variety of data streams and using a variety of languages.
+ You can even update your data structure without breaking deployed programs
+ that are compiled against the "old" format.
+ .
+ Google uses Protocol Buffers for almost all of its internal RPC protocols and
+ file formats.
+ .
+ This package contains the Java bindings for the protocol buffers. You will
+ need the protoc tool (in the protobuf-compiler package) to compile your
+ definition to Java classes, and then the modules in this package will allow
+ you to use those classes in your programs.
--- /dev/null
+This package was debianized by Iustin Pop <iusty@k1024.org> on
+Mon, 07 Jul 2008 17:48:21 +0200.
+
+It was downloaded from http://code.google.com/p/protobuf/
+
+Upstream Authors: Google Inc, more specifically:
+
+Original Protocol Buffers design and implementation:
+ Sanjay Ghemawat <sanjay@google.com>
+ Jeff Dean <jeff@google.com>
+ Daniel Dulitz <daniel@google.com>
+ Craig Silverstein
+ Paul Haahr <haahr@google.com>
+ Corey Anderson <corin@google.com>
+ (and many others)
+
+Proto2 C++ and Java primary author:
+ Kenton Varda <kenton@google.com>
+
+Proto2 Python primary authors:
+ Will Robinson <robinson@google.com>
+ Petar Petrov <petar@google.com>
+
+Large code contributions:
+ Joseph Schorr <jschorr@google.com>
+ Wenbo Zhu <wenboz@google.com>
+
+Large quantity of code reviews:
+ Scott Bruce <sbruce@google.com>
+ Frank Yellin
+ Neal Norwitz <nnorwitz@google.com>
+ Jeffrey Yasskin <jyasskin@google.com>
+ Ambrose Feinstein <ambrose@google.com>
+
+Documentation:
+ Lisa Carey <lcarey@google.com>
+
+Maven packaging:
+ Gregory Kick <gak@google.com>
+
+Copyright:
+
+ Copyright (C) 2008 Google Inc.
+
+License (new style BSD, with Google Inc. as copyright holder):
+
+ Copyright 2008, Google Inc.
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are
+ met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following disclaimer
+ in the documentation and/or other materials provided with the
+ distribution.
+ * Neither the name of Google Inc. nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ Code generated by the Protocol Buffer compiler is owned by the owner
+ of the input file used when generating it. This code is not
+ standalone and requires a support library to be linked with it. This
+ support library is itself covered by the above license.
+
+The files `python/mox.py' and `python/stubout.py' are licensed under a
+different license (Apache License 2.0):
+
+ 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.
+
+
+On Debian systems, the complete text of the Apache License can be found in
+`/usr/share/common-licenses/Apache-2.0'.
+
+The Debian packaging is:
+
+ Copyright (C) 2008, 2009, 2010 Iustin Pop <iusty@k1024.org>
+
+and is licensed under the GPL version 3,
+see `/usr/share/common-licenses/GPL-3'.
--- /dev/null
+[buildpackage]
+pristine-tar = True
+[import-orig]
+pristine-tar = True
--- /dev/null
+<project name="protobuf-java" default="jar" basedir="..">
+ <property name="srcdir" value="src" />
+ <property name="javadir" value="java" />
+ <property name="javasrcdir" value="${javadir}/src" />
+ <property name="targetdir" value="${javadir}/target" />
+ <property name="classesdir" value="${targetdir}/classes" />
+ <property name="generateddir" value="${targetdir}/generated-sources" />
+
+ <target name="clean">
+ <delete dir="${targetdir}"/>
+ </target>
+
+ <target name="generate">
+ <mkdir dir="${generateddir}" />
+ <echo message="${srcdir}" />
+ <exec executable="${srcdir}/protoc">
+ <arg value="--java_out=${generateddir}" />
+ <arg value="--proto_path=${srcdir}" />
+ <arg value="${srcdir}/google/protobuf/descriptor.proto" />
+ </exec>
+ </target>
+
+ <target name="compile" depends="generate">
+ <mkdir dir="${classesdir}"/>
+ <javac srcdir="${generateddir}:${javasrcdir}/main/java"
+ destdir="${classesdir}" source="1.5" target="1.5"
+ includeantruntime="false" />
+ </target>
+
+ <target name="jar" depends="compile">
+ <jar destfile="${targetdir}/protobuf.jar" basedir="${classesdir}" />
+ </target>
+</project>
--- /dev/null
+usr/share/doc
--- /dev/null
+usr/lib/*/libprotobuf.a
+usr/lib/*/libprotobuf-lite.a
+usr/lib/*/libprotobuf.so
+usr/lib/*/libprotobuf-lite.so
+usr/lib/*/libprotobuf.la
+usr/lib/*/libprotobuf-lite.la
+usr/lib/*/pkgconfig/*
+usr/include
--- /dev/null
+java/pom.xml --artifact=java/target/protobuf.jar --java-lib --no-parent --usj-name=protobuf
--- /dev/null
+usr/lib/*/libprotobuf-lite.so.*
--- /dev/null
+libprotobuf-lite 8 libprotobuf-lite8
--- /dev/null
+usr/lib/*/libprotobuf.so.*
--- /dev/null
+libprotobuf 8 libprotobuf8
--- /dev/null
+usr/share/doc
--- /dev/null
+usr/lib/*/libprotoc.a
+usr/lib/*/libprotoc.so
+usr/lib/*/libprotoc.la
+usr/include/google/protobuf/compiler
--- /dev/null
+usr/lib/*/libprotoc*.so.*
--- /dev/null
+libprotoc 8 libprotoc8
--- /dev/null
+Description: disable optimization of a given function on arm (bug in gcc
+ 4.4, which creates unittest failures for 64-bit operations)
+Author: Iustin Pop <iustin@debian.org>
+--- a/src/google/protobuf/wire_format_lite.h
++++ b/src/google/protobuf/wire_format_lite.h
+@@ -222,7 +222,11 @@
+ static uint32 ZigZagEncode32(int32 n);
+ static int32 ZigZagDecode32(uint32 n);
+ static uint64 ZigZagEncode64(int64 n);
+- static int64 ZigZagDecode64(uint64 n);
++ static int64 ZigZagDecode64(uint64 n)
++#ifdef __arm__
++ __attribute__((__optimize__(0)))
++#endif
++ ;
+
+ // =================================================================
+ // Methods for reading/writing individual field. The implementations
--- /dev/null
+Description: Disable automatic setuptools download
+ For Debian builds, we must use the packaged setuptools, and
+ if that is not available, fail hard instead of downloading
+ and installing from the internet the needed version
+Author: Iustin Pop <iustin@debian.org>
+Bug-Debian: http://bugs.debian.org/593269
+Forwarded: not-needed
+Last-Update: 2010-08-18
+--- a/python/ez_setup.py
++++ b/python/ez_setup.py
+@@ -99,9 +99,10 @@
+ """
+ was_imported = 'pkg_resources' in sys.modules or 'setuptools' in sys.modules
+ def do_download():
+- egg = download_setuptools(version, download_base, to_dir, download_delay)
+- sys.path.insert(0, egg)
+- import setuptools; setuptools.bootstrap_install_from = egg
++ print >>sys.stderr, (
++ "The required version of setuptools (>=%s) is not available, and\n"
++ "can't be installed during Debian package builds.") % version
++ sys.exit(2)
+ try:
+ import pkg_resources
+ except ImportError:
--- /dev/null
+Description: fix GCC 4.7 build on 'other' platforms like GNU/kFreeBSD
+ Assume that all platforms in the 'other' category will have unistd.h;
+ as of GCC 4.7 they are going to have to include it.
+Author: Steven Chamberlain <steven@pyro.eu.org>
+
+Index: protobuf/gtest/include/gtest/internal/gtest-port.h
+===================================================================
+--- protobuf.orig/gtest/include/gtest/internal/gtest-port.h 2013-08-13 17:03:10.932794167 -0400
++++ protobuf/gtest/include/gtest/internal/gtest-port.h 2013-08-13 17:03:10.932794167 -0400
+@@ -325,6 +325,9 @@
+
+ #else
+
++// Assume other platforms have unistd.h
++#include <unistd.h> // NOLINT
++
+ // <regex.h> may not be available on this platform. Use our own
+ // simple regex implementation instead.
+ # define GTEST_USES_SIMPLE_RE 1
--- /dev/null
+From 65f7f19291a387dd14baf5bc8e4af3fb665881e8 Mon Sep 17 00:00:00 2001
+From: "Robert S. Edmonds" <edmonds@debian.org>
+Date: Sun, 12 Jan 2014 12:01:27 -0500
+Subject: [PATCH] Add generic GCC >= 4.7 support for atomic operations
+
+This is useful for architectures where no specialized code has been
+written.
+
+Author: Stanislav Ochotnicky <sochotnicky@redhat.com>
+Bug: https://code.google.com/p/protobuf/issues/detail?id=488
+
+[edmonds@debian.org: This squashes the two patches submitted to the
+upstream bug tracker and rewrites the architecture detection logic in
+.../platform_macros.h. The original logic was quite fragile and would
+emit a #error on architectures that were not explicitly detected, as the
+upstream protobuf release lacks a generic atomic implementation. With
+gcc >= 4.7 and the generic atomic implementation by Stanislav Ochotnicky
+we only need to be able to tell 64-bit vs. 32-bit in order to set
+GOOGLE_PROTOBUF_ARCH_64_BIT correctly (in fact,
+GOOGLE_PROTOBUF_ARCH_32_BIT is not even used in the protobuf code base;
+likely this header file has been copied from some internal Google source
+tree), and we only need to be able to detect the specific architectures
+where protobuf has a more specific atomic implementation (i.e., amd64,
+i386, armel/armhf, mips/mipsel). It should not be necessary to add
+additional architecture detection logic to .../platform_macros.h for
+other Debian architectures, as we should fall back to the generic atomic
+implementation. Theoretically, since we are willing to Build-Depend on
+gcc >= 4.7 we might be able to use the same generic gcc implementation
+across all architectures and do away with the architecture-specific
+implementations entirely, but that would be a larger and more intrusive
+patch.]
+---
+ src/Makefile.am | 1 +
+ src/google/protobuf/stubs/atomicops.h | 2 +-
+ .../stubs/atomicops_internals_generic_gcc.h | 139 +++++++++++++++++++++
+ src/google/protobuf/stubs/platform_macros.h | 42 +++----
+ 4 files changed, 158 insertions(+), 26 deletions(-)
+ create mode 100644 src/google/protobuf/stubs/atomicops_internals_generic_gcc.h
+
+diff --git a/src/Makefile.am b/src/Makefile.am
+index df733d9..6f5c21d 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -42,6 +42,7 @@ nobase_include_HEADERS = \
+ google/protobuf/stubs/atomicops_internals_arm_gcc.h \
+ google/protobuf/stubs/atomicops_internals_arm_qnx.h \
+ google/protobuf/stubs/atomicops_internals_atomicword_compat.h \
++ google/protobuf/stubs/atomicops_internals_generic_gcc.h \
+ google/protobuf/stubs/atomicops_internals_macosx.h \
+ google/protobuf/stubs/atomicops_internals_mips_gcc.h \
+ google/protobuf/stubs/atomicops_internals_pnacl.h \
+diff --git a/src/google/protobuf/stubs/atomicops.h b/src/google/protobuf/stubs/atomicops.h
+index b8581fa..883b125 100644
+--- a/src/google/protobuf/stubs/atomicops.h
++++ b/src/google/protobuf/stubs/atomicops.h
+@@ -185,7 +185,7 @@ GOOGLE_PROTOBUF_ATOMICOPS_ERROR
+ #elif defined(__pnacl__)
+ #include <google/protobuf/stubs/atomicops_internals_pnacl.h>
+ #else
+-GOOGLE_PROTOBUF_ATOMICOPS_ERROR
++#include <google/protobuf/stubs/atomicops_internals_generic_gcc.h>
+ #endif
+
+ // Unknown.
+diff --git a/src/google/protobuf/stubs/atomicops_internals_generic_gcc.h b/src/google/protobuf/stubs/atomicops_internals_generic_gcc.h
+new file mode 100644
+index 0000000..3fc2a9b
+--- /dev/null
++++ b/src/google/protobuf/stubs/atomicops_internals_generic_gcc.h
+@@ -0,0 +1,139 @@
++// Protocol Buffers - Google's data interchange format
++// Copyright 2013 Red Hat Inc. All rights reserved.
++// http://code.google.com/p/protobuf/
++//
++// Redistribution and use in source and binary forms, with or without
++// modification, are permitted provided that the following conditions are
++// met:
++//
++// * Redistributions of source code must retain the above copyright
++// notice, this list of conditions and the following disclaimer.
++// * Redistributions in binary form must reproduce the above
++// copyright notice, this list of conditions and the following disclaimer
++// in the documentation and/or other materials provided with the
++// distribution.
++// * Neither the name of Red Hat Inc. nor the names of its
++// contributors may be used to endorse or promote products derived from
++// this software without specific prior written permission.
++//
++// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
++// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
++// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
++// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
++// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
++// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
++// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
++// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++
++// This file is an internal atomic implementation, use atomicops.h instead.
++
++#ifndef GOOGLE_PROTOBUF_ATOMICOPS_INTERNALS_GENERIC_GCC_H_
++#define GOOGLE_PROTOBUF_ATOMICOPS_INTERNALS_GENERIC_GCC_H_
++
++namespace google {
++namespace protobuf {
++namespace internal {
++
++inline Atomic32 NoBarrier_CompareAndSwap(volatile Atomic32* ptr,
++ Atomic32 old_value,
++ Atomic32 new_value) {
++ __atomic_compare_exchange_n(ptr, &old_value, new_value, true,
++ __ATOMIC_RELAXED, __ATOMIC_RELAXED);
++ return old_value;
++}
++
++inline Atomic32 NoBarrier_AtomicExchange(volatile Atomic32* ptr,
++ Atomic32 new_value) {
++ return __atomic_exchange_n(ptr, new_value, __ATOMIC_RELAXED);
++}
++
++inline Atomic32 NoBarrier_AtomicIncrement(volatile Atomic32* ptr,
++ Atomic32 increment) {
++ return __atomic_add_fetch(ptr, increment, __ATOMIC_RELAXED);
++}
++
++inline Atomic32 Barrier_AtomicIncrement(volatile Atomic32* ptr,
++ Atomic32 increment) {
++ return __atomic_add_fetch(ptr, increment, __ATOMIC_SEQ_CST);
++}
++
++inline Atomic32 Acquire_CompareAndSwap(volatile Atomic32* ptr,
++ Atomic32 old_value,
++ Atomic32 new_value) {
++ __atomic_compare_exchange(ptr, &old_value, &new_value, true,
++ __ATOMIC_ACQUIRE, __ATOMIC_ACQUIRE);
++ return old_value;
++}
++
++inline Atomic32 Release_CompareAndSwap(volatile Atomic32* ptr,
++ Atomic32 old_value,
++ Atomic32 new_value) {
++ __atomic_compare_exchange_n(ptr, &old_value, new_value, true,
++ __ATOMIC_RELEASE, __ATOMIC_ACQUIRE);
++ return old_value;
++}
++
++inline void NoBarrier_Store(volatile Atomic32* ptr, Atomic32 value) {
++ __atomic_store_n(ptr, value, __ATOMIC_RELAXED);
++}
++
++inline void MemoryBarrier() {
++ __sync_synchronize();
++}
++
++inline void Acquire_Store(volatile Atomic32* ptr, Atomic32 value) {
++ __atomic_store_n(ptr, value, __ATOMIC_ACQUIRE);
++}
++
++inline void Release_Store(volatile Atomic32* ptr, Atomic32 value) {
++ __atomic_store_n(ptr, value, __ATOMIC_RELEASE);
++}
++
++inline Atomic32 NoBarrier_Load(volatile const Atomic32* ptr) {
++ return __atomic_load_n(ptr, __ATOMIC_RELAXED);
++}
++
++inline Atomic32 Acquire_Load(volatile const Atomic32* ptr) {
++ return __atomic_load_n(ptr, __ATOMIC_ACQUIRE);
++}
++
++inline Atomic32 Release_Load(volatile const Atomic32* ptr) {
++ return __atomic_load_n(ptr, __ATOMIC_RELEASE);
++}
++
++#ifdef __LP64__
++
++inline void Release_Store(volatile Atomic64* ptr, Atomic64 value) {
++ __atomic_store_n(ptr, value, __ATOMIC_RELEASE);
++}
++
++inline Atomic64 Acquire_Load(volatile const Atomic64* ptr) {
++ return __atomic_load_n(ptr, __ATOMIC_ACQUIRE);
++}
++
++inline Atomic64 Acquire_CompareAndSwap(volatile Atomic64* ptr,
++ Atomic64 old_value,
++ Atomic64 new_value) {
++ __atomic_compare_exchange_n(ptr, &old_value, new_value, true,
++ __ATOMIC_ACQUIRE, __ATOMIC_ACQUIRE);
++ return old_value;
++}
++
++inline Atomic64 NoBarrier_CompareAndSwap(volatile Atomic64* ptr,
++ Atomic64 old_value,
++ Atomic64 new_value) {
++ __atomic_compare_exchange_n(ptr, &old_value, new_value, true,
++ __ATOMIC_RELAXED, __ATOMIC_RELAXED);
++ return old_value;
++}
++
++#endif // defined(__LP64__)
++
++} // namespace internal
++} // namespace protobuf
++} // namespace google
++
++#endif // GOOGLE_PROTOBUF_ATOMICOPS_INTERNALS_GENERIC_GCC_H_
+diff --git a/src/google/protobuf/stubs/platform_macros.h b/src/google/protobuf/stubs/platform_macros.h
+index b1df60e..c724a61 100644
+--- a/src/google/protobuf/stubs/platform_macros.h
++++ b/src/google/protobuf/stubs/platform_macros.h
+@@ -37,34 +37,26 @@
+ // http://msdn.microsoft.com/en-us/library/b0084kay.aspx
+ // http://www.agner.org/optimize/calling_conventions.pdf
+ // or with gcc, run: "echo | gcc -E -dM -"
+-#if defined(_M_X64) || defined(__x86_64__)
+-#define GOOGLE_PROTOBUF_ARCH_X64 1
+-#define GOOGLE_PROTOBUF_ARCH_64_BIT 1
+-#elif defined(_M_IX86) || defined(__i386__)
+-#define GOOGLE_PROTOBUF_ARCH_IA32 1
+-#define GOOGLE_PROTOBUF_ARCH_32_BIT 1
+-#elif defined(__QNX__)
+-#define GOOGLE_PROTOBUF_ARCH_ARM_QNX 1
+-#define GOOGLE_PROTOBUF_ARCH_32_BIT 1
+-#elif defined(__ARMEL__)
+-#define GOOGLE_PROTOBUF_ARCH_ARM 1
+-#define GOOGLE_PROTOBUF_ARCH_32_BIT 1
+-#elif defined(__MIPSEL__)
+-#define GOOGLE_PROTOBUF_ARCH_MIPS 1
+-#define GOOGLE_PROTOBUF_ARCH_32_BIT 1
+-#elif defined(__pnacl__)
+-#define GOOGLE_PROTOBUF_ARCH_32_BIT 1
+-#elif defined(__ppc__)
+-#define GOOGLE_PROTOBUF_ARCH_PPC 1
+-#define GOOGLE_PROTOBUF_ARCH_32_BIT 1
++
++#if defined(__GNUC__)
++# if __LP64__
++# define GOOGLE_PROTOBUF_ARCH_64_BIT 1
++# else
++# define GOOGLE_PROTOBUF_ARCH_32_BIT 1
++# endif
+ #else
+-#error Host architecture was not detected as supported by protobuf
++# error Host architecture was not detected as supported by protobuf
+ #endif
+
+-#if defined(__APPLE__)
+-#define GOOGLE_PROTOBUF_OS_APPLE
+-#elif defined(__native_client__)
+-#define GOOGLE_PROTOBUF_OS_NACL
++#if defined(__x86_64__)
++# define GOOGLE_PROTOBUF_ARCH_X64 1
++#elif defined(__i386__)
++# define GOOGLE_PROTOBUF_ARCH_IA32 1
++#elif defined(__ARMEL__)
++# define GOOGLE_PROTOBUF_ARCH_ARM 1
++#elif defined(__mips__) || defined(__MIPSEL__)
++# define GOOGLE_PROTOBUF_ARCH_MIPS 1
++/* Else we fallback to generic GCC implementation in atomicops.h */
+ #endif
+
+ #endif // GOOGLE_PROTOBUF_PLATFORM_MACROS_H_
+--
+1.9.rc1
+
--- /dev/null
+Description: workaround issue 271 upstream
+Author: Thomas Koch <thomas@koch.ro
+Bug: http://code.google.com/p/protobuf/issues/detail?id=271
+Last-Update: 2011-11-07
+Index: protobuf/python/README.txt
+===================================================================
+--- protobuf.orig/python/README.txt 2013-08-13 17:00:57.056444999 -0400
++++ protobuf/python/README.txt 2013-08-13 17:00:57.052445109 -0400
+@@ -64,9 +64,9 @@
+ $ python setup.py install
+
+ This step may require superuser privileges.
+- NOTE: To use C++ implementation, you need to install C++ protobuf runtime
+- library of the same version and export the environment variable before this
+- step. See the "C++ Implementation" section below for more details.
++ NOTE: To use C++ implementation, you need to export the environment variable
++ before this step. See the "C++ Implementation" section below for more
++ details.
+
+ Usage
+ =====
+@@ -84,10 +84,7 @@
+ The C++ implementation for Python messages is built as a Python extension to
+ improve the overall protobuf Python performance.
+
+-To use the C++ implementation, you need to:
+-1) Install the C++ protobuf runtime library, please see instructions in the
+- parent directory.
+-2) Export an environment variable:
++To use the C++ implementation, export an environment variable:
+
+ $ export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=cpp
+
+Index: protobuf/python/setup.py
+===================================================================
+--- protobuf.orig/python/setup.py 2013-08-13 17:00:57.056444999 -0400
++++ protobuf/python/setup.py 2013-08-13 17:00:57.052445109 -0400
+@@ -152,8 +152,10 @@
+ [ "google/protobuf/pyext/python_descriptor.cc",
+ "google/protobuf/pyext/python_protobuf.cc",
+ "google/protobuf/pyext/python-proto2.cc" ],
+- include_dirs = [ "." ],
+- libraries = [ "protobuf" ]))
++ include_dirs = [ "../src", "." ],
++ libraries = [ "protobuf" ],
++# runtime_library_dirs = [ "../src/.libs" ],
++ library_dirs = [ "../src/.libs" ]))
+
+ setup(name = 'protobuf',
+ version = '2.5.0',
--- /dev/null
+# comment to keep empty file in the diff.gz
+disable-setuptools-download.diff
+arm_optimization.diff
+revert_upstream_issue_388_about_rpath.diff
+fix-ftbfs-gcc4.7-kfreebsd.patch
+fix-ftbfs-upstream-issue-488.patch
--- /dev/null
+#!/bin/sh
+
+# Script to automate running the provided example programs to test all
+# language binding (cpp, python, java)
+
+# Needs to be run from the directory containing the newly-built deb's
+
+set -e
+
+test -f protobuf-compiler_*.deb || \
+ { echo "Cannot find protobuf-compiler deb file, exiting" 1>&2; exit 1; }
+
+echo "*** Installing dependencies (hardcoded list)"
+
+apt-get install -y openjdk-6-jdk python python-support pkg-config zlib1g-dev
+
+echo "*** Installing packages"
+
+dpkg -i *.deb
+
+cd /usr/share/doc/protobuf-compiler/examples
+
+export CLASSPATH=/usr/share/java/protobuf.jar
+
+echo "*** Building example programs"
+
+make
+
+TEST_FILE=`mktemp`
+echo "Test file is $TEST_FILE"
+
+echo "*** Adding via cpp"
+./add_person_cpp $TEST_FILE << EOF
+1
+Person One
+
+
+EOF
+
+echo "*** Adding via python"
+
+./add_person_python $TEST_FILE << EOF
+2
+Person Two
+two@example.net
+
+EOF
+
+echo "*** Adding via java"
+
+./add_person_java $TEST_FILE << EOF
+2
+Person Two
+
+555-1234
+work
+
+EOF
+
+
+
+for kind in cpp python java; do
+ echo "*** Listing via $kind"
+ ./list_people_$kind $TEST_FILE
+done
+
+rm $TEST_FILE
--- /dev/null
+CONTRIBUTORS.txt
+README.txt
+editors
+examples
--- /dev/null
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+
+<!--
+
+`xsltproc -nonet \
+ -param man.charmap.use.subset "0" \
+ -param make.year.ranges "1" \
+ -param make.single.year.ranges "1" \
+ /usr/share/xml/docbook/stylesheet/nwalsh/manpages/docbook.xsl \
+ manpage.xml'
+
+A manual page <package>.<section> will be generated. You may view the
+manual page with: nroff -man <package>.<section> | less'. A typical entry
+in a Makefile or Makefile.am is:
+
+DB2MAN = /usr/share/sgml/docbook/stylesheet/xsl/nwalsh/manpages/docbook.xsl
+XP = xsltproc -nonet -param man.charmap.use.subset "0"
+
+manpage.1: manpage.xml
+ $(XP) $(DB2MAN) $<
+
+The xsltproc binary is found in the xsltproc package. The XSL files are in
+docbook-xsl. A description of the parameters you can use can be found in the
+docbook-xsl-doc-* packages. Please remember that if you create the nroff
+version in one of the debian/rules file targets (such as build), you will need
+to include xsltproc and docbook-xsl in your Build-Depends control field.
+Alternatively use the xmlto command/package. That will also automatically
+pull in xsltproc and docbook-xsl.
+
+Notes for using docbook2x: docbook2x-man does not automatically create the
+AUTHOR(S) and COPYRIGHT sections. In this case, please add them manually as
+<refsect1> ... </refsect1>.
+
+To disable the automatic creation of the AUTHOR(S) and COPYRIGHT sections
+read /usr/share/doc/docbook-xsl/doc/manpages/authors.html. This file can be
+found in the docbook-xsl-doc-html package.
+
+Validation can be done using: `xmllint -noout -valid manpage.xml`
+
+General documentation about man-pages and man-page-formatting:
+man(1), man(7), http://www.tldp.org/HOWTO/Man-Page/
+
+-->
+
+ <!-- Fill in your name for FIRSTNAME and SURNAME. -->
+ <!ENTITY dhfirstname "Iustin">
+ <!ENTITY dhsurname "Pop">
+ <!-- dhusername could also be set to "&firstname; &surname;". -->
+ <!ENTITY dhusername "&dhfirstname; &dhsurname;">
+ <!ENTITY dhemail "iusty@k1024.org">
+ <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
+ allowed: see man(7), man(1) and
+ http://www.tldp.org/HOWTO/Man-Page/q2.html. -->
+ <!ENTITY dhsection "1">
+ <!-- TITLE should be something like "User commands" or similar (see
+ http://www.tldp.org/HOWTO/Man-Page/q2.html). -->
+ <!ENTITY dhtitle "protocol buffer compiler">
+ <!ENTITY dhucpackage "protobuf">
+ <!ENTITY dhpackage "protoc">
+]>
+
+<refentry>
+ <refentryinfo>
+ <title>&dhtitle;</title>
+ <productname>&dhucpackage;</productname>
+ <authorgroup>
+ <author>
+ <firstname>&dhfirstname;</firstname>
+ <surname>&dhsurname;</surname>
+ <contrib>Wrote this manpage for the Debian system.</contrib>
+ <address>
+ <email>&dhemail;</email>
+ </address>
+ </author>
+ </authorgroup>
+ <copyright>
+ <year>2007</year>
+ <holder>&dhusername;</holder>
+ </copyright>
+ <legalnotice>
+ <para>This manual page was written for the Debian system
+ (but may be used by others).</para>
+ <para>Permission is granted to copy, distribute and/or modify this
+ document under the terms of the GNU General Public License,
+ Version 2 or (at your option) any later version published by
+ the Free Software Foundation.</para>
+ <para>On Debian systems, the complete text of the GNU General Public
+ License can be found in
+ <filename>/usr/share/common-licenses/GPL</filename>.</para>
+ </legalnotice>
+ <date>2008-10-04</date>
+ </refentryinfo>
+ <refmeta>
+ <refentrytitle>&dhpackage;</refentrytitle>
+ <manvolnum>&dhsection;</manvolnum>
+ <refmiscinfo class="version">2.0.2</refmiscinfo>
+ </refmeta>
+ <refnamediv>
+ <refname>&dhpackage;</refname>
+ <refpurpose>compile protocol buffer description files</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <cmdsynopsis>
+ <command>&dhpackage;</command>
+ <!-- These are several examples, how syntaxes could look -->
+ <arg choice="opt"><option>--cpp_out=<replaceable>OUT_DIR</replaceable></option></arg>
+ <arg choice="opt"><option>--java_out=<replaceable>OUT_DIR</replaceable></option></arg>
+ <arg choice="opt"><option>--python_out=<replaceable>OUT_DIR</replaceable></option></arg>
+
+ <arg choice="opt">
+ <group choice="plain">
+ <arg choice="plain"><option>-I<replaceable>PATH</replaceable></option></arg>
+ <arg choice="plain"><option>--proto-path=<replaceable>PATH</replaceable></option></arg>
+ </group>
+ </arg>
+ <arg choice="plain"><replaceable>PROTO_FILE</replaceable></arg>
+ </cmdsynopsis>
+ <!-- Normally the help and version options make the programs stop
+ right after outputting the requested information. -->
+ <cmdsynopsis>
+ <command>&dhpackage;</command>
+ <group choice="req">
+ <arg choice="plain"><option>-h</option></arg>
+ <arg choice="plain"><option>--help</option></arg>
+ </group>
+ </cmdsynopsis>
+ <cmdsynopsis>
+ <command>&dhpackage;</command>
+ <arg choice="plain"><option>--version</option></arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+ <refsect1 id="description">
+ <title>DESCRIPTION</title>
+
+ <para><command>&dhpackage;</command> is a compiler for protocol
+ buffers definitions files. It can can generate C++, Java and
+ Python source code for the classes defined in
+ <replaceable>PROTO_FILE</replaceable>.</para>
+
+ </refsect1>
+
+ <refsect1 id="options">
+ <title>OPTIONS</title>
+ <variablelist>
+ <!-- Use the variablelist.term.separator and the
+ variablelist.term.break.after parameters to
+ control the term elements. -->
+ <varlistentry>
+ <term><option>-I<replaceable>PATH</replaceable></option></term>
+ <term><option>--proto_path=<replaceable>PATH</replaceable></option></term>
+ <listitem>
+ <para>Specify the directory in which to search for imports.
+ May be specified multiple times; directories will be
+ searched in order. If not given, the current working
+ directory is used.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--cpp_out=<replaceable>OUT_DIR</replaceable></option></term>
+ <listitem>
+ <simpara>Enable generation of C++ bindings and store them in
+ <replaceable>OUT_DIR</replaceable>.</simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--java_out=<replaceable>OUT_DIR</replaceable></option></term>
+ <listitem>
+ <simpara>Enable generation of Java bindings and store them
+ in <replaceable>OUT_DIR</replaceable>.</simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--python_out=<replaceable>OUT_DIR</replaceable></option></term>
+ <listitem>
+ <simpara>Enable generation of Python bindings and store them
+ in <replaceable>OUT_DIR</replaceable>.</simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>-h</option></term>
+ <term><option>--help</option></term>
+ <listitem>
+ <para>Show summary of options.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--version</option></term>
+ <listitem>
+ <para>Show version of program.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>Note that at least one of the <option>--cpp_out</option>,
+ <option>--java_out</option> and <option>--python_out</option>
+ options must be given (otherwise the program has nothing to
+ do). It's also possible to specify more than one.</para>
+
+ </refsect1>
+ <refsect1 id="bugs">
+ <!-- Or use this section to tell about upstream BTS. -->
+ <title>BUGS</title>
+
+ <para>The program currently exits with code 255 for all errors,
+ which makes it hard to differentiante from scripts the actual
+ error.</para>
+
+ <para>The upstreams <acronym>BTS</acronym> can be found at <ulink
+ url="http://code.google.com/p/protobuf/issues/list"/>.</para>
+
+ </refsect1>
+ <refsect1 id="see_also">
+ <title>SEE ALSO</title>
+
+ <para>More documentation about protocol buffers syntax and APIs is
+ available online at <ulink
+ url="http://code.google.com/apis/protocolbuffers/docs/overview.html"></ulink>.</para>
+
+
+ </refsect1>
+</refentry>
--- /dev/null
+C++ backend
+===========
+
+Per the upstream bug tracker [0,1], the experimental C++ backend for the
+Python protobuf bindings is buggy and unmaintained. A new implementation may
+be available in a future release, but until then the Debian python-protobuf
+package can only use the classic pure Python implementation.
+
+[0] https://code.google.com/p/protobuf/issues/detail?id=434
+
+[1] https://code.google.com/p/protobuf/issues/detail?id=503
+
+ -- Robert S. Edmonds <edmonds@debian.org> Sat, 25 Jan 2014 16:49:57 -0500
+
+Note that protobuf version 2.4.0 added an experimental C++-based
+library for the python bindings. Currently, this is not enabled by
+default, and selection of the used backend depends on the
+PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION environment variable as such:
+
+- when set to 'python' (the default), the classic Python
+ implementation is used
+- when set to 'cpp', the new implementation is used
+
+While you can use this variable to explicitly control the
+implementation being used, upstream said that the selection methods or
+the default could change in the future so you should be warned.
+
+ -- Iustin Pop <iustin@debian.org>, Wed, 16 Feb 2011 21:23:38 +0100
--- /dev/null
+#!/usr/bin/make -f
+# -*- makefile -*-
+# Sample debian/rules that uses debhelper.
+#
+# This file was originally written by Joey Hess and Craig Small.
+# As a special exception, when this file is copied by dh-make into a
+# dh-make output file, you may use that output file without restriction.
+# This special exception was added by Craig Small in version 0.37 of dh-make.
+#
+# Modified to make a template file for a multi-binary package with separated
+# build-arch and build-indep targets by Bill Allombert 2001
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+# This has to be exported to make some magic below work.
+export DH_OPTIONS
+
+DPKG_EXPORT_BUILDFLAGS = 1
+include /usr/share/dpkg/buildflags.mk
+
+DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
+DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
+
+CC = gcc
+CXX = g++
+ifneq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE))
+ CC := $(DEB_HOST_GNU_TYPE)-$(CC)
+ CXX := $(DEB_HOST_GNU_TYPE)-$(CXX)
+endif
+
+CFLAGS += -Wall
+CXXFLAGS += -Wall -fpermissive
+
+# Renesas SH(sh4) need -mieee option.
+# If this option is not effective, NaN test failed.
+ifeq (sh4,$(shell dpkg-architecture -qDEB_HOST_ARCH))
+ CFLAGS += -mieee
+ CXXFLAGS += -mieee
+endif
+
+ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
+ NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
+ PAROPTS = -j$(NUMJOBS)
+else
+ PAROPTS =
+endif
+# end DEB_BUILD_OPTIONS
+
+version=0.0.0
+major=0
+
+configure: configure-stamp
+configure-stamp:
+ dh_testdir
+ # Add here commands to configure the package.
+ dh_autoreconf
+ dh_auto_configure
+ touch configure-stamp
+
+
+#Architecture
+build: build-arch
+
+build-arch: build-arch-stamp
+build-arch-stamp: configure-stamp
+
+ # Add here commands to compile the arch part of the package.
+ $(MAKE) $(PAROPTS)
+
+ # run the test suite
+ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
+ $(MAKE) $(PAROPTS) check
+endif
+
+ # build the protoc manpage
+ xmlto man debian/protoc.xml
+
+ touch $@
+
+build-indep: build-indep-stamp
+build-indep-stamp: build-arch-stamp
+
+ # python bindings
+ cd python && python setup.py build
+
+ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
+ cd python && python setup.py test
+endif
+
+ # java bindings
+ # this code mimics mvn package. This should be changed when maven is supported by debian.
+ $(SHELL) /usr/bin/ant -f debian/java-build.xml jar
+
+ touch $@
+
+clean:
+ dh_testdir
+ dh_testroot
+ rm -f build-arch-stamp build-indep-stamp configure-stamp
+
+ # C++ bindings cleanups
+ [ ! -f Makefile ] || $(MAKE) distclean
+
+ # remove the built manpage
+ rm -f protoc.1
+
+ # Python bindings cleanups
+ cd python && python setup.py clean --all
+ rm -rf python/protobuf.egg-info
+
+ # Java bindings cleanups
+ $(SHELL) /usr/bin/ant -f debian/java-build.xml clean || true
+
+ dh_autoreconf_clean
+ dh_clean
+ mh_clean
+
+install: install-indep install-arch
+install-indep: build-indep
+ dh_testdir
+ dh_testroot
+ dh_prep -i
+ dh_installdirs -i
+
+ # python bindings
+ cd python && \
+ python setup.py install --install-layout=deb --no-compile \
+ --root=$(CURDIR)/debian/python-protobuf ; \
+ find $(CURDIR)/debian/python-protobuf -name 'protobuf-*-nspkg.pth' -print0 | \
+ xargs -r0 rm -f
+
+ dh_install -i
+ mh_install
+
+install-arch: build-arch
+ dh_testdir
+ dh_testroot
+ dh_prep -s
+ dh_installdirs -s
+
+ # Add here commands to install the arch part of the package into
+ # debian/tmp.
+ $(MAKE) DESTDIR=$(CURDIR)/debian/tmp install
+
+ dh_install --sourcedir=debian/tmp -s
+
+ # convert doc dir to symlink for the dev packages
+ rm -rf $(CURDIR)/debian/libprotobuf-dev/usr/share/doc/libprotobuf-dev
+ ln -s libprotobuf8 $(CURDIR)/debian/libprotobuf-dev/usr/share/doc/libprotobuf-dev
+ rm -rf $(CURDIR)/debian/libprotoc-dev/usr/share/doc/libprotoc-dev
+ ln -s libprotoc8 $(CURDIR)/debian/libprotoc-dev/usr/share/doc/libprotoc-dev
+
+ # remove compiler headers from libprotobuf-dev
+ rm -rf $(CURDIR)/debian/libprotobuf-dev/usr/include/google/protobuf/compiler
+
+ # remove .la files, as no other library depends on us
+ find $(CURDIR)/debian -name '*.la' -print0|xargs -r0 rm -f
+
+# Must not depend on anything. This is to be called by
+# binary-arch/binary-indep
+# in another 'make' thread.
+binary-common:
+ dh_testdir
+ dh_testroot
+ dh_installchangelogs CHANGES.txt
+ dh_installdocs
+ dh_installexamples
+ dh_installman
+ dh_link
+ dh_strip
+ dh_compress
+ dh_fixperms
+ dh_python2
+ dh_makeshlibs
+ dh_installdeb
+ dh_shlibdeps
+ dh_gencontrol
+ dh_md5sums
+ dh_builddeb
+
+# Build architecture independant packages using the common target.
+binary-indep: install-indep
+ $(MAKE) -f debian/rules DH_OPTIONS=-i binary-common
+
+# Build architecture dependant packages using the common target.
+binary-arch: install-arch
+ $(MAKE) -f debian/rules DH_OPTIONS=-s binary-common
+
+binary: binary-arch binary-indep
+.PHONY: build clean binary-indep binary-arch binary install install-indep install-arch configure
--- /dev/null
+3.0 (quilt)
--- /dev/null
+# format version number, currently 3; this line is compulsory!
+version=3
+opts=\
+downloadurlmangle=s|.*[?]name=(.*?)&.*|http://protobuf.googlecode.com/files/$1|,\
+filenamemangle=s|[^/]+[?]name=(.*?)&.*|$1| \
+http://code.google.com/p/protobuf/downloads/detail[?]name=protobuf-([0-9.]+).tar.gz&.*