Skip to content

Conversation

@radarhere
Copy link
Member

@fdintino
Copy link
Contributor

fdintino commented Apr 6, 2025

This is not related to the upgrade, but I wanted to make this note before I forgot: I noticed that harfbuzz was building a bunch of files unrelated to the library file, including tests. You may want to add the flags -Dtests=disabled -Ddocs=disabled -Dutilities=disabled to the meson setup command.

@radarhere
Copy link
Member Author

I noticed that harfbuzz was building a bunch of files unrelated to the library file, including tests.

Could you point to where in the logs you noticed this?

@fdintino
Copy link
Contributor

fdintino commented Apr 7, 2025

Sure. Looking again over the following logs, I think the flag that actually matters is -Dtests=disabled, since it seems like docs, benchmarks, and utilities are not being built. But there are a lot of tests, which is how I noticed this.

In the compilation logs, before compilation begins, the following prolog is output:

harfbuzz 11.0.0

  Directories
    prefix                    : /usr/local
    bindir                    : bin
    libdir                    : lib
    includedir                : include
    datadir                   : share
    cmakepackagedir           : lib/cmake

  Unicode callbacks (you want at least one)
    Builtin                   : YES
    Glib                      : NO
    ICU                       : NO

  Font callbacks (the more the merrier)
    Builtin                   : YES
    FreeType                  : YES

  Dependencies used for command-line utilities
    Cairo                     : NO
    Chafa                     : NO

  ...

  Other features
    Documentation             : NO
    GObject bindings          : YES
    Cairo integration         : NO
    Introspection             : NO
    Experimental APIs         : NO

  Testing
    Tests                     : YES
    Benchmark                 : NO

and every source file after "Linking target src/libharfbuzz.so.0.61100.0" is unused by pillow, since libharfbuzz.so.0.61100.0 is the only library pillow links against.

[62/188] Linking target src/libharfbuzz.so.0.61100.0
[63/188] Generating symbol file src/libharfbuzz.so.0.61100.0.p/libharfbuzz.so.0.61100.0.symbols
[64/188] Compiling C++ object src/libharfbuzz-subset.so.0.61100.0.p/hb-subset-instancer-solver.cc.o
[65/188] Compiling C++ object src/libharfbuzz-subset.so.0.61100.0.p/hb-subset-input.cc.o
[66/188] Compiling C++ object src/libharfbuzz-subset.so.0.61100.0.p/hb-subset-instancer-iup.cc.o
[67/188] Compiling C++ object src/libharfbuzz-subset.so.0.61100.0.p/hb-subset-cff1.cc.o
[68/188] Generating src/harfbuzz-subset.cc with a custom command
[69/188] Compiling C++ object src/libharfbuzz-subset.so.0.61100.0.p/graph_gsubgpos-context.cc.o
[70/188] Compiling C++ object src/libharfbuzz-subset.so.0.61100.0.p/hb-subset-cff2.cc.o
[71/188] Compiling C++ object src/test-basics.p/test.cc.o
[72/188] Linking target src/test-basics
[73/188] Compiling C++ object src/test-buffer-serialize.p/test-buffer-serialize.cc.o
[74/188] Linking target src/test-buffer-serialize
[75/188] Compiling C++ object src/test-ot-meta.p/test-ot-meta.cc.o
[76/188] Linking target src/test-ot-meta
[77/188] Compiling C++ object src/test-ot-name.p/test-ot-name.cc.o
[78/188] Linking target src/test-ot-name
[79/188] Compiling C++ object src/test-ot-glyphname.p/test-ot-glyphname.cc.o
[80/188] Linking target src/test-ot-glyphname
[81/188] Compiling C++ object src/test-ot-gsub-get-alternates.p/test-gsub-get-alternates.cc.o
[82/188] Linking target src/test-ot-gsub-get-alternates
[83/188] Compiling C++ object src/test-ot-gpos-size-params.p/test-gpos-size-params.cc.o
[84/188] Linking target src/test-ot-gpos-size-params
[85/188] Compiling C++ object src/test-ot-gsub-would-substitute.p/test-gsub-would-substitute.cc.o
[86/188] Linking target src/test-ot-gsub-would-substitute
[87/188] Compiling C++ object src/test-use-table.p/test-use-table.cc.o
[88/188] Linking target src/test-use-table
[89/188] Compiling C++ object src/test-algs.p/test-algs.cc.o
[90/188] Compiling C++ object src/test-array.p/test-array.cc.o
[91/188] Linking target src/test-array
[92/188] Compiling C++ object src/test-bimap.p/test-bimap.cc.o
[93/188] Compiling C++ object src/main.p/main.cc.o
[94/188] Linking target src/main
[95/188] Compiling C++ object src/test-cff.p/test-cff.cc.o
[96/188] Compiling C++ object src/test-algs.p/hb-static.cc.o
[97/188] Linking target src/test-algs
[98/188] Compiling C++ object src/libharfbuzz-subset.so.0.61100.0.p/hb-subset-serialize.cc.o
[99/188] Compiling C++ object src/test-bimap.p/hb-static.cc.o
[100/188] Linking target src/test-bimap
[101/188] Compiling C++ object src/test-cff.p/hb-static.cc.o
[102/188] Linking target src/test-cff
[103/188] Compiling C++ object src/test-decycler.p/test-decycler.cc.o
[104/188] Compiling C++ object src/test-classdef-graph.p/graph_gsubgpos-context.cc.o
[105/188] Compiling C++ object src/test-classdef-graph.p/hb-static.cc.o
[106/188] Compiling C++ object src/test-classdef-graph.p/graph_test-classdef-graph.cc.o
[107/188] Linking target src/test-classdef-graph
[108/188] Compiling C++ object src/test-machinery.p/test-machinery.cc.o
[109/188] Compiling C++ object src/test-decycler.p/hb-static.cc.o
[110/188] Linking target src/test-decycler
[111/188] Compiling C++ object src/test-iter.p/hb-static.cc.o
[112/188] Compiling C++ object src/test-iter.p/test-iter.cc.o
[113/188] Linking target src/test-iter
[114/188] Compiling C++ object src/libharfbuzz-subset.so.0.61100.0.p/hb-subset-plan.cc.o
[115/188] Compiling C++ object src/test-machinery.p/hb-static.cc.o
[116/188] Linking target src/test-machinery
[117/188] Compiling C++ object src/test-multimap.p/test-multimap.cc.o
[118/188] Compiling C++ object src/test-number.p/test-number.cc.o
[119/188] Compiling C++ object src/test-number.p/hb-number.cc.o
[120/188] Linking target src/test-number
[121/188] Compiling C++ object src/test-ot-tag.p/hb-ot-tag.cc.o
[122/188] Linking target src/test-ot-tag
[123/188] Compiling C++ object src/test-map.p/test-map.cc.o
[124/188] Compiling C++ object src/test-set.p/test-set.cc.o
[125/188] Compiling C++ object src/test-map.p/hb-static.cc.o
[126/188] Linking target src/test-map
[127/188] Compiling C++ object src/test-serialize.p/test-serialize.cc.o
[128/188] Compiling C++ object src/test-multimap.p/hb-static.cc.o
[129/188] Linking target src/test-multimap
[130/188] Compiling C++ object src/test-vector.p/test-vector.cc.o
[131/188] Compiling C++ object src/test-set.p/hb-static.cc.o
[132/188] Linking target src/test-set
[133/188] Compiling C++ object src/test-serialize.p/hb-static.cc.o
[134/188] Linking target src/test-serialize
[135/188] Compiling C++ object src/test-instancer-solver.p/test-subset-instancer-solver.cc.o
[136/188] Compiling C++ object src/test-vector.p/hb-static.cc.o
[137/188] Linking target src/test-vector
[138/188] Compiling C++ object src/test-repacker.p/graph_gsubgpos-context.cc.o
[139/188] Compiling C++ object src/test-instancer-solver.p/hb-subset-instancer-solver.cc.o
[140/188] Compiling C++ object src/test-priority-queue.p/test-priority-queue.cc.o
[141/188] Compiling C++ object src/test-repacker.p/hb-static.cc.o
[142/188] Compiling C++ object src/test-tuple-varstore.p/hb-subset-instancer-solver.cc.o
[143/188] Compiling C++ object src/test-tuple-varstore.p/hb-subset-instancer-iup.cc.o
[144/188] Compiling C++ object src/test-instancer-solver.p/hb-static.cc.o
[145/188] Linking target src/test-instancer-solver
[146/188] Compiling C++ object src/test-tuple-varstore.p/test-tuple-varstore.cc.o
[147/188] Compiling C++ object src/test-priority-queue.p/hb-static.cc.o
[148/188] Linking target src/test-priority-queue
[149/188] Compiling C++ object src/test-item-varstore.p/hb-subset-instancer-solver.cc.o
[150/188] Compiling C++ object src/test-item-varstore.p/hb-subset-instancer-iup.cc.o
[151/188] Compiling C++ object src/test-repacker.p/test-repacker.cc.o
[152/188] Linking target src/test-repacker
[153/188] Compiling C++ object src/test-unicode-ranges.p/test-unicode-ranges.cc.o
[154/188] Linking target src/test-unicode-ranges
[155/188] Compiling C++ object test/fuzzing/hb-shape-fuzzer.p/hb-shape-fuzzer.cc.o
[156/188] Compiling C++ object test/fuzzing/hb-shape-fuzzer.p/main.cc.o
[157/188] Compiling C++ object test/fuzzing/hb-subset-fuzzer.p/hb-subset-fuzzer.cc.o
[158/188] Compiling C++ object test/fuzzing/hb-subset-fuzzer.p/main.cc.o
[159/188] Compiling C++ object src/test-tuple-varstore.p/hb-static.cc.o
[160/188] Generating GObject enum file src/hb-gobject-enums-tmp.h (wrapped by meson to capture output)
[161/188] Linking target src/test-tuple-varstore
[162/188] Compiling C++ object test/fuzzing/hb-set-fuzzer.p/hb-set-fuzzer.cc.o
[163/188] Generating src/hb-gobject-enums.h with a custom command
[164/188] Compiling C++ object test/fuzzing/hb-set-fuzzer.p/main.cc.o
[165/188] Compiling C++ object test/fuzzing/hb-draw-fuzzer.p/hb-draw-fuzzer.cc.o
[166/188] Compiling C++ object test/fuzzing/hb-draw-fuzzer.p/main.cc.o
[167/188] Compiling C++ object test/fuzzing/hb-repacker-fuzzer.p/hb-repacker-fuzzer.cc.o
[168/188] Generating GObject enum file src/hb-gobject-enums-tmp.cc (wrapped by meson to capture output)
[169/188] Generating src/hb-gobject-enums.cc with a custom command
[170/188] Compiling C++ object test/fuzzing/hb-repacker-fuzzer.p/main.cc.o
[171/188] Compiling C++ object src/libharfbuzz-gobject.so.0.61100.0.p/hb-gobject-structs.cc.o
[172/188] Compiling C++ object src/test-item-varstore.p/test-item-varstore.cc.o
[173/188] Compiling C++ object src/libharfbuzz-gobject.so.0.61100.0.p/meson-generated_.._hb-gobject-enums.cc.o
[174/188] Linking target src/libharfbuzz-gobject.so.0.61100.0
[175/188] Compiling C++ object test/threads/hb-shape-threads.p/hb-shape-threads.cc.o
[176/188] Compiling C++ object test/threads/hb-subset-threads.p/hb-subset-threads.cc.o
[177/188] Linking target test/threads/hb-shape-threads
[178/188] Compiling C++ object src/test-item-varstore.p/hb-static.cc.o
[179/188] Linking target src/test-item-varstore
[180/188] Compiling C++ object src/libharfbuzz-subset.so.0.61100.0.p/hb-subset.cc.o
[181/188] Linking target src/libharfbuzz-subset.so.0.61100.0
[182/188] Generating symbol file src/libharfbuzz-subset.so.0.61100.0.p/libharfbuzz-subset.so.0.61100.0.symbols
[183/188] Linking target test/fuzzing/hb-set-fuzzer
[184/188] Linking target test/fuzzing/hb-draw-fuzzer
[185/188] Linking target test/fuzzing/hb-shape-fuzzer
[186/188] Linking target test/fuzzing/hb-repacker-fuzzer
[187/188] Linking target test/fuzzing/hb-subset-fuzzer
[188/188] Linking target test/threads/hb-subset-threads

@radarhere
Copy link
Member Author

Ok, I've pushed a commit to disable building the tests.

@hugovk hugovk merged commit d1e27fc into python-pillow:main Apr 12, 2025
114 of 128 checks passed
@radarhere radarhere deleted the harfbuzz_upgrade branch April 12, 2025 07:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants