summaryrefslogtreecommitdiff
path: root/python-pyinstaller-versionfile.spec
diff options
context:
space:
mode:
Diffstat (limited to 'python-pyinstaller-versionfile.spec')
-rw-r--r--python-pyinstaller-versionfile.spec523
1 files changed, 523 insertions, 0 deletions
diff --git a/python-pyinstaller-versionfile.spec b/python-pyinstaller-versionfile.spec
new file mode 100644
index 0000000..1e37f9b
--- /dev/null
+++ b/python-pyinstaller-versionfile.spec
@@ -0,0 +1,523 @@
+%global _empty_manifest_terminate_build 0
+Name: python-pyinstaller-versionfile
+Version: 2.1.1
+Release: 1
+Summary: Create a version file from a simple YAML config file
+License: MIT License
+URL: https://github.com/DudeNr33/pyinstaller-versionfile
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/b1/51/f6908bdf1c43194d159dfdf82a672d4557e78767e58eacc568c21a0a0253/pyinstaller_versionfile-2.1.1.tar.gz
+BuildArch: noarch
+
+Requires: python3-Jinja2
+Requires: python3-PyYAML
+Requires: python3-packaging
+Requires: python3-pathlib
+
+%description
+# pyinstaller-versionfile
+![GitHub](https://img.shields.io/github/license/dudenr33/pyinstaller-versionfile)
+![PyPI](https://img.shields.io/pypi/v/pyinstaller-versionfile)
+![Travis (.com) branch](https://img.shields.io/travis/com/dudenr33/pyinstaller-versionfile/master)
+![Codecov](https://img.shields.io/codecov/c/github/dudenr33/pyinstaller-versionfile/master)
+![PyPI - Downloads](https://img.shields.io/pypi/dm/pyinstaller-versionfile)
+![Code Climate maintainability](https://img.shields.io/codeclimate/maintainability/DudeNr33/pyinstaller-versionfile)
+
+Create a windows version-file from a simple YAML file that can be used by PyInstaller.
+
+## Background
+Pyinstaller provides a way to [capture Windows version data](https://pyinstaller.readthedocs.io/en/stable/usage.html#capturing-windows-version-data)
+through a so called _version-file_. The process of crafting such a version file, and especially keeping the version number
+updated, is a bit cumbersome.
+This package aims to make the creation of such a version file easier.
+
+The key/value pairs that be specified in the version file and [their official meaning](https://docs.microsoft.com/en-us/windows/win32/menurc/stringfileinfo-block) are shown the following table:
+
+| Parameter Name | Description |
+|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| CompanyName | Name of the company that produced the file, for example, "My Imaginary Company, Inc.". |
+| FileDescription | Description to be presented to users. It may be displayed when the user is choosing files to install. For example, "A simple app that does simple things.". |
+| InternalName | Internal name of the file. If the file has no internal name, this string should be the original filename, without extension. For example, 'Simple App". |
+| LegalCopyright | Copyright notices that apply to the file. This should include the full text of all notices, legal symbols, copyright dates, and so on. For example, "Copyright © 2000-2022, My Imaginary Company, Inc. All rights reserved.". |
+| OriginalFilename | Original name of the file, not including a path. This information enables an application to determine whether a file has been renamed by a user. For example, "SimpleApp.exe". |
+| ProductName | Name of the product with which the file is distributed, for example, "Simple App". |
+| Translation | Combinations of language and character sets supported by the application. See [the documentation](https://learn.microsoft.com/en-us/windows/win32/menurc/varfileinfo-block#remarks) for the codes to use. Multiple values can be specified. |
+
+## Usage
+pyinstaller-versionfile provides both a command line interface and a functional API.
+
+### Command line interface
+pyinstaller-versionfile provides a command line interface to convert a simple YAML file into a version-file suitable
+to pass to PyInstaller via the `--version-file=` option.
+
+A complete YAML configuration looks like this:
+```YAML
+Version: 1.2.3.4
+CompanyName: My Imaginary Company
+FileDescription: Simple App
+InternalName: Simple App
+LegalCopyright: © My Imaginary Company. All rights reserved.
+OriginalFilename: SimpleApp.exe
+ProductName: Simple App
+Translation:
+ - langID: 0
+ charsetID: 1200
+ - langID: 1033
+ charsetID: 1252
+```
+The encoding must be UTF-8. All fields are optional, you can choose to specify only those that are of interest to you.
+
+To create version-file from this, simple run:
+```cmd
+create-version-file metadata.yml --outfile file_version_info.txt
+```
+where metadata.yml is the YAML configuration file from above.
+
+
+#### Extracting Version Information
+As an alternative to specifying the version directly in the YAML file, there are two alternatives which may be more
+suitable, depending on the use case:
+
+##### Link to an External File
+Instead of writing the version string directly into the YAML file, you can also specify the (relative) path to another
+file. Note that this file must only contain the version string and nothing else.
+
+```YAML
+Version: VERSION.txt
+CompanyName: My Imaginary Company
+FileDescription: Simple App
+InternalName: Simple App
+LegalCopyright: © My Imaginary Company. All rights reserved.
+OriginalFilename: SimpleApp.exe
+ProductName: Simple App
+```
+
+##### Setting the Version from the Command Line
+It is also possible to set the version directly over the command line using the `--version` option:
+```cmd
+create-version-file metadata.yml --outfile file_version_info.txt --version 0.8.1.5
+```
+This can be useful if you want to use a CI build number as the version.
+
+### Functional API
+You can also use pyinstaller-versionfile from your own python code by directly calling the functional API.
+``` Python
+import pyinstaller_versionfile
+
+pyinstaller_versionfile.create_versionfile_from_input_file(
+ output_file="versionfile.txt",
+ input_file="metadata.yml",
+ version="1.2.3.4" # optional, can be set to overwrite version information (equivalent to --version when using the CLI)
+)
+```
+
+It is not necessary to use a file as input, you can also directly specify the desired values.
+All of them are optional and will be filled with placeholder values if not specified.
+``` Python
+import pyinstaller_versionfile
+
+pyinstaller_versionfile.create_versionfile(
+ output_file="versionfile.txt",
+ version="1.2.3.4",
+ company_name="My Imaginary Company",
+ file_description="Simple App",
+ internal_name="Simple App",
+ legal_copyright="© My Imaginary Company. All rights reserved.",
+ original_filename="SimpleApp.exe",
+ product_name="Simple App",
+ translations=[0, 1200]
+)
+```
+
+## Contributing
+
+If you think you found a bug, or have a proposal for an enhancement, do not hesitate
+to create a new issue or submit a pull request. I will look into it as soon
+as possible.
+
+
+# Changelog
+
+## v2.1.1 (2022-11-21)
+
+### Fix
+
+* Add new `translations` parameter to functional API. [DudeNr33]
+
+## v2.1.0 (2022-11-20)
+
+### New
+
+* Add support for *Translation* field to specify supported languages and charsets. [DudeNr33]
+
+* Added a table with the official definition of the parameters in the Readme. [mkhoshbin1]
+
+## v2.0.0 (2021-04-06)
+
+### New
+
+* Functional API for programmatic use. [DudeNr33]
+
+* Drop compatibility with Python<3.6. [DudeNr33]
+
+* Definition of metadata and creation of version file are now handled in separate classes, and it is not strictly necessary to use a file as input. [DudeNr33]
+
+* Use gitchangelog for automatic changelog generation. [dudenr33]
+
+
+
+%package -n python3-pyinstaller-versionfile
+Summary: Create a version file from a simple YAML config file
+Provides: python-pyinstaller-versionfile
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-pyinstaller-versionfile
+# pyinstaller-versionfile
+![GitHub](https://img.shields.io/github/license/dudenr33/pyinstaller-versionfile)
+![PyPI](https://img.shields.io/pypi/v/pyinstaller-versionfile)
+![Travis (.com) branch](https://img.shields.io/travis/com/dudenr33/pyinstaller-versionfile/master)
+![Codecov](https://img.shields.io/codecov/c/github/dudenr33/pyinstaller-versionfile/master)
+![PyPI - Downloads](https://img.shields.io/pypi/dm/pyinstaller-versionfile)
+![Code Climate maintainability](https://img.shields.io/codeclimate/maintainability/DudeNr33/pyinstaller-versionfile)
+
+Create a windows version-file from a simple YAML file that can be used by PyInstaller.
+
+## Background
+Pyinstaller provides a way to [capture Windows version data](https://pyinstaller.readthedocs.io/en/stable/usage.html#capturing-windows-version-data)
+through a so called _version-file_. The process of crafting such a version file, and especially keeping the version number
+updated, is a bit cumbersome.
+This package aims to make the creation of such a version file easier.
+
+The key/value pairs that be specified in the version file and [their official meaning](https://docs.microsoft.com/en-us/windows/win32/menurc/stringfileinfo-block) are shown the following table:
+
+| Parameter Name | Description |
+|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| CompanyName | Name of the company that produced the file, for example, "My Imaginary Company, Inc.". |
+| FileDescription | Description to be presented to users. It may be displayed when the user is choosing files to install. For example, "A simple app that does simple things.". |
+| InternalName | Internal name of the file. If the file has no internal name, this string should be the original filename, without extension. For example, 'Simple App". |
+| LegalCopyright | Copyright notices that apply to the file. This should include the full text of all notices, legal symbols, copyright dates, and so on. For example, "Copyright © 2000-2022, My Imaginary Company, Inc. All rights reserved.". |
+| OriginalFilename | Original name of the file, not including a path. This information enables an application to determine whether a file has been renamed by a user. For example, "SimpleApp.exe". |
+| ProductName | Name of the product with which the file is distributed, for example, "Simple App". |
+| Translation | Combinations of language and character sets supported by the application. See [the documentation](https://learn.microsoft.com/en-us/windows/win32/menurc/varfileinfo-block#remarks) for the codes to use. Multiple values can be specified. |
+
+## Usage
+pyinstaller-versionfile provides both a command line interface and a functional API.
+
+### Command line interface
+pyinstaller-versionfile provides a command line interface to convert a simple YAML file into a version-file suitable
+to pass to PyInstaller via the `--version-file=` option.
+
+A complete YAML configuration looks like this:
+```YAML
+Version: 1.2.3.4
+CompanyName: My Imaginary Company
+FileDescription: Simple App
+InternalName: Simple App
+LegalCopyright: © My Imaginary Company. All rights reserved.
+OriginalFilename: SimpleApp.exe
+ProductName: Simple App
+Translation:
+ - langID: 0
+ charsetID: 1200
+ - langID: 1033
+ charsetID: 1252
+```
+The encoding must be UTF-8. All fields are optional, you can choose to specify only those that are of interest to you.
+
+To create version-file from this, simple run:
+```cmd
+create-version-file metadata.yml --outfile file_version_info.txt
+```
+where metadata.yml is the YAML configuration file from above.
+
+
+#### Extracting Version Information
+As an alternative to specifying the version directly in the YAML file, there are two alternatives which may be more
+suitable, depending on the use case:
+
+##### Link to an External File
+Instead of writing the version string directly into the YAML file, you can also specify the (relative) path to another
+file. Note that this file must only contain the version string and nothing else.
+
+```YAML
+Version: VERSION.txt
+CompanyName: My Imaginary Company
+FileDescription: Simple App
+InternalName: Simple App
+LegalCopyright: © My Imaginary Company. All rights reserved.
+OriginalFilename: SimpleApp.exe
+ProductName: Simple App
+```
+
+##### Setting the Version from the Command Line
+It is also possible to set the version directly over the command line using the `--version` option:
+```cmd
+create-version-file metadata.yml --outfile file_version_info.txt --version 0.8.1.5
+```
+This can be useful if you want to use a CI build number as the version.
+
+### Functional API
+You can also use pyinstaller-versionfile from your own python code by directly calling the functional API.
+``` Python
+import pyinstaller_versionfile
+
+pyinstaller_versionfile.create_versionfile_from_input_file(
+ output_file="versionfile.txt",
+ input_file="metadata.yml",
+ version="1.2.3.4" # optional, can be set to overwrite version information (equivalent to --version when using the CLI)
+)
+```
+
+It is not necessary to use a file as input, you can also directly specify the desired values.
+All of them are optional and will be filled with placeholder values if not specified.
+``` Python
+import pyinstaller_versionfile
+
+pyinstaller_versionfile.create_versionfile(
+ output_file="versionfile.txt",
+ version="1.2.3.4",
+ company_name="My Imaginary Company",
+ file_description="Simple App",
+ internal_name="Simple App",
+ legal_copyright="© My Imaginary Company. All rights reserved.",
+ original_filename="SimpleApp.exe",
+ product_name="Simple App",
+ translations=[0, 1200]
+)
+```
+
+## Contributing
+
+If you think you found a bug, or have a proposal for an enhancement, do not hesitate
+to create a new issue or submit a pull request. I will look into it as soon
+as possible.
+
+
+# Changelog
+
+## v2.1.1 (2022-11-21)
+
+### Fix
+
+* Add new `translations` parameter to functional API. [DudeNr33]
+
+## v2.1.0 (2022-11-20)
+
+### New
+
+* Add support for *Translation* field to specify supported languages and charsets. [DudeNr33]
+
+* Added a table with the official definition of the parameters in the Readme. [mkhoshbin1]
+
+## v2.0.0 (2021-04-06)
+
+### New
+
+* Functional API for programmatic use. [DudeNr33]
+
+* Drop compatibility with Python<3.6. [DudeNr33]
+
+* Definition of metadata and creation of version file are now handled in separate classes, and it is not strictly necessary to use a file as input. [DudeNr33]
+
+* Use gitchangelog for automatic changelog generation. [dudenr33]
+
+
+
+%package help
+Summary: Development documents and examples for pyinstaller-versionfile
+Provides: python3-pyinstaller-versionfile-doc
+%description help
+# pyinstaller-versionfile
+![GitHub](https://img.shields.io/github/license/dudenr33/pyinstaller-versionfile)
+![PyPI](https://img.shields.io/pypi/v/pyinstaller-versionfile)
+![Travis (.com) branch](https://img.shields.io/travis/com/dudenr33/pyinstaller-versionfile/master)
+![Codecov](https://img.shields.io/codecov/c/github/dudenr33/pyinstaller-versionfile/master)
+![PyPI - Downloads](https://img.shields.io/pypi/dm/pyinstaller-versionfile)
+![Code Climate maintainability](https://img.shields.io/codeclimate/maintainability/DudeNr33/pyinstaller-versionfile)
+
+Create a windows version-file from a simple YAML file that can be used by PyInstaller.
+
+## Background
+Pyinstaller provides a way to [capture Windows version data](https://pyinstaller.readthedocs.io/en/stable/usage.html#capturing-windows-version-data)
+through a so called _version-file_. The process of crafting such a version file, and especially keeping the version number
+updated, is a bit cumbersome.
+This package aims to make the creation of such a version file easier.
+
+The key/value pairs that be specified in the version file and [their official meaning](https://docs.microsoft.com/en-us/windows/win32/menurc/stringfileinfo-block) are shown the following table:
+
+| Parameter Name | Description |
+|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| CompanyName | Name of the company that produced the file, for example, "My Imaginary Company, Inc.". |
+| FileDescription | Description to be presented to users. It may be displayed when the user is choosing files to install. For example, "A simple app that does simple things.". |
+| InternalName | Internal name of the file. If the file has no internal name, this string should be the original filename, without extension. For example, 'Simple App". |
+| LegalCopyright | Copyright notices that apply to the file. This should include the full text of all notices, legal symbols, copyright dates, and so on. For example, "Copyright © 2000-2022, My Imaginary Company, Inc. All rights reserved.". |
+| OriginalFilename | Original name of the file, not including a path. This information enables an application to determine whether a file has been renamed by a user. For example, "SimpleApp.exe". |
+| ProductName | Name of the product with which the file is distributed, for example, "Simple App". |
+| Translation | Combinations of language and character sets supported by the application. See [the documentation](https://learn.microsoft.com/en-us/windows/win32/menurc/varfileinfo-block#remarks) for the codes to use. Multiple values can be specified. |
+
+## Usage
+pyinstaller-versionfile provides both a command line interface and a functional API.
+
+### Command line interface
+pyinstaller-versionfile provides a command line interface to convert a simple YAML file into a version-file suitable
+to pass to PyInstaller via the `--version-file=` option.
+
+A complete YAML configuration looks like this:
+```YAML
+Version: 1.2.3.4
+CompanyName: My Imaginary Company
+FileDescription: Simple App
+InternalName: Simple App
+LegalCopyright: © My Imaginary Company. All rights reserved.
+OriginalFilename: SimpleApp.exe
+ProductName: Simple App
+Translation:
+ - langID: 0
+ charsetID: 1200
+ - langID: 1033
+ charsetID: 1252
+```
+The encoding must be UTF-8. All fields are optional, you can choose to specify only those that are of interest to you.
+
+To create version-file from this, simple run:
+```cmd
+create-version-file metadata.yml --outfile file_version_info.txt
+```
+where metadata.yml is the YAML configuration file from above.
+
+
+#### Extracting Version Information
+As an alternative to specifying the version directly in the YAML file, there are two alternatives which may be more
+suitable, depending on the use case:
+
+##### Link to an External File
+Instead of writing the version string directly into the YAML file, you can also specify the (relative) path to another
+file. Note that this file must only contain the version string and nothing else.
+
+```YAML
+Version: VERSION.txt
+CompanyName: My Imaginary Company
+FileDescription: Simple App
+InternalName: Simple App
+LegalCopyright: © My Imaginary Company. All rights reserved.
+OriginalFilename: SimpleApp.exe
+ProductName: Simple App
+```
+
+##### Setting the Version from the Command Line
+It is also possible to set the version directly over the command line using the `--version` option:
+```cmd
+create-version-file metadata.yml --outfile file_version_info.txt --version 0.8.1.5
+```
+This can be useful if you want to use a CI build number as the version.
+
+### Functional API
+You can also use pyinstaller-versionfile from your own python code by directly calling the functional API.
+``` Python
+import pyinstaller_versionfile
+
+pyinstaller_versionfile.create_versionfile_from_input_file(
+ output_file="versionfile.txt",
+ input_file="metadata.yml",
+ version="1.2.3.4" # optional, can be set to overwrite version information (equivalent to --version when using the CLI)
+)
+```
+
+It is not necessary to use a file as input, you can also directly specify the desired values.
+All of them are optional and will be filled with placeholder values if not specified.
+``` Python
+import pyinstaller_versionfile
+
+pyinstaller_versionfile.create_versionfile(
+ output_file="versionfile.txt",
+ version="1.2.3.4",
+ company_name="My Imaginary Company",
+ file_description="Simple App",
+ internal_name="Simple App",
+ legal_copyright="© My Imaginary Company. All rights reserved.",
+ original_filename="SimpleApp.exe",
+ product_name="Simple App",
+ translations=[0, 1200]
+)
+```
+
+## Contributing
+
+If you think you found a bug, or have a proposal for an enhancement, do not hesitate
+to create a new issue or submit a pull request. I will look into it as soon
+as possible.
+
+
+# Changelog
+
+## v2.1.1 (2022-11-21)
+
+### Fix
+
+* Add new `translations` parameter to functional API. [DudeNr33]
+
+## v2.1.0 (2022-11-20)
+
+### New
+
+* Add support for *Translation* field to specify supported languages and charsets. [DudeNr33]
+
+* Added a table with the official definition of the parameters in the Readme. [mkhoshbin1]
+
+## v2.0.0 (2021-04-06)
+
+### New
+
+* Functional API for programmatic use. [DudeNr33]
+
+* Drop compatibility with Python<3.6. [DudeNr33]
+
+* Definition of metadata and creation of version file are now handled in separate classes, and it is not strictly necessary to use a file as input. [DudeNr33]
+
+* Use gitchangelog for automatic changelog generation. [dudenr33]
+
+
+
+%prep
+%autosetup -n pyinstaller-versionfile-2.1.1
+
+%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-pyinstaller-versionfile -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Thu May 18 2023 Python_Bot <Python_Bot@openeuler.org> - 2.1.1-1
+- Package Spec generated