Compare commits
19 Commits
6c8d4c7752
...
cad8fd9101
Author | SHA1 | Date |
---|---|---|
Fedora Release Engineering | cad8fd9101 | |
Benjamin A. Beasley | b744f0ae20 | |
Benjamin A. Beasley | 36c08e98b6 | |
Benjamin A. Beasley | 80670d4cdb | |
Benjamin A. Beasley | d6f4a56b7e | |
Benjamin A. Beasley | 0fce2f1ffc | |
Benjamin A. Beasley | e944fe2238 | |
Benjamin A. Beasley | 0271877f01 | |
Benjamin A. Beasley | b75731146e | |
Benjamin A. Beasley | 75a32b0a07 | |
Benjamin A. Beasley | 2674c81c49 | |
Benjamin A. Beasley | dc55af4fa6 | |
Benjamin A. Beasley | b85016d121 | |
Benjamin A. Beasley | b2cd8fe8e8 | |
Benjamin A. Beasley | 2036d34972 | |
Benjamin A. Beasley | e328028233 | |
Benjamin A. Beasley | 7cbfd6ac54 | |
Benjamin A. Beasley | c0cef1e088 | |
Benjamin A. Beasley | 2012fba6ee |
|
@ -22,3 +22,7 @@ protobuf-2.3.0.tar.bz2
|
|||
/protobuf-3.18.1-all.tar.gz
|
||||
/protobuf-3.19.0-all.tar.gz
|
||||
/protobuf-3.19.4-all.tar.gz
|
||||
/googletest-0e402173c97aea7a00749e825b194bfede4f2e45.tar.gz
|
||||
/googletest-5ec7f0c4a113e2f18ac2c6cc7df51ad6afc24081.tar.gz
|
||||
/protobuf-3.19.5-all.tar.gz
|
||||
/protobuf-3.19.6-all.tar.gz
|
||||
|
|
|
@ -0,0 +1,135 @@
|
|||
From 5576f98f5d6aa0cc1e845a5fe5d00c034ef51f30 Mon Sep 17 00:00:00 2001
|
||||
From: Alexander Shadchin <alexandr.shadchin@gmail.com>
|
||||
Date: Sun, 14 Aug 2022 21:13:49 +0300
|
||||
Subject: [PATCH] Fix build with Python 3.11
|
||||
|
||||
The PyFrameObject structure members have been removed from the public C API.
|
||||
---
|
||||
python/google/protobuf/pyext/descriptor.cc | 75 ++++++++++++++++++----
|
||||
1 file changed, 62 insertions(+), 13 deletions(-)
|
||||
|
||||
diff --git a/python/google/protobuf/pyext/descriptor.cc b/python/google/protobuf/pyext/descriptor.cc
|
||||
index a2993d908..44d811923 100644
|
||||
--- a/python/google/protobuf/pyext/descriptor.cc
|
||||
+++ b/python/google/protobuf/pyext/descriptor.cc
|
||||
@@ -57,6 +57,37 @@
|
||||
: 0) \
|
||||
: PyBytes_AsStringAndSize(ob, (charpp), (sizep)))
|
||||
|
||||
+#if PY_VERSION_HEX < 0x030900B1 && !defined(PYPY_VERSION)
|
||||
+static PyCodeObject* PyFrame_GetCode(PyFrameObject *frame)
|
||||
+{
|
||||
+ Py_INCREF(frame->f_code);
|
||||
+ return frame->f_code;
|
||||
+}
|
||||
+
|
||||
+static PyFrameObject* PyFrame_GetBack(PyFrameObject *frame)
|
||||
+{
|
||||
+ Py_XINCREF(frame->f_back);
|
||||
+ return frame->f_back;
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
+#if PY_VERSION_HEX < 0x030B00A7 && !defined(PYPY_VERSION)
|
||||
+static PyObject* PyFrame_GetLocals(PyFrameObject *frame)
|
||||
+{
|
||||
+ if (PyFrame_FastToLocalsWithError(frame) < 0) {
|
||||
+ return NULL;
|
||||
+ }
|
||||
+ Py_INCREF(frame->f_locals);
|
||||
+ return frame->f_locals;
|
||||
+}
|
||||
+
|
||||
+static PyObject* PyFrame_GetGlobals(PyFrameObject *frame)
|
||||
+{
|
||||
+ Py_INCREF(frame->f_globals);
|
||||
+ return frame->f_globals;
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
namespace google {
|
||||
namespace protobuf {
|
||||
namespace python {
|
||||
@@ -95,48 +126,66 @@ bool _CalledFromGeneratedFile(int stacklevel) {
|
||||
// This check is not critical and is somewhat difficult to implement correctly
|
||||
// in PyPy.
|
||||
PyFrameObject* frame = PyEval_GetFrame();
|
||||
+ PyCodeObject* frame_code = nullptr;
|
||||
+ PyObject* frame_globals = nullptr;
|
||||
+ PyObject* frame_locals = nullptr;
|
||||
+ bool result = false;
|
||||
+
|
||||
if (frame == NULL) {
|
||||
- return false;
|
||||
+ goto exit;
|
||||
}
|
||||
+ Py_INCREF(frame);
|
||||
while (stacklevel-- > 0) {
|
||||
- frame = frame->f_back;
|
||||
+ PyFrameObject* next_frame = PyFrame_GetBack(frame);
|
||||
+ Py_DECREF(frame);
|
||||
+ frame = next_frame;
|
||||
if (frame == NULL) {
|
||||
- return false;
|
||||
+ goto exit;
|
||||
}
|
||||
}
|
||||
|
||||
- if (frame->f_code->co_filename == NULL) {
|
||||
- return false;
|
||||
+ frame_code = PyFrame_GetCode(frame);
|
||||
+ if (frame_code->co_filename == NULL) {
|
||||
+ goto exit;
|
||||
}
|
||||
char* filename;
|
||||
Py_ssize_t filename_size;
|
||||
- if (PyString_AsStringAndSize(frame->f_code->co_filename,
|
||||
+ if (PyString_AsStringAndSize(frame_code->co_filename,
|
||||
&filename, &filename_size) < 0) {
|
||||
// filename is not a string.
|
||||
PyErr_Clear();
|
||||
- return false;
|
||||
+ goto exit;
|
||||
}
|
||||
if ((filename_size < 3) ||
|
||||
(strcmp(&filename[filename_size - 3], ".py") != 0)) {
|
||||
// Cython's stack does not have .py file name and is not at global module
|
||||
// scope.
|
||||
- return true;
|
||||
+ result = true;
|
||||
+ goto exit;
|
||||
}
|
||||
if (filename_size < 7) {
|
||||
// filename is too short.
|
||||
- return false;
|
||||
+ goto exit;
|
||||
}
|
||||
if (strcmp(&filename[filename_size - 7], "_pb2.py") != 0) {
|
||||
// Filename is not ending with _pb2.
|
||||
- return false;
|
||||
+ goto exit;
|
||||
}
|
||||
|
||||
- if (frame->f_globals != frame->f_locals) {
|
||||
+ frame_globals = PyFrame_GetGlobals(frame);
|
||||
+ frame_locals = PyFrame_GetLocals(frame);
|
||||
+ if (frame_globals != frame_locals) {
|
||||
// Not at global module scope
|
||||
- return false;
|
||||
+ goto exit;
|
||||
}
|
||||
#endif
|
||||
- return true;
|
||||
+ result = true;
|
||||
+exit:
|
||||
+ Py_XDECREF(frame_globals);
|
||||
+ Py_XDECREF(frame_locals);
|
||||
+ Py_XDECREF(frame_code);
|
||||
+ Py_XDECREF(frame);
|
||||
+ return result;
|
||||
}
|
||||
|
||||
// If the calling code is not a _pb2.py file, raise AttributeError.
|
||||
--
|
||||
2.38.1
|
||||
|
161
protobuf.spec
161
protobuf.spec
|
@ -1,12 +1,8 @@
|
|||
# Build -python subpackage
|
||||
%bcond_without python
|
||||
# Build -python subpackage with C++
|
||||
# Not compatible with Python 3.11
|
||||
%if 0%{?fedora} >= 37
|
||||
%bcond_with python_cpp
|
||||
%else
|
||||
# Build -python subpackage with C++. This significantly improves performance
|
||||
# compared to the pure-Python implementation.
|
||||
%bcond_without python_cpp
|
||||
%endif
|
||||
# Build -java subpackage
|
||||
%ifarch %{java_arches}
|
||||
%bcond_without java
|
||||
|
@ -18,15 +14,60 @@
|
|||
|
||||
Summary: Protocol Buffers - Google's data interchange format
|
||||
Name: protobuf
|
||||
Version: 3.19.4
|
||||
Release: 6%{?dist}
|
||||
License: BSD
|
||||
# NOTE: perl-Alien-ProtoBuf has an exact-version dependency on the version of
|
||||
# protobuf with which it was built; it therefore needs to be rebuilt even for
|
||||
# “patch” updates of protobuf.
|
||||
Version: 3.19.6
|
||||
%global so_version 30
|
||||
Release: 2%{?dist}
|
||||
|
||||
# The entire source is BSD-3-Clause, except the following files, which belong
|
||||
# to the build system; are unpackaged maintainer utility scripts; or are used
|
||||
# only for building tests that are not packaged—and so they do not affect the
|
||||
# licenses of the binary RPMs:
|
||||
#
|
||||
# FSFAP:
|
||||
# m4/ax_cxx_compile_stdcxx.m4
|
||||
# m4/ax_prog_cc_for_build.m4
|
||||
# m4/ax_prog_cxx_for_build.m4
|
||||
# Apache-2.0:
|
||||
# python/mox.py
|
||||
# python/stubout.py
|
||||
# third_party/googletest/
|
||||
# except the following, which are BSD-3-Clause:
|
||||
# third_party/googletest/googletest/test/gtest_pred_impl_unittest.cc
|
||||
# third_party/googletest/googletest/include/gtest/gtest-param-test.h
|
||||
# third_party/googletest/googletest/include/gtest/gtest-param-test.h.pump
|
||||
# third_party/googletest/googletest/include/gtest/internal/gtest-param-util-generated.h
|
||||
# third_party/googletest/googletest/include/gtest/internal/gtest-param-util-generated.h.pump
|
||||
# third_party/googletest/googletest/include/gtest/internal/gtest-type-util.h
|
||||
# third_party/googletest/googletest/include/gtest/internal/gtest-type-util.h.pump
|
||||
# MIT:
|
||||
# conformance/third_party/jsoncpp/json.h
|
||||
# conformance/third_party/jsoncpp/jsoncpp.cpp
|
||||
License: BSD-3-Clause
|
||||
URL: https://github.com/protocolbuffers/protobuf
|
||||
Source: https://github.com/protocolbuffers/protobuf/archive/v%{version}%{?rcver}/%{name}-%{version}%{?rcver}-all.tar.gz
|
||||
Source0: %{url}/archive/v%{version}%{?rcver}/%{name}-%{version}%{?rcver}-all.tar.gz
|
||||
|
||||
Source1: ftdetect-proto.vim
|
||||
Source2: protobuf-init.el
|
||||
|
||||
# We bundle a copy of the exact version of gtest that is used by upstream in
|
||||
# the source RPM rather than using the system copy. This is to be discouraged,
|
||||
# but necessary in this case. It is not treated as a bundled library because
|
||||
# it is used only at build time, and contributes nothing to the installed
|
||||
# files. We take measures to verify this in %%check. See
|
||||
# https://github.com/protocolbuffers/protobuf/tree/v%%{version}/third_party to
|
||||
# check the correct commit hash.
|
||||
%global gtest_url https://github.com/google/googletest
|
||||
%global gtest_commit 5ec7f0c4a113e2f18ac2c6cc7df51ad6afc24081
|
||||
%global gtest_dir googletest-%{gtest_commit}
|
||||
# For tests (using exactly the same version as the release)
|
||||
Source3: https://github.com/google/googletest/archive/5ec7f0c4a113e2f18ac2c6cc7df51ad6afc24081.zip
|
||||
Source3: %{gtest_url}/archive/%{gtest_commit}/%{gtest_dir}.tar.gz
|
||||
|
||||
# Man page hand-written for Fedora in groff_man(7) format based on “protoc
|
||||
# --help” output.
|
||||
Source4: protoc.1
|
||||
|
||||
# https://github.com/protocolbuffers/protobuf/issues/8082
|
||||
Patch1: protobuf-3.14-disable-IoTest.LargeOutput.patch
|
||||
|
@ -37,14 +78,31 @@ Patch2: disable-tests-on-32-bit-systems.patch
|
|||
# throws java.lang.ClassFormatError accessible: module java.base does not "opens java.lang" to unnamed module @12d5624a
|
||||
# at com.google.protobuf.ServiceTest.testGetPrototype(ServiceTest.java:107)
|
||||
Patch3: protobuf-3.19.4-jre17-add-opens.patch
|
||||
# Backport upstream commit da973aff2adab60a9e516d3202c111dbdde1a50f:
|
||||
# Fix build with Python 3.11
|
||||
#
|
||||
# The PyFrameObject structure members have been removed from the public C API.
|
||||
Patch4: protobuf-3.19.4-python3.11.patch
|
||||
|
||||
# A bundled copy of jsoncpp is included in the conformance tests, but the
|
||||
# result is not packaged, so we do not treat it as a formal bundled
|
||||
# dependency—thus the virtual Provides below is commented out. The bundling is
|
||||
# removed in a later release:
|
||||
# Make jsoncpp a formal dependency
|
||||
# https://github.com/protocolbuffers/protobuf/pull/10739
|
||||
# The bundled version number is obtained from JSONCPP_VERSION_STRING in
|
||||
# conformance/third_party/jsoncpp/json.h.
|
||||
# Provides: bundled(jsoncpp) = 1.6.5
|
||||
|
||||
BuildRequires: make
|
||||
BuildRequires: autoconf
|
||||
BuildRequires: automake
|
||||
BuildRequires: emacs
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: libtool
|
||||
|
||||
BuildRequires: pkgconfig
|
||||
BuildRequires: make
|
||||
BuildRequires: gcc-c++
|
||||
|
||||
BuildRequires: emacs
|
||||
BuildRequires: zlib-devel
|
||||
|
||||
%ifnarch %{java_arches}
|
||||
|
@ -130,12 +188,11 @@ which only depends libprotobuf-lite, which is much smaller than libprotobuf but
|
|||
lacks descriptors, reflection, and some other features.
|
||||
|
||||
%if %{with python}
|
||||
%package -n python%{python3_pkgversion}-%{name}
|
||||
Summary: Python 3 bindings for Google Protocol Buffers
|
||||
BuildRequires: python%{python3_pkgversion}-devel
|
||||
BuildRequires: python%{python3_pkgversion}-setuptools
|
||||
BuildRequires: python%{python3_pkgversion}-wheel
|
||||
Requires: python%{python3_pkgversion}-six >= 1.9
|
||||
%package -n python3-%{name}
|
||||
Summary: Python bindings for Google Protocol Buffers
|
||||
BuildRequires: python3-devel
|
||||
BuildRequires: python3dist(setuptools)
|
||||
BuildRequires: python3dist(wheel)
|
||||
%if %{with python_cpp}
|
||||
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||
%else
|
||||
|
@ -144,16 +201,18 @@ BuildArch: noarch
|
|||
Conflicts: %{name}-compiler > %{version}
|
||||
Conflicts: %{name}-compiler < %{version}
|
||||
Provides: %{name}-python3 = %{version}-%{release}
|
||||
%{?python_provide:%python_provide python%{python3_pkgversion}-%{name}}
|
||||
|
||||
%description -n python%{python3_pkgversion}-%{name}
|
||||
This package contains Python 3 libraries for Google Protocol Buffers
|
||||
%description -n python3-%{name}
|
||||
This package contains Python libraries for Google Protocol Buffers
|
||||
%endif
|
||||
|
||||
%package vim
|
||||
Summary: Vim syntax highlighting for Google Protocol Buffers descriptions
|
||||
BuildArch: noarch
|
||||
Requires: vim-enhanced
|
||||
# We don’t really need vim or vim-enhanced to be already installed in order to
|
||||
# install a plugin for it. We do need to depend on vim-filesystem, which
|
||||
# provides the necessary directory structure.
|
||||
Requires: vim-filesystem
|
||||
|
||||
%description vim
|
||||
This package contains syntax highlighting for Google Protocol Buffers
|
||||
|
@ -240,7 +299,13 @@ descriptions in the Emacs editor.
|
|||
%patch2 -p0
|
||||
%endif
|
||||
%patch3 -p1 -b .jre17
|
||||
mv googletest-5ec7f0c4a113e2f18ac2c6cc7df51ad6afc24081/* third_party/googletest/
|
||||
%patch4 -p1 -b .python311
|
||||
|
||||
# Copy in the needed gtest/gmock implementations.
|
||||
%setup -q -T -D -b 3 -n %{name}-%{version}%{?rcver}
|
||||
rm -rvf 'third_party/googletest'
|
||||
mv '../%{gtest_dir}' 'third_party/googletest'
|
||||
|
||||
find -name \*.cc -o -name \*.h | xargs chmod -x
|
||||
chmod 644 examples/*
|
||||
%if %{with java}
|
||||
|
@ -321,6 +386,9 @@ fail=1
|
|||
%make_install %{?_smp_mflags} STRIPBINARIES=no INSTALL="%{__install} -p" CPPROG="cp -p"
|
||||
find %{buildroot} -type f -name "*.la" -exec rm -f {} +
|
||||
|
||||
# protoc.1 man page
|
||||
install -p -m 0644 -D -t '%{buildroot}%{_mandir}/man1' '%{SOURCE4}'
|
||||
|
||||
%if %{with python}
|
||||
pushd python
|
||||
%py3_install %{?with_python_cpp:-- --cpp_implementation}
|
||||
|
@ -342,20 +410,17 @@ install -p -m 0644 editors/protobuf-mode.elc %{buildroot}%{_emacs_sitelispdir}/%
|
|||
mkdir -p %{buildroot}%{_emacs_sitestartdir}
|
||||
install -p -m 0644 %{SOURCE2} %{buildroot}%{_emacs_sitestartdir}
|
||||
|
||||
%ldconfig_scriptlets
|
||||
%ldconfig_scriptlets lite
|
||||
%ldconfig_scriptlets compiler
|
||||
|
||||
%files
|
||||
%doc CHANGES.txt CONTRIBUTORS.txt README.md
|
||||
%license LICENSE
|
||||
%{_libdir}/libprotobuf.so.30*
|
||||
%{_libdir}/libprotobuf.so.%{so_version}{,.*}
|
||||
|
||||
%files compiler
|
||||
%doc README.md
|
||||
%license LICENSE
|
||||
%{_bindir}/protoc
|
||||
%{_libdir}/libprotoc.so.30*
|
||||
%{_mandir}/man1/protoc.1*
|
||||
%{_libdir}/libprotoc.so.%{so_version}{,.*}
|
||||
|
||||
%files devel
|
||||
%dir %{_includedir}/google
|
||||
|
@ -366,6 +431,7 @@ install -p -m 0644 %{SOURCE2} %{buildroot}%{_emacs_sitestartdir}
|
|||
%doc examples/add_person.cc examples/addressbook.proto examples/list_people.cc examples/Makefile examples/README.md
|
||||
|
||||
%files emacs
|
||||
%license LICENSE
|
||||
%{_emacs_sitelispdir}/%{name}/
|
||||
%{_emacs_sitestartdir}/protobuf-init.el
|
||||
|
||||
|
@ -374,7 +440,8 @@ install -p -m 0644 %{SOURCE2} %{buildroot}%{_emacs_sitestartdir}
|
|||
%{_libdir}/libprotoc.a
|
||||
|
||||
%files lite
|
||||
%{_libdir}/libprotobuf-lite.so.30*
|
||||
%license LICENSE
|
||||
%{_libdir}/libprotobuf-lite.so.%{so_version}{,.*}
|
||||
|
||||
%files lite-devel
|
||||
%{_libdir}/libprotobuf-lite.so
|
||||
|
@ -384,13 +451,14 @@ install -p -m 0644 %{SOURCE2} %{buildroot}%{_emacs_sitestartdir}
|
|||
%{_libdir}/libprotobuf-lite.a
|
||||
|
||||
%if %{with python}
|
||||
%files -n python%{python3_pkgversion}-protobuf
|
||||
%files -n python3-protobuf
|
||||
%if %{with python_cpp}
|
||||
%dir %{python3_sitearch}/google
|
||||
%{python3_sitearch}/google/protobuf/
|
||||
%{python3_sitearch}/protobuf-%{version}%{?rcver}-py3.*.egg-info/
|
||||
%{python3_sitearch}/protobuf-%{version}%{?rcver}-py3.*-nspkg.pth
|
||||
%else
|
||||
%license LICENSE
|
||||
%dir %{python3_sitelib}/google
|
||||
%{python3_sitelib}/google/protobuf/
|
||||
%{python3_sitelib}/protobuf-%{version}%{?rcver}-py3.*.egg-info/
|
||||
|
@ -401,6 +469,7 @@ install -p -m 0644 %{SOURCE2} %{buildroot}%{_emacs_sitestartdir}
|
|||
%endif
|
||||
|
||||
%files vim
|
||||
%license LICENSE
|
||||
%{_datadir}/vim/vimfiles/ftdetect/proto.vim
|
||||
%{_datadir}/vim/vimfiles/syntax/proto.vim
|
||||
|
||||
|
@ -411,6 +480,7 @@ install -p -m 0644 %{SOURCE2} %{buildroot}%{_emacs_sitestartdir}
|
|||
%license LICENSE
|
||||
|
||||
%files java-util -f .mfiles-protobuf-java-util
|
||||
%license LICENSE
|
||||
|
||||
%files javadoc -f .mfiles-javadoc
|
||||
%license LICENSE
|
||||
|
@ -427,6 +497,31 @@ install -p -m 0644 %{SOURCE2} %{buildroot}%{_emacs_sitestartdir}
|
|||
|
||||
|
||||
%changelog
|
||||
* Fri Jan 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 3.19.6-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
||||
|
||||
* Wed Dec 07 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 3.19.6-1
|
||||
- Update to 3.19.6; fix CVE-2022-3171
|
||||
|
||||
* Wed Dec 07 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 3.19.5-1
|
||||
- Update to 3.19.5; fix CVE-2022-1941
|
||||
|
||||
* Sun Dec 04 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 3.19.4-7
|
||||
- Update License to SPDX
|
||||
- Improved handling of gtest sources
|
||||
- Update/correct gtest commit hash to match upstream
|
||||
- Simplify the Source0 URL with a macro
|
||||
- Drop manual dependency on python3-six, no longer needed
|
||||
- Drop obsolete python_provide macro
|
||||
- Drop python3_pkgversion macro
|
||||
- Update summary and description to refer to “Python” instead of “Python 3”
|
||||
- Re-enable compiled Python extension on Python 3.11
|
||||
- Ensure all subpackages always have LICENSE, or depend on something that does
|
||||
- Remove obsolete ldconfig_scriptlets macros
|
||||
- The -vim subpackage now depends on vim-filesystem, no longer on vim-enhanced
|
||||
- Add a man page for protoc
|
||||
- Use a macro to avoid repeating the .so version, and improve .so globs
|
||||
|
||||
* Sun Aug 14 2022 Orion Poplawski <orion@nwra.com> - 3.19.4-6
|
||||
- Build python support with C++ (bz#2107921)
|
||||
|
||||
|
|
|
@ -0,0 +1,193 @@
|
|||
.TH protoc "1" "December 2022" protoc "User Commands"
|
||||
.SH NAME
|
||||
protoc \- Protobuf compiler
|
||||
.SH SYNOPSIS
|
||||
protoc
|
||||
.RI [ OPTION ]
|
||||
.I PROTO_FILES
|
||||
.SH DESCRIPTION
|
||||
.PP
|
||||
Parse
|
||||
.I PROTO_FILES
|
||||
and generate output based on the options given.
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
.B \-I\fIPATH\fR, \fB\-\-proto_path=\fIPATH
|
||||
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.
|
||||
If not found in any of the these directories, the
|
||||
.B \-\-descriptor_set_in
|
||||
descriptors will be checked for required proto file.
|
||||
.TP
|
||||
.B \-\-version
|
||||
Show version info and exit.
|
||||
.TP
|
||||
.B \-h\fR, \fB\-\-help
|
||||
Show a help message and exit.
|
||||
.TP
|
||||
.BI \-\-encode= MESSAGE_TYPE
|
||||
Read a text-format message of the given type
|
||||
from standard input and write it in binary
|
||||
to standard output.
|
||||
The message type must be defined in
|
||||
.I PROTO_FILES
|
||||
or their imports.
|
||||
.TP
|
||||
.B \-\-deterministic_output
|
||||
When using
|
||||
.BR \-\-encode ,
|
||||
ensure map fields are deterministically ordered.
|
||||
Note that this order is not canonical,
|
||||
and changes across builds or releases of
|
||||
.BR protoc (1).
|
||||
.TP
|
||||
.BI \-\-decode= MESSAGE_TYPE
|
||||
Read a binary message of the given type
|
||||
from standard input and write it in text format
|
||||
to standard output.
|
||||
The message type must be defined in
|
||||
.I PROTO_FILES
|
||||
or their imports.
|
||||
.TP
|
||||
.B \-\-decode_raw
|
||||
Read an arbitrary protocol message
|
||||
from standard input and write the raw tag/value pairs in text format
|
||||
to standard output.
|
||||
No
|
||||
.I PROTO_FILES
|
||||
should be given when using this flag.
|
||||
.TP
|
||||
.BI \-\-descriptor_set_in= FILES
|
||||
Specifies a delimited list of
|
||||
.I FILES
|
||||
each containing a
|
||||
.B FileDescriptorSet
|
||||
(a protocol buffer defined in
|
||||
.BR descriptor.proto ).
|
||||
The
|
||||
.B FileDescriptor
|
||||
for each of the
|
||||
.I PROTO_FILES
|
||||
provided will be loaded from these
|
||||
.BR FileDescriptorSets .
|
||||
If a
|
||||
.B FileDescriptor
|
||||
appears multiple times, the first occurrence will be used.
|
||||
.TP
|
||||
.B \-o\fIFILE\fR, \fB\-\-descriptor_set_out=\fIFILE
|
||||
Writes a
|
||||
.B FileDescriptorSet
|
||||
(a protocol buffer, defined in
|
||||
.BR descriptor.proto )
|
||||
containing all of the input files to
|
||||
.IR FILE .
|
||||
.TP
|
||||
.B \-\-include_imports
|
||||
When using
|
||||
.BR \-\-descriptor_set_out ,
|
||||
also include all dependencies of the input files in the set,
|
||||
so that the set is self-contained.
|
||||
.TP
|
||||
.B \-\-include_source_info
|
||||
When using
|
||||
.BR \-\-descriptor_set_out ,
|
||||
do not strip
|
||||
.B SourceCodeInfo
|
||||
from the
|
||||
.BR FileDescriptorProto .
|
||||
This results in vastly larger descriptors
|
||||
that include information about the original location
|
||||
of each decl in the source file
|
||||
as well as surrounding comments.
|
||||
.TP
|
||||
.BI \-\-dependency_out= FILE
|
||||
Write a dependency output file in the format expected by
|
||||
.BR make (1).
|
||||
This writes the transitive set of input file paths to
|
||||
.I FILE
|
||||
.TP
|
||||
.BI \-\-error_format= FORMAT
|
||||
Set the format in which to print errors.
|
||||
.I FORMAT
|
||||
may be
|
||||
.RB \(oq gcc \(cq
|
||||
(the default) or
|
||||
.RP \(oq msvs \(cq
|
||||
(Microsoft Visual Studio format).
|
||||
.TP
|
||||
.B \-\-fatal_warnings
|
||||
Make warnings be fatal (similar to
|
||||
.B \-Werr
|
||||
in
|
||||
.BR gcc (1)).
|
||||
This flag will make
|
||||
.BR protoc (1)
|
||||
return with a non-zero exit code
|
||||
if any warnings are generated.
|
||||
.TP
|
||||
.B \-\-print_free_field_numbers
|
||||
Print the free field numbers of the messages
|
||||
defined in the given proto files.
|
||||
Groups share the same field number space with the parent message.
|
||||
Extension ranges are counted as occupied fields numbers.
|
||||
.TP
|
||||
.BI \-\-plugin= EXECUTABLE
|
||||
Specifies a plugin executable to use.
|
||||
Normally,
|
||||
.BR protoc (1)
|
||||
searches the
|
||||
.B PATH
|
||||
for plugins, but you may specify additional executables
|
||||
not in the path using this flag.
|
||||
Additionally,
|
||||
.I EXECUTABLE
|
||||
may be of the form
|
||||
.BR NAME=\fIPATH ,
|
||||
in which case the given plugin name
|
||||
is mapped to the given executable
|
||||
even if the executable\(cqs own name differs.
|
||||
.TP
|
||||
.BI \-\-cpp_out= OUT_DIR
|
||||
Generate C++ header and source.
|
||||
.TP
|
||||
.BI \-\-csharp_out= OUT_DIR
|
||||
Generate C# source file.
|
||||
.TP
|
||||
.BI \-\-java_out= OUT_DIR
|
||||
Generate Java source file.
|
||||
.TP
|
||||
.BI \-\-js_out= OUT_DIR
|
||||
Generate JavaScript source.
|
||||
.TP
|
||||
.BI \-\-kotlin_out= OUT_DIR
|
||||
Generate Kotlin file.
|
||||
.TP
|
||||
.BI \-\-objc_out= OUT_DIR
|
||||
Generate Objective-C header and source.
|
||||
.TP
|
||||
.BI \-\-php_out= OUT_DIR
|
||||
Generate PHP source file.
|
||||
.TP
|
||||
.BI \-\-python_out= OUT_DIR
|
||||
Generate Python source file.
|
||||
.TP
|
||||
.BI \-\-ruby_out= OUT_DIR
|
||||
Generate Ruby source file.
|
||||
.TP
|
||||
.BI @ <filename>
|
||||
Read options and filenames from file.
|
||||
If a relative file path is specified,
|
||||
the file will be searched in the working directory.
|
||||
The
|
||||
.B \-\-proto_path
|
||||
option will not affect how this argument file is searched.
|
||||
Content of the file will be expanded in the position of
|
||||
.BI @ <filename>
|
||||
as in the argument list.
|
||||
Note that shell expansion is not applied to the content of the file
|
||||
(i.e., you cannot use quotes, wildcards, escapes, commands, etc.).
|
||||
Each line corresponds to a single argument, even if it contains spaces.
|
||||
.SH "SEE ALSO"
|
||||
.BR make (1),
|
||||
.BR gcc (1)
|
4
sources
4
sources
|
@ -1,2 +1,2 @@
|
|||
SHA512 (protobuf-3.19.4-all.tar.gz) = 2653b9852e5ac69f1de9b6ac02887c366aa0a9efd2b29e53135f61a9a10f5a1b5853a8c4cbb3658f519dfdbde9f32c547c39751ab417f123162b08be9e76c9e1
|
||||
SHA512 (5ec7f0c4a113e2f18ac2c6cc7df51ad6afc24081.zip) = ba904f3a0b606357873db938986b0abf37425a65501340fe81f73f9c5d05f542429662fe71c0b10e4796cb6335ae9a687fc9fb21084f2f5bfd2ede79977f5821
|
||||
SHA512 (protobuf-3.19.6-all.tar.gz) = 8f92242f2be8e1bbfba41341c87709ad91ad83b8b3e3df88bb430411541d3399295f49291fd52b50e3487b0fce33181cb4d175685fd25aac72adfaee26a612d4
|
||||
SHA512 (googletest-5ec7f0c4a113e2f18ac2c6cc7df51ad6afc24081.tar.gz) = 623b077b3334958fafcbc34aa85891883277994af33be530efd903f47738a3e3562001cbf3b6da1a5e7d03803c5bd51bcc1fab81490db85d5a4f2b15e7de1495
|
||||
|
|
Loading…
Reference in New Issue