From 02d1d347cc4825c97f6f736e4b47668094f77311 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Franti=C5=A1ek=20Dvo=C5=99=C3=A1k?= Date: Mon, 20 Jul 2015 23:32:00 +0200 Subject: [PATCH] Debian original packaging for 2.5.0. --- debian/changelog | 340 +++++++++++++++++++++ debian/compat | 1 + debian/control | 181 +++++++++++ debian/copyright | 105 +++++++ debian/gbp.conf | 4 + debian/java-build.xml | 33 ++ debian/libprotobuf-dev.dirs | 1 + debian/libprotobuf-dev.install | 8 + debian/libprotobuf-java.poms | 1 + debian/libprotobuf-lite8.install | 1 + debian/libprotobuf-lite8.shlibs | 1 + debian/libprotobuf8.install | 1 + debian/libprotobuf8.shlibs | 1 + debian/libprotoc-dev.dirs | 1 + debian/libprotoc-dev.install | 4 + debian/libprotoc8.install | 1 + debian/libprotoc8.shlibs | 1 + debian/patches/arm_optimization.diff | 18 ++ debian/patches/disable-setuptools-download.diff | 24 ++ debian/patches/fix-ftbfs-gcc4.7-kfreebsd.patch | 19 ++ debian/patches/fix-ftbfs-upstream-issue-488.patch | 268 ++++++++++++++++ .../revert_upstream_issue_388_about_rpath.diff | 50 +++ debian/patches/series | 6 + debian/pkg-test.sh | 67 ++++ debian/protobuf-compiler.docs | 4 + debian/protobuf-compiler.install | 1 + debian/protobuf-compiler.manpages | 1 + debian/protoc.xml | 223 ++++++++++++++ debian/python-protobuf.README.Debian | 28 ++ debian/rules | 191 ++++++++++++ debian/source/format | 1 + debian/watch | 6 + 32 files changed, 1592 insertions(+) create mode 100644 debian/changelog create mode 100644 debian/compat create mode 100644 debian/control create mode 100644 debian/copyright create mode 100644 debian/gbp.conf create mode 100644 debian/java-build.xml create mode 100644 debian/libprotobuf-dev.dirs create mode 100644 debian/libprotobuf-dev.install create mode 100644 debian/libprotobuf-java.poms create mode 100644 debian/libprotobuf-lite8.install create mode 100644 debian/libprotobuf-lite8.shlibs create mode 100644 debian/libprotobuf8.install create mode 100644 debian/libprotobuf8.shlibs create mode 100644 debian/libprotoc-dev.dirs create mode 100644 debian/libprotoc-dev.install create mode 100644 debian/libprotoc8.install create mode 100644 debian/libprotoc8.shlibs create mode 100644 debian/patches/arm_optimization.diff create mode 100644 debian/patches/disable-setuptools-download.diff create mode 100644 debian/patches/fix-ftbfs-gcc4.7-kfreebsd.patch create mode 100644 debian/patches/fix-ftbfs-upstream-issue-488.patch create mode 100644 debian/patches/revert_upstream_issue_388_about_rpath.diff create mode 100644 debian/patches/series create mode 100755 debian/pkg-test.sh create mode 100644 debian/protobuf-compiler.docs create mode 100644 debian/protobuf-compiler.install create mode 100644 debian/protobuf-compiler.manpages create mode 100644 debian/protoc.xml create mode 100644 debian/python-protobuf.README.Debian create mode 100755 debian/rules create mode 100644 debian/source/format create mode 100644 debian/watch diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 0000000..24e31f0 --- /dev/null +++ b/debian/changelog @@ -0,0 +1,340 @@ +protobuf (2.5.0-9) unstable; urgency=medium + + * Upload to unstable. + * Officially take over primary maintainership of the package, per Iustin. + + -- Robert S. Edmonds 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 Mon, 03 Feb 2014 19:42:23 -0500 + +protobuf (2.5.0-7) unstable; urgency=medium + + * Upload to unstable. + * Closes: #736801. + + -- Robert S. Edmonds 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 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 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 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 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 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 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 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 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 Tue, 08 Nov 2011 07:56:58 +0900 + +protobuf (2.4.0a-2) unstable; urgency=low + + * Re-upload to unstable + + -- Iustin Pop 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 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 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 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 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 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 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 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 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 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 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 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 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 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 (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 Thu, 09 Apr 2009 15:01:36 +0200 + +protobuf (2.0.2-1) unstable; urgency=low + + * New Upstream Version (Closes: #501349) + + -- Iustin Pop 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 Sat, 04 Oct 2008 17:05:01 +0200 + +protobuf (2.0.1-1) unstable; urgency=low + + * New Upstream Version (Closes: #499925) + + -- Iustin Pop 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 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 + + * Cleanup debian/rules (removed commented out debhelper lines) + * Improve the java build process, as suggested by Matthew Johnson + + + -- Iustin Pop Sat, 02 Aug 2008 14:12:59 +0200 + +protobuf (2.0.0~b-1) unstable; urgency=low + + * Initial release (Closes: #489842) + + -- Iustin Pop Tue, 08 Jul 2008 20:03:51 +0200 diff --git a/debian/compat b/debian/compat new file mode 100644 index 0000000..ec63514 --- /dev/null +++ b/debian/compat @@ -0,0 +1 @@ +9 diff --git a/debian/control b/debian/control new file mode 100644 index 0000000..fdb8a58 --- /dev/null +++ b/debian/control @@ -0,0 +1,181 @@ +Source: protobuf +Section: devel +Priority: optional +Maintainer: Robert S. Edmonds +Uploaders: Iustin Pop +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. diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 0000000..ee0c91e --- /dev/null +++ b/debian/copyright @@ -0,0 +1,105 @@ +This package was debianized by Iustin Pop 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 + Jeff Dean + Daniel Dulitz + Craig Silverstein + Paul Haahr + Corey Anderson + (and many others) + +Proto2 C++ and Java primary author: + Kenton Varda + +Proto2 Python primary authors: + Will Robinson + Petar Petrov + +Large code contributions: + Joseph Schorr + Wenbo Zhu + +Large quantity of code reviews: + Scott Bruce + Frank Yellin + Neal Norwitz + Jeffrey Yasskin + Ambrose Feinstein + +Documentation: + Lisa Carey + +Maven packaging: + Gregory Kick + +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 + +and is licensed under the GPL version 3, +see `/usr/share/common-licenses/GPL-3'. diff --git a/debian/gbp.conf b/debian/gbp.conf new file mode 100644 index 0000000..0da192b --- /dev/null +++ b/debian/gbp.conf @@ -0,0 +1,4 @@ +[buildpackage] +pristine-tar = True +[import-orig] +pristine-tar = True diff --git a/debian/java-build.xml b/debian/java-build.xml new file mode 100644 index 0000000..05e9354 --- /dev/null +++ b/debian/java-build.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/debian/libprotobuf-dev.dirs b/debian/libprotobuf-dev.dirs new file mode 100644 index 0000000..7276ecd --- /dev/null +++ b/debian/libprotobuf-dev.dirs @@ -0,0 +1 @@ +usr/share/doc diff --git a/debian/libprotobuf-dev.install b/debian/libprotobuf-dev.install new file mode 100644 index 0000000..cdb1bb9 --- /dev/null +++ b/debian/libprotobuf-dev.install @@ -0,0 +1,8 @@ +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 diff --git a/debian/libprotobuf-java.poms b/debian/libprotobuf-java.poms new file mode 100644 index 0000000..12fed3e --- /dev/null +++ b/debian/libprotobuf-java.poms @@ -0,0 +1 @@ +java/pom.xml --artifact=java/target/protobuf.jar --java-lib --no-parent --usj-name=protobuf diff --git a/debian/libprotobuf-lite8.install b/debian/libprotobuf-lite8.install new file mode 100644 index 0000000..45e0054 --- /dev/null +++ b/debian/libprotobuf-lite8.install @@ -0,0 +1 @@ +usr/lib/*/libprotobuf-lite.so.* diff --git a/debian/libprotobuf-lite8.shlibs b/debian/libprotobuf-lite8.shlibs new file mode 100644 index 0000000..6167c8c --- /dev/null +++ b/debian/libprotobuf-lite8.shlibs @@ -0,0 +1 @@ +libprotobuf-lite 8 libprotobuf-lite8 diff --git a/debian/libprotobuf8.install b/debian/libprotobuf8.install new file mode 100644 index 0000000..9ac8d24 --- /dev/null +++ b/debian/libprotobuf8.install @@ -0,0 +1 @@ +usr/lib/*/libprotobuf.so.* diff --git a/debian/libprotobuf8.shlibs b/debian/libprotobuf8.shlibs new file mode 100644 index 0000000..4d60a1a --- /dev/null +++ b/debian/libprotobuf8.shlibs @@ -0,0 +1 @@ +libprotobuf 8 libprotobuf8 diff --git a/debian/libprotoc-dev.dirs b/debian/libprotoc-dev.dirs new file mode 100644 index 0000000..7276ecd --- /dev/null +++ b/debian/libprotoc-dev.dirs @@ -0,0 +1 @@ +usr/share/doc diff --git a/debian/libprotoc-dev.install b/debian/libprotoc-dev.install new file mode 100644 index 0000000..fac955b --- /dev/null +++ b/debian/libprotoc-dev.install @@ -0,0 +1,4 @@ +usr/lib/*/libprotoc.a +usr/lib/*/libprotoc.so +usr/lib/*/libprotoc.la +usr/include/google/protobuf/compiler diff --git a/debian/libprotoc8.install b/debian/libprotoc8.install new file mode 100644 index 0000000..a280133 --- /dev/null +++ b/debian/libprotoc8.install @@ -0,0 +1 @@ +usr/lib/*/libprotoc*.so.* diff --git a/debian/libprotoc8.shlibs b/debian/libprotoc8.shlibs new file mode 100644 index 0000000..e876281 --- /dev/null +++ b/debian/libprotoc8.shlibs @@ -0,0 +1 @@ +libprotoc 8 libprotoc8 diff --git a/debian/patches/arm_optimization.diff b/debian/patches/arm_optimization.diff new file mode 100644 index 0000000..16e8e77 --- /dev/null +++ b/debian/patches/arm_optimization.diff @@ -0,0 +1,18 @@ +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 +--- 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 diff --git a/debian/patches/disable-setuptools-download.diff b/debian/patches/disable-setuptools-download.diff new file mode 100644 index 0000000..d595568 --- /dev/null +++ b/debian/patches/disable-setuptools-download.diff @@ -0,0 +1,24 @@ +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 +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: diff --git a/debian/patches/fix-ftbfs-gcc4.7-kfreebsd.patch b/debian/patches/fix-ftbfs-gcc4.7-kfreebsd.patch new file mode 100644 index 0000000..6097c35 --- /dev/null +++ b/debian/patches/fix-ftbfs-gcc4.7-kfreebsd.patch @@ -0,0 +1,19 @@ +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 + +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 // NOLINT ++ + // may not be available on this platform. Use our own + // simple regex implementation instead. + # define GTEST_USES_SIMPLE_RE 1 diff --git a/debian/patches/fix-ftbfs-upstream-issue-488.patch b/debian/patches/fix-ftbfs-upstream-issue-488.patch new file mode 100644 index 0000000..da0c9e5 --- /dev/null +++ b/debian/patches/fix-ftbfs-upstream-issue-488.patch @@ -0,0 +1,268 @@ +From 65f7f19291a387dd14baf5bc8e4af3fb665881e8 Mon Sep 17 00:00:00 2001 +From: "Robert S. Edmonds" +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 +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 + #else +-GOOGLE_PROTOBUF_ATOMICOPS_ERROR ++#include + #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 + diff --git a/debian/patches/revert_upstream_issue_388_about_rpath.diff b/debian/patches/revert_upstream_issue_388_about_rpath.diff new file mode 100644 index 0000000..ae72698 --- /dev/null +++ b/debian/patches/revert_upstream_issue_388_about_rpath.diff @@ -0,0 +1,50 @@ +Description: workaround issue 271 upstream +Author: Thomas Koch &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 diff --git a/debian/protobuf-compiler.docs b/debian/protobuf-compiler.docs new file mode 100644 index 0000000..223b42b --- /dev/null +++ b/debian/protobuf-compiler.docs @@ -0,0 +1,4 @@ +CONTRIBUTORS.txt +README.txt +editors +examples diff --git a/debian/protobuf-compiler.install b/debian/protobuf-compiler.install new file mode 100644 index 0000000..e772481 --- /dev/null +++ b/debian/protobuf-compiler.install @@ -0,0 +1 @@ +usr/bin diff --git a/debian/protobuf-compiler.manpages b/debian/protobuf-compiler.manpages new file mode 100644 index 0000000..f723754 --- /dev/null +++ b/debian/protobuf-compiler.manpages @@ -0,0 +1 @@ +protoc.1 diff --git a/debian/protoc.xml b/debian/protoc.xml new file mode 100644 index 0000000..6b2af5f --- /dev/null +++ b/debian/protoc.xml @@ -0,0 +1,223 @@ + +.
will be generated. You may view the +manual page with: nroff -man .
| 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 + ... . + +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/ + +--> + + + + + + + + + + + + + +]> + + + + &dhtitle; + &dhucpackage; + + + &dhfirstname; + &dhsurname; + Wrote this manpage for the Debian system. +
+ &dhemail; +
+
+
+ + 2007 + &dhusername; + + + This manual page was written for the Debian system + (but may be used by others). + 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. + On Debian systems, the complete text of the GNU General Public + License can be found in + /usr/share/common-licenses/GPL. + + 2008-10-04 +
+ + &dhpackage; + &dhsection; + 2.0.2 + + + &dhpackage; + compile protocol buffer description files + + + + &dhpackage; + + + + + + + + + + + + PROTO_FILE + + + + &dhpackage; + + + + + + + &dhpackage; + + + + + DESCRIPTION + + &dhpackage; is a compiler for protocol + buffers definitions files. It can can generate C++, Java and + Python source code for the classes defined in + PROTO_FILE. + + + + + OPTIONS + + + + + + + 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. + + + + + + Enable generation of C++ bindings and store them in + OUT_DIR. + + + + + + Enable generation of Java bindings and store them + in OUT_DIR. + + + + + + Enable generation of Python bindings and store them + in OUT_DIR. + + + + + + + Show summary of options. + + + + + + Show version of program. + + + + + Note that at least one of the , + and + options must be given (otherwise the program has nothing to + do). It's also possible to specify more than one. + + + + + BUGS + + The program currently exits with code 255 for all errors, + which makes it hard to differentiante from scripts the actual + error. + + The upstreams BTS can be found at . + + + + SEE ALSO + + More documentation about protocol buffers syntax and APIs is + available online at . + + + +
diff --git a/debian/python-protobuf.README.Debian b/debian/python-protobuf.README.Debian new file mode 100644 index 0000000..1b884f3 --- /dev/null +++ b/debian/python-protobuf.README.Debian @@ -0,0 +1,28 @@ +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 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 , Wed, 16 Feb 2011 21:23:38 +0100 diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..b0d81ac --- /dev/null +++ b/debian/rules @@ -0,0 +1,191 @@ +#!/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 diff --git a/debian/source/format b/debian/source/format new file mode 100644 index 0000000..163aaf8 --- /dev/null +++ b/debian/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/debian/watch b/debian/watch new file mode 100644 index 0000000..bdcdcf1 --- /dev/null +++ b/debian/watch @@ -0,0 +1,6 @@ +# 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&.* -- 1.8.2.3