%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.aliyun.com/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 * Fri Jun 09 2023 Python_Bot - 1.0-1 - Package Spec generated