diff options
author | CoprDistGit <infra@openeuler.org> | 2023-05-05 11:03:44 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-05-05 11:03:44 +0000 |
commit | f678a0e2856ae13b49e62f02d68713f2e21945df (patch) | |
tree | dd4030d5884834c4b155e2890075192b9ed6c4de | |
parent | 8042420d0a85c939a8466a500786c3b354ebd88c (diff) |
automatic import of python-fontmakeopeneuler20.03
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-fontmake.spec | 481 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 483 insertions, 0 deletions
@@ -0,0 +1 @@ +/fontmake-3.5.1.zip diff --git a/python-fontmake.spec b/python-fontmake.spec new file mode 100644 index 0000000..c693730 --- /dev/null +++ b/python-fontmake.spec @@ -0,0 +1,481 @@ +%global _empty_manifest_terminate_build 0 +Name: python-fontmake +Version: 3.5.1 +Release: 1 +Summary: Compile fonts from sources (UFO, Glyphs) to binary (OpenType, TrueType). +License: Apache Software License 2.0 +URL: https://github.com/googlei18n/fontmake +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/1c/88/ad0cabeba453636d81b6ca19bc32fef4cc15ec9ad7bb97ab168a1c6896f5/fontmake-3.5.1.zip +BuildArch: noarch + +Requires: python3-glyphsLib +Requires: python3-ufo2ft[compreffor] +Requires: python3-fontMath +Requires: python3-ufoLib2 +Requires: python3-attrs +Requires: python3-fonttools[ufo,unicode] +Requires: python3-fonttools[lxml,ufo,unicode] +Requires: python3-skia-pathops +Requires: python3-MutatorMath +Requires: python3-ttfautohint-py +Requires: python3-ttfautohint-py +Requires: python3-MutatorMath +Requires: python3-skia-pathops + +%description +![GitHub Actions Build Status][] ![Python Versions][] [![PyPI +Version][]][1] + +# fontmake + +`fontmake` compiles fonts from various sources (`.glyphs`, `.ufo`, `designspace`) into binaries (`.otf`, `.ttf`). You can use it to create static instances and variable fonts. + +## Installation + +Fontmake requires Python 3.7 or later. + +Releases are available on [PyPI][] and can be installed with [pip][]. + +``` bash +pip3 install fontmake +``` + +Use the `-U`, `--upgrade` option to update fontmake and its dependencies +to the newest available release: + +``` bash +pip3 install -U fontmake +``` + +## Basic Usage + +After installation, you will be able to use the `fontmake` executable. + +For example, to compile a variable font from a Glyphs source file, use: + +``` bash +fontmake MyFont.glyphs -o variable +``` + +The most important command line arguments to the `fontmake` executable are the required input, specified either as positional argument or using one of `-g`/`-u`/`-m` flags, and the optional `-o` flag, which chooses the output file format. + +### Source file format options + +There are two ways to specify the source file or files: + +One can either use the following, mutually exclusive, flags: +* `-g filename.glyphs`: Converts a Glyphs source file to binary. +* `-u filename.ufo ...`: Converts one or more UFO files to binary. +* `-m filename.designspace`: Converts a Designspace file to binary. (The `-m` is for `mutatormath`, an old Python library for handling designspaces.) + +Alternatively, one can specify the input(s) as positional arguments without the flag, letting fontmake infer the source format from the file extension: e.g. ``fontmake MyFont.designspace``, etc. + +Note: if the positional arguments are preceded by an option that takes one or more arguments, you need to use the special `--` separator to mark all following +arguments as positional (non-options), otherwise the parser gets confused. E.g., the `-i` option takes zero or one arguments (see futher below for details); without `--`, argparse thinks you didn't provide any inputs: + +```bash +fontmake -i -- MyFont.designspace +``` + +Exactly one type of input can/must be specified, using either approaches. + +### Output file format options + +You may provide one or more output file formats after the `-o` option. For example, `-o otf ttf` creates OTF and TTF binary font files for each master in your input file. + +The following output file formats are available: + +* `otf`: Per-master OTF (CFF-outline) binaries. Placed in the `master_otf/` directory. +* `ttf`: Per-master TTF (TrueType-outline) binaries. Placed in the `master_ttf/` directory. +* `otf-cff2`: Per-master OTF binaries with CFF2 outlines. Placed in the `master_otf/` directory. +* `variable`: A TrueType variable font. Placed in the `variable_ttf/` directory. +* `variable-cff2`: A variable font with CFF2 outlines. Placed in the `variable_otf/` directory. + +The following output file formats are also available, but are generally used internally by fontmake as an intermediate step to one of the above outputs: + +* `otf-interpolatable`: OTF binaries suitable for merging into a variable font. Placed in the `master_otf_interpolatable/` directory. (These differ from `otf` in that the outlines are unoptimized.) +* `ttf-interpolatable`: TTF binaries suitable for merging into a variable font. Placed in the `master_ttf_interpolatable/` directory. (The outlines are converted to quadratic curves in an interpolation-compatible way.) +* `ufo`: Glyphs sources can be converted to UFO. Placed in the `master_ufo/` directory. + +If no format option is specified, the default is `-o otf ttf`. + +### Other important command line options + +* `-i` (Interpolate instances): Having per-master binaries is not always what you expect; if you have defined instances ("exports") in your Glyphs file, they will *not* be generated by default. To generate them, pass the `-i` flag, which interpolates static instances, and places them in the `instance_ttf/` or `instance_otf/` directory as appropriate. + +* `--output-dir <some_directory>`: Places all output in the given directory, instead of the per-format directories mentioned above. + +* `--output-path <filename>`: This is only valid if the output is a single binary file, and writes the output to the given filename. + +* `-f` (Flatten components): Ensures that any glyphs which contain components which *themselves* contain components are decomposed to a single level. This is recommended as certain rendering environments do not correctly handle nested components - see [this link](https://github.com/googlefonts/fontbakery/issues/2961) for more details. + +## Advanced Usage + +See [`USAGE.md`](USAGE.md). + +## Troubleshooting + +See [`TROUBLESHOOTING.md`](TROUBLESHOOTING.md). + +## Developers + +Developers can get the latest version of `fontmake` by cloning the git repository: + +``` bash +git clone https://github.com/googlefonts/fontmake +cd fontmake +pip install . +``` + +Developers who want to quickly test changes to the source code without re-installing can use the "--editable" option when installing from a local source checkout: + +``` bash +pip install -e . +``` + +It is recommended to install fontmake inside a virtual environment to +prevent conflicts between its dependencies and other modules installed +globally. + +You could also use the [pipx][] tool to automate the +installation/upgrade of python apps like fontmake in isolated +environments. + +### Releasing a New Version + +0. Commit and push your final changes for the new version. +1. Create an annotated Git tag of the version number, with a prepended "v", like so: `git tag -a v3.1.1` +2. Write the release notes into the tag message. They will show up as release notes on the release page in GitHub. +3. Push the tag like so: `git push origin v3.1.1`, where `origin` is the name of the usual remote you want to push the version to. + + [GitHub Actions Build Status]: https://github.com/googlefonts/fontmake/workflows/Test%20+%20Deploy/badge.svg + [Python Versions]: https://img.shields.io/badge/python-3.7-blue.svg + [PyPI Version]: https://img.shields.io/pypi/v/fontmake.svg + [1]: https://pypi.org/project/fontmake/ + [PyPI]: https://pypi.org/project/fontmake + [pip]: https://pip.pypa.io + [pipx]: https://github.com/pipxproject/pipx + + +%package -n python3-fontmake +Summary: Compile fonts from sources (UFO, Glyphs) to binary (OpenType, TrueType). +Provides: python-fontmake +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-fontmake +![GitHub Actions Build Status][] ![Python Versions][] [![PyPI +Version][]][1] + +# fontmake + +`fontmake` compiles fonts from various sources (`.glyphs`, `.ufo`, `designspace`) into binaries (`.otf`, `.ttf`). You can use it to create static instances and variable fonts. + +## Installation + +Fontmake requires Python 3.7 or later. + +Releases are available on [PyPI][] and can be installed with [pip][]. + +``` bash +pip3 install fontmake +``` + +Use the `-U`, `--upgrade` option to update fontmake and its dependencies +to the newest available release: + +``` bash +pip3 install -U fontmake +``` + +## Basic Usage + +After installation, you will be able to use the `fontmake` executable. + +For example, to compile a variable font from a Glyphs source file, use: + +``` bash +fontmake MyFont.glyphs -o variable +``` + +The most important command line arguments to the `fontmake` executable are the required input, specified either as positional argument or using one of `-g`/`-u`/`-m` flags, and the optional `-o` flag, which chooses the output file format. + +### Source file format options + +There are two ways to specify the source file or files: + +One can either use the following, mutually exclusive, flags: +* `-g filename.glyphs`: Converts a Glyphs source file to binary. +* `-u filename.ufo ...`: Converts one or more UFO files to binary. +* `-m filename.designspace`: Converts a Designspace file to binary. (The `-m` is for `mutatormath`, an old Python library for handling designspaces.) + +Alternatively, one can specify the input(s) as positional arguments without the flag, letting fontmake infer the source format from the file extension: e.g. ``fontmake MyFont.designspace``, etc. + +Note: if the positional arguments are preceded by an option that takes one or more arguments, you need to use the special `--` separator to mark all following +arguments as positional (non-options), otherwise the parser gets confused. E.g., the `-i` option takes zero or one arguments (see futher below for details); without `--`, argparse thinks you didn't provide any inputs: + +```bash +fontmake -i -- MyFont.designspace +``` + +Exactly one type of input can/must be specified, using either approaches. + +### Output file format options + +You may provide one or more output file formats after the `-o` option. For example, `-o otf ttf` creates OTF and TTF binary font files for each master in your input file. + +The following output file formats are available: + +* `otf`: Per-master OTF (CFF-outline) binaries. Placed in the `master_otf/` directory. +* `ttf`: Per-master TTF (TrueType-outline) binaries. Placed in the `master_ttf/` directory. +* `otf-cff2`: Per-master OTF binaries with CFF2 outlines. Placed in the `master_otf/` directory. +* `variable`: A TrueType variable font. Placed in the `variable_ttf/` directory. +* `variable-cff2`: A variable font with CFF2 outlines. Placed in the `variable_otf/` directory. + +The following output file formats are also available, but are generally used internally by fontmake as an intermediate step to one of the above outputs: + +* `otf-interpolatable`: OTF binaries suitable for merging into a variable font. Placed in the `master_otf_interpolatable/` directory. (These differ from `otf` in that the outlines are unoptimized.) +* `ttf-interpolatable`: TTF binaries suitable for merging into a variable font. Placed in the `master_ttf_interpolatable/` directory. (The outlines are converted to quadratic curves in an interpolation-compatible way.) +* `ufo`: Glyphs sources can be converted to UFO. Placed in the `master_ufo/` directory. + +If no format option is specified, the default is `-o otf ttf`. + +### Other important command line options + +* `-i` (Interpolate instances): Having per-master binaries is not always what you expect; if you have defined instances ("exports") in your Glyphs file, they will *not* be generated by default. To generate them, pass the `-i` flag, which interpolates static instances, and places them in the `instance_ttf/` or `instance_otf/` directory as appropriate. + +* `--output-dir <some_directory>`: Places all output in the given directory, instead of the per-format directories mentioned above. + +* `--output-path <filename>`: This is only valid if the output is a single binary file, and writes the output to the given filename. + +* `-f` (Flatten components): Ensures that any glyphs which contain components which *themselves* contain components are decomposed to a single level. This is recommended as certain rendering environments do not correctly handle nested components - see [this link](https://github.com/googlefonts/fontbakery/issues/2961) for more details. + +## Advanced Usage + +See [`USAGE.md`](USAGE.md). + +## Troubleshooting + +See [`TROUBLESHOOTING.md`](TROUBLESHOOTING.md). + +## Developers + +Developers can get the latest version of `fontmake` by cloning the git repository: + +``` bash +git clone https://github.com/googlefonts/fontmake +cd fontmake +pip install . +``` + +Developers who want to quickly test changes to the source code without re-installing can use the "--editable" option when installing from a local source checkout: + +``` bash +pip install -e . +``` + +It is recommended to install fontmake inside a virtual environment to +prevent conflicts between its dependencies and other modules installed +globally. + +You could also use the [pipx][] tool to automate the +installation/upgrade of python apps like fontmake in isolated +environments. + +### Releasing a New Version + +0. Commit and push your final changes for the new version. +1. Create an annotated Git tag of the version number, with a prepended "v", like so: `git tag -a v3.1.1` +2. Write the release notes into the tag message. They will show up as release notes on the release page in GitHub. +3. Push the tag like so: `git push origin v3.1.1`, where `origin` is the name of the usual remote you want to push the version to. + + [GitHub Actions Build Status]: https://github.com/googlefonts/fontmake/workflows/Test%20+%20Deploy/badge.svg + [Python Versions]: https://img.shields.io/badge/python-3.7-blue.svg + [PyPI Version]: https://img.shields.io/pypi/v/fontmake.svg + [1]: https://pypi.org/project/fontmake/ + [PyPI]: https://pypi.org/project/fontmake + [pip]: https://pip.pypa.io + [pipx]: https://github.com/pipxproject/pipx + + +%package help +Summary: Development documents and examples for fontmake +Provides: python3-fontmake-doc +%description help +![GitHub Actions Build Status][] ![Python Versions][] [![PyPI +Version][]][1] + +# fontmake + +`fontmake` compiles fonts from various sources (`.glyphs`, `.ufo`, `designspace`) into binaries (`.otf`, `.ttf`). You can use it to create static instances and variable fonts. + +## Installation + +Fontmake requires Python 3.7 or later. + +Releases are available on [PyPI][] and can be installed with [pip][]. + +``` bash +pip3 install fontmake +``` + +Use the `-U`, `--upgrade` option to update fontmake and its dependencies +to the newest available release: + +``` bash +pip3 install -U fontmake +``` + +## Basic Usage + +After installation, you will be able to use the `fontmake` executable. + +For example, to compile a variable font from a Glyphs source file, use: + +``` bash +fontmake MyFont.glyphs -o variable +``` + +The most important command line arguments to the `fontmake` executable are the required input, specified either as positional argument or using one of `-g`/`-u`/`-m` flags, and the optional `-o` flag, which chooses the output file format. + +### Source file format options + +There are two ways to specify the source file or files: + +One can either use the following, mutually exclusive, flags: +* `-g filename.glyphs`: Converts a Glyphs source file to binary. +* `-u filename.ufo ...`: Converts one or more UFO files to binary. +* `-m filename.designspace`: Converts a Designspace file to binary. (The `-m` is for `mutatormath`, an old Python library for handling designspaces.) + +Alternatively, one can specify the input(s) as positional arguments without the flag, letting fontmake infer the source format from the file extension: e.g. ``fontmake MyFont.designspace``, etc. + +Note: if the positional arguments are preceded by an option that takes one or more arguments, you need to use the special `--` separator to mark all following +arguments as positional (non-options), otherwise the parser gets confused. E.g., the `-i` option takes zero or one arguments (see futher below for details); without `--`, argparse thinks you didn't provide any inputs: + +```bash +fontmake -i -- MyFont.designspace +``` + +Exactly one type of input can/must be specified, using either approaches. + +### Output file format options + +You may provide one or more output file formats after the `-o` option. For example, `-o otf ttf` creates OTF and TTF binary font files for each master in your input file. + +The following output file formats are available: + +* `otf`: Per-master OTF (CFF-outline) binaries. Placed in the `master_otf/` directory. +* `ttf`: Per-master TTF (TrueType-outline) binaries. Placed in the `master_ttf/` directory. +* `otf-cff2`: Per-master OTF binaries with CFF2 outlines. Placed in the `master_otf/` directory. +* `variable`: A TrueType variable font. Placed in the `variable_ttf/` directory. +* `variable-cff2`: A variable font with CFF2 outlines. Placed in the `variable_otf/` directory. + +The following output file formats are also available, but are generally used internally by fontmake as an intermediate step to one of the above outputs: + +* `otf-interpolatable`: OTF binaries suitable for merging into a variable font. Placed in the `master_otf_interpolatable/` directory. (These differ from `otf` in that the outlines are unoptimized.) +* `ttf-interpolatable`: TTF binaries suitable for merging into a variable font. Placed in the `master_ttf_interpolatable/` directory. (The outlines are converted to quadratic curves in an interpolation-compatible way.) +* `ufo`: Glyphs sources can be converted to UFO. Placed in the `master_ufo/` directory. + +If no format option is specified, the default is `-o otf ttf`. + +### Other important command line options + +* `-i` (Interpolate instances): Having per-master binaries is not always what you expect; if you have defined instances ("exports") in your Glyphs file, they will *not* be generated by default. To generate them, pass the `-i` flag, which interpolates static instances, and places them in the `instance_ttf/` or `instance_otf/` directory as appropriate. + +* `--output-dir <some_directory>`: Places all output in the given directory, instead of the per-format directories mentioned above. + +* `--output-path <filename>`: This is only valid if the output is a single binary file, and writes the output to the given filename. + +* `-f` (Flatten components): Ensures that any glyphs which contain components which *themselves* contain components are decomposed to a single level. This is recommended as certain rendering environments do not correctly handle nested components - see [this link](https://github.com/googlefonts/fontbakery/issues/2961) for more details. + +## Advanced Usage + +See [`USAGE.md`](USAGE.md). + +## Troubleshooting + +See [`TROUBLESHOOTING.md`](TROUBLESHOOTING.md). + +## Developers + +Developers can get the latest version of `fontmake` by cloning the git repository: + +``` bash +git clone https://github.com/googlefonts/fontmake +cd fontmake +pip install . +``` + +Developers who want to quickly test changes to the source code without re-installing can use the "--editable" option when installing from a local source checkout: + +``` bash +pip install -e . +``` + +It is recommended to install fontmake inside a virtual environment to +prevent conflicts between its dependencies and other modules installed +globally. + +You could also use the [pipx][] tool to automate the +installation/upgrade of python apps like fontmake in isolated +environments. + +### Releasing a New Version + +0. Commit and push your final changes for the new version. +1. Create an annotated Git tag of the version number, with a prepended "v", like so: `git tag -a v3.1.1` +2. Write the release notes into the tag message. They will show up as release notes on the release page in GitHub. +3. Push the tag like so: `git push origin v3.1.1`, where `origin` is the name of the usual remote you want to push the version to. + + [GitHub Actions Build Status]: https://github.com/googlefonts/fontmake/workflows/Test%20+%20Deploy/badge.svg + [Python Versions]: https://img.shields.io/badge/python-3.7-blue.svg + [PyPI Version]: https://img.shields.io/pypi/v/fontmake.svg + [1]: https://pypi.org/project/fontmake/ + [PyPI]: https://pypi.org/project/fontmake + [pip]: https://pip.pypa.io + [pipx]: https://github.com/pipxproject/pipx + + +%prep +%autosetup -n fontmake-3.5.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-fontmake -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Fri May 05 2023 Python_Bot <Python_Bot@openeuler.org> - 3.5.1-1 +- Package Spec generated @@ -0,0 +1 @@ +f8bf4fe34d47240e5f94cdd25a52c32c fontmake-3.5.1.zip |