Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/jdk17u
Path: blob/master/src/java.desktop/share/native/libharfbuzz/UPDATING.txt
66644 views
1
Tips and tasks when updating harfbuzz sources to a newer version.
2
-----------------------------------------------------------------
3
4
We only use files from the src directory and even then only the ones we need.
5
So just C++ include and source files and only the ones needed for the library,
6
and even then just the ones we use. Do NOT just copy everything.
7
8
So one way to update is to
9
10
- copy over from the updated harfbuzz the exact same files we already have
11
- it isn't a flat directory so watch out for that
12
- any that are no longer available (copy fails) we remove but these may come
13
back later if they were actually renamed
14
- look for files in the destination that were NOT updated - perhaps they
15
are gone in the upstream - or renamed. Remove them if they are really
16
obsolete, or add their replacements/renames.
17
- iterate over : build and see what new file is missing that causes a build failure
18
- when this is done we have something buildable
19
- make sure it builds on all supported platforms.
20
- Harfbuzz is not modular so it is not easy,
21
- The main thing is we do NOT want any
22
* "test" programs (test in the name, have a main are clues)
23
* support for (eg) GLib, DirectWrite, Graphite, GDI, ICU, Uniscribe
24
* aggregators like harfbuzz.cc - since it includes things from the above
25
as well as hb-ft.cc which we specifically exclude in the Makefile
26
* but we do use core text support on macOS.
27
* I really wish that "src" were just library source but I expect the authors
28
have their reasons.
29
30
- we do not apply any header file changes so this is not an issue
31
- verify the license text is unchanged (extra steps are needed if it is) and update
32
src/java.desktop/share/legal/harfbuzz.md with the new version
33
- clean up trailing white space and tabs to follow jcheck rules.
34
Use "expand" and "sed" to remove tabs and trailing white space from the
35
imported sources.
36
- test using all the automated jtreg tests on all platforms
37
- do manual verification of Arabic, Hebrew, Thai, Indic against previous releases.
38
Look for manual related layout jtreg tests and run on Windows,Linux and Mac.
39
Use Font2DTest set to TextLayout and check the above languages. Probably
40
not going to see layout problems a code point at a time but it needs to
41
be checked.
42
43
- Update make parameters as needed
44
Since we don't use configure we need to manually specify the options
45
we need in the harfbuzz section of Awt2DLibraries.gmk.
46
As well as adding new options, we may need to clean up obsolete options.
47
Note there may be platform variations in the flags.
48
49
- As with other 3rd party libs we do not fix the code to eliminate compiler
50
warnings unless they are critical and clearly avoiding a bug. Even then
51
we'd report it upstream. The usual practice is do just disable the warnings
52
53
- Update THIS UPDATING.txt file too if it is outdated.
54
55