Path: blob/master/src/java.desktop/share/native/libharfbuzz/UPDATING.txt
66644 views
Tips and tasks when updating harfbuzz sources to a newer version.1-----------------------------------------------------------------23We only use files from the src directory and even then only the ones we need.4So just C++ include and source files and only the ones needed for the library,5and even then just the ones we use. Do NOT just copy everything.67So one way to update is to89- copy over from the updated harfbuzz the exact same files we already have10- it isn't a flat directory so watch out for that11- any that are no longer available (copy fails) we remove but these may come12back later if they were actually renamed13- look for files in the destination that were NOT updated - perhaps they14are gone in the upstream - or renamed. Remove them if they are really15obsolete, or add their replacements/renames.16- iterate over : build and see what new file is missing that causes a build failure17- when this is done we have something buildable18- make sure it builds on all supported platforms.19- Harfbuzz is not modular so it is not easy,20- The main thing is we do NOT want any21* "test" programs (test in the name, have a main are clues)22* support for (eg) GLib, DirectWrite, Graphite, GDI, ICU, Uniscribe23* aggregators like harfbuzz.cc - since it includes things from the above24as well as hb-ft.cc which we specifically exclude in the Makefile25* but we do use core text support on macOS.26* I really wish that "src" were just library source but I expect the authors27have their reasons.2829- we do not apply any header file changes so this is not an issue30- verify the license text is unchanged (extra steps are needed if it is) and update31src/java.desktop/share/legal/harfbuzz.md with the new version32- clean up trailing white space and tabs to follow jcheck rules.33Use "expand" and "sed" to remove tabs and trailing white space from the34imported sources.35- test using all the automated jtreg tests on all platforms36- do manual verification of Arabic, Hebrew, Thai, Indic against previous releases.37Look for manual related layout jtreg tests and run on Windows,Linux and Mac.38Use Font2DTest set to TextLayout and check the above languages. Probably39not going to see layout problems a code point at a time but it needs to40be checked.4142- Update make parameters as needed43Since we don't use configure we need to manually specify the options44we need in the harfbuzz section of Awt2DLibraries.gmk.45As well as adding new options, we may need to clean up obsolete options.46Note there may be platform variations in the flags.4748- As with other 3rd party libs we do not fix the code to eliminate compiler49warnings unless they are critical and clearly avoiding a bug. Even then50we'd report it upstream. The usual practice is do just disable the warnings5152- Update THIS UPDATING.txt file too if it is outdated.535455