commit 2b34fbda8e57cc8e8b94c8c13dbe9ca912e23c15 Author: Adrian Schröter Date: Fri Nov 24 16:13:36 2023 +0100 Sync from SUSE:ALP:Source:Standard:1.0 python-FontTools revision 745ee5b02360580c56feb02d694aefa0 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..fecc750 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/_multibuild b/_multibuild new file mode 100644 index 0000000..83bd4e9 --- /dev/null +++ b/_multibuild @@ -0,0 +1,3 @@ + + test + diff --git a/fonttools-4.39.4.tar.gz b/fonttools-4.39.4.tar.gz new file mode 100644 index 0000000..1e78fe9 --- /dev/null +++ b/fonttools-4.39.4.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9fab7f15ad7a0b5cd040331090b726c81d8b0d7b043bb348c7dc242d901b4ee5 +size 3710610 diff --git a/python-FontTools.changes b/python-FontTools.changes new file mode 100644 index 0000000..c1a263b --- /dev/null +++ b/python-FontTools.changes @@ -0,0 +1,877 @@ +------------------------------------------------------------------- +Sat Oct 14 00:19:08 UTC 2023 - Matej Cepl + +- Clean up space and remove unnecessary BR python-munkres and + python-zopfli. + +------------------------------------------------------------------- +Sun Jun 11 20:32:54 UTC 2023 - Dirk Müller + +- update to 4.39.4: + * [varLib.interpolatable] Allow for sparse masters (#3075) + * [merge] Handle differing default/nominalWidthX in CFF (#3070) + * [ttLib] Add missing main.py file to ttLib package (#3088) + * [ttx] Fix missing composite instructions in XML (#3092) + * [ttx] Fix split tables option to work on filenames containing + '%' (#3096) + * [featureVars] Process lookups for features other than rvrn + last (#3099) + * [feaLib] support multiple substitution with classes (#3103) + +------------------------------------------------------------------- +Fri Apr 21 12:20:35 UTC 2023 - Dirk Müller + +- add sle15_python_module_pythons (jsc#PED-68) + +------------------------------------------------------------------- +Thu Mar 30 18:53:56 UTC 2023 - Dirk Müller + +- update to 4.39.3: + * [sbix] Fixed TypeError when compiling empty glyphs whose + imageData is None + * [ttFont] Fixed AttributeError on python <= 3.10 when opening + a TTFont from a tempfile + * SpooledTemporaryFile, seekable method only added on python + 3.11 (#3052). + * [varLib] Fixed regression introduced in 4.39.1 whereby an + incomplete 'STAT' table would be built even though a + DesignSpace v5 did contain 'STAT' definitions (#3045, #3046). + * [avar2] Added experimental support for reading/writing avar + version 2 as specified in this draft proposal: + https://github.com/harfbuzz/boring-expansion-spec/blob/main/avar2.md + * [glifLib] Wrap underlying XML library exceptions with + GlifLibError when parsing GLIFs, and also print the name + and path of the glyph that fails to be parsed (#3042). + * [feaLib] Consult avar for normalizing user-space values in + ConditionSets and in VariableScalars (#3042, #3043). + * [ttProgram] Handle string input to Program.fromAssembly() + (#3038). + * [otlLib] Added a config option to emit GPOS 7 lookups, + currently disabled by default because of a macOS bug (#3034). + * [COLRv1] Added method to automatically compute ClipBoxes + (#3027). + * [ttFont] Fixed getGlyphID to raise KeyError on missing glyphs + instead of returning None. + * [sbix] Fixed UnboundLocalError: cannot access local variable + 'rawdata' (#3031). + * [varLib] When building VF, do not overwrite a pre-existing + ``STAT`` table that was built with feaLib from FEA feature + file. Also, added support for building multiple VFs + defined in Designspace v5 from ``fonttools varLib`` script + * [mtiLib] Only add ``Debg`` table with lookup names when + ``FONTTOOLS_LOOKUP_DEBUGGING`` env variable is set (#3023). + * [mtiLib] Optionally add `Debg` debug info for MTI feature + builds (#3018). + * [ttx] Support reading input file from standard input using + special `-` character, similar to existing `-o -` option + to write output to standard output (#3020). + * [cython] Prevent ``cython.compiled`` raise AttributeError if + cython not installed properly (#3017). + * [OS/2] Guard against ZeroDivisionError when calculating + xAvgCharWidth in the unlikely scenario no glyph has non-zero + advance (#3015). + * [subset] Recompute xAvgCharWidth independently of --no-prune- + unicode-ranges, previously the two options were involuntarily + bundled together (#3012). + * [fontBuilder] Add ``debug`` parameter to addOpenTypeFeatures + method to add source debugging information to the font in the + ``Debg`` private table (#3008). + * [name] Make NameRecord `__lt__` comparison not fail on + Unicode encoding errors (#3006). + * [featureVars] Fixed bug in ``overlayBox`` (#3003, #3005). + * [glyf] Added experimental support for cubic bezier curves in + TrueType glyf table, as outlined in glyf v1 proposal (#2988): + * Added new qu2cu module and related qu2cuPen, the reverse of + cu2qu for converting TrueType quadratic splines to cubic bezier + curves (#2993). + * [glyf] Added experimental support for reading and writing + Variable Composites/Components as defined in glyf v1 spec + proposal (#2958): + * [pens]: Added `addVarComponent` method to pen protocols' base + classes, which pens can implement to handle varcomponents + * [misc.transform] Added DecomposedTransform class which + implements an affine transformation with separate translate, + rotation, scale, skew, and transformation-center components (#2598) + * [sbix] Ensure Glyph.referenceGlyphName is set; fixes error + after dumping and re-compiling sbix table with 'dupe' glyphs (#2984). + * [feaLib] Be cleverer when merging chained single + substitutions into same lookup when they are specified using + the inline notation (#2150, #2974). + * [instancer] Clamp user-inputted axis ranges to those of fvar + (#2959). + * [otBase/subset] Define ``__getstate__`` for BaseTable so that + a copied/pickled 'lazy' object gets its own OTTableReader to + read from; incidentally fixes a bug while subsetting COLRv1 + table containing ClipBoxes on python 3.11 + * [sbix] Handle glyphs with "dupe" graphic type on compile + correctly (#2963). + * [glyf] ``endPointsOfContours`` field should be unsigned! + Kudos to behdad for spotting one of the oldest bugs in FT. + Probably nobody has ever dared to make glyphs with more + than 32767 points... (#2957). + * [feaLib] Fixed handling of ``ignore`` statements with + unmarked glyphs to match makeotf behavior, which assumes + the first glyph is marked + * Reformatted code with ``black`` and enforce new code style + via CI check (#2925). + * [feaLib] Sort name table entries following OT spec prescribed + order in the builder (#2927). + * [cu2quPen] Add Cu2QuMultiPen that converts multiple outlines + at a time in interpolation compatible way; its methods take + a list of tuples arguments that would normally be passed to + individual segment pens, and at the end it dispatches the + converted outlines to each pen (#2912). + * [reverseContourPen/ttGlyphPen] Add outputImpliedClosingLine + option + * [gvar] Avoid expanding all glyphs unnecessarily upon compile + * [scaleUpem] Fixed bug whereby CFF2 vsindex was scaled; it + should not (#2893, #2894). + * [designspaceLib] Add DS.getAxisByTag and refactor getAxis + (#2891). + * [unicodedata] map Zmth<->math in ot_tag_{to,from}_script + (#1737, #2889). + * [woff2] Support encoding/decoding OVERLAP_SIMPLE glyf flags + (#2576, #2884). + * [instancer] Update OS/2 class and post.italicAngle when + default moved (L4) + * Dropped support for Python 3.7 which reached EOL, fontTools + requires 3.8+. + * [instancer] Fixed instantiateFeatureVariations logic when a + rule range becomes default-applicable (#2737, #2880). + * [ttLib] Add main to ttFont and ttCollection that just + decompile and re-compile the input font (#2869). + * [featureVars] Insert 'rvrn' lookup at the beginning of + LookupList, to work around bug in Apple implementation + of 'rvrn' feature which the spec says it should be processed + early whereas on macOS 10.15 it follows lookup order (#2140, + * [instancer/mutator] Remove 'DSIG' table if present. + * [svgPathPen] Don't close path in endPath(), assume open + unless closePath() (#2089, #2865). + +------------------------------------------------------------------- +Thu Feb 16 17:55:48 UTC 2023 - Matej Cepl + +- Dependencies for testing on sympy and ufoLib2 are actually not + necessary (the test suite automatically skips affected tests), + and scipy could be replaced by much less demanding munkres + package. + +------------------------------------------------------------------- +Tue Nov 22 06:56:23 UTC 2022 - Marguerite Su + +- Update to 4.38.0 + * [varLib.instancer] Added support for L4 instancing, i.e. moving the + default value of an axis while keeping it variable. + * [otlLib/featureVars] Set a few Count values so one doesn't need to + compile the font to update them + * [varLib.models] Make extrapolation work for 2-master models as well + where one master is at the default location + Add optional extrapolate=False to normalizeLocation() + * [varLib.cff] Fixed sub-optimal packing of CFF2 deltas by no longer + rounding them to integer + * [scaleUpem] Calculate numShorts in VarData after scale; handle CFF + hintmasks + +------------------------------------------------------------------- +Mon Aug 29 16:55:08 UTC 2022 - Gordon Leung + +- Update to 4.37.1 + * [subset] Fixed regression introduced with v4.37.0 while subsetting + the VarStore of HVAR and VVAR tables, whereby an + AttributeError: subset_varidxes was thrown because an apparently + unused import statement (with the side-effect of dynamically binding + that subset_varidxes method to the VarStore class) had been + accidentally deleted in an unrelated PR + * [pens] Added cairoPen + * [gvar] Read gvar more lazily by not parsing all of the glyf table + * [ttGlyphSet] Make drawPoints(pointPen) method work for CFF fonts + as well via adapter pen + * [cff.specializer] Fixed issue in charstring generalizer with the + blend operator + * [varLib.models] Added support for extrapolation + * [ttGlyphSet] Ensure the newly added _TTVarGlyphSet inherits from + _TTGlyphSet to keep backward compatibility with existing API + * [kern] Allow compiling legacy kern tables with more than 64k entries + * [visitor] Added new visitor API to traverse tree of objects and + dispatch based on the attribute type: cf. fontTools.misc.visitor + and fontTools.ttLib.ttVisitor. Added fontTools.ttLib.scaleUpem + module that uses the latter to change a font's units-per-em and + scale all the related fields accordingly + * Etc. https://github.com/fonttools/fonttools/compare/4.33.3...4.37.1 + +------------------------------------------------------------------- +Sat May 7 14:59:54 UTC 2022 - Ferdinand Thiessen + +- Update to version 4.33.3 + * designspaceLib: + * Fixed typo in deepcopyExceptFonts method, preventing font + references to be transferred + * Fixed another typo in the name of Range dataclass's + __post_init__ magic method +- Update to version 4.33.2 + * otBase: Make logging less verbose when harfbuzz fails to serialize + Do not exit at the first failure but continue attempting to fix + offset overflow error using the pure-python serializer even when + the USE_HARFBUZZ_REPACKER option was explicitly set to True. +- Update to version 4.33.1 + * otlLib: + Put back the FONTTOOLS_GPOS_COMPACT_MODE environment variable + to fix regression in ufo2ft. This is deprecated and will be + removed once ufo2ft gets updated to use the new config setup. +- Update to version 4.33.0 + * Added fontTools.misc.configTools module, a generic configuration system + * Added fontTools.config module, a fontTools-specific configuration + system using configTools above. + * Attached a Config object to TTFont. + * otlLib: + * Replaced environment variable for GPOS compression level with + an equivalent option using the new config system. + * designspaceLib: + * Incremented format version to 5.0 + * Added discrete axes, variable fonts, STAT information, either + design- or user-space location on instances. + * Added fontTools.designspaceLib.split module to split a designspace + into sub-spaces that interpolate and that represent the variable + fonts listed in the document. + * Made instance names optional and allow computing them from + STAT data instead. + * Added fontTools.designspaceLib.statNames module. + * Allow instances to have the same location as a previously + defined STAT label. + * Deprecated some attributes: + SourceDescriptor: copyLib, copyInfo, copyGroups, copyFeatures. + InstanceDescriptor: kerning, info; glyphs: use rules or sparse sources. + For both, location: use the more explicit designLocation. + * varLib: + * Added build_many to build several variable fonts from a + single designspace document + * Added fontTools.varLib.stat module to build STAT tables + from a designspace document. + * otBase: + * Try to use the Harfbuzz Repacker for packing GSUB/GPOS tables + when uharfbuzz python bindings are available + * CFF/T2: + * Ensure that pen.closePath() gets called for CFF2 charstrings + * Handle implicit CFF2 closePath within T2OutlineExtractor + +------------------------------------------------------------------- +Tue Apr 12 09:46:15 UTC 2022 - Ben Greiner + +- Update to 4.32.0 + * [otlLib] Disable GPOS7 optimization to work around bug in Apple + CoreText. Always force Chaining GPOS8 for now (#2540). + * [glifLib] Added outputImpliedClosingLine=False parameter to + Glyph.draw(), to control behaviour of PointToSegmentPen + (6b4e2e7). + * [varLib.interpolatable] Check for wrong contour starting point + (#2571). + * [cffLib] Remove leftover GlobalState class and fix calls to + TopDictIndex() (#2569, #2570). + * [instancer] Clear AxisValueArray if it is empty after + instantiating (#2563). +- Release 4.31.2 + * [varLib] fix instantiation of GPOS SinglePos values (#2555). +- Release 4.31.1 + * [subset] fix subsetting OT-SVG when glyph id attribute is on + the root element (#2553). +- Release 4.31.0 + * [ttCollection] Fixed 'ResourceWarning: unclosed file' warning + (#2549). + * [varLib.merger] Handle merging SinglePos with valueformat=0 + (#2550). + * [ttFont] Update glyf's glyphOrder when calling + TTFont.setGlyphOrder() (#2544). + * [ttFont] Added ensureDecompiled method to load all tables + irrespective of the lazy attribute (#2551). + * [otBase] Added iterSubTable method to iterate over BaseTable's + children of type BaseTable; useful for traversing a tree of + otTables (#2551). +- Release 4.30.0 + * [varLib] Added debug logger showing the glyph name for which + gvar is built (#2542). + * [varLib.errors] Fixed undefined names in FoundANone and + UnsupportedFormat exceptions (ac4d561). + * [otlLib.builder] Added windowsNames and macNames (bool) + parameters to the buildStatTable function, so that one can + select whether to only add one or both of the two sets (#2528). + * [t1Lib] Added the ability to recreate PostScript stream + (#2504). + * [name] Added getFirstDebugName, + getBest{Family,SubFamily,Full}Name methods (#2526). + +------------------------------------------------------------------- +Mon Mar 7 10:28:35 UTC 2022 - Ben Greiner + +- Update to 4.29.1 + * [colorLib] Fixed rounding issue with radial gradient's start/end + circles inside one another (#2521). + * [freetypePen] Handle rotate/skew transform when auto-computing + width/height of the buffer; raise PenError wen missing moveTo + (#2517) +- Release 4.29.0 + * [ufoLib] Fixed illegal characters and expanded reserved + filenames (#2506). + * [COLRv1] Don't emit useless PaintColrLayers of lenght=1 in + LayerListBuilder (#2513). + * [ttx] Removed legacy waitForKeyPress method on Windows (#2509). + * [pens] Added FreeTypePen that uses freetype-py and the pen + protocol for rasterizating outline paths (#2494). + * [unicodedata] Updated the script direction list to Unicode 14.0 + (#2484). + * Bumped unicodedata2 dependency to 14.0 (#2499). + * [psLib] Fixed type of fontName in suckfont (#2496). + +------------------------------------------------------------------- +Sat Jan 15 15:11:24 UTC 2022 - Dirk Müller + +- update to 4.28.5: + * make sure all occurrences of str() are now replaced with user-defined ntos + * refactored code into submodules, plus several bugfixes and improvements + * Merge GDEF marksets in Lookups properly + * Have fontTools feaLib script exit with error code when build fails + * Added ntos option to customize number formatting + * Speed up subsetting of large CFF fonts + * Speculatively promote lookups to extension to speed up compilation + +------------------------------------------------------------------- +Wed Dec 15 10:20:49 UTC 2021 - Ben Greiner + +- remove curves.json now included in the GitHub archive + +------------------------------------------------------------------- +Sun Dec 12 18:18:46 UTC 2021 - Ben Greiner + +- Update to 4.28.3 + * [subset] Fixed bug while subsetting COLR table, whereby + incomplete layer records pointing to missing glyphs were being + retained leading to struct.error upon compiling. Make it so + that glyf glyph closure, which follows the COLR glyph closure, + does not influence the COLR table subsetting (#2461, #2462). + * [docs] Fully document the cmap and glyf tables (#2454, #2457). + * [colorLib.unbuilder] Fixed CLI by deleting no longer existing + parameter (180bb1867). +- Release 4.28.2 + * [otlLib] Remove duplicates when building coverage (#2433). + * [docs] Add interrogate configuration (#2443). + * [docs] Remove comment about missing “start” optional argument + to calcChecksum (#2448). + * [cu2qu/cli] Adapt to the latest ufoLib2. + * [subset] Support subsetting SVG table and remove it from the + list of drop by default tables (#534). + * [subset] add --pretty-svg option to pretty print SVG table + contents (#2452). + * [merge] Support merging CFF tables (CID-keyed CFF is still not + supported) (#2447). + * [merge] Support --output-file (#2447). + * [docs] Split table docs into individual pages (#2444). + * [feaLib] Forbid empty classes (#2446). + * [docs] Improve documentation for fontTools.ttLib.ttFont + (#2442). +- Release 4.28.1 + * [subset] Fixed AttributeError while traversing a color glyph's + Paint graph when there is no LayerList, which is optional + (#2441). +- Release 4.28.0 + * Dropped support for EOL Python 3.6, require Python 3.7 (#2417). + * [ufoLib/glifLib] Make filename-clash checks faster by using a + set instead of a list (#2422). + * [subset] Don't crash if optional ClipList and LayerList are + None (empty) (#2424, 2439). + * [OT-SVG] Removed support for old deprecated version 1 and + embedded color palettes, which were never officially part of + the OpenType SVG spec. Upon compile, reuse offsets to SVG + documents that are identical (#2430). + * [feaLib] Added support for Variable Feature File syntax. This + is experimental and subject to change until it is finalized in + the Adobe FEA spec (#2432). + * [unicodedata] Update Scripts/ScriptExtensions/Blocks to + UnicodeData 14.0 (#2437). +- Release 4.27.1 + * [otlLib] Fixed error when chained contextual lookup builder + overflows (#2404, #2411). + * [bezierTools] Fixed two floating-point bugs: one when computing + t for a point lying on an almost horizontal/vertical line; + another when computing the intersection point between a curve + and a line (#2413). +- Release 4.27.0 + * [ttLib/otTables] Cleaned up virtual GID handling: allow virtual + GIDs in Coverage and ClassDef readers; removed unused allowVID + argument from TTFont constructor, and requireReal argument in + TTFont.getGlyphID method. Make TTFont.setGlyphOrder clear + reverse glyphOrder map, and assume glyphOrder internal + attribute is never modified outside setGlyphOrder; added + TTFont.getGlyphNameMany and getGlyphIDMany (#1536, #1654, + #2334, #2398). + * [py23] Dropped internal use of fontTools.py23 module to fix + deprecation warnings in client code that imports from fontTools + (#2234, #2399, #2400). + * [subset] Fix subsetting COLRv1 clip boxes when font is loaded + lazily (#2408). +- Release 4.26.2 + * [otTables] Added missing CompositeMode.PLUS operator (#2390). +- Release 4.26.1 + * [transform] Added transformVector and transformVectors methods + to the Transform class. Similar to transformPoint but ignore + the translation part (#2386). +- Release 4.26.0 + * [xmlWriter] Default to "\n" for newlinestr instead of + platform-specific os.linesep (#2384). + * [otData] Define COLRv1 ClipList and ClipBox (#2379). + * [removeOverlaps/instancer] Added --ignore-overlap-errors option + to work around Skia PathOps.Simplify bug (#2382, #2363, + google/fonts#3365). + * NOTE: This will be the last version to support Python 3.6. + FontTools will require Python 3.7 or above from the next + release (#2350) +- Release 4.25.2 + * [COLRv1] Various changes to sync with the latest CORLv1 draft + spec. In particular: define COLR.VarIndexMap, remove/inline + ColorIndex struct, add VarIndexBase to PaintVar* tables + (#2372); add reduced-precicion specialized transform Paints; + define Angle as fraction of half circle encoded as F2Dot14; use + FWORD (int16) for all Paint center coordinates; change + PaintTransform to have an offset to Affine2x3; + * [ttLib] when importing XML, only set sfntVersion if the font + has no reader and is empty (#2376) +- Release 4.25.1 + * [ttGlyphPen] Fixed bug in TTGlyphPointPen, whereby open + contours (i.e. starting with segmentType "move") would throw + NotImplementedError. They are now treated as if they are + closed, like with the TTGlyphPen (#2364, #2366). +- Release 4.25.0 + * [tfmLib] Added new library for parsing TeX Font Metric (TFM) + files (#2354). + * [TupleVariation] Make shared tuples order deterministic on + python < 3.7 where Counter (subclass of dict) doesn't remember + insertion order (#2351, #2353). + * [otData] Renamed COLRv1 structs to remove 'v1' suffix and match + the updated draft spec: 'LayerV1List' -> 'LayerList', + 'BaseGlyphV1List' -> 'BaseGlyphList', 'BaseGlyphV1Record' -> + 'BaseGlyphPaintRecord' (#2346). Added 8 new PaintScale* tables: + with/without centers, uniform vs non-uniform. Added + *AroundCenter variants to PaintRotate and PaintSkew: the + default versions no longer have centerX/Y, but default to + origin. PaintRotate, PaintSkew and PaintComposite formats were + re-numbered. NOTE: these are breaking changes; clients using + the experimental COLRv1 API will have to be updated (#2348). + * [pointPens] Allow GuessSmoothPointPen to accept a tolerance. + Fixed call to math.atan2 with x/y parameters inverted. Sync the + code with fontPens (#2344). + * [post] Fixed parsing post table format 2.0 when it contains + extra garbage at the end of the stringData array (#2314). + * [subset] drop empty features unless 'size' with FeatureParams + table (#2324). + * [otlLib] Added otlLib.optimize module; added GPOS compaction + algorithm. The compaction can be run on existing fonts with + fonttools otlLib.optimize or using the snippet compact_gpos.py. + There's experimental support for compacting fonts at + compilation time using an environment variable, but that might + be removed later (#2326). +- Release 4.24.4 + * [subset/instancer] Fixed AttributeError when instantiating a VF + that contains GPOS ValueRecords with Device tables but without + the respective non-Device values (e.g. XAdvDevice without + XAdvance). When not explicitly set, the latter are assumed to + be 0 (#2323). +- Release 4.24.3 + * [otTables] Fixed AttributeError in methods that split + LigatureSubst, MultipleSubst and AlternateSubst subtables when + an offset overflow occurs. The Format attribute was removed in + v4.22.0 (#2319). +- Release 4.24.2 + * [ttGlyphPen] Fixed typing annotation of TTGlyphPen glyphSet + parameter (#2315). + * Fixed two instances of DeprecationWarning: invalid escape + sequence (#2311). +- Release 4.24.1 + * [subset] Fixed AttributeError when SinglePos subtable has None + Value (ValueFormat 0) (#2312, #2313). +- Release 4.24.0 + * [pens] Add ttGlyphPen.TTGlyphPointPen similar to TTGlyphPen + (#2205). +- Release 4.23.1 + * [subset] Fix KeyError after subsetting COLR table that + initially contains both v0 and v1 color glyphs when the subset + only requested v1 glyphs; we were not pruning the v0 portion of + the table (#2308). + * [colorLib] Set LayerV1List attribute to None when empty, it's + optional in CORLv1 (#2308). +- Release 4.23.0 + * [designspaceLib] Allow to use \\UNC absolute paths on Windows + (#2299, #2306). + * [varLib.merger] Fixed bug where VarLibMergeError was raised + with incorrect parameters (#2300). + * [feaLib] Allow substituting a glyph class with NULL to delete + multiple glyphs (#2303). + * [glyf] Fixed NameError exception in getPhantomPoints (#2295, + #2305). + * [removeOverlaps] Retry pathops.simplify after rounding path + coordinates to integers if it fails the first time using + floats, to work around a rare and hard to debug Skia bug + (#2288). + * [varLib] Added support for building, reading, writing and + optimizing 32-bit ItemVariationStore as used in COLRv1 table + (#2285). + * [otBase/otConverters] Add array readers/writers for int types + (#2285). + * [feaLib] Allow more than one lookahead glyph/class in + contextual positioning with "value at end" (#2293, #2294). + * [COLRv1] Default varIdx should be 0xFFFFFFFF (#2297, #2298). + * [pens] Make RecordingPointPen actually pass on identifiers; + replace asserts with explicit PenError exception (#2284). + * [mutator] Round lsb for CF2 fonts as well (#2286). +- Release 4.22.1 + * [feaLib] Skip references to named lookups if the lookup block + definition is empty, similarly to makeotf. This also fixes an + AttributeError while generating aalt feature (#2276, #2277). + * [subset] Fixed bug with --no-hinting implementation for Device + tables (#2272, #2275). The previous code was alwyas dropping + Device tables if no-hinting was requested, but some Device + tables (DeltaFormat=0x8000) are also used to encode variation + indices and need to be retained. + * [otBase] Fixed bug in getting the ValueRecordSize when + decompiling MVAR table with lazy=True (#2273, #2274). + * [varLib/glyf/gvar] Optimized and simplified GlyphCoordinates + and TupleVariation classes, use bytearray where possible, + refactored phantom-points calculations. We measured about 30% + speedup in total time of loading master ttfs, building gvar, + and saving (#2261, #2266). + * [subset] Fixed AssertionError while pruning unused CPAL + palettes when 0xFFFF is present (#2257, #2259). +- Release 4.22.0 + * [ttLib] Remove .Format from Coverage, ClassDef, SingleSubst, + LigatureSubst, AlternateSubst, MultipleSubst (#2238). + ATTENTION: This will change your TTX dumps! + * [misc.arrayTools] move Vector to its own submodule, and rewrite + as a tuple subclass (#2201). + * [docs] Added a terminology section for varLib (#2209). + * [varLib] Move rounding to VariationModel, to avoid error + accumulation from multiple deltas (#2214) + * [varLib] Explain merge errors in more human-friendly terms + (#2223, #2226) + * [otlLib] Correct some documentation (#2225) + * [varLib/otlLib] Allow merging into VariationFont without first + saving GPOS PairPos2 (#2229) + * [subset] Improve PairPosFormat2 subsetting (#2221) + * [ttLib] TTFont.save: create file on disk as late as possible + (#2253) + * [cffLib] Add missing CFF2 dict operators LanguageGroup and + ExpansionFactor (#2249) ATTENTION: This will change your TTX + dumps! +- Support for python36 has been dropped +- Use Github archive instead of zipfile from PyPI because it has + the test fonts. +- The `fonttools` command is now documented and tested in the test + suite. + +------------------------------------------------------------------- +Sat May 1 22:01:14 UTC 2021 - Ben Greiner + +- Release 4.21.1 + * [pens] Reverted breaking change that turned AbstractPen and + AbstractPointPen into abstract base classes (#2164, #2198). +- Release 4.21.0 + * [feaLib] Indent anchor statements in asFea() to make them more + legible and diff-able (#2193). + * [pens] Turn AbstractPen and AbstractPointPen into abstract + base classes (#2164). + * [feaLib] Added support for parsing and building STAT table + from AFDKO feature files (#2039). + * [instancer] Added option to update name table of generated + instance using STAT table's axis values (#2189). + * [bezierTools] Added functions to compute bezier point-at-time, + as well as line-line, curve-line and curve-curve intersections + (#2192). + * [arrayTools] Added rectArea function to compute area of + rectangle (#2192). +- Release 4.20.0 + * [COLRv1] Added unbuildColrV1 to deconstruct COLRv1 otTables to + raw json-able data structure; it does the reverse of + buildColrV1 (#2171). + * [feaLib] Allow sub X by NULL sequence to delete a glyph (#2170) + * [arrayTools] Fixed Vector division (#2173). + * [COLRv1] Define new PaintSweepGradient (#2172). + * [otTables] Moved Paint.Format enum class outside of Paint + class definition, now named PaintFormat. It was clashing with + paint instance Format attribute and thus was breaking lazy + load of COLR table which relies on magic __getattr__ (#2175). + * [COLRv1] Replace hand-coded builder functions with + otData-driven dynamic implementation (#2181). + * [COLRv1] Define additional static (non-variable) Paint formats + (#2181). + * [subset] Added support for subsetting COLR v1 and CPAL tables + (#2174, #2177). + * [fontBuilder] Allow setupFvar to optionally take + designspaceLib.AxisDescriptor objects. Added new setupAvar + method. Support localised names for axes and named instances + (#2185). +- Don't update to 4.22 yet because it breaks afdko +- Clarify fs requirement + +------------------------------------------------------------------- +Fri Apr 23 14:28:25 UTC 2021 - Matej Cepl + +- We do Require fs module. + +------------------------------------------------------------------- +Fri Feb 12 13:48:21 UTC 2021 - Ben Greiner + +- Update to 4.19.1 + * [woff2] An initial off-curve point with an overlap flag now + stays an off-curve point after compression. +- Changes in 4.19.0 + * [codecs] Handle errors parameter different from 'strict' for + the custom extended mac encodings (#2137, #2132). + * [featureVars] Raise better error message when a script is + missing the required default language system (#2154). + * [COLRv1] Avoid abrupt change caused by rounding + PaintRadialGradient.c0 when the start circle almost touches + the end circle's perimeter (#2148). + * [COLRv1] Support building unlimited lists of paints as 255-ary + trees of PaintColrLayers tables (#2153). + * [subset] Prune redundant format-12 cmap subtables when all + non-BMP characters are dropped (#2146). + * [basePen] Raise MissingComponentError instead of bare KeyError + when a referenced component is missing (#2145). +- Only 'Recommend:' optional extra requirements (Some are not + available in TW python36 flavor anymore) +- Don't require python36-scipy for testing. (NEP 29) + +------------------------------------------------------------------- +Thu Jan 14 16:26:38 UTC 2021 - Dirk Müller + +- update to 4.18.2: + - [COLRv1] Implemented ``PaintTranslate`` paint format (#2129). + - [varLib.cff] Fixed unbound local variable error (#1787). + - [otlLib] Don't crash when creating OpenType class definitions if some glyphs + occur more than once (#2125). + - [colorLib] Speed optimization for ``LayerV1ListBuilder`` (#2119). + - [mutator] Fixed missing tab in ``interpolate_cff2_metrics`` (0957dc7a). + - [COLRv1] Update to latest draft: added ``PaintRotate`` and ``PaintSkew`` (#2118). + - [woff2] Support new ``brotlicffi`` bindings for PyPy (#2117). + - [glifLib] Added ``expectContentsFile`` parameter to ``GlyphSet``, for use when + reading existing UFOs, to comply with the specification stating that a + ``contents.plist`` file must exist in a glyph set (#2114). + - [subset] Allow ``LangSys`` tags in ``--layout-scripts`` option (#2112). For example: + ``--layout-scripts=arab.dflt,arab.URD,latn``; this will keep ``DefaultLangSys`` + and ``URD`` language for ``arab`` script, and all languages for ``latn`` script. + - [varLib.interpolatable] Allow UFOs to be checked; report open paths, non existant + glyphs; add a ``--json`` option to produce a machine-readable list of + incompatibilities + - [pens] Added ``QuartzPen`` to create ``CGPath`` from glyph outlines on macOS. + Requires pyobjc (#2107). + - [feaLib] You can export ``FONTTOOLS_LOOKUP_DEBUGGING=1`` to enable feature file + debugging info stored in ``Debg`` table (#2106). + - [otlLib] Build more efficient format 1 and format 2 contextual lookups whenever + possible (#2101). + - [colorLib] Fixed regression in 4.17.0 when building COLR v0 table; when color + layers are stored in UFO lib plist, we can't distinguish tuples from lists so + we need to accept either types (e5439eb9, googlefonts/ufo2ft/issues#426). + - [colorLib/otData] Updated to latest draft ``COLR`` v1 spec (#2092). + - [svgLib] Fixed parsing error when arc commands' boolean flags are not separated + by space or comma (#2094). + - [varLib] Interpret empty non-default glyphs as 'missing', if the default glyph is + not empty (#2082). + - [feaLib.builder] Only stash lookup location for ``Debg`` if ``Builder.buildLookups_`` + has cooperated (#2065, #2067). + - [varLib] Fixed bug in VarStore optimizer (#2073, #2083). + - [varLib] Add designspace lib key for custom feavar feature tag (#2080). + - Add HashPointPen adapted from psautohint. With this pen, a hash value of a glyph + can be computed, which can later be used to detect glyph changes (#2005). + - [varLib.instancer] Fixed ``TypeError`` exception when instantiating a VF with + a GSUB table 1.1 in which ``FeatureVariations`` attribute is present but set to + ``None`` -- indicating that optional ``FeatureVariations`` is missing (#2077). + - [glifLib] Make ``x`` and ``y`` attributes of the ``point`` element required + even when validation is turned off, and raise a meaningful ``GlifLibError`` + message when that happens (#2075). + - [removeOverlaps] Added new module and ``removeOverlaps`` function that merges + overlapping contours and components in TrueType glyphs. It requires the + `skia-pathops `__ module. + Note that removing overlaps invalidates the TrueType hinting (#2068). + - [varLib.instancer] Added ``--remove-overlaps`` command-line option. + The ``overlap`` option in ``instantiateVariableFont`` now takes an ``OverlapMode`` + enum: 0: KEEP_AND_DONT_SET_FLAGS, 1: KEEP_AND_SET_FLAGS (default), and 2: REMOVE. + The latter is equivalent to calling ``removeOverlaps`` on the generated static + instance. The option continues to accept ``bool`` value for backward compatibility. + - [plistlib] Added typing annotations to plistlib module. Set up mypy static + typechecker to run automatically on CI (#2061). + - [ttLib] Implement private ``Debg`` table, a reverse-DNS namespaced JSON dict. + - [feaLib] Optionally add an entry into the ``Debg`` table with the original + lookup name (if any), feature name / script / language combination (if any), + and original source filename and line location. Annotate the ttx output for + a lookup with the information from the Debg table (#2052). + - [sfnt] Disabled checksum checking by default in ``SFNTReader`` (#2058). + - [Docs] Document ``mtiLib`` module (#2027). + - [varLib.interpolatable] Added checks for contour node count and operation type + of each node (#2054). + - [ttLib] Added API to register custom table packer/unpacker classes (#2055). + - [feaLib] Allow anonymous classes in LookupFlags definitions (#2037). + - [Docs] Better document DesignSpace rules processing order (#2041). + - [ttLib] Fixed 21-year old bug in ``maxp.maxComponentDepth`` calculation (#2044, + #2045). + - [varLib.models] Fixed misspelled argument name in CLI entry point (81d0042a). + - [subset] When subsetting GSUB v1.1, fixed TypeError by checking whether the + optional FeatureVariations table is present (e63ecc5b). + - [Snippets] Added snippet to show how to decompose glyphs in a TTF (#2030). + - [otlLib] Generate GSUB type 5 and GPOS type 7 contextual lookups where appropriate + (#2016). + - [feaLib/otlLib] Moved lookup subtable builders from feaLib to otlLib; refactored + some common code (#2004, #2007). + - [docs] Document otlLib module (#2009). + - [glifLib] Fixed bug with some UFO .glif filenames clashing on case-insensitive + filesystems (#2001, #2002). + - [colorLib] Updated COLRv1 implementation following changes in the draft spec: + (#2008, googlefonts/colr-gradients-spec#24). + +------------------------------------------------------------------- +Wed Aug 19 08:48:04 UTC 2020 - Marketa Calabkova + +- Switch from brotlipy to Brotli (bsc#1175303) + +------------------------------------------------------------------- +Thu Aug 13 06:57:05 UTC 2020 - Marketa Calabkova + +- Update to 4.13.0 + * [feaLib/otlLib] Moved lookup subtable builders from feaLib to otlLib; refactored + some common code (#2004, #2007). + * [glifLib] Fixed bug with some UFO .glif filenames clashing on case-insensitive + filesystems (#2001, #2002). + * [_n_a_m_e] Fixed error in ``addMultilingualName`` with one-character names. + Only attempt to recovered malformed UTF *16 data from a ``bytes`` string, + not from unicode ``str`` (#1997, #1998). + * [OS/2] Don't calculate whole sets of unicode codepoints, use faster and more memory + efficient ranges and bisect lookups (#1984). + * [voltLib] Support writing back abstract syntax tree as VOLT data (#1983). + * [voltLib] Accept DO_NOT_TOUCH_CMAP keyword (#1987). + * [ufoLib] Silently delete duplicate glyphs within the same kerning group when reading + groups (#1970). + * [ttLib] Set version of COLR table when decompiling COLRv1 (commit 9d8a7e2). + +------------------------------------------------------------------- +Tue May 26 06:34:20 UTC 2020 - Petr Gajdos + +- %python3_only -> %python_alternative + +------------------------------------------------------------------- +Wed May 20 10:13:15 UTC 2020 - Antonio Larrosa + +- Update to 4.10.2: + * Note: The v4.x version series only supports Python 3.6 or greater. + * see NEWS.rst for the full changelog + +- Use _multibuild to run the tests in a different flavor and make it + possible to BuildRequire ufoLib2 (which requires FontTools to build) + without creating a dependency cycle. + +- Add curves.json from upstream as a separate source as it's + missing from the zip file. + +------------------------------------------------------------------- +Mon Apr 1 12:14:15 UTC 2019 - pgajdos@suse.com + +- version update to 3.39.0 + see NEWS.rst +- deleted patches + - 349cd94d171cf4e1e7541884df0d12bb6d4e841a.patch (upstreamed) + - fix-missing-sys.patch (upstreamed) +- run the testsuite +- do not provide extra subpackage for tools +- do not require python-munkres, it is suprefluous when scipy is + required + +------------------------------------------------------------------- +Thu Sep 6 07:22:24 UTC 2018 - Matěj Cepl + +- Upstream provided fix for the issue with big endian machines. Remove + fonttools-disable_failing_tests_bigendian.patch and replace with + 349cd94d171cf4e1e7541884df0d12bb6d4e841a.patch +- Upstream fix has a missing import; thus fix-missing-sys.patch + +------------------------------------------------------------------- +Tue Sep 4 20:41:54 UTC 2018 - Matěj Cepl + +- Update to 3.29.0: + too many changes to enlist here, complete list is on + https://github.com/fonttools/fonttools/releases + +------------------------------------------------------------------- +Thu Mar 15 08:53:18 CET 2018 - tiwai@suse.de + +- add fonttools-disable_failing_tests_bigendian.patch + disable two tests currently failing on bigendian archs + +------------------------------------------------------------------- +Thu Mar 8 16:02:24 UTC 2018 - toddrme2178@gmail.com + +- Update to version 3.24.1 + * [varLib] Don’t remap the same DeviceTable twice in VarStore + optimizer (#1206). + * [varLib] Add --disable-iup option to fonttools varLib script, + and a optimize=True keyword argument to varLib.build function, + to optionally disable IUP optimization while building varfonts. + * [ttCollection] Fixed issue while decompiling ttc with python3 + (#1207). +- Update to version 3.24.0 + * [ttGlyphPen] Decompose composite glyphs if any components’ + transform is too large to fit a F2Dot14 value, or clamp + transform values that are (almost) equal to +2.0 to make them + fit and avoid decomposing (#1200, #1204, #1205). + * [ttx] Added new -g option to dump glyphs from the glyf table + splitted as individual ttx files (#153, #1035, #1132, #1202). + * Copied ufoLib.filenames module to fontTools.misc.filenames, + used for the ttx split-glyphs option (#1202). + * [feaLib] Added support for cvParameters blocks in Character + Variant feautures cv01-cv99 (#860, #1169). + * [Snippets] Added checksum.py script to generate/check SHA1 + hash of ttx files (#1197). + * [varLib.mutator] Fixed issue while instantiating some variable + fonts whereby the horizontal advance width computed from gvar + phantom points could turn up to be negative (#1198). + * [varLib/subset] Fixed issue with subsetting GPOS variation + data not picking up ValueRecord Device objects (54fd71f). + * [feaLib/voltLib] In all AST elements, the location is no + longer a required positional argument, but an optional + kewyord argument (defaults to None). This will make it easier + to construct feature AST from code (#1201). +- Update to version 3.23.0 + * [designspaceLib] Added an optional lib element to the + designspace as a whole, as well as to the instance elements, + to store arbitrary data in a property list dictionary, similar + to the UFO’s lib. Added an optional font attribute to the + SourceDescriptor, to allow operating on in-memory font objects + (#1175). + * [cffLib] Fixed issue with lazy-loading of attributes when + attempting to set the CFF TopDict.Encoding (#1177, #1187). + * [ttx] Fixed regression introduced in 3.22.0 that affected + the split tables -s option (#1188). + * [feaLib] Added IncludedFeaNotFound custom exception subclass, + raised when an included feature file cannot be found (#1186). + * [otTables] Changed VarIdxMap to use glyph names internally + instead of glyph indexes. The old ttx dumps of HVAR/VVAR + tables that contain indexes can still be imported + (21cbab8, 38a0ffb). + * [varLib] Implemented VarStore optimizer (#1184). + * [subset] Implemented pruning of GDEF VarStore, HVAR and + MVAR (#1179). + * [sfnt] Restore backward compatiblity with numFonts attribute + of SFNTReader object (#1181). + * [merge] Initial support for merging LangSysRecords (#1180). + * [ttCollection] don’t seek(0) when writing to possibly + unseekable strems. + * [subset] Keep all --name-IDs from 0 to 6 by default + (#1170, #605, #114). + * [cffLib] Added width module to calculate optimal CFF default + and nominal glyph widths. + * [varLib] Don’t fail if STAT already in the master fonts + (#1166). +- Fix conflict with old single-package version + +------------------------------------------------------------------- +Mon Feb 26 17:42:47 UTC 2018 - toddrme2178@gmail.com + +- Fix building on tumbleweed + +------------------------------------------------------------------- +Tue Feb 20 19:05:53 UTC 2018 - toddrme2178@gmail.com + +- Initial version diff --git a/python-FontTools.spec b/python-FontTools.spec new file mode 100644 index 0000000..7e673da --- /dev/null +++ b/python-FontTools.spec @@ -0,0 +1,131 @@ +# +# spec file +# +# Copyright (c) 2023 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%global flavor @BUILD_FLAVOR@%{nil} +%if "%{flavor}" == "test" +%define psuffix -test +%bcond_without test +%else +%define psuffix %{nil} +%bcond_with test +%endif +%define skip_python2 1 +%{?sle15_python_module_pythons} +Name: python-FontTools%{psuffix} +Version: 4.39.4 +Release: 0 +Summary: Suite of Tools and Libraries for Manipulating Fonts +License: MIT AND OFL-1.1 +Group: Development/Languages/Python +URL: https://github.com/fonttools/fonttools +# The PyPI archive lacks some test files, but the source is identical to the github archive +Source: https://github.com/fonttools/fonttools/archive/refs/tags/%{version}.tar.gz#/fonttools-%{version}.tar.gz +BuildRequires: %{python_module devel >= 3.7} +BuildRequires: %{python_module pip} +BuildRequires: %{python_module wheel} +BuildRequires: fdupes +BuildRequires: python-rpm-macros +BuildRequires: unzip +# some packages should require fonttools[ufo] but expect fs to be pulled in by default. +Requires: python-fs >= 2.2.0 +Requires(post): update-alternatives +Requires(postun):update-alternatives +Recommends: python-Brotli >= 1.0.1 +Recommends: python-lxml >= 4.0 +Recommends: python-munkres >= 1.1.4 +Recommends: python-reportlab +Recommends: python-sympy +Recommends: python-unicodedata2 >= 14.0.0 +Recommends: python-zopfli >= 0.1.6 +Provides: python-fonttools = %{version}-%{release} +BuildArch: noarch +%if %{with test} +BuildRequires: %{python_module Brotli >= 1.0.1} +BuildRequires: %{python_module fs >= 2.2.0} +BuildRequires: %{python_module pytest} +%endif +%if "%{python_flavor}" == "python3" || "%{python_provides}" == "python3" +Obsoletes: fonttools < %{version}-%{release} +Provides: fonttools = %{version}-%{release} +%endif +%python_subpackages + +%description +FontTools is a suite of tools and libraries for manipulating fonts +written in Python. + +It currently reads and writes TrueType font files, reads PostScript +Type 1 fonts, and more. It contains two command line programs to +convert TrueType fonts to an XML based format (called TTX) and back. + +%prep +%autosetup -p1 -n fonttools-%{version} + +# Remove shebang +sed -i -e '/^#!\//, 1d' Lib/fontTools/mtiLib/__init__.py + +%build +%pyproject_wheel + +%install +%pyproject_install +%python_clone -a %{buildroot}%{_mandir}/man1/ttx.1 +%python_clone -a %{buildroot}%{_bindir}/ttx +%python_clone -a %{buildroot}%{_bindir}/pyftsubset +%python_clone -a %{buildroot}%{_bindir}/pyftmerge +%python_clone -a %{buildroot}%{_bindir}/fonttools +%python_expand %fdupes %{buildroot}%{$python_sitelib} + +%if %{with test} +%check +export LANG=en_US.UTF-8 +%pytest -ra +# We need these files to be installed for tests, but now we need them removed +# not to confuse %%files checks +%python_expand rm -r %{buildroot}%{$python_sitelib} +rm -r %{buildroot}%{_sysconfdir}/alternatives +rm -r %{buildroot}%{_bindir} +rm -r %{buildroot}%{_mandir} +%endif + +%if %{without test} +%post +%python_install_alternative ttx ttx.1 +%python_install_alternative pyftsubset +%python_install_alternative pyftmerge +%python_install_alternative fonttools + +%postun +%python_uninstall_alternative ttx +%python_uninstall_alternative pyftsubset +%python_uninstall_alternative pyftmerge +%python_uninstall_alternative fonttools + +%files %{python_files} +%license LICENSE LICENSE.external +%doc README.rst NEWS.rst +%python_alternative %{_bindir}/pyftmerge +%python_alternative %{_bindir}/pyftsubset +%python_alternative %{_bindir}/ttx +%python_alternative %{_bindir}/fonttools +%python_alternative %{_mandir}/man1/ttx.1%{?ext_man} +%{python_sitelib}/fontTools +%{python_sitelib}/fonttools-%{version}*-info +%endif + +%changelog