summaryrefslogtreecommitdiff
path: root/python-protobuf-distutils.spec
diff options
context:
space:
mode:
Diffstat (limited to 'python-protobuf-distutils.spec')
-rw-r--r--python-protobuf-distutils.spec396
1 files changed, 396 insertions, 0 deletions
diff --git a/python-protobuf-distutils.spec b/python-protobuf-distutils.spec
new file mode 100644
index 0000000..b7d7caa
--- /dev/null
+++ b/python-protobuf-distutils.spec
@@ -0,0 +1,396 @@
+%global _empty_manifest_terminate_build 0
+Name: python-protobuf-distutils
+Version: 1.0
+Release: 1
+Summary: This is a distutils extension to generate Python code for .proto files using an installed protoc binary.
+License: 3-Clause BSD License
+URL: https://github.com/protocolbuffers/protobuf/
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/81/91/9c1d919528b38d9461c2c209df85845d286b901274bbe65e4957baf27366/protobuf_distutils-1.0.tar.gz
+BuildArch: noarch
+
+
+%description
+# Python setuptools extension
+
+This is an extension for Python setuptools which uses an installed protobuf
+compiler (`protoc`) to generate Python sources.
+
+## Installing
+
+To use this extension, it needs to be installed so it can be imported by other
+projects' setup.py.
+
+```shell
+$ python setup.py build
+$ python -m pip install .
+```
+
+(If you want to test changes to the extension, you can use `python setup.py
+develop`.)
+
+## Usage
+
+### Example setup.py configuration
+
+```python
+from setuptools import setup
+setup(
+ # ...
+ name='example_project',
+
+ # Require this package, but only for setup (not installation):
+ setup_requires=['protobuf_distutils'],
+
+ options={
+ # See below for details.
+ 'generate_py_protobufs': {
+ 'source_dir': 'path/to/protos',
+ 'extra_proto_paths': ['path/to/other/project/protos'],
+ 'output_dir': 'path/to/project/sources', # default '.'
+ 'proto_files': ['relative/path/to/just_this_file.proto'],
+ 'protoc': 'path/to/protoc.exe',
+ },
+ },
+)
+```
+
+### Example build invocation
+
+These steps will generate protobuf sources so they are included when building
+and installing `example_project` (see above):
+
+```shell
+$ python setup.py generate_py_protobufs
+$ python setup.py build
+$ python -m pip install .
+```
+
+## Options
+
+- `source_dir`:
+
+ This is the directory holding .proto files to be processed.
+
+ The default behavior is to generate sources for all .proto files found under
+ `source_dir`, recursively. This behavior can be controlled with options below.
+
+- `proto_root_path`:
+
+ This is the root path for resolving imports in source .proto files.
+
+ The default is the shortest prefix of `source_dir` among `[source_dir] +
+ self.extra_proto_paths`.
+
+- `extra_proto_paths`:
+
+ Specifies additional paths that should be used to find imports, in
+ addition to `source_dir`.
+
+ This option can be used to specify the path to other protobuf sources,
+ which are imported by files under `source_dir`. No Python code will
+ be generated for .proto files under `extra_proto_paths`.
+
+- `output_dir`:
+
+ Specifies where generated code should be placed.
+
+ Typically, this should be the root package that generated Python modules
+ should be below.
+
+ The generated files will be placed under `output_dir` according to the
+ relative source paths under `proto_root_path`. For example, the source file
+ `${proto_root_path}/subdir/message.proto` will be generated as the Python
+ module `${output_dir}/subdir/message_pb2.py`.
+
+- `proto_files`:
+
+ A list of strings, specific .proto file paths for generating code, instead of
+ searching for all .proto files under `source_path`.
+
+ These paths are relative to `source_dir`. For example, to generate code
+ for just `${source_dir}/subdir/message.proto`, specify
+ `['subdir/message.proto']`.
+
+- `protoc`:
+
+ By default, the protoc binary (the Protobuf compiler) is found by
+ searching the environment path. To use a specific protoc binary, its
+ path can be specified.
+
+
+
+
+%package -n python3-protobuf-distutils
+Summary: This is a distutils extension to generate Python code for .proto files using an installed protoc binary.
+Provides: python-protobuf-distutils
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-protobuf-distutils
+# Python setuptools extension
+
+This is an extension for Python setuptools which uses an installed protobuf
+compiler (`protoc`) to generate Python sources.
+
+## Installing
+
+To use this extension, it needs to be installed so it can be imported by other
+projects' setup.py.
+
+```shell
+$ python setup.py build
+$ python -m pip install .
+```
+
+(If you want to test changes to the extension, you can use `python setup.py
+develop`.)
+
+## Usage
+
+### Example setup.py configuration
+
+```python
+from setuptools import setup
+setup(
+ # ...
+ name='example_project',
+
+ # Require this package, but only for setup (not installation):
+ setup_requires=['protobuf_distutils'],
+
+ options={
+ # See below for details.
+ 'generate_py_protobufs': {
+ 'source_dir': 'path/to/protos',
+ 'extra_proto_paths': ['path/to/other/project/protos'],
+ 'output_dir': 'path/to/project/sources', # default '.'
+ 'proto_files': ['relative/path/to/just_this_file.proto'],
+ 'protoc': 'path/to/protoc.exe',
+ },
+ },
+)
+```
+
+### Example build invocation
+
+These steps will generate protobuf sources so they are included when building
+and installing `example_project` (see above):
+
+```shell
+$ python setup.py generate_py_protobufs
+$ python setup.py build
+$ python -m pip install .
+```
+
+## Options
+
+- `source_dir`:
+
+ This is the directory holding .proto files to be processed.
+
+ The default behavior is to generate sources for all .proto files found under
+ `source_dir`, recursively. This behavior can be controlled with options below.
+
+- `proto_root_path`:
+
+ This is the root path for resolving imports in source .proto files.
+
+ The default is the shortest prefix of `source_dir` among `[source_dir] +
+ self.extra_proto_paths`.
+
+- `extra_proto_paths`:
+
+ Specifies additional paths that should be used to find imports, in
+ addition to `source_dir`.
+
+ This option can be used to specify the path to other protobuf sources,
+ which are imported by files under `source_dir`. No Python code will
+ be generated for .proto files under `extra_proto_paths`.
+
+- `output_dir`:
+
+ Specifies where generated code should be placed.
+
+ Typically, this should be the root package that generated Python modules
+ should be below.
+
+ The generated files will be placed under `output_dir` according to the
+ relative source paths under `proto_root_path`. For example, the source file
+ `${proto_root_path}/subdir/message.proto` will be generated as the Python
+ module `${output_dir}/subdir/message_pb2.py`.
+
+- `proto_files`:
+
+ A list of strings, specific .proto file paths for generating code, instead of
+ searching for all .proto files under `source_path`.
+
+ These paths are relative to `source_dir`. For example, to generate code
+ for just `${source_dir}/subdir/message.proto`, specify
+ `['subdir/message.proto']`.
+
+- `protoc`:
+
+ By default, the protoc binary (the Protobuf compiler) is found by
+ searching the environment path. To use a specific protoc binary, its
+ path can be specified.
+
+
+
+
+%package help
+Summary: Development documents and examples for protobuf-distutils
+Provides: python3-protobuf-distutils-doc
+%description help
+# Python setuptools extension
+
+This is an extension for Python setuptools which uses an installed protobuf
+compiler (`protoc`) to generate Python sources.
+
+## Installing
+
+To use this extension, it needs to be installed so it can be imported by other
+projects' setup.py.
+
+```shell
+$ python setup.py build
+$ python -m pip install .
+```
+
+(If you want to test changes to the extension, you can use `python setup.py
+develop`.)
+
+## Usage
+
+### Example setup.py configuration
+
+```python
+from setuptools import setup
+setup(
+ # ...
+ name='example_project',
+
+ # Require this package, but only for setup (not installation):
+ setup_requires=['protobuf_distutils'],
+
+ options={
+ # See below for details.
+ 'generate_py_protobufs': {
+ 'source_dir': 'path/to/protos',
+ 'extra_proto_paths': ['path/to/other/project/protos'],
+ 'output_dir': 'path/to/project/sources', # default '.'
+ 'proto_files': ['relative/path/to/just_this_file.proto'],
+ 'protoc': 'path/to/protoc.exe',
+ },
+ },
+)
+```
+
+### Example build invocation
+
+These steps will generate protobuf sources so they are included when building
+and installing `example_project` (see above):
+
+```shell
+$ python setup.py generate_py_protobufs
+$ python setup.py build
+$ python -m pip install .
+```
+
+## Options
+
+- `source_dir`:
+
+ This is the directory holding .proto files to be processed.
+
+ The default behavior is to generate sources for all .proto files found under
+ `source_dir`, recursively. This behavior can be controlled with options below.
+
+- `proto_root_path`:
+
+ This is the root path for resolving imports in source .proto files.
+
+ The default is the shortest prefix of `source_dir` among `[source_dir] +
+ self.extra_proto_paths`.
+
+- `extra_proto_paths`:
+
+ Specifies additional paths that should be used to find imports, in
+ addition to `source_dir`.
+
+ This option can be used to specify the path to other protobuf sources,
+ which are imported by files under `source_dir`. No Python code will
+ be generated for .proto files under `extra_proto_paths`.
+
+- `output_dir`:
+
+ Specifies where generated code should be placed.
+
+ Typically, this should be the root package that generated Python modules
+ should be below.
+
+ The generated files will be placed under `output_dir` according to the
+ relative source paths under `proto_root_path`. For example, the source file
+ `${proto_root_path}/subdir/message.proto` will be generated as the Python
+ module `${output_dir}/subdir/message_pb2.py`.
+
+- `proto_files`:
+
+ A list of strings, specific .proto file paths for generating code, instead of
+ searching for all .proto files under `source_path`.
+
+ These paths are relative to `source_dir`. For example, to generate code
+ for just `${source_dir}/subdir/message.proto`, specify
+ `['subdir/message.proto']`.
+
+- `protoc`:
+
+ By default, the protoc binary (the Protobuf compiler) is found by
+ searching the environment path. To use a specific protoc binary, its
+ path can be specified.
+
+
+
+
+%prep
+%autosetup -n protobuf-distutils-1.0
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-protobuf-distutils -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Mon May 29 2023 Python_Bot <Python_Bot@openeuler.org> - 1.0-1
+- Package Spec generated